@copilotkit/runtime 1.50.0-beta.0 → 1.50.0-beta.10
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 +74 -0
- package/dist/chunk-2OZAGFV3.mjs +43 -0
- package/dist/chunk-2OZAGFV3.mjs.map +1 -0
- package/dist/chunk-62NE5S6M.mjs +226 -0
- package/dist/chunk-62NE5S6M.mjs.map +1 -0
- package/dist/chunk-6XRUR5UK.mjs +1 -0
- package/dist/chunk-6XRUR5UK.mjs.map +1 -0
- package/dist/chunk-AMUJQ6IR.mjs +50 -0
- package/dist/chunk-AMUJQ6IR.mjs.map +1 -0
- package/dist/chunk-BJEYMRDD.mjs +25 -0
- package/dist/chunk-BJEYMRDD.mjs.map +1 -0
- package/dist/chunk-DZV4ZIAR.mjs +3063 -0
- package/dist/chunk-DZV4ZIAR.mjs.map +1 -0
- package/dist/chunk-FHD4JECV.mjs +33 -0
- package/dist/chunk-FHD4JECV.mjs.map +1 -0
- package/dist/chunk-FMU55SEU.mjs +25 -0
- package/dist/chunk-FMU55SEU.mjs.map +1 -0
- package/dist/chunk-OWIGJONH.mjs +275 -0
- package/dist/chunk-OWIGJONH.mjs.map +1 -0
- package/dist/chunk-SBCOROE4.mjs +1112 -0
- package/dist/chunk-SBCOROE4.mjs.map +1 -0
- package/dist/chunk-TTUAEJLD.mjs +617 -0
- package/dist/chunk-TTUAEJLD.mjs.map +1 -0
- package/dist/chunk-XWBDEXDA.mjs +153 -0
- package/dist/chunk-XWBDEXDA.mjs.map +1 -0
- package/dist/chunk-Z752VE75.mjs +74 -0
- package/dist/chunk-Z752VE75.mjs.map +1 -0
- package/dist/graphql/message-conversion/index.d.ts +18 -0
- package/dist/graphql/message-conversion/index.js +725 -0
- package/dist/graphql/message-conversion/index.js.map +1 -0
- package/dist/graphql/message-conversion/index.mjs +245 -0
- package/dist/graphql/message-conversion/index.mjs.map +1 -0
- package/dist/graphql/types/base/index.d.ts +6 -0
- package/dist/graphql/types/base/index.js +63 -0
- package/dist/graphql/types/base/index.js.map +1 -0
- package/dist/graphql/types/base/index.mjs +8 -0
- package/dist/graphql/types/base/index.mjs.map +1 -0
- package/dist/graphql/types/converted/index.d.ts +2 -0
- package/dist/graphql/types/converted/index.js +294 -0
- package/dist/graphql/types/converted/index.js.map +1 -0
- package/dist/graphql/types/converted/index.mjs +20 -0
- package/dist/graphql/types/converted/index.mjs.map +1 -0
- package/dist/groq-adapter-50bc6e4a.d.ts +326 -0
- package/dist/index-adbd78f1.d.ts +154 -0
- package/dist/index.d.ts +136 -287
- package/dist/index.js +393 -287
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +385 -276
- package/dist/index.mjs.map +1 -1
- package/dist/langgraph.d.ts +284 -0
- package/dist/langgraph.js +211 -0
- package/dist/langgraph.js.map +1 -0
- package/dist/langgraph.mjs +206 -0
- package/dist/langgraph.mjs.map +1 -0
- package/dist/langserve-74a52292.d.ts +242 -0
- package/dist/lib/cloud/index.d.ts +6 -0
- package/dist/lib/cloud/index.js +18 -0
- package/dist/lib/cloud/index.js.map +1 -0
- package/dist/lib/cloud/index.mjs +1 -0
- package/dist/lib/cloud/index.mjs.map +1 -0
- package/dist/lib/index.d.ts +266 -0
- package/dist/lib/index.js +4944 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/index.mjs +74 -0
- package/dist/lib/index.mjs.map +1 -0
- package/dist/lib/integrations/index.d.ts +28 -0
- package/dist/lib/integrations/index.js +3024 -0
- package/dist/lib/integrations/index.js.map +1 -0
- package/dist/lib/integrations/index.mjs +36 -0
- package/dist/lib/integrations/index.mjs.map +1 -0
- package/dist/lib/integrations/nest/index.d.ts +16 -0
- package/dist/lib/integrations/nest/index.js +2937 -0
- package/dist/lib/integrations/nest/index.js.map +1 -0
- package/dist/lib/integrations/nest/index.mjs +13 -0
- package/dist/lib/integrations/nest/index.mjs.map +1 -0
- package/dist/lib/integrations/node-express/index.d.ts +16 -0
- package/dist/lib/integrations/node-express/index.js +2937 -0
- package/dist/lib/integrations/node-express/index.js.map +1 -0
- package/dist/lib/integrations/node-express/index.mjs +13 -0
- package/dist/lib/integrations/node-express/index.mjs.map +1 -0
- package/dist/lib/integrations/node-http/index.d.ts +16 -0
- package/dist/lib/integrations/node-http/index.js +2923 -0
- package/dist/lib/integrations/node-http/index.js.map +1 -0
- package/dist/lib/integrations/node-http/index.mjs +12 -0
- package/dist/lib/integrations/node-http/index.mjs.map +1 -0
- package/dist/service-adapters/index.d.ts +166 -0
- package/dist/service-adapters/index.js +1800 -0
- package/dist/service-adapters/index.js.map +1 -0
- package/dist/service-adapters/index.mjs +36 -0
- package/dist/service-adapters/index.mjs.map +1 -0
- package/dist/service-adapters/shared/index.d.ts +9 -0
- package/dist/service-adapters/shared/index.js +72 -0
- package/dist/service-adapters/shared/index.js.map +1 -0
- package/dist/service-adapters/shared/index.mjs +8 -0
- package/dist/service-adapters/shared/index.mjs.map +1 -0
- package/dist/shared-f6d43ef8.d.ts +446 -0
- package/dist/utils/index.d.ts +65 -0
- package/dist/utils/index.js +175 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +12 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/v2/index.d.ts +1 -0
- package/dist/v2/index.js +7 -0
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/index.mjs +1 -0
- package/dist/v2/index.mjs.map +1 -1
- package/package.json +71 -33
- package/src/graphql/message-conversion/agui-to-gql.test.ts +2 -2
- package/src/graphql/message-conversion/gql-to-agui.test.ts +30 -28
- package/src/graphql/message-conversion/roundtrip-conversion.test.ts +8 -8
- package/src/langgraph.ts +1 -0
- package/src/lib/index.ts +42 -1
- package/src/lib/integrations/nextjs/app-router.ts +3 -1
- package/src/lib/integrations/node-http/index.ts +132 -11
- package/src/lib/integrations/shared.ts +2 -2
- package/src/lib/runtime/agent-integrations/{langgraph.agent.ts → langgraph/agent.ts} +5 -30
- package/src/lib/runtime/agent-integrations/langgraph/consts.ts +34 -0
- package/src/lib/runtime/agent-integrations/langgraph/index.ts +2 -0
- package/src/lib/runtime/copilot-runtime.ts +51 -68
- package/src/lib/runtime/telemetry-agent-runner.ts +134 -0
- package/src/service-adapters/anthropic/anthropic-adapter.ts +16 -3
- package/src/service-adapters/bedrock/bedrock-adapter.ts +4 -1
- package/src/service-adapters/experimental/ollama/ollama-adapter.ts +2 -1
- package/src/service-adapters/google/google-genai-adapter.ts +9 -4
- package/src/service-adapters/groq/groq-adapter.ts +16 -3
- package/src/service-adapters/langchain/langchain-adapter.ts +5 -3
- package/src/service-adapters/langchain/langserve.ts +2 -1
- package/src/service-adapters/openai/openai-adapter.ts +17 -3
- package/src/service-adapters/openai/openai-assistant-adapter.ts +26 -11
- package/src/service-adapters/unify/unify-adapter.ts +3 -1
- package/src/v2/index.ts +1 -0
- package/tsup.config.ts +5 -2
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, RunAgentInput, EventType } from '@ag-ui/client';
|
|
2
|
+
import * as rxjs from 'rxjs';
|
|
3
|
+
import { LangGraphAgent as LangGraphAgent$1, LangGraphAgentConfig, ProcessedEvents, State, StateEnrichment, SchemaKeys } from '@ag-ui/langgraph';
|
|
4
|
+
export { LangGraphHttpAgent } from '@ag-ui/langgraph';
|
|
5
|
+
import { Message } from '@langchain/langgraph-sdk/dist/types.messages';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Constants for LangGraph integration.
|
|
9
|
+
* This file is separate from langgraph.agent.ts to avoid pulling in @ag-ui/langgraph
|
|
10
|
+
* when only these constants are needed.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
type TextMessageEvents = TextMessageStartEvent | TextMessageContentEvent | TextMessageEndEvent;
|
|
14
|
+
type ToolCallEvents = ToolCallStartEvent | ToolCallArgsEvent | ToolCallEndEvent;
|
|
15
|
+
declare enum CustomEventNames {
|
|
16
|
+
CopilotKitManuallyEmitMessage = "copilotkit_manually_emit_message",
|
|
17
|
+
CopilotKitManuallyEmitToolCall = "copilotkit_manually_emit_tool_call",
|
|
18
|
+
CopilotKitManuallyEmitIntermediateState = "copilotkit_manually_emit_intermediate_state",
|
|
19
|
+
CopilotKitExit = "copilotkit_exit"
|
|
20
|
+
}
|
|
21
|
+
interface PredictStateTool {
|
|
22
|
+
tool: string;
|
|
23
|
+
state_key: string;
|
|
24
|
+
tool_argument: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
interface CopilotKitStateEnrichment {
|
|
28
|
+
copilotkit: {
|
|
29
|
+
actions: StateEnrichment["ag-ui"]["tools"];
|
|
30
|
+
context: StateEnrichment["ag-ui"]["context"];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare class LangGraphAgent extends LangGraphAgent$1 {
|
|
35
|
+
constructor(config: LangGraphAgentConfig);
|
|
36
|
+
clone(): LangGraphAgent;
|
|
37
|
+
dispatchEvent(event: ProcessedEvents): boolean;
|
|
38
|
+
run(input: RunAgentInput): rxjs.Observable<{
|
|
39
|
+
type: EventType.TEXT_MESSAGE_START;
|
|
40
|
+
role: "developer" | "system" | "assistant" | "user";
|
|
41
|
+
messageId: string;
|
|
42
|
+
timestamp?: number | undefined;
|
|
43
|
+
rawEvent?: any;
|
|
44
|
+
} | {
|
|
45
|
+
type: EventType.TEXT_MESSAGE_CONTENT;
|
|
46
|
+
messageId: string;
|
|
47
|
+
delta: string;
|
|
48
|
+
timestamp?: number | undefined;
|
|
49
|
+
rawEvent?: any;
|
|
50
|
+
} | {
|
|
51
|
+
type: EventType.TEXT_MESSAGE_END;
|
|
52
|
+
messageId: string;
|
|
53
|
+
timestamp?: number | undefined;
|
|
54
|
+
rawEvent?: any;
|
|
55
|
+
} | {
|
|
56
|
+
type: EventType.TOOL_CALL_START;
|
|
57
|
+
toolCallId: string;
|
|
58
|
+
toolCallName: string;
|
|
59
|
+
timestamp?: number | undefined;
|
|
60
|
+
rawEvent?: any;
|
|
61
|
+
parentMessageId?: string | undefined;
|
|
62
|
+
} | {
|
|
63
|
+
type: EventType.TOOL_CALL_ARGS;
|
|
64
|
+
toolCallId: string;
|
|
65
|
+
delta: string;
|
|
66
|
+
timestamp?: number | undefined;
|
|
67
|
+
rawEvent?: any;
|
|
68
|
+
} | {
|
|
69
|
+
type: EventType.TOOL_CALL_END;
|
|
70
|
+
toolCallId: string;
|
|
71
|
+
timestamp?: number | undefined;
|
|
72
|
+
rawEvent?: any;
|
|
73
|
+
} | {
|
|
74
|
+
type: EventType.THINKING_TEXT_MESSAGE_START;
|
|
75
|
+
timestamp?: number | undefined;
|
|
76
|
+
rawEvent?: any;
|
|
77
|
+
} | {
|
|
78
|
+
type: EventType.THINKING_TEXT_MESSAGE_CONTENT;
|
|
79
|
+
delta: string;
|
|
80
|
+
timestamp?: number | undefined;
|
|
81
|
+
rawEvent?: any;
|
|
82
|
+
} | {
|
|
83
|
+
type: EventType.THINKING_TEXT_MESSAGE_END;
|
|
84
|
+
timestamp?: number | undefined;
|
|
85
|
+
rawEvent?: any;
|
|
86
|
+
} | {
|
|
87
|
+
type: EventType.TOOL_CALL_RESULT;
|
|
88
|
+
content: string;
|
|
89
|
+
toolCallId: string;
|
|
90
|
+
messageId: string;
|
|
91
|
+
role?: "tool" | undefined;
|
|
92
|
+
timestamp?: number | undefined;
|
|
93
|
+
rawEvent?: any;
|
|
94
|
+
} | {
|
|
95
|
+
type: EventType.THINKING_START;
|
|
96
|
+
timestamp?: number | undefined;
|
|
97
|
+
rawEvent?: any;
|
|
98
|
+
title?: string | undefined;
|
|
99
|
+
} | {
|
|
100
|
+
type: EventType.THINKING_END;
|
|
101
|
+
timestamp?: number | undefined;
|
|
102
|
+
rawEvent?: any;
|
|
103
|
+
} | {
|
|
104
|
+
type: EventType.STATE_SNAPSHOT;
|
|
105
|
+
timestamp?: number | undefined;
|
|
106
|
+
rawEvent?: any;
|
|
107
|
+
snapshot?: any;
|
|
108
|
+
} | {
|
|
109
|
+
type: EventType.STATE_DELTA;
|
|
110
|
+
delta: any[];
|
|
111
|
+
timestamp?: number | undefined;
|
|
112
|
+
rawEvent?: any;
|
|
113
|
+
} | {
|
|
114
|
+
type: EventType.MESSAGES_SNAPSHOT;
|
|
115
|
+
messages: ({
|
|
116
|
+
id: string;
|
|
117
|
+
role: "developer";
|
|
118
|
+
content: string;
|
|
119
|
+
name?: string | undefined;
|
|
120
|
+
} | {
|
|
121
|
+
id: string;
|
|
122
|
+
role: "system";
|
|
123
|
+
content: string;
|
|
124
|
+
name?: string | undefined;
|
|
125
|
+
} | {
|
|
126
|
+
id: string;
|
|
127
|
+
role: "assistant";
|
|
128
|
+
name?: string | undefined;
|
|
129
|
+
content?: string | undefined;
|
|
130
|
+
toolCalls?: {
|
|
131
|
+
function: {
|
|
132
|
+
name: string;
|
|
133
|
+
arguments: string;
|
|
134
|
+
};
|
|
135
|
+
type: "function";
|
|
136
|
+
id: string;
|
|
137
|
+
}[] | undefined;
|
|
138
|
+
} | {
|
|
139
|
+
id: string;
|
|
140
|
+
role: "user";
|
|
141
|
+
content: string | ({
|
|
142
|
+
type: "text";
|
|
143
|
+
text: string;
|
|
144
|
+
} | {
|
|
145
|
+
type: "binary";
|
|
146
|
+
mimeType: string;
|
|
147
|
+
id?: string | undefined;
|
|
148
|
+
url?: string | undefined;
|
|
149
|
+
data?: string | undefined;
|
|
150
|
+
filename?: string | undefined;
|
|
151
|
+
})[];
|
|
152
|
+
name?: string | undefined;
|
|
153
|
+
} | {
|
|
154
|
+
id: string;
|
|
155
|
+
role: "tool";
|
|
156
|
+
content: string;
|
|
157
|
+
toolCallId: string;
|
|
158
|
+
error?: string | undefined;
|
|
159
|
+
} | {
|
|
160
|
+
id: string;
|
|
161
|
+
role: "activity";
|
|
162
|
+
content: Record<string, any>;
|
|
163
|
+
activityType: string;
|
|
164
|
+
})[];
|
|
165
|
+
timestamp?: number | undefined;
|
|
166
|
+
rawEvent?: any;
|
|
167
|
+
} | {
|
|
168
|
+
type: EventType.RAW;
|
|
169
|
+
timestamp?: number | undefined;
|
|
170
|
+
rawEvent?: any;
|
|
171
|
+
event?: any;
|
|
172
|
+
source?: string | undefined;
|
|
173
|
+
} | {
|
|
174
|
+
name: string;
|
|
175
|
+
type: EventType.CUSTOM;
|
|
176
|
+
value?: any;
|
|
177
|
+
timestamp?: number | undefined;
|
|
178
|
+
rawEvent?: any;
|
|
179
|
+
} | {
|
|
180
|
+
type: EventType.RUN_STARTED;
|
|
181
|
+
threadId: string;
|
|
182
|
+
runId: string;
|
|
183
|
+
parentRunId?: string | undefined;
|
|
184
|
+
timestamp?: number | undefined;
|
|
185
|
+
rawEvent?: any;
|
|
186
|
+
input?: {
|
|
187
|
+
threadId: string;
|
|
188
|
+
runId: string;
|
|
189
|
+
messages: ({
|
|
190
|
+
id: string;
|
|
191
|
+
role: "developer";
|
|
192
|
+
content: string;
|
|
193
|
+
name?: string | undefined;
|
|
194
|
+
} | {
|
|
195
|
+
id: string;
|
|
196
|
+
role: "system";
|
|
197
|
+
content: string;
|
|
198
|
+
name?: string | undefined;
|
|
199
|
+
} | {
|
|
200
|
+
id: string;
|
|
201
|
+
role: "assistant";
|
|
202
|
+
name?: string | undefined;
|
|
203
|
+
content?: string | undefined;
|
|
204
|
+
toolCalls?: {
|
|
205
|
+
function: {
|
|
206
|
+
name: string;
|
|
207
|
+
arguments: string;
|
|
208
|
+
};
|
|
209
|
+
type: "function";
|
|
210
|
+
id: string;
|
|
211
|
+
}[] | undefined;
|
|
212
|
+
} | {
|
|
213
|
+
id: string;
|
|
214
|
+
role: "user";
|
|
215
|
+
content: string | ({
|
|
216
|
+
type: "text";
|
|
217
|
+
text: string;
|
|
218
|
+
} | {
|
|
219
|
+
type: "binary";
|
|
220
|
+
mimeType: string;
|
|
221
|
+
id?: string | undefined;
|
|
222
|
+
url?: string | undefined;
|
|
223
|
+
data?: string | undefined;
|
|
224
|
+
filename?: string | undefined;
|
|
225
|
+
})[];
|
|
226
|
+
name?: string | undefined;
|
|
227
|
+
} | {
|
|
228
|
+
id: string;
|
|
229
|
+
role: "tool";
|
|
230
|
+
content: string;
|
|
231
|
+
toolCallId: string;
|
|
232
|
+
error?: string | undefined;
|
|
233
|
+
} | {
|
|
234
|
+
id: string;
|
|
235
|
+
role: "activity";
|
|
236
|
+
content: Record<string, any>;
|
|
237
|
+
activityType: string;
|
|
238
|
+
})[];
|
|
239
|
+
tools: {
|
|
240
|
+
name: string;
|
|
241
|
+
description: string;
|
|
242
|
+
parameters?: any;
|
|
243
|
+
}[];
|
|
244
|
+
context: {
|
|
245
|
+
value: string;
|
|
246
|
+
description: string;
|
|
247
|
+
}[];
|
|
248
|
+
parentRunId?: string | undefined;
|
|
249
|
+
state?: any;
|
|
250
|
+
forwardedProps?: any;
|
|
251
|
+
} | undefined;
|
|
252
|
+
} | {
|
|
253
|
+
type: EventType.RUN_FINISHED;
|
|
254
|
+
threadId: string;
|
|
255
|
+
runId: string;
|
|
256
|
+
timestamp?: number | undefined;
|
|
257
|
+
rawEvent?: any;
|
|
258
|
+
result?: any;
|
|
259
|
+
} | {
|
|
260
|
+
message: string;
|
|
261
|
+
type: EventType.RUN_ERROR;
|
|
262
|
+
code?: string | undefined;
|
|
263
|
+
timestamp?: number | undefined;
|
|
264
|
+
rawEvent?: any;
|
|
265
|
+
} | {
|
|
266
|
+
type: EventType.STEP_STARTED;
|
|
267
|
+
stepName: string;
|
|
268
|
+
timestamp?: number | undefined;
|
|
269
|
+
rawEvent?: any;
|
|
270
|
+
} | {
|
|
271
|
+
type: EventType.STEP_FINISHED;
|
|
272
|
+
stepName: string;
|
|
273
|
+
timestamp?: number | undefined;
|
|
274
|
+
rawEvent?: any;
|
|
275
|
+
} | {
|
|
276
|
+
type: EventType;
|
|
277
|
+
name: string;
|
|
278
|
+
value: any;
|
|
279
|
+
}>;
|
|
280
|
+
langGraphDefaultMergeState(state: State, messages: Message[], input: RunAgentInput): State<StateEnrichment & CopilotKitStateEnrichment>;
|
|
281
|
+
getSchemaKeys(): Promise<SchemaKeys>;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export { CustomEventNames, LangGraphAgent, PredictStateTool, TextMessageEvents, ToolCallEvents };
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var rxjs = require('rxjs');
|
|
4
|
+
var langgraph = require('@ag-ui/langgraph');
|
|
5
|
+
var client = require('@ag-ui/client');
|
|
6
|
+
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
|
|
10
|
+
// src/lib/runtime/agent-integrations/langgraph/consts.ts
|
|
11
|
+
exports.CustomEventNames = void 0;
|
|
12
|
+
(function(CustomEventNames3) {
|
|
13
|
+
CustomEventNames3["CopilotKitManuallyEmitMessage"] = "copilotkit_manually_emit_message";
|
|
14
|
+
CustomEventNames3["CopilotKitManuallyEmitToolCall"] = "copilotkit_manually_emit_tool_call";
|
|
15
|
+
CustomEventNames3["CopilotKitManuallyEmitIntermediateState"] = "copilotkit_manually_emit_intermediate_state";
|
|
16
|
+
CustomEventNames3["CopilotKitExit"] = "copilotkit_exit";
|
|
17
|
+
})(exports.CustomEventNames || (exports.CustomEventNames = {}));
|
|
18
|
+
|
|
19
|
+
// src/agents/langgraph/events.ts
|
|
20
|
+
var LangGraphEventTypes;
|
|
21
|
+
(function(LangGraphEventTypes2) {
|
|
22
|
+
LangGraphEventTypes2["OnChainStart"] = "on_chain_start";
|
|
23
|
+
LangGraphEventTypes2["OnChainStream"] = "on_chain_stream";
|
|
24
|
+
LangGraphEventTypes2["OnChainEnd"] = "on_chain_end";
|
|
25
|
+
LangGraphEventTypes2["OnChatModelStart"] = "on_chat_model_start";
|
|
26
|
+
LangGraphEventTypes2["OnChatModelStream"] = "on_chat_model_stream";
|
|
27
|
+
LangGraphEventTypes2["OnChatModelEnd"] = "on_chat_model_end";
|
|
28
|
+
LangGraphEventTypes2["OnToolStart"] = "on_tool_start";
|
|
29
|
+
LangGraphEventTypes2["OnToolEnd"] = "on_tool_end";
|
|
30
|
+
LangGraphEventTypes2["OnCopilotKitStateSync"] = "on_copilotkit_state_sync";
|
|
31
|
+
LangGraphEventTypes2["OnCopilotKitEmitMessage"] = "on_copilotkit_emit_message";
|
|
32
|
+
LangGraphEventTypes2["OnCopilotKitEmitToolCall"] = "on_copilotkit_emit_tool_call";
|
|
33
|
+
LangGraphEventTypes2["OnCustomEvent"] = "on_custom_event";
|
|
34
|
+
LangGraphEventTypes2["OnInterrupt"] = "on_interrupt";
|
|
35
|
+
LangGraphEventTypes2["OnCopilotKitInterrupt"] = "on_copilotkit_interrupt";
|
|
36
|
+
LangGraphEventTypes2["OnCopilotKitError"] = "on_copilotkit_error";
|
|
37
|
+
})(LangGraphEventTypes || (LangGraphEventTypes = {}));
|
|
38
|
+
var MetaEventNames;
|
|
39
|
+
(function(MetaEventNames2) {
|
|
40
|
+
MetaEventNames2["LangGraphInterruptEvent"] = "LangGraphInterruptEvent";
|
|
41
|
+
MetaEventNames2["CopilotKitLangGraphInterruptEvent"] = "CopilotKitLangGraphInterruptEvent";
|
|
42
|
+
})(MetaEventNames || (MetaEventNames = {}));
|
|
43
|
+
var CustomEventNames2;
|
|
44
|
+
(function(CustomEventNames3) {
|
|
45
|
+
CustomEventNames3["CopilotKitManuallyEmitMessage"] = "copilotkit_manually_emit_message";
|
|
46
|
+
CustomEventNames3["CopilotKitManuallyEmitToolCall"] = "copilotkit_manually_emit_tool_call";
|
|
47
|
+
CustomEventNames3["CopilotKitManuallyEmitIntermediateState"] = "copilotkit_manually_emit_intermediate_state";
|
|
48
|
+
CustomEventNames3["CopilotKitExit"] = "copilotkit_exit";
|
|
49
|
+
})(CustomEventNames2 || (CustomEventNames2 = {}));
|
|
50
|
+
var LangGraphAgent = class extends langgraph.LangGraphAgent {
|
|
51
|
+
constructor(config) {
|
|
52
|
+
super(config);
|
|
53
|
+
}
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
clone() {
|
|
56
|
+
return new LangGraphAgent(this.config);
|
|
57
|
+
}
|
|
58
|
+
dispatchEvent(event) {
|
|
59
|
+
if (event.type === client.EventType.CUSTOM) {
|
|
60
|
+
const customEvent = event;
|
|
61
|
+
if (customEvent.name === exports.CustomEventNames.CopilotKitManuallyEmitMessage) {
|
|
62
|
+
this.subscriber.next({
|
|
63
|
+
type: client.EventType.TEXT_MESSAGE_START,
|
|
64
|
+
role: "assistant",
|
|
65
|
+
messageId: customEvent.value.message_id,
|
|
66
|
+
rawEvent: event
|
|
67
|
+
});
|
|
68
|
+
this.subscriber.next({
|
|
69
|
+
type: client.EventType.TEXT_MESSAGE_CONTENT,
|
|
70
|
+
messageId: customEvent.value.message_id,
|
|
71
|
+
delta: customEvent.value.message,
|
|
72
|
+
rawEvent: event
|
|
73
|
+
});
|
|
74
|
+
this.subscriber.next({
|
|
75
|
+
type: client.EventType.TEXT_MESSAGE_END,
|
|
76
|
+
messageId: customEvent.value.message_id,
|
|
77
|
+
rawEvent: event
|
|
78
|
+
});
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
if (customEvent.name === exports.CustomEventNames.CopilotKitManuallyEmitToolCall) {
|
|
82
|
+
this.subscriber.next({
|
|
83
|
+
type: client.EventType.TOOL_CALL_START,
|
|
84
|
+
toolCallId: customEvent.value.id,
|
|
85
|
+
toolCallName: customEvent.value.name,
|
|
86
|
+
parentMessageId: customEvent.value.id,
|
|
87
|
+
rawEvent: event
|
|
88
|
+
});
|
|
89
|
+
this.subscriber.next({
|
|
90
|
+
type: client.EventType.TOOL_CALL_ARGS,
|
|
91
|
+
toolCallId: customEvent.value.id,
|
|
92
|
+
delta: customEvent.value.args,
|
|
93
|
+
rawEvent: event
|
|
94
|
+
});
|
|
95
|
+
this.subscriber.next({
|
|
96
|
+
type: client.EventType.TOOL_CALL_END,
|
|
97
|
+
toolCallId: customEvent.value.id,
|
|
98
|
+
rawEvent: event
|
|
99
|
+
});
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
if (customEvent.name === exports.CustomEventNames.CopilotKitManuallyEmitIntermediateState) {
|
|
103
|
+
this.activeRun.manuallyEmittedState = customEvent.value;
|
|
104
|
+
this.dispatchEvent({
|
|
105
|
+
type: client.EventType.STATE_SNAPSHOT,
|
|
106
|
+
snapshot: this.getStateSnapshot({
|
|
107
|
+
values: this.activeRun.manuallyEmittedState
|
|
108
|
+
}),
|
|
109
|
+
rawEvent: event
|
|
110
|
+
});
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
if (customEvent.name === exports.CustomEventNames.CopilotKitExit) {
|
|
114
|
+
this.subscriber.next({
|
|
115
|
+
type: client.EventType.CUSTOM,
|
|
116
|
+
name: "Exit",
|
|
117
|
+
value: true
|
|
118
|
+
});
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const rawEvent = event.rawEvent;
|
|
123
|
+
if (!rawEvent) {
|
|
124
|
+
this.subscriber.next(event);
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
const isMessageEvent = event.type === client.EventType.TEXT_MESSAGE_START || event.type === client.EventType.TEXT_MESSAGE_CONTENT || event.type === client.EventType.TEXT_MESSAGE_END;
|
|
128
|
+
const isToolEvent = event.type === client.EventType.TOOL_CALL_START || event.type === client.EventType.TOOL_CALL_ARGS || event.type === client.EventType.TOOL_CALL_END;
|
|
129
|
+
if ("copilotkit:emit-tool-calls" in (rawEvent.metadata || {})) {
|
|
130
|
+
if (rawEvent.metadata["copilotkit:emit-tool-calls"] === false && isToolEvent) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if ("copilotkit:emit-messages" in (rawEvent.metadata || {})) {
|
|
135
|
+
if (rawEvent.metadata["copilotkit:emit-messages"] === false && isMessageEvent) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
this.subscriber.next(event);
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
// @ts-ignore
|
|
143
|
+
run(input) {
|
|
144
|
+
return super.run(input).pipe(rxjs.map((processedEvent) => {
|
|
145
|
+
var _a, _b, _c, _d, _e;
|
|
146
|
+
if (processedEvent.type === client.EventType.RAW) {
|
|
147
|
+
const event = processedEvent.event ?? processedEvent.rawEvent;
|
|
148
|
+
const eventType = event.event;
|
|
149
|
+
const toolCallData = (_c = (_b = (_a = event.data) == null ? void 0 : _a.chunk) == null ? void 0 : _b.tool_call_chunks) == null ? void 0 : _c[0];
|
|
150
|
+
const toolCallUsedToPredictState = (_e = (_d = event.metadata) == null ? void 0 : _d["copilotkit:emit-intermediate-state"]) == null ? void 0 : _e.some((predictStateTool) => predictStateTool.tool === (toolCallData == null ? void 0 : toolCallData.name));
|
|
151
|
+
if (eventType === LangGraphEventTypes.OnChatModelStream && toolCallUsedToPredictState) {
|
|
152
|
+
return {
|
|
153
|
+
type: client.EventType.CUSTOM,
|
|
154
|
+
name: "PredictState",
|
|
155
|
+
value: event.metadata["copilotkit:emit-intermediate-state"]
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return processedEvent;
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
langGraphDefaultMergeState(state, messages, input) {
|
|
163
|
+
const aguiMergedState = super.langGraphDefaultMergeState(state, messages, input);
|
|
164
|
+
const { tools: returnedTools, "ag-ui": agui } = aguiMergedState;
|
|
165
|
+
const rawCombinedTools = [
|
|
166
|
+
...returnedTools ?? [],
|
|
167
|
+
...(agui == null ? void 0 : agui.tools) ?? []
|
|
168
|
+
];
|
|
169
|
+
const combinedTools = Array.from(new Map(rawCombinedTools.map((t) => [
|
|
170
|
+
(t == null ? void 0 : t.id) ?? (t == null ? void 0 : t.name) ?? (t == null ? void 0 : t.key) ?? JSON.stringify(t),
|
|
171
|
+
t
|
|
172
|
+
])).values());
|
|
173
|
+
return {
|
|
174
|
+
...aguiMergedState,
|
|
175
|
+
copilotkit: {
|
|
176
|
+
actions: combinedTools,
|
|
177
|
+
context: (agui == null ? void 0 : agui.context) ?? []
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
async getSchemaKeys() {
|
|
182
|
+
const CONSTANT_KEYS = [
|
|
183
|
+
"copilotkit"
|
|
184
|
+
];
|
|
185
|
+
const schemaKeys = await super.getSchemaKeys();
|
|
186
|
+
return {
|
|
187
|
+
config: schemaKeys.config,
|
|
188
|
+
input: schemaKeys.input ? [
|
|
189
|
+
...schemaKeys.input,
|
|
190
|
+
...CONSTANT_KEYS
|
|
191
|
+
] : null,
|
|
192
|
+
output: schemaKeys.output ? [
|
|
193
|
+
...schemaKeys.output,
|
|
194
|
+
...CONSTANT_KEYS
|
|
195
|
+
] : null,
|
|
196
|
+
context: schemaKeys.context ? [
|
|
197
|
+
...schemaKeys.context,
|
|
198
|
+
...CONSTANT_KEYS
|
|
199
|
+
] : null
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
__name(LangGraphAgent, "LangGraphAgent");
|
|
204
|
+
|
|
205
|
+
Object.defineProperty(exports, 'LangGraphHttpAgent', {
|
|
206
|
+
enumerable: true,
|
|
207
|
+
get: function () { return langgraph.LangGraphHttpAgent; }
|
|
208
|
+
});
|
|
209
|
+
exports.LangGraphAgent = LangGraphAgent;
|
|
210
|
+
//# sourceMappingURL=out.js.map
|
|
211
|
+
//# sourceMappingURL=langgraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/runtime/agent-integrations/langgraph/consts.ts","../src/lib/runtime/agent-integrations/langgraph/agent.ts","../src/agents/langgraph/events.ts"],"names":["CustomEventNames","map","LangGraphEventTypes","MetaEventNames","LangGraphAgent","AGUILangGraphAgent","LangGraphHttpAgent","EventType","constructor","config","clone","dispatchEvent","event","type","CUSTOM","customEvent","name","CopilotKitManuallyEmitMessage","subscriber","next","TEXT_MESSAGE_START","role","messageId","value","message_id","rawEvent","TEXT_MESSAGE_CONTENT","delta","message","TEXT_MESSAGE_END","CopilotKitManuallyEmitToolCall","TOOL_CALL_START","toolCallId","id","toolCallName","parentMessageId","TOOL_CALL_ARGS","args","TOOL_CALL_END","CopilotKitManuallyEmitIntermediateState","activeRun","manuallyEmittedState","STATE_SNAPSHOT","snapshot","getStateSnapshot","values","CopilotKitExit","isMessageEvent","isToolEvent","metadata","run","input","pipe","processedEvent","RAW","eventType","toolCallData","data","chunk","tool_call_chunks","toolCallUsedToPredictState","some","predictStateTool","tool","OnChatModelStream","langGraphDefaultMergeState","state","messages","aguiMergedState","tools","returnedTools","agui","rawCombinedTools","combinedTools","Array","from","Map","t","key","JSON","stringify","copilotkit","actions","context","getSchemaKeys","CONSTANT_KEYS","schemaKeys","output"],"mappings":"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","sourcesContent":["/**\n * Constants for LangGraph integration.\n * This file is separate from langgraph.agent.ts to avoid pulling in @ag-ui/langgraph\n * when only these constants are needed.\n */\n\nimport {\n TextMessageStartEvent,\n TextMessageContentEvent,\n TextMessageEndEvent,\n ToolCallStartEvent,\n ToolCallArgsEvent,\n ToolCallEndEvent,\n} from \"@ag-ui/client\";\n\nexport type TextMessageEvents =\n | TextMessageStartEvent\n | TextMessageContentEvent\n | TextMessageEndEvent;\n\nexport type ToolCallEvents = ToolCallStartEvent | ToolCallArgsEvent | ToolCallEndEvent;\n\nexport enum CustomEventNames {\n CopilotKitManuallyEmitMessage = \"copilotkit_manually_emit_message\",\n CopilotKitManuallyEmitToolCall = \"copilotkit_manually_emit_tool_call\",\n CopilotKitManuallyEmitIntermediateState = \"copilotkit_manually_emit_intermediate_state\",\n CopilotKitExit = \"copilotkit_exit\",\n}\n\nexport interface PredictStateTool {\n tool: string;\n state_key: string;\n tool_argument: string;\n}\n","import { map } from \"rxjs\";\nimport { LangGraphEventTypes } from \"../../../../agents/langgraph/events\";\nimport { RawEvent } from \"@ag-ui/core\";\nimport {\n LangGraphAgent as AGUILangGraphAgent,\n LangGraphHttpAgent,\n type LangGraphAgentConfig,\n ProcessedEvents,\n SchemaKeys,\n type State,\n StateEnrichment,\n} from \"@ag-ui/langgraph\";\nimport { Message as LangGraphMessage } from \"@langchain/langgraph-sdk/dist/types.messages\";\nimport { ThreadState } from \"@langchain/langgraph-sdk\";\n\ninterface CopilotKitStateEnrichment {\n copilotkit: {\n actions: StateEnrichment[\"ag-ui\"][\"tools\"];\n context: StateEnrichment[\"ag-ui\"][\"context\"];\n };\n}\n\nimport { RunAgentInput, EventType, CustomEvent } from \"@ag-ui/client\";\n\n// Import and re-export from separate file to maintain API compatibility\nimport { CustomEventNames, TextMessageEvents, ToolCallEvents, PredictStateTool } from \"./consts\";\nexport { CustomEventNames };\n\nexport class LangGraphAgent extends AGUILangGraphAgent {\n constructor(config: LangGraphAgentConfig) {\n super(config);\n }\n\n // @ts-ignore\n public clone() {\n return new LangGraphAgent(this.config);\n }\n\n dispatchEvent(event: ProcessedEvents) {\n if (event.type === EventType.CUSTOM) {\n // const event = processedEvent as unknown as CustomEvent;\n const customEvent = event as unknown as CustomEvent;\n\n if (customEvent.name === CustomEventNames.CopilotKitManuallyEmitMessage) {\n this.subscriber.next({\n type: EventType.TEXT_MESSAGE_START,\n role: \"assistant\",\n messageId: customEvent.value.message_id,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TEXT_MESSAGE_CONTENT,\n messageId: customEvent.value.message_id,\n delta: customEvent.value.message,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TEXT_MESSAGE_END,\n messageId: customEvent.value.message_id,\n rawEvent: event,\n });\n return true;\n }\n\n if (customEvent.name === CustomEventNames.CopilotKitManuallyEmitToolCall) {\n this.subscriber.next({\n type: EventType.TOOL_CALL_START,\n toolCallId: customEvent.value.id,\n toolCallName: customEvent.value.name,\n parentMessageId: customEvent.value.id,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TOOL_CALL_ARGS,\n toolCallId: customEvent.value.id,\n delta: customEvent.value.args,\n rawEvent: event,\n });\n this.subscriber.next({\n type: EventType.TOOL_CALL_END,\n toolCallId: customEvent.value.id,\n rawEvent: event,\n });\n return true;\n }\n\n if (customEvent.name === CustomEventNames.CopilotKitManuallyEmitIntermediateState) {\n this.activeRun.manuallyEmittedState = customEvent.value;\n this.dispatchEvent({\n type: EventType.STATE_SNAPSHOT,\n snapshot: this.getStateSnapshot({\n values: this.activeRun.manuallyEmittedState,\n } as ThreadState<State>),\n rawEvent: event,\n });\n return true;\n }\n\n if (customEvent.name === CustomEventNames.CopilotKitExit) {\n this.subscriber.next({\n type: EventType.CUSTOM,\n name: \"Exit\",\n value: true,\n });\n return true;\n }\n }\n\n // Intercept all text message and tool call events and check if should disable\n const rawEvent = (event as ToolCallEvents | TextMessageEvents).rawEvent;\n if (!rawEvent) {\n this.subscriber.next(event);\n return true;\n }\n\n const isMessageEvent =\n event.type === EventType.TEXT_MESSAGE_START ||\n event.type === EventType.TEXT_MESSAGE_CONTENT ||\n event.type === EventType.TEXT_MESSAGE_END;\n const isToolEvent =\n event.type === EventType.TOOL_CALL_START ||\n event.type === EventType.TOOL_CALL_ARGS ||\n event.type === EventType.TOOL_CALL_END;\n if (\"copilotkit:emit-tool-calls\" in (rawEvent.metadata || {})) {\n if (rawEvent.metadata[\"copilotkit:emit-tool-calls\"] === false && isToolEvent) {\n return false;\n }\n }\n if (\"copilotkit:emit-messages\" in (rawEvent.metadata || {})) {\n if (rawEvent.metadata[\"copilotkit:emit-messages\"] === false && isMessageEvent) {\n return false;\n }\n }\n\n this.subscriber.next(event);\n return true;\n }\n\n // @ts-ignore\n run(input: RunAgentInput) {\n return super.run(input).pipe(\n map((processedEvent) => {\n // Turn raw event into emit state snapshot from tool call event\n if (processedEvent.type === EventType.RAW) {\n // Get the LangGraph event from the AGUI event.\n const event = (processedEvent as RawEvent).event ?? (processedEvent as RawEvent).rawEvent;\n\n const eventType = event.event;\n const toolCallData = event.data?.chunk?.tool_call_chunks?.[0];\n const toolCallUsedToPredictState = event.metadata?.[\n \"copilotkit:emit-intermediate-state\"\n ]?.some(\n (predictStateTool: PredictStateTool) => predictStateTool.tool === toolCallData?.name,\n );\n\n if (eventType === LangGraphEventTypes.OnChatModelStream && toolCallUsedToPredictState) {\n return {\n type: EventType.CUSTOM,\n name: \"PredictState\",\n value: event.metadata[\"copilotkit:emit-intermediate-state\"],\n };\n }\n }\n\n return processedEvent;\n }),\n );\n }\n\n langGraphDefaultMergeState(\n state: State,\n messages: LangGraphMessage[],\n input: RunAgentInput,\n ): State<StateEnrichment & CopilotKitStateEnrichment> {\n const aguiMergedState = super.langGraphDefaultMergeState(state, messages, input);\n const { tools: returnedTools, \"ag-ui\": agui } = aguiMergedState;\n // tolerate undefined and de-duplicate by stable key (id | name | key)\n const rawCombinedTools = [\n ...((returnedTools as any[]) ?? []),\n ...((agui?.tools as any[]) ?? []),\n ];\n const combinedTools = Array.from(\n new Map(\n rawCombinedTools.map((t: any) => [t?.id ?? t?.name ?? t?.key ?? JSON.stringify(t), t]),\n ).values(),\n );\n\n return {\n ...aguiMergedState,\n copilotkit: {\n actions: combinedTools,\n context: agui?.context ?? [],\n },\n };\n }\n\n async getSchemaKeys(): Promise<SchemaKeys> {\n const CONSTANT_KEYS = [\"copilotkit\"];\n const schemaKeys = await super.getSchemaKeys();\n return {\n config: schemaKeys.config,\n input: schemaKeys.input ? [...schemaKeys.input, ...CONSTANT_KEYS] : null,\n output: schemaKeys.output ? [...schemaKeys.output, ...CONSTANT_KEYS] : null,\n context: schemaKeys.context ? [...schemaKeys.context, ...CONSTANT_KEYS] : null,\n };\n }\n}\n\nexport { LangGraphHttpAgent };\n","import { ActionExecutionMessage, ResultMessage, TextMessage } from \"../../graphql/types/converted\";\n\nexport enum LangGraphEventTypes {\n OnChainStart = \"on_chain_start\",\n OnChainStream = \"on_chain_stream\",\n OnChainEnd = \"on_chain_end\",\n OnChatModelStart = \"on_chat_model_start\",\n OnChatModelStream = \"on_chat_model_stream\",\n OnChatModelEnd = \"on_chat_model_end\",\n OnToolStart = \"on_tool_start\",\n OnToolEnd = \"on_tool_end\",\n OnCopilotKitStateSync = \"on_copilotkit_state_sync\",\n OnCopilotKitEmitMessage = \"on_copilotkit_emit_message\",\n OnCopilotKitEmitToolCall = \"on_copilotkit_emit_tool_call\",\n OnCustomEvent = \"on_custom_event\",\n OnInterrupt = \"on_interrupt\",\n OnCopilotKitInterrupt = \"on_copilotkit_interrupt\",\n OnCopilotKitError = \"on_copilotkit_error\",\n}\n\nexport enum MetaEventNames {\n LangGraphInterruptEvent = \"LangGraphInterruptEvent\",\n CopilotKitLangGraphInterruptEvent = \"CopilotKitLangGraphInterruptEvent\",\n}\n\nexport enum CustomEventNames {\n CopilotKitManuallyEmitMessage = \"copilotkit_manually_emit_message\",\n CopilotKitManuallyEmitToolCall = \"copilotkit_manually_emit_tool_call\",\n CopilotKitManuallyEmitIntermediateState = \"copilotkit_manually_emit_intermediate_state\",\n CopilotKitExit = \"copilotkit_exit\",\n}\n\ntype LangGraphOnCopilotKitStateSyncEvent = {\n event: LangGraphEventTypes.OnCopilotKitStateSync;\n thread_id: string;\n agent_name: string;\n node_name: string;\n run_id: string;\n active: boolean;\n role: string;\n state: any;\n running: boolean;\n};\n\ntype LangGraphOnChainStartEvent = {\n event: LangGraphEventTypes.OnChainStart;\n run_id: string;\n name: string;\n tags: string[];\n metadata: { thread_id: string };\n data: {\n input: any;\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnChainEndEvent = {\n event: LangGraphEventTypes.OnChainEnd;\n name: string;\n run_id: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step: number;\n langgraph_node: string;\n langgraph_triggers: string[];\n langgraph_task_idx: number;\n thread_ts: string;\n };\n data: {\n input: any;\n output: any;\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnChatModelStartEvent = {\n event: LangGraphEventTypes.OnChatModelStart;\n name: string;\n run_id: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step: number;\n langgraph_node: string;\n langgraph_triggers: string[];\n langgraph_task_idx: number;\n thread_ts: string;\n ls_provider: string;\n ls_model_name: string;\n ls_model_type: string;\n ls_temperature: number;\n };\n data: {\n input: {\n messages: {\n lc: number;\n type: string;\n id: string[];\n kwargs: {\n content: string;\n type: string;\n id: string;\n };\n }[][];\n };\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnChatModelStreamEvent = {\n event: LangGraphEventTypes.OnChatModelStream;\n name: string;\n run_id: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step: number;\n langgraph_node: string;\n langgraph_triggers: string[];\n langgraph_task_idx: number;\n thread_ts: string;\n ls_provider: string;\n ls_model_name: string;\n ls_model_type: string;\n ls_temperature: number;\n };\n data: {\n chunk: {\n lc: number;\n type: string;\n id: string;\n kwargs: {\n content: string | { text: string; type: string; index: number }[];\n additional_kwargs: {\n tool_calls: {\n index: number;\n id: string;\n function: { arguments: string; name: string };\n type: string;\n }[];\n };\n type: string;\n id: string;\n tool_calls: { name: string; args: {}; id: string; type: string }[];\n tool_call_chunks: {\n name: string;\n args: string;\n id: string;\n index: number;\n type: string;\n }[];\n invalid_tool_calls: any[];\n };\n };\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnChatModelEndEvent = {\n event: LangGraphEventTypes.OnChatModelEnd;\n name: string;\n run_id: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step: number;\n langgraph_node: string;\n langgraph_triggers: string[];\n langgraph_task_idx: number;\n thread_ts: string;\n ls_provider: string;\n ls_model_name: string;\n ls_model_type: string;\n ls_temperature: number;\n };\n data: {\n input: any;\n output: {\n generations: {\n text: string;\n generation_info: {\n finish_reason: string;\n model_name: string;\n system_fingerprint: string;\n };\n type: string;\n message: {\n lc: number;\n type: string;\n id: string[];\n kwargs: {\n content: string;\n additional_kwargs: {\n tool_calls: {\n index: number;\n id: string;\n function: { arguments: string; name: string };\n type: string;\n }[];\n };\n response_metadata: {\n finish_reason: string;\n model_name: string;\n system_fingerprint: string;\n };\n type: string;\n id: string;\n tool_calls: { name: string; args: { query: string }; id: string; type: string }[];\n invalid_tool_calls: any[];\n };\n };\n }[][];\n llm_output: any;\n run: any;\n };\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnChainStreamEvent = {\n event: LangGraphEventTypes.OnChainStream;\n name: string;\n run_id: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step?: number;\n langgraph_node?: string;\n langgraph_triggers?: string[];\n langgraph_task_idx?: number;\n thread_ts?: string;\n };\n data: {\n chunk: {\n messages: {\n lc: number;\n type: string;\n id: string[];\n kwargs: {\n content: string;\n additional_kwargs?: {\n tool_calls?: {\n index: number;\n id: string;\n function: { arguments: string; name: string };\n type: string;\n }[];\n };\n response_metadata?: {\n finish_reason: string;\n model_name: string;\n system_fingerprint: string;\n };\n type: string;\n id: string;\n tool_calls?: { name: string; args: { query: string }; id: string; type: string }[];\n invalid_tool_calls?: any[];\n };\n }[];\n };\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnToolStartEvent = {\n event: LangGraphEventTypes.OnToolStart;\n name: string;\n run_id: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step: number;\n langgraph_node: string;\n langgraph_triggers: string[];\n langgraph_task_idx: number;\n thread_ts: string;\n };\n data: {\n input: {\n query: string;\n };\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnToolEndEvent = {\n event: LangGraphEventTypes.OnToolEnd;\n name: string;\n run_id: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step: number;\n langgraph_node: string;\n langgraph_triggers: string[];\n langgraph_task_idx: number;\n thread_ts: string;\n };\n data: {\n input: {\n query: string;\n };\n output: {\n lc: number;\n type: string;\n id: string[];\n kwargs: {\n content: string[];\n type: string;\n name: string;\n tool_call_id: string;\n status: string;\n };\n };\n };\n parent_ids: string[];\n};\n\ntype LangGraphOnCustomEvent = {\n event: LangGraphEventTypes.OnCustomEvent;\n run_id: string;\n name: string;\n tags: string[];\n metadata: {\n thread_id: string;\n langgraph_step: number;\n langgraph_node: string;\n langgraph_triggers: string[];\n langgraph_path: [string, string];\n langgraph_checkpoint_ns: string;\n checkpoint_ns: string;\n };\n data: any;\n parent_ids: string[];\n};\n\ninterface LangGraphInterruptEvent {\n event: LangGraphEventTypes.OnInterrupt;\n value: string;\n}\n\ninterface CopilotKitLangGraphInterruptEvent {\n event: LangGraphEventTypes.OnCopilotKitInterrupt;\n data: { value: string; messages: (TextMessage | ActionExecutionMessage | ResultMessage)[] };\n}\n\ninterface CopilotKitLangGraphErrorEvent {\n event: LangGraphEventTypes.OnCopilotKitError;\n data: {\n error: {\n message: string;\n type: string;\n agent_name: string;\n status_code?: number;\n response_data?: any;\n };\n thread_id: string;\n agent_name: string;\n node_name: string;\n };\n}\n\nexport type LangGraphEvent =\n | LangGraphOnChainStartEvent\n | LangGraphOnChainStreamEvent\n | LangGraphOnChainEndEvent\n | LangGraphOnChatModelStartEvent\n | LangGraphOnChatModelStreamEvent\n | LangGraphOnChatModelEndEvent\n | LangGraphOnToolStartEvent\n | LangGraphOnToolEndEvent\n | LangGraphOnCopilotKitStateSyncEvent\n | LangGraphOnCustomEvent\n | LangGraphInterruptEvent\n | CopilotKitLangGraphInterruptEvent\n | CopilotKitLangGraphErrorEvent;\n"]}
|