Commit Graph

12110 Commits

Author SHA1 Message Date
Benjamin Taylor a8ca87a597 Merge origin/main into codex/ent-734-a2a-middleware
Conflict resolution: take main's 4-entry migratedIntegrations array and
keep the a2a-middleware-specific contract tests + helper (a2a-middleware
uses app/ root + custom chat, so it doesn't fit the parameterized
src/app contract). 31/31 passing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 17:51:49 -05:00
Martha Schumann 1c4d2d4951 fix(integrations): restore mcp-apps thread replay 2026-06-03 15:43:48 -07:00
Martha Schumann 42e7509de3 fix(integrations): clean mcp-apps drawer cleanup 2026-06-03 15:39:47 -07:00
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