@copilotkit/runtime 1.9.2-next.5 → 1.9.2-next.7

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 (42) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{chunk-BLBS3CQH.mjs → chunk-2PQGAIVB.mjs} +19 -2
  3. package/dist/chunk-2PQGAIVB.mjs.map +1 -0
  4. package/dist/{chunk-5WRXYU4R.mjs → chunk-2UAJCT5X.mjs} +2 -2
  5. package/dist/{chunk-RK7WRNH6.mjs → chunk-GW6ERFKI.mjs} +2 -2
  6. package/dist/{chunk-ZVJSUAD7.mjs → chunk-HB4D2KJC.mjs} +102 -48
  7. package/dist/chunk-HB4D2KJC.mjs.map +1 -0
  8. package/dist/{chunk-T4U5EWYD.mjs → chunk-LSB3QZHS.mjs} +2 -2
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +118 -47
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +5 -5
  13. package/dist/lib/index.d.ts +3 -2
  14. package/dist/lib/index.js +118 -47
  15. package/dist/lib/index.js.map +1 -1
  16. package/dist/lib/index.mjs +5 -5
  17. package/dist/lib/integrations/index.d.ts +2 -2
  18. package/dist/lib/integrations/index.js +4 -4
  19. package/dist/lib/integrations/index.js.map +1 -1
  20. package/dist/lib/integrations/index.mjs +4 -4
  21. package/dist/lib/integrations/nest/index.d.ts +1 -1
  22. package/dist/lib/integrations/nest/index.js +4 -4
  23. package/dist/lib/integrations/nest/index.js.map +1 -1
  24. package/dist/lib/integrations/nest/index.mjs +2 -2
  25. package/dist/lib/integrations/node-express/index.d.ts +1 -1
  26. package/dist/lib/integrations/node-express/index.js +4 -4
  27. package/dist/lib/integrations/node-express/index.js.map +1 -1
  28. package/dist/lib/integrations/node-express/index.mjs +2 -2
  29. package/dist/lib/integrations/node-http/index.d.ts +1 -1
  30. package/dist/lib/integrations/node-http/index.js +4 -4
  31. package/dist/lib/integrations/node-http/index.js.map +1 -1
  32. package/dist/lib/integrations/node-http/index.mjs +1 -1
  33. package/dist/{shared-ba062831.d.ts → shared-941d59dc.d.ts} +2 -0
  34. package/package.json +2 -2
  35. package/src/graphql/resolvers/state.resolver.ts +3 -3
  36. package/src/lib/runtime/copilot-runtime.ts +114 -41
  37. package/src/lib/runtime/langgraph/langgraph-agent.ts +12 -0
  38. package/dist/chunk-BLBS3CQH.mjs.map +0 -1
  39. package/dist/chunk-ZVJSUAD7.mjs.map +0 -1
  40. /package/dist/{chunk-5WRXYU4R.mjs.map → chunk-2UAJCT5X.mjs.map} +0 -0
  41. /package/dist/{chunk-RK7WRNH6.mjs.map → chunk-GW6ERFKI.mjs.map} +0 -0
  42. /package/dist/{chunk-T4U5EWYD.mjs.map → chunk-LSB3QZHS.mjs.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @copilotkit/runtime
2
2
 
3
+ ## 1.9.2-next.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 54b62f0: - fix: add default schema keys for input and output of agui langgraph
8
+ - @copilotkit/shared@1.9.2-next.7
9
+
10
+ ## 1.9.2-next.6
11
+
12
+ ### Patch Changes
13
+
14
+ - 4fd92d1: - fix: enable resolving of langgraph agents when cpk starts
15
+ - @copilotkit/shared@1.9.2-next.6
16
+
3
17
  ## 1.9.2-next.5
4
18
 
5
19
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LangGraphEventTypes
3
- } from "./chunk-ZVJSUAD7.mjs";
3
+ } from "./chunk-HB4D2KJC.mjs";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-FHD4JECV.mjs";
@@ -131,6 +131,23 @@ var LangGraphAgent = class extends AGUILangGraphAgent {
131
131
  }
132
132
  };
133
133
  }
