@copilotkit/react-core 1.5.8 → 1.5.10-next.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/CHANGELOG.md +27 -0
- package/dist/chunk-22XKTBPF.mjs +61 -0
- package/dist/chunk-22XKTBPF.mjs.map +1 -0
- package/dist/chunk-2KT73RVG.mjs +482 -0
- package/dist/chunk-2KT73RVG.mjs.map +1 -0
- package/dist/chunk-3GQPEN4M.mjs +160 -0
- package/dist/chunk-3GQPEN4M.mjs.map +1 -0
- package/dist/chunk-5FHSUKQL.mjs +70 -0
- package/dist/chunk-5FHSUKQL.mjs.map +1 -0
- package/dist/chunk-6BQVZFNO.mjs +35 -0
- package/dist/chunk-6BQVZFNO.mjs.map +1 -0
- package/dist/chunk-6U3UH3KO.mjs +140 -0
- package/dist/chunk-6U3UH3KO.mjs.map +1 -0
- package/dist/chunk-DCTJZ742.mjs +22 -0
- package/dist/chunk-DCTJZ742.mjs.map +1 -0
- package/dist/chunk-EFZPSZWO.mjs +1 -0
- package/dist/chunk-EFZPSZWO.mjs.map +1 -0
- package/dist/chunk-EWKJMQOF.mjs +107 -0
- package/dist/chunk-EWKJMQOF.mjs.map +1 -0
- package/dist/chunk-FQ53HQYZ.mjs +28 -0
- package/dist/chunk-FQ53HQYZ.mjs.map +1 -0
- package/dist/chunk-HIUT2NLX.mjs +23 -0
- package/dist/chunk-HIUT2NLX.mjs.map +1 -0
- package/dist/chunk-LHKIIAUQ.mjs +59 -0
- package/dist/chunk-LHKIIAUQ.mjs.map +1 -0
- package/dist/chunk-LNI2Z45S.mjs +242 -0
- package/dist/chunk-LNI2Z45S.mjs.map +1 -0
- package/dist/chunk-LUGEI4YQ.mjs +1 -0
- package/dist/chunk-LUGEI4YQ.mjs.map +1 -0
- package/dist/chunk-MLAS4QUR.mjs +18 -0
- package/dist/chunk-MLAS4QUR.mjs.map +1 -0
- package/dist/chunk-NR2BTA6Z.mjs +1 -0
- package/dist/chunk-NR2BTA6Z.mjs.map +1 -0
- package/dist/chunk-O7ARI5CV.mjs +31 -0
- package/dist/chunk-O7ARI5CV.mjs.map +1 -0
- package/dist/chunk-SKC7AJIV.mjs +61 -0
- package/dist/chunk-SKC7AJIV.mjs.map +1 -0
- package/dist/chunk-VGOFRULA.mjs +401 -0
- package/dist/chunk-VGOFRULA.mjs.map +1 -0
- package/dist/chunk-VNTDIJSG.mjs +37 -0
- package/dist/chunk-VNTDIJSG.mjs.map +1 -0
- package/dist/chunk-WXREY7UP.mjs +87 -0
- package/dist/chunk-WXREY7UP.mjs.map +1 -0
- package/dist/chunk-X36DNILG.mjs +215 -0
- package/dist/chunk-X36DNILG.mjs.map +1 -0
- package/dist/chunk-XERJQUHA.mjs +31 -0
- package/dist/chunk-XERJQUHA.mjs.map +1 -0
- package/dist/chunk-XOQMISG3.mjs +120 -0
- package/dist/chunk-XOQMISG3.mjs.map +1 -0
- package/dist/chunk-XXR4QFAQ.mjs +29 -0
- package/dist/chunk-XXR4QFAQ.mjs.map +1 -0
- package/dist/chunk-YPSGKPDA.mjs +1 -0
- package/dist/chunk-YPSGKPDA.mjs.map +1 -0
- package/dist/components/copilot-provider/copilot-messages.d.ts +16 -0
- package/dist/components/copilot-provider/copilot-messages.js +80 -0
- package/dist/components/copilot-provider/copilot-messages.js.map +1 -0
- package/dist/components/copilot-provider/copilot-messages.mjs +9 -0
- package/dist/components/copilot-provider/copilot-messages.mjs.map +1 -0
- package/dist/components/copilot-provider/copilotkit-props.d.ts +93 -0
- package/dist/components/copilot-provider/copilotkit-props.js +19 -0
- package/dist/components/copilot-provider/copilotkit-props.js.map +1 -0
- package/dist/components/copilot-provider/copilotkit-props.mjs +1 -0
- package/dist/components/copilot-provider/copilotkit-props.mjs.map +1 -0
- package/dist/components/copilot-provider/copilotkit.d.ts +18 -0
- package/dist/components/copilot-provider/copilotkit.js +990 -0
- package/dist/components/copilot-provider/copilotkit.js.map +1 -0
- package/dist/components/copilot-provider/copilotkit.mjs +22 -0
- package/dist/components/copilot-provider/copilotkit.mjs.map +1 -0
- package/dist/components/copilot-provider/index.d.ts +13 -0
- package/dist/components/copilot-provider/index.js +990 -0
- package/dist/components/copilot-provider/index.js.map +1 -0
- package/dist/components/copilot-provider/index.mjs +20 -0
- package/dist/components/copilot-provider/index.mjs.map +1 -0
- package/dist/components/error-boundary/error-boundary.d.ts +22 -0
- package/dist/components/error-boundary/error-boundary.js +183 -0
- package/dist/components/error-boundary/error-boundary.js.map +1 -0
- package/dist/components/error-boundary/error-boundary.mjs +12 -0
- package/dist/components/error-boundary/error-boundary.mjs.map +1 -0
- package/dist/components/error-boundary/error-utils.d.ts +11 -0
- package/dist/components/error-boundary/error-utils.js +177 -0
- package/dist/components/error-boundary/error-utils.js.map +1 -0
- package/dist/components/error-boundary/error-utils.mjs +13 -0
- package/dist/components/error-boundary/error-utils.mjs.map +1 -0
- package/dist/components/index.d.ts +13 -0
- package/dist/components/index.js +990 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +20 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/components/toast/exclamation-mark-icon.d.ts +9 -0
- package/dist/components/toast/exclamation-mark-icon.js +55 -0
- package/dist/components/toast/exclamation-mark-icon.js.map +1 -0
- package/dist/components/toast/exclamation-mark-icon.mjs +8 -0
- package/dist/components/toast/exclamation-mark-icon.mjs.map +1 -0
- package/dist/components/toast/toast-provider.d.ts +30 -0
- package/dist/components/toast/toast-provider.js +269 -0
- package/dist/components/toast/toast-provider.js.map +1 -0
- package/dist/components/toast/toast-provider.mjs +11 -0
- package/dist/components/toast/toast-provider.mjs.map +1 -0
- package/dist/context/copilot-context.d.ts +142 -0
- package/dist/context/copilot-context.js +138 -0
- package/dist/context/copilot-context.js.map +1 -0
- package/dist/context/copilot-context.mjs +10 -0
- package/dist/context/copilot-context.mjs.map +1 -0
- package/dist/context/copilot-messages-context.d.ts +15 -0
- package/dist/context/copilot-messages-context.js +57 -0
- package/dist/context/copilot-messages-context.js.map +1 -0
- package/dist/context/copilot-messages-context.mjs +10 -0
- package/dist/context/copilot-messages-context.mjs.map +1 -0
- package/dist/context/index.d.ts +11 -0
- package/dist/context/index.js +161 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/index.mjs +17 -0
- package/dist/context/index.mjs.map +1 -0
- package/dist/hooks/index.d.ts +21 -0
- package/dist/hooks/index.js +1303 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/index.mjs +56 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/use-chat.d.ts +124 -0
- package/dist/hooks/use-chat.js +608 -0
- package/dist/hooks/use-chat.js.map +1 -0
- package/dist/hooks/use-chat.mjs +12 -0
- package/dist/hooks/use-chat.mjs.map +1 -0
- package/dist/hooks/use-coagent-state-render.d.ts +60 -0
- package/dist/hooks/use-coagent-state-render.js +195 -0
- package/dist/hooks/use-coagent-state-render.js.map +1 -0
- package/dist/hooks/use-coagent-state-render.mjs +11 -0
- package/dist/hooks/use-coagent-state-render.mjs.map +1 -0
- package/dist/hooks/use-coagent.d.ts +199 -0
- package/dist/hooks/use-coagent.js +1064 -0
- package/dist/hooks/use-coagent.js.map +1 -0
- package/dist/hooks/use-coagent.mjs +29 -0
- package/dist/hooks/use-coagent.mjs.map +1 -0
- package/dist/hooks/use-copilot-action.d.ts +140 -0
- package/dist/hooks/use-copilot-action.js +369 -0
- package/dist/hooks/use-copilot-action.js.map +1 -0
- package/dist/hooks/use-copilot-action.mjs +11 -0
- package/dist/hooks/use-copilot-action.mjs.map +1 -0
- package/dist/hooks/use-copilot-authenticated-action.d.ts +8 -0
- package/dist/hooks/use-copilot-authenticated-action.js +418 -0
- package/dist/hooks/use-copilot-authenticated-action.js.map +1 -0
- package/dist/hooks/use-copilot-authenticated-action.mjs +12 -0
- package/dist/hooks/use-copilot-authenticated-action.mjs.map +1 -0
- package/dist/hooks/use-copilot-chat.d.ts +38 -0
- package/dist/hooks/use-copilot-chat.js +928 -0
- package/dist/hooks/use-copilot-chat.js.map +1 -0
- package/dist/hooks/use-copilot-chat.mjs +24 -0
- package/dist/hooks/use-copilot-chat.mjs.map +1 -0
- package/dist/hooks/use-copilot-readable.d.ts +33 -0
- package/dist/hooks/use-copilot-readable.js +158 -0
- package/dist/hooks/use-copilot-readable.js.map +1 -0
- package/dist/hooks/use-copilot-readable.mjs +9 -0
- package/dist/hooks/use-copilot-readable.mjs.map +1 -0
- package/dist/hooks/use-copilot-runtime-client.d.ts +5 -0
- package/dist/hooks/use-copilot-runtime-client.js +182 -0
- package/dist/hooks/use-copilot-runtime-client.js.map +1 -0
- package/dist/hooks/use-copilot-runtime-client.mjs +10 -0
- package/dist/hooks/use-copilot-runtime-client.mjs.map +1 -0
- package/dist/hooks/use-flat-category-store.d.ts +9 -0
- package/dist/hooks/use-flat-category-store.js +90 -0
- package/dist/hooks/use-flat-category-store.js.map +1 -0
- package/dist/hooks/use-flat-category-store.mjs +8 -0
- package/dist/hooks/use-flat-category-store.mjs.map +1 -0
- package/dist/hooks/use-make-copilot-document-readable.d.ts +12 -0
- package/dist/hooks/use-make-copilot-document-readable.js +153 -0
- package/dist/hooks/use-make-copilot-document-readable.js.map +1 -0
- package/dist/hooks/use-make-copilot-document-readable.mjs +9 -0
- package/dist/hooks/use-make-copilot-document-readable.mjs.map +1 -0
- package/dist/hooks/use-tree.d.ts +18 -0
- package/dist/hooks/use-tree.js +172 -0
- package/dist/hooks/use-tree.js.map +1 -0
- package/dist/hooks/use-tree.mjs +8 -0
- package/dist/hooks/use-tree.mjs.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +2224 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +83 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lib/copilot-task.d.ts +97 -0
- package/dist/lib/copilot-task.js +195 -0
- package/dist/lib/copilot-task.js.map +1 -0
- package/dist/lib/copilot-task.mjs +20 -0
- package/dist/lib/copilot-task.mjs.map +1 -0
- package/dist/lib/index.d.ts +11 -0
- package/dist/lib/index.js +197 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/index.mjs +21 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/types/chat-suggestion-configuration.d.ts +22 -0
- package/dist/types/chat-suggestion-configuration.js +19 -0
- package/dist/types/chat-suggestion-configuration.js.map +1 -0
- package/dist/types/chat-suggestion-configuration.mjs +1 -0
- package/dist/types/chat-suggestion-configuration.mjs.map +1 -0
- package/dist/types/coagent-action.d.ts +29 -0
- package/dist/types/coagent-action.js +19 -0
- package/dist/types/coagent-action.js.map +1 -0
- package/dist/types/coagent-action.mjs +1 -0
- package/dist/types/coagent-action.mjs.map +1 -0
- package/dist/types/coagent-state.d.ts +11 -0
- package/dist/types/coagent-state.js +19 -0
- package/dist/types/coagent-state.js.map +1 -0
- package/dist/types/coagent-state.mjs +1 -0
- package/dist/types/coagent-state.mjs.map +1 -0
- package/dist/types/document-pointer.d.ts +9 -0
- package/dist/types/document-pointer.js +19 -0
- package/dist/types/document-pointer.js.map +1 -0
- package/dist/types/document-pointer.mjs +1 -0
- package/dist/types/document-pointer.mjs.map +1 -0
- package/dist/types/frontend-action.d.ts +126 -0
- package/dist/types/frontend-action.js +53 -0
- package/dist/types/frontend-action.js.map +1 -0
- package/dist/types/frontend-action.mjs +8 -0
- package/dist/types/frontend-action.mjs.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.mjs +2 -0
- package/dist/types/index.mjs.map +1 -0
- package/dist/types/system-message.d.ts +3 -0
- package/dist/types/system-message.js +19 -0
- package/dist/types/system-message.js.map +1 -0
- package/dist/types/system-message.mjs +1 -0
- package/dist/types/system-message.mjs.map +1 -0
- package/dist/utils/dev-console.d.ts +3 -0
- package/dist/utils/dev-console.js +42 -0
- package/dist/utils/dev-console.js.map +1 -0
- package/dist/utils/dev-console.mjs +8 -0
- package/dist/utils/dev-console.mjs.map +1 -0
- package/dist/utils/extract.d.ts +43 -0
- package/dist/utils/extract.js +208 -0
- package/dist/utils/extract.js.map +1 -0
- package/dist/utils/extract.mjs +18 -0
- package/dist/utils/extract.mjs.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +226 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +21 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/utils.d.ts +2 -0
- package/dist/utils/utils.js +19 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/utils.mjs +1 -0
- package/dist/utils/utils.mjs.map +1 -0
- package/dist/utils/utils.test.d.ts +2 -0
- package/dist/utils/utils.test.js +9 -0
- package/dist/utils/utils.test.js.map +1 -0
- package/dist/utils/utils.test.mjs +7 -0
- package/dist/utils/utils.test.mjs.map +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# ui
|
|
2
2
|
|
|
3
|
+
## 1.5.10-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- db3d539: test release notes
|
|
8
|
+
- e5d588d: test changelog
|
|
9
|
+
- 4211318: test changelog
|
|
10
|
+
- d431537: Test release notes
|
|
11
|
+
- Updated dependencies [72f9e58]
|
|
12
|
+
- Updated dependencies [aecb6f4]
|
|
13
|
+
- Updated dependencies [9b3bdc2]
|
|
14
|
+
- @copilotkit/runtime-client-gql@1.5.10-next.0
|
|
15
|
+
- @copilotkit/shared@1.5.10-next.0
|
|
16
|
+
|
|
17
|
+
## 1.5.9
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- db3d539: test release notes
|
|
22
|
+
- e5d588d: test changelog
|
|
23
|
+
- 4211318: test changelog
|
|
24
|
+
- d431537: Test release notes
|
|
25
|
+
- Updated dependencies [72f9e58]
|
|
26
|
+
- Updated dependencies [9b3bdc2]
|
|
27
|
+
- @copilotkit/runtime-client-gql@1.5.9
|
|
28
|
+
- @copilotkit/shared@1.5.9
|
|
29
|
+
|
|
3
30
|
## 1.5.8
|
|
4
31
|
|
|
5
32
|
### Patch Changes
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CopilotContext
|
|
3
|
+
} from "./chunk-WXREY7UP.mjs";
|
|
4
|
+
import {
|
|
5
|
+
useToast
|
|
6
|
+
} from "./chunk-LNI2Z45S.mjs";
|
|
7
|
+
|
|
8
|
+
// src/hooks/use-coagent-state-render.ts
|
|
9
|
+
import { useRef, useContext, useEffect } from "react";
|
|
10
|
+
import { randomId } from "@copilotkit/shared";
|
|
11
|
+
function useCoAgentStateRender(action, dependencies) {
|
|
12
|
+
const {
|
|
13
|
+
setCoAgentStateRender,
|
|
14
|
+
removeCoAgentStateRender,
|
|
15
|
+
coAgentStateRenders,
|
|
16
|
+
chatComponentsCache,
|
|
17
|
+
availableAgents
|
|
18
|
+
} = useContext(CopilotContext);
|
|
19
|
+
const idRef = useRef(randomId());
|
|
20
|
+
const { addToast } = useToast();
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if ((availableAgents == null ? void 0 : availableAgents.length) && !availableAgents.some((a) => a.name === action.name)) {
|
|
23
|
+
const message = `(useCoAgentStateRender): Agent "${action.name}" not found. Make sure the agent exists and is properly configured.`;
|
|
24
|
+
console.warn(message);
|
|
25
|
+
addToast({ type: "warning", message });
|
|
26
|
+
}
|
|
27
|
+
}, [availableAgents]);
|
|
28
|
+
const key = `${action.name}-${action.nodeName || "global"}`;
|
|
29
|
+
if (dependencies === void 0) {
|
|
30
|
+
if (coAgentStateRenders[idRef.current]) {
|
|
31
|
+
coAgentStateRenders[idRef.current].handler = action.handler;
|
|
32
|
+
if (typeof action.render === "function") {
|
|
33
|
+
if (chatComponentsCache.current !== null) {
|
|
34
|
+
chatComponentsCache.current.coAgentStateRenders[key] = action.render;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
setCoAgentStateRender(idRef.current, action);
|
|
41
|
+
if (chatComponentsCache.current !== null && action.render !== void 0) {
|
|
42
|
+
chatComponentsCache.current.coAgentStateRenders[key] = action.render;
|
|
43
|
+
}
|
|
44
|
+
return () => {
|
|
45
|
+
removeCoAgentStateRender(idRef.current);
|
|
46
|
+
};
|
|
47
|
+
}, [
|
|
48
|
+
setCoAgentStateRender,
|
|
49
|
+
removeCoAgentStateRender,
|
|
50
|
+
action.name,
|
|
51
|
+
// include render only if it's a string
|
|
52
|
+
typeof action.render === "string" ? action.render : void 0,
|
|
53
|
+
// dependencies set by the developer
|
|
54
|
+
...dependencies || []
|
|
55
|
+
]);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
useCoAgentStateRender
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=chunk-22XKTBPF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-coagent-state-render.ts"],"sourcesContent":["/**\n * <Callout type=\"info\">\n * Usage of this hook assumes some additional setup in your application, for more information\n * on that see the CoAgents <span className=\"text-blue-500\">[Agentic Generative UI documentation](/coagents/chat-ui/render-agent-state)</span>.\n * </Callout>\n *\n * The useCoAgentStateRender hook allows you to render UI components or text based on a Agentic Copilot's state.\n * This is particularly useful for showing intermediate state or progress during Agentic Copilot operations.\n *\n * ## Usage\n *\n * ### Simple Usage\n *\n * ```tsx\n * import { useCoAgentStateRender } from \"@copilotkit/react-core\";\n *\n * type YourAgentState = {\n * agent_state_property: string;\n * }\n *\n * useCoAgentStateRender<YourAgentState>({\n * name: \"basic_agent\",\n * nodeName: \"optionally_specify_a_specific_node\",\n * render: ({ status, state, nodeName }) => {\n * return (\n * <YourComponent\n * agentStateProperty={state.agent_state_property}\n * status={status}\n * nodeName={nodeName}\n * />\n * );\n * },\n * });\n * ```\n *\n * This allows for you to render UI components or text based on what is happening within the agent.\n *\n * ### Example\n * A great example of this is in our Perplexity Clone where we render the progress of an agent's internet search as it is happening.\n * You can play around with it below or learn how to build it with its [demo](/coagents/videos/perplexity-clone).\n *\n * <Callout type=\"info\">\n * This example is hosted on Vercel and may take a few seconds to load.\n * </Callout>\n *\n * <iframe src=\"https://examples-coagents-ai-researcher-ui.vercel.app/\" className=\"w-full rounded-lg border h-[700px] my-4\" />\n */\n\nimport { useRef, useContext, useEffect } from \"react\";\nimport { CopilotContext } from \"../context/copilot-context\";\nimport { randomId } from \"@copilotkit/shared\";\nimport { CoAgentStateRender } from \"../types/coagent-action\";\nimport { useToast } from \"../components/toast/toast-provider\";\n\n/**\n * This hook is used to render agent state with custom UI components or text. This is particularly\n * useful for showing intermediate state or progress during Agentic Copilot operations.\n * To get started using rendering intermediate state through this hook, checkout the documentation.\n *\n * https://docs.copilotkit.ai/coagents/chat-ui/render-agent-state.\n */\n\n// We implement useCoAgentStateRender dependency handling so that\n// the developer has the option to not provide any dependencies.\n// see useCopilotAction for more details about this approach.\nexport function useCoAgentStateRender<T = any>(\n action: CoAgentStateRender<T>,\n dependencies?: any[],\n): void {\n const {\n setCoAgentStateRender,\n removeCoAgentStateRender,\n coAgentStateRenders,\n chatComponentsCache,\n availableAgents,\n } = useContext(CopilotContext);\n const idRef = useRef<string>(randomId());\n const { addToast } = useToast();\n\n useEffect(() => {\n if (availableAgents?.length && !availableAgents.some((a) => a.name === action.name)) {\n const message = `(useCoAgentStateRender): Agent \"${action.name}\" not found. Make sure the agent exists and is properly configured.`;\n console.warn(message);\n addToast({ type: \"warning\", message });\n }\n }, [availableAgents]);\n\n const key = `${action.name}-${action.nodeName || \"global\"}`;\n\n if (dependencies === undefined) {\n if (coAgentStateRenders[idRef.current]) {\n coAgentStateRenders[idRef.current].handler = action.handler as any;\n if (typeof action.render === \"function\") {\n if (chatComponentsCache.current !== null) {\n chatComponentsCache.current.coAgentStateRenders[key] = action.render;\n }\n }\n }\n }\n\n useEffect(() => {\n setCoAgentStateRender(idRef.current, action as any);\n if (chatComponentsCache.current !== null && action.render !== undefined) {\n chatComponentsCache.current.coAgentStateRenders[key] = action.render;\n }\n return () => {\n removeCoAgentStateRender(idRef.current);\n };\n }, [\n setCoAgentStateRender,\n removeCoAgentStateRender,\n action.name,\n // include render only if it's a string\n typeof action.render === \"string\" ? action.render : undefined,\n // dependencies set by the developer\n ...(dependencies || []),\n ]);\n}\n"],"mappings":";;;;;;;;AAgDA,SAAS,QAAQ,YAAY,iBAAiB;AAE9C,SAAS,gBAAgB;AAelB,SAAS,sBACd,QACA,cACM;AACN,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,cAAc;AAC7B,QAAM,QAAQ,OAAe,SAAS,CAAC;AACvC,QAAM,EAAE,SAAS,IAAI,SAAS;AAE9B,YAAU,MAAM;AACd,SAAI,mDAAiB,WAAU,CAAC,gBAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,OAAO,IAAI,GAAG;AACnF,YAAM,UAAU,mCAAmC,OAAO;AAC1D,cAAQ,KAAK,OAAO;AACpB,eAAS,EAAE,MAAM,WAAW,QAAQ,CAAC;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,eAAe,CAAC;AAEpB,QAAM,MAAM,GAAG,OAAO,QAAQ,OAAO,YAAY;AAEjD,MAAI,iBAAiB,QAAW;AAC9B,QAAI,oBAAoB,MAAM,OAAO,GAAG;AACtC,0BAAoB,MAAM,OAAO,EAAE,UAAU,OAAO;AACpD,UAAI,OAAO,OAAO,WAAW,YAAY;AACvC,YAAI,oBAAoB,YAAY,MAAM;AACxC,8BAAoB,QAAQ,oBAAoB,GAAG,IAAI,OAAO;AAAA,QAChE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,YAAU,MAAM;AACd,0BAAsB,MAAM,SAAS,MAAa;AAClD,QAAI,oBAAoB,YAAY,QAAQ,OAAO,WAAW,QAAW;AACvE,0BAAoB,QAAQ,oBAAoB,GAAG,IAAI,OAAO;AAAA,IAChE;AACA,WAAO,MAAM;AACX,+BAAyB,MAAM,OAAO;AAAA,IACxC;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA,OAAO;AAAA;AAAA,IAEP,OAAO,OAAO,WAAW,WAAW,OAAO,SAAS;AAAA;AAAA,IAEpD,GAAI,gBAAgB,CAAC;AAAA,EACvB,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CopilotErrorBoundary
|
|
3
|
+
} from "./chunk-VNTDIJSG.mjs";
|
|
4
|
+
import {
|
|
5
|
+
shouldShowDevConsole
|
|
6
|
+
} from "./chunk-MLAS4QUR.mjs";
|
|
7
|
+
import {
|
|
8
|
+
CopilotMessages
|
|
9
|
+
} from "./chunk-XXR4QFAQ.mjs";
|
|
10
|
+
import {
|
|
11
|
+
use_tree_default
|
|
12
|
+
} from "./chunk-6U3UH3KO.mjs";
|
|
13
|
+
import {
|
|
14
|
+
use_flat_category_store_default
|
|
15
|
+
} from "./chunk-5FHSUKQL.mjs";
|
|
16
|
+
import {
|
|
17
|
+
useCopilotRuntimeClient
|
|
18
|
+
} from "./chunk-6BQVZFNO.mjs";
|
|
19
|
+
import {
|
|
20
|
+
CopilotContext
|
|
21
|
+
} from "./chunk-WXREY7UP.mjs";
|
|
22
|
+
import {
|
|
23
|
+
ToastProvider
|
|
24
|
+
} from "./chunk-LNI2Z45S.mjs";
|
|
25
|
+
import {
|
|
26
|
+
__async,
|
|
27
|
+
__objRest,
|
|
28
|
+
__restKey,
|
|
29
|
+
__spreadProps,
|
|
30
|
+
__spreadValues
|
|
31
|
+
} from "./chunk-SKC7AJIV.mjs";
|
|
32
|
+
|
|
33
|
+
// src/utils/extract.ts
|
|
34
|
+
import {
|
|
35
|
+
actionParametersToJsonSchema
|
|
36
|
+
} from "@copilotkit/shared";
|
|
37
|
+
import {
|
|
38
|
+
Role,
|
|
39
|
+
TextMessage,
|
|
40
|
+
convertGqlOutputToMessages,
|
|
41
|
+
CopilotRequestType
|
|
42
|
+
} from "@copilotkit/runtime-client-gql";
|
|
43
|
+
|
|
44
|
+
// src/components/copilot-provider/copilotkit.tsx
|
|
45
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
46
|
+
import { flushSync } from "react-dom";
|
|
47
|
+
import {
|
|
48
|
+
COPILOT_CLOUD_CHAT_URL,
|
|
49
|
+
COPILOT_CLOUD_PUBLIC_API_KEY_HEADER
|
|
50
|
+
} from "@copilotkit/shared";
|
|
51
|
+
import { jsx } from "react/jsx-runtime";
|
|
52
|
+
function CopilotKit(_a) {
|
|
53
|
+
var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
|
|
54
|
+
const showDevConsole = props.showDevConsole === void 0 ? "auto" : props.showDevConsole;
|
|
55
|
+
const enabled = shouldShowDevConsole(showDevConsole);
|
|
56
|
+
return /* @__PURE__ */ jsx(ToastProvider, { enabled, children: /* @__PURE__ */ jsx(CopilotErrorBoundary, { children: /* @__PURE__ */ jsx(CopilotKitInternal, __spreadProps(__spreadValues({}, props), { children })) }) });
|
|
57
|
+
}
|
|
58
|
+
function CopilotKitInternal(_a) {
|
|
59
|
+
var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
|
|
60
|
+
if (!props.runtimeUrl && !props.publicApiKey) {
|
|
61
|
+
throw new Error(
|
|
62
|
+
"Please provide either a runtimeUrl or a publicApiKey to the CopilotKit component."
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
const chatApiEndpoint = props.runtimeUrl || COPILOT_CLOUD_CHAT_URL;
|
|
66
|
+
const [actions, setActions] = useState({});
|
|
67
|
+
const [coAgentStateRenders, setCoAgentStateRenders] = useState({});
|
|
68
|
+
const chatComponentsCache = useRef({
|
|
69
|
+
actions: {},
|
|
70
|
+
coAgentStateRenders: {}
|
|
71
|
+
});
|
|
72
|
+
const { addElement, removeElement, printTree } = use_tree_default();
|
|
73
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
74
|
+
const [chatInstructions, setChatInstructions] = useState("");
|
|
75
|
+
const [authStates, setAuthStates] = useState({});
|
|
76
|
+
const {
|
|
77
|
+
addElement: addDocument,
|
|
78
|
+
removeElement: removeDocument,
|
|
79
|
+
allElements: allDocuments
|
|
80
|
+
} = use_flat_category_store_default();
|
|
81
|
+
const setAction = useCallback((id, action) => {
|
|
82
|
+
setActions((prevPoints) => {
|
|
83
|
+
return __spreadProps(__spreadValues({}, prevPoints), {
|
|
84
|
+
[id]: action
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}, []);
|
|
88
|
+
const removeAction = useCallback((id) => {
|
|
89
|
+
setActions((prevPoints) => {
|
|
90
|
+
const newPoints = __spreadValues({}, prevPoints);
|
|
91
|
+
delete newPoints[id];
|
|
92
|
+
return newPoints;
|
|
93
|
+
});
|
|
94
|
+
}, []);
|
|
95
|
+
const setCoAgentStateRender = useCallback((id, stateRender) => {
|
|
96
|
+
setCoAgentStateRenders((prevPoints) => {
|
|
97
|
+
return __spreadProps(__spreadValues({}, prevPoints), {
|
|
98
|
+
[id]: stateRender
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}, []);
|
|
102
|
+
const removeCoAgentStateRender = useCallback((id) => {
|
|
103
|
+
setCoAgentStateRenders((prevPoints) => {
|
|
104
|
+
const newPoints = __spreadValues({}, prevPoints);
|
|
105
|
+
delete newPoints[id];
|
|
106
|
+
return newPoints;
|
|
107
|
+
});
|
|
108
|
+
}, []);
|
|
109
|
+
const getContextString = useCallback(
|
|
110
|
+
(documents, categories) => {
|
|
111
|
+
const documentsString = documents.map((document) => {
|
|
112
|
+
return `${document.name} (${document.sourceApplication}):
|
|
113
|
+
${document.getContents()}`;
|
|
114
|
+
}).join("\n\n");
|
|
115
|
+
const nonDocumentStrings = printTree(categories);
|
|
116
|
+
return `${documentsString}
|
|
117
|
+
|
|
118
|
+
${nonDocumentStrings}`;
|
|
119
|
+
},
|
|
120
|
+
[printTree]
|
|
121
|
+
);
|
|
122
|
+
const addContext = useCallback(
|
|
123
|
+
(context, parentId, categories = defaultCopilotContextCategories) => {
|
|
124
|
+
return addElement(context, categories, parentId);
|
|
125
|
+
},
|
|
126
|
+
[addElement]
|
|
127
|
+
);
|
|
128
|
+
const removeContext = useCallback(
|
|
129
|
+
(id) => {
|
|
130
|
+
removeElement(id);
|
|
131
|
+
},
|
|
132
|
+
[removeElement]
|
|
133
|
+
);
|
|
134
|
+
const getFunctionCallHandler = useCallback(
|
|
135
|
+
(customEntryPoints) => {
|
|
136
|
+
return entryPointsToFunctionCallHandler(Object.values(customEntryPoints || actions));
|
|
137
|
+
},
|
|
138
|
+
[actions]
|
|
139
|
+
);
|
|
140
|
+
const getDocumentsContext = useCallback(
|
|
141
|
+
(categories) => {
|
|
142
|
+
return allDocuments(categories);
|
|
143
|
+
},
|
|
144
|
+
[allDocuments]
|
|
145
|
+
);
|
|
146
|
+
const addDocumentContext = useCallback(
|
|
147
|
+
(documentPointer, categories = defaultCopilotContextCategories) => {
|
|
148
|
+
return addDocument(documentPointer, categories);
|
|
149
|
+
},
|
|
150
|
+
[addDocument]
|
|
151
|
+
);
|
|
152
|
+
const removeDocumentContext = useCallback(
|
|
153
|
+
(documentId) => {
|
|
154
|
+
removeDocument(documentId);
|
|
155
|
+
},
|
|
156
|
+
[removeDocument]
|
|
157
|
+
);
|
|
158
|
+
if (!props.publicApiKey) {
|
|
159
|
+
if (props.cloudRestrictToTopic) {
|
|
160
|
+
throw new Error(
|
|
161
|
+
"To use the cloudRestrictToTopic feature, please sign up at https://copilotkit.ai and provide a publicApiKey."
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const copilotApiConfig = useMemo(() => {
|
|
166
|
+
var _a2, _b2;
|
|
167
|
+
let cloud = void 0;
|
|
168
|
+
if (props.publicApiKey) {
|
|
169
|
+
cloud = {
|
|
170
|
+
guardrails: {
|
|
171
|
+
input: {
|
|
172
|
+
restrictToTopic: {
|
|
173
|
+
enabled: props.cloudRestrictToTopic ? true : false,
|
|
174
|
+
validTopics: ((_a2 = props.cloudRestrictToTopic) == null ? void 0 : _a2.validTopics) || [],
|
|
175
|
+
invalidTopics: ((_b2 = props.cloudRestrictToTopic) == null ? void 0 : _b2.invalidTopics) || []
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return __spreadProps(__spreadValues({
|
|
182
|
+
publicApiKey: props.publicApiKey
|
|
183
|
+
}, cloud ? { cloud } : {}), {
|
|
184
|
+
chatApiEndpoint,
|
|
185
|
+
headers: props.headers || {},
|
|
186
|
+
properties: props.properties || {},
|
|
187
|
+
transcribeAudioUrl: props.transcribeAudioUrl,
|
|
188
|
+
textToSpeechUrl: props.textToSpeechUrl,
|
|
189
|
+
credentials: props.credentials
|
|
190
|
+
});
|
|
191
|
+
}, [
|
|
192
|
+
props.publicApiKey,
|
|
193
|
+
props.headers,
|
|
194
|
+
props.properties,
|
|
195
|
+
props.transcribeAudioUrl,
|
|
196
|
+
props.textToSpeechUrl,
|
|
197
|
+
props.credentials,
|
|
198
|
+
props.cloudRestrictToTopic
|
|
199
|
+
]);
|
|
200
|
+
const headers = useMemo(() => {
|
|
201
|
+
const authHeaders = Object.values(authStates || {}).reduce((acc, state) => {
|
|
202
|
+
if (state.status === "authenticated" && state.authHeaders) {
|
|
203
|
+
return __spreadValues(__spreadValues({}, acc), Object.entries(state.authHeaders).reduce(
|
|
204
|
+
(headers2, [key, value]) => __spreadProps(__spreadValues({}, headers2), {
|
|
205
|
+
[key.startsWith("X-Custom-") ? key : `X-Custom-${key}`]: value
|
|
206
|
+
}),
|
|
207
|
+
{}
|
|
208
|
+
));
|
|
209
|
+
}
|
|
210
|
+
return acc;
|
|
211
|
+
}, {});
|
|
212
|
+
return __spreadValues(__spreadValues(__spreadValues({}, copilotApiConfig.headers || {}), copilotApiConfig.publicApiKey ? { [COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: copilotApiConfig.publicApiKey } : {}), authHeaders);
|
|
213
|
+
}, [copilotApiConfig.headers, copilotApiConfig.publicApiKey, authStates]);
|
|
214
|
+
const runtimeClient = useCopilotRuntimeClient({
|
|
215
|
+
url: copilotApiConfig.chatApiEndpoint,
|
|
216
|
+
publicApiKey: copilotApiConfig.publicApiKey,
|
|
217
|
+
headers,
|
|
218
|
+
credentials: copilotApiConfig.credentials
|
|
219
|
+
});
|
|
220
|
+
const [chatSuggestionConfiguration, setChatSuggestionConfiguration] = useState({});
|
|
221
|
+
const addChatSuggestionConfiguration = (id, suggestion) => {
|
|
222
|
+
setChatSuggestionConfiguration((prev) => __spreadProps(__spreadValues({}, prev), { [id]: suggestion }));
|
|
223
|
+
};
|
|
224
|
+
const removeChatSuggestionConfiguration = (id) => {
|
|
225
|
+
setChatSuggestionConfiguration((prev) => {
|
|
226
|
+
const _a2 = prev, { [id]: _ } = _a2, rest = __objRest(_a2, [__restKey(id)]);
|
|
227
|
+
return rest;
|
|
228
|
+
});
|
|
229
|
+
};
|
|
230
|
+
const [availableAgents, setAvailableAgents] = useState([]);
|
|
231
|
+
const [coagentStates, setCoagentStates] = useState({});
|
|
232
|
+
const coagentStatesRef = useRef({});
|
|
233
|
+
const setCoagentStatesWithRef = useCallback(
|
|
234
|
+
(value) => {
|
|
235
|
+
const newValue = typeof value === "function" ? value(coagentStatesRef.current) : value;
|
|
236
|
+
coagentStatesRef.current = newValue;
|
|
237
|
+
setCoagentStates((prev) => {
|
|
238
|
+
return newValue;
|
|
239
|
+
});
|
|
240
|
+
},
|
|
241
|
+
[]
|
|
242
|
+
);
|
|
243
|
+
useEffect(() => {
|
|
244
|
+
const fetchData = () => __async(this, null, function* () {
|
|
245
|
+
var _a2;
|
|
246
|
+
const result = yield runtimeClient.availableAgents();
|
|
247
|
+
if ((_a2 = result.data) == null ? void 0 : _a2.availableAgents) {
|
|
248
|
+
setAvailableAgents(result.data.availableAgents.agents);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
void fetchData();
|
|
252
|
+
}, []);
|
|
253
|
+
let initialAgentSession = null;
|
|
254
|
+
if (props.agent) {
|
|
255
|
+
initialAgentSession = {
|
|
256
|
+
agentName: props.agent
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
const [agentSession, setAgentSession] = useState(initialAgentSession);
|
|
260
|
+
const [threadId, setThreadId] = useState(null);
|
|
261
|
+
const [runId, setRunId] = useState(null);
|
|
262
|
+
const chatAbortControllerRef = useRef(null);
|
|
263
|
+
const showDevConsole = props.showDevConsole === void 0 ? "auto" : props.showDevConsole;
|
|
264
|
+
return /* @__PURE__ */ jsx(
|
|
265
|
+
CopilotContext.Provider,
|
|
266
|
+
{
|
|
267
|
+
value: {
|
|
268
|
+
actions,
|
|
269
|
+
chatComponentsCache,
|
|
270
|
+
getFunctionCallHandler,
|
|
271
|
+
setAction,
|
|
272
|
+
removeAction,
|
|
273
|
+
coAgentStateRenders,
|
|
274
|
+
setCoAgentStateRender,
|
|
275
|
+
removeCoAgentStateRender,
|
|
276
|
+
getContextString,
|
|
277
|
+
addContext,
|
|
278
|
+
removeContext,
|
|
279
|
+
getDocumentsContext,
|
|
280
|
+
addDocumentContext,
|
|
281
|
+
removeDocumentContext,
|
|
282
|
+
copilotApiConfig,
|
|
283
|
+
isLoading,
|
|
284
|
+
setIsLoading,
|
|
285
|
+
chatSuggestionConfiguration,
|
|
286
|
+
addChatSuggestionConfiguration,
|
|
287
|
+
removeChatSuggestionConfiguration,
|
|
288
|
+
chatInstructions,
|
|
289
|
+
setChatInstructions,
|
|
290
|
+
showDevConsole,
|
|
291
|
+
coagentStates,
|
|
292
|
+
setCoagentStates,
|
|
293
|
+
coagentStatesRef,
|
|
294
|
+
setCoagentStatesWithRef,
|
|
295
|
+
agentSession,
|
|
296
|
+
setAgentSession,
|
|
297
|
+
runtimeClient,
|
|
298
|
+
forwardedParameters: props.forwardedParameters || {},
|
|
299
|
+
agentLock: props.agent || null,
|
|
300
|
+
threadId,
|
|
301
|
+
setThreadId,
|
|
302
|
+
runId,
|
|
303
|
+
setRunId,
|
|
304
|
+
chatAbortControllerRef,
|
|
305
|
+
availableAgents,
|
|
306
|
+
authConfig: props.authConfig,
|
|
307
|
+
authStates,
|
|
308
|
+
setAuthStates
|
|
309
|
+
},
|
|
310
|
+
children: /* @__PURE__ */ jsx(CopilotMessages, { children })
|
|
311
|
+
}
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
var defaultCopilotContextCategories = ["global"];
|
|
315
|
+
function entryPointsToFunctionCallHandler(actions) {
|
|
316
|
+
return (_0) => __async(this, [_0], function* ({ messages, name, args }) {
|
|
317
|
+
let actionsByFunctionName = {};
|
|
318
|
+
for (let action2 of actions) {
|
|
319
|
+
actionsByFunctionName[action2.name] = action2;
|
|
320
|
+
}
|
|
321
|
+
const action = actionsByFunctionName[name];
|
|
322
|
+
let result = void 0;
|
|
323
|
+
if (action) {
|
|
324
|
+
yield new Promise((resolve, reject) => {
|
|
325
|
+
flushSync(() => __async(this, null, function* () {
|
|
326
|
+
var _a;
|
|
327
|
+
try {
|
|
328
|
+
result = yield (_a = action.handler) == null ? void 0 : _a.call(action, args);
|
|
329
|
+
resolve();
|
|
330
|
+
} catch (error) {
|
|
331
|
+
reject(error);
|
|
332
|
+
}
|
|
333
|
+
}));
|
|
334
|
+
});
|
|
335
|
+
yield new Promise((resolve) => setTimeout(resolve, 20));
|
|
336
|
+
}
|
|
337
|
+
return result;
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// src/utils/extract.ts
|
|
342
|
+
import {
|
|
343
|
+
convertMessagesToGqlInput,
|
|
344
|
+
filterAgentStateMessages
|
|
345
|
+
} from "@copilotkit/runtime-client-gql";
|
|
346
|
+
function extract(_0) {
|
|
347
|
+
return __async(this, arguments, function* ({
|
|
348
|
+
context,
|
|
349
|
+
instructions,
|
|
350
|
+
parameters,
|
|
351
|
+
include,
|
|
352
|
+
data,
|
|
353
|
+
abortSignal,
|
|
354
|
+
stream,
|
|
355
|
+
requestType = CopilotRequestType.Task,
|
|
356
|
+
forwardedParameters
|
|
357
|
+
}) {
|
|
358
|
+
var _a, _b;
|
|
359
|
+
const { messages } = context;
|
|
360
|
+
const action = {
|
|
361
|
+
name: "extract",
|
|
362
|
+
description: instructions,
|
|
363
|
+
parameters,
|
|
364
|
+
handler: (args) => {
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
const includeReadable = (_a = include == null ? void 0 : include.readable) != null ? _a : false;
|
|
368
|
+
const includeMessages = (_b = include == null ? void 0 : include.messages) != null ? _b : false;
|
|
369
|
+
let contextString = "";
|
|
370
|
+
if (data) {
|
|
371
|
+
contextString = (typeof data === "string" ? data : JSON.stringify(data)) + "\n\n";
|
|
372
|
+
}
|
|
373
|
+
if (includeReadable) {
|
|
374
|
+
contextString += context.getContextString([], defaultCopilotContextCategories);
|
|
375
|
+
}
|
|
376
|
+
const systemMessage = new TextMessage({
|
|
377
|
+
content: makeSystemMessage(contextString, instructions),
|
|
378
|
+
role: Role.System
|
|
379
|
+
});
|
|
380
|
+
const instructionsMessage = new TextMessage({
|
|
381
|
+
content: makeInstructionsMessage(instructions),
|
|
382
|
+
role: Role.User
|
|
383
|
+
});
|
|
384
|
+
const response = context.runtimeClient.asStream(
|
|
385
|
+
context.runtimeClient.generateCopilotResponse({
|
|
386
|
+
data: {
|
|
387
|
+
frontend: {
|
|
388
|
+
actions: [
|
|
389
|
+
{
|
|
390
|
+
name: action.name,
|
|
391
|
+
description: action.description || "",
|
|
392
|
+
jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters || []))
|
|
393
|
+
}
|
|
394
|
+
],
|
|
395
|
+
url: window.location.href
|
|
396
|
+
},
|
|
397
|
+
messages: convertMessagesToGqlInput(
|
|
398
|
+
includeMessages ? [systemMessage, instructionsMessage, ...filterAgentStateMessages(messages)] : [systemMessage, instructionsMessage]
|
|
399
|
+
),
|
|
400
|
+
metadata: {
|
|
401
|
+
requestType
|
|
402
|
+
},
|
|
403
|
+
forwardedParameters: __spreadProps(__spreadValues({}, forwardedParameters != null ? forwardedParameters : {}), {
|
|
404
|
+
toolChoice: "function",
|
|
405
|
+
toolChoiceFunctionName: action.name
|
|
406
|
+
})
|
|
407
|
+
},
|
|
408
|
+
properties: context.copilotApiConfig.properties,
|
|
409
|
+
signal: abortSignal
|
|
410
|
+
})
|
|
411
|
+
);
|
|
412
|
+
const reader = response.getReader();
|
|
413
|
+
let isInitial = true;
|
|
414
|
+
let actionExecutionMessage = void 0;
|
|
415
|
+
while (true) {
|
|
416
|
+
const { done, value } = yield reader.read();
|
|
417
|
+
if (done) {
|
|
418
|
+
break;
|
|
419
|
+
}
|
|
420
|
+
if (abortSignal == null ? void 0 : abortSignal.aborted) {
|
|
421
|
+
throw new Error("Aborted");
|
|
422
|
+
}
|
|
423
|
+
actionExecutionMessage = convertGqlOutputToMessages(
|
|
424
|
+
value.generateCopilotResponse.messages
|
|
425
|
+
).find((msg) => msg.isActionExecutionMessage());
|
|
426
|
+
if (!actionExecutionMessage) {
|
|
427
|
+
continue;
|
|
428
|
+
}
|
|
429
|
+
stream == null ? void 0 : stream({
|
|
430
|
+
status: isInitial ? "initial" : "inProgress",
|
|
431
|
+
args: actionExecutionMessage.arguments
|
|
432
|
+
});
|
|
433
|
+
isInitial = false;
|
|
434
|
+
}
|
|
435
|
+
if (!actionExecutionMessage) {
|
|
436
|
+
throw new Error("extract() failed: No function call occurred");
|
|
437
|
+
}
|
|
438
|
+
stream == null ? void 0 : stream({
|
|
439
|
+
status: "complete",
|
|
440
|
+
args: actionExecutionMessage.arguments
|
|
441
|
+
});
|
|
442
|
+
return actionExecutionMessage.arguments;
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
function makeInstructionsMessage(instructions) {
|
|
446
|
+
return `
|
|
447
|
+
The user has given you the following task to complete:
|
|
448
|
+
|
|
449
|
+
\`\`\`
|
|
450
|
+
${instructions}
|
|
451
|
+
\`\`\`
|
|
452
|
+
|
|
453
|
+
Any additional messages provided are for providing context only and should not be used to ask questions or engage in conversation.
|
|
454
|
+
`;
|
|
455
|
+
}
|
|
456
|
+
function makeSystemMessage(contextString, instructions) {
|
|
457
|
+
return `
|
|
458
|
+
Please act as an efficient, competent, conscientious, and industrious professional assistant.
|
|
459
|
+
|
|
460
|
+
Help the user achieve their goals, and you do so in a way that is as efficient as possible, without unnecessary fluff, but also without sacrificing professionalism.
|
|
461
|
+
Always be polite and respectful, and prefer brevity over verbosity.
|
|
462
|
+
|
|
463
|
+
The user has provided you with the following context:
|
|
464
|
+
\`\`\`
|
|
465
|
+
${contextString}
|
|
466
|
+
\`\`\`
|
|
467
|
+
|
|
468
|
+
They have also provided you with a function called extract you MUST call to initiate actions on their behalf.
|
|
469
|
+
|
|
470
|
+
Please assist them as best you can.
|
|
471
|
+
|
|
472
|
+
This is not a conversation, so please do not ask questions. Just call the function without saying anything else.
|
|
473
|
+
`;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
export {
|
|
477
|
+
extract,
|
|
478
|
+
CopilotKit,
|
|
479
|
+
CopilotKitInternal,
|
|
480
|
+
defaultCopilotContextCategories
|
|
481
|
+
};
|
|
482
|
+
//# sourceMappingURL=chunk-2KT73RVG.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/extract.ts","../src/components/copilot-provider/copilotkit.tsx"],"sourcesContent":["import {\n Action,\n COPILOT_CLOUD_PUBLIC_API_KEY_HEADER,\n MappedParameterTypes,\n Parameter,\n actionParametersToJsonSchema,\n} from \"@copilotkit/shared\";\nimport {\n ActionExecutionMessage,\n Message,\n Role,\n TextMessage,\n convertGqlOutputToMessages,\n CopilotRequestType,\n ForwardedParametersInput,\n} from \"@copilotkit/runtime-client-gql\";\nimport { CopilotContextParams, CopilotMessagesContextParams } from \"../context\";\nimport { defaultCopilotContextCategories } from \"../components\";\nimport { CopilotRuntimeClient } from \"@copilotkit/runtime-client-gql\";\nimport {\n convertMessagesToGqlInput,\n filterAgentStateMessages,\n} from \"@copilotkit/runtime-client-gql\";\n\ninterface InitialState<T extends Parameter[] | [] = []> {\n status: \"initial\";\n args: Partial<MappedParameterTypes<T>>;\n}\n\ninterface InProgressState<T extends Parameter[] | [] = []> {\n status: \"inProgress\";\n args: Partial<MappedParameterTypes<T>>;\n}\n\ninterface CompleteState<T extends Parameter[] | [] = []> {\n status: \"complete\";\n args: MappedParameterTypes<T>;\n}\n\ntype StreamHandlerArgs<T extends Parameter[] | [] = []> =\n | InitialState<T>\n | InProgressState<T>\n | CompleteState<T>;\n\ninterface ExtractOptions<T extends Parameter[]> {\n context: CopilotContextParams & CopilotMessagesContextParams;\n instructions: string;\n parameters: T;\n include?: IncludeOptions;\n data?: any;\n abortSignal?: AbortSignal;\n stream?: (args: StreamHandlerArgs<T>) => void;\n requestType?: CopilotRequestType;\n forwardedParameters?: ForwardedParametersInput;\n}\n\ninterface IncludeOptions {\n readable?: boolean;\n messages?: boolean;\n}\n\nexport async function extract<const T extends Parameter[]>({\n context,\n instructions,\n parameters,\n include,\n data,\n abortSignal,\n stream,\n requestType = CopilotRequestType.Task,\n forwardedParameters,\n}: ExtractOptions<T>): Promise<MappedParameterTypes<T>> {\n const { messages } = context;\n\n const action: Action<any> = {\n name: \"extract\",\n description: instructions,\n parameters,\n handler: (args: any) => {},\n };\n\n const includeReadable = include?.readable ?? false;\n const includeMessages = include?.messages ?? false;\n\n let contextString = \"\";\n\n if (data) {\n contextString = (typeof data === \"string\" ? data : JSON.stringify(data)) + \"\\n\\n\";\n }\n\n if (includeReadable) {\n contextString += context.getContextString([], defaultCopilotContextCategories);\n }\n\n const systemMessage: Message = new TextMessage({\n content: makeSystemMessage(contextString, instructions),\n role: Role.System,\n });\n\n const instructionsMessage: Message = new TextMessage({\n content: makeInstructionsMessage(instructions),\n role: Role.User,\n });\n\n const response = context.runtimeClient.asStream(\n context.runtimeClient.generateCopilotResponse({\n data: {\n frontend: {\n actions: [\n {\n name: action.name,\n description: action.description || \"\",\n jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters || [])),\n },\n ],\n url: window.location.href,\n },\n\n messages: convertMessagesToGqlInput(\n includeMessages\n ? [systemMessage, instructionsMessage, ...filterAgentStateMessages(messages)]\n : [systemMessage, instructionsMessage],\n ),\n metadata: {\n requestType: requestType,\n },\n forwardedParameters: {\n ...(forwardedParameters ?? {}),\n toolChoice: \"function\",\n toolChoiceFunctionName: action.name,\n },\n },\n properties: context.copilotApiConfig.properties,\n signal: abortSignal,\n }),\n );\n\n const reader = response.getReader();\n\n let isInitial = true;\n\n let actionExecutionMessage: ActionExecutionMessage | undefined = undefined;\n\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n break;\n }\n\n if (abortSignal?.aborted) {\n throw new Error(\"Aborted\");\n }\n\n actionExecutionMessage = convertGqlOutputToMessages(\n value.generateCopilotResponse.messages,\n ).find((msg) => msg.isActionExecutionMessage()) as ActionExecutionMessage | undefined;\n\n if (!actionExecutionMessage) {\n continue;\n }\n\n stream?.({\n status: isInitial ? \"initial\" : \"inProgress\",\n args: actionExecutionMessage.arguments as Partial<MappedParameterTypes<T>>,\n });\n\n isInitial = false;\n }\n\n if (!actionExecutionMessage) {\n throw new Error(\"extract() failed: No function call occurred\");\n }\n\n stream?.({\n status: \"complete\",\n args: actionExecutionMessage.arguments as MappedParameterTypes<T>,\n });\n\n return actionExecutionMessage.arguments as MappedParameterTypes<T>;\n}\n\n// We need to put this in a user message since some LLMs need\n// at least one user message to function\nfunction makeInstructionsMessage(instructions: string): string {\n return `\nThe user has given you the following task to complete:\n\n\\`\\`\\`\n${instructions}\n\\`\\`\\`\n\nAny additional messages provided are for providing context only and should not be used to ask questions or engage in conversation.\n`;\n}\n\nfunction makeSystemMessage(contextString: string, instructions: string): string {\n return `\nPlease act as an efficient, competent, conscientious, and industrious professional assistant.\n\nHelp the user achieve their goals, and you do so in a way that is as efficient as possible, without unnecessary fluff, but also without sacrificing professionalism.\nAlways be polite and respectful, and prefer brevity over verbosity.\n\nThe user has provided you with the following context:\n\\`\\`\\`\n${contextString}\n\\`\\`\\`\n\nThey have also provided you with a function called extract you MUST call to initiate actions on their behalf.\n\nPlease assist them as best you can.\n\nThis is not a conversation, so please do not ask questions. Just call the function without saying anything else.\n`;\n}\n","/**\n * This component will typically wrap your entire application (or a sub-tree of your application where you want to have a copilot). It provides the copilot context to all other components and hooks.\n *\n * ## Example\n *\n * You can find more information about self-hosting CopilotKit [here](/guides/self-hosting).\n *\n * ```tsx\n * import { CopilotKit } from \"@copilotkit/react-core\";\n *\n * <CopilotKit runtimeUrl=\"<your-runtime-url>\">\n * // ... your app ...\n * </CopilotKit>\n * ```\n */\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n CopilotContext,\n CopilotApiConfig,\n ChatComponentsCache,\n AgentSession,\n AuthState,\n} from \"../../context/copilot-context\";\nimport useTree from \"../../hooks/use-tree\";\nimport { CopilotChatSuggestionConfiguration, DocumentPointer } from \"../../types\";\nimport { flushSync } from \"react-dom\";\nimport {\n COPILOT_CLOUD_CHAT_URL,\n CopilotCloudConfig,\n FunctionCallHandler,\n COPILOT_CLOUD_PUBLIC_API_KEY_HEADER,\n} from \"@copilotkit/shared\";\n\nimport { FrontendAction } from \"../../types/frontend-action\";\nimport useFlatCategoryStore from \"../../hooks/use-flat-category-store\";\nimport { CopilotKitProps } from \"./copilotkit-props\";\nimport { CoAgentStateRender } from \"../../types/coagent-action\";\nimport { CoagentState } from \"../../types/coagent-state\";\nimport { CopilotMessages } from \"./copilot-messages\";\nimport { ToastProvider } from \"../toast/toast-provider\";\nimport { useCopilotRuntimeClient } from \"../../hooks/use-copilot-runtime-client\";\nimport { shouldShowDevConsole } from \"../../utils\";\nimport { CopilotErrorBoundary } from \"../error-boundary/error-boundary\";\nimport { Agent } from \"@copilotkit/runtime-client-gql\";\n\nexport function CopilotKit({ children, ...props }: CopilotKitProps) {\n const showDevConsole = props.showDevConsole === undefined ? \"auto\" : props.showDevConsole;\n const enabled = shouldShowDevConsole(showDevConsole);\n return (\n <ToastProvider enabled={enabled}>\n <CopilotErrorBoundary>\n <CopilotKitInternal {...props}>{children}</CopilotKitInternal>\n </CopilotErrorBoundary>\n </ToastProvider>\n );\n}\n\nexport function CopilotKitInternal({ children, ...props }: CopilotKitProps) {\n // Compute all the functions and properties that we need to pass\n // to the CopilotContext.\n\n if (!props.runtimeUrl && !props.publicApiKey) {\n throw new Error(\n \"Please provide either a runtimeUrl or a publicApiKey to the CopilotKit component.\",\n );\n }\n\n const chatApiEndpoint = props.runtimeUrl || COPILOT_CLOUD_CHAT_URL;\n\n const [actions, setActions] = useState<Record<string, FrontendAction<any>>>({});\n const [coAgentStateRenders, setCoAgentStateRenders] = useState<\n Record<string, CoAgentStateRender<any>>\n >({});\n const chatComponentsCache = useRef<ChatComponentsCache>({\n actions: {},\n coAgentStateRenders: {},\n });\n const { addElement, removeElement, printTree } = useTree();\n const [isLoading, setIsLoading] = useState(false);\n const [chatInstructions, setChatInstructions] = useState(\"\");\n const [authStates, setAuthStates] = useState<Record<string, AuthState>>({});\n\n const {\n addElement: addDocument,\n removeElement: removeDocument,\n allElements: allDocuments,\n } = useFlatCategoryStore<DocumentPointer>();\n\n const setAction = useCallback((id: string, action: FrontendAction<any>) => {\n setActions((prevPoints) => {\n return {\n ...prevPoints,\n [id]: action,\n };\n });\n }, []);\n\n const removeAction = useCallback((id: string) => {\n setActions((prevPoints) => {\n const newPoints = { ...prevPoints };\n delete newPoints[id];\n return newPoints;\n });\n }, []);\n\n const setCoAgentStateRender = useCallback((id: string, stateRender: CoAgentStateRender<any>) => {\n setCoAgentStateRenders((prevPoints) => {\n return {\n ...prevPoints,\n [id]: stateRender,\n };\n });\n }, []);\n\n const removeCoAgentStateRender = useCallback((id: string) => {\n setCoAgentStateRenders((prevPoints) => {\n const newPoints = { ...prevPoints };\n delete newPoints[id];\n return newPoints;\n });\n }, []);\n\n const getContextString = useCallback(\n (documents: DocumentPointer[], categories: string[]) => {\n const documentsString = documents\n .map((document) => {\n return `${document.name} (${document.sourceApplication}):\\n${document.getContents()}`;\n })\n .join(\"\\n\\n\");\n\n const nonDocumentStrings = printTree(categories);\n\n return `${documentsString}\\n\\n${nonDocumentStrings}`;\n },\n [printTree],\n );\n\n const addContext = useCallback(\n (\n context: string,\n parentId?: string,\n categories: string[] = defaultCopilotContextCategories,\n ) => {\n return addElement(context, categories, parentId);\n },\n [addElement],\n );\n\n const removeContext = useCallback(\n (id: string) => {\n removeElement(id);\n },\n [removeElement],\n );\n\n const getFunctionCallHandler = useCallback(\n (customEntryPoints?: Record<string, FrontendAction<any>>) => {\n return entryPointsToFunctionCallHandler(Object.values(customEntryPoints || actions));\n },\n [actions],\n );\n\n const getDocumentsContext = useCallback(\n (categories: string[]) => {\n return allDocuments(categories);\n },\n [allDocuments],\n );\n\n const addDocumentContext = useCallback(\n (documentPointer: DocumentPointer, categories: string[] = defaultCopilotContextCategories) => {\n return addDocument(documentPointer, categories);\n },\n [addDocument],\n );\n\n const removeDocumentContext = useCallback(\n (documentId: string) => {\n removeDocument(documentId);\n },\n [removeDocument],\n );\n\n if (!props.publicApiKey) {\n if (props.cloudRestrictToTopic) {\n throw new Error(\n \"To use the cloudRestrictToTopic feature, please sign up at https://copilotkit.ai and provide a publicApiKey.\",\n );\n }\n }\n\n // get the appropriate CopilotApiConfig from the props\n const copilotApiConfig: CopilotApiConfig = useMemo(() => {\n let cloud: CopilotCloudConfig | undefined = undefined;\n if (props.publicApiKey) {\n cloud = {\n guardrails: {\n input: {\n restrictToTopic: {\n enabled: props.cloudRestrictToTopic ? true : false,\n validTopics: props.cloudRestrictToTopic?.validTopics || [],\n invalidTopics: props.cloudRestrictToTopic?.invalidTopics || [],\n },\n },\n },\n };\n }\n\n return {\n publicApiKey: props.publicApiKey,\n ...(cloud ? { cloud } : {}),\n chatApiEndpoint: chatApiEndpoint,\n headers: props.headers || {},\n properties: props.properties || {},\n transcribeAudioUrl: props.transcribeAudioUrl,\n textToSpeechUrl: props.textToSpeechUrl,\n credentials: props.credentials,\n };\n }, [\n props.publicApiKey,\n props.headers,\n props.properties,\n props.transcribeAudioUrl,\n props.textToSpeechUrl,\n props.credentials,\n props.cloudRestrictToTopic,\n ]);\n\n const headers = useMemo(() => {\n const authHeaders = Object.values(authStates || {}).reduce((acc, state) => {\n if (state.status === \"authenticated\" && state.authHeaders) {\n return {\n ...acc,\n ...Object.entries(state.authHeaders).reduce(\n (headers, [key, value]) => ({\n ...headers,\n [key.startsWith(\"X-Custom-\") ? key : `X-Custom-${key}`]: value,\n }),\n {},\n ),\n };\n }\n return acc;\n }, {});\n\n return {\n ...(copilotApiConfig.headers || {}),\n ...(copilotApiConfig.publicApiKey\n ? { [COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: copilotApiConfig.publicApiKey }\n : {}),\n ...authHeaders,\n };\n }, [copilotApiConfig.headers, copilotApiConfig.publicApiKey, authStates]);\n\n const runtimeClient = useCopilotRuntimeClient({\n url: copilotApiConfig.chatApiEndpoint,\n publicApiKey: copilotApiConfig.publicApiKey,\n headers,\n credentials: copilotApiConfig.credentials,\n });\n\n const [chatSuggestionConfiguration, setChatSuggestionConfiguration] = useState<{\n [key: string]: CopilotChatSuggestionConfiguration;\n }>({});\n\n const addChatSuggestionConfiguration = (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => {\n setChatSuggestionConfiguration((prev) => ({ ...prev, [id]: suggestion }));\n };\n\n const removeChatSuggestionConfiguration = (id: string) => {\n setChatSuggestionConfiguration((prev) => {\n const { [id]: _, ...rest } = prev;\n return rest;\n });\n };\n\n const [availableAgents, setAvailableAgents] = useState<Agent[]>([]);\n const [coagentStates, setCoagentStates] = useState<Record<string, CoagentState>>({});\n const coagentStatesRef = useRef<Record<string, CoagentState>>({});\n const setCoagentStatesWithRef = useCallback(\n (\n value:\n | Record<string, CoagentState>\n | ((prev: Record<string, CoagentState>) => Record<string, CoagentState>),\n ) => {\n const newValue = typeof value === \"function\" ? value(coagentStatesRef.current) : value;\n coagentStatesRef.current = newValue;\n setCoagentStates((prev) => {\n return newValue;\n });\n },\n [],\n );\n\n useEffect(() => {\n const fetchData = async () => {\n const result = await runtimeClient.availableAgents();\n if (result.data?.availableAgents) {\n setAvailableAgents(result.data.availableAgents.agents);\n }\n };\n void fetchData();\n }, []);\n\n let initialAgentSession: AgentSession | null = null;\n if (props.agent) {\n initialAgentSession = {\n agentName: props.agent,\n };\n }\n\n const [agentSession, setAgentSession] = useState<AgentSession | null>(initialAgentSession);\n const [threadId, setThreadId] = useState<string | null>(null);\n const [runId, setRunId] = useState<string | null>(null);\n\n const chatAbortControllerRef = useRef<AbortController | null>(null);\n\n const showDevConsole = props.showDevConsole === undefined ? \"auto\" : props.showDevConsole;\n\n return (\n <CopilotContext.Provider\n value={{\n actions,\n chatComponentsCache,\n getFunctionCallHandler,\n setAction,\n removeAction,\n coAgentStateRenders,\n setCoAgentStateRender,\n removeCoAgentStateRender,\n getContextString,\n addContext,\n removeContext,\n getDocumentsContext,\n addDocumentContext,\n removeDocumentContext,\n copilotApiConfig: copilotApiConfig,\n isLoading,\n setIsLoading,\n chatSuggestionConfiguration,\n addChatSuggestionConfiguration,\n removeChatSuggestionConfiguration,\n chatInstructions,\n setChatInstructions,\n showDevConsole,\n coagentStates,\n setCoagentStates,\n coagentStatesRef,\n setCoagentStatesWithRef,\n agentSession,\n setAgentSession,\n runtimeClient,\n forwardedParameters: props.forwardedParameters || {},\n agentLock: props.agent || null,\n threadId,\n setThreadId,\n runId,\n setRunId,\n chatAbortControllerRef,\n availableAgents,\n authConfig: props.authConfig,\n authStates,\n setAuthStates,\n }}\n >\n <CopilotMessages>{children}</CopilotMessages>\n </CopilotContext.Provider>\n );\n}\n\nexport const defaultCopilotContextCategories = [\"global\"];\n\nfunction entryPointsToFunctionCallHandler(actions: FrontendAction<any>[]): FunctionCallHandler {\n return async ({ messages, name, args }) => {\n let actionsByFunctionName: Record<string, FrontendAction<any>> = {};\n for (let action of actions) {\n actionsByFunctionName[action.name] = action;\n }\n\n const action = actionsByFunctionName[name];\n let result: any = undefined;\n if (action) {\n await new Promise<void>((resolve, reject) => {\n flushSync(async () => {\n try {\n result = await action.handler?.(args);\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n });\n await new Promise((resolve) => setTimeout(resolve, 20));\n }\n return result;\n };\n}\n"],"mappings":"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","names":["_a","_b","headers","action"]}
|