1118 Commits

Author SHA1 Message Date
Sam Julien 4c311ac3fb chore(docs): add shell-docs symlink 2026-06-18 14:54:25 -07:00
Sam Julien 33a79485b6 chore(docs): remove retired docs app 2026-06-18 10:54:16 -07:00
David McKay cfca586da7 docs(react-core): document toolCallId and agentId on useHumanInTheLoop render props
The render-callback reference omitted the always-present attribution props.
Document toolCallId (the per-interrupt correlation key) and agentId (static
registration scope, undefined for unscoped tools), matching the type's JSDoc.
2026-06-18 11:05:41 -05:00
Jordan Ritter b65b8452d9 docs(showcase): add promote-notify PR1 pre-merge runbook
Pre-merge checklist for the promote-notify workflow: Slack-membership
checks (#team-showcase + #oss-alerts), SLACK_BOT_TOKEN scope verification,
gh workflow run dispatch commands for all three canonical fixtures, and
a schema-mismatch test that verifies the workflow emits a ::warning::
annotation with NO Slack API call.
2026-06-17 11:28:58 -07:00
Benjamin Taylor 1c92a69f58 fix(links): point cloud.copilotkit.ai web links at the Intelligence dashboard
New users were still discovering cloud.copilotkit.ai through docs pages,
the README, example READMEs, and in-app banners/console messages. Replace
all user-facing web links with dashboard.operations.copilotkit.ai (the
destination the marketing-site CTAs already use). Functional API endpoints
(api.cloud.copilotkit.ai) are deliberately untouched since existing cloud
customers depend on them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 11:20:44 -05: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
Sam Julien 69673f2ea7 docs: route all documentation authoring to shell-docs
The top-level docs/ app is retired but nothing said so, and two
instruction surfaces still pointed contributors there. Establish a
single canonical rule and reduce the other surfaces to pointers.

- Add .claude/docs/documentation.md as the source of truth: CopilotKit
  docs are authored in showcase/shell-docs/src/content/; the top-level
  docs/ folder is retired; AG-UI protocol docs are authored upstream in
  ag-ui-protocol/ag-ui and mirrored here.
- CLAUDE.md: add an Essentials rule and a Reference link.
- docs/README.md: replace boilerplate with a retired/STOP banner.
- .claude/docs/hooks.md: fix the stale /docs pointer; document that a
  hook's API reference page lives in reference/hooks/ and that v2
  reference nav is generated from frontmatter (no meta.json).
- CONTRIBUTING.md: add a two-domain documentation section.
2026-06-03 10:04:56 -07:00
cogwirrel 24b981de16 docs(aws-strands): add Python/TypeScript tabs to code examples
The @ag-ui/aws-strands TypeScript adapter ships alongside the Python
ag_ui_strands package but the docs only showed Python snippets. Add a
TypeScript tab next to every Python snippet (Python default, `persist`
on the tab group so a reader's choice sticks across pages) covering:

- quickstart: project init, install, agent file, run command
- frontend-tools: @tool stub + createStrandsApp server
- shared-state (read + write): StrandsAgentConfig.stateContextBuilder
- generative-ui tool-rendering: backend tool definition
- generative-ui state-rendering: ToolBehavior.stateFromArgs

Also applied to the parallel showcase/shell-docs tree. Non-code pages
(deploy-agentcore, copilot-runtime, inspector, etc.) remain untouched
since they either re-export shared snippets or have no framework code.
2026-05-28 01:03:02 +00:00
Markus Ecker 7aa5b38755 docs(premium/self-hosting): add user memory closed-beta section (#4928)
## Summary

Adds a closed-beta user memory section to the self-hosted Intelligence
docs (no new pages, no nav changes — inline addition to the existing
`self-hosting.mdx` snippet).

- A short public `<Callout>` in `## What is this?` announces the
capability and points readers at the gated configuration sub-section
below. No implementation details exposed publicly.
- A password-gated `### User memory (closed beta)` sub-section in `##
Configuration reference` describes the user-visible effect, the scope
guarantees (per-user, per-org, per-project, read-only), and the two
flips to enable it:
- `app-api`: `appApi.env: [{ name: SL_ENABLED, value: "true" }]` in
`values.yaml`
- runtime / BFF: `mcpServer: true` on the `CopilotKitIntelligence`
constructor in `@copilotkit/runtime/v2`
- Includes a `runtime.ts` code snippet.

Heading sits outside the gate so readers see "User memory (closed beta)"
in the TOC; only the body is behind the password.

## Implementation notes

- Uses the existing `<InsecurePasswordProtected>` MDX component already
registered on both `(home)` and `integrations` routes — no new
infrastructure.
- Password is hardcoded as `cpki-mem-beta` on the prop. Reviewer choice:
keep as-is, swap to a new `NEXT_PUBLIC_*` env var, or reuse the existing
`NEXT_PUBLIC_LGC_DOCS_PASSWORD` (which would share access with the
LangGraph Cloud beta group).
- Locally bypassable when the env-var default is empty, which is the
same posture as Threads' existing precedent.

## Test plan

- [ ] Open `/premium/self-hosting` — verify the public Callout renders
in "What is this?" and the section anchor link works.
- [ ] Scroll to Configuration reference → after "Realtime gateway
(additional keys)" — verify the gate panel shows.
- [ ] Enter `cpki-mem-beta` — verify the SL_ENABLED table + `runtime.ts`
snippet reveal.
- [ ] Confirm the heading "User memory (closed beta)" is visible to
non-authenticated readers (sits outside `<InsecurePasswordProtected>`).
2026-05-21 20:28:41 +02:00
Tyler Slaton 5728611dfd feat(shell-docs): upgrade to fumadocs 16 / next 16, polish layout, add llms.txt + page actions
Stack upgrade
- fumadocs-core/ui 15.8.5 → 16.8.12, next 15 → 16 (Turbopack), react 19 → 19.2
- Swap "next lint" → "oxlint ." to match the rest of the repo
- New deps for the page-actions component: @radix-ui/react-popover,
  class-variance-authority, clsx, tailwind-merge

Layout & brand polish
- Sidebar floats as a rounded-2xl card with column-aligned padding;
  framework picker pill, accent-purple section icons (16px), accent
  active state, and a single divider line at the footer
- New custom <ThemeSwitch> — single 50×28 neutral switch replaces the
  fumadocs sun/moon split (drops the vertical divider and purple tint)
- Sidebar folder collapse state persists across navigations via
  SidebarFolderStatePreserver
- BrandNav: wider top bar, lowercase "Talk to an engineer", BookIcon
  for Docs, GitHub/Discord icons rendered inline in our footer row
- Mobile: nav clipping + content padding fixes, content grid-span-full
- TOC-less pages: lift article max-width so content stretches into the
  empty TOC column on wide viewports

New routes
- /llms.txt — page index per fumadocs LLMs integration
- /llms-full.txt — concatenated full text of every docs page
- /<path>.md and /<path>.mdx — per-page raw markdown with <Snippet>
  regions inlined as fenced code blocks (resolver in lib/llm-text.ts
  reuses the same demo-content.json the <Snippet> runtime reads)
- Page-actions bar: Copy Markdown + Open in Claude / Claude Code /
  Windsurf / Codex (Codex links to https://chatgpt.com/codex for
  universal coverage)

Content fixes
- Reasoning page (generative-ui/reasoning.mdx): rewrite to point at
  the real reasoning-default / reasoning-custom cells instead of the
  stale agentic-chat-reasoning / reasoning-default-render names
- Strip <FeatureIntegrations /> chip list ("SUPPORTED BY ...") from
  16 docs MDX files (component definition kept in mdx-registry)
- Drop hideTOC: true from 11 pages so they pick up the lifted-cap rule
- Default home (/) to the built-in-agent authored sidebar; fix active
  state matching on the home url
- Restore default fumadocs Callout (drop the bespoke docs-callout)
- OpsPlatformCTA redesign — light bordered card with accent stripe
- FrameworkOverview redesign — drop atmospheric chrome, smaller hero
- Homepage / docs-landing redesign

Integrations (LGP / LGT / ADK)
- Tag @region[default-reasoning-zero-config] in reasoning-default and
  @region[reasoning-block-render] in reasoning-custom for all three
  frameworks so the docs <Snippet> calls resolve
- Tag @region[use-agent-simple] + @region[message-list-simple] in
  headless-simple and @region[use-rendered-messages-hook] +
  @region[manual-tool-call-rendering] +
  @region[manual-activity-message-rendering] + @region[custom-bubbles]
  across headless-complete

Other
- docs/components/layout/mobile-sidebar.tsx: lowercase "engineer" to
  match shell-docs
- .claude/launch.json + .claude/preview/ — dev launch configs for the
  worktree so /preview brings up shell-docs on :3003
2026-05-20 19:32:18 -07:00
Austin Merrick 4aa3846df7 docs: repoint stale /coding-agents references in middleware
CR round 1 caught two middleware redirects still targeting the
pre-rename /coding-agents slug:
- /coding-agent-setup → /coding-agents (now → /build-with-agents)
- per-framework vibe-coding-mcp → coding-agents (now → build-with-agents)

Both produced a 2-hop 308 chain through next.config.mjs after the
rename. Repointing them directly to /build-with-agents collapses the
chain.

Also adds a trailing newline to langgraph/build-with-agents.mdx for
consistency with the other 13 build-with-agents.mdx files.
2026-05-20 08:58:04 -07:00
Markus Ecker bdc83fd7aa docs(premium/self-hosting): add user memory closed-beta section
Adds two pieces to the self-hosting docs:

1. A short public Callout in `## What is this?` announcing that the
   Intelligence Platform image includes an opt-in user memory
   capability and pointing readers at the gated configuration section
   below. No implementation details exposed.

2. A password-gated `### User memory (closed beta)` sub-section in
   `## Configuration reference` that describes:
   - The user-visible effect (recall of prior conversations with
     example questions)
   - Scope guarantees (per-user, per-org, per-project; read-only)
   - The two flips required to enable it:
       app-api:  appApi.env: [{ name: SL_ENABLED, value: "true" }]
       runtime:  mcpServer: true on the CopilotKitIntelligence
                 constructor in @copilotkit/runtime/v2
   - A runtime.ts code snippet

The gating uses the existing InsecurePasswordProtected component
already registered as an MDX component on both (home) and
integrations routes. The password is currently hardcoded as
cpki-mem-beta directly on the prop, which keeps the gate working
locally without env-var setup. Swap to an env-var-backed prop before
broader rollout if a different password than the existing LangGraph
Cloud beta is desired.

Scope of this change is the self-hosting snippet only; no
integration-specific docs, no new pages, no nav changes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 14:06:04 +02:00
Austin Merrick d7b3f26681 docs: rename coding-agents to build-with-agents
Prep for OSS-133 — lands the unblocked routing + sidebar pieces while
the content rewrite waits on the copilotkit/skills monorepo migration.

- Rename /coding-agents → /build-with-agents (root + 13 integrations)
- Retitle "Coding Agents" → "Build with agents"
- Add 14 permanent redirects from old routes
- Repoint 11 existing /mcp and /vibe-coding-mcp redirects
2026-05-19 16:30:23 -07:00
Austin Merrick 16f9aa2de0 docs: move React Native out of Getting Started into Platforms
Surface React Native alongside any future platform docs instead of
mixing it with framework-agnostic onboarding.
2026-05-19 16:29:59 -07:00
Austin Merrick 784b365d4f feat(react-core): forward followUp option through useComponent 2026-05-18 10:53:20 -07:00
Sam Julien 03930e2484 chore(docs, shell-docs): add favicon.ico
Neither app had a favicon configured locally, so the browser tab
showed the generic globe icon. Drop the canonical copilotkit.ai
favicon (3-image .ico, 16×16 + 32×32) into each app's app/ directory
so Next.js auto-serves it via its file-system convention. Same asset
on both surfaces.
2026-05-14 20:36:44 -05:00
Sam Julien 382fb22cfe fix(docs/mobile-sidebar): use opaque sidebar surface instead of 50% white
The drawer aside was set to `bg-white/50 dark:bg-white/[0.01]` with a
`backdrop-blur-3xl`. In light mode this rendered as a 50%-transparent
white panel over the page underneath, which made every item read
"grayed-out" through the blur. In dark mode the 0.01 white was so
faint that the panel was effectively transparent.

Switch to `bg-sidebar` — the opaque sidebar token already used by the
desktop navbar — and drop the backdrop blur (pointless without the
transparency). Items now sit on a solid surface with normal contrast
in both themes.
2026-05-14 20:36:44 -05:00
Sam Julien 84925930bd feat(nav): redesign "Talk to an Engineer" CTA on both docs surfaces
## Label
"Talk to Our Engineers" → "Talk to an Engineer" everywhere it appears
(button text, aria-labels, mobile drawer entry, source comment).

## Desktop pill (≥1100px)
- Gradient fill (indigo-500/90 → purple-500/90 at rest, full at hover)
- Soft shadow lift on hover
- Shimmer animation: a translucent white stripe slides across via an
  ::after pseudo-element on hover (overflow-hidden + after:translate-x
  transition over 700ms). Replaces the earlier scale-on-hover.
- Breakpoint lowered from 1400px → 1100px so the pill is visible at
  most laptop widths where there's plenty of room

## Compact calendar icon (md → 1099px)
- New second button rendered alongside the pill, visible only when
  the rest of the right cluster is icon-only (768–1099px)
- Same gradient + shimmer treatment in a 36×36 rounded-full button
- Inline calendar SVG (matches the Lucide calendar shape)

## Free Developer Access — shell-docs parity with docs/
- Added as a text link in shell-docs' LEFT_LINKS (mirrors the existing
  docs/ pattern); cloud icon on the right cluster now hands off to it
  at ≥1100px
- Visibility transitions on both surfaces realigned to 1100px so the
  cloud↔text and calendar↔pill flips happen at the same boundary
- whitespace-nowrap on LEFT_LINKS label spans so long labels like
  "Free Developer Access" don't wrap when the nav gets tight

## Mobile drawer
- docs/: add a Talk-to-Engineer button at the top of MobileSidebar
  (was missing entirely). Tracks `talk_to_us_clicked` with
  location: docs_navbar_mobile.
- shell-docs: move the existing Talk-to-Engineer button to the top of
  the drawer column so it's the first thing readers see.
2026-05-14 20:36:44 -05:00
Nathan 🔶 Tarbert 0b6460a192 chore: align A2UI integration docs with v0.9 SDK helpers
The Python A2UI SDK (sdk-python/copilotkit/a2ui.py) exposes v0.9 helpers
create_surface, update_components, and update_data_model, but the
integration docs still referenced earlier names (surface_update,
data_model_update, begin_rendering) and the corresponding wire-format
op keys (surfaceUpdate, dataModelUpdate, beginRendering). The frontend
renderer (A2UIMessageRenderer) routes operations by the v0.9 keys, so
the docs as written would not round-trip through the runtime.

Updates 9 mdx files under integrations/{deepagents,langgraph,a2a}:
- Python helper names in code snippets
- Op keys in prose and TS action-handler return values
- Reorders operations so createSurface comes first (no trailing
  beginRendering)
- a2a example: renames the root component id from "root-column" to
  "root" per the v0.9 catalog convention (exactly one component must
  have id="root")

No SDK or runtime changes.
2026-05-14 12:49:15 -04:00
Sam Julien 62facacee1 feat(quickstart): add platform signup as Step 1 across integration quickstarts
Every integration quickstart in docs/ and showcase/shell-docs/ now opens with
a "Create a free account" step that points the reader at the Enterprise
Intelligence Platform before the framework path. Existing top-of-page
<OpsPlatformCTA> blocks on the six integrations that already had one are
left in place.

- New <SignupLink surface="docs_<int>_quickstart_step1">…</SignupLink> MDX
  component in both apps. It mirrors OpsPlatformCTA's URL+UTM contract
  (https://dashboard.operations.copilotkit.ai/ with the canonical docs
  UTMs, picked up from NEXT_PUBLIC_INTELLIGENCE_SIGNUP_URL when set) and
  fires the same PostHog event the other CTAs use:
  posthog.capture("try_for_free_clicked", { location: surface }).
- Registered as an MDX global in:
    docs/app/integrations/[[...slug]]/page.tsx
    docs/app/(home)/[[...slug]]/page.tsx
    showcase/shell-docs/src/lib/mdx-registry.tsx
- All 28 integration quickstart .mdx files now lead with a Step that uses
  this component as an inline link inside a single sentence of prose —
  no CTA card inside <Steps>.

The <TailoredContent> "Choose your starting point" / "How do you want to
get started?" selector is now wrapped in its own <Step> so it advances
the counter, and the inner CLI/manual paths render as steps 3, 4, 5, …
instead of 2, 3, 4, …. Applies to all 20 quickstarts that use the
picker.

- Indigo→purple gradient text on the Step 1 heading on both surfaces
  (`.fd-steps > .fd-step:first-child h3` on docs/,
  `.docs-steps > div:first-child h3` on shell-docs). Direct-child
  combinator scopes it to the outer first Step so inner first-children
  inside TailoredContentOption don't pick it up. Bump weight to 700
  and font-size to 1.375rem on docs/ to compensate for the
  background-clip:text rendering path (grayscale AA, no solid fill)
  which makes glyphs look lighter/smaller than the adjacent solid
  600/20px headings.
- Tone down the selected TailoredContent option card on both surfaces
  to a near-grayscale wash (from-slate-50 → to-indigo-50/30) and
  shorten the card itself (smaller padding, smaller icon, smaller
  title; extra left padding for breathing room) so the picker takes
  less vertical space and doesn't compete with the Step 1 gradient
  heading. Indigo ring still does the "selected" signal.
- Bump the tablist's bottom margin in shell-docs (my-2 → mt-2 mb-6)
  so the gap between the picker and the first inner Step matches the
  1.5rem gap that every other consecutive-Step transition uses.
- Black SignupLink color in Step 1 on shell-docs so the link doesn't
  clash with the gradient heading above it.
- Shell-docs: reset margin-top on the first heading inside any Step so
  the badge and heading align, and nudge the badge top from -0.125rem
  to 0.1875rem so its vertical center matches the heading line center.
  Moved the badge's appearance (background/border/color/font-weight)
  out of inline style and into globals.css so :first-child overrides
  can win without fighting inline-style specificity.
2026-05-13 11:38:29 -07:00
Martha Schumann 6c07bf17a6 docs(telemetry): consolidate opt-out instructions to single env var
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Martha Schumann 6a9538b5e7 docs(telemetry): remove inaccurate telemetryDisabled flag claim
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Martha Schumann 7f791238dc docs(telemetry): remove unused snippet and inspector-specific section
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Martha Schumann 4cfdf9f5be docs(telemetry): remove implementation detail from inspector section
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Martha Schumann d4062020be docs(telemetry): remove premature posthog_distinct_id URL param docs
Per Ben Taylor: leave the CTA link URL param for later. Removing the
paragraph describing it from the docs until the approach is confirmed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Martha Schumann fa75abf23c fix(inspector/telemetry): address code review findings
- Don't fire banner_clicked on copy-button clicks (move track call to
  the non-copy-button branch of handleAnnouncementContentClick)
- Defer ensureTelemetryDistinctId() to runtime connection so no UUID
  is written to localStorage when COPILOTKIT_TELEMETRY_DISABLED is set
- Remove setTelemetryOptOut re-export from telemetry.ts (no production
  caller; tests already import directly from persistence.ts)
- Fix docs: replace Privacy tab toggle description with env var opt-out

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Martha Schumann ce35cba85e feat(inspector/telemetry): propagate telemetryDisabled from runtime env var through inspector
- Add telemetryDisabled to RuntimeInfo from COPILOTKIT_TELEMETRY_DISABLED/DO_NOT_TRACK env vars
- Mirror through AgentRegistry and expose via CopilotKitCore getter
- Guard track calls, URL param appending, and console disclosure on core.telemetryDisabled
- Move maybeShowDisclosure() to onRuntimeConnectionStatusChanged (fires after core attaches)
- Update docs to replace localStorage toggle description with env var approach
- Add telemetryDisabled test suite to get-runtime-info tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Martha Schumann db17476883 fix(inspector): update wire body shape + typed helpers + full test coverage (OSS-96)
- Move `package` from properties string to top-level `{ name }` object per
  Ben's confirmed IngestPayload schema (telemetry-sink-ingest/index.ts:127-134)
- Add typed per-event helpers trackBannerViewed/trackBannerClicked/trackThreadsTabClicked
  to enforce property shapes at call sites and prevent PII leakage under wrong keys
- Add trackBannerClickedOnce guard in index.ts (per-mount Set keyed by
  banner_id + cta) to prevent banner_clicked inflation on repeated clicks
- Fix handleTelemetryOptOutToggle: replace ?? true fallback with
  instanceof HTMLInputElement guard (wrong fallback was a privacy bug)
- Add threadsTabClicked re-selection guard (skip if already on threads tab)
- Replace getTelemetryDistinctIdForUrl() call on mount with ensureTelemetryDistinctId()
- Add inMemoryFallbackId in persistence.ts for funnel coherence when
  localStorage is unavailable (same UUID returned per page load)
- Add _resetTelemetryPersistenceForTesting() for test isolation
- Remove @copilotkit/shared dep from telemetry-disclosure.ts (inline
  env-var check; keeps module self-contained and testable in isolation)
- Add clearMocks: true to web-inspector vitest config (fixes spy call
  history accumulating across tests)
- Expand telemetry.test.ts to 22 tests covering wire body shape, opt-out,
  5 error-resilience paths, typed helpers, distinct ID lifecycle (SSR +
  localStorage-throws + funnel coherence), maybeShowDisclosure, and
  getTelemetryDistinctIdForUrl

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:43:17 -05:00
Claude 7914275c99 feat(inspector): add anonymous interaction telemetry (OSS-96)
Three V1 funnel events from the inspector — oss.inspector.banner_viewed,
oss.inspector.banner_clicked, oss.inspector.threads_tab_clicked — plus a
privacy panel for opt-out, a first-run console disclosure on inspector
mount and runtime startup, and inspector content added to the canonical
/telemetry docs page on main.

Inspector POSTs directly from the browser to telemetry.copilotkit.ai/ingest
(per ticket: URL is intentionally clearly named for transparency in DevTools).
Inline fetch POST in lib/telemetry.ts — no @copilotkit/shared dep on the
inspector, no dependency on any non-main branch.

Wire body shape (conservative; needs Ben confirmation):
  POST https://telemetry.copilotkit.ai/ingest
  { event, properties: { ...caller, distinct_id, package }, ts }
If the lambda expects a richer envelope, update the single JSON.stringify
in lib/telemetry.ts.

Privacy invariants:
- Opt-out toggle short-circuits before any network call (verified by test).
- Properties are scoped to event metadata only — no message content, agent
  state, prompts, completions, banner markdown. Negative test pins the wire.
- Anonymous distinct ID (UUID v4 in localStorage) set on inspector load and
  propagated onto banner CTA links as ?posthog_distinct_id=<uuid> so the
  destination site can posthog.alias() and close the
  banner_viewed → banner_clicked → signup_attributed funnel. URL param
  suppressed when opted out.
- Console disclosure on first inspector mount and runtime startup. Both
  link to https://docs.copilotkit.ai/telemetry.

Plan gaps addressed:
- CTA name on banner_clicked: cta:'body'|'dismiss' (click location) plus
  optional cta_label read defensively. Sam: confirm dismiss treatment.
- De-anon opt-out folded into the single toggle. Docs say so explicitly.
- banner_viewed dedup: per-instance Set<string> keyed by timestamp.
- EPIC consent / pixel review: out of scope for this PR; flagged at merge.

Deferred for V1.1:
- Wire body shape (Ben).
- Event-type allowlist for oss.inspector.* (Ben — oss-path-to-production).
- posthog_distinct_id URL-param key name (Ben/Tyler/website team).

Refs https://linear.app/copilotkit/issue/OSS-96
2026-05-11 15:43:17 -05:00
Martha Kelly Schumann d2840ff80c Docs(Programmatic Control): Added missing agentId, fixed imports and useEffect (mirror of #4430) (#4450)
Mirror of #4430 by @MalaikaAbb.

Adds an agentId note for non-default agents, replaces `agent.id` with
`agent.agentId`, corrects the `@copilotkit/shared/v2` import to
`@copilotkit/shared`, and adds the missing `[agent]` dependency to a
useEffect.
2026-05-11 13:29:12 -07:00
Martha Kelly Schumann 5da2a66815 Merge branch 'main' into docs(deepagents)/removed-checkpointer-in-python 2026-05-11 08:07:54 -07:00
Benjamin Taylor 84c029529d docs: remove old low-level threads/persistence pages superseded by useThreads
The /langgraph/advanced/persistence/* and /crewai-flows/persistence/* pages
documented the older threadId/setThreadId mechanism. They're replaced by the
useThreads-based /langgraph/threads and /crewai-flows/threads pages backed by
the shared threads snippet.

Adds redirects from the deleted paths (and their legacy /langgraph/persistence
aliases) to the new framework-scoped /threads pages, and drops "persistence"
from the crewai-flows sidebar.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 09:04:14 -05:00
Martha Kelly Schumann 4daf07f5c6 Merge branch 'main' into docs(deepagents)/removed-checkpointer-in-python 2026-05-09 07:41:03 -07:00
Benjamin Taylor 017e19455a chore: retarget "Talk to engineers" CTAs to /talk-to-an-engineer
Updates the docs navbar and showcase shell-docs brand-nav so the "Talk
to engineers" CTA points at copilotkit.ai/talk-to-an-engineer instead
of the deprecated /contact-us endpoint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 11:30:59 -05:00
Sam Julien 31721e813a docs(genui): link to DeepLearning.AI Generative UI course
Adds a Callout linking to "Build Interactive Agents with Generative UI"
(free DeepLearning.AI short course) on the two Generative UI overview
pages and the six lesson-specific pattern pages (display-only,
tool-rendering, state-rendering, open-generative-ui, a2ui, mcp-apps),
mirrored across docs/ and showcase/shell-docs/.
2026-05-07 14:28:31 -07:00
Jordan Ritter 36505a50a6 docs: add agent-facing footer with MCP server and Pathfinder links
Add a subtle footer to the docs root page with MCP server,
llms.txt, and Pathfinder URLs. Visible to humans but designed
for AI agents that hit the root docs page.
2026-05-07 12:53:17 -07:00
Max Korp da6640a16a docs(shell-docs): document llms.txt on coding-agent setup pages
Add an llms.txt section to the shared mcp-server-setup snippet
so /coding-agent-setup and /coding-agents pages tell users
where to find it for tools that don't speak MCP.
2026-05-07 12:29:14 -07:00
Max Korp ff4f8c26bc docs(shell-docs): redirect /llms.txt to mcp.copilotkit.ai
Delete stale docs/public/llms.txt and docs/public/llms-full.txt.
Replace with 301 redirects to mcp.copilotkit.ai where the
files are now generated and served as the source of truth.
2026-05-07 12:29:08 -07:00
Markus Ecker 79fb5af452 Merge remote-tracking branch 'origin/main' into mme/register-proxied-agent
# Conflicts:
#	packages/react-core/src/v2/hooks/__tests__/use-agent-thread-isolation.test.tsx
#	packages/react-core/src/v2/hooks/use-agent.tsx
#	packages/web-inspector/src/styles/generated.css
2026-05-07 14:20:55 +02:00
Jordan Ritter 164897647e feat: add @copilotkit/react-native package (#3633)
## Summary

- Extract `CopilotKitContext` and `useCopilotKit` into standalone
`context.ts` in react-core, enabling cross-platform reuse without web
dependencies
- Add new `@copilotkit/react-native` package with lightweight provider,
polyfills, and streaming fetch
- All hooks (`useAgent`, `useFrontendTool`, `useHumanInTheLoop`, etc.)
are re-exported directly from react-core — no reimplementation

## Motivation

CopilotKit's React hooks are platform-agnostic, but the barrel import in
`@copilotkit/react-core` pulls in web-only dependencies (Radix UI, Lit,
A2UI renderer, react-dom, CSS). This makes the package unusable in React
Native without extensive Metro shimming.

By extracting the React context into a standalone entry point
(`@copilotkit/react-core/v2/context`), the new
`@copilotkit/react-native` package can provide its own lightweight
provider while reusing all existing hooks.

## What's in `@copilotkit/react-native`

| Export | Description |
|--------|-------------|
| `CopilotKitProvider` | Lightweight provider — no DOM, CSS, Radix, Lit,
or A2UI deps |
| `installStreamingFetch()` | XHR-based streaming fetch for
`response.body.getReader()` support |
| `@copilotkit/react-native/polyfills` | All polyfills at once
(ReadableStream, TextEncoder, crypto, DOMException, window.location) |
| `@copilotkit/react-native/polyfills/*` | Granular per-polyfill imports
(`/streams`, `/encoding`, `/crypto`, `/dom`, `/location`) for users who
need to avoid overriding their own shims |
| `useAgent`, `useFrontendTool`, etc. | Re-exported from react-core
(shared context) |

## Usage

```tsx
// index.js (entry point, before other imports)
import "@copilotkit/react-native/polyfills";
import { installStreamingFetch } from "@copilotkit/react-native";
installStreamingFetch();

// App.tsx
import { CopilotKitProvider, useAgent, useCopilotKit } from "@copilotkit/react-native";

function App() {
  return (
    <CopilotKitProvider runtimeUrl="https://your-server/api/copilotkit">
      <ChatScreen />
    </CopilotKitProvider>
  );
}
```

## Test plan

- [x] `nx run react-core:build` passes
- [x] `nx run @copilotkit/react-native:build` passes
- [x] `nx run react-core:test` — all 1153 tests pass
- [x] Manual test in React Native app (tested during development with
bare RN 0.84 project)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-05-06 16:46:38 -07:00
Maxim e9651b0c74 docs: add React Native documentation and package README
Package README with installation, polyfill setup, and quick start.
Docs page covering prerequisites, provider wrapping, granular
polyfills, known limitations, and troubleshooting.
2026-05-06 16:42:34 -07:00
MalaikaAbb 73c04f8b1f Docs(Deepagents): Removed Checkpointer in Python code snippet 2026-05-06 22:03:39 +05:00
Sam Julien 495c331098 fix(docs): add redirects for active 404s on docs.copilotkit.ai
Adds 35 redirects in next.config.mjs covering every URL with
broken_link_accessed events from the last 30 days of PostHog data.

Categories:
- /generative-ui/specs/* → /learn/generative-ui/specs/* (section moved)
- /premium/{threads,inspector,premium/overview} → root equivalents
- /built-in-agent/guides/* → renamed pages or section index
- /built-in-agent/{human-in-the-loop,generative-ui/state-rendering,
  cookbook/state-machine} → closest matching concept
- /learn/direct-to-llm/* → /built-in-agent (namespace removed)
- /learn/langgraph/* → /langgraph/* (was never under /learn)
- /deepagents/{prebuilt-components,custom-look-and-feel/*} →
  root equivalents (deepagents integration is missing these pages)
- /guides/* with no /built-in-agent/guides equivalent → closest concept
- /reference/v1/hooks/{useRenderTool,useComponent,useThreads,
  useInterrupt,useCapabilities} → /reference/v2/hooks/<same>
  (these hooks are new in v2)
- /reference/v2/hooks/useCopilotAction → useFrontendTool (renamed)
- /whats-new/* → /learn/whats-new/*
- Doubled-prefix paths: /agent-spec/agent-spec/wayflow,
  /langgraph/langgraph/overview, /premium/premium/overview
- /langgraph/persistence/* → /langgraph/advanced/persistence/*
- /zh/langgraph/deep-agents → /deepagents (no i18n on this site)

Verified locally: every former-404 path returns 308 → 200 final.
2026-05-06 09:56:22 -07:00
Sam Julien 75abdb3a40 fix(docs): repair broken links in shared snippets
Several shared snippets linked to paths that no longer exist:
- /generative-ui/specs/* → /learn/generative-ui/specs/* (specs moved)
- /premium/threads → /threads (page is at root, not under /premium)
- /premium/inspector → /inspector (page is at root, not under /premium)

Because these snippets are inlined into many integration pages,
each broken link multiplied across the site and accounted for the
majority of internal-referrer 404s on docs.copilotkit.ai.
2026-05-06 09:56:09 -07:00
Markus Ecker 77dab3766a refactor(core,docs): rename ProxiedCopilotRuntimeAgent.remoteAgentId → runtimeAgentId
Renames the proxy-config field, the field on the agent instance, and
all matching references in tests and the useCopilotKit reference page.
"runtime" reads more naturally now that the proxy concept is documented
as "a local agent that delegates to a runtime agent" rather than
"remote agent" — the latter conflates with `remoteAgents` (the
registry of agents fetched from the runtime), which keeps its name.

No behavioral change; the field still controls the outbound REST URL
used by the proxy.
2026-05-06 11:46:44 +02:00
Benjamin Taylor 073ba8cfb9 docs(threads,self-hosting): polish prose and bump version requirement
Threads pages: drop @copilotkit/cli-vnext alias for the canonical
@copilotkit/cli, bump react-core minimum from v1.50 to v1.56, and trim
the redundant "(via Copilot Cloud or self-hosted)" parenthetical from
the Prerequisites bullets.

Self-hosting snippet: restructure the "What is this?" intro into a
labeled "What you bring" / "What the chart deploys" pair (with a
component table for ports), tighten the kubeconfig-check sentence, and
collapse the local-validation Callout into two parallel options (bundled
overlay vs one-shot script). Drop the "If none of these apply, use
Copilot Cloud" line — readers who land on /premium/self-hosting have
already opted in.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 05:28:48 -07:00
Dusty d0493f3d0d docs(self-hosting): fix chart name/version/secrets and add
local-validation path
2026-05-05 05:28:48 -07:00
Benjamin Taylor 61f0b629ea feat(docs): extend cli_command_copied install_type with infra CLIs
The self-hosting pages are heavy on helm install, kubectl apply, and
shell-script invocations — without these in KNOWN_INSTALL_TYPES they
all bucket as "code" and the self-hosting funnel goes blind to install
method. Skips sudo deliberately: it's a wrapper that would swallow the
real installer in the funnel.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 05:28:17 -07:00
Benjamin Taylor 0ada76b9ac docs: add Intelligence CTAs to restored threads pages
The Threads, Intelligence Platform explainer, multi-conversation
tutorial, useThreads reference, and the shared threads snippet were
restored at their pre-rollout state, so they carried no OpsPlatformCTA
while peer pages picked one up earlier on this branch. Wires each
restored page to the new try_for_free_clicked event with snake_case
surface identifiers, and fixes the "a Enterprise" → "an Enterprise"
article mismatch the rebrand left in both self-hosting pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 05:28:17 -07:00
Sam Julien d8c9d3cc8d docs: rebrand "CopilotKit platform" → "Enterprise Intelligence Platform"
Renames the platform name across docs prose, CTA copy, frontmatter
descriptions, and the Learn landing card. Three patterns were collapsed
into one canonical form:

  - "CopilotKit platform" → "Enterprise Intelligence Platform"
  - "CopilotKit Intelligence Platform" → "Enterprise Intelligence Platform"
  - "Intelligence Platform" → "Enterprise Intelligence Platform"

URL slugs (/learn/intelligence-platform, /premium/intelligence-platform)
are intentionally unchanged. The CTA component button label
("Get Intelligence free") is also unchanged.
2026-05-05 05:28:17 -07:00