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:
- 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").
- 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.
cursor-agentandgrokboth speak ACP, so the client unlocks two of the threeremaining 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 newdriver is done when
./buddy harness:doctor --conformance --driver <kind>isgreen.
packages/drivers/src/cli-driver.ts—cursorandgrokare registered andprobe honestly today ("not installed", or "installed but the driver is not
implemented yet"). They must never report
readyuntil they can actually runa turn, or a session starts and dies on its first turn.
packages/drivers/src/codex.ts— the closest reference. It is written againstthe protocol schema the CLI generates for itself rather than against guesswork.
Watch for
Both findings from the codex driver are likely to recur:
errornotification, then a failed
turn/completed. Emitting on arrival ends theturn twice. The conformance suite catches this ("exactly one terminal event").
onRequestwhere it wantedon-request, and only after a thread had already started. Pin the exactstrings in a test.
Done when
harness:doctor --conformanceis green for the driver against the real CLI, anda turn with a tool call produces
session.provider-bound,tool.call.began,tool.call.ended,turn.completedin the log.