Commit Graph

694 Commits

Author SHA1 Message Date
Alem Tuzlak 416011b823 feat(showcase-agno): add byoc-hashbrown and byoc-json-render demos 2026-04-29 11:11:29 +02:00
Alem Tuzlak 70522b1a64 feat(claude-sdk-typescript): port tool-rendering catchall + reasoning demos
Adds five missing showcase demos to the Claude Agent SDK (TypeScript)
integration:

- tool-rendering-default-catchall: zero-config wildcard tool renderer.
- tool-rendering-custom-catchall: branded wildcard renderer.
- agentic-chat-reasoning: custom reasoningMessage slot.
- reasoning-default-render: built-in reasoning slot.
- tool-rendering-reasoning-chain: reasoning + per-tool renderers + catch-all.

Backend changes in agent_server.ts wire Anthropic extended thinking on a
new /reasoning endpoint and forward thinking_delta events as AG-UI
REASONING_MESSAGE_* events. A dedicated Next.js runtime route
copilotkit-reasoning/route.ts proxies the three reasoning agent ids.

Catch-all tool demos register the LangGraph reference's mock tools
(get_weather, search_flights, get_stock_price, roll_dice) via
useFrontendTool with stub handlers, so the pass-through agent can call
them without backend agent changes.

PARITY_NOTES updated to reflect what shipped and what remains BLOCKED
(headless-complete, beautiful-chat, a2ui-fixed-schema, and the four
LangGraph-interrupt-only demos).
2026-04-29 11:11:00 +02:00
Alem Tuzlak 42e8f3cdb4 feat(showcase-agno): add multimodal demo with vision-capable Agno agent 2026-04-29 11:09:35 +02:00
Alem Tuzlak d48eefb341 feat(showcase/ag2): port declarative-gen-ui, a2ui-fixed-schema, mcp-apps, open-gen-ui(+advanced), agentic-chat-reasoning, tool-rendering-reasoning-chain
Ports the second batch of langgraph-python showcase cells to AG2.

Each demo gets a dedicated AG2 sub-app mounted at a named path on the
agent server, plus (where required) its own /api/copilotkit-* runtime
route so the runtime middleware config doesn't leak into other cells.

- declarative-gen-ui — A2UI Dynamic Schema. Backend (a2ui_dynamic.py)
  owns the generate_a2ui tool, calls a secondary LLM bound to
  render_a2ui, returns an a2ui_operations container. Runtime route
  with a2ui.injectA2UITool: false.
- a2ui-fixed-schema — A2UI Fixed Schema. Backend (a2ui_fixed.py) ships
  flight_schema.json and emits a2ui_operations directly from
  display_flight. Runtime route with a2ui.injectA2UITool: false.
- mcp-apps — Backend (mcp_apps_agent.py) is a no-tools ConversableAgent;
  runtime route configures mcpApps.servers pointing at the public
  Excalidraw MCP server.
- open-gen-ui, open-gen-ui-advanced — Backends are no-tools
  ConversableAgents; shared runtime route enables openGenerativeUI.
- agentic-chat-reasoning, tool-rendering-reasoning-chain — Frontend
  ports of the reasoning cells. Custom reasoningMessage slot wired as
  in the canonical reference. tool-rendering-reasoning-chain has its
  own backend with weather/flights/stock/dice tools. AG2 caveat
  documented: ConversableAgent does not natively emit AG-UI
  REASONING_MESSAGE_* events the way LangGraph deepagents does, so the
  reasoning slot may render empty until/if AG2 adds reasoning emission.

