@ag-ui/client 0.0.30 → 0.0.32
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/dist/index.d.mts +187 -76
- package/dist/index.d.ts +187 -76
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,83 +1,55 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Message, State, RunAgentInput, BaseEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, RawEvent, CustomEvent, ToolCall } from '@ag-ui/core';
|
|
2
2
|
export * from '@ag-ui/core';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
interface HttpDataEvent {
|
|
15
|
-
type: HttpEventType.DATA;
|
|
16
|
-
data?: Uint8Array;
|
|
6
|
+
interface AgentConfig {
|
|
7
|
+
agentId?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
threadId?: string;
|
|
10
|
+
initialMessages?: Message[];
|
|
11
|
+
initialState?: State;
|
|
12
|
+
debug?: boolean;
|
|
17
13
|
}
|
|
18
|
-
interface
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
headers: Headers;
|
|
14
|
+
interface HttpAgentConfig extends AgentConfig {
|
|
15
|
+
url: string;
|
|
16
|
+
headers?: Record<string, string>;
|
|
22
17
|
}
|
|
23
|
-
type
|
|
24
|
-
declare const runHttpRequest: (url: string, requestInit: RequestInit) => Observable<HttpEvent>;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Transforms HTTP events into BaseEvents using the appropriate format parser based on content type.
|
|
28
|
-
*/
|
|
29
|
-
declare const transformHttpEventStream: (source$: Observable<HttpEvent>) => Observable<BaseEvent>;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Parses a stream of HTTP events into a stream of JSON objects using Server-Sent Events (SSE) format.
|
|
33
|
-
* Strictly follows the SSE standard where:
|
|
34
|
-
* - Events are separated by double newlines ('\n\n')
|
|
35
|
-
* - Only 'data:' prefixed lines are processed
|
|
36
|
-
* - Multi-line data events are supported and joined
|
|
37
|
-
* - Non-data fields (event, id, retry) are ignored
|
|
38
|
-
*/
|
|
39
|
-
declare const parseSSEStream: (source$: Observable<HttpEvent>) => Observable<any>;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Parses a stream of HTTP events into a stream of BaseEvent objects using Protocol Buffer format.
|
|
43
|
-
* Each message is prefixed with a 4-byte length header (uint32 in big-endian format)
|
|
44
|
-
* followed by the protocol buffer encoded message.
|
|
45
|
-
*/
|
|
46
|
-
declare const parseProtoStream: (source$: Observable<HttpEvent>) => Observable<BaseEvent>;
|
|
18
|
+
type RunAgentParameters = Partial<Pick<RunAgentInput, "runId" | "tools" | "context" | "forwardedProps">>;
|
|
47
19
|
|
|
48
20
|
declare const LegacyRuntimeProtocolEvent: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
49
21
|
type: z.ZodLiteral<"TextMessageStart">;
|
|
50
22
|
messageId: z.ZodString;
|
|
51
23
|
parentMessageId: z.ZodOptional<z.ZodString>;
|
|
52
24
|
}, "strip", z.ZodTypeAny, {
|
|
53
|
-
messageId: string;
|
|
54
25
|
type: "TextMessageStart";
|
|
26
|
+
messageId: string;
|
|
55
27
|
parentMessageId?: string | undefined;
|
|
56
28
|
}, {
|
|
57
|
-
messageId: string;
|
|
58
29
|
type: "TextMessageStart";
|
|
30
|
+
messageId: string;
|
|
59
31
|
parentMessageId?: string | undefined;
|
|
60
32
|
}>, z.ZodObject<{
|
|
61
33
|
type: z.ZodLiteral<"TextMessageContent">;
|
|
62
34
|
messageId: z.ZodString;
|
|
63
35
|
content: z.ZodString;
|
|
64
36
|
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
type: "TextMessageContent";
|
|
65
38
|
messageId: string;
|
|
66
39
|
content: string;
|
|
67
|
-
type: "TextMessageContent";
|
|
68
40
|
}, {
|
|
41
|
+
type: "TextMessageContent";
|
|
69
42
|
messageId: string;
|
|
70
43
|
content: string;
|
|
71
|
-
type: "TextMessageContent";
|
|
72
44
|
}>, z.ZodObject<{
|
|
73
45
|
type: z.ZodLiteral<"TextMessageEnd">;
|
|
74
46
|
messageId: z.ZodString;
|
|
75
47
|
}, "strip", z.ZodTypeAny, {
|
|
76
|
-
messageId: string;
|
|
77
48
|
type: "TextMessageEnd";
|
|
78
|
-
}, {
|
|
79
49
|
messageId: string;
|
|
50
|
+
}, {
|
|
80
51
|
type: "TextMessageEnd";
|
|
52
|
+
messageId: string;
|
|
81
53
|
}>, z.ZodObject<{
|
|
82
54
|
type: z.ZodLiteral<"ActionExecutionStart">;
|
|
83
55
|
actionExecutionId: z.ZodString;
|
|
@@ -141,55 +113,43 @@ declare const LegacyRuntimeProtocolEvent: z.ZodDiscriminatedUnion<"type", [z.Zod
|
|
|
141
113
|
running: z.ZodBoolean;
|
|
142
114
|
}, "strip", z.ZodTypeAny, {
|
|
143
115
|
role: string;
|
|
144
|
-
|
|
116
|
+
runId: string;
|
|
145
117
|
threadId: string;
|
|
118
|
+
state: string;
|
|
119
|
+
type: "AgentStateMessage";
|
|
146
120
|
agentName: string;
|
|
147
121
|
nodeName: string;
|
|
148
|
-
runId: string;
|
|
149
122
|
active: boolean;
|
|
150
|
-
state: string;
|
|
151
123
|
running: boolean;
|
|
152
124
|
}, {
|
|
153
125
|
role: string;
|
|
154
|
-
|
|
126
|
+
runId: string;
|
|
155
127
|
threadId: string;
|
|
128
|
+
state: string;
|
|
129
|
+
type: "AgentStateMessage";
|
|
156
130
|
agentName: string;
|
|
157
131
|
nodeName: string;
|
|
158
|
-
runId: string;
|
|
159
132
|
active: boolean;
|
|
160
|
-
state: string;
|
|
161
133
|
running: boolean;
|
|
162
134
|
}>, z.ZodObject<{
|
|
163
135
|
type: z.ZodLiteral<"MetaEvent">;
|
|
164
136
|
name: z.ZodEnum<["LangGraphInterruptEvent", "PredictState", "Exit"]>;
|
|
165
137
|
value: z.ZodAny;
|
|
166
138
|
}, "strip", z.ZodTypeAny, {
|
|
167
|
-
name: "PredictState" | "LangGraphInterruptEvent" | "Exit";
|
|
168
139
|
type: "MetaEvent";
|
|
140
|
+
name: "LangGraphInterruptEvent" | "PredictState" | "Exit";
|
|
169
141
|
value?: any;
|
|
170
142
|
}, {
|
|
171
|
-
name: "PredictState" | "LangGraphInterruptEvent" | "Exit";
|
|
172
143
|
type: "MetaEvent";
|
|
144
|
+
name: "LangGraphInterruptEvent" | "PredictState" | "Exit";
|
|
173
145
|
value?: any;
|
|
174
146
|
}>]>;
|
|
175
147
|
type LegacyRuntimeProtocolEvent = z.infer<typeof LegacyRuntimeProtocolEvent>;
|
|
176
148
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
agentId?: string;
|
|
181
|
-
description?: string;
|
|
182
|
-
threadId?: string;
|
|
183
|
-
initialMessages?: Message[];
|
|
184
|
-
initialState?: State;
|
|
185
|
-
debug?: boolean;
|
|
186
|
-
}
|
|
187
|
-
interface HttpAgentConfig extends AgentConfig {
|
|
188
|
-
url: string;
|
|
189
|
-
headers?: Record<string, string>;
|
|
149
|
+
interface RunAgentResult {
|
|
150
|
+
result: any;
|
|
151
|
+
newMessages: Message[];
|
|
190
152
|
}
|
|
191
|
-
type RunAgentParameters = Partial<Pick<RunAgentInput, "runId" | "tools" | "context" | "forwardedProps">>;
|
|
192
|
-
|
|
193
153
|
declare abstract class AbstractAgent {
|
|
194
154
|
agentId?: string;
|
|
195
155
|
description: string;
|
|
@@ -197,19 +157,170 @@ declare abstract class AbstractAgent {
|
|
|
197
157
|
messages: Message[];
|
|
198
158
|
state: State;
|
|
199
159
|
debug: boolean;
|
|
160
|
+
subscribers: AgentSubscriber[];
|
|
200
161
|
constructor({ agentId, description, threadId, initialMessages, initialState, debug, }?: AgentConfig);
|
|
201
|
-
|
|
202
|
-
|
|
162
|
+
subscribe(subscriber: AgentSubscriber): {
|
|
163
|
+
unsubscribe: () => void;
|
|
164
|
+
};
|
|
165
|
+
protected abstract run(input: RunAgentInput): Observable<BaseEvent>;
|
|
166
|
+
runAgent(parameters?: RunAgentParameters, subscriber?: AgentSubscriber): Promise<RunAgentResult>;
|
|
203
167
|
abortRun(): void;
|
|
204
|
-
protected apply(
|
|
205
|
-
protected processApplyEvents(input: RunAgentInput, events$:
|
|
168
|
+
protected apply(input: RunAgentInput, events$: Observable<BaseEvent>, subscribers: AgentSubscriber[]): Observable<AgentStateMutation>;
|
|
169
|
+
protected processApplyEvents(input: RunAgentInput, events$: Observable<AgentStateMutation>, subscribers: AgentSubscriber[]): Observable<AgentStateMutation>;
|
|
206
170
|
protected prepareRunAgentInput(parameters?: RunAgentParameters): RunAgentInput;
|
|
207
|
-
protected
|
|
208
|
-
protected
|
|
171
|
+
protected onInitialize(input: RunAgentInput, subscribers: AgentSubscriber[]): Promise<void>;
|
|
172
|
+
protected onError(input: RunAgentInput, error: Error, subscribers: AgentSubscriber[]): Observable<AgentStateMutation>;
|
|
173
|
+
protected onFinalize(input: RunAgentInput, subscribers: AgentSubscriber[]): Promise<void>;
|
|
209
174
|
clone(): any;
|
|
175
|
+
addMessage(message: Message): void;
|
|
176
|
+
addMessages(messages: Message[]): void;
|
|
177
|
+
setMessages(messages: Message[]): void;
|
|
178
|
+
setState(state: State): void;
|
|
210
179
|
legacy_to_be_removed_runAgentBridged(config?: RunAgentParameters): Observable<LegacyRuntimeProtocolEvent>;
|
|
211
180
|
}
|
|
212
181
|
|
|
182
|
+
interface AgentStateMutation {
|
|
183
|
+
messages?: Message[];
|
|
184
|
+
state?: State;
|
|
185
|
+
stopPropagation?: boolean;
|
|
186
|
+
}
|
|
187
|
+
interface AgentSubscriberParams {
|
|
188
|
+
messages: Message[];
|
|
189
|
+
state: State;
|
|
190
|
+
agent: AbstractAgent;
|
|
191
|
+
input: RunAgentInput;
|
|
192
|
+
}
|
|
193
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
194
|
+
interface AgentSubscriber {
|
|
195
|
+
onRunInitialized?(params: AgentSubscriberParams): MaybePromise<Omit<AgentStateMutation, "stopPropagation"> | void>;
|
|
196
|
+
onRunFailed?(params: {
|
|
197
|
+
error: Error;
|
|
198
|
+
} & AgentSubscriberParams): MaybePromise<Omit<AgentStateMutation, "stopPropagation"> | void>;
|
|
199
|
+
onRunFinalized?(params: AgentSubscriberParams): MaybePromise<Omit<AgentStateMutation, "stopPropagation"> | void>;
|
|
200
|
+
onEvent?(params: {
|
|
201
|
+
event: BaseEvent;
|
|
202
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
203
|
+
onRunStartedEvent?(params: {
|
|
204
|
+
event: RunStartedEvent;
|
|
205
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
206
|
+
onRunFinishedEvent?(params: {
|
|
207
|
+
event: RunFinishedEvent;
|
|
208
|
+
result?: any;
|
|
209
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
210
|
+
onRunErrorEvent?(params: {
|
|
211
|
+
event: RunErrorEvent;
|
|
212
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
213
|
+
onStepStartedEvent?(params: {
|
|
214
|
+
event: StepStartedEvent;
|
|
215
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
216
|
+
onStepFinishedEvent?(params: {
|
|
217
|
+
event: StepFinishedEvent;
|
|
218
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
219
|
+
onTextMessageStartEvent?(params: {
|
|
220
|
+
event: TextMessageStartEvent;
|
|
221
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
222
|
+
onTextMessageContentEvent?(params: {
|
|
223
|
+
event: TextMessageContentEvent;
|
|
224
|
+
textMessageBuffer: string;
|
|
225
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
226
|
+
onTextMessageEndEvent?(params: {
|
|
227
|
+
event: TextMessageEndEvent;
|
|
228
|
+
textMessageBuffer: string;
|
|
229
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
230
|
+
onToolCallStartEvent?(params: {
|
|
231
|
+
event: ToolCallStartEvent;
|
|
232
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
233
|
+
onToolCallArgsEvent?(params: {
|
|
234
|
+
event: ToolCallArgsEvent;
|
|
235
|
+
toolCallBuffer: string;
|
|
236
|
+
toolCallName: string;
|
|
237
|
+
partialToolCallArgs: Record<string, any>;
|
|
238
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
239
|
+
onToolCallEndEvent?(params: {
|
|
240
|
+
event: ToolCallEndEvent;
|
|
241
|
+
toolCallName: string;
|
|
242
|
+
toolCallArgs: Record<string, any>;
|
|
243
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
244
|
+
onToolCallResultEvent?(params: {
|
|
245
|
+
event: ToolCallResultEvent;
|
|
246
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
247
|
+
onStateSnapshotEvent?(params: {
|
|
248
|
+
event: StateSnapshotEvent;
|
|
249
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
250
|
+
onStateDeltaEvent?(params: {
|
|
251
|
+
event: StateDeltaEvent;
|
|
252
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
253
|
+
onMessagesSnapshotEvent?(params: {
|
|
254
|
+
event: MessagesSnapshotEvent;
|
|
255
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
256
|
+
onRawEvent?(params: {
|
|
257
|
+
event: RawEvent;
|
|
258
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
259
|
+
onCustomEvent?(params: {
|
|
260
|
+
event: CustomEvent;
|
|
261
|
+
} & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
|
|
262
|
+
onMessagesChanged?(params: Omit<AgentSubscriberParams, "input"> & {
|
|
263
|
+
input?: RunAgentInput;
|
|
264
|
+
}): MaybePromise<void>;
|
|
265
|
+
onStateChanged?(params: Omit<AgentSubscriberParams, "input"> & {
|
|
266
|
+
input?: RunAgentInput;
|
|
267
|
+
}): MaybePromise<void>;
|
|
268
|
+
onNewMessage?(params: {
|
|
269
|
+
message: Message;
|
|
270
|
+
} & Omit<AgentSubscriberParams, "input"> & {
|
|
271
|
+
input?: RunAgentInput;
|
|
272
|
+
}): MaybePromise<void>;
|
|
273
|
+
onNewToolCall?(params: {
|
|
274
|
+
toolCall: ToolCall;
|
|
275
|
+
} & Omit<AgentSubscriberParams, "input"> & {
|
|
276
|
+
input?: RunAgentInput;
|
|
277
|
+
}): MaybePromise<void>;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
declare const defaultApplyEvents: (input: RunAgentInput, events$: Observable<BaseEvent>, agent: AbstractAgent, subscribers: AgentSubscriber[]) => Observable<AgentStateMutation>;
|
|
281
|
+
|
|
282
|
+
declare const verifyEvents: (debug: boolean) => (source$: Observable<BaseEvent>) => Observable<BaseEvent>;
|
|
283
|
+
|
|
284
|
+
declare enum HttpEventType {
|
|
285
|
+
HEADERS = "headers",
|
|
286
|
+
DATA = "data"
|
|
287
|
+
}
|
|
288
|
+
interface HttpDataEvent {
|
|
289
|
+
type: HttpEventType.DATA;
|
|
290
|
+
data?: Uint8Array;
|
|
291
|
+
}
|
|
292
|
+
interface HttpHeadersEvent {
|
|
293
|
+
type: HttpEventType.HEADERS;
|
|
294
|
+
status: number;
|
|
295
|
+
headers: Headers;
|
|
296
|
+
}
|
|
297
|
+
type HttpEvent = HttpDataEvent | HttpHeadersEvent;
|
|
298
|
+
declare const runHttpRequest: (url: string, requestInit: RequestInit) => Observable<HttpEvent>;
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Transforms HTTP events into BaseEvents using the appropriate format parser based on content type.
|
|
302
|
+
*/
|
|
303
|
+
declare const transformHttpEventStream: (source$: Observable<HttpEvent>) => Observable<BaseEvent>;
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Parses a stream of HTTP events into a stream of JSON objects using Server-Sent Events (SSE) format.
|
|
307
|
+
* Strictly follows the SSE standard where:
|
|
308
|
+
* - Events are separated by double newlines ('\n\n')
|
|
309
|
+
* - Only 'data:' prefixed lines are processed
|
|
310
|
+
* - Multi-line data events are supported and joined
|
|
311
|
+
* - Non-data fields (event, id, retry) are ignored
|
|
312
|
+
*/
|
|
313
|
+
declare const parseSSEStream: (source$: Observable<HttpEvent>) => Observable<any>;
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Parses a stream of HTTP events into a stream of BaseEvent objects using Protocol Buffer format.
|
|
317
|
+
* Each message is prefixed with a 4-byte length header (uint32 in big-endian format)
|
|
318
|
+
* followed by the protocol buffer encoded message.
|
|
319
|
+
*/
|
|
320
|
+
declare const parseProtoStream: (source$: Observable<HttpEvent>) => Observable<BaseEvent>;
|
|
321
|
+
|
|
322
|
+
declare const convertToLegacyEvents: (threadId: string, runId: string, agentName: string) => (events$: Observable<BaseEvent>) => Observable<LegacyRuntimeProtocolEvent>;
|
|
323
|
+
|
|
213
324
|
interface RunHttpAgentConfig extends RunAgentParameters {
|
|
214
325
|
abortController?: AbortController;
|
|
215
326
|
}
|
|
@@ -224,7 +335,7 @@ declare class HttpAgent extends AbstractAgent {
|
|
|
224
335
|
* @returns The fetch config for the http request.
|
|
225
336
|
*/
|
|
226
337
|
protected requestInit(input: RunAgentInput): RequestInit;
|
|
227
|
-
runAgent(parameters?: RunHttpAgentConfig): Promise<
|
|
338
|
+
runAgent(parameters?: RunHttpAgentConfig): Promise<RunAgentResult>;
|
|
228
339
|
abortRun(): void;
|
|
229
340
|
constructor(config: HttpAgentConfig);
|
|
230
341
|
run(input: RunAgentInput): Observable<BaseEvent>;
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
Current state: ${JSON.stringify(
|
|
3
|
-
Patch operations: ${JSON.stringify(
|
|
4
|
-
Error: ${
|
|
5
|
-
`),r=[];for(let
|
|
6
|
-
`),_=JSON.parse(c);n.next(_)}catch(c){n.error(c)}}return n.asObservable()};var oe=require("rxjs");var ie=P(require("@ag-ui/proto")),K=a=>{let n=new oe.Subject,e=new Uint8Array(0);a.subscribe({next:s=>{if(s.type!=="headers"&&s.type==="data"&&s.data){let u=new Uint8Array(e.length+s.data.length);u.set(e,0),u.set(s.data,e.length),e=u,t()}},error:s=>n.error(s),complete:()=>{if(e.length>0)try{t()}catch(s){console.warn("Incomplete or invalid protocol buffer data at stream end")}n.complete()}});function t(){for(;e.length>=4;){let g=4+new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1);if(e.length<g)break;try{let r=e.slice(4,g),c=ie.decode(r);n.next(c),e=e.slice(g)}catch(r){let c=r instanceof Error?r.message:String(r);n.error(new Error(`Failed to decode protocol buffer message: ${c}`));return}}}return n.asObservable()};var ce=P(require("@ag-ui/proto")),j=a=>{let n=new F.Subject,e=new F.ReplaySubject,t=!1;return a.subscribe({next:s=>{e.next(s),s.type==="headers"&&!t?(t=!0,s.headers.get("content-type")===ce.AGUI_MEDIA_TYPE?K(e).subscribe({next:g=>n.next(g),error:g=>n.error(g),complete:()=>n.complete()}):k(e).subscribe({next:g=>{try{let r=le.EventSchemas.parse(g);n.next(r)}catch(r){n.error(r)}},error:g=>n.error(g),complete:()=>n.complete()})):t||n.error(new Error("No headers event received before data events"))},error:s=>{e.error(s),n.error(s)},complete:()=>{e.complete()}}),n.asObservable()};var ue=require("rxjs/operators"),Ee=require("fast-json-patch"),y=require("@ag-ui/core");var i=require("zod"),A=i.z.enum(["TextMessageStart","TextMessageContent","TextMessageEnd","ActionExecutionStart","ActionExecutionArgs","ActionExecutionEnd","ActionExecutionResult","AgentStateMessage","MetaEvent","RunStarted","RunFinished","RunError","NodeStarted","NodeFinished"]),ve=i.z.enum(["LangGraphInterruptEvent","PredictState","Exit"]),Ne=i.z.object({type:i.z.literal(A.enum.TextMessageStart),messageId:i.z.string(),parentMessageId:i.z.string().optional()}),Le=i.z.object({type:i.z.literal(A.enum.TextMessageContent),messageId:i.z.string(),content:i.z.string()}),Re=i.z.object({type:i.z.literal(A.enum.TextMessageEnd),messageId:i.z.string()}),Me=i.z.object({type:i.z.literal(A.enum.ActionExecutionStart),actionExecutionId:i.z.string(),actionName:i.z.string(),parentMessageId:i.z.string().optional()}),he=i.z.object({type:i.z.literal(A.enum.ActionExecutionArgs),actionExecutionId:i.z.string(),args:i.z.string()}),xe=i.z.object({type:i.z.literal(A.enum.ActionExecutionEnd),actionExecutionId:i.z.string()}),Ie=i.z.object({type:i.z.literal(A.enum.ActionExecutionResult),actionName:i.z.string(),actionExecutionId:i.z.string(),result:i.z.string()}),Oe=i.z.object({type:i.z.literal(A.enum.AgentStateMessage),threadId:i.z.string(),agentName:i.z.string(),nodeName:i.z.string(),runId:i.z.string(),active:i.z.boolean(),role:i.z.string(),state:i.z.string(),running:i.z.boolean()}),be=i.z.object({type:i.z.literal(A.enum.MetaEvent),name:ve,value:i.z.any()}),vt=i.z.discriminatedUnion("type",[Ne,Le,Re,Me,he,xe,Ie,Oe,be]),Nt=i.z.object({id:i.z.string(),role:i.z.string(),content:i.z.string(),parentMessageId:i.z.string().optional()}),Lt=i.z.object({id:i.z.string(),name:i.z.string(),arguments:i.z.any(),parentMessageId:i.z.string().optional()}),Rt=i.z.object({id:i.z.string(),result:i.z.any(),actionExecutionId:i.z.string(),actionName:i.z.string()});var ge=P(require("untruncate-json"));var J=(a,n,e)=>t=>{let s={},u=!0,g=!0,r="",c=null,_=null,E=[],d={},p=f=>{typeof f=="object"&&f!==null&&("messages"in f&&delete f.messages,s=f)};return t.pipe((0,ue.mergeMap)(f=>{switch(f.type){case y.EventType.TEXT_MESSAGE_START:{let o=f;return[{type:A.enum.TextMessageStart,messageId:o.messageId}]}case y.EventType.TEXT_MESSAGE_CONTENT:{let o=f;return[{type:A.enum.TextMessageContent,messageId:o.messageId,content:o.delta}]}case y.EventType.TEXT_MESSAGE_END:{let o=f;return[{type:A.enum.TextMessageEnd,messageId:o.messageId}]}case y.EventType.TOOL_CALL_START:{let o=f;return E.push({id:o.toolCallId,type:"function",function:{name:o.toolCallName,arguments:""}}),g=!0,d[o.toolCallId]=o.toolCallName,[{type:A.enum.ActionExecutionStart,actionExecutionId:o.toolCallId,actionName:o.toolCallName,parentMessageId:o.parentMessageId}]}case y.EventType.TOOL_CALL_ARGS:{let o=f,C=E[E.length-1];C.function.arguments+=o.delta;let q=!1;if(_){let x=_.find(I=>I.tool==C.function.name);if(x)try{let I=JSON.parse((0,ge.default)(C.function.arguments));x.tool_argument&&x.tool_argument in I?(p(M(N({},s),{[x.state_key]:I[x.tool_argument]})),q=!0):x.tool_argument||(p(M(N({},s),{[x.state_key]:I})),q=!0)}catch(I){}}return[{type:A.enum.ActionExecutionArgs,actionExecutionId:o.toolCallId,args:o.delta},...q?[{type:A.enum.AgentStateMessage,threadId:a,agentName:e,nodeName:r,runId:n,running:u,role:"assistant",state:JSON.stringify(s),active:g}]:[]]}case y.EventType.TOOL_CALL_END:{let o=f;return[{type:A.enum.ActionExecutionEnd,actionExecutionId:o.toolCallId}]}case y.EventType.TOOL_CALL_RESULT:{let o=f;return[{type:A.enum.ActionExecutionResult,actionExecutionId:o.toolCallId,result:o.content,actionName:d[o.toolCallId]||"unknown"}]}case y.EventType.RAW:return[];case y.EventType.CUSTOM:{let o=f;switch(o.name){case"Exit":u=!1;break;case"PredictState":_=o.value;break}return[{type:A.enum.MetaEvent,name:o.name,value:o.value}]}case y.EventType.STATE_SNAPSHOT:return p(f.snapshot),[{type:A.enum.AgentStateMessage,threadId:a,agentName:e,nodeName:r,runId:n,running:u,role:"assistant",state:JSON.stringify(s),active:g}];case y.EventType.STATE_DELTA:{let C=(0,Ee.applyPatch)(s,f.delta,!0,!1);return C?(p(C.newDocument),[{type:A.enum.AgentStateMessage,threadId:a,agentName:e,nodeName:r,runId:n,running:u,role:"assistant",state:JSON.stringify(s),active:g}]):[]}case y.EventType.MESSAGES_SNAPSHOT:return c=f.messages,[{type:A.enum.AgentStateMessage,threadId:a,agentName:e,nodeName:r,runId:n,running:u,role:"assistant",state:JSON.stringify(N(N({},s),c?{messages:c}:{})),active:!0}];case y.EventType.RUN_STARTED:return[];case y.EventType.RUN_FINISHED:return c&&(s.messages=c),[{type:A.enum.AgentStateMessage,threadId:a,agentName:e,nodeName:r,runId:n,running:u,role:"assistant",state:JSON.stringify(N(N({},s),c?{messages:we(c)}:{})),active:!1}];case y.EventType.RUN_ERROR:return console.error("Run error",f),[];case y.EventType.STEP_STARTED:return r=f.stepName,E=[],_=null,[{type:A.enum.AgentStateMessage,threadId:a,agentName:e,nodeName:r,runId:n,running:u,role:"assistant",state:JSON.stringify(s),active:!0}];case y.EventType.STEP_FINISHED:return E=[],_=null,[{type:A.enum.AgentStateMessage,threadId:a,agentName:e,nodeName:r,runId:n,running:u,role:"assistant",state:JSON.stringify(s),active:!1}];default:return[]}}))};function we(a){var e;let n=[];for(let t of a)if(t.role==="assistant"||t.role==="user"||t.role==="system"){if(t.content){let s={id:t.id,role:t.role,content:t.content};n.push(s)}if(t.role==="assistant"&&t.toolCalls&&t.toolCalls.length>0)for(let s of t.toolCalls){let u={id:s.id,name:s.function.name,arguments:JSON.parse(s.function.arguments),parentMessageId:t.id};n.push(u)}}else if(t.role==="tool"){let s="unknown";for(let g of a)if(g.role==="assistant"&&((e=g.toolCalls)!=null&&e.length)){for(let r of g.toolCalls)if(r.id===t.toolCallId){s=r.function.name;break}}let u={id:t.id,result:t.content,actionExecutionId:t.toolCallId,actionName:s};n.push(u)}return n}var D=require("uuid");var b=require("rxjs/operators"),pe=require("rxjs/operators"),B=require("rxjs");var $=require("rxjs");var z=require("rxjs"),S=require("@ag-ui/core"),W=a=>n=>{let e,t,s,u=()=>{if(!e||s!=="text")throw new Error("No text message to close");let c={type:S.EventType.TEXT_MESSAGE_END,messageId:e.messageId};return s=void 0,e=void 0,a&&console.debug("[TRANSFORM]: TEXT_MESSAGE_END",JSON.stringify(c)),c},g=()=>{if(!t||s!=="tool")throw new Error("No tool call to close");let c={type:S.EventType.TOOL_CALL_END,toolCallId:t.toolCallId};return s=void 0,t=void 0,a&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(c)),c},r=()=>s==="text"?[u()]:s==="tool"?[g()]:[];return n.pipe((0,z.mergeMap)(c=>{switch(c.type){case S.EventType.TEXT_MESSAGE_START:case S.EventType.TEXT_MESSAGE_CONTENT:case S.EventType.TEXT_MESSAGE_END:case S.EventType.TOOL_CALL_START:case S.EventType.TOOL_CALL_ARGS:case S.EventType.TOOL_CALL_END:case S.EventType.TOOL_CALL_RESULT:case S.EventType.STATE_SNAPSHOT:case S.EventType.STATE_DELTA:case S.EventType.MESSAGES_SNAPSHOT:case S.EventType.CUSTOM:case S.EventType.RUN_STARTED:case S.EventType.RUN_FINISHED:case S.EventType.RUN_ERROR:case S.EventType.STEP_STARTED:case S.EventType.STEP_FINISHED:case S.EventType.THINKING_START:case S.EventType.THINKING_END:case S.EventType.THINKING_TEXT_MESSAGE_START:case S.EventType.THINKING_TEXT_MESSAGE_CONTENT:case S.EventType.THINKING_TEXT_MESSAGE_END:return[...r(),c];case S.EventType.RAW:return[c];case S.EventType.TEXT_MESSAGE_CHUNK:let E=c,d=[];if((s!=="text"||E.messageId!==void 0&&E.messageId!==(e==null?void 0:e.messageId))&&d.push(...r()),s!=="text"){if(E.messageId===void 0)throw new Error("First TEXT_MESSAGE_CHUNK must have a messageId");e={messageId:E.messageId},s="text";let o={type:S.EventType.TEXT_MESSAGE_START,messageId:E.messageId,role:"assistant"};d.push(o),a&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(o))}if(E.delta!==void 0){let o={type:S.EventType.TEXT_MESSAGE_CONTENT,messageId:e.messageId,delta:E.delta};d.push(o),a&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(o))}return d;case S.EventType.TOOL_CALL_CHUNK:let p=c,f=[];if((s!=="tool"||p.toolCallId!==void 0&&p.toolCallId!==(t==null?void 0:t.toolCallId))&&f.push(...r()),s!=="tool"){if(p.toolCallId===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallId");if(p.toolCallName===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallName");t={toolCallId:p.toolCallId,toolCallName:p.toolCallName,parentMessageId:p.parentMessageId},s="tool";let o={type:S.EventType.TOOL_CALL_START,toolCallId:p.toolCallId,toolCallName:p.toolCallName,parentMessageId:p.parentMessageId};f.push(o),a&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(o))}if(p.delta!==void 0){let o={type:S.EventType.TOOL_CALL_ARGS,toolCallId:t.toolCallId,delta:p.delta};f.push(o),a&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(o))}return f}let _=c.type}),(0,z.finalize)(()=>r()))};var O=class{constructor({agentId:n,description:e,threadId:t,initialMessages:s,initialState:u,debug:g}={}){this.debug=!1;this.agentId=n,this.description=e!=null?e:"",this.threadId=t!=null?t:(0,D.v4)(),this.messages=v(s!=null?s:[]),this.state=v(u!=null?u:{}),this.debug=g!=null?g:!1}async runAgent(n){var s;this.agentId=(s=this.agentId)!=null?s:(0,D.v4)();let e=this.prepareRunAgentInput(n),t=(0,B.pipe)(()=>this.run(e),W(this.debug),H(this.debug),u=>this.apply(e,u),u=>this.processApplyEvents(e,u),(0,b.catchError)(u=>(this.onError(u),(0,B.throwError)(()=>u))),(0,pe.finalize)(()=>{this.onFinalize()}));return(0,$.lastValueFrom)(t((0,$.of)(null))).then(()=>{})}abortRun(){}apply(...n){return U(...n)}processApplyEvents(n,e){return e.pipe((0,b.tap)(t=>{t.messages&&(this.messages=t.messages),t.state&&(this.state=t.state)}))}prepareRunAgentInput(n){var e,t,s;return{threadId:this.threadId,runId:(n==null?void 0:n.runId)||(0,D.v4)(),tools:v((e=n==null?void 0:n.tools)!=null?e:[]),context:v((t=n==null?void 0:n.context)!=null?t:[]),forwardedProps:v((s=n==null?void 0:n.forwardedProps)!=null?s:{}),state:v(this.state),messages:v(this.messages)}}onError(n){console.error("Agent execution failed:",n)}onFinalize(){}clone(){let n=Object.create(Object.getPrototypeOf(this));for(let e of Object.getOwnPropertyNames(this)){let t=this[e];typeof t!="function"&&(n[e]=v(t))}return n}legacy_to_be_removed_runAgentBridged(n){var t;this.agentId=(t=this.agentId)!=null?t:(0,D.v4)();let e=this.prepareRunAgentInput(n);return this.run(e).pipe(W(this.debug),H(this.debug),J(this.threadId,e.runId,this.agentId),s=>s.pipe((0,b.map)(u=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(u)),u))))}};var V=class extends O{constructor(e){var t;super(e);this.abortController=new AbortController;this.url=e.url,this.headers=v((t=e.headers)!=null?t:{})}requestInit(e){return{method:"POST",headers:M(N({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(e),signal:this.abortController.signal}}runAgent(e){var t;return this.abortController=(t=e==null?void 0:e.abortController)!=null?t:new AbortController,super.runAgent(e)}abortRun(){this.abortController.abort(),super.abortRun()}run(e){let t=X(this.url,this.requestInit(e));return j(t)}};R(L,require("@ag-ui/core"),module.exports);0&&(module.exports={AbstractAgent,HttpAgent,convertToLegacyEvents,defaultApplyEvents,parseProtoStream,parseSSEStream,runHttpRequest,transformHttpEventStream,verifyEvents,...require("@ag-ui/core")});
|
|
1
|
+
"use strict";var Me=Object.create;var k=Object.defineProperty,ye=Object.defineProperties,Ce=Object.getOwnPropertyDescriptor,_e=Object.getOwnPropertyDescriptors,Re=Object.getOwnPropertyNames,se=Object.getOwnPropertySymbols,Ne=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable;var oe=(i,s,t)=>s in i?k(i,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[s]=t,x=(i,s)=>{for(var t in s||(s={}))re.call(s,t)&&oe(i,t,s[t]);if(se)for(var t of se(s))xe.call(s,t)&&oe(i,t,s[t]);return i},B=(i,s)=>ye(i,_e(s));var Le=(i,s)=>{for(var t in s)k(i,t,{get:s[t],enumerable:!0})},j=(i,s,t,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of Re(s))!re.call(i,e)&&e!==t&&k(i,e,{get:()=>s[e],enumerable:!(n=Ce(s,e))||n.enumerable});return i},I=(i,s,t)=>(j(i,s,"default"),t&&j(t,s,"default")),$=(i,s,t)=>(t=i!=null?Me(Ne(i)):{},j(s||!i||!i.__esModule?k(t,"default",{value:i,enumerable:!0}):t,i)),Ie=i=>j(k({},"__esModule",{value:!0}),i);var L={};Le(L,{AbstractAgent:()=>G,HttpAgent:()=>ne,convertToLegacyEvents:()=>ee,defaultApplyEvents:()=>q,parseProtoStream:()=>Q,parseSSEStream:()=>Y,runHttpRequest:()=>V,transformHttpEventStream:()=>b,verifyEvents:()=>J});module.exports=Ie(L);var h=require("@ag-ui/core"),H=require("rxjs/operators"),W=require("rxjs");var _=i=>{if(typeof structuredClone=="function")return structuredClone(i);try{return JSON.parse(JSON.stringify(i))}catch(s){return x({},i)}};var ie=require("fast-json-patch");async function y(i,s,t,n){let e=s,o=t,l;for(let r of i)try{let g=await n(r,_(e),_(o));if(g===void 0)continue;if(g.messages!==void 0&&(e=g.messages),g.state!==void 0&&(o=g.state),l=g.stopPropagation,l===!0)break}catch(g){process.env.NODE_ENV==="test"||process.env.JEST_WORKER_ID!==void 0||console.error("Subscriber error:",g);continue}return x(x(x({},JSON.stringify(e)!==JSON.stringify(s)?{messages:e}:{}),JSON.stringify(o)!==JSON.stringify(t)?{state:o}:{}),l!==void 0?{stopPropagation:l}:{})}var le=$(require("untruncate-json")),q=(i,s,t,n)=>{let e=_(i.messages),o=_(i.state),l={},r=u=>{u.messages!==void 0&&(e=u.messages,l.messages=u.messages),u.state!==void 0&&(o=u.state,l.state=u.state)},g=()=>{let u=_(l);return l={},u.messages!==void 0||u.state!==void 0?(0,W.of)(u):W.EMPTY};return s.pipe((0,H.concatMap)(async u=>{var A;let T=await y(n,e,o,(p,a,c)=>{var d;return(d=p.onEvent)==null?void 0:d.call(p,{event:u,agent:t,input:i,messages:a,state:c})});if(r(T),T.stopPropagation===!0)return g();switch(u.type){case h.EventType.TEXT_MESSAGE_START:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onTextMessageStartEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});if(r(p),p.stopPropagation!==!0){let{messageId:a,role:c}=u,d={id:a,role:c,content:""};e.push(d),r({messages:e})}return g()}case h.EventType.TEXT_MESSAGE_CONTENT:{let p=await y(n,e,o,(a,c,d)=>{var E,R;return(R=a.onTextMessageContentEvent)==null?void 0:R.call(a,{event:u,messages:c,state:d,agent:t,input:i,textMessageBuffer:(E=c[c.length-1].content)!=null?E:""})});if(r(p),p.stopPropagation!==!0){let{delta:a}=u,c=e[e.length-1];c.content=c.content+a,r({messages:e})}return g()}case h.EventType.TEXT_MESSAGE_END:{let p=await y(n,e,o,(a,c,d)=>{var E,R;return(R=a.onTextMessageEndEvent)==null?void 0:R.call(a,{event:u,messages:c,state:d,agent:t,input:i,textMessageBuffer:(E=c[c.length-1].content)!=null?E:""})});return r(p),await Promise.all(n.map(a=>{var c;(c=a.onNewMessage)==null||c.call(a,{message:e[e.length-1],messages:e,state:o,agent:t,input:i})})),g()}case h.EventType.TOOL_CALL_START:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onToolCallStartEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});if(r(p),p.stopPropagation!==!0){let{toolCallId:a,toolCallName:c,parentMessageId:d}=u,E;d&&e.length>0&&e[e.length-1].id===d?E=e[e.length-1]:(E={id:d||a,role:"assistant",toolCalls:[]},e.push(E)),(A=E.toolCalls)!=null||(E.toolCalls=[]),E.toolCalls.push({id:a,type:"function",function:{name:c,arguments:""}}),r({messages:e})}return g()}case h.EventType.TOOL_CALL_ARGS:{let p=await y(n,e,o,(a,c,d)=>{var X,U,K;let E=(U=(X=c[c.length-1])==null?void 0:X.toolCalls)!=null?U:[],R=E.length>0?E[E.length-1].function.arguments:"",P=E.length>0?E[E.length-1].function.name:"",O={};try{O=(0,le.default)(R)}catch(he){}return(K=a.onToolCallArgsEvent)==null?void 0:K.call(a,{event:u,messages:c,state:d,agent:t,input:i,toolCallBuffer:R,toolCallName:P,partialToolCallArgs:O})});if(r(p),p.stopPropagation!==!0){let{delta:a}=u,c=e[e.length-1],d=c.toolCalls[c.toolCalls.length-1];d.function.arguments+=a,r({messages:e})}return g()}case h.EventType.TOOL_CALL_END:{let p=await y(n,e,o,(a,c,d)=>{var X,U,K;let E=(U=(X=c[c.length-1])==null?void 0:X.toolCalls)!=null?U:[],R=E.length>0?E[E.length-1].function.arguments:"",P=E.length>0?E[E.length-1].function.name:"",O={};try{O=JSON.parse(R)}catch(he){}return(K=a.onToolCallEndEvent)==null?void 0:K.call(a,{event:u,messages:c,state:d,agent:t,input:i,toolCallName:P,toolCallArgs:O})});return r(p),await Promise.all(n.map(a=>{var c;(c=a.onNewToolCall)==null||c.call(a,{toolCall:e[e.length-1].toolCalls[e[e.length-1].toolCalls.length-1],messages:e,state:o,agent:t,input:i})})),g()}case h.EventType.TOOL_CALL_RESULT:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onToolCallResultEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});if(r(p),p.stopPropagation!==!0){let{messageId:a,toolCallId:c,content:d,role:E}=u,R={id:a,toolCallId:c,role:E||"tool",content:d};e.push(R),await Promise.all(n.map(P=>{var O;(O=P.onNewMessage)==null||O.call(P,{message:R,messages:e,state:o,agent:t,input:i})})),r({messages:e})}return g()}case h.EventType.STATE_SNAPSHOT:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onStateSnapshotEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});if(r(p),p.stopPropagation!==!0){let{snapshot:a}=u;o=a,r({state:o})}return g()}case h.EventType.STATE_DELTA:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onStateDeltaEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});if(r(p),p.stopPropagation!==!0){let{delta:a}=u;try{o=(0,ie.applyPatch)(o,a,!0,!1).newDocument,r({state:o})}catch(c){let d=c instanceof Error?c.message:String(c);console.warn(`Failed to apply state patch:
|
|
2
|
+
Current state: ${JSON.stringify(o,null,2)}
|
|
3
|
+
Patch operations: ${JSON.stringify(a,null,2)}
|
|
4
|
+
Error: ${d}`)}}return g()}case h.EventType.MESSAGES_SNAPSHOT:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onMessagesSnapshotEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});if(r(p),p.stopPropagation!==!0){let{messages:a}=u;e=a,r({messages:e})}return g()}case h.EventType.RAW:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onRawEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});return r(p),g()}case h.EventType.CUSTOM:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onCustomEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});return r(p),g()}case h.EventType.RUN_STARTED:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onRunStartedEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});return r(p),g()}case h.EventType.RUN_FINISHED:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onRunFinishedEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i,result:u.result})});return r(p),g()}case h.EventType.RUN_ERROR:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onRunErrorEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});return r(p),g()}case h.EventType.STEP_STARTED:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onStepStartedEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});return r(p),g()}case h.EventType.STEP_FINISHED:{let p=await y(n,e,o,(a,c,d)=>{var E;return(E=a.onStepFinishedEvent)==null?void 0:E.call(a,{event:u,messages:c,state:d,agent:t,input:i})});return r(p),g()}case h.EventType.TEXT_MESSAGE_CHUNK:throw new Error("TEXT_MESSAGE_CHUNK must be tranformed before being applied");case h.EventType.TOOL_CALL_CHUNK:throw new Error("TOOL_CALL_CHUNK must be tranformed before being applied");case h.EventType.THINKING_START:return g();case h.EventType.THINKING_END:return g();case h.EventType.THINKING_TEXT_MESSAGE_START:return g();case h.EventType.THINKING_TEXT_MESSAGE_CONTENT:return g();case h.EventType.THINKING_TEXT_MESSAGE_END:return g()}let C=u.type;return g()}),(0,H.mergeAll)(),n.length>0?(0,H.defaultIfEmpty)({}):u=>u)};var S=require("@ag-ui/core"),f=require("rxjs"),ge=require("rxjs/operators"),J=i=>s=>{let t,n,e=!1,o=!1,l=!1,r=new Map,g=!1,u=!1;return s.pipe((0,ge.mergeMap)(T=>{let C=T.type;if(i&&console.debug("[VERIFY]:",JSON.stringify(T)),o)return(0,f.throwError)(()=>new S.AGUIError(`Cannot send event type '${C}': The run has already errored with 'RUN_ERROR'. No further events can be sent.`));if(e&&C!==S.EventType.RUN_ERROR)return(0,f.throwError)(()=>new S.AGUIError(`Cannot send event type '${C}': The run has already finished with 'RUN_FINISHED'. Start a new run with 'RUN_STARTED'.`));if(t!==void 0&&![S.EventType.TEXT_MESSAGE_CONTENT,S.EventType.TEXT_MESSAGE_END,S.EventType.RAW].includes(C))return(0,f.throwError)(()=>new S.AGUIError(`Cannot send event type '${C}' after 'TEXT_MESSAGE_START': Send 'TEXT_MESSAGE_END' first.`));if(n!==void 0&&![S.EventType.TOOL_CALL_ARGS,S.EventType.TOOL_CALL_END,S.EventType.RAW].includes(C))return C===S.EventType.TOOL_CALL_START?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'TOOL_CALL_START' event: A tool call is already in progress. Complete it with 'TOOL_CALL_END' first.")):(0,f.throwError)(()=>new S.AGUIError(`Cannot send event type '${C}' after 'TOOL_CALL_START': Send 'TOOL_CALL_END' first.`));if(l){if(C===S.EventType.RUN_STARTED)return(0,f.throwError)(()=>new S.AGUIError("Cannot send multiple 'RUN_STARTED' events: A 'RUN_STARTED' event was already sent. Each run must have exactly one 'RUN_STARTED' event at the beginning."))}else if(l=!0,C!==S.EventType.RUN_STARTED&&C!==S.EventType.RUN_ERROR)return(0,f.throwError)(()=>new S.AGUIError("First event must be 'RUN_STARTED'"));switch(C){case S.EventType.TEXT_MESSAGE_START:return t!==void 0?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'TEXT_MESSAGE_START' event: A text message is already in progress. Complete it with 'TEXT_MESSAGE_END' first.")):(t=T.messageId,(0,f.of)(T));case S.EventType.TEXT_MESSAGE_CONTENT:return t===void 0?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'TEXT_MESSAGE_CONTENT' event: No active text message found. Start a text message with 'TEXT_MESSAGE_START' first.")):T.messageId!==t?(0,f.throwError)(()=>new S.AGUIError(`Cannot send 'TEXT_MESSAGE_CONTENT' event: Message ID mismatch. The ID '${T.messageId}' doesn't match the active message ID '${t}'.`)):(0,f.of)(T);case S.EventType.TEXT_MESSAGE_END:return t===void 0?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'TEXT_MESSAGE_END' event: No active text message found. A 'TEXT_MESSAGE_START' event must be sent first.")):T.messageId!==t?(0,f.throwError)(()=>new S.AGUIError(`Cannot send 'TEXT_MESSAGE_END' event: Message ID mismatch. The ID '${T.messageId}' doesn't match the active message ID '${t}'.`)):(t=void 0,(0,f.of)(T));case S.EventType.TOOL_CALL_START:return n!==void 0?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'TOOL_CALL_START' event: A tool call is already in progress. Complete it with 'TOOL_CALL_END' first.")):(n=T.toolCallId,(0,f.of)(T));case S.EventType.TOOL_CALL_ARGS:return n===void 0?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'TOOL_CALL_ARGS' event: No active tool call found. Start a tool call with 'TOOL_CALL_START' first.")):T.toolCallId!==n?(0,f.throwError)(()=>new S.AGUIError(`Cannot send 'TOOL_CALL_ARGS' event: Tool call ID mismatch. The ID '${T.toolCallId}' doesn't match the active tool call ID '${n}'.`)):(0,f.of)(T);case S.EventType.TOOL_CALL_END:return n===void 0?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'TOOL_CALL_END' event: No active tool call found. A 'TOOL_CALL_START' event must be sent first.")):T.toolCallId!==n?(0,f.throwError)(()=>new S.AGUIError(`Cannot send 'TOOL_CALL_END' event: Tool call ID mismatch. The ID '${T.toolCallId}' doesn't match the active tool call ID '${n}'.`)):(n=void 0,(0,f.of)(T));case S.EventType.STEP_STARTED:{let A=T.stepName;return r.has(A)?(0,f.throwError)(()=>new S.AGUIError(`Step "${A}" is already active for 'STEP_STARTED'`)):(r.set(A,!0),(0,f.of)(T))}case S.EventType.STEP_FINISHED:{let A=T.stepName;return r.has(A)?(r.delete(A),(0,f.of)(T)):(0,f.throwError)(()=>new S.AGUIError(`Cannot send 'STEP_FINISHED' for step "${A}" that was not started`))}case S.EventType.RUN_STARTED:return(0,f.of)(T);case S.EventType.RUN_FINISHED:{if(r.size>0){let A=Array.from(r.keys()).join(", ");return(0,f.throwError)(()=>new S.AGUIError(`Cannot send 'RUN_FINISHED' while steps are still active: ${A}`))}return e=!0,(0,f.of)(T)}case S.EventType.RUN_ERROR:return o=!0,(0,f.of)(T);case S.EventType.CUSTOM:return(0,f.of)(T);case S.EventType.THINKING_TEXT_MESSAGE_START:return g?u?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking message is already in progress. Complete it with 'THINKING_TEXT_MESSAGE_END' first.")):(u=!0,(0,f.of)(T)):(0,f.throwError)(()=>new S.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking step is not in progress. Create one with 'THINKING_START' first."));case S.EventType.THINKING_TEXT_MESSAGE_CONTENT:return u?(0,f.of)(T):(0,f.throwError)(()=>new S.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_CONTENT' event: No active thinking message found. Start a message with 'THINKING_TEXT_MESSAGE_START' first."));case S.EventType.THINKING_TEXT_MESSAGE_END:return u?(u=!1,(0,f.of)(T)):(0,f.throwError)(()=>new S.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_END' event: No active thinking message found. A 'THINKING_TEXT_MESSAGE_START' event must be sent first."));case S.EventType.THINKING_START:return g?(0,f.throwError)(()=>new S.AGUIError("Cannot send 'THINKING_START' event: A thinking step is already in progress. End it with 'THINKING_END' first.")):(g=!0,(0,f.of)(T));case S.EventType.THINKING_END:return g?(g=!1,(0,f.of)(T)):(0,f.throwError)(()=>new S.AGUIError("Cannot send 'THINKING_END' event: No active thinking step found. A 'THINKING_START' event must be sent first."));default:return(0,f.of)(T)}}))};var me=require("@ag-ui/core"),Z=require("rxjs");var w=require("rxjs"),Ee=require("rxjs/operators");var V=(i,s)=>(0,w.defer)(()=>(0,w.from)(fetch(i,s))).pipe((0,Ee.switchMap)(t=>{var o;let n={type:"headers",status:t.status,headers:t.headers},e=(o=t.body)==null?void 0:o.getReader();return e?new w.Observable(l=>(l.next(n),(async()=>{try{for(;;){let{done:r,value:g}=await e.read();if(r)break;let u={type:"data",data:g};l.next(u)}l.complete()}catch(r){l.error(r)}})(),()=>{e.cancel()})):(0,w.throwError)(()=>new Error("Failed to getReader() from response"))}));var ce=require("rxjs");var Y=i=>{let s=new ce.Subject,t=new TextDecoder("utf-8",{fatal:!1}),n="";i.subscribe({next:o=>{if(o.type!=="headers"&&o.type==="data"&&o.data){let l=t.decode(o.data,{stream:!0});n+=l;let r=n.split(/\n\n/);n=r.pop()||"";for(let g of r)e(g)}},error:o=>s.error(o),complete:()=>{n&&(n+=t.decode(),e(n)),s.complete()}});function e(o){let l=o.split(`
|
|
5
|
+
`),r=[];for(let g of l)g.startsWith("data: ")&&r.push(g.slice(6));if(r.length>0)try{let g=r.join(`
|
|
6
|
+
`),u=JSON.parse(g);s.next(u)}catch(g){s.error(g)}}return s.asObservable()};var ue=require("rxjs");var pe=$(require("@ag-ui/proto")),Q=i=>{let s=new ue.Subject,t=new Uint8Array(0);i.subscribe({next:e=>{if(e.type!=="headers"&&e.type==="data"&&e.data){let o=new Uint8Array(t.length+e.data.length);o.set(t,0),o.set(e.data,t.length),t=o,n()}},error:e=>s.error(e),complete:()=>{if(t.length>0)try{n()}catch(e){console.warn("Incomplete or invalid protocol buffer data at stream end")}s.complete()}});function n(){for(;t.length>=4;){let l=4+new DataView(t.buffer,t.byteOffset,4).getUint32(0,!1);if(t.length<l)break;try{let r=t.slice(4,l),g=pe.decode(r);s.next(g),t=t.slice(l)}catch(r){let g=r instanceof Error?r.message:String(r);s.error(new Error(`Failed to decode protocol buffer message: ${g}`));return}}}return s.asObservable()};var Se=$(require("@ag-ui/proto")),b=i=>{let s=new Z.Subject,t=new Z.ReplaySubject,n=!1;return i.subscribe({next:e=>{t.next(e),e.type==="headers"&&!n?(n=!0,e.headers.get("content-type")===Se.AGUI_MEDIA_TYPE?Q(t).subscribe({next:l=>s.next(l),error:l=>s.error(l),complete:()=>s.complete()}):Y(t).subscribe({next:l=>{try{let r=me.EventSchemas.parse(l);s.next(r)}catch(r){s.error(r)}},error:l=>s.error(l),complete:()=>s.complete()})):n||s.error(new Error("No headers event received before data events"))},error:e=>{t.error(e),s.error(e)},complete:()=>{t.complete()}}),s.asObservable()};var de=require("rxjs/operators"),Te=require("fast-json-patch"),N=require("@ag-ui/core");var m=require("zod"),M=m.z.enum(["TextMessageStart","TextMessageContent","TextMessageEnd","ActionExecutionStart","ActionExecutionArgs","ActionExecutionEnd","ActionExecutionResult","AgentStateMessage","MetaEvent","RunStarted","RunFinished","RunError","NodeStarted","NodeFinished"]),Oe=m.z.enum(["LangGraphInterruptEvent","PredictState","Exit"]),we=m.z.object({type:m.z.literal(M.enum.TextMessageStart),messageId:m.z.string(),parentMessageId:m.z.string().optional()}),Pe=m.z.object({type:m.z.literal(M.enum.TextMessageContent),messageId:m.z.string(),content:m.z.string()}),De=m.z.object({type:m.z.literal(M.enum.TextMessageEnd),messageId:m.z.string()}),He=m.z.object({type:m.z.literal(M.enum.ActionExecutionStart),actionExecutionId:m.z.string(),actionName:m.z.string(),parentMessageId:m.z.string().optional()}),Ge=m.z.object({type:m.z.literal(M.enum.ActionExecutionArgs),actionExecutionId:m.z.string(),args:m.z.string()}),Fe=m.z.object({type:m.z.literal(M.enum.ActionExecutionEnd),actionExecutionId:m.z.string()}),Xe=m.z.object({type:m.z.literal(M.enum.ActionExecutionResult),actionName:m.z.string(),actionExecutionId:m.z.string(),result:m.z.string()}),Ue=m.z.object({type:m.z.literal(M.enum.AgentStateMessage),threadId:m.z.string(),agentName:m.z.string(),nodeName:m.z.string(),runId:m.z.string(),active:m.z.boolean(),role:m.z.string(),state:m.z.string(),running:m.z.boolean()}),Ke=m.z.object({type:m.z.literal(M.enum.MetaEvent),name:Oe,value:m.z.any()}),jt=m.z.discriminatedUnion("type",[we,Pe,De,He,Ge,Fe,Xe,Ue,Ke]),$t=m.z.object({id:m.z.string(),role:m.z.string(),content:m.z.string(),parentMessageId:m.z.string().optional()}),Wt=m.z.object({id:m.z.string(),name:m.z.string(),arguments:m.z.any(),parentMessageId:m.z.string().optional()}),qt=m.z.object({id:m.z.string(),result:m.z.any(),actionExecutionId:m.z.string(),actionName:m.z.string()});var fe=$(require("untruncate-json"));var ee=(i,s,t)=>n=>{let e={},o=!0,l=!0,r="",g=null,u=null,T=[],C={},A=p=>{typeof p=="object"&&p!==null&&("messages"in p&&delete p.messages,e=p)};return n.pipe((0,de.mergeMap)(p=>{switch(p.type){case N.EventType.TEXT_MESSAGE_START:{let a=p;return[{type:M.enum.TextMessageStart,messageId:a.messageId}]}case N.EventType.TEXT_MESSAGE_CONTENT:{let a=p;return[{type:M.enum.TextMessageContent,messageId:a.messageId,content:a.delta}]}case N.EventType.TEXT_MESSAGE_END:{let a=p;return[{type:M.enum.TextMessageEnd,messageId:a.messageId}]}case N.EventType.TOOL_CALL_START:{let a=p;return T.push({id:a.toolCallId,type:"function",function:{name:a.toolCallName,arguments:""}}),l=!0,C[a.toolCallId]=a.toolCallName,[{type:M.enum.ActionExecutionStart,actionExecutionId:a.toolCallId,actionName:a.toolCallName,parentMessageId:a.parentMessageId}]}case N.EventType.TOOL_CALL_ARGS:{let a=p,c=T[T.length-1];c.function.arguments+=a.delta;let d=!1;if(u){let E=u.find(R=>R.tool==c.function.name);if(E)try{let R=JSON.parse((0,fe.default)(c.function.arguments));E.tool_argument&&E.tool_argument in R?(A(B(x({},e),{[E.state_key]:R[E.tool_argument]})),d=!0):E.tool_argument||(A(B(x({},e),{[E.state_key]:R})),d=!0)}catch(R){}}return[{type:M.enum.ActionExecutionArgs,actionExecutionId:a.toolCallId,args:a.delta},...d?[{type:M.enum.AgentStateMessage,threadId:i,agentName:t,nodeName:r,runId:s,running:o,role:"assistant",state:JSON.stringify(e),active:l}]:[]]}case N.EventType.TOOL_CALL_END:{let a=p;return[{type:M.enum.ActionExecutionEnd,actionExecutionId:a.toolCallId}]}case N.EventType.TOOL_CALL_RESULT:{let a=p;return[{type:M.enum.ActionExecutionResult,actionExecutionId:a.toolCallId,result:a.content,actionName:C[a.toolCallId]||"unknown"}]}case N.EventType.RAW:return[];case N.EventType.CUSTOM:{let a=p;switch(a.name){case"Exit":o=!1;break;case"PredictState":u=a.value;break}return[{type:M.enum.MetaEvent,name:a.name,value:a.value}]}case N.EventType.STATE_SNAPSHOT:return A(p.snapshot),[{type:M.enum.AgentStateMessage,threadId:i,agentName:t,nodeName:r,runId:s,running:o,role:"assistant",state:JSON.stringify(e),active:l}];case N.EventType.STATE_DELTA:{let c=(0,Te.applyPatch)(e,p.delta,!0,!1);return c?(A(c.newDocument),[{type:M.enum.AgentStateMessage,threadId:i,agentName:t,nodeName:r,runId:s,running:o,role:"assistant",state:JSON.stringify(e),active:l}]):[]}case N.EventType.MESSAGES_SNAPSHOT:return g=p.messages,[{type:M.enum.AgentStateMessage,threadId:i,agentName:t,nodeName:r,runId:s,running:o,role:"assistant",state:JSON.stringify(x(x({},e),g?{messages:g}:{})),active:!0}];case N.EventType.RUN_STARTED:return[];case N.EventType.RUN_FINISHED:return g&&(e.messages=g),[{type:M.enum.AgentStateMessage,threadId:i,agentName:t,nodeName:r,runId:s,running:o,role:"assistant",state:JSON.stringify(x(x({},e),g?{messages:ke(g)}:{})),active:!1}];case N.EventType.RUN_ERROR:return console.error("Run error",p),[];case N.EventType.STEP_STARTED:return r=p.stepName,T=[],u=null,[{type:M.enum.AgentStateMessage,threadId:i,agentName:t,nodeName:r,runId:s,running:o,role:"assistant",state:JSON.stringify(e),active:!0}];case N.EventType.STEP_FINISHED:return T=[],u=null,[{type:M.enum.AgentStateMessage,threadId:i,agentName:t,nodeName:r,runId:s,running:o,role:"assistant",state:JSON.stringify(e),active:!1}];default:return[]}}))};function ke(i){var t;let s=[];for(let n of i)if(n.role==="assistant"||n.role==="user"||n.role==="system"){if(n.content){let e={id:n.id,role:n.role,content:n.content};s.push(e)}if(n.role==="assistant"&&n.toolCalls&&n.toolCalls.length>0)for(let e of n.toolCalls){let o={id:e.id,name:e.function.name,arguments:JSON.parse(e.function.arguments),parentMessageId:n.id};s.push(o)}}else if(n.role==="tool"){let e="unknown";for(let l of i)if(l.role==="assistant"&&((t=l.toolCalls)!=null&&t.length)){for(let r of l.toolCalls)if(r.id===n.toolCallId){e=r.function.name;break}}let o={id:n.id,result:n.content,actionExecutionId:n.toolCallId,actionName:e};s.push(o)}return s}var z=require("uuid");var D=require("rxjs/operators"),Ae=require("rxjs/operators"),F=require("rxjs");var ve=require("rxjs");var te=require("rxjs"),v=require("@ag-ui/core"),ae=i=>s=>{let t,n,e,o=()=>{if(!t||e!=="text")throw new Error("No text message to close");let g={type:v.EventType.TEXT_MESSAGE_END,messageId:t.messageId};return e=void 0,t=void 0,i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_END",JSON.stringify(g)),g},l=()=>{if(!n||e!=="tool")throw new Error("No tool call to close");let g={type:v.EventType.TOOL_CALL_END,toolCallId:n.toolCallId};return e=void 0,n=void 0,i&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(g)),g},r=()=>e==="text"?[o()]:e==="tool"?[l()]:[];return s.pipe((0,te.mergeMap)(g=>{switch(g.type){case v.EventType.TEXT_MESSAGE_START:case v.EventType.TEXT_MESSAGE_CONTENT:case v.EventType.TEXT_MESSAGE_END:case v.EventType.TOOL_CALL_START:case v.EventType.TOOL_CALL_ARGS:case v.EventType.TOOL_CALL_END:case v.EventType.TOOL_CALL_RESULT:case v.EventType.STATE_SNAPSHOT:case v.EventType.STATE_DELTA:case v.EventType.MESSAGES_SNAPSHOT:case v.EventType.CUSTOM:case v.EventType.RUN_STARTED:case v.EventType.RUN_FINISHED:case v.EventType.RUN_ERROR:case v.EventType.STEP_STARTED:case v.EventType.STEP_FINISHED:case v.EventType.THINKING_START:case v.EventType.THINKING_END:case v.EventType.THINKING_TEXT_MESSAGE_START:case v.EventType.THINKING_TEXT_MESSAGE_CONTENT:case v.EventType.THINKING_TEXT_MESSAGE_END:return[...r(),g];case v.EventType.RAW:return[g];case v.EventType.TEXT_MESSAGE_CHUNK:let T=g,C=[];if((e!=="text"||T.messageId!==void 0&&T.messageId!==(t==null?void 0:t.messageId))&&C.push(...r()),e!=="text"){if(T.messageId===void 0)throw new Error("First TEXT_MESSAGE_CHUNK must have a messageId");t={messageId:T.messageId},e="text";let a={type:v.EventType.TEXT_MESSAGE_START,messageId:T.messageId,role:"assistant"};C.push(a),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(a))}if(T.delta!==void 0){let a={type:v.EventType.TEXT_MESSAGE_CONTENT,messageId:t.messageId,delta:T.delta};C.push(a),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(a))}return C;case v.EventType.TOOL_CALL_CHUNK:let A=g,p=[];if((e!=="tool"||A.toolCallId!==void 0&&A.toolCallId!==(n==null?void 0:n.toolCallId))&&p.push(...r()),e!=="tool"){if(A.toolCallId===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallId");if(A.toolCallName===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallName");n={toolCallId:A.toolCallId,toolCallName:A.toolCallName,parentMessageId:A.parentMessageId},e="tool";let a={type:v.EventType.TOOL_CALL_START,toolCallId:A.toolCallId,toolCallName:A.toolCallName,parentMessageId:A.parentMessageId};p.push(a),i&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(a))}if(A.delta!==void 0){let a={type:v.EventType.TOOL_CALL_ARGS,toolCallId:n.toolCallId,delta:A.delta};p.push(a),i&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(a))}return p}let u=g.type}),(0,te.finalize)(()=>r()))};var G=class{constructor({agentId:s,description:t,threadId:n,initialMessages:e,initialState:o,debug:l}={}){this.debug=!1;this.subscribers=[];this.agentId=s,this.description=t!=null?t:"",this.threadId=n!=null?n:(0,z.v4)(),this.messages=_(e!=null?e:[]),this.state=_(o!=null?o:{}),this.debug=l!=null?l:!1}subscribe(s){return this.subscribers.push(s),{unsubscribe:()=>{this.subscribers=this.subscribers.filter(t=>t!==s)}}}async runAgent(s,t){var g;this.agentId=(g=this.agentId)!=null?g:(0,z.v4)();let n=this.prepareRunAgentInput(s),e,o=new Set(this.messages.map(u=>u.id)),l=[{onRunFinishedEvent:u=>{e=u.result}},...this.subscribers,t!=null?t:{}];await this.onInitialize(n,l);let r=(0,F.pipe)(()=>this.run(n),ae(this.debug),J(this.debug),u=>this.apply(n,u,l),u=>this.processApplyEvents(n,u,l),(0,D.catchError)(u=>this.onError(n,u,l)),(0,Ae.finalize)(()=>{this.onFinalize(n,l)}));return(0,ve.lastValueFrom)(r((0,F.of)(null))).then(()=>{let u=_(this.messages).filter(T=>!o.has(T.id));return{result:e,newMessages:u}})}abortRun(){}apply(s,t,n){return q(s,t,this,n)}processApplyEvents(s,t,n){return t.pipe((0,D.tap)(e=>{e.messages&&(this.messages=e.messages,n.forEach(o=>{var l;(l=o.onMessagesChanged)==null||l.call(o,{messages:this.messages,state:this.state,agent:this,input:s})})),e.state&&(this.state=e.state,n.forEach(o=>{var l;(l=o.onStateChanged)==null||l.call(o,{state:this.state,messages:this.messages,agent:this,input:s})}))}))}prepareRunAgentInput(s){var t,n,e;return{threadId:this.threadId,runId:(s==null?void 0:s.runId)||(0,z.v4)(),tools:_((t=s==null?void 0:s.tools)!=null?t:[]),context:_((n=s==null?void 0:s.context)!=null?n:[]),forwardedProps:_((e=s==null?void 0:s.forwardedProps)!=null?e:{}),state:_(this.state),messages:_(this.messages)}}async onInitialize(s,t){let n=await y(t,this.messages,this.state,(e,o,l)=>{var r;return(r=e.onRunInitialized)==null?void 0:r.call(e,{messages:o,state:l,agent:this,input:s})});(n.messages!==void 0||n.state!==void 0)&&(n.messages&&(this.messages=n.messages,s.messages=n.messages,t.forEach(e=>{var o;(o=e.onMessagesChanged)==null||o.call(e,{messages:this.messages,state:this.state,agent:this,input:s})})),n.state&&(this.state=n.state,s.state=n.state,t.forEach(e=>{var o;(o=e.onStateChanged)==null||o.call(e,{state:this.state,messages:this.messages,agent:this,input:s})})))}onError(s,t,n){return(0,F.from)(y(n,this.messages,this.state,(e,o,l)=>{var r;return(r=e.onRunFailed)==null?void 0:r.call(e,{error:t,messages:o,state:l,agent:this,input:s})})).pipe((0,D.map)(e=>{let o=e;if((o.messages!==void 0||o.state!==void 0)&&(o.messages!==void 0&&(this.messages=o.messages,n.forEach(l=>{var r;(r=l.onMessagesChanged)==null||r.call(l,{messages:this.messages,state:this.state,agent:this,input:s})})),o.state!==void 0&&(this.state=o.state,n.forEach(l=>{var r;(r=l.onStateChanged)==null||r.call(l,{state:this.state,messages:this.messages,agent:this,input:s})}))),o.stopPropagation!==!0)throw console.error("Agent execution failed:",t),t;return{}}))}async onFinalize(s,t){let n=await y(t,this.messages,this.state,(e,o,l)=>{var r;return(r=e.onRunFinalized)==null?void 0:r.call(e,{messages:o,state:l,agent:this,input:s})});(n.messages!==void 0||n.state!==void 0)&&(n.messages!==void 0&&(this.messages=n.messages,t.forEach(e=>{var o;(o=e.onMessagesChanged)==null||o.call(e,{messages:this.messages,state:this.state,agent:this,input:s})})),n.state!==void 0&&(this.state=n.state,t.forEach(e=>{var o;(o=e.onStateChanged)==null||o.call(e,{state:this.state,messages:this.messages,agent:this,input:s})})))}clone(){let s=Object.create(Object.getPrototypeOf(this));for(let t of Object.getOwnPropertyNames(this)){let n=this[t];typeof n!="function"&&(s[t]=_(n))}return s}addMessage(s){this.messages.push(s),(async()=>{var t,n,e;for(let o of this.subscribers)await((t=o.onNewMessage)==null?void 0:t.call(o,{message:s,messages:this.messages,state:this.state,agent:this}));if(s.role==="assistant"&&s.toolCalls)for(let o of s.toolCalls)for(let l of this.subscribers)await((n=l.onNewToolCall)==null?void 0:n.call(l,{toolCall:o,messages:this.messages,state:this.state,agent:this}));for(let o of this.subscribers)await((e=o.onMessagesChanged)==null?void 0:e.call(o,{messages:this.messages,state:this.state,agent:this}))})()}addMessages(s){this.messages.push(...s),(async()=>{var t,n,e;for(let o of s){for(let l of this.subscribers)await((t=l.onNewMessage)==null?void 0:t.call(l,{message:o,messages:this.messages,state:this.state,agent:this}));if(o.role==="assistant"&&o.toolCalls)for(let l of o.toolCalls)for(let r of this.subscribers)await((n=r.onNewToolCall)==null?void 0:n.call(r,{toolCall:l,messages:this.messages,state:this.state,agent:this}))}for(let o of this.subscribers)await((e=o.onMessagesChanged)==null?void 0:e.call(o,{messages:this.messages,state:this.state,agent:this}))})()}setMessages(s){this.messages=_(s),(async()=>{var t;for(let n of this.subscribers)await((t=n.onMessagesChanged)==null?void 0:t.call(n,{messages:this.messages,state:this.state,agent:this}))})()}setState(s){this.state=_(s),(async()=>{var t;for(let n of this.subscribers)await((t=n.onStateChanged)==null?void 0:t.call(n,{messages:this.messages,state:this.state,agent:this}))})()}legacy_to_be_removed_runAgentBridged(s){var n;this.agentId=(n=this.agentId)!=null?n:(0,z.v4)();let t=this.prepareRunAgentInput(s);return this.run(t).pipe(ae(this.debug),J(this.debug),ee(this.threadId,t.runId,this.agentId),e=>e.pipe((0,D.map)(o=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(o)),o))))}};var ne=class extends G{constructor(t){var n;super(t);this.abortController=new AbortController;this.url=t.url,this.headers=_((n=t.headers)!=null?n:{})}requestInit(t){return{method:"POST",headers:B(x({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(t),signal:this.abortController.signal}}runAgent(t){var n;return this.abortController=(n=t==null?void 0:t.abortController)!=null?n:new AbortController,super.runAgent(t)}abortRun(){this.abortController.abort(),super.abortRun()}run(t){let n=V(this.url,this.requestInit(t));return b(n)}};I(L,require("@ag-ui/core"),module.exports);0&&(module.exports={AbstractAgent,HttpAgent,convertToLegacyEvents,defaultApplyEvents,parseProtoStream,parseSSEStream,runHttpRequest,transformHttpEventStream,verifyEvents,...require("@ag-ui/core")});
|
|
7
7
|
//# sourceMappingURL=index.js.map
|