Commit Graph

964 Commits

Author SHA1 Message Date
Sam Julien af2ecb2524 docs(showcase/ag2): region markers for shared-state-read-write + subagents
Catches up ag2's shared-state-read-write and subagents demos (added in
PR #4359, post smalls batch 1) to parity with langgraph-python.

- shared-state-read-write: nested use-agent/use-agent-read and
  set-state/use-agent-write on page.tsx; notes-card-render and
  preferences-card-render on the card components (6 regions total)
- subagents: delegation-log-frontend on the log component;
  subagent-setup + supervisor-delegation-tools on src/agents/subagents.py
  wrapping AG2/AutoGen ConversableAgent definitions and the
  @tool-decorated supervisor delegation functions (3 regions total)
2026-04-29 08:13:27 -07:00
Sam Julien a703664510 fix(showcase/mastra): restore region markers stripped by e9a2e143d
Restores @region[provider-setup] + @region[configure-suggestions] on
agentic-chat/page.tsx and @region[frontend-tool-registration] +
@region[frontend-tool-handler] on frontend-tools/page.tsx that were
inadvertently dropped during the shared-tools symlink refactor.
2026-04-29 08:13:27 -07:00
Alem Tuzlak cd91555095 Merge remote-tracking branch 'origin/main' into docs/langgraph-python-demo-readmes
# Conflicts:
#	showcase/integrations/ag2/src/app/demos/a2ui-fixed-schema/README.md
#	showcase/integrations/ag2/src/app/demos/agentic-chat-reasoning/README.md
#	showcase/integrations/ag2/src/app/demos/chat-slots/README.md
#	showcase/integrations/ag2/src/app/demos/declarative-gen-ui/README.md
#	showcase/integrations/ag2/src/app/demos/frontend-tools-async/README.md
#	showcase/integrations/ag2/src/app/demos/headless-complete/README.md
#	showcase/integrations/ag2/src/app/demos/hitl-in-app/README.md
#	showcase/integrations/ag2/src/app/demos/hitl-in-chat/README.md
#	showcase/integrations/ag2/src/app/demos/mcp-apps/README.md
#	showcase/integrations/ag2/src/app/demos/readonly-state-agent-context/README.md
#	showcase/integrations/ag2/src/app/demos/reasoning-default-render/README.md
#	showcase/integrations/ag2/src/app/demos/tool-rendering-custom-catchall/README.md
#	showcase/integrations/ag2/src/app/demos/tool-rendering-default-catchall/README.md
#	showcase/integrations/ag2/src/app/demos/tool-rendering-reasoning-chain/README.md
#	showcase/integrations/claude-sdk-python/src/app/demos/headless-simple/README.md
#	showcase/integrations/claude-sdk-python/src/app/demos/prebuilt-popup/README.md
#	showcase/integrations/claude-sdk-python/src/app/demos/prebuilt-sidebar/README.md
#	showcase/integrations/crewai-crews/src/app/demos/beautiful-chat/README.md
#	showcase/integrations/langgraph-fastapi/src/app/demos/gen-ui-interrupt/README.md
#	showcase/integrations/langgraph-fastapi/src/app/demos/interrupt-headless/README.md
#	showcase/integrations/langgraph-python/src/app/demos/shared-state-read-write/README.md
#	showcase/integrations/langgraph-python/src/app/demos/shared-state-read/README.md
#	showcase/integrations/langgraph-python/src/app/demos/shared-state-streaming/README.md
#	showcase/integrations/langgraph-python/src/app/demos/subagents/README.md
#	showcase/shell-docs/src/data/demo-content.json
#	showcase/shell-dojo/src/data/demo-content.json
#	showcase/shell/src/data/demo-content.json
#	showcase/shell/src/data/registry.json
2026-04-29 16:27:56 +02:00
Alem Tuzlak 328304306f fix(showcase): claude-sdk-ts manifest paths + generate-catalog test fixtures
- claude-sdk-typescript manifest: G3's headless-complete and a2ui-fixed-schema entries pointed at -agent.ts paths but the actual files are -prompt.ts. Bundle-demo-content blew up on the missing files.
- generate-catalog test: update reference and crewai-crews wired-count assertions for the post-blitz state. Multiple integrations now tie at 39 wired; auto-detection picks the alphabetical winner (langgraph-fastapi) over langgraph-python. crewai wired count moved to 37.
2026-04-29 13:32:54 +02:00
Alem Tuzlak f9808d7e2c chore(showcase): bump validate-pins baseline 129 → 132
agno's package.json adds @copilotkit/shared, @copilotkit/voice, and openai for the new voice/multimodal/byoc demos using the same 'next' / '^5.9.0' pins langgraph-python uses (those identical pins are already in the baseline). Bumping the baseline per the validator's explicit suggestion.
2026-04-29 13:24:17 +02:00
Alem Tuzlak b4511713ea fix(showcase/ag2): avoid 'paris' substring in beautiful-chat suggestion 2026-04-29 13:17:07 +02:00
Alem Tuzlak 7e4490eebb fix(showcase/crewai): stub mcp_apps_agent module in test_forwarded_props 2026-04-29 13:11:19 +02:00
Alem Tuzlak 042dde6437 fix(showcase): CI fixes — mastra duplicate hitl, crewai test stub 2026-04-29 13:11:18 +02:00
github-actions[bot] 7d131608c0 style: auto-fix formatting 2026-04-29 11:03:09 +00:00
Alem Tuzlak b375349e6a fix(showcase): cr-loop fixes — manifest validation, types, env-var fallbacks
- generate-registry: cross-validate not_supported_features against features list
- catalog-types: widen manifestation union to include 'starter'
- claude-sdk-python: drop invalid 'declarative-schema' from generative_ui enum
- crewai-crews: remove duplicate animated_preview_url key in mcp-apps demo
- built-in-agent + pydantic-ai: REASONING_MODEL env-var fallback so deployers can swap if gpt-5.2/gpt-5 isn't available
2026-04-29 12:58:31 +02:00
Alem Tuzlak 1727746a5e fix(showcase/claude-sdk-ts): add a2ui-fixed-schema to features list 2026-04-29 12:42:56 +02:00
Alem Tuzlak 1ba8f91b77 chore(blitz): merge G6 into integration 2026-04-29 12:41:47 +02:00
Alem Tuzlak 366a8b429e chore(blitz): merge G5 into integration 2026-04-29 12:41:45 +02:00
Alem Tuzlak 34befcc3e3 chore(blitz): merge G4 into integration 2026-04-29 12:41:43 +02:00
Alem Tuzlak 335c6c57bc chore(blitz): merge G3 into integration 2026-04-29 12:41:42 +02:00
Alem Tuzlak 01bcebfbf3 chore(blitz): merge G2 into integration 2026-04-29 12:41:40 +02:00
Alem Tuzlak b9dbacd99b feat(showcase): claude-sdk-typescript hitl-in-chat + a2ui-fixed-schema + headless-complete
Wave-3 fill for the Claude Agent SDK (TypeScript) showcase.

