Commit Graph

11004 Commits

Author SHA1 Message Date
Martha Schumann 811458931f feat(integrations): add Intelligence threads to mcp-apps 2026-06-03 15:39:47 -07:00
Martha Schumann 4a2fdb611b feat(integrations): add Intelligence threads to agent-spec 2026-06-03 15:33:25 -07:00
Ben Taylor a9d807d8e7 feat(integrations): add Intelligence threads to langgraph-fastapi (#5197)
## Summary
- add env-gated CopilotKitIntelligence runtime wiring to
langgraph-fastapi while preserving the FastAPI-specific
LangGraphHttpAgent path
- add the shared Threads drawer/locked panel UI and threadId wiring for
the canvas/chat demo
- bump langgraph-fastapi CopilotKit deps to 1.59.1, add its
package-lock, and document local Intelligence env vars
- remove the temporary langgraph-fastapi parity allowances for
now-verbatim Threads/page/next files
- add a focused batch-2 migration contract test for langgraph-fastapi

## Verification
- confirmed the new migration test failed before implementation
- pnpm exec vitest run
scripts/__tests__/integration-intelligence-migration.test.ts
- pnpm parity:verify --target=langgraph-fastapi (90 ok, 1 existing
next-env.d.ts warning, 0 errors)
- npm run build (in examples/integrations/langgraph-fastapi)
- pnpm exec oxfmt --check <touched TS/TSX/JSON files>
- git diff --check
- commit hook: check-binaries, sync-lockfile, lint-fix,
test-and-check-packages, commitlint
- manual licensed Threads smoke test with local Intelligence composite:
- copied /Users/mothra/Projects/test-signups4/.env into the example .env
and supplied a valid local OPENAI_API_KEY
- docker compose up -d --wait from /Users/mothra/Projects/test-signups4
  - seeded demo-user / 1_demo-user in cpki.users
- started dev with exported .env: set -a; . ./.env; set +a; npm run dev
- /api/copilotkit/info returned mode=intelligence, licenseStatus=valid,
version=1.59.1
  - /api/copilotkit/threads?agentId=default returned 200
  - licensed Threads UI visible
  - selected/restored persisted thread
- created a fresh thread, sent a todo request, agent response rendered,
todo state updated
- refreshed and selected the named thread again; chat history, tool
calls, assistant response, and todo state restored

## Notes
- Targets the PR #5151 lineage branch because batch-2 depends on the
Intelligence foundation from ENT-679.
- The first manual smoke attempt failed because the copied local env had
an empty OPENAI_API_KEY; after replacing it in the ignored example .env
and restarting, the fresh smoke passed.
2026-06-03 17:30:33 -05:00
Benjamin Taylor d38bac48d4 Merge origin/main into codex/ent-734-langgraph-fastapi
Conflict + post-merge resolutions:
- integration test (add/add): fold into the parameterized batch-2 contract
  test; migratedIntegrations now includes langgraph-fastapi (24/24 pass).
- _parity/manifest.json: keep her langgraph-fastapi allowance removals
  (threads-drawer/page.tsx/next.config now fully tracked), but drop the
  stale strands-python shielding her branch added (example-layout +
  docker-route-override divergence, @copilotkit 1.56.5 packageJsonOverrides)
  — strands is already parity-synced at 1.59.1 on main; those overrides
  would have made the next parity:sync rewrite it back to 1.56.5.
- parity verify on the merged tree: langgraph-js 82 ok / langgraph-fastapi
  91 ok / strands-python 83 ok, zero drift.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 17:30:16 -05:00
Martha Schumann 691afa5890 feat(examples): add Intelligence threads to agentcore 2026-06-03 15:24:40 -07:00
Ben Taylor f4fa8e5c02 feat(integrations): add Intelligence threads to pydantic-ai (#5196)
## Summary
- migrate the pydantic-ai example to the Intelligence-ready v2
CopilotKit setup
- add the shared Threads drawer with REST transport, env-gated
Intelligence runtime, and local env docs
- pin the example to CopilotKit 1.59.1 and add a migration contract test

## Verification
- pnpm exec vitest run
scripts/__tests__/integration-intelligence-migration.test.ts
- pnpm exec oxfmt --check
scripts/__tests__/integration-intelligence-migration.test.ts
examples/integrations/pydantic-ai/src/app/page.tsx
- git diff --check
- npm run build (examples/integrations/pydantic-ai)
- pre-commit hook: package tests plus publint/attw passed
- manual smoke: started local pydantic-ai app with Intelligence env,
loaded http://localhost:3000, verified Threads drawer, sent Read Agent
State, selected persisted thread, and confirmed the
prompt/tool/assistant exchange hydrated from the thread

## Notes
- Targets ben1/ent-679-intelligence-ready-north-star to stack on the PR
5151 Intelligence-ready baseline.
- The local smoke logs include a non-fatal initial THREAD_NOT_FOUND
lookup for a newly minted thread before it is created; the thread is
then created, listed, and hydrates successfully.
2026-06-03 17:18:23 -05:00
Benjamin Taylor 62c5489614 Merge origin/main into codex/ent-734-pydantic-ai
Conflict resolutions:
- page.tsx: keep the threads layout; swap the dead v1 sidebar labels
  (title/initial) for the v2 keys (modalHeaderTitle 'Popup Assistant' +
  welcomeMessageText) the starter smoke asserts, and carry over main's
  disableSystemMessage + clickOutsideToClose. Keep her useRenderTool
  render({ parameters }) — that is the actual v2 RenderToolProps shape;
  main's render({ args }) was a latent runtime bug (args is not a prop).
- package.json: keep the drawer UI deps (class-variance-authority, clsx).
- integration test: fold into the parameterized batch-2 contract test;
  migratedIntegrations now crewai-flows + llamaindex + pydantic-ai (18/18).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 17:18:04 -05:00
Ben Taylor f3ec5ddcec feat(integrations): Intelligence threads — north-star foundation + batch 1 (7 examples on 1.59.1) [ENT-679] (#5151)
## Summary

**Threads/Intelligence rollout across the integration examples
([ENT-679](https://linear.app/copilotkit/issue/ENT-679)) — the shared
foundation + Batch 1.** Makes the **`langgraph-python` north-star**
Intelligence-ready, ships the framework-agnostic activation overlay +
parity wiring, and integrates the **six Batch-1 examples**,
standardizing everything on **`@copilotkit/* 1.59.1`**.

> Originally two stacked PRs; the batch-1 work was folded into this
branch so it's reviewed as one unit.

## Per-example status
| Example | agent | threads | demo | `next build` | verified |
|---|---|---|---|---|---|
| langgraph-python (north-star) | `default` | ✅ | todo (CopilotChat) | ✅
| bumped 1.56.5→1.59.1 |
| langgraph-js | `default` | ✅ | todo (shared) | ✅ | build |
| mastra | `weatherAgent` | ✅ | proverbs/weather/moon | ✅ | ✅ **full
E2E** |
| adk | `my_agent` | ✅ | proverbs (`useRenderTool` weather) | ✅ | build
|
| agno | `agno_agent` | ✅ | proverbs (local state) + tools | ✅ | build |
| ms-agent-framework-python | `my_agent` | ✅ | proverbs/weather/moon | ✅
| build |
| ms-agent-framework-dotnet | `my_agent` | ✅ | proverbs/weather/moon | ✅
| build |

## What's in it

**Foundation (north-star + shared):**
- **Env-gated runtime wiring** (`route.ts`): license →
`CopilotKitIntelligence` + `identifyUser` + `licenseToken`; otherwise
`InMemoryAgentRunner`. Marker-fenced for opt-out; multi-route endpoint.
- **Threads frontend**: `threads-drawer/**` refactored into a
**token-driven themeable base** + locked-state tease; `next.config`
derives `NEXT_PUBLIC_COPILOTKIT_THREADS_ENABLED` from the license
(SSR-safe client mount). **Without a license the panel renders locked.**
- **`_intelligence/` activation overlay**: docker-compose (postgres +
redis + composite `0.2.0`), init-db, `.env.intelligence`, an idempotent
**`provision-user`** one-shot (`demo-user`), and
**`CHECK_ORIGIN=false`** so the local realtime-gateway accepts the app's
websocket origin (live thread updates).
- **Parity staging**: `threads-drawer/**` tracked as `verbatimFiles`
(north-star canonical); per-example threads files in
`allowedDivergence`.

**Batch 1 (per example):** the env-gated route branch (multi-route +
**`useSingleEndpoint={false}`** REST transport, no `organizationId`); a
**bespoke themed threads panel** matching each example's chat; the
`next.config` gate; `demo-user` identity.

**v2 demo migration** — the 1.59.1 bump broke the V1-era
proverbs/weather/moon demos, so:
- `useAgent({ agentId })` → `{ agent }` (read `agent.state`, write
`agent.setState`);
- `useFrontendTool` params as **Zod** schemas (not the V1 array);
- `<CopilotSidebar>` content as a **sibling** (v2 slot model), not
children — otherwise the canvas silently never mounts;
- guarded card state for the async-loaded agent state.

## Verification
- All seven examples **`next build` clean** (`/` prerenders; gate holds
in both license states).
- **Full end-to-end on mastra** against the running stack: thread
create/list/auto-name, agent run, generative-UI + frontend-tool +
human-in-the-loop, **live websocket updates**, demo renders, clean
console.
- The other five are build-clean and under **per-example
visual/functional review** (fixes land on this branch).

## Known follow-ups / not in this PR
- Per-example visual + functional review (in progress).
- `langgraph-fastapi` / `strands-python` (parity instances, **Batch 2**)
stay on `1.56.5`, so the parity-tracked `@copilotkit/*` version field
diverges from the bumped north-star until Batch 2 (parity-check already
red on `main`; branch protection off).
- Retiring `langgraph-python-threads` (kept as reference), showcase
`manifest.yaml` registration ("marketing"), inspector locked-panel
(ENT-680), and the CLI `-i` allowlist flips (separate Intelligence-repo
PR).

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-06-03 17:08:33 -05:00
Martha Schumann fc6f8e4503 feat(examples): add intelligence threads to a2a-middleware 2026-06-03 15:04:42 -07:00
Ben Taylor 53af72b8e9 feat(integrations): add Intelligence threads to llamaindex (#5199)
## Summary

- Migrates the LlamaIndex example onto the Intelligence/Threads path
from the PR 5151 golden pattern.
- Pins the example to CopilotKit `1.59.1`, switches to the v2
chat/runtime wiring, and adds the shared mobile floating Threads drawer
experience.
- Adds optional Intelligence env wiring with an in-memory fallback when
no license token is configured.
- Adds a contract test covering the LlamaIndex migration surface so
future example migrations can stay red/green.

## Verification

- `pnpm exec vitest run
scripts/__tests__/integration-intelligence-migration.test.ts`
- `pnpm exec oxfmt --check
examples/integrations/llamaindex/src/app/page.tsx
examples/integrations/llamaindex/src/app/layout.tsx
examples/integrations/llamaindex/src/app/api/copilotkit/[[...slug]]/route.ts
examples/integrations/llamaindex/src/components/threads-drawer
examples/integrations/llamaindex/src/components/ui
examples/integrations/llamaindex/src/lib/utils.ts
scripts/__tests__/integration-intelligence-migration.test.ts`
- `git diff --check`
- `npm run build` from `examples/integrations/llamaindex`
- Pre-commit `test-and-check-packages` passed on commit.

## Manual smoke

- Started local Intelligence stack and LlamaIndex example with licensed
env.
- Confirmed Threads drawer loads via `/api/copilotkit/threads` and
persisted threads render/select correctly.
- Verified a backend-tool conversation: “Get the weather in San
Francisco.” created/named a persisted thread, rendered the weather card,
and hydrated correctly after refresh/reselect.

## Notes

- Observed the same non-fatal initial `THREAD_NOT_FOUND` lookup pattern
before thread creation that appears in other migrated examples.
- The LlamaIndex frontend-tool path (`add_proverb`) exposes an
adapter-specific streamed tool-argument issue where two JSON argument
payloads arrive concatenated. I did not address that in this migration;
the backend-tool path and Threads persistence smoke cleanly.
2026-06-03 17:03:53 -05:00
Benjamin Taylor 8b04e695bd Merge ben1/ent-679-intelligence-ready-north-star into codex/ent-734-llamaindex
Conflict resolutions:
- page.tsx: keep the threads layout (drawer + gate + provider) and restore
  the v2 sidebar labels (modalHeaderTitle 'Popup Assistant' +
  welcomeMessageText) the starter smoke asserts, plus clickOutsideToClose.
- layout.tsx: keep the REST-transport explainer comment.
- integration test: keep the parameterized batch-2 contract test from
  crewai-flows and add llamaindex to migratedIntegrations (12/12 pass).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 17:03:04 -05:00
Mark Fogle 51945013c2 feat(react-core): A2UI recovery status renderer (OSS-162)
Render the `a2ui_recovery` activity the middleware emits — as a pure DATA
CONTRACT, no @ag-ui/a2ui-toolkit dependency on the React client (mirrors how
a2ui-surface / a2ui_operations are consumed by activityType + content keys):

- createA2UIRecoveryRenderer() -> ReactActivityMessageRenderer for
  activityType "a2ui_recovery":
  - "retrying": a non-disruptive, collapsed "Retrying UI generation…" hint that
    only appears once perceptible (after showAfterMs, or once attempts cross
    showAfterAttempts) so a fast first retry never flashes; never replaces the
    surface, never shows noisy errors inline.
  - "failed": a clean, tasteful hard-failure message for end users, with the
    structured developer detail tucked into an expandable <details>.
  - "resolved"/unknown: renders nothing (the surface renderer owns the UI).
- Timing + debugExposure are client-configurable (A2UIRecoveryRendererOptions),
  surfaced via CopilotKitProvider's `a2ui.recovery`.
- Registered as a built-in renderer when runtime A2UI is enabled; exported.

7 renderer unit tests green (jsdom).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 21:57:10 +00:00
jpr5 be20a389cf chore: release monorepo v1.59.3 v1.59.3 2026-06-03 14:53:22 -07:00
Austin Merrick 0c530edb5d docs(build-with-agents): always show Skills + flesh out section + fix MCP heading nesting (#5194)
Quick-win fixes for the **Build with agents** page from Sam's review.
Stacked on #5187 (retarget to `main` once it lands).

## Changes

- **Skills now shown on every page** — previously only the top-level
`/build-with-agents` (and `built-in-agent`) rendered the Skills section;
every framework integration page used the MCP-only snippet, hiding
Skills. The shared `coding-agents.mdx` now renders the full Skills + MCP
guide, so all 11 build-with-agents pages show Skills (the recommended
path).
- **Skills section** — added a top-three table (`copilotkit-setup`,
`copilotkit-develop`, `copilotkit-integrations`) and a note that
`copilotkit-contribute` is for contributing to CopilotKit, not building
with it.
- **Install step** — clarified to run `npx skills add` from the project
root; any agent there (Claude Code, Codex, Cursor, Gemini CLI) discovers
the skills automatically.
- **MCP headings** — demoted per-tool headers (Cursor, Claude Code, …)
from H2 → H3 so they nest under "MCP Docs Server" in the TOC; "Other"
subsections H3 → H4.

## Screenshots

Skills section + top-three table:

![Skills
section](https://raw.githubusercontent.com/CopilotKit/CopilotKit/docs-assets/pr-5194/skills-table.png)

Install step:

![Install
step](https://raw.githubusercontent.com/CopilotKit/CopilotKit/docs-assets/pr-5194/install-step.png)

Skills now rendering on a framework page (Mastra) that was previously
MCP-only:

![Mastra
build-with-agents](https://raw.githubusercontent.com/CopilotKit/CopilotKit/docs-assets/pr-5194/mastra-skills.png)

TOC nesting (tools now under MCP Docs Server):

![TOC
nesting](https://raw.githubusercontent.com/CopilotKit/CopilotKit/docs-assets/pr-5194/toc-nesting.png)

## Files
-
`showcase/shell-docs/src/content/snippets/shared/guides/build-with-agents.mdx`
-
`showcase/shell-docs/src/content/snippets/shared/guides/mcp-server-setup.mdx`
- `showcase/shell-docs/src/content/snippets/shared/coding-agents.mdx`
-
`showcase/shell-docs/src/content/docs/integrations/langgraph/build-with-agents.mdx`
2026-06-03 14:46:49 -07:00
Ben Taylor 57d72491df feat(integrations): add Intelligence threads to crewai-flows (#5189)
## Summary
- add env-gated CopilotKitIntelligence runtime wiring to crewai-flows
- add Threads drawer/locked panel UI and shared threadId wiring for the
CopilotSidebar demo
- bump crewai-flows CopilotKit deps to 1.59.1 and add local Intelligence
env docs
- add a focused batch-2 migration contract test for crewai-flows
- fix two manual-smoke regressions found during the licensed Threads
pass: stale sidebar props and circular frontend-tool deps

## Verification
- confirmed the new migration test failed before implementation
- pnpm exec vitest run
scripts/__tests__/integration-intelligence-migration.test.ts
- npm run build (in examples/integrations/crewai-flows)
- pnpm exec oxfmt --check <touched files>
- git diff --check
- commit hook: check-binaries, sync-lockfile, lint-fix,
test-and-check-packages, commitlint
- manual licensed Threads smoke test with local Intelligence composite:
  - Threads licensed UI loads and thread list returns 200
  - creating/selecting a thread no longer crashes
- suggestion message runs through the CrewAI agent with a valid OpenAI
key
  - agent response renders in chat
  - persisted thread appears in the drawer and receives an updated title

## Notes
- Targets the PR #5151 lineage branch because batch-2 depends on the
Intelligence foundation from ENT-679.
2026-06-03 16:45:02 -05:00
Benjamin Taylor acd76b17e9 fix(examples/crewai-flows): v2 label keys for the sidebar
labels.title/initial are dead v1 keys in the v2 CopilotSidebar — the header
rendered the default 'CopilotKit Chat' instead of 'Popup Assistant' and the
greeting never showed. Map to the v2 CopilotChatLabels keys
(modalHeaderTitle / welcomeMessageText), matching every other migrated
starter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 16:44:23 -05:00
Benjamin Taylor ad04fd89d4 Merge ben1/ent-679-intelligence-ready-north-star into codex/ent-734-crewai-flows
Brings in the base-branch fixes (main merge, v2 label keys, parity sync,
starter heals) so this PR's CI reflects its own change rather than the
pre-fix base. No conflicts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 16:44:06 -05:00
Austin Merrick 9c0ec8eec0 fix(skills): remove internal-only skills from public repo (#5187)
## What

Two unrelated cleanups:

### 1. Move internal-only skills out of the public repo

Three staff-only skills lived under `.claude/skills/` and
`.agents/skills/`, so `npx skills add CopilotKit/CopilotKit` swept them
into end-user installs. This PR deletes them here; they now live in the
internal-skills plugin (**CopilotKit/internal-skills#108**):

- `copilotkit-demo-parity`
- `git-hooks`
- `showcase-demo-debugging`

### 2. Recommend a cleaner skills install command

The **Build with agents** guide now recommends:

```bash
npx skills add CopilotKit/CopilotKit/skills -y
```

- `/skills` subpath installs only the published skills under `skills/`
(the repo root also picks up internal skills).
- `-y` skips the interactive prompts.

A Callout documents the interactive variant and `-g` for a global
install.
2026-06-03 14:43:15 -07:00
Jordan Ritter 63fd2f0b0f fix(react-core): route turn-2 Enter to send during interrupt-resume instead of aborting the run
On consecutive interrupts, pressing Enter for the second turn (turn-2) while
the resumed run from turn-1 was still in flight routed the keystroke to the
STOP action, aborting the in-flight resume instead of sending the new message.

The fix gates the Enter handler on `canSend` so a pending/running state no
longer maps Enter to STOP, and `onSubmitInput` now awaits the in-flight run's
completion before dispatching the queued message — the message is sent after
the current run finishes rather than aborting it.

Also hardens the queuing and attachment tests to cover the consecutive-
interrupt path and the send-after-run-completes behavior.
2026-06-03 14:36:05 -07:00
Benjamin Taylor bdea454fe7 fix(examples): v2 label keys for crewai-crews + pydantic-ai sidebars
Same dead-v1-labels bug as the batch-1 starters: labels.title/initial are
ignored by the v2 CopilotSidebar, so the header rendered the default
'CopilotKit Chat' and the starter smoke's text=Popup Assistant wait timed
out (crewai-crews @interaction). Map to the v2 keys (modalHeaderTitle /
welcomeMessageText) in the two v2-migrated starters that were missed in the
earlier pass.

Verified with the exact CI compose for crewai-crews: 4 passed, exit 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 16:30:29 -05:00
Martha Schumann f481672be0 feat(integrations): add strands-python intelligence threads 2026-06-03 14:29:50 -07:00
Martha Schumann 516cea5f04 feat(examples): add intelligence threads to a2a-a2ui 2026-06-03 14:28:57 -07:00
Martha Schumann e8eb68697f test(react-core): stabilize a2ui renderer test 2026-06-03 14:28:24 -07:00
Benjamin Taylor 7b15d20795 fix(examples): heal v2-migrated starters left on 1.55.2 (llamaindex, crewai-crews, pydantic-ai)
These three starters were migrated to the v2 API surface (23af69041c, already
on main) but never got the matching @copilotkit version bump or provider
config, so their starter smoke is red ON MAIN today (main's latest run is red
for 9 starters) — not a regression from this PR. Healing them here to green
the required check:

- bump @copilotkit/react-core + runtime to 1.59.1 (the v2 pages don't work
  against the 1.55.2 pair — same failure mastra had pre-bump; runs 404/hang)
- add useSingleEndpoint={false} to the CopilotKit provider, matching every
  batch-1 example: without it the v2 client's endpoint-detection probe GETs
  the bare /api/copilotkit, which 404s on the multi-route endpoint and trips
  the smoke's zero-console-errors assertion

Verified with the exact CI command (docker compose -f docker-compose.test.yml
up --exit-code-from tests) for llamaindex: 4 passed, exit 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 16:20:14 -05:00
Jordan Ritter 8cdd82bf99 fix(showcase): make Railway promote fleet fault-tolerant and verify the succeeded set
the per-service promote loop ran under `set -euo pipefail`, so the first failing
service aborted the whole `all` fleet promote; extracted to promote-fleet.sh
which attempts every service, accumulates succeeded/failed sets, exits non-zero
only after attempting all, and exports succeeded_csv. verify-prod now runs
`if: !cancelled()` and scopes --services to the succeeded set; the staging
precondition is advisory (promote runs even when it reports red — bin/railway
enforces staging-green per-service); notify success keys on PROMOTE && PROD.
Adds a shell-script-tests CI job (bats + shellcheck) and input-validation
hardening (fail-loud on empty/all-empty CSV, RAILWAY_BIN check, whitespace trim).
2026-06-03 14:01:17 -07:00
Jordan Ritter 0cf30cc030 fix(showcase): resolve ag2 gen_ui_agent crash-on-import from stringified forward-ref
`from __future__ import annotations` turned the set_steps tool's
`context_variables: ContextVariables` param into an unresolved ForwardRef at
AG2 tool-schema-generation time, raising PydanticUserError on import and failing
the showcase-ag2 staging healthcheck since 2026-05-31. Removing it matches the
working sibling agents. Adds a regression test that statically asserts the
future-import stays absent (version-independent) plus a live import check.
2026-06-03 14:01:09 -07:00
Martha Schumann beabceb2ea fix(integrations): remove langgraph-js parity allowance 2026-06-03 13:59:59 -07:00
Martha Schumann 03159f2e87 feat(integrations): add Intelligence threads to llamaindex 2026-06-03 13:51:33 -07:00
Martha Schumann a42a44a882 feat(integrations): add Intelligence threads to crewai-crews 2026-06-03 13:51:15 -07:00
Benjamin Taylor 501565c966 fix(examples): green parity + starter smoke — v2 label keys, llamaindex v2 state, parity sync
Addresses the blocking review on #5151:

1. Starter smoke 'Popup Assistant' timeouts (adk, agno, mastra,
   ms-agent-framework-python/dotnet): the pages passed the dead v1 label keys
   (labels.title / labels.initial), which v2 CopilotSidebar ignores — the
   header rendered the default 'CopilotKit Chat' so the smoke's
   text=Popup Assistant wait timed out. Map to the v2 CopilotChatLabels keys:
   title -> modalHeaderTitle, initial -> welcomeMessageText. Verified live:
   SSR now renders 'Popup Assistant'.

2. llamaindex TypeError (reading 'proverbs'): the page still used the v1
   useAgent API ({ state, setState } = useAgent({ name, initialState })) —
   v2 returns { agent }, so state was undefined at render. Migrate to the v2
   pattern (agent.state with a guarded default + agent.setState + one-time
   seed effect), and fix its dead v1 label keys too. Verified: next build
   prerenders all pages cleanly.

3. parity-check drift: ran _parity/sync.ts --all — syncs example-layout
   (mobile-header fix), layout.tsx, docker-route-override.ts to the
   north-star, and bumps @copilotkit/* to 1.59.1 in langgraph-fastapi and
   strands-python. parity verify: 0 errors across all instances.
   (next-env.d.ts is gitignored repo-wide; verify warns-and-skips it in a
   clean checkout, so it is intentionally not committed.)

4. Trailing-whitespace diff-check failure (showcase google-adk agent): already
   resolved by the merge of main (the file matches main; diff --check clean).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 15:47:10 -05:00
Martha Schumann 0c00d3417d fix(integrations): keep batch parity allowances 2026-06-03 13:44:27 -07:00
Martha Schumann 9f495e6c69 feat(integrations): add Intelligence threads to langgraph-fastapi 2026-06-03 13:37:20 -07:00
Martha Schumann d5aaf6e9db feat(integrations): add Intelligence threads to pydantic-ai 2026-06-03 13:21:02 -07:00
Benjamin Taylor 3427f01c58 Merge origin/main into ben1/ent-679-intelligence-ready-north-star
Resolves 5 conflicts from main's e793257650 (v2 frontend tool parameters
array -> Zod) overlapping the threads-wired examples:

- adk/mastra/ms-agent-framework-{dotnet,python} page.tsx: keep the branch
  versions — they already use Zod parameters and add the threads drawer
  wiring + the reviewed v2 restructure on top of what main converted.
- adk/package.json: union — keep the branch's threads-drawer deps +
  @copilotkit 1.59.1 bump, and take main's zod dependency (which our adk
  page imports but the branch never declared — main's line fixes that gap).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 15:04:18 -05:00
Martha Schumann 4354ee3ab6 fix(integrations): avoid circular crewai-flows tool deps 2026-06-03 12:35:49 -07:00
Austin Merrick 6a64689d98 docs(build-with-agents): tighten install-step wording
Drop the 'same terminal you'd use for git or npm' aside and replace the
em-dash parenthetical listing the agents with plain parentheses.
2026-06-03 12:35:48 -07:00
Austin Merrick 78da034765 docs(build-with-agents): show Skills section on every build-with-agents page
Previously only the top-level /build-with-agents and built-in-agent pages
rendered the Skills section (via <BuildWithAgents />). Every framework
integration page used the MCP-only <CodingAgents /> snippet (or, for
langgraph, <MCPSetup /> directly), so Skills — the recommended path — was
hidden there.

Point the shared coding-agents.mdx snippet at <BuildWithAgents /> so all
pages that reference CodingAgents now render Skills + MCP, and switch the
langgraph page from <MCPSetup /> to <BuildWithAgents />. The snippet inliner
recurses with cycle protection, so no duplication is needed.
2026-06-03 12:29:12 -07:00
Maxim fdba5dce80 docs: fix broken links in self-hosting guide (#5188)
## Summary

Two body links on the **Self-Hosting Intelligence** page
(`/<framework>/premium/self-hosting`, rendered from the shared snippet
`docs/snippets/shared/premium/self-hosting.mdx`) were broken in
production:

- **"How the Intelligence Platform Works"** (Prerequisites + Next steps)
linked `/learn/intelligence-platform`. The `NavigationLink` rewriter
(`docs/components/react/subdocs-menu.tsx`) makes absolute links
section-relative, so under each framework it became
`/<framework>/learn/intelligence-platform` → **404**. The page is served
at `/premium/intelligence-platform` in every section (verified live
across built-in-agent, langgraph, mastra, crewai, agno, and root).
Changed both occurrences to `/premium/intelligence-platform`, matching
the sibling premium links (`/premium/overview`).
- **"chart releases" (GHCR)** used the repo-scoped package URL for the
private `CopilotKit/Intelligence` repo → **404** for public readers.
Switched to the public org-scoped package URL
`github.com/orgs/CopilotKit/packages/container/package/charts%2Fintelligence`
(200). The `oci://ghcr.io/...` pull itself was already fine — only the
web link was broken.

The other two body links (`/premium/overview`, `/threads`) and all
in-page anchors were already valid.

## Why this shipped broken

`scripts/check-broken-links.js` only scans `content/docs` and
`components` — it never looks at `snippets/`, so links in shared
snippets are completely unvalidated. Extending the checker to cover
`snippets/` (and to model the section-relative rewriting) would catch
this class of bug. Not included here to keep this PR focused — happy to
follow up.

## Test plan

- [x] `/built-in-agent/premium/intelligence-platform` returns 200
(verified across built-in-agent, langgraph, mastra, crewai, agno, and
root prefixes)
- [x] Org-scoped GHCR package URL returns 200
- [x] Pre-commit hooks pass (`test-and-check-packages`, `commitlint`)
- [ ] Confirm on docs preview deploy that both links resolve from the
rendered page
2026-06-03 21:17:24 +02:00
Maxim 96bfdf4fc9 docs: fix broken links in self-hosting guide
The shared self-hosting snippet renders under every framework section
(built-in-agent, langgraph, ...), and the NavigationLink rewriter makes
absolute links section-relative.

- "Intelligence Platform Works" linked /learn/intelligence-platform,
  which became /<framework>/learn/intelligence-platform (404). The page
  is served at /premium/intelligence-platform in every section.
- The GHCR chart-releases link used the repo-scoped URL for the private
  Intelligence repo (404 for public readers); switched to the public
  org-scoped package URL.
2026-06-03 21:17:12 +02:00
Austin Merrick f55aa96be2 docs(build-with-agents): flesh out skills section and fix MCP heading nesting
Addresses review feedback on the Build with agents page:

- Add a top-three skills table (copilotkit-setup / -develop / -integrations)
  and call out that copilotkit-contribute is for working on CopilotKit
  itself, not building with it, so the skills directory's build-vs-contribute
  split is clear from the docs page.
- Clarify where to run `npx skills add`: from the project root, where any
  coding agent (Claude Code, Codex, Cursor, Gemini CLI) discovers the skills
  automatically — answering 'in your agent environment'.
- Demote the MCP per-tool section headers (Cursor, Claude Web, Claude Code,
  ...) from H2 to H3 so they nest under 'MCP Docs Server' in the on-this-page
  TOC instead of sitting as flat siblings; demote the 'Other' subsections to
  H4 accordingly.
2026-06-03 12:14:18 -07:00
Jordan Ritter e969793083 chore(format): fix ruff formatter drift on main
The static/quality format job runs in check mode on push and was failing
on main: `ruff format --check .` flagged 5 unformatted Python files under
examples/showcases/a2ui-pdf-analyst/agent (main.py, src/dynamic_agent.py,
src/fixed_agent.py, src/multimodal_middleware.py, src/pdf_tools.py). The
oxfmt JS/TS check already passes, so this is ruff-only drift. Applied
`ruff format` (pinned 0.15.13, matching CI); diff is formatting-only.
2026-06-03 11:57:00 -07:00
Jordan Ritter a4f1d14d3a fix(examples): pin langgraph-js agent CLI as local devDependency
The langgraph-js agent `dev` script ran `npx @langchain/langgraph-cli@1.2.1`,
which resolves its own isolated dependency tree. That tree pulled a 1.2.x
`@langchain/langgraph` to satisfy the `@langchain/langgraph-api` peer
dependency, but the API hard-imports `STREAM_EVENTS_V3_MODES` from
`@langchain/langgraph/web` — a symbol only present in langgraph 1.3.0+ —
crashing the agent at startup with a SyntaxError.

Install `@langchain/langgraph-cli@1.2.4` as a devDependency and invoke the
local `langgraphjs` binary so the `@langchain/langgraph` peer resolves from
the agent's own pinned 1.3.0, which exports the symbol. Verified the agent
boots cleanly (graph registered, API on :8123, no SyntaxError).
2026-06-03 11:54:21 -07:00
Jordan Ritter e793257650 fix(examples): convert v2 frontend tool parameters from array to Zod schema
The v1→v2 migration left tool `parameters` in the old v1 array shape
(`[{ name, type, description, required }]`), which does not satisfy the
v2 `FrontendTool.parameters?: StandardSchemaV1` contract. This produced a
`Property '"~standard"' is missing` TypeScript error, failing the
Next.js build for starters whose Docker smoke build typechecks (mastra,
ms-agent-framework-python, adk).

Convert each tool's parameters to a `z.object({...})` schema so typed
`args`/handler arguments resolve correctly. Add `zod` as a dependency to
the two starters (adk, a2a-middleware) that lacked it.

Affected starters: adk, agno, llamaindex, mastra, pydantic-ai,
ms-agent-framework-dotnet, ms-agent-framework-python, a2a-middleware.
2026-06-03 11:54:21 -07:00
github-actions[bot] 0c5a2d37df style: auto-fix formatting 2026-06-03 11:44:06 -07:00
Jordan Ritter 9296a2a2e5 feat(ci): tag starter-smoke Slack alerts with their source repo
The starter smoke-test Slack alert had no indication of where it came
from, which is ambiguous when the same workflow runs across multiple
repos (e.g. the public CopilotKit/CopilotKit repo vs the internal
testybara fork). Prepend a `[ci:<owner/repo>]` tag derived from
github.repository so triage is unambiguous about the source. These CI
alerts test example source and carry no staging/production dimension,
so [ci] is the meaningful source axis. Existing message format is
otherwise preserved.
2026-06-03 11:44:06 -07:00
Jordan Ritter 2b626109c3 feat(showcase/harness): label every Slack alert with its source environment
Prefix every harness-dispatched alert with a `[staging]`/`[production]`/
`[unknown]` source-env tag so operators triaging a red probe know which
deploy environment is affected. The label is derived in the orchestrator
from SHOWCASE_ENV ?? RAILWAY_ENVIRONMENT_NAME ?? "unknown" and applied at
the single renderer chokepoint (covering per-key, cron, and on-error
dispatch) plus the aggregation flush path that bypasses the renderer, via
a shared sourceEnvPrefix helper so the two paths never drift. A missing
env var surfaces as a visible [unknown] rather than a silent un-prefixed
alert.
2026-06-03 11:44:06 -07:00
Martha Schumann 6d2f8d2caf fix(integrations): remove stale crewai-flows sidebar props 2026-06-03 11:38:01 -07:00
github-actions[bot] 283b1f8473 style: auto-fix formatting 2026-06-03 11:30:58 -07:00
Jordan Ritter 6d2f5885d2 test(showcase/harness): cover browser-pool crash-recovery, self-heal, and serve-retry paths
- STAGING-OUTAGE regressions: degraded alarm fires (not silent) when the
  set empties from a relaunch storm; self-heal re-inits a fresh set once the
  kernel relaxes; a waiter queued during the dead window is served by
  self-heal; a transient relaunch EAGAIN is retried and the entry survives
  (no eviction, no alarm).
- Bounded serveNextWaiter transient re-drive + FIX#7 dead-vs-alive gate
  propagation to the serve path.
- orchestrator: degraded/recovered signal wiring covered.
- BUG3 (orphan-by-recycle waiter drain) adapted to the crash-recovery
  acquire path: an acquire whose in-flight open is orphaned re-enqueues as a
  waiter; with cap=1 the freed slot goes to the other waiter, so the orphaned
  acquire settles via its own (now bounded) timeout. The invariant it
  verifies (freed capacity immediately serves the queued waiter) is unchanged.
2026-06-03 11:30:58 -07:00
Jordan Ritter 2b3e18bb78 fix(showcase/harness): raise container PID/thread ulimit for the chromium pool
Lift the soft nproc limit to the hard ceiling (`ulimit -u $(ulimit -Hu)`)
before exec'ing the orchestrator so the legitimate 40-context chromium
workload (several hundred OS threads at steady state) has ample thread
headroom instead of running near the default ~1024 soft ceiling, where
`chromium.launch()` tripped `pthread_create: Resource temporarily
unavailable`. `exec` keeps node as PID 1 for correct signal handling; the
`|| true` fallback keeps boot resilient when the runtime forbids raising
the soft limit (the cgroup pids limit then remains the dominant control).
2026-06-03 11:30:58 -07:00