feat(examples/ag-ui): canonical demo toolbar parity (modes + knobs over input.state)#656
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ation matrix + gap protocol) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Merges AgentSubmitInput.state into the AG-UI source agent's state before each run (both the normal and resume paths), and reflects the patch optimistically in the local state signal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add toolbar.spec.ts with 3 new tests (modes segmented control, effort URL knob, toolbar submit smoke). Fix AgUiShell.urlKnob() to read from window.location.search instead of ActivatedRoute/router.url (both unavailable at bootstrap in a non-routed shell component). Raise playwright.config.ts test timeout to 60s to cover the interrupt-approval assertion. All 13 specs pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Semantic merge — #655 landed on the pre-shell app, so its features relocate: - ItineraryStore provider + router union in app.config. - Itinerary panel hosted in the shell's new two-column body (toolbar-aware). - clientTools built once in AgUiShell; all three modes bind <chat [clientTools]>. - Welcome chips: #655's seven capability prompts presented via the canonical two-tier featured + 'More prompts' UI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Capability gap caught by the toolbar-parity forcing function: only the <chat> composition exposed [clientTools]; the popup and sidebar compositions silently dropped it. Add the input + inner-<chat> forward in both, matching their existing views/modelOptions pass-through pattern. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 1 of the toolbar-parity + AG-UI capability-audit campaign (spec:
docs/superpowers/specs/2026-06-11-ag-ui-demo-toolbar-design.md). The AG-UI example's static header is replaced with the canonical demo toolbar at functional parity.libs/ag-ui):submit()now forwardsinput.stateonto the AG-UI run input (RunAgentInput.state) on both the normal and resume paths, with optimistic localstate()reflection. 4 new unit tests; 128/128 green. A live spike proved the mechanism end-to-end (state.gen_ui_mode=json-renderflipped the graph's tool togenerate_json_render_spec).AgUiShell(new): Embed/Popup/Sidebar segmented modes (new router;/→/embedkeeps existing e2e untouched), Model/Effort/Gen-UI/Themechat-selects with the canonical option lists, dark/light toggle in the toolbar, URL-knob (?model=&effort=&genui=&theme=&scheme=) + localStorage persistence (URL > stored > default), theme reflection onto<html>, and a submit wrapper merging{model, reasoning_effort, gen_ui_mode}intoinput.state— the same pattern the canonical demo uses. Interrupt panel moved into the shell unchanged.inject(AgUiShell).agent.window.location.search).Trimmed by design (no thread CRUD over AG-UI): threads sidenav, search palette, projects, subagents region.
Phase 2 follows merge: Chrome MCP capability audit of the full matrix (interrupt edit/respond/ignore, reasoning display, json-render, model knob, stop, regenerate…) — gaps get closed in scope per the spec.
Test Plan
ag-ui),examples/ag-ui — e2e,ag-ui demo → Vercelgreen.🤖 Generated with Claude Code