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)