@copilotkit/runtime 1.1.3-feat-runtime-remote-actions.2 → 1.2.1
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 +17 -13
- package/__snapshots__/schema/schema.graphql +0 -41
- package/dist/{chunk-BJ2LVHWA.mjs → chunk-736EEICU.mjs} +3 -3
- package/dist/{chunk-W7RRKPE2.mjs → chunk-DMO6FA25.mjs} +2 -2
- package/dist/{chunk-JYLUCJP7.mjs → chunk-DYF5MUAH.mjs} +2 -2
- package/dist/{chunk-TBZGOJJX.mjs → chunk-GEIBJJQ4.mjs} +2 -14
- package/dist/chunk-GEIBJJQ4.mjs.map +1 -0
- package/dist/chunk-PB24CCIJ.mjs +158 -0
- package/dist/chunk-PB24CCIJ.mjs.map +1 -0
- package/dist/{chunk-7FSNQXPE.mjs → chunk-Q5ZTE7WH.mjs} +158 -786
- package/dist/chunk-Q5ZTE7WH.mjs.map +1 -0
- package/dist/{chunk-73NMP3DI.mjs → chunk-URMISMK2.mjs} +2 -2
- package/dist/{chunk-WRPRFRSL.mjs → chunk-YMUS43FR.mjs} +2 -2
- package/dist/graphql/types/converted/index.d.ts +1 -1
- package/dist/graphql/types/converted/index.js +0 -13
- package/dist/graphql/types/converted/index.js.map +1 -1
- package/dist/graphql/types/converted/index.mjs +1 -3
- package/dist/{index-079752b9.d.ts → index-13aa818e.d.ts} +1 -1
- package/dist/{index-0476e4f7.d.ts → index-aa091e3c.d.ts} +2 -24
- package/dist/index.d.ts +7 -7
- package/dist/index.js +245 -982
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -8
- package/dist/{langserve-d6073a3b.d.ts → langserve-a54438c6.d.ts} +11 -24
- package/dist/lib/index.d.ts +7 -7
- package/dist/lib/index.js +245 -982
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +8 -8
- package/dist/lib/integrations/index.d.ts +6 -6
- package/dist/lib/integrations/index.js +182 -437
- 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 +5 -5
- package/dist/lib/integrations/nest/index.js +182 -437
- 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 +5 -5
- package/dist/lib/integrations/node-express/index.js +182 -437
- 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 +5 -5
- package/dist/lib/integrations/node-http/index.js +182 -437
- 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 +3 -3
- package/dist/service-adapters/index.js.map +1 -1
- package/dist/service-adapters/index.mjs +3 -3
- package/dist/{copilot-runtime-d427e991.d.ts → shared-c5362338.d.ts} +38 -65
- package/package.json +5 -7
- package/src/graphql/inputs/generate-copilot-response.input.ts +0 -11
- package/src/graphql/inputs/message.input.ts +0 -30
- package/src/graphql/resolvers/copilot.resolver.ts +12 -56
- package/src/graphql/types/converted/index.ts +0 -15
- package/src/graphql/types/copilot-response.type.ts +0 -29
- package/src/graphql/types/enums.ts +0 -1
- package/src/lib/copilot-runtime.ts +231 -0
- package/src/lib/index.ts +1 -1
- package/src/lib/integrations/shared.ts +1 -1
- package/src/service-adapters/conversion.ts +0 -16
- package/src/service-adapters/events.ts +19 -101
- package/dist/chunk-5TYP4A3G.mjs +0 -260
- package/dist/chunk-5TYP4A3G.mjs.map +0 -1
- package/dist/chunk-7FSNQXPE.mjs.map +0 -1
- package/dist/chunk-TBZGOJJX.mjs.map +0 -1
- package/src/agents/langgraph/event-source.ts +0 -222
- package/src/agents/langgraph/events.ts +0 -309
- package/src/graphql/inputs/agent-session.input.ts +0 -13
- package/src/graphql/inputs/agent-state.input.ts +0 -10
- package/src/lib/runtime/copilot-runtime.ts +0 -360
- package/src/lib/runtime/remote-actions.ts +0 -241
- /package/dist/{chunk-BJ2LVHWA.mjs.map → chunk-736EEICU.mjs.map} +0 -0
- /package/dist/{chunk-W7RRKPE2.mjs.map → chunk-DMO6FA25.mjs.map} +0 -0
- /package/dist/{chunk-JYLUCJP7.mjs.map → chunk-DYF5MUAH.mjs.map} +0 -0
- /package/dist/{chunk-73NMP3DI.mjs.map → chunk-URMISMK2.mjs.map} +0 -0
- /package/dist/{chunk-WRPRFRSL.mjs.map → chunk-YMUS43FR.mjs.map} +0 -0
|
@@ -1,20 +1,7 @@
|
|
|
1
1
|
import { Action } from "@copilotkit/shared";
|
|
2
|
-
import {
|
|
3
|
-
of,
|
|
4
|
-
concat,
|
|
5
|
-
map,
|
|
6
|
-
scan,
|
|
7
|
-
concatMap,
|
|
8
|
-
ReplaySubject,
|
|
9
|
-
Subject,
|
|
10
|
-
firstValueFrom,
|
|
11
|
-
from,
|
|
12
|
-
} from "rxjs";
|
|
2
|
+
import { of, concat, map, scan, concatMap, ReplaySubject, Subject, firstValueFrom } from "rxjs";
|
|
13
3
|
import { streamLangChainResponse } from "./langchain/utils";
|
|
14
4
|
import { GuardrailsResult } from "../graphql/types/guardrails-result.type";
|
|
15
|
-
import telemetry from "../lib/telemetry-client";
|
|
16
|
-
import { isLangGraphAgentAction } from "../lib/runtime/remote-actions";
|
|
17
|
-
import { ActionInput } from "../graphql/inputs/action.input";
|
|
18
5
|
|
|
19
6
|
export enum RuntimeEventTypes {
|
|
20
7
|
TextMessageStart = "TextMessageStart",
|
|
@@ -24,10 +11,9 @@ export enum RuntimeEventTypes {
|
|
|
24
11
|
ActionExecutionArgs = "ActionExecutionArgs",
|
|
25
12
|
ActionExecutionEnd = "ActionExecutionEnd",
|
|
26
13
|
ActionExecutionResult = "ActionExecutionResult",
|
|
27
|
-
AgentStateMessage = "AgentStateMessage",
|
|
28
14
|
}
|
|
29
15
|
|
|
30
|
-
type FunctionCallScope = "client" | "server"
|
|
16
|
+
type FunctionCallScope = "client" | "server";
|
|
31
17
|
|
|
32
18
|
export type RuntimeEvent =
|
|
33
19
|
| { type: RuntimeEventTypes.TextMessageStart; messageId: string }
|
|
@@ -49,17 +35,6 @@ export type RuntimeEvent =
|
|
|
49
35
|
actionName: string;
|
|
50
36
|
actionExecutionId: string;
|
|
51
37
|
result: string;
|
|
52
|
-
}
|
|
53
|
-
| {
|
|
54
|
-
type: RuntimeEventTypes.AgentStateMessage;
|
|
55
|
-
threadId: string;
|
|
56
|
-
agentName: string;
|
|
57
|
-
nodeName: string;
|
|
58
|
-
runId: string;
|
|
59
|
-
active: boolean;
|
|
60
|
-
role: string;
|
|
61
|
-
state: string;
|
|
62
|
-
running: boolean;
|
|
63
38
|
};
|
|
64
39
|
|
|
65
40
|
interface RuntimeEventWithState {
|
|
@@ -125,29 +100,6 @@ export class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {
|
|
|
125
100
|
result,
|
|
126
101
|
});
|
|
127
102
|
}
|
|
128
|
-
|
|
129
|
-
sendAgentStateMessage(
|
|
130
|
-
threadId: string,
|
|
131
|
-
agentName: string,
|
|
132
|
-
nodeName: string,
|
|
133
|
-
runId: string,
|
|
134
|
-
active: boolean,
|
|
135
|
-
role: string,
|
|
136
|
-
state: string,
|
|
137
|
-
running: boolean,
|
|
138
|
-
) {
|
|
139
|
-
this.next({
|
|
140
|
-
type: RuntimeEventTypes.AgentStateMessage,
|
|
141
|
-
threadId,
|
|
142
|
-
agentName,
|
|
143
|
-
nodeName,
|
|
144
|
-
runId,
|
|
145
|
-
active,
|
|
146
|
-
role,
|
|
147
|
-
state,
|
|
148
|
-
running,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
103
|
}
|
|
152
104
|
|
|
153
105
|
export class RuntimeEventSource {
|
|
@@ -158,14 +110,12 @@ export class RuntimeEventSource {
|
|
|
158
110
|
this.callback = callback;
|
|
159
111
|
}
|
|
160
112
|
|
|
161
|
-
|
|
162
|
-
|
|
113
|
+
process({
|
|
114
|
+
serversideActions,
|
|
163
115
|
guardrailsResult$,
|
|
164
|
-
actionInputsWithoutAgents,
|
|
165
116
|
}: {
|
|
166
|
-
|
|
117
|
+
serversideActions: Action<any>[];
|
|
167
118
|
guardrailsResult$?: Subject<GuardrailsResult>;
|
|
168
|
-
actionInputsWithoutAgents: ActionInput[];
|
|
169
119
|
}) {
|
|
170
120
|
this.callback(this.eventStream$).catch((error) => {
|
|
171
121
|
console.error("Error in event source callback", error);
|
|
@@ -174,35 +124,27 @@ export class RuntimeEventSource {
|
|
|
174
124
|
// mark tools for server side execution
|
|
175
125
|
map((event) => {
|
|
176
126
|
if (event.type === RuntimeEventTypes.ActionExecutionStart) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
: "client";
|
|
181
|
-
}
|
|
127
|
+
event.scope = serversideActions.find((action) => action.name === event.actionName)
|
|
128
|
+
? "server"
|
|
129
|
+
: "client";
|
|
182
130
|
}
|
|
183
131
|
return event;
|
|
184
132
|
}),
|
|
185
133
|
// track state
|
|
186
134
|
scan(
|
|
187
135
|
(acc, event) => {
|
|
188
|
-
// It seems like this is needed so that rxjs recognizes the object has changed
|
|
189
|
-
// This fixes an issue where action were executed multiple times
|
|
190
|
-
// Not investigating further for now (Markus)
|
|
191
|
-
acc = { ...acc };
|
|
192
|
-
|
|
193
136
|
if (event.type === RuntimeEventTypes.ActionExecutionStart) {
|
|
194
137
|
acc.callActionServerSide = event.scope === "server";
|
|
195
138
|
acc.args = "";
|
|
196
139
|
acc.actionExecutionId = event.actionExecutionId;
|
|
197
140
|
if (acc.callActionServerSide) {
|
|
198
|
-
acc.action =
|
|
141
|
+
acc.action = serversideActions.find((action) => action.name === event.actionName);
|
|
199
142
|
}
|
|
200
143
|
} else if (event.type === RuntimeEventTypes.ActionExecutionArgs) {
|
|
201
144
|
acc.args += event.args;
|
|
202
145
|
}
|
|
203
146
|
|
|
204
147
|
acc.event = event;
|
|
205
|
-
|
|
206
148
|
return acc;
|
|
207
149
|
},
|
|
208
150
|
{
|
|
@@ -225,12 +167,9 @@ export class RuntimeEventSource {
|
|
|
225
167
|
eventWithState.action!,
|
|
226
168
|
eventWithState.args,
|
|
227
169
|
eventWithState.actionExecutionId,
|
|
228
|
-
actionInputsWithoutAgents,
|
|
229
170
|
).catch((error) => {
|
|
230
171
|
console.error(error);
|
|
231
172
|
});
|
|
232
|
-
|
|
233
|
-
telemetry.capture("oss.runtime.server_action_executed", {});
|
|
234
173
|
return concat(of(eventWithState.event!), toolCallEventStream$);
|
|
235
174
|
} else {
|
|
236
175
|
return of(eventWithState.event!);
|
|
@@ -246,7 +185,6 @@ async function executeAction(
|
|
|
246
185
|
action: Action<any>,
|
|
247
186
|
actionArguments: string,
|
|
248
187
|
actionExecutionId: string,
|
|
249
|
-
actionInputsWithoutAgents: ActionInput[],
|
|
250
188
|
) {
|
|
251
189
|
if (guardrailsResult$) {
|
|
252
190
|
const { status } = await firstValueFrom(guardrailsResult$);
|
|
@@ -263,35 +201,15 @@ async function executeAction(
|
|
|
263
201
|
args = JSON.parse(actionArguments);
|
|
264
202
|
}
|
|
265
203
|
|
|
266
|
-
//
|
|
267
|
-
|
|
268
|
-
eventStream$.sendActionExecutionResult(
|
|
269
|
-
actionExecutionId,
|
|
270
|
-
action.name,
|
|
271
|
-
`${action.name} agent started`,
|
|
272
|
-
);
|
|
273
|
-
const stream = await action.langGraphAgentHandler({
|
|
274
|
-
name: action.name,
|
|
275
|
-
actionInputsWithoutAgents,
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
// forward to eventStream$
|
|
279
|
-
from(stream).subscribe({
|
|
280
|
-
next: (event) => eventStream$.next(event),
|
|
281
|
-
error: (err) => console.error("Error in stream", err),
|
|
282
|
-
complete: () => eventStream$.complete(),
|
|
283
|
-
});
|
|
284
|
-
} else {
|
|
285
|
-
// call the function
|
|
286
|
-
const result = await action.handler?.(args);
|
|
204
|
+
// call the function
|
|
205
|
+
const result = await action.handler(args);
|
|
287
206
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
}
|
|
207
|
+
await streamLangChainResponse({
|
|
208
|
+
result,
|
|
209
|
+
eventStream$,
|
|
210
|
+
actionExecution: {
|
|
211
|
+
name: action.name,
|
|
212
|
+
id: actionExecutionId,
|
|
213
|
+
},
|
|
214
|
+
});
|
|
297
215
|
}
|
package/dist/chunk-5TYP4A3G.mjs
DELETED
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RemoteChain
|
|
3
|
-
} from "./chunk-BJ2LVHWA.mjs";
|
|
4
|
-
import {
|
|
5
|
-
RuntimeEventSource,
|
|
6
|
-
isLangGraphAgentAction,
|
|
7
|
-
setupRemoteActions
|
|
8
|
-
} from "./chunk-7FSNQXPE.mjs";
|
|
9
|
-
import {
|
|
10
|
-
ActionExecutionMessage,
|
|
11
|
-
AgentStateMessage,
|
|
12
|
-
ResultMessage,
|
|
13
|
-
TextMessage
|
|
14
|
-
} from "./chunk-TBZGOJJX.mjs";
|
|
15
|
-
import {
|
|
16
|
-
__name
|
|
17
|
-
} from "./chunk-44O2JGUY.mjs";
|
|
18
|
-
|
|
19
|
-
// src/lib/runtime/copilot-runtime.ts
|
|
20
|
-
import { actionParametersToJsonSchema, randomId } from "@copilotkit/shared";
|
|
21
|
-
|
|
22
|
-
// src/service-adapters/conversion.ts
|
|
23
|
-
import { plainToInstance } from "class-transformer";
|
|
24
|
-
function convertGqlInputToMessages(inputMessages) {
|
|
25
|
-
const messages = [];
|
|
26
|
-
for (const message of inputMessages) {
|
|
27
|
-
if (message.textMessage) {
|
|
28
|
-
messages.push(plainToInstance(TextMessage, {
|
|
29
|
-
id: message.id,
|
|
30
|
-
createdAt: message.createdAt,
|
|
31
|
-
role: message.textMessage.role,
|
|
32
|
-
content: message.textMessage.content
|
|
33
|
-
}));
|
|
34
|
-
} else if (message.actionExecutionMessage) {
|
|
35
|
-
messages.push(plainToInstance(ActionExecutionMessage, {
|
|
36
|
-
id: message.id,
|
|
37
|
-
createdAt: message.createdAt,
|
|
38
|
-
name: message.actionExecutionMessage.name,
|
|
39
|
-
arguments: JSON.parse(message.actionExecutionMessage.arguments),
|
|
40
|
-
scope: message.actionExecutionMessage.scope
|
|
41
|
-
}));
|
|
42
|
-
} else if (message.resultMessage) {
|
|
43
|
-
messages.push(plainToInstance(ResultMessage, {
|
|
44
|
-
id: message.id,
|
|
45
|
-
createdAt: message.createdAt,
|
|
46
|
-
actionExecutionId: message.resultMessage.actionExecutionId,
|
|
47
|
-
actionName: message.resultMessage.actionName,
|
|
48
|
-
result: message.resultMessage.result
|
|
49
|
-
}));
|
|
50
|
-
} else if (message.agentStateMessage) {
|
|
51
|
-
messages.push(plainToInstance(AgentStateMessage, {
|
|
52
|
-
id: message.id,
|
|
53
|
-
threadId: message.agentStateMessage.threadId,
|
|
54
|
-
createdAt: message.createdAt,
|
|
55
|
-
agentName: message.agentStateMessage.agentName,
|
|
56
|
-
nodeName: message.agentStateMessage.nodeName,
|
|
57
|
-
runId: message.agentStateMessage.runId,
|
|
58
|
-
active: message.agentStateMessage.active,
|
|
59
|
-
role: message.agentStateMessage.role,
|
|
60
|
-
state: JSON.parse(message.agentStateMessage.state),
|
|
61
|
-
running: message.agentStateMessage.running
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return messages;
|
|
66
|
-
}
|
|
67
|
-
__name(convertGqlInputToMessages, "convertGqlInputToMessages");
|
|
68
|
-
|
|
69
|
-
// src/lib/runtime/copilot-runtime.ts
|
|
70
|
-
import { from } from "rxjs";
|
|
71
|
-
var CopilotRuntime = class {
|
|
72
|
-
actions;
|
|
73
|
-
remoteActionDefinitions;
|
|
74
|
-
langserve = [];
|
|
75
|
-
onBeforeRequest;
|
|
76
|
-
onAfterRequest;
|
|
77
|
-
constructor(params) {
|
|
78
|
-
var _a, _b;
|
|
79
|
-
this.actions = (params == null ? void 0 : params.actions) || [];
|
|
80
|
-
for (const chain of (params == null ? void 0 : params.langserve) || []) {
|
|
81
|
-
const remoteChain = new RemoteChain(chain);
|
|
82
|
-
this.langserve.push(remoteChain.toAction());
|
|
83
|
-
}
|
|
84
|
-
this.remoteActionDefinitions = (params == null ? void 0 : params.remoteActions) || [];
|
|
85
|
-
this.onBeforeRequest = (_a = params == null ? void 0 : params.middleware) == null ? void 0 : _a.onBeforeRequest;
|
|
86
|
-
this.onAfterRequest = (_b = params == null ? void 0 : params.middleware) == null ? void 0 : _b.onAfterRequest;
|
|
87
|
-
}
|
|
88
|
-
async processRuntimeRequest(request) {
|
|
89
|
-
var _a;
|
|
90
|
-
const { serviceAdapter, messages: rawMessages, actions: clientSideActionsInput, threadId, runId, outputMessagesPromise, graphqlContext, forwardedParameters, agentSession, url } = request;
|
|
91
|
-
if (agentSession) {
|
|
92
|
-
return this.processAgentRequest(request);
|
|
93
|
-
}
|
|
94
|
-
const messages = rawMessages.filter((message) => !message.agentStateMessage);
|
|
95
|
-
const inputMessages = convertGqlInputToMessages(messages);
|
|
96
|
-
const serverSideActions = await this.getServerSideActions(request);
|
|
97
|
-
const serverSideActionsInput = serverSideActions.map((action) => ({
|
|
98
|
-
name: action.name,
|
|
99
|
-
description: action.description,
|
|
100
|
-
jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters))
|
|
101
|
-
}));
|
|
102
|
-
const actionInputs = flattenToolCallsNoDuplicates([
|
|
103
|
-
...serverSideActionsInput,
|
|
104
|
-
...clientSideActionsInput
|
|
105
|
-
]);
|
|
106
|
-
await ((_a = this.onBeforeRequest) == null ? void 0 : _a.call(this, {
|
|
107
|
-
threadId,
|
|
108
|
-
runId,
|
|
109
|
-
inputMessages,
|
|
110
|
-
properties: graphqlContext.properties,
|
|
111
|
-
url
|
|
112
|
-
}));
|
|
113
|
-
try {
|
|
114
|
-
const eventSource = new RuntimeEventSource();
|
|
115
|
-
const result = await serviceAdapter.process({
|
|
116
|
-
messages: inputMessages,
|
|
117
|
-
actions: actionInputs,
|
|
118
|
-
threadId,
|
|
119
|
-
runId,
|
|
120
|
-
eventSource,
|
|
121
|
-
forwardedParameters
|
|
122
|
-
});
|
|
123
|
-
outputMessagesPromise.then((outputMessages) => {
|
|
124
|
-
var _a2;
|
|
125
|
-
(_a2 = this.onAfterRequest) == null ? void 0 : _a2.call(this, {
|
|
126
|
-
threadId: result.threadId,
|
|
127
|
-
runId: result.runId,
|
|
128
|
-
inputMessages,
|
|
129
|
-
outputMessages,
|
|
130
|
-
properties: graphqlContext.properties,
|
|
131
|
-
url
|
|
132
|
-
});
|
|
133
|
-
}).catch((_error) => {
|
|
134
|
-
});
|
|
135
|
-
return {
|
|
136
|
-
threadId: result.threadId,
|
|
137
|
-
runId: result.runId,
|
|
138
|
-
eventSource,
|
|
139
|
-
serverSideActions,
|
|
140
|
-
actionInputsWithoutAgents: actionInputs.filter((action) => (
|
|
141
|
-
// TODO-AGENTS: do not exclude ALL server side actions
|
|
142
|
-
!serverSideActions.find((serverSideAction) => serverSideAction.name == action.name)
|
|
143
|
-
))
|
|
144
|
-
};
|
|
145
|
-
} catch (error) {
|
|
146
|
-
console.error("Error getting response:", error);
|
|
147
|
-
throw error;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
async processAgentRequest(request) {
|
|
151
|
-
var _a;
|
|
152
|
-
const { messages: rawMessages, outputMessagesPromise, graphqlContext, agentSession } = request;
|
|
153
|
-
const { threadId = randomId(), agentName, nodeName } = agentSession;
|
|
154
|
-
const serverSideActions = await this.getServerSideActions(request);
|
|
155
|
-
const messages = convertGqlInputToMessages(rawMessages);
|
|
156
|
-
const agent = serverSideActions.find((action) => action.name === agentName && isLangGraphAgentAction(action));
|
|
157
|
-
if (!agent) {
|
|
158
|
-
throw new Error(`Agent ${agentName} not found`);
|
|
159
|
-
}
|
|
160
|
-
const serverSideActionsInput = serverSideActions.filter((action) => !isLangGraphAgentAction(action)).map((action) => ({
|
|
161
|
-
name: action.name,
|
|
162
|
-
description: action.description,
|
|
163
|
-
jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters))
|
|
164
|
-
}));
|
|
165
|
-
const actionInputsWithoutAgents = flattenToolCallsNoDuplicates([
|
|
166
|
-
...serverSideActionsInput,
|
|
167
|
-
...request.actions
|
|
168
|
-
]);
|
|
169
|
-
await ((_a = this.onBeforeRequest) == null ? void 0 : _a.call(this, {
|
|
170
|
-
threadId,
|
|
171
|
-
runId: void 0,
|
|
172
|
-
inputMessages: messages,
|
|
173
|
-
properties: graphqlContext.properties
|
|
174
|
-
}));
|
|
175
|
-
try {
|
|
176
|
-
const eventSource = new RuntimeEventSource();
|
|
177
|
-
const stream = await agent.langGraphAgentHandler({
|
|
178
|
-
name: agentName,
|
|
179
|
-
threadId,
|
|
180
|
-
nodeName,
|
|
181
|
-
actionInputsWithoutAgents
|
|
182
|
-
});
|
|
183
|
-
eventSource.stream(async (eventStream$) => {
|
|
184
|
-
from(stream).subscribe({
|
|
185
|
-
next: (event) => eventStream$.next(event),
|
|
186
|
-
error: (err) => console.error("Error in stream", err),
|
|
187
|
-
complete: () => eventStream$.complete()
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
outputMessagesPromise.then((outputMessages) => {
|
|
191
|
-
var _a2;
|
|
192
|
-
(_a2 = this.onAfterRequest) == null ? void 0 : _a2.call(this, {
|
|
193
|
-
threadId,
|
|
194
|
-
runId: void 0,
|
|
195
|
-
inputMessages: messages,
|
|
196
|
-
outputMessages,
|
|
197
|
-
properties: graphqlContext.properties
|
|
198
|
-
});
|
|
199
|
-
}).catch((_error) => {
|
|
200
|
-
});
|
|
201
|
-
return {
|
|
202
|
-
threadId,
|
|
203
|
-
runId: void 0,
|
|
204
|
-
eventSource,
|
|
205
|
-
serverSideActions: [],
|
|
206
|
-
actionInputsWithoutAgents
|
|
207
|
-
};
|
|
208
|
-
} catch (error) {
|
|
209
|
-
console.error("Error getting response:", error);
|
|
210
|
-
throw error;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
async getServerSideActions(request) {
|
|
214
|
-
const { messages: rawMessages, graphqlContext, agentStates, url } = request;
|
|
215
|
-
const inputMessages = convertGqlInputToMessages(rawMessages);
|
|
216
|
-
const langserveFunctions = [];
|
|
217
|
-
for (const chainPromise of this.langserve) {
|
|
218
|
-
try {
|
|
219
|
-
const chain = await chainPromise;
|
|
220
|
-
langserveFunctions.push(chain);
|
|
221
|
-
} catch (error) {
|
|
222
|
-
console.error("Error loading langserve chain:", error);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
const remoteActions = await setupRemoteActions({
|
|
226
|
-
remoteActionDefinitions: this.remoteActionDefinitions,
|
|
227
|
-
graphqlContext,
|
|
228
|
-
messages: inputMessages,
|
|
229
|
-
agentStates
|
|
230
|
-
});
|
|
231
|
-
const configuredActions = typeof this.actions === "function" ? this.actions({
|
|
232
|
-
properties: graphqlContext.properties,
|
|
233
|
-
url
|
|
234
|
-
}) : this.actions;
|
|
235
|
-
return [
|
|
236
|
-
...configuredActions,
|
|
237
|
-
...langserveFunctions,
|
|
238
|
-
...remoteActions
|
|
239
|
-
];
|
|
240
|
-
}
|
|
241
|
-
};
|
|
242
|
-
__name(CopilotRuntime, "CopilotRuntime");
|
|
243
|
-
function flattenToolCallsNoDuplicates(toolsByPriority) {
|
|
244
|
-
let allTools = [];
|
|
245
|
-
const allToolNames = [];
|
|
246
|
-
for (const tool of toolsByPriority) {
|
|
247
|
-
if (!allToolNames.includes(tool.name)) {
|
|
248
|
-
allTools.push(tool);
|
|
249
|
-
allToolNames.push(tool.name);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
return allTools;
|
|
253
|
-
}
|
|
254
|
-
__name(flattenToolCallsNoDuplicates, "flattenToolCallsNoDuplicates");
|
|
255
|
-
|
|
256
|
-
export {
|
|
257
|
-
CopilotRuntime,
|
|
258
|
-
flattenToolCallsNoDuplicates
|
|
259
|
-
};
|
|
260
|
-
//# sourceMappingURL=chunk-5TYP4A3G.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/runtime/copilot-runtime.ts","../src/service-adapters/conversion.ts"],"sourcesContent":["/**\n * <Callout type=\"info\">\n * This is the reference for the `CopilotRuntime` class. For more information and example code snippets, please see [Concept: Copilot Runtime](/concepts/copilot-runtime).\n * </Callout>\n *\n * ## Usage\n *\n * ```tsx\n * import { CopilotRuntime } from \"@copilotkit/runtime\";\n *\n * const copilotKit = new CopilotRuntime();\n * ```\n */\n\nimport { Action, actionParametersToJsonSchema, Parameter, randomId } from \"@copilotkit/shared\";\nimport { RemoteChain, RemoteChainParameters, CopilotServiceAdapter } from \"../../service-adapters\";\nimport { MessageInput } from \"../../graphql/inputs/message.input\";\nimport { ActionInput } from \"../../graphql/inputs/action.input\";\nimport { RuntimeEventSource } from \"../../service-adapters/events\";\nimport { convertGqlInputToMessages } from \"../../service-adapters/conversion\";\nimport { AgentStateMessage, Message } from \"../../graphql/types/converted\";\nimport { ForwardedParametersInput } from \"../../graphql/inputs/forwarded-parameters.input\";\nimport {\n setupRemoteActions,\n RemoteActionDefinition,\n LangGraphAgentAction,\n isLangGraphAgentAction,\n} from \"./remote-actions\";\nimport { GraphQLContext } from \"../integrations/shared\";\nimport { AgentSessionInput } from \"../../graphql/inputs/agent-session.input\";\nimport { from } from \"rxjs\";\nimport { AgentStateInput } from \"../../graphql/inputs/agent-state.input\";\n\ninterface CopilotRuntimeRequest {\n serviceAdapter: CopilotServiceAdapter;\n messages: MessageInput[];\n actions: ActionInput[];\n agentSession?: AgentSessionInput;\n agentStates?: AgentStateInput[];\n outputMessagesPromise: Promise<Message[]>;\n threadId?: string;\n runId?: string;\n publicApiKey?: string;\n graphqlContext: GraphQLContext;\n forwardedParameters?: ForwardedParametersInput;\n url?: string;\n}\n\ninterface CopilotRuntimeResponse {\n threadId: string;\n runId?: string;\n eventSource: RuntimeEventSource;\n serverSideActions: Action<any>[];\n actionInputsWithoutAgents: ActionInput[];\n}\n\ntype ActionsConfiguration<T extends Parameter[] | [] = []> =\n | Action<T>[]\n | ((ctx: { properties: any; url?: string }) => Action<T>[]);\n\ninterface OnBeforeRequestOptions {\n threadId?: string;\n runId?: string;\n inputMessages: Message[];\n properties: any;\n url?: string;\n}\n\ntype OnBeforeRequestHandler = (options: OnBeforeRequestOptions) => void | Promise<void>;\n\ninterface OnAfterRequestOptions {\n threadId: string;\n runId?: string;\n inputMessages: Message[];\n outputMessages: Message[];\n properties: any;\n url?: string;\n}\n\ntype OnAfterRequestHandler = (options: OnAfterRequestOptions) => void | Promise<void>;\n\ninterface Middleware {\n /**\n * A function that is called before the request is processed.\n */\n onBeforeRequest?: OnBeforeRequestHandler;\n\n /**\n * A function that is called after the request is processed.\n */\n onAfterRequest?: OnAfterRequestHandler;\n}\n\nexport interface CopilotRuntimeConstructorParams<T extends Parameter[] | [] = []> {\n /**\n * Middleware to be used by the runtime.\n *\n * ```ts\n * onBeforeRequest: (options: {\n * threadId?: string;\n * runId?: string;\n * inputMessages: Message[];\n * properties: any;\n * }) => void | Promise<void>;\n * ```\n *\n * ```ts\n * onAfterRequest: (options: {\n * threadId?: string;\n * runId?: string;\n * inputMessages: Message[];\n * outputMessages: Message[];\n * properties: any;\n * }) => void | Promise<void>;\n * ```\n */\n middleware?: Middleware;\n\n /*\n * A list of server side actions that can be executed.\n */\n actions?: ActionsConfiguration<T>;\n\n /*\n * A list of remote actions that can be executed.\n */\n remoteActions?: RemoteActionDefinition[];\n\n /*\n * An array of LangServer URLs.\n */\n langserve?: RemoteChainParameters[];\n}\n\nexport class CopilotRuntime<const T extends Parameter[] | [] = []> {\n public actions: ActionsConfiguration<T>;\n private remoteActionDefinitions: RemoteActionDefinition[];\n private langserve: Promise<Action<any>>[] = [];\n private onBeforeRequest?: OnBeforeRequestHandler;\n private onAfterRequest?: OnAfterRequestHandler;\n\n constructor(params?: CopilotRuntimeConstructorParams<T>) {\n this.actions = params?.actions || [];\n\n for (const chain of params?.langserve || []) {\n const remoteChain = new RemoteChain(chain);\n this.langserve.push(remoteChain.toAction());\n }\n\n this.remoteActionDefinitions = params?.remoteActions || [];\n\n this.onBeforeRequest = params?.middleware?.onBeforeRequest;\n this.onAfterRequest = params?.middleware?.onAfterRequest;\n }\n\n async processRuntimeRequest(request: CopilotRuntimeRequest): Promise<CopilotRuntimeResponse> {\n const {\n serviceAdapter,\n messages: rawMessages,\n actions: clientSideActionsInput,\n threadId,\n runId,\n outputMessagesPromise,\n graphqlContext,\n forwardedParameters,\n agentSession,\n url,\n } = request;\n\n if (agentSession) {\n return this.processAgentRequest(request);\n }\n\n const messages = rawMessages.filter((message) => !message.agentStateMessage);\n\n const inputMessages = convertGqlInputToMessages(messages);\n const serverSideActions = await this.getServerSideActions(request);\n\n const serverSideActionsInput: ActionInput[] = serverSideActions.map((action) => ({\n name: action.name,\n description: action.description,\n jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters)),\n }));\n\n const actionInputs = flattenToolCallsNoDuplicates([\n ...serverSideActionsInput,\n ...clientSideActionsInput,\n ]);\n\n await this.onBeforeRequest?.({\n threadId,\n runId,\n inputMessages,\n properties: graphqlContext.properties,\n url,\n });\n\n try {\n const eventSource = new RuntimeEventSource();\n\n const result = await serviceAdapter.process({\n messages: inputMessages,\n actions: actionInputs,\n threadId,\n runId,\n eventSource,\n forwardedParameters,\n });\n\n outputMessagesPromise\n .then((outputMessages) => {\n this.onAfterRequest?.({\n threadId: result.threadId,\n runId: result.runId,\n inputMessages,\n outputMessages,\n properties: graphqlContext.properties,\n url,\n });\n })\n .catch((_error) => {});\n\n return {\n threadId: result.threadId,\n runId: result.runId,\n eventSource,\n serverSideActions,\n actionInputsWithoutAgents: actionInputs.filter(\n (action) =>\n // TODO-AGENTS: do not exclude ALL server side actions\n !serverSideActions.find((serverSideAction) => serverSideAction.name == action.name),\n // !isLangGraphAgentAction(\n // serverSideActions.find((serverSideAction) => serverSideAction.name == action.name),\n // ),\n ),\n };\n } catch (error) {\n console.error(\"Error getting response:\", error);\n throw error;\n }\n }\n\n private async processAgentRequest(\n request: CopilotRuntimeRequest,\n ): Promise<CopilotRuntimeResponse> {\n const { messages: rawMessages, outputMessagesPromise, graphqlContext, agentSession } = request;\n const { threadId = randomId(), agentName, nodeName } = agentSession;\n const serverSideActions = await this.getServerSideActions(request);\n\n const messages = convertGqlInputToMessages(rawMessages);\n\n const agent = serverSideActions.find(\n (action) => action.name === agentName && isLangGraphAgentAction(action),\n ) as LangGraphAgentAction;\n\n if (!agent) {\n throw new Error(`Agent ${agentName} not found`);\n }\n\n const serverSideActionsInput: ActionInput[] = serverSideActions\n .filter((action) => !isLangGraphAgentAction(action))\n .map((action) => ({\n name: action.name,\n description: action.description,\n jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters)),\n }));\n\n const actionInputsWithoutAgents = flattenToolCallsNoDuplicates([\n ...serverSideActionsInput,\n ...request.actions,\n ]);\n\n await this.onBeforeRequest?.({\n threadId,\n runId: undefined,\n inputMessages: messages,\n properties: graphqlContext.properties,\n });\n try {\n const eventSource = new RuntimeEventSource();\n const stream = await agent.langGraphAgentHandler({\n name: agentName,\n threadId,\n nodeName,\n actionInputsWithoutAgents,\n });\n\n eventSource.stream(async (eventStream$) => {\n from(stream).subscribe({\n next: (event) => eventStream$.next(event),\n error: (err) => console.error(\"Error in stream\", err),\n complete: () => eventStream$.complete(),\n });\n });\n\n outputMessagesPromise\n .then((outputMessages) => {\n this.onAfterRequest?.({\n threadId,\n runId: undefined,\n inputMessages: messages,\n outputMessages,\n properties: graphqlContext.properties,\n });\n })\n .catch((_error) => {});\n\n return {\n threadId,\n runId: undefined,\n eventSource,\n serverSideActions: [],\n actionInputsWithoutAgents,\n };\n } catch (error) {\n console.error(\"Error getting response:\", error);\n throw error;\n }\n }\n\n private async getServerSideActions(request: CopilotRuntimeRequest): Promise<Action<any>[]> {\n const { messages: rawMessages, graphqlContext, agentStates, url } = request;\n const inputMessages = convertGqlInputToMessages(rawMessages);\n const langserveFunctions: Action<any>[] = [];\n\n for (const chainPromise of this.langserve) {\n try {\n const chain = await chainPromise;\n langserveFunctions.push(chain);\n } catch (error) {\n console.error(\"Error loading langserve chain:\", error);\n }\n }\n const remoteActions = await setupRemoteActions({\n remoteActionDefinitions: this.remoteActionDefinitions,\n graphqlContext,\n messages: inputMessages,\n agentStates,\n });\n\n const configuredActions =\n typeof this.actions === \"function\"\n ? this.actions({ properties: graphqlContext.properties, url })\n : this.actions;\n\n return [...configuredActions, ...langserveFunctions, ...remoteActions];\n }\n}\n\nexport function flattenToolCallsNoDuplicates(toolsByPriority: ActionInput[]): ActionInput[] {\n let allTools: ActionInput[] = [];\n const allToolNames: string[] = [];\n for (const tool of toolsByPriority) {\n if (!allToolNames.includes(tool.name)) {\n allTools.push(tool);\n allToolNames.push(tool.name);\n }\n }\n return allTools;\n}\n","import {\n ActionExecutionMessage,\n Message,\n ResultMessage,\n TextMessage,\n AgentStateMessage,\n} from \"../graphql/types/converted\";\nimport { MessageInput } from \"../graphql/inputs/message.input\";\nimport { plainToInstance } from \"class-transformer\";\n\nexport function convertGqlInputToMessages(inputMessages: MessageInput[]): Message[] {\n const messages: Message[] = [];\n\n for (const message of inputMessages) {\n if (message.textMessage) {\n messages.push(\n plainToInstance(TextMessage, {\n id: message.id,\n createdAt: message.createdAt,\n role: message.textMessage.role,\n content: message.textMessage.content,\n }),\n );\n } else if (message.actionExecutionMessage) {\n messages.push(\n plainToInstance(ActionExecutionMessage, {\n id: message.id,\n createdAt: message.createdAt,\n name: message.actionExecutionMessage.name,\n arguments: JSON.parse(message.actionExecutionMessage.arguments),\n scope: message.actionExecutionMessage.scope,\n }),\n );\n } else if (message.resultMessage) {\n messages.push(\n plainToInstance(ResultMessage, {\n id: message.id,\n createdAt: message.createdAt,\n actionExecutionId: message.resultMessage.actionExecutionId,\n actionName: message.resultMessage.actionName,\n result: message.resultMessage.result,\n }),\n );\n } else if (message.agentStateMessage) {\n messages.push(\n plainToInstance(AgentStateMessage, {\n id: message.id,\n threadId: message.agentStateMessage.threadId,\n createdAt: message.createdAt,\n agentName: message.agentStateMessage.agentName,\n nodeName: message.agentStateMessage.nodeName,\n runId: message.agentStateMessage.runId,\n active: message.agentStateMessage.active,\n role: message.agentStateMessage.role,\n state: JSON.parse(message.agentStateMessage.state),\n running: message.agentStateMessage.running,\n }),\n );\n }\n }\n\n return messages;\n}\n"],"mappings":"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","names":["actionParametersToJsonSchema","randomId","plainToInstance","convertGqlInputToMessages","inputMessages","messages","message","textMessage","push","plainToInstance","TextMessage","id","createdAt","role","content","actionExecutionMessage","ActionExecutionMessage","name","arguments","JSON","parse","scope","resultMessage","ResultMessage","actionExecutionId","actionName","result","agentStateMessage","AgentStateMessage","threadId","agentName","nodeName","runId","active","state","running","from","CopilotRuntime","actions","remoteActionDefinitions","langserve","onBeforeRequest","onAfterRequest","constructor","params","chain","remoteChain","RemoteChain","push","toAction","remoteActions","middleware","processRuntimeRequest","request","serviceAdapter","messages","rawMessages","clientSideActionsInput","threadId","runId","outputMessagesPromise","graphqlContext","forwardedParameters","agentSession","url","processAgentRequest","filter","message","agentStateMessage","inputMessages","convertGqlInputToMessages","serverSideActions","getServerSideActions","serverSideActionsInput","map","action","name","description","jsonSchema","JSON","stringify","actionParametersToJsonSchema","parameters","actionInputs","flattenToolCallsNoDuplicates","properties","eventSource","RuntimeEventSource","result","process","then","outputMessages","_a","catch","_error","actionInputsWithoutAgents","find","serverSideAction","error","console","randomId","agentName","nodeName","agent","isLangGraphAgentAction","Error","undefined","stream","langGraphAgentHandler","eventStream$","from","subscribe","next","event","err","complete","agentStates","langserveFunctions","chainPromise","setupRemoteActions","configuredActions","toolsByPriority","allTools","allToolNames","tool","includes"]}
|