Luigi De Masi created CAMEL-24663:
-------------------------------------

             Summary: Camel TUI: ACP coding-agent provider for the AI panel
                 Key: CAMEL-24663
                 URL: https://issues.apache.org/jira/browse/CAMEL-24663
             Project: Camel
          Issue Type: New Feature
          Components: camel-jbang
    Affects Versions: 4.22.0
            Reporter: Luigi De Masi
            Assignee: Luigi De Masi


h3. What

The TUI's F8 AI panel today runs its own tool-calling loop against a raw LLM 
API (Anthropic, OpenAI, Gemini, Azure, Watsonx, Ollama). This adds a second 
backend: the panel can hand the conversation to an external coding agent that 
speaks the Agent Client Protocol (ACP, https://agentclientprotocol.com), 
spawned as a subprocess. The agent receives the TUI's own MCP server in 
{{session/new}} and drives the TUI through the same {{tui_*}} tools external 
MCP clients use, while its answer, tool calls and permission requests are shown 
in the panel.

h3. Why

* Users get their agent's subscription login (Claude Code, ChatGPT/Codex, IBM 
Bob, ...) instead of managing API keys in the TUI.
* Models that reliably call tools, removing the "at least 14B local model" 
caveat of the Ollama path.
* The agent brings its own file and terminal tools, so it can fix the route 
source, not only observe.
* One protocol covers every ACP agent; the ACP registry lists about 40.

h3. Design

* New provider ids next to the existing ones (Ctrl+P / 
{{camel.tui.ai.provider}}): {{acp:claude}}, {{acp:codex}}, {{acp:bob}}, 
{{acp:qwen}}, {{acp:opencode}}, {{acp:dsh}} and {{acp:custom}} 
({{camel.tui.ai.acp.command}}).
* A hand-rolled ACP v1 client over stdio using camel-util-json; no new 
dependency (the ACP Java SDK would add Reactor and Jackson and is itself 0.x). 
Protocol v1 only; v2 is still labelled draft by the ACP project.
* Verified adapters: Claude Code and Codex via the official 
{{@agentclientprotocol}} npm adapters, IBM Bob Shell 2.0.2 ({{bob acp}}), Qwen 
Code ({{qwen --acp}}), OpenCode ({{opencode acp}}), DeepSeek Harness ({{dsh 
--profile acp}}, preview). All advertise HTTP MCP support and negotiate 
protocol 1. Gemini CLI and Antigravity are deliberately not presets (Gemini CLI 
stopped serving personal Google accounts in June 2026; the Antigravity CLI has 
no ACP mode yet); both remain reachable through {{acp:custom}}.
* The embedded MCP server is started on demand on an ephemeral loopback port 
when an ACP provider is used; {{--mcp}} is not required.
* Permissions: calls to the camel-tui MCP tools are approved silently; anything 
else the agent wants to run (file edits, commands) opens a popup with the 
agent's own options (Enter selects, Esc rejects, Ctrl+C cancels the turn).
* Streamed answers, one status line per tool call, cancel with Esc/Ctrl+C, 
{{/clear}} opens a fresh session, agent slash commands and skills reachable as 
{{/agent:<name>}} and listed in the completion hints, a header strip showing 
agent, session, working directory and command count.
* Lazy spawn on the first question so a slow first {{npx}} download never 
freezes the UI; one {{authenticate}} attempt for agent-managed login methods, 
otherwise a login hint per preset.
* Docs: new "Using a coding agent (ACP)" subsection in the TUI manual. No 
upgrade-guide entry: nothing existing changes behaviour.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to