Commit Graph

7 Commits

Author SHA1 Message Date
github-actions[bot] 7d131608c0 style: auto-fix formatting 2026-04-29 11:03:09 +00: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 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
Alem Tuzlak 2b129694b4 feat: port mcp-apps demo to strands via mcpApps middleware
The langgraph-python sibling demonstrates MCP-server-driven UI via
the runtime's mcpApps middleware. The Strands integration can use
exactly the same pattern — the middleware advertises MCP tools to the
agent at request time and emits activity events that CopilotKit's
built-in MCPAppsActivityRenderer paints inline as a sandboxed iframe.

This unblocks the previously-deferred mcp-apps cell (D8 had marked it
BLOCKED). The Strands shared agent itself needs no bespoke MCP tools.

- src/app/api/copilotkit-mcp-apps/route.ts: dedicated runtime with
  mcpApps.servers pointing at the public Excalidraw MCP server
  (serverId pinned for stable thread restoration).
- src/app/demos/mcp-apps/page.tsx + README.md: cell wired to the new
  runtime endpoint with seeded suggestions.
- manifest.yaml: surface mcp-apps under features + demos.
- PARITY_NOTES.md: move mcp-apps from Skipped to Ported (simplified).
2026-04-29 12:01:47 +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
Jordan Ritter e9a2e143de fix(showcase): add shared-tools symlinks and refactor imports
Replace sys.path.insert hacks in Python agent files with direct
imports via symlinks to shared/{python,typescript}/tools.
Update Dockerfiles, entrypoints, and configs to support the new
symlink-based tool resolution. Add PARITY_NOTES for frameworks
that have known gaps.
2026-04-28 07:50:03 -07:00
Jordan Ritter dd06dd89d1 refactor(showcase): rename packages/ to integrations/
The showcase framework directories better reflect their role as
integration examples rather than distributable packages.
Renames showcase/packages/ -> showcase/integrations/ and updates
the test docker-compose file reference accordingly.
2026-04-28 07:47:35 -07:00