134
+ async getSchemaKeys() {
135
+ const CONSTANT_KEYS = [
136
+ "copilotkit"
137
+ ];
138
+ const schemaKeys = await super.getSchemaKeys();
139
+ return {
140
+ config: schemaKeys.config,
141
+ input: schemaKeys.input ? [
142
+ ...schemaKeys.input,
143
+ ...CONSTANT_KEYS
144
+ ] : null,
145
+ output: schemaKeys.output ? [
146
+ ...schemaKeys.output,
147
+ ...CONSTANT_KEYS
148
+ ] : null
149
+ };
150
+ }
134
151
  };
135
152
  __name(LangGraphAgent, "LangGraphAgent");
136
153
 
@@ -138,4 +155,4 @@ export {
138
155
  CustomEventNames,
139
156
  LangGraphAgent
140
157
  };
141
- //# sourceMappingURL=chunk-BLBS3CQH.mjs.map
158
+ //# sourceMappingURL=chunk-2PQGAIVB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/runtime/langgraph/langgraph-agent.ts"],"sourcesContent":["import {\n RunAgentInput,\n EventType,\n CustomEvent,\n TextMessageStartEvent,\n TextMessageContentEvent,\n TextMessageEndEvent,\n ToolCallStartEvent,\n ToolCallArgsEvent,\n ToolCallEndEvent,\n} from \"@ag-ui/client\";\nimport { map } from \"rxjs\";\nimport { LangGraphEventTypes } from \"../../../agents/langgraph/events\";\nimport { RawEvent } from \"@ag-ui/core\";\nimport {\n LangGraphAgent as AGUILangGraphAgent,\n type LangGraphAgentConfig,\n ProcessedEvents,\n SchemaKeys,\n} from \"@ag-ui/langgraph\";\nimport { Message as LangGraphMessage } from \"@langchain/langgraph-sdk/dist/types.messages\";\n\nexport interface PredictStateTool {\n tool: string;\n state_key: string;\n tool_argument: string;\n}\nexport type State = Record<string, any>;\n\nexport type TextMessageEvents =\n | TextMessageStartEvent\n | TextMessageContentEvent\n | TextMessageEndEvent;\n\nexport type ToolCallEvents = ToolCallStartEvent | ToolCallArgsEvent | ToolCallEndEvent;\n\nexport enum CustomEventNames {\n CopilotKitManuallyEmitMessage = \"copilotkit_manually_emit_message\",\n CopilotKitManuallyEmitToolCall = \"copilotkit_manually_emit_tool_call\",\n CopilotKitManuallyEmitIntermediateState = \"copilotkit_manually_emit_intermediate_state\",\n CopilotKitExit = \"copilotkit_exit\",\n}\n\nexport class LangGraphAgent extends AGUILangGraphAgent {\n constructor(config: LangGraphAgentConfig) {\n super(config);\n }\n\n dispatchEvent(event: ProcessedEvents) {\n if (event.type === EventType.CUSTOM) {\n // const event = processedEvent as unknown as CustomEvent;\n const customEvent = event as unknown as CustomEvent;\n\n if (customEvent.name === CustomEventNames.CopilotKitManuallyEmitMessage) {\n this.subscriber.next({\n type: EventType.TEXT_MESSAGE_START,\n role: \"assistant\",\n messageId: customEvent.value.message_id,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TEXT_MESSAGE_CONTENT,\n messageId: customEvent.value.message_id,\n delta: customEvent.value.message,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TEXT_MESSAGE_END,\n messageId: customEvent.value.message_id,\n rawEvent: event,\n });\n return true;\n }\n\n if (customEvent.name === CustomEventNames.CopilotKitManuallyEmitToolCall) {\n this.subscriber.next({\n type: EventType.TOOL_CALL_START,\n toolCallId: customEvent.value.id,\n toolCallName: customEvent.value.name,\n parentMessageId: customEvent.value.id,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TOOL_CALL_ARGS,\n toolCallId: customEvent.value.id,\n delta: customEvent.value.args,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TOOL_CALL_END,\n toolCallId: customEvent.value.id,\n rawEvent: event,\n });\n return true;\n }\n\n if (customEvent.name === CustomEventNames.CopilotKitManuallyEmitIntermediateState) {\n this.activeRun.manuallyEmittedState = customEvent.value;\n this.dispatchEvent({\n type: EventType.STATE_SNAPSHOT,\n snapshot: this.getStateSnapshot(this.activeRun.manuallyEmittedState),\n rawEvent: event,\n });\n return true;\n }\n\n if (customEvent.name === CustomEventNames.CopilotKitExit) {\n this.subscriber.next({\n type: EventType.CUSTOM,\n name: \"Exit\",\n value: true,\n });\n return true;\n }\n }\n\n // Intercept all text message and tool call events and check if should disable\n const rawEvent = (event as ToolCallEvents | TextMessageEvents).rawEvent;\n if (!rawEvent) {\n this.subscriber.next(event);\n return true;\n }\n\n const isMessageEvent =\n event.type === EventType.TEXT_MESSAGE_START ||\n event.type === EventType.TEXT_MESSAGE_CONTENT ||\n event.type === EventType.TEXT_MESSAGE_END;\n const isToolEvent =\n event.type === EventType.TOOL_CALL_START ||\n event.type === EventType.TOOL_CALL_ARGS ||\n event.type === EventType.TOOL_CALL_END;\n if (\"copilotkit:emit-tool-calls\" in (rawEvent.metadata || {})) {\n if (rawEvent.metadata[\"copilotkit:emit-tool-calls\"] === false && isToolEvent) {\n return false;\n }\n }\n if (\"copilotkit:emit-messages\" in (rawEvent.metadata || {})) {\n if (rawEvent.metadata[\"copilotkit:emit-messages\"] === false && isMessageEvent) {\n return false;\n }\n }\n\n this.subscriber.next(event);\n return true;\n }\n\n // @ts-ignore\n run(input: RunAgentInput) {\n return super.run(input).pipe(\n map((processedEvent) => {\n // Turn raw event into emit state snapshot from tool call event\n if (processedEvent.type === EventType.RAW) {\n // Get the LangGraph event from the AGUI event.\n const event = (processedEvent as RawEvent).event ?? (processedEvent as RawEvent).rawEvent;\n\n const eventType = event.event;\n const toolCallData = event.data?.chunk?.tool_call_chunks?.[0];\n const toolCallUsedToPredictState = event.metadata?.[\n \"copilotkit:emit-intermediate-state\"\n ]?.some(\n (predictStateTool: PredictStateTool) => predictStateTool.tool === toolCallData?.name,\n );\n\n if (eventType === LangGraphEventTypes.OnChatModelStream && toolCallUsedToPredictState) {\n return {\n type: EventType.CUSTOM,\n name: \"PredictState\",\n value: event.metadata[\"copilotkit:emit-intermediate-state\"],\n };\n }\n }\n\n return processedEvent;\n }),\n );\n }\n\n langGraphDefaultMergeState(state: State, messages: LangGraphMessage[], tools: any): State {\n const { tools: returnedTools, ...rest } = super.langGraphDefaultMergeState(\n state,\n messages,\n tools,\n );\n\n return {\n ...rest,\n copilotkit: {\n actions: returnedTools,\n },\n };\n }\n\n async getSchemaKeys(): Promise<SchemaKeys> {\n const CONSTANT_KEYS = [\"copilotkit\"];\n const schemaKeys = await super.getSchemaKeys();\n return {\n config: schemaKeys.config,\n input: schemaKeys.input ? [...schemaKeys.input, ...CONSTANT_KEYS] : null,\n output: schemaKeys.output ? [...schemaKeys.output, ...CONSTANT_KEYS] : null,\n };\n }\n}\n"],"mappings":"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","names":["EventType","map","LangGraphAgent","AGUILangGraphAgent","CustomEventNames","LangGraphAgent","AGUILangGraphAgent","constructor","config","dispatchEvent","event","type","EventType","CUSTOM","customEvent","name","subscriber","next","TEXT_MESSAGE_START","role","messageId","value","message_id","rawEvent","TEXT_MESSAGE_CONTENT","delta","message","TEXT_MESSAGE_END","TOOL_CALL_START","toolCallId","id","toolCallName","parentMessageId","TOOL_CALL_ARGS","args","TOOL_CALL_END","activeRun","manuallyEmittedState","STATE_SNAPSHOT","snapshot","getStateSnapshot","isMessageEvent","isToolEvent","metadata","run","input","pipe","map","processedEvent","RAW","eventType","toolCallData","data","chunk","tool_call_chunks","toolCallUsedToPredictState","some","predictStateTool","tool","LangGraphEventTypes","OnChatModelStream","langGraphDefaultMergeState","state","messages","tools","returnedTools","rest","copilotkit","actions","getSchemaKeys","CONSTANT_KEYS","schemaKeys","output"]}
@@ -2,7 +2,7 @@ import {
2
2
  copilotRuntimeNodeHttpEndpoint,
3
3
  getRuntimeInstanceTelemetryInfo,
4
4
  telemetry_client_default
5
- } from "./chunk-ZVJSUAD7.mjs";
5
+ } from "./chunk-HB4D2KJC.mjs";
6
6
  import {
7
7
  __name
8
8
  } from "./chunk-FHD4JECV.mjs";