Updates manifest.yaml with all 7 new demo entries plus matching feature
list, and updates PARITY_NOTES.md to record Batch 4.
2026-04-29 11:08:43 +02:00
Alem Tuzlak 38e815b9aa feat(showcase-agno): add voice demo with V2 transcription runtime 2026-04-29 11:07:32 +02:00
Alem Tuzlak 30a112a940 feat(showcase-agno): add agent-config demo with per-request Agno agent factory 2026-04-29 11:05:55 +02:00
Alem Tuzlak e4afffd4fd feat(showcase): port hitl-in-chat-booking, mcp-apps, open-gen-ui to built-in-agent
- hitl-in-chat-booking: frontend useHumanInTheLoop with inline time-picker
- mcp-apps: separate route with mcpApps middleware → Excalidraw MCP server
- open-gen-ui: separate route with openGenerativeUI middleware + design skill
2026-04-29 11:05:34 +02:00
Alem Tuzlak 1eb20c94b6 feat(langroid): register new demos and features in manifest 2026-04-29 11:04:07 +02:00
Alem Tuzlak a6bb9afbfa feat(showcase-agno): add open-gen-ui and open-gen-ui-advanced demos 2026-04-29 11:03:47 +02:00
Alem Tuzlak eb3374717d feat(langroid): add open-gen-ui, open-gen-ui-advanced, tool-rendering-reasoning-chain demos 2026-04-29 11:03:24 +02:00
Alem Tuzlak 960dbb9428 feat(claude-sdk-python): add reasoning + tool-rendering-reasoning-chain demos 2026-04-29 11:02:13 +02:00
Alem Tuzlak e96471bd3d feat: port 7 showcase demos to mastra integration
Ports beautiful-chat, byoc-hashbrown, byoc-json-render, multimodal, open-gen-ui, open-gen-ui-advanced, and voice from the langgraph-python reference into the mastra integration.

Each frontend page is reused as-is. Backends use existing weatherAgent for cells where the UI shape is enforced on the frontend (byoc-*, open-gen-ui-*, beautiful-chat). Multimodal gets a dedicated vision-capable Mastra agent (gpt-4o) registered in the Mastra config. Voice wires the V2 runtime directly with TranscriptionServiceOpenAI so OPENAI_API_KEY-missing returns a clean 401.

Manifest features and demos lists updated. Frontend/backend agent name aliases aligned with each page's <CopilotKit agent=...> prop.
2026-04-29 11:01:35 +02:00
Alem Tuzlak e839f007eb feat(showcase-agno): add mcp-apps demo via runtime mcpApps.servers 2026-04-29 11:01:06 +02:00
Alem Tuzlak e18ee1d253 feat(showcase): port 8 chat-UI features to built-in-agent
Adds beautiful-chat, cli-start (manifest), prebuilt-sidebar, prebuilt-popup,
chat-slots, chat-customization-css, headless-simple, and headless-complete
demos to the built-in-agent integration. All cells route through the single
in-process /api/copilotkit endpoint and target the 'default' agent.

The headless-complete tool renderers are adapted to the built-in-agent's
existing 'weather' and 'haiku' server tools, with HighlightNote retained as
a frontend-only useComponent example. Beautiful-chat is a simplified
two-pane polished starter rather than the full 4084 reference clone, since
the built-in-agent runner is intentionally minimal.
2026-04-29 10:56:12 +02:00
Alem Tuzlak 00400f8380 feat(showcase/spring-ai): add cli-start, gen-ui-tool-based, tool-rendering catchalls, mcp-apps, hitl-in-chat-booking, byoc-hashbrown to manifest 2026-04-29 10:55:55 +02:00
Alem Tuzlak ba7a806a42 feat(llamaindex): wire mcp-apps README and refresh parity notes 2026-04-29 10:54:35 +02:00
Alem Tuzlak 7149fd7621 feat(showcase/spring-ai): port byoc-hashbrown demo with hashbrown UI kit renderer 2026-04-29 10:54:27 +02:00
Alem Tuzlak ce72cee7d8 feat(showcase-crewai): wire cli-start, gen-ui-tool-based, tool-rendering catchall, hitl-in-chat-booking
Adds 5 missing showcase features to crewai-crews manifest:

- cli-start: informational entry with starter clone command
- gen-ui-tool-based: uses pre-existing demo page (haiku via useFrontendTool)
- tool-rendering-default-catchall: built-in DefaultToolCallRenderer wildcard
- tool-rendering-custom-catchall: branded wildcard via useDefaultRenderTool
- hitl-in-chat-booking: alias to hitl-in-chat for booking flow

