deepseek-harness/examples/acp-agent/tests/snapshots/error-finish/input.json

8 lines
170 B
JSON
Raw Normal View History

test(acp-example): five snapshot scenarios + cancel/error input ops Adds the first cut of snapshot scenarios, each asserting a normalized stdout transcript golden and (for model turns) a re-persisted session-log golden: - text-turn, tool-call-turn, multi-turn: RECORDED against the real API — the committed session.jsonl is a genuine harvested log; replay derives the model script from it and reproduces deterministically with no key. tool-call-turn exercises the real bash executor (echo SNAPSHOT_OK → tool/call + tool/result + a post-tool answer step). - error-finish, cancel: AUTHORED via a replay.override.json sidecar (the live API can't be coaxed into a deterministic 401 or mid-stream cancel). error- finish replays a {kind:throw} 401 → the bridge answers the prompt with a JSON-RPC error and the log records turn/end{kind:error}; cancel replays a {kind:hang} → stopReason:cancelled. Two input-DSL ops support these: promptExpectError (awaits the prompt, asserts it rejects — the editor's view of a failed turn — and swallows it) and promptAndCancel (dispatches the prompt unawaited, waits until the client OBSERVES the streamed agent_message_chunk, then cancels — pinning frame order so the cancel transcript is deterministic; fixes a flake Codex caught where the late chunk and the cancelled response could interleave either way). Scenarios carry a `recorded` flag so test:snapshot:record only re-runs the live-API ones. reasoning/max-tokens scenarios are deferred (hard to force deterministically from the live model). Per docs/rfc/implemented/2026-06-19.
2026-06-19 04:10:49 +08:00
{
"steps": [
{ "op": "initialize" },
{ "op": "newSession" },
{ "op": "promptExpectError", "text": "This prompt triggers a recorded provider error." }
]
}