Commit Graph

977 Commits

Author SHA1 Message Date
Tyler Slaton 214924c7f9 Merge branch 'main' into worktree-fancy-mapping-valley 2026-04-09 20:47:51 -07:00
Jordan Ritter 65508a641d feat: add /health endpoint to all starter integration examples 2026-04-09 20:40:10 -07:00
Jordan Ritter 89e99c65b7 Fix starter source bugs: configurable agent URL + crewai version bump (#3737)
## Summary

- **Configurable agent URL**: All starter `route.ts` files now read
`AGENT_URL` from environment with localhost fallback, enabling
deployment to non-localhost environments without code changes. Applied
to: pydantic-ai, adk, agno, llamaindex, ms-agent-framework-python,
ms-agent-framework-dotnet, crewai-crews.
- **crewai-crews version bump**: Bumped `ag-ui-crewai` from pinned
`==0.1.3` to `>=0.1.5` to pick up the `MethodExecutionFinishedEvent`
dict state fix from ag-ui-protocol/ag-ui#1478.
- **`.env.example` files**: Added `.env.example` with `OPENAI_API_KEY`
and `AGENT_URL` (correct default port per starter) to all affected
starters.

## Starters NOT touched (already configurable or different pattern)
- strands-python (uses `STRANDS_AGENT_URL`)
- langgraph-python / langgraph-js (use `LANGGRAPH_DEPLOYMENT_URL`)
- langgraph-fastapi (has docker-route-override)
- mastra (monolith, no separate agent URL)

## Test plan
- [ ] Verify each starter builds with `next build`
- [ ] Verify `AGENT_URL` env var is respected when set
- [ ] Verify localhost fallback works when `AGENT_URL` is unset
- [ ] Verify crewai-crews agent installs with `ag-ui-crewai>=0.1.5`
2026-04-09 20:35:05 -07:00
Jordan Ritter c374704d5e fix: bump ag-ui-crewai to >=0.1.5 for dict state bug fix
The starter pinned ag-ui-crewai==0.1.3 which crashes on crew completion:
'dict' object has no attribute 'messages' in MethodExecutionFinishedEvent
handler. Fixed upstream in ag-ui-protocol/ag-ui#1478, released in 0.1.5.
2026-04-09 20:27:24 -07:00
Jordan Ritter 147422bb85 feat: add universal AGENT_URL env var to all starters
Every starter's route.ts now reads process.env.AGENT_URL as the
primary agent endpoint, with framework-specific vars as fallback:

- AGENT_URL || "http://localhost:8000" (pydantic-ai, adk, agno, crewai,
  ms-agent-python, ms-agent-dotnet, strands-python)
- AGENT_URL || LANGGRAPH_DEPLOYMENT_URL || "http://localhost:8123"
  (langgraph-python, langgraph-js)
- AGENT_URL || "http://localhost:9000" (llamaindex)

Also adds .env.example with AGENT_URL to all starters.
2026-04-09 20:27:16 -07:00
Jordan Ritter bf3b95613b fix: remove catch-all route before adding override to avoid Next.js 16 conflict 2026-04-09 20:09:44 -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
Alem Tuzlak 3dd17c1c5b Merge branch 'main' into worktree-fancy-mapping-valley 2026-04-09 20:40:27 +02:00
Jordan Ritter ef55874072 fix: format files and add GHCR login to CI workflow 2026-04-09 09:16:05 -07:00
Jordan Ritter 7ddc0d8b2e feat: add Docker test infrastructure for all 12 starters 2026-04-09 08:33:21 -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 479e62cb7f feat: add unified showcase platform with CI, Docker starters, and 13 deployed integrations 2026-04-08 19:59:29 -07:00
Tyler Slaton 59a9c6f9d2 feat(langgraph-python): reorder suggestions
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-04-08 18:20:25 -07:00
Tyler Slaton 9feec6fe16 fix(langgraph-python): update dockerfile to mount int .pnpmfile.cjs
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-04-08 17:57:45 -07:00
Tyler Slaton e17aed817c fix(langgraph-python): update layout.tsx to be correct
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-04-08 17:49:36 -07:00
Tyler Slaton 8eaa429de2 chore(langgraph-python): bump versions
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-04-08 17:46:50 -07:00
Tyler Slaton 100a882ebe fix: repair protected-branch release flow 2026-04-08 15:18:10 -07:00
Markus Ecker e3c00af220 feat(examples): A2UI + OpenGenUI demos, updated aimock fixtures, dojo e2e fixes 2026-04-08 12:50:56 -07:00
Alem Tuzlak 9b15a7c378 fix(runtime): address PR review feedback
- Close TOCTOU window: set abortController synchronously before Observable
  creation in classic run(), matching factory run() pattern (M3)
- Add concurrent run guard to classic run() (C1)
- Add threadId/runId to RUN_ERROR events in classic mode (I2)
- Check both 'output' and 'result' property names in classic tool-result (C2/M2)
- Add try/catch around JSON.stringify in classic tool-result (I4/M2)
- Add undefined guards before emitting state snapshot/delta events (I3)
- Guard assignToolsToAgents against factory-mode agent configs (M1)
- Improve error handling in classic error case with proper fallback (C3)
- Improve TanStack converter TODO comment with known gap details (M5)
- Document @ts-expect-error on clone() middlewares access (S1)
- Add JSDoc to AgentFactoryContext.abortController (M4)
- Fix duplicate import and clean up react-router example
- Update docs AgentFactoryContext reference
2026-04-08 17:32:50 +02:00
Alem Tuzlak c6d8ab9e38 docs(example): update react-router example to use BuiltInAgent factory mode 2026-04-08 17:15:01 +02:00
Alem Tuzlak 5f0a718932 feat(agent): add convertInputToTanStackAI utility for message/prompt conversion 2026-04-08 17:14:45 +02:00
Alem Tuzlak 71445f0683 refactor(examples): use Agent class in React Router example 2026-04-08 17:14:42 +02:00
Alem Tuzlak 136bfc1182 Merge branch 'main' into feat/multimodal-builtin-agent 2026-04-07 09:51:46 +02:00
Max Korp 3bd279d680 fix: format files 2026-04-06 17:20:06 -07:00
Jordan Ritter d9f58fb388 feat(showcase): add deep-agents-finance-erp showcase (#3592)
## Summary

Adds a full-featured **Finance ERP showcase** demonstrating CopilotKit
v2 deep agents with:

- **Multi-agent orchestrator** (research + projections subagents via
`deepagents`)
- **14 frontend tools** rendered inline in the CopilotSidebar — charts,
cash position cards, dashboard widgets, and human-in-the-loop approval
dialogs
- **Customizable dashboard** with drag/resize widgets controlled by the
AI agent
- **Component gallery** at `/components` showcasing all frontend tool
renderers

### Architecture

```
Orchestrator (FinanceOS AI)
├── research subagent — queries ERP data (invoices, accounts, inventory, HR)
├── projections subagent — forecasts, scenario analysis, trend computation
└── frontend tools (registered as backend stubs) — AG-UI streams events,
    CopilotKit frontend matches to useFrontendTool renderers
```

Frontend tools are registered as lightweight `@tool` stubs on the
orchestrator. When the model calls them, the AG-UI adapter streams
`ToolCall` events that CopilotKit matches to `useFrontendTool` /
`useHumanInTheLoop` renderers by name. HITL tools use
`copilotkit_interrupt()` to pause the graph for user approval.

### Key files

| Area | Files |
|---|---|
| Agent | `agent/agent.py`, `agent/prompts.py`, `agent/tools.py`,
`agent/frontend_tools.py` |
| Frontend hooks | `src/hooks/use-render-chart.ts`,
`use-render-cash-position.ts`, `use-approve-invoice-payment.ts`, ... (14
total) |
| Dashboard | `src/context/dashboard-context.tsx`,
`src/components/dashboard/` |
| Layout | `src/components/layout/shell.tsx` (tool registration +
context sharing) |

All changes are scoped to `examples/showcases/deep-agents-finance-erp/`
— no SDK or package modifications.

## Test plan

- [ ] `cd agent && pip install -e . && python main.py` — agent starts on
:8123
- [ ] `cd .. && npm install && npm run dev` — frontend starts on :3000
- [ ] "What's our current cash position?" → `CashPositionCard` renders
inline
- [ ] "Give me a cash flow projection" → `InlineChatChart` renders
- [ ] "Process payment for overdue invoices" → `InvoiceApprovalCard`
with Approve/Reject
- [ ] "Remove the expense breakdown" → dashboard widget removed
- [ ] `/components` page renders all tool previews

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-04-06 16:19:14 -07:00
GeneralJerel c186e20e0d feat(showcase): add deep-agents-finance-erp project
Finance ERP showcase powered by CopilotKit deep agents. Includes a
Next.js 16 frontend with 7 CopilotKit-registered tools, a LangGraph
multi-agent backend (orchestrator + research/projections subagents),
Postgres-backed dashboard gallery with 12 widget types and 4 templates,
and human-in-the-loop approval flows for invoices and inventory.
2026-04-06 16:16:12 -07:00
Martha Kelly Schumann 2d4782f68d Merge branch 'main' into fix/a2ui-activity-thread-clone 2026-04-06 10:04:55 -07:00
Martha Schumann 07b9ec13ec chore(a2ui): add /a2ui-demo page and DemoButtonAgent for manual fix validation
Adds a minimal demo at /a2ui-demo that uses the demo-button agent to
reproduce and validate the A2UI thread-clone bug fix. The agent renders
an A2UI surface with a Confirm button on first run; clicking it fires a
second run that emits a text confirmation message.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 09:45:23 -07:00
Alem Tuzlak 53a2e9c6e3 Merge branch 'main' into feat/multimodal-builtin-agent 2026-04-06 17:30:11 +02:00
Alem Tuzlak 5f464e6a0d fix(example): map AG-UI text parts to TanStack AI format (text → content) 2026-04-06 15:34:17 +02:00
Alem Tuzlak 39344c00f7 fix(example): preserve multimodal content arrays in TanStack AI agent 2026-04-06 15:30:08 +02:00
Alem Tuzlak a076a69852 fix: correct tsconfig extends paths for v1 node examples 2026-04-06 14:55:07 +02:00
Alem Tuzlak 18c7a6001d feat: multimodal attachments — UI polish, deprecations, docs, codemod
Attachment queue & previews:
- Image lightbox with View Transition API morph animation
- Video lightbox with native controls and play button overlay
- Document lightbox (PDF via blob URL, text inline, info card fallback)
- Drop zone overlay with upload icon
- Filename preservation via InputContent metadata
- Proper video thumbnail sizing and play/pause indicator
- Fix attachment queue positioning (max-w-3xl constraint)
- Padding between X button and content for audio/document cards
- Document filenames wrap instead of truncating

Attachments config:
- onUploadFailed callback for validation/upload errors (file-too-large, invalid-type, upload-failed)
- onUpload accepts sync or async returns
- AttachmentUploadResult discriminated union with explicit interfaces
- Metadata field on Attachment and onUpload return type

AG-UI version bump:
- Bump @ag-ui/client, @ag-ui/core, @ag-ui/encoder, @ag-ui/proto to 0.0.51
- Remove process.env Vite workaround (fixed upstream in 0.0.51)

Deprecation lifecycle:
- @deprecated JSDoc on all legacy image upload APIs
- ImageRenderer, ImageRendererProps, ImageUpload type, imageUploadsEnabled prop,
  inputFileAccept prop, ImageRenderer prop, AIMessage.image, ImageData
- Codemod at codemods/migrate-attachments.ts (15 tests)
- Migration guide updated with codemod instructions and new type shapes

Docs:
- New guide: docs/(root)/multimodal-attachments.mdx
- Updated migration guide with onUpload return type, metadata, codemod section
- Cross-links from prebuilt-components and migration guide
- Label change: "Add photos or files" → "Add attachments"

Tests:
- CopilotChat.attachments.test.tsx — 5 tests for onUploadFailed
- migrate-attachments codemod — 15 tests
2026-04-06 14:55:06 +02:00
Alem Tuzlak 085ac18057 feat(example): dual agent setup — BuiltInAgent + TanStack AI with agent toggle 2026-04-06 14:54:47 +02:00
Alem Tuzlak 64ffb9bee9 feat(example): update react-router example to test multimodal attachments 2026-04-06 14:54:47 +02:00
Ran Shemtov 2afc3c380e Merge branch 'main' into claude/explore-agentcore-cli-a25GL 2026-04-06 13:59:33 +02:00
Ran Shem Tov 5bedf17b66 fix(cli): align defaults in template and deployment 2026-04-06 13:57:56 +02:00
Ran Shem Tov 6985d58112 feat(cli): remove unused lambda tool 2026-04-06 13:55:10 +02:00
Tyler Slaton 9c940dcaac Merge branch 'main' into claude/rebase-against-main-PGEp1 2026-04-05 21:46:05 -07:00
Maxim 2fb966bd68 fix: apply a2ui-root Strict Mode fix to example apps
Follow-up to #3607 — the same problematic `import { v0_8 } from "@a2ui/lit"`
pattern existed in 4 example files. Switch to `@a2ui/lit/0.8` subpath for value
imports and remove an unused v0_8 import. Also broaden the lint rule glob to
cover `examples/` and prevent regression.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 20:31:58 +02:00
Ran Shemtov 1b7496a516 Merge branch 'main' into claude/explore-agentcore-cli-a25GL 2026-04-03 19:03:19 +02:00
Alem Tuzlak 68f9b8ad45 feat(examples): add runtime adapter examples for Express, Hono, Node, Deno, Elysia, and CF Workers
Example projects demonstrating the new fetch-based runtime adapters
across six server frameworks/runtimes.
2026-04-03 18:41:29 +02:00
Tyler Slaton 4f1f132d41 fix: address issues with licensing, formatting and types (#3597) 2026-04-03 09:38:41 -07:00
Tyler Slaton b0da854de9 fix: convert showcase PNGs to proper LFS pointers
These images were committed as raw binaries on main despite
.gitattributes marking *.png for LFS tracking. Re-add them through
the LFS clean filter so they're stored as pointers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:24:23 -07:00
Tyler Slaton 275544f23a chore: apply formatter changes from pre-commit hook
Auto-formatted showcase and web-inspector files picked up by the
lint-fix pre-commit hook.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:23:18 -07:00
Ran Shem Tov d1f57e6b37 feat(cli): provide a clean scaffolded agentcore project per framework 2026-04-03 17:36:37 +02:00
Alem Tuzlak c5d80f8cd3 chore(examples): update demo video and title in open-mcp-client showcase (#3603)
## Summary

- Updated demo video in the readme
- Updated the title for the open-mcp-client showcase
2026-04-03 15:36:25 +02:00
Ran Shem Tov 4cc494c84d chore: fix formatting 2026-04-03 15:04:40 +02:00
Anmol Baranwal db7ad5250b chore: add demo video and update title in README 2026-04-03 18:01:54 +05:30
Ran Shem Tov efe66dcb28 chore(agentcore): add suffix on fast main stack for tracking 2026-04-03 10:12:56 +02:00