Jordan Ritter
ae3d871542
feat: showcase feature parity: shared tools, Sales Dashboard, A2UI across all 17 integrations ( #3873 )
...
## Summary
- Create `@copilotkit/showcase-shared` — shared frontend package with
React hooks, components, A2UI catalog, and SalesDashboard
- Create shared Python + TypeScript tool implementations (get_weather,
query_data, manage_sales_todos, search_flights, schedule_meeting,
generate_a2ui)
- Upgrade all 17 showcase integrations to full feature parity with the
langgraph-python starter
- Docker builds verified locally for all 17 packages
- Comprehensive test coverage: 165 unit tests, 68 React component tests,
130+ Playwright e2e files
## Commits
1. `feat:` shared packages — frontend, Python tools, TypeScript tools,
unit tests, React component tests, aimock fixtures
2. `feat:` all 17 package upgrades — tools, demo pages, cross-cutting
fixes, Playwright e2e tests
3. `feat:` Docker + CI — tsconfig paths resolution, shared module
copying, spring-ai base image fix
4. `chore:` pnpm lockfile update
## Code review
5 rounds of fresh unbiased MSAL (1 dedicated agent per package, zero
prior context). Round 5: **20/20 packages PASS with 0 findings.** Test
quality audit: all criticality-7+ gaps fixed.
## Docker builds (all 17 verified locally)
```
langgraph-python ✅ langgraph-typescript ✅
langgraph-fastapi ✅ mastra ✅
pydantic-ai ✅ claude-sdk-typescript ✅
crewai-crews ✅ spring-ai ✅
google-adk ✅ ms-agent-dotnet ✅
agno ✅ claude-sdk-python ✅
ag2 ✅ langroid ✅
strands ✅ ms-agent-python ✅
llamaindex ✅
```
## Test coverage
- Python unit: 54 tests (tools + parity + framework wrappers)
- TypeScript unit: 43 tests
- React component: 68 tests (7 suites)
- Playwright e2e: 130+ files, per-package UI adaptation
- Aimock: 18 deterministic fixtures (ready for Docker-compose wiring)
## Known gaps (follow-up PR)
- Feature set varies: langgraph-python/fastapi have 9 demos, rest have 4
- gen-ui-tool-based: Chart/Haiku/Sales Pipeline variants across packages
- HITL: MeetingTimePicker vs step-selector variants
- Node 22 upgrade across all Dockerfiles + CI
## Test plan
- [x] `python3 -m pytest showcase/shared/python/tests/ -v` (54 passed)
- [x] `npx vitest run --config
showcase/shared/typescript/vitest.config.ts` (43 passed)
- [x] `npx vitest run --config
showcase/shared/frontend/vitest.config.ts` (68 passed)
- [x] Docker build all 17 packages locally
- [ ] Deploy to Railway and run smoke tests
🤖 Generated with [Claude Code](https://claude.com/claude-code )
2026-04-13 20:17:54 -07:00
github-actions[bot]
b670dd34bc
style: auto-fix formatting
2026-04-14 03:03:54 +00:00
Jordan Ritter
b6fcafe4cd
feat: all 17 showcase packages to 9-demo parity with Sales Dashboard hero
...
Every package: 9 demos (agentic-chat hero, hitl MeetingTimePicker, tool-rendering,
gen-ui-tool-based Chart Generator, gen-ui-agent A2UI dynamic, shared-state-read/
write/streaming, subagents), 7 backend tools, Playwright e2e tests per demo.
Cross-cutting: debug routes, error boundaries, camelCase SSE, generate_a2ui
conversation context, spring-ai JSON weather, langroid adapter fixes.
# Conflicts:
# showcase/packages/ag2/manifest.yaml
# showcase/packages/ag2/src/agents/agent.py
# showcase/packages/ag2/src/app/api/debug/route.ts
# showcase/packages/ag2/src/app/demos/agentic-chat/page.tsx
# showcase/packages/ag2/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/ag2/src/app/demos/hitl/page.tsx
# showcase/packages/ag2/src/app/demos/tool-rendering/page.tsx
# showcase/packages/ag2/tests/e2e/gen-ui-tool-based.spec.ts
# showcase/packages/ag2/tests/e2e/hitl.spec.ts
# showcase/packages/ag2/tsconfig.json
# showcase/packages/agno/manifest.yaml
# showcase/packages/agno/src/agents/main.py
# showcase/packages/agno/src/app/api/debug/route.ts
# showcase/packages/agno/src/app/demos/agentic-chat/page.tsx
# showcase/packages/agno/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/agno/src/app/demos/hitl/page.tsx
# showcase/packages/agno/src/app/demos/tool-rendering/page.tsx
# showcase/packages/agno/tsconfig.json
# showcase/packages/claude-sdk-python/manifest.yaml
# showcase/packages/claude-sdk-python/src/agents/agent.py
# showcase/packages/claude-sdk-python/src/app/api/debug/route.ts
# showcase/packages/claude-sdk-python/src/app/demos/agentic-chat/page.tsx
# showcase/packages/claude-sdk-python/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/claude-sdk-python/src/app/demos/hitl/page.tsx
# showcase/packages/claude-sdk-python/src/app/demos/tool-rendering/page.tsx
# showcase/packages/claude-sdk-python/tests/e2e/gen-ui-tool-based.spec.ts
# showcase/packages/claude-sdk-python/tests/e2e/hitl.spec.ts
# showcase/packages/claude-sdk-python/tsconfig.json
# showcase/packages/claude-sdk-typescript/.gitignore
# showcase/packages/claude-sdk-typescript/src/app/api/debug/route.ts
# showcase/packages/claude-sdk-typescript/src/app/demos/agentic-chat/page.tsx
# showcase/packages/claude-sdk-typescript/src/app/demos/tool-rendering/page.tsx
# showcase/packages/claude-sdk-typescript/tests/e2e/gen-ui-tool-based.spec.ts
# showcase/packages/claude-sdk-typescript/tests/e2e/hitl.spec.ts
# showcase/packages/crewai-crews/manifest.yaml
# showcase/packages/crewai-crews/src/agents/crew.py
# showcase/packages/crewai-crews/src/agents/tools/custom_tool.py
# showcase/packages/crewai-crews/src/app/demos/agentic-chat/page.tsx
# showcase/packages/crewai-crews/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/google-adk/manifest.yaml
# showcase/packages/google-adk/src/agents/main.py
# showcase/packages/google-adk/src/app/demos/agentic-chat/page.tsx
# showcase/packages/google-adk/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/google-adk/src/app/demos/hitl/page.tsx
# showcase/packages/langgraph-fastapi/src/app/api/debug/route.ts
# showcase/packages/langgraph-fastapi/src/app/demos/agentic-chat/page.tsx
# showcase/packages/langgraph-fastapi/src/app/demos/hitl/page.tsx
# showcase/packages/langgraph-fastapi/tests/e2e/hitl.spec.ts
# showcase/packages/langgraph-fastapi/tsconfig.json
# showcase/packages/langgraph-python/src/app/demos/agentic-chat/page.tsx
# showcase/packages/langgraph-python/src/app/demos/hitl/page.tsx
# showcase/packages/langgraph-python/tests/e2e/agentic-chat.spec.ts
# showcase/packages/langgraph-python/tests/e2e/hitl.spec.ts
# showcase/packages/langgraph-python/tests/e2e/shared-state-streaming.spec.ts
# showcase/packages/langgraph-python/tests/e2e/shared-state-write.spec.ts
# showcase/packages/langgraph-python/tests/e2e/subagents.spec.ts
# showcase/packages/langgraph-python/tsconfig.json
# showcase/packages/langgraph-typescript/.gitignore
# showcase/packages/langgraph-typescript/src/agent/graph.ts
# showcase/packages/langgraph-typescript/src/app/api/debug/route.ts
# showcase/packages/langgraph-typescript/src/app/demos/agentic-chat/page.tsx
# showcase/packages/langgraph-typescript/src/app/demos/tool-rendering/page.tsx
# showcase/packages/langgraph-typescript/tests/e2e/gen-ui-tool-based.spec.ts
# showcase/packages/langgraph-typescript/tests/e2e/hitl.spec.ts
# showcase/packages/langroid/src/agents/agent.py
# showcase/packages/langroid/src/app/demos/agentic-chat/page.tsx
# showcase/packages/langroid/src/app/demos/hitl/page.tsx
# showcase/packages/langroid/src/app/demos/tool-rendering/page.tsx
# showcase/packages/llamaindex/manifest.yaml
# showcase/packages/llamaindex/src/agents/agent.py
# showcase/packages/llamaindex/src/app/demos/agentic-chat/page.tsx
# showcase/packages/llamaindex/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/llamaindex/src/app/demos/hitl/page.tsx
# showcase/packages/llamaindex/src/app/demos/tool-rendering/page.tsx
# showcase/packages/mastra/.gitignore
# showcase/packages/mastra/package.json
# showcase/packages/mastra/src/app/demos/agentic-chat/page.tsx
# showcase/packages/mastra/src/app/demos/tool-rendering/page.tsx
# showcase/packages/mastra/src/mastra/agents/index.ts
# showcase/packages/mastra/src/mastra/tools/index.ts
# showcase/packages/mastra/tests/e2e/gen-ui-tool-based.spec.ts
# showcase/packages/mastra/tests/e2e/hitl.spec.ts
# showcase/packages/ms-agent-dotnet/agent/Program.cs
# showcase/packages/ms-agent-dotnet/manifest.yaml
# showcase/packages/ms-agent-dotnet/src/app/api/debug/route.ts
# showcase/packages/ms-agent-dotnet/src/app/demos/agentic-chat/page.tsx
# showcase/packages/ms-agent-dotnet/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/ms-agent-dotnet/src/app/demos/hitl/page.tsx
# showcase/packages/ms-agent-dotnet/src/app/demos/tool-rendering/page.tsx
# showcase/packages/ms-agent-dotnet/tests/e2e/hitl.spec.ts
# showcase/packages/ms-agent-dotnet/tsconfig.json
# showcase/packages/ms-agent-python/src/agents/agent.py
# showcase/packages/ms-agent-python/src/app/demos/agentic-chat/page.tsx
# showcase/packages/ms-agent-python/src/app/demos/hitl/page.tsx
# showcase/packages/ms-agent-python/src/app/demos/tool-rendering/page.tsx
# showcase/packages/pydantic-ai/manifest.yaml
# showcase/packages/pydantic-ai/src/agents/agent.py
# showcase/packages/pydantic-ai/src/app/demos/agentic-chat/page.tsx
# showcase/packages/pydantic-ai/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/pydantic-ai/src/app/demos/hitl/page.tsx
# showcase/packages/spring-ai/manifest.yaml
# showcase/packages/spring-ai/src/app/api/debug/route.ts
# showcase/packages/spring-ai/src/app/demos/agentic-chat/page.tsx
# showcase/packages/spring-ai/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/spring-ai/src/app/demos/hitl/page.tsx
# showcase/packages/spring-ai/src/app/demos/tool-rendering/page.tsx
# showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/AgentConfig.java
# showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/tools/WeatherTool.java
# showcase/packages/spring-ai/tests/e2e/gen-ui-tool-based.spec.ts
# showcase/packages/spring-ai/tests/e2e/hitl.spec.ts
# showcase/packages/spring-ai/tsconfig.json
# showcase/packages/strands/manifest.yaml
# showcase/packages/strands/src/agents/agent.py
# showcase/packages/strands/src/app/demos/agentic-chat/page.tsx
# showcase/packages/strands/src/app/demos/gen-ui-tool-based/page.tsx
# showcase/packages/strands/src/app/demos/hitl/page.tsx
# showcase/packages/strands/src/app/demos/tool-rendering/page.tsx
# showcase/shell/src/data/registry.json
2026-04-13 19:57:58 -07:00
Jordan Ritter
2accac1d07
feat: add shared showcase packages with tools, components, and test coverage
...
- @copilotkit/showcase-shared: hooks, components, A2UI catalog, SalesDashboard
- Shared Python tools: 7 impls + 61 pytest tests (unit + parity + equivalence + wrappers)
- Shared TypeScript tools: equivalents + 52 vitest tests (incl generateA2uiImpl)
- React component tests: 68 tests (7 suites)
- Aimock: 18 deterministic demo fixtures
# Conflicts:
# showcase/shared/frontend/src/components/__tests__/bar-chart.test.tsx
# showcase/shared/frontend/src/components/__tests__/meeting-time-picker.test.tsx
# showcase/shared/frontend/src/components/__tests__/pie-chart.test.tsx
# showcase/shared/frontend/src/components/__tests__/sales-dashboard/todo-card.test.tsx
# showcase/shared/frontend/src/components/__tests__/sales-dashboard/todo-list.test.tsx
# showcase/shared/frontend/src/components/__tests__/tool-reasoning.test.tsx
# showcase/shared/frontend/tsconfig.json
# showcase/shared/manifest.schema.json
# showcase/shared/typescript/tools/__tests__/get-weather.test.ts
# showcase/shared/typescript/tools/__tests__/schedule-meeting.test.ts
# showcase/shared/typescript/tools/__tests__/search-flights.test.ts
# showcase/shared/typescript/tools/index.ts
# showcase/shared/typescript/tools/sales-todos.ts
2026-04-13 19:57:45 -07:00
github-actions[bot]
88763b348c
style: auto-fix formatting
2026-04-14 00:41:48 +00:00
Jordan Ritter
0d7534ae15
chore: update pnpm lockfile for shared frontend package
2026-04-13 17:39:42 -07:00
Jordan Ritter
c070403014
feat: Docker and CI support for shared showcase modules
...
- CI copies shared_python, shared_frontend/src, shared_typescript/tools into
each package's build context before Docker build
- 12 Python Dockerfiles: COPY shared_python, ENV PYTHONPATH
- All Dockerfiles: npm install --legacy-peer-deps + tsconfig paths for
@copilotkit/showcase-shared (no npm dependency needed)
- spring-ai: unpinned eclipse-temurin:17 base images
- Aimock: 18 deterministic fixtures for all demo scenarios
2026-04-13 17:39:05 -07:00
Jordan Ritter
e233d08f40
feat: upgrade all 17 showcase packages to full feature parity
...
Each package wraps shared tools in its framework's idiom, demo pages import
from @copilotkit/showcase-shared via tsconfig paths. Comprehensive Playwright
e2e tests adapted per package (130+ test files).
Cross-cutting fixes: debug routes (/ok→/health), dead code removal,
error boundaries, thread safety, langroid adapter, claude-sdk-ts text emission.
2026-04-13 17:38:55 -07:00
Jordan Ritter
25ee60e0dd
feat: add shared showcase packages with tools, components, and test coverage
...
- @copilotkit/showcase-shared: React hooks, components, A2UI catalog, SalesDashboard
- Shared Python tools: 7 implementations + 54 pytest tests
- Shared TypeScript tools: equivalents + 43 vitest tests
- React component tests: 68 tests (7 suites)
- Aimock fixtures: 18 deterministic demo scenarios
2026-04-13 17:38:44 -07:00
copilotkit-devops-bot[bot]
c11816f259
chore: auto-sync docs from main (2026-04-14)
2026-04-14 00:10:21 +00:00
Abubakar
63a6a2733f
docs(langgraph): warn on useInterrupt agentId and add starterAgent to examples
...
Add a short callout and agentId: starterAgent across LangGraph interrupt
snippets in docs and the matching showcase interrupt-based page; add the
useInterrupt import to the showcase main snippet.
2026-04-13 20:50:57 +05:00
Jordan Ritter
9a9a8e380e
fix: add lockfiles to showcase packages, switch to npm ci for reproducible builds
2026-04-12 23:40:22 -07:00
Jordan Ritter
1bdc85845a
fix: pin all showcase Docker base images to specific minor versions
2026-04-12 23:40:16 -07:00
github-actions[bot]
cd9bd28d3c
chore: auto-sync docs from main (2026-04-12)
2026-04-12 20:53:03 +00:00
Jordan Ritter
734d552e37
fix: include failure details in Showcase E2E Slack alerts
...
The Slack notification for E2E failures only said "Showcase E2E suite
failed" with a link. Now captures playwright output, extracts failed
test names and error messages, and includes them in the Slack message
as a code block so the team can see what broke without clicking through.
2026-04-11 18:21:24 -07:00
Jordan Ritter
cab3afb81f
fix: set human_input_mode=NEVER on ag2 showcase agent
...
The ConversableAgent defaults to human_input_mode="ALWAYS", which
prompts for user feedback after each response. In the showcase this
blocks with "Please give feedback to the sender..." instead of
executing tools.
2026-04-11 18:07:38 -07:00
github-actions[bot]
92a84f004c
style: auto-fix formatting
2026-04-10 13:30:24 -07:00
Jordan Ritter
80ea96fefe
feat: Switch preview captures from GIF to MP4 with GitHub Release storage
2026-04-10 13:30:24 -07:00
Jordan Ritter
1d725e04da
fix: format shell-dojolike files and add binary check exclusion
2026-04-09 16:45:33 -07:00
Jordan Ritter
ac698e03c2
feat: add Dockerfile and deploy pipeline for shell-dojolike
2026-04-09 16:43:01 -07:00
Atai Barkai
a369ebfa7c
feat: add copilotkit-ui-theme skill with test screenshots
2026-04-09 16:36:53 -07:00
Atai Barkai
f026c05fe4
feat: fine-tune spacing and text sizing to match dojo source
2026-04-09 16:36:53 -07:00
Atai Barkai
062d3410f6
feat: match dojo typography with Plus Jakarta Sans and Spline Sans Mono
2026-04-09 16:36:53 -07:00
Atai Barkai
e00de97a68
feat: match exact dojo styling from ag-ui source code
2026-04-09 16:36:53 -07:00
Atai Barkai
469ecc17f7
feat: match dojo styling with floating glass cards and warm bg
2026-04-09 16:36:53 -07:00
Atai Barkai
7312585e9e
feat: add syntax highlighting to code view using highlight.js
2026-04-09 16:36:53 -07:00
Atai Barkai
072f43da07
feat: add purple accent bar and polish view toggle buttons
2026-04-09 16:36:52 -07:00
Atai Barkai
a05df85fcb
feat: scaffold shell-dojolike alternative frontend for showcase
2026-04-09 16:36:52 -07:00
Jordan Ritter
40ac155068
chore: sync docs from main (model name fixes + new pages) ( #3724 )
...
Auto-synced from main docs. Picks up #3666 's model name fixes and new
pages.
**8 files auto-transformed** (new pages that didn't exist in showcase):
- `generative-ui/open-generative-ui.mdx`
- `integrations/built-in-agent/` (6 pages: advanced-config, mcp-apps,
mcp-servers, model-selection, quickstart, server-tools)
- `reference/v1/classes/llm-adapters/LangChainAdapter.mdx`
**67 files flagged for review** — these have showcase-local
modifications that conflict with main changes. Not included in this PR —
they need manual review or will be addressed by Humaira's PRs
(#3712-#3719).
2026-04-09 15:23:57 -07:00
Jordan Ritter
9205ee20ba
fix: make ms-agent-dotnet endpoint configurable via OPENAI_BASE_URL for aimock proxy
2026-04-09 15:15:25 -07:00
Jordan Ritter
faf8fe9925
chore: sync docs from main (model name fixes from #3666 , new pages)
2026-04-09 14:58:31 -07:00
Jordan Ritter
1294bd86f3
fix: reset docs sync marker to valid main commit (pre-3666)
2026-04-09 14:55:36 -07:00
Jordan Ritter
0e53a48c19
feat: add aimock proxy for showcase smoke checks
2026-04-09 13:53:58 -07:00
Jordan Ritter
9602a01b33
fix: increase ms-agent-dotnet smoke timeout to 50s (GitHub Models is slow)
2026-04-09 12:43:25 -07:00
Jordan Ritter
6ef6540587
fix: make checkAgentEndpoint accept Hono router 404 as proof runtime is mounted
2026-04-09 09:33:06 -07:00
Jordan Ritter
ef55874072
fix: format files and add GHCR login to CI workflow
2026-04-09 09:16:05 -07:00
Jordan Ritter
4bcb7e17d5
feat: update showcase generator to produce test files
2026-04-09 08:33:41 -07:00
Jordan Ritter
2fb0d65ae7
feat: add starter-smoke.spec.ts with 12-starter registry
2026-04-09 08:33:16 -07:00
Jordan Ritter
1935aee8d5
feat: extract shared test helpers from showcase smoke tests
2026-04-09 08:33:13 -07:00
Jordan Ritter
204dd29a97
fix: standardize health checks on /health port 8000
2026-04-08 21:22:35 -07:00
Jordan Ritter
6d05499ecd
feat: add automated docs sync from main with transform pipeline
2026-04-08 19:59:31 -07:00
Jordan Ritter
6f679bd092
feat: deploy Claude SDK, Langroid, and Spring AI integrations
2026-04-08 19:59:30 -07:00
Jordan Ritter
31f046d0ac
feat: add SEO redirect infrastructure with PostHog tracking
2026-04-08 19:59:30 -07:00
Jordan Ritter
2c543adc7a
feat: add mobile responsive design with hamburger nav and dropdown filter
2026-04-08 19:59:30 -07:00
Jordan Ritter
101a783c0c
fix: replace TODO placeholders and fix markdown rendering in demo content
2026-04-08 19:59:30 -07:00
Jordan Ritter
5284614227
feat: add health monitoring with smoke endpoints, drift detection, and Slack alerts
2026-04-08 19:59:30 -07:00
Jordan Ritter
759ffeb29a
feat: add animated preview GIFs with per-demo capture automation
2026-04-08 19:59:30 -07:00
Jordan Ritter
7238241127
feat: add integration explorer with guided flow, feature catalog, and partner ordering
2026-04-08 19:59:29 -07:00
Jordan Ritter
f1b197b580
feat: add docs system with MDX rendering, hierarchical nav, inline demos, and content cleanup
2026-04-08 19:59:29 -07:00
Jordan Ritter
479e62cb7f
feat: add unified showcase platform with CI, Docker starters, and 13 deployed integrations
2026-04-08 19:59:29 -07:00