## Summary
- remove duplicated OpsPlatformCTA blocks from A2A, CrewAI Flows, and
LangGraph prebuilt components docs
- add missing production CTA cards to integration quickstarts that only
had the inline signup step
- audit shell-docs CTA usage so each integration quickstart has exactly
one OpsPlatformCTA and no duplicate CTA blocks remain
## Verification
- npm run test (showcase/shell-docs)
- npm run typecheck (showcase/shell-docs)
- npm run lint (showcase/shell-docs; existing warnings only)
- npm run build (showcase/shell-docs; existing Next/Turbopack warning
only)
- duplicate CTA scanner: no duplicate CTA blocks found
- quickstart CTA scanner: every integration quickstart has exactly one
OpsPlatformCTA
Closes#3190.
## Summary
- update the configurable guide links to the current LangGraph
use-graph-api documentation
- remove an encoded `%23` fragment from the runtime configuration link
- point the AI travel tutorial Studio setup link directly to the current
LangGraph Studio docs
## Verification
- `npx --yes prettier --check
docs/content/docs/integrations/langgraph/configurable.mdx
docs/content/docs/integrations/langgraph/tutorials/ai-travel-app/step-2-langgraph-agent.mdx`
- `git diff --check`
- checked the updated LangChain/LangGraph URLs with `curl -L -I` and
confirmed HTTP 200
Note: `node scripts/check-broken-links.js` was also attempted from
`docs/`, but this sparse checkout does not include all docs pages and
lacks `fumadocs-mdx`, so it reports pre-existing missing internal pages
unrelated to this docs-only change.
Retitles to 'Build an Agentic Travel App with Oracle Agent Memory, Agent Spec, and CopilotKit' and syncs the recipe with the latest example: adds the memory-ownership diagram + 'what's CopilotKit, what's Oracle' section, documents memory reconciliation/supersession, and updates booking + multi-turn guidance (follow-ups now work via a server-side history-replace). Keeps the CDN media + clone conventions.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per review, keep this PR docs-only. Restores defineToolCallRenderer and
useRenderTool (and its test) to main. The specific-tool opt-out example
now passes a pass-through schema (parameters: z.any()) since the named
overload requires a schema.
Unify WhatsApp with main's Slack+Discord multi-adapter demo: WhatsApp becomes a
third env-gated platform block in examples/slack/app/index.ts (listening on
Railway $PORT, with a malformed-PORT guard). Keep the platform-aware
senderContext (also fixes the Discord 'Slack user' label); drop the superseded
buildAdapters helper for main's inline per-platform pattern. package.json takes
main's ~0.0.2 bumps + bot-discord and adds bot-whatsapp (workspace:~); README
intro + deploy section cover all three surfaces.
Adds a cookbook recipe showing how to define an agent once in Oracle
Agent Spec, run it on LangGraph over AG-UI, give it long-term memory on
Oracle AI Database, and render it in CopilotKit. Registers the page in
the cookbook sidebar (meta.json) and overview (index.mdx).
Draft: live-demo video pending CDN upload; example source repo
(CopilotKit/oracle-cookbook) pending publish.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a cookbook recipe + runnable showcase that gives the Built-in Agent
OAuth-backed Arcade tools (Gmail, Google News) and renders Arcade's one-time
authorization step as a generative-UI "Connect" card in the chat.
- docs: showcase/shell-docs/src/content/docs/cookbook/arcade.mdx (+ meta.json, index card)
- app: examples/showcases/arcade-tools (Next.js App Router, single-route runtime)
Co-authored-by: Cursor <cursoragent@cursor.com>
- Rename the opt-out section to "Disable default tool rendering" and lead
with the wildcard (all tools), then a "For specific tools" subsection,
so it reads least-specific to most-specific.
- Drop the useFrontendTool handler/schema boilerplate from the opt-out
example; both cases now use a schema-free useRenderTool call.
- Document the new render-only (no-schema) useRenderTool overload on the
useRenderTool reference page.
Avoid the provider renderToolCalls literal in the opt-out example,
which required a dummy args schema to typecheck. Point at the
documented useRenderTool wildcard overload (no schema needed) and
link to its reference page instead.
## Summary
Built-in Agent docs now render at bare root URLs, such as `/quickstart`,
instead of under `/built-in-agent`. Legacy `/built-in-agent/*` and
`/integrations/built-in-agent/*` paths continue to redirect to canonical
root or backend URLs.
## Why
The Built-in Agent is the default docs surface, so public docs URLs
should not expose it as a sub-slug. Existing links still need to keep
working, and root-page navigation must stay stable regardless of a
visitor's stored framework selection.
## How
- Root docs resolve Built-in Agent authored pages first while preserving
reserved routes like `/ag-ui` and framework-prefixed docs.
- Redirect rules in `next.config.ts` and `seo-redirects.ts` point
retired Built-in Agent and unselected paths directly at canonical
destinations, with regression coverage that prevents redirect
destinations from targeting `/built-in-agent`.
- The sidebar/framework provider treats bare URLs as the default
Built-in Agent surface instead of letting a stored framework value
rewrite root-page chrome.
- MDX link and search-result href rewriting strip retired Built-in Agent
prefixes on root-rendered pages while preserving explicit
cross-framework links.
- Stale docs links, sitemap, `llms.txt`, markdown exports, and OG
resolution now align with the root-served Built-in Agent surface.
- Showcase generated-data tests now serialize shared fixture restoration
to avoid concurrent drift in CI.
## Verification
- GitHub checks are green on `f655013dd2576a46dc17b5901eb4dc501cb21028`.
- `npm --prefix showcase/shell-docs run test --
src/lib/__tests__/search-hrefs.test.ts
src/lib/__tests__/docs-link-rewrite.test.ts
src/lib/__tests__/seo-redirects.test.ts
src/lib/__tests__/next-config-redirects.test.ts
src/components/__tests__/docs-landing-next.test.tsx
'src/app/[framework]/[[...slug]]/__tests__/framework-root-shell-layout.test.ts'`
- `npm --prefix showcase/shell-docs run test -- --exclude
src/app/__tests__/public-assets.test.ts`
- `npm --prefix showcase/shell-docs run typecheck`
- `npm --prefix showcase/shell-docs run lint`
- `npm --prefix showcase/shell-docs run build`
- `npm --prefix showcase/scripts run test`
- `pnpm exec nx run @copilotkit/bot-slack:build --skip-nx-cache
--verbose`
Sync the v2 useRenderToolCall reference page with the current hook
implementation and document how to opt out of rendering.
- Correct render-prop shape to include toolCallId (added in the hook
but missing from docs)
- Describe agentId-scoped renderer lookup priority
- Note arguments are parsed with partialJSONParse (streaming), not a
strict JSON.parse with empty-object fallback
- Fix toolCall prop description (toolCall.function.name/.arguments)
- Rewrite the Status Resolution table to match the real logic
(toolMessage presence + provider executing set)
- Add an "Opting Out of Rendering" section covering single-tool,
wildcard, and conditional null renderers
## Vue quick start guide
Adds a minimal getting-started guide for `@copilotkit/vue` under
**Platforms**, matching the existing React Native guide. It connects a
Vue app directly to an AG-UI agent with `HttpAgent`, so there is no
runtime to stand up and nothing framework-specific to configure. The
same setup works with any AG-UI agent, and agent-side setup links out to
Integrations.
### New page


