@copilotkit/runtime 1.1.1-feat-runtime-remote-actions.4 → 1.1.1-feat-runtime-remote-actions.5

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 (70) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/__snapshots__/schema/schema.graphql +13 -2
  3. package/dist/{chunk-ID4HXIJF.mjs → chunk-4KFOUZ2Q.mjs} +2 -2
  4. package/dist/{chunk-LHWJWBDQ.mjs → chunk-73NMP3DI.mjs} +2 -2
  5. package/dist/{chunk-RV3RDJTV.mjs → chunk-IFZBG4KM.mjs} +13 -17
  6. package/dist/chunk-IFZBG4KM.mjs.map +1 -0
  7. package/dist/{chunk-AMA3GQ3B.mjs → chunk-KZOZDGQL.mjs} +250 -156
  8. package/dist/chunk-KZOZDGQL.mjs.map +1 -0
  9. package/dist/{chunk-LBKOW2DQ.mjs → chunk-LELOFPMM.mjs} +3 -3
  10. package/dist/{chunk-Y2Q75FA4.mjs → chunk-S7JCF2IN.mjs} +2 -2
  11. package/dist/{chunk-HJXSKVFX.mjs → chunk-TBZGOJJX.mjs} +3 -1
  12. package/dist/{chunk-HJXSKVFX.mjs.map → chunk-TBZGOJJX.mjs.map} +1 -1
  13. package/dist/{chunk-TBZ25KZ6.mjs → chunk-VQPD5OQG.mjs} +2 -2
  14. package/dist/{copilot-runtime-b0c4fa3b.d.ts → copilot-runtime-2e617fcb.d.ts} +10 -4
  15. package/dist/graphql/types/converted/index.d.ts +1 -1
  16. package/dist/graphql/types/converted/index.js +2 -0
  17. package/dist/graphql/types/converted/index.js.map +1 -1
  18. package/dist/graphql/types/converted/index.mjs +1 -1
  19. package/dist/{groq-adapter-10ffe053.d.ts → groq-adapter-dadea62a.d.ts} +1 -1
  20. package/dist/{index-9357d387.d.ts → index-0476e4f7.d.ts} +4 -0
  21. package/dist/index.d.ts +5 -5
  22. package/dist/index.js +304 -212
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +8 -8
  25. package/dist/{langserve-e414c405.d.ts → langserve-d6073a3b.d.ts} +4 -2
  26. package/dist/lib/index.d.ts +5 -5
  27. package/dist/lib/index.js +304 -212
  28. package/dist/lib/index.js.map +1 -1
  29. package/dist/lib/index.mjs +8 -8
  30. package/dist/lib/integrations/index.d.ts +4 -4
  31. package/dist/lib/integrations/index.js +274 -190
  32. package/dist/lib/integrations/index.js.map +1 -1
  33. package/dist/lib/integrations/index.mjs +6 -6
  34. package/dist/lib/integrations/nest/index.d.ts +3 -3
  35. package/dist/lib/integrations/nest/index.js +274 -190
  36. package/dist/lib/integrations/nest/index.js.map +1 -1
  37. package/dist/lib/integrations/nest/index.mjs +4 -4
  38. package/dist/lib/integrations/node-express/index.d.ts +3 -3
  39. package/dist/lib/integrations/node-express/index.js +274 -190
  40. package/dist/lib/integrations/node-express/index.js.map +1 -1
  41. package/dist/lib/integrations/node-express/index.mjs +4 -4
  42. package/dist/lib/integrations/node-http/index.d.ts +3 -3
  43. package/dist/lib/integrations/node-http/index.js +274 -190
  44. package/dist/lib/integrations/node-http/index.js.map +1 -1
  45. package/dist/lib/integrations/node-http/index.mjs +3 -3
  46. package/dist/{pages-router-1bb4736d.d.ts → pages-router-668ef279.d.ts} +1 -1
  47. package/dist/service-adapters/index.d.ts +3 -3
  48. package/dist/service-adapters/index.js.map +1 -1
  49. package/dist/service-adapters/index.mjs +3 -3
  50. package/package.json +7 -5
  51. package/src/agents/langgraph/event-source.ts +2 -0
  52. package/src/agents/langgraph/events.ts +2 -0
  53. package/src/graphql/inputs/agent-session.input.ts +5 -5
  54. package/src/graphql/inputs/agent-state.input.ts +10 -0
  55. package/src/graphql/inputs/generate-copilot-response.input.ts +7 -0
  56. package/src/graphql/inputs/message.input.ts +6 -0
  57. package/src/graphql/resolvers/copilot.resolver.ts +5 -0
  58. package/src/graphql/types/converted/index.ts +2 -0
  59. package/src/graphql/types/copilot-response.type.ts +6 -0
  60. package/src/lib/runtime/copilot-runtime.ts +8 -17
  61. package/src/lib/runtime/remote-actions.ts +16 -4
  62. package/src/service-adapters/conversion.ts +2 -0
  63. package/src/service-adapters/events.ts +7 -2
  64. package/dist/chunk-AMA3GQ3B.mjs.map +0 -1
  65. package/dist/chunk-RV3RDJTV.mjs.map +0 -1
  66. /package/dist/{chunk-ID4HXIJF.mjs.map → chunk-4KFOUZ2Q.mjs.map} +0 -0
  67. /package/dist/{chunk-LHWJWBDQ.mjs.map → chunk-73NMP3DI.mjs.map} +0 -0
  68. /package/dist/{chunk-LBKOW2DQ.mjs.map → chunk-LELOFPMM.mjs.map} +0 -0
  69. /package/dist/{chunk-Y2Q75FA4.mjs.map → chunk-S7JCF2IN.mjs.map} +0 -0
  70. /package/dist/{chunk-TBZ25KZ6.mjs.map → chunk-VQPD5OQG.mjs.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @copilotkit/runtime
2
2
 
3
+ ## 1.1.1-feat-runtime-remote-actions.5
4
+
5
+ ### Patch Changes
6
+
7
+ - useCoagent/useCoagentAction
8
+ - Updated dependencies
9
+ - @copilotkit/shared@1.1.1-feat-runtime-remote-actions.5
10
+
3
11
  ## 1.1.1-feat-runtime-remote-actions.4
4
12
 
5
13
  ### Patch Changes
@@ -33,25 +33,34 @@ input ActionInput {
33
33
 
34
34
  input AgentSessionInput {
35
35
  agentName: String!
36
- nodeName: String!
37
- threadId: String!
36
+ nodeName: String
37
+ threadId: String
38
+ }
39
+
40
+ input AgentStateInput {
41
+ agentName: String!
42
+ state: String!
38
43
  }
39
44
 
40
45
  input AgentStateMessageInput {
46
+ active: Boolean!
41
47
  agentName: String!
42
48
  nodeName: String!
43
49
  role: MessageRole!
50
+ runId: String!
44
51
  running: Boolean!
45
52
  state: String!
46
53
  threadId: String!
47
54
  }
48
55
 
49
56
  type AgentStateMessageOutput implements BaseMessageOutput {
57
+ active: Boolean!
50
58
  agentName: String!
51
59
  createdAt: DateTimeISO!
52
60
  id: String!
53
61
  nodeName: String!
54
62
  role: MessageRole!
63
+ runId: String!
55
64
  running: Boolean!
56
65
  state: String!
57
66
  status: MessageStatus!
@@ -125,6 +134,8 @@ input FrontendInput {
125
134
 
126
135
  input GenerateCopilotResponseInput {
127
136
  agentSession: AgentSessionInput
137
+ agentState: AgentStateInput
138
+ agentStates: [AgentStateInput!]
128
139
  cloud: CloudInput
129
140
  forwardedParameters: ForwardedParametersInput
130
141
  frontend: FrontendInput!
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  copilotRuntimeNodeHttpEndpoint,
3
3
  telemetry_client_default
4
- } from "./chunk-AMA3GQ3B.mjs";
4
+ } from "./chunk-KZOZDGQL.mjs";
5
5
  import {
6
6
  __name
7
7
  } from "./chunk-44O2JGUY.mjs";
@@ -21,4 +21,4 @@ __name(copilotRuntimeNodeExpressEndpoint, "copilotRuntimeNodeExpressEndpoint");
21
21
  export {
22
22
  copilotRuntimeNodeExpressEndpoint
23
23
  };
24
- //# sourceMappingURL=chunk-ID4HXIJF.mjs.map
24
+ //# sourceMappingURL=chunk-4KFOUZ2Q.mjs.map
@@ -2,7 +2,7 @@ import {
2
2
  ActionExecutionMessage,
3
3
  ResultMessage,
4
4
  TextMessage
5
- } from "./chunk-HJXSKVFX.mjs";
5
+ } from "./chunk-TBZGOJJX.mjs";
6
6
  import {
7
7
  __name
8
8
  } from "./chunk-44O2JGUY.mjs";
@@ -204,4 +204,4 @@ export {
204
204
  convertActionInputToLangChainTool,
205
205
  streamLangChainResponse
206
206
  };
207
- //# sourceMappingURL=chunk-LHWJWBDQ.mjs.map
207
+ //# sourceMappingURL=chunk-73NMP3DI.mjs.map
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  RemoteChain
3
- } from "./chunk-LBKOW2DQ.mjs";
3
+ } from "./chunk-LELOFPMM.mjs";
4
4
  import {
5
5
  RuntimeEventSource,
6
6
  isLangGraphAgentAction,
7
7
  setupRemoteActions
8
- } from "./chunk-AMA3GQ3B.mjs";
8
+ } from "./chunk-KZOZDGQL.mjs";
9
9
  import {
10
10
  ActionExecutionMessage,
11
11
  AgentStateMessage,
12
12
  ResultMessage,
13
13
  TextMessage
14
- } from "./chunk-HJXSKVFX.mjs";
14
+ } from "./chunk-TBZGOJJX.mjs";
15
15
  import {
16
16
  __name
17
17
  } from "./chunk-44O2JGUY.mjs";
