mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
0a582df4dd
The `@copilotkit/react-native` barrel statically re-exports the prebuilt chat UI (CopilotChat / CopilotModal / CopilotSidebar / CopilotPopup, which import `@gorhom/bottom-sheet`) and `useAttachments` (which imports `expo-document-picker` + `expo-file-system`). Those are optional peer deps, but a static re-export still forces Metro to resolve them at bundle time. A headless consumer that uses only `CopilotKitProvider` + `useAgent` + `useFrontendTool` (a fully custom UI) had to install every chat/attachment native dep or stub them in `metro.config.js`, or the release bundle fails with `Unable to resolve module expo-document-picker`. Add a lean `@copilotkit/react-native/headless` entry that re-exports only the provider, the platform-agnostic hooks, the render-tool registry, and the core/AG-UI types — none of the chat UI or `useAttachments` — so those native deps never enter the bundle graph and the metro-stub workaround is retired. Mirrors `@copilotkit/react-core/v2/headless` (#5883): a standalone entry file, wired into the tsdown entry list, the package.json `exports` map, and `sideEffects` (it side-effect-imports the polyfills). The default barrel now does `export * from "./headless"` and layers the chat UI on top, so it stays fully backward compatible. Adds a static import-graph regression test asserting the headless graph never reaches the chat/attachment modules or their native peer deps. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
822 B
822 B