PageSourceSearch

https://showcase-built-in-agent-production.up.railway.app/_next/static/chunks/3287155c-6653aca374c8db91.js

js showcase-built-in-agent-production.up.railway.app collected 2026-10-03 13:19:35 UTC 100,533 bytes, 4 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5001],{65695:(e,t,n)=>{n.d(t,{$n:()=>tw,Ab:()=>tU,CF:()=>e6,DP:()=>e5,Es:()=>ed,GI:()=>t$,H8:()=>e7,R5:()=>e3,Ub:()=>tt,Wp:()=>tr,Xv:()=>tF,YM:()=>tk,_t:()=>tM,h9:()=>ec,l_:()=>tO,qS:()=>e9,t4:()=>ti,x:()=>tA,x8:()=>tx});var r=n(44379),i=n(7511),s=n(23087),o=n(85591),a=n(75016),d=n(2068),l=n(61968),u=n(96441),c=n(53915),h=n(26068),g=n(45037),p=n(78242),m=n(61270),f=n(85755),y=n(43756),I=n(47211),b=n(40712),C=n(31536),_=n(20981),R=n(91436),E=n(32466),S=n(21594),v=n(49914),T=n(67927),A=n(78842),w=n(41449),M=n(43198),x=n(13862),F=n(41423),U=n(28775),k=n(34098),O=n(29396),$=n(16433),N=n(64354),q=n(46072),j=n(42764),L=n(43279),D=n(77133),P=n(29279),H=n(77241),J=n(67131),z=n(62473),G=n(68283),B=n(63704),W=n(18362),K=n(20545),V=n(65333),Q=n(59325),Y=n(59043),Z=n(19285),X=n(92453);function ee(e){return(0,p.v)(()=>{let t=new Y.yQ(e.url,e.options),n=new g.c(e=>{t.onOpen(()=>e.next({type:"open"})),t.onError(t=>e.next({type:"error",error:t}))}).pipe((0,k.t)({bufferSize:1,refCount:!0}));return t.connect(),(0,m.x)((0,f.of)({socket:t,signals$:n}),y.t).pipe((0,O.j)(()=>t.disconnect()))})}function et(e){return e.socket$.pipe((0,R.n)(({socket:t})=>(0,p.v)(()=>{let n=t.channel(e.topic,e.params);return(0,m.x)((0,f.of)({channel:n,joinOutcome$:new g.c(e=>{n.join().receive("ok",()=>{e.next({type:"joined"}),e.complete()}).receive("error",t=>{e.next({type:"error",response:t}),e.complete()}).receive("timeout",()=>{e.next({type:"timeout"}),e.complete()})}).pipe((0,k.t)({bufferSize:1,refCount:!0}))}),y.t).pipe((0,O.j)(()=>{!1!==e.leaveOnUnsubscribe&&n.leave()}))})))}function en(e,t){return new g.c(n=>{let r=e.on(t,e=>n.next(e));return()=>{e.off(t,r)}})}function er(e){return e.pipe((0,R.n)(e=>e.joinOutcome$))}function ei(e){return er(e).pipe((0,$.s)(1),(0,N.Z)(e=>{if("joined"===e.type)return I.w;throw"timeout"===e.type?Error("Timed out joining channel"):Error(`Failed to join channel: ${JSON.stringify(e.response)}`)}))}function es(e){return e.pipe((0,R.n)(e=>e.signals$))}function eo(e,t){return e.pipe((0,q.S)((e,t)=>"open"===t.type?0:e+1,0),(0,j.p)(e=>e>=t),(0,$.s)(1),(0,N.Z)(e=>(0,b.$)(()=>Error(`WebSocket connection failed after ${e} consecutive errors`))))}var ea=class extends Error{constructor(e){super(e?`Thread ${e} is locked`:"Thread is locked"),this.name="AgentThreadLockedError"}};function ed(e){return"object"==typeof e&&null!==e&&"activeRunCompletionPromise"in e}var el=class e extends i.Ar{config;socket=null;activeChannel=null;canonicalRunId=null;sharedState;constructor(e,t={lastSeenEventIds:new Map}){super(),this.config=e,this.sharedState=t}get headers(){return this.config.headers}set headers(e){this.config={...this.config,headers:e}}get credentials(){return this.config.credentials}set credentials(e){this.config={...this.config,credentials:e}}clone(){return new e(this.config,this.sharedState)}async connectAgent(e,t){let n=this;try{let r,s;this.isRunning=!0,this.agentId=this.agentId??(0,i.N4)();let o=e?.runId||!this.canonicalRunId?e:{...e,runId:this.canonicalRunId},a=this.prepareRunAgentInput(o),d=new Set(this.messages.map(e=>e.id)),l=[{onRunFinishedEvent:e=>{"success"===e.outcome&&(r=e.result)}},...this.subscribers,t??{}];await this.onInitialize(a,l),n.activeRunDetach$=new C.B,n.activeRunCompletionPromise=new Promise(e=>{s=e});let u=(0,p.v)(()=>this.connect(a)).pipe((0,i.bt)(this.debugLogger),(0,L.Q)(n.activeRunDetach$)),c=this.apply(a,u,l);await (0,_.s)(this.processApplyEvents(a,c,l).pipe((0,D.W)(e=>(this.isRunning=!1,this.onError(a,e,l))),(0,O.j)(()=>{this.isRunning=!1,this.onFinalize(a,l),s?.(),s=void 0,n.activeRunCompletionPromise=void 0,n.activeRunDetach$=void 0})),{defaultValue:void 0});let h=(0,i.I$)(this.messages).filter(e=>!d.has(e.id));return{result:r,newMessages:h}}finally{this.isRunning=!1}}abortRun(){if(this.activeChannel&&this.canonicalRunId){let e=setTimeout(()=>t(),5e3),t=()=>{clearTimeout(e),this.detachActiveRun(),this.cleanup()};this.activeChannel.push("stop_run",{run_id:this.canonicalRunId}).receive("ok",t).receive("error",t).receive("timeout",t)}else this.detachActiveRun(),this.cleanup()}run(e){return this.threadId=e.threadId,this.canonicalRunId=e.runId,(0,p.v)(()=>this.requestJoinCredentials$("run",e)).pipe((0,R.n)(t=>{if(null===t)return(0,b.$)(()=>Error("REST run request returned no credentials"));let n=this.applyCanonicalRunIdentity(e,t,{fallbackToInputRunId:!0});return this.observeThread$(n,t,{completeOnRunError:!1,streamMode:"run"})}))}connect(e){this.threadId=e.threadId,this.canonicalRunId=null;let t=this.getReconnectCursor(e);return(0,p.v)(()=>this.requestJoinCredentials$("connect",e,t)).pipe((0,R.n)(n=>{if(null===n)return I.w;let r=this.applyCanonicalRunIdentity(e,n,{fallbackToInputRunId:!1});return this.observeThread$(r,n,{completeOnRunError:!1,streamMode:"connect",replayCursor:t})}))}cleanupOwned(e,t){e&&(e.leave(),this.activeChannel===e&&(this.activeChannel=null)),t&&(t.disconnect(),this.socket===t&&(this.socket=null)),this.canonicalRunId=null}cleanup(){this.cleanupOwned(this.activeChannel,this.socket)}requestJoinCredentials$(e,t,n){return(0,p.v)(async()=>{try{let r=await fetch(this.buildRuntimeUrl(e),{method:"POST",headers:{"Content-Type":"application/json",...this.headers},body:JSON.stringify({threadId:t.threadId,runId:t.runId,messages:t.messages,tools:t.tools,context:t.context,state:t.state,forwardedProps:t.forwardedProps,..."connect"===e?{lastSeenEventId:void 0===n?this.getReconnectCursor(t):n}:{}}),...this.credentials?{credentials:this.credentials}:{}});if(204===r.status&&"connect"===e)return null;if(409===r.status&&"run"===e)throw new ea(t.threadId);if(!r.ok){let e=await r.text().catch(()=>"");throw Error(e||r.statusText||String(r.status))}return this.normalizeJoinCredentials(await r.json(),t)}catch(t){if(t instanceof ea)throw t;throw Error(`REST ${e} request failed: ${t instanceof Error?t.message:String(t)}`,{cause:t})}})}normalizeJoinCredentials(e,t){let n=e&&"object"==typeof e?e:null,r=n?.realtime&&"object"==typeof n.realtime?n.realtime:null;if("string"!=typeof n?.joinToken||!n.joinToken)throw Error("missing joinToken");if("string"!=typeof r?.clientUrl||!r.clientUrl)throw Error("missing realtime.clientUrl");
1if("string"!=typeof r.topic||!r.topic)throw Error("missing realtime.topic");return{threadId:"string"==typeof n.threadId&&n.threadId?n.threadId:t.threadId,runId:"string"==typeof n.runId&&n.runId?n.runId:null,joinToken:n.joinToken,realtime:{clientUrl:r.clientUrl,topic:r.topic}}}observeThread$(e,t,n){return this.observeThreadSession$(e,t,n).pipe((0,D.W)(t=>{if(!this.isSocketReconnectExhaustedError(t))return(0,b.$)(()=>t);let r=this.getReconnectCursor(e);return this.requestJoinCredentials$("connect",e,r).pipe((0,R.n)(t=>null===t?I.w:this.observeThread$(this.applyCanonicalRunIdentity(e,t,{fallbackToInputRunId:"run"===n.streamMode}),t,{...n,channelMode:"connect",replayCursor:r})))}))}observeThreadSession$(e,t,n){return(0,p.v)(()=>{let r=null,i=null,s=ee({url:t.realtime.clientUrl,options:{params:{...this.config.socketParams,join_token:t.joinToken},reconnectAfterMs:(0,o.HJ)(100,1e4),rejoinAfterMs:(0,o.HJ)(1e3,3e4)}}).pipe((0,P.M)(({socket:e})=>{r=e,this.socket=r}),(0,k.t)({bufferSize:1,refCount:!0})),a=this.createThreadChannelParam
1s(e,n.channelMode??n.streamMode,n.replayCursor),d=et({socket$:s,topic:t.realtime.topic,params:a}).pipe((0,P.M)(({channel:e})=>{i=e,this.activeChannel=i}),(0,k.t)({bufferSize:1,refCount:!0})),l=this.readDurableEventId(n.replayCursor??this.getReconnectCursor(e)),u=null,c=this.observeThreadEvents$(e.threadId,d,n).pipe((0,P.M)(e=>{u=this.readEventId(e)??u}),(0,H.u)()),h=this.observeControlEvent$(e.threadId,d,"replay_complete").pipe((0,k.t)({bufferSize:1,refCount:!0})),g=this.observeControlEvent$(e.threadId,d,"stream_idle").pipe((0,k.t)({bufferSize:1,refCount:!0})),p="connect"===n.streamMode?(0,E.h)((0,S.z)([h.pipe((0,$.s)(1)),g.pipe((0,$.s)(1))]),g.pipe((0,$.s)(1),(0,j.p)(e=>this.canFallbackCompleteConnect(e,l,u)),(0,J.c)(100))).pipe((0,$.s)(1)):I.w,m=c.pipe((0,z.w)(),(0,G.q)(null),(0,$.s)(1)),f=(0,E.h)(m,p);return(0,E.h)(this.joinThreadChannel$(d),this.observeSocketHealth$(s).pipe((0,L.Q)(f)),c.pipe((0,L.Q)(p)),h.pipe((0,z.w)(),(0,L.Q)(f)),p.pipe((0,z.w)(),(0,L.Q)(m))).pipe((0,O.j)(()=>this.cleanupOwned(i,r)))})}joinThreadChannel$(e){return ei(e)}observeSocketHealth$(e){return eo(es(e),5)}observeThreadEvents$(e,t,n){return t.pipe((0,R.n)(({channel:e})=>this.observeChannelEvent$(e,"ag_ui_event")),(0,P.M)(t=>{this.updateLastSeenEventId(e,t)}),(0,N.Z)(e=>this.createThreadNotifications(e,{completeOnRunError:n.completeOnRunError,completeOnRunFinished:"run"===n.streamMode,errorOnRunError:"run"===n.streamMode})),(0,v.Z)())}observeControlEvent$(e,t,n){return t.pipe((0,R.n)(({channel:e})=>this.observeChannelEvent$(e,n)),(0,P.M)(t=>this.updateLastSeenEventIdFromControl(e,t)))}observeChannelEvent$(e,t){return en(e,t)}createThreadNotifications(e,t){if(e.type===s.Bx.RUN_FINISHED)return t.completeOnRunFinished?[T.Eg.createNext(e),T.Eg.createComplete()]:[T.Eg.createNext(e)];if(e.type===s.Bx.RUN_ERROR){let n=e.message??"Run error";return t.completeOnRunError?[T.Eg.createNext(e),T.Eg.createComplete()]:t.errorOnRunError?[T.Eg.createNext(e),T.Eg.createError(Error(n))]:[T.Eg.createNext(e)]}return[T.Eg.createNext(e)]}buildRuntimeUrl(e){let t=`${this.config.runtimeUrl}/agent/${encodeURIComponent(this.config.agentId)}/${e}`,n="undefined"!=typeof window&&window.location?window.location.origin:"http://localhost";return new URL(t,new URL(this.config.runtimeUrl,n)).toString()}
1createThreadChannelParams(e,t,n){return"run"===t?{stream_mode:"run",run_id:e.runId}:{stream_mode:"connect",last_seen_event_id:void 0===n?this.getReconnectCursor(e):n}}getLastSeenEventId(e){return this.sharedState.lastSeenEventIds.get(e)??null}getReconnectCursor(e){return this.getLastSeenEventId(e.threadId)}clearReconnectCursor(e){this.sharedState.lastSeenEventIds.delete(e)}updateLastSeenEventId(e,t){let n=this.readEventId(t);n&&this.advanceLastSeenEventId(e,n)}updateLastSeenEventIdFromControl(e,t){let n=this.readControlEventId(t);n&&this.advanceLastSeenEventId(e,n)}advanceLastSeenEventId(e,t){this.sharedState.lastSeenEventIds.set(e,t)}readEventId(e){let t=e.metadata;return t&&"object"==typeof t?this.readDurableEventId(t.cpki_event_id):null}readControlEventId(e){if(!e||"object"!=typeof e)return null;let t=e.latestEventId??e.latest_event_id;return this.readDurableEventId(t)}readDurableEventId(e){return"string"!=typeof e||""===e.trim()||e.startsWith("cpki_ingested")?null:e}canFallbackCompleteConnect(e,t,n){let r=this.readControlEventId(e);return!r||r===t||r===n}applyCanonicalRunIdentity(e,t,n){this.threadId=t.threadId;let r=t.runId??(n.fallbackToInputRunId?e.runId:null);return this.canonicalRunId=r,{...e,threadId:t.threadId,...null===r?{}:{runId:r}}}isSocketReconnectExhaustedError(e){return e instanceof Error&&e.message.includes("WebSocket connection failed after")}};function eu(e){return e.pipe((0,D.W)(e=>{if(null!==e&&"object"==typeof e&&"name"in e&&"ZodError"===e.name||(e instanceof DOMException||e instanceof Error)&&"AbortError"===e.name)return I.w;throw e}))}var ec=class e extends i.qB{runtimeUrl;credentials;runtimeAgentId;transport;singleEndpointUrl;runtimeMode;intelligence;_capabilities;delegate;runtimeInfoPromise;constructor(e){let t=e.runtimeUrl?e.runtimeUrl.replace(/\/$/,""):void 0,n=e.transport??"auto",r=e.runtimeAgentId??e.agentId??"",i="single"===n?t??e.runtimeUrl??"":`${t??e.runtimeUrl}/agent/${encodeURIComponent(r)}/run`;if(!i)throw Error("ProxiedCopilotRuntimeAgent requires a runtimeUrl when transport is set to 'single'.");super({...e,url:i}),this.runtimeUrl=t??e.runtimeUrl,this.credentials=e.credentials,this.runtimeAgentId=e.runtimeAgentId,this.transport=n,this.runtimeMode=e.runtimeMode??a.v,this.intelligence=e.intelligence,this._capabilities=e.capabilities,e.debug&&(this.debug=e.debug),"single"===this.transport&&(this.singleEndpointUrl=this.runtimeUrl)}routedAgentId(){let e=this.runtimeAgentId??this.agentId;if(!e)throw Error("ProxiedCopilotRuntimeAgent: cannot make a runtime request without an agentId or runtimeAgentId.");return e}get capabilities(){return this._capabilities}requestInit(e){return{...super.requestInit(e),...this.credentials?{credentials:this.credentials}:{}}}async getCapabilities(){return this._capabilities??{}}async detachActiveRun(){this.delegate&&await this.delegate.detachActiveRun(),await super.detachActiveRun()}abortRun(){if(this.delegate){this.syncDelegate(this.delegate),this.delegate.abortRun(),this.detachActiveRun();return}if(!this.agentId||!this.threadId||"undefined"==typeof fetch)return;let e=this.routedAgentId();if("single"===this.transport){if(!this.singleEndpointUrl)return;let t=new Headers({...this.headers,"Content-Type":"application/json"});fetch(this.singleEndpointUrl,{method:"POST",headers:t,body:JSON.stringify({method:"agent/stop",params:{agentId:e,threadId:this.threadId}}),...this.credentials?{credentials:this.credentials}:{}}).catch(e=>{console.error("ProxiedCopilotRuntimeAgent: stop request failed",e)});return}if(!this.runtimeUrl)return;let t=`${this.runtimeUrl}/agent/${encodeURIComponent(e)}/stop/${encodeURIComponent(this.threadId)}`,n="undefined"!=typeof window&&window.location?window.location.origin:"http://localhost",r=new URL(this.runtimeUrl,n);fetch(new URL(t,r).toString(),{method:"POST",headers:{"Content-Type":"application/json",...this.headers},...this.credentials?{credentials:this.credentials}:{}}).catch(e=>{console.error("ProxiedCopilotRuntimeAgent: stop request failed",e)})}async connectAgent(e,t){if(this.runtimeMode!==a.R)return super.connectAgent(e,t);this.delegate&&await this.delegate.detachActiveRun(),await this.resolveDelegate();let n=this.delegate,r=n.subscribe({onMessagesChanged:()=>{this.setMessages([...n.messages])},onStateChanged:()=>{this.setState({...n.state})},onRunInitialized:()=>{this.isRunning=!0},onRunFinalized:()=>{this.isRunning=!1},onRunFailed:()=>{this.isRunning=!1},onRunErrorEvent:()=>{this.isRunning=!1}}),i=this.subscribers.map(e=>n.subscribe(e));try{let r=await n.connectAgent(e,t);return this.setMessages([...n.messages]),this.setState({...n.state}),r}finally{for(let e of(this.isRunning=!1,r.unsubscribe(),i))e.unsubscribe()}}connect(e){return"pending"===this.runtimeMode||"auto"===this.transport&&this.runtimeMode!==a.R?(0,p.v)(()=>(0,A.H)(this.ensureRuntimeConfiguration())).pipe((0,R.n)(()=>this.connect(e))):this.runtimeMode===a.R?this.#e(e):this.#t(e)}run(e){return"pending"===this.runtimeMode||"auto"===this.transport&&this.runtimeMode!==a.R?(0,p.v)(()=>(0,A.H)(this.ensureRuntimeConfiguration())).pipe((0,R.n)(()=>this.run(e))):this.runtimeMode===a.R?this.#n(e):this.#r(e)}#e(e){return(0,p.v)(()=>(0,A.H)(this.resolveDelegate())).pipe((0,R.n)(t=>eu(t.connect(e))))}#t(e){let t=this.routedAgentId();if("single"===this.transport){if(!this.singleEndpointUrl)throw Error("Single endpoint transport requires a runtimeUrl");let n=this.createSingleRouteRequestInit(e,"agent/connect",{agentId:t});return eu((0,i.l8)((0,i.BR)(()=>this.fetch(this.singleEndpointUrl,n))))}let n=`${this.runtimeUrl}/agent/${t}/connect`,r=this.requestInit(e);return eu((0,i.l8)((0,i.BR)(()=>this.fetch(n,r))))}#n(e){return(0,p.v)(()=>(0,A.H)(this.resolveDelegate())).pipe((0,R.n)(t=>eu(t.run(e))))}#r(e){if("single"===this.transport){if(!this.singleEndpointUrl)throw Error("Single endpoint transport requires a runtimeUrl");let t=this.createSingleRouteRequestInit(e,"agent/run",{agentId:this.routedAgentId()});return eu((0,i.l8)((0,i.BR)(()=>this.fetch(this.singleEndpointUrl,t))))}return eu(super.run(e))}clone(){let t=new e({runtimeUrl:this.runtimeUrl,agentId:this.agentId,runtimeAgentId:this.runtimeAgentId,description:this.description,headers:{...this.headers},credentials:this.credentials,transport:this.transport,runtimeMode:this.runtimeMode,intelligence:this.intelligence,capabilities:this._capabilities,debug:this.debug});if(t.threadId=this.threadId,t.setState(this.state),t.setMessages(this.messages),this.delegate){let e=this.delegate.clone();t.delegate=e,t.syncDelegate(e)}return t}clearReplayCursor(e){this.runtimeMode===a.R&&this.delegate?.clearReconnectCursor?.(e)}async resolveDelegate(){if(await this.ensureRuntimeConfiguration(),!this.delegate){if(this.runtimeMode!==a.R)throw Error("A delegate is only created for Intelligence mode");this.delegate=this.createIntelligenceDelegate()}return this.syncDelegate(this.delegate),this.delegate}async ensureRuntimeConfiguration(){if(this.runtimeMode===a.R||"pending"!==this.runtimeMode&&"auto"!==this.transport)return;if(!this.runtimeUrl)throw Error("Runtime URL is not set");let e=this.runtimeInfoPromise??this.fetchRuntimeInfo().then(e=>{this.runtimeMode=e.mode??a.v,this.intelligence=e.intelligence});this.runtimeInfoPromise=e;try{await e}catch(t){throw this.runtimeInfoPromise===e&&(this.runtimeInfoPromise=void 0),t}}async fetchRuntimeInfo(){let e,t,n={...this.headers};if("auto"===this.transport)return this.fetchRuntimeInfoAutoDetect(n);if("single"===this.transport){if(!this.singleEndpointUrl)throw Error("Single endpoint transport requires a runtimeUrl");n["Content-Type"]||(n["Content-Type"]="application/json"),t=this.runtimeUrl,e={method:"POST",body:JSON.stringify({method:"info"})}}else t=`${this.runtimeUrl}/info`,e={};let r=await fetch(t,{...e,headers:n,...this.credentials?{credentials:this.credentials}:{}});if(!r.ok)throw Error(`Runtime info request failed with status ${r.status}`);return await r.json()}async fetchRuntimeInfoAutoDetect(e){try{let t=await fetch(`${this.runtimeUrl}/info`,{headers:{...e},...this.credentials?{credentials:this.credentials}:{}});if(t.status>=200&&t.status<300)return this.transport="rest",await t.json()}catch{}let t={...e};t["Content-Type"]||(t["Content-Type"]="application/json");let n=await fetch(this.runtimeUrl,{method:"POST",headers:t,body:JSON.stringify({method:"info"}),...this.credentials?{credentials:this.credentials}:{}});if(!n.ok)throw Error(`Runtime info request failed with status ${n.status}`);return this.transport="single",this.singleEndpointUrl=this.runtimeUrl,await n.json()}createSingleRouteRequestInit(e,t,n){let r;if(!this.agentId)throw Error("ProxiedCopilotRuntimeAgent requires agentId to make runtime requests");let i=super.requestInit(e),s=new Headers(i.headers??{});if(s.set("Content-Type","application/json"),s.set("Accept",s.get("Accept")??"text/event-stream"),"string"==typeof i.body)try{r=JSON.parse(i.body)}catch(e){console.warn("ProxiedCopilotRuntimeAgent: failed to parse request body for single route transport",e)}let o={method:t};return n&&Object.keys(n).length>0&&(o.params=n),void 0!==r&&(o.body=r),{...i,headers:s,body:JSON.stringify(o),...this.credentials?{credentials:this.credentials}:{}}}createIntelligenceDelegate(){let e=this.routedAgentId();if(!this.runtimeUrl||!e||!this.intelligence?.wsUrl)throw Error("Intelligence mode requires runtimeUrl, agentId, and intelligence websocket metadata");return new el({url:this.intelligence.wsUrl,runtimeUrl:this.runtimeUrl,agentId:e,headers:{...this.headers},credentials:this.credentials})}syncDelegate(e){e.agentId=this.routedAgentId(),e.description=this.description,e.threadId=this.threadId,e.setMessages(this.messages),e.setState(this.state),"headers"in e&&(e.headers={...this.headers}),"credentials"in e&&(e.credentials=this.credentials)}};function eh(e){let t=new Headers(e);return t.has("content-type")||t.set("content-type","application/json"),t}var eg=class{_agents={};localAgents={};remoteAgents={};_runtimeUrl;_connectionInFlight;_runtimeVersion;_runtimeConnectionStatus=tt.Disconnected;
1_runtimeTransport="auto";_requestedTransport="auto";_audioFileTranscriptionEnabled=!1;_runtimeMode=a.v;_intelligence;_threadEndpoints;_suggestions;_inspectorMetadata;_inspectorMetadataSupported=!1;inspectorMetadataRefreshReady=!1;inspectorMetadataConnectionGeneration=0;inspectorMetadataGeneration=0;inspectorMetadataHeadersGeneration=0;inspectorMetadataCredentialsGeneration=0;inspectorMetadataAbortController;inspectorMetadataNotificationQueue=Promise.resolve();_a2uiEnabled=!1;_a2uiAgents;_openGenerativeUIEnabled=!1;_licenseStatus;_telemetryDisabled=!1;agentOwnHeaders=new WeakMap;constructor(e){this.core=e}get agents(){return this._agents}get runtimeUrl(){return this._runtimeUrl}get runtimeVersion(){return this._runtimeVersion}get runtimeConnectionStatus(){return this._runtimeConnectionStatus}get runtimeTransport(){return this._runtimeTransport}get audioFileTranscriptionEnabled(){return this._audioFileTranscriptionEnabled}get runtimeMode(){return this._runtimeMode}get intelligence(){return this._intelligence}get threadEndpoints(){return this._threadEndpoints}get suggestions(){return this._suggestions}get inspectorMetadata(){return this._inspectorMetadata}get a2uiEnabled(){return this._a2uiEnabled}get a2uiAgents(){return this._a2uiAgents}get openGenerativeUIEnabled(){return this._openGenerativeUIEnabled}get licenseStatus(){return this._licenseStatus}get telemetryDisabled(){return this._telemetryDisabled}initialize(e){this.localAgents=this.assignAgentIds(e),this.applyHeadersToAgents(this.localAgents),this.applyCredentialsToAgents(this.localAgents),this._agents=this.localAgents}setRuntimeUrl(e,t){let n=e?e.replace(/\/$/,""):void 0;this._runtimeUrl!==n&&(this.invalidateInspectorMetadataConnection(),this._runtimeUrl=n,t?.deferConnection||this.updateRuntimeConnection())}connectRuntime(){"undefined"!=typeof window&&this._runtimeUrl&&this._runtimeConnectionStatus===tt.Disconnected&&this.updateRuntimeConnection()}setRuntimeTransport(e){this._requestedTransport!==e&&(this.invalidateInspectorMetadataConnection(),this._requestedTransport=e,this._runtimeTransport=e,this.updateRuntimeConnection())}setAgents__unsafe_dev_only(e){Object.entries(e).forEach(([e,t])=>{t&&this.validateAndAssignAgentId(e,t)}),this.localAgents=e,this._agents={...this.localAgents,...this.remoteAgents},this.applyHeadersToAgents(this._agents),this.applyCredentialsToAgents(this._agents),this.notifyAgentsChanged()}addAgent__unsafe_dev_only({id:e,agent:t}){this.validateAndAssignAgentId(e,t),this.localAgents[e]=t,this.applyHeadersToAgent(t),this.applyCredentialsToAgent(t),this._agents={...this.localAgents,...this.remoteAgents},this.notifyAgentsChanged()}removeAgent__unsafe_dev_only(e){delete this.localAgents[e],this._agents={...this.localAgents,...this.remoteAgents},this.notifyAgentsChanged()}registerProxiedAgent({agentId:e,runtimeAgentId:t}){if(Object.prototype.hasOwnProperty.call(this._agents,e))throw Error(`CopilotKitCore.registerProxiedAgent: agentId "${e}" is already registered. Pick a different agentId, or unregister the existing agent first.`);let n=this.core,r=n.debug,i=new ec({runtimeUrl:this._runtimeUrl,agentId:e,runtimeAgentId:t,transport:this._runtimeTransport,credentials:n.credentials,runtimeMode:this._runtimeUrl?this._runtimeConnectionStatus===tt.Connected?this._runtimeMode:"pending":a.v,intelligence:this._intelligence,debug:r?(0,d._)(r):void 0});return this.applyHeadersToAgent(i),this.localAgents[e]=i,this._agents={...this.localAgents,...this.remoteAgents},this.notifyAgentsChanged(),{agent:i,unregister:()=>{this.localAgents[e]===i&&(delete this.localAgents[e],this._agents={...this.localAgents,...this.remoteAgents},this.notifyAgentsChanged())}}}getAgent(e){if(e in this._agents)return this._agents[e];(void 0===this.runtimeUrl||this.runtimeConnectionStatus!==tt.Disconnected&&this.runtimeConnectionStatus!==tt.Connecting)&&console.warn(`Agent ${e} not found`)}applyHeadersToAgent(e){e instanceof i.qB&&(this.agentOwnHeaders.has(e)||this.agentOwnHeaders.set(e,{...e.headers}),e.headers={...this.agentOwnHeaders.get(e),...this.core.headers})}
1applyHeadersToAgents(e){Object.values(e).forEach(e=>{this.applyHeadersToAgent(e)})}applyCredentialsToAgent(e){e instanceof ec&&(e.credentials=this.core.credentials)}applyCredentialsToAgents(e){Object.values(e).forEach(e=>{this.applyCredentialsToAgent(e)})}handleHeadersChanged(){this.inspectorMetadataHeadersGeneration+=1,this.setInspectorMetadata(void 0),this.refreshInspectorMetadata()}handleCredentialsChanged(){this.inspectorMetadataCredentialsGeneration+=1,this.setInspectorMetadata(void 0),this.refreshInspectorMetadata()}async refreshInspectorMetadata(){let e,t,n,r=++this.inspectorMetadataGeneration;if(this.inspectorMetadataAbortController?.abort(),this.inspectorMetadataAbortController=void 0,!this._inspectorMetadataSupported||!this.inspectorMetadataRefreshReady||!this.runtimeUrl||this._runtimeConnectionStatus!==tt.Connected)return void this.setInspectorMetadata(void 0);let i=this.runtimeUrl,s=this._requestedTransport,o=this._runtimeTransport,a=this.inspectorMetadataHeadersGeneration,d=this.inspectorMetadataCredentialsGeneration,u=this.core,c={...u.headers},h=u.credentials,g=new AbortController;this.inspectorMetadataAbortController=g;let p=!1,m=new Promise((e,n)=>{t=n}),f=()=>{t?.(Error("Inspector metadata request aborted"))};g.signal.addEventListener("abort",f,{once:!0});let y=new Promise((t,n)=>{e=setTimeout(()=>{p=!0,n(Error("Inspector metadata request timed out")),g.abort()},5e3)});try{let e=(async()=>{let e="single"===o?await this.fetchInspectorMetadataSingle({runtimeUrl:i,headers:c,credentials:h,signal:g.signal}):await this.fetchInspectorMetadataRest({runtimeUrl:i,headers:c,credentials:h,signal:g.signal});if(204!==e.status&&e.ok)return(0,l.f)(await e.json())})();n=await Promise.race([e,m,y])}catch{n=void 0}finally{void 0!==e&&clearTimeout(e),g.signal.removeEventListener("abort",f)}this.isInspectorMetadataRequestCurrent({generation:r,runtimeUrl:i,requestedTransport:s,resolvedTransport:o,headersGeneration:a,credentialsGeneration:d,signal:g.signal,allowAbortedSignal:p})&&(this.inspectorMetadataAbortController=void 0,this.setInspectorMetadata(n))}async fetchInspectorMetadataRest({runtimeUrl:e,headers:t,credentials:n,signal:r}){return fetch(`${e}/inspector-metadata`,{method:"GET",headers:t,...n?{credentials:n}:{},signal:r})}async fetchInspectorMetadataSingle({runtimeUrl:e,headers:t,credentials:n,signal:r}){return fetch(e,{method:"POST",headers:eh(t),body:JSON.stringify({method:"inspector/metadata"}),...n?{credentials:n}:{},signal:r})}isInspectorMetadataRequestCurrent({generation:e,runtimeUrl:t,requestedTransport:n,resolvedTransport:r,headersGeneration:i,credentialsGeneration:s,signal:o,allowAbortedSignal:a=!1}){return(a||!o.aborted)&&e===this.inspectorMetadataGeneration&&t===this.runtimeUrl&&n===this._requestedTransport&&r===this._runtimeTransport&&i===this.inspectorMetadataHeadersGeneration&&s===this.inspectorMetadataCredentialsGeneration&&this._inspectorMetadataSupported&&this.inspectorMetadataRefreshReady&&this._runtimeConnectionStatus===tt.Connected}invalidateInspectorMetadataConnection(){this._inspectorMetadataSupported=!1,this.inspectorMetadataRefreshReady=!1,this.inspectorMetadataConnectionGeneration+=1,this.inspectorMetadataGeneration+=1,this.inspectorMetadataAbortController?.abort(),this.inspectorMetadataAbortController=void 0,this.setInspectorMetadata(void 0)}setInspectorMetadata(e){JSON.stringify(this._inspectorMetadata)!==JSON.stringify(e)&&(this._inspectorMetadata=e,this.inspectorMetadataNotificationQueue=this.inspectorMetadataNotificationQueue.then(()=>this.notifyInspectorMetadataChanged(e)).catch(e=>{console.error("Subscriber onInspectorMetadataChanged queue error:",e)}))}async updateRuntimeConnection(){if("undefined"==typeof window)return;let e=`${this._runtimeUrl??""}::${this._requestedTransport}`,t=this._connectionInFlight;if(t&&t.key===e)return t.promise;let n=this.performRuntimeConnection();return this._connectionInFlight={key:e,promise:n},n.finally(()=>{this._connectionInFlight?.promise===n&&(this._connectionInFlight=void 0)}),n}async performRuntimeConnection(){if(!this.runtimeUrl){this.invalidateInspectorMetadataConnection(),this._runtimeConnectionStatus=tt.Disconnected,this._runtimeVersion=void 0,this._audioFileTranscriptionEnabled=!1,this._runtimeMode=a.v,this._intelligence=void 0,this._threadEndpoints=void 0,this._suggestions=void 0,this._a2uiEnabled=!1,this._a2uiAgents=void 0,this._openGenerativeUIEnabled=!1,this.remoteAgents={},this._agents=this.localAgents,await this.notifyRuntimeStatusChanged(tt.Disconnected),await this.notifyAgentsChanged();return}let e=this.inspectorMetadataConnectionGeneration;this._runtimeConnectionStatus=tt.Connecting,await this.notifyRuntimeStatusChanged(tt.Connecting);try{if(e!==this.inspectorMetadataConnectionGeneration)return;let{runtimeInfo:t,resolvedTransport:n}=await this.fetchRuntimeInfo();if(e!==this.inspectorMetadataConnectionGeneration)return;
1this._runtimeTransport=n;let{version:r,...i}=t,s=this.core.credentials,o=this.core.debug;this.remoteAgents=Object.fromEntries(Object.entries(i.agents).map(([e,{description:n,capabilities:r}])=>{let i=Object.prototype.hasOwnProperty.call(this.remoteAgents,e)?this.remoteAgents[e]:void 0;if(i instanceof ec)return this.applyHeadersToAgent(i),this.applyCredentialsToAgent(i),[e,i];let l=new ec({runtimeUrl:this.runtimeUrl,agentId:e,description:n,transport:this._runtimeTransport,credentials:s,runtimeMode:t.mode??a.v,intelligence:t.intelligence,capabilities:r,debug:o?(0,d._)(o):void 0});return this.applyHeadersToAgent(l),[e,l]})),this._agents={...this.localAgents,...this.remoteAgents},this._runtimeConnectionStatus=tt.Connected,this._runtimeVersion=r,this._audioFileTranscriptionEnabled=t.audioFileTranscriptionEnabled??!1,this._runtimeMode=t.mode??a.v,this._intelligence=t.intelligence,this._threadEndpoints=t.threadEndpoints,this._suggestions=t.suggestions,this._inspectorMetadataSupported=!0===t.inspectorMetadata,this.inspectorMetadataRefreshReady=!1,this._inspectorMetadataSupported||this.setInspectorMetadata(void 0);let l=t.a2ui;if(this._a2uiEnabled=l?.enabled??t.a2uiEnabled??!1,this._a2uiAgents=l?.enabled?l.agents:void 0,this._openGenerativeUIEnabled=t.openGenerativeUIEnabled??!1,this._licenseStatus=t.licenseStatus,this._telemetryDisabled=t.telemetryDisabled??!1,await this.notifyRuntimeStatusChanged(tt.Connected),await this.notifyAgentsChanged(),e!==this.inspectorMetadataConnectionGeneration||this._runtimeConnectionStatus!==tt.Connected)return;this.inspectorMetadataRefreshReady=!0,this._inspectorMetadataSupported&&this.refreshInspectorMetadata()}catch(r){if(e!==this.inspectorMetadataConnectionGeneration)return;this.invalidateInspectorMetadataConnection(),this._runtimeConnectionStatus=tt.Error,this._runtimeVersion=void 0,this._audioFileTranscriptionEnabled=!1,this._runtimeMode=a.v,this._intelligence=void 0,this._threadEndpoints=void 0,this._suggestions=void 0,this._a2uiEnabled=!1,this._a2uiAgents=void 0,this._openGenerativeUIEnabled=!1,this.remoteAgents={},this._agents=this.localAgents,await this.notifyRuntimeStatusChanged(tt.Error),await this.notifyAgentsChanged();let t=r instanceof Error?r.message:JSON.stringify(r);u.v.warn(`Failed to load runtime info (${this.runtimeUrl}/info): ${t}`);let n=r instanceof Error?r:Error(String(r));await this.core.emitError({error:n,code:e8.RUNTIME_INFO_FETCH_FAILED,context:{runtimeUrl:this.runtimeUrl}})}}async fetchRuntimeInfo(){let e=this.runtimeUrl;if(!e)throw Error("Runtime URL is not set");let t=this.core.headers,n=this.core.credentials,r={...t},i=this._runtimeTransport;if("single"===i)return{runtimeInfo:await this.fetchRuntimeInfoSingle(e,r,n),resolvedTransport:"single"};if("auto"===i)return this.fetchRuntimeInfoAutoDetect(e,r,n);let s=await fetch(`${e}/info`,{headers:r,...n?{credentials:n}:{}});if(!s.ok)throw Error(`Runtime info request failed with status ${s.status}`);return{runtimeInfo:await s.json(),resolvedTransport:"rest"}}async fetchRuntimeInfoSingle(e,t,n){let r=await fetch(e,{method:"POST",headers:eh(t),body:JSON.stringify({method:"info"}),...n?{credentials:n}:{}});if(!r.ok)throw Error(`Runtime info request failed with status ${r.status}`);return await r.json()}async fetchRuntimeInfoAutoDetect(e,t,n){try{let r=await fetch(`${e}/info`,{headers:{...t},...n?{credentials:n}:{}});if(r.status>=200&&r.status<300)return{runtimeInfo:await r.json(),resolvedTransport:"rest"}}catch{}return{runtimeInfo:await this.fetchRuntimeInfoSingle(e,{...t},n),resolvedTransport:"single"}}assignAgentIds(e){return Object.entries(e).forEach(([e,t])=>{t&&this.validateAndAssignAgentId(e,t)}),e}validateAndAssignAgentId(e,t){if(t.agentId&&t.agentId!==e)throw Error(`Agent registration mismatch: Agent with ID "${t.agentId}" cannot be registered under key "${e}". The agent ID must match the registration key or be undefined.`);t.agentId||(t.agentId=e)}async notifyRuntimeStatusChanged(e){await this.core.notifySubscribers(t=>t.onRuntimeConnectionStatusChanged?.({copilotkit:this.core,status:e}),"Error in CopilotKitCore subscriber (onRuntimeConnectionStatusChanged):")}async notifyAgentsChanged(){await this.core.notifySubscribers(e=>e.onAgentsChanged?.({copilotkit:this.core,agents:this._agents}),"Subscriber onAgentsChanged error:")}async notifyInspectorMetadataChanged(e){await this.core.notifySubscribers(t=>t.onInspectorMetadataChanged?.({copilotkit:this.core,inspectorMetadata:e}),"Subscriber onInspectorMetadataChanged error:")}},ep=class{_context={};constructor(e){this.core=e}get context(){return this._context}addContext({description:e,value:t,agentIds:n}){let r=(0,c.N4)();return this._context[r]={description:e,value:t,...n?{agentIds:n}:{}},this.notifySubscribers(),r}getContextForAgent(e){return Object.values(this._context).filter(t=>!t.agentIds||void 0!==e&&t.agentIds.includes(e)).map(({description:e,value:t})=>({description:e,value:t}))}
1removeContext(e){delete this._context[e],this.notifySubscribers()}async notifySubscribers(){await this.core.notifySubscribers(e=>e.onContextChanged?.({copilotkit:this.core,context:this._context}),"Subscriber onContextChanged error:")}},em=class{_suggestionsConfig={};_suggestions={};_runningSuggestions={};constructor(e){this.core=e}initialize(e){for(let t of e)this._suggestionsConfig[(0,c.N4)()]=t}addSuggestionsConfig(e){let t=(0,c.N4)();return this._suggestionsConfig[t]=e,this.notifySuggestionsConfigChanged(),t}removeSuggestionsConfig(e){delete this._suggestionsConfig[e],this.notifySuggestionsConfigChanged()}reloadSuggestions(e){this.clearSuggestions(e);let t=this.core.getAgent(e),n=t?.messages?.length??0,r=!1;for(let i of Object.values(this._suggestionsConfig)){if(void 0!==i.consumerAgentId&&"*"!==i.consumerAgentId&&i.consumerAgentId!==e||!this.shouldShowSuggestions(i,n))continue;let s=(0,c.N4)();if(ef(i)){if(!t)continue;r||(r=!0,this.notifySuggestionsStartedLoading(e)),this.generateSuggestions(s,i,e)}else"suggestions"in i&&this.addStaticSuggestions(s,i,e)}}clearSuggestions(e){let t=this._runningSuggestions[e];if(t){for(let e of t)e.abortRun();delete this._runningSuggestions[e]}this._suggestions[e]={},this.notifySuggestionsChanged(e,[])}getSuggestions(e){return{suggestions:Object.values(this._suggestions[e]??{}).flat(),isLoading:(this._runningSuggestions[e]?.length??0)>0}}async generateSuggestions(e,t,n){let r,s=!1;try{let o,a=this.core,d=t.providerAgentId??"default",l=a.getAgent(d);if(!l)throw Error(`Suggestions provider agent not found: ${d}`);let u=a.getAgent(n);if(!u)throw Error(`Suggestions consumer agent not found: ${n}`);let c=`Suggest what the user could say next. Provide clear, highly relevant suggestions by calling the \`copilotkitSuggest\` tool.
2Provide at least ${t.minSuggestions??1} and at most ${t.maxSuggestions??3} suggestions.
3The user has the following tools available: ${JSON.stringify(a.buildFrontendTools(n))}.
4 ${t.instructions}`;this._suggestions[n]={...this._suggestions[n],[e]:[]};let h=JSON.parse(JSON.stringify(u.messages)),g=JSON.parse(JSON.stringify(u.state??{}));if(!0===this.core.suggestions&&"single"!==this.core.runtimeTransport){let e=`${this.core.runtimeUrl}/agent/${encodeURIComponent(d)}/suggest`,t=this.core.credentials;o=new i.qB({agentId:d,url:e,headers:{...this.core.headers},...t?{fetch:(e,n)=>fetch(e,{...n,credentials:t})}:{}})}else o=l.clone();o.threadId=e,o.setMessages(h),o.setState(g),r={abortRun:()=>{s=!0,o.abortRun()}},this._runningSuggestions[n]=[...this._runningSuggestions[n]??[],r],o.addMessage({id:e,role:"user",content:c}),await o.runAgent({context:a.getContextForAgent(n),forwardedProps:{...a.properties,toolChoice:{type:"function",function:{name:"copilotkitSuggest"}}},tools:[ey]},{onMessagesChanged:({messages:t})=>{this.extractSuggestions(t,e,n,!0)}})}catch(e){var o;"object"==typeof(o=e)&&null!==o&&"name"in o&&"AbortError"===o.name||s||console.warn("Error generating suggestions:",e)}finally{this.finalizeSuggestions(e,n);let t=this._runningSuggestions[n],i=r?(t??[]).filter(e=>e!==r):t??[];0===i.length?(delete this._runningSuggestions[n],await this.notifySuggestionsFinishedLoading(n)):this._runningSuggestions[n]=i}}finalizeSuggestions(e,t){let n=this._suggestions[t],r=n?.[e];if(n&&r&&r.length>0){let i=r.filter(e=>""!==e.title||""!==e.message).map(e=>({...e,isLoading:!1}));i.length>0?n[e]=i:delete n[e];let s=Object.values(this._suggestions[t]??{}).flat();this.notifySuggestionsChanged(t,s,"finalized")}}extractSuggestions(e,t,n,r){let i=e.findIndex(e=>e.id===t);if(-1==i)return;let s=[];for(let t of e.slice(i+1))if("assistant"===t.role&&t.toolCalls){for(let e of t.toolCalls)if("copilotkitSuggest"===e.function.name){let t=(0,o.j)(Array.isArray(e.function.arguments)?e.function.arguments.join(""):e.function.arguments);if(t&&"object"==typeof t&&"suggestions"in t){let e=t.suggestions;if(Array.isArray(e))for(let t of e)t&&"object"==typeof t&&"title"in t&&s.push({title:t.title??"",message:t.message??"",isLoading:!1})}}}r&&s.length>0&&(s[s.length-1].isLoading=!0);let a=this._suggestions[n];if(a){a[t]=s;let e=Object.values(this._suggestions[n]??{}).flat();this.notifySuggestionsChanged(n,e,"suggestions changed")}}async notifySuggestionsConfigChanged(){await this.core.notifySubscribers(e=>e.onSuggestionsConfigChanged?.({copilotkit:this.core,suggestionsConfig:this._suggestionsConfig}),"Subscriber onSuggestionsConfigChanged error:")}async notifySuggestionsChanged(e,t,n=""){await this.core.notifySubscribers(n=>n.onSuggestionsChanged?.({copilotkit:this.core,agentId:e,suggestions:t}),`Subscriber onSuggestionsChanged error: ${n}`)}async notifySuggestionsStartedLoading(e){await this.core.notifySubscribers(t=>t.onSuggestionsStartedLoading?.({copilotkit:this.core,agentId:e}),"Subscriber onSuggestionsStartedLoading error:")}async notifySuggestionsFinishedLoading(e){await this.core.notifySubscribers(t=>t.onSuggestionsFinishedLoading?.({copilotkit:this.core,agentId:e}),"Subscriber onSuggestionsFinishedLoading error:")}shouldShowSuggestions(e,t){let n=e.available;if(!n)if(ef(e))return t>0;else return 0===t;switch(n){case"disabled":default:return!1;case"before-first-message":return 0===t;case"after-first-message":return t>0;case"always":return!0}}addStaticSuggestions(e,t,n){let r=t.suggestions.map(e=>({...e,isLoading:!1}));this._suggestions[n]={...this._suggestions[n],[e]:r};let i=Object.values(this._suggestions[n]??{}).flat();this.notifySuggestionsChanged(n,i,"static suggestions added")}};function ef(e){return"instructions"in e}let ey={name:"copilotkitSuggest",description:"Suggest what the user could say next",parameters:{type:"object",properties:{suggestions:{type:"array",description:"List of suggestions shown to the user as buttons.",items:{type:"object",properties:{title:{type:"string",description:"The title of the suggestion. This is shown as a button and should be short."},message:{type:"string",description:"The message to send when the suggestion is clicked. This should be a clear, complete sentence and will be sent as an instruction to the AI."}},required:["title","message"]}}},required:["suggestions"]}};var eI=class{_tools=[];_catalogComponents=[];_disabledCatalogComponents=new Set;_disabledToolKeys=new Set;_runAbortController=null;_runDepth=0;_lastConnectedThreadIdsByAgent=new Map;_anonymousAgentIds=new WeakMap;_nextAnonymousAgentId=0;constructor(e){this.core=e}abortCurrentRun(){this._runAbortController?.abort()}get _internal(){return this.core}getConnectRestoreKey(e){if(e.agentId)return`agent:${e.agentId}`;let t=this._anonymousAgentIds.get(e);if(t)return t;let n=`anonymous:${this._nextAnonymousAgentId}`;return this._nextAnonymousAgentId+=1,this._anonymousAgentIds.set(e,n),n}get tools(){return this._tools}initialize(e){this._tools=e}addTool(e){if(-1!==this._tools.findIndex(t=>t.name===e.name&&t.agentId===e.agentId))return void u.v.warn(`Tool already exists: '${e.name}' for agent '${e.agentId||"global"}', skipping.`);this._tools.push(e)}removeTool(e,t){this._tools=this._tools.filter(n=>void 0!==t?n.name!==e||n.agentId!==t:!(n.name===e&&!n.agentId))}getTool(e){let{toolName:t,agentId:n}=e;if(n){let e=this._tools.find(e=>e.name===t&&e.agentId===n);if(e)return e}return this._tools.find(e=>e.name===t&&!e.agentId)}setTools(e){this._tools=[...e]}get catalogComponents(){return this._catalogComponents}setCatalogComponents(e){this._catalogComponents=[...e]}setCatalogComponentEnabled(e,t){t?this._disabledCatalogComponents.delete(e):this._disabledCatalogComponents.add(e)}isCatalogComponentEnabled(e){return!this._disabledCatalogComponents.has(e)}async connectAgent({agent:e}
4){try{let t=e.threadId??null,n=this.getConnectRestoreKey(e),r=t!==(this._lastConnectedThreadIdsByAgent.get(n)??null);this._lastConnectedThreadIdsByAgent.set(n,t),await e.detachActiveRun(),r&&(e.setMessages([]),e.setState({}),t&&("function"==typeof e.clearReplayCursor&&e.clearReplayCursor(t),"function"==typeof e.clearReconnectCursor&&e.clearReconnectCursor(t))),this._internal.applyHeadersToAgent(e),await this._internal.notifySubscribers(t=>t.onAgentRunStarted?.({copilotkit:this.core,agent:e}),"Subscriber onAgentRunStarted error:");let i=await e.connectAgent({forwardedProps:this._internal.properties,tools:this.buildFrontendTools(e.agentId),context:this._internal.getContextForAgent(e.agentId)},this.createAgentErrorSubscriber(e));return this.processAgentResult({runAgentResult:i,agent:e,executeFrontendTools:!1})}catch(n){let t=n instanceof Error?n:Error(String(n));if("AbortError"!==t.name&&"Fetch is aborted"!==t.message&&"signal is aborted without reason"!==t.message&&"component unmounted"!==t.message){let n={};e.agentId&&(n.agentId=e.agentId),await this._internal.emitError({error:t,code:e8.AGENT_CONNECT_FAILED,context:n})}return{result:void 0,newMessages:[]}}}async runAgent({agent:e,forwardedProps:t,resume:n,runId:r},i){let s;if(e.agentId&&this._internal.suggestionEngine.clearSuggestions(e.agentId),this._internal.applyHeadersToAgent(e),e.detachActiveRun)try{await e.detachActiveRun()}catch(e){throw i?.cancel(),e}let o=0===this._runDepth;if(o){this._runAbortController=new AbortController;let t=this._runAbortController;s=e.abortRun.bind(e),e.abortRun=()=>{t.abort(),s()},await this._internal.notifySubscribers(t=>t.onAgentRunStarted?.({copilotkit:this.core,agent:e}),"Subscriber onAgentRunStarted error:")}this._runDepth++;try{let s=r,o=this.createAgentErrorSubscriber(e),a=!1,d=o.onRunStartedEvent,l=o.onRunInitialized;o.onRunInitialized=async e=>(i?.bind(e.input),l?.(e)),o.onRunStartedEvent=async e=>(a=!0,i||(s=e.input.runId),d?.(e));let u=void 0!==r&&!i,c={forwardedProps:{...this._internal.properties,...t},...void 0!==n?{resume:n}:{},...u?{runId:r}:{},tools:this.buildFrontendTools(e.agentId),context:this._internal.getContextForAgent(e.agentId)},h=await e.runAgent(c,o);return a||i?.cancel(),await this.processAgentResult({runAgentResult:h,agent:e,runId:s})}catch(r){i?.cancel();let t=r instanceof Error?r:Error(String(r)),n={};return e.agentId&&(n.agentId=e.agentId),await this._internal.emitError({error:t,code:e8.AGENT_RUN_FAILED,context:n}),{result:void 0,newMessages:[]}}finally{this._runDepth--,o&&s&&(e.abortRun=s)}}async processAgentResult({runAgentResult:e,agent:t,runId:n,executeFrontendTools:r=!0}){let{newMessages:i}=e,s=t.agentId,o=!1;if(r){for(let e of i)if("assistant"===e.role)for(let n of e.toolCalls||[]){let r,a=this.getTool({toolName:n.function.name,agentId:t.agentId}),d=()=>a||r?r:r=this.getTool({toolName:"*",agentId:t.agentId}),l=i.findIndex(e=>"tool"===e.role&&e.toolCallId===n.id),u=-1===l?void 0:i[l],c=a??d();if(u&&c?.handler&&this.isFrontendPlaceholderResult(u)){i.splice(l,1),l=-1;let e=t.messages.findIndex(e=>"tool"===e.role&&e.toolCallId===n.id);-1!==e&&t.messages.splice(e,1)}if(-1===l)if(a)await this.executeSpecificTool(a,n,e,t,s)&&(o=!0);else{let r=d();r&&await this.executeWildcardTool(r,n,e,t,s)&&(o=!0)}}}if(o&&!this._runAbortController?.signal.aborted)if(this._runDepth>=100)u.v.warn(`[CopilotKit] Follow-up depth limit (100) reached for agent "${s}". Stopping recursive follow-up runs to prevent an infinite loop. This usually indicates a tool that keeps requesting a follow-up (e.g. the LLM repeatedly calling the same tool). Consider setting "followUp: false" on the offending tool.`);else{await this._internal.waitForPendingFrameworkUpdates();let e=this._internal.stateManager.markNextRunAsContinuation(t,n);return await this.runAgent({agent:t,...void 0!==n?{runId:n}:{}},e)}return this._internal.suggestionEngine.reloadSuggestions(s),e}isFrontendPlaceholderResult(e){return"tool"===e.role&&"Forwarded to client"===this.normalizeToolResultContent(e.content)}normalizeToolResultContent(e){if("string"==typeof e)return e.trim();if(Array.isArray(e)){let t=e.flatMap(e=>"string"==typeof e?[e]:e&&"object"==typeof e&&"text"in e&&"string"==typeof e.text?[e.text]:[]).join("").trim();return t.length>0?t:null}return e&&"object"==typeof e&&"text"in e&&"string"==typeof e.text?e.text.trim():null}async executeToolHandler({tool:e,toolCall:t,agent:n,agentId:r,handlerArgs:i,toolType:s,messageId:o}){let a,d,l="",u=!1;try{d=eC(i,t.function.name)}catch(n){let e=n instanceof Error?n:Error(String(n));a=e.message,u=!0,await this._internal.emitError({error:e,code:e8.TOOL_ARGUMENT_PARSE_FAILED,context:{agentId:r,toolCallId:t.id,toolName:t.function.name,rawArguments:i,toolType:s,...o?{messageId:o}:{}}})}if(await this._internal.notifySubscribers(e=>e.onToolExecutionStart?.({copilotkit:this.core,toolCallId:t.id,agentId:r,toolName:t.function.name,args:d}),"Subscriber onToolExecutionStart error:"),!a)try{let r=await e.handler(d,{toolCall:t,agent:n,signal:this._runAbortController?.signal});l=null==r?"":"string"==typeof r?r:JSON.stringify(r)}catch(n){let e=n instanceof Error?n:Error(String(n));a=e.message,await this._internal.emitError({error:e,code:e8.TOOL_HANDLER_FAILED,context:{agentId:r,toolCallId:t.id,toolName:t.function.name,parsedArgs:d,toolType:s,...o?{messageId:o}:{}}})}return a&&(l=`Error: ${a}`),await this._internal.notifySubscribers(e=>e.onToolExecutionEnd?.({copilotkit:this.core,toolCallId:t.id,agentId:r,toolName:t.function.name,result:a?"":l,error:a}),"Subscriber onToolExecutionEnd error:"),{result:l,error:a,isArgumentError:u}}async executeSpecificTool(e,t,n,r,i){if(e?.agentId&&e.agentId!==r.agentId)return!1;let s={result:"",error:void 0,isArgumentError:!1};e?.handler&&(s=await this.executeToolHandler({tool:e,toolCall:t,agent:r,agentId:i,handlerArgs:t.function.arguments,toolType:"specific",messageId:n.id}));{let i=r.messages.findIndex(e=>e.id===n.id);if(-1===i)return!1;let o=i+1;for(;o<r.messages.length&&r.messages[o]?.role==="tool";)o++;let a={id:(0,c.N4)(),role:"tool",toolCallId:t.id,content:s.result};if(r.messages.splice(o,0,a),!s.error&&e?.followUp!==!1)return!0}return!1}async executeWildcardTool(e,t,n,r,i){let s;if(e?.agentId&&e.agentId!==r.agentId)return!1;let o="";if(e?.handler){let a;try{a=eC(t.function.arguments,t.function.name)}catch(r){let e=r instanceof Error?r:Error(String(r));s=e.message,await this._internal.emitError({error:e,code:e8.TOOL_ARGUMENT_PARSE_FAILED,context:{agentId:i,toolCallId:t.id,toolName:t.function.name,rawArguments:t.function.arguments,toolType:"wildcard",messageId:n.id}})}let d={toolName:t.function.name,args:a};if(await this._internal.notifySubscribers(e=>e.onToolExecutionStart?.({copilotkit:this.core,toolCallId:t.id,agentId:i,toolName:t.function.name,args:d}),"Subscriber onToolExecutionStart error:"),!s)try{let n=await e.handler(d,{toolCall:t,agent:r});o=null==n?"":"string"==typeof n?n:JSON.stringify(n)}catch(r){let e=r instanceof Error?r:Error(String(r));s=e.message,await this._internal.emitError({error:e,code:e8.TOOL_HANDLER_FAILED,context:{agentId:i,toolCallId:t.id,toolName:t.function.name,parsedArgs:d,toolType:"wildcard",messageId:n.id}})}s&&(o=`Error: ${s}`),await this._internal.notifySubscribers(e=>e.onToolExecutionEnd?.({copilotkit:this.core,toolCallId:t.id,agentId:i,toolName:t.function.name,result:s?"":o,error:s}),"Subscriber onToolExecutionEnd error:")}{let i=r.messages.findIndex(e=>e.id===n.id);if(-1===i)return!1;let a=i+1;for(;a<r.messages.length&&r.messages[a]?.role==="tool";)a++;let d={id:(0,c.N4)(),role:"tool",toolCallId:t.id,content:o};if(r.messages.splice(a,0,d),!s&&e?.followUp!==!1)return!0}return!1}async runTool(e){let{name:t,agentId:n,parameters:r={},followUp:i=!1}=e,s=this.getTool({toolName:t,agentId:n});if(!s){let e=Error(`Tool not found: ${t}`);throw await this._internal.emitError({error:e,code:e8.TOOL_NOT_FOUND,context:{toolName:t,agentId:n}}),e}let o=n??"default",a=this._internal.getAgent(o);if(!a){let e=Error(`Agent not found: ${o}`);throw await this._internal.emitError({error:e,code:e8.AGENT_NOT_FOUND,context:{agentId:o}}),e}let d=(0,c.N4)(),l={id:d,type:"function",function:{name:t,arguments:JSON.stringify(r)}},u={id:(0,c.N4)(),role:"assistant",content:"",toolCalls:[l]};a.messages.push(u);let h={result:"",error:void 0,isArgumentError:!1};s.handler&&(h=await this.executeToolHandler({tool:s,toolCall:l,agent:a,agentId:o,handlerArgs:r,toolType:"runTool"}));let g={id:(0,c.N4)(),role:"tool",toolCallId:d,content:h.result},p=a.messages.findIndex(e=>e.id===u.id);if(-1!==p?a.messages.splice(p+1,0,g):a.messages.push(g),!h.error&&!1!==i){if("string"==typeof i&&"generate"!==i){let e={
4id:(0,c.N4)(),role:"user",content:i};a.messages.push(e)}await this._internal.waitForPendingFrameworkUpdates(),await this.runAgent({agent:a})}return{toolCallId:d,result:h.result,error:h.error}}capabilityKey(e,t){return`${t??""}\u0000${e}`}setToolEnabled(e,t,n){let r=this.capabilityKey(e,n);t?this._disabledToolKeys.delete(r):this._disabledToolKeys.add(r)}isToolEnabled(e,t){return!this._disabledToolKeys.has(this.capabilityKey(e,t))}buildFrontendTools(e){return this._tools.filter(t=>!1!==t.available&&"disabled"!==t.available&&(!t.agentId||t.agentId===e)&&this.isToolEnabled(t.name,t.agentId)).map(e=>({name:e.name,description:e.description??"",parameters:function(e){if(!e.parameters)return{...eb};let t=(0,h.q)(e.parameters,{zodToJsonSchema:(e,t)=>(0,Z.Ik)(e,t)});if(!t||"object"!=typeof t)return{...eb};let{$schema:n,...r}=t;return"string"!=typeof r.type&&(r.type="object"),("object"!=typeof r.properties||null===r.properties)&&(r.properties={}),function e(t){if(t&&"object"==typeof t){if(Array.isArray(t))return void t.forEach(e);for(let n of(void 0!==t.additionalProperties&&delete t.additionalProperties,Object.values(t)))e(n)}}(r),r}(e)}))}createAgentErrorSubscriber(e){let t=async(t,n,r={})=>{let i={...r};e.agentId&&(i.agentId=e.agentId),await this._internal.emitError({error:t,code:n,context:i})};return{onRunFailed:async({error:e})=>{await t(e,e instanceof ea?e8.AGENT_THREAD_LOCKED:e8.AGENT_RUN_FAILED_EVENT,{source:"onRunFailed"})},onRunErrorEvent:async({event:e})=>{if(this._runAbortController?.signal.aborted===!0||e?.code==="abort")return;let n=e?.rawEvent instanceof Error?e.rawEvent:e?.rawEvent?.error instanceof Error?e.rawEvent.error:void 0,r="string"==typeof e?.rawEvent?.error?e.rawEvent.error:e?.message??"Agent run error",i=n??Error(r);e?.code&&!i.code&&(i.code=e.code),await t(i,e8.AGENT_RUN_ERROR_EVENT,{source:"onRunErrorEvent",event:e,runtimeErrorCode:e?.code})}}}};let eb={type:"object",properties:{}};function eC(e,t){if(""===e||null==e)return u.v.debug(`[parseToolArguments] Tool "${t}" received empty/null/undefined arguments — defaulting to {}`),{};var n="string"==typeof e?JSON.parse(e):e;if("object"==typeof n&&null!==n&&!Array.isArray(n))return n;throw Error(`Tool arguments for ${t} parsed to non-object (${typeof n})`)}var e_=class{stateByRun=new Map;messageToRun=new Map;activeRun=new Map;agentSubscriptions=new Map;pendingContinuations=new WeakMap;constructor(e){this.core=e}initialize(){}markNextRunAsContinuation(e,t){let n=this.pendingContinuations.get(e);n||(n=new Set,this.pendingContinuations.set(e,n));let r={active:!0,expectedRunId:t,bind:e=>{r.active&&(r.expectedInput=e)},cancel:()=>{r.active&&(r.active=!1,n.delete(r),0===n.size&&this.pendingContinuations.delete(e))}};return n.add(r),r}subscribeToAgent(e){let t;if(!e.agentId)return;let n=e.agentId,r=this.agentSubscriptions.get(n);r&&(r(),this.agentSubscriptions.delete(n));let s=!1,o=!1,a=e=>({...e,runId:t??e.runId}),{unsubscribe:d}=e.subscribe({onRunStartedEvent:({input:n,state:r})=>{if(s)return;let d=[...this.pendingContinuations.get(e)??[]].find(e=>e.expectedInput===n);d?.cancel(),t=!o||n.runId!==t||d||void 0!==n.resume||Object.prototype.hasOwnProperty.call(n.forwardedProps?.command??{},"resume")?d?.expectedRunId??n.runId:(0,i.N4)(),o=!1,this.handleRunStarted(e,a(n),r)},onRunFinishedEvent:({input:t,state:n})=>{s||(o=!0,this.handleRunFinished(e,a(t),n))},onRunErrorEvent:({input:t,state:n})=>{s||(o=!0,this.handleRunFinished(e,a(t),n))},onStateSnapshotEvent:({event:t,input:n,state:r})=>{s||this.handleStateSnapshot(e,t,a(n),r)},onStateDeltaEvent:({event:t,input:n,state:r})=>{s||this.handleStateDelta(e,t,a(n),r)},onMessagesSnapshotEvent:({event:t,input:n,messages:r})=>{s||this.handleMessagesSnapshot(e,t,a(n),r)},onNewMessage:({message:t,input:n})=>{s||this.handleNewMessage(e,t,n?a(n):void 0)}});this.agentSubscriptions.set(n,()=>{s=!0,this.pendingContinuations.delete(e),d()})}unsubscribeFromAgent(e){let t=this.agentSubscriptions.get(e);t&&(t(),this.agentSubscriptions.delete(e))}getStateByRun(e,t,n){let r=this.stateByRun.get(e)?.get(t)?.get(n);if(r)return JSON.parse(JSON.stringify(r))}getRunIdForMessage(e,t,n){return this.messageToRun.get(e)?.get(t)?.get(n)}getStatesForThread(e,t){return this.stateByRun.get(e)?.get(t)??new Map}getRunIdsForThread(e,t){let n=this.stateByRun.get(e)?.get(t);return n?Array.from(n.keys()):[]}handleRunStarted(e,t,n){if(!e.agentId)return;let{threadId:r,runId:i}=t;this.activeRun.set(`${e.agentId}:${r}`,i),n&&Object.keys(n).length>0&&this.saveState(e.agentId,r,i,n)}handleRunFinished(e,t,n){if(!e.agentId)return;let{threadId:r,runId:i}=t;this.activeRun.delete(`${e.agentId}:${r}`),n&&Object.keys(n).length>0&&this.saveState(e.agentId,r,i,n)}handleStateSnapshot(e,t,n,r){if(!e.agentId)return;let{threadId:i,runId:s}=n,o={...r,...t.snapshot};this.saveState(e.agentId,i,s,o)}handleStateDelta(e,t,n,r){if(!e.agentId)return;let{threadId:i,runId:s}=n;this.saveState(e.agentId,i,s,r)}handleMessagesSnapshot(e,t,n,r){if(!e.agentId)return;let{threadId:i,runId:s}=n;for(let n of t.messages)this.associateMessageWithRun(e.agentId,i,n.id,s)}handleNewMessage(e,t,n){if(!e.agentId)return;if(!n){let n=e.threadId??"",r=this.activeRun.get(`${e.agentId}:${n}`);r&&this.associateMessageWithRun(e.agentId,n,t.id,r);return}let{threadId:r,runId:i}=n;this.associateMessageWithRun(e.agentId,r,t.id,i)}saveState(e,t,n,r){this.stateByRun.has(e)||this.stateByRun.set(e,new Map);let i=this.stateByRun.get(e);i.has(t)||i.set(t,new Map),i.get(t).set(n,JSON.parse(JSON.stringify(r)))}associateMessageWithRun(e,t,n,r){this.messageToRun.has(e)||this.messageToRun.set(e,new Map);let i=this.messageToRun.get(e);i.has(t)||i.set(t,new Map),i.get(t).set(n,r)}clearAgentState(e){this.stateByRun.delete(e),this.messageToRun.delete(e)}clearThreadState(e,t){this.stateByRun.get(e)?.delete(t),this.messageToRun.get(e)?.delete(t)}},eR=class{_stores={};_snapshot=null;constructor(e){this.core=e}register(e,t){if(e in this._stores){let t=this._stores[e];delete this._stores[e],this._snapshot=null,this.notifyUnregistered(e,t).catch(e=>{console.error("ThreadStoreRegistry notifyUnregistered failed:",e)})}this._stores[e]=t,this._snapshot=null,this.notifyRegistered(e,t).catch(e=>{console.error("ThreadStoreRegistry notifyRegistered failed:",e)})}unregister(e){if(!(e in this._stores))return;let t=this._stores[e];delete this._stores[e],this._snapshot=null,this.notifyUnregistered(e,t).catch(e=>{console.error("ThreadStoreRegistry notifyUnregistered failed:",e)})}get(e){return this._stores[e]}getAll(){return null===this._snapshot&&(this._snapshot=Object.freeze({...this._stores})),this._snapshot}async notifyRegistered(e,t){await this.core.notifySubscribers(n=>n.onThreadStoreRegistered?.({copilotkit:this.core,agentId:e,store:t}),"Subscriber onThreadStoreRegistered error:")}async notifyUnregistered(e,t){await this.core.notifySubscribers(n=>n.onThreadStoreUnregistered?.({copilotkit:this.core,agentId:e,prevStore:t}),"Subscriber onThreadStoreUnregistered error:")}};let eE={boot:"@@micro-redux/boot",init:"@@micro-redux/init",stop:"@@micro-redux/stop"},eS={type:eE.boot};function ev(e,t){let n=(...n)=>({...t(...n),type:e});return n.type=e,n.match=t=>t.type===e,n}function eT(){return{kind:"props"}}function eA(){return{kind:"empty"}}function ew(e,t){let n={};for(let r of Object.keys(t)){let i=t[r];
4if(!i)continue;let s=`[${e}] ${r}`;if("props"===i.kind){n[r]=ev(s,e=>({...e}));continue}n[r]=ev(s,()=>({}))}return n}function eM(...e){if(e.length<2)throw Error("on requires at least one action creator and one reducer");let t=e[e.length-1];return{creators:e.slice(0,-1),reducer:t}}function ex(e,...t){let n=new Map;for(let e of t)for(let t of e.creators){let r=n.get(t.type)??[];r.push(e.reducer),n.set(t.type,r)}return(t,r)=>{let i=t??e,s=n.get(r.type);if(!s||0===s.length)return i;let o=i;for(let e of s)o=e(o,r);return o}}function eF(...e){let t;if(1===e.length){let t,n,r=e[0],i=!1;return e=>(i&&e===t||(t=e,n=r(e),i=!0),n)}let n=e[e.length-1],r=e.slice(0,-1),i=!1,s=[];return e=>{let o=r.map(t=>t(e));return i&&o.length===s.length&&o.every((e,t)=>e===s[t])||(s=o,t=n(...o),i=!0),t}}function eU(...e){if(0===e.length)throw Error("ofType requires at least one action creator");let t=new Set(e.map(e=>e.type));return e=>e.pipe((0,j.p)(e=>t.has(e.type)))}function ek(e,t={}){return!1===t.dispatch?{run:e,dispatch:!1}:{run:e,dispatch:!0}}function eO(e){let t=e.reducer,n=e.effects??[],r=!1,i=!1,s=new w.yU,o=t(void 0,eS),a=new M.t(o),d=new C.B,l=e=>{if(r)throw Error("Store is in a failed state due to an effect error");o=t(o,e),a.next(o),d.next(e)},u=e=>{r||(r=!0,i=!1,s.unsubscribe(),s=new w.yU,d.error(e),a.error(e))};return{dispatch(e){l(e)},getState:()=>o,get state$(){return a.asObservable()},get actions$(){return d.asObservable()},select:e=>a.asObservable().pipe(t=>t.pipe((0,B.T)(e),(0,W.F)())),init(){if(!r&&!i){for(let e of(i=!0,n)){let t=d.asObservable().pipe((0,F.Q)(x.$)),n=a.asObservable();if(e.dispatch){let i=e.run(t,n).subscribe({next:e=>{r||l(e)},error:e=>{u(e)}});s.add(i);continue}let i=e.run(t,n).subscribe({error:e=>{u(e)}});s.add(i)}r||l({type:eE.init})}},stop(){!r&&i&&(l({type:eE.stop}),s.unsubscribe(),s=new w.yU,i=!1)}}}let e$=Object.freeze({MEMORY_LIST_FAILED:{code:"MEMORY_LIST_FAILED",category:"dependency",retryable:!0,message:"Failed to fetch memories",docsPath:"docs/errors/memory.md#memory_list_failed"},MEMORY_RECALL_FAILED:{code:"MEMORY_RECALL_FAILED",category:"dependency",retryable:!0,message:"Failed to recall memories",docsPath:"docs/errors/memory.md#memory_recall_failed"},MEMORY_CREDENTIALS_FAILED:{code:"MEMORY_CREDENTIALS_FAILED",category:"dependency",retryable:!0,message:"Failed to fetch memory subscribe credentials",docsPath:"docs/errors/memory.md#memory_credentials_failed"},MEMORY_MUTATION_FAILED:{code:"MEMORY_MUTATION_FAILED",category:"dependency",retryable:!0,message:"Memory mutation request failed",docsPath:"docs/errors/memory.md#memory_mutation_failed"},MEMORY_REQUEST_TIMEOUT:{code:"MEMORY_REQUEST_TIMEOUT",category:"dependency",retryable:!0,message:"Request timed out",docsPath:"docs/errors/memory.md#memory_request_timeout"}});var eN=class e extends Error{code;category;retryable;constructor(t,n){let r=e$[t];super(n?.message??r.message,{cause:n?.cause}),this.name="MemoryError",this.code=t,this.category=r.category,this.retryable=n?.retryable??r.retryable,Object.setPrototypeOf(this,e.prototype)}};function eq(e){return!(Number.isInteger(e)&&e>=400&&e<=499)}let ej="/memories",eL=new Set([404,422,501]);var eD=class extends Error{};let eP=Object.freeze({memories:Object.freeze([]),isLoading:!1,inFlightMutationCount:0,error:null,context:null,sessionId:0,available:!0,realtimeStatus:"connecting"}),eH=ew("Memory Adapter",{started:eA(),stopped:eA(),contextChanged:eT(),addRequested:eT(),updateRequested:eT(),removeRequested:eT()}),eJ=ew("Memory REST",{listRequested:eT(),listSucceeded:eT(),listFailed:eT(),listUnavailable:eT(),mutationFinished:eT(),credentialsRequested:eT(),credentialsSucceeded:eT(),credentialsFailed:eT(),credentialsUnavailable:eT()}),ez=ew("Memory Domain",{memoryUpserted:eT(),memoryInvalidated:eT(),realtimeConnecting:eT(),realtimeConnected:eT(),realtimeUnavailable:eT()});function eG(e,t){var n;return"invalidated"===e.operation?ez.memoryInvalidated({sessionId:t,memoryId:e.invalidated.id}):ez.memoryUpserted({sessionId:t,memory:{id:(n=e.memory).id,kind:n.kind,scope:n.scope,content:n.content,sourceThreadIds:n.sourceThreadIds,invalidatedAt:n.invalidatedAt}})}let eB=ex(eP,eM(eH.contextChanged,(e,{context:t})=>({...e,context:t,sessionId:e.sessionId+1,memories:[],isLoading:!!t,inFlightMutationCount:0,error:null,available:!0,realtimeStatus:"connecting"})),eM(eH.stopped,e=>({...e,memories:[],isLoading:!1,inFlightMutationCount:0,error:null,available:!0,realtimeStatus:"connecting"})),eM(eJ.listRequested,(e,{sessionId:t})=>t===e.sessionId&&e.context?{...e,isLoading:!0,error:null,available:!0}:e),eM(eJ.listFailed,(e,{sessionId:t,error:n})=>t!==e.sessionId?e:{...e,isLoading:!1,error:n}),eM(eJ.listUnavailable,(e,{sessionId:t})=>t!==e.sessionId?e:{...e,memories:[],isLoading:!1,error:null,available:!1}),eM(eH.addRequested,eH.updateRequested,eH.removeRequested,e=>({...e,inFlightMutationCount:e.inFlightMutationCount+1})),eM(eJ.mutationFinished,(e,{outcome:t})=>t.sessionId!==e.sessionId?e:{...e,inFlightMutationCount:Math.max(0,e.inFlightMutationCount-1),error:t.ok?null:t.error}),eM(eJ.listSucceeded,(e,{sessionId:t,memories:n})=>t!==e.sessionId?e:{...e,memories:n,isLoading:!1,error:null,available:!0}),eM(ez.memoryUpserted,(e,{sessionId:t,memory:n})=>t!==e.sessionId?e:{...e,memories:function(e,t){let n=e.findIndex(e=>e.id===t.id);if(-1===n)return[t,...e];let r=[...e];return r[n]=t,r}(e.memories,n)}
4),eM(ez.memoryInvalidated,(e,{sessionId:t,memoryId:n})=>t!==e.sessionId?e:{...e,memories:e.memories.filter(e=>e.id!==n)}),eM(ez.realtimeConnecting,(e,{sessionId:t})=>t!==e.sessionId?e:{...e,realtimeStatus:"connecting"}),eM(ez.realtimeConnected,(e,{sessionId:t})=>t!==e.sessionId?e:{...e,realtimeStatus:"connected"}),eM(ez.realtimeUnavailable,(e,{sessionId:t})=>t!==e.sessionId?e:{...e,realtimeStatus:"unavailable"})),eW=eF(e=>e.memories),eK=eF(e=>e.isLoading),eV=eF(e=>e.error);eF(e=>e.inFlightMutationCount>0);let eQ=eF(e=>e.available),eY=eF(e=>e.realtimeStatus),eZ="memory_metadata";function eX(e,t){return(0,X.$)(e,t)}let e0=new Set(["topical","episodic","operational"]),e1=new Set(["user","project"]);function e4(e){return{content:e.content,kind:e.kind,...void 0!==e.scope?{scope:e.scope}:{},sourceThreadIds:e.sourceThreadIds??[]}}function e2(e,t,n){let r="add"===n.kind?"POST":"update"===n.kind?"PATCH":"DELETE",i="add"===n.kind?ej:`${ej}/${encodeURIComponent(n.id)}`;return(0,p.v)(()=>eX(`${t.runtimeUrl}${i}`,{selector:async e=>{if(!e.ok)throw new eN("MEMORY_MUTATION_FAILED",{message:`Request failed: ${e.status}`,retryable:eq(e.status)});return"remove"===n.kind?null:await e.json()},fetch:e.fetch,method:r,headers:{...t.headers,"Content-Type":"application/json"},body:"remove"===n.kind?void 0:JSON.stringify(n.body)}).pipe((0,K.w)({first:15e3,with:()=>{throw new eN("MEMORY_REQUEST_TIMEOUT")}}),(0,N.Z)(e=>(0,f.of)(...function(e,t){let{requestId:n,sessionId:r}=e;if("remove"===e.kind)return[ez.memoryInvalidated({sessionId:r,memoryId:e.id}),eJ.mutationFinished({outcome:{requestId:n,sessionId:r,ok:!0,memory:null}})];let i=t&&"object"==typeof t?"string"!=typeof t.id||0===t.id.length?Error("memory mutation response missing/invalid id"):"string"==typeof t.kind&&e0.has(t.kind)?"string"==typeof t.scope&&e1.has(t.scope)?"string"!=typeof t.content?Error("memory mutation response missing/invalid content"):Array.isArray(t.sourceThreadIds)&&t.sourceThreadIds.every(e=>
4"string"==typeof e)?null!==t.invalidatedAt&&"string"!=typeof t.invalidatedAt?Error("memory mutation response missing/invalid invalidatedAt"):null:Error("memory mutation response missing/invalid sourceThreadIds"):Error("memory mutation response missing/invalid scope"):Error("memory mutation response missing/invalid kind"):Error("memory mutation response missing/invalid body");if(i)return[eJ.mutationFinished({outcome:{requestId:n,sessionId:r,ok:!1,error:i}})];let s={id:t.id,kind:t.kind,scope:t.scope,content:t.content,sourceThreadIds:t.sourceThreadIds,invalidatedAt:t.invalidatedAt};if("update"===e.kind){let e=t.retiredId;return"string"!=typeof e||0===e.length?[eJ.mutationFinished({outcome:{requestId:n,sessionId:r,ok:!1,error:Error("supersede response missing retiredId")}})]:[ez.memoryInvalidated({sessionId:r,memoryId:e}),ez.memoryUpserted({sessionId:r,memory:s}),eJ.mutationFinished({outcome:{requestId:n,sessionId:r,ok:!0,memory:s}})]}return[ez.memoryUpserted({sessionId:r,memory:s}),eJ.mutationFinished({outcome:{requestId:n,sessionId:r,ok:!0,memory:s}})]}(n,e))),(0,D.W)(e=>(0,f.of)(eJ.mutationFinished({outcome:{requestId:n.requestId,sessionId:n.sessionId,ok:!1,error:e instanceof Error?e:Error(String(e))}})))))}let e3=eW,e5=eK,e7=eV,e6=eQ,e9=eY,e8=function(e){return e.RUNTIME_INFO_FETCH_FAILED="runtime_info_fetch_failed",e.AGENT_CONNECT_FAILED="agent_connect_failed",e.AGENT_RUN_FAILED="agent_run_failed",e.AGENT_RUN_FAILED_EVENT="agent_run_failed_event",e.AGENT_RUN_ERROR_EVENT="agent_run_error_event",e.TOOL_ARGUMENT_PARSE_FAILED="tool_argument_parse_failed",e.TOOL_HANDLER_FAILED="tool_handler_failed",e.TOOL_NOT_FOUND="tool_not_found",e.AGENT_NOT_FOUND="agent_not_found",e.AGENT_THREAD_LOCKED="agent_thread_locked",e.TRANSCRIPTION_FAILED="transcription_failed",e.TRANSCRIPTION_SERVICE_NOT_CONFIGURED="transcription_service_not_configured",e.TRANSCRIPTION_INVALID_AUDIO="transcription_invalid_audio",e.TRANSCRIPTION_RATE_LIMITED="transcription_rate_limited",e.TRANSCRIPTION_AUTH_FAILED="transcription_auth_failed",e.TRANSCRIPTION_NETWORK_ERROR="transcription_network_error",e.SUBSCRIBER_CALLBACK_FAILED="subscriber_callback_failed",e}({}),te=new Set(["onMessagesChanged","onStateChanged","onRunInitialized","onRunFinalized","onRunFailed","onRunErrorEvent"]),tt=function(e){return e.Disconnected="disconnected",e.Connected="connected",e.Connecting="connecting",e.Error="error",e}({});function tn(e){return Object.fromEntries(Object.entries(e).filter(e=>null!=e[1]))}var tr=class{_headers;_credentials;_properties;_defaultThrottleMs;_debug;subscribers=new Set;agentRegistry;contextStore;suggestionEngine;runHandler;stateManager;threadStoreRegistry;_memoryStore;previousAgentIds=new Set;constructor({runtimeUrl:e,runtimeTransport:t="auto",deferInitialConnection:n=!1,headers:r={},credentials:i,properties:s={},agents__unsafe_dev_only:o={},tools:a=[],suggestionsConfig:d=[],debug:l}){this._headers=tn(r),this._credentials=i,this._properties=s,this._debug=l,this.agentRegistry=new eg(this),this.contextStore=new ep(this),this.suggestionEngine=new em(this),this.runHandler=new eI(this),this.stateManager=new e_(this),this.threadStoreRegistry=new eR(this),this.agentRegistry.initialize(o),this.runHandler.initialize(a),this.suggestionEngine.initialize(d),this.stateManager.initialize(),this.agentRegistry.setRuntimeTransport(t),this.agentRegistry.setRuntimeUrl(e,{deferConnection:n}),this.previousAgentIds=new Set(Object.keys(o)),this.subscribe({onRuntimeConnectionStatusChanged:()=>{this._memoryStore&&this.syncMemoryContext()},onAgentsChanged:({agents:e})=>{Object.values(e).forEach(e=>{e.agentId&&this.stateManager.subscribeToAgent(e)});let t=new Set(Object.keys(e));for(let e of Object.keys(this.threadStoreRegistry.getAll()))if(this.previousAgentIds.has(e)&&!t.has(e))try{this.threadStoreRegistry.unregister(e)}catch(t){console.error(`CopilotKitCore.onAgentsChanged: threadStoreRegistry.unregister failed for "${e}":`,t)}for(let e of this.previousAgentIds)if(!t.has(e))try{this.stateManager.unsubscribeFromAgent(e)}catch(t){console.error(`CopilotKitCore.onAgentsChanged: stateManager.unsubscribeFromAgent failed for "${e}":`,t)}this.previousAgentIds=t}})}async notifySubscribers(e,t){await Promise.all(Array.from(this.subscribers).map(async n=>{try{await e(n)}catch(e){console.error(t,e)}}))}async emitError({error:e,code:t,context:n={}}){await this.notifySubscribers(r=>r.onError?.({copilotkit:this,error:e,code:t,context:n}),"Subscriber onError error:")}logAndEmitError(e,t,n="error"){console[n](e,t.error),this.emitError(t).catch(t=>{console.error(e+" — emitError itself failed:",t)})}get context(){return this.contextStore.context}get agents(){return this.agentRegistry.agents}get tools(){return this.runHandler.tools}get catalogComponents(){return this.runHandler.catalogComponents}get runtimeUrl(){return this.agentRegistry.runtimeUrl}setRuntimeUrl(e){this.agentRegistry.setRuntimeUrl(e)}connect(){this.agentRegistry.connectRuntime()}
4get runtimeTransport(){return this.agentRegistry.runtimeTransport}setRuntimeTransport(e){this.agentRegistry.setRuntimeTransport(e)}get runtimeVersion(){return this.agentRegistry.runtimeVersion}get headers(){return this._headers}get credentials(){return this._credentials}get properties(){return this._properties}get defaultThrottleMs(){return this._defaultThrottleMs}setDefaultThrottleMs(e){if(void 0!==e&&(!Number.isFinite(e)||e<0))return void this.logAndEmitError(`CopilotKitCore.setDefaultThrottleMs: value must be a non-negative finite number or undefined, got ${e}. Keeping current value (${this._defaultThrottleMs}).`,{error:Error(`setDefaultThrottleMs: invalid value (${e}), keeping current value (${this._defaultThrottleMs})`),code:e8.SUBSCRIBER_CALLBACK_FAILED,context:{value:e,currentValue:this._defaultThrottleMs}});this._defaultThrottleMs=e}get debug(){return this._debug}setDebug(e){this._debug=e}get runtimeConnectionStatus(){return this.agentRegistry.runtimeConnectionStatus}get audioFileTranscriptionEnabled(){return this.agentRegistry.audioFileTranscriptionEnabled}get runtimeMode(){return this.agentRegistry.runtimeMode}get intelligence(){return this.agentRegistry.intelligence}get threadEndpoints(){return this.agentRegistry.threadEndpoints}get suggestions(){return this.agentRegistry.suggestions}get inspectorMetadata(){return this.agentRegistry.inspectorMetadata}async refreshInspectorMetadata(){await this.agentRegistry.refreshInspectorMetadata()}get a2uiEnabled(){return this.agentRegistry.a2uiEnabled}get a2uiAgents(){return this.agentRegistry.a2uiAgents}get openGenerativeUIEnabled(){return this.agentRegistry.openGenerativeUIEnabled}get licenseStatus(){return this.agentRegistry.licenseStatus}get telemetryDisabled(){return this.agentRegistry.telemetryDisabled}setHeaders(e){this._headers=tn(e),this._memoryStore&&this.syncMemoryContext(),this.agentRegistry.applyHeadersToAgents(this.agentRegistry.agents),this.agentRegistry.handleHeadersChanged(),this.notifySubscribers(e=>e.onHeadersChanged?.({copilotkit:this,headers:this.headers}),"Subscriber onHeadersChanged error:")}setCredentials(e){this._credentials=e,this.agentRegistry.applyCredentialsToAgents(this.agentRegistry.agents),this.agentRegistry.handleCredentialsChanged()}setProperties(e){this._properties=e,this.notifySubscribers(e=>e.onPropertiesChanged?.({copilotkit:this,properties:this.properties}),"Subscriber onPropertiesChanged error:")}setAgents__unsafe_dev_only(e){this.agentRegistry.setAgents__unsafe_dev_only(e)}addAgent__unsafe_dev_only(e){this.agentRegistry.addAgent__unsafe_dev_only(e)}removeAgent__unsafe_dev_only(e){this.agentRegistry.removeAgent__unsafe_dev_only(e)}registerProxiedAgent(e){return this.agentRegistry.registerProxiedAgent(e)}getAgent(e){return this.agentRegistry.getAgent(e)}applyHeadersToAgent(e){this.agentRegistry.applyHeadersToAgent(e)}addContext(e){return this.contextStore.addContext(e)}removeContext(e){this.contextStore.removeContext(e)}getContextForAgent(e){return this.contextStore.getContextForAgent(e)}registerThreadStore(e,t){this.threadStoreRegistry.register(e,t)}unregisterThreadStore(e){this.threadStoreRegistry.unregister(e)}getThreadStore(e){return this.threadStoreRegistry.get(e)}getThreadStores(){return this.threadStoreRegistry.getAll()}getMemoryStore(){return this.ensureMemoryStore()}ensureMemoryStore(){return this._memoryStore||(this._memoryStore=function(e){let t=0,n=()=>(t+=1,`memory-request-${t}`),r=ek((e,t)=>e.pipe(eU(eH.contextChanged),(0,V.E)(t),(0,j.p)(([,e])=>!!e.context),(0,B.T)(([,e])=>eJ.listRequested({sessionId:e.sessionId})))),i=ek((e,t)=>e.pipe(eU(eH.contextChanged),(0,V.E)(t),(0,j.p)(([,e])=>!!e.context),(0,B.T)(([,e])=>eJ.credentialsRequested({sessionId:e.sessionId})))),s=ek((t,n)=>t.pipe(eU(eJ.credentialsRequested),(0,R.n)(r=>n.pipe((0,B.T)(e=>e.context),(0,j.p)(e=>!!e),(0,$.s)(1),(0,B.T)(e=>({action:r,context:e})),(0,L.Q)(t.pipe(eU(eH.contextChanged,eH.stopped))),(0,R.n)(({action:t,context:n})=>{var r;return r=t.sessionId,(0,p.v)(()=>eX(`${n.runtimeUrl}/memories/subscribe`,{selector:async e=>{if(!e.ok){if(eL.has(e.status))throw new eD(String(e.status));throw new eN("MEMORY_CREDENTIALS_FAILED",{message:`Failed to fetch memory subscribe credentials: ${e.status}`,retryable:eq(e.status)})}return e.json()},fetch:e.fetch,method:"POST",headers:{...n.headers,"Content-Type":"application/json"},body:JSON.stringify({})}).pipe((0,K.w)({first:15e3,with:()=>{throw new eN("MEMORY_REQUEST_TIMEOUT")}}),(0,B.T)(e=>{let t="string"==typeof e.joinToken&&e.joinToken.length>0&&"string"==typeof e.joinCode&&e.joinCode.length>0,n="string"==typeof e.projectJoinToken&&e.projectJoinToken.length>0&&"string"==typeof e.projectJoinCode&&e.projectJoinCode.length>0;if(!t&&!n)throw Error("missing memory realtime credentials");return eJ.credentialsSucceeded({sessionId:r,...t?{joinToken:e.joinToken,joinCode:e.joinCode}:{},...n?{projectJoinToken:e.projectJoinToken,projectJoinCode:e.projectJoinCode}:{}})}),(0,D.W)(e=>e instanceof eD?(0,f.of)(eJ.credentialsUnavailable({sessionId:r})):(0,f.of)(eJ.credentialsFailed({sessionId:r,error:e instanceof Error?e:Error(String(e))})))))}))))),a=eO({reducer:eB,effects:[r,i,ek((t,n)=>t.pipe(eU(eJ.listRequested),(0,R.n)(r=>n.pipe((0,B.T)(e=>e.context),(0,j.p)(e=>
4!!e),(0,$.s)(1),(0,B.T)(e=>({action:r,context:e})),(0,L.Q)(t.pipe(eU(eH.contextChanged,eH.stopped))),(0,R.n)(({action:t,context:n})=>{var r;return r=t.sessionId,(0,p.v)(()=>{let t=n.includeInvalidated?"?includeInvalidated=true":"";return eX(`${n.runtimeUrl}${ej}${t}`,{selector:e=>{if(!e.ok){if(eL.has(e.status))throw new eD(String(e.status));throw new eN("MEMORY_LIST_FAILED",{message:`Failed to fetch memories: ${e.status}`,retryable:eq(e.status)})}return e.json()},fetch:e.fetch,method:"GET",headers:{...n.headers}}).pipe((0,K.w)({first:15e3,with:()=>{throw new eN("MEMORY_REQUEST_TIMEOUT")}}),(0,B.T)(e=>eJ.listSucceeded({sessionId:r,memories:e.memories})),(0,D.W)(e=>e instanceof eD?(0,f.of)(eJ.listUnavailable({sessionId:r})):(0,f.of)(eJ.listFailed({sessionId:r,error:e instanceof Error?e:Error(String(e))}))))})}))))),s,ek((t,n)=>t.pipe(eU(eH.addRequested,eH.updateRequested,eH.removeRequested),(0,V.E)(n),(0,N.Z)(([t,n])=>{let r=n.context,i=n.sessionId;return r?.runtimeUrl?eH.addRequested.match(t)?e2(e,r,{requestId:t.requestId,sessionId:i,kind:"add",body:e4(t.input)}):eH.updateRequested.match(t)?e2(e,r,{requestId:t.requestId,sessionId:i,kind:"update",id:t.id,body:e4(t.changes)}):e2(e,r,{requestId:t.requestId,sessionId:i,kind:"remove",id:t.id}):(0,f.of)(eJ.mutationFinished({outcome:{requestId:t.requestId,sessionId:i,ok:!1,error:Error("Runtime URL is not configured")}}))}))),ek((e,t)=>e.pipe(eU(eJ.credentialsSucceeded),(0,V.E)(t),(0,j.p)(([e,t])=>e.sessionId===t.sessionId&&!!t.context?.wsUrl),(0,R.n)(([t,n])=>{let r=n.context,{joinToken:i,joinCode:s,projectJoinToken:a,projectJoinCode:d}=t,l=i??a,u=i&&s?`user_meta:memories:${s}`:`project_meta:memories:${d}`,c=t.sessionId,h=e.pipe(eU(eH.contextChanged,eH.stopped));return(0,p.v)(()=>{let e=ee({url:r.wsUrl,options:{params:{join_token:l},reconnectAfterMs:(0,o.HJ)(100,1e4),rejoinAfterMs:(0,o.HJ)(1e3,3e4)}}).pipe((0,k.t)({bufferSize:1,refCount:!0})),n=et({socket$:e,topic:u}).pipe((0,k.t)({bufferSize:1,refCount:!0})),g=eo(es(e).pipe((0,H.u)()),5).pipe((0,D.W)(()=>(console.warn("[memory] WebSocket failed after 5 attempts, giving up"),(0,f.of)(void 0))),(0,H.u)()),p=g.pipe((0,B.T)(()=>ez.realtimeUnavailable({sessionId:c}))),m=n.pipe((0,R.n)(({channel:e})=>en(e,eZ)),(0,B.T)(e=>eG(e,t.sessionId))),y=ei(n).pipe((0,Q.$)((0,f.of)(ez.realtimeConnected({sessionId:c}))),(0,D.W)(e=>(console.warn(`[memory] failed to join ${u}`,e),(0,f.of)(ez.realtimeUnavailable({sessionId:c}))))),b=i&&s&&a&&d?((e,t)=>{let n=et({socket$:ee({url:r.wsUrl,options:{params:{join_token:e},reconnectAfterMs:(0,o.HJ)(100,1e4),rejoinAfterMs:(0,o.HJ)(1e3,3e4)}}).pipe((0,k.t)({bufferSize:1,refCount:!0})),topic:t}).pipe((0,k.t)({bufferSize:1,refCount:!0}));return(0,E.h)(n.pipe((0,R.n)(({channel:e})=>en(e,eZ)),(0,B.T)(e=>eG(e,c))),ei(n).pipe((0,D.W)(e=>(console.warn(`[memory] failed to join ${t}`,e),I.w))))})(a,`project_meta:memories:${d}`):I.w;return(0,E.h)((0,f.of)(ez.realtimeConnecting({sessionId:c})),m,y,b,p).pipe((0,L.Q)((0,E.h)(h,g.pipe((0,F.Q)(x.$)))),(0,O.j)(()=>{}))})})))]});function d(e,t){let{requestId:n}=e,r=(0,U._)((0,E.h)(a.actions$.pipe(eU(eJ.mutationFinished),(0,j.p)(e=>e.outcome.requestId===n),(0,B.T)(e=>e.outcome)),a.actions$.pipe(eU(eH.stopped),(0,B.T)(()=>({requestId:n,sessionId:a.getState().sessionId,ok:!1,error:Error("Memory store stopped before mutation completed")})))).pipe((0,$.s)(1))).then(e=>{if(!e.ok)throw e.error;return t(e)});return a.dispatch(e),r}return{start(){a.init(),a.dispatch(eH.started())},stop(){a.dispatch(eH.stopped()),a.stop()},setContext(e){a.dispatch(eH.contextChanged({context:e}))},refresh(){let{sessionId:e,context:t}=a.getState();if(!t)return Promise.resolve();let n=(0,U._)((0,E.h)(a.actions$.pipe(eU(eJ.listSucceeded,eJ.listFailed,eJ.listUnavailable),(0,j.p)(t=>t.sessionId===e)),a.actions$.pipe(eU(eH.stopped)),a.actions$.pipe(eU(eH.contextChanged))).pipe((0,$.s)(1))).then(e=>{if(eJ.listFailed.match(e))throw e.error;if(eH.stopped.match(e))throw Error("Memory store stopped before refresh completed");if(eH.contextChanged.match(e))return});return a.dispatch(eJ.listRequested({sessionId:e})),n},recall(t,n){let{context:r}=a.getState();if(!r?.runtimeUrl)return Promise.reject(Error("Runtime URL is not configured"));let i={query:t};return n?.limit!==void 0&&(i.limit=n.limit),n?.scope!==void 0&&(i.scope=n.scope),(0,U._)(eX(`${r.runtimeUrl}/memories/recall`,{selector:async e=>{if(!e.ok)throw new eN("MEMORY_RECALL_FAILED",{message:`Failed to recall memories: ${e.status}`,retryable:eq(e.status)});return await e.json()},fetch:e.fetch,method:"POST",headers:{...r.headers,"Content-Type":"application/json"},body:JSON.stringify(i)}).pipe((0,K.w)({first:15e3,with:()=>{throw new eN("MEMORY_REQUEST_TIMEOUT")}}),(0,B.T)(e=>(e.memories??[]).map(e=>({id:e.id,kind:e.kind,scope:e.scope,content:e.content,sourceThreadIds:e.sourceThreadIds,invalidatedAt:e.invalidatedAt,..."number"==typeof e.score?{score:e.score}:{}})))))},addMemory:e=>d(eH.addRequested({requestId:n(),input:e}),e=>{if(null==e.memory)throw Error("add resolved without a memory");return e.memory}),updateMemory:(e,t)=>d(eH.updateRequested({requestId:n(),id:e,changes:t}),e=>{if(null==e.memory)throw Error("update resolved without a memory");return e.memory}),removeMemory:e=>d(eH.removeRequested({requestId:n(),id:e}),()=>void 0),getState:()=>a.getState(),getServerState:()=>eP,select:a.select.bind(a)}}({fetch:globalThis.fetch.bind(globalThis)}),this._memoryStore.start(),this.syncMemoryContext()),this._memoryStore}syncMemoryContext(){this._memoryStore&&(this.runtimeConnectionStatus===tt.Connected&&this.intelligence?.wsUrl&&this.runtimeUrl?this._memoryStore.setContext({runtimeUrl:this.runtimeUrl,wsUrl:this.intelligence.wsUrl,headers:{...this.headers}}):this._memoryStore.setContext(null))}addSuggestionsConfig(e){return this.suggestionEngine.addSuggestionsConfig(e)}removeSuggestionsConfig(e){this.suggestionEngine.removeSuggestionsConfig(e)}reloadSuggestions(e){this.suggestionEngine.reloadSuggestions(e)}clearSuggestions(e){this.suggestionEngine.clearSuggestions(e)}getSuggestions(e){return this.suggestionEngine.getSuggestions(e)}addTool(e){this.runHandler.addTool(e)}removeTool(e,t){this.runHandler.removeTool(e,t)}getTool(e){return this.runHandler.getTool(e)}setTools(e){this.runHandler.setTools(e)}setToolEnabled(e,t,n){this.runHandler.setToolEnabled(e,t,n)}isToolEnabled(e,t){return this.runHandler.isToolEnabled(e,t)}setCatalogComponents(e){this.runHandler.setCatalogComponents(e),this.notifySubscribers(e=>e.onCatalogComponentsChanged?.({copilotkit:this,catalogComponents:this.runHandler.catalogComponents}),"Subscriber onCatalogComponentsChanged error:")}setCatalogComponentEnabled(e,t){this.runHandler.setCatalogComponentEnabled(e,t),this.notifySubscribers(e=>e.onCatalogComponentsChanged?.({copilotkit:this,catalogComponents:this.runHandler.catalogComponents}),"Subscriber onCatalogComponentsChanged error:")}isCatalogComponentEnabled(e){return this.runHandler.isCatalogComponentEnabled(e)}subscribe(e){return this.subscribers.add(e),{unsubscribe:()=>{this.subscribers.delete(e)}}}subscribeToAgentWithOptions(e,t,n){let i=n?.throttleMs??this._defaultThrottleMs??0,s=0;if(!Number.isFinite(i)||i<0){let t=n?.throttleMs!==void 0?"throttleMs":"defaultThrottleMs";this.logAndEmitError(`CopilotKitCore.subscribeToAgentWithOptions: ${t} must be a non-negative finite number, got ${i}. Falling back to unthrottled.`,{error:Error(`subscribeToAgentWithOptions: invali
4d ${t} (${i}), falling back to unthrottled`),code:e8.SUBSCRIBER_CALLBACK_FAILED,context:{agentId:e.agentId,source:t,value:i}})}else s=i;let o=e.agentId||"(unknown agent)",a=(t,n,...r)=>{let i=(n,r)=>{this.logAndEmitError(`CopilotKitCore.subscribeToAgentWithOptions[${o}]: ${t} callback ${r}:`,{error:n instanceof Error?n:Error(String(n)),code:e8.SUBSCRIBER_CALLBACK_FAILED,context:{agentId:e.agentId,callback:t}})};try{let e=n(...r);if(e instanceof Promise)return e.catch(e=>{i(e,"rejected")});return e}catch(e){i(e,"threw")}},d=e=>{let t={};if(e.onMessagesChanged){let n=e.onMessagesChanged;t.onMessagesChanged=e=>a("onMessagesChanged",n,e)}if(e.onStateChanged){let n=e.onStateChanged;t.onStateChanged=e=>a("onStateChanged",n,e)}if(e.onRunInitialized){let n=e.onRunInitialized;t.onRunInitialized=e=>a("onRunInitialized",n,e)}if(e.onRunFinalized){let n=e.onRunFinalized;t.onRunFinalized=e=>a("onRunFinalized",n,e)}if(e.onRunFailed){let n=e.onRunFailed;t.onRunFailed=e=>a("onRunFailed",n,e)}if(e.onRunErrorEvent){let n=e.onRunErrorEvent;t.onRunErrorEvent=e=>a("onRunErrorEvent",n,e)}return t};for(let n of Object.keys(t))if("function"==typeof t[n]&&!te.has(n)){let t=`CopilotKitCore.subscribeToAgentWithOptions[${o}]: callback "${n}" is not supported and was dropped. Supported callbacks: ${Array.from(te).join(", ")}. Use agent.subscribe() directly for event handlers and per-item notifications.`;this.logAndEmitError(t,{error:Error(t),code:e8.SUBSCRIBER_CALLBACK_FAILED,context:{agentId:e.agentId,droppedCallback:n}},"warn")}if(s<=0){let n=e.subscribe(d(t));return{unsubscribe:()=>n.unsubscribe()}}let l=!0,u=null,c=null,h=new r.xG(()=>{if(l&&t.onMessagesChanged&&u){let e=u;u=null,a("onMessagesChanged",t.onMessagesChanged,e)}if(l&&t.onStateChanged&&c){let e=c;c=null,a("onStateChanged",t.onStateChanged,e)}},{wait:s,leading:!0,trailing:!0}),g={};t.onRunInitialized&&(g.onRunInitialized=t.onRunInitialized),t.onRunFinalized&&(g.onRunFinalized=t.onRunFinalized),t.onRunFailed&&(g.onRunFailed=t.onRunFailed),t.onRunErrorEvent&&(g.onRunErrorEvent=t.onRunErrorEvent);let p=d(g);t.onMessagesChanged&&(p.onMessagesChanged=e=>{u=e,h.maybeExecute()}),t.onStateChanged&&(p.onStateChanged=e=>{c=e,h.maybeExecute()});let m=e.subscribe(p);return{unsubscribe:()=>{l=!1,h.cancel(),m.unsubscribe()}}}async connectAgent(e){return this.runHandler.connectAgent(e)}stopAgent(e){this.runHandler.abortCurrentRun(),e.agent.abortRun()}async runAgent(e){return this.runHandler.runAgent(e)}async runTool(e){return this.runHandler.runTool(e)}getStateByRun(e,t,n){return this.stateManager.getStateByRun(e,t,n)}getRunIdForMessage(e,t,n){return this.stateManager.getRunIdForMessage(e,t,n)}getRunIdsForThread(e,t){return this.stateManager.getRunIdsForThread(e,t)}buildFrontendTools(e){return this.runHandler.buildFrontendTools(e)}async waitForPendingFrameworkUpdates(){}};let ti=function(e){return e.InProgress="inProgress",e.Executing="executing",e.Complete="complete",e}({}),ts={threads:[],isLoading:!1,isFetchingNextPage:!1,error:null,fetchMoreError:null,context:null,sessionId:0,metadataCredentialsRequested:!1,metadataJoinCode:null,nextCursor:null,inFlightMutationCount:0,pendingDeletes:{}},to=ew("Thread Adapter",{started:eA(),stopped:eA(),contextChanged:eT(),fetchNextPageRequested:eA(),renameRequested:eT(),archiveRequested:eT(),unarchiveRequested:eT(),deleteRequested:eT(),newThreadStarted:eA()}),ta=ew("Thread REST",{listRequested:eT(),listSucceeded:eT(),listFailed:eT(),nextPageSucceeded:eT(),nextPageFailed:eT(),metadataCredentialsRequested:eT(),metadataCredentialsSucceeded:eT(),metadataCredentialsFailed:eT(),mutationFinished:eT()}),td=ew("Thread Socket",{opened:eT(),errored:eT(),joinFailed:eT(),joinTimedOut:eT(),metadataReceived:eT(),runActivityReceived:eT()}),tl=ew("Thread Domain",{threadUpserted:eT(),threadDeleted:eT()});function tu(e){return[...e].sort((e,t)=>{let n=e.lastRunAt??e.updatedAt??e.createdAt;return(t.lastRunAt??t.updatedAt??t.createdAt).localeCompare(n)})}function tc(e,t){let n=e.findIndex(e=>e.id===t.id);if(-1===n)return tu([...e,t]);let r=[...e];return r[n]=t,tu(r)}function th(e){return"string"==typeof e&&e.length>0?e:void 0}let tg=ex(ts,eM(to.contextChanged,(e,{context:t})=>({...e,context:t,sessionId:e.sessionId+1,threads:[],isLoading:!!t,isFetchingNextPage:!1,error:null,fetchMoreError:null,metadataCredentialsRequested:!1,metadataJoinCode:null,nextCursor:null,inFlightMutationCount:0,pendingDeletes:{}})),eM(to.stopped,e=>({...e,threads:[],isLoading:!1,isFetchingNextPage:!1,error:null,fetchMoreError:null,metadataCredentialsRequested:!1,metadataJoinCode:null,nextCursor:null,inFlightMutationCount:0,pendingDeletes:{}})),eM(ta.listRequested,(e,{sessionId:t})=>t===e.sessionId&&e.context?{...e,isLoading:!0,error:null,fetchMoreError:null}:e),eM(ta.listSucceeded,(e,{sessionId:t,threads:n,joinCode:r,nextCursor:i})=>{if(t!==e.sessionId)return e;let s=r!==e.metadataJoinCode;return{...e,threads:tu(n),isLoading:!1,error:null,fetchMoreError:null,metadataJoinCode:r,metadataCredentialsRequested:!s&&e.metadataCredentialsRequested,nextCursor:i}}),eM(ta.listFailed,(e,{sessionId:t,error:n})=>t!==e.sessionId?e:{...e,isLoading:!1,error:n}),eM(ta.nextPageSucceeded,(e,{sessionId:t,threads:n,nextCursor:r})=>{if(t!==e.sessionId)return e;let i=e.threads;for(let e of n)i=tc(i,e);return{...e,threads:i,isFetchingNextPage:!1,fetchMoreError:null,nextCursor:r}}),eM(ta.nextPageFailed,(e,{sessionId:t,error:n})=>t!==e.sessionId?e:{...e,isFetchingNextPage:!1,fetchMoreError:n}),eM(ta.metadataCredentialsFailed,(e,{sessionId:t})=>t!==e.sessionId?e:{...e,metadataCredentialsRequested:!1}),eM(ta.metadataCredentialsRequested,(e,{sessionId:t})=>t!==e.sessionId?e:{...e,metadataCredentialsRequested:!0}),eM(to.fetchNextPageRequested,e=>!e.nextCursor||e.isFetchingNextPage?e:{...e,isFetchingNextPage:!0,fetchMoreError:null}),eM(to.renameRequested,(e,{threadId:t,name:n})=>{let r=e.threads.find(e=>e.id===t),i=e.inFlightMutationCount+1;return r?{...e,threads:tc(e.threads,{...r,name:n}),inFlightMutationCount:i}:{...e,inFlightMutationCount:i}}),eM(to.archiveRequested,(e,{threadId:t})=>{let n=e.threads.find(e=>e.id===t),r=e.inFlightMutationCount+1;return n?e.context?.includeArchived?{...e,threads:tc(e.threads,{...n,archived:!0}),inFlightMutationCount:r}:{...e,threads:e.threads.filter(e=>e.id!==t),inFlightMutationCount:r}:{...e,inFlightMutationCount:r}}),eM(to.unarchiveRequested,(e,{threadId:t})=>{let n=e.threads.find(e=>e.id===t),r=e.inFlightMutationCount+1;return n?{...e,threads:tc(e.threads,{...n,archived:!1}),inFlightMutationCount:r}:{...e,inFlightMutationCount:r}}),eM(to.deleteRequested,(e,{requestId:t,threadId:n})=>{let r=e.threads.find(e=>e.id===n),i=e.inFlightMutationCount+1;return r?{...e,threads:e.threads.filter(e=>e.id!==n),pendingDeletes:{...e.pendingDeletes,[t]:r},inFlightMutationCount:i}:{...e,inFlightMutationCount:i}}),eM(to.newThreadStarted,e=>({...e,error:null})),eM(ta.mutationFinished,(e,{outcome:t})=>{if(t.sessionId!==e.sessionId)return e;let n=Math.max(0,e.inFlightMutationCount-1);if(t.ok){if(void 0===e.pendingDeletes[t.requestId])return{...e,inFlightMutationCount:n};let{[t.requestId]:r,...i}=e.pendingDeletes;return{...e,inFlightMutationCount:n,pendingDeletes:i}}let r=e.pendingDeletes[t.requestId];if(void 0===r)return{...e,inFlightMutationCount:n,error:t.error};let{[t.requestId]:i,...s}=e.pendingDeletes;return{...e,threads:tc(e.threads,r),pendingDeletes:s,inFlightMutationCount:n,error:t.error}}),eM(tl.threadUpserted,(e,{sessionId:t,thread:n}
4)=>t!==e.sessionId?e:{...e,threads:tc(e.threads,n)}),eM(tl.threadDeleted,(e,{sessionId:t,threadId:n})=>t!==e.sessionId?e:{...e,threads:e.threads.filter(e=>e.id!==n)}));function tp(){return{threads:eF(e=>e.threads),isLoading:eF(e=>e.isLoading),error:eF(e=>e.error),fetchMoreError:eF(e=>e.fetchMoreError),hasNextPage:eF(e=>null!=e.nextCursor),isFetchingNextPage:eF(e=>e.isFetchingNextPage),isMutating:eF(e=>e.inFlightMutationCount>0)}}let tm=tp(),tf=tm.threads,ty=tm.isLoading,tI=tm.error,tb=tm.fetchMoreError,tC=tm.hasNextPage,t_=tm.isFetchingNextPage,tR=tm.isMutating,tE=0;function tS(){return tE+=1,`thread-request-${tE}`}function tv(e,t){return new g.c(n=>{let{fetch:r,selector:i,signal:s,...o}=t,a=new AbortController,d=()=>a.abort();return s?.aborted?d():s?.addEventListener("abort",d,{once:!0}),r(e,{...o,signal:a.signal}).then(e=>i(e)).then(e=>{n.closed||(n.next(e),n.complete())}).catch(e=>{n.closed||n.error(e)}),()=>{s?.removeEventListener("abort",d),d()}})}function tT(e,t,n){return(0,p.v)(()=>tv(`${t.runtimeUrl}${n.path}`,{selector:async e=>{if(!e.ok)throw Error(`Request failed: ${e.status}`);return null},fetch:e.fetch,method:n.method,headers:{...t.headers,"Content-Type":"application/json"},body:JSON.stringify(n.body)}).pipe((0,B.T)(()=>ta.mutationFinished({outcome:{requestId:n.requestId,sessionId:n.sessionId,ok:!0}})),(0,D.W)(e=>(0,f.of)(ta.mutationFinished({outcome:{requestId:n.requestId,sessionId:n.sessionId,ok:!1,error:e instanceof Error?e:Error(String(e))}})))))}function tA(e){let t=tp(),n=eO({reducer:tg,effects:[ek((e,t)=>e.pipe(eU(to.contextChanged),(0,V.E)(t),(0,j.p)(([,e])=>!!e.context),(0,B.T)(([,e])=>ta.listRequested({sessionId:e.sessionId})))),ek((t,n)=>t.pipe(eU(ta.listRequested),(0,R.n)(r=>n.pipe((0,B.T)(e=>e.context),(0,j.p)(e=>!!e),(0,$.s)(1),(0,B.T)(e=>({action:r,context:e})),(0,L.Q)(t.pipe(eU(to.contextChanged,to.stopped))),(0,R.n)(({action:t,context:n})=>{var r;return r=t.sessionId,(0,p.v)(()=>{let t={agentId:n.agentId};n.includeArchived&&(t.includeArchived="true"),null!=n.limit&&(t.limit=String(n.limit));let i=new URLSearchParams(t);return tv(`${n.runtimeUrl}/threads?${i.toString()}`,{selector:e=>{if(!e.ok)throw Error(`Failed to fetch threads: ${e.status}`);return e.json()},fetch:e.fetch,method:"GET",headers:{...n.headers}}).pipe((0,K.w)({first:15e3,with:()=>{throw Error("Request timed out")}}),(0,B.T)(e=>ta.listSucceeded({sessionId:r,threads:e.threads,joinCode:"string"==typeof e.joinCode&&e.joinCode.length>0?e.joinCode:null,nextCursor:e.nextCursor??null})),(0,D.W)(e=>(0,f.of)(ta.listFailed({sessionId:r,error:e instanceof Error?e:Error(String(e))}))))})}))))),ek((e,t)=>e.pipe(eU(ta.listSucceeded),(0,V.E)(t),(0,j.p)(([e,t])=>e.sessionId===t.sessionId&&!t.metadataCredentialsRequested&&!!t.context?.wsUrl&&!!t.metadataJoinCode),(0,B.T)(([e])=>ta.metadataCredentialsRequested({sessionId:e.sessionId})))),ek((t,n)=>t.pipe(eU(ta.metadataCredentialsRequested),(0,R.n)(r=>n.pipe((0,B.T)(e=>e.context),(0,j.p)(e=>!!e),(0,$.s)(1),(0,B.T)(e=>({action:r,context:e})),(0,L.Q)(t.pipe(eU(to.contextChanged,to.stopped))),(0,R.n)(({action:t,context:n})=>{var r;return r=t.sessionId,(0,p.v)(()=>tv(`${n.runtimeUrl}/threads/subscribe`,{selector:async e=>{if(!e.ok)throw Error(`Failed to fetch thread metadata credentials: ${e.status}`);return e.json()},fetch:e.fetch,method:"POST",headers:{...n.headers,"Content-Type":"application/json"},body:JSON.stringify({})}).pipe((0,K.w)({first:15e3,with:()=>{throw Error("Request timed out")}}),(0,B.T)(e=>{if("string"!=typeof e.joinToken||0===e.joinToken.length)throw Error("missing joinToken");return ta.metadataCredentialsSucceeded({sessionId:r,joinToken:e.joinToken})}),(0,D.W)(e=>(0,f.of)(ta.metadataCredentialsFailed({sessionId:r,error:e instanceof Error?e:Error(String(e))})))))}))))),ek((e,t)=>e.pipe(eU(ta.metadataCredentialsSucceeded),(0,V.E)(t),(0,j.p)(([e,t])=>e.sessionId===t.sessionId&&!!t.context?.wsUrl),(0,R.n)(([t,n])=>{let r=n.context,i=t.joinToken,s=n.metadataJoinCode,a=e.pipe(eU(to.contextChanged,to.stopped));return(0,p.v)(()=>{let e=ee({url:r.wsUrl,options:{params:{join_token:i},reconnectAfterMs:(0,o.HJ)(100,1e4),rejoinAfterMs:(0,o.HJ)(1e3,3e4)}}).pipe((0,k.t)({bufferSize:1,refCount:!0})),n=et({socket$:e,topic:`user_meta:${s}`}).pipe((0,k.t)({bufferSize:1,refCount:!0})),d=es(e).pipe((0,H.u)()),l=eo(d,5).pipe((0,D.W)(()=>(console.warn("[threads] WebSocket failed after 5 attempts, giving up"),(0,f.of)(void 0))),(0,H.u)());return(0,E.h)(d.pipe((0,B.T)(e=>"open"===e.type?td.opened({sessionId:t.sessionId}):td.errored({sessionId:t.sessionId}))),n.pipe((0,R.n)(({channel:e})=>en(e,"thread_metadata")),(0,B.T)(e=>td.metadataReceived({sessionId:t.sessionId,payload:e}))),n.pipe((0,R.n)(({channel:e})=>en(e,"thread_run_activity")),(0,B.T)(e=>(function(e){let t=th(e.threadId??e.thread_id),n=th(e.eventType??e.event_type);return t&&n?{type:"thread_run_activity",threadId:t,agentId:th(e.agentId??e.agent_id),runId:th(e.runId??e.run_id),eventType:n,latestEventId:th(e.latestEventId??e.latest_event_id)}:null})(e)),(0,j.p)(e=>null!==e),(0,B.T)(e=>td.runActivityReceived({sessionId:t.sessionId,notification:e}))),er(n).pipe((0,j.p)(e=>"joined"!==e.type),(0,B.T)(e=>"timeout"===e.type?td.joinTimedOut({sessionId:t.sessionId}):td.joinFailed({sessionId:t.sessionId})))).pipe((0,L.Q)((0,E.h)(a,l)))})}))),ek((e,t)=>e.pipe(eU(td.metadataReceived),(0,V.E)(t),(0,j.p)(([e,t])=>e.sessionId===t.sessionId),(0,B.T)(([e,t])=>"deleted"===e.payload.operation?tl.threadDeleted({sessionId:e.sessionId,threadId:e.payload.deleted.id}
4):"archived"!==e.payload.operation||t.context?.includeArchived?tl.threadUpserted({sessionId:e.sessionId,thread:e.payload.thread}):tl.threadDeleted({sessionId:e.sessionId,threadId:e.payload.threadId})))),ek((e,t)=>e.pipe(eU(td.joinFailed,td.joinTimedOut,td.errored,ta.metadataCredentialsFailed),(0,V.E)(t),(0,j.p)(([e,t])=>e.sessionId===t.sessionId),(0,P.M)(([e])=>{let t=td.joinTimedOut.match(e)?"channel join timed out":td.joinFailed.match(e)?"channel join was rejected":ta.metadataCredentialsFailed.match(e)?"metadata credentials fetch failed":"socket errored";console.warn(`[threads] realtime ${t}; the thread list may be stale until reconnect`)})),{dispatch:!1}),ek((t,n)=>t.pipe(eU(to.fetchNextPageRequested),(0,V.E)(n),(0,j.p)(([,e])=>!!e.context&&!!e.nextCursor),(0,R.n)(([,n])=>{let r=n.context,i={agentId:r.agentId,cursor:n.nextCursor};return r.includeArchived&&(i.includeArchived="true"),null!=r.limit&&(i.limit=String(r.limit)),tv(`${r.runtimeUrl}/threads?${new URLSearchParams(i).toString()}`,{selector:e=>{if(!e.ok)throw Error(`Failed to fetch next page: ${e.status}`);return e.json()},fetch:e.fetch,method:"GET",headers:{...r.headers}}).pipe((0,K.w)({first:15e3,with:()=>{throw Error("Request timed out")}}),(0,B.T)(e=>ta.nextPageSucceeded({sessionId:n.sessionId,threads:e.threads,nextCursor:e.nextCursor??null})),(0,D.W)(e=>(0,f.of)(ta.nextPageFailed({sessionId:n.sessionId,error:e instanceof Error?e:Error(String(e))}))),(0,L.Q)(t.pipe(eU(to.contextChanged,to.stopped))))}))),ek((t,n)=>t.pipe(eU(to.renameRequested,to.archiveRequested,to.unarchiveRequested,to.deleteRequested),(0,V.E)(n),(0,N.Z)(([t,n])=>{let r=n.sessionId,i=n.context;if(!i?.runtimeUrl){let e=t.requestId;return(0,f.of)(ta.mutationFinished({outcome:{requestId:e,sessionId:r,ok:!1,error:Error("Runtime URL is not configured")}}))}let s={agentId:i.agentId};return to.renameRequested.match(t)?tT(e,i,{requestId:t.requestId,sessionId:r,method:"PATCH",path:`/threads/${encodeURIComponent(t.threadId)}`,body:{...s,name:t.name}}):to.archiveRequested.match(t)?tT(e,i,{requestId:t.requestId,sessionId:r,method:"POST",path:`/threads/${encodeURIComponent(t.threadId)}/archive`,body:s}):to.unarchiveRequested.match(t)?tT(e,i,{requestId:t.requestId,sessionId:r,method:"PATCH",path:`/threads/${encodeURIComponent(t.threadId)}`,body:{...s,archived:!1}}):tT(e,i,{requestId:t.requestId,sessionId:r,method:"DELETE",path:`/threads/${encodeURIComponent(t.threadId)}`,body:s})})))]});function r(e){let t=(0,U._)((0,E.h)(n.actions$.pipe(eU(ta.mutationFinished),(0,j.p)(t=>t.outcome.requestId===e.requestId),(0,B.T)(e=>e.outcome)),n.actions$.pipe(eU(to.stopped),(0,B.T)(()=>({requestId:e.requestId,sessionId:n.getState().sessionId,ok:!1,error:Error("Thread store stopped before mutation completed")})))).pipe((0,$.s)(1))).then(e=>{if(!e.ok)throw e.error});return n.dispatch(e),t}let i=null;return{start(){n.init(),e.onError&&!i&&(i=n.actions$.pipe(eU(ta.mutationFinished),(0,j.p)(e=>!e.outcome.ok&&e.outcome.sessionId===n.getState().sessionId)).subscribe(t=>{t.outcome.ok||e.onError?.(t.outcome.error)})),n.dispatch(to.started())},stop(){n.dispatch(to.stopped()),i?.unsubscribe(),i=null,n.stop()},setContext(e){n.dispatch(to.contextChanged({context:e}))},refresh(){let{sessionId:e,context:t}=n.getState();t&&n.dispatch(ta.listRequested({sessionId:e}))},refetchThreads(){let{sessionId:e,context:t}=n.getState();t&&n.dispatch(ta.listRequested({sessionId:e}))},startNewThread(){n.dispatch(to.newThreadStarted())},fetchNextPage(){n.dispatch(to.fetchNextPageRequested())},renameThread:(e,t)=>r(to.renameRequested({requestId:tS(),threadId:e,name:t})),archiveThread:e=>r(to.archiveRequested({requestId:tS(),threadId:e})),unarchiveThread:e=>r(to.unarchiveRequested({requestId:tS(),threadId:e})),deleteThread:e=>r(to.deleteRequested({requestId:tS(),threadId:e})),subscribeToRunActivity:e=>n.actions$.pipe(eU(td.runActivityReceived),(0,j.p)(e=>e.sessionId===n.getState().sessionId),(0,B.T)(e=>e.notification)).subscribe(e),getState:()=>n.getState(),getServerState:()=>ts,select:n.select.bind(n),selectors:t}}let tw=tf,tM=ty,tx=tI,tF=tb,tU=tC,tk=t_,tO=tR;Object.freeze(["chat","sidebar","popup","threads"]);var t$=class{#i={};#s=null;#o=!1;get pending(){let e=this.#s;return e?.kind==="standard"?{kind:"standard",interrupts:[...e.interrupts]}:e}setLegacy(e){this.#a({kind:"legacy",event:e})}setStandard(e){this.#a({kind:"standard",interrupts:[...e]})}clear(){for(let e of(this.#s=null,this.#o=!1,Object.keys(this.#i)))delete this.#i[e]}resolve(e,t){let n=this.#s;return!n||this.#o?{kind:"ignored"}:"legacy"===n.kind?(this.#o=!0,{kind:"legacy-resume",payload:e,interruptValue:n.event.value}):this.#d(n.interrupts,t,{status:"resolved",payload:e})}cancel(e){let t=this.#s;return!t||this.#o?{kind:"ignored"}:"legacy"===t.kind?(this.#o=!0,{kind:"dismiss"}):this.#d(t.interrupts,e,{status:"cancelled"})}#a(e){this.clear(),this.#s=e}#d(e,t,n){let r=t??e[0]?.id;if(!r||!e.some(e=>e.id===r))return{kind:"ignored"};if(this.#i[r]=n,!e.every(e=>this.#i[e.id]))return{kind:"waiting"};let s=e.find(e=>(0,i.E7)(e));if(s)return this.#o=!0,{kind:"expired",interrupt:s};let o=[...e],a=(0,i.T7)(o,this.#i),d=o.flatMap(e=>{var t;return e.toolCallId&&"tool_call"===e.reason?[{toolCallId:e.toolCallId,content:"cancelled"===(t=this.#i[e.id]).status?JSON.stringify({status:"cancelled"}):JSON.stringify(t.payload??{status:"resolved"})}]:[]});return this.#o=!0,{kind:"resume",resume:a,toolResults:d}}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.