@copilotkit/runtime 1.3.16-mme-sdk-js.2 → 1.3.16-mme-lgc-langgraph-package.4

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{chunk-HFTU4B7Q.mjs → chunk-6JARETZD.mjs} +2 -2
  3. package/dist/{chunk-XE3SYKK4.mjs → chunk-BNQDVBQH.mjs} +1 -1
  4. package/dist/chunk-BNQDVBQH.mjs.map +1 -0
  5. package/dist/{chunk-6UQXCIKF.mjs → chunk-FQZXIMDQ.mjs} +17 -35
  6. package/dist/chunk-FQZXIMDQ.mjs.map +1 -0
  7. package/dist/{chunk-PA6U4BDE.mjs → chunk-FZRVMXBZ.mjs} +2 -2
  8. package/dist/{chunk-3N5PRHNJ.mjs → chunk-UQSHIYZH.mjs} +3 -3
  9. package/dist/{chunk-3N5PRHNJ.mjs.map → chunk-UQSHIYZH.mjs.map} +1 -1
  10. package/dist/{chunk-5IF2J3NL.mjs → chunk-VZDCSETN.mjs} +2 -2
  11. package/dist/{copilot-runtime-543a59ae.d.ts → copilot-runtime-8d3f40c7.d.ts} +1 -1
  12. package/dist/{groq-adapter-7aa25931.d.ts → groq-adapter-dbfba3eb.d.ts} +33 -0
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.js +16 -34
  15. package/dist/index.js.map +1 -1
  16. package/dist/index.mjs +6 -6
  17. package/dist/lib/index.d.ts +2 -2
  18. package/dist/lib/index.js +16 -34
  19. package/dist/lib/index.js.map +1 -1
  20. package/dist/lib/index.mjs +6 -6
  21. package/dist/lib/integrations/index.d.ts +2 -2
  22. package/dist/lib/integrations/index.js +1 -1
  23. package/dist/lib/integrations/index.js.map +1 -1
  24. package/dist/lib/integrations/index.mjs +4 -4
  25. package/dist/lib/integrations/nest/index.d.ts +1 -1
  26. package/dist/lib/integrations/nest/index.js +1 -1
  27. package/dist/lib/integrations/nest/index.js.map +1 -1
  28. package/dist/lib/integrations/nest/index.mjs +2 -2
  29. package/dist/lib/integrations/node-express/index.d.ts +1 -1
  30. package/dist/lib/integrations/node-express/index.js +1 -1
  31. package/dist/lib/integrations/node-express/index.js.map +1 -1
  32. package/dist/lib/integrations/node-express/index.mjs +2 -2
  33. package/dist/lib/integrations/node-http/index.d.ts +1 -1
  34. package/dist/lib/integrations/node-http/index.js +1 -1
  35. package/dist/lib/integrations/node-http/index.js.map +1 -1
  36. package/dist/lib/integrations/node-http/index.mjs +1 -1
  37. package/dist/service-adapters/index.d.ts +1 -1
  38. package/dist/service-adapters/index.js.map +1 -1
  39. package/dist/service-adapters/index.mjs +1 -1
  40. package/package.json +4 -4
  41. package/src/lib/runtime/copilot-runtime.ts +2 -2
  42. package/src/lib/runtime/remote-lg-cloud-action.ts +26 -37
  43. package/src/service-adapters/openai/openai-adapter.ts +33 -0
  44. package/dist/chunk-6UQXCIKF.mjs.map +0 -1
  45. package/dist/chunk-XE3SYKK4.mjs.map +0 -1
  46. /package/dist/{chunk-HFTU4B7Q.mjs.map → chunk-6JARETZD.mjs.map} +0 -0
  47. /package/dist/{chunk-PA6U4BDE.mjs.map → chunk-FZRVMXBZ.mjs.map} +0 -0
  48. /package/dist/{chunk-5IF2J3NL.mjs.map → chunk-VZDCSETN.mjs.map} +0 -0
@@ -25,6 +25,39 @@ import { Groq } from 'groq-sdk';
25
25
  *
26
26
  * return copilotKit.streamHttpServerResponse(req, res, serviceAdapter);
