@copilotkit/runtime 1.5.0-tyler-reset-chat.0 → 1.5.1-custom-tag-pre.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 +150 -3
  2. package/__snapshots__/schema/schema.graphql +8 -9
  3. package/dist/{chunk-K67A6XOJ.mjs → chunk-3ECBC2K2.mjs} +462 -328
  4. package/dist/chunk-3ECBC2K2.mjs.map +1 -0
  5. package/dist/{chunk-QNQ6UT3D.mjs → chunk-5E6LOP76.mjs} +2 -2
  6. package/dist/{chunk-OKQVDDJ2.mjs → chunk-CLGKEUOA.mjs} +298 -63
  7. package/dist/chunk-CLGKEUOA.mjs.map +1 -0
  8. package/dist/{chunk-ZBG4KJW5.mjs → chunk-MKDG5ZHT.mjs} +2 -2
  9. package/dist/{chunk-AGSBOD2T.mjs → chunk-MYZB2EKG.mjs} +2 -2
  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-6285d897.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-15d41154.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 +852 -480
  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-48e976ac.d.ts} +54 -14
  25. package/dist/lib/index.d.ts +4 -4
  26. package/dist/lib/index.js +754 -459
  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 +78 -30
  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 +78 -30
  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 +78 -30
  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 +78 -30
  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 +298 -61
  47. package/dist/service-adapters/index.js.map +1 -1
  48. package/dist/service-adapters/index.mjs +5 -1
  49. package/package.json +4 -4
  50. package/src/agents/langgraph/event-source.ts +140 -148
  51. package/src/agents/langgraph/events.ts +1 -1
  52. package/src/graphql/inputs/forwarded-parameters.input.ts +3 -0
  53. package/src/graphql/inputs/message.input.ts +15 -3
  54. package/src/graphql/resolvers/copilot.resolver.ts +32 -6
  55. package/src/graphql/types/converted/index.ts +4 -3
  56. package/src/graphql/types/copilot-response.type.ts +12 -3
  57. package/src/graphql/types/enums.ts +0 -11
  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 +184 -154
  62. package/src/service-adapters/anthropic/anthropic-adapter.ts +17 -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 +24 -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 +23 -9
  71. package/src/service-adapters/openai/openai-assistant-adapter.ts +22 -8
  72. package/src/service-adapters/unify/unify-adapter.ts +30 -11
  73. package/dist/chunk-B74M7FXG.mjs.map +0 -1
  74. package/dist/chunk-K67A6XOJ.mjs.map +0 -1
  75. package/dist/chunk-OKQVDDJ2.mjs.map +0 -1
  76. /package/dist/{chunk-QNQ6UT3D.mjs.map → chunk-5E6LOP76.mjs.map} +0 -0
  77. /package/dist/{chunk-ZBG4KJW5.mjs.map → chunk-MKDG5ZHT.mjs.map} +0 -0
  78. /package/dist/{chunk-AGSBOD2T.mjs.map → chunk-MYZB2EKG.mjs.map} +0 -0
@@ -136,11 +136,13 @@ export class OpenAIAdapter implements CopilotServiceAdapter {
136
136
  ...(forwardedParameters?.stop && { stop: forwardedParameters.stop }),
137
137
  ...(toolChoice && { tool_choice: toolChoice }),
138
138
  ...(this.disableParallelToolCalls && { parallel_tool_calls: false }),
139
+ ...(forwardedParameters?.temperature && { temperature: forwardedParameters.temperature }),
139
140
  });
140
141
 
