@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.
- package/CHANGELOG.md +150 -3
- package/__snapshots__/schema/schema.graphql +8 -9
- package/dist/{chunk-K67A6XOJ.mjs → chunk-3ECBC2K2.mjs} +462 -328
- package/dist/chunk-3ECBC2K2.mjs.map +1 -0
- package/dist/{chunk-QNQ6UT3D.mjs → chunk-5E6LOP76.mjs} +2 -2
- package/dist/{chunk-OKQVDDJ2.mjs → chunk-CLGKEUOA.mjs} +298 -63
- package/dist/chunk-CLGKEUOA.mjs.map +1 -0
- package/dist/{chunk-ZBG4KJW5.mjs → chunk-MKDG5ZHT.mjs} +2 -2
- package/dist/{chunk-AGSBOD2T.mjs → chunk-MYZB2EKG.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-6285d897.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-15d41154.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 +852 -480
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -6
- package/dist/index.mjs.map +1 -1
- package/dist/{langserve-f021ab9c.d.ts → langserve-48e976ac.d.ts} +54 -14
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +754 -459
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +6 -6
- package/dist/lib/integrations/index.d.ts +4 -4
- package/dist/lib/integrations/index.js +78 -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 +78 -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 +78 -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 +78 -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 +298 -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/forwarded-parameters.input.ts +3 -0
- 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 +17 -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 +24 -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 +23 -9
- package/src/service-adapters/openai/openai-assistant-adapter.ts +22 -8
- package/src/service-adapters/unify/unify-adapter.ts +30 -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-QNQ6UT3D.mjs.map → chunk-5E6LOP76.mjs.map} +0 -0
- /package/dist/{chunk-ZBG4KJW5.mjs.map → chunk-MKDG5ZHT.mjs.map} +0 -0
- /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
|
-
|
|
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
|
-
|
|
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(
|
|
184
|
+
eventStream$.sendTextMessageContent({
|
|
185
|
+
messageId: currentMessageId,
|
|
186
|
+
content: content,
|
|
187
|
+
});
|
|
177
188
|
} else if (mode === "function" && toolCall?.function?.arguments) {
|
|
178
|
-
eventStream$.sendActionExecutionArgs(
|
|
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
|
-
|
|
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
|
});
|
|
@@ -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
|
-
|
|
75
|
-
eventStream$.
|
|
76
|
-
eventStream$.
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
119
|
+
eventStream$.sendTextMessageContent({
|
|
120
|
+
messageId: currentMessageId,
|
|
121
|
+
content: content,
|
|
122
|
+
});
|
|
107
123
|
} else if (mode === "function" && toolCall?.function?.arguments) {
|
|
108
|
-
eventStream$.sendActionExecutionArgs(
|
|
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"]}
|