[
https://issues.apache.org/jira/browse/CAMEL-23978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Adriano Machado updated CAMEL-23978:
------------------------------------
Description:
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.
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.
was:
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.
> 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
> Priority: Major
>
> 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.
> 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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)