- hitl-in-chat / hitl-in-chat-booking: frontend-tool useHumanInTheLoop
  flow with an inline TimePickerCard. Pass-through agent — Claude sees
  the book_call tool definition forwarded via AG-UI and calls it; the
  frontend renders the picker and returns the user's selection.
- a2ui-fixed-schema: dedicated /a2ui-fixed-schema endpoint on the
  Express agent ships flight_schema.json and a display_flight tool that
  emits an a2ui_operations container. New runtime route
  copilotkit-a2ui-fixed-schema runs the A2UI middleware with
  injectA2UITool: false because the backend owns the rendering tool.
- headless-complete: dedicated /headless-complete endpoint exposes
  get_weather + get_stock_price backend tools, frontend ports the
  fully-headless useAgent surface and per-tool renderers from
  claude-sdk-python (highlight_note remains a frontend-only useComponent
  tool). New runtime route copilotkit-headless-complete proxies to it.
2026-04-29 12:40:51 +02:00
Alem Tuzlak 78660ac61e feat(agno): port declarative-gen-ui demo
Adds a dedicated A2UI dynamic-schema cell for the Agno integration:
new `a2ui_dynamic_agent.py` owns its own `generate_a2ui` tool that
reads the runtime-injected client catalog from
`run_context.session_state["copilotkit"]["context"]` and feeds it
to a secondary OpenAI client bound to `render_a2ui`. Result is an
`a2ui_operations` container the runtime A2UI middleware forwards
to the registered frontend catalog renderer.

