@copilotkit/runtime 1.4.8-no-pino-redact.1 → 1.5.0-coagents-v0-3.0

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 (78) hide show
  1. package/CHANGELOG.md +20 -5
  2. package/__snapshots__/schema/schema.graphql +7 -9
  3. package/dist/{chunk-OKQVDDJ2.mjs → chunk-4AYRDPWK.mjs} +285 -63
  4. package/dist/chunk-4AYRDPWK.mjs.map +1 -0
  5. package/dist/{chunk-APVJZO3R.mjs → chunk-7BOO3OFP.mjs} +2 -2
  6. package/dist/{chunk-OSWF5QDO.mjs → chunk-GSTWFOZF.mjs} +2 -2
  7. package/dist/{chunk-M74ZTUCC.mjs → chunk-OMAAKIJQ.mjs} +2 -2
  8. package/dist/{chunk-36AYTJIE.mjs → chunk-PXS4SBRF.mjs} +447 -321
  9. package/dist/chunk-PXS4SBRF.mjs.map +1 -0
  10. package/dist/{chunk-B74M7FXG.mjs → chunk-RFF5IIZJ.mjs} +3 -2
  11. package/dist/chunk-RFF5IIZJ.mjs.map +1 -0
  12. package/dist/{copilot-runtime-12e7ac40.d.ts → copilot-runtime-2e46a7b6.d.ts} +2 -2
  13. package/dist/graphql/types/converted/index.d.ts +1 -1
  14. package/dist/graphql/types/converted/index.js +2 -1
  15. package/dist/graphql/types/converted/index.js.map +1 -1
  16. package/dist/graphql/types/converted/index.mjs +1 -1
  17. package/dist/{groq-adapter-24abe931.d.ts → groq-adapter-7bf6824b.d.ts} +1 -1
  18. package/dist/{index-10b1c870.d.ts → index-ff3fbc33.d.ts} +7 -8
  19. package/dist/index.d.ts +5 -5
  20. package/dist/index.js +824 -473
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +10 -6
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/{langserve-f021ab9c.d.ts → langserve-f318db89.d.ts} +53 -14
  25. package/dist/lib/index.d.ts +4 -4
  26. package/dist/lib/index.js +729 -452
  27. package/dist/lib/index.js.map +1 -1
  28. package/dist/lib/index.mjs +6 -6
  29. package/dist/lib/integrations/index.d.ts +4 -4
  30. package/dist/lib/integrations/index.js +79 -31
  31. package/dist/lib/integrations/index.js.map +1 -1
  32. package/dist/lib/integrations/index.mjs +6 -6
  33. package/dist/lib/integrations/nest/index.d.ts +3 -3
  34. package/dist/lib/integrations/nest/index.js +79 -31
  35. package/dist/lib/integrations/nest/index.js.map +1 -1
  36. package/dist/lib/integrations/nest/index.mjs +4 -4
  37. package/dist/lib/integrations/node-express/index.d.ts +3 -3
  38. package/dist/lib/integrations/node-express/index.js +79 -31
  39. package/dist/lib/integrations/node-express/index.js.map +1 -1
  40. package/dist/lib/integrations/node-express/index.mjs +4 -4
  41. package/dist/lib/integrations/node-http/index.d.ts +3 -3
  42. package/dist/lib/integrations/node-http/index.js +79 -31
  43. package/dist/lib/integrations/node-http/index.js.map +1 -1
  44. package/dist/lib/integrations/node-http/index.mjs +3 -3
  45. package/dist/service-adapters/index.d.ts +36 -5
  46. package/dist/service-adapters/index.js +285 -61
  47. package/dist/service-adapters/index.js.map +1 -1
  48. package/dist/service-adapters/index.mjs +5 -1
  49. package/package.json +2 -2
  50. package/src/agents/langgraph/event-source.ts +140 -148
  51. package/src/agents/langgraph/events.ts +1 -1
  52. package/src/graphql/inputs/message.input.ts +15 -3
  53. package/src/graphql/resolvers/copilot.resolver.ts +32 -6
  54. package/src/graphql/types/converted/index.ts +4 -3
  55. package/src/graphql/types/copilot-response.type.ts +12 -3
  56. package/src/graphql/types/enums.ts +0 -11
  57. package/src/lib/logger.ts +4 -0
  58. package/src/lib/runtime/copilot-runtime.ts +1 -7
  59. package/src/lib/runtime/remote-action-constructors.ts +64 -58
  60. package/src/lib/runtime/remote-actions.ts +1 -0
  61. package/src/lib/runtime/remote-lg-action.ts +159 -140
  62. package/src/service-adapters/anthropic/anthropic-adapter.ts +16 -6
  63. package/src/service-adapters/conversion.ts +2 -1
  64. package/src/service-adapters/events.ts +118 -54
  65. package/src/service-adapters/experimental/empty/empty-adapter.ts +33 -0
  66. package/src/service-adapters/experimental/ollama/ollama-adapter.ts +7 -3
  67. package/src/service-adapters/groq/groq-adapter.ts +23 -8
  68. package/src/service-adapters/index.ts +7 -1
  69. package/src/service-adapters/langchain/utils.ts +55 -32
  70. package/src/service-adapters/openai/openai-adapter.ts +22 -9
  71. package/src/service-adapters/openai/openai-assistant-adapter.ts +22 -8
  72. package/src/service-adapters/unify/unify-adapter.ts +28 -11
  73. package/dist/chunk-36AYTJIE.mjs.map +0 -1
  74. package/dist/chunk-B74M7FXG.mjs.map +0 -1
  75. package/dist/chunk-OKQVDDJ2.mjs.map +0 -1
  76. /package/dist/{chunk-APVJZO3R.mjs.map → chunk-7BOO3OFP.mjs.map} +0 -0
  77. /package/dist/{chunk-OSWF5QDO.mjs.map → chunk-GSTWFOZF.mjs.map} +0 -0
  78. /package/dist/{chunk-M74ZTUCC.mjs.map → chunk-OMAAKIJQ.mjs.map} +0 -0
