@copilotkit/runtime 0.0.0-mme-load-agent-state-20250117154700

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 (176) hide show
  1. package/.eslintrc.js +7 -0
  2. package/CHANGELOG.md +929 -0
  3. package/README.md +46 -0
  4. package/__snapshots__/schema/schema.graphql +306 -0
  5. package/dist/chunk-44O2JGUY.mjs +12 -0
  6. package/dist/chunk-44O2JGUY.mjs.map +1 -0
  7. package/dist/chunk-4BWLNVK4.mjs +80 -0
  8. package/dist/chunk-4BWLNVK4.mjs.map +1 -0
  9. package/dist/chunk-4QJA7OT2.mjs +3395 -0
  10. package/dist/chunk-4QJA7OT2.mjs.map +1 -0
  11. package/dist/chunk-4YJIXJLO.mjs +25 -0
  12. package/dist/chunk-4YJIXJLO.mjs.map +1 -0
  13. package/dist/chunk-67KK2GZ5.mjs +3765 -0
  14. package/dist/chunk-67KK2GZ5.mjs.map +1 -0
  15. package/dist/chunk-7BOVBWKI.mjs +25 -0
  16. package/dist/chunk-7BOVBWKI.mjs.map +1 -0
  17. package/dist/chunk-B5KHNAW5.mjs +25 -0
  18. package/dist/chunk-B5KHNAW5.mjs.map +1 -0
  19. package/dist/chunk-CLGKEUOA.mjs +1408 -0
  20. package/dist/chunk-CLGKEUOA.mjs.map +1 -0
  21. package/dist/chunk-D2WLFQS6.mjs +43 -0
  22. package/dist/chunk-D2WLFQS6.mjs.map +1 -0
  23. package/dist/chunk-DFOKBSIS.mjs +1 -0
  24. package/dist/chunk-DFOKBSIS.mjs.map +1 -0
  25. package/dist/chunk-DKLATJGV.mjs +25 -0
  26. package/dist/chunk-DKLATJGV.mjs.map +1 -0
  27. package/dist/chunk-FYONHPZL.mjs +3397 -0
  28. package/dist/chunk-FYONHPZL.mjs.map +1 -0
  29. package/dist/chunk-HNUNXFTW.mjs +129 -0
  30. package/dist/chunk-HNUNXFTW.mjs.map +1 -0
  31. package/dist/chunk-OKUXS4SE.mjs +25 -0
  32. package/dist/chunk-OKUXS4SE.mjs.map +1 -0
  33. package/dist/chunk-P4PPTGPJ.mjs +25 -0
  34. package/dist/chunk-P4PPTGPJ.mjs.map +1 -0
  35. package/dist/chunk-RFF5IIZJ.mjs +66 -0
  36. package/dist/chunk-RFF5IIZJ.mjs.map +1 -0
  37. package/dist/chunk-U3V2BCGI.mjs +152 -0
  38. package/dist/chunk-U3V2BCGI.mjs.map +1 -0
  39. package/dist/chunk-U7EKYV47.mjs +80 -0
  40. package/dist/chunk-U7EKYV47.mjs.map +1 -0
  41. package/dist/chunk-XXYYCH4X.mjs +80 -0
  42. package/dist/chunk-XXYYCH4X.mjs.map +1 -0
  43. package/dist/chunk-YT7A6V5T.mjs +1420 -0
  44. package/dist/chunk-YT7A6V5T.mjs.map +1 -0
  45. package/dist/copilot-runtime-36700e00.d.ts +196 -0
  46. package/dist/copilot-runtime-8c442d65.d.ts +209 -0
  47. package/dist/graphql/types/base/index.d.ts +6 -0
  48. package/dist/graphql/types/base/index.js +63 -0
  49. package/dist/graphql/types/base/index.js.map +1 -0
  50. package/dist/graphql/types/base/index.mjs +8 -0
  51. package/dist/graphql/types/base/index.mjs.map +1 -0
  52. package/dist/graphql/types/converted/index.d.ts +2 -0
  53. package/dist/graphql/types/converted/index.js +187 -0
  54. package/dist/graphql/types/converted/index.js.map +1 -0
  55. package/dist/graphql/types/converted/index.mjs +17 -0
  56. package/dist/graphql/types/converted/index.mjs.map +1 -0
  57. package/dist/groq-adapter-696b5d29.d.ts +281 -0
  58. package/dist/groq-adapter-7a82cd22.d.ts +301 -0
  59. package/dist/index-a7f37670.d.ts +103 -0
  60. package/dist/index-cc2b17be.d.ts +87 -0
  61. package/dist/index.d.ts +23 -0
  62. package/dist/index.js +5597 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/index.mjs +76 -0
  65. package/dist/index.mjs.map +1 -0
  66. package/dist/langserve-9125a12e.d.ts +176 -0
  67. package/dist/langserve-e308c437.d.ts +209 -0
  68. package/dist/lib/cloud/index.d.ts +6 -0
  69. package/dist/lib/cloud/index.js +18 -0
  70. package/dist/lib/cloud/index.js.map +1 -0
  71. package/dist/lib/cloud/index.mjs +1 -0
  72. package/dist/lib/cloud/index.mjs.map +1 -0
  73. package/dist/lib/index.d.ts +20 -0
  74. package/dist/lib/index.js +5256 -0
  75. package/dist/lib/index.js.map +1 -0
  76. package/dist/lib/index.mjs +58 -0
  77. package/dist/lib/index.mjs.map +1 -0
  78. package/dist/lib/integrations/index.d.ts +33 -0
  79. package/dist/lib/integrations/index.js +2488 -0
  80. package/dist/lib/integrations/index.js.map +1 -0
  81. package/dist/lib/integrations/index.mjs +34 -0
  82. package/dist/lib/integrations/index.mjs.map +1 -0
  83. package/dist/lib/integrations/nest/index.d.ts +14 -0
  84. package/dist/lib/integrations/nest/index.js +2397 -0
  85. package/dist/lib/integrations/nest/index.js.map +1 -0
  86. package/dist/lib/integrations/nest/index.mjs +13 -0
  87. package/dist/lib/integrations/nest/index.mjs.map +1 -0
  88. package/dist/lib/integrations/node-express/index.d.ts +14 -0
  89. package/dist/lib/integrations/node-express/index.js +2397 -0
  90. package/dist/lib/integrations/node-express/index.js.map +1 -0
  91. package/dist/lib/integrations/node-express/index.mjs +13 -0
  92. package/dist/lib/integrations/node-express/index.mjs.map +1 -0
  93. package/dist/lib/integrations/node-http/index.d.ts +14 -0
  94. package/dist/lib/integrations/node-http/index.js +2383 -0
  95. package/dist/lib/integrations/node-http/index.js.map +1 -0
  96. package/dist/lib/integrations/node-http/index.mjs +12 -0
  97. package/dist/lib/integrations/node-http/index.mjs.map +1 -0
  98. package/dist/service-adapters/index.d.ts +84 -0
  99. package/dist/service-adapters/index.js +1460 -0
  100. package/dist/service-adapters/index.js.map +1 -0
  101. package/dist/service-adapters/index.mjs +26 -0
  102. package/dist/service-adapters/index.mjs.map +1 -0
  103. package/dist/utils/index.d.ts +49 -0
  104. package/dist/utils/index.js +174 -0
  105. package/dist/utils/index.js.map +1 -0
  106. package/dist/utils/index.mjs +12 -0
  107. package/dist/utils/index.mjs.map +1 -0
  108. package/jest.config.js +5 -0
  109. package/package.json +85 -0
  110. package/scripts/generate-gql-schema.ts +13 -0
  111. package/src/agents/langgraph/event-source.ts +287 -0
  112. package/src/agents/langgraph/events.ts +338 -0
  113. package/src/graphql/inputs/action.input.ts +16 -0
  114. package/src/graphql/inputs/agent-session.input.ts +13 -0
  115. package/src/graphql/inputs/agent-state.input.ts +10 -0
  116. package/src/graphql/inputs/cloud-guardrails.input.ts +16 -0
  117. package/src/graphql/inputs/cloud.input.ts +8 -0
  118. package/src/graphql/inputs/context-property.input.ts +10 -0
  119. package/src/graphql/inputs/custom-property.input.ts +15 -0
  120. package/src/graphql/inputs/extensions.input.ts +21 -0
  121. package/src/graphql/inputs/forwarded-parameters.input.ts +22 -0
  122. package/src/graphql/inputs/frontend.input.ts +14 -0
  123. package/src/graphql/inputs/generate-copilot-response.input.ts +51 -0
  124. package/src/graphql/inputs/load-agent-state.input.ts +10 -0
  125. package/src/graphql/inputs/message.input.ts +92 -0
  126. package/src/graphql/resolvers/copilot.resolver.ts +561 -0
  127. package/src/graphql/resolvers/state.resolver.ts +23 -0
  128. package/src/graphql/types/agents-response.type.ts +19 -0
  129. package/src/graphql/types/base/index.ts +10 -0
  130. package/src/graphql/types/converted/index.ts +136 -0
  131. package/src/graphql/types/copilot-response.type.ts +117 -0
  132. package/src/graphql/types/enums.ts +37 -0
  133. package/src/graphql/types/extensions-response.type.ts +23 -0
  134. package/src/graphql/types/guardrails-result.type.ts +20 -0
  135. package/src/graphql/types/load-agent-state-response.type.ts +17 -0
  136. package/src/graphql/types/message-status.type.ts +40 -0
  137. package/src/graphql/types/response-status.type.ts +66 -0
  138. package/src/index.ts +4 -0
  139. package/src/lib/cloud/index.ts +4 -0
  140. package/src/lib/index.ts +8 -0
  141. package/src/lib/integrations/index.ts +6 -0
  142. package/src/lib/integrations/nest/index.ts +17 -0
  143. package/src/lib/integrations/nextjs/app-router.ts +40 -0
  144. package/src/lib/integrations/nextjs/pages-router.ts +49 -0
  145. package/src/lib/integrations/node-express/index.ts +17 -0
  146. package/src/lib/integrations/node-http/index.ts +34 -0
  147. package/src/lib/integrations/shared.ts +110 -0
  148. package/src/lib/logger.ts +28 -0
  149. package/src/lib/runtime/copilot-runtime.ts +571 -0
  150. package/src/lib/runtime/remote-action-constructors.ts +304 -0
  151. package/src/lib/runtime/remote-actions.ts +174 -0
  152. package/src/lib/runtime/remote-lg-action.ts +669 -0
  153. package/src/lib/telemetry-client.ts +52 -0
  154. package/src/service-adapters/anthropic/anthropic-adapter.ts +204 -0
  155. package/src/service-adapters/anthropic/utils.ts +144 -0
  156. package/src/service-adapters/conversion.ts +64 -0
  157. package/src/service-adapters/events.ts +424 -0
  158. package/src/service-adapters/experimental/empty/empty-adapter.ts +33 -0
  159. package/src/service-adapters/experimental/ollama/ollama-adapter.ts +79 -0
  160. package/src/service-adapters/google/google-genai-adapter.ts +39 -0
  161. package/src/service-adapters/groq/groq-adapter.ts +173 -0
  162. package/src/service-adapters/index.ts +16 -0
  163. package/src/service-adapters/langchain/langchain-adapter.ts +106 -0
  164. package/src/service-adapters/langchain/langserve.ts +87 -0
  165. package/src/service-adapters/langchain/types.ts +14 -0
  166. package/src/service-adapters/langchain/utils.ts +306 -0
  167. package/src/service-adapters/openai/openai-adapter.ts +211 -0
  168. package/src/service-adapters/openai/openai-assistant-adapter.ts +315 -0
  169. package/src/service-adapters/openai/utils.ts +161 -0
  170. package/src/service-adapters/service-adapter.ts +34 -0
  171. package/src/service-adapters/unify/unify-adapter.ts +144 -0
  172. package/src/utils/failed-response-status-reasons.ts +48 -0
  173. package/src/utils/index.ts +1 -0
  174. package/tsconfig.json +11 -0
  175. package/tsup.config.ts +16 -0
  176. package/typedoc.json +4 -0