Unlike the main agent's existing `generate_a2ui` (hardcoded
internal catalog), this dedicated agent stays in sync with whatever
catalog the frontend registers via `<CopilotKit a2ui={{ catalog }}>`.
Frontend ports `page.tsx` + Zod definitions / renderers / catalog
from the langgraph-python reference. Dedicated runtime route at
`/api/copilotkit-declarative-gen-ui` runs with
`injectA2UITool: false` so the agent owns the tool itself.
2026-04-29 12:36:58 +02:00
Alem Tuzlak fbbaccaf54 feat(agno): port a2ui-fixed-schema demo
Adds a dedicated A2UI fixed-schema cell for the Agno integration:
backend `a2ui_fixed_agent.py` ships `flight_schema.json` +
`booked_schema.json` and a single `display_flight` tool that emits
an `a2ui_operations` container directly (no secondary LLM).
Frontend ports `page.tsx` + Zod definitions / renderers / catalog
from the langgraph-python reference. Dedicated runtime route at
`/api/copilotkit-a2ui-fixed-schema` runs the A2UI middleware with
`injectA2UITool: false` so the agent owns its rendering tool.
2026-04-29 12:36:06 +02:00
Alem Tuzlak 53455bfeb9 feat(built-in-agent): add declarative-gen-ui (A2UI dynamic schema) demo
Port the A2UI dynamic-schema demo to the built-in-agent showcase. The
in-process tanstack agent owns a generate_a2ui tool that fires a
secondary LLM call (forced JSON output) to design the surface tree from
the registered client catalog. The dedicated runtime route runs the
A2UI middleware with injectA2UITool: false so the runtime does not
duplicate the tool slot; the middleware still serialises the catalog
into input.context and detects the a2ui_operations container in tool
results.

Manifest: register both new demos under features and demos.
2026-04-29 12:35:26 +02:00
Alem Tuzlak 0db5260f81 feat: add a2ui-fixed-schema demo to langroid showcase 2026-04-29 12:35:13 +02:00
Alem Tuzlak 96725d0478 feat: claude-sdk-python adds hitl-in-chat, declarative-gen-ui, a2ui-fixed-schema, gen-ui-tool-based manifest
- hitl-in-chat (+ booking alias): frontend useHumanInTheLoop book_call tool;
  basic Claude SDK chat agent forwards AG-UI tool defs and lets standard
  tool-call lifecycle resolve the user's choice.
- declarative-gen-ui: backend a2ui_dynamic agent owns generate_a2ui tool
  (calls secondary OpenAI client bound to render_a2ui), dedicated runtime
  route with injectA2UITool: false.
- a2ui-fixed-schema: backend a2ui_fixed ships flight_schema.json and the
  display_flight tool emitting a2ui_operations directly; dedicated runtime
  route with injectA2UITool: false.
- gen-ui-tool-based: manifest entry for the existing haiku demo
  (useFrontendTool + useRenderTool).
- Per-demo READMEs documenting the architectural choice for each cell.
2026-04-29 12:33:41 +02:00
Alem Tuzlak 7c44b71f64 feat(built-in-agent): add a2ui-fixed-schema demo
Port the A2UI fixed-schema flight-card demo to built-in-agent. The
in-process tanstack agent owns a display_flight tool that emits an
a2ui_operations container directly; the dedicated runtime route runs the
A2UI middleware with injectA2UITool: false so the runtime does not
duplicate the slot.
2026-04-29 12:32:45 +02:00
Alem Tuzlak 8d9e2c9a2c feat: add simplified beautiful-chat demo to langroid showcase 2026-04-29 12:31:03 +02:00
Alem Tuzlak 53943a2b7b feat(pydantic-ai): add hitl-in-chat demo with useHumanInTheLoop frontend tool
Ports the langgraph-python hitl-in-chat demo to PydanticAI using the frontend-tool pattern: a Zod-typed book_call tool defined via useHumanInTheLoop renders a TimePickerCard inline in chat. Backend agent is a chat-only PydanticAI Agent with no tools — the AG-UI bridge surfaces the frontend-registered tool to the model on each run. Adds hitl-in-chat-booking as a manifest alias pointing at the same route.
2026-04-29 12:28:59 +02:00
Alem Tuzlak 025c9a2601 chore(blitz): merge F13 into integration 2026-04-29 12:13:57 +02:00
Alem Tuzlak bb961b6f9d chore(blitz): merge F12 into integration 2026-04-29 12:13:56 +02:00
Alem Tuzlak 7eff30a7aa chore(blitz): merge F11 into integration 2026-04-29 12:13:55 +02:00
Alem Tuzlak 8eae4b639e chore(blitz): merge F10 langroid into integration 2026-04-29 12:13:54 +02:00
Alem Tuzlak e9ef6d12cd chore(blitz): merge F9 into integration 2026-04-29 12:13:34 +02:00
Alem Tuzlak c4ec9ee2ff chore(blitz): merge F8 into integration 2026-04-29 12:13:32 +02:00
Alem Tuzlak 895f98a038 chore(blitz): merge F7 llamaindex into integration 2026-04-29 12:13:31 +02:00
Alem Tuzlak ac0183c8a4 chore(blitz): merge F6 into integration 2026-04-29 12:13:13 +02:00
Alem Tuzlak 3863c98acd chore(blitz): merge F5 claude-sdk-python into integration 2026-04-29 12:13:12 +02:00
Alem Tuzlak 6c4e4ed735 chore(blitz): merge F4 into integration 2026-04-29 12:12:24 +02:00
Alem Tuzlak 299a4af70b chore(blitz): merge F3 into integration 2026-04-29 12:12:23 +02:00
Alem Tuzlak afa9a7efdb chore(blitz): merge F2 into integration 2026-04-29 12:12:22 +02:00
Alem Tuzlak b845f62af4 chore(blitz): merge F1 into integration 2026-04-29 12:12:21 +02:00
Alem Tuzlak 47c09df93f chore(blitz): merge D5 into integration 2026-04-29 12:12:20 +02:00
Alem Tuzlak f7ba090a30 chore(blitz): merge D4 into integration 2026-04-29 12:12:20 +02:00
Alem Tuzlak 749d626389 chore(blitz): merge D3 into integration 2026-04-29 12:12:19 +02:00
Alem Tuzlak 20dff72610 feat(langroid): voice, multimodal, byoc-hashbrown, byoc-json-render, mcp-apps demos 2026-04-29 12:09:36 +02:00
Alem Tuzlak 251038127f feat(showcase): mark graph-interrupt features unsupported in built-in-agent
Adds not_supported_features to the manifest for gen-ui-interrupt,
interrupt-headless, and hitl (the LangGraph graph-interrupt variant —
distinct from the supported hitl-in-chat / hitl-in-app / hitl-in-chat-booking).