141
142
  eventSource.stream(async (eventStream$) => {
142
143
  let mode: "function" | "message" | null = null;
143
-
144
+ let currentMessageId: string;
145
+ let currentToolCallId: string;
144
146
  for await (const chunk of stream) {
145
147
  if (chunk.choices.length === 0) {
146
148
  continue;
@@ -154,36 +156,48 @@ export class OpenAIAdapter implements CopilotServiceAdapter {
154
156
  // If toolCall?.id is defined, it means a new tool call starts.
155
157
  if (mode === "message" && toolCall?.id) {
156
158
  mode = null;
157
- eventStream$.sendTextMessageEnd();
159
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
158
160
  } else if (mode === "function" && (toolCall === undefined || toolCall?.id)) {
159
161
  mode = null;
160
- eventStream$.sendActionExecutionEnd();
162
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
161
163
  }
162
164
 
163
165
  // If we send a new message type, send the appropriate start event.
164
166
  if (mode === null) {
165
167
  if (toolCall?.id) {
166
168
  mode = "function";
167
- eventStream$.sendActionExecutionStart(toolCall!.id, toolCall!.function!.name);
169
+ currentToolCallId = toolCall!.id;
170
+ eventStream$.sendActionExecutionStart({
171
+ actionExecutionId: currentToolCallId,
172
+ parentMessageId: chunk.id,
173
+ actionName: toolCall!.function!.name,
174
+ });
168
175
  } else if (content) {
169
176
  mode = "message";
170
- eventStream$.sendTextMessageStart(chunk.id);
177
+ currentMessageId = chunk.id;
178
+ eventStream$.sendTextMessageStart({ messageId: currentMessageId });
171
179
  }
172
180
  }
173
181
 
174
182
  // send the content events
175
183
  if (mode === "message" && content) {
176
- eventStream$.sendTextMessageContent(content);
184
+ eventStream$.sendTextMessageContent({
185
+ messageId: currentMessageId,
186
+ content: content,
187
+ });
177
188
  } else if (mode === "function" && toolCall?.function?.arguments) {
178
- eventStream$.sendActionExecutionArgs(toolCall.function.arguments);
189
+ eventStream$.sendActionExecutionArgs({
190
+ actionExecutionId: currentToolCallId,
191
+ args: toolCall.function.arguments,
192
+ });
179
193
  }
180
194
  }
181
195
 
182
196
  // send the end events
183
197
  if (mode === "message") {
184
- eventStream$.sendTextMessageEnd();
198
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
185
199
  } else if (mode === "function") {
186
- eventStream$.sendActionExecutionEnd();
200
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
187
201
  }
188
202
 
189
203
  eventStream$.complete();
@@ -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
  });
@@ -55,6 +55,7 @@ export class UnifyAdapter implements CopilotServiceAdapter {
55
55
  apiKey: this.apiKey,
56
56
  baseURL: "https://api.unify.ai/v0/",
57
57
  });
58
+ const forwardedParameters = request.forwardedParameters;
58
59
 
59
60
  const messages = request.messages.map(convertMessageToOpenAIMessage);
60
61
 
@@ -63,17 +64,24 @@ export class UnifyAdapter implements CopilotServiceAdapter {
63
64
  messages: messages,
64
65
  stream: true,
65
66
  ...(tools.length > 0 && { tools }),
67
+ ...(forwardedParameters?.temperature && { temperature: forwardedParameters.temperature }),
66
68
  });
67
69
 
68
70
  let model = null;
