Files
yannj-fr f4029e49d6 feat(react-core): consume shared mcp-apps-renderer, drop direct MCP deps
Reduce MCPAppsActivityRenderer from a 786-line self-contained implementation to
a thin React adapter over the framework-agnostic bindMcpApp:

- the React shell owns the iframe (create / mount / size / remove) and wires the
  session hooks (onResource, onSizeChanged, onError) to React state; all protocol
  logic (AppBridge, sandbox proxy, request queue, ui/message + open-link, tool
  input/result) now lives in @copilotkit/mcp-apps-renderer
- the bridge-free activity surface (MCPAppsActivityType, content schema, follow-up
  runner) is re-exported statically from the package's new ./activity entry, so
  registering the activity does not pull the ext-apps bundle
- bindMcpApp is loaded via a lazy import("@copilotkit/mcp-apps-renderer") inside
  the effect, keeping ext-apps (~40-50 kB gzipped) out of the main chunk

Dependency move (FR-007): react-core drops its direct @modelcontextprotocol/ext-apps
dependency, the @modelcontextprotocol/sdk peer + devDependency, and the zod >=3.25
peer floor (reverted to >=3.0.0), and depends on @copilotkit/mcp-apps-renderer
instead. The package becomes the sole owner of the MCP libraries: sdk moves from a
peer to a dependency there (satisfying ext-apps' required sdk peer), and a
bridge-free ./activity subpath is exported.

Register the package in the monorepo release scope and regenerate the public API
manifest. react-core's MCP e2e suite (37 tests across 4 files) stays green;
check-types + oxlint clean; behavior-preserving.
2026-09-04 05:59:13 +01:00

49 lines
1.4 KiB
JSON

{
"prereleaseTag": "canary",
"scopes": {
"monorepo": {
"packages": [
"@copilotkit/a2ui-renderer",
"@copilotkit/agentcore-runner",
"@copilotkit/core",
"@copilotkit/mcp-apps-renderer",
"@copilotkit/react-core",
"@copilotkit/react-native",
"@copilotkit/react-textarea",
"@copilotkit/react-ui",
"@copilotkit/runtime",
"@copilotkit/runtime-client-gql",
"@copilotkit/sdk-js",
"@copilotkit/shared",
"@copilotkit/sqlite-runner",
"@copilotkit/voice",
"@copilotkit/vue",
"@copilotkit/web-components",
"@copilotkit/web-inspector"
],
"versionSource": "@copilotkit/react-core",
"sharedVersion": true
},
"angular": {
"packages": ["@copilotkit/angular"],
"versionSource": "@copilotkit/angular",
"sharedVersion": false
},
"channels": {
"packages": [
"@copilotkit/channels-ui",
"@copilotkit/channels-core",
"@copilotkit/channels-slack",
"@copilotkit/channels-teams",
"@copilotkit/channels-intelligence",
"@copilotkit/channels-discord",
"@copilotkit/channels-telegram",
"@copilotkit/channels-whatsapp",
"@copilotkit/channels"
],
"versionSource": "@copilotkit/channels",
"sharedVersion": true
}
}
}