All three depend on a graph-interrupt primitive that LangGraph
provides via interrupt() nodes. The built-in-agent integration uses
TanStack AI's chat-completions adapter, which has no equivalent
node-level pause/resume — so the underlying primitive simply isn't
available.

Adds placeholder pages and READMEs for gen-ui-interrupt and
interrupt-headless explaining the limitation and pointing at
langgraph-python for a working reference. Adds a disambiguation
README in the existing hitl/ directory (which hosts the supported
hitl-in-chat demo) to clarify the distinction with the unsupported
hitl feature ID.
2026-04-29 12:05:37 +02:00
Alem Tuzlak d7db181261 feat(claude-sdk-python): add not-supported stubs for interrupt demos
Adds page.tsx + README stubs for gen-ui-interrupt and interrupt-headless.
Both rely on LangGraph's graph-level interrupt() / Command(resume=...)
primitive, which the Claude Agent SDK's Anthropic Messages stream does
not expose. Stubs explain the gap and link users to the hitl /
hitl-in-app cells, which model approval gating with regular tool calls.
2026-04-29 12:05:33 +02:00
Alem Tuzlak 69cb5f51c9 feat(showcase): add reasoning trio to built-in-agent
Implements agentic-chat-reasoning, reasoning-default-render, and
tool-rendering-reasoning-chain for the built-in-agent integration.

The default tanstack factory uses gpt-4o (non-reasoning), so
REASONING_* events never flow. This commit adds a dedicated
reasoning-factory wrapping the v2 runtime with a reasoning-capable
OpenAI model (gpt-5.2) and reasoning_effort: low. The runtime's
tanstack converter already translates upstream
REASONING_START/REASONING_MESSAGE_CONTENT/REASONING_END events into
AG-UI reasoning events, so once the model emits reasoning the chain
surfaces in the chat with no extra plumbing.

A single shared route /api/copilotkit-reasoning registers all three
agents by ID, keeping bundle and cold-start cost out of unrelated
demos.
2026-04-29 12:05:24 +02:00
Alem Tuzlak 36ffb40ed2 feat(claude-sdk-python): add simplified beautiful-chat demo
A polished brand-themed chat surface over the shared Claude agent.
Mirrors the simplified spring-ai port: gradient background, brand
fonts, seeded suggestion pills, plus a small decorative side panel
(static SVG sparkline + intent breakdown). No A2UI / declarative
generative UI infrastructure required — pure frontend dressing on top
of the existing /api/copilotkit endpoint.

