Files
openidea/crates/ide-agent/tests/fixtures/acp/claude-acp@v2/queued_turn.jsonl
l0ng-ai 0cd927edf3 feat(agents): Native Claude Code / Codex drivers, ACP v2 and the ACP Registry (#151)
Agents can run through native drivers or any ACP agent, speak ACP v1 or v2, and be installed from the ACP Registry. Tasks gain fork, in-place edit-and-rerun, steering and usage-limit handling where the agent supports them.

- Native Claude Code (`claude` stream-json) and Codex (`codex app-server`) drivers, each served to the task machinery as an in-process ACP shim, using the newest install on PATH.
- ACP v2 with v1 fallback, negotiated on initialize; per-agent capabilities (fork, rollback, steer) so the UI only shows supported actions; usage-limit errors put the task in a `limited` status with the reset time.
- Settings › Tools › Agents lists Registry agents (featured first) to install, update and remove; installed agents update when a project opens. "More agents…" in the provider picker opens it. Registry index and downloads are HTTPS-only, release archives are checked against their sha256, and entries without one show "No checksum provided" and ask for confirmation before installing. Package names from the registry can't be passed as options to npm/uv.

Claude-Session: https://claude.ai/code/session_01Dq6jQQn8ZhRfkkyj3PRutA
2026-10-29 07:50:04 +08:00

31 lines
17 KiB
JSON

{"connection":1}
{"from":"client","msg":{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"clientCapabilities":{"fs":{"readTextFile":false,"writeTextFile":false},"subagents":{},"terminal":false},"clientInfo":{"name":"OpenIDEA","version":"0.1.22"},"info":{"name":"OpenIDEA","version":"0.1.22"},"protocolVersion":2}}}
{"from":"agent","msg":{"id":1,"jsonrpc":"2.0","result":{"authMethods":[],"capabilities":{"_meta":{"authStatus":{},"claudeCode":{"promptQueueing":true}},"providers":{},"session":{"additionalDirectories":{},"delete":{},"fork":{},"mcp":{"http":{},"stdio":{}},"prompt":{"embeddedContext":{},"image":{}},"systemPrompt":{"mode":{"override":{}}}}},"info":{"name":"@agentclientprotocol/claude-agent-acp","title":"Claude Agent","version":"0.97.0"},"protocolVersion":2}}}
{"from":"client","msg":{"id":2,"jsonrpc":"2.0","method":"session/new","params":{"cwd":"/private/var/folders/gx/1228y8wj7bx6dl6m9syzrb340000gn/T/.tmpE33kj8","mcpServers":[]}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"_auth/status_update","params":{"authStatus":{"account":{"email":"redacted","organization":"redacted","plan":"max"},"kind":"account","label":"Claude Max"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"_auth/status_update","params":{"authStatus":{"account":{"email":"redacted","organization":"redacted","plan":"Claude Max"},"kind":"account","label":"Claude Max"}}}}
{"from":"agent","msg":{"id":2,"jsonrpc":"2.0","result":{"availableCommands":[{"description":"Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill. (user)","name":"find-skills"},{"description":"Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs. (user)","name":"hyperframes"},{"description":"The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures. (user)","name":"hyperframes-cli"}],"configOptions":[{"category":"mode","configId":"mode","currentValue":"default","description":"Session permission mode","name":"Mode","options":[{"description":"Always ask before making changes","name":"Manual","value":"default"},{"description":"Automatically accept all file edits","name":"Accept edits","value":"acceptEdits"},{"description":"Create a plan before making changes","name":"Plan","value":"plan"},{"description":"Claude handles permission decisions","name":"Auto","value":"auto"},{"description":"Accepts all permissions","name":"Bypass permissions","value":"bypassPermissions"}],"type":"select"},{"category":"model","configId":"model","currentValue":"opus","description":"AI model to use","name":"Model","options":[{"description":"Sonnet 5.5","name":"Default (recommended)","value":"default"},{"description":"For complex work and everyday tasks","name":"Opus 5.5","value":"opus"},{"description":"For your toughest challenges","name":"Fable 5.1","value":"fable"},{"description":"Most efficient for simpler tasks","name":"Sonnet 5.5","value":"sonnet"},{"description":"Fastest for quick answers","name":"Haiku 5.5","value":"haiku"},{"description":"Fastest for quick answers","name":"Haiku 4.5","value":"claude-haiku-4-5-20251001"},{"description":"Efficient for routine tasks","name":"Sonnet 5","value":"claude-sonnet-5"},{"description":"Best for everyday, complex tasks","name":"Opus 5","value":"claude-opus-5"},{"description":"Most capable for your hardest and longest-running tasks","name":"Fable 5","value":"claude-fable-5"},{"description":"Best for everyday, complex tasks","name":"Opus 4.8","value":"claude-opus-4-8"},{"description":"Best for everyday, complex tasks","name":"Opus 4.7","value":"claude-opus-4-7"},{"description":"Best for everyday, complex tasks","name":"Opus 4.6","value":"claude-opus-4-6"},{"description":"Efficient for routine tasks","name":"Sonnet 4.6","value":"claude-sonnet-4-6"}],"type":"select"},{"category":"thought_level","configId":"effort","currentValue":"medium","description":"Available effort levels for this model","name":"Effort","options":[{"name":"Default","value":"default"},{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"},{"name":"Xhigh","value":"xhigh"},{"name":"Max","value":"max"}],"type":"select"},{"category":"model_config","configId":"fast","currentValue":false,"description":"Faster responses on supported models","name":"Fast mode","type":"boolean"},{"category":"model_config","configId":"ultracode","currentValue":false,"description":"Dynamic workflows on every task, at any effort level","name":"Ultracode","type":"boolean"},{"configId":"agent","currentValue":"default","description":"Main-thread agent persona","name":"Agent","options":[{"description":"Standard Claude Code agent","name":"Default","value":"default"},{"description":"Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.","name":"code-simplifier:code-simplifier","value":"code-simplifier:code-simplifier"},{"description":"Agent from sentry-skills plugin","name":"sentry-skills:code-simplifier","value":"sentry-skills:code-simplifier"},{"description":"Agent from sentry-skills plugin","name":"sentry-skills:senpai","value":"sentry-skills:senpai"}],"type":"select"}],"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04"}}}
{"from":"client","msg":{"id":3,"jsonrpc":"2.0","method":"session/set_config_option","params":{"configId":"model","sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","type":"id","value":"haiku"}}}
{"from":"agent","msg":{"id":3,"jsonrpc":"2.0","result":{"configOptions":[{"category":"mode","configId":"mode","currentValue":"default","description":"Session permission mode","name":"Mode","options":[{"description":"Always ask before making changes","name":"Manual","value":"default"},{"description":"Automatically accept all file edits","name":"Accept edits","value":"acceptEdits"},{"description":"Create a plan before making changes","name":"Plan","value":"plan"},{"description":"Claude handles permission decisions","name":"Auto","value":"auto"},{"description":"Accepts all permissions","name":"Bypass permissions","value":"bypassPermissions"}],"type":"select"},{"category":"model","configId":"model","currentValue":"haiku","description":"AI model to use","name":"Model","options":[{"description":"Sonnet 5.5","name":"Default (recommended)","value":"default"},{"description":"For complex work and everyday tasks","name":"Opus 5.5","value":"opus"},{"description":"For your toughest challenges","name":"Fable 5.1","value":"fable"},{"description":"Most efficient for simpler tasks","name":"Sonnet 5.5","value":"sonnet"},{"description":"Fastest for quick answers","name":"Haiku 5.5","value":"haiku"},{"description":"Fastest for quick answers","name":"Haiku 4.5","value":"claude-haiku-4-5-20251001"},{"description":"Efficient for routine tasks","name":"Sonnet 5","value":"claude-sonnet-5"},{"description":"Best for everyday, complex tasks","name":"Opus 5","value":"claude-opus-5"},{"description":"Most capable for your hardest and longest-running tasks","name":"Fable 5","value":"claude-fable-5"},{"description":"Best for everyday, complex tasks","name":"Opus 4.8","value":"claude-opus-4-8"},{"description":"Best for everyday, complex tasks","name":"Opus 4.7","value":"claude-opus-4-7"},{"description":"Best for everyday, complex tasks","name":"Opus 4.6","value":"claude-opus-4-6"},{"description":"Efficient for routine tasks","name":"Sonnet 4.6","value":"claude-sonnet-4-6"}],"type":"select"},{"category":"thought_level","configId":"effort","currentValue":"high","description":"Available effort levels for this model","name":"Effort","options":[{"name":"Default","value":"default"},{"name":"Low","value":"low"},{"name":"Medium","value":"medium"},{"name":"High","value":"high"},{"name":"Xhigh","value":"xhigh"},{"name":"Max","value":"max"}],"type":"select"},{"category":"model_config","configId":"ultracode","currentValue":false,"description":"Dynamic workflows on every task, at any effort level","name":"Ultracode","type":"boolean"},{"configId":"agent","currentValue":"default","description":"Main-thread agent persona","name":"Agent","options":[{"description":"Standard Claude Code agent","name":"Default","value":"default"},{"description":"Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.","name":"code-simplifier:code-simplifier","value":"code-simplifier:code-simplifier"},{"description":"Agent from sentry-skills plugin","name":"sentry-skills:code-simplifier","value":"sentry-skills:code-simplifier"},{"description":"Agent from sentry-skills plugin","name":"sentry-skills:senpai","value":"sentry-skills:senpai"}],"type":"select"}]}}}
{"from":"client","msg":{"id":4,"jsonrpc":"2.0","method":"session/prompt","params":{"prompt":[{"text":"Reply with just the word: one","type":"text"}],"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04"}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"content":[{"text":"Reply with just the word: one","type":"text"}],"messageId":"c66fd662-310d-4858-bffb-9a2920a5ab31","sessionUpdate":"user_message"}}}}
{"from":"agent","msg":{"id":4,"jsonrpc":"2.0","result":{"messageId":"c66fd662-310d-4858-bffb-9a2920a5ab31"}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"sessionUpdate":"state_update","state":"running"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"availableCommands":[{"description":"Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill. (user)","name":"find-skills"},{"description":"Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs. (user)","name":"hyperframes"},{"description":"The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures. (user)","name":"hyperframes-cli"}],"sessionUpdate":"available_commands_update"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"_auth/status_update","params":{"authStatus":{"account":{"email":"redacted","organization":"redacted","plan":"max"},"kind":"account","label":"Claude Max"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"sessionUpdate":"session_info_update","title":"One word reply","updatedAt":"2026-10-28T13:20:18.172Z"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"_meta":{"_claude/model":"claude-haiku-5-5"},"sessionUpdate":"usage_update","size":1000000,"used":27714}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"content":{"text":"one","type":"text"},"messageId":"msg_011CgUhkTL5TgwLwe68nt3Jm","sessionUpdate":"agent_message_chunk"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"_meta":{"_claude/model":"claude-haiku-5-5"},"sessionUpdate":"usage_update","size":1000000,"used":27716}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"_meta":{"_claude/model":"claude-haiku-5-5","_claude/origin":{"kind":"human"}},"cost":{"amount":0.00319086,"currency":"USD"},"sessionUpdate":"usage_update","size":1000000,"used":27716}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"_meta":{"quota":{"model_usage":[{"model":"claude-haiku-5-5","token_count":{"cachedInputTokens":13036,"cachedWriteTokens":14675,"inputTokens":1175,"outputTokens":16,"reasoningOutputTokens":0,"totalTokens":28902}}],"token_count":{"cachedInputTokens":13036,"cachedWriteTokens":14675,"inputTokens":2,"outputTokens":3,"reasoningOutputTokens":0,"totalTokens":27716}}},"sessionUpdate":"state_update","state":"idle","stopReason":"end_turn","usage":{"cachedReadTokens":13036,"cachedWriteTokens":14675,"inputTokens":2,"outputTokens":3,"totalTokens":27716}}}}}
{"from":"client","msg":{"id":5,"jsonrpc":"2.0","method":"session/prompt","params":{"prompt":[{"text":"Reply with just the word: two","type":"text"}],"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04"}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"content":[{"text":"Reply with just the word: two","type":"text"}],"messageId":"c98a76f9-c9e5-447c-bf74-5b17c2fa7c49","sessionUpdate":"user_message"}}}}
{"from":"agent","msg":{"id":5,"jsonrpc":"2.0","result":{"messageId":"c98a76f9-c9e5-447c-bf74-5b17c2fa7c49"}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"sessionUpdate":"state_update","state":"running"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"availableCommands":[{"description":"Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill. (user)","name":"find-skills"},{"description":"Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs. (user)","name":"hyperframes"},{"description":"The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures. (user)","name":"hyperframes-cli"}],"sessionUpdate":"available_commands_update"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"_meta":{"_claude/model":"claude-haiku-5-5"},"sessionUpdate":"usage_update","size":1000000,"used":31358}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"content":{"text":"two","type":"text"},"messageId":"msg_011CgUhkfhDvya3fv5cKT6Jt","sessionUpdate":"agent_message_chunk"}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"_meta":{"_claude/model":"claude-haiku-5-5","_claude/origin":{"kind":"human"}},"cost":{"amount":0.00698632,"currency":"USD"},"sessionUpdate":"usage_update","size":1000000,"used":31358}}}}
{"from":"agent","msg":{"jsonrpc":"2.0","method":"session/update","params":{"sessionId":"73b95688-1dae-428c-bdae-6e4aea724f04","update":{"_meta":{"quota":{"model_usage":[{"model":"claude-haiku-5-5","token_count":{"cachedInputTokens":13036,"cachedWriteTokens":18317,"inputTokens":2,"outputTokens":3,"reasoningOutputTokens":0,"totalTokens":31358}}],"token_count":{"cachedInputTokens":13036,"cachedWriteTokens":18317,"inputTokens":2,"outputTokens":3,"reasoningOutputTokens":0,"totalTokens":31358}}},"sessionUpdate":"state_update","state":"idle","stopReason":"end_turn","usage":{"cachedReadTokens":13036,"cachedWriteTokens":18317,"inputTokens":2,"outputTokens":3,"totalTokens":31358}}}}}