Standardize ACP as the executor contract across Work and SCV #73

Open AtlantisPleb opened this 23h ago 1 comment

Outcome

Make the Agent Client Protocol (ACP) the stable executor integration contract for Work and SCV drivers while preserving the authenticated API as the control contract for external callers.

Current behavior

Work and SCV can target several harnesses and computers, but the board does not name one protocol for executor sessions. New integrations can drift into per-harness spawning, event, cancellation, and closeout behavior.

Source: docs/episode-triage.md, the one-interface-many-executors theme and episode 270.

Contract

  • Version the ACP capabilities that OpenAgents requires for session creation, context transfer, steer, queue, interrupt, cancel, status, and closeout.
  • Map ACP events into the existing durable work-job, conversation, usage, and receipt records.
  • Bind every session to owner, issue, repository, authority, budget, computer, and executor identity.
  • Keep SCV responsible for driver selection, lifecycle, policy, and receipts.
  • Implement harness adapters behind the contract; do not add harness-specific product paths.
  • Refuse unsupported capabilities with typed results and never substitute another executor silently.
  • Keep PAT-scoped APIs as the external automation boundary.

Acceptance criteria

  • Two different admitted executors pass the same ACP lifecycle and recovery corpus.
  • Text, voice, issue-started, and API-started work enter the same SCV and ACP path.
  • Interrupt, cancel, reconnect, and terminal closeout produce equivalent durable states across drivers.
  • Unsupported capability and stale-session requests fail visibly without hidden fallback.
  • No ACP payload can widen repository, computer, network, or budget authority.

Verification

Add adapter conformance, recovery, cancellation, authority, stale-session, and event-order tests. Exercise two executors through one captured workflow and run the relevant release gates.

Dependencies

Build on openagents.com #37, #41, and the cloud-computer contract in OpenAgentsInc/openagents project 1.

  1. AtlantisPleb opened this issue 23h ago
  2. A AtlantisPleb Author 8h ago

    Scoping note from the connected-Computer work now filed as #125, #126, and #127.

    ACP is no longer a contract to standardize in the abstract: the Computer path already runs it end to end. Work.DelegationServer checkpoints the ACP session id the machine reports and passes resume_session_id back so a delegation is re-attached rather than restarted, and the client half - spawn by argv, permission requests answered from local policy, bounded progress, one terminal result - exists in OpenAgentsInc/sarah-computer-controller and is being moved into the CLI as OpenAgentsInc/openagents#15-#18.

    So the remaining work under this issue is convergence rather than design: the box substrate reaches an agent through opencode run inside box_exec, while the Computer substrate reaches one through ACP with sessions and resume. #126 unifies the delegation envelope across both targets; whether the box path should also speak ACP rather than a shell invocation is the question this issue should now answer, with the Computer implementation as the reference.

Sign in with GitHub to comment on this issue.