The full canonical version (langgraph-python ExampleCanvas + A2UI
catalog) is documented as out-of-scope in the per-demo README.
2026-04-29 12:05:22 +02:00
Alem Tuzlak 27497206a3 feat(claude-sdk-python): add mcp-apps demo + not_supported_features schema
Adds the MCP Apps demo to the claude-sdk-python integration. The
dedicated /mcp-apps FastAPI endpoint forwards AG-UI input_data.tools
(injected by the runtime's MCP Apps middleware) straight to the
Anthropic Messages API and streams tool_use blocks back as AG-UI
TOOL_CALL_* events. The runtime middleware then fetches each MCP UI
resource and emits the activity event the built-in
MCPAppsActivityRenderer paints in the chat.

Also extends the manifest schema with not_supported_features (a
pre-approved field for surfacing stub pages on features that cannot
be ported to a given backend).
2026-04-29 12:05:09 +02:00
Alem Tuzlak d609ae4f0c feat: mark gen-ui-interrupt + interrupt-headless as unsupported on strands
Both demos are built on useLangGraphInterrupt, which hooks into the
LangGraph interrupt lifecycle. AWS Strands does not expose an equivalent
first-class interrupt primitive, and we don't yet have a Strands-side
adapter. Rather than skipping them silently, surface them under the
manifest's new not_supported_features list and ship per-demo stub pages
that explain the rationale and link to ergonomic replacements
(hitl-in-chat for gen-ui-interrupt; headless-complete + hitl-in-chat
for interrupt-headless).

- manifest.yaml: add not_supported_features list with both ids.
- src/app/demos/gen-ui-interrupt/page.tsx + README.md: stub.
- src/app/demos/interrupt-headless/page.tsx + README.md: stub.
- PARITY_NOTES.md: cross-reference the stubs from the Skipped section.
2026-04-29 12:03:28 +02:00
Alem Tuzlak 79f1839b60 feat: ag2 simplified beautiful-chat — A2UI Dynamic + Open Generative UI in one cell
Simplified port of the langgraph-python flagship beautiful-chat. The
canonical reference combines THREE features (A2UI Dynamic + Open
Generative UI + MCP Apps); the AG2 port ships the first two together
in a single dedicated runtime so users can see them coexist. MCP is
left to the existing /demos/mcp-apps cell, and the canonical's app-mode
toggle / todos canvas is intentionally out of scope.

Components:
- src/agents/beautiful_chat.py — ConversableAgent that owns generate_a2ui
  explicitly (mirrors a2ui_dynamic.py); system prompt steers the LLM toward
  generate_a2ui for catalog-bound visuals and generateSandboxedUi for
  free-form / educational visualisations.
- src/agent_server.py — mounted at /beautiful-chat.
- src/app/api/copilotkit-beautiful-chat/route.ts — dedicated runtime with
  a2ui.injectA2UITool: false (agent owns the tool) and
  openGenerativeUI.agents: ['beautiful-chat']. Both flags scoped to this
  cell so they don't leak into the shared /api/copilotkit endpoint.
- src/app/demos/beautiful-chat/page.tsx — single CopilotKit provider with
  both a2ui catalog and openGenerativeUI design skill; reuses the catalog
  from /demos/declarative-gen-ui to avoid duplication.
- src/app/demos/beautiful-chat/README.md — per-demo doc.

Manifest: added beautiful-chat to features list and demos section.
2026-04-29 12:02:52 +02:00
Alem Tuzlak 44c4c6c84f feat: ship simplified beautiful-chat demo for strands
The langgraph-python beautiful-chat ships a much larger surface
(ExampleCanvas, GenerativeUIExamples, declarative A2UI catalog,
dedicated runtime combining openGenerativeUI + a2ui + mcpApps). That
ecosystem depends on dozens of starter-level sub-components.

This Strands port mirrors the spring-ai sibling pattern: a polished
landing-style chat shell with brand theming and seeded suggestions,
sitting on top of the shared Strands agent. It is the 'show me a
great-looking starter chat' cell.

Cosmetic styling is entirely on the frontend; the backend agent and
the shared /api/copilotkit runtime are unchanged. Register the new
'beautiful-chat' agent name in the shared route so the cell resolves.

- src/app/demos/beautiful-chat/page.tsx + README.md: brand-themed
  CopilotChat shell with useConfigureSuggestions for seeded prompts.
- src/app/api/copilotkit/route.ts: register 'beautiful-chat' agent name.
- manifest.yaml: surface beautiful-chat under features + demos.
- PARITY_NOTES.md: move beautiful-chat from Skipped to Shipped (simplified).
2026-04-29 12:02:49 +02:00