@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
package/dist/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.11",
|
|
48
48
|
sideEffects: false,
|
|
49
49
|
main: "./dist/index.js",
|
|
50
50
|
module: "./dist/index.mjs",
|
|
@@ -1361,6 +1361,7 @@ var CustomEventNames;
|
|
|
1361
1361
|
CustomEventNames2["CopilotKitManuallyEmitMessage"] = "copilotkit_manually_emit_message";
|
|
1362
1362
|
CustomEventNames2["CopilotKitManuallyEmitToolCall"] = "copilotkit_manually_emit_tool_call";
|
|
1363
1363
|
CustomEventNames2["CopilotKitManuallyEmitIntermediateState"] = "copilotkit_manually_emit_intermediate_state";
|
|
1364
|
+
CustomEventNames2["CopilotKitExit"] = "copilotkit_exit";
|
|
1364
1365
|
})(CustomEventNames || (CustomEventNames = {}));
|
|
1365
1366
|
|
|
1366
1367
|
// src/agents/langgraph/event-source.ts
|
|
@@ -1580,6 +1581,7 @@ var MessageRole;
|
|
|
1580
1581
|
MessageRole2["user"] = "user";
|
|
1581
1582
|
MessageRole2["assistant"] = "assistant";
|
|
1582
1583
|
MessageRole2["system"] = "system";
|
|
1584
|
+
MessageRole2["tool"] = "tool";
|
|
1583
1585
|
})(MessageRole || (MessageRole = {}));
|
|
1584
1586
|
var ActionExecutionScope;
|
|
1585
1587
|
(function(ActionExecutionScope2) {
|
|
@@ -1654,7 +1656,13 @@ async function streamEvents(controller, args) {
|
|
|
1654
1656
|
const agentStateValues = agentState.values;
|
|
1655
1657
|
state.messages = agentStateValues.messages;
|
|
1656
1658
|
const mode = wasInitiatedWithExistingThread && nodeName != "__end__" ? "continue" : "start";
|
|
1657
|
-
|
|
1659
|
+
let formattedMessages = [];
|
|
1660
|
+
try {
|
|
1661
|
+
formattedMessages = formatMessages(messages);
|
|
1662
|
+
} catch (e) {
|
|
1663
|
+
logger2.error(e, `Error event thrown: ${e.message}`);
|
|
1664
|
+
}
|
|
1665
|
+
state = langGraphDefaultMergeState(state, formattedMessages, actions, name);
|
|
1658
1666
|
if (mode === "continue") {
|
|
1659
1667
|
await client.threads.updateState(threadId, {
|
|
1660
1668
|
values: state,
|
|
@@ -1677,7 +1685,7 @@ async function streamEvents(controller, args) {
|
|
|
1677
1685
|
let streamingStateExtractor = new StreamingStateExtractor([]);
|
|
1678
1686
|
let prevNodeName = null;
|
|
1679
1687
|
let emitIntermediateStateUntilEnd = null;
|
|
1680
|
-
let shouldExit =
|
|
1688
|
+
let shouldExit = false;
|
|
1681
1689
|
let externalRunId = null;
|
|
1682
1690
|
const streamResponse2 = client.runs.stream(threadId, assistantId, {
|
|
1683
1691
|
input: streamInput,
|
|
@@ -1688,125 +1696,104 @@ async function streamEvents(controller, args) {
|
|
|
1688
1696
|
});
|
|
1689
1697
|
const emit = /* @__PURE__ */ __name((message) => controller.enqueue(new TextEncoder().encode(message)), "emit");
|
|
1690
1698
|
let latestStateValues = {};
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1699
|
+
let updatedState = state;
|
|
1700
|
+
try {
|
|
1701
|
+
for await (const chunk of streamResponse2) {
|
|
1702
|
+
if (![
|
|
1703
|
+
"events",
|
|
1704
|
+
"values",
|
|
1705
|
+
"error"
|
|
1706
|
+
].includes(chunk.event))
|
|
1707
|
+
continue;
|
|
1708
|
+
if (chunk.event === "error") {
|
|
1709
|
+
logger2.error(chunk, `Error event thrown: ${chunk.data.message}`);
|
|
1710
|
+
throw new Error(`Error event thrown: ${chunk.data.message}`);
|
|
1711
|
+
}
|
|
1712
|
+
if (chunk.event === "values") {
|
|
1713
|
+
latestStateValues = chunk.data;
|
|
1714
|
+
continue;
|
|
1715
|
+
}
|
|
1716
|
+
const event = chunk.data;
|
|
1717
|
+
const currentNodeName = event.name;
|
|
1718
|
+
const eventType = event.event;
|
|
1719
|
+
const runId = event.metadata.run_id;
|
|
1720
|
+
externalRunId = runId;
|
|
1721
|
+
const metadata = event.metadata;
|
|
1722
|
+
shouldExit = shouldExit || eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitExit;
|
|
1723
|
+
const emitIntermediateState = metadata["copilotkit:emit-intermediate-state"];
|
|
1724
|
+
const manuallyEmitIntermediateState = eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitManuallyEmitIntermediateState;
|
|
1725
|
+
if (graphInfo["nodes"].some((node) => node.id === currentNodeName)) {
|
|
1726
|
+
nodeName = currentNodeName;
|
|
1727
|
+
if (eventType === LangGraphEventTypes.OnChainStart || eventType === LangGraphEventTypes.OnChainEnd) {
|
|
1728
|
+
updatedState = latestStateValues;
|
|
1729
|
+
}
|
|
1730
|
+
}
|
|
1731
|
+
if (!nodeName) {
|
|
1732
|
+
continue;
|
|
1733
|
+
}
|
|
1734
|
+
if (manuallyEmitIntermediateState) {
|
|
1735
|
+
updatedState = event.data;
|
|
1726
1736
|
emit(getStateSyncEvent({
|
|
1727
1737
|
threadId,
|
|
1728
1738
|
runId,
|
|
1729
1739
|
agentName: agent.name,
|
|
1730
1740
|
nodeName,
|
|
1731
|
-
state:
|
|
1741
|
+
state: updatedState,
|
|
1732
1742
|
running: true,
|
|
1733
1743
|
active: true
|
|
1734
1744
|
}));
|
|
1745
|
+
continue;
|
|
1735
1746
|
}
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
if (manuallyEmitMessage) {
|
|
1739
|
-
if (eventType === "on_chain_end") {
|
|
1740
|
-
state = event.data.output;
|
|
1741
|
-
emit(JSON.stringify({
|
|
1742
|
-
event: "on_copilotkit_emit_message",
|
|
1743
|
-
message: event.data.output,
|
|
1744
|
-
messageId: (0, import_node_crypto.randomUUID)(),
|
|
1745
|
-
role: MessageRole.assistant
|
|
1746
|
-
}) + "\n");
|
|
1747
|
+
if (emitIntermediateState && emitIntermediateStateUntilEnd == null) {
|
|
1748
|
+
emitIntermediateStateUntilEnd = nodeName;
|
|
1747
1749
|
}
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
if (manuallyEmitToolCall) {
|
|
1751
|
-
if (eventType === "on_chain_end") {
|
|
1752
|
-
state = event.data.output;
|
|
1753
|
-
emit(JSON.stringify({
|
|
1754
|
-
event: "on_copilotkit_emit_tool_call",
|
|
1755
|
-
name: event.data.output.name,
|
|
1756
|
-
args: event.data.output.args,
|
|
1757
|
-
id: event.data.output.id
|
|
1758
|
-
}) + "\n");
|
|
1750
|
+
if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStart) {
|
|
1751
|
+
streamingStateExtractor = new StreamingStateExtractor(emitIntermediateState);
|
|
1759
1752
|
}
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
emitIntermediateStateUntilEnd
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
updatedState
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
runId,
|
|
1788
|
-
agentName: agent.name,
|
|
1789
|
-
nodeName,
|
|
1790
|
-
state,
|
|
1791
|
-
running: true,
|
|
1792
|
-
active: !exitingNode
|
|
1793
|
-
}));
|
|
1753
|
+
if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStream) {
|
|
1754
|
+
streamingStateExtractor.bufferToolCalls(event);
|
|
1755
|
+
}
|
|
1756
|
+
if (emitIntermediateStateUntilEnd !== null) {
|
|
1757
|
+
updatedState = {
|
|
1758
|
+
...updatedState,
|
|
1759
|
+
...streamingStateExtractor.extractState()
|
|
1760
|
+
};
|
|
1761
|
+
}
|
|
1762
|
+
if (!emitIntermediateState && currentNodeName === emitIntermediateStateUntilEnd && eventType === LangGraphEventTypes.OnChainEnd) {
|
|
1763
|
+
emitIntermediateStateUntilEnd = null;
|
|
1764
|
+
}
|
|
1765
|
+
const exitingNode = nodeName === currentNodeName && eventType === LangGraphEventTypes.OnChainEnd;
|
|
1766
|
+
if (JSON.stringify(updatedState) !== JSON.stringify(state) || prevNodeName != nodeName || exitingNode) {
|
|
1767
|
+
state = updatedState;
|
|
1768
|
+
prevNodeName = nodeName;
|
|
1769
|
+
emit(getStateSyncEvent({
|
|
1770
|
+
threadId,
|
|
1771
|
+
runId,
|
|
1772
|
+
agentName: agent.name,
|
|
1773
|
+
nodeName,
|
|
1774
|
+
state,
|
|
1775
|
+
running: true,
|
|
1776
|
+
active: !exitingNode
|
|
1777
|
+
}));
|
|
1778
|
+
}
|
|
1779
|
+
emit(JSON.stringify(event) + "\n");
|
|
1794
1780
|
}
|
|
1795
|
-
|
|
1781
|
+
state = await client.threads.getState(threadId);
|
|
1782
|
+
const isEndNode = state.next.length === 0;
|
|
1783
|
+
nodeName = Object.keys(state.metadata.writes)[0];
|
|
1784
|
+
emit(getStateSyncEvent({
|
|
1785
|
+
threadId,
|
|
1786
|
+
runId: externalRunId,
|
|
1787
|
+
agentName: agent.name,
|
|
1788
|
+
nodeName: isEndNode ? "__end__" : nodeName,
|
|
1789
|
+
state: state.values,
|
|
1790
|
+
running: !shouldExit,
|
|
1791
|
+
active: false
|
|
1792
|
+
}));
|
|
1793
|
+
return Promise.resolve();
|
|
1794
|
+
} catch (e) {
|
|
1795
|
+
return Promise.resolve();
|
|
1796
1796
|
}
|
|
1797
|
-
state = await client.threads.getState(threadId);
|
|
1798
|
-
const isEndNode = state.next.length === 0;
|
|
1799
|
-
nodeName = Object.keys(state.metadata.writes)[0];
|
|
1800
|
-
emit(getStateSyncEvent({
|
|
1801
|
-
threadId,
|
|
1802
|
-
runId: externalRunId,
|
|
1803
|
-
agentName: agent.name,
|
|
1804
|
-
nodeName: isEndNode ? "__end__" : nodeName,
|
|
1805
|
-
state: state.values,
|
|
1806
|
-
running: !shouldExit,
|
|
1807
|
-
active: false
|
|
1808
|
-
}));
|
|
1809
|
-
return Promise.resolve();
|
|
1810
1797
|
}
|
|
1811
1798
|
__name(streamEvents, "streamEvents");
|
|
1812
1799
|
function getStateSyncEvent({ threadId, runId, agentName, nodeName, state, running, active }) {
|
|
@@ -1817,7 +1804,7 @@ function getStateSyncEvent({ threadId, runId, agentName, nodeName, state, runnin
|
|
|
1817
1804
|
return acc;
|
|
1818
1805
|
}, {});
|
|
1819
1806
|
return JSON.stringify({
|
|
1820
|
-
event:
|
|
1807
|
+
event: LangGraphEventTypes.OnCopilotKitStateSync,
|
|
1821
1808
|
thread_id: threadId,
|
|
1822
1809
|
run_id: runId,
|
|
1823
1810
|
agent_name: agentName,
|
|
@@ -1843,10 +1830,10 @@ var StreamingStateExtractor = /* @__PURE__ */ __name(class StreamingStateExtract
|
|
|
1843
1830
|
bufferToolCalls(event) {
|
|
1844
1831
|
if (event.data.chunk.tool_call_chunks.length > 0) {
|
|
1845
1832
|
const chunk = event.data.chunk.tool_call_chunks[0];
|
|
1846
|
-
if (chunk.name !== null) {
|
|
1833
|
+
if (chunk.name !== null && chunk.name !== void 0) {
|
|
1847
1834
|
this.currentToolCall = chunk.name;
|
|
1848
1835
|
this.toolCallBuffer[this.currentToolCall] = chunk.args;
|
|
1849
|
-
} else if (this.currentToolCall !== null) {
|
|
1836
|
+
} else if (this.currentToolCall !== null && this.currentToolCall !== void 0) {
|
|
1850
1837
|
this.toolCallBuffer[this.currentToolCall] += chunk.args;
|
|
1851
1838
|
}
|
|
1852
1839
|
}
|
|
@@ -1922,12 +1909,10 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
|
|
|
1922
1909
|
mergedMessages.push(message);
|
|
1923
1910
|
} else {
|
|
1924
1911
|
for (let i = 0; i < mergedMessages.length; i++) {
|
|
1925
|
-
if (mergedMessages[i].id === message.id) {
|
|
1926
|
-
if ("tool_calls" in
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
message.additional_kwargs = mergedMessages[i].additional_kwargs;
|
|
1930
|
-
}
|
|
1912
|
+
if (mergedMessages[i].id === message.id && message.role === "assistant") {
|
|
1913
|
+
if (("tool_calls" in mergedMessages[i] || "additional_kwargs" in mergedMessages[i]) && mergedMessages[i].content) {
|
|
1914
|
+
message.tool_calls = mergedMessages[i]["tool_calls"];
|
|
1915
|
+
message.additional_kwargs = mergedMessages[i].additional_kwargs;
|
|
1931
1916
|
}
|
|
1932
1917
|
mergedMessages[i] = message;
|
|
1933
1918
|
}
|
|
@@ -1979,34 +1964,15 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
|
|
|
1979
1964
|
}
|
|
1980
1965
|
correctedMessages.push(currentMessage);
|
|
1981
1966
|
}
|
|
1982
|
-
return
|
|
1967
|
+
return {
|
|
1968
|
+
...state,
|
|
1983
1969
|
messages: correctedMessages,
|
|
1984
1970
|
copilotkit: {
|
|
1985
1971
|
actions
|
|
1986
1972
|
}
|
|
1987
|
-
});
|
|
1988
|
-
}
|
|
1989
|
-
__name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
|
|
1990
|
-
function deepMerge(obj1, obj2) {
|
|
1991
|
-
let result = {
|
|
1992
|
-
...obj1
|
|
1993
1973
|
};
|
|
1994
|
-
for (let key in obj2) {
|
|
1995
|
-
if (typeof obj2[key] === "object" && !Array.isArray(obj2[key])) {
|
|
1996
|
-
if (obj1[key]) {
|
|
1997
|
-
result[key] = deepMerge(obj1[key], obj2[key]);
|
|
1998
|
-
} else {
|
|
1999
|
-
result[key] = {
|
|
2000
|
-
...obj2[key]
|
|
2001
|
-
};
|
|
2002
|
-
}
|
|
2003
|
-
} else {
|
|
2004
|
-
result[key] = obj2[key];
|
|
2005
|
-
}
|
|
2006
|
-
}
|
|
2007
|
-
return result;
|
|
2008
1974
|
}
|
|
2009
|
-
__name(
|
|
1975
|
+
__name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
|
|
2010
1976
|
function formatMessages(messages) {
|
|
2011
1977
|
return messages.map((message) => {
|
|
2012
1978
|
if (message.isTextMessage() && message.role === "assistant") {
|
|
@@ -2041,7 +2007,7 @@ function formatMessages(messages) {
|
|
|
2041
2007
|
id: message.id,
|
|
2042
2008
|
tool_call_id: message.actionExecutionId,
|
|
2043
2009
|
name: message.actionName,
|
|
2044
|
-
role: MessageRole.
|
|
2010
|
+
role: MessageRole.tool
|
|
2045
2011
|
};
|
|
2046
2012
|
}
|
|
2047
2013
|
throw new Error(`Unknown message type ${message.type}`);
|