All demo page stubs already exist on disk and the relevant agent names are
already registered in src/app/api/copilotkit/route.ts; this commit only
surfaces them through manifest features + demo entries.

BLOCKED (omitted, no LangGraph interrupt or MCP runtime in CrewAI):
- gen-ui-interrupt
- interrupt-headless
- mcp-apps
2026-04-29 10:53:49 +02:00
Alem Tuzlak 96a66a5aa5 feat(showcase/agno): declare cli-start, gen-ui-tool-based, hitl-in-chat-booking demos
Adds three feature-matrix entries to the Agno integration manifest:

- `cli-start` — informational copy-paste starter command card (no route).
- `gen-ui-tool-based` — frontend-only haiku-renderer demo that already ships
  in `src/app/demos/gen-ui-tool-based/`; the manifest entry plus the
  existing alias in `src/app/api/copilotkit/route.ts` (mainAgentNames)
  surface it in the showcase.
- `hitl-in-chat-booking` — second cell for the booking flavor of the
  time-picker HITL surface; reuses `src/app/demos/hitl-in-chat/` files and
  the main agent's `book_call` external-execution tool.

PARITY_NOTES.md updated with a fourth-pass entry summarising the additions.

Five sibling features (`beautiful-chat`, `gen-ui-interrupt`,
`interrupt-headless`, `declarative-gen-ui`, `a2ui-fixed-schema`) remain
deferred for the reasons already documented in PARITY_NOTES.md — Agno's
AGUI adapter has no interrupt primitive, and the dedicated combined
runtimes (openGenerativeUI + a2ui injection + mcpApps) and the
CopilotKit-middleware-driven catalog injection that the langgraph-python
reference relies on have not been wired into Agno yet.
2026-04-29 10:53:44 +02:00
Alem Tuzlak 3ffc66b587 feat(llamaindex): add beautiful-chat polished starter demo 2026-04-29 10:53:41 +02:00
Alem Tuzlak 34afaea29a feat(showcase/ag2): add headless-complete demo with dedicated AG2 sub-app 2026-04-29 10:53:10 +02:00
Alem Tuzlak 85e270615c feat(showcase/langroid): port hitl-in-chat + manifest entries for cli-start, gen-ui-tool-based
Adds the in-chat HITL demo (frontend-only useHumanInTheLoop with a
book_call tool and time-picker card) and the manifest entries that were
missing for cli-start, gen-ui-tool-based, hitl-in-chat, and
hitl-in-chat-booking.

Documents in PARITY_NOTES.md why mcp-apps is blocked on Langroid: the
runtime-level mcpApps middleware injects tools that the langroid custom
AG-UI adapter does not consume, since it builds a static tool list
against ALL_TOOLS.
2026-04-29 10:53:01 +02:00
Alem Tuzlak 164233cc16 feat(showcase/ag2): add cli-start manifest entry and gen-ui-tool-based listing 2026-04-29 10:53:00 +02:00
Alem Tuzlak 6404f57a28 feat: declare hitl-in-chat, hitl-in-chat-booking, mcp-apps in google-adk manifest 2026-04-29 10:52:53 +02:00
Alem Tuzlak bc5c0980ab feat: port mcp-apps to google-adk
Adds a dedicated CopilotRuntime route configured with mcpApps.servers pointing at the public Excalidraw MCP server, plus a no-tools ADK agent. The MCP middleware injects the remote tools and emits activity events that CopilotKit's built-in MCPAppsActivityRenderer renders inline as a sandboxed iframe.
2026-04-29 10:52:45 +02:00
Alem Tuzlak b0acff0eec feat: port hitl-in-chat (book_call) to google-adk
Frontend-tool HITL via useHumanInTheLoop with an in-chat time-picker. Adds a dedicated ADK agent that prompts the model to call the frontend-defined book_call tool; the picker card is rendered inline by useHumanInTheLoop and resolves with the chosen slot or a cancellation.
2026-04-29 10:52:34 +02:00
Alem Tuzlak 1d699bb62c feat(llamaindex): add gen-ui-tool-based demo with chart components 2026-04-29 10:52:16 +02:00
Alem Tuzlak 7c5f32ad8b feat(showcase/pydantic-ai): port gen-ui-tool-based chart demo
Wires a dedicated chart-viz agent at /gen_ui_tool_based and updates the
demo page to mirror langgraph-python's tool-based generative UI pattern
(useComponent + render_bar_chart / render_pie_chart). Other reasoning
and interrupt-dependent demos remain framework-blocked; PARITY_NOTES
extended to cover hitl-in-chat-booking under the existing interrupt
skip.
2026-04-29 10:51:50 +02:00
Alem Tuzlak 3f3f2cac7b feat(showcase/spring-ai): port gen-ui-tool-based demo with bar/pie chart components 2026-04-29 10:51:46 +02:00
Alem Tuzlak d9b25df39e feat(showcase-ms-agent-dotnet): add hitl-in-chat-booking demo 2026-04-29 10:51:36 +02:00
Alem Tuzlak cfc3678e15 feat(showcase): surface gen-ui-tool-based + tool-rendering catch-alls in strands manifest
The strands showcase already shipped frontend pages and route registrations
for gen-ui-tool-based, tool-rendering-default-catchall, and
tool-rendering-custom-catchall, but the manifest never advertised them so
the harness/dojo did not surface them. Add the four missing manifest rows
(plus the hitl-in-chat-booking alias that points at the existing hitl-in-chat
route) so feature-fill catches up to the langgraph-python topology.

