StreamConsumer.Incremental now returns StreamState (content, reasoning, tools, query, sources) instead of just visible text. All sentinel sections are parsed and structured: - \x01 REASONING: captured as separate string - \x02 SOURCES: parsed as List<SearchSource> (title, url, snippet) - \x03 TOOL: parsed as List<ToolEvent> (type, name, args, result, elapsed) - \x04 QUERY: captured as search query string UI components: - ReasoningBlock: collapsible "Gedankengang" with expand/collapse animation - ToolEventsBlock: shows tool-call steps with status icons (start/end/error) - SourcesBlock: web search sources as compact cards with domain extraction Message model extended with reasoning, tools, query, sources fields. KaizenApi.chat() returns Flow<StreamState> instead of Flow<String>. ChatScreen wires all fields to Message during streaming. Fixed: empty append() on Incremental no longer prematurely ends tool phase. StreamConsumerTest rewritten to verify all parsed sections.
103 lines
5.2 KiB
XML
103 lines
5.2 KiB
XML
<resources>
|
|
<!-- Greeting -->
|
|
<string name="greeting_morning">Good Morning</string>
|
|
<string name="greeting_day">Good Afternoon</string>
|
|
<string name="greeting_evening">Good Evening</string>
|
|
<string name="greeting_night">Hello</string>
|
|
<string name="hero_headline">What\'s up?</string>
|
|
|
|
<!-- Chat -->
|
|
<string name="chat_input_placeholder">Type a message …</string>
|
|
<string name="chat_no_conversations">No chats yet</string>
|
|
<string name="chat_locked">Locked Chat</string>
|
|
<string name="chat_locked_badge">Locked</string>
|
|
<string name="chat_new">New Chat</string>
|
|
<string name="chat_search">Search…</string>
|
|
<string name="chat_attachment">Attachment</string>
|
|
<string name="chat_call">Call</string>
|
|
<string name="chat_remove">Remove</string>
|
|
<string name="chat_error">Error</string>
|
|
<string name="chat_open_menu">Open menu</string>
|
|
|
|
<!-- Stream blocks -->
|
|
<string name="stream_reasoning">Reasoning</string>
|
|
<string name="stream_sources">Sources</string>
|
|
|
|
<!-- Chat errors -->
|
|
<string name="error_session_expired">Session expired. Please sign in again.</string>
|
|
<string name="error_credits_exhausted">Credits exhausted.</string>
|
|
<string name="error_rate_limited">Too many requests. Please wait.</string>
|
|
<string name="error_server">Server error (%1$d).</string>
|
|
<string name="error_no_connection">No connection to server.</string>
|
|
|
|
<!-- Mode pills -->
|
|
<string name="mode_standard">Standard</string>
|
|
<string name="mode_sampling">Sampling</string>
|
|
<string name="mode_image">Image</string>
|
|
<string name="mode_search">Search</string>
|
|
<string name="mode_video">Video</string>
|
|
<string name="mode_audio">Audio</string>
|
|
|
|
<!-- Suggestion pills -->
|
|
<string name="suggest_brainstorm">Brainstorm</string>
|
|
<string name="suggest_brainstorm_prompt">Let\'s brainstorm on a topic.</string>
|
|
<string name="suggest_image">Generate Image</string>
|
|
<string name="suggest_image_prompt">Generate an image of a mountain lake at sunrise.</string>
|
|
<string name="suggest_video">Create Video</string>
|
|
<string name="suggest_video_prompt">Create a short video of a city at night.</string>
|
|
<string name="suggest_web">Search the Web</string>
|
|
<string name="suggest_web_prompt">Search the web for the latest AI news.</string>
|
|
|
|
<!-- Sidebar -->
|
|
<string name="sidebar_brand">kaizen</string>
|
|
<string name="sidebar_pinned">★ PINNED</string>
|
|
<string name="sidebar_today">TODAY</string>
|
|
<string name="sidebar_yesterday">YESTERDAY</string>
|
|
<string name="sidebar_earlier">EARLIER</string>
|
|
<string name="sidebar_logout">Sign Out</string>
|
|
<string name="sidebar_settings">Settings</string>
|
|
|
|
<!-- Model sheet -->
|
|
<string name="model_sheet_title">Select Model</string>
|
|
<string name="model_search_placeholder">Search models…</string>
|
|
<string name="model_search_clear">Clear</string>
|
|
<string name="model_connecting">Connecting…</string>
|
|
<string name="model_no_results">No matches</string>
|
|
<string name="model_favorite">Favorite</string>
|
|
<string name="model_selected">Selected</string>
|
|
<string name="model_favorites_group">★ Favorites</string>
|
|
|
|
<!-- Login -->
|
|
<string name="login_welcome">Welcome</string>
|
|
<string name="login_subtitle">Sign in to your Kaizen instance</string>
|
|
<string name="login_url_placeholder">https://your-instance.com</string>
|
|
<string name="login_email_placeholder">Email</string>
|
|
<string name="login_password_placeholder">Password</string>
|
|
<string name="login_submit">Sign In</string>
|
|
<string name="login_error_credentials">Invalid email or password.</string>
|
|
<string name="login_error_rate_limited">Too many attempts. Please wait.</string>
|
|
<string name="login_error_connection">Connection failed. Check server address.</string>
|
|
|
|
<!-- Settings -->
|
|
<string name="settings_title">Settings</string>
|
|
<string name="settings_back">Back</string>
|
|
<string name="settings_section_appearance">APPEARANCE</string>
|
|
<string name="settings_section_profile">PROFILE & ACCOUNT</string>
|
|
<string name="settings_section_ai">AI PROFILE & CONTEXT</string>
|
|
<string name="settings_accent_title">Accent Color</string>
|
|
<string name="settings_accent_desc">Choose the app color scheme</string>
|
|
<string name="settings_appearance_title">Appearance</string>
|
|
<string name="settings_appearance_desc">Set light/dark appearance</string>
|
|
<string name="settings_name_title">Display Name</string>
|
|
<string name="settings_name_desc">Change your display name</string>
|
|
<string name="settings_email_title">Email Address</string>
|
|
<string name="settings_ai_title">System Prompt & Facts</string>
|
|
<string name="settings_appearance_light">Light</string>
|
|
<string name="settings_appearance_dark">Dark</string>
|
|
<string name="settings_appearance_system">System</string>
|
|
<string name="settings_language_title">Language</string>
|
|
<string name="settings_language_desc">Choose the app language</string>
|
|
<string name="settings_language_system">System</string>
|
|
<string name="settings_language_de">Deutsch</string>
|
|
<string name="settings_language_en">English</string>
|
|
</resources>
|