agent_ui_kit_providers
Themeable Flutter widgets for AI chat: streaming markdown bubbles, tool-call cards, a composer, and optional OpenRouter/Gemini providers.
What this package is like to depend on
Last release 24 days ago
30 Jul 2026
Too new to tell
only 2 dated releases
Nearly every release is documented
notes for 2 of 2 stable releases
Nothing withdrawn
no release was ever pulled
0 months old
2 releases · first in 2026
2 releases in the last 12 months
see the full history below
Release timeline
2 releases · Jul 2026 to Jul 2026Releases
latest 2-
1.1.030 Jul 2026Release notes
Open source →Fixes
ChatController— streams could keep delivering tokens afterstop(),removeMessage()ordispose(); unfinished tool calls are now reliably marked cancelled and subscriptions torn down in all three paths.ConversationController— loadinginitialConversationswhose messages already existed in the liveChatControllercould duplicate them; now guarded.ChatInputBar— guarded against double-submit, fixed the character counter not updating whenmaxLengthis set, and attachments are now cleared viaonRemoveAttachmenton send.
Features
- Streaming-aware markdown —
MarkdownView/MarkdownParsergained anisStreamingflag that optimistically renders unclosed**/_/~~/`spans and pending table headers while a reply is still arriving, instead of showing the raw markers until the closing token lands. - Response time and interrupted state —
ChatBubble/MessageListcan show how long a reply took (ChatMessage.responseTime) and an "Interrupted" caption for messages ended bystop()(ChatMessage.wasStopped). GeminiProvider— added image attachment support (inline data and file-data parts).ChatScreen— addedshowHistoryandhistoryDrawerBuilderto customize or suppress the history drawer.ChatMessage/ToolCall—copyWithnow distinguishes an omitted argument from an explicitnull, soerror/input/outputcan be cleared intentionally.
Docs
- README now includes screenshots and GIFs throughout (streaming reply, tool-call round trip, theme
switching, widget gallery), and
pubspec.yamlgained ascreenshots:carousel entry for the pub.dev package page.
-
1.0.027 Jul 2026Release notes
Open source →Initial release.
Chat runtime
ChatController— conversation state with streaming, cancellation, retry and tool-call bookkeeping. Supports a managedsend()API backed by anAgentResponder, and a manual API (beginAssistantMessage/appendToken/upsertToolCall/completeMessage) for responses that interleave text with tool calls.ConversationController— manages whichConversationis loaded into aChatController. New chat, switch threads, rename, pin, delete, and search across titles and message bodies, grouped by recency.- Prompt editing — user messages can be rewritten in place via
MessageEditor.ChatController.editMessagediscards everything after the edited message and regenerates, since replies to the old wording no longer belong to the thread. Disable withallowEditing: false. - Models —
ChatMessage,ToolCall,Attachment,Citation,Conversation, withcopyWith, value equality and status lifecycles.
Widgets
ChatScreen— a complete prebuilt chat surface. Passconversations:and it gains aChatHistoryDrawerand a new-chat action.MessageList— auto-scroll that stops following when the user scrolls up, message grouping, and a jump-to-latest button.ChatBubble— markdown body, attachments, tool calls, citations, status and actions (copy, regenerate, feedback, edit), laid out in a single row beneath the bubble.CodeBlock— syntax highlighting, language label, copy button, and collapsing for very long snippets.ChatInputBar— a themeable composer; every control sharescontrolSizeso it stays a true capsule with no dead space around its icons.MarkdownView— headings, lists, task lists, tables, blockquotes, code, links, images and autolinks, built to stream: it caches its previous parse and re-parses only the trailing block on each append, keeping rebuild cost linear across a streamed reply.SyntaxHighlighter— Dart, JavaScript, TypeScript, Python, JSON, SQL and shell, with a sensible fallback for unknown languages.- More widgets —
AgentAvatar,CitationChip,CitationList,AttachmentPreview,SuggestionChips,ChatEmptyState,MessageActionBar,ThinkingBubble,ChatHistoryDrawer.
Theming
- Design tokens —
AgentColors,AgentTypography,AgentSpacing,AgentRadii,AgentMotion, composed intoAgentThemeDatawithlight(),dark(),glass()andfromTheme()variants. AnimatedAgentTheme— cross-fades between themes instead of snapping.- Reduced-motion support throughout, via
AgentTheme.motionOf. Semantics labels on every interactive element.
Providers (
package:agent_ui_kit_providers/providers.dart)OpenRouterProviderandGeminiProvider— stream a real model's replies straight into aChatController.asResponder()adapts either to the managedsend()API;sendMessage()drives the manual API so tool calls the model requests surface as realToolCalls. Neither executes tools itself — reporting a result back is the host app's job viacontroller.upsertToolCall.AgentProvider,ProviderEvent/TextDelta/ToolCallEvent,AgentProviderException— the shared base types behind both providers.- This is the only part of the package with a dependency of its own (
http), imported separately fromlib/providers.dart. The UI layer (widgets, theme, markdown, controllers, models) has none.