Three other features in the fill set (gen-ui-interrupt, interrupt-headless,
mcp-apps) require backend interrupt() / MCP middleware that strands does
not expose; they remain skipped per PARITY_NOTES.md. beautiful-chat is a
much larger surface (dozens of sub-components plus a dedicated runtime
combining openGenerativeUI + a2ui + mcpApps) and stays deferred per the
existing parity note.
2026-04-29 10:51:31 +02:00
Alem Tuzlak 4ae9324004 feat: wire gen-ui-tool-based and hitl-in-chat into ms-agent-python runtime
Mount /gen-ui-tool-based and /hitl-in-chat endpoints in agent_server.py,
register the corresponding agents in the Next.js runtime route, and add
the three new feature ids (gen-ui-tool-based, hitl-in-chat,
hitl-in-chat-booking) plus their demo entries to manifest.yaml.
2026-04-29 10:51:30 +02:00
Alem Tuzlak bfb207dd79 feat: add hitl-in-chat and hitl-in-chat-booking demos to ms-agent-python
Port the in-chat HITL pattern (useHumanInTheLoop) from langgraph-python.
The book_call tool is defined entirely on the frontend; the MS Agent
Framework agent has tools=[] and just calls it by name. The booking-flow
alias reuses the same backend agent and shares the time-picker component.
2026-04-29 10:51:19 +02:00
Alem Tuzlak 441af62350 feat(showcase-ms-agent-dotnet): add hitl-in-chat demo 2026-04-29 10:51:16 +02:00
Alem Tuzlak c74981245a feat: port gen-ui-tool-based to ms-agent-python
Replace haiku stub with bar/pie chart variant ported from langgraph-python.
Frontend registers render_bar_chart and render_pie_chart via useComponent;
the MS Agent Framework agent has tools=[] and routes the user's chart
intent to whichever frontend tool fits.
2026-04-29 10:51:10 +02:00
Alem Tuzlak cbee978b9e feat(showcase-ms-agent-dotnet): add gen-ui-tool-based demo 2026-04-29 10:50:47 +02:00
Alem Tuzlak aacc37b184 feat(llamaindex): add cli-start and mcp-apps to manifest 2026-04-29 10:49:34 +02:00
Alem Tuzlak 5e4024f4a0 feat(showcase-langgraph-ts): add cli-start, hitl-in-chat, hitl-in-chat-booking demos 2026-04-29 10:48:41 +02:00
Alem Tuzlak 8b9b9eb391 feat(showcase-langgraph-fastapi): add cli-start, hitl-in-chat, hitl-in-chat-booking demos
- cli-start: informational manifest entry with the framework init command
- hitl-in-chat: in-chat HITL via the high-level useHumanInTheLoop hook
  with a time-picker card; backend graph is tools=[] +
  CopilotKitMiddleware
