@copilotkit/react-core 1.6.0-next.1 → 1.6.0-next.11
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 +77 -0
- package/dist/{chunk-XERJQUHA.mjs → chunk-4CEQJ2X6.mjs} +2 -2
- package/dist/{chunk-XERJQUHA.mjs.map → chunk-4CEQJ2X6.mjs.map} +1 -1
- package/dist/{chunk-VMYLY5KI.mjs → chunk-4EC4JK7H.mjs} +58 -48
- package/dist/chunk-4EC4JK7H.mjs.map +1 -0
- package/dist/{chunk-ZAU4EMBM.mjs → chunk-F7O6L7C3.mjs} +4 -5
- package/dist/chunk-F7O6L7C3.mjs.map +1 -0
- package/dist/{chunk-2DPTBHGN.mjs → chunk-FUO5LKSJ.mjs} +115 -63
- package/dist/chunk-FUO5LKSJ.mjs.map +1 -0
- package/dist/{chunk-4ED56DQX.mjs → chunk-HBCP2KNA.mjs} +3 -4
- package/dist/chunk-HBCP2KNA.mjs.map +1 -0
- package/dist/{chunk-Z3U4UBG2.mjs → chunk-T4CAQC6B.mjs} +2 -2
- package/dist/{chunk-JFCNSGNU.mjs → chunk-Y2T56VSE.mjs} +2 -2
- package/dist/components/copilot-provider/copilotkit-props.d.ts +1 -2
- package/dist/components/copilot-provider/copilotkit.d.ts +1 -2
- package/dist/components/copilot-provider/index.d.ts +1 -2
- package/dist/components/index.d.ts +1 -2
- package/dist/context/copilot-context.d.ts +10 -148
- package/dist/context/index.d.ts +1 -2
- package/dist/copilot-context-9ae8990b.d.ts +183 -0
- package/dist/hooks/index.d.ts +1 -2
- package/dist/hooks/index.js +180 -123
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +6 -6
- package/dist/hooks/use-chat.d.ts +1 -2
- package/dist/hooks/use-chat.js +113 -64
- package/dist/hooks/use-chat.js.map +1 -1
- package/dist/hooks/use-chat.mjs +2 -2
- package/dist/hooks/use-coagent.d.ts +1 -2
- package/dist/hooks/use-coagent.js +171 -112
- package/dist/hooks/use-coagent.js.map +1 -1
- package/dist/hooks/use-coagent.mjs +4 -4
- package/dist/hooks/use-copilot-chat.d.ts +1 -2
- package/dist/hooks/use-copilot-chat.js +116 -67
- package/dist/hooks/use-copilot-chat.js.map +1 -1
- package/dist/hooks/use-copilot-chat.mjs +3 -3
- package/dist/hooks/use-langgraph-interrupt-render.js +3 -4
- package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
- package/dist/hooks/use-langgraph-interrupt-render.mjs +1 -1
- package/dist/hooks/use-langgraph-interrupt.d.ts +9 -2
- package/dist/hooks/use-langgraph-interrupt.js +117 -69
- package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
- package/dist/hooks/use-langgraph-interrupt.mjs +4 -4
- package/dist/index.d.ts +1 -2
- package/dist/index.js +187 -130
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -7
- package/dist/lib/copilot-task.d.ts +1 -2
- package/dist/lib/copilot-task.js +1 -1
- package/dist/lib/copilot-task.js.map +1 -1
- package/dist/lib/copilot-task.mjs +2 -2
- package/dist/lib/index.d.ts +1 -2
- package/dist/lib/index.js +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +2 -2
- package/dist/types/frontend-action.d.ts +2 -1
- package/dist/types/frontend-action.js +1 -1
- package/dist/types/frontend-action.js.map +1 -1
- package/dist/types/frontend-action.mjs +1 -1
- package/dist/types/interrupt-action.d.ts +10 -35
- package/dist/types/interrupt-action.js.map +1 -1
- package/dist/utils/extract.d.ts +1 -2
- package/dist/utils/index.d.ts +1 -2
- package/package.json +3 -3
- package/src/hooks/use-chat.ts +134 -61
- package/src/hooks/use-coagent.ts +70 -56
- package/src/hooks/use-langgraph-interrupt-render.ts +7 -3
- package/src/hooks/use-langgraph-interrupt.ts +1 -2
- package/src/types/frontend-action.ts +5 -2
- package/src/types/interrupt-action.ts +16 -12
- package/dist/chunk-2DPTBHGN.mjs.map +0 -1
- package/dist/chunk-4ED56DQX.mjs.map +0 -1
- package/dist/chunk-VMYLY5KI.mjs.map +0 -1
- package/dist/chunk-ZAU4EMBM.mjs.map +0 -1
- /package/dist/{chunk-Z3U4UBG2.mjs.map → chunk-T4CAQC6B.mjs.map} +0 -0
- /package/dist/{chunk-JFCNSGNU.mjs.map → chunk-Y2T56VSE.mjs.map} +0 -0
|
@@ -3,14 +3,13 @@ import { SystemMessageFunction } from '../types/system-message.js';
|
|
|
3
3
|
import { AppendMessageOptions } from './use-chat.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import '@copilotkit/shared';
|
|
6
|
-
import '../
|
|
6
|
+
import '../copilot-context-9ae8990b.js';
|
|
7
7
|
import '../types/frontend-action.js';
|
|
8
8
|
import './use-tree.js';
|
|
9
9
|
import '../types/document-pointer.js';
|
|
10
10
|
import '../types/chat-suggestion-configuration.js';
|
|
11
11
|
import '../types/coagent-action.js';
|
|
12
12
|
import '../types/coagent-state.js';
|
|
13
|
-
import '../types/interrupt-action.js';
|
|
14
13
|
|
|
15
14
|
interface UseCopilotChatOptions {
|
|
16
15
|
/**
|
|
@@ -170,7 +170,7 @@ function returnAndThrowInDebug(_value) {
|
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
// src/hooks/use-copilot-chat.ts
|
|
173
|
-
var
|
|
173
|
+
var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
|
|
174
174
|
|
|
175
175
|
// src/hooks/use-chat.ts
|
|
176
176
|
var import_react5 = require("react");
|
|
@@ -182,7 +182,7 @@ var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
|
|
|
182
182
|
var import_shared = require("@copilotkit/shared");
|
|
183
183
|
function processActionsForRuntimeRequest(actions) {
|
|
184
184
|
const filteredActions = actions.filter(
|
|
185
|
-
(action) => action.available !== import_runtime_client_gql.ActionInputAvailability.Disabled && action.disabled !== true && action.name !== "*"
|
|
185
|
+
(action) => action.available !== import_runtime_client_gql.ActionInputAvailability.Disabled && action.disabled !== true && action.name !== "*" && action.available != "frontend" && !action.pairedAction
|
|
186
186
|
).map((action) => {
|
|
187
187
|
let available = import_runtime_client_gql.ActionInputAvailability.Enabled;
|
|
188
188
|
if (action.disabled) {
|
|
@@ -359,7 +359,6 @@ var useCopilotRuntimeClient = (options) => {
|
|
|
359
359
|
};
|
|
360
360
|
|
|
361
361
|
// src/hooks/use-chat.ts
|
|
362
|
-
var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
|
|
363
362
|
function useChat(options) {
|
|
364
363
|
const {
|
|
365
364
|
messages,
|
|
@@ -408,7 +407,7 @@ function useChat(options) {
|
|
|
408
407
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
|
|
409
408
|
setIsLoading(true);
|
|
410
409
|
const interruptEvent = langGraphInterruptAction == null ? void 0 : langGraphInterruptAction.event;
|
|
411
|
-
if ((interruptEvent == null ? void 0 : interruptEvent.name) ===
|
|
410
|
+
if ((interruptEvent == null ? void 0 : interruptEvent.name) === import_runtime_client_gql3.MetaEventName.LangGraphInterruptEvent && (interruptEvent == null ? void 0 : interruptEvent.value) && !(interruptEvent == null ? void 0 : interruptEvent.response) && agentSessionRef.current) {
|
|
412
411
|
addErrorToast([
|
|
413
412
|
new Error(
|
|
414
413
|
"A message was sent while interrupt is active. This will cause failure on the agent side"
|
|
@@ -502,19 +501,16 @@ function useChat(options) {
|
|
|
502
501
|
setExtensions(extensionsRef.current);
|
|
503
502
|
let rawMessagesResponse = value.generateCopilotResponse.messages;
|
|
504
503
|
((_i = (_h = value.generateCopilotResponse) == null ? void 0 : _h.metaEvents) != null ? _i : []).forEach((ev) => {
|
|
505
|
-
if (ev.name ===
|
|
504
|
+
if (ev.name === import_runtime_client_gql3.MetaEventName.LangGraphInterruptEvent) {
|
|
506
505
|
let eventValue = (0, import_runtime_client_gql3.langGraphInterruptEvent)(ev).value;
|
|
507
|
-
|
|
508
|
-
eventValue = JSON.parse(eventValue);
|
|
509
|
-
} catch (e) {
|
|
510
|
-
}
|
|
506
|
+
eventValue = (0, import_shared2.parseJson)(eventValue, eventValue);
|
|
511
507
|
setLangGraphInterruptAction({
|
|
512
508
|
event: __spreadProps(__spreadValues({}, (0, import_runtime_client_gql3.langGraphInterruptEvent)(ev)), {
|
|
513
509
|
value: eventValue
|
|
514
510
|
})
|
|
515
511
|
});
|
|
516
512
|
}
|
|
517
|
-
if (ev.name ===
|
|
513
|
+
if (ev.name === import_runtime_client_gql3.MetaEventName.CopilotKitLangGraphInterruptEvent) {
|
|
518
514
|
const data = ev.data;
|
|
519
515
|
rawMessagesResponse = [...rawMessagesResponse, ...data.messages];
|
|
520
516
|
interruptMessages = (0, import_runtime_client_gql3.convertGqlOutputToMessages)(
|
|
@@ -595,7 +591,7 @@ function useChat(options) {
|
|
|
595
591
|
setMessages([...previousMessages, ...newMessages]);
|
|
596
592
|
}
|
|
597
593
|
}
|
|
598
|
-
|
|
594
|
+
let finalMessages = constructFinalMessages(
|
|
599
595
|
[...syncedMessages, ...interruptMessages],
|
|
600
596
|
previousMessages,
|
|
601
597
|
newMessages
|
|
@@ -605,7 +601,7 @@ function useChat(options) {
|
|
|
605
601
|
const lastMessages = [];
|
|
606
602
|
for (let i = finalMessages.length - 1; i >= 0; i--) {
|
|
607
603
|
const message = finalMessages[i];
|
|
608
|
-
if (message.isActionExecutionMessage() && message.status.code !== import_runtime_client_gql3.MessageStatusCode.Pending) {
|
|
604
|
+
if ((message.isActionExecutionMessage() || message.isResultMessage()) && message.status.code !== import_runtime_client_gql3.MessageStatusCode.Pending) {
|
|
609
605
|
lastMessages.unshift(message);
|
|
610
606
|
} else {
|
|
611
607
|
break;
|
|
@@ -613,59 +609,51 @@ function useChat(options) {
|
|
|
613
609
|
}
|
|
614
610
|
for (const message of lastMessages) {
|
|
615
611
|
setMessages(finalMessages);
|
|
616
|
-
const action = actions.find(
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
"abort",
|
|
633
|
-
() => resolve("Operation was aborted by the user")
|
|
634
|
-
);
|
|
635
|
-
}
|
|
636
|
-
),
|
|
637
|
-
// if the user stopped generation, we also abort consecutive actions
|
|
638
|
-
new Promise((resolve) => {
|
|
639
|
-
var _a2;
|
|
640
|
-
if ((_a2 = chatAbortControllerRef.current) == null ? void 0 : _a2.signal.aborted) {
|
|
641
|
-
resolve("Operation was aborted by the user");
|
|
642
|
-
}
|
|
643
|
-
})
|
|
644
|
-
]);
|
|
645
|
-
} catch (e) {
|
|
646
|
-
error = e;
|
|
647
|
-
addErrorToast([error]);
|
|
648
|
-
result = `Failed to execute action ${message.name}. ${error.message}`;
|
|
649
|
-
console.error(`Failed to execute action ${message.name}: ${error}`);
|
|
650
|
-
}
|
|
612
|
+
const action = actions.find(
|
|
613
|
+
(action2) => action2.name === message.name
|
|
614
|
+
);
|
|
615
|
+
const currentResultMessagePairedFeAction = message.isResultMessage() ? getPairedFeAction(actions, message) : null;
|
|
616
|
+
const executeActionFromMessage = (action2, message2) => __async(this, null, function* () {
|
|
617
|
+
followUp = action2 == null ? void 0 : action2.followUp;
|
|
618
|
+
const resultMessage = yield executeAction({
|
|
619
|
+
onFunctionCall,
|
|
620
|
+
previousMessages,
|
|
621
|
+
message: message2,
|
|
622
|
+
chatAbortControllerRef,
|
|
623
|
+
onError: (error) => {
|
|
624
|
+
addErrorToast([error]);
|
|
625
|
+
console.error(`Failed to execute action ${message2.name}: ${error}`);
|
|
626
|
+
}
|
|
627
|
+
});
|
|
651
628
|
didExecuteAction = true;
|
|
652
|
-
const messageIndex = finalMessages.findIndex((msg) => msg.id ===
|
|
653
|
-
finalMessages.splice(
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
629
|
+
const messageIndex = finalMessages.findIndex((msg) => msg.id === message2.id);
|
|
630
|
+
finalMessages.splice(messageIndex + 1, 0, resultMessage);
|
|
631
|
+
return resultMessage;
|
|
632
|
+
});
|
|
633
|
+
if (action && message.isActionExecutionMessage()) {
|
|
634
|
+
const resultMessage = yield executeActionFromMessage(action, message);
|
|
635
|
+
const pairedFeAction = getPairedFeAction(actions, resultMessage);
|
|
636
|
+
if (pairedFeAction) {
|
|
637
|
+
const newExecutionMessage = new import_runtime_client_gql3.ActionExecutionMessage({
|
|
638
|
+
name: pairedFeAction.name,
|
|
639
|
+
arguments: (0, import_shared2.parseJson)(resultMessage.result, resultMessage.result),
|
|
640
|
+
status: message.status,
|
|
641
|
+
createdAt: message.createdAt,
|
|
642
|
+
parentMessageId: message.parentMessageId
|
|
643
|
+
});
|
|
644
|
+
yield executeActionFromMessage(pairedFeAction, newExecutionMessage);
|
|
645
|
+
}
|
|
646
|
+
} else if (message.isResultMessage() && currentResultMessagePairedFeAction) {
|
|
647
|
+
const newExecutionMessage = new import_runtime_client_gql3.ActionExecutionMessage({
|
|
648
|
+
name: currentResultMessagePairedFeAction.name,
|
|
649
|
+
arguments: (0, import_shared2.parseJson)(message.result, message.result),
|
|
650
|
+
status: message.status,
|
|
651
|
+
createdAt: message.createdAt
|
|
652
|
+
});
|
|
653
|
+
finalMessages.push(newExecutionMessage);
|
|
654
|
+
yield executeActionFromMessage(
|
|
655
|
+
currentResultMessagePairedFeAction,
|
|
656
|
+
newExecutionMessage
|
|
669
657
|
);
|
|
670
658
|
}
|
|
671
659
|
}
|
|
@@ -736,7 +724,7 @@ function useChat(options) {
|
|
|
736
724
|
if (!event)
|
|
737
725
|
return acc;
|
|
738
726
|
switch (event.name) {
|
|
739
|
-
case
|
|
727
|
+
case import_runtime_client_gql3.MetaEventName.LangGraphInterruptEvent:
|
|
740
728
|
if (event.response) {
|
|
741
729
|
setLangGraphInterruptAction(null);
|
|
742
730
|
const value = event.value;
|
|
@@ -812,6 +800,67 @@ function constructFinalMessages(syncedMessages, previousMessages, newMessages) {
|
|
|
812
800
|
}
|
|
813
801
|
return finalMessages;
|
|
814
802
|
}
|
|
803
|
+
function executeAction(_0) {
|
|
804
|
+
return __async(this, arguments, function* ({
|
|
805
|
+
onFunctionCall,
|
|
806
|
+
previousMessages,
|
|
807
|
+
message,
|
|
808
|
+
chatAbortControllerRef,
|
|
809
|
+
onError
|
|
810
|
+
}) {
|
|
811
|
+
let result;
|
|
812
|
+
let error = null;
|
|
813
|
+
try {
|
|
814
|
+
result = yield Promise.race([
|
|
815
|
+
onFunctionCall({
|
|
816
|
+
messages: previousMessages,
|
|
817
|
+
name: message.name,
|
|
818
|
+
args: message.arguments
|
|
819
|
+
}),
|
|
820
|
+
new Promise(
|
|
821
|
+
(resolve) => {
|
|
822
|
+
var _a;
|
|
823
|
+
return (_a = chatAbortControllerRef.current) == null ? void 0 : _a.signal.addEventListener(
|
|
824
|
+
"abort",
|
|
825
|
+
() => resolve("Operation was aborted by the user")
|
|
826
|
+
);
|
|
827
|
+
}
|
|
828
|
+
),
|
|
829
|
+
// if the user stopped generation, we also abort consecutive actions
|
|
830
|
+
new Promise((resolve) => {
|
|
831
|
+
var _a;
|
|
832
|
+
if ((_a = chatAbortControllerRef.current) == null ? void 0 : _a.signal.aborted) {
|
|
833
|
+
resolve("Operation was aborted by the user");
|
|
834
|
+
}
|
|
835
|
+
})
|
|
836
|
+
]);
|
|
837
|
+
} catch (e) {
|
|
838
|
+
onError(e);
|
|
839
|
+
}
|
|
840
|
+
return new import_runtime_client_gql3.ResultMessage({
|
|
841
|
+
id: "result-" + message.id,
|
|
842
|
+
result: import_runtime_client_gql3.ResultMessage.encodeResult(
|
|
843
|
+
error ? {
|
|
844
|
+
content: result,
|
|
845
|
+
error: JSON.parse(JSON.stringify(error, Object.getOwnPropertyNames(error)))
|
|
846
|
+
} : result
|
|
847
|
+
),
|
|
848
|
+
actionExecutionId: message.id,
|
|
849
|
+
actionName: message.name
|
|
850
|
+
});
|
|
851
|
+
});
|
|
852
|
+
}
|
|
853
|
+
function getPairedFeAction(actions, message) {
|
|
854
|
+
let actionName = null;
|
|
855
|
+
if (message.isActionExecutionMessage()) {
|
|
856
|
+
actionName = message.name;
|
|
857
|
+
} else if (message.isResultMessage()) {
|
|
858
|
+
actionName = message.actionName;
|
|
859
|
+
}
|
|
860
|
+
return actions.find(
|
|
861
|
+
(action) => action.name === actionName && action.available === "frontend" || action.pairedAction === actionName
|
|
862
|
+
);
|
|
863
|
+
}
|
|
815
864
|
|
|
816
865
|
// src/components/copilot-provider/copilotkit.tsx
|
|
817
866
|
var import_react7 = require("react");
|
|
@@ -882,9 +931,9 @@ function useCopilotChat(_a = {}) {
|
|
|
882
931
|
const makeSystemMessageCallback = (0, import_react8.useCallback)(() => {
|
|
883
932
|
const systemMessageMaker = makeSystemMessage || defaultSystemMessage;
|
|
884
933
|
const contextString = latestGetContextString.current([], defaultCopilotContextCategories);
|
|
885
|
-
return new
|
|
934
|
+
return new import_runtime_client_gql4.TextMessage({
|
|
886
935
|
content: systemMessageMaker(contextString, chatInstructions),
|
|
887
|
-
role:
|
|
936
|
+
role: import_runtime_client_gql4.Role.System
|
|
888
937
|
});
|
|
889
938
|
}, [getContextString, makeSystemMessage, chatInstructions]);
|
|
890
939
|
const onCoAgentStateRender = useAsyncCallback(
|