@@ -22,4 +22,4 @@ __name(copilotRuntimeNodeExpressEndpoint, "copilotRuntimeNodeExpressEndpoint");
22
22
  export {
23
23
  copilotRuntimeNodeExpressEndpoint
24
24
  };
25
- //# sourceMappingURL=chunk-5WRXYU4R.mjs.map
25
+ //# sourceMappingURL=chunk-2UAJCT5X.mjs.map
@@ -2,7 +2,7 @@ import {
2
2
  copilotRuntimeNodeHttpEndpoint,
3
3
  getRuntimeInstanceTelemetryInfo,
4
4
  telemetry_client_default
5
- } from "./chunk-ZVJSUAD7.mjs";
5
+ } from "./chunk-HB4D2KJC.mjs";
6
6
  import {
7
7
  __name
8
8
  } from "./chunk-FHD4JECV.mjs";
@@ -22,4 +22,4 @@ __name(copilotRuntimeNestEndpoint, "copilotRuntimeNestEndpoint");
22
22
  export {
23
23
  copilotRuntimeNestEndpoint
24
24
  };
25
- //# sourceMappingURL=chunk-RK7WRNH6.mjs.map
25
+ //# sourceMappingURL=chunk-GW6ERFKI.mjs.map
@@ -40,7 +40,7 @@ var require_package = __commonJS({
40
40
  publishConfig: {
41
41
  access: "public"
42
42
  },
43
- version: "1.9.2-next.5",
43
+ version: "1.9.2-next.7",
44
44
  sideEffects: false,
45
45
  main: "./dist/index.js",
46
46
  module: "./dist/index.mjs",
@@ -3232,6 +3232,7 @@ var CopilotRuntime = class {
3232
3232
  var _a, _b, _c, _d;
3233
3233
  if ((params == null ? void 0 : params.actions) && (params == null ? void 0 : params.remoteEndpoints) && (params == null ? void 0 : params.remoteEndpoints.some((e) => e.type === EndpointType.LangGraphPlatform))) {
3234
3234
  console.warn("Actions set in runtime instance will not be available for the agent");
3235
+ console.warn(`LangGraph Platform remote endpoints are deprecated in favor of the "agents" property`);
3235
3236
  }
3236
3237
  this.actions = (params == null ? void 0 : params.actions) || [];
3237
3238
  this.availableAgents = [];
@@ -3546,6 +3547,23 @@ please use an LLM adapter instead.`
3546
3547
  throw structuredError;
3547
3548
  }
3548
3549
  }
3550
+ async getAllAgents(graphqlContext) {
3551
+ const [agentsWithEndpoints, aguiAgents] = await Promise.all([
3552
+ this.discoverAgentsFromEndpoints(graphqlContext),
3553
+ this.discoverAgentsFromAgui()
3554
+ ]);
3555
+ this.availableAgents = [
3556
+ ...agentsWithEndpoints,
3557
+ ...aguiAgents
3558
+ ].map((a) => ({
3559
+ name: a.name,
3560
+ id: a.id
3561
+ }));
3562
+ return [
3563
+ ...agentsWithEndpoints,
3564
+ ...aguiAgents
3565
+ ];
3566
+ }
3549
3567
  async discoverAgentsFromEndpoints(graphqlContext) {
3550
3568
  const agents = this.remoteEndpointDefinitions.reduce(async (acc, endpoint) => {
3551
3569
  const agents2 = await acc;
@@ -3631,53 +3649,49 @@ please use an LLM adapter instead.`
3631
3649
  });
3632
3650
  }