- hitl-in-chat-booking: alias mapped to the same demo route + backend
  graph as hitl-in-chat, registered as a separate agent slot so the
  feature card resolves to the same booking surface

Wires the new hitl_in_chat graph into langgraph.json and registers both
agent slots in src/app/api/copilotkit/route.ts.
2026-04-29 10:48:33 +02:00
Jordan Ritter 17e7e0a406 fix(showcase): add missing D5 demo entries and feature IDs to manifests
Add demo entries for hitl, hitl-in-app, hitl-in-chat, tool-rendering,
shared-state-read-write, and gen-ui-tool-based across 14 integrations.
Ensure every demo ID also appears in the features list so the showcase
matrix and D5 probes discover them correctly.
2026-04-28 22:20:58 -07:00
Jordan Ritter 2fc196aa8b fix(showcase): guard preferences-card.tsx against undefined interests
STATE_SNAPSHOT can deliver a Preferences object with interests undefined,
crashing .includes(), .filter(), and spread at 4 sites per file. Add
(value.interests ?? []) guards across all 17 integrations.
2026-04-28 22:20:53 -07:00
github-actions[bot] aa2c727996 style: auto-fix formatting 2026-04-29 04:27:05 +00:00
Jordan Ritter 7a25435c8b fix(showcase): correct Mastra createTool execute signatures in packages/mastra 2026-04-28 21:17:55 -07:00
Jordan Ritter 2bbfa86747 fix: correct Mastra createTool execute callback signature
The first parameter of Mastra ToolAction.execute is the raw
Zod-validated input, not a destructured wrapper. Changed all 4
tools from ({ context }, executionContext) to (inputData,
executionContext) and updated field accesses accordingly.
2026-04-28 20:43:21 -07:00
Jordan Ritter c62dd66dc4 Merge remote-tracking branch 'origin/main' into blitz/showcase-harness-rename/integration
# Conflicts:
#	pnpm-lock.yaml
#	showcase/harness/config/alerts/smoke-red-tick.yml
#	showcase/harness/scripts/test-notify-harness-jq.sh
#	showcase/harness/src/probes/drivers/e2e-chat-tools.test.ts
#	showcase/harness/src/probes/drivers/e2e-chat-tools.ts
#	showcase/harness/src/probes/drivers/e2e-demos.test.ts
#	showcase/harness/src/probes/drivers/e2e-demos.ts
#	showcase/harness/src/probes/drivers/e2e-readiness.test.ts
#	showcase/harness/src/probes/drivers/e2e-readiness.ts
#	showcase/harness/src/probes/drivers/e2e-smoke.test.ts
#	showcase/harness/src/probes/drivers/e2e-smoke.ts
#	showcase/harness/src/probes/drivers/liveness.test.ts
#	showcase/harness/src/probes/drivers/liveness.ts
#	showcase/harness/src/probes/drivers/smoke.test.ts
#	showcase/harness/src/probes/drivers/smoke.ts
#	showcase/harness/src/probes/liveness.test.ts
#	showcase/harness/src/probes/liveness.ts
#	showcase/harness/src/probes/smoke.test.ts
#	showcase/harness/src/probes/smoke.ts
#	showcase/harness/test/fixtures/rules/valid/smoke-red-tick.yml
#	showcase/ops/src/probes/drivers/e2e-demos.test.ts
#	showcase/ops/src/probes/drivers/e2e-demos.ts
#	showcase/ops/src/probes/drivers/e2e-smoke.test.ts
#	showcase/ops/src/probes/drivers/e2e-smoke.ts
#	showcase/ops/src/probes/drivers/smoke.test.ts
#	showcase/ops/src/probes/drivers/smoke.ts
#	showcase/ops/src/probes/smoke.test.ts
#	showcase/ops/src/probes/smoke.ts
#	showcase/scripts/verify-railway-image-refs.ts
2026-04-28 16:04:44 -07:00
Jordan Ritter af2737cabe fix(showcase): add useSingleEndpoint to built-in-agent demo pages
The built-in-agent runtime uses mode: "single-route" which means all
requests go to a single POST endpoint (/api/copilotkit). Without
useSingleEndpoint, the CopilotKitProvider defaults to transport: "auto"
which auto-detects by trying GET /info first (404 from Next.js), then
falls back to single-endpoint POST. During this auto-detect window,
the provisional agent created by useAgent() has transport: "auto",
which constructs REST-style URLs (/api/copilotkit/agent/default/run)
that don't exist in single-route mode. If the user sends a message
before auto-detect completes, the request hits a Next.js 404 and the
run silently fails, causing the e2e-smoke probe to time out waiting
for an assistant response.

