mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
Claude, Codex, OpenCode, and ACP each reimplemented the same `run()` orchestration: pre-start event buffering, turn-id filtering, terminal event settling, timeline collection, and final-text reduction. Hoist the loop into `provider-runner.ts` with a small adapter (startTurn, subscribe, getSessionId) and pluggable final-text reducer. Net -252 lines across the four providers. Also fixes a latent bug where a `turn_failed` emitted before startTurn returned was buffered and silently swallowed instead of rejecting the run.