@@ -0,0 +1,3397 @@
1
+ import {
2
+ RemoteChain,
3
+ streamLangChainResponse
4
+ } from "./chunk-CLGKEUOA.mjs";
5
+ import {
6
+ GuardrailsValidationFailureResponse,
7
+ MessageStreamInterruptedResponse,
8
+ ResponseStatusUnion,
9
+ SuccessResponseStatus,
10
+ UnknownErrorResponse
11
+ } from "./chunk-U3V2BCGI.mjs";
12
+ import {
13
+ ActionExecutionMessage,
14
+ AgentStateMessage,
15
+ ResultMessage,
16
+ TextMessage
17
+ } from "./chunk-RFF5IIZJ.mjs";
18
+ import {
19
+ BaseMessageInput
20
+ } from "./chunk-D2WLFQS6.mjs";
21
+ import {
22
+ __commonJS,
23
+ __name
24
+ } from "./chunk-44O2JGUY.mjs";
25
+
26
+ // package.json
27
+ var require_package = __commonJS({
28
+ "package.json"(exports, module) {
29
+ module.exports = {
30
+ name: "@copilotkit/runtime",
31
+ private: false,
32
+ homepage: "https://github.com/CopilotKit/CopilotKit",
33
+ repository: {
34
+ type: "git",
35
+ url: "https://github.com/CopilotKit/CopilotKit.git"
36
+ },
37
+ publishConfig: {
38
+ access: "public"
39
+ },
40
+ version: "1.5.12-next.0",
41
+ sideEffects: false,
42
+ main: "./dist/index.js",
43
+ module: "./dist/index.mjs",
44
+ exports: {
45
+ ".": "./dist/index.js"
46
+ },
47
+ types: "./dist/index.d.ts",
48
+ license: "MIT",
49
+ scripts: {
50
+ build: 'tsup --onSuccess "pnpm run generate-graphql-schema"',
51
+ dev: 'tsup --watch --onSuccess "pnpm run generate-graphql-schema"',
52
+ test: "jest --passWithNoTests",
53
+ "check-types": "tsc --noEmit",
54
+ clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf .next && rm -rf __snapshots__",
55
+ "generate-graphql-schema": "rm -rf __snapshots__ && ts-node ./scripts/generate-gql-schema.ts",
56
+ "link:global": "pnpm link --global",
57
+ "unlink:global": "pnpm unlink --global",
58
+ postbuild: "rm -rf ./../../../../identify-turbopack-issue/temp-packages/runtime/dist &&cp -r ./dist/ ./../../../../identify-turbopack-issue/temp-packages/runtime/dist"
59
+ },
60
+ devDependencies: {
61
+ "@swc/core": "1.5.28",
62
+ "@types/express": "^4.17.21",
63
+ "@types/jest": "^29.5.4",
64
+ "@types/node": "^18.11.17",
65
+ "@whatwg-node/server": "^0.9.34",
66
+ eslint: "^8.56.0",
67
+ "eslint-config-custom": "workspace:*",
68
+ jest: "^29.6.4",
69
+ nodemon: "^3.1.3",
70
+ "ts-jest": "^29.1.1",
71
+ "ts-node": "^10.9.2",
72
+ tsconfig: "workspace:*",
73
+ tsup: "^6.7.0",
74
+ typescript: "^5.2.3",
75
+ "zod-to-json-schema": "^3.23.5"
76
+ },
77
+ dependencies: {
78
+ "@anthropic-ai/sdk": "^0.27.3",
79
+ "@copilotkit/shared": "workspace:*",
80
+ "@graphql-yoga/plugin-defer-stream": "^3.3.1",
81
+ "@langchain/community": "^0.0.53",
82
+ "@langchain/core": "^0.3.13",
83
+ "@langchain/google-gauth": "^0.1.0",
84
+ "@langchain/langgraph-sdk": "^0.0.16",
85
+ "@langchain/openai": "^0.0.28",
86
+ "class-transformer": "^0.5.1",
87
+ express: "^4.19.2",
88
+ graphql: "^16.8.1",
89
+ "graphql-scalars": "^1.23.0",
90
+ "graphql-yoga": "^5.3.1",
91
+ "groq-sdk": "^0.5.0",
92
+ langchain: "^0.3.3",
93
+ openai: "^4.50.0",
94
+ "partial-json": "^0.1.7",
95
+ pino: "^9.2.0",
96
+ "pino-pretty": "^11.2.1",
97
+ "reflect-metadata": "^0.2.2",
98
+ rxjs: "^7.8.1",
99
+ "type-graphql": "2.0.0-rc.1",
100
+ zod: "^3.23.3"
101
+ },
102
+ keywords: [
103
+ "copilotkit",
104
+ "copilot",
105
+ "react",
106
+ "nextjs",
107
+ "nodejs",
108
+ "ai",
109
+ "assistant",
110
+ "javascript",
111
+ "automation",
112
+ "textarea"
113
+ ]
114
+ };
115
+ }
116
+ });
117
+
118
+ // src/lib/integrations/node-http/index.ts
119
+ import { createYoga } from "graphql-yoga";
120
+
121
+ // src/lib/integrations/shared.ts
122
+ import { buildSchemaSync } from "type-graphql";
123
+
124
+ // src/graphql/resolvers/copilot.resolver.ts
125
+ import { Arg, Ctx, Mutation, Query, Resolver } from "type-graphql";
126
+ import { ReplaySubject as ReplaySubject3, Subject, filter, finalize, firstValueFrom as firstValueFrom2, shareReplay, skipWhile, take, takeWhile, tap } from "rxjs";
127
+
128
+ // src/graphql/inputs/generate-copilot-response.input.ts
129
+ import { Field as Field9, InputType as InputType9 } from "type-graphql";
130
+
131
+ // src/graphql/inputs/message.input.ts
132
+ import { Field, InputType } from "type-graphql";
133
+
134
+ // src/graphql/types/enums.ts
135
+ import { registerEnumType } from "type-graphql";
136
+ var MessageRole;
137
+ (function(MessageRole2) {
138
+ MessageRole2["user"] = "user";
139
+ MessageRole2["assistant"] = "assistant";
140
+ MessageRole2["system"] = "system";
141
+ MessageRole2["tool"] = "tool";
142
+ })(MessageRole || (MessageRole = {}));
143
+ var CopilotRequestType;
144
+ (function(CopilotRequestType2) {
145
+ CopilotRequestType2["Chat"] = "Chat";
146
+ CopilotRequestType2["Task"] = "Task";
147
+ CopilotRequestType2["TextareaCompletion"] = "TextareaCompletion";
148
+ CopilotRequestType2["TextareaPopover"] = "TextareaPopover";
149
+ CopilotRequestType2["Suggestion"] = "Suggestion";
150
+ })(CopilotRequestType || (CopilotRequestType = {}));
151
+ var ActionInputAvailability;
152
+ (function(ActionInputAvailability2) {
153
+ ActionInputAvailability2["disabled"] = "disabled";
154
+ ActionInputAvailability2["enabled"] = "enabled";
155
+ ActionInputAvailability2["remote"] = "remote";
156
+ })(ActionInputAvailability || (ActionInputAvailability = {}));
157
+ registerEnumType(MessageRole, {
158
+ name: "MessageRole",
159
+ description: "The role of the message"
160
+ });
161
+ registerEnumType(CopilotRequestType, {
162
+ name: "CopilotRequestType",
163
+ description: "The type of Copilot request"
164
+ });
165
+ registerEnumType(ActionInputAvailability, {
166
+ name: "ActionInputAvailability",
167
+ description: "The availability of the frontend action"
168
+ });
169
+
170
+ // src/graphql/inputs/message.input.ts
171
+ function _ts_decorate(decorators, target, key, desc) {
172
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
173
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
174
+ r = Reflect.decorate(decorators, target, key, desc);
175
+ else
176
+ for (var i = decorators.length - 1; i >= 0; i--)
177
+ if (d = decorators[i])
178
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
179
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
180
+ }
181
+ __name(_ts_decorate, "_ts_decorate");
182
+ function _ts_metadata(k, v) {
183
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
184
+ return Reflect.metadata(k, v);
185
+ }
186
+ __name(_ts_metadata, "_ts_metadata");
187
+ var MessageInput = class extends BaseMessageInput {
188
+ textMessage;
189
+ actionExecutionMessage;
190
+ resultMessage;
191
+ agentStateMessage;
192
+ };
193
+ __name(MessageInput, "MessageInput");
194
+ _ts_decorate([
195
+ Field(() => TextMessageInput, {
196
+ nullable: true
197
+ }),
198
+ _ts_metadata("design:type", typeof TextMessageInput === "undefined" ? Object : TextMessageInput)
199
+ ], MessageInput.prototype, "textMessage", void 0);
200
+ _ts_decorate([
201
+ Field(() => ActionExecutionMessageInput, {
202
+ nullable: true
203
+ }),
204
+ _ts_metadata("design:type", typeof ActionExecutionMessageInput === "undefined" ? Object : ActionExecutionMessageInput)
205
+ ], MessageInput.prototype, "actionExecutionMessage", void 0);
206
+ _ts_decorate([
207
+ Field(() => ResultMessageInput, {
208
+ nullable: true
209
+ }),
210
+ _ts_metadata("design:type", typeof ResultMessageInput === "undefined" ? Object : ResultMessageInput)
211
+ ], MessageInput.prototype, "resultMessage", void 0);
212
+ _ts_decorate([
213
+ Field(() => AgentStateMessageInput, {
214
+ nullable: true
215
+ }),
216
+ _ts_metadata("design:type", typeof AgentStateMessageInput === "undefined" ? Object : AgentStateMessageInput)
217
+ ], MessageInput.prototype, "agentStateMessage", void 0);
218
+ MessageInput = _ts_decorate([
219
+ InputType()
220
+ ], MessageInput);
221
+ var TextMessageInput = class {
222
+ content;
223
+ parentMessageId;
224
+ role;
225
+ };
226
+ __name(TextMessageInput, "TextMessageInput");
227
+ _ts_decorate([
228
+ Field(() => String),
229
+ _ts_metadata("design:type", String)
230
+ ], TextMessageInput.prototype, "content", void 0);
231
+ _ts_decorate([
232
+ Field(() => String, {
233
+ nullable: true
234
+ }),
235
+ _ts_metadata("design:type", String)
236
+ ], TextMessageInput.prototype, "parentMessageId", void 0);
237
+ _ts_decorate([
238
+ Field(() => MessageRole),
239
+ _ts_metadata("design:type", typeof MessageRole === "undefined" ? Object : MessageRole)
240
+ ], TextMessageInput.prototype, "role", void 0);
241
+ TextMessageInput = _ts_decorate([
242
+ InputType()
243
+ ], TextMessageInput);
244
+ var ActionExecutionMessageInput = class {
245
+ name;
246
+ arguments;
247
+ parentMessageId;
248
+ scope;
249
+ };
250
+ __name(ActionExecutionMessageInput, "ActionExecutionMessageInput");
251
+ _ts_decorate([
252
+ Field(() => String),
253
+ _ts_metadata("design:type", String)
254
+ ], ActionExecutionMessageInput.prototype, "name", void 0);
255
+ _ts_decorate([
256
+ Field(() => String),
257
+ _ts_metadata("design:type", String)
258
+ ], ActionExecutionMessageInput.prototype, "arguments", void 0);
259
+ _ts_decorate([
260
+ Field(() => String, {
261
+ nullable: true
262
+ }),
263
+ _ts_metadata("design:type", String)
264
+ ], ActionExecutionMessageInput.prototype, "parentMessageId", void 0);
265
+ _ts_decorate([
266
+ Field(() => String, {
267
+ nullable: true,
268
+ deprecationReason: "This field will be removed in a future version"
269
+ }),
270
+ _ts_metadata("design:type", typeof String === "undefined" ? Object : String)
271
+ ], ActionExecutionMessageInput.prototype, "scope", void 0);
272
+ ActionExecutionMessageInput = _ts_decorate([
273
+ InputType()
274
+ ], ActionExecutionMessageInput);
275
+ var ResultMessageInput = class {
276
+ actionExecutionId;
277
+ actionName;
278
+ parentMessageId;
279
+ result;
280
+ };
281
+ __name(ResultMessageInput, "ResultMessageInput");
282
+ _ts_decorate([
283
+ Field(() => String),
284
+ _ts_metadata("design:type", String)
285
+ ], ResultMessageInput.prototype, "actionExecutionId", void 0);
286
+ _ts_decorate([
287
+ Field(() => String),
288
+ _ts_metadata("design:type", String)
289
+ ], ResultMessageInput.prototype, "actionName", void 0);
290
+ _ts_decorate([
291
+ Field(() => String, {
292
+ nullable: true
293
+ }),
294
+ _ts_metadata("design:type", String)
295
+ ], ResultMessageInput.prototype, "parentMessageId", void 0);
296
+ _ts_decorate([
297
+ Field(() => String),
298
+ _ts_metadata("design:type", String)
299
+ ], ResultMessageInput.prototype, "result", void 0);
300
+ ResultMessageInput = _ts_decorate([
301
+ InputType()
302
+ ], ResultMessageInput);
303
+ var AgentStateMessageInput = class {
304
+ threadId;
305
+ agentName;
306
+ role;
307
+ state;
308
+ running;
309
+ nodeName;
310
+ runId;
311
+ active;
312
+ };
313
+ __name(AgentStateMessageInput, "AgentStateMessageInput");
314
+ _ts_decorate([
315
+ Field(() => String),
316
+ _ts_metadata("design:type", String)
317
+ ], AgentStateMessageInput.prototype, "threadId", void 0);
318
+ _ts_decorate([
319
+ Field(() => String),
320
+ _ts_metadata("design:type", String)
321
+ ], AgentStateMessageInput.prototype, "agentName", void 0);
322
+ _ts_decorate([
323
+ Field(() => MessageRole),
324
+ _ts_metadata("design:type", typeof MessageRole === "undefined" ? Object : MessageRole)
325
+ ], AgentStateMessageInput.prototype, "role", void 0);
326
+ _ts_decorate([
327
+ Field(() => String),
328
+ _ts_metadata("design:type", String)
329
+ ], AgentStateMessageInput.prototype, "state", void 0);
330
+ _ts_decorate([
331
+ Field(() => Boolean),
332
+ _ts_metadata("design:type", Boolean)
333
+ ], AgentStateMessageInput.prototype, "running", void 0);
334
+ _ts_decorate([
335
+ Field(() => String),
336
+ _ts_metadata("design:type", String)
337
+ ], AgentStateMessageInput.prototype, "nodeName", void 0);
338
+ _ts_decorate([
339
+ Field(() => String),
340
+ _ts_metadata("design:type", String)
341
+ ], AgentStateMessageInput.prototype, "runId", void 0);
342
+ _ts_decorate([
343
+ Field(() => Boolean),
344
+ _ts_metadata("design:type", Boolean)
345
+ ], AgentStateMessageInput.prototype, "active", void 0);
346
+ AgentStateMessageInput = _ts_decorate([
347
+ InputType()
348
+ ], AgentStateMessageInput);
349
+
350
+ // src/graphql/inputs/frontend.input.ts
351
+ import { Field as Field3, InputType as InputType3 } from "type-graphql";
352
+
353
+ // src/graphql/inputs/action.input.ts
354
+ import { Field as Field2, InputType as InputType2 } from "type-graphql";
355
+ function _ts_decorate2(decorators, target, key, desc) {
356
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
357
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
358
+ r = Reflect.decorate(decorators, target, key, desc);
359
+ else
360
+ for (var i = decorators.length - 1; i >= 0; i--)
361
+ if (d = decorators[i])
362
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
363
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
364
+ }
365
+ __name(_ts_decorate2, "_ts_decorate");
366
+ function _ts_metadata2(k, v) {
367
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
368
+ return Reflect.metadata(k, v);
369
+ }
370
+ __name(_ts_metadata2, "_ts_metadata");
371
+ var ActionInput = class {
372
+ name;
373
+ description;
374
+ jsonSchema;
375
+ available;
376
+ };
377
+ __name(ActionInput, "ActionInput");
378
+ _ts_decorate2([
379
+ Field2(() => String),
380
+ _ts_metadata2("design:type", String)
381
+ ], ActionInput.prototype, "name", void 0);
382
+ _ts_decorate2([
383
+ Field2(() => String),
384
+ _ts_metadata2("design:type", String)
385
+ ], ActionInput.prototype, "description", void 0);
386
+ _ts_decorate2([
387
+ Field2(() => String),
388
+ _ts_metadata2("design:type", String)
389
+ ], ActionInput.prototype, "jsonSchema", void 0);
390
+ _ts_decorate2([
391
+ Field2(() => ActionInputAvailability, {
392
+ nullable: true
393
+ }),
394
+ _ts_metadata2("design:type", typeof ActionInputAvailability === "undefined" ? Object : ActionInputAvailability)
395
+ ], ActionInput.prototype, "available", void 0);
396
+ ActionInput = _ts_decorate2([
397
+ InputType2()
398
+ ], ActionInput);
399
+
400
+ // src/graphql/inputs/frontend.input.ts
401
+ function _ts_decorate3(decorators, target, key, desc) {
402
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
403
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
404
+ r = Reflect.decorate(decorators, target, key, desc);
405
+ else
406
+ for (var i = decorators.length - 1; i >= 0; i--)
407
+ if (d = decorators[i])
408
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
409
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
410
+ }
411
+ __name(_ts_decorate3, "_ts_decorate");
412
+ function _ts_metadata3(k, v) {
413
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
414
+ return Reflect.metadata(k, v);
415
+ }
416
+ __name(_ts_metadata3, "_ts_metadata");
417
+ var FrontendInput = class {
418
+ toDeprecate_fullContext;
419
+ actions;
420
+ url;
421
+ };
422
+ __name(FrontendInput, "FrontendInput");
423
+ _ts_decorate3([
424
+ Field3(() => String, {
425
+ nullable: true
426
+ }),
427
+ _ts_metadata3("design:type", String)
428
+ ], FrontendInput.prototype, "toDeprecate_fullContext", void 0);
429
+ _ts_decorate3([
430
+ Field3(() => [
431
+ ActionInput
432
+ ]),
433
+ _ts_metadata3("design:type", Array)
434
+ ], FrontendInput.prototype, "actions", void 0);
435
+ _ts_decorate3([
436
+ Field3(() => String, {
437
+ nullable: true
438
+ }),
439
+ _ts_metadata3("design:type", String)
440
+ ], FrontendInput.prototype, "url", void 0);
441
+ FrontendInput = _ts_decorate3([
442
+ InputType3()
443
+ ], FrontendInput);
444
+
445
+ // src/graphql/inputs/cloud.input.ts
446
+ import { Field as Field5, InputType as InputType5 } from "type-graphql";
447
+
448
+ // src/graphql/inputs/cloud-guardrails.input.ts
449
+ import { Field as Field4, InputType as InputType4 } from "type-graphql";
450
+ function _ts_decorate4(decorators, target, key, desc) {
451
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
452
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
453
+ r = Reflect.decorate(decorators, target, key, desc);
454
+ else
455
+ for (var i = decorators.length - 1; i >= 0; i--)
456
+ if (d = decorators[i])
457
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
458
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
459
+ }
460
+ __name(_ts_decorate4, "_ts_decorate");
461
+ function _ts_metadata4(k, v) {
462
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
463
+ return Reflect.metadata(k, v);
464
+ }
465
+ __name(_ts_metadata4, "_ts_metadata");
466
+ var GuardrailsRuleInput = class {
467
+ allowList = [];
468
+ denyList = [];
469
+ };
470
+ __name(GuardrailsRuleInput, "GuardrailsRuleInput");
471
+ _ts_decorate4([
472
+ Field4(() => [
473
+ String
474
+ ], {
475
+ nullable: true
476
+ }),
477
+ _ts_metadata4("design:type", Array)
478
+ ], GuardrailsRuleInput.prototype, "allowList", void 0);
479
+ _ts_decorate4([
480
+ Field4(() => [
481
+ String
482
+ ], {
483
+ nullable: true
484
+ }),
485
+ _ts_metadata4("design:type", Array)
486
+ ], GuardrailsRuleInput.prototype, "denyList", void 0);
487
+ GuardrailsRuleInput = _ts_decorate4([
488
+ InputType4()
489
+ ], GuardrailsRuleInput);
490
+ var GuardrailsInput = class {
491
+ inputValidationRules;
492
+ };
493
+ __name(GuardrailsInput, "GuardrailsInput");
494
+ _ts_decorate4([
495
+ Field4(() => GuardrailsRuleInput, {
496
+ nullable: false
497
+ }),
498
+ _ts_metadata4("design:type", typeof GuardrailsRuleInput === "undefined" ? Object : GuardrailsRuleInput)
499
+ ], GuardrailsInput.prototype, "inputValidationRules", void 0);
500
+ GuardrailsInput = _ts_decorate4([
501
+ InputType4()
502
+ ], GuardrailsInput);
503
+
504
+ // src/graphql/inputs/cloud.input.ts
505
+ function _ts_decorate5(decorators, target, key, desc) {
506
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
507
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
508
+ r = Reflect.decorate(decorators, target, key, desc);
509
+ else
510
+ for (var i = decorators.length - 1; i >= 0; i--)
511
+ if (d = decorators[i])
512
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
513
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
514
+ }
515
+ __name(_ts_decorate5, "_ts_decorate");
516
+ function _ts_metadata5(k, v) {
517
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
518
+ return Reflect.metadata(k, v);
519
+ }
520
+ __name(_ts_metadata5, "_ts_metadata");
521
+ var CloudInput = class {
522
+ guardrails;
523
+ };
524
+ __name(CloudInput, "CloudInput");
525
+ _ts_decorate5([
526
+ Field5(() => GuardrailsInput, {
527
+ nullable: true
528
+ }),
529
+ _ts_metadata5("design:type", typeof GuardrailsInput === "undefined" ? Object : GuardrailsInput)
530
+ ], CloudInput.prototype, "guardrails", void 0);
531
+ CloudInput = _ts_decorate5([
532
+ InputType5()
533
+ ], CloudInput);
534
+
535
+ // src/graphql/inputs/forwarded-parameters.input.ts
536
+ import { Field as Field6, InputType as InputType6 } from "type-graphql";
537
+ function _ts_decorate6(decorators, target, key, desc) {
538
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
539
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
540
+ r = Reflect.decorate(decorators, target, key, desc);
541
+ else
542
+ for (var i = decorators.length - 1; i >= 0; i--)
543
+ if (d = decorators[i])
544
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
545
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
546
+ }
547
+ __name(_ts_decorate6, "_ts_decorate");
548
+ function _ts_metadata6(k, v) {
549
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
550
+ return Reflect.metadata(k, v);
551
+ }
552
+ __name(_ts_metadata6, "_ts_metadata");
553
+ var ForwardedParametersInput = class {
554
+ model;
555
+ maxTokens;
556
+ stop;
557
+ toolChoice;
558
+ toolChoiceFunctionName;
559
+ temperature;
560
+ };
561
+ __name(ForwardedParametersInput, "ForwardedParametersInput");
562
+ _ts_decorate6([
563
+ Field6(() => String, {
564
+ nullable: true
565
+ }),
566
+ _ts_metadata6("design:type", String)
567
+ ], ForwardedParametersInput.prototype, "model", void 0);
568
+ _ts_decorate6([
569
+ Field6(() => Number, {
570
+ nullable: true
571
+ }),
572
+ _ts_metadata6("design:type", Number)
573
+ ], ForwardedParametersInput.prototype, "maxTokens", void 0);
574
+ _ts_decorate6([
575
+ Field6(() => [
576
+ String
577
+ ], {
578
+ nullable: true
579
+ }),
580
+ _ts_metadata6("design:type", Array)
581
+ ], ForwardedParametersInput.prototype, "stop", void 0);
582
+ _ts_decorate6([
583
+ Field6(() => String, {
584
+ nullable: true
585
+ }),
586
+ _ts_metadata6("design:type", typeof String === "undefined" ? Object : String)
587
+ ], ForwardedParametersInput.prototype, "toolChoice", void 0);
588
+ _ts_decorate6([
589
+ Field6(() => String, {
590
+ nullable: true
591
+ }),
592
+ _ts_metadata6("design:type", String)
593
+ ], ForwardedParametersInput.prototype, "toolChoiceFunctionName", void 0);
594
+ _ts_decorate6([
595
+ Field6(() => Number, {
596
+ nullable: true
597
+ }),
598
+ _ts_metadata6("design:type", Number)
599
+ ], ForwardedParametersInput.prototype, "temperature", void 0);
600
+ ForwardedParametersInput = _ts_decorate6([
601
+ InputType6()
602
+ ], ForwardedParametersInput);
603
+
604
+ // src/graphql/inputs/agent-session.input.ts
605
+ import { Field as Field7, InputType as InputType7 } from "type-graphql";
606
+ function _ts_decorate7(decorators, target, key, desc) {
607
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
608
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
609
+ r = Reflect.decorate(decorators, target, key, desc);
610
+ else
611
+ for (var i = decorators.length - 1; i >= 0; i--)
612
+ if (d = decorators[i])
613
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
614
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
615
+ }
616
+ __name(_ts_decorate7, "_ts_decorate");
617
+ function _ts_metadata7(k, v) {
618
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
619
+ return Reflect.metadata(k, v);
620
+ }
621
+ __name(_ts_metadata7, "_ts_metadata");
622
+ var AgentSessionInput = class {
623
+ agentName;
624
+ threadId;
625
+ nodeName;
626
+ };
627
+ __name(AgentSessionInput, "AgentSessionInput");
628
+ _ts_decorate7([
629
+ Field7(() => String),
630
+ _ts_metadata7("design:type", String)
631
+ ], AgentSessionInput.prototype, "agentName", void 0);
632
+ _ts_decorate7([
633
+ Field7(() => String, {
634
+ nullable: true
635
+ }),
636
+ _ts_metadata7("design:type", String)
637
+ ], AgentSessionInput.prototype, "threadId", void 0);
638
+ _ts_decorate7([
639
+ Field7(() => String, {
640
+ nullable: true
641
+ }),
642
+ _ts_metadata7("design:type", String)
643
+ ], AgentSessionInput.prototype, "nodeName", void 0);
644
+ AgentSessionInput = _ts_decorate7([
645
+ InputType7()
646
+ ], AgentSessionInput);
647
+
648
+ // src/graphql/inputs/agent-state.input.ts
649
+ import { Field as Field8, InputType as InputType8 } from "type-graphql";
650
+ function _ts_decorate8(decorators, target, key, desc) {
651
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
652
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
653
+ r = Reflect.decorate(decorators, target, key, desc);
654
+ else
655
+ for (var i = decorators.length - 1; i >= 0; i--)
656
+ if (d = decorators[i])
657
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
658
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
659
+ }
660
+ __name(_ts_decorate8, "_ts_decorate");
661
+ function _ts_metadata8(k, v) {
662
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
663
+ return Reflect.metadata(k, v);
664
+ }
665
+ __name(_ts_metadata8, "_ts_metadata");
666
+ var AgentStateInput = class {
667
+ agentName;
668
+ state;
669
+ };
670
+ __name(AgentStateInput, "AgentStateInput");
671
+ _ts_decorate8([
672
+ Field8(() => String),
673
+ _ts_metadata8("design:type", String)
674
+ ], AgentStateInput.prototype, "agentName", void 0);
675
+ _ts_decorate8([
676
+ Field8(() => String),
677
+ _ts_metadata8("design:type", String)
678
+ ], AgentStateInput.prototype, "state", void 0);
679
+ AgentStateInput = _ts_decorate8([
680
+ InputType8()
681
+ ], AgentStateInput);
682
+
683
+ // src/graphql/inputs/generate-copilot-response.input.ts
684
+ function _ts_decorate9(decorators, target, key, desc) {
685
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
686
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
687
+ r = Reflect.decorate(decorators, target, key, desc);
688
+ else
689
+ for (var i = decorators.length - 1; i >= 0; i--)
690
+ if (d = decorators[i])
691
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
692
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
693
+ }
694
+ __name(_ts_decorate9, "_ts_decorate");
695
+ function _ts_metadata9(k, v) {
696
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
697
+ return Reflect.metadata(k, v);
698
+ }
699
+ __name(_ts_metadata9, "_ts_metadata");
700
+ var GenerateCopilotResponseMetadataInput = class {
701
+ requestType;
702
+ };
703
+ __name(GenerateCopilotResponseMetadataInput, "GenerateCopilotResponseMetadataInput");
704
+ _ts_decorate9([
705
+ Field9(() => CopilotRequestType, {
706
+ nullable: true
707
+ }),
708
+ _ts_metadata9("design:type", typeof CopilotRequestType === "undefined" ? Object : CopilotRequestType)
709
+ ], GenerateCopilotResponseMetadataInput.prototype, "requestType", void 0);
710
+ GenerateCopilotResponseMetadataInput = _ts_decorate9([
711
+ InputType9()
712
+ ], GenerateCopilotResponseMetadataInput);
713
+ var GenerateCopilotResponseInput = class {
714
+ metadata;
715
+ threadId;
716
+ runId;
717
+ messages;
718
+ frontend;
719
+ cloud;
720
+ forwardedParameters;
721
+ agentSession;
722
+ agentState;
723
+ agentStates;
724
+ };
725
+ __name(GenerateCopilotResponseInput, "GenerateCopilotResponseInput");
726
+ _ts_decorate9([
727
+ Field9(() => GenerateCopilotResponseMetadataInput, {
728
+ nullable: false
729
+ }),
730
+ _ts_metadata9("design:type", typeof GenerateCopilotResponseMetadataInput === "undefined" ? Object : GenerateCopilotResponseMetadataInput)
731
+ ], GenerateCopilotResponseInput.prototype, "metadata", void 0);
732
+ _ts_decorate9([
733
+ Field9(() => String, {
734
+ nullable: true
735
+ }),
736
+ _ts_metadata9("design:type", String)
737
+ ], GenerateCopilotResponseInput.prototype, "threadId", void 0);
738
+ _ts_decorate9([
739
+ Field9(() => String, {
740
+ nullable: true
741
+ }),
742
+ _ts_metadata9("design:type", String)
743
+ ], GenerateCopilotResponseInput.prototype, "runId", void 0);
744
+ _ts_decorate9([
745
+ Field9(() => [
746
+ MessageInput
747
+ ]),
748
+ _ts_metadata9("design:type", Array)
749
+ ], GenerateCopilotResponseInput.prototype, "messages", void 0);
750
+ _ts_decorate9([
751
+ Field9(() => FrontendInput),
752
+ _ts_metadata9("design:type", typeof FrontendInput === "undefined" ? Object : FrontendInput)
753
+ ], GenerateCopilotResponseInput.prototype, "frontend", void 0);
754
+ _ts_decorate9([
755
+ Field9(() => CloudInput, {
756
+ nullable: true
757
+ }),
758
+ _ts_metadata9("design:type", typeof CloudInput === "undefined" ? Object : CloudInput)
759
+ ], GenerateCopilotResponseInput.prototype, "cloud", void 0);
760
+ _ts_decorate9([
761
+ Field9(() => ForwardedParametersInput, {
762
+ nullable: true
763
+ }),
764
+ _ts_metadata9("design:type", typeof ForwardedParametersInput === "undefined" ? Object : ForwardedParametersInput)
765
+ ], GenerateCopilotResponseInput.prototype, "forwardedParameters", void 0);
766
+ _ts_decorate9([
767
+ Field9(() => AgentSessionInput, {
768
+ nullable: true
769
+ }),
770
+ _ts_metadata9("design:type", typeof AgentSessionInput === "undefined" ? Object : AgentSessionInput)
771
+ ], GenerateCopilotResponseInput.prototype, "agentSession", void 0);
772
+ _ts_decorate9([
773
+ Field9(() => AgentStateInput, {
774
+ nullable: true
775
+ }),
776
+ _ts_metadata9("design:type", typeof AgentStateInput === "undefined" ? Object : AgentStateInput)
777
+ ], GenerateCopilotResponseInput.prototype, "agentState", void 0);
778
+ _ts_decorate9([
779
+ Field9(() => [
780
+ AgentStateInput
781
+ ], {
782
+ nullable: true
783
+ }),
784
+ _ts_metadata9("design:type", Array)
785
+ ], GenerateCopilotResponseInput.prototype, "agentStates", void 0);
786
+ GenerateCopilotResponseInput = _ts_decorate9([
787
+ InputType9()
788
+ ], GenerateCopilotResponseInput);
789
+
790
+ // src/graphql/types/copilot-response.type.ts
791
+ import { Field as Field11, InterfaceType, ObjectType as ObjectType2 } from "type-graphql";
792
+
793
+ // src/graphql/types/message-status.type.ts
794
+ import { Field as Field10, ObjectType, createUnionType, registerEnumType as registerEnumType2 } from "type-graphql";
795
+ function _ts_decorate10(decorators, target, key, desc) {
796
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
797
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
798
+ r = Reflect.decorate(decorators, target, key, desc);
799
+ else
800
+ for (var i = decorators.length - 1; i >= 0; i--)
801
+ if (d = decorators[i])
802
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
803
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
804
+ }
805
+ __name(_ts_decorate10, "_ts_decorate");
806
+ function _ts_metadata10(k, v) {
807
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
808
+ return Reflect.metadata(k, v);
809
+ }
810
+ __name(_ts_metadata10, "_ts_metadata");
811
+ var MessageStatusCode;
812
+ (function(MessageStatusCode2) {
813
+ MessageStatusCode2["Pending"] = "pending";
814
+ MessageStatusCode2["Success"] = "success";
815
+ MessageStatusCode2["Failed"] = "failed";
816
+ })(MessageStatusCode || (MessageStatusCode = {}));
817
+ registerEnumType2(MessageStatusCode, {
818
+ name: "MessageStatusCode"
819
+ });
820
+ var BaseMessageStatus = /* @__PURE__ */ __name(class BaseMessageStatus2 {
821
+ code;
822
+ }, "BaseMessageStatus");
823
+ _ts_decorate10([
824
+ Field10(() => MessageStatusCode),
825
+ _ts_metadata10("design:type", String)
826
+ ], BaseMessageStatus.prototype, "code", void 0);
827
+ BaseMessageStatus = _ts_decorate10([
828
+ ObjectType()
829
+ ], BaseMessageStatus);
830
+ var PendingMessageStatus = class extends BaseMessageStatus {
831
+ code = "pending";
832
+ };
833
+ __name(PendingMessageStatus, "PendingMessageStatus");
834
+ PendingMessageStatus = _ts_decorate10([
835
+ ObjectType()
836
+ ], PendingMessageStatus);
837
+ var SuccessMessageStatus = class extends BaseMessageStatus {
838
+ code = "success";
839
+ };
840
+ __name(SuccessMessageStatus, "SuccessMessageStatus");
841
+ SuccessMessageStatus = _ts_decorate10([
842
+ ObjectType()
843
+ ], SuccessMessageStatus);
844
+ var FailedMessageStatus = class extends BaseMessageStatus {
845
+ code = "failed";
846
+ reason;
847
+ };
848
+ __name(FailedMessageStatus, "FailedMessageStatus");
849
+ _ts_decorate10([
850
+ Field10(() => String),
851
+ _ts_metadata10("design:type", String)
852
+ ], FailedMessageStatus.prototype, "reason", void 0);
853
+ FailedMessageStatus = _ts_decorate10([
854
+ ObjectType()
855
+ ], FailedMessageStatus);
856
+ var MessageStatusUnion = createUnionType({
857
+ name: "MessageStatus",
858
+ types: () => [
859
+ PendingMessageStatus,
860
+ SuccessMessageStatus,
861
+ FailedMessageStatus
862
+ ]
863
+ });
864
+
865
+ // src/graphql/types/copilot-response.type.ts
866
+ function _ts_decorate11(decorators, target, key, desc) {
867
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
868
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
869
+ r = Reflect.decorate(decorators, target, key, desc);
870
+ else
871
+ for (var i = decorators.length - 1; i >= 0; i--)
872
+ if (d = decorators[i])
873
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
874
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
875
+ }
876
+ __name(_ts_decorate11, "_ts_decorate");
877
+ function _ts_metadata11(k, v) {
878
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
879
+ return Reflect.metadata(k, v);
880
+ }
881
+ __name(_ts_metadata11, "_ts_metadata");
882
+ var BaseMessageOutput = /* @__PURE__ */ __name(class BaseMessageOutput2 {
883
+ id;
884
+ createdAt;
885
+ status;
886
+ }, "BaseMessageOutput");
887
+ _ts_decorate11([
888
+ Field11(() => String),
889
+ _ts_metadata11("design:type", String)
890
+ ], BaseMessageOutput.prototype, "id", void 0);
891
+ _ts_decorate11([
892
+ Field11(() => Date),
893
+ _ts_metadata11("design:type", typeof Date === "undefined" ? Object : Date)
894
+ ], BaseMessageOutput.prototype, "createdAt", void 0);
895
+ _ts_decorate11([
896
+ Field11(() => MessageStatusUnion),
897
+ _ts_metadata11("design:type", Object)
898
+ ], BaseMessageOutput.prototype, "status", void 0);
899
+ BaseMessageOutput = _ts_decorate11([
900
+ InterfaceType({
901
+ resolveType(value) {
902
+ if (value.hasOwnProperty("content")) {
903
+ return TextMessageOutput;
904
+ } else if (value.hasOwnProperty("name")) {
905
+ return ActionExecutionMessageOutput;
906
+ } else if (value.hasOwnProperty("result")) {
907
+ return ResultMessageOutput;
908
+ } else if (value.hasOwnProperty("state")) {
909
+ return AgentStateMessageOutput;
910
+ }
911
+ return void 0;
912
+ }
913
+ })
914
+ ], BaseMessageOutput);
915
+ var TextMessageOutput = class {
916
+ role;
917
+ content;
918
+ parentMessageId;
919
+ };
920
+ __name(TextMessageOutput, "TextMessageOutput");
921
+ _ts_decorate11([
922
+ Field11(() => MessageRole),
923
+ _ts_metadata11("design:type", typeof MessageRole === "undefined" ? Object : MessageRole)
924
+ ], TextMessageOutput.prototype, "role", void 0);
925
+ _ts_decorate11([
926
+ Field11(() => [
927
+ String
928
+ ]),
929
+ _ts_metadata11("design:type", Array)
930
+ ], TextMessageOutput.prototype, "content", void 0);
931
+ _ts_decorate11([
932
+ Field11(() => String, {
933
+ nullable: true
934
+ }),
935
+ _ts_metadata11("design:type", String)
936
+ ], TextMessageOutput.prototype, "parentMessageId", void 0);
937
+ TextMessageOutput = _ts_decorate11([
938
+ ObjectType2({
939
+ implements: BaseMessageOutput
940
+ })
941
+ ], TextMessageOutput);
942
+ var ActionExecutionMessageOutput = class {
943
+ name;
944
+ scope;
945
+ arguments;
946
+ parentMessageId;
947
+ };
948
+ __name(ActionExecutionMessageOutput, "ActionExecutionMessageOutput");
949
+ _ts_decorate11([
950
+ Field11(() => String),
951
+ _ts_metadata11("design:type", String)
952
+ ], ActionExecutionMessageOutput.prototype, "name", void 0);
953
+ _ts_decorate11([
954
+ Field11(() => String, {
955
+ nullable: true,
956
+ deprecationReason: "This field will be removed in a future version"
957
+ }),
958
+ _ts_metadata11("design:type", String)
959
+ ], ActionExecutionMessageOutput.prototype, "scope", void 0);
960
+ _ts_decorate11([
961
+ Field11(() => [
962
+ String
963
+ ]),
964
+ _ts_metadata11("design:type", Array)
965
+ ], ActionExecutionMessageOutput.prototype, "arguments", void 0);
966
+ _ts_decorate11([
967
+ Field11(() => String, {
968
+ nullable: true
969
+ }),
970
+ _ts_metadata11("design:type", String)
971
+ ], ActionExecutionMessageOutput.prototype, "parentMessageId", void 0);
972
+ ActionExecutionMessageOutput = _ts_decorate11([
973
+ ObjectType2({
974
+ implements: BaseMessageOutput
975
+ })
976
+ ], ActionExecutionMessageOutput);
977
+ var ResultMessageOutput = class {
978
+ actionExecutionId;
979
+ actionName;
980
+ result;
981
+ };
982
+ __name(ResultMessageOutput, "ResultMessageOutput");
983
+ _ts_decorate11([
984
+ Field11(() => String),
985
+ _ts_metadata11("design:type", String)
986
+ ], ResultMessageOutput.prototype, "actionExecutionId", void 0);
987
+ _ts_decorate11([
988
+ Field11(() => String),
989
+ _ts_metadata11("design:type", String)
990
+ ], ResultMessageOutput.prototype, "actionName", void 0);
991
+ _ts_decorate11([
992
+ Field11(() => String),
993
+ _ts_metadata11("design:type", String)
994
+ ], ResultMessageOutput.prototype, "result", void 0);
995
+ ResultMessageOutput = _ts_decorate11([
996
+ ObjectType2({
997
+ implements: BaseMessageOutput
998
+ })
999
+ ], ResultMessageOutput);
1000
+ var AgentStateMessageOutput = class {
1001
+ threadId;
1002
+ agentName;
1003
+ nodeName;
1004
+ runId;
1005
+ active;
1006
+ role;
1007
+ state;
1008
+ running;
1009
+ };
1010
+ __name(AgentStateMessageOutput, "AgentStateMessageOutput");
1011
+ _ts_decorate11([
1012
+ Field11(() => String),
1013
+ _ts_metadata11("design:type", String)
1014
+ ], AgentStateMessageOutput.prototype, "threadId", void 0);
1015
+ _ts_decorate11([
1016
+ Field11(() => String),
1017
+ _ts_metadata11("design:type", String)
1018
+ ], AgentStateMessageOutput.prototype, "agentName", void 0);
1019
+ _ts_decorate11([
1020
+ Field11(() => String),
1021
+ _ts_metadata11("design:type", String)
1022
+ ], AgentStateMessageOutput.prototype, "nodeName", void 0);
1023
+ _ts_decorate11([
1024
+ Field11(() => String),
1025
+ _ts_metadata11("design:type", String)
1026
+ ], AgentStateMessageOutput.prototype, "runId", void 0);
1027
+ _ts_decorate11([
1028
+ Field11(() => Boolean),
1029
+ _ts_metadata11("design:type", Boolean)
1030
+ ], AgentStateMessageOutput.prototype, "active", void 0);
1031
+ _ts_decorate11([
1032
+ Field11(() => MessageRole),
1033
+ _ts_metadata11("design:type", typeof MessageRole === "undefined" ? Object : MessageRole)
1034
+ ], AgentStateMessageOutput.prototype, "role", void 0);
1035
+ _ts_decorate11([
1036
+ Field11(() => String),
1037
+ _ts_metadata11("design:type", String)
1038
+ ], AgentStateMessageOutput.prototype, "state", void 0);
1039
+ _ts_decorate11([
1040
+ Field11(() => Boolean),
1041
+ _ts_metadata11("design:type", Boolean)
1042
+ ], AgentStateMessageOutput.prototype, "running", void 0);
1043
+ AgentStateMessageOutput = _ts_decorate11([
1044
+ ObjectType2({
1045
+ implements: BaseMessageOutput
1046
+ })
1047
+ ], AgentStateMessageOutput);
1048
+ var CopilotResponse = class {
1049
+ threadId;
1050
+ status;
1051
+ runId;
1052
+ messages;
1053
+ };
1054
+ __name(CopilotResponse, "CopilotResponse");
1055
+ _ts_decorate11([
1056
+ Field11(() => String),
1057
+ _ts_metadata11("design:type", String)
1058
+ ], CopilotResponse.prototype, "threadId", void 0);
1059
+ _ts_decorate11([
1060
+ Field11(() => ResponseStatusUnion),
1061
+ _ts_metadata11("design:type", Object)
1062
+ ], CopilotResponse.prototype, "status", void 0);
1063
+ _ts_decorate11([
1064
+ Field11({
1065
+ nullable: true
1066
+ }),
1067
+ _ts_metadata11("design:type", String)
1068
+ ], CopilotResponse.prototype, "runId", void 0);
1069
+ _ts_decorate11([
1070
+ Field11(() => [
1071
+ BaseMessageOutput
1072
+ ]),
1073
+ _ts_metadata11("design:type", Array)
1074
+ ], CopilotResponse.prototype, "messages", void 0);
1075
+ CopilotResponse = _ts_decorate11([
1076
+ ObjectType2()
1077
+ ], CopilotResponse);
1078
+
1079
+ // src/graphql/resolvers/copilot.resolver.ts
1080
+ import { Repeater } from "graphql-yoga";
1081
+
1082
+ // src/service-adapters/events.ts
1083
+ import { randomId as randomId3 } from "@copilotkit/shared";
1084
+ import { of, concat, scan as scan2, concatMap, ReplaySubject as ReplaySubject2, firstValueFrom, from as from2 } from "rxjs";
1085
+
1086
+ // src/lib/telemetry-client.ts
1087
+ import { TelemetryClient } from "@copilotkit/shared";
1088
+
1089
+ // src/lib/runtime/remote-action-constructors.ts
1090
+ import { createHash as createHash2 } from "crypto";
1091
+
1092
+ // src/agents/langgraph/event-source.ts
1093
+ import { ReplaySubject, scan, mergeMap, catchError } from "rxjs";
1094
+
1095
+ // src/agents/langgraph/events.ts
1096
+ var LangGraphEventTypes;
1097
+ (function(LangGraphEventTypes2) {
1098
+ LangGraphEventTypes2["OnChainStart"] = "on_chain_start";
1099
+ LangGraphEventTypes2["OnChainStream"] = "on_chain_stream";
1100
+ LangGraphEventTypes2["OnChainEnd"] = "on_chain_end";
1101
+ LangGraphEventTypes2["OnChatModelStart"] = "on_chat_model_start";
1102
+ LangGraphEventTypes2["OnChatModelStream"] = "on_chat_model_stream";
1103
+ LangGraphEventTypes2["OnChatModelEnd"] = "on_chat_model_end";
1104
+ LangGraphEventTypes2["OnToolStart"] = "on_tool_start";
1105
+ LangGraphEventTypes2["OnToolEnd"] = "on_tool_end";
1106
+ LangGraphEventTypes2["OnCopilotKitStateSync"] = "on_copilotkit_state_sync";
1107
+ LangGraphEventTypes2["OnCopilotKitEmitMessage"] = "on_copilotkit_emit_message";
1108
+ LangGraphEventTypes2["OnCopilotKitEmitToolCall"] = "on_copilotkit_emit_tool_call";
1109
+ LangGraphEventTypes2["OnCustomEvent"] = "on_custom_event";
1110
+ })(LangGraphEventTypes || (LangGraphEventTypes = {}));
1111
+ var CustomEventNames;
1112
+ (function(CustomEventNames2) {
1113
+ CustomEventNames2["CopilotKitManuallyEmitMessage"] = "copilotkit_manually_emit_message";
1114
+ CustomEventNames2["CopilotKitManuallyEmitToolCall"] = "copilotkit_manually_emit_tool_call";
1115
+ CustomEventNames2["CopilotKitManuallyEmitIntermediateState"] = "copilotkit_manually_emit_intermediate_state";
1116
+ CustomEventNames2["CopilotKitExit"] = "copilotkit_exit";
1117
+ })(CustomEventNames || (CustomEventNames = {}));
1118
+
1119
+ // src/agents/langgraph/event-source.ts
1120
+ import { randomId } from "@copilotkit/shared";
1121
+ var RemoteLangGraphEventSource = class {
1122
+ eventStream$ = new ReplaySubject();
1123
+ shouldEmitToolCall(shouldEmitToolCalls, toolCallName) {
1124
+ if (typeof shouldEmitToolCalls === "boolean") {
1125
+ return shouldEmitToolCalls;
1126
+ }
1127
+ if (Array.isArray(shouldEmitToolCalls)) {
1128
+ return shouldEmitToolCalls.includes(toolCallName);
1129
+ }
1130
+ return shouldEmitToolCalls === toolCallName;
1131
+ }
1132
+ getCurrentContent(event) {
1133
+ var _a, _b, _c, _d, _e;
1134
+ const content = ((_c = (_b = (_a = event.data) == null ? void 0 : _a.chunk) == null ? void 0 : _b.kwargs) == null ? void 0 : _c.content) ?? ((_e = (_d = event.data) == null ? void 0 : _d.chunk) == null ? void 0 : _e.content);
1135
+ if (!content) {
1136
+ const toolCallChunks = this.getCurrentToolCallChunks(event) ?? [];
1137
+ for (const chunk of toolCallChunks) {
1138
+ if (chunk.args) {
1139
+ return chunk.args;
1140
+ }
1141
+ }
1142
+ }
1143
+ if (typeof content === "string") {
1144
+ return content;
1145
+ } else if (Array.isArray(content) && content.length > 0) {
1146
+ return content[0].text;
1147
+ }
1148
+ return null;
1149
+ }
1150
+ getCurrentMessageId(event) {
1151
+ var _a, _b, _c, _d, _e;
1152
+ return ((_c = (_b = (_a = event.data) == null ? void 0 : _a.chunk) == null ? void 0 : _b.kwargs) == null ? void 0 : _c.id) ?? ((_e = (_d = event.data) == null ? void 0 : _d.chunk) == null ? void 0 : _e.id);
1153
+ }
1154
+ getCurrentToolCallChunks(event) {
1155
+ var _a, _b, _c, _d, _e;
1156
+ return ((_c = (_b = (_a = event.data) == null ? void 0 : _a.chunk) == null ? void 0 : _b.kwargs) == null ? void 0 : _c.tool_call_chunks) ?? ((_e = (_d = event.data) == null ? void 0 : _d.chunk) == null ? void 0 : _e.tool_call_chunks);
1157
+ }
1158
+ getResponseMetadata(event) {
1159
+ var _a, _b, _c, _d, _e;
1160
+ return ((_c = (_b = (_a = event.data) == null ? void 0 : _a.chunk) == null ? void 0 : _b.kwargs) == null ? void 0 : _c.response_metadata) ?? ((_e = (_d = event.data) == null ? void 0 : _d.chunk) == null ? void 0 : _e.response_metadata);
1161
+ }
1162
+ processLangGraphEvents() {
1163
+ let lastEventWithState = null;
1164
+ return this.eventStream$.pipe(scan((acc, event) => {
1165
+ if (event.event === LangGraphEventTypes.OnChatModelStream) {
1166
+ const prevMessageId = acc.lastMessageId;
1167
+ acc.currentContent = this.getCurrentContent(event);
1168
+ acc.lastMessageId = this.getCurrentMessageId(event) ?? acc.lastMessageId;
1169
+ const toolCallChunks = this.getCurrentToolCallChunks(event) ?? [];
1170
+ const responseMetadata = this.getResponseMetadata(event);
1171
+ acc.isToolCallStart = toolCallChunks.some((chunk) => chunk.name && chunk.id);
1172
+ acc.isMessageStart = prevMessageId !== acc.lastMessageId && !acc.isToolCallStart;
1173
+ acc.isToolCall = toolCallChunks && toolCallChunks.length > 0;
1174
+ acc.isToolCallEnd = (responseMetadata == null ? void 0 : responseMetadata.finish_reason) === "tool_calls";
1175
+ acc.isMessageEnd = (responseMetadata == null ? void 0 : responseMetadata.finish_reason) === "stop";
1176
+ ({ name: acc.lastToolCallName, id: acc.lastToolCallId } = toolCallChunks.find((chunk) => chunk.name && chunk.id) ?? {
1177
+ name: acc.lastToolCallName,
1178
+ id: acc.lastToolCallId
1179
+ });
1180
+ }
1181
+ acc.event = event;
1182
+ lastEventWithState = acc;
1183
+ return acc;
1184
+ }, {
1185
+ event: null,
1186
+ isMessageStart: false,
1187
+ isMessageEnd: false,
1188
+ isToolCallStart: false,
1189
+ isToolCallEnd: false,
1190
+ isToolCall: false,
1191
+ lastMessageId: null,
1192
+ lastToolCallId: null,
1193
+ lastToolCallName: null,
1194
+ currentContent: null
1195
+ }), mergeMap((acc) => {
1196
+ const events = [];
1197
+ let shouldEmitMessages = true;
1198
+ let shouldEmitToolCalls = true;
1199
+ if (acc.event.event == LangGraphEventTypes.OnChatModelStream) {
1200
+ if ("copilotkit:emit-tool-calls" in (acc.event.metadata || {})) {
1201
+ shouldEmitToolCalls = acc.event.metadata["copilotkit:emit-tool-calls"];
1202
+ }
1203
+ if ("copilotkit:emit-messages" in (acc.event.metadata || {})) {
1204
+ shouldEmitMessages = acc.event.metadata["copilotkit:emit-messages"];
1205
+ }
1206
+ }
1207
+ const responseMetadata = this.getResponseMetadata(acc.event);
1208
+ if ((responseMetadata == null ? void 0 : responseMetadata.finish_reason) === "tool_calls" && this.shouldEmitToolCall(shouldEmitToolCalls, acc.lastToolCallName)) {
1209
+ events.push({
1210
+ type: RuntimeEventTypes.ActionExecutionEnd,
1211
+ actionExecutionId: acc.lastToolCallId
1212
+ });
1213
+ }
1214
+ if ((responseMetadata == null ? void 0 : responseMetadata.finish_reason) === "stop" && shouldEmitMessages) {
1215
+ events.push({
1216
+ type: RuntimeEventTypes.TextMessageEnd,
1217
+ messageId: acc.lastMessageId
1218
+ });
1219
+ }
1220
+ switch (acc.event.event) {
1221
+ case LangGraphEventTypes.OnCustomEvent:
1222
+ if (acc.event.name === CustomEventNames.CopilotKitManuallyEmitMessage) {
1223
+ events.push({
1224
+ type: RuntimeEventTypes.TextMessageStart,
1225
+ messageId: acc.event.data.message_id
1226
+ });
1227
+ events.push({
1228
+ type: RuntimeEventTypes.TextMessageContent,
1229
+ messageId: acc.event.data.message_id,
1230
+ content: acc.event.data.message
1231
+ });
1232
+ events.push({
1233
+ type: RuntimeEventTypes.TextMessageEnd,
1234
+ messageId: acc.event.data.message_id
1235
+ });
1236
+ } else if (acc.event.name === CustomEventNames.CopilotKitManuallyEmitToolCall) {
1237
+ events.push({
1238
+ type: RuntimeEventTypes.ActionExecutionStart,
1239
+ actionExecutionId: acc.event.data.id,
1240
+ actionName: acc.event.data.name,
1241
+ parentMessageId: acc.event.data.id
1242
+ });
1243
+ events.push({
1244
+ type: RuntimeEventTypes.ActionExecutionArgs,
1245
+ actionExecutionId: acc.event.data.id,
1246
+ args: JSON.stringify(acc.event.data.args)
1247
+ });
1248
+ events.push({
1249
+ type: RuntimeEventTypes.ActionExecutionEnd,
1250
+ actionExecutionId: acc.event.data.id
1251
+ });
1252
+ }
1253
+ break;
1254
+ case LangGraphEventTypes.OnCopilotKitStateSync:
1255
+ events.push({
1256
+ type: RuntimeEventTypes.AgentStateMessage,
1257
+ threadId: acc.event.thread_id,
1258
+ role: acc.event.role,
1259
+ agentName: acc.event.agent_name,
1260
+ nodeName: acc.event.node_name,
1261
+ runId: acc.event.run_id,
1262
+ active: acc.event.active,
1263
+ state: JSON.stringify(acc.event.state),
1264
+ running: acc.event.running
1265
+ });
1266
+ break;
1267
+ case LangGraphEventTypes.OnChatModelStream:
1268
+ if (acc.isToolCallStart && this.shouldEmitToolCall(shouldEmitToolCalls, acc.lastToolCallName)) {
1269
+ events.push({
1270
+ type: RuntimeEventTypes.ActionExecutionStart,
1271
+ actionExecutionId: acc.lastToolCallId,
1272
+ actionName: acc.lastToolCallName,
1273
+ parentMessageId: acc.lastMessageId
1274
+ });
1275
+ } else if (acc.isMessageStart && shouldEmitMessages) {
1276
+ events.push({
1277
+ type: RuntimeEventTypes.TextMessageStart,
1278
+ messageId: acc.lastMessageId
1279
+ });
1280
+ }
1281
+ if (acc.isToolCall && acc.currentContent && this.shouldEmitToolCall(shouldEmitToolCalls, acc.lastToolCallName)) {
1282
+ events.push({
1283
+ type: RuntimeEventTypes.ActionExecutionArgs,
1284
+ actionExecutionId: acc.lastToolCallId,
1285
+ args: acc.currentContent
1286
+ });
1287
+ } else if (!acc.isToolCall && acc.currentContent && shouldEmitMessages) {
1288
+ events.push({
1289
+ type: RuntimeEventTypes.TextMessageContent,
1290
+ messageId: acc.lastMessageId,
1291
+ content: acc.currentContent
1292
+ });
1293
+ }
1294
+ break;
1295
+ }
1296
+ return events;
1297
+ }), catchError((error) => {
1298
+ console.error(error);
1299
+ const events = [];
1300
+ if ((lastEventWithState == null ? void 0 : lastEventWithState.lastMessageId) && !lastEventWithState.isToolCall) {
1301
+ events.push({
1302
+ type: RuntimeEventTypes.TextMessageEnd,
1303
+ messageId: lastEventWithState.lastMessageId
1304
+ });
1305
+ }
1306
+ if (lastEventWithState == null ? void 0 : lastEventWithState.lastToolCallId) {
1307
+ events.push({
1308
+ type: RuntimeEventTypes.ActionExecutionEnd,
1309
+ actionExecutionId: lastEventWithState.lastToolCallId
1310
+ });
1311
+ }
1312
+ const messageId = randomId();
1313
+ events.push({
1314
+ type: RuntimeEventTypes.TextMessageStart,
1315
+ messageId
1316
+ });
1317
+ events.push({
1318
+ type: RuntimeEventTypes.TextMessageContent,
1319
+ messageId,
1320
+ content: "\u274C An error occurred. Please try again."
1321
+ });
1322
+ events.push({
1323
+ type: RuntimeEventTypes.TextMessageEnd,
1324
+ messageId
1325
+ });
1326
+ return events;
1327
+ }));
1328
+ }
1329
+ };
1330
+ __name(RemoteLangGraphEventSource, "RemoteLangGraphEventSource");
1331
+
1332
+ // src/lib/runtime/remote-lg-action.ts
1333
+ import { Client } from "@langchain/langgraph-sdk";
1334
+ import { createHash, randomUUID } from "crypto";
1335
+ import { parse as parsePartialJson } from "partial-json";
1336
+ async function execute(args) {
1337
+ return new ReadableStream({
1338
+ async start(controller) {
1339
+ try {
1340
+ await streamEvents(controller, args);
1341
+ controller.close();
1342
+ } catch (err) {
1343
+ }
1344
+ }
1345
+ });
1346
+ }
1347
+ __name(execute, "execute");
1348
+ async function streamEvents(controller, args) {
1349
+ var _a, _b, _c, _d, _e, _f;
1350
+ const { deploymentUrl, langsmithApiKey, threadId: agrsInitialThreadId, agent, nodeName: initialNodeName, state: initialState, messages, actions, logger: logger2 } = args;
1351
+ let nodeName = initialNodeName;
1352
+ let state = initialState;
1353
+ const { name, assistantId: initialAssistantId } = agent;
1354
+ const client = new Client({
1355
+ apiUrl: deploymentUrl,
1356
+ apiKey: langsmithApiKey
1357
+ });
1358
+ let initialThreadId = agrsInitialThreadId;
1359
+ const wasInitiatedWithExistingThread = !!initialThreadId;
1360
+ if (initialThreadId && initialThreadId.startsWith("ck-")) {
1361
+ initialThreadId = initialThreadId.substring(3);
1362
+ }
1363
+ const threadId = initialThreadId ?? randomUUID();
1364
+ if (initialThreadId === threadId) {
1365
+ await client.threads.get(threadId);
1366
+ } else {
1367
+ await client.threads.create({
1368
+ threadId
1369
+ });
1370
+ }
1371
+ let agentState = {
1372
+ values: {}
1373
+ };
1374
+ if (wasInitiatedWithExistingThread) {
1375
+ agentState = await client.threads.getState(threadId);
1376
+ }
1377
+ const agentStateValues = agentState.values;
1378
+ state.messages = agentStateValues.messages;
1379
+ const mode = wasInitiatedWithExistingThread && nodeName != "__end__" ? "continue" : "start";
1380
+ let formattedMessages = [];
1381
+ try {
1382
+ formattedMessages = copilotkitMessagesToLangChain(messages);
1383
+ } catch (e) {
1384
+ logger2.error(e, `Error event thrown: ${e.message}`);
1385
+ }
1386
+ state = langGraphDefaultMergeState(state, formattedMessages, actions, name);
1387
+ if (mode === "continue") {
1388
+ await client.threads.updateState(threadId, {
1389
+ values: state,
1390
+ asNode: nodeName
1391
+ });
1392
+ }
1393
+ let streamInfo = {
1394
+ hashedLgcKey: createHash("sha256").update(langsmithApiKey).digest("hex")
1395
+ };
1396
+ const assistants = await client.assistants.search();
1397
+ const retrievedAssistant = assistants.find((a) => a.name === name || a.assistant_id === initialAssistantId);
1398
+ if (!retrievedAssistant) {
1399
+ telemetry_client_default.capture("oss.runtime.agent_execution_stream_errored", {
1400
+ ...streamInfo,
1401
+ error: `Found no assistants for given information, while ${assistants.length} assistants exists`
1402
+ });
1403
+ console.error(`
1404
+ No agent found for the agent name specified in CopilotKit provider
1405
+ Please check your available agents or provide an agent ID in the LangGraph Platform endpoint definition.
1406
+
1407
+
1408
+ These are the available agents: [${assistants.map((a) => `${a.name} (ID: ${a.assistant_id})`).join(", ")}]
1409
+ `);
1410
+ throw new Error("No agent id found");
1411
+ }
1412
+ const assistantId = retrievedAssistant.assistant_id;
1413
+ const graphInfo = await client.assistants.getGraph(assistantId);
1414
+ const streamInput = mode === "start" ? state : null;
1415
+ let streamingStateExtractor = new StreamingStateExtractor([]);
1416
+ let prevNodeName = null;
1417
+ let emitIntermediateStateUntilEnd = null;
1418
+ let shouldExit = false;
1419
+ let externalRunId = null;
1420
+ const streamResponse2 = client.runs.stream(threadId, assistantId, {
1421
+ input: streamInput,
1422
+ streamMode: [
1423
+ "events",
1424
+ "values"
1425
+ ]
1426
+ });
1427
+ const emit = /* @__PURE__ */ __name((message) => controller.enqueue(new TextEncoder().encode(message)), "emit");
1428
+ let latestStateValues = {};
1429
+ let updatedState = state;
1430
+ let manuallyEmittedState = null;
1431
+ try {
1432
+ telemetry_client_default.capture("oss.runtime.agent_execution_stream_started", {
1433
+ hashedLgcKey: streamInfo.hashedLgcKey
1434
+ });
1435
+ for await (const chunk of streamResponse2) {
1436
+ if (![
1437
+ "events",
1438
+ "values",
1439
+ "error"
1440
+ ].includes(chunk.event))
1441
+ continue;
1442
+ if (chunk.event === "error") {
1443
+ throw new Error(`Error event thrown: ${chunk.data.message}`);
1444
+ }
1445
+ if (chunk.event === "values") {
1446
+ latestStateValues = chunk.data;
1447
+ continue;
1448
+ }
1449
+ const event = chunk.data;
1450
+ const currentNodeName = event.name;
1451
+ const eventType = event.event;
1452
+ const runId = event.metadata.run_id;
1453
+ externalRunId = runId;
1454
+ const metadata = event.metadata;
1455
+ if (((_b = (_a = event.data) == null ? void 0 : _a.output) == null ? void 0 : _b.model) != null && ((_d = (_c = event.data) == null ? void 0 : _c.output) == null ? void 0 : _d.model) != "") {
1456
+ streamInfo.provider = (_f = (_e = event.data) == null ? void 0 : _e.output) == null ? void 0 : _f.model;
1457
+ }
1458
+ if (metadata.langgraph_host != null && metadata.langgraph_host != "") {
1459
+ streamInfo.langGraphHost = metadata.langgraph_host;
1460
+ }
1461
+ if (metadata.langgraph_version != null && metadata.langgraph_version != "") {
1462
+ streamInfo.langGraphVersion = metadata.langgraph_version;
1463
+ }
1464
+ shouldExit = shouldExit || eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitExit;
1465
+ const emitIntermediateState = metadata["copilotkit:emit-intermediate-state"];
1466
+ const manuallyEmitIntermediateState = eventType === LangGraphEventTypes.OnCustomEvent && event.name === CustomEventNames.CopilotKitManuallyEmitIntermediateState;
1467
+ const exitingNode = nodeName === currentNodeName && eventType === LangGraphEventTypes.OnChainEnd;
1468
+ if (exitingNode) {
1469
+ manuallyEmittedState = null;
1470
+ }
1471
+ if (graphInfo["nodes"].some((node) => node.id === currentNodeName)) {
1472
+ nodeName = currentNodeName;
1473
+ }
1474
+ updatedState = manuallyEmittedState ?? latestStateValues;
1475
+ if (!nodeName) {
1476
+ continue;
1477
+ }
1478
+ if (manuallyEmitIntermediateState) {
1479
+ manuallyEmittedState = event.data;
1480
+ emit(getStateSyncEvent({
1481
+ threadId,
1482
+ runId,
1483
+ agentName: agent.name,
1484
+ nodeName,
1485
+ state: manuallyEmittedState,
1486
+ running: true,
1487
+ active: true
1488
+ }));
1489
+ continue;
1490
+ }
1491
+ if (emitIntermediateState && emitIntermediateStateUntilEnd == null) {
1492
+ emitIntermediateStateUntilEnd = nodeName;
1493
+ }
1494
+ if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStart) {
1495
+ streamingStateExtractor = new StreamingStateExtractor(emitIntermediateState);
1496
+ }
1497
+ if (emitIntermediateState && eventType === LangGraphEventTypes.OnChatModelStream) {
1498
+ streamingStateExtractor.bufferToolCalls(event);
1499
+ }
1500
+ if (emitIntermediateStateUntilEnd !== null) {
1501
+ updatedState = {
1502
+ ...updatedState,
1503
+ ...streamingStateExtractor.extractState()
1504
+ };
1505
+ }
1506
+ if (!emitIntermediateState && currentNodeName === emitIntermediateStateUntilEnd && eventType === LangGraphEventTypes.OnChainEnd) {
1507
+ emitIntermediateStateUntilEnd = null;
1508
+ }
1509
+ if (JSON.stringify(updatedState) !== JSON.stringify(state) || prevNodeName != nodeName || exitingNode) {
1510
+ state = updatedState;
1511
+ prevNodeName = nodeName;
1512
+ emit(getStateSyncEvent({
1513
+ threadId,
1514
+ runId,
1515
+ agentName: agent.name,
1516
+ nodeName,
1517
+ state,
1518
+ running: true,
1519
+ active: !exitingNode
1520
+ }));
1521
+ }
1522
+ emit(JSON.stringify(event) + "\n");
1523
+ }
1524
+ state = await client.threads.getState(threadId);
1525
+ const isEndNode = state.next.length === 0;
1526
+ nodeName = Object.keys(state.metadata.writes)[0];
1527
+ telemetry_client_default.capture("oss.runtime.agent_execution_stream_ended", streamInfo);
1528
+ emit(getStateSyncEvent({
1529
+ threadId,
1530
+ runId: externalRunId,
1531
+ agentName: agent.name,
1532
+ nodeName: isEndNode ? "__end__" : nodeName,
1533
+ state: state.values,
1534
+ running: !shouldExit,
1535
+ active: false,
1536
+ includeMessages: true
1537
+ }));
1538
+ return Promise.resolve();
1539
+ } catch (e) {
1540
+ logger2.error(e);
1541
+ telemetry_client_default.capture("oss.runtime.agent_execution_stream_errored", {
1542
+ ...streamInfo,
1543
+ error: e.message
1544
+ });
1545
+ return Promise.resolve();
1546
+ }
1547
+ }
1548
+ __name(streamEvents, "streamEvents");
1549
+ function getStateSyncEvent({ threadId, runId, agentName, nodeName, state, running, active, includeMessages = false }) {
1550
+ if (!includeMessages) {
1551
+ state = Object.keys(state).reduce((acc, key) => {
1552
+ if (key !== "messages") {
1553
+ acc[key] = state[key];
1554
+ }
1555
+ return acc;
1556
+ }, {});
1557
+ } else {
1558
+ state = {
1559
+ ...state,
1560
+ messages: langchainMessagesToCopilotKit(state.messages || [])
1561
+ };
1562
+ }
1563
+ return JSON.stringify({
1564
+ event: LangGraphEventTypes.OnCopilotKitStateSync,
1565
+ thread_id: threadId,
1566
+ run_id: runId,
1567
+ agent_name: agentName,
1568
+ node_name: nodeName,
1569
+ active,
1570
+ state,
1571
+ running,
1572
+ role: "assistant"
1573
+ }) + "\n";
1574
+ }
1575
+ __name(getStateSyncEvent, "getStateSyncEvent");
1576
+ var StreamingStateExtractor = /* @__PURE__ */ __name(class StreamingStateExtractor2 {
1577
+ emitIntermediateState;
1578
+ toolCallBuffer;
1579
+ currentToolCall;
1580
+ previouslyParsableState;
1581
+ constructor(emitIntermediateState) {
1582
+ this.emitIntermediateState = emitIntermediateState;
1583
+ this.toolCallBuffer = {};
1584
+ this.currentToolCall = null;
1585
+ this.previouslyParsableState = {};
1586
+ }
1587
+ bufferToolCalls(event) {
1588
+ if (event.data.chunk.tool_call_chunks.length > 0) {
1589
+ const chunk = event.data.chunk.tool_call_chunks[0];
1590
+ if (chunk.name !== null && chunk.name !== void 0) {
1591
+ this.currentToolCall = chunk.name;
1592
+ this.toolCallBuffer[this.currentToolCall] = chunk.args;
1593
+ } else if (this.currentToolCall !== null && this.currentToolCall !== void 0) {
1594
+ this.toolCallBuffer[this.currentToolCall] += chunk.args;
1595
+ }
1596
+ }
1597
+ }
1598
+ getEmitStateConfig(currentToolName) {
1599
+ for (const config of this.emitIntermediateState) {
1600
+ const stateKey = config["state_key"];
1601
+ const tool = config["tool"];
1602
+ const toolArgument = config["tool_argument"];
1603
+ if (currentToolName === tool) {
1604
+ return [
1605
+ toolArgument,
1606
+ stateKey
1607
+ ];
1608
+ }
1609
+ }
1610
+ return [
1611
+ null,
1612
+ null
1613
+ ];
1614
+ }
1615
+ extractState() {
1616
+ const state = {};
1617
+ for (const [key, value] of Object.entries(this.toolCallBuffer)) {
1618
+ const [argumentName, stateKey] = this.getEmitStateConfig(key);
1619
+ if (stateKey === null) {
1620
+ continue;
1621
+ }
1622
+ let parsedValue;
1623
+ try {
1624
+ parsedValue = parsePartialJson(value);
1625
+ } catch (error) {
1626
+ if (key in this.previouslyParsableState) {
1627
+ parsedValue = this.previouslyParsableState[key];
1628
+ } else {
1629
+ continue;
1630
+ }
1631
+ }
1632
+ this.previouslyParsableState[key] = parsedValue;
1633
+ if (!argumentName) {
1634
+ state[stateKey] = parsedValue;
1635
+ } else {
1636
+ state[stateKey] = parsedValue[argumentName];
1637
+ }
1638
+ }
1639
+ return state;
1640
+ }
1641
+ }, "StreamingStateExtractor");
1642
+ function langGraphDefaultMergeState(state, messages, actions, agentName) {
1643
+ if (messages.length > 0 && "role" in messages[0] && messages[0].role === "system") {
1644
+ messages = messages.slice(1);
1645
+ }
1646
+ const existingMessages = state.messages || [];
1647
+ const existingMessageIds = new Set(existingMessages.map((message) => message.id));
1648
+ const newMessages = messages.filter((message) => !existingMessageIds.has(message.id));
1649
+ return {
1650
+ ...state,
1651
+ messages: newMessages,
1652
+ copilotkit: {
1653
+ actions
1654
+ }
1655
+ };
1656
+ }
1657
+ __name(langGraphDefaultMergeState, "langGraphDefaultMergeState");
1658
+ function langchainMessagesToCopilotKit(messages) {
1659
+ const result = [];
1660
+ const tool_call_names = {};
1661
+ for (const message of messages) {
1662
+ if (message.type === "ai") {
1663
+ for (const tool_call of message.tool_calls) {
1664
+ tool_call_names[tool_call.id] = tool_call.name;
1665
+ }
1666
+ }
1667
+ }
1668
+ for (const message of messages) {
1669
+ let content = message.content;
1670
+ if (content instanceof Array) {
1671
+ content = content[0];
1672
+ }
1673
+ if (content instanceof Object) {
1674
+ content = content.text;
1675
+ }
1676
+ if (message.type === "human") {
1677
+ result.push({
1678
+ role: "user",
1679
+ content,
1680
+ id: message.id
1681
+ });
1682
+ } else if (message.type === "system") {
1683
+ result.push({
1684
+ role: "system",
1685
+ content,
1686
+ id: message.id
1687
+ });
1688
+ } else if (message.type === "ai") {
1689
+ if (message.tool_calls && message.tool_calls.length > 0) {
1690
+ for (const tool_call of message.tool_calls) {
1691
+ result.push({
1692
+ id: tool_call.id,
1693
+ name: tool_call.name,
1694
+ arguments: tool_call.args,
1695
+ parentMessageId: message.id
1696
+ });
1697
+ }
1698
+ } else {
1699
+ result.push({
1700
+ role: "assistant",
1701
+ content,
1702
+ id: message.id,
1703
+ parentMessageId: message.id
1704
+ });
1705
+ }
1706
+ } else if (message.type === "tool") {
1707
+ const actionName = tool_call_names[message.tool_call_id] || message.name || "";
1708
+ result.push({
1709
+ actionExecutionId: message.tool_call_id,
1710
+ actionName,
1711
+ result: content,
1712
+ id: message.id
1713
+ });
1714
+ }
1715
+ }
1716
+ const resultsDict = {};
1717
+ for (const msg of result) {
1718
+ if (msg.actionExecutionId) {
1719
+ resultsDict[msg.actionExecutionId] = msg;
1720
+ }
1721
+ }
1722
+ const reorderedResult = [];
1723
+ for (const msg of result) {
1724
+ if (!("actionExecutionId" in msg)) {
1725
+ reorderedResult.push(msg);
1726
+ }
1727
+ if ("arguments" in msg) {
1728
+ const msgId = msg.id;
1729
+ if (msgId in resultsDict) {
1730
+ reorderedResult.push(resultsDict[msgId]);
1731
+ }
1732
+ }
1733
+ }
1734
+ return reorderedResult;
1735
+ }
1736
+ __name(langchainMessagesToCopilotKit, "langchainMessagesToCopilotKit");
1737
+ function copilotkitMessagesToLangChain(messages) {
1738
+ const result = [];
1739
+ const processedActionExecutions = /* @__PURE__ */ new Set();
1740
+ for (const message of messages) {
1741
+ if (message.isTextMessage()) {
1742
+ if (message.role === "user") {
1743
+ result.push({
1744
+ ...message,
1745
+ role: MessageRole.user
1746
+ });
1747
+ } else if (message.role === "system") {
1748
+ result.push({
1749
+ ...message,
1750
+ role: MessageRole.system
1751
+ });
1752
+ } else if (message.role === "assistant") {
1753
+ result.push({
1754
+ ...message,
1755
+ role: MessageRole.assistant
1756
+ });
1757
+ }
1758
+ continue;
1759
+ }
1760
+ if (message.isActionExecutionMessage()) {
1761
+ const messageId = message.parentMessageId ?? message.id;
1762
+ if (processedActionExecutions.has(messageId)) {
1763
+ continue;
1764
+ }
1765
+ processedActionExecutions.add(messageId);
1766
+ const relatedActionExecutions = messages.filter((m) => m.isActionExecutionMessage() && (m.parentMessageId && m.parentMessageId === messageId || m.id === messageId));
1767
+ const tool_calls = relatedActionExecutions.map((m) => ({
1768
+ name: m.name,
1769
+ args: m.arguments,
1770
+ id: m.id
1771
+ }));
1772
+ result.push({
1773
+ id: messageId,
1774
+ type: "ActionExecutionMessage",
1775
+ content: "",
1776
+ tool_calls,
1777
+ role: MessageRole.assistant
1778
+ });
1779
+ continue;
1780
+ }
1781
+ if (message.isResultMessage()) {
1782
+ result.push({
1783
+ type: message.type,
1784
+ content: message.result,
1785
+ id: message.id,
1786
+ tool_call_id: message.actionExecutionId,
1787
+ name: message.actionName,
1788
+ role: MessageRole.tool
1789
+ });
1790
+ continue;
1791
+ }
1792
+ throw new Error(`Unknown message type ${message.type}`);
1793
+ }
1794
+ return result;
1795
+ }
1796
+ __name(copilotkitMessagesToLangChain, "copilotkitMessagesToLangChain");
1797
+
1798
+ // src/lib/runtime/remote-action-constructors.ts
1799
+ function constructLGCRemoteAction({ endpoint, graphqlContext, logger: logger2, messages, agentStates }) {
1800
+ const agents = endpoint.agents.map((agent) => ({
1801
+ name: agent.name,
1802
+ description: agent.description,
1803
+ parameters: [],
1804
+ handler: async (_args) => {
1805
+ },
1806
+ langGraphAgentHandler: async ({ name, actionInputsWithoutAgents, threadId, nodeName, additionalMessages = [] }) => {
1807
+ var _a;
1808
+ logger2.debug({
1809
+ actionName: agent.name
1810
+ }, "Executing LangGraph Platform agent");
1811
+ telemetry_client_default.capture("oss.runtime.remote_action_executed", {
1812
+ agentExecution: true,
1813
+ type: "langgraph-platform",
1814
+ agentsAmount: endpoint.agents.length,
1815
+ hashedLgcKey: createHash2("sha256").update(endpoint.langsmithApiKey).digest("hex")
1816
+ });
1817
+ let state = {};
1818
+ if (agentStates) {
1819
+ const jsonState = (_a = agentStates.find((state2) => state2.agentName === name)) == null ? void 0 : _a.state;
1820
+ if (jsonState) {
1821
+ state = JSON.parse(jsonState);
1822
+ }
1823
+ }
1824
+ try {
1825
+ const response = await execute({
1826
+ logger: logger2,
1827
+ deploymentUrl: endpoint.deploymentUrl,
1828
+ langsmithApiKey: endpoint.langsmithApiKey,
1829
+ agent,
1830
+ threadId,
1831
+ nodeName,
1832
+ messages: [
1833
+ ...messages,
1834
+ ...additionalMessages
1835
+ ],
1836
+ state,
1837
+ properties: graphqlContext.properties,
1838
+ actions: actionInputsWithoutAgents.map((action) => ({
1839
+ name: action.name,
1840
+ description: action.description,
1841
+ parameters: JSON.parse(action.jsonSchema)
1842
+ }))
1843
+ });
1844
+ const eventSource = new RemoteLangGraphEventSource();
1845
+ streamResponse(response, eventSource.eventStream$);
1846
+ return eventSource.processLangGraphEvents();
1847
+ } catch (error) {
1848
+ logger2.error({
1849
+ url: endpoint.deploymentUrl,
1850
+ status: 500,
1851
+ body: error.message
1852
+ }, "Failed to execute LangGraph Platform agent");
1853
+ throw new Error("Failed to execute LangGraph Platform agent");
1854
+ }
1855
+ }
1856
+ }));
1857
+ return [
1858
+ ...agents
1859
+ ];
1860
+ }
1861
+ __name(constructLGCRemoteAction, "constructLGCRemoteAction");
1862
+ function constructRemoteActions({ json, url, onBeforeRequest, graphqlContext, logger: logger2, messages, agentStates }) {
1863
+ const totalAgents = Array.isArray(json["agents"]) ? json["agents"].length : 0;
1864
+ const actions = json["actions"].map((action) => ({
1865
+ name: action.name,
1866
+ description: action.description,
1867
+ parameters: action.parameters,
1868
+ handler: async (args) => {
1869
+ logger2.debug({
1870
+ actionName: action.name,
1871
+ args
1872
+ }, "Executing remote action");
1873
+ const headers = createHeaders(onBeforeRequest, graphqlContext);
1874
+ telemetry_client_default.capture("oss.runtime.remote_action_executed", {
1875
+ agentExecution: false,
1876
+ type: "self-hosted",
1877
+ agentsAmount: totalAgents
1878
+ });
1879
+ try {
1880
+ const response = await fetch(`${url}/actions/execute`, {
1881
+ method: "POST",
1882
+ headers,
1883
+ body: JSON.stringify({
1884
+ name: action.name,
1885
+ arguments: args,
1886
+ properties: graphqlContext.properties
1887
+ })
1888
+ });
1889
+ if (!response.ok) {
1890
+ logger2.error({
1891
+ url,
1892
+ status: response.status,
1893
+ body: await response.text()
1894
+ }, "Failed to execute remote action");
1895
+ return "Failed to execute remote action";
1896
+ }
1897
+ const requestResult = await response.json();
1898
+ const result = requestResult["result"];
1899
+ logger2.debug({
1900
+ actionName: action.name,
1901
+ result
1902
+ }, "Executed remote action");
1903
+ return result;
1904
+ } catch (error) {
1905
+ logger2.error({
1906
+ error: error.message ? error.message : error + ""
1907
+ }, "Failed to execute remote action");
1908
+ return "Failed to execute remote action";
1909
+ }
1910
+ }
1911
+ }));
1912
+ const agents = totalAgents ? json["agents"].map((agent) => ({
1913
+ name: agent.name,
1914
+ description: agent.description,
1915
+ parameters: [],
1916
+ handler: async (_args) => {
1917
+ },
1918
+ langGraphAgentHandler: async ({ name, actionInputsWithoutAgents, threadId, nodeName, additionalMessages = [] }) => {
1919
+ var _a;
1920
+ logger2.debug({
1921
+ actionName: agent.name
1922
+ }, "Executing remote agent");
1923
+ const headers = createHeaders(onBeforeRequest, graphqlContext);
1924
+ telemetry_client_default.capture("oss.runtime.remote_action_executed", {
1925
+ agentExecution: true,
1926
+ type: "self-hosted",
1927
+ agentsAmount: json["agents"].length
1928
+ });
1929
+ let state = {};
1930
+ if (agentStates) {
1931
+ const jsonState = (_a = agentStates.find((state2) => state2.agentName === name)) == null ? void 0 : _a.state;
1932
+ if (jsonState) {
1933
+ state = JSON.parse(jsonState);
1934
+ }
1935
+ }
1936
+ const response = await fetch(`${url}/agents/execute`, {
1937
+ method: "POST",
1938
+ headers,
1939
+ body: JSON.stringify({
1940
+ name,
1941
+ threadId,
1942
+ nodeName,
1943
+ messages: [
1944
+ ...messages,
1945
+ ...additionalMessages
1946
+ ],
1947
+ state,
1948
+ properties: graphqlContext.properties,
1949
+ actions: actionInputsWithoutAgents.map((action) => ({
1950
+ name: action.name,
1951
+ description: action.description,
1952
+ parameters: JSON.parse(action.jsonSchema)
1953
+ }))
1954
+ })
1955
+ });
1956
+ if (!response.ok) {
1957
+ logger2.error({
1958
+ url,
1959
+ status: response.status,
1960
+ body: await response.text()
1961
+ }, "Failed to execute remote agent");
1962
+ throw new Error("Failed to execute remote agent");
1963
+ }
1964
+ const eventSource = new RemoteLangGraphEventSource();
1965
+ streamResponse(response.body, eventSource.eventStream$);
1966
+ return eventSource.processLangGraphEvents();
1967
+ }
1968
+ })) : [];
1969
+ return [
1970
+ ...actions,
1971
+ ...agents
1972
+ ];
1973
+ }
1974
+ __name(constructRemoteActions, "constructRemoteActions");
1975
+ async function streamResponse(response, eventStream$) {
1976
+ const reader = response.getReader();
1977
+ const decoder = new TextDecoder();
1978
+ let buffer = [];
1979
+ function flushBuffer() {
1980
+ const currentBuffer = buffer.join("");
1981
+ if (currentBuffer.trim().length === 0) {
1982
+ return;
1983
+ }
1984
+ const parts = currentBuffer.split("\n");
1985
+ if (parts.length === 0) {
1986
+ return;
1987
+ }
1988
+ const lastPartIsComplete = currentBuffer.endsWith("\n");
1989
+ buffer = [];
1990
+ if (!lastPartIsComplete) {
1991
+ buffer.push(parts.pop());
1992
+ }
1993
+ parts.map((part) => part.trim()).filter((part) => part != "").forEach((part) => {
1994
+ eventStream$.next(JSON.parse(part));
1995
+ });
1996
+ }
1997
+ __name(flushBuffer, "flushBuffer");
1998
+ try {
1999
+ while (true) {
2000
+ const { done, value } = await reader.read();
2001
+ if (!done) {
2002
+ buffer.push(decoder.decode(value, {
2003
+ stream: true
2004
+ }));
2005
+ }
2006
+ flushBuffer();
2007
+ if (done) {
2008
+ break;
2009
+ }
2010
+ }
2011
+ } catch (error) {
2012
+ console.error("Error in stream", error);
2013
+ eventStream$.error(error);
2014
+ return;
2015
+ }
2016
+ eventStream$.complete();
2017
+ }
2018
+ __name(streamResponse, "streamResponse");
2019
+ function createHeaders(onBeforeRequest, graphqlContext) {
2020
+ const headers = {
2021
+ "Content-Type": "application/json"
2022
+ };
2023
+ if (onBeforeRequest) {
2024
+ const { headers: additionalHeaders } = onBeforeRequest({
2025
+ ctx: graphqlContext
2026
+ });
2027
+ if (additionalHeaders) {
2028
+ Object.assign(headers, additionalHeaders);
2029
+ }
2030
+ }
2031
+ return headers;
2032
+ }
2033
+ __name(createHeaders, "createHeaders");
2034
+
2035
+ // src/lib/runtime/remote-actions.ts
2036
+ var EndpointType;
2037
+ (function(EndpointType2) {
2038
+ EndpointType2["CopilotKit"] = "copilotKit";
2039
+ EndpointType2["LangGraphPlatform"] = "langgraph-platform";
2040
+ })(EndpointType || (EndpointType = {}));
2041
+ function isLangGraphAgentAction(action) {
2042
+ if (!action) {
2043
+ return false;
2044
+ }
2045
+ return typeof action.langGraphAgentHandler === "function";
2046
+ }
2047
+ __name(isLangGraphAgentAction, "isLangGraphAgentAction");
2048
+ async function fetchRemoteInfo({ url, onBeforeRequest, graphqlContext, logger: logger2, frontendUrl }) {
2049
+ logger2.debug({
2050
+ url
2051
+ }, "Fetching actions from url");
2052
+ const headers = createHeaders(onBeforeRequest, graphqlContext);
2053
+ try {
2054
+ const response = await fetch(`${url}/info`, {
2055
+ method: "POST",
2056
+ headers,
2057
+ body: JSON.stringify({
2058
+ properties: graphqlContext.properties,
2059
+ frontendUrl
2060
+ })
2061
+ });
2062
+ if (!response.ok) {
2063
+ logger2.error({
2064
+ url,
2065
+ status: response.status,
2066
+ body: await response.text()
2067
+ }, "Failed to fetch actions from url");
2068
+ return {
2069
+ actions: [],
2070
+ agents: []
2071
+ };
2072
+ }
2073
+ const json = await response.json();
2074
+ logger2.debug({
2075
+ json
2076
+ }, "Fetched actions from url");
2077
+ return json;
2078
+ } catch (error) {
2079
+ logger2.error({
2080
+ error: error.message ? error.message : error + ""
2081
+ }, "Failed to fetch actions from url");
2082
+ return {
2083
+ actions: [],
2084
+ agents: []
2085
+ };
2086
+ }
2087
+ }
2088
+ __name(fetchRemoteInfo, "fetchRemoteInfo");
2089
+ async function setupRemoteActions({ remoteEndpointDefinitions, graphqlContext, messages, agentStates, frontendUrl }) {
2090
+ const logger2 = graphqlContext.logger.child({
2091
+ component: "remote-actions.fetchRemoteActions"
2092
+ });
2093
+ logger2.debug({
2094
+ remoteEndpointDefinitions
2095
+ }, "Fetching from remote endpoints");
2096
+ const filtered = remoteEndpointDefinitions.filter((value, index, self) => {
2097
+ if (value.type === "langgraph-platform") {
2098
+ return value;
2099
+ }
2100
+ return index === self.findIndex((t) => t.url === value.url);
2101
+ });
2102
+ const result = await Promise.all(filtered.map(async (endpoint) => {
2103
+ if (endpoint.type === "langgraph-platform") {
2104
+ return constructLGCRemoteAction({
2105
+ endpoint,
2106
+ messages,
2107
+ graphqlContext,
2108
+ logger: logger2.child({
2109
+ component: "remote-actions.constructLGCRemoteAction",
2110
+ endpoint
2111
+ }),
2112
+ agentStates
2113
+ });
2114
+ }
2115
+ const json = await fetchRemoteInfo({
2116
+ url: endpoint.url,
2117
+ onBeforeRequest: endpoint.onBeforeRequest,
2118
+ graphqlContext,
2119
+ logger: logger2.child({
2120
+ component: "remote-actions.fetchActionsFromUrl",
2121
+ endpoint
2122
+ }),
2123
+ frontendUrl
2124
+ });
2125
+ return constructRemoteActions({
2126
+ json,
2127
+ messages,
2128
+ url: endpoint.url,
2129
+ onBeforeRequest: endpoint.onBeforeRequest,
2130
+ graphqlContext,
2131
+ logger: logger2.child({
2132
+ component: "remote-actions.constructActions",
2133
+ endpoint
2134
+ }),
2135
+ agentStates
2136
+ });
2137
+ }));
2138
+ return result.flat();
2139
+ }
2140
+ __name(setupRemoteActions, "setupRemoteActions");
2141
+
2142
+ // src/lib/telemetry-client.ts
2143
+ import { createHash as createHash3 } from "crypto";
2144
+
2145
+ // src/lib/runtime/copilot-runtime.ts
2146
+ import { actionParametersToJsonSchema, randomId as randomId2 } from "@copilotkit/shared";
2147
+
2148
+ // src/service-adapters/conversion.ts
2149
+ import { plainToInstance } from "class-transformer";
2150
+ function convertGqlInputToMessages(inputMessages) {
2151
+ const messages = [];
2152
+ for (const message of inputMessages) {
2153
+ if (message.textMessage) {
2154
+ messages.push(plainToInstance(TextMessage, {
2155
+ id: message.id,
2156
+ createdAt: message.createdAt,
2157
+ role: message.textMessage.role,
2158
+ content: message.textMessage.content,
2159
+ parentMessageId: message.textMessage.parentMessageId
2160
+ }));
2161
+ } else if (message.actionExecutionMessage) {
2162
+ messages.push(plainToInstance(ActionExecutionMessage, {
2163
+ id: message.id,
2164
+ createdAt: message.createdAt,
2165
+ name: message.actionExecutionMessage.name,
2166
+ arguments: JSON.parse(message.actionExecutionMessage.arguments),
2167
+ parentMessageId: message.actionExecutionMessage.parentMessageId
2168
+ }));
2169
+ } else if (message.resultMessage) {
2170
+ messages.push(plainToInstance(ResultMessage, {
2171
+ id: message.id,
2172
+ createdAt: message.createdAt,
2173
+ actionExecutionId: message.resultMessage.actionExecutionId,
2174
+ actionName: message.resultMessage.actionName,
2175
+ result: message.resultMessage.result
2176
+ }));
2177
+ } else if (message.agentStateMessage) {
2178
+ messages.push(plainToInstance(AgentStateMessage, {
2179
+ id: message.id,
2180
+ threadId: message.agentStateMessage.threadId,
2181
+ createdAt: message.createdAt,
2182
+ agentName: message.agentStateMessage.agentName,
2183
+ nodeName: message.agentStateMessage.nodeName,
2184
+ runId: message.agentStateMessage.runId,
2185
+ active: message.agentStateMessage.active,
2186
+ role: message.agentStateMessage.role,
2187
+ state: JSON.parse(message.agentStateMessage.state),
2188
+ running: message.agentStateMessage.running
2189
+ }));
2190
+ }
2191
+ }
2192
+ return messages;
2193
+ }
2194
+ __name(convertGqlInputToMessages, "convertGqlInputToMessages");
2195
+
2196
+ // src/lib/runtime/copilot-runtime.ts
2197
+ import { from } from "rxjs";
2198
+ var CopilotRuntime = class {
2199
+ actions;
2200
+ remoteEndpointDefinitions;
2201
+ langserve = [];
2202
+ onBeforeRequest;
2203
+ onAfterRequest;
2204
+ constructor(params) {
2205
+ var _a, _b;
2206
+ this.actions = (params == null ? void 0 : params.actions) || [];
2207
+ for (const chain of (params == null ? void 0 : params.langserve) || []) {
2208
+ const remoteChain = new RemoteChain(chain);
2209
+ this.langserve.push(remoteChain.toAction());
2210
+ }
2211
+ this.remoteEndpointDefinitions = (params == null ? void 0 : params.remoteEndpoints) ?? (params == null ? void 0 : params.remoteActions) ?? [];
2212
+ this.onBeforeRequest = (_a = params == null ? void 0 : params.middleware) == null ? void 0 : _a.onBeforeRequest;
2213
+ this.onAfterRequest = (_b = params == null ? void 0 : params.middleware) == null ? void 0 : _b.onAfterRequest;
2214
+ }
2215
+ async processRuntimeRequest(request) {
2216
+ var _a;
2217
+ const { serviceAdapter, messages: rawMessages, actions: clientSideActionsInput, threadId, runId, outputMessagesPromise, graphqlContext, forwardedParameters, agentSession, url } = request;
2218
+ const eventSource = new RuntimeEventSource();
2219
+ try {
2220
+ if (agentSession) {
2221
+ return await this.processAgentRequest(request);
2222
+ }
2223
+ const messages = rawMessages.filter((message) => !message.agentStateMessage);
2224
+ const inputMessages = convertGqlInputToMessages(messages);
2225
+ const serverSideActions = await this.getServerSideActions(request);
2226
+ const serverSideActionsInput = serverSideActions.map((action) => ({
2227
+ name: action.name,
2228
+ description: action.description,
2229
+ jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters))
2230
+ }));
2231
+ const actionInputs = flattenToolCallsNoDuplicates([
2232
+ ...serverSideActionsInput,
2233
+ ...clientSideActionsInput.filter(
2234
+ // Filter remote actions from CopilotKit core loop
2235
+ (action) => action.available !== ActionInputAvailability.remote
2236
+ )
2237
+ ]);
2238
+ await ((_a = this.onBeforeRequest) == null ? void 0 : _a.call(this, {
2239
+ threadId,
2240
+ runId,
2241
+ inputMessages,
2242
+ properties: graphqlContext.properties,
2243
+ url
2244
+ }));
2245
+ const result = await serviceAdapter.process({
2246
+ messages: inputMessages,
2247
+ actions: actionInputs,
2248
+ threadId,
2249
+ runId,
2250
+ eventSource,
2251
+ forwardedParameters
2252
+ });
2253
+ outputMessagesPromise.then((outputMessages) => {
2254
+ var _a2;
2255
+ (_a2 = this.onAfterRequest) == null ? void 0 : _a2.call(this, {
2256
+ threadId: result.threadId,
2257
+ runId: result.runId,
2258
+ inputMessages,
2259
+ outputMessages,
2260
+ properties: graphqlContext.properties,
2261
+ url
2262
+ });
2263
+ }).catch((_error) => {
2264
+ });
2265
+ return {
2266
+ threadId: result.threadId,
2267
+ runId: result.runId,
2268
+ eventSource,
2269
+ serverSideActions,
2270
+ actionInputsWithoutAgents: actionInputs.filter((action) => (
2271
+ // TODO-AGENTS: do not exclude ALL server side actions
2272
+ !serverSideActions.find((serverSideAction) => serverSideAction.name == action.name)
2273
+ ))
2274
+ };
2275
+ } catch (error) {
2276
+ console.error("Error getting response:", error);
2277
+ eventSource.sendErrorMessageToChat();
2278
+ throw error;
2279
+ }
2280
+ }
2281
+ async discoverAgentsFromEndpoints(graphqlContext) {
2282
+ const headers = createHeaders(null, graphqlContext);
2283
+ const agents = this.remoteEndpointDefinitions.reduce(async (acc, endpoint) => {
2284
+ const agents2 = await acc;
2285
+ if (endpoint.type === EndpointType.LangGraphPlatform) {
2286
+ const response2 = await fetch(`${endpoint.deploymentUrl}/assistants/search`, {
2287
+ method: "POST",
2288
+ headers
2289
+ });
2290
+ const data2 = await response2.json();
2291
+ const endpointAgents2 = (data2 ?? []).map((entry) => ({
2292
+ name: entry.graph_id,
2293
+ id: entry.assistant_id
2294
+ }));
2295
+ return [
2296
+ ...agents2,
2297
+ ...endpointAgents2
2298
+ ];
2299
+ }
2300
+ const response = await fetch(`${endpoint.url}/info`, {
2301
+ method: "POST",
2302
+ headers,
2303
+ body: JSON.stringify({
2304
+ properties: graphqlContext.properties
2305
+ })
2306
+ });
2307
+ const data = await response.json();
2308
+ const endpointAgents = ((data == null ? void 0 : data.agents) ?? []).map((agent) => ({
2309
+ name: agent.name,
2310
+ description: agent.description,
2311
+ id: randomId2()
2312
+ }));
2313
+ return [
2314
+ ...agents2,
2315
+ ...endpointAgents
2316
+ ];
2317
+ }, Promise.resolve([]));
2318
+ return agents;
2319
+ }
2320
+ async processAgentRequest(request) {
2321
+ var _a;
2322
+ const { messages: rawMessages, outputMessagesPromise, graphqlContext, agentSession } = request;
2323
+ const { threadId, agentName, nodeName } = agentSession;
2324
+ const serverSideActions = await this.getServerSideActions(request);
2325
+ const messages = convertGqlInputToMessages(rawMessages);
2326
+ const agent = serverSideActions.find((action) => action.name === agentName && isLangGraphAgentAction(action));
2327
+ if (!agent) {
2328
+ throw new Error(`Agent ${agentName} not found`);
2329
+ }
2330
+ const serverSideActionsInput = serverSideActions.filter((action) => !isLangGraphAgentAction(action)).map((action) => ({
2331
+ name: action.name,
2332
+ description: action.description,
2333
+ jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters))
2334
+ }));
2335
+ const actionInputsWithoutAgents = flattenToolCallsNoDuplicates([
2336
+ ...serverSideActionsInput,
2337
+ ...request.actions
2338
+ ]);
2339
+ await ((_a = this.onBeforeRequest) == null ? void 0 : _a.call(this, {
2340
+ threadId,
2341
+ runId: void 0,
2342
+ inputMessages: messages,
2343
+ properties: graphqlContext.properties
2344
+ }));
2345
+ try {
2346
+ const eventSource = new RuntimeEventSource();
2347
+ const stream = await agent.langGraphAgentHandler({
2348
+ name: agentName,
2349
+ threadId,
2350
+ nodeName,
2351
+ actionInputsWithoutAgents
2352
+ });
2353
+ eventSource.stream(async (eventStream$) => {
2354
+ from(stream).subscribe({
2355
+ next: (event) => eventStream$.next(event),
2356
+ error: (err) => console.error("Error in stream", err),
2357
+ complete: () => eventStream$.complete()
2358
+ });
2359
+ });
2360
+ outputMessagesPromise.then((outputMessages) => {
2361
+ var _a2;
2362
+ (_a2 = this.onAfterRequest) == null ? void 0 : _a2.call(this, {
2363
+ threadId,
2364
+ runId: void 0,
2365
+ inputMessages: messages,
2366
+ outputMessages,
2367
+ properties: graphqlContext.properties
2368
+ });
2369
+ }).catch((_error) => {
2370
+ });
2371
+ return {
2372
+ threadId,
2373
+ runId: void 0,
2374
+ eventSource,
2375
+ serverSideActions: [],
2376
+ actionInputsWithoutAgents
2377
+ };
2378
+ } catch (error) {
2379
+ console.error("Error getting response:", error);
2380
+ throw error;
2381
+ }
2382
+ }
2383
+ async getServerSideActions(request) {
2384
+ const { messages: rawMessages, graphqlContext, agentStates, url } = request;
2385
+ const inputMessages = convertGqlInputToMessages(rawMessages);
2386
+ const langserveFunctions = [];
2387
+ for (const chainPromise of this.langserve) {
2388
+ try {
2389
+ const chain = await chainPromise;
2390
+ langserveFunctions.push(chain);
2391
+ } catch (error) {
2392
+ console.error("Error loading langserve chain:", error);
2393
+ }
2394
+ }
2395
+ const remoteEndpointDefinitions = this.remoteEndpointDefinitions.map((endpoint) => ({
2396
+ ...endpoint,
2397
+ type: resolveEndpointType(endpoint)
2398
+ }));
2399
+ const remoteActions = await setupRemoteActions({
2400
+ remoteEndpointDefinitions,
2401
+ graphqlContext,
2402
+ messages: inputMessages,
2403
+ agentStates,
2404
+ frontendUrl: url
2405
+ });
2406
+ const configuredActions = typeof this.actions === "function" ? this.actions({
2407
+ properties: graphqlContext.properties,
2408
+ url
2409
+ }) : this.actions;
2410
+ return [
2411
+ ...configuredActions,
2412
+ ...langserveFunctions,
2413
+ ...remoteActions
2414
+ ];
2415
+ }
2416
+ };
2417
+ __name(CopilotRuntime, "CopilotRuntime");
2418
+ function flattenToolCallsNoDuplicates(toolsByPriority) {
2419
+ let allTools = [];
2420
+ const allToolNames = [];
2421
+ for (const tool of toolsByPriority) {
2422
+ if (!allToolNames.includes(tool.name)) {
2423
+ allTools.push(tool);
2424
+ allToolNames.push(tool.name);
2425
+ }
2426
+ }
2427
+ return allTools;
2428
+ }
2429
+ __name(flattenToolCallsNoDuplicates, "flattenToolCallsNoDuplicates");
2430
+ function copilotKitEndpoint(config) {
2431
+ return {
2432
+ ...config,
2433
+ type: EndpointType.CopilotKit
2434
+ };
2435
+ }
2436
+ __name(copilotKitEndpoint, "copilotKitEndpoint");
2437
+ function langGraphPlatformEndpoint(config) {
2438
+ return {
2439
+ ...config,
2440
+ type: EndpointType.LangGraphPlatform
2441
+ };
2442
+ }
2443
+ __name(langGraphPlatformEndpoint, "langGraphPlatformEndpoint");
2444
+ function resolveEndpointType(endpoint) {
2445
+ if (!endpoint.type) {
2446
+ if ("langsmithApiKey" in endpoint && "deploymentUrl" in endpoint && "agents" in endpoint) {
2447
+ return EndpointType.LangGraphPlatform;
2448
+ } else {
2449
+ return EndpointType.CopilotKit;
2450
+ }
2451
+ }
2452
+ return endpoint.type;
2453
+ }
2454
+ __name(resolveEndpointType, "resolveEndpointType");
2455
+
2456
+ // src/lib/telemetry-client.ts
2457
+ var packageJson = require_package();
2458
+ var telemetryClient = new TelemetryClient({
2459
+ packageName: packageJson.name,
2460
+ packageVersion: packageJson.version
2461
+ });
2462
+ function getRuntimeInstanceTelemetryInfo(runtime) {
2463
+ const endpointsInfo = runtime.remoteEndpointDefinitions.reduce((acc, endpoint) => {
2464
+ let info = {
2465
+ ...acc
2466
+ };
2467
+ const endpointType = resolveEndpointType(endpoint);
2468
+ if (!info.endpointTypes.includes(endpointType)) {
2469
+ info = {
2470
+ ...info,
2471
+ endpointTypes: [
2472
+ ...info.endpointTypes,
2473
+ endpointType
2474
+ ]
2475
+ };
2476
+ }
2477
+ if (endpointType === EndpointType.LangGraphPlatform) {
2478
+ const ep = endpoint;
2479
+ info = {
2480
+ ...info,
2481
+ agentsAmount: ep.agents.length,
2482
+ hashedKey: createHash3("sha256").update(ep.langsmithApiKey).digest("hex")
2483
+ };
2484
+ }
2485
+ return info;
2486
+ }, {
2487
+ endpointTypes: [],
2488
+ agentsAmount: null,
2489
+ hashedKey: null
2490
+ });
2491
+ return {
2492
+ actionsAmount: runtime.actions.length,
2493
+ endpointsAmount: runtime.remoteEndpointDefinitions.length,
2494
+ endpointTypes: endpointsInfo.endpointTypes,
2495
+ agentsAmount: endpointsInfo.agentsAmount,
2496
+ hashedLgcKey: endpointsInfo.hashedKey
2497
+ };
2498
+ }
2499
+ __name(getRuntimeInstanceTelemetryInfo, "getRuntimeInstanceTelemetryInfo");
2500
+ var telemetry_client_default = telemetryClient;
2501
+
2502
+ // src/service-adapters/events.ts
2503
+ import { plainToInstance as plainToInstance2 } from "class-transformer";
2504
+ var RuntimeEventTypes;
2505
+ (function(RuntimeEventTypes2) {
2506
+ RuntimeEventTypes2["TextMessageStart"] = "TextMessageStart";
2507
+ RuntimeEventTypes2["TextMessageContent"] = "TextMessageContent";
2508
+ RuntimeEventTypes2["TextMessageEnd"] = "TextMessageEnd";
2509
+ RuntimeEventTypes2["ActionExecutionStart"] = "ActionExecutionStart";
2510
+ RuntimeEventTypes2["ActionExecutionArgs"] = "ActionExecutionArgs";
2511
+ RuntimeEventTypes2["ActionExecutionEnd"] = "ActionExecutionEnd";
2512
+ RuntimeEventTypes2["ActionExecutionResult"] = "ActionExecutionResult";
2513
+ RuntimeEventTypes2["AgentStateMessage"] = "AgentStateMessage";
2514
+ })(RuntimeEventTypes || (RuntimeEventTypes = {}));
2515
+ var RuntimeEventSubject = class extends ReplaySubject2 {
2516
+ constructor() {
2517
+ super();
2518
+ }
2519
+ sendTextMessageStart({ messageId, parentMessageId }) {
2520
+ this.next({
2521
+ type: "TextMessageStart",
2522
+ messageId,
2523
+ parentMessageId
2524
+ });
2525
+ }
2526
+ sendTextMessageContent({ messageId, content }) {
2527
+ this.next({
2528
+ type: "TextMessageContent",
2529
+ content,
2530
+ messageId
2531
+ });
2532
+ }
2533
+ sendTextMessageEnd({ messageId }) {
2534
+ this.next({
2535
+ type: "TextMessageEnd",
2536
+ messageId
2537
+ });
2538
+ }
2539
+ sendTextMessage(messageId, content) {
2540
+ this.sendTextMessageStart({
2541
+ messageId
2542
+ });
2543
+ this.sendTextMessageContent({
2544
+ messageId,
2545
+ content
2546
+ });
2547
+ this.sendTextMessageEnd({
2548
+ messageId
2549
+ });
2550
+ }
2551
+ sendActionExecutionStart({ actionExecutionId, actionName, parentMessageId }) {
2552
+ this.next({
2553
+ type: "ActionExecutionStart",
2554
+ actionExecutionId,
2555
+ actionName,
2556
+ parentMessageId
2557
+ });
2558
+ }
2559
+ sendActionExecutionArgs({ actionExecutionId, args }) {
2560
+ this.next({
2561
+ type: "ActionExecutionArgs",
2562
+ args,
2563
+ actionExecutionId
2564
+ });
2565
+ }
2566
+ sendActionExecutionEnd({ actionExecutionId }) {
2567
+ this.next({
2568
+ type: "ActionExecutionEnd",
2569
+ actionExecutionId
2570
+ });
2571
+ }
2572
+ sendActionExecution({ actionExecutionId, actionName, args, parentMessageId }) {
2573
+ this.sendActionExecutionStart({
2574
+ actionExecutionId,
2575
+ actionName,
2576
+ parentMessageId
2577
+ });
2578
+ this.sendActionExecutionArgs({
2579
+ actionExecutionId,
2580
+ args
2581
+ });
2582
+ this.sendActionExecutionEnd({
2583
+ actionExecutionId
2584
+ });
2585
+ }
2586
+ sendActionExecutionResult({ actionExecutionId, actionName, result }) {
2587
+ this.next({
2588
+ type: "ActionExecutionResult",
2589
+ actionName,
2590
+ actionExecutionId,
2591
+ result
2592
+ });
2593
+ }
2594
+ sendAgentStateMessage({ threadId, agentName, nodeName, runId, active, role, state, running }) {
2595
+ this.next({
2596
+ type: "AgentStateMessage",
2597
+ threadId,
2598
+ agentName,
2599
+ nodeName,
2600
+ runId,
2601
+ active,
2602
+ role,
2603
+ state,
2604
+ running
2605
+ });
2606
+ }
2607
+ };
2608
+ __name(RuntimeEventSubject, "RuntimeEventSubject");
2609
+ var RuntimeEventSource = class {
2610
+ eventStream$ = new RuntimeEventSubject();
2611
+ callback;
2612
+ async stream(callback) {
2613
+ this.callback = callback;
2614
+ }
2615
+ sendErrorMessageToChat(message = "An error occurred. Please try again.") {
2616
+ const errorMessage = `\u274C ${message}`;
2617
+ if (!this.callback) {
2618
+ this.stream(async (eventStream$) => {
2619
+ eventStream$.sendTextMessage(randomId3(), errorMessage);
2620
+ });
2621
+ } else {
2622
+ this.eventStream$.sendTextMessage(randomId3(), errorMessage);
2623
+ }
2624
+ }
2625
+ processRuntimeEvents({ serverSideActions, guardrailsResult$, actionInputsWithoutAgents }) {
2626
+ this.callback(this.eventStream$).catch((error) => {
2627
+ console.error("Error in event source callback", error);
2628
+ this.sendErrorMessageToChat();
2629
+ });
2630
+ return this.eventStream$.pipe(
2631
+ // track state
2632
+ scan2((acc, event) => {
2633
+ acc = {
2634
+ ...acc
2635
+ };
2636
+ if (event.type === "ActionExecutionStart") {
2637
+ acc.callActionServerSide = serverSideActions.find((action) => action.name === event.actionName) !== void 0;
2638
+ acc.args = "";
2639
+ acc.actionExecutionId = event.actionExecutionId;
2640
+ if (acc.callActionServerSide) {
2641
+ acc.action = serverSideActions.find((action) => action.name === event.actionName);
2642
+ }
2643
+ acc.actionExecutionParentMessageId = event.parentMessageId;
2644
+ } else if (event.type === "ActionExecutionArgs") {
2645
+ acc.args += event.args;
2646
+ }
2647
+ acc.event = event;
2648
+ return acc;
2649
+ }, {
2650
+ event: null,
2651
+ callActionServerSide: false,
2652
+ args: "",
2653
+ actionExecutionId: null,
2654
+ action: null,
2655
+ actionExecutionParentMessageId: null
2656
+ }),
2657
+ concatMap((eventWithState) => {
2658
+ if (eventWithState.event.type === "ActionExecutionEnd" && eventWithState.callActionServerSide) {
2659
+ const toolCallEventStream$ = new RuntimeEventSubject();
2660
+ executeAction(toolCallEventStream$, guardrailsResult$ ? guardrailsResult$ : null, eventWithState.action, eventWithState.args, eventWithState.actionExecutionParentMessageId, eventWithState.actionExecutionId, actionInputsWithoutAgents).catch((error) => {
2661
+ console.error(error);
2662
+ });
2663
+ telemetry_client_default.capture("oss.runtime.server_action_executed", {});
2664
+ return concat(of(eventWithState.event), toolCallEventStream$);
2665
+ } else {
2666
+ return of(eventWithState.event);
2667
+ }
2668
+ })
2669
+ );
2670
+ }
2671
+ };
2672
+ __name(RuntimeEventSource, "RuntimeEventSource");
2673
+ async function executeAction(eventStream$, guardrailsResult$, action, actionArguments, actionExecutionParentMessageId, actionExecutionId, actionInputsWithoutAgents) {
2674
+ var _a;
2675
+ if (guardrailsResult$) {
2676
+ const { status } = await firstValueFrom(guardrailsResult$);
2677
+ if (status === "denied") {
2678
+ eventStream$.complete();
2679
+ return;
2680
+ }
2681
+ }
2682
+ let args = [];
2683
+ if (actionArguments) {
2684
+ try {
2685
+ args = JSON.parse(actionArguments);
2686
+ } catch (e) {
2687
+ console.warn("Action argument unparsable", {
2688
+ actionArguments
2689
+ });
2690
+ }
2691
+ }
2692
+ if (isLangGraphAgentAction(action)) {
2693
+ const result = `${action.name} agent started`;
2694
+ const agentExecution = plainToInstance2(ActionExecutionMessage, {
2695
+ id: actionExecutionId,
2696
+ createdAt: /* @__PURE__ */ new Date(),
2697
+ name: action.name,
2698
+ arguments: JSON.parse(actionArguments),
2699
+ parentMessageId: actionExecutionParentMessageId ?? actionExecutionId
2700
+ });
2701
+ const agentExecutionResult = plainToInstance2(ResultMessage, {
2702
+ id: "result-" + actionExecutionId,
2703
+ createdAt: /* @__PURE__ */ new Date(),
2704
+ actionExecutionId,
2705
+ actionName: action.name,
2706
+ result
2707
+ });
2708
+ eventStream$.sendActionExecutionResult({
2709
+ actionExecutionId,
2710
+ actionName: action.name,
2711
+ result
2712
+ });
2713
+ const stream = await action.langGraphAgentHandler({
2714
+ name: action.name,
2715
+ actionInputsWithoutAgents,
2716
+ additionalMessages: [
2717
+ agentExecution,
2718
+ agentExecutionResult
2719
+ ]
2720
+ });
2721
+ from2(stream).subscribe({
2722
+ next: (event) => eventStream$.next(event),
2723
+ error: (err) => console.error("Error in stream", err),
2724
+ complete: () => eventStream$.complete()
2725
+ });
2726
+ } else {
2727
+ const result = await ((_a = action.handler) == null ? void 0 : _a.call(action, args));
2728
+ await streamLangChainResponse({
2729
+ result,
2730
+ eventStream$,
2731
+ actionExecution: {
2732
+ name: action.name,
2733
+ id: actionExecutionId
2734
+ }
2735
+ });
2736
+ }
2737
+ }
2738
+ __name(executeAction, "executeAction");
2739
+
2740
+ // src/graphql/resolvers/copilot.resolver.ts
2741
+ import { GraphQLJSONObject } from "graphql-scalars";
2742
+ import { plainToInstance as plainToInstance3 } from "class-transformer";
2743
+ import { GraphQLError } from "graphql";
2744
+ import { randomId as randomId4 } from "@copilotkit/shared";
2745
+
2746
+ // src/graphql/types/agents-response.type.ts
2747
+ import { Field as Field12, ObjectType as ObjectType3 } from "type-graphql";
2748
+ function _ts_decorate12(decorators, target, key, desc) {
2749
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2750
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
2751
+ r = Reflect.decorate(decorators, target, key, desc);
2752
+ else
2753
+ for (var i = decorators.length - 1; i >= 0; i--)
2754
+ if (d = decorators[i])
2755
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2756
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2757
+ }
2758
+ __name(_ts_decorate12, "_ts_decorate");
2759
+ function _ts_metadata12(k, v) {
2760
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
2761
+ return Reflect.metadata(k, v);
2762
+ }
2763
+ __name(_ts_metadata12, "_ts_metadata");
2764
+ var Agent = class {
2765
+ id;
2766
+ name;
2767
+ description;
2768
+ };
2769
+ __name(Agent, "Agent");
2770
+ _ts_decorate12([
2771
+ Field12(() => String),
2772
+ _ts_metadata12("design:type", String)
2773
+ ], Agent.prototype, "id", void 0);
2774
+ _ts_decorate12([
2775
+ Field12(() => String),
2776
+ _ts_metadata12("design:type", String)
2777
+ ], Agent.prototype, "name", void 0);
2778
+ _ts_decorate12([
2779
+ Field12(() => String),
2780
+ _ts_metadata12("design:type", String)
2781
+ ], Agent.prototype, "description", void 0);
2782
+ Agent = _ts_decorate12([
2783
+ ObjectType3()
2784
+ ], Agent);
2785
+ var AgentsResponse = class {
2786
+ agents;
2787
+ };
2788
+ __name(AgentsResponse, "AgentsResponse");
2789
+ _ts_decorate12([
2790
+ Field12(() => [
2791
+ Agent
2792
+ ]),
2793
+ _ts_metadata12("design:type", Array)
2794
+ ], AgentsResponse.prototype, "agents", void 0);
2795
+ AgentsResponse = _ts_decorate12([
2796
+ ObjectType3()
2797
+ ], AgentsResponse);
2798
+
2799
+ // src/graphql/resolvers/copilot.resolver.ts
2800
+ function _ts_decorate13(decorators, target, key, desc) {
2801
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2802
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
2803
+ r = Reflect.decorate(decorators, target, key, desc);
2804
+ else
2805
+ for (var i = decorators.length - 1; i >= 0; i--)
2806
+ if (d = decorators[i])
2807
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
2808
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
2809
+ }
2810
+ __name(_ts_decorate13, "_ts_decorate");
2811
+ function _ts_metadata13(k, v) {
2812
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
2813
+ return Reflect.metadata(k, v);
2814
+ }
2815
+ __name(_ts_metadata13, "_ts_metadata");
2816
+ function _ts_param(paramIndex, decorator) {
2817
+ return function(target, key) {
2818
+ decorator(target, key, paramIndex);
2819
+ };
2820
+ }
2821
+ __name(_ts_param, "_ts_param");
2822
+ var invokeGuardrails = /* @__PURE__ */ __name(async ({ baseUrl, copilotCloudPublicApiKey, data, onResult, onError }) => {
2823
+ var _a;
2824
+ if (data.messages.length && ((_a = data.messages[data.messages.length - 1].textMessage) == null ? void 0 : _a.role) === MessageRole.user) {
2825
+ const messages = data.messages.filter((m) => m.textMessage !== void 0 && (m.textMessage.role === MessageRole.user || m.textMessage.role === MessageRole.assistant)).map((m) => ({
2826
+ role: m.textMessage.role,
2827
+ content: m.textMessage.content
2828
+ }));
2829
+ const lastMessage = messages[messages.length - 1];
2830
+ const restOfMessages = messages.slice(0, -1);
2831
+ const body = {
2832
+ input: lastMessage.content,
2833
+ validTopics: data.cloud.guardrails.inputValidationRules.allowList,
2834
+ invalidTopics: data.cloud.guardrails.inputValidationRules.denyList,
2835
+ messages: restOfMessages
2836
+ };
2837
+ const guardrailsResult = await fetch(`${baseUrl}/guardrails/validate`, {
2838
+ method: "POST",
2839
+ headers: {
2840
+ "Content-Type": "application/json",
2841
+ "X-CopilotCloud-Public-API-Key": copilotCloudPublicApiKey
2842
+ },
2843
+ body: JSON.stringify(body)
2844
+ });
2845
+ if (guardrailsResult.ok) {
2846
+ const resultJson = await guardrailsResult.json();
2847
+ onResult(resultJson);
2848
+ } else {
2849
+ onError(await guardrailsResult.json());
2850
+ }
2851
+ }
2852
+ }, "invokeGuardrails");
2853
+ var CopilotResolver = class {
2854
+ async hello() {
2855
+ return "Hello World";
2856
+ }
2857
+ async availableAgents(ctx) {
2858
+ console.log("availableAgents");
2859
+ let logger2 = ctx.logger.child({
2860
+ component: "CopilotResolver.availableAgents"
2861
+ });
2862
+ logger2.debug("Processing");
2863
+ const agents = await ctx._copilotkit.runtime.discoverAgentsFromEndpoints(ctx);
2864
+ logger2.debug("Event source created, creating response");
2865
+ return {
2866
+ agents
2867
+ };
2868
+ }
2869
+ async generateCopilotResponse(ctx, data, properties) {
2870
+ var _a, _b, _c;
2871
+ telemetry_client_default.capture("oss.runtime.copilot_request_created", {
2872
+ "cloud.guardrails.enabled": ((_a = data.cloud) == null ? void 0 : _a.guardrails) !== void 0,
2873
+ requestType: data.metadata.requestType
2874
+ });
2875
+ let logger2 = ctx.logger.child({
2876
+ component: "CopilotResolver.generateCopilotResponse"
2877
+ });
2878
+ logger2.debug({
2879
+ data
2880
+ }, "Generating Copilot response");
2881
+ if (properties) {
2882
+ logger2.debug("Properties provided, merging with context properties");
2883
+ ctx.properties = {
2884
+ ...ctx.properties,
2885
+ ...properties
2886
+ };
2887
+ }
2888
+ const copilotRuntime = ctx._copilotkit.runtime;
2889
+ const serviceAdapter = ctx._copilotkit.serviceAdapter;
2890
+ let copilotCloudPublicApiKey = null;
2891
+ let copilotCloudBaseUrl;
2892
+ if (data.cloud) {
2893
+ logger2 = logger2.child({
2894
+ cloud: true
2895
+ });
2896
+ logger2.debug("Cloud configuration provided, checking for public API key in headers");
2897
+ const key = ctx.request.headers.get("x-copilotcloud-public-api-key");
2898
+ if (key) {
2899
+ logger2.debug("Public API key found in headers");
2900
+ copilotCloudPublicApiKey = key;
2901
+ } else {
2902
+ logger2.error("Public API key not found in headers");
2903
+ throw new GraphQLError("X-CopilotCloud-Public-API-Key header is required");
2904
+ }
2905
+ if (process.env.COPILOT_CLOUD_BASE_URL) {
2906
+ copilotCloudBaseUrl = process.env.COPILOT_CLOUD_BASE_URL;
2907
+ } else if ((_b = ctx._copilotkit.cloud) == null ? void 0 : _b.baseUrl) {
2908
+ copilotCloudBaseUrl = (_c = ctx._copilotkit.cloud) == null ? void 0 : _c.baseUrl;
2909
+ } else {
2910
+ copilotCloudBaseUrl = "https://api.cloud.copilotkit.ai";
2911
+ }
2912
+ logger2 = logger2.child({
2913
+ copilotCloudBaseUrl
2914
+ });
2915
+ }
2916
+ logger2.debug("Setting up subjects");
2917
+ const responseStatus$ = new ReplaySubject3();
2918
+ const interruptStreaming$ = new ReplaySubject3();
2919
+ const guardrailsResult$ = new ReplaySubject3();
2920
+ let outputMessages = [];
2921
+ let resolveOutputMessagesPromise;
2922
+ let rejectOutputMessagesPromise;
2923
+ const outputMessagesPromise = new Promise((resolve, reject) => {
2924
+ resolveOutputMessagesPromise = resolve;
2925
+ rejectOutputMessagesPromise = reject;
2926
+ });
2927
+ logger2.debug("Processing");
2928
+ const { eventSource, threadId = randomId4(), runId, serverSideActions, actionInputsWithoutAgents } = await copilotRuntime.processRuntimeRequest({
2929
+ serviceAdapter,
2930
+ messages: data.messages,
2931
+ actions: data.frontend.actions.filter((action) => action.available !== ActionInputAvailability.disabled),
2932
+ threadId: data.threadId,
2933
+ runId: data.runId,
2934
+ publicApiKey: void 0,
2935
+ outputMessagesPromise,
2936
+ graphqlContext: ctx,
2937
+ forwardedParameters: data.forwardedParameters,
2938
+ agentSession: data.agentSession,
2939
+ agentStates: data.agentStates,
2940
+ url: data.frontend.url
2941
+ });
2942
+ logger2.debug("Event source created, creating response");
2943
+ const response = {
2944
+ threadId,
2945
+ runId,
2946
+ status: firstValueFrom2(responseStatus$),
2947
+ messages: new Repeater(async (pushMessage, stopStreamingMessages) => {
2948
+ var _a2, _b2;
2949
+ logger2.debug("Messages repeater created");
2950
+ if ((_a2 = data.cloud) == null ? void 0 : _a2.guardrails) {
2951
+ logger2 = logger2.child({
2952
+ guardrails: true
2953
+ });
2954
+ logger2.debug("Guardrails is enabled, validating input");
2955
+ invokeGuardrails({
2956
+ baseUrl: copilotCloudBaseUrl,
2957
+ copilotCloudPublicApiKey,
2958
+ data,
2959
+ onResult: (result) => {
2960
+ logger2.debug({
2961
+ status: result.status
2962
+ }, "Guardrails validation done");
2963
+ guardrailsResult$.next(result);
2964
+ if (result.status === "denied") {
2965
+ responseStatus$.next(new GuardrailsValidationFailureResponse({
2966
+ guardrailsReason: result.reason
2967
+ }));
2968
+ interruptStreaming$.next({
2969
+ reason: `Interrupted due to Guardrails validation failure. Reason: ${result.reason}`
2970
+ });
2971
+ outputMessages = [
2972
+ plainToInstance3(TextMessage, {
2973
+ id: randomId4(),
2974
+ createdAt: /* @__PURE__ */ new Date(),
2975
+ content: result.reason,
2976
+ role: MessageRole.assistant
2977
+ })
2978
+ ];
2979
+ resolveOutputMessagesPromise(outputMessages);
2980
+ }
2981
+ },
2982
+ onError: (err) => {
2983
+ logger2.error({
2984
+ err
2985
+ }, "Error in guardrails validation");
2986
+ responseStatus$.next(new UnknownErrorResponse({
2987
+ description: `An unknown error has occurred in the guardrails validation`
2988
+ }));
2989
+ interruptStreaming$.next({
2990
+ reason: `Interrupted due to unknown error in guardrails validation`
2991
+ });
2992
+ rejectOutputMessagesPromise(err);
2993
+ }
2994
+ });
2995
+ }
2996
+ let eventStreamSubscription;
2997
+ const eventStream = eventSource.processRuntimeEvents({
2998
+ serverSideActions,
2999
+ guardrailsResult$: ((_b2 = data.cloud) == null ? void 0 : _b2.guardrails) ? guardrailsResult$ : null,
3000
+ actionInputsWithoutAgents: actionInputsWithoutAgents.filter(
3001
+ // TODO-AGENTS: do not exclude ALL server side actions
3002
+ (action) => !serverSideActions.find((serverSideAction) => serverSideAction.name == action.name)
3003
+ )
3004
+ }).pipe(
3005
+ // shareReplay() ensures that later subscribers will see the whole stream instead of
3006
+ // just the events that were emitted after the subscriber was added.
3007
+ shareReplay(),
3008
+ finalize(() => {
3009
+ logger2.debug("Event stream finalized");
3010
+ })
3011
+ );
3012
+ logger2.debug("Event stream created, subscribing to event stream");
3013
+ eventStreamSubscription = eventStream.subscribe({
3014
+ next: async (event) => {
3015
+ switch (event.type) {
3016
+ case RuntimeEventTypes.TextMessageStart:
3017
+ const textMessageContentStream = eventStream.pipe(
3018
+ // skip until this message start event
3019
+ skipWhile((e) => e !== event),
3020
+ // take until the message end event
3021
+ takeWhile((e) => !(e.type === RuntimeEventTypes.TextMessageEnd && e.messageId == event.messageId)),
3022
+ // filter out any other message events or message ids
3023
+ filter((e) => e.type == RuntimeEventTypes.TextMessageContent && e.messageId == event.messageId)
3024
+ );
3025
+ const streamingTextStatus = new Subject();
3026
+ const messageId = event.messageId;
3027
+ pushMessage({
3028
+ id: messageId,
3029
+ parentMessageId: event.parentMessageId,
3030
+ status: firstValueFrom2(streamingTextStatus),
3031
+ createdAt: /* @__PURE__ */ new Date(),
3032
+ role: MessageRole.assistant,
3033
+ content: new Repeater(async (pushTextChunk, stopStreamingText) => {
3034
+ logger2.debug("Text message content repeater created");
3035
+ const textChunks = [];
3036
+ let textSubscription;
3037
+ interruptStreaming$.pipe(shareReplay(), take(1), tap(({ reason, messageId: messageId2 }) => {
3038
+ logger2.debug({
3039
+ reason,
3040
+ messageId: messageId2
3041
+ }, "Text streaming interrupted");
3042
+ streamingTextStatus.next(plainToInstance3(FailedMessageStatus, {
3043
+ reason
3044
+ }));
3045
+ responseStatus$.next(new MessageStreamInterruptedResponse({
3046
+ messageId: messageId2
3047
+ }));
3048
+ stopStreamingText();
3049
+ textSubscription == null ? void 0 : textSubscription.unsubscribe();
3050
+ })).subscribe();
3051
+ logger2.debug("Subscribing to text message content stream");
3052
+ textSubscription = textMessageContentStream.subscribe({
3053
+ next: async (e) => {
3054
+ if (e.type == RuntimeEventTypes.TextMessageContent) {
3055
+ await pushTextChunk(e.content);
3056
+ textChunks.push(e.content);
3057
+ }
3058
+ },
3059
+ error: (err) => {
3060
+ logger2.error({
3061
+ err
3062
+ }, "Error in text message content stream");
3063
+ interruptStreaming$.next({
3064
+ reason: "Error streaming message content",
3065
+ messageId
3066
+ });
3067
+ stopStreamingText();
3068
+ textSubscription == null ? void 0 : textSubscription.unsubscribe();
3069
+ },
3070
+ complete: () => {
3071
+ logger2.debug("Text message content stream completed");
3072
+ streamingTextStatus.next(new SuccessMessageStatus());
3073
+ stopStreamingText();
3074
+ textSubscription == null ? void 0 : textSubscription.unsubscribe();
3075
+ outputMessages.push(plainToInstance3(TextMessage, {
3076
+ id: messageId,
3077
+ createdAt: /* @__PURE__ */ new Date(),
3078
+ content: textChunks.join(""),
3079
+ role: MessageRole.assistant
3080
+ }));
3081
+ }
3082
+ });
3083
+ })
3084
+ });
3085
+ break;
3086
+ case RuntimeEventTypes.ActionExecutionStart:
3087
+ logger2.debug("Action execution start event received");
3088
+ const actionExecutionArgumentStream = eventStream.pipe(
3089
+ skipWhile((e) => e !== event),
3090
+ // take until the action execution end event
3091
+ takeWhile((e) => !(e.type === RuntimeEventTypes.ActionExecutionEnd && e.actionExecutionId == event.actionExecutionId)),
3092
+ // filter out any other action execution events or action execution ids
3093
+ filter((e) => e.type == RuntimeEventTypes.ActionExecutionArgs && e.actionExecutionId == event.actionExecutionId)
3094
+ );
3095
+ const streamingArgumentsStatus = new Subject();
3096
+ pushMessage({
3097
+ id: event.actionExecutionId,
3098
+ parentMessageId: event.parentMessageId,
3099
+ status: firstValueFrom2(streamingArgumentsStatus),
3100
+ createdAt: /* @__PURE__ */ new Date(),
3101
+ name: event.actionName,
3102
+ arguments: new Repeater(async (pushArgumentsChunk, stopStreamingArguments) => {
3103
+ logger2.debug("Action execution argument stream created");
3104
+ const argumentChunks = [];
3105
+ let actionExecutionArgumentSubscription;
3106
+ actionExecutionArgumentSubscription = actionExecutionArgumentStream.subscribe({
3107
+ next: async (e) => {
3108
+ if (e.type == RuntimeEventTypes.ActionExecutionArgs) {
3109
+ await pushArgumentsChunk(e.args);
3110
+ argumentChunks.push(e.args);
3111
+ }
3112
+ },
3113
+ error: (err) => {
3114
+ logger2.error({
3115
+ err
3116
+ }, "Error in action execution argument stream");
3117
+ streamingArgumentsStatus.next(plainToInstance3(FailedMessageStatus, {
3118
+ reason: "An unknown error has occurred in the action execution argument stream"
3119
+ }));
3120
+ stopStreamingArguments();
3121
+ actionExecutionArgumentSubscription == null ? void 0 : actionExecutionArgumentSubscription.unsubscribe();
3122
+ },
3123
+ complete: () => {
3124
+ logger2.debug("Action execution argument stream completed");
3125
+ streamingArgumentsStatus.next(new SuccessMessageStatus());
3126
+ stopStreamingArguments();
3127
+ actionExecutionArgumentSubscription == null ? void 0 : actionExecutionArgumentSubscription.unsubscribe();
3128
+ outputMessages.push(plainToInstance3(ActionExecutionMessage, {
3129
+ id: event.actionExecutionId,
3130
+ createdAt: /* @__PURE__ */ new Date(),
3131
+ name: event.actionName,
3132
+ arguments: argumentChunks.join("")
3133
+ }));
3134
+ }
3135
+ });
3136
+ })
3137
+ });
3138
+ break;
3139
+ case RuntimeEventTypes.ActionExecutionResult:
3140
+ logger2.debug({
3141
+ result: event.result
3142
+ }, "Action execution result event received");
3143
+ pushMessage({
3144
+ id: "result-" + event.actionExecutionId,
3145
+ status: new SuccessMessageStatus(),
3146
+ createdAt: /* @__PURE__ */ new Date(),
3147
+ actionExecutionId: event.actionExecutionId,
3148
+ actionName: event.actionName,
3149
+ result: event.result
3150
+ });
3151
+ outputMessages.push(plainToInstance3(ResultMessage, {
3152
+ id: "result-" + event.actionExecutionId,
3153
+ createdAt: /* @__PURE__ */ new Date(),
3154
+ actionExecutionId: event.actionExecutionId,
3155
+ actionName: event.actionName,
3156
+ result: event.result
3157
+ }));
3158
+ break;
3159
+ case RuntimeEventTypes.AgentStateMessage:
3160
+ logger2.debug({
3161
+ event
3162
+ }, "Agent message event received");
3163
+ pushMessage({
3164
+ id: randomId4(),
3165
+ status: new SuccessMessageStatus(),
3166
+ threadId: event.threadId,
3167
+ agentName: event.agentName,
3168
+ nodeName: event.nodeName,
3169
+ runId: event.runId,
3170
+ active: event.active,
3171
+ state: event.state,
3172
+ running: event.running,
3173
+ role: MessageRole.assistant,
3174
+ createdAt: /* @__PURE__ */ new Date()
3175
+ });
3176
+ outputMessages.push(plainToInstance3(AgentStateMessage, {
3177
+ id: randomId4(),
3178
+ threadId: event.threadId,
3179
+ agentName: event.agentName,
3180
+ nodeName: event.nodeName,
3181
+ runId: event.runId,
3182
+ active: event.active,
3183
+ state: event.state,
3184
+ running: event.running,
3185
+ role: MessageRole.assistant,
3186
+ createdAt: /* @__PURE__ */ new Date()
3187
+ }));
3188
+ break;
3189
+ }
3190
+ },
3191
+ error: (err) => {
3192
+ logger2.error({
3193
+ err
3194
+ }, "Error in event stream");
3195
+ responseStatus$.next(new UnknownErrorResponse({
3196
+ description: `An unknown error has occurred in the event stream`
3197
+ }));
3198
+ eventStreamSubscription == null ? void 0 : eventStreamSubscription.unsubscribe();
3199
+ stopStreamingMessages();
3200
+ rejectOutputMessagesPromise(err);
3201
+ },
3202
+ complete: async () => {
3203
+ var _a3;
3204
+ logger2.debug("Event stream completed");
3205
+ if ((_a3 = data.cloud) == null ? void 0 : _a3.guardrails) {
3206
+ logger2.debug("Guardrails is enabled, waiting for guardrails result");
3207
+ await firstValueFrom2(guardrailsResult$);
3208
+ }
3209
+ responseStatus$.next(new SuccessResponseStatus());
3210
+ eventStreamSubscription == null ? void 0 : eventStreamSubscription.unsubscribe();
3211
+ stopStreamingMessages();
3212
+ resolveOutputMessagesPromise(outputMessages);
3213
+ }
3214
+ });
3215
+ })
3216
+ };
3217
+ return response;
3218
+ }
3219
+ };
3220
+ __name(CopilotResolver, "CopilotResolver");
3221
+ _ts_decorate13([
3222
+ Query(() => String),
3223
+ _ts_metadata13("design:type", Function),
3224
+ _ts_metadata13("design:paramtypes", []),
3225
+ _ts_metadata13("design:returntype", Promise)
3226
+ ], CopilotResolver.prototype, "hello", null);
3227
+ _ts_decorate13([
3228
+ Query(() => AgentsResponse),
3229
+ _ts_param(0, Ctx()),
3230
+ _ts_metadata13("design:type", Function),
3231
+ _ts_metadata13("design:paramtypes", [
3232
+ typeof GraphQLContext === "undefined" ? Object : GraphQLContext
3233
+ ]),
3234
+ _ts_metadata13("design:returntype", Promise)
3235
+ ], CopilotResolver.prototype, "availableAgents", null);
3236
+ _ts_decorate13([
3237
+ Mutation(() => CopilotResponse),
3238
+ _ts_param(0, Ctx()),
3239
+ _ts_param(1, Arg("data")),
3240
+ _ts_param(2, Arg("properties", () => GraphQLJSONObject, {
3241
+ nullable: true
3242
+ })),
3243
+ _ts_metadata13("design:type", Function),
3244
+ _ts_metadata13("design:paramtypes", [
3245
+ typeof GraphQLContext === "undefined" ? Object : GraphQLContext,
3246
+ typeof GenerateCopilotResponseInput === "undefined" ? Object : GenerateCopilotResponseInput,
3247
+ typeof CopilotRequestContextProperties === "undefined" ? Object : CopilotRequestContextProperties
3248
+ ]),
3249
+ _ts_metadata13("design:returntype", Promise)
3250
+ ], CopilotResolver.prototype, "generateCopilotResponse", null);
3251
+ CopilotResolver = _ts_decorate13([
3252
+ Resolver(() => CopilotResponse)
3253
+ ], CopilotResolver);
3254
+
3255
+ // src/lib/integrations/shared.ts
3256
+ import { useDeferStream } from "@graphql-yoga/plugin-defer-stream";
3257
+
3258
+ // src/lib/logger.ts
3259
+ import createPinoLogger from "pino";
3260
+ import pretty from "pino-pretty";
3261
+ function createLogger(options) {
3262
+ const { level, component } = options || {};
3263
+ const stream = pretty({
3264
+ colorize: true
3265
+ });
3266
+ const logger2 = createPinoLogger({
3267
+ level: process.env.LOG_LEVEL || level || "error",
3268
+ redact: {
3269
+ paths: [
3270
+ "pid",
3271
+ "hostname"
3272
+ ],
3273
+ remove: true
3274
+ }
3275
+ }, stream);
3276
+ if (component) {
3277
+ return logger2.child({
3278
+ component
3279
+ });
3280
+ } else {
3281
+ return logger2;
3282
+ }
3283
+ }
3284
+ __name(createLogger, "createLogger");
3285
+
3286
+ // src/lib/integrations/shared.ts
3287
+ var logger = createLogger();
3288
+ async function createContext(initialContext, copilotKitContext, contextLogger, properties = {}) {
3289
+ logger.debug({
3290
+ copilotKitContext
3291
+ }, "Creating GraphQL context");
3292
+ const ctx = {
3293
+ ...initialContext,
3294
+ _copilotkit: {
3295
+ ...copilotKitContext
3296
+ },
3297
+ properties: {
3298
+ ...properties
3299
+ },
3300
+ logger: contextLogger
3301
+ };
3302
+ return ctx;
3303
+ }
3304
+ __name(createContext, "createContext");
3305
+ function buildSchema(options = {}) {
3306
+ logger.debug("Building GraphQL schema...");
3307
+ const schema = buildSchemaSync({
3308
+ resolvers: [
3309
+ CopilotResolver
3310
+ ],
3311
+ emitSchemaFile: options.emitSchemaFile
3312
+ });
3313
+ logger.debug("GraphQL schema built successfully");
3314
+ return schema;
3315
+ }
3316
+ __name(buildSchema, "buildSchema");
3317
+ function getCommonConfig(options) {
3318
+ var _a;
3319
+ const logLevel = process.env.LOG_LEVEL || options.logLevel || "error";
3320
+ const logger2 = createLogger({
3321
+ level: logLevel,
3322
+ component: "getCommonConfig"
3323
+ });
3324
+ const contextLogger = createLogger({
3325
+ level: logLevel
3326
+ });
3327
+ if (options.cloud) {
3328
+ telemetry_client_default.setCloudConfiguration({
3329
+ publicApiKey: options.cloud.publicApiKey,
3330
+ baseUrl: options.cloud.baseUrl
3331
+ });
3332
+ }
3333
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
3334
+ telemetry_client_default.setGlobalProperties({
3335
+ _copilotkit: {
3336
+ ...options.properties._copilotkit
3337
+ }
3338
+ });
3339
+ }
3340
+ telemetry_client_default.setGlobalProperties({
3341
+ runtime: {
3342
+ serviceAdapter: options.serviceAdapter.constructor.name
3343
+ }
3344
+ });
3345
+ return {
3346
+ logging: createLogger({
3347
+ component: "Yoga GraphQL",
3348
+ level: logLevel
3349
+ }),
3350
+ schema: buildSchema(),
3351
+ plugins: [
3352
+ useDeferStream()
3353
+ ],
3354
+ context: (ctx) => createContext(ctx, options, contextLogger, options.properties)
3355
+ };
3356
+ }
3357
+ __name(getCommonConfig, "getCommonConfig");
3358
+
3359
+ // src/lib/integrations/node-http/index.ts
3360
+ function copilotRuntimeNodeHttpEndpoint(options) {
3361
+ var _a;
3362
+ const commonConfig = getCommonConfig(options);
3363
+ telemetry_client_default.setGlobalProperties({
3364
+ runtime: {
3365
+ framework: "node-http"
3366
+ }
3367
+ });
3368
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
3369
+ telemetry_client_default.setGlobalProperties({
3370
+ _copilotkit: options.properties._copilotkit
3371
+ });
3372
+ }
3373
+ telemetry_client_default.capture("oss.runtime.instance_created", getRuntimeInstanceTelemetryInfo(options.runtime));
3374
+ const logger2 = commonConfig.logging;
3375
+ logger2.debug("Creating Node HTTP endpoint");
3376
+ const yoga = createYoga({
3377
+ ...commonConfig,
3378
+ graphqlEndpoint: options.endpoint
3379
+ });
3380
+ return yoga;
3381
+ }
3382
+ __name(copilotRuntimeNodeHttpEndpoint, "copilotRuntimeNodeHttpEndpoint");
3383
+
3384
+ export {
3385
+ getRuntimeInstanceTelemetryInfo,
3386
+ telemetry_client_default,
3387
+ CopilotRuntime,
3388
+ flattenToolCallsNoDuplicates,
3389
+ copilotKitEndpoint,
3390
+ langGraphPlatformEndpoint,
3391
+ resolveEndpointType,
3392
+ createContext,
3393
+ buildSchema,
3394
+ getCommonConfig,
3395
+ copilotRuntimeNodeHttpEndpoint
3396
+ };
3397
+ //# sourceMappingURL=chunk-FYONHPZL.mjs.map