Adding useSingleEndpoint to all 8 demo pages forces transport:
"single" from initialization, so both the provisional agent and the
final agent use the correct single-endpoint POST format from the
start.
2026-04-28 14:31:37 -07:00
Jordan Ritter 83b077db87 refactor(showcase): update scripts, docs, and aimock references for harness rename
Update comment references in showcase scripts (create-integration,
redirect-decommission, validate-pins, verify-railway-image-refs),
RAILWAY.md docs, aimock/d5-all.json fixture comment, and
built-in-agent route comment.
2026-04-28 13:48:30 -07:00
Jordan Ritter 52e2313553 fix: switch built-in-agent to single-route mode for smoke compatibility (#4387)
## Summary
- Switch the built-in-agent copilotkit route from multi-route (default)
to single-route mode
- Remove the `withProbeCompat` 404-to-400 wrapper (no longer needed)

## Why
The smoke probe POSTs a v1-style JSON envelope `{method, params, body}`
to `/api/copilotkit`. In multi-route mode, the v2 runtime tries to match
URL patterns (e.g. `/agent/:agentId/run`) and returns 404 for bare
`/api/copilotkit` POSTs. The `withProbeCompat` wrapper converted 404 to
400, but the smoke probe needs the runtime to actually parse the request
and return a real response, not just a non-404 status.

Single-route mode accepts the JSON envelope format directly, so the
smoke probe's `{method: "agent/run", params: {agentId: "default"}, body:
{...}}` payload is properly parsed and dispatched to the agent handler.

## Test plan
- [ ] Verify smoke:built-in-agent turns green after deploy
- [ ] Verify the copilotkit endpoint still handles normal agent/run
requests
2026-04-28 13:43:25 -07:00
Jordan Ritter f1f3f07514 fix: resolve security vulnerabilities via dependency overrides (#3857)
## Summary

Comprehensive security vulnerability sweep via pnpm overrides and devDep
bumps. Reduces audit from **155+ to 3** unfixable vulnerabilities.

### Changes

**49 pnpm overrides** covering all resolvable transitive dependency
vulnerabilities:
- 12 initial overrides (phase 1)
- 7 upgraded to higher patched versions (phase 2)
- 30 new overrides added (phase 3)

**Direct dependency bumps:**
- storybook devDeps: ^10.1.10 → ^10.2.10 (root + react storybook
example)
- vitest in demo-agents: ^2.1.8 → ^4.1.3 (resolves vite 5.x vuln)
- next in chat-with-your-data: 15.6.0-canary.58 → 15.6.0-canary.61
- vite in react-router: ^6.0.0 → ~7.3.2

### Remaining 3 (truly unfixable)

| Package | Severity | Why |
|---------|----------|-----|
| parse-git-config | HIGH | No patch exists (patched: <0.0.0), dep of
danger |
| elliptic | LOW | No patch exists, deep in storybook crypto chain |
| next | MODERATE | Example on 15.x canary, advisory needs 16.x |

### Companion PR
ag-ui-protocol/ag-ui#1504

Part of CPK-7320
2026-04-28 13:42:41 -07:00
Jordan Ritter ffc8023224 fix: switch built-in-agent to single-route mode for smoke probe compatibility 2026-04-28 13:38:44 -07:00