Commit Graph

4085 Commits

Author SHA1 Message Date
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 879b18740a feat(showcase-dashboard): add unsupported cell status distinct from unshipped
Adds a fourth cell status, "unsupported", to the showcase dashboard for
features whose framework cannot architecturally support them (e.g.,
no graph-interrupt API, no MCP tool runtime). This is distinct from
"unshipped" (just unbuilt).

- Manifest schema gains optional `not_supported_features: string[]`.
- generate-registry.ts: determineCellStatus checks `not_supported_features`
  first; CatalogCell/CatalogMetadata gain `unsupported`; max_depth=0 for
  unsupported cells; parity tier is computed against the supportable subset
  of the reference (unsupported features no longer drag a framework's tier
  down for gaps it legitimately cannot fill).
- depth-utils.ts: deriveDepth returns D0 with no regression for
  unsupported cells.
- DepthChip: renders a dashed gray border + 🚫 glyph with
  "Not supported by this framework" tooltip; data-status attribute
  distinguishes unshipped vs unsupported.
- CoverageBar gains diagonal-stripe gray segment for unsupported.
- StatsBar / AdaptiveStatsBar / CellsView: separate "Unsupported" chip.
- CellMatrix gaps filter excludes unsupported cells (not work to do).
- Tests: cover unsupported in DepthChip, depth-utils, cell-matrix, and
  catalog generator metadata/max_depth assertions.
