@copilotkit/react-core 1.3.6 → 1.3.7-fix-chat-interactions-rerenders.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 +9 -0
- package/dist/{chunk-3CU2I4W2.mjs → chunk-2J3X7XCA.mjs} +2 -2
- package/dist/{chunk-4AF3YGMC.mjs → chunk-2MPUQRAY.mjs} +1 -3
- package/dist/chunk-2MPUQRAY.mjs.map +1 -0
- package/dist/{chunk-VZ66ENV7.mjs → chunk-6YEMNWKE.mjs} +41 -31
- package/dist/chunk-6YEMNWKE.mjs.map +1 -0
- package/dist/{chunk-NTNOUYBQ.mjs → chunk-ANOG3W5S.mjs} +2 -2
- package/dist/{chunk-ACK2DHWA.mjs → chunk-CQ23Q555.mjs} +2 -2
- package/dist/chunk-DCTJZ742.mjs +22 -0
- package/dist/chunk-DCTJZ742.mjs.map +1 -0
- package/dist/{chunk-IAS5FL4D.mjs → chunk-EEQJ4OYH.mjs} +2 -2
- package/dist/chunk-EEQJ4OYH.mjs.map +1 -0
- package/dist/{chunk-2Y3VMFJN.mjs → chunk-GDIP6NYH.mjs} +7 -5
- package/dist/chunk-GDIP6NYH.mjs.map +1 -0
- package/dist/{chunk-UJWNB2I6.mjs → chunk-RYDEG77L.mjs} +2 -2
- package/dist/{chunk-QUCTZQ6X.mjs → chunk-TRXKPXDE.mjs} +2 -2
- package/dist/{chunk-KK42A2OC.mjs → chunk-WWNDAWQ4.mjs} +9 -4
- package/dist/chunk-WWNDAWQ4.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/components/copilot-provider/copilot-messages.d.ts +7 -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.js +85 -52
- package/dist/components/copilot-provider/copilotkit.js.map +1 -1
- package/dist/components/copilot-provider/copilotkit.mjs +4 -2
- package/dist/components/copilot-provider/index.js +85 -52
- package/dist/components/copilot-provider/index.js.map +1 -1
- package/dist/components/copilot-provider/index.mjs +4 -2
- package/dist/components/index.js +85 -52
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +4 -2
- package/dist/context/copilot-context.d.ts +0 -3
- package/dist/context/copilot-context.js +0 -2
- package/dist/context/copilot-context.js.map +1 -1
- package/dist/context/copilot-context.mjs +1 -1
- 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 +2 -1
- package/dist/context/index.js +23 -4
- package/dist/context/index.js.map +1 -1
- package/dist/context/index.mjs +9 -3
- package/dist/hooks/index.js +51 -33
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +17 -15
- package/dist/hooks/use-coagent-state-render.js +0 -2
- package/dist/hooks/use-coagent-state-render.js.map +1 -1
- package/dist/hooks/use-coagent-state-render.mjs +2 -2
- package/dist/hooks/use-coagent.js +42 -26
- package/dist/hooks/use-coagent.js.map +1 -1
- package/dist/hooks/use-coagent.mjs +7 -5
- package/dist/hooks/use-copilot-action.js +0 -2
- package/dist/hooks/use-copilot-action.js.map +1 -1
- package/dist/hooks/use-copilot-action.mjs +2 -2
- package/dist/hooks/use-copilot-chat.js +32 -16
- package/dist/hooks/use-copilot-chat.js.map +1 -1
- package/dist/hooks/use-copilot-chat.mjs +6 -3
- package/dist/hooks/use-copilot-readable.js +0 -2
- package/dist/hooks/use-copilot-readable.js.map +1 -1
- package/dist/hooks/use-copilot-readable.mjs +2 -2
- package/dist/hooks/use-make-copilot-document-readable.js +0 -2
- package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
- package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +136 -89
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +25 -18
- package/dist/lib/copilot-task.d.ts +0 -1
- package/dist/lib/copilot-task.js.map +1 -1
- package/dist/lib/copilot-task.mjs +5 -3
- package/dist/lib/index.d.ts +0 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +5 -3
- package/dist/utils/extract.d.ts +2 -1
- package/dist/utils/extract.js.map +1 -1
- package/dist/utils/extract.mjs +5 -3
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +5 -3
- package/package.json +5 -5
- package/setup.jest.ts +19 -0
- package/src/components/copilot-provider/copilot-messages.tsx +23 -0
- package/src/components/copilot-provider/copilotkit.tsx +36 -30
- package/src/context/copilot-context.tsx +0 -8
- package/src/context/copilot-messages-context.tsx +29 -0
- package/src/context/index.ts +2 -0
- package/src/hooks/use-coagent.ts +10 -3
- package/src/hooks/use-copilot-chat.ts +2 -2
- package/src/utils/extract.ts +2 -2
- package/dist/chunk-2Y3VMFJN.mjs.map +0 -1
- package/dist/chunk-4AF3YGMC.mjs.map +0 -1
- package/dist/chunk-IAS5FL4D.mjs.map +0 -1
- package/dist/chunk-KK42A2OC.mjs.map +0 -1
- package/dist/chunk-VNRDQJXW.mjs +0 -1
- package/dist/chunk-VZ66ENV7.mjs.map +0 -1
- /package/dist/{chunk-3CU2I4W2.mjs.map → chunk-2J3X7XCA.mjs.map} +0 -0
- /package/dist/{chunk-NTNOUYBQ.mjs.map → chunk-ANOG3W5S.mjs.map} +0 -0
- /package/dist/{chunk-ACK2DHWA.mjs.map → chunk-CQ23Q555.mjs.map} +0 -0
- /package/dist/{chunk-UJWNB2I6.mjs.map → chunk-RYDEG77L.mjs.map} +0 -0
- /package/dist/{chunk-QUCTZQ6X.mjs.map → chunk-TRXKPXDE.mjs.map} +0 -0
- /package/dist/{chunk-VNRDQJXW.mjs.map → chunk-YPSGKPDA.mjs.map} +0 -0
package/dist/context/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { CoagentInChatRenderFunction, CopilotApiConfig, CopilotContext, CopilotContextParams, useCopilotContext } from './copilot-context.js';
|
|
2
|
+
export { CopilotMessagesContext, CopilotMessagesContextParams, useCopilotMessagesContext } from './copilot-messages-context.js';
|
|
2
3
|
import '@copilotkit/shared';
|
|
3
|
-
import '@copilotkit/runtime-client-gql';
|
|
4
4
|
import '../types/frontend-action.js';
|
|
5
5
|
import 'react';
|
|
6
6
|
import '../hooks/use-tree.js';
|
|
@@ -8,3 +8,4 @@ import '../types/document-pointer.js';
|
|
|
8
8
|
import '../types/chat-suggestion-configuration.js';
|
|
9
9
|
import '../types/coagent-action.js';
|
|
10
10
|
import '../types/coagent-state.js';
|
|
11
|
+
import '@copilotkit/runtime-client-gql';
|
package/dist/context/index.js
CHANGED
|
@@ -51,7 +51,9 @@ var __async = (__this, __arguments, generator) => {
|
|
|
51
51
|
var context_exports = {};
|
|
52
52
|
__export(context_exports, {
|
|
53
53
|
CopilotContext: () => CopilotContext,
|
|
54
|
-
|
|
54
|
+
CopilotMessagesContext: () => CopilotMessagesContext,
|
|
55
|
+
useCopilotContext: () => useCopilotContext,
|
|
56
|
+
useCopilotMessagesContext: () => useCopilotMessagesContext
|
|
55
57
|
});
|
|
56
58
|
module.exports = __toCommonJS(context_exports);
|
|
57
59
|
|
|
@@ -75,8 +77,6 @@ var emptyCopilotContext = {
|
|
|
75
77
|
},
|
|
76
78
|
getFunctionCallHandler: () => returnAndThrowInDebug(() => __async(void 0, null, function* () {
|
|
77
79
|
})),
|
|
78
|
-
messages: [],
|
|
79
|
-
setMessages: () => returnAndThrowInDebug([]),
|
|
80
80
|
isLoading: false,
|
|
81
81
|
setIsLoading: () => returnAndThrowInDebug(false),
|
|
82
82
|
chatInstructions: "",
|
|
@@ -121,9 +121,28 @@ function returnAndThrowInDebug(value) {
|
|
|
121
121
|
throw new Error("Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!");
|
|
122
122
|
return value;
|
|
123
123
|
}
|
|
124
|
+
|
|
125
|
+
// src/context/copilot-messages-context.tsx
|
|
126
|
+
var import_react2 = __toESM(require("react"));
|
|
127
|
+
var emptyCopilotContext2 = {
|
|
128
|
+
messages: [],
|
|
129
|
+
setMessages: () => []
|
|
130
|
+
};
|
|
131
|
+
var CopilotMessagesContext = import_react2.default.createContext(emptyCopilotContext2);
|
|
132
|
+
function useCopilotMessagesContext() {
|
|
133
|
+
const context = import_react2.default.useContext(CopilotMessagesContext);
|
|
134
|
+
if (context === emptyCopilotContext2) {
|
|
135
|
+
throw new Error(
|
|
136
|
+
"A messages consuming component was not wrapped with `<CopilotMessages> {...} </CopilotMessages>`"
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
return context;
|
|
140
|
+
}
|
|
124
141
|
// Annotate the CommonJS export names for ESM import in node:
|
|
125
142
|
0 && (module.exports = {
|
|
126
143
|
CopilotContext,
|
|
127
|
-
|
|
144
|
+
CopilotMessagesContext,
|
|
145
|
+
useCopilotContext,
|
|
146
|
+
useCopilotMessagesContext
|
|
128
147
|
});
|
|
129
148
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/context/index.ts","../../src/context/copilot-context.tsx"],"sourcesContent":["export { CopilotContext, useCopilotContext } from \"./copilot-context\";\nexport type {\n CopilotContextParams,\n CoagentInChatRenderFunction,\n CopilotApiConfig,\n} from \"./copilot-context\";\
|
|
1
|
+
{"version":3,"sources":["../../src/context/index.ts","../../src/context/copilot-context.tsx","../../src/context/copilot-messages-context.tsx"],"sourcesContent":["export { CopilotContext, useCopilotContext } from \"./copilot-context\";\nexport { CopilotMessagesContext, useCopilotMessagesContext } from \"./copilot-messages-context\";\nexport type {\n CopilotContextParams,\n CoagentInChatRenderFunction,\n CopilotApiConfig,\n} from \"./copilot-context\";\nexport type { CopilotMessagesContextParams } from \"./copilot-messages-context\";\n","import { CopilotCloudConfig, FunctionCallHandler } from \"@copilotkit/shared\";\nimport { ActionRenderProps, FrontendAction } from \"../types/frontend-action\";\nimport React from \"react\";\nimport { TreeNodeId } from \"../hooks/use-tree\";\nimport { DocumentPointer } from \"../types\";\nimport { CopilotChatSuggestionConfiguration } from \"../types/chat-suggestion-configuration\";\nimport { CoAgentStateRender, CoAgentStateRenderProps } from \"../types/coagent-action\";\nimport { CoagentState } from \"../types/coagent-state\";\n\n/**\n * Interface for the configuration of the Copilot API.\n */\nexport interface CopilotApiConfig {\n /**\n * The public API key for Copilot Cloud.\n */\n publicApiKey?: string;\n\n /**\n * The configuration for Copilot Cloud.\n */\n cloud?: CopilotCloudConfig;\n\n /**\n * The endpoint for the chat API.\n */\n chatApiEndpoint: string;\n\n /**\n * The endpoint for the Copilot transcribe audio service.\n */\n transcribeAudioUrl?: string;\n\n /**\n * The endpoint for the Copilot text to speech service.\n */\n textToSpeechUrl?: string;\n\n /**\n * additional headers to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'Authorization': 'Bearer your_token_here'\n * }\n * ```\n */\n headers: Record<string, string>;\n\n /**\n * Custom properties to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'user_id': 'user_id'\n * }\n * ```\n */\n properties?: Record<string, any>;\n\n /**\n * Indicates whether the user agent should send or receive cookies from the other domain\n * in the case of cross-origin requests.\n */\n credentials?: RequestCredentials;\n}\n\nexport type InChatRenderFunction = (props: ActionRenderProps<any>) => string | JSX.Element;\nexport type CoagentInChatRenderFunction = (\n props: CoAgentStateRenderProps<any>,\n) => string | JSX.Element | undefined | null;\n\nexport interface ChatComponentsCache {\n actions: Record<string, InChatRenderFunction | string>;\n coAgentStateRenders: Record<string, CoagentInChatRenderFunction | string>;\n}\n\nexport interface AgentSession {\n agentName: string;\n threadId?: string;\n nodeName?: string;\n}\n\nexport interface CopilotContextParams {\n // function-calling\n actions: Record<string, FrontendAction<any>>;\n setAction: (id: string, action: FrontendAction<any>) => void;\n removeAction: (id: string) => void;\n\n // coagent actions\n coAgentStateRenders: Record<string, CoAgentStateRender<any>>;\n setCoAgentStateRender: (id: string, stateRender: CoAgentStateRender<any>) => void;\n removeCoAgentStateRender: (id: string) => void;\n\n chatComponentsCache: React.RefObject<ChatComponentsCache>;\n\n getFunctionCallHandler: (\n customEntryPoints?: Record<string, FrontendAction<any>>,\n ) => FunctionCallHandler;\n\n // text context\n addContext: (context: string, parentId?: string, categories?: string[]) => TreeNodeId;\n removeContext: (id: TreeNodeId) => void;\n getContextString: (documents: DocumentPointer[], categories: string[]) => string;\n\n // document context\n addDocumentContext: (documentPointer: DocumentPointer, categories?: string[]) => TreeNodeId;\n removeDocumentContext: (documentId: string) => void;\n getDocumentsContext: (categories: string[]) => DocumentPointer[];\n\n isLoading: boolean;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\n chatSuggestionConfiguration: { [key: string]: CopilotChatSuggestionConfiguration };\n addChatSuggestionConfiguration: (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => void;\n removeChatSuggestionConfiguration: (id: string) => void;\n\n chatInstructions: string;\n setChatInstructions: React.Dispatch<React.SetStateAction<string>>;\n\n // api endpoints\n copilotApiConfig: CopilotApiConfig;\n\n showDevConsole: boolean | \"auto\";\n\n // agents\n coagentStates: Record<string, CoagentState>;\n setCoagentStates: React.Dispatch<React.SetStateAction<Record<string, CoagentState>>>;\n agentSession: AgentSession | null;\n setAgentSession: React.Dispatch<React.SetStateAction<AgentSession | null>>;\n}\n\nconst emptyCopilotContext: CopilotContextParams = {\n actions: {},\n setAction: () => {},\n removeAction: () => {},\n\n coAgentStateRenders: {},\n setCoAgentStateRender: () => {},\n removeCoAgentStateRender: () => {},\n\n chatComponentsCache: { current: { actions: {}, coAgentStateRenders: {} } },\n getContextString: (documents: DocumentPointer[], categories: string[]) =>\n returnAndThrowInDebug(\"\"),\n addContext: () => \"\",\n removeContext: () => {},\n\n getFunctionCallHandler: () => returnAndThrowInDebug(async () => {}),\n\n isLoading: false,\n setIsLoading: () => returnAndThrowInDebug(false),\n\n chatInstructions: \"\",\n setChatInstructions: () => returnAndThrowInDebug(\"\"),\n\n getDocumentsContext: (categories: string[]) => returnAndThrowInDebug([]),\n addDocumentContext: () => returnAndThrowInDebug(\"\"),\n removeDocumentContext: () => {},\n\n copilotApiConfig: new (class implements CopilotApiConfig {\n get chatApiEndpoint(): string {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n\n get headers(): Record<string, string> {\n return {};\n }\n get body(): Record<string, any> {\n return {};\n }\n })(),\n\n chatSuggestionConfiguration: {},\n addChatSuggestionConfiguration: () => {},\n removeChatSuggestionConfiguration: () => {},\n showDevConsole: \"auto\",\n coagentStates: {},\n setCoagentStates: () => {},\n\n agentSession: null,\n setAgentSession: () => {},\n};\n\nexport const CopilotContext = React.createContext<CopilotContextParams>(emptyCopilotContext);\n\nexport function useCopilotContext(): CopilotContextParams {\n const context = React.useContext(CopilotContext);\n if (context === emptyCopilotContext) {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n return context;\n}\n\nfunction returnAndThrowInDebug<T>(value: T): T {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n return value;\n}\n","/**\n * An internal context to separate the messages state (which is constantly changing) from the rest of CopilotKit context\n */\n\nimport { Message } from \"@copilotkit/runtime-client-gql\";\nimport React from \"react\";\n\nexport interface CopilotMessagesContextParams {\n messages: Message[];\n setMessages: React.Dispatch<React.SetStateAction<Message[]>>;\n}\n\nconst emptyCopilotContext: CopilotMessagesContextParams = {\n messages: [],\n setMessages: () => [],\n};\n\nexport const CopilotMessagesContext =\n React.createContext<CopilotMessagesContextParams>(emptyCopilotContext);\n\nexport function useCopilotMessagesContext(): CopilotMessagesContextParams {\n const context = React.useContext(CopilotMessagesContext);\n if (context === emptyCopilotContext) {\n throw new Error(\n \"A messages consuming component was not wrapped with `<CopilotMessages> {...} </CopilotMessages>`\",\n );\n }\n return context;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,mBAAkB;AAuIlB,IAAM,sBAA4C;AAAA,EAChD,SAAS,CAAC;AAAA,EACV,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA,EAErB,qBAAqB,CAAC;AAAA,EACtB,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAC9B,0BAA0B,MAAM;AAAA,EAAC;AAAA,EAEjC,qBAAqB,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,qBAAqB,CAAC,EAAE,EAAE;AAAA,EACzE,kBAAkB,CAAC,WAA8B,eAC/C,sBAAsB,EAAE;AAAA,EAC1B,YAAY,MAAM;AAAA,EAClB,eAAe,MAAM;AAAA,EAAC;AAAA,EAEtB,wBAAwB,MAAM,sBAAsB,MAAY;AAAA,EAAC,EAAC;AAAA,EAElE,WAAW;AAAA,EACX,cAAc,MAAM,sBAAsB,KAAK;AAAA,EAE/C,kBAAkB;AAAA,EAClB,qBAAqB,MAAM,sBAAsB,EAAE;AAAA,EAEnD,qBAAqB,CAAC,eAAyB,sBAAsB,CAAC,CAAC;AAAA,EACvE,oBAAoB,MAAM,sBAAsB,EAAE;AAAA,EAClD,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAE9B,kBAAkB,IAAK,MAAkC;AAAA,IACvD,IAAI,kBAA0B;AAC5B,YAAM,IAAI,MAAM,uEAAuE;AAAA,IACzF;AAAA,IAEA,IAAI,UAAkC;AACpC,aAAO,CAAC;AAAA,IACV;AAAA,IACA,IAAI,OAA4B;AAC9B,aAAO,CAAC;AAAA,IACV;AAAA,EACF,EAAG;AAAA,EAEH,6BAA6B,CAAC;AAAA,EAC9B,gCAAgC,MAAM;AAAA,EAAC;AAAA,EACvC,mCAAmC,MAAM;AAAA,EAAC;AAAA,EAC1C,gBAAgB;AAAA,EAChB,eAAe,CAAC;AAAA,EAChB,kBAAkB,MAAM;AAAA,EAAC;AAAA,EAEzB,cAAc;AAAA,EACd,iBAAiB,MAAM;AAAA,EAAC;AAC1B;AAEO,IAAM,iBAAiB,aAAAA,QAAM,cAAoC,mBAAmB;AAEpF,SAAS,oBAA0C;AACxD,QAAM,UAAU,aAAAA,QAAM,WAAW,cAAc;AAC/C,MAAI,YAAY,qBAAqB;AACnC,UAAM,IAAI,MAAM,uEAAuE;AAAA,EACzF;AACA,SAAO;AACT;AAEA,SAAS,sBAAyB,OAAa;AAC7C,QAAM,IAAI,MAAM,uEAAuE;AACvF,SAAO;AACT;;;ACpMA,IAAAC,gBAAkB;AAOlB,IAAMC,uBAAoD;AAAA,EACxD,UAAU,CAAC;AAAA,EACX,aAAa,MAAM,CAAC;AACtB;AAEO,IAAM,yBACX,cAAAC,QAAM,cAA4CD,oBAAmB;AAEhE,SAAS,4BAA0D;AACxE,QAAM,UAAU,cAAAC,QAAM,WAAW,sBAAsB;AACvD,MAAI,YAAYD,sBAAqB;AACnC,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":["React","import_react","emptyCopilotContext","React"]}
|
package/dist/context/index.mjs
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-YPSGKPDA.mjs";
|
|
2
|
+
import {
|
|
3
|
+
CopilotMessagesContext,
|
|
4
|
+
useCopilotMessagesContext
|
|
5
|
+
} from "../chunk-DCTJZ742.mjs";
|
|
2
6
|
import {
|
|
3
7
|
CopilotContext,
|
|
4
8
|
useCopilotContext
|
|
5
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-2MPUQRAY.mjs";
|
|
6
10
|
import "../chunk-SKC7AJIV.mjs";
|
|
7
11
|
export {
|
|
8
12
|
CopilotContext,
|
|
9
|
-
|
|
13
|
+
CopilotMessagesContext,
|
|
14
|
+
useCopilotContext,
|
|
15
|
+
useCopilotMessagesContext
|
|
10
16
|
};
|
|
11
17
|
//# sourceMappingURL=index.mjs.map
|
package/dist/hooks/index.js
CHANGED
|
@@ -89,7 +89,7 @@ __export(hooks_exports, {
|
|
|
89
89
|
module.exports = __toCommonJS(hooks_exports);
|
|
90
90
|
|
|
91
91
|
// src/hooks/use-copilot-chat.ts
|
|
92
|
-
var
|
|
92
|
+
var import_react5 = require("react");
|
|
93
93
|
|
|
94
94
|
// src/context/copilot-context.tsx
|
|
95
95
|
var import_react = __toESM(require("react"));
|
|
@@ -111,8 +111,6 @@ var emptyCopilotContext = {
|
|
|
111
111
|
},
|
|
112
112
|
getFunctionCallHandler: () => returnAndThrowInDebug(() => __async(void 0, null, function* () {
|
|
113
113
|
})),
|
|
114
|
-
messages: [],
|
|
115
|
-
setMessages: () => returnAndThrowInDebug([]),
|
|
116
114
|
isLoading: false,
|
|
117
115
|
setIsLoading: () => returnAndThrowInDebug(false),
|
|
118
116
|
chatInstructions: "",
|
|
@@ -405,9 +403,28 @@ function useChat(options) {
|
|
|
405
403
|
}
|
|
406
404
|
|
|
407
405
|
// src/components/copilot-provider/copilotkit.tsx
|
|
408
|
-
var
|
|
406
|
+
var import_react4 = require("react");
|
|
409
407
|
var import_react_dom = require("react-dom");
|
|
410
408
|
var import_shared2 = require("@copilotkit/shared");
|
|
409
|
+
|
|
410
|
+
// src/context/copilot-messages-context.tsx
|
|
411
|
+
var import_react3 = __toESM(require("react"));
|
|
412
|
+
var emptyCopilotContext2 = {
|
|
413
|
+
messages: [],
|
|
414
|
+
setMessages: () => []
|
|
415
|
+
};
|
|
416
|
+
var CopilotMessagesContext = import_react3.default.createContext(emptyCopilotContext2);
|
|
417
|
+
function useCopilotMessagesContext() {
|
|
418
|
+
const context = import_react3.default.useContext(CopilotMessagesContext);
|
|
419
|
+
if (context === emptyCopilotContext2) {
|
|
420
|
+
throw new Error(
|
|
421
|
+
"A messages consuming component was not wrapped with `<CopilotMessages> {...} </CopilotMessages>`"
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
return context;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
// src/components/copilot-provider/copilotkit.tsx
|
|
411
428
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
412
429
|
var defaultCopilotContextCategories = ["global"];
|
|
413
430
|
|
|
@@ -422,8 +439,6 @@ function useCopilotChat(_a = {}) {
|
|
|
422
439
|
getContextString,
|
|
423
440
|
getFunctionCallHandler,
|
|
424
441
|
copilotApiConfig,
|
|
425
|
-
messages,
|
|
426
|
-
setMessages,
|
|
427
442
|
isLoading,
|
|
428
443
|
setIsLoading,
|
|
429
444
|
chatInstructions,
|
|
@@ -434,14 +449,15 @@ function useCopilotChat(_a = {}) {
|
|
|
434
449
|
agentSession,
|
|
435
450
|
setAgentSession
|
|
436
451
|
} = useCopilotContext();
|
|
452
|
+
const { messages, setMessages } = useCopilotMessagesContext();
|
|
437
453
|
const latestGetContextString = useUpdatedRef(getContextString);
|
|
438
|
-
const deleteMessage = (0,
|
|
454
|
+
const deleteMessage = (0, import_react5.useCallback)(
|
|
439
455
|
(messageId) => {
|
|
440
456
|
setMessages((prev) => prev.filter((message) => message.id !== messageId));
|
|
441
457
|
},
|
|
442
458
|
[setMessages]
|
|
443
459
|
);
|
|
444
|
-
const makeSystemMessageCallback = (0,
|
|
460
|
+
const makeSystemMessageCallback = (0, import_react5.useCallback)(() => {
|
|
445
461
|
const systemMessageMaker = makeSystemMessage || defaultSystemMessage;
|
|
446
462
|
const contextString = latestGetContextString.current([], defaultCopilotContextCategories);
|
|
447
463
|
return new import_runtime_client_gql2.TextMessage({
|
|
@@ -449,7 +465,7 @@ function useCopilotChat(_a = {}) {
|
|
|
449
465
|
role: import_runtime_client_gql2.Role.System
|
|
450
466
|
});
|
|
451
467
|
}, [getContextString, makeSystemMessage, chatInstructions]);
|
|
452
|
-
const onCoAgentStateRender = (0,
|
|
468
|
+
const onCoAgentStateRender = (0, import_react5.useCallback)(
|
|
453
469
|
(args) => __async(this, null, function* () {
|
|
454
470
|
var _a2;
|
|
455
471
|
const { name, nodeName, state } = args;
|
|
@@ -484,29 +500,29 @@ function useCopilotChat(_a = {}) {
|
|
|
484
500
|
setAgentSession
|
|
485
501
|
}));
|
|
486
502
|
const latestAppend = useUpdatedRef(append);
|
|
487
|
-
const latestAppendFunc = (0,
|
|
503
|
+
const latestAppendFunc = (0, import_react5.useCallback)(
|
|
488
504
|
(message) => {
|
|
489
505
|
return latestAppend.current(message);
|
|
490
506
|
},
|
|
491
507
|
[latestAppend]
|
|
492
508
|
);
|
|
493
509
|
const latestReload = useUpdatedRef(reload);
|
|
494
|
-
const latestReloadFunc = (0,
|
|
510
|
+
const latestReloadFunc = (0, import_react5.useCallback)(() => {
|
|
495
511
|
return latestReload.current();
|
|
496
512
|
}, [latestReload]);
|
|
497
513
|
const latestStop = useUpdatedRef(stop);
|
|
498
|
-
const latestStopFunc = (0,
|
|
514
|
+
const latestStopFunc = (0, import_react5.useCallback)(() => {
|
|
499
515
|
return latestStop.current();
|
|
500
516
|
}, [latestStop]);
|
|
501
517
|
const latestDelete = useUpdatedRef(deleteMessage);
|
|
502
|
-
const latestDeleteFunc = (0,
|
|
518
|
+
const latestDeleteFunc = (0, import_react5.useCallback)(
|
|
503
519
|
(messageId) => {
|
|
504
520
|
return latestDelete.current(messageId);
|
|
505
521
|
},
|
|
506
522
|
[latestDelete]
|
|
507
523
|
);
|
|
508
524
|
const latestSetMessages = useUpdatedRef(setMessages);
|
|
509
|
-
const latestSetMessagesFunc = (0,
|
|
525
|
+
const latestSetMessagesFunc = (0, import_react5.useCallback)(
|
|
510
526
|
(messages2) => {
|
|
511
527
|
return latestSetMessages.current(messages2);
|
|
512
528
|
},
|
|
@@ -523,8 +539,8 @@ function useCopilotChat(_a = {}) {
|
|
|
523
539
|
};
|
|
524
540
|
}
|
|
525
541
|
function useUpdatedRef(value) {
|
|
526
|
-
const ref = (0,
|
|
527
|
-
(0,
|
|
542
|
+
const ref = (0, import_react5.useRef)(value);
|
|
543
|
+
(0, import_react5.useEffect)(() => {
|
|
528
544
|
ref.current = value;
|
|
529
545
|
}, [value]);
|
|
530
546
|
return ref;
|
|
@@ -554,12 +570,12 @@ ${additionalInstructions}` : "");
|
|
|
554
570
|
}
|
|
555
571
|
|
|
556
572
|
// src/hooks/use-copilot-action.ts
|
|
557
|
-
var
|
|
573
|
+
var import_react6 = require("react");
|
|
558
574
|
var import_shared3 = require("@copilotkit/shared");
|
|
559
575
|
function useCopilotAction(action, dependencies) {
|
|
560
576
|
const { setAction, removeAction, actions, chatComponentsCache } = useCopilotContext();
|
|
561
|
-
const idRef = (0,
|
|
562
|
-
const renderAndWaitRef = (0,
|
|
577
|
+
const idRef = (0, import_react6.useRef)((0, import_shared3.randomId)());
|
|
578
|
+
const renderAndWaitRef = (0, import_react6.useRef)(null);
|
|
563
579
|
action = __spreadValues({}, action);
|
|
564
580
|
if (action.renderAndWait) {
|
|
565
581
|
const renderAndWait = action.renderAndWait;
|
|
@@ -594,7 +610,7 @@ function useCopilotAction(action, dependencies) {
|
|
|
594
610
|
}
|
|
595
611
|
}
|
|
596
612
|
}
|
|
597
|
-
(0,
|
|
613
|
+
(0, import_react6.useEffect)(() => {
|
|
598
614
|
setAction(idRef.current, action);
|
|
599
615
|
if (chatComponentsCache.current !== null && action.render !== void 0) {
|
|
600
616
|
chatComponentsCache.current.actions[action.name] = action.render;
|
|
@@ -619,7 +635,7 @@ function useCopilotAction(action, dependencies) {
|
|
|
619
635
|
}
|
|
620
636
|
|
|
621
637
|
// src/hooks/use-coagent-state-render.ts
|
|
622
|
-
var
|
|
638
|
+
var import_react7 = require("react");
|
|
623
639
|
var import_shared4 = require("@copilotkit/shared");
|
|
624
640
|
function useCoAgentStateRender(action, dependencies) {
|
|
625
641
|
const {
|
|
@@ -627,8 +643,8 @@ function useCoAgentStateRender(action, dependencies) {
|
|
|
627
643
|
removeCoAgentStateRender,
|
|
628
644
|
coAgentStateRenders,
|
|
629
645
|
chatComponentsCache
|
|
630
|
-
} = (0,
|
|
631
|
-
const idRef = (0,
|
|
646
|
+
} = (0, import_react7.useContext)(CopilotContext);
|
|
647
|
+
const idRef = (0, import_react7.useRef)((0, import_shared4.randomId)());
|
|
632
648
|
const key = `${action.name}-${action.nodeName || "global"}`;
|
|
633
649
|
if (dependencies === void 0) {
|
|
634
650
|
if (coAgentStateRenders[idRef.current]) {
|
|
@@ -640,7 +656,7 @@ function useCoAgentStateRender(action, dependencies) {
|
|
|
640
656
|
}
|
|
641
657
|
}
|
|
642
658
|
}
|
|
643
|
-
(0,
|
|
659
|
+
(0, import_react7.useEffect)(() => {
|
|
644
660
|
setCoAgentStateRender(idRef.current, action);
|
|
645
661
|
if (chatComponentsCache.current !== null && action.render !== void 0) {
|
|
646
662
|
chatComponentsCache.current.coAgentStateRenders[key] = action.render;
|
|
@@ -660,11 +676,11 @@ function useCoAgentStateRender(action, dependencies) {
|
|
|
660
676
|
}
|
|
661
677
|
|
|
662
678
|
// src/hooks/use-make-copilot-document-readable.ts
|
|
663
|
-
var
|
|
679
|
+
var import_react8 = require("react");
|
|
664
680
|
function useMakeCopilotDocumentReadable(document, categories, dependencies = []) {
|
|
665
681
|
const { addDocumentContext, removeDocumentContext } = useCopilotContext();
|
|
666
|
-
const idRef = (0,
|
|
667
|
-
(0,
|
|
682
|
+
const idRef = (0, import_react8.useRef)();
|
|
683
|
+
(0, import_react8.useEffect)(() => {
|
|
668
684
|
const id = addDocumentContext(document, categories);
|
|
669
685
|
idRef.current = id;
|
|
670
686
|
return () => {
|
|
@@ -675,16 +691,16 @@ function useMakeCopilotDocumentReadable(document, categories, dependencies = [])
|
|
|
675
691
|
}
|
|
676
692
|
|
|
677
693
|
// src/hooks/use-copilot-readable.ts
|
|
678
|
-
var
|
|
694
|
+
var import_react9 = require("react");
|
|
679
695
|
function convertToJSON(description, value) {
|
|
680
696
|
return `${description}: ${typeof value === "string" ? value : JSON.stringify(value)}`;
|
|
681
697
|
}
|
|
682
698
|
function useCopilotReadable({ description, value, parentId, categories, convert }, dependencies) {
|
|
683
699
|
const { addContext, removeContext } = useCopilotContext();
|
|
684
|
-
const idRef = (0,
|
|
700
|
+
const idRef = (0, import_react9.useRef)();
|
|
685
701
|
convert = convert || convertToJSON;
|
|
686
702
|
const information = convert(description, value);
|
|
687
|
-
(0,
|
|
703
|
+
(0, import_react9.useEffect)(() => {
|
|
688
704
|
const id = addContext(information, parentId, categories);
|
|
689
705
|
idRef.current = id;
|
|
690
706
|
return () => {
|
|
@@ -695,7 +711,7 @@ function useCopilotReadable({ description, value, parentId, categories, convert
|
|
|
695
711
|
}
|
|
696
712
|
|
|
697
713
|
// src/hooks/use-coagent.ts
|
|
698
|
-
var
|
|
714
|
+
var import_react10 = require("react");
|
|
699
715
|
var import_runtime_client_gql3 = require("@copilotkit/runtime-client-gql");
|
|
700
716
|
function useCoAgent(options) {
|
|
701
717
|
const isExternalStateManagement = (options2) => {
|
|
@@ -705,7 +721,9 @@ function useCoAgent(options) {
|
|
|
705
721
|
const isInternalStateManagementWithInitial = (options2) => {
|
|
706
722
|
return "initialState" in options2;
|
|
707
723
|
};
|
|
708
|
-
const
|
|
724
|
+
const generalContext = useCopilotContext();
|
|
725
|
+
const messagesContext = useCopilotMessagesContext();
|
|
726
|
+
const context = __spreadValues(__spreadValues({}, generalContext), messagesContext);
|
|
709
727
|
const { coagentStates, setCoagentStates } = context;
|
|
710
728
|
const { appendMessage } = useCopilotChat();
|
|
711
729
|
const getCoagentState = (coagentStates2, name2) => {
|
|
@@ -736,7 +754,7 @@ function useCoAgent(options) {
|
|
|
736
754
|
};
|
|
737
755
|
const coagentState = getCoagentState(coagentStates, name);
|
|
738
756
|
const state = isExternalStateManagement(options) ? options.state : coagentState.state;
|
|
739
|
-
(0,
|
|
757
|
+
(0, import_react10.useEffect)(() => {
|
|
740
758
|
if (isExternalStateManagement(options)) {
|
|
741
759
|
setState(options.state);
|
|
742
760
|
} else if (coagentStates[name] === void 0) {
|