@ag-ui/client
Advanced tools
+3
-0
@@ -218,2 +218,4 @@ 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'; | ||
| private middlewares; | ||
| private activeRunDetach$?; | ||
| private activeRunCompletionPromise?; | ||
| get maxVersion(): string; | ||
@@ -230,2 +232,3 @@ constructor({ agentId, description, threadId, initialMessages, initialState, debug, }?: AgentConfig); | ||
| abortRun(): void; | ||
| detachActiveRun(): Promise<void>; | ||
| protected apply(input: RunAgentInput, events$: Observable<BaseEvent>, subscribers: AgentSubscriber[]): Observable<AgentStateMutation>; | ||
@@ -232,0 +235,0 @@ protected processApplyEvents(input: RunAgentInput, events$: Observable<AgentStateMutation>, subscribers: AgentSubscriber[]): Observable<AgentStateMutation>; |
+3
-0
@@ -218,2 +218,4 @@ 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'; | ||
| private middlewares; | ||
| private activeRunDetach$?; | ||
| private activeRunCompletionPromise?; | ||
| get maxVersion(): string; | ||
@@ -230,2 +232,3 @@ constructor({ agentId, description, threadId, initialMessages, initialState, debug, }?: AgentConfig); | ||
| abortRun(): void; | ||
| detachActiveRun(): Promise<void>; | ||
| protected apply(input: RunAgentInput, events$: Observable<BaseEvent>, subscribers: AgentSubscriber[]): Observable<AgentStateMutation>; | ||
@@ -232,0 +235,0 @@ protected processApplyEvents(input: RunAgentInput, events$: Observable<AgentStateMutation>, subscribers: AgentSubscriber[]): Observable<AgentStateMutation>; |
+4
-4
@@ -1,8 +0,8 @@ | ||
| "use strict";var Xt=Object.create;var Q=Object.defineProperty,jt=Object.defineProperties,zt=Object.getOwnPropertyDescriptor,Kt=Object.getOwnPropertyDescriptors,Jt=Object.getOwnPropertyNames,et=Object.getOwnPropertySymbols,$t=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable;var vt=(i,s,e)=>s in i?Q(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)&&vt(i,e,s[e]);if(et)for(var e of et(s))ht.call(s,e)&&vt(i,e,s[e]);return i},H=(i,s)=>jt(i,Kt(s));var yt=(i,s)=>{var e={};for(var n in i)mt.call(i,n)&&s.indexOf(n)<0&&(e[n]=i[n]);if(i!=null&&et)for(var n of et(i))s.indexOf(n)<0&&ht.call(i,n)&&(e[n]=i[n]);return e};var Vt=(i,s)=>{for(var e in s)Q(i,e,{get:s[e],enumerable:!0})},nt=(i,s,e,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of Jt(s))!mt.call(i,t)&&t!==e&&Q(i,t,{get:()=>s[t],enumerable:!(n=zt(s,t))||n.enumerable});return i},G=(i,s,e)=>(nt(i,s,"default"),e&&nt(e,s,"default")),st=(i,s,e)=>(e=i!=null?Xt($t(i)):{},nt(s||!i||!i.__esModule?Q(e,"default",{value:i,enumerable:!0}):e,i)),Wt=i=>nt(Q({},"__esModule",{value:!0}),i);var P={};Vt(P,{AbstractAgent:()=>Y,HttpAgent:()=>pt,compactEvents:()=>Bt,convertToLegacyEvents:()=>ut,defaultApplyEvents:()=>J,parseProtoStream:()=>lt,parseSSEStream:()=>it,randomUUID:()=>Yt,runHttpRequest:()=>rt,structuredClone_:()=>M,transformChunks:()=>j,transformHttpEventStream:()=>ct,verifyEvents:()=>$});module.exports=Wt(P);var x=require("@ag-ui/core"),K=require("rxjs/operators"),at=require("rxjs");var Mt=require("uuid");var M=i=>{if(typeof structuredClone=="function")return structuredClone(i);try{return JSON.parse(JSON.stringify(i))}catch(s){return L({},i)}};function Yt(){return(0,Mt.v4)()}var ft=require("fast-json-patch");async function _(i,s,e,n){let t=s,a=e,r;for(let o of i)try{let l=await n(o,M(t),M(a));if(l===void 0)continue;if(l.messages!==void 0&&(t=l.messages),l.state!==void 0&&(a=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(a)!==JSON.stringify(e)?{state:a}:{}),r!==void 0?{stopPropagation:r}:{})}var Ct=st(require("untruncate-json"));var J=(i,s,e,n)=>{let t=M(e.messages),a=M(i.state),r={},o=p=>{p.messages!==void 0&&(t=p.messages,r.messages=p.messages),p.state!==void 0&&(a=p.state,r.state=p.state)},l=()=>{let p=M(r);return r={},p.messages!==void 0||p.state!==void 0?(0,at.of)(p):at.EMPTY};return s.pipe((0,K.concatMap)(async p=>{var T,h,c,F,z;let S=await _(n,t,a,(E,g,d)=>{var m;return(m=E.onEvent)==null?void 0:m.call(E,{event:p,agent:e,input:i,messages:g,state:d})});if(o(S),S.stopPropagation===!0)return l();switch(p.type){case x.EventType.TEXT_MESSAGE_START:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onTextMessageStartEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{messageId:g,role:d="assistant"}=p,m={id:g,role:d,content:""};t.push(m),o({messages:t})}return l()}case x.EventType.TEXT_MESSAGE_CONTENT:{let{messageId:E,delta:g}=p,d=t.find(u=>u.id===E);if(!d)return console.warn(`TEXT_MESSAGE_CONTENT: No message found with ID '${E}'`),l();let m=await _(n,t,a,(u,y,C)=>{var N;return(N=u.onTextMessageContentEvent)==null?void 0:N.call(u,{event:p,messages:y,state:C,agent:e,input:i,textMessageBuffer:typeof d.content=="string"?d.content:""})});if(o(m),m.stopPropagation!==!0){let u=typeof d.content=="string"?d.content:"";d.content=`${u}${g}`,o({messages:t})}return l()}case x.EventType.TEXT_MESSAGE_END:{let{messageId:E}=p,g=t.find(m=>m.id===E);if(!g)return console.warn(`TEXT_MESSAGE_END: No message found with ID '${E}'`),l();let d=await _(n,t,a,(m,u,y)=>{var C;return(C=m.onTextMessageEndEvent)==null?void 0:C.call(m,{event:p,messages:u,state:y,agent:e,input:i,textMessageBuffer:typeof g.content=="string"?g.content:""})});return o(d),await Promise.all(n.map(m=>{var u;(u=m.onNewMessage)==null||u.call(m,{message:g,messages:t,state:a,agent:e,input:i})})),l()}case x.EventType.TOOL_CALL_START:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onToolCallStartEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{toolCallId:g,toolCallName:d,parentMessageId:m}=p,u;m&&t.length>0&&t[t.length-1].id===m?u=t[t.length-1]:(u={id:m||g,role:"assistant",toolCalls:[]},t.push(u)),(T=u.toolCalls)!=null||(u.toolCalls=[]),u.toolCalls.push({id:g,type:"function",function:{name:d,arguments:""}}),o({messages:t})}return l()}case x.EventType.TOOL_CALL_ARGS:{let{toolCallId:E,delta:g}=p,d=t.find(y=>{var C;return(C=y.toolCalls)==null?void 0:C.some(N=>N.id===E)});if(!d)return console.warn(`TOOL_CALL_ARGS: No message found containing tool call with ID '${E}'`),l();let m=d.toolCalls.find(y=>y.id===E);if(!m)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${E}'`),l();let u=await _(n,t,a,(y,C,N)=>{var dt;let O=m.function.arguments,b=m.function.name,q={};try{q=(0,Ct.default)(O)}catch(Ee){}return(dt=y.onToolCallArgsEvent)==null?void 0:dt.call(y,{event:p,messages:C,state:N,agent:e,input:i,toolCallBuffer:O,toolCallName:b,partialToolCallArgs:q})});return o(u),u.stopPropagation!==!0&&(m.function.arguments+=g,o({messages:t})),l()}case x.EventType.TOOL_CALL_END:{let{toolCallId:E}=p,g=t.find(u=>{var y;return(y=u.toolCalls)==null?void 0:y.some(C=>C.id===E)});if(!g)return console.warn(`TOOL_CALL_END: No message found containing tool call with ID '${E}'`),l();let d=g.toolCalls.find(u=>u.id===E);if(!d)return console.warn(`TOOL_CALL_END: No tool call found with ID '${E}'`),l();let m=await _(n,t,a,(u,y,C)=>{var q;let N=d.function.arguments,O=d.function.name,b={};try{b=JSON.parse(N)}catch(dt){}return(q=u.onToolCallEndEvent)==null?void 0:q.call(u,{event:p,messages:y,state:C,agent:e,input:i,toolCallName:O,toolCallArgs:b})});return o(m),await Promise.all(n.map(u=>{var y;(y=u.onNewToolCall)==null||y.call(u,{toolCall:d,messages:t,state:a,agent:e,input:i})})),l()}case x.EventType.TOOL_CALL_RESULT:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onToolCallResultEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{messageId:g,toolCallId:d,content:m,role:u}=p,y={id:g,toolCallId:d,role:u||"tool",content:m};t.push(y),await Promise.all(n.map(C=>{var N;(N=C.onNewMessage)==null||N.call(C,{message:y,messages:t,state:a,agent:e,input:i})})),o({messages:t})}return l()}case x.EventType.STATE_SNAPSHOT:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onStateSnapshotEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{snapshot:g}=p;a=g,o({state:a})}return l()}case x.EventType.STATE_DELTA:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onStateDeltaEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{delta:g}=p;try{a=(0,ft.applyPatch)(a,g,!0,!1).newDocument,o({state:a})}catch(d){let m=d instanceof Error?d.message:String(d);console.warn(`Failed to apply state patch: | ||
| "use strict";var Xt=Object.create;var Q=Object.defineProperty,$t=Object.defineProperties,zt=Object.getOwnPropertyDescriptor,Kt=Object.getOwnPropertyDescriptors,Jt=Object.getOwnPropertyNames,et=Object.getOwnPropertySymbols,Vt=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty,yt=Object.prototype.propertyIsEnumerable;var ht=(i,s,e)=>s in i?Q(i,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[s]=e,w=(i,s)=>{for(var e in s||(s={}))mt.call(s,e)&&ht(i,e,s[e]);if(et)for(var e of et(s))yt.call(s,e)&&ht(i,e,s[e]);return i},G=(i,s)=>$t(i,Kt(s));var Mt=(i,s)=>{var e={};for(var n in i)mt.call(i,n)&&s.indexOf(n)<0&&(e[n]=i[n]);if(i!=null&&et)for(var n of et(i))s.indexOf(n)<0&&yt.call(i,n)&&(e[n]=i[n]);return e};var Wt=(i,s)=>{for(var e in s)Q(i,e,{get:s[e],enumerable:!0})},nt=(i,s,e,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of Jt(s))!mt.call(i,t)&&t!==e&&Q(i,t,{get:()=>s[t],enumerable:!(n=zt(s,t))||n.enumerable});return i},b=(i,s,e)=>(nt(i,s,"default"),e&&nt(e,s,"default")),st=(i,s,e)=>(e=i!=null?Xt(Vt(i)):{},nt(s||!i||!i.__esModule?Q(e,"default",{value:i,enumerable:!0}):e,i)),Yt=i=>nt(Q({},"__esModule",{value:!0}),i);var H={};Wt(H,{AbstractAgent:()=>Y,HttpAgent:()=>pt,compactEvents:()=>jt,convertToLegacyEvents:()=>ut,defaultApplyEvents:()=>K,parseProtoStream:()=>lt,parseSSEStream:()=>it,randomUUID:()=>qt,runHttpRequest:()=>rt,structuredClone_:()=>M,transformChunks:()=>X,transformHttpEventStream:()=>ct,verifyEvents:()=>J});module.exports=Yt(H);var x=require("@ag-ui/core"),z=require("rxjs/operators"),at=require("rxjs");var Ct=require("uuid");var M=i=>{if(typeof structuredClone=="function")return structuredClone(i);try{return JSON.parse(JSON.stringify(i))}catch(s){return w({},i)}};function qt(){return(0,Ct.v4)()}var ft=require("fast-json-patch");async function N(i,s,e,n){let t=s,a=e,r;for(let o of i)try{let l=await n(o,M(t),M(a));if(l===void 0)continue;if(l.messages!==void 0&&(t=l.messages),l.state!==void 0&&(a=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 w(w(w({},JSON.stringify(t)!==JSON.stringify(s)?{messages:t}:{}),JSON.stringify(a)!==JSON.stringify(e)?{state:a}:{}),r!==void 0?{stopPropagation:r}:{})}var Rt=st(require("untruncate-json"));var K=(i,s,e,n)=>{let t=M(e.messages),a=M(i.state),r={},o=p=>{p.messages!==void 0&&(t=p.messages,r.messages=p.messages),p.state!==void 0&&(a=p.state,r.state=p.state)},l=()=>{let p=M(r);return r={},p.messages!==void 0||p.state!==void 0?(0,at.of)(p):at.EMPTY};return s.pipe((0,z.concatMap)(async p=>{var S,h,c,F,$;let _=await N(n,t,a,(E,g,d)=>{var m;return(m=E.onEvent)==null?void 0:m.call(E,{event:p,agent:e,input:i,messages:g,state:d})});if(o(_),_.stopPropagation===!0)return l();switch(p.type){case x.EventType.TEXT_MESSAGE_START:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onTextMessageStartEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{messageId:g,role:d="assistant"}=p,m={id:g,role:d,content:""};t.push(m),o({messages:t})}return l()}case x.EventType.TEXT_MESSAGE_CONTENT:{let{messageId:E,delta:g}=p,d=t.find(u=>u.id===E);if(!d)return console.warn(`TEXT_MESSAGE_CONTENT: No message found with ID '${E}'`),l();let m=await N(n,t,a,(u,y,C)=>{var L;return(L=u.onTextMessageContentEvent)==null?void 0:L.call(u,{event:p,messages:y,state:C,agent:e,input:i,textMessageBuffer:typeof d.content=="string"?d.content:""})});if(o(m),m.stopPropagation!==!0){let u=typeof d.content=="string"?d.content:"";d.content=`${u}${g}`,o({messages:t})}return l()}case x.EventType.TEXT_MESSAGE_END:{let{messageId:E}=p,g=t.find(m=>m.id===E);if(!g)return console.warn(`TEXT_MESSAGE_END: No message found with ID '${E}'`),l();let d=await N(n,t,a,(m,u,y)=>{var C;return(C=m.onTextMessageEndEvent)==null?void 0:C.call(m,{event:p,messages:u,state:y,agent:e,input:i,textMessageBuffer:typeof g.content=="string"?g.content:""})});return o(d),await Promise.all(n.map(m=>{var u;(u=m.onNewMessage)==null||u.call(m,{message:g,messages:t,state:a,agent:e,input:i})})),l()}case x.EventType.TOOL_CALL_START:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onToolCallStartEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{toolCallId:g,toolCallName:d,parentMessageId:m}=p,u;m&&t.length>0&&t[t.length-1].id===m?u=t[t.length-1]:(u={id:m||g,role:"assistant",toolCalls:[]},t.push(u)),(S=u.toolCalls)!=null||(u.toolCalls=[]),u.toolCalls.push({id:g,type:"function",function:{name:d,arguments:""}}),o({messages:t})}return l()}case x.EventType.TOOL_CALL_ARGS:{let{toolCallId:E,delta:g}=p,d=t.find(y=>{var C;return(C=y.toolCalls)==null?void 0:C.some(L=>L.id===E)});if(!d)return console.warn(`TOOL_CALL_ARGS: No message found containing tool call with ID '${E}'`),l();let m=d.toolCalls.find(y=>y.id===E);if(!m)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${E}'`),l();let u=await N(n,t,a,(y,C,L)=>{var dt;let P=m.function.arguments,k=m.function.name,q={};try{q=(0,Rt.default)(P)}catch(pe){}return(dt=y.onToolCallArgsEvent)==null?void 0:dt.call(y,{event:p,messages:C,state:L,agent:e,input:i,toolCallBuffer:P,toolCallName:k,partialToolCallArgs:q})});return o(u),u.stopPropagation!==!0&&(m.function.arguments+=g,o({messages:t})),l()}case x.EventType.TOOL_CALL_END:{let{toolCallId:E}=p,g=t.find(u=>{var y;return(y=u.toolCalls)==null?void 0:y.some(C=>C.id===E)});if(!g)return console.warn(`TOOL_CALL_END: No message found containing tool call with ID '${E}'`),l();let d=g.toolCalls.find(u=>u.id===E);if(!d)return console.warn(`TOOL_CALL_END: No tool call found with ID '${E}'`),l();let m=await N(n,t,a,(u,y,C)=>{var q;let L=d.function.arguments,P=d.function.name,k={};try{k=JSON.parse(L)}catch(dt){}return(q=u.onToolCallEndEvent)==null?void 0:q.call(u,{event:p,messages:y,state:C,agent:e,input:i,toolCallName:P,toolCallArgs:k})});return o(m),await Promise.all(n.map(u=>{var y;(y=u.onNewToolCall)==null||y.call(u,{toolCall:d,messages:t,state:a,agent:e,input:i})})),l()}case x.EventType.TOOL_CALL_RESULT:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onToolCallResultEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{messageId:g,toolCallId:d,content:m,role:u}=p,y={id:g,toolCallId:d,role:u||"tool",content:m};t.push(y),await Promise.all(n.map(C=>{var L;(L=C.onNewMessage)==null||L.call(C,{message:y,messages:t,state:a,agent:e,input:i})})),o({messages:t})}return l()}case x.EventType.STATE_SNAPSHOT:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onStateSnapshotEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{snapshot:g}=p;a=g,o({state:a})}return l()}case x.EventType.STATE_DELTA:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onStateDeltaEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{delta:g}=p;try{a=(0,ft.applyPatch)(a,g,!0,!1).newDocument,o({state:a})}catch(d){let m=d instanceof Error?d.message:String(d);console.warn(`Failed to apply state patch: | ||
| Current state: ${JSON.stringify(a,null,2)} | ||
| Patch operations: ${JSON.stringify(g,null,2)} | ||
| Error: ${m}`)}}return l()}case x.EventType.MESSAGES_SNAPSHOT:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onMessagesSnapshotEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{messages:g}=p;t=g,o({messages:t})}return l()}case x.EventType.ACTIVITY_SNAPSHOT:{let E=p,g=t.findIndex(C=>C.id===E.messageId),d=g>=0?t[g]:void 0,m=(d==null?void 0:d.role)==="activity"?d:void 0,u=(h=E.replace)!=null?h:!0,y=await _(n,t,a,(C,N,O)=>{var b;return(b=C.onActivitySnapshotEvent)==null?void 0:b.call(C,{event:E,messages:N,state:O,agent:e,input:i,activityMessage:m,existingMessage:d})});if(o(y),y.stopPropagation!==!0){let C={id:E.messageId,role:"activity",activityType:E.activityType,content:M(E.content)},N;g===-1?(t.push(C),N=C):m?u&&(t[g]=H(L({},m),{activityType:E.activityType,content:M(E.content)})):u&&(t[g]=C,N=C),o({messages:t}),N&&await Promise.all(n.map(O=>{var b;return(b=O.onNewMessage)==null?void 0:b.call(O,{message:N,messages:t,state:a,agent:e,input:i})}))}return l()}case x.EventType.ACTIVITY_DELTA:{let E=p,g=t.findIndex(y=>y.id===E.messageId);if(g===-1)return console.warn(`ACTIVITY_DELTA: No message found with ID '${E.messageId}' to apply patch`),l();let d=t[g];if(d.role!=="activity")return console.warn(`ACTIVITY_DELTA: Message '${E.messageId}' is not an activity message`),l();let m=d,u=await _(n,t,a,(y,C,N)=>{var O;return(O=y.onActivityDeltaEvent)==null?void 0:O.call(y,{event:E,messages:C,state:N,agent:e,input:i,activityMessage:m})});if(o(u),u.stopPropagation!==!0)try{let y=M((c=m.content)!=null?c:{}),N=(0,ft.applyPatch)(y,(F=E.patch)!=null?F:[],!0,!1).newDocument;t[g]=H(L({},m),{content:M(N),activityType:E.activityType}),o({messages:t})}catch(y){let C=y instanceof Error?y.message:String(y);console.warn(`Failed to apply activity patch for '${E.messageId}': ${C}`)}return l()}case x.EventType.RAW:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onRawEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.CUSTOM:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onCustomEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.RUN_STARTED:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onRunStartedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let g=p;if((z=g.input)!=null&&z.messages){for(let d of g.input.messages)t.find(u=>u.id===d.id)||t.push(d);o({messages:t})}}return l()}case x.EventType.RUN_FINISHED:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onRunFinishedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i,result:p.result})});return o(E),l()}case x.EventType.RUN_ERROR:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onRunErrorEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.STEP_STARTED:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onStepStartedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.STEP_FINISHED:{let E=await _(n,t,a,(g,d,m)=>{var u;return(u=g.onStepFinishedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.TEXT_MESSAGE_CHUNK:throw new Error("TEXT_MESSAGE_CHUNK must be tranformed before being applied");case x.EventType.TOOL_CALL_CHUNK:throw new Error("TOOL_CALL_CHUNK must be tranformed before being applied");case x.EventType.THINKING_START:return l();case x.EventType.THINKING_END:return l();case x.EventType.THINKING_TEXT_MESSAGE_START:return l();case x.EventType.THINKING_TEXT_MESSAGE_CONTENT:return l();case x.EventType.THINKING_TEXT_MESSAGE_END:return l()}let D=p.type;return l()}),(0,K.mergeAll)(),n.length>0?(0,K.defaultIfEmpty)({}):p=>p)};var A=require("@ag-ui/core"),v=require("rxjs"),Rt=require("rxjs/operators"),$=i=>s=>{let e=new Map,n=new Map,t=!1,a=!1,r=!1,o=new Map,l=!1,p=!1,S=!1,D=()=>{e.clear(),n.clear(),o.clear(),l=!1,p=!1,t=!1,a=!1,S=!0};return s.pipe((0,Rt.mergeMap)(T=>{let h=T.type;if(i&&console.debug("[VERIFY]:",JSON.stringify(T)),a)return(0,v.throwError)(()=>new A.AGUIError(`Cannot send event type '${h}': The run has already errored with 'RUN_ERROR'. No further events can be sent.`));if(t&&h!==A.EventType.RUN_ERROR&&h!==A.EventType.RUN_STARTED)return(0,v.throwError)(()=>new A.AGUIError(`Cannot send event type '${h}': The run has already finished with 'RUN_FINISHED'. Start a new run with 'RUN_STARTED'.`));if(r){if(h===A.EventType.RUN_STARTED){if(S&&!t)return(0,v.throwError)(()=>new A.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&&D()}}else if(r=!0,h!==A.EventType.RUN_STARTED&&h!==A.EventType.RUN_ERROR)return(0,v.throwError)(()=>new A.AGUIError("First event must be 'RUN_STARTED'"));switch(h){case A.EventType.TEXT_MESSAGE_START:{let c=T.messageId;return e.has(c)?(0,v.throwError)(()=>new A.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,v.of)(T))}case A.EventType.TEXT_MESSAGE_CONTENT:{let c=T.messageId;return e.has(c)?(0,v.of)(T):(0,v.throwError)(()=>new A.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 A.EventType.TEXT_MESSAGE_END:{let c=T.messageId;return e.has(c)?(e.delete(c),(0,v.of)(T)):(0,v.throwError)(()=>new A.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 A.EventType.TOOL_CALL_START:{let c=T.toolCallId;return n.has(c)?(0,v.throwError)(()=>new A.AGUIError(`Cannot send 'TOOL_CALL_START' event: A tool call with ID '${c}' is already in progress. Complete it with 'TOOL_CALL_END' first.`)):(n.set(c,!0),(0,v.of)(T))}case A.EventType.TOOL_CALL_ARGS:{let c=T.toolCallId;return n.has(c)?(0,v.of)(T):(0,v.throwError)(()=>new A.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 A.EventType.TOOL_CALL_END:{let c=T.toolCallId;return n.has(c)?(n.delete(c),(0,v.of)(T)):(0,v.throwError)(()=>new A.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 A.EventType.STEP_STARTED:{let c=T.stepName;return o.has(c)?(0,v.throwError)(()=>new A.AGUIError(`Step "${c}" is already active for 'STEP_STARTED'`)):(o.set(c,!0),(0,v.of)(T))}case A.EventType.STEP_FINISHED:{let c=T.stepName;return o.has(c)?(o.delete(c),(0,v.of)(T)):(0,v.throwError)(()=>new A.AGUIError(`Cannot send 'STEP_FINISHED' for step "${c}" that was not started`))}case A.EventType.RUN_STARTED:return S=!0,(0,v.of)(T);case A.EventType.RUN_FINISHED:{if(o.size>0){let c=Array.from(o.keys()).join(", ");return(0,v.throwError)(()=>new A.AGUIError(`Cannot send 'RUN_FINISHED' while steps are still active: ${c}`))}if(e.size>0){let c=Array.from(e.keys()).join(", ");return(0,v.throwError)(()=>new A.AGUIError(`Cannot send 'RUN_FINISHED' while text messages are still active: ${c}`))}if(n.size>0){let c=Array.from(n.keys()).join(", ");return(0,v.throwError)(()=>new A.AGUIError(`Cannot send 'RUN_FINISHED' while tool calls are still active: ${c}`))}return t=!0,(0,v.of)(T)}case A.EventType.RUN_ERROR:return a=!0,(0,v.of)(T);case A.EventType.CUSTOM:return(0,v.of)(T);case A.EventType.THINKING_TEXT_MESSAGE_START:return l?p?(0,v.throwError)(()=>new A.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking message is already in progress. Complete it with 'THINKING_TEXT_MESSAGE_END' first.")):(p=!0,(0,v.of)(T)):(0,v.throwError)(()=>new A.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking step is not in progress. Create one with 'THINKING_START' first."));case A.EventType.THINKING_TEXT_MESSAGE_CONTENT:return p?(0,v.of)(T):(0,v.throwError)(()=>new A.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_CONTENT' event: No active thinking message found. Start a message with 'THINKING_TEXT_MESSAGE_START' first."));case A.EventType.THINKING_TEXT_MESSAGE_END:return p?(p=!1,(0,v.of)(T)):(0,v.throwError)(()=>new A.AGUIError("Cannot send 'THINKING_TEXT_MESSAGE_END' event: No active thinking message found. A 'THINKING_TEXT_MESSAGE_START' event must be sent first."));case A.EventType.THINKING_START:return l?(0,v.throwError)(()=>new A.AGUIError("Cannot send 'THINKING_START' event: A thinking step is already in progress. End it with 'THINKING_END' first.")):(l=!0,(0,v.of)(T));case A.EventType.THINKING_END:return l?(l=!1,(0,v.of)(T)):(0,v.throwError)(()=>new A.AGUIError("Cannot send 'THINKING_END' event: No active thinking step found. A 'THINKING_START' event must be sent first."));default:return(0,v.of)(T)}}))};var Nt=require("@ag-ui/core"),gt=require("rxjs");var k=require("rxjs"),ot=require("rxjs/operators");var rt=(i,s)=>(0,k.defer)(()=>(0,k.from)(fetch(i,s))).pipe((0,ot.switchMap)(e=>{var a;if(!e.ok){let r=e.headers.get("content-type")||"";return(0,k.from)(e.text()).pipe((0,ot.mergeMap)(o=>{let l=o;if(r.includes("application/json"))try{l=JSON.parse(o)}catch(S){}let p=new Error(`HTTP ${e.status}: ${typeof l=="string"?l:JSON.stringify(l)}`);return p.status=e.status,p.payload=l,(0,k.throwError)(()=>p)}))}let n={type:"headers",status:e.status,headers:e.headers},t=(a=e.body)==null?void 0:a.getReader();return t?new k.Observable(r=>(r.next(n),(async()=>{try{for(;;){let{done:o,value:l}=await t.read();if(o)break;let p={type:"data",data:l};r.next(p)}r.complete()}catch(o){r.error(o)}})(),()=>{t.cancel().catch(o=>{if((o==null?void 0:o.name)!=="AbortError")throw o})})):(0,k.throwError)(()=>new Error("Failed to getReader() from response"))}));var xt=require("rxjs");var it=i=>{let s=new xt.Subject,e=new TextDecoder("utf-8",{fatal:!1}),n="";i.subscribe({next:a=>{if(a.type!=="headers"&&a.type==="data"&&a.data){let r=e.decode(a.data,{stream:!0});n+=r;let o=n.split(/\n\n/);n=o.pop()||"";for(let l of o)t(l)}},error:a=>s.error(a),complete:()=>{n&&(n+=e.decode(),t(n)),s.complete()}});function t(a){let r=a.split(` | ||
| Error: ${m}`)}}return l()}case x.EventType.MESSAGES_SNAPSHOT:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onMessagesSnapshotEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let{messages:g}=p;t=g,o({messages:t})}return l()}case x.EventType.ACTIVITY_SNAPSHOT:{let E=p,g=t.findIndex(C=>C.id===E.messageId),d=g>=0?t[g]:void 0,m=(d==null?void 0:d.role)==="activity"?d:void 0,u=(h=E.replace)!=null?h:!0,y=await N(n,t,a,(C,L,P)=>{var k;return(k=C.onActivitySnapshotEvent)==null?void 0:k.call(C,{event:E,messages:L,state:P,agent:e,input:i,activityMessage:m,existingMessage:d})});if(o(y),y.stopPropagation!==!0){let C={id:E.messageId,role:"activity",activityType:E.activityType,content:M(E.content)},L;g===-1?(t.push(C),L=C):m?u&&(t[g]=G(w({},m),{activityType:E.activityType,content:M(E.content)})):u&&(t[g]=C,L=C),o({messages:t}),L&&await Promise.all(n.map(P=>{var k;return(k=P.onNewMessage)==null?void 0:k.call(P,{message:L,messages:t,state:a,agent:e,input:i})}))}return l()}case x.EventType.ACTIVITY_DELTA:{let E=p,g=t.findIndex(y=>y.id===E.messageId);if(g===-1)return console.warn(`ACTIVITY_DELTA: No message found with ID '${E.messageId}' to apply patch`),l();let d=t[g];if(d.role!=="activity")return console.warn(`ACTIVITY_DELTA: Message '${E.messageId}' is not an activity message`),l();let m=d,u=await N(n,t,a,(y,C,L)=>{var P;return(P=y.onActivityDeltaEvent)==null?void 0:P.call(y,{event:E,messages:C,state:L,agent:e,input:i,activityMessage:m})});if(o(u),u.stopPropagation!==!0)try{let y=M((c=m.content)!=null?c:{}),L=(0,ft.applyPatch)(y,(F=E.patch)!=null?F:[],!0,!1).newDocument;t[g]=G(w({},m),{content:M(L),activityType:E.activityType}),o({messages:t})}catch(y){let C=y instanceof Error?y.message:String(y);console.warn(`Failed to apply activity patch for '${E.messageId}': ${C}`)}return l()}case x.EventType.RAW:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onRawEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.CUSTOM:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onCustomEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.RUN_STARTED:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onRunStartedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});if(o(E),E.stopPropagation!==!0){let g=p;if(($=g.input)!=null&&$.messages){for(let d of g.input.messages)t.find(u=>u.id===d.id)||t.push(d);o({messages:t})}}return l()}case x.EventType.RUN_FINISHED:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onRunFinishedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i,result:p.result})});return o(E),l()}case x.EventType.RUN_ERROR:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onRunErrorEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.STEP_STARTED:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onStepStartedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.STEP_FINISHED:{let E=await N(n,t,a,(g,d,m)=>{var u;return(u=g.onStepFinishedEvent)==null?void 0:u.call(g,{event:p,messages:d,state:m,agent:e,input:i})});return o(E),l()}case x.EventType.TEXT_MESSAGE_CHUNK:throw new Error("TEXT_MESSAGE_CHUNK must be tranformed before being applied");case x.EventType.TOOL_CALL_CHUNK:throw new Error("TOOL_CALL_CHUNK must be tranformed before being applied");case x.EventType.THINKING_START:return l();case x.EventType.THINKING_END:return l();case x.EventType.THINKING_TEXT_MESSAGE_START:return l();case x.EventType.THINKING_TEXT_MESSAGE_CONTENT:return l();case x.EventType.THINKING_TEXT_MESSAGE_END:return l()}let v=p.type;return l()}),(0,z.mergeAll)(),n.length>0?(0,z.defaultIfEmpty)({}):p=>p)};var T=require("@ag-ui/core"),A=require("rxjs"),xt=require("rxjs/operators"),J=i=>s=>{let e=new Map,n=new Map,t=!1,a=!1,r=!1,o=new Map,l=!1,p=!1,_=!1,v=()=>{e.clear(),n.clear(),o.clear(),l=!1,p=!1,t=!1,a=!1,_=!0};return s.pipe((0,xt.mergeMap)(S=>{let h=S.type;if(i&&console.debug("[VERIFY]:",JSON.stringify(S)),a)return(0,A.throwError)(()=>new T.AGUIError(`Cannot send event type '${h}': The run has already errored with 'RUN_ERROR'. No further events can be sent.`));if(t&&h!==T.EventType.RUN_ERROR&&h!==T.EventType.RUN_STARTED)return(0,A.throwError)(()=>new T.AGUIError(`Cannot send event type '${h}': The run has already finished with 'RUN_FINISHED'. Start a new run with 'RUN_STARTED'.`));if(r){if(h===T.EventType.RUN_STARTED){if(_&&!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&&v()}}else if(r=!0,h!==T.EventType.RUN_STARTED&&h!==T.EventType.RUN_ERROR)return(0,A.throwError)(()=>new T.AGUIError("First event must be 'RUN_STARTED'"));switch(h){case T.EventType.TEXT_MESSAGE_START:{let c=S.messageId;return e.has(c)?(0,A.throwError)(()=>new T.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,A.of)(S))}case T.EventType.TEXT_MESSAGE_CONTENT:{let c=S.messageId;return e.has(c)?(0,A.of)(S):(0,A.throwError)(()=>new T.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 T.EventType.TEXT_MESSAGE_END:{let c=S.messageId;return e.has(c)?(e.delete(c),(0,A.of)(S)):(0,A.throwError)(()=>new T.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 T.EventType.TOOL_CALL_START:{let c=S.toolCallId;return n.has(c)?(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'TOOL_CALL_START' event: A tool call with ID '${c}' is already in progress. Complete it with 'TOOL_CALL_END' first.`)):(n.set(c,!0),(0,A.of)(S))}case T.EventType.TOOL_CALL_ARGS:{let c=S.toolCallId;return n.has(c)?(0,A.of)(S):(0,A.throwError)(()=>new T.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 T.EventType.TOOL_CALL_END:{let c=S.toolCallId;return n.has(c)?(n.delete(c),(0,A.of)(S)):(0,A.throwError)(()=>new T.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 T.EventType.STEP_STARTED:{let c=S.stepName;return o.has(c)?(0,A.throwError)(()=>new T.AGUIError(`Step "${c}" is already active for 'STEP_STARTED'`)):(o.set(c,!0),(0,A.of)(S))}case T.EventType.STEP_FINISHED:{let c=S.stepName;return o.has(c)?(o.delete(c),(0,A.of)(S)):(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'STEP_FINISHED' for step "${c}" that was not started`))}case T.EventType.RUN_STARTED:return _=!0,(0,A.of)(S);case T.EventType.RUN_FINISHED:{if(o.size>0){let c=Array.from(o.keys()).join(", ");return(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'RUN_FINISHED' while steps are still active: ${c}`))}if(e.size>0){let c=Array.from(e.keys()).join(", ");return(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'RUN_FINISHED' while text messages are still active: ${c}`))}if(n.size>0){let c=Array.from(n.keys()).join(", ");return(0,A.throwError)(()=>new T.AGUIError(`Cannot send 'RUN_FINISHED' while tool calls are still active: ${c}`))}return t=!0,(0,A.of)(S)}case T.EventType.RUN_ERROR:return a=!0,(0,A.of)(S);case T.EventType.CUSTOM:return(0,A.of)(S);case T.EventType.THINKING_TEXT_MESSAGE_START:return l?p?(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.")):(p=!0,(0,A.of)(S)):(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 p?(0,A.of)(S):(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 p?(p=!1,(0,A.of)(S)):(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 l?(0,A.throwError)(()=>new T.AGUIError("Cannot send 'THINKING_START' event: A thinking step is already in progress. End it with 'THINKING_END' first.")):(l=!0,(0,A.of)(S));case T.EventType.THINKING_END:return l?(l=!1,(0,A.of)(S)):(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)(S)}}))};var Lt=require("@ag-ui/core"),gt=require("rxjs");var U=require("rxjs"),ot=require("rxjs/operators");var rt=(i,s)=>(0,U.defer)(()=>(0,U.from)(fetch(i,s))).pipe((0,ot.switchMap)(e=>{var a;if(!e.ok){let r=e.headers.get("content-type")||"";return(0,U.from)(e.text()).pipe((0,ot.mergeMap)(o=>{let l=o;if(r.includes("application/json"))try{l=JSON.parse(o)}catch(_){}let p=new Error(`HTTP ${e.status}: ${typeof l=="string"?l:JSON.stringify(l)}`);return p.status=e.status,p.payload=l,(0,U.throwError)(()=>p)}))}let n={type:"headers",status:e.status,headers:e.headers},t=(a=e.body)==null?void 0:a.getReader();return t?new U.Observable(r=>(r.next(n),(async()=>{try{for(;;){let{done:o,value:l}=await t.read();if(o)break;let p={type:"data",data:l};r.next(p)}r.complete()}catch(o){r.error(o)}})(),()=>{t.cancel().catch(o=>{if((o==null?void 0:o.name)!=="AbortError")throw o})})):(0,U.throwError)(()=>new Error("Failed to getReader() from response"))}));var It=require("rxjs");var it=i=>{let s=new It.Subject,e=new TextDecoder("utf-8",{fatal:!1}),n="";i.subscribe({next:a=>{if(a.type!=="headers"&&a.type==="data"&&a.data){let r=e.decode(a.data,{stream:!0});n+=r;let o=n.split(/\n\n/);n=o.pop()||"";for(let l of o)t(l)}},error:a=>s.error(a),complete:()=>{n&&(n+=e.decode(),t(n)),s.complete()}});function t(a){let r=a.split(` | ||
| `),o=[];for(let l of r)l.startsWith("data: ")&&o.push(l.slice(6));if(o.length>0)try{let l=o.join(` | ||
| `),p=JSON.parse(l);s.next(p)}catch(l){s.error(l)}}return s.asObservable()};var It=require("rxjs");var _t=st(require("@ag-ui/proto")),lt=i=>{let s=new It.Subject,e=new Uint8Array(0);i.subscribe({next:t=>{if(t.type!=="headers"&&t.type==="data"&&t.data){let a=new Uint8Array(e.length+t.data.length);a.set(e,0),a.set(t.data,e.length),e=a,n()}},error:t=>s.error(t),complete:()=>{if(e.length>0)try{n()}catch(t){console.warn("Incomplete or invalid protocol buffer data at stream end")}s.complete()}});function n(){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=_t.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 Lt=st(require("@ag-ui/proto")),wt=require("@ag-ui/core"),ct=i=>{let s=new gt.Subject,e=new gt.ReplaySubject,n=!1;return i.subscribe({next:t=>{e.next(t),t.type==="headers"&&!n?(n=!0,t.headers.get("content-type")===Lt.AGUI_MEDIA_TYPE?lt(e).subscribe({next:r=>s.next(r),error:r=>s.error(r),complete:()=>s.complete()}):it(e).subscribe({next:r=>{try{let o=Nt.EventSchemas.parse(r);s.next(o)}catch(o){s.error(o)}},error:r=>{if((r==null?void 0:r.name)==="AbortError"){s.next({type:wt.EventType.RUN_ERROR,rawEvent:r}),s.complete();return}return s.error(r)},complete:()=>s.complete()})):n||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 Ot=require("rxjs/operators"),Pt=require("fast-json-patch"),w=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"]),qt=f.z.enum(["LangGraphInterruptEvent","PredictState","Exit"]),Qt=f.z.object({type:f.z.literal(I.enum.TextMessageStart),messageId:f.z.string(),parentMessageId:f.z.string().optional(),role:f.z.string().optional()}),Zt=f.z.object({type:f.z.literal(I.enum.TextMessageContent),messageId:f.z.string(),content:f.z.string()}),te=f.z.object({type:f.z.literal(I.enum.TextMessageEnd),messageId:f.z.string()}),ee=f.z.object({type:f.z.literal(I.enum.ActionExecutionStart),actionExecutionId:f.z.string(),actionName:f.z.string(),parentMessageId:f.z.string().optional()}),ne=f.z.object({type:f.z.literal(I.enum.ActionExecutionArgs),actionExecutionId:f.z.string(),args:f.z.string()}),se=f.z.object({type:f.z.literal(I.enum.ActionExecutionEnd),actionExecutionId:f.z.string()}),ae=f.z.object({type:f.z.literal(I.enum.ActionExecutionResult),actionName:f.z.string(),actionExecutionId:f.z.string(),result:f.z.string()}),oe=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()}),re=f.z.object({type:f.z.literal(I.enum.MetaEvent),name:qt,value:f.z.any()}),ie=f.z.object({type:f.z.literal(I.enum.RunError),message:f.z.string(),code:f.z.string().optional()}),Cn=f.z.discriminatedUnion("type",[Qt,Zt,te,ee,ne,se,ae,oe,re,ie]),Rn=f.z.object({id:f.z.string(),role:f.z.string(),content:f.z.string(),parentMessageId:f.z.string().optional()}),xn=f.z.object({id:f.z.string(),name:f.z.string(),arguments:f.z.any(),parentMessageId:f.z.string().optional()}),In=f.z.object({id:f.z.string(),result:f.z.any(),actionExecutionId:f.z.string(),actionName:f.z.string()});var Dt=st(require("untruncate-json"));var le=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(` | ||
| `)},ut=(i,s,e)=>n=>{let t={},a=!0,r=!0,o="",l=null,p=null,S=[],D={},T=h=>{typeof h=="object"&&h!==null&&("messages"in h&&delete h.messages,t=h)};return n.pipe((0,Ot.mergeMap)(h=>{switch(h.type){case w.EventType.TEXT_MESSAGE_START:{let c=h;return[{type:I.enum.TextMessageStart,messageId:c.messageId,role:c.role}]}case w.EventType.TEXT_MESSAGE_CONTENT:{let c=h;return[{type:I.enum.TextMessageContent,messageId:c.messageId,content:c.delta}]}case w.EventType.TEXT_MESSAGE_END:{let c=h;return[{type:I.enum.TextMessageEnd,messageId:c.messageId}]}case w.EventType.TOOL_CALL_START:{let c=h;return S.push({id:c.toolCallId,type:"function",function:{name:c.toolCallName,arguments:""}}),r=!0,D[c.toolCallId]=c.toolCallName,[{type:I.enum.ActionExecutionStart,actionExecutionId:c.toolCallId,actionName:c.toolCallName,parentMessageId:c.parentMessageId}]}case w.EventType.TOOL_CALL_ARGS:{let c=h,F=S.find(E=>E.id===c.toolCallId);if(!F)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${c.toolCallId}'`),[];F.function.arguments+=c.delta;let z=!1;if(p){let E=p.find(g=>g.tool==F.function.name);if(E)try{let g=JSON.parse((0,Dt.default)(F.function.arguments));E.tool_argument&&E.tool_argument in g?(T(H(L({},t),{[E.state_key]:g[E.tool_argument]})),z=!0):E.tool_argument||(T(H(L({},t),{[E.state_key]:g})),z=!0)}catch(g){}}return[{type:I.enum.ActionExecutionArgs,actionExecutionId:c.toolCallId,args:c.delta},...z?[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:r}]:[]]}case w.EventType.TOOL_CALL_END:{let c=h;return[{type:I.enum.ActionExecutionEnd,actionExecutionId:c.toolCallId}]}case w.EventType.TOOL_CALL_RESULT:{let c=h;return[{type:I.enum.ActionExecutionResult,actionExecutionId:c.toolCallId,result:c.content,actionName:D[c.toolCallId]||"unknown"}]}case w.EventType.RAW:return[];case w.EventType.CUSTOM:{let c=h;switch(c.name){case"Exit":a=!1;break;case"PredictState":p=c.value;break}return[{type:I.enum.MetaEvent,name:c.name,value:c.value}]}case w.EventType.STATE_SNAPSHOT:return T(h.snapshot),[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:r}];case w.EventType.STATE_DELTA:{let F=(0,Pt.applyPatch)(t,h.delta,!0,!1);return F?(T(F.newDocument),[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:r}]):[]}case w.EventType.MESSAGES_SNAPSHOT:return l=h.messages,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(L(L({},t),l?{messages:l}:{})),active:!0}];case w.EventType.RUN_STARTED:return[];case w.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:a,role:"assistant",state:JSON.stringify(L(L({},t),l?{messages:ge(l)}:{})),active:!1}];case w.EventType.RUN_ERROR:{let c=h;return[{type:I.enum.RunError,message:c.message,code:c.code}]}case w.EventType.STEP_STARTED:return o=h.stepName,S=[],p=null,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:!0}];case w.EventType.STEP_FINISHED:return S=[],p=null,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:!1}];default:return[]}}))};function ge(i){var e;let s=[];for(let n of i)if(n.role==="assistant"||n.role==="user"||n.role==="system"){let t=le(n.content);if(t){let a={id:n.id,role:n.role,content:t};s.push(a)}if(n.role==="assistant"&&n.toolCalls&&n.toolCalls.length>0)for(let a of n.toolCalls){let r={id:a.id,name:a.function.name,arguments:JSON.parse(a.function.arguments),parentMessageId:n.id};s.push(r)}}else if(n.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===n.toolCallId){t=o.function.name;break}}let a={id:n.id,result:n.content,actionExecutionId:n.toolCallId,actionName:t};s.push(a)}return s}var W=require("uuid");var bt=require("compare-versions"),X=require("rxjs/operators"),Tt=require("rxjs/operators"),U=require("rxjs");var St=require("rxjs");var Et=require("rxjs"),R=require("@ag-ui/core"),j=i=>s=>{let e,n,t,a=()=>{if(!e||t!=="text")throw new Error("No text message to close");let l={type:R.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(!n||t!=="tool")throw new Error("No tool call to close");let l={type:R.EventType.TOOL_CALL_END,toolCallId:n.toolCallId};return t=void 0,n=void 0,i&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(l)),l},o=()=>t==="text"?[a()]:t==="tool"?[r()]:[];return s.pipe((0,Et.mergeMap)(l=>{switch(l.type){case R.EventType.TEXT_MESSAGE_START:case R.EventType.TEXT_MESSAGE_CONTENT:case R.EventType.TEXT_MESSAGE_END:case R.EventType.TOOL_CALL_START:case R.EventType.TOOL_CALL_ARGS:case R.EventType.TOOL_CALL_END:case R.EventType.TOOL_CALL_RESULT:case R.EventType.STATE_SNAPSHOT:case R.EventType.STATE_DELTA:case R.EventType.MESSAGES_SNAPSHOT:case R.EventType.CUSTOM:case R.EventType.RUN_STARTED:case R.EventType.RUN_FINISHED:case R.EventType.RUN_ERROR:case R.EventType.STEP_STARTED:case R.EventType.STEP_FINISHED:case R.EventType.THINKING_START:case R.EventType.THINKING_END:case R.EventType.THINKING_TEXT_MESSAGE_START:case R.EventType.THINKING_TEXT_MESSAGE_CONTENT:case R.EventType.THINKING_TEXT_MESSAGE_END:return[...o(),l];case R.EventType.RAW:case R.EventType.ACTIVITY_SNAPSHOT:case R.EventType.ACTIVITY_DELTA:return[l];case R.EventType.TEXT_MESSAGE_CHUNK:let S=l,D=[];if((t!=="text"||S.messageId!==void 0&&S.messageId!==(e==null?void 0:e.messageId))&&D.push(...o()),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 c={type:R.EventType.TEXT_MESSAGE_START,messageId:S.messageId,role:S.role||"assistant"};D.push(c),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(c))}if(S.delta!==void 0){let c={type:R.EventType.TEXT_MESSAGE_CONTENT,messageId:e.messageId,delta:S.delta};D.push(c),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(c))}return D;case R.EventType.TOOL_CALL_CHUNK:let T=l,h=[];if((t!=="tool"||T.toolCallId!==void 0&&T.toolCallId!==(n==null?void 0:n.toolCallId))&&h.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");n={toolCallId:T.toolCallId,toolCallName:T.toolCallName,parentMessageId:T.parentMessageId},t="tool";let c={type:R.EventType.TOOL_CALL_START,toolCallId:T.toolCallId,toolCallName:T.toolCallName,parentMessageId:T.parentMessageId};h.push(c),i&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(c))}if(T.delta!==void 0){let c={type:R.EventType.TOOL_CALL_ARGS,toolCallId:n.toolCallId,delta:T.delta};h.push(c),i&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(c))}return h}let p=l.type;return[]}),(0,Et.finalize)(()=>{o()}))};var At=require("@ag-ui/core");var Ht=require("rxjs"),Gt=require("rxjs/operators");var V=class{runNext(s,e){return e.run(s).pipe(j(!1))}runNextWithState(s,e){let n=M(s.messages||[]),t=M(s.state||{}),a=new Ht.ReplaySubject;return J(s,a,e,[]).subscribe(o=>{o.messages!==void 0&&(n=o.messages),o.state!==void 0&&(t=o.state)}),this.runNext(s,e).pipe((0,Gt.concatMap)(async o=>(a.next(o),await new Promise(l=>setTimeout(l,0)),{event:o,messages:M(n),state:M(t)})))}},Z=class extends V{constructor(e){super();this.fn=e}run(e,n){return this.fn(e,n)}};function ce(i){let s=i.content;if(Array.isArray(s)){let e=s.filter(n=>typeof n=="object"&&n!==null&&"type"in n&&n.type==="text"&&typeof n.text=="string").map(n=>n.text).join("");return H(L({},i),{content:e})}return typeof s=="string"?i:H(L({},i),{content:""})}var tt=class extends V{run(s,e){let r=s,{parentRunId:n}=r,t=yt(r,["parentRunId"]),a=H(L({},t),{messages:t.messages.map(ce)});return this.runNext(a,e)}};var Ft={name:"@ag-ui/client",author:"Markus Ecker <markus.ecker@gmail.com>",version:"0.0.41",private:!1,publishConfig:{access:"public"},main:"./dist/index.js",module:"./dist/index.mjs",types:"./dist/index.d.ts",sideEffects:!1,files:["dist/**","README.md"],scripts:{build:"tsup",dev:"tsup --watch",clean:"rm -rf dist .turbo node_modules",typecheck:"tsc --noEmit",test:"jest","link:global":"pnpm link --global","unlink:global":"pnpm unlink --global"},dependencies:{"@ag-ui/core":"workspace:*","@ag-ui/encoder":"workspace:*","@ag-ui/proto":"workspace:*","@types/uuid":"^10.0.0","compare-versions":"^6.1.1","fast-json-patch":"^3.1.1",rxjs:"7.8.1","untruncate-json":"^0.0.1",uuid:"^11.1.0",zod:"^3.22.4"},devDependencies:{"@types/jest":"^29.5.14","@types/node":"^20.11.19",jest:"^29.7.0","ts-jest":"^29.1.2",tsup:"^8.0.2",typescript:"^5.3.3"}};var Y=class{constructor({agentId:s,description:e,threadId:n,initialMessages:t,initialState:a,debug:r}={}){this.debug=!1;this.subscribers=[];this.isRunning=!1;this.middlewares=[];this.agentId=s,this.description=e!=null?e:"",this.threadId=n!=null?n:(0,W.v4)(),this.messages=M(t!=null?t:[]),this.state=M(a!=null?a:{}),this.debug=r!=null?r:!1,(0,bt.compareVersions)(this.maxVersion,"0.0.39")<=0&&this.middlewares.unshift(new tt)}get maxVersion(){return Ft.version}subscribe(s){return this.subscribers.push(s),{unsubscribe:()=>{this.subscribers=this.subscribers.filter(e=>e!==s)}}}use(...s){let e=s.map(n=>typeof n=="function"?new Z(n):n);return this.middlewares.push(...e),this}async runAgent(s,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:(0,W.v4)();let t=this.prepareRunAgentInput(s),a,r=new Set(this.messages.map(S=>S.id)),o=[{onRunFinishedEvent:S=>{a=S.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o);let l=(0,U.pipe)(()=>this.middlewares.length===0?this.run(t):this.middlewares.reduceRight((D,T)=>({run:h=>T.run(h,D)}),this).run(t),j(this.debug),$(this.debug),S=>this.apply(t,S,o),S=>this.processApplyEvents(t,S,o),(0,X.catchError)(S=>(this.isRunning=!1,this.onError(t,S,o))),(0,Tt.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,o)}));await(0,St.lastValueFrom)(l((0,U.of)(null)));let p=M(this.messages).filter(S=>!r.has(S.id));return{result:a,newMessages:p}}finally{this.isRunning=!1}}connect(s){throw new At.AGUIConnectNotImplementedError}async connectAgent(s,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:(0,W.v4)();let t=this.prepareRunAgentInput(s),a,r=new Set(this.messages.map(S=>S.id)),o=[{onRunFinishedEvent:S=>{a=S.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o);let l=(0,U.pipe)(()=>this.connect(t),j(this.debug),$(this.debug),S=>this.apply(t,S,o),S=>this.processApplyEvents(t,S,o),(0,X.catchError)(S=>(this.isRunning=!1,S instanceof At.AGUIConnectNotImplementedError?U.EMPTY:this.onError(t,S,o))),(0,Tt.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,o)}));await(0,St.lastValueFrom)(l((0,U.of)(null)));let p=M(this.messages).filter(S=>!r.has(S.id));return{result:a,newMessages:p}}finally{this.isRunning=!1}}abortRun(){}apply(s,e,n){return J(s,e,this,n)}processApplyEvents(s,e,n){return e.pipe((0,X.tap)(t=>{t.messages&&(this.messages=t.messages,n.forEach(a=>{var r;(r=a.onMessagesChanged)==null||r.call(a,{messages:this.messages,state:this.state,agent:this,input:s})})),t.state&&(this.state=t.state,n.forEach(a=>{var r;(r=a.onStateChanged)==null||r.call(a,{state:this.state,messages:this.messages,agent:this,input:s})}))}))}prepareRunAgentInput(s){var t,a,r;let n=M(this.messages).filter(o=>o.role!=="activity");return{threadId:this.threadId,runId:(s==null?void 0:s.runId)||(0,W.v4)(),tools:M((t=s==null?void 0:s.tools)!=null?t:[]),context:M((a=s==null?void 0:s.context)!=null?a:[]),forwardedProps:M((r=s==null?void 0:s.forwardedProps)!=null?r:{}),state:M(this.state),messages:n}}async onInitialize(s,e){let n=await _(e,this.messages,this.state,(t,a,r)=>{var o;return(o=t.onRunInitialized)==null?void 0:o.call(t,{messages:a,state:r,agent:this,input:s})});(n.messages!==void 0||n.state!==void 0)&&(n.messages&&(this.messages=n.messages,s.messages=n.messages,e.forEach(t=>{var a;(a=t.onMessagesChanged)==null||a.call(t,{messages:this.messages,state:this.state,agent:this,input:s})})),n.state&&(this.state=n.state,s.state=n.state,e.forEach(t=>{var a;(a=t.onStateChanged)==null||a.call(t,{state:this.state,messages:this.messages,agent:this,input:s})})))}onError(s,e,n){return(0,U.from)(_(n,this.messages,this.state,(t,a,r)=>{var o;return(o=t.onRunFailed)==null?void 0:o.call(t,{error:e,messages:a,state:r,agent:this,input:s})})).pipe((0,X.map)(t=>{let a=t;if((a.messages!==void 0||a.state!==void 0)&&(a.messages!==void 0&&(this.messages=a.messages,n.forEach(r=>{var o;(o=r.onMessagesChanged)==null||o.call(r,{messages:this.messages,state:this.state,agent:this,input:s})})),a.state!==void 0&&(this.state=a.state,n.forEach(r=>{var o;(o=r.onStateChanged)==null||o.call(r,{state:this.state,messages:this.messages,agent:this,input:s})}))),a.stopPropagation!==!0)throw console.error("Agent execution failed:",e),e;return{}}))}async onFinalize(s,e){let n=await _(e,this.messages,this.state,(t,a,r)=>{var o;return(o=t.onRunFinalized)==null?void 0:o.call(t,{messages:a,state:r,agent:this,input:s})});(n.messages!==void 0||n.state!==void 0)&&(n.messages!==void 0&&(this.messages=n.messages,e.forEach(t=>{var a;(a=t.onMessagesChanged)==null||a.call(t,{messages:this.messages,state:this.state,agent:this,input:s})})),n.state!==void 0&&(this.state=n.state,e.forEach(t=>{var a;(a=t.onStateChanged)==null||a.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=M(this.messages),s.state=M(this.state),s.debug=this.debug,s.isRunning=this.isRunning,s.subscribers=[...this.subscribers],s}addMessage(s){this.messages.push(s),(async()=>{var e,n,t;for(let a of this.subscribers)await((e=a.onNewMessage)==null?void 0:e.call(a,{message:s,messages:this.messages,state:this.state,agent:this}));if(s.role==="assistant"&&s.toolCalls)for(let a of s.toolCalls)for(let r of this.subscribers)await((n=r.onNewToolCall)==null?void 0:n.call(r,{toolCall:a,messages:this.messages,state:this.state,agent:this}));for(let a of this.subscribers)await((t=a.onMessagesChanged)==null?void 0:t.call(a,{messages:this.messages,state:this.state,agent:this}))})()}addMessages(s){this.messages.push(...s),(async()=>{var e,n,t;for(let a of s){for(let r of this.subscribers)await((e=r.onNewMessage)==null?void 0:e.call(r,{message:a,messages:this.messages,state:this.state,agent:this}));if(a.role==="assistant"&&a.toolCalls)for(let r of a.toolCalls)for(let o of this.subscribers)await((n=o.onNewToolCall)==null?void 0:n.call(o,{toolCall:r,messages:this.messages,state:this.state,agent:this}))}for(let a of this.subscribers)await((t=a.onMessagesChanged)==null?void 0:t.call(a,{messages:this.messages,state:this.state,agent:this}))})()}setMessages(s){this.messages=M(s),(async()=>{var e;for(let n of this.subscribers)await((e=n.onMessagesChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}setState(s){this.state=M(s),(async()=>{var e;for(let n of this.subscribers)await((e=n.onStateChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}legacy_to_be_removed_runAgentBridged(s){var t;this.agentId=(t=this.agentId)!=null?t:(0,W.v4)();let e=this.prepareRunAgentInput(s);return(this.middlewares.length===0?this.run(e):this.middlewares.reduceRight((r,o)=>({run:l=>o.run(l,r)}),this).run(e)).pipe(j(this.debug),$(this.debug),ut(this.threadId,e.runId,this.agentId),a=>a.pipe((0,X.map)(r=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(r)),r))))}};var pt=class extends Y{constructor(e){var n;super(e);this.abortController=new AbortController;this.url=e.url,this.headers=M((n=e.headers)!=null?n:{})}requestInit(e){return{method:"POST",headers:H(L({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(e),signal:this.abortController.signal}}runAgent(e,n){var t;return this.abortController=(t=e==null?void 0:e.abortController)!=null?t:new AbortController,super.runAgent(e,n)}abortRun(){this.abortController.abort(),super.abortRun()}run(e){let n=rt(this.url,this.requestInit(e));return ct(n)}clone(){var a;let e=super.clone();e.url=this.url,e.headers=M((a=this.headers)!=null?a:{});let n=new AbortController,t=this.abortController.signal;return t.aborted&&n.abort(t.reason),e.abortController=n,e}};var B=require("@ag-ui/core");function Bt(i){let s=[],e=new Map,n=new Map;for(let t of i)if(t.type===B.EventType.TEXT_MESSAGE_START){let a=t,r=a.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.start=a}else if(t.type===B.EventType.TEXT_MESSAGE_CONTENT){let a=t,r=a.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]}),e.get(r).contents.push(a)}else if(t.type===B.EventType.TEXT_MESSAGE_END){let a=t,r=a.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.end=a,kt(r,o,s),e.delete(r)}else if(t.type===B.EventType.TOOL_CALL_START){let a=t,r=a.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.start=a}else if(t.type===B.EventType.TOOL_CALL_ARGS){let a=t,r=a.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]}),n.get(r).args.push(a)}else if(t.type===B.EventType.TOOL_CALL_END){let a=t,r=a.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.end=a,Ut(r,o,s),n.delete(r)}else{let a=!1;for(let[r,o]of e)if(o.start&&!o.end){o.otherEvents.push(t),a=!0;break}if(!a){for(let[r,o]of n)if(o.start&&!o.end){o.otherEvents.push(t),a=!0;break}}a||s.push(t)}for(let[t,a]of e)kt(t,a,s);for(let[t,a]of n)Ut(t,a,s);return s}function kt(i,s,e){if(s.start&&e.push(s.start),s.contents.length>0){let n=s.contents.map(a=>a.delta).join(""),t={type:B.EventType.TEXT_MESSAGE_CONTENT,messageId:i,delta:n};e.push(t)}s.end&&e.push(s.end);for(let n of s.otherEvents)e.push(n)}function Ut(i,s,e){if(s.start&&e.push(s.start),s.args.length>0){let n=s.args.map(a=>a.delta).join(""),t={type:B.EventType.TOOL_CALL_ARGS,toolCallId:i,delta:n};e.push(t)}s.end&&e.push(s.end);for(let n of s.otherEvents)e.push(n)}G(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")}); | ||
| `),p=JSON.parse(l);s.next(p)}catch(l){s.error(l)}}return s.asObservable()};var _t=require("rxjs");var Nt=st(require("@ag-ui/proto")),lt=i=>{let s=new _t.Subject,e=new Uint8Array(0);i.subscribe({next:t=>{if(t.type!=="headers"&&t.type==="data"&&t.data){let a=new Uint8Array(e.length+t.data.length);a.set(e,0),a.set(t.data,e.length),e=a,n()}},error:t=>s.error(t),complete:()=>{if(e.length>0)try{n()}catch(t){console.warn("Incomplete or invalid protocol buffer data at stream end")}s.complete()}});function n(){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=Nt.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 wt=st(require("@ag-ui/proto")),Ot=require("@ag-ui/core"),ct=i=>{let s=new gt.Subject,e=new gt.ReplaySubject,n=!1;return i.subscribe({next:t=>{e.next(t),t.type==="headers"&&!n?(n=!0,t.headers.get("content-type")===wt.AGUI_MEDIA_TYPE?lt(e).subscribe({next:r=>s.next(r),error:r=>s.error(r),complete:()=>s.complete()}):it(e).subscribe({next:r=>{try{let o=Lt.EventSchemas.parse(r);s.next(o)}catch(o){s.error(o)}},error:r=>{if((r==null?void 0:r.name)==="AbortError"){s.next({type:Ot.EventType.RUN_ERROR,rawEvent:r}),s.complete();return}return s.error(r)},complete:()=>s.complete()})):n||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 Pt=require("rxjs/operators"),Dt=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"]),Qt=f.z.enum(["LangGraphInterruptEvent","PredictState","Exit"]),Zt=f.z.object({type:f.z.literal(I.enum.TextMessageStart),messageId:f.z.string(),parentMessageId:f.z.string().optional(),role:f.z.string().optional()}),te=f.z.object({type:f.z.literal(I.enum.TextMessageContent),messageId:f.z.string(),content:f.z.string()}),ee=f.z.object({type:f.z.literal(I.enum.TextMessageEnd),messageId:f.z.string()}),ne=f.z.object({type:f.z.literal(I.enum.ActionExecutionStart),actionExecutionId:f.z.string(),actionName:f.z.string(),parentMessageId:f.z.string().optional()}),se=f.z.object({type:f.z.literal(I.enum.ActionExecutionArgs),actionExecutionId:f.z.string(),args:f.z.string()}),ae=f.z.object({type:f.z.literal(I.enum.ActionExecutionEnd),actionExecutionId:f.z.string()}),oe=f.z.object({type:f.z.literal(I.enum.ActionExecutionResult),actionName:f.z.string(),actionExecutionId:f.z.string(),result:f.z.string()}),re=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()}),ie=f.z.object({type:f.z.literal(I.enum.MetaEvent),name:Qt,value:f.z.any()}),le=f.z.object({type:f.z.literal(I.enum.RunError),message:f.z.string(),code:f.z.string().optional()}),Rn=f.z.discriminatedUnion("type",[Zt,te,ee,ne,se,ae,oe,re,ie,le]),xn=f.z.object({id:f.z.string(),role:f.z.string(),content:f.z.string(),parentMessageId:f.z.string().optional()}),In=f.z.object({id:f.z.string(),name:f.z.string(),arguments:f.z.any(),parentMessageId:f.z.string().optional()}),_n=f.z.object({id:f.z.string(),result:f.z.any(),actionExecutionId:f.z.string(),actionName:f.z.string()});var Ht=st(require("untruncate-json"));var ge=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(` | ||
| `)},ut=(i,s,e)=>n=>{let t={},a=!0,r=!0,o="",l=null,p=null,_=[],v={},S=h=>{typeof h=="object"&&h!==null&&("messages"in h&&delete h.messages,t=h)};return n.pipe((0,Pt.mergeMap)(h=>{switch(h.type){case O.EventType.TEXT_MESSAGE_START:{let c=h;return[{type:I.enum.TextMessageStart,messageId:c.messageId,role:c.role}]}case O.EventType.TEXT_MESSAGE_CONTENT:{let c=h;return[{type:I.enum.TextMessageContent,messageId:c.messageId,content:c.delta}]}case O.EventType.TEXT_MESSAGE_END:{let c=h;return[{type:I.enum.TextMessageEnd,messageId:c.messageId}]}case O.EventType.TOOL_CALL_START:{let c=h;return _.push({id:c.toolCallId,type:"function",function:{name:c.toolCallName,arguments:""}}),r=!0,v[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=h,F=_.find(E=>E.id===c.toolCallId);if(!F)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${c.toolCallId}'`),[];F.function.arguments+=c.delta;let $=!1;if(p){let E=p.find(g=>g.tool==F.function.name);if(E)try{let g=JSON.parse((0,Ht.default)(F.function.arguments));E.tool_argument&&E.tool_argument in g?(S(G(w({},t),{[E.state_key]:g[E.tool_argument]})),$=!0):E.tool_argument||(S(G(w({},t),{[E.state_key]:g})),$=!0)}catch(g){}}return[{type:I.enum.ActionExecutionArgs,actionExecutionId:c.toolCallId,args:c.delta},...$?[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:r}]:[]]}case O.EventType.TOOL_CALL_END:{let c=h;return[{type:I.enum.ActionExecutionEnd,actionExecutionId:c.toolCallId}]}case O.EventType.TOOL_CALL_RESULT:{let c=h;return[{type:I.enum.ActionExecutionResult,actionExecutionId:c.toolCallId,result:c.content,actionName:v[c.toolCallId]||"unknown"}]}case O.EventType.RAW:return[];case O.EventType.CUSTOM:{let c=h;switch(c.name){case"Exit":a=!1;break;case"PredictState":p=c.value;break}return[{type:I.enum.MetaEvent,name:c.name,value:c.value}]}case O.EventType.STATE_SNAPSHOT:return S(h.snapshot),[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:r}];case O.EventType.STATE_DELTA:{let F=(0,Dt.applyPatch)(t,h.delta,!0,!1);return F?(S(F.newDocument),[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:r}]):[]}case O.EventType.MESSAGES_SNAPSHOT:return l=h.messages,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(w(w({},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:a,role:"assistant",state:JSON.stringify(w(w({},t),l?{messages:ce(l)}:{})),active:!1}];case O.EventType.RUN_ERROR:{let c=h;return[{type:I.enum.RunError,message:c.message,code:c.code}]}case O.EventType.STEP_STARTED:return o=h.stepName,_=[],p=null,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:!0}];case O.EventType.STEP_FINISHED:return _=[],p=null,[{type:I.enum.AgentStateMessage,threadId:i,agentName:e,nodeName:o,runId:s,running:a,role:"assistant",state:JSON.stringify(t),active:!1}];default:return[]}}))};function ce(i){var e;let s=[];for(let n of i)if(n.role==="assistant"||n.role==="user"||n.role==="system"){let t=ge(n.content);if(t){let a={id:n.id,role:n.role,content:t};s.push(a)}if(n.role==="assistant"&&n.toolCalls&&n.toolCalls.length>0)for(let a of n.toolCalls){let r={id:a.id,name:a.function.name,arguments:JSON.parse(a.function.arguments),parentMessageId:n.id};s.push(r)}}else if(n.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===n.toolCallId){t=o.function.name;break}}let a={id:n.id,result:n.content,actionExecutionId:n.toolCallId,actionName:t};s.push(a)}return s}var W=require("uuid");var kt=require("compare-versions"),j=require("rxjs/operators"),St=require("rxjs/operators"),Tt=require("rxjs/operators"),D=require("rxjs");var vt=require("rxjs");var Et=require("rxjs"),R=require("@ag-ui/core"),X=i=>s=>{let e,n,t,a=()=>{if(!e||t!=="text")throw new Error("No text message to close");let l={type:R.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(!n||t!=="tool")throw new Error("No tool call to close");let l={type:R.EventType.TOOL_CALL_END,toolCallId:n.toolCallId};return t=void 0,n=void 0,i&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(l)),l},o=()=>t==="text"?[a()]:t==="tool"?[r()]:[];return s.pipe((0,Et.mergeMap)(l=>{switch(l.type){case R.EventType.TEXT_MESSAGE_START:case R.EventType.TEXT_MESSAGE_CONTENT:case R.EventType.TEXT_MESSAGE_END:case R.EventType.TOOL_CALL_START:case R.EventType.TOOL_CALL_ARGS:case R.EventType.TOOL_CALL_END:case R.EventType.TOOL_CALL_RESULT:case R.EventType.STATE_SNAPSHOT:case R.EventType.STATE_DELTA:case R.EventType.MESSAGES_SNAPSHOT:case R.EventType.CUSTOM:case R.EventType.RUN_STARTED:case R.EventType.RUN_FINISHED:case R.EventType.RUN_ERROR:case R.EventType.STEP_STARTED:case R.EventType.STEP_FINISHED:case R.EventType.THINKING_START:case R.EventType.THINKING_END:case R.EventType.THINKING_TEXT_MESSAGE_START:case R.EventType.THINKING_TEXT_MESSAGE_CONTENT:case R.EventType.THINKING_TEXT_MESSAGE_END:return[...o(),l];case R.EventType.RAW:case R.EventType.ACTIVITY_SNAPSHOT:case R.EventType.ACTIVITY_DELTA:return[l];case R.EventType.TEXT_MESSAGE_CHUNK:let _=l,v=[];if((t!=="text"||_.messageId!==void 0&&_.messageId!==(e==null?void 0:e.messageId))&&v.push(...o()),t!=="text"){if(_.messageId===void 0)throw new Error("First TEXT_MESSAGE_CHUNK must have a messageId");e={messageId:_.messageId},t="text";let c={type:R.EventType.TEXT_MESSAGE_START,messageId:_.messageId,role:_.role||"assistant"};v.push(c),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(c))}if(_.delta!==void 0){let c={type:R.EventType.TEXT_MESSAGE_CONTENT,messageId:e.messageId,delta:_.delta};v.push(c),i&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(c))}return v;case R.EventType.TOOL_CALL_CHUNK:let S=l,h=[];if((t!=="tool"||S.toolCallId!==void 0&&S.toolCallId!==(n==null?void 0:n.toolCallId))&&h.push(...o()),t!=="tool"){if(S.toolCallId===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallId");if(S.toolCallName===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallName");n={toolCallId:S.toolCallId,toolCallName:S.toolCallName,parentMessageId:S.parentMessageId},t="tool";let c={type:R.EventType.TOOL_CALL_START,toolCallId:S.toolCallId,toolCallName:S.toolCallName,parentMessageId:S.parentMessageId};h.push(c),i&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(c))}if(S.delta!==void 0){let c={type:R.EventType.TOOL_CALL_ARGS,toolCallId:n.toolCallId,delta:S.delta};h.push(c),i&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(c))}return h}let p=l.type;return[]}),(0,Et.finalize)(()=>{o()}))};var At=require("@ag-ui/core");var Gt=require("rxjs"),bt=require("rxjs/operators");var V=class{runNext(s,e){return e.run(s).pipe(X(!1))}runNextWithState(s,e){let n=M(s.messages||[]),t=M(s.state||{}),a=new Gt.ReplaySubject;return K(s,a,e,[]).subscribe(o=>{o.messages!==void 0&&(n=o.messages),o.state!==void 0&&(t=o.state)}),this.runNext(s,e).pipe((0,bt.concatMap)(async o=>(a.next(o),await new Promise(l=>setTimeout(l,0)),{event:o,messages:M(n),state:M(t)})))}},Z=class extends V{constructor(e){super();this.fn=e}run(e,n){return this.fn(e,n)}};function ue(i){let s=i.content;if(Array.isArray(s)){let e=s.filter(n=>typeof n=="object"&&n!==null&&"type"in n&&n.type==="text"&&typeof n.text=="string").map(n=>n.text).join("");return G(w({},i),{content:e})}return typeof s=="string"?i:G(w({},i),{content:""})}var tt=class extends V{run(s,e){let r=s,{parentRunId:n}=r,t=Mt(r,["parentRunId"]),a=G(w({},t),{messages:t.messages.map(ue)});return this.runNext(a,e)}};var Ft={name:"@ag-ui/client",author:"Markus Ecker <markus.ecker@gmail.com>",version:"0.0.42-alpha.0",private:!1,publishConfig:{access:"public"},main:"./dist/index.js",module:"./dist/index.mjs",types:"./dist/index.d.ts",sideEffects:!1,files:["dist/**","README.md"],scripts:{build:"tsup",dev:"tsup --watch",clean:"rm -rf dist .turbo node_modules",typecheck:"tsc --noEmit",test:"jest","link:global":"pnpm link --global","unlink:global":"pnpm unlink --global"},dependencies:{"@ag-ui/core":"workspace:*","@ag-ui/encoder":"workspace:*","@ag-ui/proto":"workspace:*","@types/uuid":"^10.0.0","compare-versions":"^6.1.1","fast-json-patch":"^3.1.1",rxjs:"7.8.1","untruncate-json":"^0.0.1",uuid:"^11.1.0",zod:"^3.22.4"},devDependencies:{"@types/jest":"^29.5.14","@types/node":"^20.11.19",jest:"^29.7.0","ts-jest":"^29.1.2",tsup:"^8.0.2",typescript:"^5.3.3"}};var Y=class{constructor({agentId:s,description:e,threadId:n,initialMessages:t,initialState:a,debug:r}={}){this.debug=!1;this.subscribers=[];this.isRunning=!1;this.middlewares=[];this.agentId=s,this.description=e!=null?e:"",this.threadId=n!=null?n:(0,W.v4)(),this.messages=M(t!=null?t:[]),this.state=M(a!=null?a:{}),this.debug=r!=null?r:!1,(0,kt.compareVersions)(this.maxVersion,"0.0.39")<=0&&this.middlewares.unshift(new tt)}get maxVersion(){return Ft.version}subscribe(s){return this.subscribers.push(s),{unsubscribe:()=>{this.subscribers=this.subscribers.filter(e=>e!==s)}}}use(...s){let e=s.map(n=>typeof n=="function"?new Z(n):n);return this.middlewares.push(...e),this}async runAgent(s,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:(0,W.v4)();let t=this.prepareRunAgentInput(s),a,r=new Set(this.messages.map(v=>v.id)),o=[{onRunFinishedEvent:v=>{a=v.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o),this.activeRunDetach$=new D.Subject;let l;this.activeRunCompletionPromise=new Promise(v=>{l=v});let p=(0,D.pipe)(()=>this.middlewares.length===0?this.run(t):this.middlewares.reduceRight((S,h)=>({run:c=>h.run(c,S)}),this).run(t),X(this.debug),J(this.debug),v=>v.pipe((0,Tt.takeUntil)(this.activeRunDetach$)),v=>this.apply(t,v,o),v=>this.processApplyEvents(t,v,o),(0,j.catchError)(v=>(this.isRunning=!1,this.onError(t,v,o))),(0,St.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,o),l==null||l(),l=void 0,this.activeRunCompletionPromise=void 0,this.activeRunDetach$=void 0}));await(0,vt.lastValueFrom)(p((0,D.of)(null)));let _=M(this.messages).filter(v=>!r.has(v.id));return{result:a,newMessages:_}}finally{this.isRunning=!1}}connect(s){throw new At.AGUIConnectNotImplementedError}async connectAgent(s,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:(0,W.v4)();let t=this.prepareRunAgentInput(s),a,r=new Set(this.messages.map(v=>v.id)),o=[{onRunFinishedEvent:v=>{a=v.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o),this.activeRunDetach$=new D.Subject;let l;this.activeRunCompletionPromise=new Promise(v=>{l=v});let p=(0,D.pipe)(()=>this.connect(t),X(this.debug),J(this.debug),v=>v.pipe((0,Tt.takeUntil)(this.activeRunDetach$)),v=>this.apply(t,v,o),v=>this.processApplyEvents(t,v,o),(0,j.catchError)(v=>(this.isRunning=!1,v instanceof At.AGUIConnectNotImplementedError?D.EMPTY:this.onError(t,v,o))),(0,St.finalize)(()=>{this.isRunning=!1,this.onFinalize(t,o),l==null||l(),l=void 0,this.activeRunCompletionPromise=void 0,this.activeRunDetach$=void 0}));await(0,vt.lastValueFrom)(p((0,D.of)(null)));let _=M(this.messages).filter(v=>!r.has(v.id));return{result:a,newMessages:_}}finally{this.isRunning=!1}}abortRun(){}async detachActiveRun(){var e;if(!this.activeRunDetach$)return;let s=(e=this.activeRunCompletionPromise)!=null?e:Promise.resolve();this.activeRunDetach$.next(),this.activeRunDetach$.complete(),await s}apply(s,e,n){return K(s,e,this,n)}processApplyEvents(s,e,n){return e.pipe((0,j.tap)(t=>{t.messages&&(this.messages=t.messages,n.forEach(a=>{var r;(r=a.onMessagesChanged)==null||r.call(a,{messages:this.messages,state:this.state,agent:this,input:s})})),t.state&&(this.state=t.state,n.forEach(a=>{var r;(r=a.onStateChanged)==null||r.call(a,{state:this.state,messages:this.messages,agent:this,input:s})}))}))}prepareRunAgentInput(s){var t,a,r;let n=M(this.messages).filter(o=>o.role!=="activity");return{threadId:this.threadId,runId:(s==null?void 0:s.runId)||(0,W.v4)(),tools:M((t=s==null?void 0:s.tools)!=null?t:[]),context:M((a=s==null?void 0:s.context)!=null?a:[]),forwardedProps:M((r=s==null?void 0:s.forwardedProps)!=null?r:{}),state:M(this.state),messages:n}}async onInitialize(s,e){let n=await N(e,this.messages,this.state,(t,a,r)=>{var o;return(o=t.onRunInitialized)==null?void 0:o.call(t,{messages:a,state:r,agent:this,input:s})});(n.messages!==void 0||n.state!==void 0)&&(n.messages&&(this.messages=n.messages,s.messages=n.messages,e.forEach(t=>{var a;(a=t.onMessagesChanged)==null||a.call(t,{messages:this.messages,state:this.state,agent:this,input:s})})),n.state&&(this.state=n.state,s.state=n.state,e.forEach(t=>{var a;(a=t.onStateChanged)==null||a.call(t,{state:this.state,messages:this.messages,agent:this,input:s})})))}onError(s,e,n){return(0,D.from)(N(n,this.messages,this.state,(t,a,r)=>{var o;return(o=t.onRunFailed)==null?void 0:o.call(t,{error:e,messages:a,state:r,agent:this,input:s})})).pipe((0,j.map)(t=>{let a=t;if((a.messages!==void 0||a.state!==void 0)&&(a.messages!==void 0&&(this.messages=a.messages,n.forEach(r=>{var o;(o=r.onMessagesChanged)==null||o.call(r,{messages:this.messages,state:this.state,agent:this,input:s})})),a.state!==void 0&&(this.state=a.state,n.forEach(r=>{var o;(o=r.onStateChanged)==null||o.call(r,{state:this.state,messages:this.messages,agent:this,input:s})}))),a.stopPropagation!==!0)throw console.error("Agent execution failed:",e),e;return{}}))}async onFinalize(s,e){let n=await N(e,this.messages,this.state,(t,a,r)=>{var o;return(o=t.onRunFinalized)==null?void 0:o.call(t,{messages:a,state:r,agent:this,input:s})});(n.messages!==void 0||n.state!==void 0)&&(n.messages!==void 0&&(this.messages=n.messages,e.forEach(t=>{var a;(a=t.onMessagesChanged)==null||a.call(t,{messages:this.messages,state:this.state,agent:this,input:s})})),n.state!==void 0&&(this.state=n.state,e.forEach(t=>{var a;(a=t.onStateChanged)==null||a.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=M(this.messages),s.state=M(this.state),s.debug=this.debug,s.isRunning=this.isRunning,s.subscribers=[...this.subscribers],s.middlewares=[...this.middlewares],s}addMessage(s){this.messages.push(s),(async()=>{var e,n,t;for(let a of this.subscribers)await((e=a.onNewMessage)==null?void 0:e.call(a,{message:s,messages:this.messages,state:this.state,agent:this}));if(s.role==="assistant"&&s.toolCalls)for(let a of s.toolCalls)for(let r of this.subscribers)await((n=r.onNewToolCall)==null?void 0:n.call(r,{toolCall:a,messages:this.messages,state:this.state,agent:this}));for(let a of this.subscribers)await((t=a.onMessagesChanged)==null?void 0:t.call(a,{messages:this.messages,state:this.state,agent:this}))})()}addMessages(s){this.messages.push(...s),(async()=>{var e,n,t;for(let a of s){for(let r of this.subscribers)await((e=r.onNewMessage)==null?void 0:e.call(r,{message:a,messages:this.messages,state:this.state,agent:this}));if(a.role==="assistant"&&a.toolCalls)for(let r of a.toolCalls)for(let o of this.subscribers)await((n=o.onNewToolCall)==null?void 0:n.call(o,{toolCall:r,messages:this.messages,state:this.state,agent:this}))}for(let a of this.subscribers)await((t=a.onMessagesChanged)==null?void 0:t.call(a,{messages:this.messages,state:this.state,agent:this}))})()}setMessages(s){this.messages=M(s),(async()=>{var e;for(let n of this.subscribers)await((e=n.onMessagesChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}setState(s){this.state=M(s),(async()=>{var e;for(let n of this.subscribers)await((e=n.onStateChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}legacy_to_be_removed_runAgentBridged(s){var t;this.agentId=(t=this.agentId)!=null?t:(0,W.v4)();let e=this.prepareRunAgentInput(s);return(this.middlewares.length===0?this.run(e):this.middlewares.reduceRight((r,o)=>({run:l=>o.run(l,r)}),this).run(e)).pipe(X(this.debug),J(this.debug),ut(this.threadId,e.runId,this.agentId),a=>a.pipe((0,j.map)(r=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(r)),r))))}};var pt=class extends Y{constructor(e){var n;super(e);this.abortController=new AbortController;this.url=e.url,this.headers=M((n=e.headers)!=null?n:{})}requestInit(e){return{method:"POST",headers:G(w({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(e),signal:this.abortController.signal}}runAgent(e,n){var t;return this.abortController=(t=e==null?void 0:e.abortController)!=null?t:new AbortController,super.runAgent(e,n)}abortRun(){this.abortController.abort(),super.abortRun()}run(e){let n=rt(this.url,this.requestInit(e));return ct(n)}clone(){var a;let e=super.clone();e.url=this.url,e.headers=M((a=this.headers)!=null?a:{});let n=new AbortController,t=this.abortController.signal;return t.aborted&&n.abort(t.reason),e.abortController=n,e}};var B=require("@ag-ui/core");function jt(i){let s=[],e=new Map,n=new Map;for(let t of i)if(t.type===B.EventType.TEXT_MESSAGE_START){let a=t,r=a.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.start=a}else if(t.type===B.EventType.TEXT_MESSAGE_CONTENT){let a=t,r=a.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]}),e.get(r).contents.push(a)}else if(t.type===B.EventType.TEXT_MESSAGE_END){let a=t,r=a.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.end=a,Ut(r,o,s),e.delete(r)}else if(t.type===B.EventType.TOOL_CALL_START){let a=t,r=a.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.start=a}else if(t.type===B.EventType.TOOL_CALL_ARGS){let a=t,r=a.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]}),n.get(r).args.push(a)}else if(t.type===B.EventType.TOOL_CALL_END){let a=t,r=a.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.end=a,Bt(r,o,s),n.delete(r)}else{let a=!1;for(let[r,o]of e)if(o.start&&!o.end){o.otherEvents.push(t),a=!0;break}if(!a){for(let[r,o]of n)if(o.start&&!o.end){o.otherEvents.push(t),a=!0;break}}a||s.push(t)}for(let[t,a]of e)Ut(t,a,s);for(let[t,a]of n)Bt(t,a,s);return s}function Ut(i,s,e){if(s.start&&e.push(s.start),s.contents.length>0){let n=s.contents.map(a=>a.delta).join(""),t={type:B.EventType.TEXT_MESSAGE_CONTENT,messageId:i,delta:n};e.push(t)}s.end&&e.push(s.end);for(let n of s.otherEvents)e.push(n)}function Bt(i,s,e){if(s.start&&e.push(s.start),s.args.length>0){let n=s.args.map(a=>a.delta).join(""),t={type:B.EventType.TOOL_CALL_ARGS,toolCallId:i,delta:n};e.push(t)}s.end&&e.push(s.end);for(let n of s.otherEvents)e.push(n)}b(H,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")}); | ||
| //# sourceMappingURL=index.js.map |
+4
-4
@@ -1,8 +0,8 @@ | ||
| var Mt=Object.defineProperty,Ct=Object.defineProperties;var Rt=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var ot=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;var at=(g,a,e)=>a in g?Mt(g,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):g[a]=e,_=(g,a)=>{for(var e in a||(a={}))ot.call(a,e)&&at(g,e,a[e]);if(Y)for(var e of Y(a))rt.call(a,e)&&at(g,e,a[e]);return g},G=(g,a)=>Ct(g,Rt(a));var it=(g,a)=>{var e={};for(var n in g)ot.call(g,n)&&a.indexOf(n)<0&&(e[n]=g[n]);if(g!=null&&Y)for(var n of Y(g))a.indexOf(n)<0&&rt.call(g,n)&&(e[n]=g[n]);return e};import{EventType as R}from"@ag-ui/core";import{mergeAll as It,defaultIfEmpty as _t,concatMap as Nt}from"rxjs/operators";import{of as Lt,EMPTY as wt}from"rxjs";import{v4 as xt}from"uuid";var y=g=>{if(typeof structuredClone=="function")return structuredClone(g);try{return JSON.parse(JSON.stringify(g))}catch(a){return _({},g)}};function ve(){return xt()}import{applyPatch as lt}from"fast-json-patch";async function x(g,a,e,n){let t=a,s=e,r;for(let o of g)try{let i=await n(o,y(t),y(s));if(i===void 0)continue;if(i.messages!==void 0&&(t=i.messages),i.state!==void 0&&(s=i.state),r=i.stopPropagation,r===!0)break}catch(i){process.env.NODE_ENV==="test"||process.env.JEST_WORKER_ID!==void 0||console.error("Subscriber error:",i);continue}return _(_(_({},JSON.stringify(t)!==JSON.stringify(a)?{messages:t}:{}),JSON.stringify(s)!==JSON.stringify(e)?{state:s}:{}),r!==void 0?{stopPropagation:r}:{})}import Ot from"untruncate-json";var z=(g,a,e,n)=>{let t=y(e.messages),s=y(g.state),r={},o=p=>{p.messages!==void 0&&(t=p.messages,r.messages=p.messages),p.state!==void 0&&(s=p.state,r.state=p.state)},i=()=>{let p=y(r);return r={},p.messages!==void 0||p.state!==void 0?Lt(p):wt};return a.pipe(Nt(async p=>{var T,A,c,F,U;let S=await x(n,t,s,(E,l,d)=>{var m;return(m=E.onEvent)==null?void 0:m.call(E,{event:p,agent:e,input:g,messages:l,state:d})});if(o(S),S.stopPropagation===!0)return i();switch(p.type){case R.TEXT_MESSAGE_START:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onTextMessageStartEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{messageId:l,role:d="assistant"}=p,m={id:l,role:d,content:""};t.push(m),o({messages:t})}return i()}case R.TEXT_MESSAGE_CONTENT:{let{messageId:E,delta:l}=p,d=t.find(u=>u.id===E);if(!d)return console.warn(`TEXT_MESSAGE_CONTENT: No message found with ID '${E}'`),i();let m=await x(n,t,s,(u,v,h)=>{var I;return(I=u.onTextMessageContentEvent)==null?void 0:I.call(u,{event:p,messages:v,state:h,agent:e,input:g,textMessageBuffer:typeof d.content=="string"?d.content:""})});if(o(m),m.stopPropagation!==!0){let u=typeof d.content=="string"?d.content:"";d.content=`${u}${l}`,o({messages:t})}return i()}case R.TEXT_MESSAGE_END:{let{messageId:E}=p,l=t.find(m=>m.id===E);if(!l)return console.warn(`TEXT_MESSAGE_END: No message found with ID '${E}'`),i();let d=await x(n,t,s,(m,u,v)=>{var h;return(h=m.onTextMessageEndEvent)==null?void 0:h.call(m,{event:p,messages:u,state:v,agent:e,input:g,textMessageBuffer:typeof l.content=="string"?l.content:""})});return o(d),await Promise.all(n.map(m=>{var u;(u=m.onNewMessage)==null||u.call(m,{message:l,messages:t,state:s,agent:e,input:g})})),i()}case R.TOOL_CALL_START:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onToolCallStartEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{toolCallId:l,toolCallName:d,parentMessageId:m}=p,u;m&&t.length>0&&t[t.length-1].id===m?u=t[t.length-1]:(u={id:m||l,role:"assistant",toolCalls:[]},t.push(u)),(T=u.toolCalls)!=null||(u.toolCalls=[]),u.toolCalls.push({id:l,type:"function",function:{name:d,arguments:""}}),o({messages:t})}return i()}case R.TOOL_CALL_ARGS:{let{toolCallId:E,delta:l}=p,d=t.find(v=>{var h;return(h=v.toolCalls)==null?void 0:h.some(I=>I.id===E)});if(!d)return console.warn(`TOOL_CALL_ARGS: No message found containing tool call with ID '${E}'`),i();let m=d.toolCalls.find(v=>v.id===E);if(!m)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${E}'`),i();let u=await x(n,t,s,(v,h,I)=>{var q;let D=m.function.arguments,b=m.function.name,j={};try{j=Ot(D)}catch(Te){}return(q=v.onToolCallArgsEvent)==null?void 0:q.call(v,{event:p,messages:h,state:I,agent:e,input:g,toolCallBuffer:D,toolCallName:b,partialToolCallArgs:j})});return o(u),u.stopPropagation!==!0&&(m.function.arguments+=l,o({messages:t})),i()}case R.TOOL_CALL_END:{let{toolCallId:E}=p,l=t.find(u=>{var v;return(v=u.toolCalls)==null?void 0:v.some(h=>h.id===E)});if(!l)return console.warn(`TOOL_CALL_END: No message found containing tool call with ID '${E}'`),i();let d=l.toolCalls.find(u=>u.id===E);if(!d)return console.warn(`TOOL_CALL_END: No tool call found with ID '${E}'`),i();let m=await x(n,t,s,(u,v,h)=>{var j;let I=d.function.arguments,D=d.function.name,b={};try{b=JSON.parse(I)}catch(q){}return(j=u.onToolCallEndEvent)==null?void 0:j.call(u,{event:p,messages:v,state:h,agent:e,input:g,toolCallName:D,toolCallArgs:b})});return o(m),await Promise.all(n.map(u=>{var v;(v=u.onNewToolCall)==null||v.call(u,{toolCall:d,messages:t,state:s,agent:e,input:g})})),i()}case R.TOOL_CALL_RESULT:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onToolCallResultEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{messageId:l,toolCallId:d,content:m,role:u}=p,v={id:l,toolCallId:d,role:u||"tool",content:m};t.push(v),await Promise.all(n.map(h=>{var I;(I=h.onNewMessage)==null||I.call(h,{message:v,messages:t,state:s,agent:e,input:g})})),o({messages:t})}return i()}case R.STATE_SNAPSHOT:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onStateSnapshotEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{snapshot:l}=p;s=l,o({state:s})}return i()}case R.STATE_DELTA:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onStateDeltaEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{delta:l}=p;try{s=lt(s,l,!0,!1).newDocument,o({state:s})}catch(d){let m=d instanceof Error?d.message:String(d);console.warn(`Failed to apply state patch: | ||
| var Rt=Object.defineProperty,xt=Object.defineProperties;var It=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var ot=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;var at=(g,a,e)=>a in g?Rt(g,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):g[a]=e,N=(g,a)=>{for(var e in a||(a={}))ot.call(a,e)&&at(g,e,a[e]);if(Y)for(var e of Y(a))rt.call(a,e)&&at(g,e,a[e]);return g},G=(g,a)=>xt(g,It(a));var it=(g,a)=>{var e={};for(var n in g)ot.call(g,n)&&a.indexOf(n)<0&&(e[n]=g[n]);if(g!=null&&Y)for(var n of Y(g))a.indexOf(n)<0&&rt.call(g,n)&&(e[n]=g[n]);return e};import{EventType as R}from"@ag-ui/core";import{mergeAll as Nt,defaultIfEmpty as Lt,concatMap as wt}from"rxjs/operators";import{of as Ot,EMPTY as Pt}from"rxjs";import{v4 as _t}from"uuid";var y=g=>{if(typeof structuredClone=="function")return structuredClone(g);try{return JSON.parse(JSON.stringify(g))}catch(a){return N({},g)}};function ye(){return _t()}import{applyPatch as lt}from"fast-json-patch";async function I(g,a,e,n){let t=a,s=e,r;for(let o of g)try{let i=await n(o,y(t),y(s));if(i===void 0)continue;if(i.messages!==void 0&&(t=i.messages),i.state!==void 0&&(s=i.state),r=i.stopPropagation,r===!0)break}catch(i){process.env.NODE_ENV==="test"||process.env.JEST_WORKER_ID!==void 0||console.error("Subscriber error:",i);continue}return N(N(N({},JSON.stringify(t)!==JSON.stringify(a)?{messages:t}:{}),JSON.stringify(s)!==JSON.stringify(e)?{state:s}:{}),r!==void 0?{stopPropagation:r}:{})}import Dt from"untruncate-json";var $=(g,a,e,n)=>{let t=y(e.messages),s=y(g.state),r={},o=p=>{p.messages!==void 0&&(t=p.messages,r.messages=p.messages),p.state!==void 0&&(s=p.state,r.state=p.state)},i=()=>{let p=y(r);return r={},p.messages!==void 0||p.state!==void 0?Ot(p):Pt};return a.pipe(wt(async p=>{var S,v,c,b,U;let x=await I(n,t,s,(E,l,d)=>{var m;return(m=E.onEvent)==null?void 0:m.call(E,{event:p,agent:e,input:g,messages:l,state:d})});if(o(x),x.stopPropagation===!0)return i();switch(p.type){case R.TEXT_MESSAGE_START:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onTextMessageStartEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{messageId:l,role:d="assistant"}=p,m={id:l,role:d,content:""};t.push(m),o({messages:t})}return i()}case R.TEXT_MESSAGE_CONTENT:{let{messageId:E,delta:l}=p,d=t.find(u=>u.id===E);if(!d)return console.warn(`TEXT_MESSAGE_CONTENT: No message found with ID '${E}'`),i();let m=await I(n,t,s,(u,A,h)=>{var _;return(_=u.onTextMessageContentEvent)==null?void 0:_.call(u,{event:p,messages:A,state:h,agent:e,input:g,textMessageBuffer:typeof d.content=="string"?d.content:""})});if(o(m),m.stopPropagation!==!0){let u=typeof d.content=="string"?d.content:"";d.content=`${u}${l}`,o({messages:t})}return i()}case R.TEXT_MESSAGE_END:{let{messageId:E}=p,l=t.find(m=>m.id===E);if(!l)return console.warn(`TEXT_MESSAGE_END: No message found with ID '${E}'`),i();let d=await I(n,t,s,(m,u,A)=>{var h;return(h=m.onTextMessageEndEvent)==null?void 0:h.call(m,{event:p,messages:u,state:A,agent:e,input:g,textMessageBuffer:typeof l.content=="string"?l.content:""})});return o(d),await Promise.all(n.map(m=>{var u;(u=m.onNewMessage)==null||u.call(m,{message:l,messages:t,state:s,agent:e,input:g})})),i()}case R.TOOL_CALL_START:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onToolCallStartEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{toolCallId:l,toolCallName:d,parentMessageId:m}=p,u;m&&t.length>0&&t[t.length-1].id===m?u=t[t.length-1]:(u={id:m||l,role:"assistant",toolCalls:[]},t.push(u)),(S=u.toolCalls)!=null||(u.toolCalls=[]),u.toolCalls.push({id:l,type:"function",function:{name:d,arguments:""}}),o({messages:t})}return i()}case R.TOOL_CALL_ARGS:{let{toolCallId:E,delta:l}=p,d=t.find(A=>{var h;return(h=A.toolCalls)==null?void 0:h.some(_=>_.id===E)});if(!d)return console.warn(`TOOL_CALL_ARGS: No message found containing tool call with ID '${E}'`),i();let m=d.toolCalls.find(A=>A.id===E);if(!m)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${E}'`),i();let u=await I(n,t,s,(A,h,_)=>{var q;let H=m.function.arguments,F=m.function.name,X={};try{X=Dt(H)}catch(ve){}return(q=A.onToolCallArgsEvent)==null?void 0:q.call(A,{event:p,messages:h,state:_,agent:e,input:g,toolCallBuffer:H,toolCallName:F,partialToolCallArgs:X})});return o(u),u.stopPropagation!==!0&&(m.function.arguments+=l,o({messages:t})),i()}case R.TOOL_CALL_END:{let{toolCallId:E}=p,l=t.find(u=>{var A;return(A=u.toolCalls)==null?void 0:A.some(h=>h.id===E)});if(!l)return console.warn(`TOOL_CALL_END: No message found containing tool call with ID '${E}'`),i();let d=l.toolCalls.find(u=>u.id===E);if(!d)return console.warn(`TOOL_CALL_END: No tool call found with ID '${E}'`),i();let m=await I(n,t,s,(u,A,h)=>{var X;let _=d.function.arguments,H=d.function.name,F={};try{F=JSON.parse(_)}catch(q){}return(X=u.onToolCallEndEvent)==null?void 0:X.call(u,{event:p,messages:A,state:h,agent:e,input:g,toolCallName:H,toolCallArgs:F})});return o(m),await Promise.all(n.map(u=>{var A;(A=u.onNewToolCall)==null||A.call(u,{toolCall:d,messages:t,state:s,agent:e,input:g})})),i()}case R.TOOL_CALL_RESULT:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onToolCallResultEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{messageId:l,toolCallId:d,content:m,role:u}=p,A={id:l,toolCallId:d,role:u||"tool",content:m};t.push(A),await Promise.all(n.map(h=>{var _;(_=h.onNewMessage)==null||_.call(h,{message:A,messages:t,state:s,agent:e,input:g})})),o({messages:t})}return i()}case R.STATE_SNAPSHOT:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onStateSnapshotEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{snapshot:l}=p;s=l,o({state:s})}return i()}case R.STATE_DELTA:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onStateDeltaEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{delta:l}=p;try{s=lt(s,l,!0,!1).newDocument,o({state:s})}catch(d){let m=d instanceof Error?d.message:String(d);console.warn(`Failed to apply state patch: | ||
| Current state: ${JSON.stringify(s,null,2)} | ||
| Patch operations: ${JSON.stringify(l,null,2)} | ||
| Error: ${m}`)}}return i()}case R.MESSAGES_SNAPSHOT:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onMessagesSnapshotEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{messages:l}=p;t=l,o({messages:t})}return i()}case R.ACTIVITY_SNAPSHOT:{let E=p,l=t.findIndex(h=>h.id===E.messageId),d=l>=0?t[l]:void 0,m=(d==null?void 0:d.role)==="activity"?d:void 0,u=(A=E.replace)!=null?A:!0,v=await x(n,t,s,(h,I,D)=>{var b;return(b=h.onActivitySnapshotEvent)==null?void 0:b.call(h,{event:E,messages:I,state:D,agent:e,input:g,activityMessage:m,existingMessage:d})});if(o(v),v.stopPropagation!==!0){let h={id:E.messageId,role:"activity",activityType:E.activityType,content:y(E.content)},I;l===-1?(t.push(h),I=h):m?u&&(t[l]=G(_({},m),{activityType:E.activityType,content:y(E.content)})):u&&(t[l]=h,I=h),o({messages:t}),I&&await Promise.all(n.map(D=>{var b;return(b=D.onNewMessage)==null?void 0:b.call(D,{message:I,messages:t,state:s,agent:e,input:g})}))}return i()}case R.ACTIVITY_DELTA:{let E=p,l=t.findIndex(v=>v.id===E.messageId);if(l===-1)return console.warn(`ACTIVITY_DELTA: No message found with ID '${E.messageId}' to apply patch`),i();let d=t[l];if(d.role!=="activity")return console.warn(`ACTIVITY_DELTA: Message '${E.messageId}' is not an activity message`),i();let m=d,u=await x(n,t,s,(v,h,I)=>{var D;return(D=v.onActivityDeltaEvent)==null?void 0:D.call(v,{event:E,messages:h,state:I,agent:e,input:g,activityMessage:m})});if(o(u),u.stopPropagation!==!0)try{let v=y((c=m.content)!=null?c:{}),I=lt(v,(F=E.patch)!=null?F:[],!0,!1).newDocument;t[l]=G(_({},m),{content:y(I),activityType:E.activityType}),o({messages:t})}catch(v){let h=v instanceof Error?v.message:String(v);console.warn(`Failed to apply activity patch for '${E.messageId}': ${h}`)}return i()}case R.RAW:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onRawEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.CUSTOM:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onCustomEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.RUN_STARTED:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onRunStartedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let l=p;if((U=l.input)!=null&&U.messages){for(let d of l.input.messages)t.find(u=>u.id===d.id)||t.push(d);o({messages:t})}}return i()}case R.RUN_FINISHED:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onRunFinishedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g,result:p.result})});return o(E),i()}case R.RUN_ERROR:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onRunErrorEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.STEP_STARTED:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onStepStartedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.STEP_FINISHED:{let E=await x(n,t,s,(l,d,m)=>{var u;return(u=l.onStepFinishedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.TEXT_MESSAGE_CHUNK:throw new Error("TEXT_MESSAGE_CHUNK must be tranformed before being applied");case R.TOOL_CALL_CHUNK:throw new Error("TOOL_CALL_CHUNK must be tranformed before being applied");case R.THINKING_START:return i();case R.THINKING_END:return i();case R.THINKING_TEXT_MESSAGE_START:return i();case R.THINKING_TEXT_MESSAGE_CONTENT:return i();case R.THINKING_TEXT_MESSAGE_END:return i()}let H=p.type;return i()}),It(),n.length>0?_t({}):p=>p)};import{EventType as N,AGUIError as L}from"@ag-ui/core";import{throwError as w,of as O}from"rxjs";import{mergeMap as Pt}from"rxjs/operators";var K=g=>a=>{let e=new Map,n=new Map,t=!1,s=!1,r=!1,o=new Map,i=!1,p=!1,S=!1,H=()=>{e.clear(),n.clear(),o.clear(),i=!1,p=!1,t=!1,s=!1,S=!0};return a.pipe(Pt(T=>{let A=T.type;if(g&&console.debug("[VERIFY]:",JSON.stringify(T)),s)return w(()=>new L(`Cannot send event type '${A}': The run has already errored with 'RUN_ERROR'. No further events can be sent.`));if(t&&A!==N.RUN_ERROR&&A!==N.RUN_STARTED)return w(()=>new L(`Cannot send event type '${A}': The run has already finished with 'RUN_FINISHED'. Start a new run with 'RUN_STARTED'.`));if(r){if(A===N.RUN_STARTED){if(S&&!t)return w(()=>new L("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,A!==N.RUN_STARTED&&A!==N.RUN_ERROR)return w(()=>new L("First event must be 'RUN_STARTED'"));switch(A){case N.TEXT_MESSAGE_START:{let c=T.messageId;return e.has(c)?w(()=>new L(`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),O(T))}case N.TEXT_MESSAGE_CONTENT:{let c=T.messageId;return e.has(c)?O(T):w(()=>new L(`Cannot send 'TEXT_MESSAGE_CONTENT' event: No active text message found with ID '${c}'. Start a text message with 'TEXT_MESSAGE_START' first.`))}case N.TEXT_MESSAGE_END:{let c=T.messageId;return e.has(c)?(e.delete(c),O(T)):w(()=>new L(`Cannot send 'TEXT_MESSAGE_END' event: No active text message found with ID '${c}'. A 'TEXT_MESSAGE_START' event must be sent first.`))}case N.TOOL_CALL_START:{let c=T.toolCallId;return n.has(c)?w(()=>new L(`Cannot send 'TOOL_CALL_START' event: A tool call with ID '${c}' is already in progress. Complete it with 'TOOL_CALL_END' first.`)):(n.set(c,!0),O(T))}case N.TOOL_CALL_ARGS:{let c=T.toolCallId;return n.has(c)?O(T):w(()=>new L(`Cannot send 'TOOL_CALL_ARGS' event: No active tool call found with ID '${c}'. Start a tool call with 'TOOL_CALL_START' first.`))}case N.TOOL_CALL_END:{let c=T.toolCallId;return n.has(c)?(n.delete(c),O(T)):w(()=>new L(`Cannot send 'TOOL_CALL_END' event: No active tool call found with ID '${c}'. A 'TOOL_CALL_START' event must be sent first.`))}case N.STEP_STARTED:{let c=T.stepName;return o.has(c)?w(()=>new L(`Step "${c}" is already active for 'STEP_STARTED'`)):(o.set(c,!0),O(T))}case N.STEP_FINISHED:{let c=T.stepName;return o.has(c)?(o.delete(c),O(T)):w(()=>new L(`Cannot send 'STEP_FINISHED' for step "${c}" that was not started`))}case N.RUN_STARTED:return S=!0,O(T);case N.RUN_FINISHED:{if(o.size>0){let c=Array.from(o.keys()).join(", ");return w(()=>new L(`Cannot send 'RUN_FINISHED' while steps are still active: ${c}`))}if(e.size>0){let c=Array.from(e.keys()).join(", ");return w(()=>new L(`Cannot send 'RUN_FINISHED' while text messages are still active: ${c}`))}if(n.size>0){let c=Array.from(n.keys()).join(", ");return w(()=>new L(`Cannot send 'RUN_FINISHED' while tool calls are still active: ${c}`))}return t=!0,O(T)}case N.RUN_ERROR:return s=!0,O(T);case N.CUSTOM:return O(T);case N.THINKING_TEXT_MESSAGE_START:return i?p?w(()=>new L("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking message is already in progress. Complete it with 'THINKING_TEXT_MESSAGE_END' first.")):(p=!0,O(T)):w(()=>new L("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking step is not in progress. Create one with 'THINKING_START' first."));case N.THINKING_TEXT_MESSAGE_CONTENT:return p?O(T):w(()=>new L("Cannot send 'THINKING_TEXT_MESSAGE_CONTENT' event: No active thinking message found. Start a message with 'THINKING_TEXT_MESSAGE_START' first."));case N.THINKING_TEXT_MESSAGE_END:return p?(p=!1,O(T)):w(()=>new L("Cannot send 'THINKING_TEXT_MESSAGE_END' event: No active thinking message found. A 'THINKING_TEXT_MESSAGE_START' event must be sent first."));case N.THINKING_START:return i?w(()=>new L("Cannot send 'THINKING_START' event: A thinking step is already in progress. End it with 'THINKING_END' first.")):(i=!0,O(T));case N.THINKING_END:return i?(i=!1,O(T)):w(()=>new L("Cannot send 'THINKING_END' event: No active thinking step found. A 'THINKING_START' event must be sent first."));default:return O(T)}}))};import{EventSchemas as Ut}from"@ag-ui/core";import{Subject as Bt,ReplaySubject as Xt}from"rxjs";import{Observable as Dt,from as gt,defer as Ht,throwError as ct}from"rxjs";import{mergeMap as Gt,switchMap as Ft}from"rxjs/operators";var Q=(g,a)=>Ht(()=>gt(fetch(g,a))).pipe(Ft(e=>{var s;if(!e.ok){let r=e.headers.get("content-type")||"";return gt(e.text()).pipe(Gt(o=>{let i=o;if(r.includes("application/json"))try{i=JSON.parse(o)}catch(S){}let p=new Error(`HTTP ${e.status}: ${typeof i=="string"?i:JSON.stringify(i)}`);return p.status=e.status,p.payload=i,ct(()=>p)}))}let n={type:"headers",status:e.status,headers:e.headers},t=(s=e.body)==null?void 0:s.getReader();return t?new Dt(r=>(r.next(n),(async()=>{try{for(;;){let{done:o,value:i}=await t.read();if(o)break;let p={type:"data",data:i};r.next(p)}r.complete()}catch(o){r.error(o)}})(),()=>{t.cancel().catch(o=>{if((o==null?void 0:o.name)!=="AbortError")throw o})})):ct(()=>new Error("Failed to getReader() from response"))}));import{Subject as bt}from"rxjs";var Z=g=>{let a=new bt,e=new TextDecoder("utf-8",{fatal:!1}),n="";g.subscribe({next:s=>{if(s.type!=="headers"&&s.type==="data"&&s.data){let r=e.decode(s.data,{stream:!0});n+=r;let o=n.split(/\n\n/);n=o.pop()||"";for(let i of o)t(i)}},error:s=>a.error(s),complete:()=>{n&&(n+=e.decode(),t(n)),a.complete()}});function t(s){let r=s.split(` | ||
| Error: ${m}`)}}return i()}case R.MESSAGES_SNAPSHOT:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onMessagesSnapshotEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let{messages:l}=p;t=l,o({messages:t})}return i()}case R.ACTIVITY_SNAPSHOT:{let E=p,l=t.findIndex(h=>h.id===E.messageId),d=l>=0?t[l]:void 0,m=(d==null?void 0:d.role)==="activity"?d:void 0,u=(v=E.replace)!=null?v:!0,A=await I(n,t,s,(h,_,H)=>{var F;return(F=h.onActivitySnapshotEvent)==null?void 0:F.call(h,{event:E,messages:_,state:H,agent:e,input:g,activityMessage:m,existingMessage:d})});if(o(A),A.stopPropagation!==!0){let h={id:E.messageId,role:"activity",activityType:E.activityType,content:y(E.content)},_;l===-1?(t.push(h),_=h):m?u&&(t[l]=G(N({},m),{activityType:E.activityType,content:y(E.content)})):u&&(t[l]=h,_=h),o({messages:t}),_&&await Promise.all(n.map(H=>{var F;return(F=H.onNewMessage)==null?void 0:F.call(H,{message:_,messages:t,state:s,agent:e,input:g})}))}return i()}case R.ACTIVITY_DELTA:{let E=p,l=t.findIndex(A=>A.id===E.messageId);if(l===-1)return console.warn(`ACTIVITY_DELTA: No message found with ID '${E.messageId}' to apply patch`),i();let d=t[l];if(d.role!=="activity")return console.warn(`ACTIVITY_DELTA: Message '${E.messageId}' is not an activity message`),i();let m=d,u=await I(n,t,s,(A,h,_)=>{var H;return(H=A.onActivityDeltaEvent)==null?void 0:H.call(A,{event:E,messages:h,state:_,agent:e,input:g,activityMessage:m})});if(o(u),u.stopPropagation!==!0)try{let A=y((c=m.content)!=null?c:{}),_=lt(A,(b=E.patch)!=null?b:[],!0,!1).newDocument;t[l]=G(N({},m),{content:y(_),activityType:E.activityType}),o({messages:t})}catch(A){let h=A instanceof Error?A.message:String(A);console.warn(`Failed to apply activity patch for '${E.messageId}': ${h}`)}return i()}case R.RAW:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onRawEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.CUSTOM:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onCustomEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.RUN_STARTED:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onRunStartedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});if(o(E),E.stopPropagation!==!0){let l=p;if((U=l.input)!=null&&U.messages){for(let d of l.input.messages)t.find(u=>u.id===d.id)||t.push(d);o({messages:t})}}return i()}case R.RUN_FINISHED:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onRunFinishedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g,result:p.result})});return o(E),i()}case R.RUN_ERROR:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onRunErrorEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.STEP_STARTED:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onStepStartedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.STEP_FINISHED:{let E=await I(n,t,s,(l,d,m)=>{var u;return(u=l.onStepFinishedEvent)==null?void 0:u.call(l,{event:p,messages:d,state:m,agent:e,input:g})});return o(E),i()}case R.TEXT_MESSAGE_CHUNK:throw new Error("TEXT_MESSAGE_CHUNK must be tranformed before being applied");case R.TOOL_CALL_CHUNK:throw new Error("TOOL_CALL_CHUNK must be tranformed before being applied");case R.THINKING_START:return i();case R.THINKING_END:return i();case R.THINKING_TEXT_MESSAGE_START:return i();case R.THINKING_TEXT_MESSAGE_CONTENT:return i();case R.THINKING_TEXT_MESSAGE_END:return i()}let T=p.type;return i()}),Nt(),n.length>0?Lt({}):p=>p)};import{EventType as L,AGUIError as w}from"@ag-ui/core";import{throwError as O,of as P}from"rxjs";import{mergeMap as Ht}from"rxjs/operators";var z=g=>a=>{let e=new Map,n=new Map,t=!1,s=!1,r=!1,o=new Map,i=!1,p=!1,x=!1,T=()=>{e.clear(),n.clear(),o.clear(),i=!1,p=!1,t=!1,s=!1,x=!0};return a.pipe(Ht(S=>{let v=S.type;if(g&&console.debug("[VERIFY]:",JSON.stringify(S)),s)return O(()=>new w(`Cannot send event type '${v}': The run has already errored with 'RUN_ERROR'. No further events can be sent.`));if(t&&v!==L.RUN_ERROR&&v!==L.RUN_STARTED)return O(()=>new w(`Cannot send event type '${v}': The run has already finished with 'RUN_FINISHED'. Start a new run with 'RUN_STARTED'.`));if(r){if(v===L.RUN_STARTED){if(x&&!t)return O(()=>new w("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&&T()}}else if(r=!0,v!==L.RUN_STARTED&&v!==L.RUN_ERROR)return O(()=>new w("First event must be 'RUN_STARTED'"));switch(v){case L.TEXT_MESSAGE_START:{let c=S.messageId;return e.has(c)?O(()=>new w(`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),P(S))}case L.TEXT_MESSAGE_CONTENT:{let c=S.messageId;return e.has(c)?P(S):O(()=>new w(`Cannot send 'TEXT_MESSAGE_CONTENT' event: No active text message found with ID '${c}'. Start a text message with 'TEXT_MESSAGE_START' first.`))}case L.TEXT_MESSAGE_END:{let c=S.messageId;return e.has(c)?(e.delete(c),P(S)):O(()=>new w(`Cannot send 'TEXT_MESSAGE_END' event: No active text message found with ID '${c}'. A 'TEXT_MESSAGE_START' event must be sent first.`))}case L.TOOL_CALL_START:{let c=S.toolCallId;return n.has(c)?O(()=>new w(`Cannot send 'TOOL_CALL_START' event: A tool call with ID '${c}' is already in progress. Complete it with 'TOOL_CALL_END' first.`)):(n.set(c,!0),P(S))}case L.TOOL_CALL_ARGS:{let c=S.toolCallId;return n.has(c)?P(S):O(()=>new w(`Cannot send 'TOOL_CALL_ARGS' event: No active tool call found with ID '${c}'. Start a tool call with 'TOOL_CALL_START' first.`))}case L.TOOL_CALL_END:{let c=S.toolCallId;return n.has(c)?(n.delete(c),P(S)):O(()=>new w(`Cannot send 'TOOL_CALL_END' event: No active tool call found with ID '${c}'. A 'TOOL_CALL_START' event must be sent first.`))}case L.STEP_STARTED:{let c=S.stepName;return o.has(c)?O(()=>new w(`Step "${c}" is already active for 'STEP_STARTED'`)):(o.set(c,!0),P(S))}case L.STEP_FINISHED:{let c=S.stepName;return o.has(c)?(o.delete(c),P(S)):O(()=>new w(`Cannot send 'STEP_FINISHED' for step "${c}" that was not started`))}case L.RUN_STARTED:return x=!0,P(S);case L.RUN_FINISHED:{if(o.size>0){let c=Array.from(o.keys()).join(", ");return O(()=>new w(`Cannot send 'RUN_FINISHED' while steps are still active: ${c}`))}if(e.size>0){let c=Array.from(e.keys()).join(", ");return O(()=>new w(`Cannot send 'RUN_FINISHED' while text messages are still active: ${c}`))}if(n.size>0){let c=Array.from(n.keys()).join(", ");return O(()=>new w(`Cannot send 'RUN_FINISHED' while tool calls are still active: ${c}`))}return t=!0,P(S)}case L.RUN_ERROR:return s=!0,P(S);case L.CUSTOM:return P(S);case L.THINKING_TEXT_MESSAGE_START:return i?p?O(()=>new w("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking message is already in progress. Complete it with 'THINKING_TEXT_MESSAGE_END' first.")):(p=!0,P(S)):O(()=>new w("Cannot send 'THINKING_TEXT_MESSAGE_START' event: A thinking step is not in progress. Create one with 'THINKING_START' first."));case L.THINKING_TEXT_MESSAGE_CONTENT:return p?P(S):O(()=>new w("Cannot send 'THINKING_TEXT_MESSAGE_CONTENT' event: No active thinking message found. Start a message with 'THINKING_TEXT_MESSAGE_START' first."));case L.THINKING_TEXT_MESSAGE_END:return p?(p=!1,P(S)):O(()=>new w("Cannot send 'THINKING_TEXT_MESSAGE_END' event: No active thinking message found. A 'THINKING_TEXT_MESSAGE_START' event must be sent first."));case L.THINKING_START:return i?O(()=>new w("Cannot send 'THINKING_START' event: A thinking step is already in progress. End it with 'THINKING_END' first.")):(i=!0,P(S));case L.THINKING_END:return i?(i=!1,P(S)):O(()=>new w("Cannot send 'THINKING_END' event: No active thinking step found. A 'THINKING_START' event must be sent first."));default:return P(S)}}))};import{EventSchemas as jt}from"@ag-ui/core";import{Subject as Xt,ReplaySubject as $t}from"rxjs";import{Observable as Gt,from as gt,defer as bt,throwError as ct}from"rxjs";import{mergeMap as Ft,switchMap as kt}from"rxjs/operators";var Q=(g,a)=>bt(()=>gt(fetch(g,a))).pipe(kt(e=>{var s;if(!e.ok){let r=e.headers.get("content-type")||"";return gt(e.text()).pipe(Ft(o=>{let i=o;if(r.includes("application/json"))try{i=JSON.parse(o)}catch(x){}let p=new Error(`HTTP ${e.status}: ${typeof i=="string"?i:JSON.stringify(i)}`);return p.status=e.status,p.payload=i,ct(()=>p)}))}let n={type:"headers",status:e.status,headers:e.headers},t=(s=e.body)==null?void 0:s.getReader();return t?new Gt(r=>(r.next(n),(async()=>{try{for(;;){let{done:o,value:i}=await t.read();if(o)break;let p={type:"data",data:i};r.next(p)}r.complete()}catch(o){r.error(o)}})(),()=>{t.cancel().catch(o=>{if((o==null?void 0:o.name)!=="AbortError")throw o})})):ct(()=>new Error("Failed to getReader() from response"))}));import{Subject as Ut}from"rxjs";var Z=g=>{let a=new Ut,e=new TextDecoder("utf-8",{fatal:!1}),n="";g.subscribe({next:s=>{if(s.type!=="headers"&&s.type==="data"&&s.data){let r=e.decode(s.data,{stream:!0});n+=r;let o=n.split(/\n\n/);n=o.pop()||"";for(let i of o)t(i)}},error:s=>a.error(s),complete:()=>{n&&(n+=e.decode(),t(n)),a.complete()}});function t(s){let r=s.split(` | ||
| `),o=[];for(let i of r)i.startsWith("data: ")&&o.push(i.slice(6));if(o.length>0)try{let i=o.join(` | ||
| `),p=JSON.parse(i);a.next(p)}catch(i){a.error(i)}}return a.asObservable()};import{Subject as kt}from"rxjs";import*as ut from"@ag-ui/proto";var tt=g=>{let a=new kt,e=new Uint8Array(0);g.subscribe({next:t=>{if(t.type!=="headers"&&t.type==="data"&&t.data){let s=new Uint8Array(e.length+t.data.length);s.set(e,0),s.set(t.data,e.length),e=s,n()}},error:t=>a.error(t),complete:()=>{if(e.length>0)try{n()}catch(t){console.warn("Incomplete or invalid protocol buffer data at stream end")}a.complete()}});function n(){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),i=ut.decode(o);a.next(i),e=e.slice(r)}catch(o){let i=o instanceof Error?o.message:String(o);a.error(new Error(`Failed to decode protocol buffer message: ${i}`));return}}}return a.asObservable()};import*as Et from"@ag-ui/proto";import{EventType as jt}from"@ag-ui/core";var et=g=>{let a=new Bt,e=new Xt,n=!1;return g.subscribe({next:t=>{e.next(t),t.type==="headers"&&!n?(n=!0,t.headers.get("content-type")===Et.AGUI_MEDIA_TYPE?tt(e).subscribe({next:r=>a.next(r),error:r=>a.error(r),complete:()=>a.complete()}):Z(e).subscribe({next:r=>{try{let o=Ut.parse(r);a.next(o)}catch(o){a.error(o)}},error:r=>{if((r==null?void 0:r.name)==="AbortError"){a.next({type:jt.RUN_ERROR,rawEvent:r}),a.complete();return}return a.error(r)},complete:()=>a.complete()})):n||a.error(new Error("No headers event received before data events"))},error:t=>{e.error(t),a.error(t)},complete:()=>{e.complete()}}),a.asObservable()};import{mergeMap as ee}from"rxjs/operators";import{applyPatch as ne}from"fast-json-patch";import{EventType as P}from"@ag-ui/core";import{z as f}from"zod";var C=f.enum(["TextMessageStart","TextMessageContent","TextMessageEnd","ActionExecutionStart","ActionExecutionArgs","ActionExecutionEnd","ActionExecutionResult","AgentStateMessage","MetaEvent","RunStarted","RunFinished","RunError","NodeStarted","NodeFinished"]),zt=f.enum(["LangGraphInterruptEvent","PredictState","Exit"]),Kt=f.object({type:f.literal(C.enum.TextMessageStart),messageId:f.string(),parentMessageId:f.string().optional(),role:f.string().optional()}),Jt=f.object({type:f.literal(C.enum.TextMessageContent),messageId:f.string(),content:f.string()}),$t=f.object({type:f.literal(C.enum.TextMessageEnd),messageId:f.string()}),Vt=f.object({type:f.literal(C.enum.ActionExecutionStart),actionExecutionId:f.string(),actionName:f.string(),parentMessageId:f.string().optional()}),Wt=f.object({type:f.literal(C.enum.ActionExecutionArgs),actionExecutionId:f.string(),args:f.string()}),Yt=f.object({type:f.literal(C.enum.ActionExecutionEnd),actionExecutionId:f.string()}),qt=f.object({type:f.literal(C.enum.ActionExecutionResult),actionName:f.string(),actionExecutionId:f.string(),result:f.string()}),Qt=f.object({type:f.literal(C.enum.AgentStateMessage),threadId:f.string(),agentName:f.string(),nodeName:f.string(),runId:f.string(),active:f.boolean(),role:f.string(),state:f.string(),running:f.boolean()}),Zt=f.object({type:f.literal(C.enum.MetaEvent),name:zt,value:f.any()}),te=f.object({type:f.literal(C.enum.RunError),message:f.string(),code:f.string().optional()}),$n=f.discriminatedUnion("type",[Kt,Jt,$t,Vt,Wt,Yt,qt,Qt,Zt,te]),Vn=f.object({id:f.string(),role:f.string(),content:f.string(),parentMessageId:f.string().optional()}),Wn=f.object({id:f.string(),name:f.string(),arguments:f.any(),parentMessageId:f.string().optional()}),Yn=f.object({id:f.string(),result:f.any(),actionExecutionId:f.string(),actionName:f.string()});import se from"untruncate-json";var ae=g=>{if(typeof g=="string")return g;if(!Array.isArray(g))return;let a=g.filter(e=>e.type==="text").map(e=>e.text).filter(e=>e.length>0);if(a.length!==0)return a.join(` | ||
| `)},nt=(g,a,e)=>n=>{let t={},s=!0,r=!0,o="",i=null,p=null,S=[],H={},T=A=>{typeof A=="object"&&A!==null&&("messages"in A&&delete A.messages,t=A)};return n.pipe(ee(A=>{switch(A.type){case P.TEXT_MESSAGE_START:{let c=A;return[{type:C.enum.TextMessageStart,messageId:c.messageId,role:c.role}]}case P.TEXT_MESSAGE_CONTENT:{let c=A;return[{type:C.enum.TextMessageContent,messageId:c.messageId,content:c.delta}]}case P.TEXT_MESSAGE_END:{let c=A;return[{type:C.enum.TextMessageEnd,messageId:c.messageId}]}case P.TOOL_CALL_START:{let c=A;return S.push({id:c.toolCallId,type:"function",function:{name:c.toolCallName,arguments:""}}),r=!0,H[c.toolCallId]=c.toolCallName,[{type:C.enum.ActionExecutionStart,actionExecutionId:c.toolCallId,actionName:c.toolCallName,parentMessageId:c.parentMessageId}]}case P.TOOL_CALL_ARGS:{let c=A,F=S.find(E=>E.id===c.toolCallId);if(!F)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${c.toolCallId}'`),[];F.function.arguments+=c.delta;let U=!1;if(p){let E=p.find(l=>l.tool==F.function.name);if(E)try{let l=JSON.parse(se(F.function.arguments));E.tool_argument&&E.tool_argument in l?(T(G(_({},t),{[E.state_key]:l[E.tool_argument]})),U=!0):E.tool_argument||(T(G(_({},t),{[E.state_key]:l})),U=!0)}catch(l){}}return[{type:C.enum.ActionExecutionArgs,actionExecutionId:c.toolCallId,args:c.delta},...U?[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:r}]:[]]}case P.TOOL_CALL_END:{let c=A;return[{type:C.enum.ActionExecutionEnd,actionExecutionId:c.toolCallId}]}case P.TOOL_CALL_RESULT:{let c=A;return[{type:C.enum.ActionExecutionResult,actionExecutionId:c.toolCallId,result:c.content,actionName:H[c.toolCallId]||"unknown"}]}case P.RAW:return[];case P.CUSTOM:{let c=A;switch(c.name){case"Exit":s=!1;break;case"PredictState":p=c.value;break}return[{type:C.enum.MetaEvent,name:c.name,value:c.value}]}case P.STATE_SNAPSHOT:return T(A.snapshot),[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:r}];case P.STATE_DELTA:{let F=ne(t,A.delta,!0,!1);return F?(T(F.newDocument),[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:r}]):[]}case P.MESSAGES_SNAPSHOT:return i=A.messages,[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(_(_({},t),i?{messages:i}:{})),active:!0}];case P.RUN_STARTED:return[];case P.RUN_FINISHED:return i&&(t.messages=i),Object.keys(t).length===0?[]:[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(_(_({},t),i?{messages:oe(i)}:{})),active:!1}];case P.RUN_ERROR:{let c=A;return[{type:C.enum.RunError,message:c.message,code:c.code}]}case P.STEP_STARTED:return o=A.stepName,S=[],p=null,[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:!0}];case P.STEP_FINISHED:return S=[],p=null,[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:!1}];default:return[]}}))};function oe(g){var e;let a=[];for(let n of g)if(n.role==="assistant"||n.role==="user"||n.role==="system"){let t=ae(n.content);if(t){let s={id:n.id,role:n.role,content:t};a.push(s)}if(n.role==="assistant"&&n.toolCalls&&n.toolCalls.length>0)for(let s of n.toolCalls){let r={id:s.id,name:s.function.name,arguments:JSON.parse(s.function.arguments),parentMessageId:n.id};a.push(r)}}else if(n.role==="tool"){let t="unknown";for(let r of g)if(r.role==="assistant"&&((e=r.toolCalls)!=null&&e.length)){for(let o of r.toolCalls)if(o.id===n.toolCallId){t=o.function.name;break}}let s={id:n.id,result:n.content,actionExecutionId:n.toolCallId,actionName:t};a.push(s)}return a}import{v4 as V}from"uuid";import{compareVersions as Ee}from"compare-versions";import{catchError as dt,map as mt,tap as pe}from"rxjs/operators";import{finalize as ft}from"rxjs/operators";import{pipe as Tt,from as de,of as St,EMPTY as me}from"rxjs";import{lastValueFrom as At}from"rxjs";import{mergeMap as re,finalize as ie}from"rxjs";import{EventType as M}from"@ag-ui/core";var B=g=>a=>{let e,n,t,s=()=>{if(!e||t!=="text")throw new Error("No text message to close");let i={type:M.TEXT_MESSAGE_END,messageId:e.messageId};return t=void 0,e=void 0,g&&console.debug("[TRANSFORM]: TEXT_MESSAGE_END",JSON.stringify(i)),i},r=()=>{if(!n||t!=="tool")throw new Error("No tool call to close");let i={type:M.TOOL_CALL_END,toolCallId:n.toolCallId};return t=void 0,n=void 0,g&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(i)),i},o=()=>t==="text"?[s()]:t==="tool"?[r()]:[];return a.pipe(re(i=>{switch(i.type){case M.TEXT_MESSAGE_START:case M.TEXT_MESSAGE_CONTENT:case M.TEXT_MESSAGE_END:case M.TOOL_CALL_START:case M.TOOL_CALL_ARGS:case M.TOOL_CALL_END:case M.TOOL_CALL_RESULT:case M.STATE_SNAPSHOT:case M.STATE_DELTA:case M.MESSAGES_SNAPSHOT:case M.CUSTOM:case M.RUN_STARTED:case M.RUN_FINISHED:case M.RUN_ERROR:case M.STEP_STARTED:case M.STEP_FINISHED:case M.THINKING_START:case M.THINKING_END:case M.THINKING_TEXT_MESSAGE_START:case M.THINKING_TEXT_MESSAGE_CONTENT:case M.THINKING_TEXT_MESSAGE_END:return[...o(),i];case M.RAW:case M.ACTIVITY_SNAPSHOT:case M.ACTIVITY_DELTA:return[i];case M.TEXT_MESSAGE_CHUNK:let S=i,H=[];if((t!=="text"||S.messageId!==void 0&&S.messageId!==(e==null?void 0:e.messageId))&&H.push(...o()),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 c={type:M.TEXT_MESSAGE_START,messageId:S.messageId,role:S.role||"assistant"};H.push(c),g&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(c))}if(S.delta!==void 0){let c={type:M.TEXT_MESSAGE_CONTENT,messageId:e.messageId,delta:S.delta};H.push(c),g&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(c))}return H;case M.TOOL_CALL_CHUNK:let T=i,A=[];if((t!=="tool"||T.toolCallId!==void 0&&T.toolCallId!==(n==null?void 0:n.toolCallId))&&A.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");n={toolCallId:T.toolCallId,toolCallName:T.toolCallName,parentMessageId:T.parentMessageId},t="tool";let c={type:M.TOOL_CALL_START,toolCallId:T.toolCallId,toolCallName:T.toolCallName,parentMessageId:T.parentMessageId};A.push(c),g&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(c))}if(T.delta!==void 0){let c={type:M.TOOL_CALL_ARGS,toolCallId:n.toolCallId,delta:T.delta};A.push(c),g&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(c))}return A}let p=i.type;return[]}),ie(()=>{o()}))};import{AGUIConnectNotImplementedError as vt}from"@ag-ui/core";import{ReplaySubject as le}from"rxjs";import{concatMap as ge}from"rxjs/operators";var X=class{runNext(a,e){return e.run(a).pipe(B(!1))}runNextWithState(a,e){let n=y(a.messages||[]),t=y(a.state||{}),s=new le;return z(a,s,e,[]).subscribe(o=>{o.messages!==void 0&&(n=o.messages),o.state!==void 0&&(t=o.state)}),this.runNext(a,e).pipe(ge(async o=>(s.next(o),await new Promise(i=>setTimeout(i,0)),{event:o,messages:y(n),state:y(t)})))}},J=class extends X{constructor(e){super();this.fn=e}run(e,n){return this.fn(e,n)}};function ce(g){let a=g.content;if(Array.isArray(a)){let e=a.filter(n=>typeof n=="object"&&n!==null&&"type"in n&&n.type==="text"&&typeof n.text=="string").map(n=>n.text).join("");return G(_({},g),{content:e})}return typeof a=="string"?g:G(_({},g),{content:""})}var $=class extends X{run(a,e){let r=a,{parentRunId:n}=r,t=it(r,["parentRunId"]),s=G(_({},t),{messages:t.messages.map(ce)});return this.runNext(s,e)}};var pt={name:"@ag-ui/client",author:"Markus Ecker <markus.ecker@gmail.com>",version:"0.0.41",private:!1,publishConfig:{access:"public"},main:"./dist/index.js",module:"./dist/index.mjs",types:"./dist/index.d.ts",sideEffects:!1,files:["dist/**","README.md"],scripts:{build:"tsup",dev:"tsup --watch",clean:"rm -rf dist .turbo node_modules",typecheck:"tsc --noEmit",test:"jest","link:global":"pnpm link --global","unlink:global":"pnpm unlink --global"},dependencies:{"@ag-ui/core":"workspace:*","@ag-ui/encoder":"workspace:*","@ag-ui/proto":"workspace:*","@types/uuid":"^10.0.0","compare-versions":"^6.1.1","fast-json-patch":"^3.1.1",rxjs:"7.8.1","untruncate-json":"^0.0.1",uuid:"^11.1.0",zod:"^3.22.4"},devDependencies:{"@types/jest":"^29.5.14","@types/node":"^20.11.19",jest:"^29.7.0","ts-jest":"^29.1.2",tsup:"^8.0.2",typescript:"^5.3.3"}};var W=class{constructor({agentId:a,description:e,threadId:n,initialMessages:t,initialState:s,debug:r}={}){this.debug=!1;this.subscribers=[];this.isRunning=!1;this.middlewares=[];this.agentId=a,this.description=e!=null?e:"",this.threadId=n!=null?n:V(),this.messages=y(t!=null?t:[]),this.state=y(s!=null?s:{}),this.debug=r!=null?r:!1,Ee(this.maxVersion,"0.0.39")<=0&&this.middlewares.unshift(new $)}get maxVersion(){return pt.version}subscribe(a){return this.subscribers.push(a),{unsubscribe:()=>{this.subscribers=this.subscribers.filter(e=>e!==a)}}}use(...a){let e=a.map(n=>typeof n=="function"?new J(n):n);return this.middlewares.push(...e),this}async runAgent(a,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:V();let t=this.prepareRunAgentInput(a),s,r=new Set(this.messages.map(S=>S.id)),o=[{onRunFinishedEvent:S=>{s=S.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o);let i=Tt(()=>this.middlewares.length===0?this.run(t):this.middlewares.reduceRight((H,T)=>({run:A=>T.run(A,H)}),this).run(t),B(this.debug),K(this.debug),S=>this.apply(t,S,o),S=>this.processApplyEvents(t,S,o),dt(S=>(this.isRunning=!1,this.onError(t,S,o))),ft(()=>{this.isRunning=!1,this.onFinalize(t,o)}));await At(i(St(null)));let p=y(this.messages).filter(S=>!r.has(S.id));return{result:s,newMessages:p}}finally{this.isRunning=!1}}connect(a){throw new vt}async connectAgent(a,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:V();let t=this.prepareRunAgentInput(a),s,r=new Set(this.messages.map(S=>S.id)),o=[{onRunFinishedEvent:S=>{s=S.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o);let i=Tt(()=>this.connect(t),B(this.debug),K(this.debug),S=>this.apply(t,S,o),S=>this.processApplyEvents(t,S,o),dt(S=>(this.isRunning=!1,S instanceof vt?me:this.onError(t,S,o))),ft(()=>{this.isRunning=!1,this.onFinalize(t,o)}));await At(i(St(null)));let p=y(this.messages).filter(S=>!r.has(S.id));return{result:s,newMessages:p}}finally{this.isRunning=!1}}abortRun(){}apply(a,e,n){return z(a,e,this,n)}processApplyEvents(a,e,n){return e.pipe(pe(t=>{t.messages&&(this.messages=t.messages,n.forEach(s=>{var r;(r=s.onMessagesChanged)==null||r.call(s,{messages:this.messages,state:this.state,agent:this,input:a})})),t.state&&(this.state=t.state,n.forEach(s=>{var r;(r=s.onStateChanged)==null||r.call(s,{state:this.state,messages:this.messages,agent:this,input:a})}))}))}prepareRunAgentInput(a){var t,s,r;let n=y(this.messages).filter(o=>o.role!=="activity");return{threadId:this.threadId,runId:(a==null?void 0:a.runId)||V(),tools:y((t=a==null?void 0:a.tools)!=null?t:[]),context:y((s=a==null?void 0:a.context)!=null?s:[]),forwardedProps:y((r=a==null?void 0:a.forwardedProps)!=null?r:{}),state:y(this.state),messages:n}}async onInitialize(a,e){let n=await x(e,this.messages,this.state,(t,s,r)=>{var o;return(o=t.onRunInitialized)==null?void 0:o.call(t,{messages:s,state:r,agent:this,input:a})});(n.messages!==void 0||n.state!==void 0)&&(n.messages&&(this.messages=n.messages,a.messages=n.messages,e.forEach(t=>{var s;(s=t.onMessagesChanged)==null||s.call(t,{messages:this.messages,state:this.state,agent:this,input:a})})),n.state&&(this.state=n.state,a.state=n.state,e.forEach(t=>{var s;(s=t.onStateChanged)==null||s.call(t,{state:this.state,messages:this.messages,agent:this,input:a})})))}onError(a,e,n){return de(x(n,this.messages,this.state,(t,s,r)=>{var o;return(o=t.onRunFailed)==null?void 0:o.call(t,{error:e,messages:s,state:r,agent:this,input:a})})).pipe(mt(t=>{let s=t;if((s.messages!==void 0||s.state!==void 0)&&(s.messages!==void 0&&(this.messages=s.messages,n.forEach(r=>{var o;(o=r.onMessagesChanged)==null||o.call(r,{messages:this.messages,state:this.state,agent:this,input:a})})),s.state!==void 0&&(this.state=s.state,n.forEach(r=>{var o;(o=r.onStateChanged)==null||o.call(r,{state:this.state,messages:this.messages,agent:this,input:a})}))),s.stopPropagation!==!0)throw console.error("Agent execution failed:",e),e;return{}}))}async onFinalize(a,e){let n=await x(e,this.messages,this.state,(t,s,r)=>{var o;return(o=t.onRunFinalized)==null?void 0:o.call(t,{messages:s,state:r,agent:this,input:a})});(n.messages!==void 0||n.state!==void 0)&&(n.messages!==void 0&&(this.messages=n.messages,e.forEach(t=>{var s;(s=t.onMessagesChanged)==null||s.call(t,{messages:this.messages,state:this.state,agent:this,input:a})})),n.state!==void 0&&(this.state=n.state,e.forEach(t=>{var s;(s=t.onStateChanged)==null||s.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=y(this.messages),a.state=y(this.state),a.debug=this.debug,a.isRunning=this.isRunning,a.subscribers=[...this.subscribers],a}addMessage(a){this.messages.push(a),(async()=>{var e,n,t;for(let s of this.subscribers)await((e=s.onNewMessage)==null?void 0:e.call(s,{message:a,messages:this.messages,state:this.state,agent:this}));if(a.role==="assistant"&&a.toolCalls)for(let s of a.toolCalls)for(let r of this.subscribers)await((n=r.onNewToolCall)==null?void 0:n.call(r,{toolCall:s,messages:this.messages,state:this.state,agent:this}));for(let s of this.subscribers)await((t=s.onMessagesChanged)==null?void 0:t.call(s,{messages:this.messages,state:this.state,agent:this}))})()}addMessages(a){this.messages.push(...a),(async()=>{var e,n,t;for(let s of a){for(let r of this.subscribers)await((e=r.onNewMessage)==null?void 0:e.call(r,{message:s,messages:this.messages,state:this.state,agent:this}));if(s.role==="assistant"&&s.toolCalls)for(let r of s.toolCalls)for(let o of this.subscribers)await((n=o.onNewToolCall)==null?void 0:n.call(o,{toolCall:r,messages:this.messages,state:this.state,agent:this}))}for(let s of this.subscribers)await((t=s.onMessagesChanged)==null?void 0:t.call(s,{messages:this.messages,state:this.state,agent:this}))})()}setMessages(a){this.messages=y(a),(async()=>{var e;for(let n of this.subscribers)await((e=n.onMessagesChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}setState(a){this.state=y(a),(async()=>{var e;for(let n of this.subscribers)await((e=n.onStateChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}legacy_to_be_removed_runAgentBridged(a){var t;this.agentId=(t=this.agentId)!=null?t:V();let e=this.prepareRunAgentInput(a);return(this.middlewares.length===0?this.run(e):this.middlewares.reduceRight((r,o)=>({run:i=>o.run(i,r)}),this).run(e)).pipe(B(this.debug),K(this.debug),nt(this.threadId,e.runId,this.agentId),s=>s.pipe(mt(r=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(r)),r))))}};var st=class extends W{constructor(e){var n;super(e);this.abortController=new AbortController;this.url=e.url,this.headers=y((n=e.headers)!=null?n:{})}requestInit(e){return{method:"POST",headers:G(_({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(e),signal:this.abortController.signal}}runAgent(e,n){var t;return this.abortController=(t=e==null?void 0:e.abortController)!=null?t:new AbortController,super.runAgent(e,n)}abortRun(){this.abortController.abort(),super.abortRun()}run(e){let n=Q(this.url,this.requestInit(e));return et(n)}clone(){var s;let e=super.clone();e.url=this.url,e.headers=y((s=this.headers)!=null?s:{});let n=new AbortController,t=this.abortController.signal;return t.aborted&&n.abort(t.reason),e.abortController=n,e}};import{EventType as k}from"@ag-ui/core";function fe(g){let a=[],e=new Map,n=new Map;for(let t of g)if(t.type===k.TEXT_MESSAGE_START){let s=t,r=s.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.start=s}else if(t.type===k.TEXT_MESSAGE_CONTENT){let s=t,r=s.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]}),e.get(r).contents.push(s)}else if(t.type===k.TEXT_MESSAGE_END){let s=t,r=s.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.end=s,ht(r,o,a),e.delete(r)}else if(t.type===k.TOOL_CALL_START){let s=t,r=s.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.start=s}else if(t.type===k.TOOL_CALL_ARGS){let s=t,r=s.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]}),n.get(r).args.push(s)}else if(t.type===k.TOOL_CALL_END){let s=t,r=s.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.end=s,yt(r,o,a),n.delete(r)}else{let s=!1;for(let[r,o]of e)if(o.start&&!o.end){o.otherEvents.push(t),s=!0;break}if(!s){for(let[r,o]of n)if(o.start&&!o.end){o.otherEvents.push(t),s=!0;break}}s||a.push(t)}for(let[t,s]of e)ht(t,s,a);for(let[t,s]of n)yt(t,s,a);return a}function ht(g,a,e){if(a.start&&e.push(a.start),a.contents.length>0){let n=a.contents.map(s=>s.delta).join(""),t={type:k.TEXT_MESSAGE_CONTENT,messageId:g,delta:n};e.push(t)}a.end&&e.push(a.end);for(let n of a.otherEvents)e.push(n)}function yt(g,a,e){if(a.start&&e.push(a.start),a.args.length>0){let n=a.args.map(s=>s.delta).join(""),t={type:k.TOOL_CALL_ARGS,toolCallId:g,delta:n};e.push(t)}a.end&&e.push(a.end);for(let n of a.otherEvents)e.push(n)}export*from"@ag-ui/core";export{W as AbstractAgent,st as HttpAgent,fe as compactEvents,nt as convertToLegacyEvents,z as defaultApplyEvents,tt as parseProtoStream,Z as parseSSEStream,ve as randomUUID,Q as runHttpRequest,y as structuredClone_,B as transformChunks,et as transformHttpEventStream,K as verifyEvents}; | ||
| `),p=JSON.parse(i);a.next(p)}catch(i){a.error(i)}}return a.asObservable()};import{Subject as Bt}from"rxjs";import*as ut from"@ag-ui/proto";var tt=g=>{let a=new Bt,e=new Uint8Array(0);g.subscribe({next:t=>{if(t.type!=="headers"&&t.type==="data"&&t.data){let s=new Uint8Array(e.length+t.data.length);s.set(e,0),s.set(t.data,e.length),e=s,n()}},error:t=>a.error(t),complete:()=>{if(e.length>0)try{n()}catch(t){console.warn("Incomplete or invalid protocol buffer data at stream end")}a.complete()}});function n(){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),i=ut.decode(o);a.next(i),e=e.slice(r)}catch(o){let i=o instanceof Error?o.message:String(o);a.error(new Error(`Failed to decode protocol buffer message: ${i}`));return}}}return a.asObservable()};import*as Et from"@ag-ui/proto";import{EventType as zt}from"@ag-ui/core";var et=g=>{let a=new Xt,e=new $t,n=!1;return g.subscribe({next:t=>{e.next(t),t.type==="headers"&&!n?(n=!0,t.headers.get("content-type")===Et.AGUI_MEDIA_TYPE?tt(e).subscribe({next:r=>a.next(r),error:r=>a.error(r),complete:()=>a.complete()}):Z(e).subscribe({next:r=>{try{let o=jt.parse(r);a.next(o)}catch(o){a.error(o)}},error:r=>{if((r==null?void 0:r.name)==="AbortError"){a.next({type:zt.RUN_ERROR,rawEvent:r}),a.complete();return}return a.error(r)},complete:()=>a.complete()})):n||a.error(new Error("No headers event received before data events"))},error:t=>{e.error(t),a.error(t)},complete:()=>{e.complete()}}),a.asObservable()};import{mergeMap as se}from"rxjs/operators";import{applyPatch as ae}from"fast-json-patch";import{EventType as D}from"@ag-ui/core";import{z as f}from"zod";var C=f.enum(["TextMessageStart","TextMessageContent","TextMessageEnd","ActionExecutionStart","ActionExecutionArgs","ActionExecutionEnd","ActionExecutionResult","AgentStateMessage","MetaEvent","RunStarted","RunFinished","RunError","NodeStarted","NodeFinished"]),Kt=f.enum(["LangGraphInterruptEvent","PredictState","Exit"]),Jt=f.object({type:f.literal(C.enum.TextMessageStart),messageId:f.string(),parentMessageId:f.string().optional(),role:f.string().optional()}),Vt=f.object({type:f.literal(C.enum.TextMessageContent),messageId:f.string(),content:f.string()}),Wt=f.object({type:f.literal(C.enum.TextMessageEnd),messageId:f.string()}),Yt=f.object({type:f.literal(C.enum.ActionExecutionStart),actionExecutionId:f.string(),actionName:f.string(),parentMessageId:f.string().optional()}),qt=f.object({type:f.literal(C.enum.ActionExecutionArgs),actionExecutionId:f.string(),args:f.string()}),Qt=f.object({type:f.literal(C.enum.ActionExecutionEnd),actionExecutionId:f.string()}),Zt=f.object({type:f.literal(C.enum.ActionExecutionResult),actionName:f.string(),actionExecutionId:f.string(),result:f.string()}),te=f.object({type:f.literal(C.enum.AgentStateMessage),threadId:f.string(),agentName:f.string(),nodeName:f.string(),runId:f.string(),active:f.boolean(),role:f.string(),state:f.string(),running:f.boolean()}),ee=f.object({type:f.literal(C.enum.MetaEvent),name:Kt,value:f.any()}),ne=f.object({type:f.literal(C.enum.RunError),message:f.string(),code:f.string().optional()}),Wn=f.discriminatedUnion("type",[Jt,Vt,Wt,Yt,qt,Qt,Zt,te,ee,ne]),Yn=f.object({id:f.string(),role:f.string(),content:f.string(),parentMessageId:f.string().optional()}),qn=f.object({id:f.string(),name:f.string(),arguments:f.any(),parentMessageId:f.string().optional()}),Qn=f.object({id:f.string(),result:f.any(),actionExecutionId:f.string(),actionName:f.string()});import oe from"untruncate-json";var re=g=>{if(typeof g=="string")return g;if(!Array.isArray(g))return;let a=g.filter(e=>e.type==="text").map(e=>e.text).filter(e=>e.length>0);if(a.length!==0)return a.join(` | ||
| `)},nt=(g,a,e)=>n=>{let t={},s=!0,r=!0,o="",i=null,p=null,x=[],T={},S=v=>{typeof v=="object"&&v!==null&&("messages"in v&&delete v.messages,t=v)};return n.pipe(se(v=>{switch(v.type){case D.TEXT_MESSAGE_START:{let c=v;return[{type:C.enum.TextMessageStart,messageId:c.messageId,role:c.role}]}case D.TEXT_MESSAGE_CONTENT:{let c=v;return[{type:C.enum.TextMessageContent,messageId:c.messageId,content:c.delta}]}case D.TEXT_MESSAGE_END:{let c=v;return[{type:C.enum.TextMessageEnd,messageId:c.messageId}]}case D.TOOL_CALL_START:{let c=v;return x.push({id:c.toolCallId,type:"function",function:{name:c.toolCallName,arguments:""}}),r=!0,T[c.toolCallId]=c.toolCallName,[{type:C.enum.ActionExecutionStart,actionExecutionId:c.toolCallId,actionName:c.toolCallName,parentMessageId:c.parentMessageId}]}case D.TOOL_CALL_ARGS:{let c=v,b=x.find(E=>E.id===c.toolCallId);if(!b)return console.warn(`TOOL_CALL_ARGS: No tool call found with ID '${c.toolCallId}'`),[];b.function.arguments+=c.delta;let U=!1;if(p){let E=p.find(l=>l.tool==b.function.name);if(E)try{let l=JSON.parse(oe(b.function.arguments));E.tool_argument&&E.tool_argument in l?(S(G(N({},t),{[E.state_key]:l[E.tool_argument]})),U=!0):E.tool_argument||(S(G(N({},t),{[E.state_key]:l})),U=!0)}catch(l){}}return[{type:C.enum.ActionExecutionArgs,actionExecutionId:c.toolCallId,args:c.delta},...U?[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:r}]:[]]}case D.TOOL_CALL_END:{let c=v;return[{type:C.enum.ActionExecutionEnd,actionExecutionId:c.toolCallId}]}case D.TOOL_CALL_RESULT:{let c=v;return[{type:C.enum.ActionExecutionResult,actionExecutionId:c.toolCallId,result:c.content,actionName:T[c.toolCallId]||"unknown"}]}case D.RAW:return[];case D.CUSTOM:{let c=v;switch(c.name){case"Exit":s=!1;break;case"PredictState":p=c.value;break}return[{type:C.enum.MetaEvent,name:c.name,value:c.value}]}case D.STATE_SNAPSHOT:return S(v.snapshot),[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:r}];case D.STATE_DELTA:{let b=ae(t,v.delta,!0,!1);return b?(S(b.newDocument),[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:r}]):[]}case D.MESSAGES_SNAPSHOT:return i=v.messages,[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(N(N({},t),i?{messages:i}:{})),active:!0}];case D.RUN_STARTED:return[];case D.RUN_FINISHED:return i&&(t.messages=i),Object.keys(t).length===0?[]:[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(N(N({},t),i?{messages:ie(i)}:{})),active:!1}];case D.RUN_ERROR:{let c=v;return[{type:C.enum.RunError,message:c.message,code:c.code}]}case D.STEP_STARTED:return o=v.stepName,x=[],p=null,[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:!0}];case D.STEP_FINISHED:return x=[],p=null,[{type:C.enum.AgentStateMessage,threadId:g,agentName:e,nodeName:o,runId:a,running:s,role:"assistant",state:JSON.stringify(t),active:!1}];default:return[]}}))};function ie(g){var e;let a=[];for(let n of g)if(n.role==="assistant"||n.role==="user"||n.role==="system"){let t=re(n.content);if(t){let s={id:n.id,role:n.role,content:t};a.push(s)}if(n.role==="assistant"&&n.toolCalls&&n.toolCalls.length>0)for(let s of n.toolCalls){let r={id:s.id,name:s.function.name,arguments:JSON.parse(s.function.arguments),parentMessageId:n.id};a.push(r)}}else if(n.role==="tool"){let t="unknown";for(let r of g)if(r.role==="assistant"&&((e=r.toolCalls)!=null&&e.length)){for(let o of r.toolCalls)if(o.id===n.toolCallId){t=o.function.name;break}}let s={id:n.id,result:n.content,actionExecutionId:n.toolCallId,actionName:t};a.push(s)}return a}import{v4 as V}from"uuid";import{compareVersions as de}from"compare-versions";import{catchError as dt,map as mt,tap as me}from"rxjs/operators";import{finalize as ft}from"rxjs/operators";import{takeUntil as St}from"rxjs/operators";import{pipe as Tt,from as fe,of as vt,EMPTY as Se,Subject as At}from"rxjs";import{lastValueFrom as ht}from"rxjs";import{mergeMap as le,finalize as ge}from"rxjs";import{EventType as M}from"@ag-ui/core";var B=g=>a=>{let e,n,t,s=()=>{if(!e||t!=="text")throw new Error("No text message to close");let i={type:M.TEXT_MESSAGE_END,messageId:e.messageId};return t=void 0,e=void 0,g&&console.debug("[TRANSFORM]: TEXT_MESSAGE_END",JSON.stringify(i)),i},r=()=>{if(!n||t!=="tool")throw new Error("No tool call to close");let i={type:M.TOOL_CALL_END,toolCallId:n.toolCallId};return t=void 0,n=void 0,g&&console.debug("[TRANSFORM]: TOOL_CALL_END",JSON.stringify(i)),i},o=()=>t==="text"?[s()]:t==="tool"?[r()]:[];return a.pipe(le(i=>{switch(i.type){case M.TEXT_MESSAGE_START:case M.TEXT_MESSAGE_CONTENT:case M.TEXT_MESSAGE_END:case M.TOOL_CALL_START:case M.TOOL_CALL_ARGS:case M.TOOL_CALL_END:case M.TOOL_CALL_RESULT:case M.STATE_SNAPSHOT:case M.STATE_DELTA:case M.MESSAGES_SNAPSHOT:case M.CUSTOM:case M.RUN_STARTED:case M.RUN_FINISHED:case M.RUN_ERROR:case M.STEP_STARTED:case M.STEP_FINISHED:case M.THINKING_START:case M.THINKING_END:case M.THINKING_TEXT_MESSAGE_START:case M.THINKING_TEXT_MESSAGE_CONTENT:case M.THINKING_TEXT_MESSAGE_END:return[...o(),i];case M.RAW:case M.ACTIVITY_SNAPSHOT:case M.ACTIVITY_DELTA:return[i];case M.TEXT_MESSAGE_CHUNK:let x=i,T=[];if((t!=="text"||x.messageId!==void 0&&x.messageId!==(e==null?void 0:e.messageId))&&T.push(...o()),t!=="text"){if(x.messageId===void 0)throw new Error("First TEXT_MESSAGE_CHUNK must have a messageId");e={messageId:x.messageId},t="text";let c={type:M.TEXT_MESSAGE_START,messageId:x.messageId,role:x.role||"assistant"};T.push(c),g&&console.debug("[TRANSFORM]: TEXT_MESSAGE_START",JSON.stringify(c))}if(x.delta!==void 0){let c={type:M.TEXT_MESSAGE_CONTENT,messageId:e.messageId,delta:x.delta};T.push(c),g&&console.debug("[TRANSFORM]: TEXT_MESSAGE_CONTENT",JSON.stringify(c))}return T;case M.TOOL_CALL_CHUNK:let S=i,v=[];if((t!=="tool"||S.toolCallId!==void 0&&S.toolCallId!==(n==null?void 0:n.toolCallId))&&v.push(...o()),t!=="tool"){if(S.toolCallId===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallId");if(S.toolCallName===void 0)throw new Error("First TOOL_CALL_CHUNK must have a toolCallName");n={toolCallId:S.toolCallId,toolCallName:S.toolCallName,parentMessageId:S.parentMessageId},t="tool";let c={type:M.TOOL_CALL_START,toolCallId:S.toolCallId,toolCallName:S.toolCallName,parentMessageId:S.parentMessageId};v.push(c),g&&console.debug("[TRANSFORM]: TOOL_CALL_START",JSON.stringify(c))}if(S.delta!==void 0){let c={type:M.TOOL_CALL_ARGS,toolCallId:n.toolCallId,delta:S.delta};v.push(c),g&&console.debug("[TRANSFORM]: TOOL_CALL_ARGS",JSON.stringify(c))}return v}let p=i.type;return[]}),ge(()=>{o()}))};import{AGUIConnectNotImplementedError as yt}from"@ag-ui/core";import{ReplaySubject as ce}from"rxjs";import{concatMap as ue}from"rxjs/operators";var j=class{runNext(a,e){return e.run(a).pipe(B(!1))}runNextWithState(a,e){let n=y(a.messages||[]),t=y(a.state||{}),s=new ce;return $(a,s,e,[]).subscribe(o=>{o.messages!==void 0&&(n=o.messages),o.state!==void 0&&(t=o.state)}),this.runNext(a,e).pipe(ue(async o=>(s.next(o),await new Promise(i=>setTimeout(i,0)),{event:o,messages:y(n),state:y(t)})))}},K=class extends j{constructor(e){super();this.fn=e}run(e,n){return this.fn(e,n)}};function Ee(g){let a=g.content;if(Array.isArray(a)){let e=a.filter(n=>typeof n=="object"&&n!==null&&"type"in n&&n.type==="text"&&typeof n.text=="string").map(n=>n.text).join("");return G(N({},g),{content:e})}return typeof a=="string"?g:G(N({},g),{content:""})}var J=class extends j{run(a,e){let r=a,{parentRunId:n}=r,t=it(r,["parentRunId"]),s=G(N({},t),{messages:t.messages.map(Ee)});return this.runNext(s,e)}};var pt={name:"@ag-ui/client",author:"Markus Ecker <markus.ecker@gmail.com>",version:"0.0.42-alpha.0",private:!1,publishConfig:{access:"public"},main:"./dist/index.js",module:"./dist/index.mjs",types:"./dist/index.d.ts",sideEffects:!1,files:["dist/**","README.md"],scripts:{build:"tsup",dev:"tsup --watch",clean:"rm -rf dist .turbo node_modules",typecheck:"tsc --noEmit",test:"jest","link:global":"pnpm link --global","unlink:global":"pnpm unlink --global"},dependencies:{"@ag-ui/core":"workspace:*","@ag-ui/encoder":"workspace:*","@ag-ui/proto":"workspace:*","@types/uuid":"^10.0.0","compare-versions":"^6.1.1","fast-json-patch":"^3.1.1",rxjs:"7.8.1","untruncate-json":"^0.0.1",uuid:"^11.1.0",zod:"^3.22.4"},devDependencies:{"@types/jest":"^29.5.14","@types/node":"^20.11.19",jest:"^29.7.0","ts-jest":"^29.1.2",tsup:"^8.0.2",typescript:"^5.3.3"}};var W=class{constructor({agentId:a,description:e,threadId:n,initialMessages:t,initialState:s,debug:r}={}){this.debug=!1;this.subscribers=[];this.isRunning=!1;this.middlewares=[];this.agentId=a,this.description=e!=null?e:"",this.threadId=n!=null?n:V(),this.messages=y(t!=null?t:[]),this.state=y(s!=null?s:{}),this.debug=r!=null?r:!1,de(this.maxVersion,"0.0.39")<=0&&this.middlewares.unshift(new J)}get maxVersion(){return pt.version}subscribe(a){return this.subscribers.push(a),{unsubscribe:()=>{this.subscribers=this.subscribers.filter(e=>e!==a)}}}use(...a){let e=a.map(n=>typeof n=="function"?new K(n):n);return this.middlewares.push(...e),this}async runAgent(a,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:V();let t=this.prepareRunAgentInput(a),s,r=new Set(this.messages.map(T=>T.id)),o=[{onRunFinishedEvent:T=>{s=T.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o),this.activeRunDetach$=new At;let i;this.activeRunCompletionPromise=new Promise(T=>{i=T});let p=Tt(()=>this.middlewares.length===0?this.run(t):this.middlewares.reduceRight((S,v)=>({run:c=>v.run(c,S)}),this).run(t),B(this.debug),z(this.debug),T=>T.pipe(St(this.activeRunDetach$)),T=>this.apply(t,T,o),T=>this.processApplyEvents(t,T,o),dt(T=>(this.isRunning=!1,this.onError(t,T,o))),ft(()=>{this.isRunning=!1,this.onFinalize(t,o),i==null||i(),i=void 0,this.activeRunCompletionPromise=void 0,this.activeRunDetach$=void 0}));await ht(p(vt(null)));let x=y(this.messages).filter(T=>!r.has(T.id));return{result:s,newMessages:x}}finally{this.isRunning=!1}}connect(a){throw new yt}async connectAgent(a,e){var n;try{this.isRunning=!0,this.agentId=(n=this.agentId)!=null?n:V();let t=this.prepareRunAgentInput(a),s,r=new Set(this.messages.map(T=>T.id)),o=[{onRunFinishedEvent:T=>{s=T.result}},...this.subscribers,e!=null?e:{}];await this.onInitialize(t,o),this.activeRunDetach$=new At;let i;this.activeRunCompletionPromise=new Promise(T=>{i=T});let p=Tt(()=>this.connect(t),B(this.debug),z(this.debug),T=>T.pipe(St(this.activeRunDetach$)),T=>this.apply(t,T,o),T=>this.processApplyEvents(t,T,o),dt(T=>(this.isRunning=!1,T instanceof yt?Se:this.onError(t,T,o))),ft(()=>{this.isRunning=!1,this.onFinalize(t,o),i==null||i(),i=void 0,this.activeRunCompletionPromise=void 0,this.activeRunDetach$=void 0}));await ht(p(vt(null)));let x=y(this.messages).filter(T=>!r.has(T.id));return{result:s,newMessages:x}}finally{this.isRunning=!1}}abortRun(){}async detachActiveRun(){var e;if(!this.activeRunDetach$)return;let a=(e=this.activeRunCompletionPromise)!=null?e:Promise.resolve();this.activeRunDetach$.next(),this.activeRunDetach$.complete(),await a}apply(a,e,n){return $(a,e,this,n)}processApplyEvents(a,e,n){return e.pipe(me(t=>{t.messages&&(this.messages=t.messages,n.forEach(s=>{var r;(r=s.onMessagesChanged)==null||r.call(s,{messages:this.messages,state:this.state,agent:this,input:a})})),t.state&&(this.state=t.state,n.forEach(s=>{var r;(r=s.onStateChanged)==null||r.call(s,{state:this.state,messages:this.messages,agent:this,input:a})}))}))}prepareRunAgentInput(a){var t,s,r;let n=y(this.messages).filter(o=>o.role!=="activity");return{threadId:this.threadId,runId:(a==null?void 0:a.runId)||V(),tools:y((t=a==null?void 0:a.tools)!=null?t:[]),context:y((s=a==null?void 0:a.context)!=null?s:[]),forwardedProps:y((r=a==null?void 0:a.forwardedProps)!=null?r:{}),state:y(this.state),messages:n}}async onInitialize(a,e){let n=await I(e,this.messages,this.state,(t,s,r)=>{var o;return(o=t.onRunInitialized)==null?void 0:o.call(t,{messages:s,state:r,agent:this,input:a})});(n.messages!==void 0||n.state!==void 0)&&(n.messages&&(this.messages=n.messages,a.messages=n.messages,e.forEach(t=>{var s;(s=t.onMessagesChanged)==null||s.call(t,{messages:this.messages,state:this.state,agent:this,input:a})})),n.state&&(this.state=n.state,a.state=n.state,e.forEach(t=>{var s;(s=t.onStateChanged)==null||s.call(t,{state:this.state,messages:this.messages,agent:this,input:a})})))}onError(a,e,n){return fe(I(n,this.messages,this.state,(t,s,r)=>{var o;return(o=t.onRunFailed)==null?void 0:o.call(t,{error:e,messages:s,state:r,agent:this,input:a})})).pipe(mt(t=>{let s=t;if((s.messages!==void 0||s.state!==void 0)&&(s.messages!==void 0&&(this.messages=s.messages,n.forEach(r=>{var o;(o=r.onMessagesChanged)==null||o.call(r,{messages:this.messages,state:this.state,agent:this,input:a})})),s.state!==void 0&&(this.state=s.state,n.forEach(r=>{var o;(o=r.onStateChanged)==null||o.call(r,{state:this.state,messages:this.messages,agent:this,input:a})}))),s.stopPropagation!==!0)throw console.error("Agent execution failed:",e),e;return{}}))}async onFinalize(a,e){let n=await I(e,this.messages,this.state,(t,s,r)=>{var o;return(o=t.onRunFinalized)==null?void 0:o.call(t,{messages:s,state:r,agent:this,input:a})});(n.messages!==void 0||n.state!==void 0)&&(n.messages!==void 0&&(this.messages=n.messages,e.forEach(t=>{var s;(s=t.onMessagesChanged)==null||s.call(t,{messages:this.messages,state:this.state,agent:this,input:a})})),n.state!==void 0&&(this.state=n.state,e.forEach(t=>{var s;(s=t.onStateChanged)==null||s.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=y(this.messages),a.state=y(this.state),a.debug=this.debug,a.isRunning=this.isRunning,a.subscribers=[...this.subscribers],a.middlewares=[...this.middlewares],a}addMessage(a){this.messages.push(a),(async()=>{var e,n,t;for(let s of this.subscribers)await((e=s.onNewMessage)==null?void 0:e.call(s,{message:a,messages:this.messages,state:this.state,agent:this}));if(a.role==="assistant"&&a.toolCalls)for(let s of a.toolCalls)for(let r of this.subscribers)await((n=r.onNewToolCall)==null?void 0:n.call(r,{toolCall:s,messages:this.messages,state:this.state,agent:this}));for(let s of this.subscribers)await((t=s.onMessagesChanged)==null?void 0:t.call(s,{messages:this.messages,state:this.state,agent:this}))})()}addMessages(a){this.messages.push(...a),(async()=>{var e,n,t;for(let s of a){for(let r of this.subscribers)await((e=r.onNewMessage)==null?void 0:e.call(r,{message:s,messages:this.messages,state:this.state,agent:this}));if(s.role==="assistant"&&s.toolCalls)for(let r of s.toolCalls)for(let o of this.subscribers)await((n=o.onNewToolCall)==null?void 0:n.call(o,{toolCall:r,messages:this.messages,state:this.state,agent:this}))}for(let s of this.subscribers)await((t=s.onMessagesChanged)==null?void 0:t.call(s,{messages:this.messages,state:this.state,agent:this}))})()}setMessages(a){this.messages=y(a),(async()=>{var e;for(let n of this.subscribers)await((e=n.onMessagesChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}setState(a){this.state=y(a),(async()=>{var e;for(let n of this.subscribers)await((e=n.onStateChanged)==null?void 0:e.call(n,{messages:this.messages,state:this.state,agent:this}))})()}legacy_to_be_removed_runAgentBridged(a){var t;this.agentId=(t=this.agentId)!=null?t:V();let e=this.prepareRunAgentInput(a);return(this.middlewares.length===0?this.run(e):this.middlewares.reduceRight((r,o)=>({run:i=>o.run(i,r)}),this).run(e)).pipe(B(this.debug),z(this.debug),nt(this.threadId,e.runId,this.agentId),s=>s.pipe(mt(r=>(this.debug&&console.debug("[LEGACY]:",JSON.stringify(r)),r))))}};var st=class extends W{constructor(e){var n;super(e);this.abortController=new AbortController;this.url=e.url,this.headers=y((n=e.headers)!=null?n:{})}requestInit(e){return{method:"POST",headers:G(N({},this.headers),{"Content-Type":"application/json",Accept:"text/event-stream"}),body:JSON.stringify(e),signal:this.abortController.signal}}runAgent(e,n){var t;return this.abortController=(t=e==null?void 0:e.abortController)!=null?t:new AbortController,super.runAgent(e,n)}abortRun(){this.abortController.abort(),super.abortRun()}run(e){let n=Q(this.url,this.requestInit(e));return et(n)}clone(){var s;let e=super.clone();e.url=this.url,e.headers=y((s=this.headers)!=null?s:{});let n=new AbortController,t=this.abortController.signal;return t.aborted&&n.abort(t.reason),e.abortController=n,e}};import{EventType as k}from"@ag-ui/core";function Te(g){let a=[],e=new Map,n=new Map;for(let t of g)if(t.type===k.TEXT_MESSAGE_START){let s=t,r=s.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.start=s}else if(t.type===k.TEXT_MESSAGE_CONTENT){let s=t,r=s.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]}),e.get(r).contents.push(s)}else if(t.type===k.TEXT_MESSAGE_END){let s=t,r=s.messageId;e.has(r)||e.set(r,{contents:[],otherEvents:[]});let o=e.get(r);o.end=s,Mt(r,o,a),e.delete(r)}else if(t.type===k.TOOL_CALL_START){let s=t,r=s.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.start=s}else if(t.type===k.TOOL_CALL_ARGS){let s=t,r=s.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]}),n.get(r).args.push(s)}else if(t.type===k.TOOL_CALL_END){let s=t,r=s.toolCallId;n.has(r)||n.set(r,{args:[],otherEvents:[]});let o=n.get(r);o.end=s,Ct(r,o,a),n.delete(r)}else{let s=!1;for(let[r,o]of e)if(o.start&&!o.end){o.otherEvents.push(t),s=!0;break}if(!s){for(let[r,o]of n)if(o.start&&!o.end){o.otherEvents.push(t),s=!0;break}}s||a.push(t)}for(let[t,s]of e)Mt(t,s,a);for(let[t,s]of n)Ct(t,s,a);return a}function Mt(g,a,e){if(a.start&&e.push(a.start),a.contents.length>0){let n=a.contents.map(s=>s.delta).join(""),t={type:k.TEXT_MESSAGE_CONTENT,messageId:g,delta:n};e.push(t)}a.end&&e.push(a.end);for(let n of a.otherEvents)e.push(n)}function Ct(g,a,e){if(a.start&&e.push(a.start),a.args.length>0){let n=a.args.map(s=>s.delta).join(""),t={type:k.TOOL_CALL_ARGS,toolCallId:g,delta:n};e.push(t)}a.end&&e.push(a.end);for(let n of a.otherEvents)e.push(n)}export*from"@ag-ui/core";export{W as AbstractAgent,st as HttpAgent,Te as compactEvents,nt as convertToLegacyEvents,$ as defaultApplyEvents,tt as parseProtoStream,Z as parseSSEStream,ye as randomUUID,Q as runHttpRequest,y as structuredClone_,B as transformChunks,et as transformHttpEventStream,z as verifyEvents}; | ||
| //# sourceMappingURL=index.mjs.map |
+4
-4
| { | ||
| "name": "@ag-ui/client", | ||
| "author": "Markus Ecker <markus.ecker@gmail.com>", | ||
| "version": "0.0.41", | ||
| "version": "0.0.42-alpha.0", | ||
| "private": false, | ||
@@ -25,5 +25,5 @@ "publishConfig": { | ||
| "zod": "^3.22.4", | ||
| "@ag-ui/core": "0.0.41", | ||
| "@ag-ui/encoder": "0.0.41", | ||
| "@ag-ui/proto": "0.0.41" | ||
| "@ag-ui/core": "0.0.42-alpha.0", | ||
| "@ag-ui/encoder": "0.0.42-alpha.0", | ||
| "@ag-ui/proto": "0.0.42-alpha.0" | ||
| }, | ||
@@ -30,0 +30,0 @@ "devDependencies": { |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
467702
1.51%709
1.29%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
Updated
Updated