18
18
 
19
19
  // src/lib/runtime/copilot-runtime.ts
20
- import { actionParametersToJsonSchema } from "@copilotkit/shared";
20
+ import { actionParametersToJsonSchema, randomId } from "@copilotkit/shared";
21
21
 
22
22
  // src/service-adapters/conversion.ts
23
23
  import { plainToInstance } from "class-transformer";
@@ -54,6 +54,8 @@ function convertGqlInputToMessages(inputMessages) {
54
54
  createdAt: message.createdAt,
55
55
  agentName: message.agentStateMessage.agentName,
56
56
  nodeName: message.agentStateMessage.nodeName,
57
+ runId: message.agentStateMessage.runId,
58
+ active: message.agentStateMessage.active,
57
59
  role: message.agentStateMessage.role,
58
60
  state: JSON.parse(message.agentStateMessage.state),
59
61
  running: message.agentStateMessage.running
@@ -146,15 +148,9 @@ var CopilotRuntime = class {
146
148
  async processAgentRequest(request) {
147
149
  var _a;
148
150
  const { messages: rawMessages, outputMessagesPromise, graphqlContext, agentSession } = request;
149
- const { threadId, agentName, nodeName } = agentSession;
151
+ const { threadId = randomId(), agentName, nodeName } = agentSession;
150
152
  const serverSideActions = await this.getServerSideActions(request);
151
153
  const messages = convertGqlInputToMessages(rawMessages);
152
- const agentStateMessages = messages.filter((message) => message instanceof AgentStateMessage);
153
- if (agentStateMessages.length === 0) {
154
- throw new Error("No agent state messages found");
155
- }
156
- const agentStateMessage = agentStateMessages[agentStateMessages.length - 1];
157
- const state = agentStateMessage.state;
158
154
  const agent = serverSideActions.find((action) => action.name === agentName && isLangGraphAgentAction(action));
159
155
  if (!agent) {
160
156
  throw new Error(`Agent ${agentName} not found`);
@@ -178,7 +174,6 @@ var CopilotRuntime = class {
178
174
  const eventSource = new RuntimeEventSource();
179
175
  const stream = await agent.langGraphAgentHandler({
180
176
  name: agentName,
181
- state,
182
177
  threadId,
183
178
  nodeName,
184
179
  actionInputsWithoutAgents
@@ -193,7 +188,7 @@ var CopilotRuntime = class {
193
188
  outputMessagesPromise.then((outputMessages) => {
194
189
  var _a2;
195
190
  (_a2 = this.onAfterRequest) == null ? void 0 : _a2.call(this, {
196
- threadId: request.threadId,
191
+ threadId,
197
192
  runId: void 0,
198
193
  inputMessages: messages,
199
194
  outputMessages,
@@ -202,7 +197,7 @@ var CopilotRuntime = class {
202
197
  }).catch((_error) => {
203
198
  });
204
199
  return {
205
- threadId: request.threadId,
200
+ threadId,
206
201
  runId: void 0,
207
202
  eventSource,
208
203
  serverSideActions: [],
@@ -214,7 +209,7 @@ var CopilotRuntime = class {
214
209
  }
215
210
  }
216
211
  async getServerSideActions(request) {
217
- const { messages: rawMessages, graphqlContext } = request;
212
+ const { messages: rawMessages, graphqlContext, agentStates } = request;
218
213
  const inputMessages = convertGqlInputToMessages(rawMessages);
219
214
  const langserveFunctions = [];
220
215
  for (const chainPromise of this.langserve) {
@@ -228,7 +223,8 @@ var CopilotRuntime = class {
228
223
  const remoteActions = await setupRemoteActions({
229
224
  remoteActionDefinitions: this.remoteActionDefinitions,
230
225
  graphqlContext,
231
- messages: inputMessages
226
+ messages: inputMessages,
227
+ agentStates
232
228
  });
233
229
  const configuredActions = typeof this.actions === "function" ? this.actions({
234
230
  properties: graphqlContext.properties
@@ -258,4 +254,4 @@ export {
258
254
  CopilotRuntime,
259
255
  flattenToolCallsNoDuplicates
260
256
  };
261
- //# sourceMappingURL=chunk-RV3RDJTV.mjs.map
257
+ //# sourceMappingURL=chunk-IFZBG4KM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/runtime/copilot-runtime.ts","../src/service-adapters/conversion.ts"],"sourcesContent":["/**\n * <Callout type=\"info\">\n * This is the reference for the `CopilotRuntime` class. For more information and example code snippets, please see [Concept: Copilot Runtime](/concepts/copilot-runtime).\n * </Callout>\n *\n * ## Usage\n *\n * ```tsx\n * import { CopilotRuntime } from \"@copilotkit/runtime\";\n *\n * const copilotKit = new CopilotRuntime();\n * ```\n */\n\nimport { Action, actionParametersToJsonSchema, Parameter, randomId } from \"@copilotkit/shared\";\nimport { RemoteChain, RemoteChainParameters, CopilotServiceAdapter } from \"../../service-adapters\";\nimport { MessageInput } from \"../../graphql/inputs/message.input\";\nimport { ActionInput } from \"../../graphql/inputs/action.input\";\nimport { RuntimeEventSource } from \"../../service-adapters/events\";\nimport { convertGqlInputToMessages } from \"../../service-adapters/conversion\";\nimport { AgentStateMessage, Message } from \"../../graphql/types/converted\";\nimport { ForwardedParametersInput } from \"../../graphql/inputs/forwarded-parameters.input\";\nimport {\n setupRemoteActions,\n RemoteActionDefinition,\n LangGraphAgentAction,\n isLangGraphAgentAction,\n} from \"./remote-actions\";\nimport { GraphQLContext } from \"../integrations/shared\";\nimport { AgentSessionInput } from \"../../graphql/inputs/agent-session.input\";\nimport { from } from \"rxjs\";\nimport { AgentStateInput } from \"../../graphql/inputs/agent-state.input\";\n\ninterface CopilotRuntimeRequest {\n serviceAdapter: CopilotServiceAdapter;\n messages: MessageInput[];\n actions: ActionInput[];\n agentSession?: AgentSessionInput;\n agentStates?: AgentStateInput[];\n outputMessagesPromise: Promise<Message[]>;\n threadId?: string;\n runId?: string;\n publicApiKey?: string;\n graphqlContext: GraphQLContext;\n forwardedParameters?: ForwardedParametersInput;\n}\n\ninterface CopilotRuntimeResponse {\n threadId: string;\n runId?: string;\n eventSource: RuntimeEventSource;\n serverSideActions: Action<any>[];\n actionInputsWithoutAgents: ActionInput[];\n}\n\ntype ActionsConfiguration<T extends Parameter[] | [] = []> =\n | Action<T>[]\n | ((ctx: { properties: any }) => Action<T>[]);\n\ninterface OnBeforeRequestOptions {\n threadId?: string;\n runId?: string;\n inputMessages: Message[];\n properties: any;\n}\n\ntype OnBeforeRequestHandler = (options: OnBeforeRequestOptions) => void | Promise<void>;\n\ninterface OnAfterRequestOptions {\n threadId: string;\n runId?: string;\n inputMessages: Message[];\n outputMessages: Message[];\n properties: any;\n}\n\ntype OnAfterRequestHandler = (options: OnAfterRequestOptions) => void | Promise<void>;\n\ninterface Middleware {\n /**\n * A function that is called before the request is processed.\n */\n onBeforeRequest?: OnBeforeRequestHandler;\n\n /**\n * A function that is called after the request is processed.\n */\n onAfterRequest?: OnAfterRequestHandler;\n}\n\nexport interface CopilotRuntimeConstructorParams<T extends Parameter[] | [] = []> {\n /**\n * Middleware to be used by the runtime.\n *\n * ```ts\n * onBeforeRequest: (options: {\n * threadId?: string;\n * runId?: string;\n * inputMessages: Message[];\n * properties: any;\n * }) => void | Promise<void>;\n * ```\n *\n * ```ts\n * onAfterRequest: (options: {\n * threadId?: string;\n * runId?: string;\n * inputMessages: Message[];\n * outputMessages: Message[];\n * properties: any;\n * }) => void | Promise<void>;\n * ```\n */\n middleware?: Middleware;\n\n /*\n * A list of server side actions that can be executed.\n */\n actions?: ActionsConfiguration<T>;\n\n /*\n * A list of remote actions that can be executed.\n */\n remoteActions?: RemoteActionDefinition[];\n\n /*\n * An array of LangServer URLs.\n */\n langserve?: RemoteChainParameters[];\n}\n\nexport class CopilotRuntime<const T extends Parameter[] | [] = []> {\n public actions: ActionsConfiguration<T>;\n private remoteActionDefinitions: RemoteActionDefinition[];\n private langserve: Promise<Action<any>>[] = [];\n private onBeforeRequest?: OnBeforeRequestHandler;\n private onAfterRequest?: OnAfterRequestHandler;\n\n constructor(params?: CopilotRuntimeConstructorParams<T>) {\n this.actions = params?.actions || [];\n\n for (const chain of params?.langserve || []) {\n const remoteChain = new RemoteChain(chain);\n this.langserve.push(remoteChain.toAction());\n }\n\n this.remoteActionDefinitions = params?.remoteActions || [];\n\n this.onBeforeRequest = params?.middleware?.onBeforeRequest;\n this.onAfterRequest = params?.middleware?.onAfterRequest;\n }\n\n async processRuntimeRequest(request: CopilotRuntimeRequest): Promise<CopilotRuntimeResponse> {\n const {\n serviceAdapter,\n messages: rawMessages,\n actions: clientSideActionsInput,\n threadId,\n runId,\n outputMessagesPromise,\n graphqlContext,\n forwardedParameters,\n agentSession,\n } = request;\n\n if (agentSession) {\n return this.processAgentRequest(request);\n }\n\n const messages = rawMessages.filter((message) => !message.agentStateMessage);\n\n const inputMessages = convertGqlInputToMessages(messages);\n const serverSideActions = await this.getServerSideActions(request);\n\n const serverSideActionsInput: ActionInput[] = serverSideActions.map((action) => ({\n name: action.name,\n description: action.description,\n jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters)),\n }));\n\n const actionInputs = flattenToolCallsNoDuplicates([\n ...serverSideActionsInput,\n ...clientSideActionsInput,\n ]);\n\n await this.onBeforeRequest?.({\n threadId,\n runId,\n inputMessages,\n properties: graphqlContext.properties,\n });\n\n try {\n const eventSource = new RuntimeEventSource();\n\n const result = await serviceAdapter.process({\n messages: inputMessages,\n actions: actionInputs,\n threadId,\n runId,\n eventSource,\n forwardedParameters,\n });\n\n outputMessagesPromise\n .then((outputMessages) => {\n this.onAfterRequest?.({\n threadId: result.threadId,\n runId: result.runId,\n inputMessages,\n outputMessages,\n properties: graphqlContext.properties,\n });\n })\n .catch((_error) => {});\n\n return {\n threadId: result.threadId,\n runId: result.runId,\n eventSource,\n serverSideActions,\n actionInputsWithoutAgents: actionInputs.filter(\n (action) =>\n // TODO-AGENTS: do not exclude ALL server side actions\n !serverSideActions.find((serverSideAction) => serverSideAction.name == action.name),\n // !isLangGraphAgentAction(\n // serverSideActions.find((serverSideAction) => serverSideAction.name == action.name),\n // ),\n ),\n };\n } catch (error) {\n console.error(\"Error getting response:\", error);\n throw error;\n }\n }\n\n private async processAgentRequest(\n request: CopilotRuntimeRequest,\n ): Promise<CopilotRuntimeResponse> {\n const { messages: rawMessages, outputMessagesPromise, graphqlContext, agentSession } = request;\n const { threadId = randomId(), agentName, nodeName } = agentSession;\n const serverSideActions = await this.getServerSideActions(request);\n\n const messages = convertGqlInputToMessages(rawMessages);\n\n const agent = serverSideActions.find(\n (action) => action.name === agentName && isLangGraphAgentAction(action),\n ) as LangGraphAgentAction;\n\n if (!agent) {\n throw new Error(`Agent ${agentName} not found`);\n }\n\n const serverSideActionsInput: ActionInput[] = serverSideActions\n .filter((action) => !isLangGraphAgentAction(action))\n .map((action) => ({\n name: action.name,\n description: action.description,\n jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters)),\n }));\n\n const actionInputsWithoutAgents = flattenToolCallsNoDuplicates([\n ...serverSideActionsInput,\n ...request.actions,\n ]);\n\n await this.onBeforeRequest?.({\n threadId,\n runId: undefined,\n inputMessages: messages,\n properties: graphqlContext.properties,\n });\n try {\n const eventSource = new RuntimeEventSource();\n const stream = await agent.langGraphAgentHandler({\n name: agentName,\n threadId,\n nodeName,\n actionInputsWithoutAgents,\n });\n\n eventSource.stream(async (eventStream$) => {\n from(stream).subscribe({\n next: (event) => eventStream$.next(event),\n error: (err) => console.error(\"Error in stream\", err),\n complete: () => eventStream$.complete(),\n });\n });\n\n outputMessagesPromise\n .then((outputMessages) => {\n this.onAfterRequest?.({\n threadId,\n runId: undefined,\n inputMessages: messages,\n outputMessages,\n properties: graphqlContext.properties,\n });\n })\n .catch((_error) => {});\n\n return {\n threadId,\n runId: undefined,\n eventSource,\n serverSideActions: [],\n actionInputsWithoutAgents,\n };\n } catch (error) {\n console.error(\"Error getting response:\", error);\n throw error;\n }\n }\n\n private async getServerSideActions(request: CopilotRuntimeRequest): Promise<Action<any>[]> {\n const { messages: rawMessages, graphqlContext, agentStates } = request;\n const inputMessages = convertGqlInputToMessages(rawMessages);\n const langserveFunctions: Action<any>[] = [];\n\n for (const chainPromise of this.langserve) {\n try {\n const chain = await chainPromise;\n langserveFunctions.push(chain);\n } catch (error) {\n console.error(\"Error loading langserve chain:\", error);\n }\n }\n const remoteActions = await setupRemoteActions({\n remoteActionDefinitions: this.remoteActionDefinitions,\n graphqlContext,\n messages: inputMessages,\n agentStates,\n });\n\n const configuredActions =\n typeof this.actions === \"function\"\n ? this.actions({ properties: graphqlContext.properties })\n : this.actions;\n\n return [...configuredActions, ...langserveFunctions, ...remoteActions];\n }\n}\n\nexport function flattenToolCallsNoDuplicates(toolsByPriority: ActionInput[]): ActionInput[] {\n let allTools: ActionInput[] = [];\n const allToolNames: string[] = [];\n for (const tool of toolsByPriority) {\n if (!allToolNames.includes(tool.name)) {\n allTools.push(tool);\n allToolNames.push(tool.name);\n }\n }\n return allTools;\n}\n","import {\n ActionExecutionMessage,\n Message,\n ResultMessage,\n TextMessage,\n AgentStateMessage,\n} from \"../graphql/types/converted\";\nimport { MessageInput } from \"../graphql/inputs/message.input\";\nimport { plainToInstance } from \"class-transformer\";\n\nexport function convertGqlInputToMessages(inputMessages: MessageInput[]): Message[] {\n const messages: Message[] = [];\n\n for (const message of inputMessages) {\n if (message.textMessage) {\n messages.push(\n plainToInstance(TextMessage, {\n id: message.id,\n createdAt: message.createdAt,\n role: message.textMessage.role,\n content: message.textMessage.content,\n }),\n );\n } else if (message.actionExecutionMessage) {\n messages.push(\n plainToInstance(ActionExecutionMessage, {\n id: message.id,\n createdAt: message.createdAt,\n name: message.actionExecutionMessage.name,\n arguments: JSON.parse(message.actionExecutionMessage.arguments),\n scope: message.actionExecutionMessage.scope,\n }),\n );\n } else if (message.resultMessage) {\n messages.push(\n plainToInstance(ResultMessage, {\n id: message.id,\n createdAt: message.createdAt,\n actionExecutionId: message.resultMessage.actionExecutionId,\n actionName: message.resultMessage.actionName,\n result: message.resultMessage.result,\n }),\n );\n } else if (message.agentStateMessage) {\n messages.push(\n plainToInstance(AgentStateMessage, {\n id: message.id,\n threadId: message.agentStateMessage.threadId,\n createdAt: message.createdAt,\n agentName: message.agentStateMessage.agentName,\n nodeName: message.agentStateMessage.nodeName,\n runId: message.agentStateMessage.runId,\n active: message.agentStateMessage.active,\n role: message.agentStateMessage.role,\n state: JSON.parse(message.agentStateMessage.state),\n running: message.agentStateMessage.running,\n }),\n );\n }\n }\n\n return messages;\n}\n"],"mappings":"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","names":["actionParametersToJsonSchema","randomId","plainToInstance","convertGqlInputToMessages","inputMessages","messages","message","textMessage","push","plainToInstance","TextMessage","id","createdAt","role","content","actionExecutionMessage","ActionExecutionMessage","name","arguments","JSON","parse","scope","resultMessage","ResultMessage","actionExecutionId","actionName","result","agentStateMessage","AgentStateMessage","threadId","agentName","nodeName","runId","active","state","running","from","CopilotRuntime","actions","remoteActionDefinitions","langserve","onBeforeRequest","onAfterRequest","constructor","params","chain","remoteChain","RemoteChain","push","toAction","remoteActions","middleware","processRuntimeRequest","request","serviceAdapter","messages","rawMessages","clientSideActionsInput","threadId","runId","outputMessagesPromise","graphqlContext","forwardedParameters","agentSession","processAgentRequest","filter","message","agentStateMessage","inputMessages","convertGqlInputToMessages","serverSideActions","getServerSideActions","serverSideActionsInput","map","action","name","description","jsonSchema","JSON","stringify","actionParametersToJsonSchema","parameters","actionInputs","flattenToolCallsNoDuplicates","properties","eventSource","RuntimeEventSource","result","process","then","outputMessages","_a","catch","_error","actionInputsWithoutAgents","find","serverSideAction","error","console","randomId","agentName","nodeName","agent","isLangGraphAgentAction","Error","undefined","stream","langGraphAgentHandler","eventStream$","from","subscribe","next","event","err","complete","agentStates","langserveFunctions","chainPromise","setupRemoteActions","configuredActions","toolsByPriority","allTools","allToolNames","tool","includes"]}