ReviewOS

stacks/harness

ACP client, then cursor and grok drivers over it

#1
Open chris opened this 8 days ago ·
8 days ago

cursor-agent and grok both speak ACP, so the client unlocks two of the three remaining providers and should come before either driver.

Blocked: neither CLI is installed on the development machine. A transport written against nothing is unverifiable code, which is why the drivers are currently registered-but-unimplemented rather than sketched.

What exists already

  • packages/drivers/src/conformance.ts — the spec every driver must pass. A new driver is done when ./buddy harness:doctor --conformance --driver <kind> is green.
  • packages/drivers/src/cli-driver.ts — cursor and grok are registered and probe honestly today ("not installed", or "installed but the driver is not implemented yet"). They must never report ready until they can actually run a turn, or a session starts and dies on its first turn.
  • packages/drivers/src/codex.ts — the closest reference. It is written against the protocol schema the CLI generates for itself rather than against guesswork.

Watch for

Both findings from the codex driver are likely to recur:

  1. Terminal-event coalescing. Codex signals a failed turn twice — an error notification, then a failed turn/completed. Emitting on arrival ends the turn twice. The conformance suite catches this ("exactly one terminal event").
  2. Wire enum spelling. Codex rejected onRequest where it wanted on-request, and only after a thread had already started. Pin the exact strings in a test.

Done when

harness:doctor --conformance is green for the driver against the real CLI, and a turn with a tool call produces session.provider-bound, tool.call.began, tool.call.ended, turn.completed in the log.

8 days ago

Status has moved since this was filed: both CLIs are now installed (cursor-agent and grok, both in ~/.local/bin), the shared ACP client exists (packages/drivers/src/acp.ts), and CursorDriver/GrokDriver are implemented over it — the same client just passed live conformance for opencode (#2, closed).

Remaining blocker is narrower than the issue body says: both CLIs report logged-out, and their logins are interactive browser flows. Once either is signed in, the done-when is ./buddy harness:doctor --conformance --driver cursor (or grok) green plus a tool-call turn, same as #2.

Sign in to comment on this issue.