@copilotkit/runtime 1.5.0-tyler-reset-chat.0 → 1.5.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.
- package/CHANGELOG.md +141 -3
- package/__snapshots__/schema/schema.graphql +7 -9
- package/dist/{chunk-K67A6XOJ.mjs → chunk-25G6SHWM.mjs} +458 -331
- package/dist/chunk-25G6SHWM.mjs.map +1 -0
- package/dist/{chunk-OKQVDDJ2.mjs → chunk-4AYRDPWK.mjs} +285 -63
- package/dist/chunk-4AYRDPWK.mjs.map +1 -0
- package/dist/{chunk-ZBG4KJW5.mjs → chunk-AFKLCW76.mjs} +2 -2
- package/dist/{chunk-AGSBOD2T.mjs → chunk-D6J2N5ZQ.mjs} +2 -2
- package/dist/{chunk-QNQ6UT3D.mjs → chunk-PIUHAIBR.mjs} +2 -2
- package/dist/{chunk-B74M7FXG.mjs → chunk-RFF5IIZJ.mjs} +3 -2
- package/dist/chunk-RFF5IIZJ.mjs.map +1 -0
- package/dist/{copilot-runtime-12e7ac40.d.ts → copilot-runtime-2e46a7b6.d.ts} +2 -2
- package/dist/graphql/types/converted/index.d.ts +1 -1
- package/dist/graphql/types/converted/index.js +2 -1
- package/dist/graphql/types/converted/index.js.map +1 -1
- package/dist/graphql/types/converted/index.mjs +1 -1
- package/dist/{groq-adapter-24abe931.d.ts → groq-adapter-7bf6824b.d.ts} +1 -1
- package/dist/{index-10b1c870.d.ts → index-ff3fbc33.d.ts} +7 -8
- package/dist/index.d.ts +5 -5
- package/dist/index.js +832 -480
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +15 -11
- package/dist/index.mjs.map +1 -1
- package/dist/{langserve-f021ab9c.d.ts → langserve-f318db89.d.ts} +53 -14
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +737 -459
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +7 -7
- package/dist/lib/integrations/index.d.ts +4 -4
- package/dist/lib/integrations/index.js +71 -30
- package/dist/lib/integrations/index.js.map +1 -1
- package/dist/lib/integrations/index.mjs +6 -6
- package/dist/lib/integrations/nest/index.d.ts +3 -3
- package/dist/lib/integrations/nest/index.js +71 -30
- package/dist/lib/integrations/nest/index.js.map +1 -1
- package/dist/lib/integrations/nest/index.mjs +4 -4
- package/dist/lib/integrations/node-express/index.d.ts +3 -3
- package/dist/lib/integrations/node-express/index.js +71 -30
- package/dist/lib/integrations/node-express/index.js.map +1 -1
- package/dist/lib/integrations/node-express/index.mjs +4 -4
- package/dist/lib/integrations/node-http/index.d.ts +3 -3
- package/dist/lib/integrations/node-http/index.js +71 -30
- package/dist/lib/integrations/node-http/index.js.map +1 -1
- package/dist/lib/integrations/node-http/index.mjs +3 -3
- package/dist/service-adapters/index.d.ts +36 -5
- package/dist/service-adapters/index.js +285 -61
- package/dist/service-adapters/index.js.map +1 -1
- package/dist/service-adapters/index.mjs +5 -1
- package/package.json +4 -4
- package/src/agents/langgraph/event-source.ts +140 -148
- package/src/agents/langgraph/events.ts +1 -1
- package/src/graphql/inputs/message.input.ts +15 -3
- package/src/graphql/resolvers/copilot.resolver.ts +32 -6
- package/src/graphql/types/converted/index.ts +4 -3
- package/src/graphql/types/copilot-response.type.ts +12 -3
- package/src/graphql/types/enums.ts +0 -11
- package/src/lib/runtime/copilot-runtime.ts +1 -7
- package/src/lib/runtime/remote-action-constructors.ts +64 -58
- package/src/lib/runtime/remote-actions.ts +1 -0
- package/src/lib/runtime/remote-lg-action.ts +184 -154
- package/src/service-adapters/anthropic/anthropic-adapter.ts +16 -6
- package/src/service-adapters/conversion.ts +2 -1
- package/src/service-adapters/events.ts +118 -54
- package/src/service-adapters/experimental/empty/empty-adapter.ts +33 -0
- package/src/service-adapters/experimental/ollama/ollama-adapter.ts +7 -3
- package/src/service-adapters/groq/groq-adapter.ts +23 -8
- package/src/service-adapters/index.ts +7 -1
- package/src/service-adapters/langchain/utils.ts +55 -32
- package/src/service-adapters/openai/openai-adapter.ts +22 -9
- package/src/service-adapters/openai/openai-assistant-adapter.ts +22 -8
- package/src/service-adapters/unify/unify-adapter.ts +28 -11
- package/dist/chunk-B74M7FXG.mjs.map +0 -1
- package/dist/chunk-K67A6XOJ.mjs.map +0 -1
- package/dist/chunk-OKQVDDJ2.mjs.map +0 -1
- /package/dist/{chunk-ZBG4KJW5.mjs.map → chunk-AFKLCW76.mjs.map} +0 -0
- /package/dist/{chunk-AGSBOD2T.mjs.map → chunk-D6J2N5ZQ.mjs.map} +0 -0
- /package/dist/{chunk-QNQ6UT3D.mjs.map → chunk-PIUHAIBR.mjs.map} +0 -0
|
@@ -140,7 +140,8 @@ export class OpenAIAdapter implements CopilotServiceAdapter {
|
|
|
140
140
|
|
|
141
141
|
eventSource.stream(async (eventStream$) => {
|
|
142
142
|
let mode: "function" | "message" | null = null;
|
|
143
|
-
|
|
143
|
+
let currentMessageId: string;
|
|
144
|
+
let currentToolCallId: string;
|
|
144
145
|
for await (const chunk of stream) {
|
|
145
146
|
if (chunk.choices.length === 0) {
|
|
146
147
|
continue;
|
|
@@ -154,36 +155,48 @@ export class OpenAIAdapter implements CopilotServiceAdapter {
|
|
|
154
155
|
// If toolCall?.id is defined, it means a new tool call starts.
|
|
155
156
|
if (mode === "message" && toolCall?.id) {
|
|
156
157
|
mode = null;
|
|
157
|
-
eventStream$.sendTextMessageEnd();
|
|
158
|
+
eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
|
|
158
159
|
} else if (mode === "function" && (toolCall === undefined || toolCall?.id)) {
|
|
159
160
|
mode = null;
|
|
160
|
-
eventStream$.sendActionExecutionEnd();
|
|
161
|
+
eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
|
|
161
162
|
}
|
|
162
163
|
|
|
163
164
|
// If we send a new message type, send the appropriate start event.
|
|
164
165
|
if (mode === null) {
|
|
165
166
|
if (toolCall?.id) {
|
|
166
167
|
mode = "function";
|
|
167
|
-
|
|
168
|
+
currentToolCallId = toolCall!.id;
|
|
169
|
+
eventStream$.sendActionExecutionStart({
|
|
170
|
+
actionExecutionId: currentToolCallId,
|
|
171
|
+
parentMessageId: chunk.id,
|
|
172
|
+
actionName: toolCall!.function!.name,
|
|
173
|
+
});
|
|
168
174
|
} else if (content) {
|
|
169
175
|
mode = "message";
|
|
170
|
-
|
|
176
|
+
currentMessageId = chunk.id;
|
|
177
|
+
eventStream$.sendTextMessageStart({ messageId: currentMessageId });
|
|
171
178
|
}
|
|
172
179
|
}
|
|
173
180
|
|
|
174
181
|
// send the content events
|
|
175
182
|
if (mode === "message" && content) {
|
|
176
|
-
eventStream$.sendTextMessageContent(
|
|
183
|
+
eventStream$.sendTextMessageContent({
|
|
184
|
+
messageId: currentMessageId,
|
|
185
|
+
content: content,
|
|
186
|
+
});
|
|
177
187
|
} else if (mode === "function" && toolCall?.function?.arguments) {
|
|
178
|
-
eventStream$.sendActionExecutionArgs(
|
|
188
|
+
eventStream$.sendActionExecutionArgs({
|
|
189
|
+
actionExecutionId: currentToolCallId,
|
|
190
|
+
args: toolCall.function.arguments,
|
|
191
|
+
});
|
|
179
192
|
}
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
// send the end events
|
|
183
196
|
if (mode === "message") {
|
|
184
|
-
eventStream$.sendTextMessageEnd();
|
|
197
|
+
eventStream$.sendTextMessageEnd({ messageId: currentMessageId });
|
|
185
198
|
} else if (mode === "function") {
|
|
186
|
-
eventStream$.sendActionExecutionEnd();
|
|
199
|
+
eventStream$.sendActionExecutionEnd({ actionExecutionId: currentToolCallId });
|
|
187
200
|
}
|
|
188
201
|
|
|
189
202
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
75
|
-
eventStream$.
|
|
76
|
-
eventStream$.
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
117
|
+
eventStream$.sendTextMessageContent({
|
|
118
|
+
messageId: currentMessageId,
|
|
119
|
+
content: content,
|
|
120
|
+
});
|
|
107
121
|
} else if (mode === "function" && toolCall?.function?.arguments) {
|
|
108
|
-
eventStream$.sendActionExecutionArgs(
|
|
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();
|
|
@@ -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"]}
|