@ag-ui/client 0.0.40-alpha.6 → 0.0.40-alpha.8

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/LICENSE CHANGED
@@ -1,8 +1,21 @@
1
- Copyright (c) 2025 Tawkit Inc.
2
- Copyright (c) 2025 Markus Ecker
1
+ MIT License
3
2
 
4
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
3
+ Copyright (c) 2025
5
4
 
6
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
7
11
 
8
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
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';
1
+ import { Message, State, RunAgentInput, BaseEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, ActivitySnapshotEvent, ActivityMessage, ActivityDeltaEvent, 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';
@@ -271,6 +271,15 @@ interface AgentSubscriber {
271
271
  onMessagesSnapshotEvent?(params: {
272
272
  event: MessagesSnapshotEvent;
273
273
  } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
274
+ onActivitySnapshotEvent?(params: {
275
+ event: ActivitySnapshotEvent;
276
+ activityMessage?: ActivityMessage;
277
+ existingMessage?: Message;
278
+ } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
279
+ onActivityDeltaEvent?(params: {
280
+ event: ActivityDeltaEvent;
281
+ activityMessage?: ActivityMessage;
282
+ } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
274
283
  onRawEvent?(params: {
275
284
  event: RawEvent;
276
285
  } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
@@ -360,6 +369,13 @@ declare class HttpAgent extends AbstractAgent {
360
369
  clone(): HttpAgent;
361
370
  }
362
371
 
372
+ declare const structuredClone_: <T>(obj: T) => T;
373
+ /**
374
+ * Generate a random UUID v4
375
+ * Cross-platform compatible (Node.js, browsers, React Native)
376
+ */
377
+ declare function randomUUID(): string;
378
+
363
379
  /**
364
380
  * Compacts streaming events by consolidating multiple deltas into single events.
365
381
  * For text messages: multiple content deltas become one concatenated delta.
@@ -371,4 +387,6 @@ declare class HttpAgent extends AbstractAgent {
371
387
  */
372
388
  declare function compactEvents(events: BaseEvent[]): BaseEvent[];
373
389
 
374
- export { AbstractAgent, type AgentConfig, type AgentStateMutation, type AgentSubscriber, type AgentSubscriberParams, HttpAgent, type HttpAgentConfig, type RunAgentParameters, type RunAgentResult, compactEvents, convertToLegacyEvents, defaultApplyEvents, parseProtoStream, parseSSEStream, runHttpRequest, transformHttpEventStream, verifyEvents };
390
+ declare const transformChunks: (debug: boolean) => (events$: Observable<BaseEvent>) => Observable<BaseEvent>;
391
+
392
+ export { AbstractAgent, type AgentConfig, type AgentStateMutation, type AgentSubscriber, type AgentSubscriberParams, HttpAgent, type HttpAgentConfig, type RunAgentParameters, type RunAgentResult, compactEvents, convertToLegacyEvents, defaultApplyEvents, parseProtoStream, parseSSEStream, randomUUID, runHttpRequest, structuredClone_, transformChunks, transformHttpEventStream, verifyEvents };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
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';
1
+ import { Message, State, RunAgentInput, BaseEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, ActivitySnapshotEvent, ActivityMessage, ActivityDeltaEvent, 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';
@@ -271,6 +271,15 @@ interface AgentSubscriber {
271
271
  onMessagesSnapshotEvent?(params: {
272
272
  event: MessagesSnapshotEvent;
273
273
  } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
274
+ onActivitySnapshotEvent?(params: {
275
+ event: ActivitySnapshotEvent;
276
+ activityMessage?: ActivityMessage;
277
+ existingMessage?: Message;
278
+ } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
279
+ onActivityDeltaEvent?(params: {
280
+ event: ActivityDeltaEvent;
281
+ activityMessage?: ActivityMessage;
282
+ } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
274
283
  onRawEvent?(params: {
275
284
  event: RawEvent;
276
285
  } & AgentSubscriberParams): MaybePromise<AgentStateMutation | void>;
@@ -360,6 +369,13 @@ declare class HttpAgent extends AbstractAgent {
360
369
  clone(): HttpAgent;
361
370
  }
362
371
 
372
+ declare const structuredClone_: <T>(obj: T) => T;
373
+ /**
374
+ * Generate a random UUID v4
375
+ * Cross-platform compatible (Node.js, browsers, React Native)
376
+ */
377
+ declare function randomUUID(): string;
378
+
363
379
  /**
364
380
  * Compacts streaming events by consolidating multiple deltas into single events.
365
381
  * For text messages: multiple content deltas become one concatenated delta.
@@ -371,4 +387,6 @@ declare class HttpAgent extends AbstractAgent {
371
387
  */
372
388
  declare function compactEvents(events: BaseEvent[]): BaseEvent[];
373
389
 
374
- export { AbstractAgent, type AgentConfig, type AgentStateMutation, type AgentSubscriber, type AgentSubscriberParams, HttpAgent, type HttpAgentConfig, type RunAgentParameters, type RunAgentResult, compactEvents, convertToLegacyEvents, defaultApplyEvents, parseProtoStream, parseSSEStream, runHttpRequest, transformHttpEventStream, verifyEvents };
390
+ declare const transformChunks: (debug: boolean) => (events$: Observable<BaseEvent>) => Observable<BaseEvent>;
391
+
392
+ export { AbstractAgent, type AgentConfig, type AgentStateMutation, type AgentSubscriber, type AgentSubscriberParams, HttpAgent, type HttpAgentConfig, type RunAgentParameters, type RunAgentResult, compactEvents, convertToLegacyEvents, defaultApplyEvents, parseProtoStream, parseSSEStream, randomUUID, runHttpRequest, structuredClone_, transformChunks, transformHttpEventStream, verifyEvents };
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- "use strict";var It=Object.create;var z=Object.defineProperty,xt=Object.defineProperties,Lt=Object.getOwnPropertyDescriptor,Ot=Object.getOwnPropertyDescriptors,wt=Object.getOwnPropertyNames,Et=Object.getOwnPropertySymbols,Pt=Object.getPrototypeOf,pt=Object.prototype.hasOwnProperty,Dt=Object.prototype.propertyIsEnumerable;var ut=(l,a,e)=>a in l?z(l,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[a]=e,x=(l,a)=>{for(var e in a||(a={}))pt.call(a,e)&&ut(l,e,a[e]);if(Et)for(var e of Et(a))Dt.call(a,e)&&ut(l,e,a[e]);return l},j=(l,a)=>xt(l,Ot(a));var Ht=(l,a)=>{for(var e in a)z(l,e,{get:a[e],enumerable:!0})},$=(l,a,e,s)=>{if(a&&typeof a=="object"||typeof a=="function")for(let t of wt(a))!pt.call(l,t)&&t!==e&&z(l,t,{get:()=>a[t],enumerable:!(s=Lt(a,t))||s.enumerable});return l},P=(l,a,e)=>($(l,a,"default"),e&&$(e,a,"default")),q=(l,a,e)=>(e=l!=null?It(Pt(l)):{},$(a||!l||!l.__esModule?z(e,"default",{value:l,enumerable:!0}):e,l)),Gt=l=>$(z({},"__esModule",{value:!0}),l);var O={};Ht(O,{AbstractAgent:()=>K,HttpAgent:()=>rt,compactEvents:()=>Nt,convertToLegacyEvents:()=>st,defaultApplyEvents:()=>V,parseProtoStream:()=>tt,parseSSEStream:()=>Z,runHttpRequest:()=>Q,transformHttpEventStream:()=>nt,verifyEvents:()=>B});module.exports=Gt(O);var y=require("@ag-ui/core"),X=require("rxjs/operators"),W=require("rxjs");var C=l=>{if(typeof structuredClone=="function")return structuredClone(l);try{return JSON.parse(JSON.stringify(l))}catch(a){return x({},l)}};var dt=require("fast-json-patch");async function R(l,a,e,s){let t=a,n=e,i;for(let r of l)try{let g=await s(r,C(t),C(n));if(g===void 0)continue;if(g.messages!==void 0&&(t=g.messages),g.state!==void 0&&(n=g.state),i=g.stopPropagation,i===!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(t)!==JSON.stringify(a)?{messages:t}:{}),JSON.stringify(n)!==JSON.stringify(e)?{state:n}:{}),i!==void 0?{stopPropagation:i}:{})}var mt=q(require("untruncate-json")),V=(l,a,e,s)=>{let t=C(l.messages),n=C(l.state),i={},r=u=>{u.messages!==void 0&&(t=u.messages,i.messages=u.messages),u.state!==void 0&&(n=u.state,i.state=u.state)},g=()=>{let u=C(i);return i={},u.messages!==void 0||u.state!==void 0?(0,W.of)(u):W.EMPTY};return a.pipe((0,X.concatMap)(async u=>{var f,v;let S=await R(s,t,n,(o,c,m)=>{var p;return(p=o.onEvent)==null?void 0:p.call(o,{event:u,agent:e,input:l,messages:c,state:m})});if(r(S),S.stopPropagation===!0)return g();switch(u.type){case y.EventType.TEXT_MESSAGE_START:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onTextMessageStartEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});if(r(o),o.stopPropagation!==!0){let{messageId:c,role:m="assistant"}=u,p={id:c,role:m,content:""};t.push(p),r({messages:t})}return g()}case y.EventType.TEXT_MESSAGE_CONTENT:{let{messageId:o,delta:c}=u,m=t.find(E=>E.id===o);if(!m)return console.warn(`TEXT_MESSAGE_CONTENT: No message found with ID '${o}'`),g();let p=await R(s,t,n,(E,_,I)=>{var L,U;return(U=E.onTextMessageContentEvent)==null?void 0:U.call(E,{event:u,messages:_,state:I,agent:e,input:l,textMessageBuffer:(L=m.content)!=null?L:""})});return r(p),p.stopPropagation!==!0&&(m.content=(m.content||"")+c,r({messages:t})),g()}case y.EventType.TEXT_MESSAGE_END:{let{messageId:o}=u,c=t.find(p=>p.id===o);if(!c)return console.warn(`TEXT_MESSAGE_END: No message found with ID '${o}'`),g();let m=await R(s,t,n,(p,E,_)=>{var I,L;return(L=p.onTextMessageEndEvent)==null?void 0:L.call(p,{event:u,messages:E,state:_,agent:e,input:l,textMessageBuffer:(I=c.content)!=null?I:""})});return r(m),await Promise.all(s.map(p=>{var E;(E=p.onNewMessage)==null||E.call(p,{message:c,messages:t,state:n,agent:e,input:l})})),g()}case y.EventType.TOOL_CALL_START:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onToolCallStartEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});if(r(o),o.stopPropagation!==!0){let{toolCallId:c,toolCallName:m,parentMessageId:p}=u,E;p&&t.length>0&&t[t.length-1].id===p?E=t[t.length-1]:(E={id:p||c,role:"assistant",toolCalls:[]},t.push(E)),(f=E.toolCalls)!=null||(E.toolCalls=[]),E.toolCalls.push({id:c,type:"function",function:{name:m,arguments:""}}),r({messages:t})}return g()}case y.EventType.TOOL_CALL_ARGS:{let{toolCallId:o,delta:c}=u,m=t.find(_=>{var I;return(I=_.toolCalls)==null?void 0:I.some(L=>L.id===o)});if(!m)return console.warn(`TOOL_CALL_ARGS: No message found containing tool call with ID '${o}'`),g();let p=m.toolCalls.find(_=>_.id===o);if(!p)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${o}'`),g();let E=await R(s,t,n,(_,I,L)=>{var it;let U=p.function.arguments,J=p.function.name,b={};try{b=(0,mt.default)(U)}catch(Wt){}return(it=_.onToolCallArgsEvent)==null?void 0:it.call(_,{event:u,messages:I,state:L,agent:e,input:l,toolCallBuffer:U,toolCallName:J,partialToolCallArgs:b})});return r(E),E.stopPropagation!==!0&&(p.function.arguments+=c,r({messages:t})),g()}case y.EventType.TOOL_CALL_END:{let{toolCallId:o}=u,c=t.find(E=>{var _;return(_=E.toolCalls)==null?void 0:_.some(I=>I.id===o)});if(!c)return console.warn(`TOOL_CALL_END: No message found containing tool call with ID '${o}'`),g();let m=c.toolCalls.find(E=>E.id===o);if(!m)return console.warn(`TOOL_CALL_END: No tool call found with ID '${o}'`),g();let p=await R(s,t,n,(E,_,I)=>{var b;let L=m.function.arguments,U=m.function.name,J={};try{J=JSON.parse(L)}catch(it){}return(b=E.onToolCallEndEvent)==null?void 0:b.call(E,{event:u,messages:_,state:I,agent:e,input:l,toolCallName:U,toolCallArgs:J})});return r(p),await Promise.all(s.map(E=>{var _;(_=E.onNewToolCall)==null||_.call(E,{toolCall:m,messages:t,state:n,agent:e,input:l})})),g()}case y.EventType.TOOL_CALL_RESULT:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onToolCallResultEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});if(r(o),o.stopPropagation!==!0){let{messageId:c,toolCallId:m,content:p,role:E}=u,_={id:c,toolCallId:m,role:E||"tool",content:p};t.push(_),await Promise.all(s.map(I=>{var L;(L=I.onNewMessage)==null||L.call(I,{message:_,messages:t,state:n,agent:e,input:l})})),r({messages:t})}return g()}case y.EventType.STATE_SNAPSHOT:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onStateSnapshotEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});if(r(o),o.stopPropagation!==!0){let{snapshot:c}=u;n=c,r({state:n})}return g()}case y.EventType.STATE_DELTA:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onStateDeltaEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});if(r(o),o.stopPropagation!==!0){let{delta:c}=u;try{n=(0,dt.applyPatch)(n,c,!0,!1).newDocument,r({state:n})}catch(m){let p=m instanceof Error?m.message:String(m);console.warn(`Failed to apply state patch:
1
+ "use strict";var Ot=Object.create;var $=Object.defineProperty,wt=Object.defineProperties,Pt=Object.getOwnPropertyDescriptor,Dt=Object.getOwnPropertyDescriptors,Ht=Object.getOwnPropertyNames,pt=Object.getOwnPropertySymbols,Gt=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty,Ft=Object.prototype.propertyIsEnumerable;var dt=(i,s,e)=>s in i?$(i,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[s]=e,L=(i,s)=>{for(var e in s||(s={}))mt.call(s,e)&&dt(i,e,s[e]);if(pt)for(var e of pt(s))Ft.call(s,e)&&dt(i,e,s[e]);return i},X=(i,s)=>wt(i,Dt(s));var Ut=(i,s)=>{for(var e in s)$(i,e,{get:s[e],enumerable:!0})},Y=(i,s,e,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of Ht(s))!mt.call(i,t)&&t!==e&&$(i,t,{get:()=>s[t],enumerable:!(a=Pt(s,t))||a.enumerable});return i},D=(i,s,e)=>(Y(i,s,"default"),e&&Y(e,s,"default")),W=(i,s,e)=>(e=i!=null?Ot(Gt(i)):{},Y(s||!i||!i.__esModule?$(e,"default",{value:i,enumerable:!0}):e,i)),Xt=i=>Y($({},"__esModule",{value:!0}),i);var P={};Ut(P,{AbstractAgent:()=>z,HttpAgent:()=>it,compactEvents:()=>Lt,convertToLegacyEvents:()=>ot,defaultApplyEvents:()=>Q,parseProtoStream:()=>nt,parseSSEStream:()=>et,randomUUID:()=>Bt,runHttpRequest:()=>tt,structuredClone_:()=>R,transformChunks:()=>V,transformHttpEventStream:()=>at,verifyEvents:()=>K});module.exports=Xt(P);var _=require("@ag-ui/core"),k=require("rxjs/operators"),q=require("rxjs");var ft=require("uuid");var R=i=>{if(typeof structuredClone=="function")return structuredClone(i);try{return JSON.parse(JSON.stringify(i))}catch(s){return L({},i)}};function Bt(){return(0,ft.v4)()}var gt=require("fast-json-patch");async function x(i,s,e,a){let t=s,n=e,r;for(let o of i)try{let l=await a(o,R(t),R(n));if(l===void 0)continue;if(l.messages!==void 0&&(t=l.messages),l.state!==void 0&&(n=l.state),r=l.stopPropagation,r===!0)break}catch(l){process.env.NODE_ENV==="test"||process.env.JEST_WORKER_ID!==void 0||console.error("Subscriber error:",l);continue}return L(L(L({},JSON.stringify(t)!==JSON.stringify(s)?{messages:t}:{}),JSON.stringify(n)!==JSON.stringify(e)?{state:n}:{}),r!==void 0?{stopPropagation:r}:{})}var Tt=W(require("untruncate-json"));var Q=(i,s,e,a)=>{let t=R(i.messages),n=R(i.state),r={},o=d=>{d.messages!==void 0&&(t=d.messages,r.messages=d.messages),d.state!==void 0&&(n=d.state,r.state=d.state)},l=()=>{let d=R(r);return r={},d.messages!==void 0||d.state!==void 0?(0,q.of)(d):q.EMPTY};return s.pipe((0,k.concatMap)(async d=>{var T,y,c;let A=await x(a,t,n,(u,g,p)=>{var m;return(m=u.onEvent)==null?void 0:m.call(u,{event:d,agent:e,input:i,messages:g,state:p})});if(o(A),A.stopPropagation===!0)return l();switch(d.type){case _.EventType.TEXT_MESSAGE_START:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onTextMessageStartEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});if(o(u),u.stopPropagation!==!0){let{messageId:g,role:p="assistant"}=d,m={id:g,role:p,content:""};t.push(m),o({messages:t})}return l()}case _.EventType.TEXT_MESSAGE_CONTENT:{let{messageId:u,delta:g}=d,p=t.find(E=>E.id===u);if(!p)return console.warn(`TEXT_MESSAGE_CONTENT: No message found with ID '${u}'`),l();let m=await x(a,t,n,(E,S,C)=>{var N;return(N=E.onTextMessageContentEvent)==null?void 0:N.call(E,{event:d,messages:S,state:C,agent:e,input:i,textMessageBuffer:typeof p.content=="string"?p.content:""})});if(o(m),m.stopPropagation!==!0){let E=typeof p.content=="string"?p.content:"";p.content=`${E}${g}`,o({messages:t})}return l()}case _.EventType.TEXT_MESSAGE_END:{let{messageId:u}=d,g=t.find(m=>m.id===u);if(!g)return console.warn(`TEXT_MESSAGE_END: No message found with ID '${u}'`),l();let p=await x(a,t,n,(m,E,S)=>{var C;return(C=m.onTextMessageEndEvent)==null?void 0:C.call(m,{event:d,messages:E,state:S,agent:e,input:i,textMessageBuffer:typeof g.content=="string"?g.content:""})});return o(p),await Promise.all(a.map(m=>{var E;(E=m.onNewMessage)==null||E.call(m,{message:g,messages:t,state:n,agent:e,input:i})})),l()}case _.EventType.TOOL_CALL_START:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onToolCallStartEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});if(o(u),u.stopPropagation!==!0){let{toolCallId:g,toolCallName:p,parentMessageId:m}=d,E;m&&t.length>0&&t[t.length-1].id===m?E=t[t.length-1]:(E={id:m||g,role:"assistant",toolCalls:[]},t.push(E)),(T=E.toolCalls)!=null||(E.toolCalls=[]),E.toolCalls.push({id:g,type:"function",function:{name:p,arguments:""}}),o({messages:t})}return l()}case _.EventType.TOOL_CALL_ARGS:{let{toolCallId:u,delta:g}=d,p=t.find(S=>{var C;return(C=S.toolCalls)==null?void 0:C.some(N=>N.id===u)});if(!p)return console.warn(`TOOL_CALL_ARGS: No message found containing tool call with ID '${u}'`),l();let m=p.toolCalls.find(S=>S.id===u);if(!m)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${u}'`),l();let E=await x(a,t,n,(S,C,N)=>{var lt;let w=m.function.arguments,b=m.function.name,J={};try{J=(0,Tt.default)(w)}catch(te){}return(lt=S.onToolCallArgsEvent)==null?void 0:lt.call(S,{event:d,messages:C,state:N,agent:e,input:i,toolCallBuffer:w,toolCallName:b,partialToolCallArgs:J})});return o(E),E.stopPropagation!==!0&&(m.function.arguments+=g,o({messages:t})),l()}case _.EventType.TOOL_CALL_END:{let{toolCallId:u}=d,g=t.find(E=>{var S;return(S=E.toolCalls)==null?void 0:S.some(C=>C.id===u)});if(!g)return console.warn(`TOOL_CALL_END: No message found containing tool call with ID '${u}'`),l();let p=g.toolCalls.find(E=>E.id===u);if(!p)return console.warn(`TOOL_CALL_END: No tool call found with ID '${u}'`),l();let m=await x(a,t,n,(E,S,C)=>{var J;let N=p.function.arguments,w=p.function.name,b={};try{b=JSON.parse(N)}catch(lt){}return(J=E.onToolCallEndEvent)==null?void 0:J.call(E,{event:d,messages:S,state:C,agent:e,input:i,toolCallName:w,toolCallArgs:b})});return o(m),await Promise.all(a.map(E=>{var S;(S=E.onNewToolCall)==null||S.call(E,{toolCall:p,messages:t,state:n,agent:e,input:i})})),l()}case _.EventType.TOOL_CALL_RESULT:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onToolCallResultEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});if(o(u),u.stopPropagation!==!0){let{messageId:g,toolCallId:p,content:m,role:E}=d,S={id:g,toolCallId:p,role:E||"tool",content:m};t.push(S),await Promise.all(a.map(C=>{var N;(N=C.onNewMessage)==null||N.call(C,{message:S,messages:t,state:n,agent:e,input:i})})),o({messages:t})}return l()}case _.EventType.STATE_SNAPSHOT:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onStateSnapshotEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});if(o(u),u.stopPropagation!==!0){let{snapshot:g}=d;n=g,o({state:n})}return l()}case _.EventType.STATE_DELTA:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onStateDeltaEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});if(o(u),u.stopPropagation!==!0){let{delta:g}=d;try{n=(0,gt.applyPatch)(n,g,!0,!1).newDocument,o({state:n})}catch(p){let m=p instanceof Error?p.message:String(p);console.warn(`Failed to apply state patch:
2
2
  Current state: ${JSON.stringify(n,null,2)}
3
- Patch operations: ${JSON.stringify(c,null,2)}
4
- Error: ${p}`)}}return g()}case y.EventType.MESSAGES_SNAPSHOT:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onMessagesSnapshotEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});if(r(o),o.stopPropagation!==!0){let{messages:c}=u;t=c,r({messages:t})}return g()}case y.EventType.RAW:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onRawEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});return r(o),g()}case y.EventType.CUSTOM:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onCustomEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});return r(o),g()}case y.EventType.RUN_STARTED:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onRunStartedEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});if(r(o),o.stopPropagation!==!0){let c=u;if((v=c.input)!=null&&v.messages){for(let m of c.input.messages)t.find(E=>E.id===m.id)||t.push(m);r({messages:t})}}return g()}case y.EventType.RUN_FINISHED:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onRunFinishedEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l,result:u.result})});return r(o),g()}case y.EventType.RUN_ERROR:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onRunErrorEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});return r(o),g()}case y.EventType.STEP_STARTED:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onStepStartedEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});return r(o),g()}case y.EventType.STEP_FINISHED:{let o=await R(s,t,n,(c,m,p)=>{var E;return(E=c.onStepFinishedEvent)==null?void 0:E.call(c,{event:u,messages:m,state:p,agent:e,input:l})});return r(o),g()}case y.EventType.TEXT_MESSAGE_CHUNK:throw new Error("TEXT_MESSAGE_CHUNK must be tranformed before being applied");case y.EventType.TOOL_CALL_CHUNK:throw new Error("TOOL_CALL_CHUNK must be tranformed before being applied");case y.EventType.THINKING_START:return g();case y.EventType.THINKING_END:return g();case y.EventType.THINKING_TEXT_MESSAGE_START:return g();case y.EventType.THINKING_TEXT_MESSAGE_CONTENT:return g();case y.EventType.THINKING_TEXT_MESSAGE_END:return g()}let w=u.type;return g()}),(0,X.mergeAll)(),s.length>0?(0,X.defaultIfEmpty)({}):u=>u)};var T=require("@ag-ui/core"),A=require("rxjs"),ft=require("rxjs/operators"),B=l=>a=>{let e=new Map,s=new Map,t=!1,n=!1,i=!1,r=new Map,g=!1,u=!1,S=!1,w=()=>{e.clear(),s.clear(),r.clear(),g=!1,u=!1,t=!1,n=!1,S=!0};return a.pipe((0,ft.mergeMap)(f=>{let v=f.type;if(l&&console.debug("[VERIFY]:",JSON.stringify(f)),n)return(0,A.throwError)(()=>new T.AGUIError(`Cannot send event type '${v}': The run has already errored with 'RUN_ERROR'. No further events can be sent.`));if(t&&v!==T.EventType.RUN_ERROR&&v!==T.EventType.RUN_STARTED)return(0,A.throwError)(()=>new T.AGUIError(`Cannot send event type '${v}': The run has already finished with 'RUN_FINISHED'. Start a new run with 'RUN_STARTED'.`));if(i){if(v===T.EventType.RUN_STARTED){if(S&&!t)return(0,A.throwError)(()=>new T.AGUIError("Cannot send 'RUN_STARTED' while a run is still active. The previous run must be finished with 'RUN_FINISHED' before starting a new run."));t&&w()}}else if(i=!0,v!==T.EventType.RUN_STARTED&&v!==T.EventType.RUN_ERROR)return(0,A.throwError)(()=>new T.AGUIError("First event must be 'RUN_STARTED'"));switch(v){case T.EventType.TEXT_MESSAGE_START:{let o=f.messageId;return e.has(o)?(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'TEXT_MESSAGE_START' event: A text message with ID '${o}' is already in progress. Complete it with 'TEXT_MESSAGE_END' first.`)):(e.set(o,!0),(0,A.of)(f))}case T.EventType.TEXT_MESSAGE_CONTENT:{let o=f.messageId;return e.has(o)?(0,A.of)(f):(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'TEXT_MESSAGE_CONTENT' event: No active text message found with ID '${o}'. Start a text message with 'TEXT_MESSAGE_START' first.`))}case T.EventType.TEXT_MESSAGE_END:{let o=f.messageId;return e.has(o)?(e.delete(o),(0,A.of)(f)):(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'TEXT_MESSAGE_END' event: No active text message found with ID '${o}'. A 'TEXT_MESSAGE_START' event must be sent first.`))}case T.EventType.TOOL_CALL_START:{let o=f.toolCallId;return s.has(o)?(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'TOOL_CALL_START' event: A tool call with ID '${o}' is already in progress. Complete it with 'TOOL_CALL_END' first.`)):(s.set(o,!0),(0,A.of)(f))}case T.EventType.TOOL_CALL_ARGS:{let o=f.toolCallId;return s.has(o)?(0,A.of)(f):(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'TOOL_CALL_ARGS' event: No active tool call found with ID '${o}'. Start a tool call with 'TOOL_CALL_START' first.`))}case T.EventType.TOOL_CALL_END:{let o=f.toolCallId;return s.has(o)?(s.delete(o),(0,A.of)(f)):(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'TOOL_CALL_END' event: No active tool call found with ID '${o}'. A 'TOOL_CALL_START' event must be sent first.`))}case T.EventType.STEP_STARTED:{let o=f.stepName;return r.has(o)?(0,A.throwError)(()=>new T.AGUIError(`Step "${o}" is already active for 'STEP_STARTED'`)):(r.set(o,!0),(0,A.of)(f))}case T.EventType.STEP_FINISHED:{let o=f.stepName;return r.has(o)?(r.delete(o),(0,A.of)(f)):(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'STEP_FINISHED' for step "${o}" that was not started`))}case T.EventType.RUN_STARTED:return S=!0,(0,A.of)(f);case T.EventType.RUN_FINISHED:{if(r.size>0){let o=Array.from(r.keys()).join(", ");return(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'RUN_FINISHED' while steps are still active: ${o}`))}if(e.size>0){let o=Array.from(e.keys()).join(", ");return(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'RUN_FINISHED' while text messages are still active: ${o}`))}if(s.size>0){let o=Array.from(s.keys()).join(", ");return(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'RUN_FINISHED' while tool calls are still active: ${o}`))}return t=!0,(0,A.of)(f)}case T.EventType.RUN_ERROR:return n=!0,(0,A.of)(f);case T.EventType.CUSTOM:return(0,A.of)(f);case T.EventType.THINKING_TEXT_MESSAGE_START:return g?u?(0,A.throwError)(()=>new T.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,A.of)(f)):(0,A.throwError)(()=>new T.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking step is not in progress. Create one with 'THINKING_START' first."));case T.EventType.THINKING_TEXT_MESSAGE_CONTENT:return u?(0,A.of)(f):(0,A.throwError)(()=>new T.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_CONTENT' event: No active thinking message found. Start a message with 'THINKING_TEXT_MESSAGE_START' first."));case T.EventType.THINKING_TEXT_MESSAGE_END:return u?(u=!1,(0,A.of)(f)):(0,A.throwError)(()=>new T.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_END' event: No active thinking message found. A 'THINKING_TEXT_MESSAGE_START' event must be sent first."));case T.EventType.THINKING_START:return g?(0,A.throwError)(()=>new T.AGUIError("Cannot send 'THINKING_START' event: A thinking step is already in progress. End it with 'THINKING_END' first.")):(g=!0,(0,A.of)(f));case T.EventType.THINKING_END:return g?(g=!1,(0,A.of)(f)):(0,A.throwError)(()=>new T.AGUIError("Cannot send 'THINKING_END' event: No active thinking step found. A 'THINKING_START' event must be sent first."));default:return(0,A.of)(f)}}))};var vt=require("@ag-ui/core"),et=require("rxjs");var D=require("rxjs"),Y=require("rxjs/operators");var Q=(l,a)=>(0,D.defer)(()=>(0,D.from)(fetch(l,a))).pipe((0,Y.switchMap)(e=>{var n;if(!e.ok){let i=e.headers.get("content-type")||"";return(0,D.from)(e.text()).pipe((0,Y.mergeMap)(r=>{let g=r;if(i.includes("application/json"))try{g=JSON.parse(r)}catch(S){}let u=new Error(`HTTP ${e.status}: ${typeof g=="string"?g:JSON.stringify(g)}`);return u.status=e.status,u.payload=g,(0,D.throwError)(()=>u)}))}let s={type:"headers",status:e.status,headers:e.headers},t=(n=e.body)==null?void 0:n.getReader();return t?new D.Observable(i=>(i.next(s),(async()=>{try{for(;;){let{done:r,value:g}=await t.read();if(r)break;let u={type:"data",data:g};i.next(u)}i.complete()}catch(r){i.error(r)}})(),()=>{t.cancel()})):(0,D.throwError)(()=>new Error("Failed to getReader() from response"))}));var St=require("rxjs");var Z=l=>{let a=new St.Subject,e=new TextDecoder("utf-8",{fatal:!1}),s="";l.subscribe({next:n=>{if(n.type!=="headers"&&n.type==="data"&&n.data){let i=e.decode(n.data,{stream:!0});s+=i;let r=s.split(/\n\n/);s=r.pop()||"";for(let g of r)t(g)}},error:n=>a.error(n),complete:()=>{s&&(s+=e.decode(),t(s)),a.complete()}});function t(n){let i=n.split(`
5
- `),r=[];for(let g of i)g.startsWith("data: ")&&r.push(g.slice(6));if(r.length>0)try{let g=r.join(`
6
- `),u=JSON.parse(g);a.next(u)}catch(g){a.error(g)}}return a.asObservable()};var Tt=require("rxjs");var At=q(require("@ag-ui/proto")),tt=l=>{let a=new Tt.Subject,e=new Uint8Array(0);l.subscribe({next:t=>{if(t.type!=="headers"&&t.type==="data"&&t.data){let n=new Uint8Array(e.length+t.data.length);n.set(e,0),n.set(t.data,e.length),e=n,s()}},error:t=>a.error(t),complete:()=>{if(e.length>0)try{s()}catch(t){console.warn("Incomplete or invalid protocol buffer data at stream end")}a.complete()}});function s(){for(;e.length>=4;){let i=4+new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1);if(e.length<i)break;try{let r=e.slice(4,i),g=At.decode(r);a.next(g),e=e.slice(i)}catch(r){let g=r instanceof Error?r.message:String(r);a.error(new Error(`Failed to decode protocol buffer message: ${g}`));return}}}return a.asObservable()};var ht=q(require("@ag-ui/proto")),nt=l=>{let a=new et.Subject,e=new et.ReplaySubject,s=!1;return l.subscribe({next:t=>{e.next(t),t.type==="headers"&&!s?(s=!0,t.headers.get("content-type")===ht.AGUI_MEDIA_TYPE?tt(e).subscribe({next:i=>a.next(i),error:i=>a.error(i),complete:()=>a.complete()}):Z(e).subscribe({next:i=>{try{let r=vt.EventSchemas.parse(i);a.next(r)}catch(r){a.error(r)}},error:i=>a.error(i),complete:()=>a.complete()})):s||a.error(new Error("No headers event received before data events"))},error:t=>{e.error(t),a.error(t)},complete:()=>{e.complete()}}),a.asObservable()};var Mt=require("rxjs/operators"),yt=require("fast-json-patch"),N=require("@ag-ui/core");var d=require("zod"),M=d.z.enum(["TextMessageStart","TextMessageContent","TextMessageEnd","ActionExecutionStart","ActionExecutionArgs","ActionExecutionEnd","ActionExecutionResult","AgentStateMessage","MetaEvent","RunStarted","RunFinished","RunError","NodeStarted","NodeFinished"]),Ft=d.z.enum(["LangGraphInterruptEvent","PredictState","Exit"]),Ut=d.z.object({type:d.z.literal(M.enum.TextMessageStart),messageId:d.z.string(),parentMessageId:d.z.string().optional(),role:d.z.string().optional()}),Xt=d.z.object({type:d.z.literal(M.enum.TextMessageContent),messageId:d.z.string(),content:d.z.string()}),Bt=d.z.object({type:d.z.literal(M.enum.TextMessageEnd),messageId:d.z.string()}),kt=d.z.object({type:d.z.literal(M.enum.ActionExecutionStart),actionExecutionId:d.z.string(),actionName:d.z.string(),parentMessageId:d.z.string().optional()}),Kt=d.z.object({type:d.z.literal(M.enum.ActionExecutionArgs),actionExecutionId:d.z.string(),args:d.z.string()}),bt=d.z.object({type:d.z.literal(M.enum.ActionExecutionEnd),actionExecutionId:d.z.string()}),zt=d.z.object({type:d.z.literal(M.enum.ActionExecutionResult),actionName:d.z.string(),actionExecutionId:d.z.string(),result:d.z.string()}),jt=d.z.object({type:d.z.literal(M.enum.AgentStateMessage),threadId:d.z.string(),agentName:d.z.string(),nodeName:d.z.string(),runId:d.z.string(),active:d.z.boolean(),role:d.z.string(),state:d.z.string(),running:d.z.boolean()}),Jt=d.z.object({type:d.z.literal(M.enum.MetaEvent),name:Ft,value:d.z.any()}),$t=d.z.object({type:d.z.literal(M.enum.RunError),message:d.z.string(),code:d.z.string().optional()}),nn=d.z.discriminatedUnion("type",[Ut,Xt,Bt,kt,Kt,bt,zt,jt,Jt,$t]),sn=d.z.object({id:d.z.string(),role:d.z.string(),content:d.z.string(),parentMessageId:d.z.string().optional()}),an=d.z.object({id:d.z.string(),name:d.z.string(),arguments:d.z.any(),parentMessageId:d.z.string().optional()}),on=d.z.object({id:d.z.string(),result:d.z.any(),actionExecutionId:d.z.string(),actionName:d.z.string()});var Ct=q(require("untruncate-json"));var st=(l,a,e)=>s=>{let t={},n=!0,i=!0,r="",g=null,u=null,S=[],w={},f=v=>{typeof v=="object"&&v!==null&&("messages"in v&&delete v.messages,t=v)};return s.pipe((0,Mt.mergeMap)(v=>{switch(v.type){case N.EventType.TEXT_MESSAGE_START:{let o=v;return[{type:M.enum.TextMessageStart,messageId:o.messageId,role:o.role}]}case N.EventType.TEXT_MESSAGE_CONTENT:{let o=v;return[{type:M.enum.TextMessageContent,messageId:o.messageId,content:o.delta}]}case N.EventType.TEXT_MESSAGE_END:{let o=v;return[{type:M.enum.TextMessageEnd,messageId:o.messageId}]}case N.EventType.TOOL_CALL_START:{let o=v;return S.push({id:o.toolCallId,type:"function",function:{name:o.toolCallName,arguments:""}}),i=!0,w[o.toolCallId]=o.toolCallName,[{type:M.enum.ActionExecutionStart,actionExecutionId:o.toolCallId,actionName:o.toolCallName,parentMessageId:o.parentMessageId}]}case N.EventType.TOOL_CALL_ARGS:{let o=v,c=S.find(p=>p.id===o.toolCallId);if(!c)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${o.toolCallId}'`),[];c.function.arguments+=o.delta;let m=!1;if(u){let p=u.find(E=>E.tool==c.function.name);if(p)try{let E=JSON.parse((0,Ct.default)(c.function.arguments));p.tool_argument&&p.tool_argument in E?(f(j(x({},t),{[p.state_key]:E[p.tool_argument]})),m=!0):p.tool_argument||(f(j(x({},t),{[p.state_key]:E})),m=!0)}catch(E){}}return[{type:M.enum.ActionExecutionArgs,actionExecutionId:o.toolCallId,args:o.delta},...m?[{type:M.enum.AgentStateMessage,threadId:l,agentName:e,nodeName:r,runId:a,running:n,role:"assistant",state:JSON.stringify(t),active:i}]:[]]}case N.EventType.TOOL_CALL_END:{let o=v;return[{type:M.enum.ActionExecutionEnd,actionExecutionId:o.toolCallId}]}case N.EventType.TOOL_CALL_RESULT:{let o=v;return[{type:M.enum.ActionExecutionResult,actionExecutionId:o.toolCallId,result:o.content,actionName:w[o.toolCallId]||"unknown"}]}case N.EventType.RAW:return[];case N.EventType.CUSTOM:{let o=v;switch(o.name){case"Exit":n=!1;break;case"PredictState":u=o.value;break}return[{type:M.enum.MetaEvent,name:o.name,value:o.value}]}case N.EventType.STATE_SNAPSHOT:return f(v.snapshot),[{type:M.enum.AgentStateMessage,threadId:l,agentName:e,nodeName:r,runId:a,running:n,role:"assistant",state:JSON.stringify(t),active:i}];case N.EventType.STATE_DELTA:{let c=(0,yt.applyPatch)(t,v.delta,!0,!1);return c?(f(c.newDocument),[{type:M.enum.AgentStateMessage,threadId:l,agentName:e,nodeName:r,runId:a,running:n,role:"assistant",state:JSON.stringify(t),active:i}]):[]}case N.EventType.MESSAGES_SNAPSHOT:return g=v.messages,[{type:M.enum.AgentStateMessage,threadId:l,agentName:e,nodeName:r,runId:a,running:n,role:"assistant",state:JSON.stringify(x(x({},t),g?{messages:g}:{})),active:!0}];case N.EventType.RUN_STARTED:return[];case N.EventType.RUN_FINISHED:return g&&(t.messages=g),Object.keys(t).length===0?[]:[{type:M.enum.AgentStateMessage,threadId:l,agentName:e,nodeName:r,runId:a,running:n,role:"assistant",state:JSON.stringify(x(x({},t),g?{messages:qt(g)}:{})),active:!1}];case N.EventType.RUN_ERROR:{let o=v;return[{type:M.enum.RunError,message:o.message,code:o.code}]}case N.EventType.STEP_STARTED:return r=v.stepName,S=[],u=null,[{type:M.enum.AgentStateMessage,threadId:l,agentName:e,nodeName:r,runId:a,running:n,role:"assistant",state:JSON.stringify(t),active:!0}];case N.EventType.STEP_FINISHED:return S=[],u=null,[{type:M.enum.AgentStateMessage,threadId:l,agentName:e,nodeName:r,runId:a,running:n,role:"assistant",state:JSON.stringify(t),active:!1}];default:return[]}}))};function qt(l){var e;let a=[];for(let s of l)if(s.role==="assistant"||s.role==="user"||s.role==="system"){if(s.content){let t={id:s.id,role:s.role,content:s.content};a.push(t)}if(s.role==="assistant"&&s.toolCalls&&s.toolCalls.length>0)for(let t of s.toolCalls){let n={id:t.id,name:t.function.name,arguments:JSON.parse(t.function.arguments),parentMessageId:s.id};a.push(n)}}else if(s.role==="tool"){let t="unknown";for(let i of l)if(i.role==="assistant"&&((e=i.toolCalls)!=null&&e.length)){for(let r of i.toolCalls)if(r.id===s.toolCallId){t=r.function.name;break}}let n={id:s.id,result:s.content,actionExecutionId:s.toolCallId,actionName:t};a.push(n)}return a}var k=require("uuid");var F=require("rxjs/operators"),lt=require("rxjs/operators"),H=require("rxjs");var gt=require("rxjs");var at=require("rxjs"),h=require("@ag-ui/core"),ot=l=>a=>{let e,s,t,n=()=>{if(!e||t!=="text")throw new Error("No text message to close");let g={type:h.EventType.TEXT_MESSAGE_END,messageId:e.messageId};return t=void 0,e=void 0,l&&console.debug("[TRANSFORM]: TEXT_MESSAGE_END",JSON.stringify(g)),g},i=()=>{if(!s||t!=="tool")throw new Error("No tool call to close");let g={type:h.EventType.TOOL_CALL_END,toolCallId:s.toolCallId};return t=void 0,s=void 0,l&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(g)),g},r=()=>t==="text"?[n()]:t==="tool"?[i()]:[];return a.pipe((0,at.mergeMap)(g=>{switch(g.type){case h.EventType.TEXT_MESSAGE_START:case h.EventType.TEXT_MESSAGE_CONTENT:case h.EventType.TEXT_MESSAGE_END:case h.EventType.TOOL_CALL_START:case h.EventType.TOOL_CALL_ARGS:case h.EventType.TOOL_CALL_END:case h.EventType.TOOL_CALL_RESULT:case h.EventType.STATE_SNAPSHOT:case h.EventType.STATE_DELTA:case h.EventType.MESSAGES_SNAPSHOT:case h.EventType.CUSTOM:case h.EventType.RUN_STARTED:case h.EventType.RUN_FINISHED:case h.EventType.RUN_ERROR:case h.EventType.STEP_STARTED:case h.EventType.STEP_FINISHED:case h.EventType.THINKING_START:case h.EventType.THINKING_END:case h.EventType.THINKING_TEXT_MESSAGE_START:case h.EventType.THINKING_TEXT_MESSAGE_CONTENT:case h.EventType.THINKING_TEXT_MESSAGE_END:return[...r(),g];case h.EventType.RAW:return[g];case h.EventType.TEXT_MESSAGE_CHUNK:let S=g,w=[];if((t!=="text"||S.messageId!==void 0&&S.messageId!==(e==null?void 0:e.messageId))&&w.push(...r()),t!=="text"){if(S.messageId===void 0)throw new Error("First TEXT_MESSAGE_CHUNK must have a messageId");e={messageId:S.messageId},t="text";let o={type:h.EventType.TEXT_MESSAGE_START,messageId:S.messageId,role:S.role||"assistant"};w.push(o),l&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(o))}if(S.delta!==void 0){let o={type:h.EventType.TEXT_MESSAGE_CONTENT,messageId:e.messageId,delta:S.delta};w.push(o),l&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(o))}return w;case h.EventType.TOOL_CALL_CHUNK:let f=g,v=[];if((t!=="tool"||f.toolCallId!==void 0&&f.toolCallId!==(s==null?void 0:s.toolCallId))&&v.push(...r()),t!=="tool"){if(f.toolCallId===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallId");if(f.toolCallName===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallName");s={toolCallId:f.toolCallId,toolCallName:f.toolCallName,parentMessageId:f.parentMessageId},t="tool";let o={type:h.EventType.TOOL_CALL_START,toolCallId:f.toolCallId,toolCallName:f.toolCallName,parentMessageId:f.parentMessageId};v.push(o),l&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(o))}if(f.delta!==void 0){let o={type:h.EventType.TOOL_CALL_ARGS,toolCallId:s.toolCallId,delta:f.delta};v.push(o),l&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(o))}return v}let u=g.type}),(0,at.finalize)(()=>r()))};var ct=require("@ag-ui/core"),K=class{constructor({agentId:a,description:e,threadId:s,initialMessages:t,initialState:n,debug:i}={}){this.debug=!1;this.subscribers=[];this.isRunning=!1;this.agentId=a,this.description=e!=null?e:"",this.threadId=s!=null?s:(0,k.v4)(),this.messages=C(t!=null?t:[]),this.state=C(n!=null?n:{}),this.debug=i!=null?i:!1}subscribe(a){return this.subscribers.push(a),{unsubscribe:()=>{this.subscribers=this.subscribers.filter(e=>e!==a)}}}async runAgent(a,e){var s;try{this.isRunning=!0,this.agentId=(s=this.agentId)!=null?s:(0,k.v4)();let t=this.prepareRunAgentInput(a),n,i=new Set(this.messages.map(S=>S.id)),r=[{onRunFinishedEvent:S=>{n=S.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,r);let g=(0,H.pipe)(()=>this.run(t),ot(this.debug),B(this.debug),S=>this.apply(t,S,r),S=>this.processApplyEvents(t,S,r),(0,F.catchError)(S=>(this.isRunning=!1,this.onError(t,S,r))),(0,lt.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,r)}));await(0,gt.lastValueFrom)(g((0,H.of)(null)));let u=C(this.messages).filter(S=>!i.has(S.id));return{result:n,newMessages:u}}finally{this.isRunning=!1}}connect(a){throw new ct.AGUIConnectNotImplementedError}async connectAgent(a,e){var s;try{this.isRunning=!0,this.agentId=(s=this.agentId)!=null?s:(0,k.v4)();let t=this.prepareRunAgentInput(a),n,i=new Set(this.messages.map(S=>S.id)),r=[{onRunFinishedEvent:S=>{n=S.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,r);let g=(0,H.pipe)(()=>this.connect(t),ot(this.debug),B(this.debug),S=>this.apply(t,S,r),S=>this.processApplyEvents(t,S,r),(0,F.catchError)(S=>(this.isRunning=!1,S instanceof ct.AGUIConnectNotImplementedError?H.EMPTY:this.onError(t,S,r))),(0,lt.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,r)}));await(0,gt.lastValueFrom)(g((0,H.of)(null)));let u=C(this.messages).filter(S=>!i.has(S.id));return{result:n,newMessages:u}}finally{this.isRunning=!1}}abortRun(){}apply(a,e,s){return V(a,e,this,s)}processApplyEvents(a,e,s){return e.pipe((0,F.tap)(t=>{t.messages&&(this.messages=t.messages,s.forEach(n=>{var i;(i=n.onMessagesChanged)==null||i.call(n,{messages:this.messages,state:this.state,agent:this,input:a})})),t.state&&(this.state=t.state,s.forEach(n=>{var i;(i=n.onStateChanged)==null||i.call(n,{state:this.state,messages:this.messages,agent:this,input:a})}))}))}prepareRunAgentInput(a){var e,s,t;return{threadId:this.threadId,runId:(a==null?void 0:a.runId)||(0,k.v4)(),tools:C((e=a==null?void 0:a.tools)!=null?e:[]),context:C((s=a==null?void 0:a.context)!=null?s:[]),forwardedProps:C((t=a==null?void 0:a.forwardedProps)!=null?t:{}),state:C(this.state),messages:C(this.messages)}}async onInitialize(a,e){let s=await R(e,this.messages,this.state,(t,n,i)=>{var r;return(r=t.onRunInitialized)==null?void 0:r.call(t,{messages:n,state:i,agent:this,input:a})});(s.messages!==void 0||s.state!==void 0)&&(s.messages&&(this.messages=s.messages,a.messages=s.messages,e.forEach(t=>{var n;(n=t.onMessagesChanged)==null||n.call(t,{messages:this.messages,state:this.state,agent:this,input:a})})),s.state&&(this.state=s.state,a.state=s.state,e.forEach(t=>{var n;(n=t.onStateChanged)==null||n.call(t,{state:this.state,messages:this.messages,agent:this,input:a})})))}onError(a,e,s){return(0,H.from)(R(s,this.messages,this.state,(t,n,i)=>{var r;return(r=t.onRunFailed)==null?void 0:r.call(t,{error:e,messages:n,state:i,agent:this,input:a})})).pipe((0,F.map)(t=>{let n=t;if((n.messages!==void 0||n.state!==void 0)&&(n.messages!==void 0&&(this.messages=n.messages,s.forEach(i=>{var r;(r=i.onMessagesChanged)==null||r.call(i,{messages:this.messages,state:this.state,agent:this,input:a})})),n.state!==void 0&&(this.state=n.state,s.forEach(i=>{var r;(r=i.onStateChanged)==null||r.call(i,{state:this.state,messages:this.messages,agent:this,input:a})}))),n.stopPropagation!==!0)throw console.error("Agent execution failed:",e),e;return{}}))}async onFinalize(a,e){let s=await R(e,this.messages,this.state,(t,n,i)=>{var r;return(r=t.onRunFinalized)==null?void 0:r.call(t,{messages:n,state:i,agent:this,input:a})});(s.messages!==void 0||s.state!==void 0)&&(s.messages!==void 0&&(this.messages=s.messages,e.forEach(t=>{var n;(n=t.onMessagesChanged)==null||n.call(t,{messages:this.messages,state:this.state,agent:this,input:a})})),s.state!==void 0&&(this.state=s.state,e.forEach(t=>{var n;(n=t.onStateChanged)==null||n.call(t,{state:this.state,messages:this.messages,agent:this,input:a})})))}clone(){let a=Object.create(Object.getPrototypeOf(this));return a.agentId=this.agentId,a.description=this.description,a.threadId=this.threadId,a.messages=C(this.messages),a.state=C(this.state),a.debug=this.debug,a.isRunning=this.isRunning,a.subscribers=[...this.subscribers],a}addMessage(a){this.messages.push(a),(async()=>{var e,s,t;for(let n of this.subscribers)await((e=n.onNewMessage)==null?void 0:e.call(n,{message:a,messages:this.messages,state:this.state,agent:this}));if(a.role==="assistant"&&a.toolCalls)for(let n of a.toolCalls)for(let i of this.subscribers)await((s=i.onNewToolCall)==null?void 0:s.call(i,{toolCall:n,messages:this.messages,state:this.state,agent:this}));for(let n of this.subscribers)await((t=n.onMessagesChanged)==null?void 0:t.call(n,{messages:this.messages,state:this.state,agent:this}))})()}addMessages(a){this.messages.push(...a),(async()=>{var e,s,t;for(let n of a){for(let i of this.subscribers)await((e=i.onNewMessage)==null?void 0:e.call(i,{message:n,messages:this.messages,state:this.state,agent:this}));if(n.role==="assistant"&&n.toolCalls)for(let i of n.toolCalls)for(let r of this.subscribers)await((s=r.onNewToolCall)==null?void 0:s.call(r,{toolCall:i,messages:this.messages,state:this.state,agent:this}))}for(let n of this.subscribers)await((t=n.onMessagesChanged)==null?void 0:t.call(n,{messages:this.messages,state:this.state,agent:this}))})()}setMessages(a){this.messages=C(a),(async()=>{var e;for(let s of this.subscribers)await((e=s.onMessagesChanged)==null?void 0:e.call(s,{messages:this.messages,state:this.state,agent:this}))})()}setState(a){this.state=C(a),(async()=>{var e;for(let s of this.subscribers)await((e=s.onStateChanged)==null?void 0:e.call(s,{messages:this.messages,state:this.state,agent:this}))})()}legacy_to_be_removed_runAgentBridged(a){var s;this.agentId=(s=this.agentId)!=null?s:(0,k.v4)();let e=this.prepareRunAgentInput(a);return this.run(e).pipe(ot(this.debug),B(this.debug),st(this.threadId,e.runId,this.agentId),t=>t.pipe((0,F.map)(n=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(n)),n))))}};var rt=class extends K{constructor(e){var s;super(e);this.abortController=new AbortController;this.url=e.url,this.headers=C((s=e.headers)!=null?s:{})}requestInit(e){return{method:"POST",headers:j(x({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(e),signal:this.abortController.signal}}runAgent(e,s){var t;return this.abortController=(t=e==null?void 0:e.abortController)!=null?t:new AbortController,super.runAgent(e,s)}abortRun(){this.abortController.abort(),super.abortRun()}run(e){let s=Q(this.url,this.requestInit(e));return nt(s)}clone(){var n;let e=super.clone();e.url=this.url,e.headers=C((n=this.headers)!=null?n:{});let s=new AbortController,t=this.abortController.signal;return t.aborted&&s.abort(t.reason),e.abortController=s,e}};var G=require("@ag-ui/core");function Nt(l){let a=[],e=new Map,s=new Map;for(let t of l)if(t.type===G.EventType.TEXT_MESSAGE_START){let n=t,i=n.messageId;e.has(i)||e.set(i,{contents:[],otherEvents:[]});let r=e.get(i);r.start=n}else if(t.type===G.EventType.TEXT_MESSAGE_CONTENT){let n=t,i=n.messageId;e.has(i)||e.set(i,{contents:[],otherEvents:[]}),e.get(i).contents.push(n)}else if(t.type===G.EventType.TEXT_MESSAGE_END){let n=t,i=n.messageId;e.has(i)||e.set(i,{contents:[],otherEvents:[]});let r=e.get(i);r.end=n,Rt(i,r,a),e.delete(i)}else if(t.type===G.EventType.TOOL_CALL_START){let n=t,i=n.toolCallId;s.has(i)||s.set(i,{args:[],otherEvents:[]});let r=s.get(i);r.start=n}else if(t.type===G.EventType.TOOL_CALL_ARGS){let n=t,i=n.toolCallId;s.has(i)||s.set(i,{args:[],otherEvents:[]}),s.get(i).args.push(n)}else if(t.type===G.EventType.TOOL_CALL_END){let n=t,i=n.toolCallId;s.has(i)||s.set(i,{args:[],otherEvents:[]});let r=s.get(i);r.end=n,_t(i,r,a),s.delete(i)}else{let n=!1;for(let[i,r]of e)if(r.start&&!r.end){r.otherEvents.push(t),n=!0;break}if(!n){for(let[i,r]of s)if(r.start&&!r.end){r.otherEvents.push(t),n=!0;break}}n||a.push(t)}for(let[t,n]of e)Rt(t,n,a);for(let[t,n]of s)_t(t,n,a);return a}function Rt(l,a,e){if(a.start&&e.push(a.start),a.contents.length>0){let s=a.contents.map(n=>n.delta).join(""),t={type:G.EventType.TEXT_MESSAGE_CONTENT,messageId:l,delta:s};e.push(t)}a.end&&e.push(a.end);for(let s of a.otherEvents)e.push(s)}function _t(l,a,e){if(a.start&&e.push(a.start),a.args.length>0){let s=a.args.map(n=>n.delta).join(""),t={type:G.EventType.TOOL_CALL_ARGS,toolCallId:l,delta:s};e.push(t)}a.end&&e.push(a.end);for(let s of a.otherEvents)e.push(s)}P(O,require("@ag-ui/core"),module.exports);0&&(module.exports={AbstractAgent,HttpAgent,compactEvents,convertToLegacyEvents,defaultApplyEvents,parseProtoStream,parseSSEStream,runHttpRequest,transformHttpEventStream,verifyEvents,...require("@ag-ui/core")});
3
+ Patch operations: ${JSON.stringify(g,null,2)}
4
+ Error: ${m}`)}}return l()}case _.EventType.MESSAGES_SNAPSHOT:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onMessagesSnapshotEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});if(o(u),u.stopPropagation!==!0){let{messages:g}=d;t=g,o({messages:t})}return l()}case _.EventType.ACTIVITY_SNAPSHOT:{let u=d,g=t.findIndex(S=>S.id===u.messageId),p=g>=0?t[g]:void 0,m=(p==null?void 0:p.role)==="activity"?p:void 0,E=await x(a,t,n,(S,C,N)=>{var w;return(w=S.onActivitySnapshotEvent)==null?void 0:w.call(S,{event:u,messages:C,state:N,agent:e,input:i,activityMessage:m,existingMessage:p})});if(o(E),E.stopPropagation!==!0){let S={id:u.messageId,role:"activity",activityType:u.activityType,content:R(u.content)},C;g===-1?(t.push(S),C=S):m?t[g]=X(L({},m),{activityType:u.activityType,content:R(u.content)}):(t[g]=S,C=S),o({messages:t}),C&&await Promise.all(a.map(N=>{var w;return(w=N.onNewMessage)==null?void 0:w.call(N,{message:C,messages:t,state:n,agent:e,input:i})}))}return l()}case _.EventType.ACTIVITY_DELTA:{let u=d,g=t.findIndex(S=>S.id===u.messageId);if(g===-1)return console.warn(`ACTIVITY_DELTA: No message found with ID '${u.messageId}' to apply patch`),l();let p=t[g];if(p.role!=="activity")return console.warn(`ACTIVITY_DELTA: Message '${u.messageId}' is not an activity message`),l();let m=p,E=await x(a,t,n,(S,C,N)=>{var w;return(w=S.onActivityDeltaEvent)==null?void 0:w.call(S,{event:u,messages:C,state:N,agent:e,input:i,activityMessage:m})});if(o(E),E.stopPropagation!==!0)try{let S=R(m);S.activityType=u.activityType,(y=S.content)!=null||(S.content={});let N=(0,gt.applyPatch)(S,u.patch,!0,!1).newDocument;t[g]=X(L({},N),{id:m.id,role:"activity",activityType:u.activityType}),o({messages:t})}catch(S){let C=S instanceof Error?S.message:String(S);console.warn(`Failed to apply activity patch for '${u.messageId}': ${C}`)}return l()}case _.EventType.RAW:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onRawEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});return o(u),l()}case _.EventType.CUSTOM:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onCustomEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});return o(u),l()}case _.EventType.RUN_STARTED:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onRunStartedEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});if(o(u),u.stopPropagation!==!0){let g=d;if((c=g.input)!=null&&c.messages){for(let p of g.input.messages)t.find(E=>E.id===p.id)||t.push(p);o({messages:t})}}return l()}case _.EventType.RUN_FINISHED:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onRunFinishedEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i,result:d.result})});return o(u),l()}case _.EventType.RUN_ERROR:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onRunErrorEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});return o(u),l()}case _.EventType.STEP_STARTED:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onStepStartedEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});return o(u),l()}case _.EventType.STEP_FINISHED:{let u=await x(a,t,n,(g,p,m)=>{var E;return(E=g.onStepFinishedEvent)==null?void 0:E.call(g,{event:d,messages:p,state:m,agent:e,input:i})});return o(u),l()}case _.EventType.TEXT_MESSAGE_CHUNK:throw new Error("TEXT_MESSAGE_CHUNK must be tranformed before being applied");case _.EventType.TOOL_CALL_CHUNK:throw new Error("TOOL_CALL_CHUNK must be tranformed before being applied");case _.EventType.THINKING_START:return l();case _.EventType.THINKING_END:return l();case _.EventType.THINKING_TEXT_MESSAGE_START:return l();case _.EventType.THINKING_TEXT_MESSAGE_CONTENT:return l();case _.EventType.THINKING_TEXT_MESSAGE_END:return l()}let H=d.type;return l()}),(0,k.mergeAll)(),a.length>0?(0,k.defaultIfEmpty)({}):d=>d)};var v=require("@ag-ui/core"),h=require("rxjs"),St=require("rxjs/operators"),K=i=>s=>{let e=new Map,a=new Map,t=!1,n=!1,r=!1,o=new Map,l=!1,d=!1,A=!1,H=()=>{e.clear(),a.clear(),o.clear(),l=!1,d=!1,t=!1,n=!1,A=!0};return s.pipe((0,St.mergeMap)(T=>{let y=T.type;if(i&&console.debug("[VERIFY]:",JSON.stringify(T)),n)return(0,h.throwError)(()=>new v.AGUIError(`Cannot send event type '${y}': The run has already errored with 'RUN_ERROR'. No further events can be sent.`));if(t&&y!==v.EventType.RUN_ERROR&&y!==v.EventType.RUN_STARTED)return(0,h.throwError)(()=>new v.AGUIError(`Cannot send event type '${y}': The run has already finished with 'RUN_FINISHED'. Start a new run with 'RUN_STARTED'.`));if(r){if(y===v.EventType.RUN_STARTED){if(A&&!t)return(0,h.throwError)(()=>new v.AGUIError("Cannot send 'RUN_STARTED' while a run is still active. The previous run must be finished with 'RUN_FINISHED' before starting a new run."));t&&H()}}else if(r=!0,y!==v.EventType.RUN_STARTED&&y!==v.EventType.RUN_ERROR)return(0,h.throwError)(()=>new v.AGUIError("First event must be 'RUN_STARTED'"));switch(y){case v.EventType.TEXT_MESSAGE_START:{let c=T.messageId;return e.has(c)?(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'TEXT_MESSAGE_START' event: A text message with ID '${c}' is already in progress. Complete it with 'TEXT_MESSAGE_END' first.`)):(e.set(c,!0),(0,h.of)(T))}case v.EventType.TEXT_MESSAGE_CONTENT:{let c=T.messageId;return e.has(c)?(0,h.of)(T):(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'TEXT_MESSAGE_CONTENT' event: No active text message found with ID '${c}'. Start a text message with 'TEXT_MESSAGE_START' first.`))}case v.EventType.TEXT_MESSAGE_END:{let c=T.messageId;return e.has(c)?(e.delete(c),(0,h.of)(T)):(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'TEXT_MESSAGE_END' event: No active text message found with ID '${c}'. A 'TEXT_MESSAGE_START' event must be sent first.`))}case v.EventType.TOOL_CALL_START:{let c=T.toolCallId;return a.has(c)?(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'TOOL_CALL_START' event: A tool call with ID '${c}' is already in progress. Complete it with 'TOOL_CALL_END' first.`)):(a.set(c,!0),(0,h.of)(T))}case v.EventType.TOOL_CALL_ARGS:{let c=T.toolCallId;return a.has(c)?(0,h.of)(T):(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'TOOL_CALL_ARGS' event: No active tool call found with ID '${c}'. Start a tool call with 'TOOL_CALL_START' first.`))}case v.EventType.TOOL_CALL_END:{let c=T.toolCallId;return a.has(c)?(a.delete(c),(0,h.of)(T)):(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'TOOL_CALL_END' event: No active tool call found with ID '${c}'. A 'TOOL_CALL_START' event must be sent first.`))}case v.EventType.STEP_STARTED:{let c=T.stepName;return o.has(c)?(0,h.throwError)(()=>new v.AGUIError(`Step "${c}" is already active for 'STEP_STARTED'`)):(o.set(c,!0),(0,h.of)(T))}case v.EventType.STEP_FINISHED:{let c=T.stepName;return o.has(c)?(o.delete(c),(0,h.of)(T)):(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'STEP_FINISHED' for step "${c}" that was not started`))}case v.EventType.RUN_STARTED:return A=!0,(0,h.of)(T);case v.EventType.RUN_FINISHED:{if(o.size>0){let c=Array.from(o.keys()).join(", ");return(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'RUN_FINISHED' while steps are still active: ${c}`))}if(e.size>0){let c=Array.from(e.keys()).join(", ");return(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'RUN_FINISHED' while text messages are still active: ${c}`))}if(a.size>0){let c=Array.from(a.keys()).join(", ");return(0,h.throwError)(()=>new v.AGUIError(`Cannot send 'RUN_FINISHED' while tool calls are still active: ${c}`))}return t=!0,(0,h.of)(T)}case v.EventType.RUN_ERROR:return n=!0,(0,h.of)(T);case v.EventType.CUSTOM:return(0,h.of)(T);case v.EventType.THINKING_TEXT_MESSAGE_START:return l?d?(0,h.throwError)(()=>new v.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking message is already in progress. Complete it with 'THINKING_TEXT_MESSAGE_END' first.")):(d=!0,(0,h.of)(T)):(0,h.throwError)(()=>new v.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking step is not in progress. Create one with 'THINKING_START' first."));case v.EventType.THINKING_TEXT_MESSAGE_CONTENT:return d?(0,h.of)(T):(0,h.throwError)(()=>new v.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_CONTENT' event: No active thinking message found. Start a message with 'THINKING_TEXT_MESSAGE_START' first."));case v.EventType.THINKING_TEXT_MESSAGE_END:return d?(d=!1,(0,h.of)(T)):(0,h.throwError)(()=>new v.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_END' event: No active thinking message found. A 'THINKING_TEXT_MESSAGE_START' event must be sent first."));case v.EventType.THINKING_START:return l?(0,h.throwError)(()=>new v.AGUIError("Cannot send 'THINKING_START' event: A thinking step is already in progress. End it with 'THINKING_END' first.")):(l=!0,(0,h.of)(T));case v.EventType.THINKING_END:return l?(l=!1,(0,h.of)(T)):(0,h.throwError)(()=>new v.AGUIError("Cannot send 'THINKING_END' event: No active thinking step found. A 'THINKING_START' event must be sent first."));default:return(0,h.of)(T)}}))};var yt=require("@ag-ui/core"),st=require("rxjs");var G=require("rxjs"),Z=require("rxjs/operators");var tt=(i,s)=>(0,G.defer)(()=>(0,G.from)(fetch(i,s))).pipe((0,Z.switchMap)(e=>{var n;if(!e.ok){let r=e.headers.get("content-type")||"";return(0,G.from)(e.text()).pipe((0,Z.mergeMap)(o=>{let l=o;if(r.includes("application/json"))try{l=JSON.parse(o)}catch(A){}let d=new Error(`HTTP ${e.status}: ${typeof l=="string"?l:JSON.stringify(l)}`);return d.status=e.status,d.payload=l,(0,G.throwError)(()=>d)}))}let a={type:"headers",status:e.status,headers:e.headers},t=(n=e.body)==null?void 0:n.getReader();return t?new G.Observable(r=>(r.next(a),(async()=>{try{for(;;){let{done:o,value:l}=await t.read();if(o)break;let d={type:"data",data:l};r.next(d)}r.complete()}catch(o){r.error(o)}})(),()=>{t.cancel().catch(o=>{if((o==null?void 0:o.name)!=="AbortError")throw o})})):(0,G.throwError)(()=>new Error("Failed to getReader() from response"))}));var At=require("rxjs");var et=i=>{let s=new At.Subject,e=new TextDecoder("utf-8",{fatal:!1}),a="";i.subscribe({next:n=>{if(n.type!=="headers"&&n.type==="data"&&n.data){let r=e.decode(n.data,{stream:!0});a+=r;let o=a.split(/\n\n/);a=o.pop()||"";for(let l of o)t(l)}},error:n=>s.error(n),complete:()=>{a&&(a+=e.decode(),t(a)),s.complete()}});function t(n){let r=n.split(`
5
+ `),o=[];for(let l of r)l.startsWith("data: ")&&o.push(l.slice(6));if(o.length>0)try{let l=o.join(`
6
+ `),d=JSON.parse(l);s.next(d)}catch(l){s.error(l)}}return s.asObservable()};var vt=require("rxjs");var ht=W(require("@ag-ui/proto")),nt=i=>{let s=new vt.Subject,e=new Uint8Array(0);i.subscribe({next:t=>{if(t.type!=="headers"&&t.type==="data"&&t.data){let n=new Uint8Array(e.length+t.data.length);n.set(e,0),n.set(t.data,e.length),e=n,a()}},error:t=>s.error(t),complete:()=>{if(e.length>0)try{a()}catch(t){console.warn("Incomplete or invalid protocol buffer data at stream end")}s.complete()}});function a(){for(;e.length>=4;){let r=4+new DataView(e.buffer,e.byteOffset,4).getUint32(0,!1);if(e.length<r)break;try{let o=e.slice(4,r),l=ht.decode(o);s.next(l),e=e.slice(r)}catch(o){let l=o instanceof Error?o.message:String(o);s.error(new Error(`Failed to decode protocol buffer message: ${l}`));return}}}return s.asObservable()};var Mt=W(require("@ag-ui/proto")),Ct=require("@ag-ui/core"),at=i=>{let s=new st.Subject,e=new st.ReplaySubject,a=!1;return i.subscribe({next:t=>{e.next(t),t.type==="headers"&&!a?(a=!0,t.headers.get("content-type")===Mt.AGUI_MEDIA_TYPE?nt(e).subscribe({next:r=>s.next(r),error:r=>s.error(r),complete:()=>s.complete()}):et(e).subscribe({next:r=>{try{let o=yt.EventSchemas.parse(r);s.next(o)}catch(o){s.error(o)}},error:r=>{if((r==null?void 0:r.name)==="AbortError"){s.next({type:Ct.EventType.RUN_ERROR,rawEvent:r}),s.complete();return}return s.error(r)},complete:()=>s.complete()})):a||s.error(new Error("No headers event received before data events"))},error:t=>{e.error(t),s.error(t)},complete:()=>{e.complete()}}),s.asObservable()};var Rt=require("rxjs/operators"),_t=require("fast-json-patch"),O=require("@ag-ui/core");var f=require("zod"),I=f.z.enum(["TextMessageStart","TextMessageContent","TextMessageEnd","ActionExecutionStart","ActionExecutionArgs","ActionExecutionEnd","ActionExecutionResult","AgentStateMessage","MetaEvent","RunStarted","RunFinished","RunError","NodeStarted","NodeFinished"]),kt=f.z.enum(["LangGraphInterruptEvent","PredictState","Exit"]),Kt=f.z.object({type:f.z.literal(I.enum.TextMessageStart),messageId:f.z.string(),parentMessageId:f.z.string().optional(),role:f.z.string().optional()}),jt=f.z.object({type:f.z.literal(I.enum.TextMessageContent),messageId:f.z.string(),content:f.z.string()}),zt=f.z.object({type:f.z.literal(I.enum.TextMessageEnd),messageId:f.z.string()}),Jt=f.z.object({type:f.z.literal(I.enum.ActionExecutionStart),actionExecutionId:f.z.string(),actionName:f.z.string(),parentMessageId:f.z.string().optional()}),$t=f.z.object({type:f.z.literal(I.enum.ActionExecutionArgs),actionExecutionId:f.z.string(),args:f.z.string()}),Vt=f.z.object({type:f.z.literal(I.enum.ActionExecutionEnd),actionExecutionId:f.z.string()}),bt=f.z.object({type:f.z.literal(I.enum.ActionExecutionResult),actionName:f.z.string(),actionExecutionId:f.z.string(),result:f.z.string()}),Yt=f.z.object({type:f.z.literal(I.enum.AgentStateMessage),threadId:f.z.string(),agentName:f.z.string(),nodeName:f.z.string(),runId:f.z.string(),active:f.z.boolean(),role:f.z.string(),state:f.z.string(),running:f.z.boolean()}),Wt=f.z.object({type:f.z.literal(I.enum.MetaEvent),name:kt,value:f.z.any()}),qt=f.z.object({type:f.z.literal(I.enum.RunError),message:f.z.string(),code:f.z.string().optional()}),un=f.z.discriminatedUnion("type",[Kt,jt,zt,Jt,$t,Vt,bt,Yt,Wt,qt]),pn=f.z.object({id:f.z.string(),role:f.z.string(),content:f.z.string(),parentMessageId:f.z.string().optional()}),dn=f.z.object({id:f.z.string(),name:f.z.string(),arguments:f.z.any(),parentMessageId:f.z.string().optional()}),mn=f.z.object({id:f.z.string(),result:f.z.any(),actionExecutionId:f.z.string(),actionName:f.z.string()});var It=W(require("untruncate-json"));var Qt=i=>{if(typeof i=="string")return i;if(!Array.isArray(i))return;let s=i.filter(e=>e.type==="text").map(e=>e.text).filter(e=>e.length>0);if(s.length!==0)return s.join(`
7
+ `)},ot=(i,s,e)=>a=>{let t={},n=!0,r=!0,o="",l=null,d=null,A=[],H={},T=y=>{typeof y=="object"&&y!==null&&("messages"in y&&delete y.messages,t=y)};return a.pipe((0,Rt.mergeMap)(y=>{switch(y.type){case O.EventType.TEXT_MESSAGE_START:{let c=y;return[{type:I.enum.TextMessageStart,messageId:c.messageId,role:c.role}]}case O.EventType.TEXT_MESSAGE_CONTENT:{let c=y;return[{type:I.enum.TextMessageContent,messageId:c.messageId,content:c.delta}]}case O.EventType.TEXT_MESSAGE_END:{let c=y;return[{type:I.enum.TextMessageEnd,messageId:c.messageId}]}case O.EventType.TOOL_CALL_START:{let c=y;return A.push({id:c.toolCallId,type:"function",function:{name:c.toolCallName,arguments:""}}),r=!0,H[c.toolCallId]=c.toolCallName,[{type:I.enum.ActionExecutionStart,actionExecutionId:c.toolCallId,actionName:c.toolCallName,parentMessageId:c.parentMessageId}]}case O.EventType.TOOL_CALL_ARGS:{let c=y,u=A.find(p=>p.id===c.toolCallId);if(!u)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${c.toolCallId}'`),[];u.function.arguments+=c.delta;let g=!1;if(d){let p=d.find(m=>m.tool==u.function.name);if(p)try{let m=JSON.parse((0,It.default)(u.function.arguments));p.tool_argument&&p.tool_argument in m?(T(X(L({},t),{[p.state_key]:m[p.tool_argument]})),g=!0):p.tool_argument||(T(X(L({},t),{[p.state_key]:m})),g=!0)}catch(m){}}return[{type:I.enum.ActionExecutionArgs,actionExecutionId:c.toolCallId,args:c.delta},...g?[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:n,role:"assistant",state:JSON.stringify(t),active:r}]:[]]}case O.EventType.TOOL_CALL_END:{let c=y;return[{type:I.enum.ActionExecutionEnd,actionExecutionId:c.toolCallId}]}case O.EventType.TOOL_CALL_RESULT:{let c=y;return[{type:I.enum.ActionExecutionResult,actionExecutionId:c.toolCallId,result:c.content,actionName:H[c.toolCallId]||"unknown"}]}case O.EventType.RAW:return[];case O.EventType.CUSTOM:{let c=y;switch(c.name){case"Exit":n=!1;break;case"PredictState":d=c.value;break}return[{type:I.enum.MetaEvent,name:c.name,value:c.value}]}case O.EventType.STATE_SNAPSHOT:return T(y.snapshot),[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:n,role:"assistant",state:JSON.stringify(t),active:r}];case O.EventType.STATE_DELTA:{let u=(0,_t.applyPatch)(t,y.delta,!0,!1);return u?(T(u.newDocument),[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:n,role:"assistant",state:JSON.stringify(t),active:r}]):[]}case O.EventType.MESSAGES_SNAPSHOT:return l=y.messages,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:n,role:"assistant",state:JSON.stringify(L(L({},t),l?{messages:l}:{})),active:!0}];case O.EventType.RUN_STARTED:return[];case O.EventType.RUN_FINISHED:return l&&(t.messages=l),Object.keys(t).length===0?[]:[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:n,role:"assistant",state:JSON.stringify(L(L({},t),l?{messages:Zt(l)}:{})),active:!1}];case O.EventType.RUN_ERROR:{let c=y;return[{type:I.enum.RunError,message:c.message,code:c.code}]}case O.EventType.STEP_STARTED:return o=y.stepName,A=[],d=null,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:n,role:"assistant",state:JSON.stringify(t),active:!0}];case O.EventType.STEP_FINISHED:return A=[],d=null,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:n,role:"assistant",state:JSON.stringify(t),active:!1}];default:return[]}}))};function Zt(i){var e;let s=[];for(let a of i)if(a.role==="assistant"||a.role==="user"||a.role==="system"){let t=Qt(a.content);if(t){let n={id:a.id,role:a.role,content:t};s.push(n)}if(a.role==="assistant"&&a.toolCalls&&a.toolCalls.length>0)for(let n of a.toolCalls){let r={id:n.id,name:n.function.name,arguments:JSON.parse(n.function.arguments),parentMessageId:a.id};s.push(r)}}else if(a.role==="tool"){let t="unknown";for(let r of i)if(r.role==="assistant"&&((e=r.toolCalls)!=null&&e.length)){for(let o of r.toolCalls)if(o.id===a.toolCallId){t=o.function.name;break}}let n={id:a.id,result:a.content,actionExecutionId:a.toolCallId,actionName:t};s.push(n)}return s}var j=require("uuid");var B=require("rxjs/operators"),ct=require("rxjs/operators"),F=require("rxjs");var Et=require("rxjs");var rt=require("rxjs"),M=require("@ag-ui/core"),V=i=>s=>{let e,a,t,n=()=>{if(!e||t!=="text")throw new Error("No text message to close");let l={type:M.EventType.TEXT_MESSAGE_END,messageId:e.messageId};return t=void 0,e=void 0,i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_END",JSON.stringify(l)),l},r=()=>{if(!a||t!=="tool")throw new Error("No tool call to close");let l={type:M.EventType.TOOL_CALL_END,toolCallId:a.toolCallId};return t=void 0,a=void 0,i&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(l)),l},o=()=>t==="text"?[n()]:t==="tool"?[r()]:[];return s.pipe((0,rt.mergeMap)(l=>{switch(l.type){case M.EventType.TEXT_MESSAGE_START:case M.EventType.TEXT_MESSAGE_CONTENT:case M.EventType.TEXT_MESSAGE_END:case M.EventType.TOOL_CALL_START:case M.EventType.TOOL_CALL_ARGS:case M.EventType.TOOL_CALL_END:case M.EventType.TOOL_CALL_RESULT:case M.EventType.STATE_SNAPSHOT:case M.EventType.STATE_DELTA:case M.EventType.MESSAGES_SNAPSHOT:case M.EventType.CUSTOM:case M.EventType.RUN_STARTED:case M.EventType.RUN_FINISHED:case M.EventType.RUN_ERROR:case M.EventType.STEP_STARTED:case M.EventType.STEP_FINISHED:case M.EventType.THINKING_START:case M.EventType.THINKING_END:case M.EventType.THINKING_TEXT_MESSAGE_START:case M.EventType.THINKING_TEXT_MESSAGE_CONTENT:case M.EventType.THINKING_TEXT_MESSAGE_END:return[...o(),l];case M.EventType.RAW:case M.EventType.ACTIVITY_SNAPSHOT:case M.EventType.ACTIVITY_DELTA:return[l];case M.EventType.TEXT_MESSAGE_CHUNK:let A=l,H=[];if((t!=="text"||A.messageId!==void 0&&A.messageId!==(e==null?void 0:e.messageId))&&H.push(...o()),t!=="text"){if(A.messageId===void 0)throw new Error("First TEXT_MESSAGE_CHUNK must have a messageId");e={messageId:A.messageId},t="text";let c={type:M.EventType.TEXT_MESSAGE_START,messageId:A.messageId,role:A.role||"assistant"};H.push(c),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(c))}if(A.delta!==void 0){let c={type:M.EventType.TEXT_MESSAGE_CONTENT,messageId:e.messageId,delta:A.delta};H.push(c),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(c))}return H;case M.EventType.TOOL_CALL_CHUNK:let T=l,y=[];if((t!=="tool"||T.toolCallId!==void 0&&T.toolCallId!==(a==null?void 0:a.toolCallId))&&y.push(...o()),t!=="tool"){if(T.toolCallId===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallId");if(T.toolCallName===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallName");a={toolCallId:T.toolCallId,toolCallName:T.toolCallName,parentMessageId:T.parentMessageId},t="tool";let c={type:M.EventType.TOOL_CALL_START,toolCallId:T.toolCallId,toolCallName:T.toolCallName,parentMessageId:T.parentMessageId};y.push(c),i&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(c))}if(T.delta!==void 0){let c={type:M.EventType.TOOL_CALL_ARGS,toolCallId:a.toolCallId,delta:T.delta};y.push(c),i&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(c))}return y}let d=l.type;return[]}),(0,rt.finalize)(()=>{o()}))};var ut=require("@ag-ui/core"),z=class{constructor({agentId:s,description:e,threadId:a,initialMessages:t,initialState:n,debug:r}={}){this.debug=!1;this.subscribers=[];this.isRunning=!1;this.agentId=s,this.description=e!=null?e:"",this.threadId=a!=null?a:(0,j.v4)(),this.messages=R(t!=null?t:[]),this.state=R(n!=null?n:{}),this.debug=r!=null?r:!1}subscribe(s){return this.subscribers.push(s),{unsubscribe:()=>{this.subscribers=this.subscribers.filter(e=>e!==s)}}}async runAgent(s,e){var a;try{this.isRunning=!0,this.agentId=(a=this.agentId)!=null?a:(0,j.v4)();let t=this.prepareRunAgentInput(s),n,r=new Set(this.messages.map(A=>A.id)),o=[{onRunFinishedEvent:A=>{n=A.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o);let l=(0,F.pipe)(()=>this.run(t),V(this.debug),K(this.debug),A=>this.apply(t,A,o),A=>this.processApplyEvents(t,A,o),(0,B.catchError)(A=>(this.isRunning=!1,this.onError(t,A,o))),(0,ct.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,o)}));await(0,Et.lastValueFrom)(l((0,F.of)(null)));let d=R(this.messages).filter(A=>!r.has(A.id));return{result:n,newMessages:d}}finally{this.isRunning=!1}}connect(s){throw new ut.AGUIConnectNotImplementedError}async connectAgent(s,e){var a;try{this.isRunning=!0,this.agentId=(a=this.agentId)!=null?a:(0,j.v4)();let t=this.prepareRunAgentInput(s),n,r=new Set(this.messages.map(A=>A.id)),o=[{onRunFinishedEvent:A=>{n=A.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o);let l=(0,F.pipe)(()=>this.connect(t),V(this.debug),K(this.debug),A=>this.apply(t,A,o),A=>this.processApplyEvents(t,A,o),(0,B.catchError)(A=>(this.isRunning=!1,A instanceof ut.AGUIConnectNotImplementedError?F.EMPTY:this.onError(t,A,o))),(0,ct.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,o)}));await(0,Et.lastValueFrom)(l((0,F.of)(null)));let d=R(this.messages).filter(A=>!r.has(A.id));return{result:n,newMessages:d}}finally{this.isRunning=!1}}abortRun(){}apply(s,e,a){return Q(s,e,this,a)}processApplyEvents(s,e,a){return e.pipe((0,B.tap)(t=>{t.messages&&(this.messages=t.messages,a.forEach(n=>{var r;(r=n.onMessagesChanged)==null||r.call(n,{messages:this.messages,state:this.state,agent:this,input:s})})),t.state&&(this.state=t.state,a.forEach(n=>{var r;(r=n.onStateChanged)==null||r.call(n,{state:this.state,messages:this.messages,agent:this,input:s})}))}))}prepareRunAgentInput(s){var t,n,r;let a=R(this.messages).filter(o=>o.role!=="activity");return{threadId:this.threadId,runId:(s==null?void 0:s.runId)||(0,j.v4)(),tools:R((t=s==null?void 0:s.tools)!=null?t:[]),context:R((n=s==null?void 0:s.context)!=null?n:[]),forwardedProps:R((r=s==null?void 0:s.forwardedProps)!=null?r:{}),state:R(this.state),messages:a}}async onInitialize(s,e){let a=await x(e,this.messages,this.state,(t,n,r)=>{var o;return(o=t.onRunInitialized)==null?void 0:o.call(t,{messages:n,state:r,agent:this,input:s})});(a.messages!==void 0||a.state!==void 0)&&(a.messages&&(this.messages=a.messages,s.messages=a.messages,e.forEach(t=>{var n;(n=t.onMessagesChanged)==null||n.call(t,{messages:this.messages,state:this.state,agent:this,input:s})})),a.state&&(this.state=a.state,s.state=a.state,e.forEach(t=>{var n;(n=t.onStateChanged)==null||n.call(t,{state:this.state,messages:this.messages,agent:this,input:s})})))}onError(s,e,a){return(0,F.from)(x(a,this.messages,this.state,(t,n,r)=>{var o;return(o=t.onRunFailed)==null?void 0:o.call(t,{error:e,messages:n,state:r,agent:this,input:s})})).pipe((0,B.map)(t=>{let n=t;if((n.messages!==void 0||n.state!==void 0)&&(n.messages!==void 0&&(this.messages=n.messages,a.forEach(r=>{var o;(o=r.onMessagesChanged)==null||o.call(r,{messages:this.messages,state:this.state,agent:this,input:s})})),n.state!==void 0&&(this.state=n.state,a.forEach(r=>{var o;(o=r.onStateChanged)==null||o.call(r,{state:this.state,messages:this.messages,agent:this,input:s})}))),n.stopPropagation!==!0)throw console.error("Agent execution failed:",e),e;return{}}))}async onFinalize(s,e){let a=await x(e,this.messages,this.state,(t,n,r)=>{var o;return(o=t.onRunFinalized)==null?void 0:o.call(t,{messages:n,state:r,agent:this,input:s})});(a.messages!==void 0||a.state!==void 0)&&(a.messages!==void 0&&(this.messages=a.messages,e.forEach(t=>{var n;(n=t.onMessagesChanged)==null||n.call(t,{messages:this.messages,state:this.state,agent:this,input:s})})),a.state!==void 0&&(this.state=a.state,e.forEach(t=>{var n;(n=t.onStateChanged)==null||n.call(t,{state:this.state,messages:this.messages,agent:this,input:s})})))}clone(){let s=Object.create(Object.getPrototypeOf(this));return s.agentId=this.agentId,s.description=this.description,s.threadId=this.threadId,s.messages=R(this.messages),s.state=R(this.state),s.debug=this.debug,s.isRunning=this.isRunning,s.subscribers=[...this.subscribers],s}addMessage(s){this.messages.push(s),(async()=>{var e,a,t;for(let n of this.subscribers)await((e=n.onNewMessage)==null?void 0:e.call(n,{message:s,messages:this.messages,state:this.state,agent:this}));if(s.role==="assistant"&&s.toolCalls)for(let n of s.toolCalls)for(let r of this.subscribers)await((a=r.onNewToolCall)==null?void 0:a.call(r,{toolCall:n,messages:this.messages,state:this.state,agent:this}));for(let n of this.subscribers)await((t=n.onMessagesChanged)==null?void 0:t.call(n,{messages:this.messages,state:this.state,agent:this}))})()}addMessages(s){this.messages.push(...s),(async()=>{var e,a,t;for(let n of s){for(let r of this.subscribers)await((e=r.onNewMessage)==null?void 0:e.call(r,{message:n,messages:this.messages,state:this.state,agent:this}));if(n.role==="assistant"&&n.toolCalls)for(let r of n.toolCalls)for(let o of this.subscribers)await((a=o.onNewToolCall)==null?void 0:a.call(o,{toolCall:r,messages:this.messages,state:this.state,agent:this}))}for(let n of this.subscribers)await((t=n.onMessagesChanged)==null?void 0:t.call(n,{messages:this.messages,state:this.state,agent:this}))})()}setMessages(s){this.messages=R(s),(async()=>{var e;for(let a of this.subscribers)await((e=a.onMessagesChanged)==null?void 0:e.call(a,{messages:this.messages,state:this.state,agent:this}))})()}setState(s){this.state=R(s),(async()=>{var e;for(let a of this.subscribers)await((e=a.onStateChanged)==null?void 0:e.call(a,{messages:this.messages,state:this.state,agent:this}))})()}legacy_to_be_removed_runAgentBridged(s){var a;this.agentId=(a=this.agentId)!=null?a:(0,j.v4)();let e=this.prepareRunAgentInput(s);return this.run(e).pipe(V(this.debug),K(this.debug),ot(this.threadId,e.runId,this.agentId),t=>t.pipe((0,B.map)(n=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(n)),n))))}};var it=class extends z{constructor(e){var a;super(e);this.abortController=new AbortController;this.url=e.url,this.headers=R((a=e.headers)!=null?a:{})}requestInit(e){return{method:"POST",headers:X(L({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(e),signal:this.abortController.signal}}runAgent(e,a){var t;return this.abortController=(t=e==null?void 0:e.abortController)!=null?t:new AbortController,super.runAgent(e,a)}abortRun(){this.abortController.abort(),super.abortRun()}run(e){let a=tt(this.url,this.requestInit(e));return at(a)}clone(){var n;let e=super.clone();e.url=this.url,e.headers=R((n=this.headers)!=null?n:{});let a=new AbortController,t=this.abortController.signal;return t.aborted&&a.abort(t.reason),e.abortController=a,e}};var U=require("@ag-ui/core");function Lt(i){let s=[],e=new Map,a=new Map;for(let t of i)if(t.type===U.EventType.TEXT_MESSAGE_START){let n=t,r=n.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.start=n}else if(t.type===U.EventType.TEXT_MESSAGE_CONTENT){let n=t,r=n.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]}),e.get(r).contents.push(n)}else if(t.type===U.EventType.TEXT_MESSAGE_END){let n=t,r=n.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.end=n,xt(r,o,s),e.delete(r)}else if(t.type===U.EventType.TOOL_CALL_START){let n=t,r=n.toolCallId;a.has(r)||a.set(r,{args:[],otherEvents:[]});let o=a.get(r);o.start=n}else if(t.type===U.EventType.TOOL_CALL_ARGS){let n=t,r=n.toolCallId;a.has(r)||a.set(r,{args:[],otherEvents:[]}),a.get(r).args.push(n)}else if(t.type===U.EventType.TOOL_CALL_END){let n=t,r=n.toolCallId;a.has(r)||a.set(r,{args:[],otherEvents:[]});let o=a.get(r);o.end=n,Nt(r,o,s),a.delete(r)}else{let n=!1;for(let[r,o]of e)if(o.start&&!o.end){o.otherEvents.push(t),n=!0;break}if(!n){for(let[r,o]of a)if(o.start&&!o.end){o.otherEvents.push(t),n=!0;break}}n||s.push(t)}for(let[t,n]of e)xt(t,n,s);for(let[t,n]of a)Nt(t,n,s);return s}function xt(i,s,e){if(s.start&&e.push(s.start),s.contents.length>0){let a=s.contents.map(n=>n.delta).join(""),t={type:U.EventType.TEXT_MESSAGE_CONTENT,messageId:i,delta:a};e.push(t)}s.end&&e.push(s.end);for(let a of s.otherEvents)e.push(a)}function Nt(i,s,e){if(s.start&&e.push(s.start),s.args.length>0){let a=s.args.map(n=>n.delta).join(""),t={type:U.EventType.TOOL_CALL_ARGS,toolCallId:i,delta:a};e.push(t)}s.end&&e.push(s.end);for(let a of s.otherEvents)e.push(a)}D(P,require("@ag-ui/core"),module.exports);0&&(module.exports={AbstractAgent,HttpAgent,compactEvents,convertToLegacyEvents,defaultApplyEvents,parseProtoStream,parseSSEStream,randomUUID,runHttpRequest,structuredClone_,transformChunks,transformHttpEventStream,verifyEvents,...require("@ag-ui/core")});
7
8
  //# sourceMappingURL=index.js.map