71
+ let currentMessageId: string;
72
+ let currentToolCallId: string;
69
73
  request.eventSource.stream(async (eventStream$) => {
70
74
  let mode: "function" | "message" | null = null;
71
75
  for await (const chunk of stream) {
72
76
  if (this.start) {
73
77
  model = chunk.model;
74
- eventStream$.sendTextMessageStart(randomId());
75
- eventStream$.sendTextMessageContent(`Model used: ${model}\n`);
76
- eventStream$.sendTextMessageEnd();
78
+ currentMessageId = randomId();
79
+ eventStream$.sendTextMessageStart({ messageId: currentMessageId });
80
+ eventStream$.sendTextMessageContent({
81
+ messageId: currentMessageId,
82
+ content: `Model used: ${model}\n`,
83
+ });
84
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
77
85
  this.start = false;
78
86
  }
79
87
  const toolCall = chunk.choices[0].delta.tool_calls?.[0];
@@ -84,36 +92,47 @@ export class UnifyAdapter implements CopilotServiceAdapter {
84
92
  // If toolCall?.id is defined, it means a new tool call starts.
85
93
  if (mode === "message" && toolCall?.id) {
86
94
  mode = null;
87
- eventStream$.sendTextMessageEnd();
95
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
88
96
  } else if (mode === "function" && (toolCall === undefined || toolCall?.id)) {
89
97
  mode = null;
90
- eventStream$.sendActionExecutionEnd();
98
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
91
99
  }
92
100
 
93
101
  // If we send a new message type, send the appropriate start event.
94
102
  if (mode === null) {
95
103
  if (toolCall?.id) {
96
104
  mode = "function";
97
- eventStream$.sendActionExecutionStart(toolCall!.id, toolCall!.function!.name);
105
+ currentToolCallId = toolCall!.id;
106
+ eventStream$.sendActionExecutionStart({
107
+ actionExecutionId: currentToolCallId,
108
+ actionName: toolCall!.function!.name,
109
+ });
98
110
  } else if (content) {
99
111
  mode = "message";
100
- eventStream$.sendTextMessageStart(chunk.id);
112
+ currentMessageId = chunk.id;
113
+ eventStream$.sendTextMessageStart({ messageId: currentMessageId });
101
114
  }
102
115
  }
103
116
 
104
117
  // send the content events
105
118
  if (mode === "message" && content) {
106
- eventStream$.sendTextMessageContent(content);
119
+ eventStream$.sendTextMessageContent({
120
+ messageId: currentMessageId,
121
+ content: content,
122
+ });
107
123
  } else if (mode === "function" && toolCall?.function?.arguments) {
108
- eventStream$.sendActionExecutionArgs(toolCall.function.arguments);
124
+ eventStream$.sendActionExecutionArgs({
125
+ actionExecutionId: currentToolCallId,
126
+ args: toolCall.function.arguments,
127
+ });
109
128
  }
110
129
  }
111
130
 
112
131
  // send the end events
113
132
  if (mode === "message") {
114
- eventStream$.sendTextMessageEnd();
133
+ eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
115
134
  } else if (mode === "function") {
116
- eventStream$.sendActionExecutionEnd();
135
+ eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
117
136
  }
118
137
 
119
138
  eventStream$.complete();
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/graphql/types/converted/index.ts"],"sourcesContent":["import {\n ActionExecutionMessageInput,\n ResultMessageInput,\n TextMessageInput,\n AgentStateMessageInput,\n} from \"../../inputs/message.input\";\nimport { BaseMessageInput } from \"../base\";\nimport { ActionExecutionScope, MessageRole } from \"../enums\";\n\nexport type MessageType =\n | \"TextMessage\"\n | \"ActionExecutionMessage\"\n | \"ResultMessage\"\n | \"AgentStateMessage\";\n\nexport class Message extends BaseMessageInput {\n type: MessageType;\n\n isTextMessage(): this is TextMessage {\n return this.type === \"TextMessage\";\n }\n\n isActionExecutionMessage(): this is ActionExecutionMessage {\n return this.type === \"ActionExecutionMessage\";\n }\n\n isResultMessage(): this is ResultMessage {\n return this.type === \"ResultMessage\";\n }\n\n isAgentStateMessage(): this is AgentStateMessage {\n return this.type === \"AgentStateMessage\";\n }\n}\n\nexport class TextMessage extends Message implements TextMessageInput {\n type: MessageType = \"TextMessage\";\n content: string;\n role: MessageRole;\n}\n\nexport class ActionExecutionMessage\n extends Message\n implements Omit<ActionExecutionMessageInput, \"arguments\">\n{\n type: MessageType = \"ActionExecutionMessage\";\n name: string;\n arguments: Record<string, any>;\n scope: ActionExecutionScope;\n}\n\nexport class ResultMessage extends Message implements ResultMessageInput {\n type: MessageType = \"ResultMessage\";\n actionExecutionId: string;\n actionName: string;\n result: string;\n}\n\nexport class AgentStateMessage extends Message implements Omit<AgentStateMessageInput, \"state\"> {\n type: MessageType = \"AgentStateMessage\";\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: MessageRole;\n state: any;\n running: boolean;\n}\n"],"mappings":";;;;;;;;AAeO,IAAMA,UAAN,cAAsBC,iBAAAA;EAC3BC;EAEAC,gBAAqC;AACnC,WAAO,KAAKD,SAAS;EACvB;EAEAE,2BAA2D;AACzD,WAAO,KAAKF,SAAS;EACvB;EAEAG,kBAAyC;AACvC,WAAO,KAAKH,SAAS;EACvB;EAEAI,sBAAiD;AAC/C,WAAO,KAAKJ,SAAS;EACvB;AACF;AAlBaF;AAoBN,IAAMO,cAAN,cAA0BP,QAAAA;EAC/BE,OAAoB;EACpBM;EACAC;AACF;AAJaF;AAMN,IAAMG,yBAAN,cACGV,QAAAA;EAGRE,OAAoB;EACpBS;EACAC;EACAC;AACF;AARaH;AAUN,IAAMI,gBAAN,cAA4Bd,QAAAA;EACjCE,OAAoB;EACpBa;EACAC;EACAC;AACF;AALaH;AAON,IAAMI,oBAAN,cAAgClB,QAAAA;EACrCE,OAAoB;EACpBiB;EACAC;EACAC;EACAC;EACAC;EACAd;EACAe;EACAC;AACF;AAVaP;","names":["Message","BaseMessageInput","type","isTextMessage","isActionExecutionMessage","isResultMessage","isAgentStateMessage","TextMessage","content","role","ActionExecutionMessage","name","arguments","scope","ResultMessage","actionExecutionId","actionName","result","AgentStateMessage","threadId","agentName","nodeName","runId","active","state","running"]}