[ 
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)

Reply via email to