3633
3651
  }, Promise.resolve([]));
3634
- this.availableAgents = (await agents ?? []).map((a) => ({
3635
- name: a.name,
3636
- id: a.id
3637
- }));
3652
+ return agents;
3653
+ }
3654
+ async discoverAgentsFromAgui() {
3655
+ const agents = Object.values(this.agents ?? []).reduce(async (acc, agent) => {
3656
+ const agents2 = await acc;
3657
+ const client = agent.client;
3658
+ let data = [];
3659
+ try {
3660
+ data = await client.assistants.search();
3661
+ if (data && "detail" in data && data.detail.toLowerCase() === "not found") {
3662
+ throw new CopilotKitAgentDiscoveryError({
3663
+ availableAgents: this.availableAgents
3664
+ });
3665
+ }
3666
+ } catch (e) {
3667
+ throw new CopilotKitMisuseError2({
3668
+ message: `
3669
+ Failed to find or contact agent ${agent.graphId}.
3670
+ Make sure the LangGraph API is running and the agent is defined in langgraph.json
3671
+
3672
+ See more: https://docs.copilotkit.ai/troubleshooting/common-issues`
3673
+ });
3674
+ }
3675
+ const endpointAgents = data.map((entry) => ({
3676
+ name: entry.graph_id,
3677
+ id: entry.assistant_id,
3678
+ description: ""
3679
+ }));
3680
+ return [
3681
+ ...agents2,
3682
+ ...endpointAgents
3683
+ ];
3684
+ }, Promise.resolve([]));
3638
3685
  return agents;
3639
3686
  }