@@ -226,22 +226,28 @@ export class OpenAIAssistantAdapter implements CopilotServiceAdapter {
226
226
  private async streamResponse(stream: AssistantStream, eventSource: RuntimeEventSource) {
227
227
  eventSource.stream(async (eventStream$) => {
228
228
  let inFunctionCall = false;
229
+ let currentMessageId: string;
230
+ let currentToolCallId: string;
229
231
 
230
232
  for await (const chunk of stream) {
231
233
  switch (chunk.event) {
232
234
  case "thread.message.created":
233
235
  if (inFunctionCall) {
234
- eventStream$.sendActionExecutionEnd();
236
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
235
237
  }
236
- eventStream$.sendTextMessageStart(chunk.data.id);
238
+ currentMessageId = chunk.data.id;
239
+ eventStream$.sendTextMessageStart({ messageId: currentMessageId });
237
240
  break;
238
241
  case "thread.message.delta":
239
242
  if (chunk.data.delta.content?.[0].type === "text") {
240
- eventStream$.sendTextMessageContent(chunk.data.delta.content?.[0].text.value);
243
+ eventStream$.sendTextMessageContent({
244
+ messageId: currentMessageId,
245
+ content: chunk.data.delta.content?.[0].text.value,
246
+ });
241
247
  }
242
248
  break;
243
249
  case "thread.message.completed":
244
- eventStream$.sendTextMessageEnd();
250
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
245
251
  break;
246
252
  case "thread.run.step.delta":
247
253
  let toolCallId: string | undefined;
@@ -258,18 +264,26 @@ export class OpenAIAssistantAdapter implements CopilotServiceAdapter {
258
264
 
259
265
  if (toolCallName && toolCallId) {
260
266
  if (inFunctionCall) {
261
- eventStream$.sendActionExecutionEnd();
267
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
262
268
  }
263
269
  inFunctionCall = true;
264
- eventStream$.sendActionExecutionStart(toolCallId, toolCallName);
270
+ currentToolCallId = toolCallId;
271
+ eventStream$.sendActionExecutionStart({
272
+ actionExecutionId: currentToolCallId,
273
+ parentMessageId: chunk.data.id,
274
+ actionName: toolCallName,
275
+ });
265
276
  } else if (toolCallArgs) {
266
- eventStream$.sendActionExecutionArgs(toolCallArgs);
277
+ eventStream$.sendActionExecutionArgs({
278
+ actionExecutionId: currentToolCallId,
279
+ args: toolCallArgs,
280
+ });
267
281
  }
268
282
  break;
269
283
  }
270
284
  }
271
285
  if (inFunctionCall) {
272
- eventStream$.sendActionExecutionEnd();
286
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
273
287
  }
274
288
  eventStream$.complete();
275
289
  });
@@ -66,14 +66,20 @@ export class UnifyAdapter implements CopilotServiceAdapter {
66
66
  });
67
67
 
68
68
  let model = null;
69
+ let currentMessageId: string;
70
+ let currentToolCallId: string;
69
71
  request.eventSource.stream(async (eventStream$) => {
70
72
  let mode: "function" | "message" | null = null;
71
73
  for await (const chunk of stream) {
72
74
  if (this.start) {
73
75
  model = chunk.model;
74
- eventStream$.sendTextMessageStart(randomId());
75
- eventStream$.sendTextMessageContent(`Model used: ${model}\n`);
76
- eventStream$.sendTextMessageEnd();
76
+ currentMessageId = randomId();
77
+ eventStream$.sendTextMessageStart({ messageId: currentMessageId });
78
+ eventStream$.sendTextMessageContent({
79
+ messageId: currentMessageId,
80
+ content: `Model used: ${model}\n`,
81
+ });
82
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
77
83
  this.start = false;
78
84
  }
79
85
  const toolCall = chunk.choices[0].delta.tool_calls?.[0];
@@ -84,36 +90,47 @@ export class UnifyAdapter implements CopilotServiceAdapter {
84
90
  // If toolCall?.id is defined, it means a new tool call starts.
85
91
  if (mode === "message" && toolCall?.id) {
86
92
  mode = null;
87
- eventStream$.sendTextMessageEnd();
93
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
88
94
  } else if (mode === "function" && (toolCall === undefined || toolCall?.id)) {
89
95
  mode = null;
90
- eventStream$.sendActionExecutionEnd();
96
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
91
97
  }
92
98
 
93
99
  // If we send a new message type, send the appropriate start event.
94
100
  if (mode === null) {
95
101
  if (toolCall?.id) {
96
102
  mode = "function";
97
- eventStream$.sendActionExecutionStart(toolCall!.id, toolCall!.function!.name);
103
+ currentToolCallId = toolCall!.id;
104
+ eventStream$.sendActionExecutionStart({
105
+ actionExecutionId: currentToolCallId,
106
+ actionName: toolCall!.function!.name,
107
+ });
98
108
  } else if (content) {
99
109
  mode = "message";
100
- eventStream$.sendTextMessageStart(chunk.id);
110
+ currentMessageId = chunk.id;
111
+ eventStream$.sendTextMessageStart({ messageId: currentMessageId });
101
112
  }
102
113
  }
103
114
 
104
115
  // send the content events
105
116
  if (mode === "message" && content) {
106
- eventStream$.sendTextMessageContent(content);
117
+ eventStream$.sendTextMessageContent({
118
+ messageId: currentMessageId,
119
+ content: content,
120
+ });
107
121
  } else if (mode === "function" && toolCall?.function?.arguments) {
108
- eventStream$.sendActionExecutionArgs(toolCall.function.arguments);
122
+ eventStream$.sendActionExecutionArgs({
123
+ actionExecutionId: currentToolCallId,
124
+ args: toolCall.function.arguments,
125
+ });
109
126
  }
110
127
  }
111
128
 
112
129
  // send the end events
113
130
  if (mode === "message") {
114
- eventStream$.sendTextMessageEnd();
131
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
115
132
  } else if (mode === "function") {
116
- eventStream$.sendActionExecutionEnd();
133
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
117
134
  }
118
135
 
119
136
  eventStream$.complete();