@copilotkit/runtime 1.4.0-pre-1-4-0.0 → 1.4.0-pre-1-4-0.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 +96 -3
- package/__snapshots__/schema/schema.graphql +1 -0
- package/dist/{chunk-3SXVSM2J.mjs → chunk-3DNY5YTL.mjs} +2 -2
- package/dist/{chunk-5DFP5VJV.mjs → chunk-677K33J7.mjs} +2 -2
- package/dist/{chunk-VGYN7TGZ.mjs → chunk-BNQDVBQH.mjs} +1 -1
- package/dist/chunk-BNQDVBQH.mjs.map +1 -0
- package/dist/{chunk-KDT43TMW.mjs → chunk-FL67XJAX.mjs} +3 -3
- package/dist/{chunk-KDT43TMW.mjs.map → chunk-FL67XJAX.mjs.map} +1 -1
- package/dist/{chunk-SBNW3ABC.mjs → chunk-V2YEM4Z5.mjs} +2 -2
- package/dist/{chunk-5LEQEQFA.mjs → chunk-VBGS6IWV.mjs} +108 -142
- package/dist/chunk-VBGS6IWV.mjs.map +1 -0
- 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-3DNY5YTL.mjs.map} +0 -0
- /package/dist/{chunk-5DFP5VJV.mjs.map → chunk-677K33J7.mjs.map} +0 -0
- /package/dist/{chunk-SBNW3ABC.mjs.map → chunk-V2YEM4Z5.mjs.map} +0 -0
|
@@ -36,7 +36,7 @@ var require_package = __commonJS({
|
|
|
36
36
|
publishConfig: {
|
|
37
37
|
access: "public"
|
|
38
38
|
},
|
|
39
|
-
version: "1.4.0-pre-1-4-0.
|
|
39
|
+
version: "1.4.0-pre-1-4-0.11",
|
|
40
40
|
sideEffects: false,
|
|
41
41
|
main: "./dist/index.js",
|
|
42
42
|
module: "./dist/index.mjs",
|
|
@@ -136,6 +136,7 @@ var MessageRole;
|
|
|
136
136
|
MessageRole2["user"] = "user";
|
|
137
137
|
MessageRole2["assistant"] = "assistant";
|
|
138
138
|
MessageRole2["system"] = "system";
|
|
139
|
+
MessageRole2["tool"] = "tool";
|
|
139
140
|
})(MessageRole || (MessageRole = {}));
|
|
140
141
|
var ActionExecutionScope;
|
|
141
142
|
(function(ActionExecutionScope2) {
|
|
@@ -1055,6 +1056,7 @@ var CustomEventNames;
|
|
|
1055
1056
|
CustomEventNames2["CopilotKitManuallyEmitMessage"] = "copilotkit_manually_emit_message";
|
|
1056
1057
|
CustomEventNames2["CopilotKitManuallyEmitToolCall"] = "copilotkit_manually_emit_tool_call";
|
|
1057
1058
|
CustomEventNames2["CopilotKitManuallyEmitIntermediateState"] = "copilotkit_manually_emit_intermediate_state";
|
|
1059
|
+
CustomEventNames2["CopilotKitExit"] = "copilotkit_exit";
|
|
1058
1060
|
})(CustomEventNames || (CustomEventNames = {}));
|
|
1059
1061
|
|
|
1060
1062
|
// src/agents/langgraph/event-source.ts
|
|
@@ -1311,7 +1313,13 @@ async function streamEvents(controller, args) {
|
|
|
1311
1313
|
const agentStateValues = agentState.values;
|
|
1312
1314
|
state.messages = agentStateValues.messages;
|
|
1313
1315
|
const mode = wasInitiatedWithExistingThread && nodeName != "__end__" ? "continue" : "start";
|
|
1314
|
-
|
|
1316
|
+
let formattedMessages = [];
|
|
1317
|
+
try {
|
|
1318
|
+
formattedMessages = formatMessages(messages);
|
|
1319
|
+
} catch (e) {
|
|
1320
|
+
logger2.error(e, `Error event thrown: ${e.message}`);
|
|
1321
|
+
}
|
|
1322
|
+
state = langGraphDefaultMergeState(state, formattedMessages, actions, name);
|
|
1315
1323
|
if (mode === "continue") {
|
|
1316
1324
|
await client.threads.updateState(threadId, {
|
|
1317
1325
|
values: state,
|
|
@@ -1334,7 +1342,7 @@ async function streamEvents(controller, args) {
|
|
|
1334
1342
|
let streamingStateExtractor = new StreamingStateExtractor([]);
|
|
1335
1343
|
let prevNodeName = null;
|
|
1336
1344
|
let emitIntermediateStateUntilEnd = null;
|
|
1337
|
-
let shouldExit =
|
|
1345
|
+
let shouldExit = false;
|
|
1338
1346
|
let externalRunId = null;
|
|
1339
1347
|
const streamResponse2 = client.runs.stream(threadId, assistantId, {
|
|
1340
1348
|
input: streamInput,
|
|
@@ -1345,125 +1353,104 @@ async function streamEvents(controller, args) {
|
|
|
1345
1353
|
});
|
|
1346
1354
|
const emit = /* @__PURE__ */ __name((message) => controller.enqueue(new TextEncoder().encode(message)), "emit");
|
|
1347
1355
|
let latestStateValues = {};
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1356
|
+
let updatedState = state;
|
|
1357
|
+
try {
|
|
1358
|
+
for await (const chunk of streamResponse2) {
|
|
1359
|
+
if (![
|
|
1360
|
+
"events",
|
|
1361
|
+
"values",
|
|
1362
|
+
"error"
|
|
1363
|
+
].includes(chunk.event))
|
|
1364
|
+
continue;
|
|
1365
|
+
if (chunk.event === "error") {
|
|
1366
|
+
logger2.error(chunk, `Error event thrown: ${chunk.data.message}`);
|
|
1367
|
+
throw new Error(`Error event thrown: ${chunk.data.message}`);
|
|
1368
|
+
}
|
|
1369
|
+
if (chunk.event === "values") {
|
|
1370
|
+
latestStateValues = chunk.data;
|
|
1371
|
+
continue;
|
|
1372
|
+
}
|
|
1373
|
+
const event = chunk.data;
|
|
1374
|
+
const currentNodeName = event.name;
|
|
1375
|
+
const eventType = event.event;
|
|
1376
|
+
const runId = event.metadata.run_id;
|
|
1377
|
+
externalRunId = runId;
|
|
1378
|
+
const metadata = event.metadata;
|
|
1379
|
+
shouldExit = shouldExit || eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitExit;
|
|
1380
|
+
const emitIntermediateState = metadata["copilotkit:emit-intermediate-state"];
|
|
1381
|
+
const manuallyEmitIntermediateState = eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitManuallyEmitIntermediateState;
|
|
1382
|
+
if (graphInfo["nodes"].some((node) => node.id === currentNodeName)) {
|
|
1383
|
+
nodeName = currentNodeName;
|
|
1384
|
+
if (eventType === LangGraphEventTypes.OnChainStart || eventType === LangGraphEventTypes.OnChainEnd) {
|
|
1385
|
+
updatedState = latestStateValues;
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
if (!nodeName) {
|
|
1389
|
+
continue;
|
|
1390
|
+
}
|
|
1391
|
+
if (manuallyEmitIntermediateState) {
|
|
1392
|
+
updatedState = event.data;
|
|
1383
1393
|
emit(getStateSyncEvent({
|
|
1384
1394
|
threadId,
|
|
1385
1395
|
runId,
|
|
1386
1396
|
agentName: agent.name,
|
|
1387
1397
|
nodeName,
|
|
1388
|
-
state:
|
|
1398
|
+
state: updatedState,
|
|
1389
1399
|
running: true,
|
|
1390
1400
|
active: true
|
|
1391
1401
|
}));
|
|
1402
|
+
continue;
|
|
1392
1403
|
}
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
if (manuallyEmitMessage) {
|
|
1396
|
-
if (eventType === "on_chain_end") {
|
|
1397
|
-
state = event.data.output;
|
|
1398
|
-
emit(JSON.stringify({
|
|
1399
|
-
event: "on_copilotkit_emit_message",
|
|
1400
|
-
message: event.data.output,
|
|
1401
|
-
messageId: randomUUID(),
|
|
1402
|
-
role: MessageRole.assistant
|
|
1403
|
-
}) + "\n");
|
|
1404
|
+
if (emitIntermediateState && emitIntermediateStateUntilEnd == null) {
|
|
1405
|
+
emitIntermediateStateUntilEnd = nodeName;
|
|
1404
1406
|
}
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
if (manuallyEmitToolCall) {
|
|
1408
|
-
if (eventType === "on_chain_end") {
|
|
1409
|
-
state = event.data.output;
|
|
1410
|
-
emit(JSON.stringify({
|
|
1411
|
-
event: "on_copilotkit_emit_tool_call",
|
|
1412
|
-
name: event.data.output.name,
|
|
1413
|
-
args: event.data.output.args,
|
|
1414
|
-
id: event.data.output.id
|
|
1415
|
-
}) + "\n");
|
|
1407
|
+
if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStart) {
|
|
1408
|
+
streamingStateExtractor = new StreamingStateExtractor(emitIntermediateState);
|
|
1416
1409
|
}
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
emitIntermediateStateUntilEnd
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
updatedState
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
runId,
|
|
1445
|
-
agentName: agent.name,
|
|
1446
|
-
nodeName,
|
|
1447
|
-
state,
|
|
1448
|
-
running: true,
|
|
1449
|
-
active: !exitingNode
|
|
1450
|
-
}));
|
|
1410
|
+
if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStream) {
|
|
1411
|
+
streamingStateExtractor.bufferToolCalls(event);
|
|
1412
|
+
}
|
|
1413
|
+
if (emitIntermediateStateUntilEnd !== null) {
|
|
1414
|
+
updatedState = {
|
|
1415
|
+
...updatedState,
|
|
1416
|
+
...streamingStateExtractor.extractState()
|
|
1417
|
+
};
|
|
1418
|
+
}
|
|
1419
|
+
if (!emitIntermediateState && currentNodeName === emitIntermediateStateUntilEnd && eventType === LangGraphEventTypes.OnChainEnd) {
|
|
1420
|
+
emitIntermediateStateUntilEnd = null;
|
|
1421
|
+
}
|
|
1422
|
+
const exitingNode = nodeName === currentNodeName && eventType === LangGraphEventTypes.OnChainEnd;
|
|
1423
|
+
if (JSON.stringify(updatedState) !== JSON.stringify(state) || prevNodeName != nodeName || exitingNode) {
|
|
1424
|
+
state = updatedState;
|
|
1425
|
+
prevNodeName = nodeName;
|
|
1426
|
+
emit(getStateSyncEvent({
|
|
1427
|
+
threadId,
|
|
1428
|
+
runId,
|
|
1429
|
+
agentName: agent.name,
|
|
1430
|
+
nodeName,
|
|
1431
|
+
state,
|
|
1432
|
+
running: true,
|
|
1433
|
+
active: !exitingNode
|
|
1434
|
+
}));
|
|
1435
|
+
}
|
|
1436
|
+
emit(JSON.stringify(event) + "\n");
|
|
1451
1437
|
}
|
|
1452
|
-
|
|
1438
|
+
state = await client.threads.getState(threadId);
|
|
1439
|
+
const isEndNode = state.next.length === 0;
|
|
1440
|
+
nodeName = Object.keys(state.metadata.writes)[0];
|
|
1441
|
+
emit(getStateSyncEvent({
|
|
1442
|
+
threadId,
|
|
1443
|
+
runId: externalRunId,
|
|
1444
|
+
agentName: agent.name,
|
|
1445
|
+
nodeName: isEndNode ? "__end__" : nodeName,
|
|
1446
|
+
state: state.values,
|
|
1447
|
+
running: !shouldExit,
|
|
1448
|
+
active: false
|
|
1449
|
+
}));
|
|
1450
|
+
return Promise.resolve();
|
|
1451
|
+
} catch (e) {
|
|
1452
|
+
return Promise.resolve();
|
|
1453
1453
|
}
|
|
1454
|
-
state = await client.threads.getState(threadId);
|
|
1455
|
-
const isEndNode = state.next.length === 0;
|
|
1456
|
-
nodeName = Object.keys(state.metadata.writes)[0];
|
|
1457
|
-
emit(getStateSyncEvent({
|
|
1458
|
-
threadId,
|
|
1459
|
-
runId: externalRunId,
|
|
1460
|
-
agentName: agent.name,
|
|
1461
|
-
nodeName: isEndNode ? "__end__" : nodeName,
|
|
1462
|
-
state: state.values,
|
|
1463
|
-
running: !shouldExit,
|
|
1464
|
-
active: false
|
|
1465
|
-
}));
|
|
1466
|
-
return Promise.resolve();
|
|
1467
1454
|
}
|
|
1468
1455
|
__name(streamEvents, "streamEvents");
|
|
1469
1456
|
function getStateSyncEvent({ threadId, runId, agentName, nodeName, state, running, active }) {
|
|
@@ -1474,7 +1461,7 @@ function getStateSyncEvent({ threadId, runId, agentName, nodeName, state, runnin
|
|
|
1474
1461
|
return acc;
|
|
1475
1462
|
}, {});
|
|
1476
1463
|
return JSON.stringify({
|
|
1477
|
-
event:
|
|
1464
|
+
event: LangGraphEventTypes.OnCopilotKitStateSync,
|
|
1478
1465
|
thread_id: threadId,
|
|
1479
1466
|
run_id: runId,
|
|
1480
1467
|
agent_name: agentName,
|
|
@@ -1500,10 +1487,10 @@ var StreamingStateExtractor = /* @__PURE__ */ __name(class StreamingStateExtract
|
|
|
1500
1487
|
bufferToolCalls(event) {
|
|
1501
1488
|
if (event.data.chunk.tool_call_chunks.length > 0) {
|
|
1502
1489
|
const chunk = event.data.chunk.tool_call_chunks[0];
|
|
1503
|
-
if (chunk.name !== null) {
|
|
1490
|
+
if (chunk.name !== null && chunk.name !== void 0) {
|
|
1504
1491
|
this.currentToolCall = chunk.name;
|
|
1505
1492
|
this.toolCallBuffer[this.currentToolCall] = chunk.args;
|
|
1506
|
-
} else if (this.currentToolCall !== null) {
|
|
1493
|
+
} else if (this.currentToolCall !== null && this.currentToolCall !== void 0) {
|
|
1507
1494
|
this.toolCallBuffer[this.currentToolCall] += chunk.args;
|
|
1508
1495
|
}
|
|
1509
1496
|
}
|
|
@@ -1579,12 +1566,10 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
|
|
|
1579
1566
|
mergedMessages.push(message);
|
|
1580
1567
|
} else {
|
|
1581
1568
|
for (let i = 0; i < mergedMessages.length; i++) {
|
|
1582
|
-
if (mergedMessages[i].id === message.id) {
|
|
1583
|
-
if ("tool_calls" in
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
message.additional_kwargs = mergedMessages[i].additional_kwargs;
|
|
1587
|
-
}
|
|
1569
|
+
if (mergedMessages[i].id === message.id && message.role === "assistant") {
|
|
1570
|
+
if (("tool_calls" in mergedMessages[i] || "additional_kwargs" in mergedMessages[i]) && mergedMessages[i].content) {
|
|
1571
|
+
message.tool_calls = mergedMessages[i]["tool_calls"];
|
|
1572
|
+
message.additional_kwargs = mergedMessages[i].additional_kwargs;
|
|
1588
1573
|
}
|
|
1589
1574
|
mergedMessages[i] = message;
|
|
1590
1575
|
}
|
|
@@ -1636,34 +1621,15 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
|
|
|
1636
1621
|
}
|
|
1637
1622
|
correctedMessages.push(currentMessage);
|
|
1638
1623
|
}
|
|
1639
|
-
return
|
|
1624
|
+
return {
|
|
1625
|
+
...state,
|
|
1640
1626
|
messages: correctedMessages,
|
|
1641
1627
|
copilotkit: {
|
|
1642
1628
|
actions
|
|
1643
1629
|
}
|
|
1644
|
-
});
|
|
1645
|
-
}
|
|
1646
|
-
__name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
|
|
1647
|
-
function deepMerge(obj1, obj2) {
|
|
1648
|
-
let result = {
|
|
1649
|
-
...obj1
|
|
1650
1630
|
};
|
|
1651
|
-
for (let key in obj2) {
|
|
1652
|
-
if (typeof obj2[key] === "object" && !Array.isArray(obj2[key])) {
|
|
1653
|
-
if (obj1[key]) {
|
|
1654
|
-
result[key] = deepMerge(obj1[key], obj2[key]);
|
|
1655
|
-
} else {
|
|
1656
|
-
result[key] = {
|
|
1657
|
-
...obj2[key]
|
|
1658
|
-
};
|
|
1659
|
-
}
|
|
1660
|
-
} else {
|
|
1661
|
-
result[key] = obj2[key];
|
|
1662
|
-
}
|
|
1663
|
-
}
|
|
1664
|
-
return result;
|
|
1665
1631
|
}
|
|
1666
|
-
__name(
|
|
1632
|
+
__name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
|
|
1667
1633
|
function formatMessages(messages) {
|
|
1668
1634
|
return messages.map((message) => {
|
|
1669
1635
|
if (message.isTextMessage() && message.role === "assistant") {
|
|
@@ -1698,7 +1664,7 @@ function formatMessages(messages) {
|
|
|
1698
1664
|
id: message.id,
|
|
1699
1665
|
tool_call_id: message.actionExecutionId,
|
|
1700
1666
|
name: message.actionName,
|
|
1701
|
-
role: MessageRole.
|
|
1667
|
+
role: MessageRole.tool
|
|
1702
1668
|
};
|
|
1703
1669
|
}
|
|
1704
1670
|
throw new Error(`Unknown message type ${message.type}`);
|
|
@@ -2789,4 +2755,4 @@ export {
|
|
|
2789
2755
|
getCommonConfig,
|
|
2790
2756
|
copilotRuntimeNodeHttpEndpoint
|
|
2791
2757
|
};
|
|
2792
|
-
//# sourceMappingURL=chunk-
|
|
2758
|
+
//# sourceMappingURL=chunk-VBGS6IWV.mjs.map
|