@copilotkit/runtime 1.1.1 → 1.1.3-feat-runtime-remote-actions.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 +22 -0
- package/README.md +32 -37
- package/__snapshots__/schema/schema.graphql +42 -0
- package/dist/chunk-4WFNRUBE.mjs +260 -0
- package/dist/chunk-4WFNRUBE.mjs.map +1 -0
- package/dist/{chunk-YJAUWNAJ.mjs → chunk-6X5MPWIC.mjs} +795 -159
- package/dist/chunk-6X5MPWIC.mjs.map +1 -0
- package/dist/{chunk-URMISMK2.mjs → chunk-73NMP3DI.mjs} +2 -2
- package/dist/{chunk-CUVWSISN.mjs → chunk-BJ2LVHWA.mjs} +22 -4
- package/dist/chunk-BJ2LVHWA.mjs.map +1 -0
- package/dist/{chunk-BOAAK6EY.mjs → chunk-HYNSUFUM.mjs} +2 -2
- package/dist/{chunk-NJUL6GAV.mjs → chunk-JV3CSVW6.mjs} +2 -2
- package/dist/{chunk-AMCK7MAH.mjs → chunk-OYUVLDJF.mjs} +2 -2
- package/dist/{chunk-GEIBJJQ4.mjs → chunk-TBZGOJJX.mjs} +14 -2
- package/dist/chunk-TBZGOJJX.mjs.map +1 -0
- package/dist/{shared-ec6c7db5.d.ts → copilot-runtime-d427e991.d.ts} +68 -37
- package/dist/graphql/types/converted/index.d.ts +1 -1
- package/dist/graphql/types/converted/index.js +13 -0
- package/dist/graphql/types/converted/index.js.map +1 -1
- package/dist/graphql/types/converted/index.mjs +3 -1
- package/dist/{index-aa091e3c.d.ts → index-0476e4f7.d.ts} +24 -2
- package/dist/{groq-adapter-675b30c6.d.ts → index-079752b9.d.ts} +31 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +1012 -246
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -8
- package/dist/{langserve-a54438c6.d.ts → langserve-d6073a3b.d.ts} +24 -11
- package/dist/lib/index.d.ts +8 -8
- package/dist/lib/index.js +1012 -246
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +8 -8
- package/dist/lib/integrations/index.d.ts +26 -7
- package/dist/lib/integrations/index.js +446 -183
- 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 +446 -183
- 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 +446 -183
- 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 +446 -183
- 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 +19 -1
- package/dist/service-adapters/index.js.map +1 -1
- package/dist/service-adapters/index.mjs +3 -3
- package/dist/utils/index.d.ts +49 -1
- package/package.json +7 -5
- package/src/agents/langgraph/event-source.ts +222 -0
- package/src/agents/langgraph/events.ts +309 -0
- package/src/graphql/inputs/agent-session.input.ts +13 -0
- package/src/graphql/inputs/agent-state.input.ts +10 -0
- package/src/graphql/inputs/frontend.input.ts +3 -0
- package/src/graphql/inputs/generate-copilot-response.input.ts +11 -0
- package/src/graphql/inputs/message.input.ts +30 -0
- package/src/graphql/resolvers/copilot.resolver.ts +57 -12
- package/src/graphql/types/converted/index.ts +15 -0
- package/src/graphql/types/copilot-response.type.ts +29 -0
- package/src/graphql/types/enums.ts +1 -0
- package/src/lib/index.ts +1 -1
- package/src/lib/integrations/shared.ts +1 -1
- package/src/lib/runtime/copilot-runtime.ts +360 -0
- package/src/lib/runtime/remote-actions.ts +241 -0
- package/src/service-adapters/conversion.ts +16 -0
- package/src/service-adapters/events.ts +101 -19
- package/src/service-adapters/groq/groq-adapter.ts +13 -0
- package/src/service-adapters/openai/openai-adapter.ts +13 -0
- package/src/service-adapters/openai/openai-assistant-adapter.ts +14 -0
- package/dist/chunk-CUVWSISN.mjs.map +0 -1
- package/dist/chunk-GEIBJJQ4.mjs.map +0 -1
- package/dist/chunk-RO5NLPB3.mjs +0 -155
- package/dist/chunk-RO5NLPB3.mjs.map +0 -1
- package/dist/chunk-YJAUWNAJ.mjs.map +0 -1
- package/dist/failed-response-status-reasons-0ab19e06.d.ts +0 -49
- package/dist/pages-router-df82c666.d.ts +0 -21
- package/src/lib/copilot-runtime.ts +0 -225
- /package/dist/{chunk-URMISMK2.mjs.map → chunk-73NMP3DI.mjs.map} +0 -0
- /package/dist/{chunk-BOAAK6EY.mjs.map → chunk-HYNSUFUM.mjs.map} +0 -0
- /package/dist/{chunk-NJUL6GAV.mjs.map → chunk-JV3CSVW6.mjs.map} +0 -0
- /package/dist/{chunk-AMCK7MAH.mjs.map → chunk-OYUVLDJF.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @copilotkit/runtime
|
|
2
2
|
|
|
3
|
+
## 1.1.3-feat-runtime-remote-actions.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 638d51d: appendMessage fix 1
|
|
8
|
+
- Rename hooks and bugfixes
|
|
9
|
+
- faccbe1: state-abuse resistance for useCopilotChat
|
|
10
|
+
- b0cf700: remove unnecessary logging
|
|
11
|
+
- Updated dependencies [638d51d]
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
- Updated dependencies [faccbe1]
|
|
14
|
+
- Updated dependencies [b0cf700]
|
|
15
|
+
- @copilotkit/shared@1.1.3-feat-runtime-remote-actions.0
|
|
16
|
+
|
|
17
|
+
## 1.1.2
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Pin headless-ui/react version to v2.1.1
|
|
22
|
+
- Updated dependencies
|
|
23
|
+
- @copilotkit/shared@1.1.2
|
|
24
|
+
|
|
3
25
|
## 1.1.1
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,50 +1,45 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<img alt="CopilotKit Logo" src="https://github.com/CopilotKit/CopilotKit/assets/746397/bd5c9079-929b-4d55-bdc9-16d1c8181b71" width="450px" max-width="100%"/>
|
|
5
|
-
</picture>
|
|
6
|
-
</a>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<p align="center">
|
|
10
|
-
<a href="https://discord.gg/6dffbvGU3D">
|
|
11
|
-
<img src="https://dcbadge.vercel.app/api/server/6dffbvGU3D?compact=true&style=flat" alt="Discord">
|
|
12
|
-
</a>
|
|
13
|
-
<a href="https://github.com/CopilotKit/CopilotKit/actions/workflows/ci.yml">
|
|
14
|
-
<img src="https://github.com/CopilotKit/CopilotKit/actions/workflows/ci.yml/badge.svg" alt="GitHub CI">
|
|
2
|
+
<a href="https://copilotkit.ai" target="_blank">
|
|
3
|
+
<img src="https://github.com/copilotkit/copilotkit/raw/main/assets/banner.png" alt="CopilotKit Logo">
|
|
15
4
|
</a>
|
|
16
5
|
|
|
17
|
-
<
|
|
18
|
-
<img src="https://img.shields.io/npm/v/@copilotkit/react-core" alt="NPM">
|
|
19
|
-
<img src="https://img.shields.io/github/license/CopilotKit/CopilotKit" alt="MIT">
|
|
20
|
-
|
|
21
|
-
</p>
|
|
6
|
+
<br/>
|
|
22
7
|
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
</
|
|
8
|
+
<strong>
|
|
9
|
+
CopilotKit is the open-source framework for integrating powerful AI Copilots into any application. Easily implement custom AI Chatbots, AI Agents, AI Textareas, and more.
|
|
10
|
+
</strong>
|
|
11
|
+
</div>
|
|
26
12
|
|
|
27
|
-
<
|
|
28
|
-
Build, deploy, and operate fully custom AI Copilots.
|
|
29
|
-
</h2>
|
|
13
|
+
<br/>
|
|
30
14
|
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
15
|
+
<div align="center">
|
|
16
|
+
<a href="https://www.npmjs.com/package/@copilotkit/react-core" target="_blank">
|
|
17
|
+
<img src="https://img.shields.io/npm/v/%40copilotkit%2Freact-core?logo=npm&logoColor=%23FFFFFF&label=Version&color=%236963ff" alt="NPM">
|
|
18
|
+
</a>
|
|
19
|
+
<img src="https://img.shields.io/github/license/copilotkit/copilotkit?color=%236963ff&label=License" alt="MIT">
|
|
20
|
+
<a href="https://discord.gg/6dffbvGU3D" target="_blank">
|
|
21
|
+
<img src="https://img.shields.io/discord/1122926057641742418?logo=discord&logoColor=%23FFFFFF&label=Discord&color=%236963ff" alt="Discord">
|
|
22
|
+
</a>
|
|
23
|
+
</div>
|
|
24
|
+
<br/>
|
|
34
25
|
|
|
35
|
-
<
|
|
36
|
-
<a href="https://discord.
|
|
37
|
-
<img src="https://github.com/
|
|
26
|
+
<div align="center">
|
|
27
|
+
<a href="https://discord.gg/6dffbvGU3D?ref=github_readme" target="_blank">
|
|
28
|
+
<img src="https://github.com/copilotkit/copilotkit/raw/main/assets/btn_discord.png" alt="CopilotKit Discord" height="40px">
|
|
38
29
|
</a>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
<img src="https://github.com/CopilotKit/CopilotKit/assets/131273140/a4a0fd04-6aee-4e02-9c3e-3f11d60b4e8b" alt="Read the Docs" height="30">
|
|
30
|
+
<a href="https://docs.copilotkit.ai?ref=github_readme" target="_blank">
|
|
31
|
+
<img src="https://github.com/copilotkit/copilotkit/raw/main/assets/btn_docs.png" alt="CopilotKit GitHub" height="40px">
|
|
42
32
|
</a>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<img src="https://github.com/CopilotKit/CopilotKit/assets/131273140/28ca62a8-cf93-4d3f-96b0-dc11bf89b734" alt="Try Copilot Cloud" height="30">
|
|
33
|
+
<a href="https://cloud.copilotkit.ai?ref=github_readme" target="_blank">
|
|
34
|
+
<img src="https://github.com/copilotkit/copilotkit/raw/main/assets/btn_cloud.png" alt="CopilotKit GitHub" height="40px">
|
|
46
35
|
</a>
|
|
47
|
-
</
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<br />
|
|
39
|
+
|
|
40
|
+
<div align="center">
|
|
41
|
+
<img src="https://github.com/CopilotKit/CopilotKit/raw/main/assets/animated-banner.gif" alt="CopilotKit Screenshot" style="border-radius: 15px;" />
|
|
42
|
+
</div>
|
|
48
43
|
|
|
49
44
|
# Documentation
|
|
50
45
|
|
|
@@ -21,6 +21,7 @@ type ActionExecutionMessageOutput implements BaseMessageOutput {
|
|
|
21
21
|
"""The scope of the action"""
|
|
22
22
|
enum ActionExecutionScope {
|
|
23
23
|
client
|
|
24
|
+
passThrough
|
|
24
25
|
server
|
|
25
26
|
}
|
|
26
27
|
|
|
@@ -30,6 +31,42 @@ input ActionInput {
|
|
|
30
31
|
name: String!
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
input AgentSessionInput {
|
|
35
|
+
agentName: String!
|
|
36
|
+
nodeName: String
|
|
37
|
+
threadId: String
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
input AgentStateInput {
|
|
41
|
+
agentName: String!
|
|
42
|
+
state: String!
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
input AgentStateMessageInput {
|
|
46
|
+
active: Boolean!
|
|
47
|
+
agentName: String!
|
|
48
|
+
nodeName: String!
|
|
49
|
+
role: MessageRole!
|
|
50
|
+
runId: String!
|
|
51
|
+
running: Boolean!
|
|
52
|
+
state: String!
|
|
53
|
+
threadId: String!
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
type AgentStateMessageOutput implements BaseMessageOutput {
|
|
57
|
+
active: Boolean!
|
|
58
|
+
agentName: String!
|
|
59
|
+
createdAt: DateTimeISO!
|
|
60
|
+
id: String!
|
|
61
|
+
nodeName: String!
|
|
62
|
+
role: MessageRole!
|
|
63
|
+
runId: String!
|
|
64
|
+
running: Boolean!
|
|
65
|
+
state: String!
|
|
66
|
+
status: MessageStatus!
|
|
67
|
+
threadId: String!
|
|
68
|
+
}
|
|
69
|
+
|
|
33
70
|
interface BaseMessageOutput {
|
|
34
71
|
createdAt: DateTimeISO!
|
|
35
72
|
id: String!
|
|
@@ -93,9 +130,13 @@ input ForwardedParametersInput {
|
|
|
93
130
|
input FrontendInput {
|
|
94
131
|
actions: [ActionInput!]!
|
|
95
132
|
toDeprecate_fullContext: String
|
|
133
|
+
url: String
|
|
96
134
|
}
|
|
97
135
|
|
|
98
136
|
input GenerateCopilotResponseInput {
|
|
137
|
+
agentSession: AgentSessionInput
|
|
138
|
+
agentState: AgentStateInput
|
|
139
|
+
agentStates: [AgentStateInput!]
|
|
99
140
|
cloud: CloudInput
|
|
100
141
|
forwardedParameters: ForwardedParametersInput
|
|
101
142
|
frontend: FrontendInput!
|
|
@@ -130,6 +171,7 @@ scalar JSONObject @specifiedBy(url: "http://www.ecma-international.org/publicati
|
|
|
130
171
|
|
|
131
172
|
input MessageInput {
|
|
132
173
|
actionExecutionMessage: ActionExecutionMessageInput
|
|
174
|
+
agentStateMessage: AgentStateMessageInput
|
|
133
175
|
createdAt: DateTimeISO!
|
|
134
176
|
id: String!
|
|
135
177
|
resultMessage: ResultMessageInput
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RemoteChain
|
|
3
|
+
} from "./chunk-BJ2LVHWA.mjs";
|
|
4
|
+
import {
|
|
5
|
+
RuntimeEventSource,
|
|
6
|
+
isLangGraphAgentAction,
|
|
7
|
+
setupRemoteActions
|
|
8
|
+
} from "./chunk-6X5MPWIC.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-4WFNRUBE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|