2026-04-29 10:59:38 +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 bd17bc11e3 fix(showcase): docs overlay should render independently of health overlay 2026-04-29 00:58:36 -07:00
Jordan Ritter 8029b372c0 fix(showcase): align ref-depth column sticky offset with reduced feature column width 2026-04-29 00:54:19 -07:00
Jordan Ritter 34aeab2ec8 fix(showcase): add bottom padding to scroll area for fixed legend bar 2026-04-29 00:48:53 -07:00
Jordan Ritter 2e5627fa02 fix(showcase): D5/D6 depth chips + dashboard UI polish (#4413)
## Summary
- Extend depth ladder from D4 cap to D6 — emerald-colored chips for
D5/D6, multi-key CATALOG_TO_D5_KEY resolution, proper short-circuit
gating
- Restructure dashboard to viewport-filling flex layout with sticky
table column headers (overlay toggle pinned, stats bar scrolls away)
- Halve cell padding, reduce column min-widths, center UWCT/health
badges and links across all cells
- Remove duplicate/useless health badges from CLI command cells (no
probes exist for `npx init`)

## Test plan
- [x] 8 new depth-utils tests (D5 green/red/missing, multi-key, D6,
unmapped fallback)
- [x] Depth chip tests extended to D5/D6 emerald cases
- [x] Overlay integration tests updated for D0-D6 range
- [x] Visual verification: sticky headers, centered badges, tighter
layout
- [x] Pre-existing test failures unchanged (docs-status.json,
docs-layer)
2026-04-29 00:43:31 -07:00
Jordan Ritter 1980dcc210 fix(showcase): suppress health badges on CLI command cells
Command demos (npx copilotkit init) have no E2E/D5/D6 probes, so
health badges were perpetual gray noise. Skip HealthLayer when the
demo declares a command instead of a route.
2026-04-29 00:42:18 -07:00
Jordan Ritter 0213dbdcfd fix(showcase): dashboard UI — sticky headers, tighter cells, centered badges
Restructure page to viewport-filling flex layout so table column
headers stick below the overlay toggle bar on scroll. Halve cell
padding, reduce column min-width, center UWCT/health badges and
links. Remove duplicate CellStatus from CommandCell (ComposedCell
HealthLayer handles it). Split stats bar out of sticky container
so it scrolls away naturally.
2026-04-29 00:42:17 -07:00
Jordan Ritter 616a45bb1d fix(showcase): extend depth ladder to D5/D6 with emerald chips
Depth system was capped at D4 — D5/D6 PocketBase rows existed but
the chip never advanced past D4. Extends deriveDepth() through D6
with proper short-circuit gating, adds isD5Green() for multi-key
CATALOG_TO_D5_KEY resolution, and colors D5/D6 chips emerald to
distinguish from D3/D4 blue.
2026-04-29 00:42:17 -07:00
Jordan Ritter e2956cb224 fix(showcase): increase probe cadence — all integrations aimock-backed
With aimock backing all 18 integrations, there is zero LLM cost per
probe tick. Tightened schedules to catch regressions faster:

  smoke:     */15 → */5  min  (L1/L2 HTTP health)
  e2e-smoke: */30 → */15 min  (L3/L4 Playwright chat round-trip)
  e2e-deep:  hourly → */15 min (D5 multi-turn conversations)
  e2e-demos: 6-hourly → hourly (per-demo structural coverage)

Offsets preserved to avoid Chromium contention across probes.
2026-04-28 23:34:11 -07:00
github-actions[bot] b6298ba916 style: auto-fix formatting 2026-04-29 06:32:34 +00:00
Jordan Ritter a7fdf0ee69 feat(showcase): add missing CLI debugging commands
Implements the 7 commands referenced by DEBUGGING.md:
  build, ports, recreate, fixtures validate, doctor,
  aimock-rebuild, diff-logs

Also adds .last-test-ts timestamp write to the test command
so diff-logs --since last-test works.
2026-04-28 23:30:58 -07:00
Jordan Ritter ea1caa4837 fix(showcase): D5 dashboard chip lookup + CLI deep-input mapping
Dashboard: resolveCell() looked up D5 rows by catalog feature ID
(e.g. d5:slug/hitl-in-chat) but the harness writes them keyed by D5
feature type (e.g. d5:slug/hitl-text-input). Added CATALOG_TO_D5_KEY
mapping so the dashboard resolves the correct PB row for each cell.

CLI: buildDeepInputs() passed manifest registry IDs as `features` but
the D5 driver only maps them through demosToFeatureTypes() when they
arrive as `demos`. Changed to pass `demos` so the driver's mapping
from registry IDs to D5 feature types activates correctly.
2026-04-28 23:30:57 -07:00
Jordan Ritter 797295fa3b fix(showcase): D5 probe fixes — preferences-card crash guard + missing manifest demos (#4409)
## Summary

- Guard `preferences-card.tsx` against undefined `value.interests`
across all 17 integrations — crash prevented D5 shared-state probes from
completing
- Add missing D5 demo entries (`shared-state-read-write`, `hitl-in-app`,
`hitl-in-chat`, etc.) and feature IDs to manifests across 14
integrations — D5 probes couldn't discover features without these
entries
- Bump `@copilotkit/aimock` to v1.16.1 (turnIndex/sequenceIndex support
required for D5 fixture matching)
- Update snapshot test assertions for langgraph-python (38→40
features/demos) and crewai-crews (30→32 wired)
- Fix `docker-compose.local.yml`: mount D5 fixture volumes, add `--host
0.0.0.0`, replace curl healthcheck with Node fetch
- Delete redundant `scripts/dev-local.sh` (superseded by `bin/showcase`
CLI)

## Why

D5 probes were failing across all integrations due to three root causes:
(1) preferences-card crash on undefined interests, (2) missing manifest
entries preventing D5 probe discovery, and (3) aimock pinned at v1.10.0
missing turnIndex support. Local D5 verified GREEN on langgraph-python
(all 11 feature types pass).

## Test plan

- [ ] CI Validate Showcase passes (snapshot counts updated)
- [ ] CI build passes (aimock version bump)
- [ ] Local D5 probes pass for langgraph-python
2026-04-28 23:14:10 -07:00
github-actions[bot] 4ac99af525 style: auto-fix formatting 2026-04-29 06:04:39 +00:00
Jordan Ritter 5bee392385 fix(showcase): fix docker-compose.local.yml aimock config + remove dev-local.sh
- Mount D5/smoke/feature-parity fixtures into aimock via volumes
- Add --host 0.0.0.0 so other containers can reach aimock
- Switch healthcheck from curl to node fetch (aimock image has no curl)
- Delete dev-local.sh (redundant with bin/showcase CLI)
2026-04-28 22:53:49 -07:00
Sam Julien 5299115241 feat(shell-docs): cloud CTA in brand nav + branded framework logos (#4392)
## Summary

Two small shell-docs nav polish changes that bring the showcase docs
visually closer to the upstream/canonical docs.

- **Free Developer Access CTA** — adds a cloud-icon link to
`cloud.copilotkit.ai` in the BrandNav, persistent across both the
CopilotKit and AG-UI tabs. Renders with label + external-arrow on
desktop (icon-only below 1100px) and as a row in the mobile slide-out
menu. Mirrors the upstream docs nav pattern.
- **Framework logos** — replaces the placeholder `/logos/<slug>.svg`
two-letter-initial gray boxes (LG, Ma, Py, Cl, Sp, etc.) with inline SVG
branded marks for the framework picker (sidebar pill + dropdown rows)
and the docs landing integration grid. Marks use `currentColor` so they
inherit theme text color and tint with hover/active states. Sourced from
upstream `docs/components/ui/icons/*` for the integrations that ship
there, and from simpleicons for `claude-sdk-*` (Anthropic mark) and
`spring-ai`. `built-in-agent` keeps its existing full-color CopilotKit
kite. `langroid` keeps its `La` initial placeholder until they ship a
brand mark.

No registry, manifest, or content changes — purely component-layer.

## Test plan
- [ ] Load `/` and verify the CopilotKit kite renders for Built-in Agent
and the framework picker shows real marks for langgraph, mastra,
pydantic-ai, crewai, agno, ag2, llamaindex, strands, google-adk,
ms-agent-*, claude-sdk-*, and spring-ai.
- [ ] Confirm `langroid` still falls back to the `La` placeholder.
- [ ] Verify the "Free Developer Access" link appears in the desktop top
nav and opens `cloud.copilotkit.ai` in a new tab.
- [ ] Resize below ~1100px: label hides, cloud icon stays.
- [ ] Mobile slide-out menu: confirm the cloud row appears with icon +
label + external arrow.
- [ ] Toggle dark/light: framework marks tint with the surrounding text
color (no hardcoded brand fill).
2026-04-28 22:45:17 -07:00
Jordan Ritter 0d0f0a9dfa docs(showcase): add DEBUGGING.md playbook and update README CLI reference
DEBUGGING.md: 6-phase debugging loop (baseline, fixture trace, aimock
  rebuild, integration fix, fixture iteration, verify green), common
  gotchas (restart vs recreate, Depot interception, aimock statefulness),
  workflow recipes by use case, environment variable reference.

README.md: align command tables and diagram with implemented CLI,
  add ports/debugging commands, fix diagram labels.
2026-04-28 22:29:40 -07:00
Jordan Ritter 62724f2bd6 fix(showcase): update snapshot counts for new langgraph-python and crewai features
langgraph-python gained shared-state-read-write + hitl-in-app (38→40
features/demos, 37→39 wired, 2→0 unshipped). crewai-crews gained 2
wired features (30→32).
2026-04-28 22:29:36 -07:00