Files
freemo a0275f2401 fix(cli): build spec-required execute output dict with sandbox, worker, progress fields in plan execute
Implements the spec-required JSON envelope for `agents plan execute --format json`.

Previously, the command returned the raw plan domain model dict via
`_plan_spec_dict()`, which was missing the sandbox, worker, started,
attempt, strategy_summary, and progress fields required by the spec.

Changes:
- Add `_execute_output_dict(plan, started_at, duration_ms)` function that
  builds the spec-required execute output envelope with:
  - Top-level envelope: command, status, exit_code, data, timing, messages
  - data.sandbox: strategy, path, branch, status (derived from sandbox_refs)
  - data.worker: execution_actor or 'local/executor' fallback
  - data.started: HH:MM:SS from execute_started_at timestamp
  - data.attempt: from plan.identity.attempt
  - data.strategy_summary: decisions, invariants, planned_child_plans,
    estimated_files, risk (from estimation_result when available)
  - data.progress: 4-step list with label/status derived from plan state
- Update `execute_plan()` to track wall-clock start time and use
  `_execute_output_dict()` instead of `_plan_spec_dict()` for non-rich output
- Add BDD tests verifying the spec-required envelope structure, sandbox
  strategy field, and progress list label/status fields

ISSUES CLOSED: #3435
2026-04-05 19:44:17 +00:00
..