@copilotkit/runtime 1.4.0-pre-1-4-0.0 → 1.4.0-pre-1-4-0.10
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 +85 -3
- package/__snapshots__/schema/schema.graphql +1 -0
- package/dist/{chunk-3SXVSM2J.mjs → chunk-5DNXXJKY.mjs} +2 -2
- package/dist/{chunk-KDT43TMW.mjs → chunk-7ASURDKE.mjs} +3 -3
- package/dist/{chunk-KDT43TMW.mjs.map → chunk-7ASURDKE.mjs.map} +1 -1
- package/dist/{chunk-VGYN7TGZ.mjs → chunk-BNQDVBQH.mjs} +1 -1
- package/dist/chunk-BNQDVBQH.mjs.map +1 -0
- package/dist/{chunk-SBNW3ABC.mjs → chunk-ITRJ4KUY.mjs} +2 -2
- package/dist/{chunk-5LEQEQFA.mjs → chunk-KDMS6EKE.mjs} +108 -142
- package/dist/chunk-KDMS6EKE.mjs.map +1 -0
- package/dist/{chunk-5DFP5VJV.mjs → chunk-NR7QFSEY.mjs} +2 -2
- package/dist/{copilot-runtime-68acb673.d.ts → copilot-runtime-8d3f40c7.d.ts} +3 -3
- package/dist/graphql/types/converted/index.d.ts +1 -1
- package/dist/{groq-adapter-c30654bd.d.ts → groq-adapter-dbfba3eb.d.ts} +34 -1
- package/dist/{index-439dfa2a.d.ts → index-83ee522f.d.ts} +2 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +107 -141
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/{langserve-0d844922.d.ts → langserve-f00629d2.d.ts} +1 -1
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +107 -141
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +6 -6
- package/dist/lib/integrations/index.d.ts +4 -4
- package/dist/lib/integrations/index.js +2 -1
- package/dist/lib/integrations/index.js.map +1 -1
- package/dist/lib/integrations/index.mjs +4 -4
- package/dist/lib/integrations/nest/index.d.ts +3 -3
- package/dist/lib/integrations/nest/index.js +2 -1
- package/dist/lib/integrations/nest/index.js.map +1 -1
- package/dist/lib/integrations/nest/index.mjs +2 -2
- package/dist/lib/integrations/node-express/index.d.ts +3 -3
- package/dist/lib/integrations/node-express/index.js +2 -1
- package/dist/lib/integrations/node-express/index.js.map +1 -1
- package/dist/lib/integrations/node-express/index.mjs +2 -2
- package/dist/lib/integrations/node-http/index.d.ts +3 -3
- package/dist/lib/integrations/node-http/index.js +2 -1
- package/dist/lib/integrations/node-http/index.js.map +1 -1
- package/dist/lib/integrations/node-http/index.mjs +1 -1
- package/dist/service-adapters/index.d.ts +4 -4
- package/dist/service-adapters/index.js.map +1 -1
- package/dist/service-adapters/index.mjs +1 -1
- package/package.json +4 -4
- package/src/agents/langgraph/events.ts +1 -0
- package/src/graphql/types/enums.ts +1 -0
- package/src/lib/runtime/copilot-runtime.ts +2 -2
- package/src/lib/runtime/remote-lg-cloud-action.ts +137 -160
- package/src/service-adapters/openai/openai-adapter.ts +33 -0
- package/src/service-adapters/openai/utils.ts +13 -9
- package/dist/chunk-5LEQEQFA.mjs.map +0 -1
- package/dist/chunk-VGYN7TGZ.mjs.map +0 -1
- /package/dist/{chunk-3SXVSM2J.mjs.map → chunk-5DNXXJKY.mjs.map} +0 -0
- /package/dist/{chunk-SBNW3ABC.mjs.map → chunk-ITRJ4KUY.mjs.map} +0 -0
- /package/dist/{chunk-5DFP5VJV.mjs.map → chunk-NR7QFSEY.mjs.map} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
copilotKitEndpoint,
|
|
4
4
|
flattenToolCallsNoDuplicates,
|
|
5
5
|
langGraphCloudEndpoint
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7ASURDKE.mjs";
|
|
7
7
|
import {
|
|
8
8
|
AnthropicAdapter,
|
|
9
9
|
GoogleGenerativeAIAdapter,
|
|
@@ -13,24 +13,24 @@ import {
|
|
|
13
13
|
OpenAIAssistantAdapter,
|
|
14
14
|
RemoteChain,
|
|
15
15
|
UnifyAdapter
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-BNQDVBQH.mjs";
|
|
17
17
|
import {
|
|
18
18
|
config,
|
|
19
19
|
copilotRuntimeNextJSAppRouterEndpoint,
|
|
20
20
|
copilotRuntimeNextJSPagesRouterEndpoint
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-5DNXXJKY.mjs";
|
|
22
22
|
import {
|
|
23
23
|
copilotRuntimeNestEndpoint
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-NR7QFSEY.mjs";
|
|
25
25
|
import {
|
|
26
26
|
copilotRuntimeNodeExpressEndpoint
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-ITRJ4KUY.mjs";
|
|
28
28
|
import {
|
|
29
29
|
buildSchema,
|
|
30
30
|
copilotRuntimeNodeHttpEndpoint,
|
|
31
31
|
createContext,
|
|
32
32
|
getCommonConfig
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-KDMS6EKE.mjs";
|
|
34
34
|
import "./chunk-MXXPWWBF.mjs";
|
|
35
35
|
import {
|
|
36
36
|
GuardrailsValidationFailureResponse,
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { h as CommonConfig, b as CopilotRequestContextProperties, a as CopilotRuntime, C as CopilotRuntimeConstructorParams, d as CreateCopilotRuntimeServerOptions, G as GraphQLContext, g as buildSchema, c as copilotKitEndpoint, e as createContext, f as flattenToolCallsNoDuplicates, i as getCommonConfig, l as langGraphCloudEndpoint } from '../copilot-runtime-
|
|
2
|
-
export { G as GoogleGenerativeAIAdapter, f as GroqAdapter, e as GroqAdapterParams, L as LangChainAdapter, a as OpenAIAdapter, O as OpenAIAdapterParams, c as OpenAIAssistantAdapter, b as OpenAIAssistantAdapterParams, d as UnifyAdapter, U as UnifyAdapterParams } from '../groq-adapter-
|
|
1
|
+
export { h as CommonConfig, b as CopilotRequestContextProperties, a as CopilotRuntime, C as CopilotRuntimeConstructorParams, d as CreateCopilotRuntimeServerOptions, G as GraphQLContext, g as buildSchema, c as copilotKitEndpoint, e as createContext, f as flattenToolCallsNoDuplicates, i as getCommonConfig, l as langGraphCloudEndpoint } from '../copilot-runtime-8d3f40c7.js';
|
|
2
|
+
export { G as GoogleGenerativeAIAdapter, f as GroqAdapter, e as GroqAdapterParams, L as LangChainAdapter, a as OpenAIAdapter, O as OpenAIAdapterParams, c as OpenAIAssistantAdapter, b as OpenAIAssistantAdapterParams, d as UnifyAdapter, U as UnifyAdapterParams } from '../groq-adapter-dbfba3eb.js';
|
|
3
3
|
export { CopilotRuntimeServerInstance, config, copilotRuntimeNextJSAppRouterEndpoint, copilotRuntimeNextJSPagesRouterEndpoint } from './integrations/index.js';
|
|
4
4
|
export { copilotRuntimeNodeHttpEndpoint } from './integrations/node-http/index.js';
|
|
5
5
|
export { copilotRuntimeNodeExpressEndpoint } from './integrations/node-express/index.js';
|
|
6
6
|
export { copilotRuntimeNestEndpoint } from './integrations/nest/index.js';
|
|
7
7
|
import '@copilotkit/shared';
|
|
8
|
-
import '../langserve-
|
|
9
|
-
import '../index-
|
|
8
|
+
import '../langserve-f00629d2.js';
|
|
9
|
+
import '../index-83ee522f.js';
|
|
10
10
|
import '../graphql/types/base/index.js';
|
|
11
11
|
import 'rxjs';
|
|
12
12
|
import 'graphql';
|
package/dist/lib/index.js
CHANGED
|
@@ -44,7 +44,7 @@ var require_package = __commonJS({
|
|
|
44
44
|
publishConfig: {
|
|
45
45
|
access: "public"
|
|
46
46
|
},
|
|
47
|
-
version: "1.4.0-pre-1-4-0.
|
|
47
|
+
version: "1.4.0-pre-1-4-0.10",
|
|
48
48
|
sideEffects: false,
|
|
49
49
|
main: "./dist/index.js",
|
|
50
50
|
module: "./dist/index.mjs",
|
|
@@ -1091,6 +1091,7 @@ var CustomEventNames;
|
|
|
1091
1091
|
CustomEventNames2["CopilotKitManuallyEmitMessage"] = "copilotkit_manually_emit_message";
|
|
1092
1092
|
CustomEventNames2["CopilotKitManuallyEmitToolCall"] = "copilotkit_manually_emit_tool_call";
|
|
1093
1093
|
CustomEventNames2["CopilotKitManuallyEmitIntermediateState"] = "copilotkit_manually_emit_intermediate_state";
|
|
1094
|
+
CustomEventNames2["CopilotKitExit"] = "copilotkit_exit";
|
|
1094
1095
|
})(CustomEventNames || (CustomEventNames = {}));
|
|
1095
1096
|
|
|
1096
1097
|
// src/agents/langgraph/event-source.ts
|
|
@@ -1310,6 +1311,7 @@ var MessageRole;
|
|
|
1310
1311
|
MessageRole2["user"] = "user";
|
|
1311
1312
|
MessageRole2["assistant"] = "assistant";
|
|
1312
1313
|
MessageRole2["system"] = "system";
|
|
1314
|
+
MessageRole2["tool"] = "tool";
|
|
1313
1315
|
})(MessageRole || (MessageRole = {}));
|
|
1314
1316
|
var ActionExecutionScope;
|
|
1315
1317
|
(function(ActionExecutionScope2) {
|
|
@@ -1384,7 +1386,13 @@ async function streamEvents(controller, args) {
|
|
|
1384
1386
|
const agentStateValues = agentState.values;
|
|
1385
1387
|
state.messages = agentStateValues.messages;
|
|
1386
1388
|
const mode = wasInitiatedWithExistingThread && nodeName != "__end__" ? "continue" : "start";
|
|
1387
|
-
|
|
1389
|
+
let formattedMessages = [];
|
|
1390
|
+
try {
|
|
1391
|
+
formattedMessages = formatMessages(messages);
|
|
1392
|
+
} catch (e) {
|
|
1393
|
+
logger2.error(e, `Error event thrown: ${e.message}`);
|
|
1394
|
+
}
|
|
1395
|
+
state = langGraphDefaultMergeState(state, formattedMessages, actions, name);
|
|
1388
1396
|
if (mode === "continue") {
|
|
1389
1397
|
await client.threads.updateState(threadId, {
|
|
1390
1398
|
values: state,
|
|
@@ -1407,7 +1415,7 @@ async function streamEvents(controller, args) {
|
|
|
1407
1415
|
let streamingStateExtractor = new StreamingStateExtractor([]);
|
|
1408
1416
|
let prevNodeName = null;
|
|
1409
1417
|
let emitIntermediateStateUntilEnd = null;
|
|
1410
|
-
let shouldExit =
|
|
1418
|
+
let shouldExit = false;
|
|
1411
1419
|
let externalRunId = null;
|
|
1412
1420
|
const streamResponse2 = client.runs.stream(threadId, assistantId, {
|
|
1413
1421
|
input: streamInput,
|
|
@@ -1418,125 +1426,104 @@ async function streamEvents(controller, args) {
|
|
|
1418
1426
|
});
|
|
1419
1427
|
const emit = /* @__PURE__ */ __name((message) => controller.enqueue(new TextEncoder().encode(message)), "emit");
|
|
1420
1428
|
let latestStateValues = {};
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1429
|
+
let updatedState = state;
|
|
1430
|
+
try {
|
|
1431
|
+
for await (const chunk of streamResponse2) {
|
|
1432
|
+
if (![
|
|
1433
|
+
"events",
|
|
1434
|
+
"values",
|
|
1435
|
+
"error"
|
|
1436
|
+
].includes(chunk.event))
|
|
1437
|
+
continue;
|
|
1438
|
+
if (chunk.event === "error") {
|
|
1439
|
+
logger2.error(chunk, `Error event thrown: ${chunk.data.message}`);
|
|
1440
|
+
throw new Error(`Error event thrown: ${chunk.data.message}`);
|
|
1441
|
+
}
|
|
1442
|
+
if (chunk.event === "values") {
|
|
1443
|
+
latestStateValues = chunk.data;
|
|
1444
|
+
continue;
|
|
1445
|
+
}
|
|
1446
|
+
const event = chunk.data;
|
|
1447
|
+
const currentNodeName = event.name;
|
|
1448
|
+
const eventType = event.event;
|
|
1449
|
+
const runId = event.metadata.run_id;
|
|
1450
|
+
externalRunId = runId;
|
|
1451
|
+
const metadata = event.metadata;
|
|
1452
|
+
shouldExit = shouldExit || eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitExit;
|
|
1453
|
+
const emitIntermediateState = metadata["copilotkit:emit-intermediate-state"];
|
|
1454
|
+
const manuallyEmitIntermediateState = eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitManuallyEmitIntermediateState;
|
|
1455
|
+
if (graphInfo["nodes"].some((node) => node.id === currentNodeName)) {
|
|
1456
|
+
nodeName = currentNodeName;
|
|
1457
|
+
if (eventType === LangGraphEventTypes.OnChainStart || eventType === LangGraphEventTypes.OnChainEnd) {
|
|
1458
|
+
updatedState = latestStateValues;
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1461
|
+
if (!nodeName) {
|
|
1462
|
+
continue;
|
|
1463
|
+
}
|
|
1464
|
+
if (manuallyEmitIntermediateState) {
|
|
1465
|
+
updatedState = event.data;
|
|
1456
1466
|
emit(getStateSyncEvent({
|
|
1457
1467
|
threadId,
|
|
1458
1468
|
runId,
|
|
1459
1469
|
agentName: agent.name,
|
|
1460
1470
|
nodeName,
|
|
1461
|
-
state:
|
|
1471
|
+
state: updatedState,
|
|
1462
1472
|
running: true,
|
|
1463
1473
|
active: true
|
|
1464
1474
|
}));
|
|
1475
|
+
continue;
|
|
1465
1476
|
}
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
if (manuallyEmitMessage) {
|
|
1469
|
-
if (eventType === "on_chain_end") {
|
|
1470
|
-
state = event.data.output;
|
|
1471
|
-
emit(JSON.stringify({
|
|
1472
|
-
event: "on_copilotkit_emit_message",
|
|
1473
|
-
message: event.data.output,
|
|
1474
|
-
messageId: (0, import_node_crypto.randomUUID)(),
|
|
1475
|
-
role: MessageRole.assistant
|
|
1476
|
-
}) + "\n");
|
|
1477
|
+
if (emitIntermediateState && emitIntermediateStateUntilEnd == null) {
|
|
1478
|
+
emitIntermediateStateUntilEnd = nodeName;
|
|
1477
1479
|
}
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
if (manuallyEmitToolCall) {
|
|
1481
|
-
if (eventType === "on_chain_end") {
|
|
1482
|
-
state = event.data.output;
|
|
1483
|
-
emit(JSON.stringify({
|
|
1484
|
-
event: "on_copilotkit_emit_tool_call",
|
|
1485
|
-
name: event.data.output.name,
|
|
1486
|
-
args: event.data.output.args,
|
|
1487
|
-
id: event.data.output.id
|
|
1488
|
-
}) + "\n");
|
|
1480
|
+
if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStart) {
|
|
1481
|
+
streamingStateExtractor = new StreamingStateExtractor(emitIntermediateState);
|
|
1489
1482
|
}
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
emitIntermediateStateUntilEnd
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
updatedState
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
runId,
|
|
1518
|
-
agentName: agent.name,
|
|
1519
|
-
nodeName,
|
|
1520
|
-
state,
|
|
1521
|
-
running: true,
|
|
1522
|
-
active: !exitingNode
|
|
1523
|
-
}));
|
|
1483
|
+
if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStream) {
|
|
1484
|
+
streamingStateExtractor.bufferToolCalls(event);
|
|
1485
|
+
}
|
|
1486
|
+
if (emitIntermediateStateUntilEnd !== null) {
|
|
1487
|
+
updatedState = {
|
|
1488
|
+
...updatedState,
|
|
1489
|
+
...streamingStateExtractor.extractState()
|
|
1490
|
+
};
|
|
1491
|
+
}
|
|
1492
|
+
if (!emitIntermediateState && currentNodeName === emitIntermediateStateUntilEnd && eventType === LangGraphEventTypes.OnChainEnd) {
|
|
1493
|
+
emitIntermediateStateUntilEnd = null;
|
|
1494
|
+
}
|
|
1495
|
+
const exitingNode = nodeName === currentNodeName && eventType === LangGraphEventTypes.OnChainEnd;
|
|
1496
|
+
if (JSON.stringify(updatedState) !== JSON.stringify(state) || prevNodeName != nodeName || exitingNode) {
|
|
1497
|
+
state = updatedState;
|
|
1498
|
+
prevNodeName = nodeName;
|
|
1499
|
+
emit(getStateSyncEvent({
|
|
1500
|
+
threadId,
|
|
1501
|
+
runId,
|
|
1502
|
+
agentName: agent.name,
|
|
1503
|
+
nodeName,
|
|
1504
|
+
state,
|
|
1505
|
+
running: true,
|
|
1506
|
+
active: !exitingNode
|
|
1507
|
+
}));
|
|
1508
|
+
}
|
|
1509
|
+
emit(JSON.stringify(event) + "\n");
|
|
1524
1510
|
}
|
|
1525
|
-
|
|
1511
|
+
state = await client.threads.getState(threadId);
|
|
1512
|
+
const isEndNode = state.next.length === 0;
|
|
1513
|
+
nodeName = Object.keys(state.metadata.writes)[0];
|
|
1514
|
+
emit(getStateSyncEvent({
|
|
1515
|
+
threadId,
|
|
1516
|
+
runId: externalRunId,
|
|
1517
|
+
agentName: agent.name,
|
|
1518
|
+
nodeName: isEndNode ? "__end__" : nodeName,
|
|
1519
|
+
state: state.values,
|
|
1520
|
+
running: !shouldExit,
|
|
1521
|
+
active: false
|
|
1522
|
+
}));
|
|
1523
|
+
return Promise.resolve();
|
|
1524
|
+
} catch (e) {
|
|
1525
|
+
return Promise.resolve();
|
|
1526
1526
|
}
|
|
1527
|
-
state = await client.threads.getState(threadId);
|
|
1528
|
-
const isEndNode = state.next.length === 0;
|
|
1529
|
-
nodeName = Object.keys(state.metadata.writes)[0];
|
|
1530
|
-
emit(getStateSyncEvent({
|
|
1531
|
-
threadId,
|
|
1532
|
-
runId: externalRunId,
|
|
1533
|
-
agentName: agent.name,
|
|
1534
|
-
nodeName: isEndNode ? "__end__" : nodeName,
|
|
1535
|
-
state: state.values,
|
|
1536
|
-
running: !shouldExit,
|
|
1537
|
-
active: false
|
|
1538
|
-
}));
|
|
1539
|
-
return Promise.resolve();
|
|
1540
1527
|
}
|
|
1541
1528
|
__name(streamEvents, "streamEvents");
|
|
1542
1529
|
function getStateSyncEvent({ threadId, runId, agentName, nodeName, state, running, active }) {
|
|
@@ -1547,7 +1534,7 @@ function getStateSyncEvent({ threadId, runId, agentName, nodeName, state, runnin
|
|
|
1547
1534
|
return acc;
|
|
1548
1535
|
}, {});
|
|
1549
1536
|
return JSON.stringify({
|
|
1550
|
-
event:
|
|
1537
|
+
event: LangGraphEventTypes.OnCopilotKitStateSync,
|
|
1551
1538
|
thread_id: threadId,
|
|
1552
1539
|
run_id: runId,
|
|
1553
1540
|
agent_name: agentName,
|
|
@@ -1573,10 +1560,10 @@ var StreamingStateExtractor = /* @__PURE__ */ __name(class StreamingStateExtract
|
|
|
1573
1560
|
bufferToolCalls(event) {
|
|
1574
1561
|
if (event.data.chunk.tool_call_chunks.length > 0) {
|
|
1575
1562
|
const chunk = event.data.chunk.tool_call_chunks[0];
|
|
1576
|
-
if (chunk.name !== null) {
|
|
1563
|
+
if (chunk.name !== null && chunk.name !== void 0) {
|
|
1577
1564
|
this.currentToolCall = chunk.name;
|
|
1578
1565
|
this.toolCallBuffer[this.currentToolCall] = chunk.args;
|
|
1579
|
-
} else if (this.currentToolCall !== null) {
|
|
1566
|
+
} else if (this.currentToolCall !== null && this.currentToolCall !== void 0) {
|
|
1580
1567
|
this.toolCallBuffer[this.currentToolCall] += chunk.args;
|
|
1581
1568
|
}
|
|
1582
1569
|
}
|
|
@@ -1652,12 +1639,10 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
|
|
|
1652
1639
|
mergedMessages.push(message);
|
|
1653
1640
|
} else {
|
|
1654
1641
|
for (let i = 0; i < mergedMessages.length; i++) {
|
|
1655
|
-
if (mergedMessages[i].id === message.id) {
|
|
1656
|
-
if ("tool_calls" in
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
message.additional_kwargs = mergedMessages[i].additional_kwargs;
|
|
1660
|
-
}
|
|
1642
|
+
if (mergedMessages[i].id === message.id && message.role === "assistant") {
|
|
1643
|
+
if (("tool_calls" in mergedMessages[i] || "additional_kwargs" in mergedMessages[i]) && mergedMessages[i].content) {
|
|
1644
|
+
message.tool_calls = mergedMessages[i]["tool_calls"];
|
|
1645
|
+
message.additional_kwargs = mergedMessages[i].additional_kwargs;
|
|
1661
1646
|
}
|
|
1662
1647
|
mergedMessages[i] = message;
|
|
1663
1648
|
}
|
|
@@ -1709,34 +1694,15 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
|
|
|
1709
1694
|
}
|
|
1710
1695
|
correctedMessages.push(currentMessage);
|
|
1711
1696
|
}
|
|
1712
|
-
return
|
|
1697
|
+
return {
|
|
1698
|
+
...state,
|
|
1713
1699
|
messages: correctedMessages,
|
|
1714
1700
|
copilotkit: {
|
|
1715
1701
|
actions
|
|
1716
1702
|
}
|
|
1717
|
-
});
|
|
1718
|
-
}
|
|
1719
|
-
__name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
|
|
1720
|
-
function deepMerge(obj1, obj2) {
|
|
1721
|
-
let result = {
|
|
1722
|
-
...obj1
|
|
1723
1703
|
};
|
|
1724
|
-
for (let key in obj2) {
|
|
1725
|
-
if (typeof obj2[key] === "object" && !Array.isArray(obj2[key])) {
|
|
1726
|
-
if (obj1[key]) {
|
|
1727
|
-
result[key] = deepMerge(obj1[key], obj2[key]);
|
|
1728
|
-
} else {
|
|
1729
|
-
result[key] = {
|
|
1730
|
-
...obj2[key]
|
|
1731
|
-
};
|
|
1732
|
-
}
|
|
1733
|
-
} else {
|
|
1734
|
-
result[key] = obj2[key];
|
|
1735
|
-
}
|
|
1736
|
-
}
|
|
1737
|
-
return result;
|
|
1738
1704
|
}
|
|
1739
|
-
__name(
|
|
1705
|
+
__name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
|
|
1740
1706
|
function formatMessages(messages) {
|
|
1741
1707
|
return messages.map((message) => {
|
|
1742
1708
|
if (message.isTextMessage() && message.role === "assistant") {
|
|
@@ -1771,7 +1737,7 @@ function formatMessages(messages) {
|
|
|
1771
1737
|
id: message.id,
|
|
1772
1738
|
tool_call_id: message.actionExecutionId,
|
|
1773
1739
|
name: message.actionName,
|
|
1774
|
-
role: MessageRole.
|
|
1740
|
+
role: MessageRole.tool
|
|
1775
1741
|
};
|
|
1776
1742
|
}
|
|
1777
1743
|
throw new Error(`Unknown message type ${message.type}`);
|