### Changes
- `showcase/shell-docs/src/content/docs/vue.mdx` (new): five steps from
`npm create vue` to a working chat connected to an agent, plus a
troubleshooting accordion and next-steps links.
- `meta.json`: adds `vue` to the Platforms nav after `react-native`.
### Verification
- `pnpm build` of shell-docs passes: TypeScript clean, all static pages
generated, no errors.
- Built a throwaway Vue app from this guide verbatim. `vite build` and
`vue-tsc` resolve every import from `@copilotkit/vue/v2` (installed via
the published `@copilotkit/vue`), the chat renders, and a message
round-trips to a local AG-UI agent and streams back.
Add a minimal getting-started guide for @copilotkit/vue under Platforms.
Connects a Vue app directly to an AG-UI agent via HttpAgent so there is no
runtime to stand up, and imports from @copilotkit/vue/v2 to match the v2
docs convention. Links out to Integrations for agent-side setup.
The top-level docs/ folder is retired; the live docs are sourced from
showcase/shell-docs. Move the same three link fixes there and revert the
no-op edits to docs/:
- configurable.mdx: graph-api -> use-graph-api (#add-runtime-configuration)
- configurable.mdx: drop malformed %23 double-anchor on the schema link
- step-2-langgraph-agent.mdx: studio.langchain.com -> docs.langchain.com/.../studio
Closes#3190.
Update package READMEs + ARCHITECTURE for the assistant pane, native streaming,
and the new onThreadStarted / setSuggestedPrompts / setTitle surface. Reverse
the slack.mdx callout that told users to delete the assistant scopes (now
required), and enable the pane in the examples/slack manifest (assistant_view +
assistant:write + assistant_thread_* events) with a dev-ex onThreadStarted
greeting and the assistant config.
The default framework's docs now live at bare root URLs (/quickstart,
/server-tools, ...) instead of under /built-in-agent/. The root
catch-all resolves BIA-authored pages first, /built-in-agent/:path*
permanently redirects to /:path*, and sidebar/landing/selector hrefs
are root-relative.
The whole root surface shares ONE sidebar: the Built-in Agent IA with
the agnostic root sections (Concepts, Runtime, Deploy, Platforms, Other)
folded in via buildRootSurfaceNav. Empty ---Section--- placeholders in
the BIA meta.json position each folded-in section; appendSharedRootSections
fills them, dropEmptySections clears any that stay empty, and route-group
nodes (e.g. the (other) tree) are excluded so the fold never emits a bogus
/(other)/... href. Without this, navigating from a BIA page to an agnostic
page (/concepts/*, /backend/*) swapped the sidebar between two overlapping
IAs. The fold is scoped to the root surface only — deepagents keeps
Platforms-only and generated frameworks are untouched.
Duplicate pages that the fold would otherwise double up are consolidated
onto their canonical root homes:
- The three BIA backend wrappers (copilot-runtime, custom-agent, ag-ui)
are retired; the folded-in Runtime section is their single home. This
resolves the /backend/ag-ui collision (the wrapper had shadowed the
real root page). The bare /ag-ui segment belongs to the AG-UI protocol
docs, so old /built-in-agent/ag-ui links redirect to /backend/ag-ui.
- The BIA troubleshooting wrappers are retired in favor of the canonical
/troubleshooting/* pages surfaced by the folded-in Other section, so
Troubleshooting appears once.
Stale redirect R25 (/runtime-server-adapter -> /backend/copilot-runtime)
is removed: runtime-server-adapter is a distinct, current 'Deploy to any
runtime' page linked from the sidebar, and the redirect had made it
unreachable at its own URL.
Middleware rules that would shadow or loop against the new surface
(M2 /quickstart, BIA_DEFAULT_ROOT_REDIRECTS, MV-telemetry) are retired,
and remaining live destinations move off the old prefix. The sitemap,
llms.txt, per-page .md/.mdx, and OG image routes resolve the same
content the pages serve. The client-side RouterPivot bounce is removed
since root URLs now render real content in place.
Adds a **React Native** SDK to the reference docs at
`/reference/react-native`, covering the full `@copilotkit/react-native`
public API. Modeled on the existing React/Core/Bots reference sections.
**Nav:** register `react-native` in `reference-items.ts`, add the SDK
selector label + an overview card.
**Content (22 pages, written from package source):** index, 8
components, 13 hooks. `CopilotChat` and `CopilotModal` exist in both a
headless (root) and prebuilt-UI (`/components`) form; each page
documents both, split by import path.
**Verified:** `next build` passes, all pages render, `oxlint` + `tsc`
clean, and content appears in `llms.txt` / `llms-full.txt`.
Out of scope per the issue: guide content and new demos.
---
## Preview
**Overview + SDK nav** — `/reference/react-native` (left sidebar shows
the new “React Native” SDK selector and all 8 components + 13 hooks)

**Component page — `CopilotChat`** —
`/reference/react-native/components/CopilotChat` (headless + prebuilt-UI
split by import path)

**Hook page — `useAgent`** — `/reference/react-native/hooks/useAgent`
(re-export callout, react-native code examples)

Adds a "React Native" SDK to the reference section, documenting the full
public surface of @copilotkit/react-native at /reference/react-native.
Navigation wiring:
- Register `react-native` in REFERENCE_VERSIONS / VERSION_SUBDIRS
- Add the "React Native" label to the SDK version selector
- Add a React Native card to the reference overview page
Content (22 pages, sourced from package source for accuracy):
- index: install, polyfills, provider setup, and the headless vs prebuilt
two-tier model
- components: CopilotKitProvider, CopilotChat, CopilotModal, CopilotSidebar,
CopilotPopup, CopilotMarkdown, AssistantMessage, UserMessage — disambiguating
the headless (root) and prebuilt-UI (/components) variants of CopilotChat and
CopilotModal by import path
- hooks: RN-specific useAttachments and useRenderTool, plus the platform-
agnostic hooks re-exported from react-core/v2 adapted to RN imports and
primitives (useAgent, useCopilotKit, useFrontendTool, useAgentContext,
useThreads, useCapabilities, useComponent, useHumanInTheLoop, useInterrupt,
useSuggestions, useConfigureSuggestions)
Content is picked up automatically by llms.txt / llms-full.txt via the
reference content walker.
OSS-250