27
27
  * ```
28
+ *
29
+ * ## Example with Azure OpenAI
30
+ *
31
+ * ```ts
32
+ * import { CopilotRuntime, OpenAIAdapter } from "@copilotkit/runtime";
33
+ * import OpenAI from "openai";
34
+ *
35
+ * // The name of your Azure OpenAI Instance.
36
+ * // https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal#create-a-resource
37
+ * const instance = "<your instance name>";
38
+ *
39
+ * // Corresponds to your Model deployment within your OpenAI resource, e.g. my-gpt35-16k-deployment
40
+ * // Navigate to the Azure OpenAI Studio to deploy a model.
41
+ * const model = "<your model>";
42
+ *
43
+ * const apiKey = process.env["AZURE_OPENAI_API_KEY"];
44
+ * if (!apiKey) {
45
+ * throw new Error("The AZURE_OPENAI_API_KEY environment variable is missing or empty.");
46
+ * }
47
+ *
48
+ * const copilotKit = new CopilotRuntime();
49
+ *
50
+ * const openai = new OpenAI({
51
+ * apiKey,
52
+ * baseURL: `https://${instance}.openai.azure.com/openai/deployments/${model}`,
53
+ * defaultQuery: { "api-version": "2024-04-01-preview" },
54
+ * defaultHeaders: { "api-key": apiKey },
55
+ * });
56
+ *
57
+ * const serviceAdapter = new OpenAIAdapter({ openai });
58
+ *
59
+ * return copilotKit.streamHttpServerResponse(req, res, serviceAdapter);
60
+ * ```
28
61
  */
29
62
 
30
63
  interface OpenAIAdapterParams {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
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-543a59ae.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-7aa25931.js';
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 './lib/integrations/index.js';
4
4
  export { copilotRuntimeNodeHttpEndpoint } from './lib/integrations/node-http/index.js';
5
5
  export { copilotRuntimeNodeExpressEndpoint } from './lib/integrations/node-express/index.js';
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.3.16-mme-sdk-js.2",
47
+ version: "1.3.16-mme-lgc-langgraph-package.4",
48
48
  sideEffects: false,
49
49
  main: "./dist/index.js",
50
50
  module: "./dist/index.mjs",
@@ -1685,7 +1685,7 @@ async function streamEvents(controller, args) {
1685
1685
  let streamingStateExtractor = new StreamingStateExtractor([]);
1686
1686
  let prevNodeName = null;
1687
1687
  let emitIntermediateStateUntilEnd = null;
1688
- let shouldExit = null;
1688
+ let shouldExit = false;
1689
1689
  let externalRunId = null;
1690
1690
  const streamResponse2 = client.runs.stream(threadId, assistantId, {
1691
1691
  input: streamInput,
@@ -1696,6 +1696,7 @@ async function streamEvents(controller, args) {
1696
1696
  });
1697
1697
  const emit = /* @__PURE__ */ __name((message) => controller.enqueue(new TextEncoder().encode(message)), "emit");
1698
1698
  let latestStateValues = {};
1699
+ let updatedState = state;
1699
1700
  try {
1700
1701
  for await (const chunk of streamResponse2) {
1701
1702
  if (![
@@ -1718,23 +1719,26 @@ async function streamEvents(controller, args) {
1718
1719
  const runId = event.metadata.run_id;
1719
1720
  externalRunId = runId;
1720
1721
  const metadata = event.metadata;
1721
- shouldExit = shouldExit != null ? shouldExit : eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitExit;
1722
+ shouldExit = shouldExit || eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitExit;
1722
1723
  const emitIntermediateState = metadata["copilotkit:emit-intermediate-state"];
1723
1724
  const manuallyEmitIntermediateState = eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitManuallyEmitIntermediateState;
1724
1725
  if (graphInfo["nodes"].some((node) => node.id === currentNodeName)) {
1725
1726
  nodeName = currentNodeName;
1727
+ if (eventType === LangGraphEventTypes.OnChainStart || eventType === LangGraphEventTypes.OnChainEnd) {
1728
+ updatedState = latestStateValues;
1729
+ }
1726
1730
  }
1727
1731
  if (!nodeName) {
1728
1732
  continue;
1729
1733
  }
1730
1734
  if (manuallyEmitIntermediateState) {
1731
- state = event.data;
1735
+ updatedState = event.data;
1732
1736
  emit(getStateSyncEvent({
1733
1737
  threadId,
1734
1738
  runId,
1735
1739
  agentName: agent.name,
1736
1740
  nodeName,
1737
- state,
1741
+ state: updatedState,
1738
1742
  running: true,
1739
1743
  active: true
1740
1744
  }));
@@ -1746,7 +1750,6 @@ async function streamEvents(controller, args) {
1746
1750
  if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStart) {
1747
1751
  streamingStateExtractor = new StreamingStateExtractor(emitIntermediateState);
1748
1752
  }
1749
- let updatedState = latestStateValues;
1750
1753
  if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStream) {
1751
1754
  streamingStateExtractor.bufferToolCalls(event);
1752
1755
  }
@@ -1906,12 +1909,10 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
1906
1909
  mergedMessages.push(message);
1907
1910
  } else {
1908
1911
  for (let i = 0; i < mergedMessages.length; i++) {
1909
- if (mergedMessages[i].id === message.id) {
1910
- if ("tool_calls" in message) {
1911
- if (("tool_calls" in mergedMessages[i] || "additional_kwargs" in mergedMessages[i]) && mergedMessages[i].content) {
1912
- message.tool_calls = mergedMessages[i]["tool_calls"];
1913
- message.additional_kwargs = mergedMessages[i].additional_kwargs;
1914
- }
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;
1915
1916
  }
1916
1917
  mergedMessages[i] = message;
1917
1918
  }
@@ -1963,34 +1964,15 @@ function langGraphDefaultMergeState(state, messages, actions, agentName) {
1963
1964
  }
1964
1965
  correctedMessages.push(currentMessage);
1965
1966
  }
1966
- return deepMerge(state, {
1967
+ return {
1968
+ ...state,
1967
1969
  messages: correctedMessages,
1968
1970
  copilotkit: {
1969
1971
  actions
1970
1972
  }
1971
- });
1972
- }
1973
- __name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
1974
- function deepMerge(obj1, obj2) {
1975
- let result = {
1976
- ...obj1
1977
1973
  };
1978
- for (let key in obj2) {
1979
- if (typeof obj2[key] === "object" && !Array.isArray(obj2[key])) {
1980
- if (obj1[key]) {
1981
- result[key] = deepMerge(obj1[key], obj2[key]);
1982
- } else {
1983
- result[key] = {
1984
- ...obj2[key]
1985
- };
1986
- }
1987
- } else {
1988
- result[key] = obj2[key];
1989
- }
1990
- }
1991
- return result;
1992
1974
  }
1993
- __name(deepMerge, "deepMerge");
1975
+ __name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
1994
1976
  function formatMessages(messages) {
1995
1977
  return messages.map((message) => {
1996
1978
  if (message.isTextMessage() && message.role === "assistant") {