Commit Graph

295 Commits

Author SHA1 Message Date
Sam Julien 3a2eb01ebf fix(shell-docs): restore /v2 subpath on V2 canonical-form imports
The earlier V2 canonical sweep misread the brand-name guidance ("always
CopilotKit") as a directive on import paths and stripped /v2 from
@copilotkit/react-core specifiers. Inline review feedback clarified that
guidance applied only to the component name. This restores
"@copilotkit/react-core/v2" and "@copilotkit/react-core/v2/styles.css"
across the docs sweep scope (now including 8 framework quickstarts
inherited via rebase onto main); the <CopilotKit> rename and the drop
of @copilotkit/react-ui from install commands are kept.
2026-05-07 10:15:03 -07:00
Sam Julien 942ace0072 fix(shell-docs): translate InlineDemo slug to underscore form for code iframe
Registry demo slugs are dash-form (`agentic-chat`); feature-viewer.copilotkit.ai
serves them at underscore-form (`agentic_chat`). The Code tab iframe was
404'ing because the slug was passed through verbatim. Replace `-` with `_`
when building the code URL.
2026-05-07 10:13:30 -07:00
Sam Julien f3ae6680fa feat(shell-docs): render demo + code tabs on InlineDemo
Wraps the InlineDemo iframe in a Demo / Code tab strip mirroring the
IframeSwitcher component, so pages using <InlineDemo demo="..." /> now
expose both the live demo (integration backend) and a code view. The
code iframe points at feature-viewer.copilotkit.ai/<framework>/feature/
<demo>?view=code&sidebar=false&codeLayout=tabs, where <framework> is
translated through getDocsFolder() to map registry slugs like
langgraph-python down to their upstream folder name (langgraph) used by
the feature viewer.
2026-05-07 10:13:30 -07:00
Sam Julien ab684602f4 fix(shell-docs): wire IframeSwitcher to the real component
The mdx-registry shipped a stub IframeSwitcher that took `src`/`title`
props and rendered a single iframe. MDX consumers actually pass
`exampleUrl`/`codeUrl`/`exampleLabel`/`codeLabel`, so the stub was
silently dropping those props and rendering an empty container. The
result: pages using `<IframeSwitcher>` showed no demo+code tabs.

Replace the stub with the real component from `@/components/content`,
which matches the props shape consumers actually use.
2026-05-07 10:13:30 -07:00
Sam Julien 4bbceea08f docs(shell-docs): IframeSwitcher id forwarding + V2 SDK prose fix
IframeSwitcher: forward the `id` prop to a wrapping `<div id={id}>` so MDX
authors can deep-link to a specific switcher instance. The prop was
declared but never consumed.

oss-vs-enterprise.mdx: fix the Frontend SDK bullet to reflect canonical
V2 — both hooks and prebuilt components ship from `@copilotkit/react-core`
(the standalone `@copilotkit/react-ui` package is V1-era).
2026-05-07 10:13:30 -07:00
Sam Julien 646a058fc2 feat(shell-docs): add IframeSwitcher component for demo+code tabs
Several MDX files import `IframeSwitcher` from `@/components/content`
(prebuilt-components, frontend-tools, interactive, tool-rendering, plus
integration overrides), but the component file was missing. This adds it
as a thin wrapper around the existing `<Tabs>` component, rendering a
demo iframe and a code iframe in a Tabs strip.

Props: `exampleUrl`, `codeUrl`, `exampleLabel` (default "Demo"),
`codeLabel` (default "Code"), `height` (default "600px"). Both iframes
are sandboxed and lazy-loaded.

Matches the upstream IframeSwitcher pattern used on docs.copilotkit.ai
to render embedded feature-viewer demos alongside their backing code.
2026-05-07 10:13:30 -07:00
Sam Julien 1de9052af8 docs(shell-docs): consolidate custom-agent onto backend/custom-agent.mdx
backend/custom-agent.mdx (508 lines, structurally complete) is the canonical
Factory Mode page. The integrations/built-in-agent/custom-agent.mdx copy
(240 lines, missing 5 sections) was retired:

- Add 301 redirects in next.config.ts for the two historical paths
  (/built-in-agent/custom-agent and /integrations/built-in-agent/custom-agent
  → /backend/custom-agent).
- Inbound link retargets to /backend/custom-agent landed in the previous
  V2 normalization commit (5 files).
- Delete the divergent 240-line copy.
2026-05-07 10:13:29 -07:00
Sam Julien f4231b7d3b docs(shell-docs): normalize V2 canonical form across docs
Apply the canonical V2 import form across all V2 docs:
- `<CopilotKit>` (not `<CopilotKitProvider>`)
- imports from `@copilotkit/react-core` (root, not `/v2`)
- styles from `@copilotkit/react-core/styles.css` (not `react-ui/v2/styles.css`)
- drop `@copilotkit/react-ui` from npm install commands

Fix V2 leaks in canonical pages: replace stale `useCopilotAction` and
`useCopilotReadable` references in agentic-protocols/a2a.mdx and
backend/custom-agent.mdx with their V2 equivalents (`useFrontendTool`,
`useAgentContext`).

Excludes intentional V1 references in migrate guides, V1 reference tree,
migration callouts, and V1 release notes.
2026-05-07 10:13:29 -07:00
Sam Julien 59a8a71a61 docs(shell-docs): give quickstart CLI section two clear paths (interactive vs flag)
Restructure the "Run our CLI" step in all eight framework quickstarts to surface
two paths: the upstream interactive flow (which now covers the Enterprise
Intelligence Platform prompt and sign-up) and the `--framework <id>` flag fast
path. LangGraph and Microsoft Agent Framework keep both language variants in the
flag block.
2026-05-07 08:52:31 -07:00
Sam Julien 99d8ac7a53 docs(shell-docs): rewrite 8 quickstarts for CLI accuracy + V2 canonical form
Switch CLI command to `npx copilotkit@latest create --framework <id>` on all 8
framework quickstarts. Bypasses the unfiltered 18-framework picker and skips
the EIP prompt (which is mutually exclusive with --framework and today
scaffolds langgraph-python-threads regardless of which framework page the
user came from).

For LangGraph: keep an EIP callout since EIP=Yes does scaffold a LangGraph-
Python project today; note that threads support for other frameworks is
coming. For Microsoft Agent Framework and LangGraph (multi-variant): show
both --framework <variant> commands.

Apply the canonical V2 form:
- \`<CopilotKit>\` from \`@copilotkit/react-core\` (root, not /v2).
- styles from \`@copilotkit/react-core/styles.css\` (not react-ui/v2).
- drop \`@copilotkit/react-ui\` from npm install commands.
2026-05-06 18:27:53 -07:00
Sam Julien abeb2792b4 chore(shell-docs): also remove AG-UI link from mobile slide-out + drop now-unused helpers (PDX-119) 2026-05-06 18:27:53 -07:00
Sam Julien cebca92162 chore(shell-docs): remove AG-UI brand tab from header for visual parity with docs.copilotkit.ai (PDX-119) 2026-05-06 18:27:53 -07:00
Sam Julien 2c10c735dd Match upstream CLI walkthrough literally on 8 framework quickstarts (PDX-111) 2026-05-06 18:27:52 -07:00
Sam Julien f99a7061a6 fix(shell-docs): pre-cutover cleanup — programmatic-control fallback, /migrate redirect, MCP sync exclusion (#4685)
## Summary

Three small pre-cutover cleanup fixes batched into one PR (consolidation
of the prior #4680, #4681, #4682 — same content, fewer review queues).

- `b3ec38720` — Add `<WhenFrameworkHas absent>` fallback to
`programmatic-control.mdx` for the 7 frameworks without
`interrupt_pattern` (ag2, agno, built-in-agent, crewai-crews,
google-adk, mastra, spring-ai), mirroring the canonical pattern from PR
#4496.
- `c080ca062` — Retarget `/migrate/1.10.X` redirect destination from
`/migrate` (which 404s) to `/migrate/v2`. `permanent: false` preserved.
- `e61e8c36d` — Add `mcp-server-setup.mdx` exclusion to docs sync
script. Shell-docs version is intentionally ahead of upstream (HTTP/SSE
Tabs + `mcp-remote` + Tadata callout); without exclusion the next sync
would clobber it.

Supersedes #4680, #4681, #4682.

## Test plan

- [ ] `nx run shell-docs:dev` and visit `/programmatic-control` while
switching the framework selector to non-native fws — verify fallback
callout renders and links to `/human-in-the-loop`.
- [ ] Visit `/migrate/1.10.X` — should redirect to `/migrate/v2` and
render the V2 migration page.
- [ ] Inspect `showcase/scripts/sync-docs-from-main.ts` PATH_EXCLUSIONS
for the `mcp-server-setup` regex.
2026-05-06 17:55:36 -07:00
Jordan Ritter c43fde5891 fix(showcase): add missing lucide-react dependency to shell-docs
The shell-docs Docker build fails because link-to-copilot-cloud.tsx
imports from lucide-react but the package was never added to
shell-docs/package.json. Adding it at ^0.469.0 to match sibling
showcase packages.
2026-05-06 16:35:41 -07:00
Sam Julien e4cd723563 Retarget /migrate/1.10.X redirect to /migrate/v2 (PDX-96) 2026-05-06 16:21:21 -07:00
Sam Julien b2fd6f9db5 Add WhenFrameworkHas absent fallback to programmatic-control.mdx (PDX-95) 2026-05-06 16:21:21 -07:00
Sam Julien 72794959f3 fix(shell-docs): gate Reo init script on REO_KEY + JSON-escape interpolation
Two bugs in the Reo init <Script> in layout.tsx:

- If NEXT_PUBLIC_REO_KEY was unset, the script still ran with
  e = "undefined" and fetched https://static.reo.dev/undefined/reo.js.
  Sibling REB2B_KEY was correctly gated; Reo now matches.
- Bare interpolation into dangerouslySetInnerHTML — any future env
  value containing " or </script> would break out of the inline
  literal. Switches to JSON.stringify(REO_KEY) and reuses the
  resulting binding inside Reo.init() so the key only appears once.
2026-05-06 15:34:59 -07:00
Sam Julien f64b957ee9 refactor(shell-docs): centralize cloud CTA URL in CLOUD_CTA constant
Pulls the dashboard.operations.copilotkit.ai href + UTM string back
into CLOUD_CTA so the desktop and mobile placements share a single
source of truth. UTM tweaks become a one-line change instead of two.
2026-05-06 15:34:37 -07:00
Sam Julien 945a69799d refactor(shell-docs): switch framework-selector to usePostHog hook + namespace event
Two review fixes for framework-selector.tsx:

- Replaces the `posthog-js` singleton import with `usePostHog()` from
  `posthog-js/react`, matching the rest of the codebase. Both work after
  posthog.init() runs, but the singleton was an outlier.
- Renames the event from `framework_selected` to `docs.framework_selected`
  to match the dotted-prefix convention used elsewhere in PostHog
  Insights (oss.* / cloud.* / eip.* / pricing.cta_clicked). Cheap to do
  now since the event is brand-new with no historical data.
2026-05-06 15:34:03 -07:00
Sam Julien 601b726631 refactor(shell-docs): remove obsolete PostHog console suppressor
The suppressor was carried over from the original telemetry-stack port
of upstream's posthog-provider.tsx. Its job was masking
ERR_BLOCKED_BY_CONTENT_BLOCKER noise from PostHog requests being
blocked by ad blockers targeting *.i.posthog.com directly.

This PR ships the /ingest reverse proxy (mirroring upstream #4554), so
PostHog calls now flow through the docs host and the underlying
hostname is invisible to ad blockers. With nothing to suppress, the
mask only hid real errors that mention "posthog". Three concrete
problems on top of the dead-code framing:

- Substring match on "posthog" swallows unrelated messages.
- isInitializedRef.current only guards the same component instance,
  so HMR or StrictMode remounts re-capture the already-patched
  console.error and layer wrappers on each remount.
- originalLog is captured but console.log is never patched.

Resolves PDX-112.
2026-05-06 15:33:15 -07:00
Sam Julien 68c997b066 refactor(shell-docs): align analytics surface with upstream LCP trim
Mirrors upstream #4646 in two changes from the same PR:

- Drop the duplicate useRB2B hook in favor of the canonical
  <Script id="reb2b-script"> in app/layout.tsx (gated on REB2B_KEY).
  Env var renames from NEXT_PUBLIC_RB2B_ID (the hook's name) to
  NEXT_PUBLIC_REB2B_KEY (upstream's canonical name) — deployment
  ops will need updating.
- Set capture_dead_clicks: false on PostHog init so the
  dead-clicks-autocapture.js bundle isn't pulled in on the critical
  path.
2026-05-06 15:32:33 -07:00
Sam Julien e1b3e363fa feat(shell-docs): track CLI command copies via global writeText hook
Mirrors upstream #4643 + #4646 follow-ups. New trackCommandCopy helper
infers install_type from the leading token (covers npx/pnpm/pip/uv/
docker/curl/brew/helm/kubectl/make/bash/sh, falls back to "code"), and
the CopyTracker provider monkey-patches navigator.clipboard.writeText
once at app boot so every programmatic copy fires cli_command_copied
without per-component instrumentation. Preserves upstream's chained-
wrapper pattern so it coexists with Reo's writeText patch.

Final event shape is { install_type, location? } — the command body
and product props from the original draft were dropped upstream
(commit 0b7b3c77c) before merge.
2026-05-06 15:32:33 -07:00
Sam Julien bda35a3d33 feat(shell-docs): add Talk to Our Engineers nav button
Adds a Talk to Our Engineers CTA to the right side of the docs nav at
viewports >= 1400px and surfaces it in the mobile burger menu below
that. Fires posthog talk_to_us_clicked with { location: "docs_nav" }
on click, then navigates to copilotkit.ai/contact-us. Mirrors the
event the docs/ navbar fires so docs-originated clicks can be
segmented separately from website clicks (which use "nav").
2026-05-06 15:32:33 -07:00
Sam Julien 4bbe4dccdf feat(shell-docs): reverse-proxy PostHog through /ingest
Routes PostHog analytics through /ingest/* (rewrites to eu.i.posthog.com)
so requests bypass ad blockers and tracking-protection that target the
*.i.posthog.com hostname directly. Hardcodes POSTHOG_HOST = "/ingest"
in the provider, points ui_host at https://eu.posthog.com so PostHog UI
links still resolve, and excludes /ingest from the middleware matcher
so the proxy itself doesn't fire phantom pageviews. Mirrors the same
fix in docs/.
2026-05-06 15:32:33 -07:00
Sam Julien b4ce5f63be refactor(shell-docs): rewrite internal docs.copilotkit.ai links to relative paths
Sweeps 30 hardcoded https://docs.copilotkit.ai/* self-references across
15 mdx files in src/content/ to relative paths so they don't redirect-loop
once docs.copilotkit.ai cuts over to shell-docs.
2026-05-06 15:32:32 -07:00
Sam Julien d7e4f32e0f feat(shell-docs): cloud CTA in brand nav with try_for_free_clicked tracking
Adds a Free Developer Access CTA to the brand nav (desktop + mobile
menu) that points at dashboard.operations.copilotkit.ai with UTM tags
and fires try_for_free_clicked with { location } on click.
Distinguishes docs_navbar (desktop) from docs_navbar_mobile so the
funnel can split the two layouts.

Also adds the LinkToCopilotCloud component for use by MDX content
references that deep-link into Copilot Cloud — those remain on
cloud.copilotkit.ai.
2026-05-06 15:32:32 -07:00
Sam Julien 40fb09cb77 feat(shell-docs): instrument framework selector with PostHog event
Fires framework_selected when a user picks a framework so the docs
funnel can attribute drop-off to specific frameworks. Net-new event
(no upstream equivalent in docs/).
2026-05-06 15:32:32 -07:00
Sam Julien 5f7974a32d feat(shell-docs): port Open Graph image route + vercel.json
Adds app/og/[...slug]/route.tsx for per-page social-share image
generation, and a vercel.json with maxDuration: 60 on app/og/** so
the Edge function has enough headroom to render OG cards.
2026-05-06 15:32:32 -07:00
Sam Julien b355a9aec0 feat(shell-docs): port docs telemetry stack
Brings PostHog, GA4, HubSpot, Reo.dev, Scarf, and RB2B into shell-docs
with parity to docs/. Adds the client-side PostHog provider with
session-stitched bootstrap and pageview capture, the AnalyticsClient
wrapper that mounts RB2B + GA4 hooks behind a single client boundary,
the Scarf pixel for OSS attribution, and the HubSpot and Reo.dev
scripts.

Renames POSTHOG_PROJECT_KEY to POSTHOG_KEY across shell and shell-docs
middlewares so the env names match the upstream pattern, and env-drives
POSTHOG_HOST with eu.i.posthog.com as the fallback.
2026-05-06 15:32:31 -07:00
Sam Julien cfe4744024 docs(shell-docs): use prose "public license key" in CTA copy
Three CTA `body` strings rendered "publicLicenseKey" as plain prose,
which reads as code (camelCase identifier) where the surrounding
sentence is conversational. Switches to "public license key" — the
phrase, not the prop name. Code samples and reference docs that
reference the actual `publicLicenseKey` prop are unchanged.
2026-05-05 11:59:49 -07:00
Sam Julien 14469bedf4 feat(shell-docs): add useThreads at canonical reference path + content parity
The useThreads page existed in shell-docs at
\`src/content/docs/reference/v2/hooks/useThreads.mdx\` but that tree
isn't routed — the canonical reference renderer reads from
\`src/content/reference/\`, not \`src/content/docs/reference/\`. As a
result \`/reference/hooks/useThreads\` 404'd while the upstream docs
have had a working useThreads page for weeks.

Moves the page to the canonical location so it resolves at
\`/reference/hooks/useThreads\`, and pulls the rest of the threads
content stack into parity with upstream:

- Add \`OpsPlatformCTA\` to the reference renderer's component map so
  hook reference pages can host sign-up CTAs (used here on useThreads
  itself).
- Recreate useThreads at the canonical path. Drops the
  \`<ThreadsEarlyAccess>\` wrapper (canonical reference dir doesn't use
  it — threads is GA, no banner) and the \`doc_type: reference\`
  frontmatter field (canonical hooks use plain title + description).
  Keeps the local additions: \`<OpsPlatformCTA>\` placement and the
  \`lastRunAt\` PropertyReference (deliberately kept per commit
  9f18b50f0).
- Fix cross-links to useThreads in threads.mdx and the shared snippet
  to point at the canonical \`/reference/hooks/useThreads\` instead of
  the broken \`/reference/v2/hooks/useThreads\`.
- Bump the prerequisite from \`@copilotkit/react-core v1.50+\` to
  \`v1.56+\` in threads.mdx and the shared snippet to match upstream.

Out of scope: the broader \`/reference/v2/hooks/\<Name\>\` broken-link
problem across other shell-docs pages (useFrontendTool, useAgent,
etc. — same dirname mismatch but for hooks unrelated to this PR).
That's tracked under PDX-103 / PDX-84.

Page-structure differences from upstream are preserved per the
shell-docs IA decision to drop the \`learn/\` concept: \`learn/threads\`
stays \`premium/threads-explained\`, \`learn/intelligence-platform\`
stays \`premium/intelligence-platform\`, \`learn/tutorials/...\` stays
\`tutorials/...\`.
2026-05-05 11:55:02 -07:00
Sam Julien a5a48bd94e docs(shell-docs): rebrand "CopilotKit platform" → "Enterprise Intelligence Platform"
Mirrors upstream PR #4642 across shell-docs prose. Three patterns
collapsed into one canonical name:

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

Also corrects the "a Enterprise" → "an Enterprise" article mismatch
the rename leaves behind in self-hosting prerequisites (vowel-sound
rule).

URL slugs (/learn/intelligence-platform, /premium/intelligence-platform)
are left as-is — text-only rename. Generated artifacts (search-index.json,
demo-content.json) refresh on the next predev / prebuild script.

PDX-113.
2026-05-05 11:40:23 -07:00
Sam Julien 835a55d0ba feat(shell-docs): place OpsPlatformCTA across MDX pages
Mirrors the placements upstream docs/ shipped in PR #4592 (Wave 1) and
PR #4642 (Wave 2 — restored threads pages). 22 placements total: 18
direct ports of upstream surfaces, 3 path-adjusted (learn/* → premium/*
or tutorials/*), and 1 structural (root prebuilt-components → its
shell-docs directory index). Surface identifiers match upstream so
PostHog `try_for_free_clicked` events can be reasoned about across
the cutover.

Skipped:

- `quickstart.mdx` (root) — routing shim, no real content
- `(root)/index.mdx` — shell-docs has no MDX docs landing
- Per-framework integration `index.mdx` files — shell-docs has no
  per-framework overview pages, the upstream FrameworkOverview
  afterFeatures slot has no equivalent
- `reference/v2/components/{CopilotChat,CopilotKit}.mdx` and
  `reference/v2/index.mdx` — shell-docs reference layout differs

PDX-110.
2026-05-05 11:38:29 -07:00
Sam Julien 1685ba84e3 feat(shell-docs): port OpsPlatformCTA component
Adds the four-variant sign-up CTA (card / inline / tile / info) that
upstream docs/ uses to drive the Enterprise Intelligence Platform
funnel. Wires it into the shared MDX registry so MDX pages can drop
`<OpsPlatformCTA>` inline.

Adapted to shell-docs conventions:

- Tokens swapped from indigo/purple Tailwind utilities to the
  --accent / --violet-light / --border / --text* CSS variables that
  shell-docs already uses, so the visuals match the rest of the site.
- Dropped the dark: modifiers (shell-docs has no dark theme yet).
- Replaced the lucide-react import with three inline SVG components
  (ArrowRight, Info, Sparkles) — shell-docs deliberately avoids the
  lucide dep, the mdx-registry uses emoji fallbacks for icons.
- Removed the client-side posthog.capture for try_for_free_clicked.
  shell-docs ships server-side PostHog (middleware) only and has no
  posthog-js; UTM params on the dashboard URL remain the source of
  truth for click attribution. Surface props are preserved as the
  utm_content value.

PDX-109.
2026-05-05 11:38:29 -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
Sam Julien e5faf92c94 shell-docs: document optional schema migrations Step in self-hosting
The Helm chart supports running schema migrations as a pre-install Job
(disabled by default). Document the opt-in path and the verification
behavior so operators can decide whether to enable it.
2026-05-04 15:09:49 -07:00
Sam Julien 1891de6681 shell-docs: remove duplicate /learn and root ag-ui-middleware pages
These were re-introduced by an upstream docs sync. Canonical homes are
already in shell-docs at /premium/intelligence-platform,
/premium/threads-explained, /tutorials/multi-conversation-chat, and
/agentic-protocols/ag-ui-middleware. next.config.ts already redirects
the retired paths to the canonical destinations.
2026-05-04 15:08:36 -07:00
Sam Julien 7f875ea331 shell-docs: add Deploy section with inlined AgentCore content
Replaces the upstream-synced <Content /> stub at /deploy/agentcore with
the full inlined guide using the new <AgentCoreCommandTabs /> component
for the auth-mode-aware command examples. Wires the Deploy section into
the root nav.

- New component: agentcore-command-tabs.tsx
- New section meta: deploy/meta.json
- Root meta.json adds Deploy as a top-level group
- mdx-registry.tsx registers the component
2026-05-04 15:08:25 -07:00
Sam Julien c845c777e0 shell-docs: keep useThreads lastRunAt PropertyReference
The auto-sync removed the lastRunAt entry from the useThreads API reference,
but the field is still present on the Thread type and drives sort behavior in
packages/core/src/threads.ts. Restoring the doc keeps the API reference
complete.
2026-05-04 14:20:26 -05:00
copilotkit-devops-bot[bot] ef3bafe249 chore: docs sync from main — needs review (2026-04-30) 2026-05-04 14:20:26 -05:00
Sam Julien 8efa8a5ce9 fix(shell-docs): critical-path content fixes — imports, links, model names, premium walkthrough (#4497)
## Summary

Critical-path content fixes from the shell-docs QA triage. Fixes
everything that breaks copy-paste or click-through on existing pages.

**Items addressed:**
- 2.2, 8.1, 13.1, 13.2 — code-block import hygiene
- 12.1, 14.1, 15.1, 15.2, 22.1 — cross-page link sweep
- 9.1, 9.2 — `gpt-5.2*` → `gpt-5.4*` sweep + extend model-name CI
validator
- 7.1 — `migrations.enabled` premium walkthrough corrections

## Visual inspection

1. Start the dev server:
   ```bash
   nx run shell-docs:dev
   ```
   Open http://localhost:3003.

2. **Imports — copy-paste check.** Visit each page below; copy each
`route.ts` / `app/layout.tsx` / `app/page.tsx` block into a scratch
TypeScript file and verify it has all needed imports:
- `/built-in-agent/quickstart` (BIA, default integration — should now
import `CopilotKit` from `@copilotkit/react-core/v2`)
   - `/agent-spec/quickstart`
   - `/microsoft-agent-framework/quickstart`
- Switch framework picker to each of: `langgraph`, `mastra`,
`pydantic-ai`, `adk`, `agno`, `aws-strands`, `llamaindex`. Re-check the
same blocks.
- `/auth`, `/agentic-protocols/mcp`, `/backend/copilot-runtime`,
`/multimodal-attachments` — verify code blocks now show import lines.

3. **Links — click-through check.** On each page below, click every
external link in the prose:
- `/agentic-protocols` (the index — 7 link rewrites; all should resolve)
   - `/multimodal-attachments` (the migration Callout should be GONE)
- `/faq` ("What's available?" table — the rows should be plain bold
labels, not links)
- `/langgraph/agent-app-context` (mid-prose link should now point at
langgraph fw page, not BIA)
- `/inspector` (the agent-app-context relative link should resolve to
langgraph fw page)
- `/troubleshooting/common-issues` (the `copilot-runtime` and
`model-selection` links should now resolve)

4. **Model names — search check.** In the dev server (or via grep),
confirm `gpt-5.2` and `gpt-5.2-mini` no longer appear anywhere in
`showcase/shell-docs/src/content/`. All references should now be
`gpt-5.4` / `gpt-5.4-mini`.

5. **Premium walkthrough — read-through.** Walk `/premium/self-hosting`
end to end as if installing fresh. The walkthrough should now tell you
to set `migrations.enabled: true` BEFORE the install command. The "Job
will appear as Completed" prose should only fire if migrations were
enabled.

6. **Anti-checks (these should NOT have changed):**
- The legitimate `gpt-4o`, `gpt-4.1`, `gpt-5.4` references in JSDoc /
source code.
- Code blocks where imports were intentionally omitted because a prior
block on the same page established them.
- Reference pages under `/reference/v1/` (those are owned by a separate
PR).
2026-04-30 10:02:12 -07:00
Sam Julien 9099aa5d70 fix(shell-docs): retarget residual broken cross-links uncovered by visual QA
Follow-up to the docs cross-link sweep — visual QA surfaced four more sets
of broken links that the framework-scope middleware was rewriting into 404s
(or that resolved against the wrong path due to relative-link ambiguity).

- agentic-protocols/index.mdx: switch ./ag-ui, ./mcp, and ./a2a to absolute
  /agentic-protocols/* paths so they resolve regardless of trailing slash.
- faq.mdx: drop link wrapping on the three "Rich agentic experiences" row
  labels (Deep support for LangChain, Human-in-the-loop, Shared state).
  The /langgraph/* slugs were docs.copilotkit.ai legacy paths that don't
  exist in shell-docs; matches the playbook used for the V1 reference rows.
- integrations/langgraph/agent-app-context.mdx: retarget the "Frontend Data
  documentation" Callout link from /langgraph/agent-app-context to
  /langgraph-python/agent-app-context (the working slug).
- inspector.mdx: retarget the useAgentContext link in the Context row from
  /langgraph/agent-app-context to /langgraph-python/agent-app-context.
2026-04-30 08:56:08 -07:00
Sam Julien 30b68b12c2 fix(shell-docs): correct premium walkthrough on opt-in migrations Job
The Helm chart's `migrations.enabled` value defaults to `false`, but
the install walkthrough and overview prose both implied the
pre-install migrations Job always runs. Realign the docs with what the
chart actually does:

- intelligence-platform: rewrite the "Install" prose to describe the
  Job as conditional on `migrations.enabled: true`.
- self-hosting: add a new step in the install walkthrough between
  "Create secrets" and "Install the chart" that explains how to opt
  into migrations and when to leave them disabled. Update the
  "Verify the install" prose so it only claims a Completed Job if
  the reader opted in, and adjust the `--timeout` rationale to match.
2026-04-30 08:56:08 -07:00
Sam Julien 4be277055a fix(shell-docs): replace rogue gpt-5.2* with gpt-5.4* and extend CI validator
The model-name allowlist (`docs/model-allowlist.json`) ships
`gpt-5.4` and `gpt-5.4-mini` but never `gpt-5.2*` — the latter slipped
in during a model-bump cycle and was never caught because the CI
validator only scanned the legacy `docs/` tree.

- Sweep replace `gpt-5.2-mini` -> `gpt-5.4-mini` and `gpt-5.2` ->
  `gpt-5.4` across `showcase/shell-docs/src/content/` (~17 files).
- Extend `scripts/validate-doc-model-names.ts` with an
  `EXTRA_DOCS_DIRS` list so the validator now scans the shell-docs
  content tree alongside the legacy Nextra tree under `docs/`,
  preventing the same drift in future.
2026-04-30 08:56:08 -07:00
Sam Julien 61c7d8c55b fix(shell-docs): repair broken cross-page links
Sweep of dead links surfaced in the QA triage:

- agentic-protocols/index: retarget AG-UI / MCP / A2A links to the
  actual sibling slugs (`./ag-ui`, `./mcp`, `./a2a`); update the
  Generative UI table to point at the real `/generative-ui/*`
  pages and drop the link to the open-json-ui spec page (now hidden).
- multimodal-attachments: drop the orphaned migration Callout — the
  `/migration-guides/migrate-attachments` page does not exist.
- faq: remove `/reference/v1/*` links from the "What's available?"
  table; engineering direction is V2-only outside the reference area.
- agent-app-context: retarget the cross-link in the LangGraph guide
  and the Inspector reference to `/langgraph/agent-app-context` so
  they resolve.
- troubleshooting/common-issues: fix two broken `../X` links to
  point at the real `/backend/copilot-runtime` and
  `/built-in-agent/model-selection` slugs.
2026-04-30 08:56:02 -07:00
Sam Julien 4f795a13e3 fix(shell-docs): restore import lines on broken code blocks
Quickstart pages and a handful of high-traffic guides had their
`import { ... }` headers stripped, leaving bare identifiers above an
orphan `} from "..."` line — copy-pasting the snippets failed to
compile. Restore the missing import statements and add full imports
to layout.tsx / page.tsx blocks that were previously empty so each
block is independently copy-pasteable.

Also fixes the BIA-family quickstart V1 import path: `CopilotKit` is
exported only from the `/v2` entrypoint, so swap
`@copilotkit/react-core` for `@copilotkit/react-core/v2` in the BIA,
agent-spec, and Microsoft Agent Framework quickstarts.
2026-04-30 08:56:02 -07:00
Sam Julien ca95475607 fix(shell-docs): IA, sidebar, and HITL cleanup
Sidebar / IA / HITL cleanup from the shell-docs QA triage:

- Add `absent` mode to `<WhenFrameworkHas>` so MDX pages can declare a
  fallback branch for frameworks where a flag is null/missing, instead
  of collapsing to an empty middle.
- Use the new `absent` branch on `useInterrupt.mdx` and `headless.mdx`
  to point readers without `interrupt_pattern` at `useHumanInTheLoop`.
- Wrap the `useHeadlessInterrupt`-using "Driving it from plain UI"
  section in `headless.mdx` inside the native gate where the symbol is
  actually defined.
- Add `multi-agent/meta.json` so breadcrumbs / section labelling for
  `/multi-agent/subagents` use the explicit "Multi-Agent" title.
- Add a shared lead-in between `<InlineDemo>` and the gated branches in
  `agent-config.mdx`.
- Move `ag-ui-middleware.mdx` into `agentic-protocols/`, register it in
  the section's `meta.json`, link to the upstream AG-UI guide, and add
  a 302 from the old `/ag-ui-middleware` path.
2026-04-30 08:55:49 -07:00
Sam Julien f2b3c96c45 fix(shell-docs): reference accuracy + observability V2 translation + contributor docs rewrite (#4495)
## Summary

Updates incorrect/outdated documentation about real APIs. Reference
pages aligned with current package source; observability page
mechanically translated V1->V2; contributor onboarding rewritten to
point at shell-docs/Fumadocs/Nx instead of the legacy Nextra tree.

**Items addressed (from [triage
plan](https://app.notion.com/p/3523aa3818528128bcb0ee9e137cfff0)):**
- 9.3 — `LangChainAdapter.mdx`: `gpt-5.4` -> `gpt-4o`, drop the
misleading "auto-generated" header comment
- 19.1 — V2 hook reference pages: add missing `threadId` on `useAgent`,
fix `throttleMs` default cascade, add `lastRunAt` on `useThreads` Thread
shape
- 5.1 — `observability-connectors.mdx`: mechanical V1->V2 translation
(`<CopilotKit>` -> `<CopilotKitProvider>`, V2 import path, updated
`onError` event shape, optional server-side `CopilotObservabilityConfig`
section)
- 20.1 — `docs-contributions.mdx`: rewrite for shell-docs / Fumadocs /
Nx with real dev commands and ports

## Visual inspection

1. Start the dev server:
   ```bash
   nx run shell-docs:dev
   ```
   Open http://localhost:3003.

2. **Reference pages — accuracy.** Visit each page and verify the
documented shape matches the source:
- `/reference/v1/classes/llm-adapters/LangChainAdapter` — `## Example`
should show `model: "gpt-4o"`, not `gpt-5.4`. Page header should no
longer claim it's auto-generated.
- `/reference/v2/hooks/useAgent` — Parameters section should now list
`threadId`. `throttleMs` description should mention the provider-cascade
default.
- `/reference/v2/hooks/useThreads` — `threads` Return Value's Thread
shape should now list `lastRunAt`.

3. **Observability page — V2 translation.** Visit
`/troubleshooting/observability-connectors`:
   - Code blocks should use `<CopilotKitProvider>`, not `<CopilotKit>`.
   - Imports should be from `@copilotkit/react-core/v2`.
- The `onError` event shape should be `{ error, code, context }`, not
the V1 `CopilotErrorEvent` fields.
- `publicApiKey` and `publicLicenseKey` props should still appear (they
carry over to V2).
- A server-side section was added referencing
`CopilotObservabilityConfig` from the runtime.

4. **Contributor docs — read-through.** Visit the rendered
"Documentation Contributions" page (under the `(other)/contributing`
group). Walk through as if you're a new contributor:
- Clone instructions should point at `CopilotKit` root with Nx commands
run from there.
   - Dev port should be 3003.
   - Should mention Fumadocs (not Nextra).
   - Should mention `<Snippet>`-region authoring at a high level.
   - Should mention the pre-commit hook expectation.

5. **Anti-checks (should NOT have changed):**
   - The actual JSDoc source in `packages/` is unchanged.
- Other reference pages (e.g. `/reference/v2/hooks/useCapabilities`) are
unchanged.
   - The legacy `docs/` tree (the Nextra one) is unchanged.
2026-04-30 08:51:20 -07:00
Sam Julien 5151548235 fix(shell-docs): reference page accuracy + observability V2 translation + contributor docs rewrite 2026-04-30 06:19:30 -07:00