Adriano Machado created CAMEL-23978:
---------------------------------------

             Summary: camel-jbang tui: AI panel Claude Code look, thinking 
animation, and Gemini/Azure OpenAI support
                 Key: CAMEL-23978
                 URL: https://issues.apache.org/jira/browse/CAMEL-23978
             Project: Camel
          Issue Type: New Feature
          Components: camel-jbang
            Reporter: Adriano Machado


h3. Context

{{AiPanel}} ({{dsl/camel-jbang/camel-jbang-plugin-tui/.../tui/AiPanel.java}}) 
is the TUI's F8 prompt panel. It shares its LLM plumbing with the {{camel ask}} 
CLI command through {{LlmClient}} and {{AskTools}}. Today it:

* Shows a plain text "thinking..." line with dots animated from wall-clock 
time, embedded directly in the markdown conversation stream.
* Renders the input line as a plain {{"> "}} prompt with no accent styling.
* Talks to three provider families via {{LlmClient}}: Ollama, 
OpenAI-compatible, and Anthropic (including Vertex AI-hosted Anthropic models). 
Provider/model selection is 100% automatic (env-var detection at panel-open 
time), with no way to see or change it from inside the TUI.

A full design spec is checked into the repo at 
{{docs/superpowers/specs/2026-07-09-ai-panel-claude-code-look-design.md}} 
(status: Approved for planning).

h3. Goals

# Replace the plain-text thinking indicator with an animated spinner, a 
camel-themed rotating status verb, and a clear interrupt affordance ({{Esc}} in 
addition to {{Ctrl+C}}).
# Restyle the input prompt to look more intentional/Claude-Code-like ({{"> "}} 
→ accent-colored {{"❯ "}}), without spending extra vertical rows the compact 
panel can't spare.
# Add native Gemini and Azure OpenAI support to {{LlmClient}} (new {{ApiType}} 
values, request/response builders, auto-detect env-var chain, and matching 
{{camel ask --api-type}} values).
# Let users see and change the active provider/model from inside the TUI: a 
persisted default in the Settings dialog (AI Provider / AI Model / AI Base URL 
rows) and a quick session-only switch via a new {{Ctrl+P}} popup.

h3. Non-goals

* AWS Bedrock support (left for a future design).
* Token-by-token streaming reveal of the final answer (left for a future 
design).
* A nested bordered box around the input line, matching Claude Code's literal 
3-row input box.
* Persisting API keys in TUI settings: secrets remain env-var only.
* Changes to {{camel ask}}'s existing CLI flags beyond the two new 
{{--api-type}} values.

See the design doc for full design details (thinking indicator layout, 
LlmClient request/response shapes for Gemini and Azure OpenAI, Settings dialog 
and Ctrl+P popup behavior) and the testing approach section.



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

Reply via email to