3640
3687
  async loadAgentState(graphqlContext, threadId, agentName) {
3641
- const agentsWithEndpoints = await this.discoverAgentsFromEndpoints(graphqlContext);
3642
- const agentWithEndpoint = agentsWithEndpoints.find((agent) => agent.name === agentName);
3643
- if (!agentWithEndpoint) {
3688
+ const agents = await this.getAllAgents(graphqlContext);
3689
+ const agent = agents.find((agent2) => agent2.name === agentName);
3690
+ if (!agent) {
3644
3691
  throw new Error("Agent not found");
3645
3692
  }
3646
- if (agentWithEndpoint.endpoint.type === EndpointType.LangGraphPlatform) {
3647
- const propertyHeaders = graphqlContext.properties.authorization ? {
3648
- authorization: `Bearer ${graphqlContext.properties.authorization}`
3649
- } : null;
3650
- const client = new LangGraphClient2({
3651
- apiUrl: agentWithEndpoint.endpoint.deploymentUrl,
3652
- apiKey: agentWithEndpoint.endpoint.langsmithApiKey,
3653
- defaultHeaders: {
3654
- ...propertyHeaders
3655
- }
3656
- });
3657
- let state = {};
3658
- try {
3659
- state = (await client.threads.getState(threadId)).values;
3660
- } catch (error) {
3661
- }
3662
- if (Object.keys(state).length === 0) {
3663
- return {
3664
- threadId: threadId || "",
3665
- threadExists: false,
3666
- state: JSON.stringify({}),
3667
- messages: JSON.stringify([])
3668
- };
3669
- } else {
3670
- const { messages, ...stateWithoutMessages } = state;
3671
- const copilotkitMessages = langchainMessagesToCopilotKit(messages);
3672
- return {
3673
- threadId: threadId || "",
3674
- threadExists: true,
3675
- state: JSON.stringify(stateWithoutMessages),
3676
- messages: JSON.stringify(copilotkitMessages)
3677
- };
3678
- }
3679
- } else if (agentWithEndpoint.endpoint.type === EndpointType.CopilotKit || !("type" in agentWithEndpoint.endpoint)) {
3680
- const cpkEndpoint = agentWithEndpoint.endpoint;
3693
+ if ("endpoint" in agent && (agent.endpoint.type === EndpointType.CopilotKit || !("type" in agent.endpoint))) {
3694
+ const cpkEndpoint = agent.endpoint;
3681
3695
  const fetchUrl = `${cpkEndpoint.url}/agents/state`;
3682
3696
  try {
3683
3697
  const response = await fetchWithRetry(fetchUrl, {
@@ -3716,9 +3730,49 @@ please use an LLM adapter instead.`
3716
3730
  url: fetchUrl
3717
3731
  });
3718
3732
  }
3733
+ }
3734
+ const propertyHeaders = graphqlContext.properties.authorization ? {
3735
+ authorization: `Bearer ${graphqlContext.properties.authorization}`
3736
+ } : null;
3737
+ let client;
3738
+ if ("endpoint" in agent && agent.endpoint.type === EndpointType.LangGraphPlatform) {
3739
+ client = new LangGraphClient2({
3740
+ apiUrl: agent.endpoint.deploymentUrl,
3741
+ apiKey: agent.endpoint.langsmithApiKey,
3742
+ defaultHeaders: {
3743
+ ...propertyHeaders
3744
+ }
3745
+ });
3719
3746
  } else {
3720
- throw new Error(`Unknown endpoint type: ${agentWithEndpoint.endpoint.type}`);
3747
+ const aguiAgent = graphqlContext._copilotkit.runtime.agents[agent.name];
3748
+ if (!aguiAgent) {
3749
+ throw new Error(`Agent: ${agent.name} could not be resolved`);
3750
+ }
3751
+ client = aguiAgent.client;
3721
3752
  }
3753
+ let state = {};
3754
+ try {
3755
+ state = (await client.threads.getState(threadId)).values;
3756
+ } catch (error) {
3757
+ }
3758
+ if (Object.keys(state).length === 0) {
3759
+ return {
3760
+ threadId: threadId || "",
3761
+ threadExists: false,
3762
+ state: JSON.stringify({}),
3763
+ messages: JSON.stringify([])
3764
+ };
3765
+ } else {
3766
+ const { messages, ...stateWithoutMessages } = state;
3767
+ const copilotkitMessages = langchainMessagesToCopilotKit(messages);
3768
+ return {
3769
+ threadId: threadId || "",
3770
+ threadExists: true,
3771
+ state: JSON.stringify(stateWithoutMessages),
3772
+ messages: JSON.stringify(copilotkitMessages)
3773
+ };
3774
+ }
3775
+ throw new Error(`Agent: ${agent.name} could not be resolved`);
3722
3776
  }
3723
3777
  async processAgentRequest(request) {
3724
3778
  var _a, _b, _c, _d, _e;
@@ -5350,9 +5404,9 @@ function _ts_param2(paramIndex, decorator) {
5350
5404
  __name(_ts_param2, "_ts_param");
5351
5405
  var StateResolver = class {
5352
5406
  async loadAgentState(ctx, data) {
5353
- const agents = await ctx._copilotkit.runtime.discoverAgentsFromEndpoints(ctx);
5354
- const agent = agents.find((agent2) => agent2.name === data.agentName);
5355
- if (!agent) {
5407
+ const agents = await ctx._copilotkit.runtime.getAllAgents(ctx);
5408
+ const hasAgent = agents.some((agent) => agent.name === data.agentName);
5409
+ if (!hasAgent) {
5356
5410
  throw new CopilotKitAgentDiscoveryError2({
5357
5411
  agentName: data.agentName,
5358
5412
  availableAgents: agents.map((a) => ({
@@ -5506,4 +5560,4 @@ export {
5506
5560
  getCommonConfig,
5507
5561
  copilotRuntimeNodeHttpEndpoint
5508
5562
  };
5509
- //# sourceMappingURL=chunk-ZVJSUAD7.mjs.map
5563
+ //# sourceMappingURL=chunk-HB4D2KJC.mjs.map