@copilotkit/react-core 1.83.0 → 2.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{runtime-context-CrHq-iTf.d.mts → MarkdownRendererContext-B4Us6mwL.d.cts} +127 -97
- package/dist/MarkdownRendererContext-B4Us6mwL.d.cts.map +1 -0
- package/dist/{runtime-context-D3NcP9oE.d.cts → MarkdownRendererContext-CRKFzsEB.d.mts} +127 -97
- package/dist/MarkdownRendererContext-CRKFzsEB.d.mts.map +1 -0
- package/dist/{MarkdownSurfaces-FF5za2kU.cjs → MarkdownSurfaces-C2XZISKn.cjs} +203 -55
- package/dist/MarkdownSurfaces-C2XZISKn.cjs.map +1 -0
- package/dist/{MarkdownSurfaces-DGpjmPaB.mjs → MarkdownSurfaces-ChSlVYOk.mjs} +171 -47
- package/dist/MarkdownSurfaces-ChSlVYOk.mjs.map +1 -0
- package/dist/{v2/context.cjs → context.cjs} +2 -2
- package/dist/context.cjs.map +1 -0
- package/dist/{v2/context.d.cts → context.d.cts} +5 -5
- package/dist/context.d.cts.map +1 -0
- package/dist/{v2/context.d.mts → context.d.mts} +5 -5
- package/dist/context.d.mts.map +1 -0
- package/dist/{v2/context.mjs → context.mjs} +2 -2
- package/dist/context.mjs.map +1 -0
- package/dist/{v2/generative-ui.cjs → generative-ui.cjs} +40 -43
- package/dist/generative-ui.cjs.map +1 -0
- package/dist/{v2/generative-ui.d.cts → generative-ui.d.cts} +14 -12
- package/dist/generative-ui.d.cts.map +1 -0
- package/dist/{v2/generative-ui.d.mts → generative-ui.d.mts} +14 -12
- package/dist/generative-ui.d.mts.map +1 -0
- package/dist/{v2/generative-ui.mjs → generative-ui.mjs} +40 -43
- package/dist/generative-ui.mjs.map +1 -0
- package/dist/{v2/headless.cjs → headless.cjs} +68 -53
- package/dist/headless.cjs.map +1 -0
- package/dist/{v2/headless.d.cts → headless.d.cts} +24 -23
- package/dist/headless.d.cts.map +1 -0
- package/dist/{v2/headless.d.mts → headless.d.mts} +21 -20
- package/dist/headless.d.mts.map +1 -0
- package/dist/{v2/headless.mjs → headless.mjs} +51 -36
- package/dist/headless.mjs.map +1 -0
- package/dist/index.cjs +15391 -1862
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2 -0
- package/dist/index.d.cts +3252 -1370
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3234 -1369
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +13733 -1815
- package/dist/index.mjs.map +1 -1
- package/dist/index.umd.js +11944 -5481
- package/dist/index.umd.js.map +1 -1
- package/package.json +21 -30
- package/dist/MarkdownSurfaces-DGpjmPaB.mjs.map +0 -1
- package/dist/MarkdownSurfaces-FF5za2kU.cjs.map +0 -1
- package/dist/copilotkit-BuIuo-Z1.cjs +0 -16531
- package/dist/copilotkit-BuIuo-Z1.cjs.map +0 -1
- package/dist/copilotkit-C765tOUi.d.mts +0 -4112
- package/dist/copilotkit-C765tOUi.d.mts.map +0 -1
- package/dist/copilotkit-DyxwF9wL.mjs +0 -16025
- package/dist/copilotkit-DyxwF9wL.mjs.map +0 -1
- package/dist/copilotkit-wqaNanhw.d.cts +0 -4129
- package/dist/copilotkit-wqaNanhw.d.cts.map +0 -1
- package/dist/runtime-context-CrHq-iTf.d.mts.map +0 -1
- package/dist/runtime-context-D3NcP9oE.d.cts.map +0 -1
- package/dist/v2/context.cjs.map +0 -1
- package/dist/v2/context.d.cts.map +0 -1
- package/dist/v2/context.d.mts.map +0 -1
- package/dist/v2/context.mjs.map +0 -1
- package/dist/v2/generative-ui.cjs.map +0 -1
- package/dist/v2/generative-ui.d.cts.map +0 -1
- package/dist/v2/generative-ui.d.mts.map +0 -1
- package/dist/v2/generative-ui.mjs.map +0 -1
- package/dist/v2/headless.cjs.map +0 -1
- package/dist/v2/headless.d.cts.map +0 -1
- package/dist/v2/headless.d.mts.map +0 -1
- package/dist/v2/headless.mjs.map +0 -1
- package/dist/v2/index.cjs +0 -1635
- package/dist/v2/index.css +0 -2
- package/dist/v2/index.d.cts +0 -4
- package/dist/v2/index.d.mts +0 -4
- package/dist/v2/index.mjs +0 -8
- package/dist/v2/index.umd.js +0 -20695
- package/dist/v2/index.umd.js.map +0 -1
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
let react = require("react");
|
|
5
5
|
let _copilotkit_core = require("@copilotkit/core");
|
|
6
6
|
|
|
7
|
-
//#region src/
|
|
7
|
+
//#region src/lib/react-core.ts
|
|
8
8
|
var CopilotKitCoreReact = class extends _copilotkit_core.CopilotKitCore {
|
|
9
9
|
constructor(config) {
|
|
10
10
|
super(config);
|
|
@@ -100,7 +100,7 @@ var CopilotKitCoreReact = class extends _copilotkit_core.CopilotKitCore {
|
|
|
100
100
|
};
|
|
101
101
|
|
|
102
102
|
//#endregion
|
|
103
|
-
//#region src/
|
|
103
|
+
//#region src/context.ts
|
|
104
104
|
const EMPTY_SET = /* @__PURE__ */ new Set();
|
|
105
105
|
const CopilotKitContext = (0, react.createContext)(null);
|
|
106
106
|
const useCopilotKit = () => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.cjs","names":["CopilotKitCore"],"sources":["../src/lib/react-core.ts","../src/context.ts"],"sourcesContent":["import React from \"react\";\nimport type {\n ReactActivityMessageRenderer,\n ReactToolCallRenderer,\n} from \"../types\";\nimport type { ReactCustomMessageRenderer } from \"../types/react-custom-message-renderer\";\nimport { CopilotKitCore } from \"@copilotkit/core\";\nimport type {\n CopilotKitCoreConfig,\n CopilotKitCoreSubscriber,\n CopilotKitCoreSubscription,\n} from \"@copilotkit/core\";\n\nexport interface CopilotKitCoreReactConfig extends CopilotKitCoreConfig {\n // Add any additional configuration properties specific to the React implementation\n renderToolCalls?: ReactToolCallRenderer<any>[];\n renderActivityMessages?: ReactActivityMessageRenderer<any>[];\n\n // Add custom message renderers\n renderCustomMessages?: ReactCustomMessageRenderer[];\n}\n\nexport interface CopilotKitCoreReactSubscriber extends CopilotKitCoreSubscriber {\n onRenderToolCallsChanged?: (event: {\n copilotkit: CopilotKitCore;\n renderToolCalls: ReactToolCallRenderer<any>[];\n }) => void | Promise<void>;\n onInterruptElementChanged?: (event: {\n copilotkit: CopilotKitCore;\n interruptElement: React.ReactElement | null;\n }) => void | Promise<void>;\n}\n\nexport class CopilotKitCoreReact extends CopilotKitCore {\n private _renderToolCalls: ReactToolCallRenderer<any>[] = [];\n private _hookRenderToolCalls: Map<string, ReactToolCallRenderer<any>> =\n new Map();\n private _cachedMergedRenderToolCalls: ReactToolCallRenderer<any>[] | null =\n null;\n private _renderCustomMessages: ReactCustomMessageRenderer[] = [];\n private _renderActivityMessages: ReactActivityMessageRenderer<any>[] = [];\n private _interruptElement: React.ReactElement | null = null;\n\n constructor(config: CopilotKitCoreReactConfig) {\n super(config);\n this._renderToolCalls = config.renderToolCalls ?? [];\n this._renderCustomMessages = config.renderCustomMessages ?? [];\n this._renderActivityMessages = config.renderActivityMessages ?? [];\n }\n\n get renderCustomMessages(): Readonly<ReactCustomMessageRenderer[]> {\n return this._renderCustomMessages;\n }\n\n get renderActivityMessages(): Readonly<ReactActivityMessageRenderer<any>>[] {\n return this._renderActivityMessages;\n }\n\n get renderToolCalls(): Readonly<ReactToolCallRenderer<any>>[] {\n if (this._hookRenderToolCalls.size === 0) {\n return this._renderToolCalls;\n }\n if (this._cachedMergedRenderToolCalls) {\n return this._cachedMergedRenderToolCalls;\n }\n // Merge: hook entries override prop entries with the same key\n const merged = new Map<string, ReactToolCallRenderer<any>>();\n for (const rc of this._renderToolCalls) {\n merged.set(`${rc.agentId ?? \"\"}:${rc.name}`, rc);\n }\n for (const [key, rc] of this._hookRenderToolCalls) {\n merged.set(key, rc);\n }\n this._cachedMergedRenderToolCalls = Array.from(merged.values());\n return this._cachedMergedRenderToolCalls;\n }\n\n setRenderActivityMessages(\n renderers: ReactActivityMessageRenderer<any>[],\n ): void {\n this._renderActivityMessages = renderers;\n }\n\n setRenderCustomMessages(renderers: ReactCustomMessageRenderer[]): void {\n this._renderCustomMessages = renderers;\n }\n\n setRenderToolCalls(renderToolCalls: ReactToolCallRenderer<any>[]): void {\n this._renderToolCalls = renderToolCalls;\n this._cachedMergedRenderToolCalls = null;\n this._notifyRenderToolCallsChanged();\n }\n\n addHookRenderToolCall(entry: ReactToolCallRenderer<any>): void {\n const key = `${entry.agentId ?? \"\"}:${entry.name}`;\n this._hookRenderToolCalls.set(key, entry);\n this._cachedMergedRenderToolCalls = null;\n this._notifyRenderToolCallsChanged();\n }\n\n removeHookRenderToolCall(name: string, agentId?: string): void {\n const key = `${agentId ?? \"\"}:${name}`;\n if (this._hookRenderToolCalls.delete(key)) {\n this._cachedMergedRenderToolCalls = null;\n this._notifyRenderToolCallsChanged();\n }\n }\n\n private _notifyRenderToolCallsChanged(): void {\n void this.notifySubscribers((subscriber) => {\n const reactSubscriber = subscriber as CopilotKitCoreReactSubscriber;\n if (reactSubscriber.onRenderToolCallsChanged) {\n reactSubscriber.onRenderToolCallsChanged({\n copilotkit: this,\n renderToolCalls: this.renderToolCalls,\n });\n }\n }, \"Subscriber onRenderToolCallsChanged error:\");\n }\n\n get interruptElement(): React.ReactElement | null {\n return this._interruptElement;\n }\n\n setInterruptElement(element: React.ReactElement | null): void {\n this._interruptElement = element;\n void this.notifySubscribers((subscriber) => {\n const reactSubscriber = subscriber as CopilotKitCoreReactSubscriber;\n reactSubscriber.onInterruptElementChanged?.({\n copilotkit: this,\n interruptElement: this._interruptElement,\n });\n }, \"Subscriber onInterruptElementChanged error:\");\n }\n\n // Override to accept React-specific subscriber type\n subscribe(\n subscriber: CopilotKitCoreReactSubscriber,\n ): CopilotKitCoreSubscription {\n return super.subscribe(subscriber);\n }\n\n /**\n * Wait for pending React state updates before the follow-up agent run.\n *\n * When a frontend tool handler calls setState(), React 18 batches the update\n * and schedules a commit via its internal scheduler (MessageChannel). The\n * useAgentContext hook registers context via useLayoutEffect, which runs\n * synchronously after React commits that batch.\n *\n * Awaiting a zero-delay timeout yields to the macrotask queue. React's\n * MessageChannel task runs first, committing the pending state and running\n * useLayoutEffect (which updates the context store). The follow-up runAgent\n * call then reads fresh context.\n */\n async waitForPendingFrameworkUpdates(): Promise<void> {\n await new Promise<void>((resolve) => setTimeout(resolve, 0));\n }\n}\n","\"use client\";\n\nimport { createContext, useContext, useEffect, useReducer } from \"react\";\nimport { CopilotKitCoreReact } from \"./lib/react-core\";\nimport type { CopilotKitCoreReactConfig } from \"./lib/react-core\";\nimport type { LicenseContextValue } from \"@copilotkit/shared\";\n\n// Re-export so headless.ts (and consumers) reference the same type declaration.\nexport { CopilotKitCoreReact };\nexport type { CopilotKitCoreReactConfig };\n\nexport interface CopilotKitContextValue {\n copilotkit: CopilotKitCoreReact;\n /**\n * Whether CopilotKit should automatically mount Intelligence indicators.\n * Defaults to true when omitted for compatibility with custom providers.\n */\n showIntelligenceIndicator?: boolean;\n /**\n * Set of tool call IDs currently being executed.\n * This is tracked at the provider level to ensure tool execution events\n * are captured even before child components mount.\n */\n executingToolCallIds: ReadonlySet<string>;\n}\n\nexport const EMPTY_SET: ReadonlySet<string> = new Set();\n\nexport const CopilotKitContext = createContext<CopilotKitContextValue | null>(\n null,\n);\n\nexport const useCopilotKit = (): CopilotKitContextValue => {\n const context = useContext(CopilotKitContext);\n const [, forceUpdate] = useReducer((x: number) => x + 1, 0);\n\n if (!context) {\n throw new Error(\"useCopilotKit must be used within CopilotKitProvider\");\n }\n useEffect(() => {\n const subscription = context.copilotkit.subscribe({\n onRuntimeConnectionStatusChanged: () => {\n forceUpdate();\n },\n onHeadersChanged: () => {\n forceUpdate();\n },\n });\n return () => {\n subscription.unsubscribe();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return context;\n};\n\n// License context — shared between web and RN providers.\n// Default is permissive (all features allowed) — providers override via createLicenseContextValue.\n// Inlined here to avoid a runtime import from @copilotkit/shared, which pulls in\n// Node-only deps (jose) that break React Native's Metro bundler.\nexport const LicenseContext = createContext<LicenseContextValue>({\n status: null,\n license: null,\n checkFeature: () => true,\n getLimit: () => null,\n} as LicenseContextValue);\n\nexport const useLicenseContext = (): LicenseContextValue =>\n useContext(LicenseContext);\n\n// Provider-level default agent id, published by `<CopilotKitProvider agentId>`.\n//\n// This is a context of its own rather than a `CopilotChatConfigurationProvider`\n// rendered at the root, because that provider also owns a thread: it resolves a\n// threadId (minting a UUID when none is given) and the top-most one owns the\n// imperative active-thread override. Rendering it around the whole application\n// would hand every `<CopilotChat>` the same inherited threadId, so two sibling\n// chats would share one transcript. A bare string context carries the agent\n// default and nothing else.\n//\n// It is the LAST fallback before `DEFAULT_AGENT_ID`, so an explicit `agentId`\n// argument, a `<CopilotChat agentId>`, and a `<CopilotChatConfigurationProvider\n// agentId>` all still win.\nexport const CopilotKitAgentIdContext = createContext<string | undefined>(\n undefined,\n);\n\nexport const useDefaultAgentId = (): string | undefined =>\n useContext(CopilotKitAgentIdContext);\n"],"mappings":";;;;;;;AAiCA,IAAa,sBAAb,cAAyCA,gCAAe;CAUtD,YAAY,QAAmC;AAC7C,QAAM,OAAO;0BAV0C,EAAE;8CAEzD,IAAI,KAAK;sCAET;+BAC4D,EAAE;iCACO,EAAE;2BAClB;AAIrD,OAAK,mBAAmB,OAAO,mBAAmB,EAAE;AACpD,OAAK,wBAAwB,OAAO,wBAAwB,EAAE;AAC9D,OAAK,0BAA0B,OAAO,0BAA0B,EAAE;;CAGpE,IAAI,uBAA+D;AACjE,SAAO,KAAK;;CAGd,IAAI,yBAAwE;AAC1E,SAAO,KAAK;;CAGd,IAAI,kBAA0D;AAC5D,MAAI,KAAK,qBAAqB,SAAS,EACrC,QAAO,KAAK;AAEd,MAAI,KAAK,6BACP,QAAO,KAAK;EAGd,MAAM,yBAAS,IAAI,KAAyC;AAC5D,OAAK,MAAM,MAAM,KAAK,iBACpB,QAAO,IAAI,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,QAAQ,GAAG;AAElD,OAAK,MAAM,CAAC,KAAK,OAAO,KAAK,qBAC3B,QAAO,IAAI,KAAK,GAAG;AAErB,OAAK,+BAA+B,MAAM,KAAK,OAAO,QAAQ,CAAC;AAC/D,SAAO,KAAK;;CAGd,0BACE,WACM;AACN,OAAK,0BAA0B;;CAGjC,wBAAwB,WAA+C;AACrE,OAAK,wBAAwB;;CAG/B,mBAAmB,iBAAqD;AACtE,OAAK,mBAAmB;AACxB,OAAK,+BAA+B;AACpC,OAAK,+BAA+B;;CAGtC,sBAAsB,OAAyC;EAC7D,MAAM,MAAM,GAAG,MAAM,WAAW,GAAG,GAAG,MAAM;AAC5C,OAAK,qBAAqB,IAAI,KAAK,MAAM;AACzC,OAAK,+BAA+B;AACpC,OAAK,+BAA+B;;CAGtC,yBAAyB,MAAc,SAAwB;EAC7D,MAAM,MAAM,GAAG,WAAW,GAAG,GAAG;AAChC,MAAI,KAAK,qBAAqB,OAAO,IAAI,EAAE;AACzC,QAAK,+BAA+B;AACpC,QAAK,+BAA+B;;;CAIxC,AAAQ,gCAAsC;AAC5C,EAAK,KAAK,mBAAmB,eAAe;GAC1C,MAAM,kBAAkB;AACxB,OAAI,gBAAgB,yBAClB,iBAAgB,yBAAyB;IACvC,YAAY;IACZ,iBAAiB,KAAK;IACvB,CAAC;KAEH,6CAA6C;;CAGlD,IAAI,mBAA8C;AAChD,SAAO,KAAK;;CAGd,oBAAoB,SAA0C;AAC5D,OAAK,oBAAoB;AACzB,EAAK,KAAK,mBAAmB,eAAe;AAE1C,GADwB,WACR,4BAA4B;IAC1C,YAAY;IACZ,kBAAkB,KAAK;IACxB,CAAC;KACD,8CAA8C;;CAInD,UACE,YAC4B;AAC5B,SAAO,MAAM,UAAU,WAAW;;;;;;;;;;;;;;;CAgBpC,MAAM,iCAAgD;AACpD,QAAM,IAAI,SAAe,YAAY,WAAW,SAAS,EAAE,CAAC;;;;;;AClIhE,MAAa,4BAAiC,IAAI,KAAK;AAEvD,MAAa,6CACX,KACD;AAED,MAAa,sBAA8C;CACzD,MAAM,gCAAqB,kBAAkB;CAC7C,MAAM,GAAG,sCAA2B,MAAc,IAAI,GAAG,EAAE;AAE3D,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,uDAAuD;AAEzE,4BAAgB;EACd,MAAM,eAAe,QAAQ,WAAW,UAAU;GAChD,wCAAwC;AACtC,iBAAa;;GAEf,wBAAwB;AACtB,iBAAa;;GAEhB,CAAC;AACF,eAAa;AACX,gBAAa,aAAa;;IAG3B,EAAE,CAAC;AAEN,QAAO;;AAOT,MAAa,0CAAoD;CAC/D,QAAQ;CACR,SAAS;CACT,oBAAoB;CACpB,gBAAgB;CACjB,CAAwB;AAEzB,MAAa,gDACA,eAAe;AAe5B,MAAa,oDACX,OACD;AAED,MAAa,gDACA,yBAAyB"}
|
|
@@ -5,7 +5,7 @@ import { CopilotKitCore, CopilotKitCoreConfig, CopilotKitCoreSubscriber, Copilot
|
|
|
5
5
|
import { ActivityMessage, Message } from "@ag-ui/core";
|
|
6
6
|
import { AbstractAgent } from "@ag-ui/client";
|
|
7
7
|
|
|
8
|
-
//#region src/
|
|
8
|
+
//#region src/types/react-tool-call-renderer.d.ts
|
|
9
9
|
interface ReactToolCallRenderer<T = unknown> {
|
|
10
10
|
name: string;
|
|
11
11
|
/**
|
|
@@ -46,7 +46,7 @@ interface ReactToolCallRenderer<T = unknown> {
|
|
|
46
46
|
}>;
|
|
47
47
|
}
|
|
48
48
|
//#endregion
|
|
49
|
-
//#region src/
|
|
49
|
+
//#region src/types/react-activity-message-renderer.d.ts
|
|
50
50
|
interface ReactActivityMessageRenderer<TActivityContent> {
|
|
51
51
|
/**
|
|
52
52
|
* Activity type to match when rendering. Use "*" as a wildcard renderer.
|
|
@@ -71,7 +71,7 @@ interface ReactActivityMessageRenderer<TActivityContent> {
|
|
|
71
71
|
}>;
|
|
72
72
|
}
|
|
73
73
|
//#endregion
|
|
74
|
-
//#region src/
|
|
74
|
+
//#region src/types/react-custom-message-renderer.d.ts
|
|
75
75
|
type ReactCustomMessageRendererPosition = "before" | "after";
|
|
76
76
|
interface ReactCustomMessageRenderer {
|
|
77
77
|
agentId?: string;
|
|
@@ -87,7 +87,7 @@ interface ReactCustomMessageRenderer {
|
|
|
87
87
|
}> | null;
|
|
88
88
|
}
|
|
89
89
|
//#endregion
|
|
90
|
-
//#region src/
|
|
90
|
+
//#region src/lib/react-core.d.ts
|
|
91
91
|
interface CopilotKitCoreReactConfig extends CopilotKitCoreConfig {
|
|
92
92
|
renderToolCalls?: ReactToolCallRenderer<any>[];
|
|
93
93
|
renderActivityMessages?: ReactActivityMessageRenderer<any>[];
|
|
@@ -139,7 +139,7 @@ declare class CopilotKitCoreReact extends CopilotKitCore {
|
|
|
139
139
|
waitForPendingFrameworkUpdates(): Promise<void>;
|
|
140
140
|
}
|
|
141
141
|
//#endregion
|
|
142
|
-
//#region src/
|
|
142
|
+
//#region src/context.d.ts
|
|
143
143
|
interface CopilotKitContextValue {
|
|
144
144
|
copilotkit: CopilotKitCoreReact;
|
|
145
145
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.cts","names":[],"sources":["../src/types/react-tool-call-renderer.ts","../src/types/react-activity-message-renderer.ts","../src/types/react-custom-message-renderer.ts","../src/lib/react-core.ts","../src/context.ts"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { LicenseContextValue, StandardSchemaV1 } from "@copilotkit/shared";
|
|
|
5
5
|
import { ActivityMessage, Message } from "@ag-ui/core";
|
|
6
6
|
import { AbstractAgent } from "@ag-ui/client";
|
|
7
7
|
|
|
8
|
-
//#region src/
|
|
8
|
+
//#region src/types/react-tool-call-renderer.d.ts
|
|
9
9
|
interface ReactToolCallRenderer<T = unknown> {
|
|
10
10
|
name: string;
|
|
11
11
|
/**
|
|
@@ -46,7 +46,7 @@ interface ReactToolCallRenderer<T = unknown> {
|
|
|
46
46
|
}>;
|
|
47
47
|
}
|
|
48
48
|
//#endregion
|
|
49
|
-
//#region src/
|
|
49
|
+
//#region src/types/react-activity-message-renderer.d.ts
|
|
50
50
|
interface ReactActivityMessageRenderer<TActivityContent> {
|
|
51
51
|
/**
|
|
52
52
|
* Activity type to match when rendering. Use "*" as a wildcard renderer.
|
|
@@ -71,7 +71,7 @@ interface ReactActivityMessageRenderer<TActivityContent> {
|
|
|
71
71
|
}>;
|
|
72
72
|
}
|
|
73
73
|
//#endregion
|
|
74
|
-
//#region src/
|
|
74
|
+
//#region src/types/react-custom-message-renderer.d.ts
|
|
75
75
|
type ReactCustomMessageRendererPosition = "before" | "after";
|
|
76
76
|
interface ReactCustomMessageRenderer {
|
|
77
77
|
agentId?: string;
|
|
@@ -87,7 +87,7 @@ interface ReactCustomMessageRenderer {
|
|
|
87
87
|
}> | null;
|
|
88
88
|
}
|
|
89
89
|
//#endregion
|
|
90
|
-
//#region src/
|
|
90
|
+
//#region src/lib/react-core.d.ts
|
|
91
91
|
interface CopilotKitCoreReactConfig extends CopilotKitCoreConfig {
|
|
92
92
|
renderToolCalls?: ReactToolCallRenderer<any>[];
|
|
93
93
|
renderActivityMessages?: ReactActivityMessageRenderer<any>[];
|
|
@@ -139,7 +139,7 @@ declare class CopilotKitCoreReact extends CopilotKitCore {
|
|
|
139
139
|
waitForPendingFrameworkUpdates(): Promise<void>;
|
|
140
140
|
}
|
|
141
141
|
//#endregion
|
|
142
|
-
//#region src/
|
|
142
|
+
//#region src/context.d.ts
|
|
143
143
|
interface CopilotKitContextValue {
|
|
144
144
|
copilotkit: CopilotKitCoreReact;
|
|
145
145
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.mts","names":[],"sources":["../src/types/react-tool-call-renderer.ts","../src/types/react-activity-message-renderer.ts","../src/types/react-custom-message-renderer.ts","../src/lib/react-core.ts","../src/context.ts"],"mappings":";;;;;;;;UAGiB,qBAAA;EACf,IAAA;;;;;EAKA,IAAA,GAAO,gBAAA,MAAsB,CAAA;EANO;;;;EAWpC,OAAA;EAYY;;;;;;EALZ,KAAA;EACA,MAAA,EAAQ,KAAA,CAAM,aAAA;IAER,IAAA;IACA,UAAA;IACA,IAAA,EAAM,OAAA,CAAQ,CAAA;IACd,MAAA,EAAQ,cAAA,CAAe,UAAA;IACvB,MAAA;EAAA;IAGA,IAAA;IACA,UAAA;IACA,IAAA,EAAM,CAAA;IACN,MAAA,EAAQ,cAAA,CAAe,SAAA;IACvB,MAAA;EAAA;IAGA,IAAA;IACA,UAAA;IACA,IAAA,EAAM,CAAA;IACN,MAAA,EAAQ,cAAA,CAAe,QAAA;IACvB,MAAA;EAAA;AAAA;;;UCtCS,4BAAA;;;;EAIf,YAAA;EDLe;;;ECSf,OAAA;EDHO;;;ECOP,OAAA,EAAS,gBAAA,MAAsB,gBAAA;EDiBnB;;;ECbZ,MAAA,EAAQ,KAAA,CAAM,aAAA;IACZ,YAAA;IACA,OAAA,EAAS,gBAAA;IACT,OAAA,EAAS,eAAA;IACT,KAAA,EAAO,aAAA;EAAA;AAAA;;;KCtBC,kCAAA;AAAA,UAEK,0BAAA;EACf,OAAA;EACA,MAAA,EAAQ,KAAA,CAAM,aAAA;IACZ,OAAA,EAAS,OAAA;IACT,QAAA,EAAU,kCAAA;IACV,KAAA;IACA,YAAA;IACA,iBAAA;IACA,qBAAA;IACA,OAAA;IACA,aAAA;EAAA;AAAA;;;UCDa,yBAAA,SAAkC,oBAAA;EAEjD,eAAA,GAAkB,qBAAA;EAClB,sBAAA,GAAyB,4BAAA;EAGzB,oBAAA,GAAuB,0BAAA;AAAA;AAAA,UAGR,6BAAA,SAAsC,wBAAA;EACrD,wBAAA,IAA4B,KAAA;IAC1B,UAAA,EAAY,cAAA;IACZ,eAAA,EAAiB,qBAAA;EAAA,aACN,OAAA;EACb,yBAAA,IAA6B,KAAA;IAC3B,UAAA,EAAY,cAAA;IACZ,gBAAA,EAAkB,OAAA,CAAM,YAAA;EAAA,aACb,OAAA;AAAA;AAAA,cAGF,mBAAA,SAA4B,cAAA;EAAA,QAC/B,gBAAA;EAAA,QACA,oBAAA;EAAA,QAEA,4BAAA;EAAA,QAEA,qBAAA;EAAA,QACA,uBAAA;EAAA,QACA,iBAAA;cAEI,MAAA,EAAQ,yBAAA;EAAA,IAOhB,oBAAA,CAAA,GAAwB,QAAA,CAAS,0BAAA;EAAA,IAIjC,sBAAA,CAAA,GAA0B,QAAA,CAAS,4BAAA;EAAA,IAInC,eAAA,CAAA,GAAmB,QAAA,CAAS,qBAAA;EAmBhC,yBAAA,CACE,SAAA,EAAW,4BAAA;EAKb,uBAAA,CAAwB,SAAA,EAAW,0BAAA;EAInC,kBAAA,CAAmB,eAAA,EAAiB,qBAAA;EAMpC,qBAAA,CAAsB,KAAA,EAAO,qBAAA;EAO7B,wBAAA,CAAyB,IAAA,UAAc,OAAA;EAAA,QAQ/B,6BAAA;EAAA,IAYJ,gBAAA,CAAA,GAAoB,OAAA,CAAM,YAAA;EAI9B,mBAAA,CAAoB,OAAA,EAAS,OAAA,CAAM,YAAA;EAYnC,SAAA,CACE,UAAA,EAAY,6BAAA,GACX,0BAAA;EH/G0B;;;;;;;;;;;;;EGgIvB,8BAAA,CAAA,GAAkC,OAAA;AAAA;;;UChJzB,sBAAA;EACf,UAAA,EAAY,mBAAA;;AJTd;;;EIcE,yBAAA;EJRO;;;;;EIcP,oBAAA,EAAsB,WAAA;AAAA;AAAA,cAGX,SAAA,EAAW,WAAA;AAAA,cAEX,iBAAA,EAAiB,KAAA,CAAA,OAAA,CAAA,sBAAA;AAAA,cAIjB,aAAA,QAAoB,sBAAA;AAAA,cA6BpB,cAAA,EAAc,KAAA,CAAA,OAAA,CAAA,mBAAA;AAAA,cAOd,iBAAA,QAAwB,mBAAA;AAAA,cAgBxB,wBAAA,EAEZ,KAAA,CAFoC,OAAA;AAAA,cAIxB,iBAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { createContext, useContext, useEffect, useReducer } from "react";
|
|
4
4
|
import { CopilotKitCore } from "@copilotkit/core";
|
|
5
5
|
|
|
6
|
-
//#region src/
|
|
6
|
+
//#region src/lib/react-core.ts
|
|
7
7
|
var CopilotKitCoreReact = class extends CopilotKitCore {
|
|
8
8
|
constructor(config) {
|
|
9
9
|
super(config);
|
|
@@ -99,7 +99,7 @@ var CopilotKitCoreReact = class extends CopilotKitCore {
|
|
|
99
99
|
};
|
|
100
100
|
|
|
101
101
|
//#endregion
|
|
102
|
-
//#region src/
|
|
102
|
+
//#region src/context.ts
|
|
103
103
|
const EMPTY_SET = /* @__PURE__ */ new Set();
|
|
104
104
|
const CopilotKitContext = createContext(null);
|
|
105
105
|
const useCopilotKit = () => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.mjs","names":[],"sources":["../src/lib/react-core.ts","../src/context.ts"],"sourcesContent":["import React from \"react\";\nimport type {\n ReactActivityMessageRenderer,\n ReactToolCallRenderer,\n} from \"../types\";\nimport type { ReactCustomMessageRenderer } from \"../types/react-custom-message-renderer\";\nimport { CopilotKitCore } from \"@copilotkit/core\";\nimport type {\n CopilotKitCoreConfig,\n CopilotKitCoreSubscriber,\n CopilotKitCoreSubscription,\n} from \"@copilotkit/core\";\n\nexport interface CopilotKitCoreReactConfig extends CopilotKitCoreConfig {\n // Add any additional configuration properties specific to the React implementation\n renderToolCalls?: ReactToolCallRenderer<any>[];\n renderActivityMessages?: ReactActivityMessageRenderer<any>[];\n\n // Add custom message renderers\n renderCustomMessages?: ReactCustomMessageRenderer[];\n}\n\nexport interface CopilotKitCoreReactSubscriber extends CopilotKitCoreSubscriber {\n onRenderToolCallsChanged?: (event: {\n copilotkit: CopilotKitCore;\n renderToolCalls: ReactToolCallRenderer<any>[];\n }) => void | Promise<void>;\n onInterruptElementChanged?: (event: {\n copilotkit: CopilotKitCore;\n interruptElement: React.ReactElement | null;\n }) => void | Promise<void>;\n}\n\nexport class CopilotKitCoreReact extends CopilotKitCore {\n private _renderToolCalls: ReactToolCallRenderer<any>[] = [];\n private _hookRenderToolCalls: Map<string, ReactToolCallRenderer<any>> =\n new Map();\n private _cachedMergedRenderToolCalls: ReactToolCallRenderer<any>[] | null =\n null;\n private _renderCustomMessages: ReactCustomMessageRenderer[] = [];\n private _renderActivityMessages: ReactActivityMessageRenderer<any>[] = [];\n private _interruptElement: React.ReactElement | null = null;\n\n constructor(config: CopilotKitCoreReactConfig) {\n super(config);\n this._renderToolCalls = config.renderToolCalls ?? [];\n this._renderCustomMessages = config.renderCustomMessages ?? [];\n this._renderActivityMessages = config.renderActivityMessages ?? [];\n }\n\n get renderCustomMessages(): Readonly<ReactCustomMessageRenderer[]> {\n return this._renderCustomMessages;\n }\n\n get renderActivityMessages(): Readonly<ReactActivityMessageRenderer<any>>[] {\n return this._renderActivityMessages;\n }\n\n get renderToolCalls(): Readonly<ReactToolCallRenderer<any>>[] {\n if (this._hookRenderToolCalls.size === 0) {\n return this._renderToolCalls;\n }\n if (this._cachedMergedRenderToolCalls) {\n return this._cachedMergedRenderToolCalls;\n }\n // Merge: hook entries override prop entries with the same key\n const merged = new Map<string, ReactToolCallRenderer<any>>();\n for (const rc of this._renderToolCalls) {\n merged.set(`${rc.agentId ?? \"\"}:${rc.name}`, rc);\n }\n for (const [key, rc] of this._hookRenderToolCalls) {\n merged.set(key, rc);\n }\n this._cachedMergedRenderToolCalls = Array.from(merged.values());\n return this._cachedMergedRenderToolCalls;\n }\n\n setRenderActivityMessages(\n renderers: ReactActivityMessageRenderer<any>[],\n ): void {\n this._renderActivityMessages = renderers;\n }\n\n setRenderCustomMessages(renderers: ReactCustomMessageRenderer[]): void {\n this._renderCustomMessages = renderers;\n }\n\n setRenderToolCalls(renderToolCalls: ReactToolCallRenderer<any>[]): void {\n this._renderToolCalls = renderToolCalls;\n this._cachedMergedRenderToolCalls = null;\n this._notifyRenderToolCallsChanged();\n }\n\n addHookRenderToolCall(entry: ReactToolCallRenderer<any>): void {\n const key = `${entry.agentId ?? \"\"}:${entry.name}`;\n this._hookRenderToolCalls.set(key, entry);\n this._cachedMergedRenderToolCalls = null;\n this._notifyRenderToolCallsChanged();\n }\n\n removeHookRenderToolCall(name: string, agentId?: string): void {\n const key = `${agentId ?? \"\"}:${name}`;\n if (this._hookRenderToolCalls.delete(key)) {\n this._cachedMergedRenderToolCalls = null;\n this._notifyRenderToolCallsChanged();\n }\n }\n\n private _notifyRenderToolCallsChanged(): void {\n void this.notifySubscribers((subscriber) => {\n const reactSubscriber = subscriber as CopilotKitCoreReactSubscriber;\n if (reactSubscriber.onRenderToolCallsChanged) {\n reactSubscriber.onRenderToolCallsChanged({\n copilotkit: this,\n renderToolCalls: this.renderToolCalls,\n });\n }\n }, \"Subscriber onRenderToolCallsChanged error:\");\n }\n\n get interruptElement(): React.ReactElement | null {\n return this._interruptElement;\n }\n\n setInterruptElement(element: React.ReactElement | null): void {\n this._interruptElement = element;\n void this.notifySubscribers((subscriber) => {\n const reactSubscriber = subscriber as CopilotKitCoreReactSubscriber;\n reactSubscriber.onInterruptElementChanged?.({\n copilotkit: this,\n interruptElement: this._interruptElement,\n });\n }, \"Subscriber onInterruptElementChanged error:\");\n }\n\n // Override to accept React-specific subscriber type\n subscribe(\n subscriber: CopilotKitCoreReactSubscriber,\n ): CopilotKitCoreSubscription {\n return super.subscribe(subscriber);\n }\n\n /**\n * Wait for pending React state updates before the follow-up agent run.\n *\n * When a frontend tool handler calls setState(), React 18 batches the update\n * and schedules a commit via its internal scheduler (MessageChannel). The\n * useAgentContext hook registers context via useLayoutEffect, which runs\n * synchronously after React commits that batch.\n *\n * Awaiting a zero-delay timeout yields to the macrotask queue. React's\n * MessageChannel task runs first, committing the pending state and running\n * useLayoutEffect (which updates the context store). The follow-up runAgent\n * call then reads fresh context.\n */\n async waitForPendingFrameworkUpdates(): Promise<void> {\n await new Promise<void>((resolve) => setTimeout(resolve, 0));\n }\n}\n","\"use client\";\n\nimport { createContext, useContext, useEffect, useReducer } from \"react\";\nimport { CopilotKitCoreReact } from \"./lib/react-core\";\nimport type { CopilotKitCoreReactConfig } from \"./lib/react-core\";\nimport type { LicenseContextValue } from \"@copilotkit/shared\";\n\n// Re-export so headless.ts (and consumers) reference the same type declaration.\nexport { CopilotKitCoreReact };\nexport type { CopilotKitCoreReactConfig };\n\nexport interface CopilotKitContextValue {\n copilotkit: CopilotKitCoreReact;\n /**\n * Whether CopilotKit should automatically mount Intelligence indicators.\n * Defaults to true when omitted for compatibility with custom providers.\n */\n showIntelligenceIndicator?: boolean;\n /**\n * Set of tool call IDs currently being executed.\n * This is tracked at the provider level to ensure tool execution events\n * are captured even before child components mount.\n */\n executingToolCallIds: ReadonlySet<string>;\n}\n\nexport const EMPTY_SET: ReadonlySet<string> = new Set();\n\nexport const CopilotKitContext = createContext<CopilotKitContextValue | null>(\n null,\n);\n\nexport const useCopilotKit = (): CopilotKitContextValue => {\n const context = useContext(CopilotKitContext);\n const [, forceUpdate] = useReducer((x: number) => x + 1, 0);\n\n if (!context) {\n throw new Error(\"useCopilotKit must be used within CopilotKitProvider\");\n }\n useEffect(() => {\n const subscription = context.copilotkit.subscribe({\n onRuntimeConnectionStatusChanged: () => {\n forceUpdate();\n },\n onHeadersChanged: () => {\n forceUpdate();\n },\n });\n return () => {\n subscription.unsubscribe();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return context;\n};\n\n// License context — shared between web and RN providers.\n// Default is permissive (all features allowed) — providers override via createLicenseContextValue.\n// Inlined here to avoid a runtime import from @copilotkit/shared, which pulls in\n// Node-only deps (jose) that break React Native's Metro bundler.\nexport const LicenseContext = createContext<LicenseContextValue>({\n status: null,\n license: null,\n checkFeature: () => true,\n getLimit: () => null,\n} as LicenseContextValue);\n\nexport const useLicenseContext = (): LicenseContextValue =>\n useContext(LicenseContext);\n\n// Provider-level default agent id, published by `<CopilotKitProvider agentId>`.\n//\n// This is a context of its own rather than a `CopilotChatConfigurationProvider`\n// rendered at the root, because that provider also owns a thread: it resolves a\n// threadId (minting a UUID when none is given) and the top-most one owns the\n// imperative active-thread override. Rendering it around the whole application\n// would hand every `<CopilotChat>` the same inherited threadId, so two sibling\n// chats would share one transcript. A bare string context carries the agent\n// default and nothing else.\n//\n// It is the LAST fallback before `DEFAULT_AGENT_ID`, so an explicit `agentId`\n// argument, a `<CopilotChat agentId>`, and a `<CopilotChatConfigurationProvider\n// agentId>` all still win.\nexport const CopilotKitAgentIdContext = createContext<string | undefined>(\n undefined,\n);\n\nexport const useDefaultAgentId = (): string | undefined =>\n useContext(CopilotKitAgentIdContext);\n"],"mappings":"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"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
const require_MarkdownSurfaces = require('
|
|
4
|
+
const require_MarkdownSurfaces = require('./MarkdownSurfaces-C2XZISKn.cjs');
|
|
5
5
|
let react = require("react");
|
|
6
6
|
react = require_MarkdownSurfaces.__toESM(react);
|
|
7
|
-
let _copilotkit_shared = require("@copilotkit/shared");
|
|
8
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
-
let
|
|
8
|
+
let _copilotkit_shared = require("@copilotkit/shared");
|
|
10
9
|
let zod = require("zod");
|
|
11
10
|
let react_dom = require("react-dom");
|
|
12
|
-
let katex = require("katex");
|
|
13
11
|
|
|
14
|
-
//#region src/
|
|
12
|
+
//#region src/generative-ui/refs.ts
|
|
15
13
|
/**
|
|
16
14
|
* Schema helpers that mark a prop as a component reference, the way A2UI
|
|
17
15
|
* 1.0 marks it with the `ComponentId` and `ChildList` common types. The
|
|
@@ -51,7 +49,7 @@ function childList(description) {
|
|
|
51
49
|
}
|
|
52
50
|
|
|
53
51
|
//#endregion
|
|
54
|
-
//#region src/
|
|
52
|
+
//#region src/generative-ui/catalog-export.ts
|
|
55
53
|
const COMMON = "common_types.json#/$defs/";
|
|
56
54
|
const DATA_BINDING_REF = `${COMMON}DataBinding`;
|
|
57
55
|
const FUNCTION_CALL_REF = `${COMMON}FunctionCall`;
|
|
@@ -372,7 +370,7 @@ function typeSchema(type) {
|
|
|
372
370
|
}
|
|
373
371
|
|
|
374
372
|
//#endregion
|
|
375
|
-
//#region src/
|
|
373
|
+
//#region src/generative-ui/GenerativeUISurface.tsx
|
|
376
374
|
/** Scrolls `element` into view, unless it is already fully on screen. */
|
|
377
375
|
function scrollToSurface(element) {
|
|
378
376
|
const { top, bottom } = element.getBoundingClientRect();
|
|
@@ -457,7 +455,7 @@ function GenerativeUISurface({ id, description, ui, components, fallback = null,
|
|
|
457
455
|
}
|
|
458
456
|
|
|
459
457
|
//#endregion
|
|
460
|
-
//#region src/
|
|
458
|
+
//#region src/generative-ui/standard/overlay-stack.ts
|
|
461
459
|
/**
|
|
462
460
|
* The open overlays (Modal dialogs, Lightboxes), newest last. One document
|
|
463
461
|
* listener closes the newest one on Escape, so a Lightbox inside a Modal
|
|
@@ -497,7 +495,7 @@ function useOverlayEscape(isOpen, close) {
|
|
|
497
495
|
}
|
|
498
496
|
|
|
499
497
|
//#endregion
|
|
500
|
-
//#region src/
|
|
498
|
+
//#region src/generative-ui/standard/tokens.ts
|
|
501
499
|
/**
|
|
502
500
|
* Design tokens of the standard components. Each token is a CSS variable
|
|
503
501
|
* with a literal fallback, so a host can restyle a surface with the
|
|
@@ -767,7 +765,7 @@ const FONT_WEIGHT = {
|
|
|
767
765
|
};
|
|
768
766
|
|
|
769
767
|
//#endregion
|
|
770
|
-
//#region src/
|
|
768
|
+
//#region src/generative-ui/standard/lightbox.tsx
|
|
771
769
|
const LIGHTBOX_BUTTON = {
|
|
772
770
|
position: "absolute",
|
|
773
771
|
border: "none",
|
|
@@ -900,7 +898,7 @@ function openUrl(href) {
|
|
|
900
898
|
}
|
|
901
899
|
|
|
902
900
|
//#endregion
|
|
903
|
-
//#region src/
|
|
901
|
+
//#region src/generative-ui/standard/styles.ts
|
|
904
902
|
/**
|
|
905
903
|
* The stylesheet for what inline styles cannot do: pseudo-elements (slider
|
|
906
904
|
* track and thumb, placeholder), `:checked` and `:first-child` states,
|
|
@@ -970,7 +968,7 @@ function useStandardStyles() {
|
|
|
970
968
|
}
|
|
971
969
|
|
|
972
970
|
//#endregion
|
|
973
|
-
//#region src/
|
|
971
|
+
//#region src/generative-ui/standard/layout.tsx
|
|
974
972
|
/** A number is a count of 4px steps. A string is raw CSS. */
|
|
975
973
|
const sizeValue = zod.z.union([zod.z.number(), zod.z.string()]);
|
|
976
974
|
/** The A2UI `weight`: how much of the free space of a Row or Column to take. */
|
|
@@ -1957,7 +1955,7 @@ const layoutComponents = {
|
|
|
1957
1955
|
};
|
|
1958
1956
|
|
|
1959
1957
|
//#endregion
|
|
1960
|
-
//#region src/
|
|
1958
|
+
//#region src/generative-ui/standard/markdown.tsx
|
|
1961
1959
|
const SAFE_URL = /^(https?:|mailto:)/i;
|
|
1962
1960
|
/** The trimmed URL when it is http, https or mailto. Else `undefined`. */
|
|
1963
1961
|
function safeHref(url) {
|
|
@@ -2096,27 +2094,25 @@ function renderInlineMarkdown(text) {
|
|
|
2096
2094
|
return out.length === 1 && typeof out[0] === "string" ? out[0] : out;
|
|
2097
2095
|
}
|
|
2098
2096
|
/**
|
|
2099
|
-
* Full GitHub-flavored markdown, rendered with
|
|
2100
|
-
* messages. It has no typography of its own, so it reads like
|
|
2101
|
-
* text around the surface. While `streaming` is true,
|
|
2102
|
-
* markdown that is not complete yet.
|
|
2097
|
+
* Full GitHub-flavored markdown, rendered with the same markdown renderer
|
|
2098
|
+
* as the chat messages. It has no typography of its own, so it reads like
|
|
2099
|
+
* the chat text around the surface. While `streaming` is true, the renderer
|
|
2100
|
+
* handles markdown that is not complete yet.
|
|
2103
2101
|
*/
|
|
2104
2102
|
function Markdown({ text, streaming = false }) {
|
|
2105
2103
|
useStandardStyles();
|
|
2106
|
-
require_MarkdownSurfaces.useKatexStyles();
|
|
2107
2104
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2108
2105
|
className: "a2ui-markdown",
|
|
2109
2106
|
"data-a2ui-std": "",
|
|
2110
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
children: text
|
|
2107
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MarkdownSurfaces.ProviderMarkdown, {
|
|
2108
|
+
content: text,
|
|
2109
|
+
isStreaming: streaming
|
|
2114
2110
|
})
|
|
2115
2111
|
});
|
|
2116
2112
|
}
|
|
2117
2113
|
|
|
2118
2114
|
//#endregion
|
|
2119
|
-
//#region src/
|
|
2115
|
+
//#region src/generative-ui/standard/media.tsx
|
|
2120
2116
|
const NO_ARGS$2 = zod.z.object({});
|
|
2121
2117
|
const colorProp$1 = zod.z.string().optional();
|
|
2122
2118
|
const ICON_SIZES = [
|
|
@@ -3020,7 +3016,7 @@ const mediaComponents = {
|
|
|
3020
3016
|
};
|
|
3021
3017
|
|
|
3022
3018
|
//#endregion
|
|
3023
|
-
//#region src/
|
|
3019
|
+
//#region src/generative-ui/standard/composites.tsx
|
|
3024
3020
|
/**
|
|
3025
3021
|
* The composite components: the prebuilt widgets that sit next to
|
|
3026
3022
|
* its primitives (LinkCard, Citation, FollowUp pills, entity cards, image
|
|
@@ -3722,7 +3718,7 @@ const compositeComponents = {
|
|
|
3722
3718
|
};
|
|
3723
3719
|
|
|
3724
3720
|
//#endregion
|
|
3725
|
-
//#region src/
|
|
3721
|
+
//#region src/generative-ui/standard/Chart.tsx
|
|
3726
3722
|
const chartSeries = zod.z.union([zod.z.string(), zod.z.object({
|
|
3727
3723
|
key: zod.z.string(),
|
|
3728
3724
|
label: zod.z.string().optional(),
|
|
@@ -4171,7 +4167,7 @@ function Chart(props) {
|
|
|
4171
4167
|
}
|
|
4172
4168
|
|
|
4173
4169
|
//#endregion
|
|
4174
|
-
//#region src/
|
|
4170
|
+
//#region src/generative-ui/standard/Map.tsx
|
|
4175
4171
|
const mapMarker = zod.z.object({
|
|
4176
4172
|
label: zod.z.string(),
|
|
4177
4173
|
lat: zod.z.number(),
|
|
@@ -4485,7 +4481,7 @@ function MapView(props) {
|
|
|
4485
4481
|
}
|
|
4486
4482
|
|
|
4487
4483
|
//#endregion
|
|
4488
|
-
//#region src/
|
|
4484
|
+
//#region src/generative-ui/standard/data.tsx
|
|
4489
4485
|
const cellAlign = zod.z.enum([
|
|
4490
4486
|
"start",
|
|
4491
4487
|
"center",
|
|
@@ -5057,7 +5053,7 @@ const dataComponents = {
|
|
|
5057
5053
|
};
|
|
5058
5054
|
|
|
5059
5055
|
//#endregion
|
|
5060
|
-
//#region src/
|
|
5056
|
+
//#region src/generative-ui/standard/feedback.tsx
|
|
5061
5057
|
const FEEDBACK_STYLE_ID = "a2ui-standard-feedback";
|
|
5062
5058
|
/**
|
|
5063
5059
|
* The keyframes of the feedback components, and the rule for reduced
|
|
@@ -5636,7 +5632,7 @@ const feedbackComponents = {
|
|
|
5636
5632
|
};
|
|
5637
5633
|
|
|
5638
5634
|
//#endregion
|
|
5639
|
-
//#region src/
|
|
5635
|
+
//#region src/generative-ui/standard/checks.ts
|
|
5640
5636
|
/**
|
|
5641
5637
|
* The `checks` of the A2UI 1.0 `Checkable` components. The model writes
|
|
5642
5638
|
* each condition as a validator call or a boolean binding:
|
|
@@ -5720,7 +5716,7 @@ function checkMessageStyle(severity) {
|
|
|
5720
5716
|
}
|
|
5721
5717
|
|
|
5722
5718
|
//#endregion
|
|
5723
|
-
//#region src/
|
|
5719
|
+
//#region src/generative-ui/standard/inputs.tsx
|
|
5724
5720
|
/** Copies text to the clipboard. False when the API is not there. */
|
|
5725
5721
|
async function copyText(text) {
|
|
5726
5722
|
try {
|
|
@@ -7288,7 +7284,7 @@ const inputComponents = {
|
|
|
7288
7284
|
};
|
|
7289
7285
|
|
|
7290
7286
|
//#endregion
|
|
7291
|
-
//#region src/
|
|
7287
|
+
//#region src/generative-ui/standard/text.tsx
|
|
7292
7288
|
const colorProp = zod.z.string().optional().describe(`One of ${TEXT_COLORS.join("|")} or a CSS color`);
|
|
7293
7289
|
const fontWeight = zod.z.enum(WEIGHTS).optional();
|
|
7294
7290
|
const textAlign = zod.z.enum([
|
|
@@ -7659,17 +7655,18 @@ function Code(props) {
|
|
|
7659
7655
|
})
|
|
7660
7656
|
});
|
|
7661
7657
|
}
|
|
7658
|
+
/**
|
|
7659
|
+
* Shows the TeX source as code. react-core ships no math typesetter, so a
|
|
7660
|
+
* formula reads as its source, which is still exact.
|
|
7661
|
+
*/
|
|
7662
7662
|
function MathFormula(props) {
|
|
7663
|
-
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7667
|
-
|
|
7668
|
-
|
|
7669
|
-
|
|
7670
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(isBlock ? "div" : "span", {
|
|
7671
|
-
"data-math": isBlock ? "block" : "inline",
|
|
7672
|
-
dangerouslySetInnerHTML: { __html: html }
|
|
7663
|
+
if (props.block === true) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
|
|
7664
|
+
"data-math": "block",
|
|
7665
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", { children: props.value })
|
|
7666
|
+
});
|
|
7667
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
7668
|
+
"data-math": "inline",
|
|
7669
|
+
children: props.value
|
|
7673
7670
|
});
|
|
7674
7671
|
}
|
|
7675
7672
|
function ShimmerText(props) {
|
|
@@ -7868,7 +7865,7 @@ const textComponents = {
|
|
|
7868
7865
|
};
|
|
7869
7866
|
|
|
7870
7867
|
//#endregion
|
|
7871
|
-
//#region src/
|
|
7868
|
+
//#region src/generative-ui/standard/parameter-order.ts
|
|
7872
7869
|
/** CopilotKit catalog design, not an A2UI-mandated list of signatures.
|
|
7873
7870
|
* Express maps positional arguments using the exported JSON Schema property order:
|
|
7874
7871
|
* https://a2ui.org/specification/proposals/express/a2ui_express/#schema-driven-key-mapping
|
|
@@ -8094,7 +8091,7 @@ function standardParameterOrder(name, definition) {
|
|
|
8094
8091
|
}
|
|
8095
8092
|
|
|
8096
8093
|
//#endregion
|
|
8097
|
-
//#region src/
|
|
8094
|
+
//#region src/generative-ui/standard/index.ts
|
|
8098
8095
|
const components = {
|
|
8099
8096
|
...layoutComponents,
|
|
8100
8097
|
...textComponents,
|