@callbag-recharge/callbag-recharge 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/ai/index.cjs +44 -22
  2. package/dist/ai/index.d.cts +291 -33
  3. package/dist/ai/index.d.ts +291 -33
  4. package/dist/ai/index.js +37 -15
  5. package/dist/ai/memoryStore/index.cjs +4 -4
  6. package/dist/ai/memoryStore/index.d.cts +1 -1
  7. package/dist/ai/memoryStore/index.d.ts +1 -1
  8. package/dist/ai/memoryStore/index.js +1 -1
  9. package/dist/ai/ragPipeline/index.d.cts +1 -1
  10. package/dist/ai/ragPipeline/index.d.ts +1 -1
  11. package/dist/chunk-2HRRNPZH.js +1 -0
  12. package/dist/chunk-42DAIQCC.js +1 -0
  13. package/dist/{chunk-CSMHDOAR.js → chunk-5HLUIFH3.js} +1 -1
  14. package/dist/chunk-DIC2IVQO.js +1 -0
  15. package/dist/chunk-PS42SVSV.js +1 -0
  16. package/dist/memory/index.cjs +4 -4
  17. package/dist/memory/index.d.cts +2 -2
  18. package/dist/memory/index.d.ts +2 -2
  19. package/dist/memory/index.js +1 -1
  20. package/dist/messaging/index.cjs +9 -9
  21. package/dist/messaging/index.d.cts +7 -131
  22. package/dist/messaging/index.d.ts +7 -131
  23. package/dist/messaging/index.js +6 -6
  24. package/dist/orchestrate/index.cjs +4 -4
  25. package/dist/orchestrate/index.d.cts +1 -1
  26. package/dist/orchestrate/index.d.ts +1 -1
  27. package/dist/orchestrate/index.js +3 -3
  28. package/dist/{types-BH6fI4xa.d.cts → topicBridge-_Pf0YRYG.d.cts} +161 -4
  29. package/dist/{types-DpplCkXF.d.ts → topicBridge-sOssDI98.d.ts} +161 -4
  30. package/dist/{types-CxUiO1ko.d.cts → types-2zgL7QtP.d.cts} +25 -1
  31. package/dist/{types-vpHq4g8l.d.ts → types-BPee8DL6.d.ts} +25 -1
  32. package/dist/utils/index.cjs +8 -8
  33. package/dist/utils/index.js +6 -6
  34. package/package.json +1 -1
  35. package/dist/chunk-ECHFG6CV.js +0 -1
  36. package/dist/chunk-IHAQFWGK.js +0 -1
  37. package/dist/chunk-QO3UGDBL.js +0 -1
package/dist/ai/index.cjs CHANGED
@@ -1,12 +1,13 @@
1
- "use strict";var Rn=Object.create;var He=Object.defineProperty;var Mn=Object.getOwnPropertyDescriptor;var Cn=Object.getOwnPropertyNames;var Ln=Object.getPrototypeOf,Dn=Object.prototype.hasOwnProperty;var In=(e,t)=>{for(var o in t)He(e,o,{get:t[o],enumerable:!0})},It=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Cn(t))!Dn.call(e,r)&&r!==o&&He(e,r,{get:()=>t[r],enumerable:!(n=Mn(t,r))||n.enumerable});return e};var Ot=(e,t,o)=>(o=e!=null?Rn(Ln(e)):{},It(t||!e||!e.__esModule?He(o,"default",{value:e,enumerable:!0}):o,e)),On=e=>It(He({},"__esModule",{value:!0}),e);var Sr={};In(Sr,{agentLoop:()=>jt,agentMemory:()=>Zt,chatStream:()=>ft,checkpoint:()=>Ft,conversationSummary:()=>en,conversationThread:()=>tn,docIndex:()=>nn,embeddingIndex:()=>rn,fromLLM:()=>un,hybridRoute:()=>ln,indexedDBAdapter:()=>Bt,memoryAdapter:()=>qt,memoryStore:()=>dn,ragPipeline:()=>mn,systemPromptBuilder:()=>gn,toToolCallRequests:()=>cn,tokenTracker:()=>zt,toolCallState:()=>hn,toolRegistry:()=>En});module.exports=On(Sr);var Z=Symbol("DIRTY"),re=Symbol("RESOLVED"),Te=Symbol("SINGLE_DEP"),Se=Symbol("RESET"),_e=Symbol("PAUSE"),ve=Symbol("RESUME"),he=Symbol("TEARDOWN");function Ee(e){return e===Se||e===_e||e===ve||e===he}var Ye=0,Qe=1,Xe=2,Ze=3,et=4,tt=5,oe=7,Fe=7<<oe,$n=["DISCONNECTED","DIRTY","SETTLED","RESOLVED","COMPLETED","ERRORED"];function nt(e){return $n[(e&Fe)>>>oe]}var K=0,ee=1,U=2,H=3,Je=0,We=[],Tt=!1;function $(e){Je++;let t,o,n=!1;try{t=e()}catch(i){o=i,n=!0}Je--;let r;if(Je===0&&!Tt){Tt=!0;try{for(let i=0;i<We.length;i++)try{We[i]()}catch(s){r??=s}}finally{We.length=0,Tt=!1}}if(n)throw o;if(r)throw r;return t}function xe(){return Je>0}function rt(e){We.push(e)}var Ke=0,Ge=[];function we(){Ke++}function ke(){if(Ke--,Ke===0){for(let e=0;e<Ge.length;e++)Ge[e]();Ge.length=0}}function $t(e){Ke>0?Ge.push(e):e()}function N(e){let t=e;typeof t.complete=="function"?t.complete():typeof t._handleEnd=="function"&&t._handleEnd(void 0)}var se=class e{static _names=new WeakMap;static _kinds=new WeakMap;static _keys=new WeakMap;static _stores=new Set;static _edges=new Map;static _nextId=0;static _usedKeys=new Set;static _explicitEnabled=null;static _cachedDefault=null;static _annotations=new WeakMap;static _traceLog=[];static _traceHead=0;static _traceFull=!1;static maxTraceEntries=1e3;static get enabled(){if(e._explicitEnabled!==null)return e._explicitEnabled;if(e._cachedDefault!==null)return e._cachedDefault;try{e._cachedDefault=globalThis.process?.env?.NODE_ENV!=="production"}catch{e._cachedDefault=!0}return e._cachedDefault}static set enabled(t){e._explicitEnabled=t}static _depSuffix(t){if(!t?.length)return;let n=t.map(r=>e._names.get(r)??"?").join(",");return n.length>40?`${n.slice(0,37)}...`:n}static _resolveKey(t){let o=e._keys.get(t)??e._names.get(t);if(o)return o;let n=`anonymous_${e._nextId++}`;return e._keys.set(t,n),n}static register(t,o){if(!e.enabled)return;o?.name&&e._names.set(t,o.name),o?.kind&&e._kinds.set(t,o.kind);let n=e._nextId++,r=o?.name;if(!(r&&!e._usedKeys.has(r)))if(r){let i=e._depSuffix(o?.deps);r=i?`${r}(${i})`:`${r}_${n}`,e._usedKeys.has(r)&&(r=`${r}_${n}`)}else{let i=o?.kind??"store",s=e._depSuffix(o?.deps);r=s?`${i}(${s})`:`${i}_${n}`,e._usedKeys.has(r)&&(r=`${r}_${n}`)}e._usedKeys.add(r),e._keys.set(t,r),e._stores.add(new WeakRef(t))}static registerEdge(t,o){if(!e.enabled)return;let n=e._resolveKey(t),r=e._resolveKey(o),i=e._edges.get(n);i?i.includes(r)||i.push(r):e._edges.set(n,[r])}static getEdges(){return new Map(e._edges)}static getName(t){if(e.enabled)return e._names.get(t)}static getKind(t){return e._kinds.get(t)}static inspect(t){return{name:e._names.get(t),kind:e._kinds.get(t)??"unknown",value:typeof t.get=="function"?t.get():void 0,status:t._status}}static graph(){let t=new Map,o=new Set;for(let n of e._stores){let r=n.deref();if(!r){e._stores.delete(n);continue}let i=e._resolveKey(r);o.add(i),t.set(i,e.inspect(r))}for(let[n,r]of e._edges){if(!o.has(n)){e._edges.delete(n),e._usedKeys.delete(n);continue}let i=r.filter(s=>o.has(s));i.length===0?e._edges.delete(n):i.length!==r.length&&e._edges.set(n,i)}return t}static trace(t,o){let n=null,r=t.get();return t.source(K,(i,s)=>{if(i===K&&(n=s),i===U){n=null;return}if(i===1){let u=s;if(!Object.is(u,r)){let c=r;r=u,o(u,c)}}}),()=>n?.(U)}static dumpGraph(){let t=e.graph(),o=e.getEdges(),n=new Map;for(let[s,u]of o)for(let c of u){let l=n.get(c);l?l.includes(s)||l.push(s):n.set(c,[s])}let r=[];for(let[s,u]of t){let c=n.get(s),l=o.get(s),a=c?.length?` \u2190 [${c.join(", ")}]`:"",d=l?.length?` \u2192 [${l.join(", ")}]`:"";r.push(` ${s} (${u.kind}) = ${JSON.stringify(u.value)} [${u.status??"?"}]${a}${d}`)}return[`Store Graph (${t.size} nodes):`,...r].join(`
2
- `)}static _signalLabel(t){return t===Z?"DIRTY":t===re?"RESOLVED":typeof t=="symbol"?t.description??String(t):String(t)}static _observe(t,o,n){let r=null,i=!1,s=o??e.getName(t),u=[],c={values:[],signals:[],events:[],ended:!1,endError:void 0,get completedCleanly(){return c.ended&&!i},get errored(){return c.ended&&i},dirtyCount:0,resolvedCount:0,name:s,get eventLog(){return u},dispose:()=>r?.(U),reconnect:()=>(r?.(U),e._observe(t,o,n))};return t.source(K,(l,a)=>{if(l===K){r=a;return}let d=xe();l===ee?(c.values.push(a),c.events.push({type:"data",data:a,inBatch:d}),u.push(a),n&&n(`[${s}] DATA:`,a)):l===H?(c.signals.push(a),c.events.push({type:"signal",data:a,inBatch:d}),u.push(e._signalLabel(a)),a===Z?c.dirtyCount++:a===re&&c.resolvedCount++,n&&n(`[${s}] STATE:`,a)):l===U&&(c.ended=!0,c.endError=a,i=a!==void 0,c.events.push({type:"end",data:a,inBatch:d}),u.push(i?["END",a]:"END"),n&&n(`[${s}] END`,a!==void 0?a:""),r=null)}),c}static observe(t){return e._observe(t)}static activate(t){let o=null;return t.source(K,(n,r)=>{n===K&&(o=r),n===U&&(o=null)}),()=>o?.(U)}static tap(t,o){let n=o??`tap(${e.getName(t)??"anon"})`,r={get:()=>t.get(),source:t.source};return e.register(r,{name:n,kind:"tap"}),e.registerEdge(t,r),r}static spy(t,o){let n=o?.name??e.getName(t)??"spy",r=o?.log??console.log;return e._observe(t,n,r)}static snapshot(){let t=e.graph(),o=e.getEdges(),n=new Map;for(let s of e._stores){let u=s.deref();if(!u)continue;let c=e._annotations.get(u);c!==void 0&&n.set(e._resolveKey(u),c)}let r=[];for(let[s,u]of t){let c={name:s,kind:u.kind,value:u.value,status:u.status},l=n.get(s);l!==void 0&&(c.annotation=l),r.push(c)}let i=[];for(let[s,u]of o)for(let c of u)i.push({from:s,to:c});return{nodes:r,edges:i,trace:e.traceLog()}}static toMermaid(t){let o=t?.direction??"TD",n=e.snapshot(),r=[`graph ${o}`],i={SETTLED:":::settled",DIRTY:":::dirty",ERRORED:":::errored",COMPLETED:":::completed"},s=new Map;function u(a){let d=a.replace(/[^a-zA-Z0-9_]/g,"_"),y=s.get(d);return y===void 0?(s.set(d,1),d):(s.set(d,y+1),`${d}__${y}`)}let c=new Map;function l(a){let d=JSON.stringify(a);return d&&d.length>30?`${d.slice(0,27)}...`:d??"undefined"}for(let a of n.nodes){let d=u(a.name);c.set(a.name,d);let y=`${a.name} (${a.kind}) = ${l(a.value)}`,b=i[a.status??""]??"";r.push(` ${d}["${y}"]${b}`)}for(let a of n.edges){let d=c.get(a.from)??u(a.from),y=c.get(a.to)??u(a.to);r.push(` ${d} --> ${y}`)}return r.push(""),r.push(" classDef settled fill:#d4edda,stroke:#28a745"),r.push(" classDef dirty fill:#fff3cd,stroke:#ffc107"),r.push(" classDef errored fill:#f8d7da,stroke:#dc3545"),r.push(" classDef completed fill:#cce5ff,stroke:#007bff"),r.join(`
3
- `)}static toD2(t){let o=t?.direction??"down",n=e.snapshot(),r=[`direction: ${o}`,""],i={state:"rectangle",derived:"hexagon",effect:"oval",producer:"rectangle",operator:"parallelogram","pipeline-step":"rectangle","pipeline-status":"diamond",checkpoint:"cylinder"},s=new Map;function u(a){let d=a.replace(/[^a-zA-Z0-9_]/g,"_"),y=s.get(d);return y===void 0?(s.set(d,1),d):(s.set(d,y+1),`${d}__${y}`)}let c=new Map;function l(a){let d=JSON.stringify(a);return d&&d.length>30?`${d.slice(0,27)}...`:d??"undefined"}for(let a of n.nodes){let d=u(a.name);c.set(a.name,d);let y=i[a.kind]??"rectangle",b=`${a.name} (${a.kind}) = ${l(a.value)}`,E=a.status?` [${a.status}]`:"";r.push(`${d}: "${b}${E}" { shape: ${y} }`)}n.edges.length>0&&r.push("");for(let a of n.edges){let d=c.get(a.from)??u(a.from),y=c.get(a.to)??u(a.to);r.push(`${d} -> ${y}`)}return r.join(`
4
- `)}static annotate(t,o){if(!e.enabled)return;e._annotations.set(t,o);let n={node:e._resolveKey(t),reason:o,timestamp:Date.now()},r=e.maxTraceEntries;r<=0||(e._traceLog.length<r?e._traceLog.push(n):(e._traceLog[e._traceHead]=n,e._traceFull=!0),e._traceHead=(e._traceHead+1)%r)}static getAnnotation(t){return e._annotations.get(t)}static traceLog(){return e._traceFull?[...e._traceLog.slice(e._traceHead),...e._traceLog.slice(0,e._traceHead)]:e._traceLog.slice(0,e._traceHead||e._traceLog.length)}static clearTrace(){e._traceLog=[],e._traceHead=0,e._traceFull=!1}static timeline(t){let o=null,n=[];return t.source(K,(r,i)=>{if(r===K){o=i;return}let s={timestamp:Date.now(),type:r===ee?"data":r===H?"signal":"end",data:i,inBatch:xe()};n.push(s),r===U&&(o=null)}),{entries:n,dispose:()=>o?.(U)}}static observeDerived(t){let o=[],n=t,r=n._fn;if(typeof r!="function"||!Array.isArray(n._deps))return{...e.observe(t),evaluations:o};n._fn=()=>{let c=n._deps.map(a=>a.get()),l=r();return o.push({result:l,depValues:c,timestamp:Date.now()}),l};let i=e._observe(t),s=i.dispose;return{...i,evaluations:o,dispose:()=>{n._fn=r,s()},reconnect:()=>(n._fn=r,s(),e.observeDerived(t))}}static observeTaskState(t){let o=t.status.get(),n=[],r=null;return t.status.source(K,(i,s)=>{if(i===K){r=s;return}if(i===ee){let u=s;if(u!==o){let c={from:o,to:u,timestamp:Date.now()};u==="error"&&(c.error=t.error.get()),n.push(c),o=u}}i===U&&(r=null)}),{transitions:n,get currentStatus(){return t.status.get()},dispose:()=>{r?.(U)}}}static causalityTrace(t){let o=[],n=t,r=n._fn;if(typeof r!="function"||!Array.isArray(n._deps))return{...e.observe(t),causality:o};let i=n._deps,s=i.map(a=>a.get());n._fn=()=>{let a=i.map(b=>b.get()),d=r(),y=-1;for(let b=0;b<i.length;b++)if(!Object.is(a[b],s[b])){y=b;break}return o.push({result:d,triggerDepIndex:y,triggerDepName:y>=0?e.getName(i[y]):void 0,depValues:a,timestamp:Date.now()}),s=a,d};let u=e._observe(t),c=u.dispose;return{...u,causality:o,dispose:()=>{n._fn=r,c()},reconnect:()=>(n._fn=r,c(),e.causalityTrace(t))}}static _reset(){e._names=new WeakMap,e._kinds=new WeakMap,e._keys=new WeakMap,e._stores=new Set,e._edges=new Map,e._usedKeys=new Set,e._nextId=0,e._explicitEnabled=null,e._cachedDefault=null,e._annotations=new WeakMap,e._traceLog=[],e._traceHead=0,e._traceFull=!1,e.maxTraceEntries=1e3}};var ot=1,de=64,ce=2,Re=4,Pt=8,Nt=16,pe=32,me=1024,ne=Fe,Me=Qe<<oe,qe=Xe<<oe,st=Ye<<oe,Pn=et<<oe,Nn=tt<<oe,Fn=Ze<<oe,Be=class{_value;_output=null;_flags;get _status(){return nt(this._flags)}_cleanup;_fn;_eqFn;_getterFn;_initial;_singleDepCount=0;_onLifecycleSignal;constructor(t,o){this._value=o?.initial,this._fn=t,this._eqFn=o?.equals,this._getterFn=o?.getter,this._initial=o?.initial;let n=0;o?.autoDirty!==!1&&(n|=Re),o?.resetOnTeardown&&(n|=Pt),o?.resubscribable&&(n|=Nt),this._flags=n,this.source=this.source.bind(this),this.emit=this.emit.bind(this),o?._skipInspect||se.register(this,{kind:"producer",...o})}get(){return this._getterFn?this._getterFn(this._value):this._value}_dispatch(t,o){let n=this._output;if(n)if(this._flags&de)for(let r of n)r(t,o);else n(t,o)}emit(t){this._flags&ce||this._eqFn&&this._value!==void 0&&this._eqFn(this._value,t)||(this._value=t,this._output&&(xe()?this._flags&pe||(this._flags|=pe,this._flags&Re&&(this._flags=this._flags&~ne|Me,this._dispatch(H,Z)),rt(()=>{this._flags&pe&&(this._flags&=~pe,this._flags=this._flags&~ne|qe,this._dispatch(ee,this._value))})):(this._flags&Re&&!(this._flags&me)&&(this._flags=this._flags&~ne|Me,this._dispatch(H,Z)),this._flags=this._flags&~ne|qe,this._dispatch(ee,this._value))))}signal(t){this._flags&ce||!this._output||(t===Z?this._flags=this._flags&~ne|Me:t===re&&(this._flags=this._flags&~ne|Fn),this._dispatch(H,t))}complete(){if(this._flags&ce)return;this._flags=(this._flags|ce)&~ne|Pn;let t=this._output,o=this._flags&de;if(this._output=null,this._flags&=~(de|me),this._singleDepCount=0,this._stop(),t)if(o)for(let n of t)n(U);else t(U)}error(t){if(this._flags&ce)return;this._flags=(this._flags|ce)&~ne|Nn;let o=this._output,n=this._flags&de;if(this._output=null,this._flags&=~(de|me),this._singleDepCount=0,this._stop(),o)if(n)for(let r of o)r(U,t);else o(U,t)}_start(){if(this._flags&ot||!this._fn)return;this._flags|=ot,this._onLifecycleSignal=void 0;let t=this._fn({emit:this.emit,signal:o=>this.signal(o),complete:()=>this.complete(),error:o=>this.error(o),onSignal:o=>{this._onLifecycleSignal=o}});this._cleanup=typeof t=="function"?t:void 0}_stop(){this._flags&ot&&(this._flags&=~ot,this._onLifecycleSignal=void 0,this._cleanup&&this._cleanup(),this._cleanup=void 0,this._flags&Pt&&(this._value=this._initial),this._flags&ce||(this._flags=this._flags&~ne|st))}_handleLifecycleSignal(t){if(!(this._flags&ce)){if(t===he){this._onLifecycleSignal?.(t),this.complete();return}t===Se&&(this._value=this._initial,this._flags&=~pe),this._onLifecycleSignal?.(t)}}source(t,o){if(t===K){let n=o;if(this._flags&ce)if(this._flags&Nt&&this._output===null)this._flags=this._flags&~(ce|ne)|st;else{n(K,i=>{}),n(U);return}if(this._output===null)this._output=n;else if(this._flags&de)this._output.add(n);else{let i=new Set;i.add(this._output),i.add(n),this._output=i,this._flags=(this._flags|de)&~me}let r=!1;n(K,(i,s)=>{if(i===ee&&n(ee,this._value),i===H){s===Te&&!r?(r=!0,this._singleDepCount++,this._flags&de||(this._flags|=me)):Ee(s)&&this._handleLifecycleSignal(s);return}if(i===U){if(r&&(r=!1,this._singleDepCount--),this._output===null)return;if(this._flags&de){let u=this._output;u.delete(n),u.size===1?(this._output=u.values().next().value,this._flags&=~de,this._singleDepCount>0&&(this._flags|=me)):u.size===0&&(this._output=null,this._flags&=~(de|me),this._singleDepCount=0,this._flags=this._flags&~ne|st,this._stop())}else this._output===n&&(this._output=null,this._flags&=~me,this._singleDepCount=0,this._flags=this._flags&~ne|st,this._stop())}}),$t(()=>this._start())}}};function ae(e,t){return new Be(e,t)}var St=class extends Be{constructor(t,o){super(void 0,{initial:t,autoDirty:!0,equals:o?.equals??Object.is,_skipInspect:!0}),this.set=this.set.bind(this),se.register(this,{kind:"state",...o})}get(){return this._value}set(t){this._flags&ce||this._value!==void 0&&this._eqFn(this._value,t)||(this._value=t,this._output&&(xe()?this._flags&pe||(this._flags|=pe,this._flags&Re&&(this._flags=this._flags&~ne|Me,this._dispatch(H,Z)),rt(()=>{this._flags&pe&&(this._flags&=~pe,this._flags=this._flags&~ne|qe,this._dispatch(ee,this._value))})):(this._flags&Re&&!(this._flags&me)&&(this._flags=this._flags&~ne|Me,this._dispatch(H,Z)),this._flags=this._flags&~ne|qe,this._dispatch(ee,this._value))))}update(t){this.set(t(this._value))}};function I(e,t){return new St(e,t)}function V(e,t,o){let n=null;return e(0,(r,i)=>{if(r===0){n=i;return}if(r===2){n=null,o?.onEnd?.(i);return}r===1&&t(i)}),{unsubscribe(){n?.(2),n=null}}}function _t(e){typeof e=="function"&&V(e,()=>{})}function Ft(e,t,o){return n=>{let r=o?.name??`checkpoint:${e}`,i=I({recovered:!1,persistCount:0,id:e},{name:`${r}:meta`,equals:()=>!1}),s=ae(({emit:c,error:l,complete:a})=>{let d=0,y=!0,b=!1,E=[],w=null,R=V(n.source,p=>{if(!b){E.push(p);return}d++,i.set({recovered:i.get().recovered,persistCount:d,id:e}),_t(t.save(e,p)),c(p)},{onEnd:p=>{if(!b){w={err:p};return}p!==void 0?l(p):a()}});function h(p){if(y){b=!0,i.set({recovered:p,persistCount:d,id:e});for(let f of E){if(!y)break;d++,i.set({recovered:p,persistCount:d,id:e}),_t(t.save(e,f)),c(f)}E.length=0,w&&(w.err!==void 0?l(w.err):a())}}let m=t.load(e);return typeof m=="function"?V(m,p=>{!y||b||(p!==void 0?(c(p),h(!0)):h(!1))},{onEnd:p=>{y&&(p!==void 0||!b)&&h(!1)}}):m!==void 0?(c(m),h(!0)):h(!1),()=>{y=!1,E.length=0,R.unsubscribe()}},{name:r,kind:"checkpoint"});se.register(s,{kind:"checkpoint"});let u=s;return Object.defineProperties(u,{meta:{value:i,enumerable:!0},clear:{value(){_t(t.clear(e))},enumerable:!0}}),u}}function qt(){let e=new Map;return{save(t,o){e.set(t,o)},load(t){return e.has(t)?e.get(t):void 0},clear(t){e.delete(t)}}}function Ce(e,t){let o=t?.predicate,n=t?.signal;return new Promise((r,i)=>{if(n?.aborted){i(n.reason??new DOMException("The operation was aborted.","AbortError"));return}let s=!1,u;u=V(e,a=>{(!o||o(a))&&(s=!0,l(),u?.unsubscribe(),r(a))},{onEnd:a=>{s||(s=!0,l(),i(a??new Error("source completed without matching value")))}});function c(){s||(s=!0,l(),u?.unsubscribe(),i(n.reason??new DOMException("The operation was aborted.","AbortError")))}function l(){n?.removeEventListener("abort",c)}n?.addEventListener("abort",c)})}function Le(e){return(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)}),e.then(r=>{n||(o(1,r),n||o(2))},r=>{n||o(2,r)})}}function it(e){return(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)}),e.onsuccess=()=>{n||(n=!0,o(1,e.result),o(2))},e.onerror=()=>{n||(n=!0,o(2,e.error))}}}function Bt(e){let t=e?.dbName??"callbag-checkpoints",o=e?.storeName??"checkpoints",n=null,r=null;function i(){if(n)return Promise.resolve(n);if(r)return r;let c=indexedDB.open(t,1);return c.onupgradeneeded=()=>{let l=c.result;l.objectStoreNames.contains(o)||l.createObjectStore(o)},r=Ce(it(c)).then(l=>(n=l,n.onversionchange=()=>{n?.close(),n=null,r=null},n)),r.catch(()=>{r=null}),r}function s(c){return i().then(l=>{let a=l.transaction(o,c);return{store:a.objectStore(o),tx:a}})}async function u(c,l){try{let{store:a}=await s(c);return await Ce(it(l(a)))}catch(a){if(a?.name==="InvalidStateError"||n===null){n=null,r=null;let{store:d}=await s(c);return Ce(it(l(d)))}throw a}}return{save(c,l){return Le(u("readwrite",a=>a.put(l,c)).then(()=>{}))},load(c){return Le(u("readonly",l=>l.get(c)).then(l=>l??void 0))},clear(c){return Le(u("readwrite",l=>l.delete(c)).then(()=>{}))}}}function X(e,t,o){let n=null;we(),e.source(K,(i,s)=>{if(i===K&&(n=s),i===U){n=null,o?.onEnd?.(s);return}if(i===1){let u=s,c=r;r=u,t(u,c)}});let r;try{r=e.get()}catch{}return ke(),{unsubscribe(){n?.(U),n=null},signal(i){n?.(H,i)}}}var Vt=Object.freeze({promptTokens:0,completionTokens:0,totalTokens:0,cost:0,count:0});function zt(e,t){return o=>{let n=t?.name??"tokenTracker",r=u=>u==null||!Number.isFinite(u)?0:u,i=I({...Vt},{name:`${n}:tokens`,equals:()=>!1}),s=ae(({emit:u,error:c,complete:l})=>{let a=0,d=0,y=0,b=0,E=0;i.set({...Vt});let w=X(o,R=>{try{let h=e(R),m=r(h.promptTokens),p=r(h.completionTokens),f=r(h.totalTokens)||m+p,g=r(h.cost);a+=m,d+=p,y+=f,b+=g,E++,i.set({promptTokens:a,completionTokens:d,totalTokens:y,cost:b,count:E})}catch{E++,i.set({promptTokens:a,completionTokens:d,totalTokens:y,cost:b,count:E})}u(R)},{onEnd:R=>{R!==void 0?c(R):l()}});return()=>{w.unsubscribe()}},{initial:o.get()});return se.register(s,{kind:"tokenTracker",name:n}),s.tokens=i,s}}function De(e){return(t,o)=>{if(t!==0)return;let n=new AbortController,r=n.signal,i=!1,s,u;try{s=typeof e=="function"?e():e,u=s[Symbol.asyncIterator]()}catch(l){o(0,()=>{}),o(2,l);return}o(0,l=>{l===2&&!i&&(i=!0,n.abort(),Promise.resolve(u.return?.()).catch(()=>{}))});async function c(){try{for(;!i&&!r.aborted;){let l=await u.next();if(i||r.aborted)break;if(l.done){i=!0,o(2);return}o(1,l.value)}}catch(l){!i&&!r.aborted&&(i=!0,o(2,l))}}c()}}function qn(e){return e!=null&&typeof e.then=="function"}function Bn(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function Vn(e){return e!=null&&typeof e[Symbol.iterator]=="function"}function Y(e){return qn(e)?Le(e):Bn(e)?De(e):typeof e!="string"&&Vn(e)?(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)});for(let r of e){if(n)return;o(1,r)}n||o(2)}:(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)}),n||o(1,e),n||o(2)}}var at=class extends Error{constructor(){super("Gate: action rejected")}};function jt(e){let t=e.name??"agentLoop",o=e.maxIterations??10,n=e.shouldContinue??(()=>!1),r=!!e.gate,i=I("idle",{name:`${t}.phase`}),s=I(void 0,{name:`${t}.context`}),u=I(void 0,{name:`${t}.lastAction`}),c=I(0,{name:`${t}.iteration`}),l=I(void 0,{name:`${t}.error`}),a=I([],{name:`${t}.history`}),d=typeof e.gate=="object"?e.gate:{},y=d.maxPending??1/0,b=r?I([],{name:`${t}.pending`,equals:()=>!1}):void 0,E=r?I(d.startOpen??!1,{name:`${t}.isOpen`}):void 0,w=[],R=null,h=null,m=!1,p=!1,f=0,g=null;function S(v,k,q){a.update(J=>[...J,{phase:v,context:k,action:q,iteration:c.get()}])}function M(v,k,q){if(!r||!b||m){k(v);return}if(E.get()){k(v);return}w.push(v),w.length>y&&w.shift(),b.set([...w]);let J=ae(({emit:W,complete:z,error:P})=>{let F=G=>{W(G),z()},j=G=>{P(G)};return R=F,h=j,()=>{R===F&&(R=null),h===j&&(h=null)}},{_skipInspect:!0});V(J.source,W=>{k(W)},{onEnd:W=>{W!==void 0&&q(W)}})}function D(v){let k=w.splice(0,v);return b?.set([...w]),k}function x(){p=!1;let v=g;g=null,v?.()}function T(v,k){m||(l.set(v),i.set("errored"),S("errored",k)),x()}function L(v,k,q){if(m||q!==f){x();return}if(k>=o){i.set("completed"),S("completed",v),x();return}let J=k+1;c.set(J),i.set("observe"),S("observe",v);let W;try{W=e.observe(v)}catch(z){T(z,v);return}V(Y(W),z=>{if(s.set(z),m||q!==f){x();return}i.set("plan"),S("plan",z);let P;try{P=e.plan(z)}catch(F){T(F,z);return}V(Y(P),F=>{if(u.set(F),m||q!==f){x();return}let j=G=>{if(u.set(G),m||q!==f){x();return}i.set("act"),S("act",z,G);let le;try{le=e.act(G,z)}catch(ie){T(ie,z);return}V(Y(le),ie=>{if(s.set(ie),m||q!==f){x();return}n(ie,J)?L(ie,J,q):(i.set("completed"),S("completed",ie),x())},{onEnd:ie=>{ie!==void 0&&T(ie,z)}})};r?(i.set("awaiting_approval"),S("awaiting_approval",z,F),M(F,G=>{j(G)},G=>{G instanceof at&&!m?L(z,J,q):T(G,z)})):j(F)},{onEnd:F=>{F!==void 0&&T(F,z)}})},{onEnd:z=>{z!==void 0&&T(z,v)}})}function A(v,k){k===f&&(p=!0,m=!1,w=[],R=null,h=null,b?.set([]),s.set(v),c.set(0),l.set(void 0),u.set(void 0),L(v,0,k))}function C(v){f++;let k=f;a.set([]),p?(m=!0,g=()=>{k===f&&A(v,k)},R&&R(w[0]??void 0)):A(v,k)}function O(){m=!0,p&&i.set("completed"),R&&R(w[0]??void 0)}let B={phase:i,context:s,lastAction:u,iteration:c,error:l,start:C,stop:O,history:a};if(!r)return B;let _=B;return _.pending=b,_.isOpen=E,_.approve=(v=1)=>{let k=D(1);k.length>0&&R&&R(k[0])},_.reject=(v=1)=>{D(1),h&&h(new at)},_.modify=v=>{let k=D(1);k.length>0&&R&&R(v(k[0]))},_.open=()=>{E.set(!0);let v=D(w.length);v.length>0&&R&&R(v[0])},_.close=()=>{E.set(!1)},_}var Ie=class{_v;_w;constructor(t){this._v=0,this._w=t>32?new Uint32Array((t-1>>>5)+1):null}set(t){let o=this._w;if(o===null)this._v|=1<<t;else{let n=t>>>5,r=1<<(t&31);o[n]&r||(o[n]|=r,this._v++)}}clear(t){let o=this._w;if(o===null)this._v&=~(1<<t);else{let n=t>>>5,r=1<<(t&31);o[n]&r&&(o[n]&=~r,this._v--)}}test(t){let o=this._w;return o===null?(this._v&1<<t)!==0:(o[t>>>5]&1<<(t&31))!==0}empty(){return this._v===0}reset(){this._v=0,this._w?.fill(0)}};var ye=1,Oe=2,$e=4,ue=8,be=32,Ut=64,zn=Ye<<oe,Pe=Qe<<oe,vt=Xe<<oe,Ve=Ze<<oe,jn=et<<oe,ct=tt<<oe,te=Fe,ut=class{_output=null;_upstreamTalkbacks=[];_cachedValue;_flags;_dirtyDeps;_eqFn;_deps;_fn;get _status(){return nt(this._flags)}constructor(t,o,n,r){this._deps=t,this._fn=o,this._eqFn=n?.equals,this._flags=r?Ut:0,this._dirtyDeps=new Ie(t.length),this.source=this.source.bind(this),se.register(this,{kind:"derived",...n,deps:t});for(let i of t)se.registerEdge(i,this)}_dispatch(t,o){let n=this._output;if(n)if(this._flags&be)for(let r of n)r(t,o);else n(t,o)}_recompute(){let t;try{t=this._fn()}catch(o){this._handleEnd(o);return}if(this._eqFn&&this._flags&ye&&this._eqFn(this._cachedValue,t)){this._flags=this._flags&~te|Ve,this._dispatch(H,re);return}this._cachedValue=t,this._flags=(this._flags|ye)&~te|vt,this._dispatch(ee,this._cachedValue)}_recomputeIdentity(t){if(!(this._flags&ue)){if(this._eqFn&&this._flags&ye&&this._eqFn(this._cachedValue,t)){this._flags=this._flags&~te|Ve,this._dispatch(H,re);return}this._cachedValue=t,this._flags=(this._flags|ye)&~te|vt,this._dispatch(ee,t)}}_lazyConnect(){if(!(this._flags&(Oe|ue))){try{this._cachedValue=this._fn()}catch(t){this._handleEnd(t);return}this._flags=(this._flags|ye)&~te|vt,we(),this._connectUpstream(),this._flags&ue||(this._flags|=Oe),ke()}}_connectUpstream(){this._upstreamTalkbacks.length=0,this._deps.length===1?this._flags&Ut?this._connectSingleDepIdentity():this._connectSingleDep():this._connectMultiDep()}_connectSingleDep(){let t=!1;this._deps[0].source(K,(o,n)=>{if(o===K){this._upstreamTalkbacks.push(n),n(H,Te);return}if(!(this._flags&ue))if(o===H)if(n===Z){if(t)return;t=!0,this._flags=this._flags&~te|Pe,this._dispatch(H,Z)}else n===re?t&&(t=!1,this._flags=this._flags&~te|Ve,this._dispatch(H,re)):this._dispatch(H,n);else o===ee?t?(t=!1,this._recompute()):(this._flags=this._flags&~te|Pe,this._dispatch(H,Z),this._recompute()):o===U&&this._handleEnd(n)})}_connectSingleDepIdentity(){let t=!1;this._deps[0].source(K,(o,n)=>{if(o===K){this._upstreamTalkbacks.push(n),n(H,Te);return}this._flags&ue||(o===H?n===Z?(t=!0,this._flags=this._flags&~te|Pe,this._dispatch(H,Z)):n===re?t&&(t=!1,this._flags=this._flags&~te|Ve,this._dispatch(H,re)):this._dispatch(H,n):o===ee?t?(t=!1,this._recomputeIdentity(n)):(this._flags=this._flags&~te|Pe,this._dispatch(H,Z),this._recomputeIdentity(n)):o===U&&this._handleEnd(n))})}_connectMultiDep(){for(let t=0;t<this._deps.length&&!(this._flags&ue);t++){let o=t;this._deps[o].source(K,(n,r)=>{if(n===K){this._upstreamTalkbacks.push(r);return}if(!(this._flags&ue))if(n===H)if(r===Z){let i=this._dirtyDeps.empty();this._dirtyDeps.set(o),i&&(this._flags&=~$e,this._flags=this._flags&~te|Pe,this._dispatch(H,Z))}else r===re?this._dirtyDeps.test(o)&&(this._dirtyDeps.clear(o),this._dirtyDeps.empty()&&(this._flags&$e?this._recompute():(this._flags=this._flags&~te|Ve,this._dispatch(H,re)))):this._dispatch(H,r);else n===ee?this._dirtyDeps.test(o)?(this._dirtyDeps.clear(o),this._flags|=$e,this._dirtyDeps.empty()&&this._recompute()):this._dirtyDeps.empty()?(this._flags=this._flags&~te|Pe,this._dispatch(H,Z),this._recompute()):this._flags|=$e:n===U&&this._handleEnd(r)})}}_handleEnd(t){this._flags|=ue,this._flags=this._flags&~te|(t!==void 0?ct:jn),t!==void 0&&(this._cachedValue=t);for(let r of this._upstreamTalkbacks)r(U);this._upstreamTalkbacks=[],this._flags&=~Oe,this._dirtyDeps.reset();let o=this._output,n=this._flags&be;if(this._output=null,this._flags&=~be,o)if(n)for(let r of o)try{t!==void 0?r(U,t):r(U)}catch{}else t!==void 0?o(U,t):o(U)}_disconnectUpstream(){for(let t of this._upstreamTalkbacks)t(U);this._upstreamTalkbacks.length=0,this._flags&=~(Oe|$e),this._flags=this._flags&~te|zn,this._dirtyDeps.reset()}_handleLifecycleSignal(t){if(!(this._flags&ue)){if(t===he){for(let o of this._upstreamTalkbacks)o(H,he);this._handleEnd(void 0);return}t===Se&&(this._flags&=~(ye|$e),this._dirtyDeps.reset());for(let o of this._upstreamTalkbacks)o(H,t)}}get(){if(this._flags&Oe){if(!(this._flags&ye)){let o=this._fn();return this._cachedValue=o,this._flags|=ye,o}return this._cachedValue}if(this._flags&ue){if((this._flags&te)===ct)throw this._cachedValue;return this._cachedValue}let t=this._fn();return this._cachedValue=t,this._flags|=ye,t}source(t,o){if(t===K){let n=o;if(this._flags&ue){let r=(this._flags&te)===ct;n(K,i=>{}),r?n(U,this._cachedValue):n(U);return}if(!(this._flags&Oe)&&(this._lazyConnect(),this._flags&ue)){let r=(this._flags&te)===ct;n(K,i=>{}),r?n(U,this._cachedValue):n(U);return}if(this._output===null)this._output=n;else if(this._flags&be)this._output.add(n);else{let r=new Set;r.add(this._output),r.add(n),this._output=r,this._flags|=be}n(K,(r,i)=>{if(r===ee&&n(ee,this._cachedValue),r===H&&Ee(i)){this._handleLifecycleSignal(i);return}if(r===U){if(this._output===null)return;if(this._flags&be){let s=this._output;s.delete(n),s.size===1?(this._output=s.values().next().value,this._flags&=~be):s.size===0&&(this._output=null,this._flags&=~be,this._disconnectUpstream())}else this._output===n&&(this._output=null,this._disconnectUpstream())}})}}};function Q(e,t,o){return new ut(e,t,o)}(t=>{function e(o,n){return new ut([o],()=>o.get(),n,!0)}t.from=e})(Q||={});var Un=0;lt.from=function(t){let o=lt({id:t.id});for(let[n,r]of Object.entries(t.index))for(let i of r)o.add(i,[n]);return o};function lt(e){let t=++Un,o=e?.id??`ridx-${t}`,n=new Map,r=new Map,i=new Map,s=new Map,u=I(0,{name:`${o}:ver`}),c=Q([u],()=>Array.from(n.keys()),{name:`${o}:keys`}),l=Q([u],()=>n.size,{name:`${o}:size`}),a=!1,d=Object.freeze(new Set);function y(h){let m=i.get(h);return m||(m=I(n.get(h)??new Set,{name:`${o}:${h}`,equals:()=>!1}),i.set(h,m)),m}function b(h){let m=i.get(h);if(m){let p=n.get(h);m.set(p?new Set(p):new Set)}}function E(h,m){let p=n.get(m),f=!p;return p||(p=new Set,n.set(m,p)),p.add(h),f}function w(h,m){let p=n.get(m);return p?(p.delete(h),p.size===0?(n.delete(m),!0):!1):!1}return{get id(){return o},get version(){return u.get()},get(h){let m=n.get(h);return m?Object.freeze(new Set(m)):d},has(h){let m=n.get(h);return m!==void 0&&m.size>0},keys(){return Array.from(n.keys())},get size(){return n.size},select(h){let m=s.get(h);if(m)return m;let p=y(h);return m=Q([p],()=>p.get(),{name:`${o}:${h}:select`}),s.set(h,m),m},keysStore:c,sizeStore:l,add(h,m){if(a||m.length===0)return;let p=r.get(h);p||(p=new Set,r.set(h,p)),$(()=>{let f=!1;for(let g of m)p.add(g),E(h,g)&&(f=!0),b(g);f&&u.update(g=>g+1)})},remove(h){if(a)return;let m=r.get(h);m&&$(()=>{let p=!1;for(let f of m)w(h,f)&&(p=!0),b(f);r.delete(h),p&&u.update(f=>f+1)})},update(h,m){if(a)return;let p=r.get(h),f=new Set(m);$(()=>{let g=!1;if(p)for(let M of p)f.has(M)||(w(h,M)&&(g=!0),b(M));let S=r.get(h);S||(S=new Set,r.set(h,S)),S.clear();for(let M of m)S.add(M),E(h,M)&&(g=!0),b(M);g&&u.update(M=>M+1)})},clear(){n.size!==0&&$(()=>{n.clear(),r.clear();for(let h of i.values())h.set(new Set);u.update(h=>h+1)})},snapshot(){let h={};for(let[m,p]of n)h[m]=Array.from(p);return{type:"reactiveIndex",id:o,version:u.get(),index:h}},destroy(){if(!a){a=!0,n.clear(),r.clear();for(let h of i.values())N(h);i.clear();for(let h of s.values())N(h);s.clear(),N(u)}}}}function Ht(e,t=o=>o){let o=[],n=new Map,r=new Map;function i(l,a){let d=o[l],y=o[a];o[l]=y,o[a]=d,d.index=a,y.index=l}function s(l){for(;l>0;){let a=l-1>>>1;if(o[a].score<=o[l].score)break;i(l,a),l=a}}function u(l){let a=o.length;for(;;){let d=l,y=2*l+1,b=y+1;if(y<a&&o[y].score<o[d].score&&(d=y),b<a&&o[b].score<o[d].score&&(d=b),d===l)break;i(l,d),l=d}}function c(l){let a=o.length-1;if(l===a){o.pop();return}i(l,a),o.pop(),s(l),u(l)}return{touch(){},insert(l){if(n.has(l))return;let a=e(l),d={key:l,score:t(a.get()),index:o.length};o.push(d),n.set(l,d),s(d.index);let y=X(a,b=>{let E=n.get(l);if(!E)return;let w=E.score;E.score=t(b),E.score<w?s(E.index):E.score>w&&u(E.index)});r.set(l,()=>y.unsubscribe())},delete(l){let a=n.get(l);if(!a)return;let d=r.get(l);d&&(d(),r.delete(l)),c(a.index),n.delete(l)},evict(l=1){let a=[];for(;a.length<l&&o.length>0;){let{key:d}=o[0];a.push(d);let y=r.get(d);y&&(y(),r.delete(d)),c(0),n.delete(d)}return a},size:()=>n.size,clear(){for(let l of r.values())l();r.clear(),n.clear(),o.length=0}}}function Ne(e,t,o){let n=t?.halfLife??864e5,r=t?.recency??1,i=t?.importance??1,s=t?.frequency??.5,u=(o??Date.now())-e.accessedAt,c=Math.exp(-Math.LN2/n*u),l=1-1/(1+e.accessCount);return r*c+i*e.importance+s*l}var Hn=0;function Jn(){return`mem-${++Hn}`}function xt(e,t){let o=t?.id??Jn(),n=Date.now(),r={id:o,createdAt:t?.createdAt??n,updatedAt:t?.updatedAt??n,accessedAt:t?.accessedAt??n,accessCount:0,importance:t?.importance??.5,tags:new Set(t?.tags)},i=I(e,{name:`mem:${o}:content`}),s=I(r,{name:`mem:${o}:meta`,equals:()=>!1}),u={},c=Q([s],()=>Ne(s.get(),u),{name:`mem:${o}:score`});return{id:o,content:i,meta:s,scoreStore:c,touch(){let a=Date.now();s.update(d=>({...d,accessedAt:a,accessCount:d.accessCount+1}))},tag(...a){s.update(d=>{let y=new Set(d.tags);for(let b of a)y.add(b);return{...d,tags:y,updatedAt:Date.now()}})},untag(...a){s.update(d=>{let y=new Set(d.tags);for(let b of a)y.delete(b);return{...d,tags:y,updatedAt:Date.now()}})},setImportance(a){s.update(d=>({...d,importance:Math.max(0,Math.min(1,a)),updatedAt:Date.now()}))},update(a){$(()=>{i.set(a),s.update(d=>({...d,updatedAt:Date.now()}))})},score(a){return Ne(s.get(),a??u)},destroy(){N(i),N(s)}}}var Wn=0;function Ae(e){let t=++Wn,o=e?.maxSize??1/0,n=e?.weights??{},r=e?.admissionPolicy,i=e?.forgetPolicy,s=new Map,u=lt(),c=new Map,l=o<1/0?Ht(f=>s.get(f).meta,f=>Ne(f,n)):null,a=I(0,{name:`collection-${t}:ver`}),d=Q([a],()=>Array.from(s.values()),{name:`collection-${t}:nodes`}),y=Q([a],()=>s.size,{name:`collection-${t}:size`}),b=!1;function E(){a.update(f=>f+1)}function w(f){let g=Array.from(f.meta.get().tags);u.update(f.id,g);let S=X(f.meta,M=>{let D=Array.from(M.tags);u.update(f.id,D)});c.set(f.id,()=>S.unsubscribe())}function R(f){let g=c.get(f);g&&(g(),c.delete(f)),u.remove(f)}function h(){if(!l||s.size<=o)return;let f=l.evict(s.size-o);for(let g of f){let S=s.get(g);S&&(R(g),S.destroy(),s.delete(g))}}function m(){if(!i)return 0;let f=[];for(let g of s.values())i(g)&&f.push(g.id);for(let g of f){let S=s.get(g);S&&(R(g),l?.delete(g),S.destroy(),s.delete(g))}return f.length}return{add(f,g){if(b)throw new Error("Collection is destroyed");if(r){let M=Array.from(s.values()),D=r(f,M);switch(D.action){case"reject":return;case"update":{let x=s.get(D.targetId);if(!x)throw new Error(`Admission update target "${D.targetId}" not found`);return x.update(D.content),x}case"merge":{let x=s.get(D.targetId);if(!x)throw new Error(`Admission merge target "${D.targetId}" not found`);let T=D.reducer(x.content.get(),f);return x.update(T),x}default:break}}i&&m();let S=xt(f,g);return s.set(S.id,S),w(S),l?.insert(S.id),h(),E(),S},remove(f){let g=typeof f=="string"?f:f.id,S=s.get(g);return S?(R(g),l?.delete(g),S.destroy(),s.delete(g),E(),!0):!1},get(f){return s.get(f)},has(f){return s.has(f)},nodes:d,size:y,tagIndex:u,query(f){let g=[];for(let S of s.values())f(S)&&g.push(S);return g},byTag(f){let g=u.get(f),S=[];for(let M of g){let D=s.get(M);D&&S.push(D)}return S},topK(f,g){let S=g??n,M=Date.now(),D=Array.from(s.values()).map(x=>({node:x,score:Ne(x.meta.get(),S,M)}));return D.sort((x,T)=>T.score-x.score),D.slice(0,f).map(x=>x.node)},summarize(f,g,S){if(b)throw new Error("Collection is destroyed");let M=Array.from(new Set(f)),D=[];for(let L of M){let A=s.get(L);A&&D.push(A)}if(D.length===0)throw new Error("No valid nodes to summarize");let x=g(D),T;return $(()=>{for(let L of D)R(L.id),l?.delete(L.id),L.destroy(),s.delete(L.id);i&&m(),T=xt(x,S),s.set(T.id,T),w(T),l?.insert(T.id),h(),E()}),T},gc(){if(b)throw new Error("Collection is destroyed");let f=m();return f>0&&E(),f},destroy(){if(!b){b=!0,l?.clear();for(let f of c.values())f();c.clear(),u.destroy(),$(()=>{for(let f of s.values())f.destroy();s.clear()}),N(a)}}}}function Gn(e,t){let o=0,n=0,r=0;for(let s=0;s<e.length;s++)o+=e[s]*t[s],n+=e[s]*e[s],r+=t[s]*t[s];let i=Math.sqrt(n)*Math.sqrt(r);return i===0?1:1-o/i}function Kn(e,t){let o=0;for(let n=0;n<e.length;n++){let r=e[n]-t[n];o+=r*r}return Math.sqrt(o)}function Yn(e,t){let o=0;for(let n=0;n<e.length;n++)o+=e[n]*t[n];return-o}var Qn={cosine:Gn,euclidean:Kn,dotProduct:Yn};function At(e,t){e.push(t);let o=e.length-1;for(;o>0;){let n=o-1>>1;if(e[n].dist<=e[o].dist)break;let r=e[n];e[n]=e[o],e[o]=r,o=n}}function Xn(e){let t=e[0],o=e.pop();if(e.length>0){e[0]=o;let n=0;for(;;){let r=n,i=2*n+1,s=2*n+2;if(i<e.length&&e[i].dist<e[r].dist&&(r=i),s<e.length&&e[s].dist<e[r].dist&&(r=s),r===n)break;let u=e[r];e[r]=e[n],e[n]=u,n=r}}return t}function Jt(e,t){if(e.length!==t)throw new Error(`Expected ${t} dimensions, got ${e.length}`);return new Float32Array(e)}function Zn(e){for(let t=0;t<e.length;t++)if(!Number.isFinite(e[t]))throw new Error("Vector contains non-finite values")}function dt(e){let t=e.dimensions;if(!t||t<=0)throw new Error("dimensions must be a positive integer");let o=e.m??16,n=o*2,r=e.efConstruction??200,i=e.efSearch??50,s=Qn[e.distance??"cosine"];if(!s)throw new Error(`Unknown distance metric: ${e.distance}`);let u=1/Math.log(o),c=[],l=new Map,a=-1,d=-1,y=0,b=I(0);function E(){let T=Math.random();return T===0&&(T=Number.EPSILON),Math.floor(-Math.log(T)*u)}function w(T,L,A,C){let O=new Set;O.add(L);let B=s(T,c[L].vector),_=[];At(_,{idx:L,dist:B});let v=[{idx:L,dist:B}];for(;_.length>0;){let k=Xn(_);if(v.length>=A){let W=-1/0;for(let z=0;z<v.length;z++)v[z].dist>W&&(W=v[z].dist);if(k.dist>W)break}let J=c[k.idx].neighbors[C];if(J)for(let W of J){if(O.has(W))continue;O.add(W);let z=c[W];if(z.deleted)continue;let P=s(T,z.vector);if(v.length<A)At(_,{idx:W,dist:P}),v.push({idx:W,dist:P});else{let F=0,j=v[0].dist;for(let G=1;G<v.length;G++)v[G].dist>j&&(j=v[G].dist,F=G);P<j&&(At(_,{idx:W,dist:P}),v[F]={idx:W,dist:P})}}}return v}function R(T,L,A){let C=L,O=s(T,c[C].vector),B=!0;for(;B;){B=!1;let _=c[C].neighbors[A];if(!_)break;for(let v of _){let k=c[v];if(k.deleted)continue;let q=s(T,k.vector);q<O&&(C=v,O=q,B=!0)}}return C}function h(T,L){T.sort((C,O)=>C.dist-O.dist);let A=[];for(let C=0;C<Math.min(T.length,L);C++)A.push(T[C].idx);return A}function m(T,L,A){let C=A===0?n:o;c[T].neighbors[A].add(L),c[L].neighbors[A].add(T),c[T].neighbors[A].size>C&&p(T,A,C),c[L].neighbors[A].size>C&&p(L,A,C)}function p(T,L,A){let C=c[T],O=[];for(let _ of C.neighbors[L])c[_].deleted||O.push({idx:_,dist:s(C.vector,c[_].vector)});let B=h(O,A);C.neighbors[L]=new Set(B)}function f(T,L){let A=Jt(L,t);if(Zn(A),l.has(T)){let k=l.get(T),q=c[k];if(q.deleted){if(q.deleted=!1,q.vector=A,y++,a===-1)a=k,d=q.layer;else{for(let J=q.layer;J>=0;J--)q.neighbors[J]=new Set,g(k,J);q.layer>d&&(a=k,d=q.layer)}b.set(y)}else{q.vector=A;for(let J=q.layer;J>=0;J--){for(let W of q.neighbors[J])c[W].neighbors[J].delete(k);q.neighbors[J]=new Set,g(k,J)}}return}let C=E(),O=c.length,B=[];for(let k=0;k<=C;k++)B.push(new Set);let _={id:T,vector:A,layer:C,neighbors:B,deleted:!1};if(c.push(_),l.set(T,O),y++,a===-1){a=O,d=C,b.set(y);return}let v=a;for(let k=d;k>C;k--)v=R(A,v,k);for(let k=Math.min(C,d);k>=0;k--){let q=w(A,v,r,k),W=h(q,k===0?n:o);for(let z of W)z!==O&&m(O,z,k);q.length>0&&(q.sort((z,P)=>z.dist-P.dist),v=q[0].idx)}C>d&&(a=O,d=C),b.set(y)}function g(T,L){let A=a;if(A===T){let _=-1;for(let v=0;v<c.length;v++)if(v!==T&&!c[v].deleted&&c[v].layer>=L){_=v;break}if(_===-1)return;A=_}for(let _=Math.min(d,c[A].layer);_>L;_--)A=R(c[T].vector,A,_);let C=w(c[T].vector,A,r,L),B=h(C,L===0?n:o);for(let _ of B)_!==T&&m(T,_,L)}function S(T){let L=l.get(T);if(L===void 0)return!1;let A=c[L];if(A.deleted)return!1;if(A.deleted=!0,y--,b.set(y),L===a){let C=-1;for(let O=0;O<c.length;O++)c[O].deleted||(C===-1||c[O].layer>c[C].layer)&&(C=O);a=C,d=C===-1?-1:c[C].layer}return!0}function M(T,L=10){if(y===0)return[];let A=Jt(T,t),C=Math.min(L,y),O=Math.max(i,C),B=a;for(let k=d;k>0;k--)B=R(A,B,k);let _=w(A,B,O,0);_.sort((k,q)=>k.dist-q.dist);let v=[];for(let k=0;k<_.length&&v.length<C;k++){let q=c[_[k].idx];q.deleted||v.push({id:q.id,distance:_[k].dist})}return v}function D(T){let L=l.get(T);return L===void 0?!1:!c[L].deleted}function x(){c.length=0,l.clear(),a=-1,d=-1,y=0,b.set(0),N(b)}return{add:f,remove:S,search:M,has:D,size:b,destroy:x}}function Wt(e,t,o){if(e.size.get()===0)return{isDuplicate:!1,similarity:0};let n=e.search(t,1);if(n.length===0)return{isDuplicate:!1,similarity:0};let r=n[0],i=1-r.distance;return i>=o?{isDuplicate:!0,existingId:r.id,similarity:i}:{isDuplicate:!1,similarity:i}}var er=`You are a memory extraction system. Given a conversation, extract discrete factual statements worth remembering for future conversations.
1
+ "use strict";var mr=Object.create;var gt=Object.defineProperty;var pr=Object.getOwnPropertyDescriptor;var gr=Object.getOwnPropertyNames;var hr=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty;var br=(e,t)=>{for(var o in t)gt(e,o,{get:t[o],enumerable:!0})},mn=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of gr(t))!yr.call(e,r)&&r!==o&&gt(e,r,{get:()=>t[r],enumerable:!(n=pr(t,r))||n.enumerable});return e};var pn=(e,t,o)=>(o=e!=null?mr(hr(e)):{},mn(t||!e||!e.__esModule?gt(o,"default",{value:e,enumerable:!0}):o,e)),Tr=e=>mn(gt({},"__esModule",{value:!0}),e);var go={};br(go,{agentLoop:()=>xn,agentMemory:()=>Hn,chatStream:()=>Vt,checkpoint:()=>bn,conversationSummary:()=>Gn,conversationThread:()=>jn,docIndex:()=>Kn,embeddingIndex:()=>Yn,fromLLM:()=>tr,hybridRoute:()=>nr,indexedDBAdapter:()=>Sn,memoryAdapter:()=>Tn,memoryStore:()=>rr,ragPipeline:()=>sr,systemPromptBuilder:()=>ar,toToolCallRequests:()=>er,tokenTracker:()=>_n,toolCallState:()=>cr,toolRegistry:()=>ur});module.exports=Tr(go);var de=Symbol("DIRTY"),Te=Symbol("RESOLVED"),Pe=Symbol("SINGLE_DEP"),Ne=Symbol("RESET"),Fe=Symbol("PAUSE"),qe=Symbol("RESUME"),Ce=Symbol("TEARDOWN");function He(e){return e===Ne||e===Fe||e===qe||e===Ce}var St=0,vt=1,_t=2,xt=3,wt=4,At=5,Se=7,at=7<<Se,Sr=["DISCONNECTED","DIRTY","SETTLED","RESOLVED","COMPLETED","ERRORED"];function Et(e){return Sr[(e&at)>>>Se]}var ie=0,fe=1,te=2,ne=3,ht=0,yt=[],Kt=!1;function z(e){ht++;let t,o,n=!1;try{t=e()}catch(i){o=i,n=!0}ht--;let r;if(ht===0&&!Kt){Kt=!0;try{for(let i=0;i<yt.length;i++)try{yt[i]()}catch(s){r??=s}}finally{yt.length=0,Kt=!1}}if(n)throw o;if(r)throw r;return t}function Be(){return ht>0}function Mt(e){yt.push(e)}var Tt=0,bt=[];function Ge(){Tt++}function je(){if(Tt--,Tt===0){for(let e=0;e<bt.length;e++)bt[e]();bt.length=0}}function gn(e){Tt>0?bt.push(e):e()}function W(e){let t=e;typeof t.complete=="function"?t.complete():typeof t._handleEnd=="function"&&t._handleEnd(void 0)}var ve=class e{static _names=new WeakMap;static _kinds=new WeakMap;static _keys=new WeakMap;static _stores=new Set;static _edges=new Map;static _nextId=0;static _usedKeys=new Set;static _explicitEnabled=null;static _cachedDefault=null;static _annotations=new WeakMap;static _traceLog=[];static _traceHead=0;static _traceFull=!1;static maxTraceEntries=1e3;static get enabled(){if(e._explicitEnabled!==null)return e._explicitEnabled;if(e._cachedDefault!==null)return e._cachedDefault;try{e._cachedDefault=globalThis.process?.env?.NODE_ENV!=="production"}catch{e._cachedDefault=!0}return e._cachedDefault}static set enabled(t){e._explicitEnabled=t}static _depSuffix(t){if(!t?.length)return;let n=t.map(r=>e._names.get(r)??"?").join(",");return n.length>40?`${n.slice(0,37)}...`:n}static _resolveKey(t){let o=e._keys.get(t)??e._names.get(t);if(o)return o;let n=`anonymous_${e._nextId++}`;return e._keys.set(t,n),n}static register(t,o){if(!e.enabled)return;o?.name&&e._names.set(t,o.name),o?.kind&&e._kinds.set(t,o.kind);let n=e._nextId++,r=o?.name;if(!(r&&!e._usedKeys.has(r)))if(r){let i=e._depSuffix(o?.deps);r=i?`${r}(${i})`:`${r}_${n}`,e._usedKeys.has(r)&&(r=`${r}_${n}`)}else{let i=o?.kind??"store",s=e._depSuffix(o?.deps);r=s?`${i}(${s})`:`${i}_${n}`,e._usedKeys.has(r)&&(r=`${r}_${n}`)}e._usedKeys.add(r),e._keys.set(t,r),e._stores.add(new WeakRef(t))}static registerEdge(t,o){if(!e.enabled)return;let n=e._resolveKey(t),r=e._resolveKey(o),i=e._edges.get(n);i?i.includes(r)||i.push(r):e._edges.set(n,[r])}static getEdges(){return new Map(e._edges)}static getName(t){if(e.enabled)return e._names.get(t)}static getKind(t){return e._kinds.get(t)}static inspect(t){return{name:e._names.get(t),kind:e._kinds.get(t)??"unknown",value:typeof t.get=="function"?t.get():void 0,status:t._status}}static graph(){let t=new Map,o=new Set;for(let n of e._stores){let r=n.deref();if(!r){e._stores.delete(n);continue}let i=e._resolveKey(r);o.add(i),t.set(i,e.inspect(r))}for(let[n,r]of e._edges){if(!o.has(n)){e._edges.delete(n),e._usedKeys.delete(n);continue}let i=r.filter(s=>o.has(s));i.length===0?e._edges.delete(n):i.length!==r.length&&e._edges.set(n,i)}return t}static trace(t,o){let n=null,r=t.get();return t.source(ie,(i,s)=>{if(i===ie&&(n=s),i===te){n=null;return}if(i===1){let u=s;if(!Object.is(u,r)){let a=r;r=u,o(u,a)}}}),()=>n?.(te)}static dumpGraph(){let t=e.graph(),o=e.getEdges(),n=new Map;for(let[s,u]of o)for(let a of u){let l=n.get(a);l?l.includes(s)||l.push(s):n.set(a,[s])}let r=[];for(let[s,u]of t){let a=n.get(s),l=o.get(s),c=a?.length?` \u2190 [${a.join(", ")}]`:"",d=l?.length?` \u2192 [${l.join(", ")}]`:"";r.push(` ${s} (${u.kind}) = ${JSON.stringify(u.value)} [${u.status??"?"}]${c}${d}`)}return[`Store Graph (${t.size} nodes):`,...r].join(`
2
+ `)}static _signalLabel(t){return t===de?"DIRTY":t===Te?"RESOLVED":typeof t=="symbol"?t.description??String(t):String(t)}static _observe(t,o,n){let r=null,i=!1,s=o??e.getName(t),u=[],a={values:[],signals:[],events:[],ended:!1,endError:void 0,get completedCleanly(){return a.ended&&!i},get errored(){return a.ended&&i},dirtyCount:0,resolvedCount:0,name:s,get eventLog(){return u},dispose:()=>r?.(te),reconnect:()=>(r?.(te),e._observe(t,o,n))};return t.source(ie,(l,c)=>{if(l===ie){r=c;return}let d=Be();l===fe?(a.values.push(c),a.events.push({type:"data",data:c,inBatch:d}),u.push(c),n&&n(`[${s}] DATA:`,c)):l===ne?(a.signals.push(c),a.events.push({type:"signal",data:c,inBatch:d}),u.push(e._signalLabel(c)),c===de?a.dirtyCount++:c===Te&&a.resolvedCount++,n&&n(`[${s}] STATE:`,c)):l===te&&(a.ended=!0,a.endError=c,i=c!==void 0,a.events.push({type:"end",data:c,inBatch:d}),u.push(i?["END",c]:"END"),n&&n(`[${s}] END`,c!==void 0?c:""),r=null)}),a}static observe(t){return e._observe(t)}static activate(t){let o=null;return t.source(ie,(n,r)=>{n===ie&&(o=r),n===te&&(o=null)}),()=>o?.(te)}static tap(t,o){let n=o??`tap(${e.getName(t)??"anon"})`,r={get:()=>t.get(),source:t.source};return e.register(r,{name:n,kind:"tap"}),e.registerEdge(t,r),r}static spy(t,o){let n=o?.name??e.getName(t)??"spy",r=o?.log??console.log;return e._observe(t,n,r)}static snapshot(){let t=e.graph(),o=e.getEdges(),n=new Map;for(let s of e._stores){let u=s.deref();if(!u)continue;let a=e._annotations.get(u);a!==void 0&&n.set(e._resolveKey(u),a)}let r=[];for(let[s,u]of t){let a={name:s,kind:u.kind,value:u.value,status:u.status},l=n.get(s);l!==void 0&&(a.annotation=l),r.push(a)}let i=[];for(let[s,u]of o)for(let a of u)i.push({from:s,to:a});return{nodes:r,edges:i,trace:e.traceLog()}}static toMermaid(t){let o=t?.direction??"TD",n=e.snapshot(),r=[`graph ${o}`],i={SETTLED:":::settled",DIRTY:":::dirty",ERRORED:":::errored",COMPLETED:":::completed"},s=new Map;function u(c){let d=c.replace(/[^a-zA-Z0-9_]/g,"_"),y=s.get(d);return y===void 0?(s.set(d,1),d):(s.set(d,y+1),`${d}__${y}`)}let a=new Map;function l(c){let d=JSON.stringify(c);return d&&d.length>30?`${d.slice(0,27)}...`:d??"undefined"}for(let c of n.nodes){let d=u(c.name);a.set(c.name,d);let y=`${c.name} (${c.kind}) = ${l(c.value)}`,b=i[c.status??""]??"";r.push(` ${d}["${y}"]${b}`)}for(let c of n.edges){let d=a.get(c.from)??u(c.from),y=a.get(c.to)??u(c.to);r.push(` ${d} --> ${y}`)}return r.push(""),r.push(" classDef settled fill:#d4edda,stroke:#28a745"),r.push(" classDef dirty fill:#fff3cd,stroke:#ffc107"),r.push(" classDef errored fill:#f8d7da,stroke:#dc3545"),r.push(" classDef completed fill:#cce5ff,stroke:#007bff"),r.join(`
3
+ `)}static toD2(t){let o=t?.direction??"down",n=e.snapshot(),r=[`direction: ${o}`,""],i={state:"rectangle",derived:"hexagon",effect:"oval",producer:"rectangle",operator:"parallelogram","pipeline-step":"rectangle","pipeline-status":"diamond",checkpoint:"cylinder"},s=new Map;function u(c){let d=c.replace(/[^a-zA-Z0-9_]/g,"_"),y=s.get(d);return y===void 0?(s.set(d,1),d):(s.set(d,y+1),`${d}__${y}`)}let a=new Map;function l(c){let d=JSON.stringify(c);return d&&d.length>30?`${d.slice(0,27)}...`:d??"undefined"}for(let c of n.nodes){let d=u(c.name);a.set(c.name,d);let y=i[c.kind]??"rectangle",b=`${c.name} (${c.kind}) = ${l(c.value)}`,x=c.status?` [${c.status}]`:"";r.push(`${d}: "${b}${x}" { shape: ${y} }`)}n.edges.length>0&&r.push("");for(let c of n.edges){let d=a.get(c.from)??u(c.from),y=a.get(c.to)??u(c.to);r.push(`${d} -> ${y}`)}return r.join(`
4
+ `)}static annotate(t,o){if(!e.enabled)return;e._annotations.set(t,o);let n={node:e._resolveKey(t),reason:o,timestamp:Date.now()},r=e.maxTraceEntries;r<=0||(e._traceLog.length<r?e._traceLog.push(n):(e._traceLog[e._traceHead]=n,e._traceFull=!0),e._traceHead=(e._traceHead+1)%r)}static getAnnotation(t){return e._annotations.get(t)}static traceLog(){return e._traceFull?[...e._traceLog.slice(e._traceHead),...e._traceLog.slice(0,e._traceHead)]:e._traceLog.slice(0,e._traceHead||e._traceLog.length)}static clearTrace(){e._traceLog=[],e._traceHead=0,e._traceFull=!1}static timeline(t){let o=null,n=[];return t.source(ie,(r,i)=>{if(r===ie){o=i;return}let s={timestamp:Date.now(),type:r===fe?"data":r===ne?"signal":"end",data:i,inBatch:Be()};n.push(s),r===te&&(o=null)}),{entries:n,dispose:()=>o?.(te)}}static observeDerived(t){let o=[],n=t,r=n._fn;if(typeof r!="function"||!Array.isArray(n._deps))return{...e.observe(t),evaluations:o};n._fn=()=>{let a=n._deps.map(c=>c.get()),l=r();return o.push({result:l,depValues:a,timestamp:Date.now()}),l};let i=e._observe(t),s=i.dispose;return{...i,evaluations:o,dispose:()=>{n._fn=r,s()},reconnect:()=>(n._fn=r,s(),e.observeDerived(t))}}static observeTaskState(t){let o=t.status.get(),n=[],r=null;return t.status.source(ie,(i,s)=>{if(i===ie){r=s;return}if(i===fe){let u=s;if(u!==o){let a={from:o,to:u,timestamp:Date.now()};u==="error"&&(a.error=t.error.get()),n.push(a),o=u}}i===te&&(r=null)}),{transitions:n,get currentStatus(){return t.status.get()},dispose:()=>{r?.(te)}}}static causalityTrace(t){let o=[],n=t,r=n._fn;if(typeof r!="function"||!Array.isArray(n._deps))return{...e.observe(t),causality:o};let i=n._deps,s=i.map(c=>c.get());n._fn=()=>{let c=i.map(b=>b.get()),d=r(),y=-1;for(let b=0;b<i.length;b++)if(!Object.is(c[b],s[b])){y=b;break}return o.push({result:d,triggerDepIndex:y,triggerDepName:y>=0?e.getName(i[y]):void 0,depValues:c,timestamp:Date.now()}),s=c,d};let u=e._observe(t),a=u.dispose;return{...u,causality:o,dispose:()=>{n._fn=r,a()},reconnect:()=>(n._fn=r,a(),e.causalityTrace(t))}}static _reset(){e._names=new WeakMap,e._kinds=new WeakMap,e._keys=new WeakMap,e._stores=new Set,e._edges=new Map,e._usedKeys=new Set,e._nextId=0,e._explicitEnabled=null,e._cachedDefault=null,e._annotations=new WeakMap,e._traceLog=[],e._traceHead=0,e._traceFull=!1,e.maxTraceEntries=1e3}};var Rt=1,Me=64,we=2,Ke=4,hn=8,yn=16,ke=32,Re=1024,ye=at,Ye=vt<<Se,ct=_t<<Se,kt=St<<Se,vr=wt<<Se,_r=At<<Se,xr=xt<<Se,ut=class{_value;_output=null;_flags;get _status(){return Et(this._flags)}_cleanup;_fn;_eqFn;_getterFn;_initial;_singleDepCount=0;_onLifecycleSignal;constructor(t,o){this._value=o?.initial,this._fn=t,this._eqFn=o?.equals,this._getterFn=o?.getter,this._initial=o?.initial;let n=0;o?.autoDirty!==!1&&(n|=Ke),o?.resetOnTeardown&&(n|=hn),o?.resubscribable&&(n|=yn),this._flags=n,this.source=this.source.bind(this),this.emit=this.emit.bind(this),o?._skipInspect||ve.register(this,{kind:"producer",...o})}get(){return this._getterFn?this._getterFn(this._value):this._value}_dispatch(t,o){let n=this._output;if(n)if(this._flags&Me)for(let r of n)r(t,o);else n(t,o)}emit(t){this._flags&we||this._eqFn&&this._value!==void 0&&this._eqFn(this._value,t)||(this._value=t,this._output&&(Be()?this._flags&ke||(this._flags|=ke,this._flags&Ke&&(this._flags=this._flags&~ye|Ye,this._dispatch(ne,de)),Mt(()=>{this._flags&ke&&(this._flags&=~ke,this._flags=this._flags&~ye|ct,this._dispatch(fe,this._value))})):(this._flags&Ke&&!(this._flags&Re)&&(this._flags=this._flags&~ye|Ye,this._dispatch(ne,de)),this._flags=this._flags&~ye|ct,this._dispatch(fe,this._value))))}signal(t){this._flags&we||!this._output||(t===de?this._flags=this._flags&~ye|Ye:t===Te&&(this._flags=this._flags&~ye|xr),this._dispatch(ne,t))}complete(){if(this._flags&we)return;this._flags=(this._flags|we)&~ye|vr;let t=this._output,o=this._flags&Me;if(this._output=null,this._flags&=~(Me|Re),this._singleDepCount=0,this._stop(),t)if(o)for(let n of t)n(te);else t(te)}error(t){if(this._flags&we)return;this._flags=(this._flags|we)&~ye|_r;let o=this._output,n=this._flags&Me;if(this._output=null,this._flags&=~(Me|Re),this._singleDepCount=0,this._stop(),o)if(n)for(let r of o)r(te,t);else o(te,t)}_start(){if(this._flags&Rt||!this._fn)return;this._flags|=Rt,this._onLifecycleSignal=void 0;let t=this._fn({emit:this.emit,signal:o=>this.signal(o),complete:()=>this.complete(),error:o=>this.error(o),onSignal:o=>{this._onLifecycleSignal=o}});this._cleanup=typeof t=="function"?t:void 0}_stop(){this._flags&Rt&&(this._flags&=~Rt,this._onLifecycleSignal=void 0,this._cleanup&&this._cleanup(),this._cleanup=void 0,this._flags&hn&&(this._value=this._initial),this._flags&we||(this._flags=this._flags&~ye|kt))}_handleLifecycleSignal(t){if(!(this._flags&we)){if(t===Ce){this._onLifecycleSignal?.(t),this.complete();return}t===Ne&&(this._value=this._initial,this._flags&=~ke),this._onLifecycleSignal?.(t)}}source(t,o){if(t===ie){let n=o;if(this._flags&we)if(this._flags&yn&&this._output===null)this._flags=this._flags&~(we|ye)|kt;else{n(ie,i=>{}),n(te);return}if(this._output===null)this._output=n;else if(this._flags&Me)this._output.add(n);else{let i=new Set;i.add(this._output),i.add(n),this._output=i,this._flags=(this._flags|Me)&~Re}let r=!1;n(ie,(i,s)=>{if(i===fe&&n(fe,this._value),i===ne){s===Pe&&!r?(r=!0,this._singleDepCount++,this._flags&Me||(this._flags|=Re)):He(s)&&this._handleLifecycleSignal(s);return}if(i===te){if(r&&(r=!1,this._singleDepCount--),this._output===null)return;if(this._flags&Me){let u=this._output;u.delete(n),u.size===1?(this._output=u.values().next().value,this._flags&=~Me,this._singleDepCount>0&&(this._flags|=Re)):u.size===0&&(this._output=null,this._flags&=~(Me|Re),this._singleDepCount=0,this._flags=this._flags&~ye|kt,this._stop())}else this._output===n&&(this._output=null,this._flags&=~Re,this._singleDepCount=0,this._flags=this._flags&~ye|kt,this._stop())}}),gn(()=>this._start())}}};function xe(e,t){return new ut(e,t)}var Yt=class extends ut{constructor(t,o){super(void 0,{initial:t,autoDirty:!0,equals:o?.equals??Object.is,_skipInspect:!0}),this.set=this.set.bind(this),ve.register(this,{kind:"state",...o})}get(){return this._value}set(t){this._flags&we||this._value!==void 0&&this._eqFn(this._value,t)||(this._value=t,this._output&&(Be()?this._flags&ke||(this._flags|=ke,this._flags&Ke&&(this._flags=this._flags&~ye|Ye,this._dispatch(ne,de)),Mt(()=>{this._flags&ke&&(this._flags&=~ke,this._flags=this._flags&~ye|ct,this._dispatch(fe,this._value))})):(this._flags&Ke&&!(this._flags&Re)&&(this._flags=this._flags&~ye|Ye,this._dispatch(ne,de)),this._flags=this._flags&~ye|ct,this._dispatch(fe,this._value))))}update(t){this.set(t(this._value))}};function O(e,t){return new Yt(e,t)}function Y(e,t,o){let n=null;return e(0,(r,i)=>{if(r===0){n=i;return}if(r===2){n=null,o?.onEnd?.(i);return}r===1&&t(i)}),{unsubscribe(){n?.(2),n=null}}}function Qt(e){typeof e=="function"&&Y(e,()=>{})}function bn(e,t,o){return n=>{let r=o?.name??`checkpoint:${e}`,i=O({recovered:!1,persistCount:0,id:e},{name:`${r}:meta`,equals:()=>!1}),s=xe(({emit:a,error:l,complete:c})=>{let d=0,y=!0,b=!1,x=[],A=null,T=Y(n.source,p=>{if(!b){x.push(p);return}d++,i.set({recovered:i.get().recovered,persistCount:d,id:e}),Qt(t.save(e,p)),a(p)},{onEnd:p=>{if(!b){A={err:p};return}p!==void 0?l(p):c()}});function g(p){if(y){b=!0,i.set({recovered:p,persistCount:d,id:e});for(let m of x){if(!y)break;d++,i.set({recovered:p,persistCount:d,id:e}),Qt(t.save(e,m)),a(m)}x.length=0,A&&(A.err!==void 0?l(A.err):c())}}let f=t.load(e);return typeof f=="function"?Y(f,p=>{!y||b||(p!==void 0?(a(p),g(!0)):g(!1))},{onEnd:p=>{y&&(p!==void 0||!b)&&g(!1)}}):f!==void 0?(a(f),g(!0)):g(!1),()=>{y=!1,x.length=0,T.unsubscribe()}},{name:r,kind:"checkpoint"});ve.register(s,{kind:"checkpoint"});let u=s;return Object.defineProperties(u,{meta:{value:i,enumerable:!0},clear:{value(){Qt(t.clear(e))},enumerable:!0}}),u}}function Tn(){let e=new Map;return{save(t,o){e.set(t,o)},load(t){return e.has(t)?e.get(t):void 0},clear(t){e.delete(t)}}}function Qe(e,t){let o=t?.predicate,n=t?.signal;return new Promise((r,i)=>{if(n?.aborted){i(n.reason??new DOMException("The operation was aborted.","AbortError"));return}let s=!1,u;u=Y(e,c=>{(!o||o(c))&&(s=!0,l(),u?.unsubscribe(),r(c))},{onEnd:c=>{s||(s=!0,l(),i(c??new Error("source completed without matching value")))}});function a(){s||(s=!0,l(),u?.unsubscribe(),i(n.reason??new DOMException("The operation was aborted.","AbortError")))}function l(){n?.removeEventListener("abort",a)}n?.addEventListener("abort",a)})}function Xe(e){return(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)}),e.then(r=>{n||(o(1,r),n||o(2))},r=>{n||o(2,r)})}}function Lt(e){return(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)}),e.onsuccess=()=>{n||(n=!0,o(1,e.result),o(2))},e.onerror=()=>{n||(n=!0,o(2,e.error))}}}function Sn(e){let t=e?.dbName??"callbag-checkpoints",o=e?.storeName??"checkpoints",n=null,r=null;function i(){if(n)return Promise.resolve(n);if(r)return r;let a=indexedDB.open(t,1);return a.onupgradeneeded=()=>{let l=a.result;l.objectStoreNames.contains(o)||l.createObjectStore(o)},r=Qe(Lt(a)).then(l=>(n=l,n.onversionchange=()=>{n?.close(),n=null,r=null},n)),r.catch(()=>{r=null}),r}function s(a){return i().then(l=>{let c=l.transaction(o,a);return{store:c.objectStore(o),tx:c}})}async function u(a,l){try{let{store:c}=await s(a);return await Qe(Lt(l(c)))}catch(c){if(c?.name==="InvalidStateError"||n===null){n=null,r=null;let{store:d}=await s(a);return Qe(Lt(l(d)))}throw c}}return{save(a,l){return Xe(u("readwrite",c=>c.put(l,a)).then(()=>{}))},load(a){return Xe(u("readonly",l=>l.get(a)).then(l=>l??void 0))},clear(a){return Xe(u("readwrite",l=>l.delete(a)).then(()=>{}))}}}function ae(e,t,o){let n=null;Ge(),e.source(ie,(i,s)=>{if(i===ie&&(n=s),i===te){n=null,o?.onEnd?.(s);return}if(i===1){let u=s,a=r;r=u,t(u,a)}});let r;try{r=e.get()}catch{}return je(),{unsubscribe(){n?.(te),n=null},signal(i){n?.(ne,i)}}}var vn=Object.freeze({promptTokens:0,completionTokens:0,totalTokens:0,cost:0,count:0});function _n(e,t){return o=>{let n=t?.name??"tokenTracker",r=u=>u==null||!Number.isFinite(u)?0:u,i=O({...vn},{name:`${n}:tokens`,equals:()=>!1}),s=xe(({emit:u,error:a,complete:l})=>{let c=0,d=0,y=0,b=0,x=0;i.set({...vn});let A=ae(o,T=>{try{let g=e(T),f=r(g.promptTokens),p=r(g.completionTokens),m=r(g.totalTokens)||f+p,h=r(g.cost);c+=f,d+=p,y+=m,b+=h,x++,i.set({promptTokens:c,completionTokens:d,totalTokens:y,cost:b,count:x})}catch{x++,i.set({promptTokens:c,completionTokens:d,totalTokens:y,cost:b,count:x})}u(T)},{onEnd:T=>{T!==void 0?a(T):l()}});return()=>{A.unsubscribe()}},{initial:o.get()});return ve.register(s,{kind:"tokenTracker",name:n}),s.tokens=i,s}}function Ze(e){return(t,o)=>{if(t!==0)return;let n=new AbortController,r=n.signal,i=!1,s,u;try{s=typeof e=="function"?e():e,u=s[Symbol.asyncIterator]()}catch(l){o(0,()=>{}),o(2,l);return}o(0,l=>{l===2&&!i&&(i=!0,n.abort(),Promise.resolve(u.return?.()).catch(()=>{}))});async function a(){try{for(;!i&&!r.aborted;){let l=await u.next();if(i||r.aborted)break;if(l.done){i=!0,o(2);return}o(1,l.value)}}catch(l){!i&&!r.aborted&&(i=!0,o(2,l))}}a()}}function wr(e){return e!=null&&typeof e.then=="function"}function Ar(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function Er(e){return e!=null&&typeof e[Symbol.iterator]=="function"}function ce(e){return wr(e)?Xe(e):Ar(e)?Ze(e):typeof e!="string"&&Er(e)?(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)});for(let r of e){if(n)return;o(1,r)}n||o(2)}:(t,o)=>{if(t!==0)return;let n=!1;o(0,r=>{r===2&&(n=!0)}),n||o(1,e),n||o(2)}}var Ct=class extends Error{constructor(){super("Gate: action rejected")}};function xn(e){let t=e.name??"agentLoop",o=e.maxIterations??10,n=e.shouldContinue??(()=>!1),r=!!e.gate,i=O("idle",{name:`${t}.phase`}),s=O(void 0,{name:`${t}.context`}),u=O(void 0,{name:`${t}.lastAction`}),a=O(0,{name:`${t}.iteration`}),l=O(void 0,{name:`${t}.error`}),c=O([],{name:`${t}.history`}),d=typeof e.gate=="object"?e.gate:{},y=d.maxPending??1/0,b=r?O([],{name:`${t}.pending`,equals:()=>!1}):void 0,x=r?O(d.startOpen??!1,{name:`${t}.isOpen`}):void 0,A=[],T=null,g=null,f=!1,p=!1,m=0,h=null;function S(L,C,V){c.update(Z=>[...Z,{phase:L,context:C,action:V,iteration:a.get()}])}function E(L,C,V){if(!r||!b||f){C(L);return}if(x.get()){C(L);return}A.push(L),A.length>y&&A.shift(),b.set([...A]);let Z=xe(({emit:X,complete:j,error:B})=>{let F=re=>{X(re),j()},G=re=>{B(re)};return T=F,g=G,()=>{T===F&&(T=null),g===G&&(g=null)}},{_skipInspect:!0});Y(Z.source,X=>{C(X)},{onEnd:X=>{X!==void 0&&V(X)}})}function D(L){let C=A.splice(0,L);return b?.set([...A]),C}function M(){p=!1;let L=h;h=null,L?.()}function w(L,C){f||(l.set(L),i.set("errored"),S("errored",C)),M()}function $(L,C,V){if(f||V!==m){M();return}if(C>=o){i.set("completed"),S("completed",L),M();return}let Z=C+1;a.set(Z),i.set("observe"),S("observe",L);let X;try{X=e.observe(L)}catch(j){w(j,L);return}Y(ce(X),j=>{if(s.set(j),f||V!==m){M();return}i.set("plan"),S("plan",j);let B;try{B=e.plan(j)}catch(F){w(F,j);return}Y(ce(B),F=>{if(u.set(F),f||V!==m){M();return}let G=re=>{if(u.set(re),f||V!==m){M();return}i.set("act"),S("act",j,re);let me;try{me=e.act(re,j)}catch(pe){w(pe,j);return}Y(ce(me),pe=>{if(s.set(pe),f||V!==m){M();return}n(pe,Z)?$(pe,Z,V):(i.set("completed"),S("completed",pe),M())},{onEnd:pe=>{pe!==void 0&&w(pe,j)}})};r?(i.set("awaiting_approval"),S("awaiting_approval",j,F),E(F,re=>{G(re)},re=>{re instanceof Ct&&!f?$(j,Z,V):w(re,j)})):G(F)},{onEnd:F=>{F!==void 0&&w(F,j)}})},{onEnd:j=>{j!==void 0&&w(j,L)}})}function R(L,C){C===m&&(p=!0,f=!1,A=[],T=null,g=null,b?.set([]),s.set(L),a.set(0),l.set(void 0),u.set(void 0),$(L,0,C))}function I(L){m++;let C=m;c.set([]),p?(f=!0,h=()=>{C===m&&R(L,C)},T&&T(A[0]??void 0)):R(L,C)}function J(){f=!0,p&&i.set("completed"),T&&T(A[0]??void 0)}let K={phase:i,context:s,lastAction:u,iteration:a,error:l,start:I,stop:J,history:c};if(!r)return K;let U=K;return U.pending=b,U.isOpen=x,U.approve=(L=1)=>{let C=D(1);C.length>0&&T&&T(C[0])},U.reject=(L=1)=>{D(1),g&&g(new Ct)},U.modify=L=>{let C=D(1);C.length>0&&T&&T(L(C[0]))},U.open=()=>{x.set(!0);let L=D(A.length);L.length>0&&T&&T(L[0])},U.close=()=>{x.set(!1)},U}var et=class{_v;_w;constructor(t){this._v=0,this._w=t>32?new Uint32Array((t-1>>>5)+1):null}set(t){let o=this._w;if(o===null)this._v|=1<<t;else{let n=t>>>5,r=1<<(t&31);o[n]&r||(o[n]|=r,this._v++)}}clear(t){let o=this._w;if(o===null)this._v&=~(1<<t);else{let n=t>>>5,r=1<<(t&31);o[n]&r&&(o[n]&=~r,this._v--)}}test(t){let o=this._w;return o===null?(this._v&1<<t)!==0:(o[t>>>5]&1<<(t&31))!==0}empty(){return this._v===0}reset(){this._v=0,this._w?.fill(0)}};var Ie=1,tt=2,nt=4,Ae=8,Oe=32,wn=64,Mr=St<<Se,rt=vt<<Se,Xt=_t<<Se,lt=xt<<Se,Rr=wt<<Se,It=At<<Se,ge=at,Dt=class{_output=null;_upstreamTalkbacks=[];_cachedValue;_flags;_dirtyDeps;_eqFn;_deps;_fn;get _status(){return Et(this._flags)}constructor(t,o,n,r){this._deps=t,this._fn=o,this._eqFn=n?.equals,this._flags=r?wn:0,this._dirtyDeps=new et(t.length),this.source=this.source.bind(this),ve.register(this,{kind:"derived",...n,deps:t});for(let i of t)ve.registerEdge(i,this)}_dispatch(t,o){let n=this._output;if(n)if(this._flags&Oe)for(let r of n)r(t,o);else n(t,o)}_recompute(){let t;try{t=this._fn()}catch(o){this._handleEnd(o);return}if(this._eqFn&&this._flags&Ie&&this._eqFn(this._cachedValue,t)){this._flags=this._flags&~ge|lt,this._dispatch(ne,Te);return}this._cachedValue=t,this._flags=(this._flags|Ie)&~ge|Xt,this._dispatch(fe,this._cachedValue)}_recomputeIdentity(t){if(!(this._flags&Ae)){if(this._eqFn&&this._flags&Ie&&this._eqFn(this._cachedValue,t)){this._flags=this._flags&~ge|lt,this._dispatch(ne,Te);return}this._cachedValue=t,this._flags=(this._flags|Ie)&~ge|Xt,this._dispatch(fe,t)}}_lazyConnect(){if(!(this._flags&(tt|Ae))){try{this._cachedValue=this._fn()}catch(t){this._handleEnd(t);return}this._flags=(this._flags|Ie)&~ge|Xt,Ge(),this._connectUpstream(),this._flags&Ae||(this._flags|=tt),je()}}_connectUpstream(){this._upstreamTalkbacks.length=0,this._deps.length===1?this._flags&wn?this._connectSingleDepIdentity():this._connectSingleDep():this._connectMultiDep()}_connectSingleDep(){let t=!1;this._deps[0].source(ie,(o,n)=>{if(o===ie){this._upstreamTalkbacks.push(n),n(ne,Pe);return}if(!(this._flags&Ae))if(o===ne)if(n===de){if(t)return;t=!0,this._flags=this._flags&~ge|rt,this._dispatch(ne,de)}else n===Te?t&&(t=!1,this._flags=this._flags&~ge|lt,this._dispatch(ne,Te)):this._dispatch(ne,n);else o===fe?t?(t=!1,this._recompute()):(this._flags=this._flags&~ge|rt,this._dispatch(ne,de),this._recompute()):o===te&&this._handleEnd(n)})}_connectSingleDepIdentity(){let t=!1;this._deps[0].source(ie,(o,n)=>{if(o===ie){this._upstreamTalkbacks.push(n),n(ne,Pe);return}this._flags&Ae||(o===ne?n===de?(t=!0,this._flags=this._flags&~ge|rt,this._dispatch(ne,de)):n===Te?t&&(t=!1,this._flags=this._flags&~ge|lt,this._dispatch(ne,Te)):this._dispatch(ne,n):o===fe?t?(t=!1,this._recomputeIdentity(n)):(this._flags=this._flags&~ge|rt,this._dispatch(ne,de),this._recomputeIdentity(n)):o===te&&this._handleEnd(n))})}_connectMultiDep(){for(let t=0;t<this._deps.length&&!(this._flags&Ae);t++){let o=t;this._deps[o].source(ie,(n,r)=>{if(n===ie){this._upstreamTalkbacks.push(r);return}if(!(this._flags&Ae))if(n===ne)if(r===de){let i=this._dirtyDeps.empty();this._dirtyDeps.set(o),i&&(this._flags&=~nt,this._flags=this._flags&~ge|rt,this._dispatch(ne,de))}else r===Te?this._dirtyDeps.test(o)&&(this._dirtyDeps.clear(o),this._dirtyDeps.empty()&&(this._flags&nt?this._recompute():(this._flags=this._flags&~ge|lt,this._dispatch(ne,Te)))):this._dispatch(ne,r);else n===fe?this._dirtyDeps.test(o)?(this._dirtyDeps.clear(o),this._flags|=nt,this._dirtyDeps.empty()&&this._recompute()):this._dirtyDeps.empty()?(this._flags=this._flags&~ge|rt,this._dispatch(ne,de),this._recompute()):this._flags|=nt:n===te&&this._handleEnd(r)})}}_handleEnd(t){this._flags|=Ae,this._flags=this._flags&~ge|(t!==void 0?It:Rr),t!==void 0&&(this._cachedValue=t);for(let r of this._upstreamTalkbacks)r(te);this._upstreamTalkbacks=[],this._flags&=~tt,this._dirtyDeps.reset();let o=this._output,n=this._flags&Oe;if(this._output=null,this._flags&=~Oe,o)if(n)for(let r of o)try{t!==void 0?r(te,t):r(te)}catch{}else t!==void 0?o(te,t):o(te)}_disconnectUpstream(){for(let t of this._upstreamTalkbacks)t(te);this._upstreamTalkbacks.length=0,this._flags&=~(tt|nt),this._flags=this._flags&~ge|Mr,this._dirtyDeps.reset()}_handleLifecycleSignal(t){if(!(this._flags&Ae)){if(t===Ce){for(let o of this._upstreamTalkbacks)o(ne,Ce);this._handleEnd(void 0);return}t===Ne&&(this._flags&=~(Ie|nt),this._dirtyDeps.reset());for(let o of this._upstreamTalkbacks)o(ne,t)}}get(){if(this._flags&tt){if(!(this._flags&Ie)){let o=this._fn();return this._cachedValue=o,this._flags|=Ie,o}return this._cachedValue}if(this._flags&Ae){if((this._flags&ge)===It)throw this._cachedValue;return this._cachedValue}let t=this._fn();return this._cachedValue=t,this._flags|=Ie,t}source(t,o){if(t===ie){let n=o;if(this._flags&Ae){let r=(this._flags&ge)===It;n(ie,i=>{}),r?n(te,this._cachedValue):n(te);return}if(!(this._flags&tt)&&(this._lazyConnect(),this._flags&Ae)){let r=(this._flags&ge)===It;n(ie,i=>{}),r?n(te,this._cachedValue):n(te);return}if(this._output===null)this._output=n;else if(this._flags&Oe)this._output.add(n);else{let r=new Set;r.add(this._output),r.add(n),this._output=r,this._flags|=Oe}n(ie,(r,i)=>{if(r===fe&&n(fe,this._cachedValue),r===ne&&He(i)){this._handleLifecycleSignal(i);return}if(r===te){if(this._output===null)return;if(this._flags&Oe){let s=this._output;s.delete(n),s.size===1?(this._output=s.values().next().value,this._flags&=~Oe):s.size===0&&(this._output=null,this._flags&=~Oe,this._disconnectUpstream())}else this._output===n&&(this._output=null,this._disconnectUpstream())}})}}};function ue(e,t,o){return new Dt(e,t,o)}(t=>{function e(o,n){return new Dt([o],()=>o.get(),n,!0)}t.from=e})(ue||={});var kr=0;Ot.from=function(t){let o=Ot({id:t.id});for(let[n,r]of Object.entries(t.index))for(let i of r)o.add(i,[n]);return o};function Ot(e){let t=++kr,o=e?.id??`ridx-${t}`,n=new Map,r=new Map,i=new Map,s=new Map,u=O(0,{name:`${o}:ver`}),a=ue([u],()=>Array.from(n.keys()),{name:`${o}:keys`}),l=ue([u],()=>n.size,{name:`${o}:size`}),c=!1,d=Object.freeze(new Set);function y(g){let f=i.get(g);return f||(f=O(n.get(g)??new Set,{name:`${o}:${g}`,equals:()=>!1}),i.set(g,f)),f}function b(g){let f=i.get(g);if(f){let p=n.get(g);f.set(p?new Set(p):new Set)}}function x(g,f){let p=n.get(f),m=!p;return p||(p=new Set,n.set(f,p)),p.add(g),m}function A(g,f){let p=n.get(f);return p?(p.delete(g),p.size===0?(n.delete(f),!0):!1):!1}return{get id(){return o},get version(){return u.get()},get(g){let f=n.get(g);return f?Object.freeze(new Set(f)):d},has(g){let f=n.get(g);return f!==void 0&&f.size>0},keys(){return Array.from(n.keys())},get size(){return n.size},select(g){let f=s.get(g);if(f)return f;let p=y(g);return f=ue([p],()=>p.get(),{name:`${o}:${g}:select`}),s.set(g,f),f},keysStore:a,sizeStore:l,add(g,f){if(c||f.length===0)return;let p=r.get(g);p||(p=new Set,r.set(g,p)),z(()=>{let m=!1;for(let h of f)p.add(h),x(g,h)&&(m=!0),b(h);m&&u.update(h=>h+1)})},remove(g){if(c)return;let f=r.get(g);f&&z(()=>{let p=!1;for(let m of f)A(g,m)&&(p=!0),b(m);r.delete(g),p&&u.update(m=>m+1)})},update(g,f){if(c)return;let p=r.get(g),m=new Set(f);z(()=>{let h=!1;if(p)for(let E of p)m.has(E)||(A(g,E)&&(h=!0),b(E));let S=r.get(g);S||(S=new Set,r.set(g,S)),S.clear();for(let E of f)S.add(E),x(g,E)&&(h=!0),b(E);h&&u.update(E=>E+1)})},clear(){n.size!==0&&z(()=>{n.clear(),r.clear();for(let g of i.values())g.set(new Set);u.update(g=>g+1)})},snapshot(){let g={};for(let[f,p]of n)g[f]=Array.from(p);return{type:"reactiveIndex",id:o,version:u.get(),index:g}},destroy(){if(!c){c=!0,n.clear(),r.clear();for(let g of i.values())W(g);i.clear();for(let g of s.values())W(g);s.clear(),W(u)}}}}function An(e,t=o=>o){let o=[],n=new Map,r=new Map;function i(l,c){let d=o[l],y=o[c];o[l]=y,o[c]=d,d.index=c,y.index=l}function s(l){for(;l>0;){let c=l-1>>>1;if(o[c].score<=o[l].score)break;i(l,c),l=c}}function u(l){let c=o.length;for(;;){let d=l,y=2*l+1,b=y+1;if(y<c&&o[y].score<o[d].score&&(d=y),b<c&&o[b].score<o[d].score&&(d=b),d===l)break;i(l,d),l=d}}function a(l){let c=o.length-1;if(l===c){o.pop();return}i(l,c),o.pop(),s(l),u(l)}return{touch(){},insert(l){if(n.has(l))return;let c=e(l),d={key:l,score:t(c.get()),index:o.length};o.push(d),n.set(l,d),s(d.index);let y=ae(c,b=>{let x=n.get(l);if(!x)return;let A=x.score;x.score=t(b),x.score<A?s(x.index):x.score>A&&u(x.index)},{onEnd:()=>{let b=n.get(l);b&&(a(b.index),n.delete(l),r.delete(l))}});r.set(l,()=>y.unsubscribe())},delete(l){let c=n.get(l);if(!c)return;let d=r.get(l);d&&(d(),r.delete(l)),a(c.index),n.delete(l)},evict(l=1){let c=[];for(;c.length<l&&o.length>0;){let{key:d}=o[0];c.push(d);let y=r.get(d);y&&(y(),r.delete(d)),a(0),n.delete(d)}return c},size:()=>n.size,clear(){for(let l of r.values())l();r.clear(),n.clear(),o.length=0}}}function $e(e,t,o){let n=t?.halfLife??864e5,r=t?.recency??1,i=t?.importance??1,s=t?.frequency??.5,u=(o??Date.now())-e.accessedAt,a=Math.exp(-Math.LN2/n*u),l=1/(1+Math.exp(-Math.log1p(e.accessCount)));return r*(l*a)+i*e.importance+s*l}var Lr=0;function Cr(){return`mem-${++Lr}`}function Zt(e,t){let o=t?.id??Cr(),n=Date.now(),r={id:o,createdAt:t?.createdAt??n,updatedAt:t?.updatedAt??n,accessedAt:t?.accessedAt??n,accessCount:0,importance:t?.importance??.5,tags:new Set(t?.tags),category:t?.category,level0:t?.level0,level1:t?.level1,level2:t?.level2},i=O(e,{name:`mem:${o}:content`}),s=O(r,{name:`mem:${o}:meta`,equals:()=>!1}),u={},a=ue([s],()=>$e(s.get(),u),{name:`mem:${o}:score`});return{id:o,content:i,meta:s,scoreStore:a,touch(){let c=Date.now();s.update(d=>({...d,accessedAt:c,accessCount:d.accessCount+1}))},tag(...c){s.update(d=>{let y=new Set(d.tags);for(let b of c)y.add(b);return{...d,tags:y,updatedAt:Date.now()}})},untag(...c){s.update(d=>{let y=new Set(d.tags);for(let b of c)y.delete(b);return{...d,tags:y,updatedAt:Date.now()}})},setImportance(c){s.update(d=>({...d,importance:Math.max(0,Math.min(1,c)),updatedAt:Date.now()}))},setCategory(c){s.update(d=>({...d,category:c,updatedAt:Date.now()}))},setLevels(c){s.update(d=>({...d,level0:c.level0??d.level0,level1:c.level1??d.level1,level2:c.level2??d.level2,updatedAt:Date.now()}))},update(c){z(()=>{i.set(c),s.update(d=>({...d,updatedAt:Date.now()}))})},score(c){return $e(s.get(),c??u)},destroy(){W(i),W(s)}}}var Ir=0;function Je(e){let t=++Ir,o=e?.maxSize??1/0,n=e?.weights??{},r=e?.admissionPolicy,i=e?.forgetPolicy,s=new Map,u=Ot(),a=new Map,l=o<1/0?An(m=>s.get(m).meta,m=>$e(m,n)):null,c=O(0,{name:`collection-${t}:ver`}),d=ue([c],()=>Array.from(s.values()),{name:`collection-${t}:nodes`}),y=ue([c],()=>s.size,{name:`collection-${t}:size`}),b=!1;function x(){c.update(m=>m+1)}function A(m){let h=Array.from(m.meta.get().tags);u.update(m.id,h);let S=ae(m.meta,E=>{let D=Array.from(E.tags);u.update(m.id,D)});a.set(m.id,()=>S.unsubscribe())}function T(m){let h=a.get(m);h&&(h(),a.delete(m)),u.remove(m)}function g(){if(!l||s.size<=o)return;let m=l.evict(s.size-o);for(let h of m){let S=s.get(h);S&&(T(h),S.destroy(),s.delete(h))}}function f(){if(!i)return 0;let m=[];for(let h of s.values())i(h)&&m.push(h.id);for(let h of m){let S=s.get(h);S&&(T(h),l?.delete(h),S.destroy(),s.delete(h))}return m.length}return{add(m,h){if(b)throw new Error("Collection is destroyed");if(r){let E=Array.from(s.values()),D=r(m,E);switch(D.action){case"reject":return;case"update":{let M=s.get(D.targetId);if(!M)throw new Error(`Admission update target "${D.targetId}" not found`);return M.update(D.content),M}case"merge":{let M=s.get(D.targetId);if(!M)throw new Error(`Admission merge target "${D.targetId}" not found`);let w=D.reducer(M.content.get(),m);return M.update(w),M}default:break}}i&&f();let S=Zt(m,h);return s.set(S.id,S),A(S),l?.insert(S.id),g(),x(),S},remove(m){let h=typeof m=="string"?m:m.id,S=s.get(h);return S?(T(h),l?.delete(h),S.destroy(),s.delete(h),x(),!0):!1},get(m){return s.get(m)},has(m){return s.has(m)},nodes:d,size:y,tagIndex:u,query(m){let h=[];for(let S of s.values())m(S)&&h.push(S);return h},byTag(m){let h=u.get(m),S=[];for(let E of h){let D=s.get(E);D&&S.push(D)}return S},topK(m,h){let S=h??n,E=Date.now(),D=Array.from(s.values()).map(M=>({node:M,score:$e(M.meta.get(),S,E)}));return D.sort((M,w)=>w.score-M.score),D.slice(0,m).map(M=>M.node)},summarize(m,h,S){if(b)throw new Error("Collection is destroyed");let E=Array.from(new Set(m)),D=[];for(let $ of E){let R=s.get($);R&&D.push(R)}if(D.length===0)throw new Error("No valid nodes to summarize");let M=h(D),w;return z(()=>{for(let $ of D)T($.id),l?.delete($.id),$.destroy(),s.delete($.id);i&&f(),w=Zt(M,S),s.set(w.id,w),A(w),l?.insert(w.id),g(),x()}),w},gc(){if(b)throw new Error("Collection is destroyed");let m=f();return m>0&&x(),m},destroy(){if(!b){b=!0,l?.clear();for(let m of a.values())m();a.clear(),u.destroy(),z(()=>{for(let m of s.values())m.destroy();s.clear()}),W(c)}}}}function Dr(e,t){let o=0,n=0,r=0;for(let s=0;s<e.length;s++)o+=e[s]*t[s],n+=e[s]*e[s],r+=t[s]*t[s];let i=Math.sqrt(n)*Math.sqrt(r);return i===0?1:1-o/i}function Or(e,t){let o=0;for(let n=0;n<e.length;n++){let r=e[n]-t[n];o+=r*r}return Math.sqrt(o)}function $r(e,t){let o=0;for(let n=0;n<e.length;n++)o+=e[n]*t[n];return-o}var Pr={cosine:Dr,euclidean:Or,dotProduct:$r};function en(e,t){e.push(t);let o=e.length-1;for(;o>0;){let n=o-1>>1;if(e[n].dist<=e[o].dist)break;let r=e[n];e[n]=e[o],e[o]=r,o=n}}function Nr(e){let t=e[0],o=e.pop();if(e.length>0){e[0]=o;let n=0;for(;;){let r=n,i=2*n+1,s=2*n+2;if(i<e.length&&e[i].dist<e[r].dist&&(r=i),s<e.length&&e[s].dist<e[r].dist&&(r=s),r===n)break;let u=e[r];e[r]=e[n],e[n]=u,n=r}}return t}function En(e,t){if(e.length!==t)throw new Error(`Expected ${t} dimensions, got ${e.length}`);return new Float32Array(e)}function Fr(e){for(let t=0;t<e.length;t++)if(!Number.isFinite(e[t]))throw new Error("Vector contains non-finite values")}function $t(e){let t=e.dimensions;if(!t||t<=0)throw new Error("dimensions must be a positive integer");let o=e.m??16,n=o*2,r=e.efConstruction??200,i=e.efSearch??50,s=Pr[e.distance??"cosine"];if(!s)throw new Error(`Unknown distance metric: ${e.distance}`);let u=1/Math.log(o),a=[],l=new Map,c=-1,d=-1,y=0,b=O(0);function x(){let w=Math.random();return w===0&&(w=Number.EPSILON),Math.floor(-Math.log(w)*u)}function A(w,$,R,I){let J=new Set;J.add($);let K=s(w,a[$].vector),U=[];en(U,{idx:$,dist:K});let L=[{idx:$,dist:K}];for(;U.length>0;){let C=Nr(U);if(L.length>=R){let X=-1/0;for(let j=0;j<L.length;j++)L[j].dist>X&&(X=L[j].dist);if(C.dist>X)break}let Z=a[C.idx].neighbors[I];if(Z)for(let X of Z){if(J.has(X))continue;J.add(X);let j=a[X];if(j.deleted)continue;let B=s(w,j.vector);if(L.length<R)en(U,{idx:X,dist:B}),L.push({idx:X,dist:B});else{let F=0,G=L[0].dist;for(let re=1;re<L.length;re++)L[re].dist>G&&(G=L[re].dist,F=re);B<G&&(en(U,{idx:X,dist:B}),L[F]={idx:X,dist:B})}}}return L}function T(w,$,R){let I=$,J=s(w,a[I].vector),K=!0;for(;K;){K=!1;let U=a[I].neighbors[R];if(!U)break;for(let L of U){let C=a[L];if(C.deleted)continue;let V=s(w,C.vector);V<J&&(I=L,J=V,K=!0)}}return I}function g(w,$){w.sort((I,J)=>I.dist-J.dist);let R=[];for(let I=0;I<Math.min(w.length,$);I++)R.push(w[I].idx);return R}function f(w,$,R){let I=R===0?n:o;a[w].neighbors[R].add($),a[$].neighbors[R].add(w),a[w].neighbors[R].size>I&&p(w,R,I),a[$].neighbors[R].size>I&&p($,R,I)}function p(w,$,R){let I=a[w],J=[];for(let U of I.neighbors[$])a[U].deleted||J.push({idx:U,dist:s(I.vector,a[U].vector)});let K=g(J,R);I.neighbors[$]=new Set(K)}function m(w,$){let R=En($,t);if(Fr(R),l.has(w)){let C=l.get(w),V=a[C];if(V.deleted){if(V.deleted=!1,V.vector=R,y++,c===-1)c=C,d=V.layer;else{for(let Z=V.layer;Z>=0;Z--)V.neighbors[Z]=new Set,h(C,Z);V.layer>d&&(c=C,d=V.layer)}b.set(y)}else{V.vector=R;for(let Z=V.layer;Z>=0;Z--){for(let X of V.neighbors[Z])a[X].neighbors[Z].delete(C);V.neighbors[Z]=new Set,h(C,Z)}}return}let I=x(),J=a.length,K=[];for(let C=0;C<=I;C++)K.push(new Set);let U={id:w,vector:R,layer:I,neighbors:K,deleted:!1};if(a.push(U),l.set(w,J),y++,c===-1){c=J,d=I,b.set(y);return}let L=c;for(let C=d;C>I;C--)L=T(R,L,C);for(let C=Math.min(I,d);C>=0;C--){let V=A(R,L,r,C),X=g(V,C===0?n:o);for(let j of X)j!==J&&f(J,j,C);V.length>0&&(V.sort((j,B)=>j.dist-B.dist),L=V[0].idx)}I>d&&(c=J,d=I),b.set(y)}function h(w,$){let R=c;if(R===w){let U=-1;for(let L=0;L<a.length;L++)if(L!==w&&!a[L].deleted&&a[L].layer>=$){U=L;break}if(U===-1)return;R=U}for(let U=Math.min(d,a[R].layer);U>$;U--)R=T(a[w].vector,R,U);let I=A(a[w].vector,R,r,$),K=g(I,$===0?n:o);for(let U of K)U!==w&&f(w,U,$)}function S(w){let $=l.get(w);if($===void 0)return!1;let R=a[$];if(R.deleted)return!1;if(R.deleted=!0,y--,b.set(y),$===c){let I=-1;for(let J=0;J<a.length;J++)a[J].deleted||(I===-1||a[J].layer>a[I].layer)&&(I=J);c=I,d=I===-1?-1:a[I].layer}return!0}function E(w,$=10){if(y===0)return[];let R=En(w,t),I=Math.min($,y),J=Math.max(i,I),K=c;for(let C=d;C>0;C--)K=T(R,K,C);let U=A(R,K,J,0);U.sort((C,V)=>C.dist-V.dist);let L=[];for(let C=0;C<U.length&&L.length<I;C++){let V=a[U[C].idx];V.deleted||L.push({id:V.id,distance:U[C].dist})}return L}function D(w){let $=l.get(w);return $===void 0?!1:!a[$].deleted}function M(){a.length=0,l.clear(),c=-1,d=-1,y=0,b.set(0),W(b)}return{add:m,remove:S,search:E,has:D,size:b,destroy:M}}function Mn(e,t){return xe(({emit:o})=>{let n=0,r=setInterval(()=>o(n++),e);return t?.unref&&typeof r=="object"&&"unref"in r&&r.unref(),()=>clearInterval(r)})}function Ve(e,t){return(o,n)=>{if(o!==0)return;let r=!1;function i(){r||(r=!0,clearTimeout(u),t?.removeEventListener("abort",s),n(1,void 0),n(2))}function s(){r||(r=!0,clearTimeout(u),t?.removeEventListener("abort",s),n(2,t.reason))}if(n(0,a=>{a===2&&!r&&(r=!0,clearTimeout(u),t?.removeEventListener("abort",s))}),t?.aborted){s();return}let u=setTimeout(i,e);t?.addEventListener("abort",s,{once:!0})}}function Pt(e){let t=e?.base??100,o=e?.factor??2,n=e?.maxDelay??3e4,r=e?.jitter??"none";return i=>{let s=Math.min(t*o**i,n);return qr(s,r)}}function qr(e,t){switch(t){case"none":return e;case"full":return Rn(0,e);case"equal":return e/2+Rn(0,e/2)}}function Rn(e,t){return e+Math.random()*(t-e)}function kn(e){let t=e.max,o=e.windowMs,n=e.now??Date.now,r=[];function i(){let s=n()-o;for(;r.length>0&&r[0]<=s;)r.shift()}return{tryAcquire(s=1){if(i(),r.length+s<=t){let u=n();for(let a=0;a<s;a++)r.push(u);return!0}return!1},acquire(s,u=1){return(a,l)=>{if(a!==0)return;let c=!1;if(l(0,b=>{b===2&&(c=!0)}),u>t){l(2,new RangeError(`Cannot acquire ${u} slots (max capacity is ${t})`));return}if(s?.aborted){l(2,s.reason);return}if(i(),r.length+u<=t){let b=n();for(let x=0;x<u;x++)r.push(b);c||l(1,0),c||l(2);return}let d=0;function y(){if(c)return;if(i(),r.length+u<=t){let g=n();for(let p=0;p<u;p++)r.push(g);let f=c;c=!0,f||(l(1,d),l(2));return}let b=r.length+u-t,x=r[b-1],A=x!==void 0?x+o-n():o,T=Math.max(1,A);d+=T,Y(Ve(Math.ceil(T),s),()=>{if(!c){if(s?.aborted){l(2,s.reason);return}y()}},{onEnd:g=>{g&&!c&&(c=!0,l(2,g))}})}y()}},available(){return i(),t-r.length},reset(){r.length=0}}}function Ln(e,t,o){let n,r=[],i=!1,s=new et(e.length),u=!1;function a(){i||(n&&n(),n=t())}let l=0,c=[];function d(b){if(!i){if(b===Ce){for(let x of r)x(ne,Ce);r.length=0,c.length=0,i=!0;try{n&&n()}finally{n=void 0}return}if(b===Ne){l++,s.reset(),u=!1;for(let x=0;x<c.length;x++)c[x]=l;try{n&&n()}finally{n=void 0}}for(let x of r)x(ne,b)}}Ge(),a();for(let b=0;b<e.length&&!i;b++){let x=b;c[x]=l,e[x].source(ie,(A,T)=>{if(A===ie){r.push(T),e.length===1&&T(ne,Pe);return}if(!i){if(A===ne){if(He(T)){d(T),c[x]=l;return}if(c[x]!==l)return;T===de?(s.empty()&&(u=!1),s.set(x)):T===Te&&s.test(x)&&(s.clear(x),s.empty()&&u&&a())}if(A===fe){if(c[x]!==l)return;s.test(x)?(s.clear(x),u=!0,s.empty()&&a()):s.empty()?a():u=!0}if(A===te){i=!0,n&&n(),n=void 0;for(let g of r)g(te);r.length=0}}})}je();let y=()=>{if(!i){i=!0,n&&n(),n=void 0;for(let b of r)b(te);r.length=0}};y.signal=b=>d(b),ve.register(y,{kind:"effect",...o,deps:e});for(let b of e)ve.registerEdge(b,y);return y}function Br(e){return e!=null&&typeof e.subscribe=="function"}function tn(e){return Br(e)?xe(({emit:t,complete:o,error:n})=>{let r=!1,i=e.subscribe({next:s=>{r||t(s)},error:s=>{r||n(s)},complete:()=>{r||o()}});return()=>{r=!0,i.unsubscribe()}}):xe(({emit:t,complete:o,error:n})=>{let r=Y(ce(e),i=>t(i),{onEnd:i=>i!==void 0?n(i):o()});return()=>r.unsubscribe()},{resubscribable:!0})}var Jr=Symbol.for("callbag-recharge:topic-internal"),Vr=Symbol.for("callbag-recharge:topic-log"),zr=0;function Cn(e){return{seq:e.seq,value:e.value.value,timestamp:e.value.timestamp,key:e.value.key,priority:e.value.priority,headers:e.value.headers}}function In(e,t){let o=`sub-${++zr}`,n=t?.name??o,r=t?.mode??"exclusive",i=t?.batchSize??1,s=t?.ackTimeout??3e4,u=e[Jr],a=e[Vr],l,c=r==="shared"||r==="failover"||r==="key_shared",d;c?(d=u.getOrCreateGroup(n),d.consumers.add(o),d.consumers.size===1&&(d.cursor=y()),l=d.cursor):l=y();function y(){return t?.initialPosition==="earliest"?a.headSeq>0?a.headSeq:1:typeof t?.initialPosition=="number"?t.initialPosition:a.tailSeq+1}let b=new Map,x=new Map,A=[],T=t?.retry?.maxRetries??3,g=t?.retry?.backoff??Pt(),f=t?.deadLetterTopic,p=!1,m=!1,h=O(l,{name:`${n}:pos`}),S=O(0,{name:`${n}:pending`}),E=ue([a.lengthStore,a.events,h],()=>{let B=a.tailSeq,F=h.get(),G=a.headSeq,re=G>0?Math.max(F,G):F;return Math.max(0,B-re+1)},{name:`${n}:backlog`}),D=ue([E,a.events,h],()=>{if(E.get()<=0)return 0;let F=h.get(),G=a.headSeq,re=G>0?Math.max(F,G):F,me=a.get(re);return me?Math.max(0,Date.now()-me.value.timestamp):0},{name:`${n}:lag`}),M=t?.persistence;function w(){if(!M)return;let B=tn(M.save(`${n}:cursor`,l)),F=ae(B,()=>{});setTimeout(()=>F.unsubscribe(),0)}function $(){return r!=="failover"||!d?!0:d.consumers.values().next().value===o}function R(B){let F=0;for(let G=0;G<B.length;G++)F=(F<<5)-F+B.charCodeAt(G)|0;return Math.abs(F)}function I(B){if(r!=="key_shared"||!d||!B)return!0;let F=Array.from(d.consumers),G=R(B)%F.length;return F[G]===o}function J(B){if(p||m)return[];if(!$())return[];let F=B??i,G=[],re=a.headSeq;re>0&&l<re&&(l=re,c&&d&&(d.cursor=Math.max(d.cursor,re)));let me=Date.now(),pe=[],Ue=[];for(let N of A)N.readyAt<=me&&pe.length<F?pe.push(N):Ue.push(N);A.length=0,A.push(...Ue);for(let N of pe){let Q=a.get(N.seq);if(Q){let k=Cn(Q);G.push(k),K(N.seq)}}let We=F-G.length,v=-1;if(We>0){let N=c&&d?d.cursor:l,Q=a.tailSeq,k=0;for(let _=N;_<=Q&&k<We;_++){let P=a.get(_);if(!P||r==="key_shared"&&!I(P.value.key))continue;if(r==="shared"&&d&&d.consumers.size>1){let q=Array.from(d.consumers),ee=d.roundRobinIndex%q.length;if(q[ee]!==o)continue;d.roundRobinIndex++}let H=Cn(P);G.push(H),K(_),_>v&&(v=_),k++}if(v>=0){let _=v+1;c&&d&&(d.cursor=Math.max(d.cursor,_)),l=c&&d?d.cursor:_}}return G.length>0&&z(()=>{h.set(l),S.update(N=>N+G.length)}),G}function K(B){let F;s>0&&(F=setTimeout(()=>{b.has(B)&&C(B)},s)),b.set(B,{timer:F})}function U(B){let F=b.get(B);F&&(F.timer&&clearTimeout(F.timer),b.delete(B),x.delete(B),S.update(G=>Math.max(0,G-1)),w())}function L(B,F){if(f){let G=a.get(B);G&&f.publish(G.value.value,{key:G.value.key,headers:{...G.value.headers,"x-original-topic":e.name,"x-retry-count":String(F),"x-original-seq":String(B)}})}x.delete(B)}function C(B){let F=b.get(B);if(!F)return;F.timer&&clearTimeout(F.timer),b.delete(B),S.update(pe=>Math.max(0,pe-1));let G=x.get(B)??{attempts:0},re=G.attempts+1;if(re>T){L(B,re);return}let me=g(re-1,void 0,G.prevDelay);if(me===null){L(B,re);return}x.set(B,{attempts:re,prevDelay:me}),A.push({seq:B,readyAt:Date.now()+me})}function V(B){if(m)return;let F;B==="earliest"?F=a.headSeq>0?a.headSeq:1:B==="latest"?F=a.tailSeq+1:F=B,l=F,c&&d&&(d.cursor=F),h.set(F);for(let G of b.values())G.timer&&clearTimeout(G.timer);b.clear(),S.set(0),A.length=0,x.clear(),w()}let Z,X;if(M){let B=tn(M.load(`${n}:cursor`));X=B,Z=Ln([B],()=>{let F=B.get();typeof F=="number"&&V(F)})}function j(){if(!m){m=!0,Z?.(),X&&W(X);for(let B of b.values())B.timer&&clearTimeout(B.timer);b.clear(),A.length=0,x.clear(),d&&(d.consumers.delete(o),d.consumers.size===0&&u.removeGroup(n)),z(()=>{W(h),W(S),W(E),W(D)})}}return{get name(){return n},get mode(){return r},pull:J,ack:U,nack:C,seek:V,position:h,backlog:E,pending:S,lag:D,pause(){p||(p=!0,h.signal(Fe),S.signal(Fe))},resume(){p&&(p=!1,h.signal(qe),S.signal(qe))},get isPaused(){return p},destroy:j}}function Dn(e,t,o){let n=o?.threshold??0,r=null,i=!1;function s(){if(i)return 0;let u=e.toArray();if(u.length===0)return 0;let a=new Map,l=[];for(let y of u){let b=t(y.value);a.has(b)||l.push(b),a.set(b,y.value)}let c=l.map(y=>a.get(y)),d=u.length-c.length;if(d===0)return 0;i=!0;try{e.clear(),e.appendMany(c)}finally{i=!1}return d}return n>0&&(r=ae(e.events,u=>{u?.type==="append"&&e.length>=n&&s()})),{compact:s,destroy(){r?.unsubscribe(),r=null}}}var Ur=0;Nt.from=function(t,o){let n=Nt({...o,id:t.id});for(let r of t.entries)n.append(r.value);return n};function Nt(e){let t=++Ur,o=e?.id??`rlog-${t}`,n=e?.maxSize??0,r=n>0,i=[],s=0,u=0,a=0,l=1,c=O(0,{name:`${o}:ver`}),d=O(void 0,{name:`${o}:events`,equals:()=>!1}),y=new Map,b=!1;function x(){if(!r)return i.slice();if(u===0)return[];let g=new Array(u);for(let f=0;f<u;f++)g[f]=i[(s+f)%n];return g}function A(g){if(!r)return i[g];if(!(g<0||g>=u))return i[(s+g)%n]}let T={get id(){return o},get version(){return c.get()},append(g){if(b)return-1;let f=++a,p={seq:f,value:g};return r?(u<n?(i[(s+u)%n]=p,u++):(i[s]=p,s=(s+1)%n),l=a-u+1):(i.push(p),l=i.length>0?i[0].seq:1),c.update(m=>m+1),d.set({type:"append",seq:f,value:g}),f},appendMany(g){if(b||g.length===0)return[];let f=[];return z(()=>{for(let p of g)f.push(T.append(p))}),f},get(g){if(r)return g<l||g>a||u===0?void 0:A(g-l);let f=g-l;if(!(f<0||f>=i.length))return i[f]},slice(g,f){let p=g??l,m=f??a;if((r?u:i.length)===0)return[];let S=Math.max(p,l),E=Math.min(m,a);if(S>E)return[];let D=S-l,M=E-l;if(!r)return i.slice(D,M+1);let w=[];for(let $=D;$<=M;$++)w.push(i[(s+$)%n]);return w},toArray(){return x()},get length(){return r?u:i.length},get headSeq(){return(r?u:i.length)>0?l:0},get tailSeq(){return a},trimHead(g){let f=r?u:i.length;if(f===0||g<=0)return 0;let p=Math.min(g,f);return z(()=>{r?(s=(s+p)%n,u-=p):i.splice(0,p),l+=p,c.update(m=>m+1),d.set({type:"trim"})}),p},clear(){(r?u:i.length)!==0&&z(()=>{r?(u=0,s=0):i.length=0,l=a+1,c.update(f=>f+1),d.set({type:"clear"})})},lengthStore:ue([c],()=>r?u:i.length,{name:`${o}:length`}),latest:ue([c],()=>{if((r?u:i.length)!==0)return r?i[(s+u-1)%n]:i[i.length-1]},{name:`${o}:latest`}),tail(g){let f=y.get(g);return f||(f=ue([c],()=>{let p=x();return g===void 0||g>=p.length?p:p.slice(-g)},{name:`${o}:tail${g??""}`}),y.set(g,f),f)},events:d,snapshot(){return{type:"reactiveLog",id:o,version:c.get(),entries:x().map(g=>({seq:g.seq,value:g.value})),headSeq:(r?u:i.length)>0?l:0,tailSeq:a}},destroy(){b||(b=!0,z(()=>{for(let g of y.values())W(g);y.clear(),W(T.lengthStore),W(T.latest),W(d),W(c),i.length=0,u=0}))}};return T}var Wr=0;function Ft(e){return{seq:e.seq,value:e.value.value,timestamp:e.value.timestamp,key:e.value.key,priority:e.value.priority,headers:e.value.headers}}function qt(e,t){let o=++Wr,n=t?.namespace,r=n?n.prefix(e):e,i=`topic-${r}-${o}`,s=Nt({id:`${i}:log`,maxSize:t?.maxSize}),u;if(t?.compaction){let R=t.compaction.keyFn;u=Dn(s,I=>R(I.value),{threshold:t.compaction.threshold})}let a=t?.dedup?.windowMs??6e4,l=new Map,c;a>0&&(c=setInterval(()=>{let R=Date.now();for(let[I,J]of l)R-J>=a&&l.delete(I)},Math.min(a,3e4)),c&&typeof c=="object"&&"unref"in c&&c.unref());let d=t?.ttl??0;function y(){if(d<=0||s.length===0)return 0;let R=Date.now()-d,I=0,J=s.toArray();for(let K of J)if(K.value.timestamp<R)I++;else break;return I>0&&s.trimHead(I),I}let b=!1,x=!1,A=new Set,T=new Map,g=O(0,{name:`${i}:pubCount`}),f=O(0,{name:`${i}:ver`}),p=s.lengthStore,m=ue([s.latest],()=>{let R=s.latest.get();return R?Ft(R):void 0},{name:`${i}:latest`}),h=t?.schema,S=t?.persistence?n?n.checkpoint(t.persistence):t.persistence:void 0,E={getOrCreateGroup(R){let I=T.get(R);return I||(I={cursor:s.tailSeq+1,roundRobinIndex:0,consumers:new Set},T.set(R,I)),I},removeGroup(R){T.delete(R)}};function D(R,I){if(x||b)return-1;d>0&&y(),h&&(R=h.parse(R));let J=I?.dedupKey;if(J){let L=Date.now(),C=l.get(J);if(C!==void 0&&L-C<a)return-1;l.set(J,L)}let K={value:R,timestamp:Date.now(),key:I?.key,priority:I?.priority,headers:I?.headers};if(I?.delay&&I.delay>0){let L=setTimeout(()=>{A.delete(L),!x&&!b&&z(()=>{s.append(K),g.update(C=>C+1),f.update(C=>C+1)})},I.delay);return A.add(L),-1}return z(()=>{let L=s.append(K);return g.update(C=>C+1),f.update(C=>C+1),L})}function M(R){let I=s.get(R);return I?Ft(I):void 0}function w(R,I){return s.slice(R,I).map(Ft)}let $={get id(){return i},get version(){return f.get()},get name(){return r},publish:D,get(R){return M(R)},slice(R,I){return w(R,I)},get headSeq(){return s.headSeq},get tailSeq(){return s.tailSeq},depth:p,latest:m,publishCount:g,peek(){if(s.length===0)return;let R=s.get(s.headSeq);return R?Ft(R):void 0},expireMessages(){return y()},pause(){if(!b){b=!0;for(let R of A)clearTimeout(R);A.clear(),g.signal(Fe),f.signal(Fe)}},resume(){b&&(b=!1,g.signal(qe),f.signal(qe))},get paused(){return b},destroy(){if(!x){x=!0;for(let R of A)clearTimeout(R);A.clear(),c&&clearInterval(c),l.clear(),u?.destroy(),z(()=>{W(g),W(f),W(m),s.destroy()}),T.clear()}}};return $[Symbol.for("callbag-recharge:topic-internal")]=E,$[Symbol.for("callbag-recharge:topic-log")]=s,$}var Hr=1e4;function Bt(e,t){return`jobQueue:${e}:job:${t}`}function On(e){return`jobQueue:${e}:index`}var Gr=new AbortController;function Jt(e){typeof e=="function"&&Y(e,()=>{})}function $n(e,t){if(typeof e=="function"){Y(e,o=>t(o));return}t(e)}function ze(e,t,o){let n=o?.concurrency??1,r=o?.ackTimeout??3e4,i=o?.stallInterval??5e3,s=o?.stalledJobAction??"none",u=o?.retry?.maxRetries??3,a=o?.retry?.backoff??Pt(),l=o?.persistence,c;o?.rateLimit&&(c=kn({max:o.rateLimit.max,windowMs:o.rateLimit.windowMs}));let d=O(!1,{name:`${e}:paused`}),y=!1,b=0,x=new AbortController,A=new Map,T=new Map,g=[],f=[],p=[],m={completed:new Set,failed:new Set,stalled:new Set,progress:new Set},h=O(0,{name:`${e}:active`}),S=O(0,{name:`${e}:completed`}),E=O(0,{name:`${e}:failed`}),D=O(0,{name:`${e}:waiting`}),M=O(0,{name:`${e}:progress`}),w=qt(`${e}:jobs`,o?.topicOptions),$=In(w,{name:`${e}:worker`,mode:"shared",initialPosition:"earliest",ackTimeout:0});function R(){let v=new AbortController;return x.signal.addEventListener("abort",()=>v.abort(),{once:!0}),v}function I(v){return{seq:v.seq,data:v.data,status:v.status,result:v.result,error:v.error,duration:v.duration,attempts:v.attempts,progress:v.progress}}function J(v,N){let Q=I(N);for(let k of m[v])try{k(Q)}catch{}}function K(){y||D.set(Math.max(0,$.backlog.get()))}function U(){if(y)return;let v=0,N=0;for(let Q of A.values())Q.status==="active"&&(v+=Q.progress,N++);M.set(N>0?v/N:0)}function L(v){if(!l)return;let N={seq:v.seq,data:v.data,status:v.status,result:v.result,error:v.error,duration:v.duration,attempts:v.attempts,progress:v.progress,runAt:v.runAt};Jt(l.save(Bt(e,v.seq),N))}function C(){if(!l)return;let v=new Set;for(let N of A.keys())v.add(N);for(let N of T.keys())v.add(N);Jt(l.save(On(e),Array.from(v)))}function V(v){l&&(Jt(l.clear(Bt(e,v))),C())}function Z(v){for(T.set(v.seq,v),g.push(v.seq);T.size>Hr;){let N=g.shift();N!==void 0&&(T.delete(N),l&&Jt(l.clear(Bt(e,N))))}}function X(){for(;p.length>0&&b<n;){let v=p.shift();if(!(v.removed||y)){if(d.get()){p.unshift(v);return}j(v)}}}function j(v){if(y||v.removed){F(v);return}if(b>=n){p.push(v);return}if(c&&!c.tryAcquire()){f.push(v),Y(c.acquire(v.abort.signal),()=>{let N=f.indexOf(v);if(N>=0&&f.splice(N,1),y||v.removed){F(v);return}if(b>=n){p.push(v);return}if(d.get()){p.push(v);return}B(v)},{onEnd:N=>{if(N!==void 0){let Q=f.indexOf(v);Q>=0&&f.splice(Q,1),F(v)}}});return}B(v)}function B(v){if(v.removed)return;v.status="active",v.startTime=Date.now(),v.attempts++,v.progress=0,b++,z(()=>{h.update(Q=>Q+1),K()}),L(v);let N=Q=>{y||v.removed||(v.progress=Math.max(0,Math.min(1,Q)),U(),J("progress",v),L(v))};Y(ce(t(v.abort.signal,v.data,N)),Q=>{if(!v.removed){if(y){F(v);return}v.status="completed",v.result=Q,v.progress=1,v.duration=Date.now()-v.startTime,b--,$.ack(v.seq),z(()=>{h.update(k=>Math.max(0,k-1)),S.update(k=>k+1),K(),U()}),Z(v),L(v),C(),J("completed",v),F(v)}},{onEnd:Q=>{if(Q!==void 0&&!v.removed){if(y){F(v);return}if(v.duration=Date.now()-v.startTime,b--,z(()=>{h.update(k=>Math.max(0,k-1)),U()}),v.attempts<=u){let k=a(v.attempts-1,Q,void 0);if(k===null){G(v,Q),F(v);return}let _=()=>{if(!v.removed){if(d.get()){let P=ae(d,H=>{if(!H){if(P.unsubscribe(),y||v.removed){F(v);return}v.abort=R(),j(v)}});return}if(y){F(v);return}v.abort=R(),j(v)}};k>0?Y(Ve(k,v.abort.signal),()=>{_()},{onEnd:P=>{P!==void 0&&F(v)}}):_();return}G(v,Q),F(v)}}})}function F(v){A.delete(v.seq),y||(X(),me())}function G(v,N){if(v.status="failed",v.error=N,$.ack(v.seq),z(()=>{E.update(Q=>Q+1),K(),U()}),Z(v),L(v),C(),o?.deadLetterTopic)try{o.deadLetterTopic.publish(v.data,{headers:{"x-original-queue":e,"x-retry-count":String(v.attempts),"x-original-seq":String(v.seq)}})}catch{}J("failed",v)}let re=!1;function me(){if(!re&&!(d.get()||y)){re=!0;try{let v=Math.max(10,n*10),N=0;for(;N<v;){if(d.get()||y)return;let Q=n-b;if(Q<=0)return;let k=$.pull(Q);if(k.length===0)return;K(),k.length>1&&k.sort((_,P)=>{let H=_.priority??Number.MAX_SAFE_INTEGER,q=P.priority??Number.MAX_SAFE_INTEGER;return H-q});for(let _ of k){let P={seq:_.seq,data:_.value,status:"waiting",attempts:0,progress:0,abort:R()};A.set(_.seq,P);let H=_.headers?.["x-run-at"];if(H){let q=Number(H),ee=q-Date.now();if(ee>0){P.status="scheduled",P.runAt=q,L(P),C(),Y(Ve(ee,P.abort.signal),()=>{if(y||P.removed){F(P);return}if(d.get()){p.push(P);return}j(P)},{onEnd:oe=>{oe!==void 0&&F(P)}});continue}}j(P)}N++}}finally{re=!1}}}let pe=ae(w.depth,()=>{!d.get()&&!y&&(K(),me())}),Ue=Mn(i),We=ae(Ue,()=>{if(y)return;let v=Date.now();for(let N of A.values())N.status==="active"&&N.startTime&&v-N.startTime>r&&((s==="cancel"||s==="retry")&&(N.status="stalled"),J("stalled",N),(s==="cancel"||s==="retry")&&(N.abort.abort(),s==="cancel"&&(N.attempts=u+1)))});return l&&$n(l.load(On(e)),v=>{if(Array.isArray(v))for(let N of v)$n(l.load(Bt(e,N)),Q=>{if(Q&&(Q.status==="completed"||Q.status==="failed")){let k={seq:Q.seq,data:Q.data,status:Q.status,result:Q.result,error:Q.error,duration:Q.duration,attempts:Q.attempts,progress:Q.progress??0,abort:Gr};Z(k)}})}),K(),me(),{get name(){return e},add(v,N){let Q={...N?.headers};N?.runAt&&(Q["x-run-at"]=String(N.runAt.getTime()));let k=w.publish(v,{...N,headers:Q});return K(),k},addBatch(v,N){let Q=[];return z(()=>{for(let k of v){let _={...N?.headers};N?.runAt&&(_["x-run-at"]=String(N.runAt.getTime())),Q.push(w.publish(k,{...N,headers:_}))}}),K(),Q},getJob(v){let N=A.get(v)??T.get(v);return N?I(N):void 0},remove(v){let N=A.get(v);if(!N)return!1;let Q=N.status==="active";N.removed=!0,N.abort.abort(),N.status="failed",N.error=new Error("Job removed"),$.ack(N.seq),Q&&(b--,z(()=>{h.update(_=>Math.max(0,_-1)),U()})),z(()=>{E.update(_=>_+1),K()}),J("failed",N),A.delete(v),V(v);let k=f.indexOf(N);return k>=0&&f.splice(k,1),!0},active:h,completed:S,failed:E,waiting:D,progress:M,on(v,N){return m[v].add(N),()=>{m[v].delete(N)}},pause(){d.get()||(d.set(!0),$.pause())},resume(){d.get()&&(d.set(!1),$.resume(),X(),me())},get isPaused(){return d.get()},get inner(){return{topic:w}},destroy(){y||(y=!0,x.abort(),pe.unsubscribe(),We.unsubscribe(),$.destroy(),w.destroy(),A.clear(),T.clear(),g.length=0,f.length=0,p.length=0,z(()=>{W(d),W(h),W(S),W(E),W(D),W(M)}))}}}function Pn(e,t){if(!t)return!0;if(t.keys&&t.keys.length>0&&(!e.key||!t.keys.includes(e.key)))return!1;if(t.headers){if(!e.headers)return!1;for(let[o,n]of Object.entries(t.headers))if(e.headers[o]!==n)return!1}return!(t.predicate&&!t.predicate(e))}var jr=0;function Nn(e,t,o){let n=++jr,r=o?.name??`bridge-${n}`,i=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${r}-${n}-${Date.now()}`,s=o?.backpressureThreshold??100,u=new Map,a=new Map,l=new Map,c=new Map;function d(T){let g=a.get(T);return g||(g=O(!1,{name:`${r}:bp:${T}`}),a.set(T,g)),g}function y(T,g,f){if(!l.has(T))return;let p=l.get(T);Pn(g,f)&&Pn(g,p)&&(g.headers?.["x-bridge-origin"]||e.send({type:"publish",topic:T,message:g,originId:i}))}function b(T,g){let f=g.topic,p=g.filter;l.has(T)||l.set(T,void 0);let m={topic:f,filter:p,localSub:null,depthSub:null,lastForwardedSeq:f.tailSeq};return m.localSub=ae(f.latest,h=>{if(!h||h.seq<=m.lastForwardedSeq)return;let S=m.lastForwardedSeq+1;if(h.seq>S){let E=f.slice(S,h.seq-1);for(let D of E)y(T,D,p)}y(T,h,p),m.lastForwardedSeq=h.seq}),m.depthSub=ae(f.depth,h=>{let S=h>s;c.get(T)!==S&&(c.set(T,S),e.send({type:"backpressure",topic:T,lagging:S}))}),m}let x=!1,A=e.onMessage(T=>{if(!x)switch(T.type){case"publish":{if(T.originId===i)return;let g=u.get(T.topic);if(!g)return;let f=T.message;g.topic.publish(f.value,{key:f.key,priority:f.priority,headers:{...f.headers,"x-bridge-origin":T.originId}});break}case"subscribe":{l.set(T.topic,T.filter);break}case"unsubscribe":{l.delete(T.topic);break}case"ack":break;case"backpressure":{d(T.topic).set(T.lagging);break}case"admin":break}});for(let[T,g]of Object.entries(t)){let f=b(T,g);u.set(T,f),e.send({type:"subscribe",topic:T,filter:g.filter})}return{get name(){return r},get originId(){return i},status:e.status,get backpressure(){return a},addTopic(T,g){if(x||u.has(T))return;let f=b(T,g);u.set(T,f),e.send({type:"subscribe",topic:T,filter:g.filter})},removeTopic(T){if(x)return;let g=u.get(T);if(!g)return;g.localSub.unsubscribe(),g.depthSub.unsubscribe(),u.delete(T);let f=a.get(T);f&&(W(f),a.delete(T)),e.send({type:"unsubscribe",topic:T})},destroy(){if(!x){x=!0;for(let T of u.values())T.localSub.unsubscribe(),T.depthSub.unsubscribe();u.clear(),l.clear(),c.clear(),z(()=>{for(let T of a.values())W(T)}),a.clear(),A(),e.close()}}}}function Fn(e,t,o){if(e.size.get()===0)return{isDuplicate:!1,similarity:0};let n=e.search(t,1);if(n.length===0)return{isDuplicate:!1,similarity:0};let r=n[0],i=1-r.distance;return i>=o?{isDuplicate:!0,existingId:r.id,similarity:i}:{isDuplicate:!1,similarity:i}}var Kr=`You are a memory extraction system. Given a conversation, extract discrete factual statements worth remembering for future conversations.
5
5
 
6
6
  Output ONLY a JSON array. Each element has:
7
7
  - "content": concise factual statement (1-2 sentences)
8
8
  - "importance": float 0-1 (1.0 = critical fact/preference, 0.5 = useful context, 0.1 = minor detail)
9
9
  - "tags": string array of categories from: ["preference", "fact", "skill", "opinion", "context", "personal", "technical", "project"]
10
+ - "category": one of ["profile","preferences","entities","events","cases","patterns"] (or custom string if needed)
10
11
 
11
12
  Rules:
12
13
  - Extract ONLY genuine facts, preferences, and lasting context
@@ -17,18 +18,39 @@ Rules:
17
18
 
18
19
  Example output:
19
20
  [
20
- {"content": "User prefers TypeScript over JavaScript", "importance": 0.8, "tags": ["preference", "technical"]},
21
- {"content": "User is building a state management library", "importance": 0.9, "tags": ["project", "technical"]}
22
- ]`;function Gt(e,t){let o=t??er,n=e.map(r=>`${r.role}: ${r.content}`).join(`
23
- `);return[{role:"system",content:o},{role:"user",content:n}]}function Kt(e){let t=e.trim();if(!t)return[];try{let r=JSON.parse(t);if(Array.isArray(r))return r.map(Et).filter(i=>i!==null)}catch{}try{let r=t.indexOf("["),i=t.lastIndexOf("]");if(r!==-1&&i>r){let s=JSON.parse(t.slice(r,i+1));if(Array.isArray(s))return s.map(Et).filter(u=>u!==null)}}catch{}let o=t.split(`
24
- `).filter(r=>r.trim()),n=[];for(let r of o)try{let i=JSON.parse(r.trim().replace(/^[-*]\s*/,"")),s=Et(i);s&&n.push(s)}catch{}return n}function Et(e){if(!e||typeof e!="object")return null;let t=e,o=typeof t.content=="string"?t.content.trim():"";if(!o)return null;let n=typeof t.importance=="number"?Math.max(0,Math.min(1,t.importance)):.5,r=Array.isArray(t.tags)?t.tags.filter(i=>typeof i=="string"):[];return{content:o,importance:n,tags:r}}function tr(e){let t=e.meta.get();return{id:t.id,createdAt:t.createdAt,updatedAt:t.updatedAt,accessedAt:t.accessedAt,accessCount:t.accessCount,importance:t.importance,tags:Array.from(t.tags)}}function nr(e,t){let o=e.nodes.get().map(r=>({id:r.id,content:r.content.get(),meta:tr(r)})),n={};for(let[r,i]of t)n[r]=Array.from(i);return{nodes:o,embeddings:n}}function Qt(e,t,o,n,r){let i=!1,s=!1,u=X(e.nodes,()=>{if(i||s)return;let a=nr(e,o),d=n.save(r,a);d!==void 0&&V(d,()=>{},{onEnd:y=>{}})});function c(){let a=n.load(r);if(a!=null){if(typeof a!="function"){s=!0,Yt(a,e,t,o),s=!1;return}s=!0,V(Y(a),d=>{d&&typeof d=="object"&&Yt(d,e,t,o),s=!1})}}function l(){i=!0,u.unsubscribe()}return{dispose:l,restore:c}}function Yt(e,t,o,n){if(!(!e.nodes||!Array.isArray(e.nodes))){for(let r of e.nodes){let i=t.add(r.content,{id:r.id,importance:r.meta.importance,tags:r.meta.tags,createdAt:r.meta.createdAt,updatedAt:r.meta.updatedAt,accessedAt:r.meta.accessedAt});if(i)for(let s=0;s<r.meta.accessCount;s++)i.touch()}if(e.embeddings)for(let[r,i]of Object.entries(e.embeddings)){let s=new Float32Array(i);o.add(r,s),n.set(r,s)}}}var wt="scope:";function kt(e){if(!e)return[];let t=[];if(e.userId&&t.push(`${wt}user:${e.userId}`),e.agentId&&t.push(`${wt}agent:${e.agentId}`),e.tags)for(let o of e.tags)t.push(`${wt}${o}`);return t}function Xt(e,t){for(let o of t)if(!e.has(o))return!1;return!0}function Zt(e){let t=e.name??"agentMemory",o=e.maxSize??1e4,n=e.dedupThreshold??.85,r=e.llm,i=e.embed,s=Ae({maxSize:o,weights:e.weights}),u=dt({dimensions:e.dimensions}),c=new Map,l=I("idle",{name:`${t}.status`}),a=I(void 0,{name:`${t}.error`}),d=I([],{name:`${t}.results`}),y=I([],{name:`${t}.lastExtracted`}),b=e.adapter?Qt(s,u,c,e.adapter,t):null;b?.restore();let E=null,w=null,R=null,h=0;function m(x,T){E?.abort(),E=new AbortController;let L=E.signal,A=kt(T),C=++h;$(()=>{l.set("extracting"),a.set(void 0)}),R?.unsubscribe();let O=Gt(x,e.extractionPrompt);r.generate(O),R=X(r.status,B=>{if(!(L.aborted||C!==h))if(B==="completed"){let _=r.get(),v=Kt(_);if(v.length===0){$(()=>{l.set("idle"),y.set([])});return}l.set("embedding"),p(v,A,L)}else B==="errored"&&$(()=>{a.set(r.error.get()),l.set("error")})})}function p(x,T,L){let A=0;for(let C of x){if(L.aborted)return;V(Y(i(C.content)),O=>{if(L.aborted)return;let B=Wt(u,O,n);if(B.isDuplicate&&B.existingId){let _=s.get(B.existingId);if(_){_.update(C.content),_.setImportance(Math.max(_.meta.get().importance,C.importance));for(let v of C.tags)_.tag(v);for(let v of T)_.tag(v)}u.add(B.existingId,O),c.set(B.existingId,O)}else{let _=[...C.tags,...T],v=s.add(C.content,{importance:C.importance,tags:_});v&&(u.add(v.id,O),c.set(v.id,O))}A++,A===x.length&&$(()=>{l.set("idle"),y.set(x)})},{onEnd:O=>{L.aborted||(A++,O!==void 0?$(()=>{a.set(O),l.set("error")}):A===x.length&&$(()=>{l.set("idle"),y.set(x)}))}})}}function f(x,T,L=10){w?.abort(),w=new AbortController;let A=w.signal,C=kt(T);$(()=>{l.set("searching"),a.set(void 0)}),V(Y(i(x)),O=>{if(A.aborted)return;let B=u.search(O,L*2),_=[];for(let v of B){if(_.length>=L)break;let k=s.get(v.id);k&&(C.length>0&&!Xt(k.meta.get().tags,C)||(_.push({node:k,score:Math.max(0,1-v.distance)}),k.touch()))}$(()=>{d.set(_),l.set("idle")})},{onEnd:O=>{O!==void 0&&!A.aborted&&$(()=>{a.set(O),l.set("error")})}})}function g(x){let T=kt(x);if(T.length===0)return s.nodes.get();let L=s.byTag(T[0]);return T.length===1?L:L.filter(A=>Xt(A.meta.get().tags,T))}function S(x,T){let L=s.get(x);L&&(L.update(T),V(Y(i(T)),A=>{u.add(x,A),c.set(x,A)},{onEnd:A=>{A!==void 0&&a.set(A)}}))}function M(x){return u.remove(x),c.delete(x),s.remove(x)}function D(){E?.abort(),w?.abort(),R?.unsubscribe(),b?.dispose(),s.destroy(),u.destroy(),c.clear(),N(l),N(a),N(d),N(y)}return{add:m,search:f,results:d,getAll:g,update:S,delete:M,status:l,error:a,size:s.size,lastExtracted:y,inner:{collection:s,vectorIndex:u},destroy:D}}function ft(e,t){let o=t?.name??"chatStream",n=I([],{name:`${o}.messages`}),r=I("",{name:`${o}.partial`}),i=I(!1,{name:`${o}.streaming`}),s=I(void 0,{name:`${o}.error`}),u=null,c=null,l=!1,a=!1;function d(){u&&(u.abort(),u=null),i.set(!1)}function y(m){l=!1,i.set(!0),r.set(""),s.set(void 0);function p(){let f=n.get(),g="",S;try{S=e(m,f)}catch(M){r.set(""),i.set(!1),s.set(M),u=null,t?.onError?.(M);return}V(De(S),M=>{m.aborted||(g+=M,r.set(g))},{onEnd:M=>{if(!(m.aborted||l))if(M!==void 0){if(g.length>0){let D={role:"assistant",content:g};n.update(x=>[...x,D])}r.set(""),i.set(!1),s.set(M),u=null,t?.onError?.(M)}else{let D={role:"assistant",content:g};n.update(x=>[...x,D]),r.set(""),i.set(!1),u=null,t?.onComplete?.(g)}}})}if(t?.rateLimiter){if(!t.rateLimiter.tryAcquire()){V(t.rateLimiter.acquire(m,1),()=>{m.aborted||p()},{onEnd:g=>{if(g!==void 0){if(m.aborted)return;r.set(""),i.set(!1),s.set(g),u=null}}});return}if(m.aborted)return}p()}function b(m){c=m,t?.systemPrompt&&!a&&(a=!0,n.update(g=>[{role:"system",content:t.systemPrompt},...g]));let p={role:"user",content:m};n.update(g=>[...g,p]),d(),u=new AbortController;let f=u.signal;y(f)}function E(){if(!i.get())return;l=!0;let m=r.get();if(d(),m.length>0){let p={role:"assistant",content:m};n.update(f=>[...f,p])}r.set("")}function w(){if(c===null)return;let p=[...n.get()];p.length>0&&p[p.length-1].role==="assistant"&&(p=p.slice(0,-1)),p.length>0&&p[p.length-1].role==="user"&&(p=p.slice(0,-1)),n.set(p),b(c)}function R(){d(),n.set([]),r.set(""),s.set(void 0),c=null,a=!1}function h(m){n.set(m),m.length>0&&m[0].role==="system"&&(a=!0)}return{send:b,stop:E,retry:w,clear:R,messages:n,partial:r,streaming:i,error:s,setMessages:h}}function rr(e){let t=0;for(let o of e)t+=Math.ceil(o.content.split(/\s+/).filter(Boolean).length*1.3);return t}var or="Summarize the following conversation concisely, preserving key facts, decisions, and context. Output only the summary, no preamble.";function en(e){let t=e.maxTokens??2e3,o=e.summaryPrompt??or,n=I("",{name:e.name??"conversationSummary"}),r=!1,i=X(e.llm.status,c=>{if(r)if(c==="completed"){r=!1;let l=e.llm.get();l&&n.set(l)}else(c==="errored"||c==="pending")&&(r=!1)}),s=X(e.chat.messages,c=>{if(r||c.length===0||c[c.length-1].role!=="assistant"||e.llm.status.get()==="active"||rr(c)<=t)return;r=!0;let l=c.map(d=>`${d.role}: ${d.content}`).join(`
25
- `),a=[{role:"user",content:`${o}
26
-
27
- ${l}`}];try{e.llm.generate(a)}catch{r=!1}});function u(){s.unsubscribe(),i.unsubscribe(),N(n)}return{get:()=>n.get(),source:(c,l)=>n.source(c,l),destroy:u}}function tn(e){let t=e.name??"conversationThread",o=new Map,n=I("",{name:`${t}.shared`}),r=I(0,{name:`${t}.threadCount`});function i(y,b){if(o.has(y))throw new Error(`Thread "${y}" already exists`);let w=ft((h,m)=>{let p=n.get();if(p){let f=m.findIndex(M=>M.role!=="system"),g=f===-1?m.length:f,S=[...m];return S.splice(g,0,{role:"system",content:`[Shared Context]
28
- ${p}`}),e.factory(h,S)}return e.factory(h,m)},{name:`${t}.${y}`,systemPrompt:b?.systemPrompt,rateLimiter:b?.rateLimiter??e.defaults?.rateLimiter,onComplete:b?.onComplete??e.defaults?.onComplete,onError:b?.onError??e.defaults?.onError}),R={id:y,send:w.send,stop:w.stop,retry:w.retry,clear:w.clear,messages:w.messages,partial:w.partial,streaming:w.streaming,error:w.error,setMessages:w.setMessages};return o.set(y,R),r.set(o.size),R}function s(y){return o.get(y)}function u(y){return o.has(y)}function c(){return Array.from(o.keys())}function l(y,b){let E=o.get(y);if(!E)throw new Error(`Thread "${y}" not found`);let w=b.filter(f=>f.role!=="system").map(f=>`[${f.role}]: ${f.content}`).join(`
29
- `);if(!w)return;let R=E.messages.get(),h=R.findIndex(f=>f.role!=="system"),m=h===-1?R.length:h,p=[...R];p.splice(m,0,{role:"system",content:`[Cross-Thread Context]
30
- ${w}`}),E.setMessages(p)}function a(y){let b=o.get(y);b&&(b.clear(),o.delete(y),r.set(o.size))}function d(){for(let[y]of o)a(y)}return{create:i,get:s,has:u,list:c,shared:n,inject:l,destroyThread:a,destroy:d,threadCount:r}}function nn(e){let t=typeof e.db=="string"?e.db:e.db.href,o=e.limit??10,n=e.fetch??globalThis.fetch,r=I([],{name:e.name?`${e.name}.results`:void 0}),i=I(!1,{name:e.name?`${e.name}.loaded`:void 0}),s=I(void 0,{name:e.name?`${e.name}.error`:void 0}),u=null,c=null,l=!1;e._sqlite?(u=e._sqlite,a()):d();function a(){V(Y(n(t)),E=>{if(!E.ok){l||$(()=>{i.set(!1),s.set(new Error(`Failed to fetch DB: ${E.status} ${E.statusText}`))});return}l||(c=u.open_v2("docs.db"),$(()=>{i.set(!0),s.set(void 0)}))},{onEnd:E=>{E!==void 0&&!l&&$(()=>{i.set(!1),s.set(E)})}})}function d(){let E=null,w=null,R=null,h=2,m=!1;function p(g){m||(m=!0,l||$(()=>{i.set(!1),s.set(g)}))}function f(){if(h--,h>0||m||l)return;let{SQLiteAPI:g}=E;u=g(w);let S=w.vfs;S&&typeof S.writeFile=="function"&&S.writeFile("docs.db",new Uint8Array(R)),c=u.open_v2("docs.db"),$(()=>{i.set(!0),s.set(void 0)})}V(Y(import("@aspect-build/wa-sqlite")),g=>{E=g;let S=g.default??g;V(Y(typeof S=="function"?S():S),M=>{w=M,f()},{onEnd:M=>{M!==void 0&&p(M)}})},{onEnd:g=>{g!==void 0&&p(g)}}),V(Y(n(t).then(g=>{if(!g.ok)throw new Error(`Failed to fetch DB: ${g.status} ${g.statusText}`);return g.arrayBuffer()})),g=>{R=g,f()},{onEnd:g=>{g!==void 0&&p(g)}})}function y(E){if(!u||c===null||l){r.set([]);return}if(!E.trim()){r.set([]);return}try{let w=[],h=`SELECT rowid as id, title, snippet(docs, 1, '<mark>', '</mark>', '\u2026', 32) as excerpt, rank, source, tags FROM docs WHERE docs MATCH '"${E.replace(/"/g,'""')}"' ORDER BY rank LIMIT ${o}`;u.exec(c,h,(m,p)=>{let f=p.indexOf("id"),g=p.indexOf("title"),S=p.indexOf("excerpt"),M=p.indexOf("rank"),D=p.indexOf("source"),x=p.indexOf("tags");w.push({id:String(m[f]??""),title:String(m[g]??""),excerpt:String(m[S]??""),score:Number(m[M]??0),source:String(m[D]??""),tags:m[x]?String(m[x]).split(",").map(T=>T.trim()).filter(Boolean):[]})}),$(()=>{r.set(w),s.set(void 0)})}catch(w){$(()=>{r.set([]),s.set(w)})}}function b(){if(!l){if(l=!0,u&&c!==null)try{u.close(c)}catch{}u=null,c=null,$(()=>{i.set(!1),r.set([]),s.set(void 0)}),N(r),N(i),N(s)}}return{search:y,results:r,loaded:i,error:s,destroy:b}}function mt(e){let t=0,o=null;return{call(n,r,i){o?.abort(),o=new AbortController;let s=++t,u=o.signal;e(n,u).then(c=>{s===t&&r(c)},c=>{s===t&&i?.(c)})},cancel(){t++,o?.abort(),o=null}}}function rn(e){let t=e.model??"Xenova/all-MiniLM-L6-v2",o=typeof e.vectors=="string"?e.vectors:e.vectors.href,n=typeof e.manifest=="string"?e.manifest:e.manifest.href,r=e.limit??10,i=e.fetch??globalThis.fetch,s=I([],{name:e.name?`${e.name}.results`:void 0}),u=I(!1,{name:e.name?`${e.name}.loaded`:void 0}),c=I(void 0,{name:e.name?`${e.name}.error`:void 0}),l=e._embedFn??null,a=null,d=null,y=!1,b=mt(({query:p,embedder:f})=>f(p,{pooling:"mean",normalize:!0}));e._embedFn?E():w();function E(){let p=null,f=null,g=2,S=!1;function M(x){S||(S=!0,y||$(()=>{u.set(!1),c.set(x)}))}function D(){if(g--,!(g>0||S||y)){a=p;try{R(f)}catch(x){M(x)}}}V(Y(i(n).then(x=>{if(!x.ok)throw new Error(`Failed to fetch manifest: ${x.status} ${x.statusText}`);return x.json()})),x=>{p=x,D()},{onEnd:x=>{x!==void 0&&M(x)}}),V(Y(i(o).then(x=>{if(!x.ok)throw new Error(`Failed to fetch vectors: ${x.status} ${x.statusText}`);return x.arrayBuffer()})),x=>{f=x,D()},{onEnd:x=>{x!==void 0&&M(x)}})}function w(){let p=null,f=null,g=null,S=3,M=!1;function D(T){M||(M=!0,y||$(()=>{u.set(!1),c.set(T)}))}function x(){if(S--,!(S>0||M||y)){a=p,l=g;try{R(f)}catch(T){D(T)}}}V(Y(i(n).then(T=>{if(!T.ok)throw new Error(`Failed to fetch manifest: ${T.status} ${T.statusText}`);return T.json()})),T=>{p=T,x()},{onEnd:T=>{T!==void 0&&D(T)}}),V(Y(i(o).then(T=>{if(!T.ok)throw new Error(`Failed to fetch vectors: ${T.status} ${T.statusText}`);return T.arrayBuffer()})),T=>{f=T,x()},{onEnd:T=>{T!==void 0&&D(T)}}),V(Y(import("@huggingface/transformers").then(T=>{let L=T.pipeline??T.default?.pipeline;if(!L)throw new Error("Could not find pipeline export from @huggingface/transformers");return L("feature-extraction",t)})),T=>{g=T,x()},{onEnd:T=>{T!==void 0&&D(T)}})}function R(p){let f=e.dimensions??a.dimensions??384,g=new Float32Array(p),S=a.count*f;if(g.length!==S)throw new Error(`Vector binary size mismatch: expected ${S} floats (${a.count} \xD7 ${f}), got ${g.length}`);d=dt({dimensions:f,distance:"cosine"});for(let M=0;M<a.count;M++){let D=a.ids[M],x=g.subarray(M*f,(M+1)*f);d.add(D,x)}$(()=>{u.set(!0),c.set(void 0)})}function h(p,f){if(!l||!d||!a||y){s.set([]);return}if(!p.trim()){$(()=>{s.set([]),c.set(void 0)});return}let g=f??r,S=d,M=a;b.call({query:p,embedder:l},D=>{if(y)return;let T=S.search(D.data,g).map(L=>({id:L.id,score:Math.max(0,Math.min(1,1-L.distance)),metadata:M.entries[L.id]??{}}));$(()=>{s.set(T),c.set(void 0)})},D=>{y||$(()=>{s.set([]),c.set(D)})})}function m(){y=!0,b.cancel(),d&&(d.destroy(),d=null),l=null,a=null,$(()=>{u.set(!1),s.set([]),c.set(void 0)}),N(s),N(u),N(c)}return{search:h,results:s,loaded:u,error:c,destroy:m}}function cn(e){return e.map(t=>{let o;try{o=JSON.parse(t.arguments)}catch{o=t.arguments}return{id:t.id,tool:t.name,args:o}})}function sr(e){switch(e){case"openai":return"https://api.openai.com/v1";case"ollama":return"http://localhost:11434";default:return""}}function ir(e,t){switch(e){case"openai":case"custom":return`${t}/chat/completions`;case"ollama":return`${t}/api/chat`;default:return`${t}/chat/completions`}}function ar(e,t,o,n){let r={model:t,messages:o.map(i=>cr(e,i)),stream:!0};return n?.temperature!==void 0&&(r.temperature=n.temperature),n?.maxTokens!==void 0&&(e==="ollama"?r.options={num_predict:n.maxTokens}:r.max_tokens=n.maxTokens),n?.stop&&(r.stop=n.stop),n?.tools&&n.tools.length>0&&(r.tools=n.tools),r}function cr(e,t){let o={role:t.role,content:t.content};return t.tool_calls&&t.tool_calls.length>0&&(e==="ollama"?o.tool_calls=t.tool_calls.map(n=>{let r;try{r=JSON.parse(n.arguments)}catch{r={}}return{function:{name:n.name,arguments:r}}}):o.tool_calls=t.tool_calls.map(n=>({id:n.id,type:"function",function:{name:n.name,arguments:n.arguments}}))),t.tool_call_id&&(o.tool_call_id=t.tool_call_id),o}function ur(e,t){let o={"Content-Type":"application/json"};return t&&(o.Authorization=`Bearer ${t}`),o}function un(e){let t=e.name??"llm",o=e.provider,n=e.baseURL??sr(o),r=e.model??"",i=e.fetch??globalThis.fetch,s=I("",{name:`${t}.store`}),u=I({},{name:`${t}.tokens`}),c=I("pending",{name:`${t}.status`}),l=I(void 0,{name:`${t}.error`}),a=I([],{name:`${t}.toolCalls`}),d=null,y=0,b=0;function E(){d&&(d.abort(),d=null),c.get()==="active"&&$(()=>{s.set(""),a.set([]),c.set("pending")})}function w(h,m){E(),d=new AbortController;let p=m?.signal?lr(d.signal,m.signal):d.signal;$(()=>{s.set(""),u.set({}),l.set(void 0),a.set([]),c.set("active")});let f=++y;try{let g=ir(o,n),S=ar(o,r,h,m),M=ur(o,e.apiKey);R(g,M,S,p,f)}catch(g){$(()=>{l.set(g),c.set("errored")}),y===f&&(d=null),p._cleanup?.()}}function R(h,m,p,f,g){let S=()=>{y===g&&(d=null)};V(Y(i(h,{method:"POST",headers:m,body:JSON.stringify(p),signal:f})),M=>{if(!M.ok){V(Y(M.text().catch(()=>"")),O=>{f.aborted||($(()=>{l.set(new Error(`LLM API error ${M.status}: ${O}`)),c.set("errored")}),S(),f._cleanup?.())});return}let D=M.body?.getReader();if(!D){if(f.aborted){f._cleanup?.();return}$(()=>{l.set(new Error("No response body")),c.set("errored")}),S(),f._cleanup?.();return}let x=new TextDecoder,T="",L="",A=new Map;V(De({[Symbol.asyncIterator](){return{next(){return D.read()},return(){return D.cancel(),Promise.resolve({done:!0,value:void 0})}}}}),O=>{if(f.aborted)return;L+=x.decode(O,{stream:!0});let B=L.split(`
31
- `);L=B.pop()??"";for(let _ of B){if(f.aborted)return;let v=_.trim();if(!v||v.startsWith(":")||!v.startsWith("data: "))continue;let k=v.slice(6);if(k!=="[DONE]")try{let q=JSON.parse(k),J=on(o,q);if(J&&(T+=J,s.set(T)),sn(o,q,A,()=>`call_${b++}`)){let z=[];for(let[,P]of A)z.push({id:P.id,name:P.name,arguments:P.arguments});a.set(z)}let W=an(o,q);W&&u.set(W)}catch{}}},{onEnd:O=>{let B=x.decode();if(B&&(L+=B),L.trim()){let _=L.trim();if(_.startsWith("data: ")){let v=_.slice(6);if(v!=="[DONE]")try{let k=JSON.parse(v),q=on(o,k);if(q&&(T+=q,s.set(T)),sn(o,k,A,()=>`call_${b++}`)){let W=[];for(let[,z]of A)W.push({id:z.id,name:z.name,arguments:z.arguments});a.set(W)}let J=an(o,k);J&&u.set(J)}catch{}}}if(f.aborted){f._cleanup?.();return}O!==void 0?$(()=>{l.set(O),c.set("errored")}):c.set("completed"),S(),f._cleanup?.()}})},{onEnd:M=>{if(M!==void 0){if(f.aborted){f._cleanup?.();return}$(()=>{l.set(M),c.set("errored")}),S()}f._cleanup?.()}})}return{get:()=>s.get(),source:(h,m)=>s.source(h,m),tokens:u,status:c,error:l,toolCalls:a,generate:w,abort:E}}function on(e,t){return e==="ollama"?t?.message?.content:t?.choices?.[0]?.delta?.content}function sn(e,t,o,n){if(e==="ollama"){let s=t?.message?.tool_calls;if(!Array.isArray(s))return!1;let u=!1;for(let c=0;c<s.length;c++){let a=s[c]?.function;a&&(o.set(c,{id:n?n():`call_${c}`,name:a.name??"",arguments:typeof a.arguments=="string"?a.arguments:JSON.stringify(a.arguments??{})}),u=!0)}return u}let r=t?.choices?.[0]?.delta?.tool_calls;if(!Array.isArray(r))return!1;let i=!1;for(let s of r){let u=s.index??0,c=o.get(u);c||(c={id:"",name:"",arguments:""},o.set(u,c)),s.id&&(c.id=s.id,i=!0),s.function?.name&&(c.name=s.function.name,i=!0),s.function?.arguments&&(c.arguments+=s.function.arguments,i=!0)}return i}function an(e,t){let o=e==="ollama"?t:t?.usage;if(o){if(e==="ollama")return t.eval_count!==void 0||t.prompt_eval_count!==void 0?{promptTokens:t.prompt_eval_count,completionTokens:t.eval_count,totalTokens:(t.prompt_eval_count??0)+(t.eval_count??0)}:void 0;if(o.prompt_tokens!==void 0||o.completion_tokens!==void 0)return{promptTokens:o.prompt_tokens,completionTokens:o.completion_tokens,totalTokens:o.total_tokens}}}function lr(e,t){let o=new AbortController,n=o.signal;if(e.aborted||t.aborted)return o.abort(),n._cleanup=()=>{},n;let r=()=>{e.removeEventListener("abort",i),t.removeEventListener("abort",i)},i=()=>{o.abort(),r()};return e.addEventListener("abort",i,{once:!0}),t.addEventListener("abort",i,{once:!0}),n._cleanup=r,n}function ln(e){let t=e.name??"hybridRoute",o=e.fallbackOnError??!0,n=e.shouldRoute??(()=>"local"),r=I(void 0,{name:`${t}.result`}),i=I("idle",{name:`${t}.route`}),s=I(0,{name:`${t}.localCount`}),u=I(0,{name:`${t}.cloudCount`}),c=I(void 0,{name:`${t}.error`}),l=null;function a(){l&&(l.unsubscribe(),l=null)}function d(b,E,w){a(),r.set(b.get()),l=X(b,R=>{r.set(R)},{onEnd:R=>{if(R!==void 0)if(E==="local"&&o){c.set(R),i.set("cloud"),u.update(h=>h+1);try{let h=e.cloud(w);d(h,"cloud",w)}catch(h){c.set(h)}}else c.set(R)}})}function y(b){a(),c.set(void 0);let E=n(b);if(i.set(E),E==="local"){s.update(w=>w+1);try{let w=e.local(b);d(w,"local",b)}catch(w){if(c.set(w),o){i.set("cloud"),u.update(R=>R+1);try{let R=e.cloud(b);d(R,"cloud",b)}catch(R){c.set(R)}}}}else{u.update(w=>w+1);try{let w=e.cloud(b);d(w,"cloud",b)}catch(w){c.set(w)}}}return{store:r,route:i,localCount:s,cloudCount:u,error:c,process:y,dispose:a}}function dn(e){let t=e?.workingCapacity??20,o=e?.longTermCapacity??1e3,n=e?.weights??{},r=Ae(),i=Ae({maxSize:t}),s=Ae({maxSize:o,weights:n}),u=I(0),c=Q([u,i.size,s.size],()=>(u.get(),r.size.get()+i.size.get()+s.size.get()));function l(f,g){return r.add(f,g)}function a(f,g){return i.add(f,g)}function d(f,g){return s.add(f,g)}function y(f){let g=null,S=r.get(f);if(S?g=r:(S=i.get(f),S&&(g=i)),!S||!g)return!1;let M=S.meta.get(),D=s.add(S.content.get(),{id:M.id,importance:M.importance,tags:Array.from(M.tags)});for(let x=0;x<M.accessCount;x++)D.touch();return g.remove(f),!0}function b(f,g){let S=g??n,M=[...r.topK(f,S),...i.topK(f,S),...s.topK(f,S)];M.sort((x,T)=>T.score(S)-x.score(S));let D=M.slice(0,f);for(let x of D)x.touch();return D}function E(f,g){let S=g??n,M=[...r.topK(f,S),...i.topK(f,S),...s.topK(f,S)];return M.sort((D,x)=>x.score(S)-D.score(S)),M.slice(0,f)}function w(f){return[...r.byTag(f),...i.byTag(f),...s.byTag(f)]}function R(f){return[...r.query(f),...i.query(f),...s.query(f)]}function h(){r.destroy(),r=Ae(),u.update(f=>f+1)}function m(){r.destroy(),i.destroy(),s.destroy(),N(u)}let p=Q([u],()=>(u.get(),r.nodes.get()));return{remember:l,session:p,focus:a,working:i.nodes,store:d,longTerm:s.nodes,promote:y,recall:b,query:E,recallByTag:w,search:R,resetSession:h,destroy:m,totalSize:c}}function fn(e){if(!Number.isFinite(e)||e<0)throw new RangeError("rawSkip: n must be a non-negative finite number");return t=>(o,n)=>{if(o!==0)return;let r=0,i=null;t(0,(s,u)=>{if(s===0){i=u,n(0,(c,l)=>{i?.(c,l)});return}if(s===1){r++,r>e&&n(1,u);return}n(s,u)})}}function dr(e,t,o){let n=new Set,r=[];for(let i of e.slice(0,o))n.has(i.id)||(n.add(i.id),r.push({id:i.id,title:i.title,excerpt:i.excerpt,score:i.score,source:i.source}));for(let i of t.slice(0,o))n.has(i.id)||(n.add(i.id),r.push({id:i.id,title:String(i.metadata.title??i.id),excerpt:String(i.metadata.excerpt??""),score:i.score,source:String(i.metadata.source??"")}));return r}function fr(e,t,o,n){let r=[];if(n&&r.push(n),o&&r.push(`SUMMARY:
21
+ {"content": "User prefers TypeScript over JavaScript", "importance": 0.8, "tags": ["preference", "technical"], "category": "preferences"},
22
+ {"content": "User is building a state management library", "importance": 0.9, "tags": ["project", "technical"], "category": "entities"}
23
+ ]`;function qn(e,t){let o=t??Kr,n=e.map(r=>`${r.role}: ${r.content}`).join(`
24
+ `);return[{role:"system",content:o},{role:"user",content:n}]}function Bn(e){let t=e.trim();if(!t)return[];try{let r=JSON.parse(t);if(Array.isArray(r))return r.map(nn).filter(i=>i!==null)}catch{}try{let r=t.indexOf("["),i=t.lastIndexOf("]");if(r!==-1&&i>r){let s=JSON.parse(t.slice(r,i+1));if(Array.isArray(s))return s.map(nn).filter(u=>u!==null)}}catch{}let o=t.split(`
25
+ `).filter(r=>r.trim()),n=[];for(let r of o)try{let i=JSON.parse(r.trim().replace(/^[-*]\s*/,"")),s=nn(i);s&&n.push(s)}catch{}return n}function nn(e){if(!e||typeof e!="object")return null;let t=e,o=typeof t.content=="string"?t.content.trim():"";if(!o)return null;let n=typeof t.importance=="number"?Math.max(0,Math.min(1,t.importance)):.5,r=Array.isArray(t.tags)?t.tags.filter(l=>typeof l=="string"):[],i=typeof t.category=="string"?t.category:void 0,s=typeof t.level0=="string"?t.level0:void 0,u=typeof t.level1=="string"?t.level1:void 0,a=typeof t.level2=="string"?t.level2:void 0;return{content:o,importance:n,tags:r,category:i,level0:s,level1:u,level2:a}}var Yr=`You are an entity/relation extraction system. Given a conversation, extract entities (people, concepts, projects, technologies) and their relationships.
26
+
27
+ Output ONLY a JSON object with two arrays:
28
+ - "entities": each has "name" (identifier), "content" (description), "type" (person/concept/project/technology/organization), "tags" (string array)
29
+ - "relations": each has "source" (entity name), "target" (entity name), "type" (verb: uses/depends_on/created_by/works_on/knows/part_of), "weight" (float 0-1)
30
+
31
+ Rules:
32
+ - Extract real entities and relationships, not conversation mechanics
33
+ - Entity names should be stable identifiers (use canonical forms)
34
+ - Relations are directed: source \u2192 target
35
+ - If nothing meaningful, return {"entities": [], "relations": []}
36
+
37
+ Example:
38
+ {"entities": [{"name": "Alice", "content": "Software engineer working on state management", "type": "person", "tags": ["user"]}, {"name": "TypeScript", "content": "Programming language", "type": "technology", "tags": ["language"]}], "relations": [{"source": "Alice", "target": "TypeScript", "type": "uses", "weight": 0.9}]}`;function Jn(e,t){let o=t??Yr,n=e.map(r=>`${r.role}: ${r.content}`).join(`
39
+ `);return[{role:"system",content:o},{role:"user",content:n}]}function Vn(e){let t=e.trim();if(!t)return{entities:[],relations:[]};let o;try{o=JSON.parse(t)}catch{try{let s=t.indexOf("{"),u=t.lastIndexOf("}");s!==-1&&u>s&&(o=JSON.parse(t.slice(s,u+1)))}catch{return{entities:[],relations:[]}}}if(!o||typeof o!="object")return{entities:[],relations:[]};let n=o,r=Array.isArray(n.entities)?n.entities.map(Qr).filter(s=>s!==null):[],i=Array.isArray(n.relations)?n.relations.map(Xr).filter(s=>s!==null):[];return{entities:r,relations:i}}function Qr(e){if(!e||typeof e!="object")return null;let t=e,o=typeof t.name=="string"?t.name.trim():"";if(!o)return null;let n=typeof t.content=="string"?t.content.trim():o,r=typeof t.type=="string"?t.type.trim():"concept",i=Array.isArray(t.tags)?t.tags.filter(s=>typeof s=="string"):[];return{name:o,content:n,type:r,tags:i}}function Xr(e){if(!e||typeof e!="object")return null;let t=e,o=typeof t.source=="string"?t.source.trim():"",n=typeof t.target=="string"?t.target.trim():"",r=typeof t.type=="string"?t.type.trim():"";if(!o||!n||!r)return null;let i=typeof t.weight=="number"?Math.max(0,Math.min(1,t.weight)):1;return{source:o,target:n,type:r,weight:i}}function Zr(e){let t=e.meta.get();return{id:t.id,createdAt:t.createdAt,updatedAt:t.updatedAt,accessedAt:t.accessedAt,accessCount:t.accessCount,importance:t.importance,tags:Array.from(t.tags),category:t.category,level0:t.level0,level1:t.level1,level2:t.level2}}function eo(e,t){let o=e.nodes.get().map(r=>({id:r.id,content:r.content.get(),meta:Zr(r)})),n={};for(let[r,i]of t)n[r]=Array.from(i);return{nodes:o,embeddings:n}}function Un(e,t,o,n,r){let i=!1,s=!1,u=ae(e.nodes,()=>{if(i||s)return;let c=eo(e,o),d=n.save(r,c);d!==void 0&&Y(d,()=>{},{onEnd:y=>{}})});function a(){let c=n.load(r);if(c!=null){if(typeof c!="function"){s=!0,zn(c,e,t,o),s=!1;return}s=!0,Y(ce(c),d=>{d&&typeof d=="object"&&zn(d,e,t,o),s=!1})}}function l(){i=!0,u.unsubscribe()}return{dispose:l,restore:a}}function zn(e,t,o,n){if(!(!e.nodes||!Array.isArray(e.nodes))){for(let r of e.nodes){let i=t.add(r.content,{id:r.id,importance:r.meta.importance,tags:r.meta.tags,category:r.meta.category,level0:r.meta.level0,level1:r.meta.level1,level2:r.meta.level2,createdAt:r.meta.createdAt,updatedAt:r.meta.updatedAt,accessedAt:r.meta.accessedAt});if(i)for(let s=0;s<r.meta.accessCount;s++)i.touch()}if(e.embeddings)for(let[r,i]of Object.entries(e.embeddings)){let s=new Float32Array(i);o.add(r,s),n.set(r,s)}}}var rn="scope:",to=10080*60*1e3;function on(e){if(!e)return[];let t=[];if(e.userId&&t.push(`${rn}user:${e.userId}`),e.agentId&&t.push(`${rn}agent:${e.agentId}`),e.tags)for(let o of e.tags)t.push(`${rn}${o}`);return t}function Wn(e,t){for(let o of t)if(!e.has(o))return!1;return!0}function ot(e,t){return t<=0?"":e.length<=t?e:t<=3?e.slice(0,t):`${e.slice(0,t-3).trim()}...`}function sn(e,t,o){return{level0:ot(e,t),level1:ot(e,o),level2:e}}function no(e,t){let o=t?`Category: ${t}
40
+ `:"";return[{role:"system",content:'You generate progressive memory summaries. Return ONLY JSON: {"level0":"...","level1":"..."}.'},{role:"user",content:`${o}Memory:
41
+ ${e}
42
+
43
+ Constraints:
44
+ - level0: <= 140 chars, compact semantic gist for vector retrieval
45
+ - level1: <= 1800 chars, richer context for ranking/prompt assembly
46
+ - preserve factual correctness; do not invent details`}]}function ro(e){let t=e.trim();if(!t)return{};try{let o=JSON.parse(t);return{level0:typeof o.level0=="string"?o.level0:void 0,level1:typeof o.level1=="string"?o.level1:void 0}}catch{return{}}}function Hn(e){let t=e.name??"agentMemory",o=e.maxSize??1e4,n=e.dedupThreshold??.85,r=e.llm,i=e.embed,s=e.searchOverfetch??2,u=e.categoryWeights??{},a=e.decayHalfLifeMs??to,l=e.rankWeights?.similarity??1,c=e.rankWeights?.decay??.35,d=Number.isFinite(l)&&l>=0?l:1,y=Number.isFinite(c)&&c>=0?c:.35,b=e.embeddingConcurrency??4,x=e.extractionRetry??{maxRetries:3},A=e.progressive?.enabled??!0,T=e.progressive?.llm,g=e.progressive?.retry??{maxRetries:1},f=e.progressive?.l0MaxChars??140,p=e.progressive?.l1MaxChars??1800;if(A&&!T)throw new Error("agentMemory: progressive.llm is required when progressive loading is enabled");let m=e.knowledgeGraph;if(m&&!e.graphLlm)throw new Error("agentMemory: graphLlm is required when knowledgeGraph is provided");let h=e.graphLlm,S=Je({maxSize:o,weights:e.weights}),E=$t({dimensions:e.dimensions}),D=new Map,M=e.adapter?Un(S,E,D,e.adapter,t):null;M?.restore();let w=0,$=0,R=qt(`${t}:events`),I=e.shared?Nn(e.shared.transport,{[e.shared.topicName??`${t}:events`]:{topic:R,filter:e.shared.filter}},{name:e.shared.bridgeName??`${t}:shared`}):void 0;function J(k,_,P,H){R.publish({type:k,id:_,content:P,scopeTags:H,timestamp:Date.now()})}let K=ze(`${t}:extract`,(k,_)=>new Promise((P,H)=>{if(k.aborted){H(new DOMException("Aborted","AbortError"));return}let q=qn(_.messages,e.extractionPrompt);r.generate(q);let ee=ae(r.status,oe=>{if(k.aborted){ee.unsubscribe(),H(new DOMException("Aborted","AbortError"));return}if(oe==="completed"){ee.unsubscribe();let se=r.get();P({facts:Bn(se),scopeTags:_.scopeTags,batchId:_.batchId})}else oe==="errored"&&(ee.unsubscribe(),H(r.error.get()))});k.addEventListener("abort",()=>{ee.unsubscribe(),r.abort()},{once:!0})}),{concurrency:1,retry:x}),U=ze(`${t}:embed`,(k,_)=>new Promise((P,H)=>{if(k.aborted){H(new DOMException("Aborted","AbortError"));return}Y(ce(i(_.fact.content,k)),q=>{P({fact:_.fact,embedding:q,scopeTags:_.scopeTags,batchId:_.batchId,targetId:_.targetId})},{onEnd:q=>{q!==void 0&&H(q)}}),k.addEventListener("abort",()=>{H(new DOMException("Aborted","AbortError"))},{once:!0})}),{concurrency:b}),L=A?ze(`${t}:progressive`,(k,_)=>new Promise((P,H)=>{if(k.aborted){H(new DOMException("Aborted","AbortError"));return}let q=!1,ee=T,oe=ae(ee.status,se=>{if(k.aborted){oe.unsubscribe(),H(new DOMException("Aborted","AbortError"));return}if(se==="active"){q=!0;return}if(se==="completed"&&q){oe.unsubscribe();let le=ro(ee.get()),be=sn(_.content,f,p);P({nodeId:_.nodeId,level0:le.level0?ot(le.level0,f):be.level0,level1:le.level1?ot(le.level1,p):be.level1,level2:_.content,version:_.version,content:_.content})}else se==="errored"&&q&&(oe.unsubscribe(),H(ee.error.get()))});ee.generate(no(_.content,_.category)),k.addEventListener("abort",()=>{oe.unsubscribe(),ee.abort()},{once:!0})}),{concurrency:1,retry:g}):void 0,C=m?ze(`${t}:graph`,(k,_)=>new Promise((P,H)=>{if(k.aborted){H(new DOMException("Aborted","AbortError"));return}let q=Jn(_.messages,e.graphExtractionPrompt);h?.generate(q);let ee=ae(h.status,oe=>{if(k.aborted){ee.unsubscribe(),H(new DOMException("Aborted","AbortError"));return}if(oe==="completed"){ee.unsubscribe();let se=h.get();P(Vn(se))}else oe==="errored"&&(ee.unsubscribe(),H(h.error.get()))});k.addEventListener("abort",()=>{ee.unsubscribe(),h?.abort()},{once:!0})}),{concurrency:1,retry:{maxRetries:0}}):void 0,V=new Map,Z=new Map,X=new Set,j=new Map;function B(k){let _=(j.get(k)??0)+1;return j.set(k,_),_}function F(k,_){let P=k.trim()||`${_}-${++$}`;if(!X.has(P))return X.add(P),P;let H=2,q=`${P}#${H}`;for(;X.has(q);)H++,q=`${P}#${H}`;return X.add(q),q}function G(k){X.delete(k)}function re(k){return{status:O("queued",{name:`${t}.op:${k}.status`}),error:O(void 0,{name:`${t}.op:${k}.error`}),endedAt:O(void 0,{name:`${t}.op:${k}.endedAt`})}}U.on("completed",k=>{let{fact:_,embedding:P,scopeTags:H,batchId:q,targetId:ee}=k.result;if(ee)S.get(ee)&&(E.add(ee,P),D.set(ee,P));else{let se=Fn(E,P,n);if(se.isDuplicate&&se.existingId){let le=S.get(se.existingId);if(le){le.update(_.content),le.setImportance(Math.max(le.meta.get().importance,_.importance)),_.category&&le.setCategory(_.category);let he=sn(_.content,f,p);le.setLevels({level0:_.level0??he.level0,level1:_.level1??he.level1,level2:_.level2??he.level2});for(let _e of _.tags)le.tag(_e);for(let _e of H)le.tag(_e);if(J("update",se.existingId,_.content,H),L){let _e=B(se.existingId);L.add({nodeId:se.existingId,content:_.content,category:_.category,batchId:q,version:_e})}}E.add(se.existingId,P),D.set(se.existingId,P);let be=V.get(q);be&&be.touchedIds.add(se.existingId)}else{let le=[..._.tags,...H],be=sn(_.content,f,p),he=S.add(_.content,{importance:_.importance,tags:le,category:_.category,level0:_.level0??be.level0,level1:_.level1??be.level1,level2:_.level2??be.level2});if(he){if(E.add(he.id,P),D.set(he.id,P),J("add",he.id,_.content,H),L){let dt=B(he.id);L.add({nodeId:he.id,content:_.content,category:_.category,batchId:q,version:dt})}let _e=V.get(q);_e&&_e.touchedIds.add(he.id)}}}let oe=V.get(q);oe&&(oe.pending++,oe.pending>=oe.expected&&me(q))}),U.on("failed",k=>{let _=k.data.batchId,P=V.get(_);P&&(P.pending++,P.failed=!0,P.pending>=P.expected&&me(_)),P&&(P.error.set(k.error),P.status.set("errored"),P.endedAt.set(Date.now()),G(P.op.id))}),L&&L.on("completed",k=>{let _=k.result;if(j.get(_.nodeId)!==_.version)return;let H=S.get(_.nodeId);H&&H.content.get()===_.content&&H.setLevels({level0:_.level0,level1:_.level1,level2:_.level2})});function me(k){let _=V.get(k);if(!_)return;let P=[..._.touchedIds];_.storedIds.set(P),!_.failed&&_.status.get()!=="cancelled"&&_.status.set("completed"),_.endedAt.get()===void 0&&_.endedAt.set(Date.now()),G(_.op.id),V.delete(k)}if(K.on("completed",k=>{let{facts:_,scopeTags:P,batchId:H}=k.result,q=V.get(H);if(q){if(_.length===0){q.extracted.set([]),q.storedIds.set([]),q.status.set("completed"),q.endedAt.set(Date.now()),G(q.op.id),V.delete(H);return}q.extracted.set(_),q.status.set("active"),q.expected=_.length,q.pending=0,q.failed=!1;for(let ee of _)U.add({fact:ee,scopeTags:P,batchId:H})}}),K.on("failed",k=>{let _=k.data,P=V.get(_.batchId);if(P){if(P.status.get()==="cancelled"){P.endedAt.get()===void 0&&P.endedAt.set(Date.now()),G(P.op.id),V.delete(_.batchId);return}P.error.set(k.error),P.status.set("errored"),P.endedAt.set(Date.now()),G(P.op.id),V.delete(_.batchId)}}),C&&m){let k=m;C.on("completed",_=>{let P=_.result,H=new Map;for(let q of P.entities){let ee=k.collection.byTag(`entity:${q.name}`);if(ee.length>0)H.set(q.name,ee[0].id),ee[0].update(q.content);else{let oe=k.addEntity(q.content,{tags:[`entity:${q.name}`,`type:${q.type}`,...q.tags]});oe&&H.set(q.name,oe.id)}}for(let q of P.relations){let ee=H.get(q.source),oe=H.get(q.target);ee&&oe&&k.addRelation(ee,oe,q.type,{weight:q.weight})}}),C.on("failed",_=>{console.error(_.error)})}function pe(k,_,P){let H=on(_),q=++w,ee=F(P?.opId??`add-${++$}`,"add"),oe=Date.now(),se=re(ee),le=-1,be=O([],{name:`${t}.op:${ee}.extracted`}),he=O([],{name:`${t}.op:${ee}.storedIds`}),_e={id:ee,status:se.status,error:se.error,startedAt:oe,endedAt:se.endedAt,extracted:be,storedIds:he,cancel:()=>{se.status.get()!=="completed"&&se.status.get()!=="errored"&&(se.status.set("cancelled"),se.endedAt.set(Date.now()),G(ee)),le!==-1&&K.remove(le)}};return se.status.set("active"),V.set(q,{op:_e,status:se.status,error:se.error,endedAt:se.endedAt,extracted:be,storedIds:he,expected:0,pending:0,failed:!1,touchedIds:new Set}),le=K.add({messages:k,scope:_,scopeTags:H,batchId:q}),C&&C.add({messages:k,scope:_}),_e}function Ue(k,_,P=10,H){let q=F(H?.opId??`search-${++$}`,"search"),ee=Date.now(),oe=re(q),se=O([],{name:`${t}.op:${q}.results`}),le=O(void 0,{name:`${t}.op:${q}.trace`}),be=new AbortController;Z.set(q,be);let he=be.signal,_e=on(_),dt=H?.includeL2??!1,Ut=H?.tokenBudget,cn=H?.categories?new Set(H.categories):void 0;oe.status.set("active");let lr={id:q,status:oe.status,error:oe.error,startedAt:ee,endedAt:oe.endedAt,results:se,trace:le,cancel:()=>{be.abort(),Z.delete(q),oe.status.get()!=="completed"&&oe.status.get()!=="errored"&&(oe.status.set("cancelled"),oe.endedAt.set(Date.now()),G(q))}};return Y(ce(i(k,he)),ft=>{if(he.aborted)return;let un=E.search(ft,P*s),Wt=[],st=[],dr=Date.now();for(let Ee of un){let Le=S.get(Ee.id);if(!Le){st.push({id:Ee.id,similarity:0,decayScore:0,categoryWeight:1,finalScore:0,filteredOut:"missing-node",rationale:"vector hit had no corresponding node"});continue}let mt=Le.meta.get(),De=mt.category;if(_e.length>0&&!Wn(Le.meta.get().tags,_e)){st.push({id:Ee.id,similarity:Math.max(0,1-Ee.distance),decayScore:0,category:De,categoryWeight:1,finalScore:0,filteredOut:"scope",rationale:"filtered by scope constraints"});continue}if(cn&&(!De||!cn.has(De))){st.push({id:Ee.id,similarity:Math.max(0,1-Ee.distance),decayScore:0,category:De,categoryWeight:1,finalScore:0,filteredOut:"category",rationale:"filtered by category constraints"});continue}let it=Math.max(0,1-Ee.distance),pt=$e(mt,{halfLife:a,recency:1,importance:0,frequency:.5},dr),Gt=De?u[De]??1:1,jt=Number.isFinite(Gt)&&Gt>=0?Gt:1,ln=(it*d+pt*y)*jt,dn=dt||Ut!==void 0&&Ut>1800,fr=dn?mt.level2??Le.content.get():mt.level1??Le.content.get(),fn=dn?"L2":"L1";st.push({id:Le.id,similarity:it,decayScore:pt,category:De,categoryWeight:jt,finalScore:ln,rationale:`sim=${it.toFixed(3)}, decay=${pt.toFixed(3)}, cw=${jt.toFixed(2)}`}),Wt.push({node:Le,score:it,similarity:it,decayScore:pt,finalScore:ln,category:De,content:fr,level:fn,rationale:`Matched by semantic similarity with ${fn} context`})}Wt.sort((Ee,Le)=>Le.finalScore-Ee.finalScore);let Ht=Wt.slice(0,P);for(let Ee of Ht)Ee.node.touch();le.set({query:k,k:P,overfetch:s,tokenBudget:Ut,includeL2:dt,rankWeights:{similarity:d,decay:y},candidateCount:un.length,selectedCount:Ht.length,candidates:st}),se.set(Ht),oe.status.set("completed"),oe.endedAt.set(Date.now()),Z.delete(q),G(q)},{onEnd:ft=>{ft!==void 0&&!he.aborted&&(oe.error.set(ft),oe.status.set("errored"),oe.endedAt.set(Date.now()),Z.delete(q),G(q))}}),lr}function We(k){let _=on(k);if(_.length===0)return S.nodes.get();let P=S.byTag(_[0]);return _.length===1?P:P.filter(H=>Wn(H.meta.get().tags,_))}function v(k,_){let P=S.get(k);P&&(P.update(_),P.setLevels({level0:ot(_,f),level1:ot(_,p),level2:_}),J("update",k,_),U.add({fact:{content:_,importance:P.meta.get().importance,tags:[]},scopeTags:[],batchId:-1,targetId:k}))}function N(k){E.remove(k),D.delete(k);let _=S.remove(k);return _&&J("delete",k),_}function Q(){for(let k of Z.values())k.abort();Z.clear(),X.clear(),j.clear(),I?.destroy(),K.destroy(),U.destroy(),L?.destroy(),C?.destroy(),R.destroy(),M?.dispose(),S.destroy(),E.destroy(),D.clear()}return{add:pe,search:Ue,getAll:We,update:v,delete:N,size:S.size,inner:{collection:S,vectorIndex:E,extractionQueue:K,embeddingQueue:U,progressiveQueue:L,events:R,graphQueue:C,sharedBridge:I},destroy:Q}}function Vt(e,t){let o=t?.name??"chatStream",n=O([],{name:`${o}.messages`}),r=O("",{name:`${o}.partial`}),i=O(!1,{name:`${o}.streaming`}),s=O(void 0,{name:`${o}.error`}),u=null,a=null,l=!1,c=!1;function d(){u&&(u.abort(),u=null),i.set(!1)}function y(f){l=!1,i.set(!0),r.set(""),s.set(void 0);function p(){let m=n.get(),h="",S;try{S=e(f,m)}catch(E){r.set(""),i.set(!1),s.set(E),u=null,t?.onError?.(E);return}Y(Ze(S),E=>{f.aborted||(h+=E,r.set(h))},{onEnd:E=>{if(!(f.aborted||l))if(E!==void 0){if(h.length>0){let D={role:"assistant",content:h};n.update(M=>[...M,D])}r.set(""),i.set(!1),s.set(E),u=null,t?.onError?.(E)}else{let D={role:"assistant",content:h};n.update(M=>[...M,D]),r.set(""),i.set(!1),u=null,t?.onComplete?.(h)}}})}if(t?.rateLimiter){if(!t.rateLimiter.tryAcquire()){Y(t.rateLimiter.acquire(f,1),()=>{f.aborted||p()},{onEnd:h=>{if(h!==void 0){if(f.aborted)return;r.set(""),i.set(!1),s.set(h),u=null}}});return}if(f.aborted)return}p()}function b(f){a=f,t?.systemPrompt&&!c&&(c=!0,n.update(h=>[{role:"system",content:t.systemPrompt},...h]));let p={role:"user",content:f};n.update(h=>[...h,p]),d(),u=new AbortController;let m=u.signal;y(m)}function x(){if(!i.get())return;l=!0;let f=r.get();if(d(),f.length>0){let p={role:"assistant",content:f};n.update(m=>[...m,p])}r.set("")}function A(){if(a===null)return;let p=[...n.get()];p.length>0&&p[p.length-1].role==="assistant"&&(p=p.slice(0,-1)),p.length>0&&p[p.length-1].role==="user"&&(p=p.slice(0,-1)),n.set(p),b(a)}function T(){d(),n.set([]),r.set(""),s.set(void 0),a=null,c=!1}function g(f){n.set(f),f.length>0&&f[0].role==="system"&&(c=!0)}return{send:b,stop:x,retry:A,clear:T,messages:n,partial:r,streaming:i,error:s,setMessages:g}}function oo(e){let t=0;for(let o of e)t+=Math.ceil(o.content.split(/\s+/).filter(Boolean).length*1.3);return t}var so="Summarize the following conversation concisely, preserving key facts, decisions, and context. Output only the summary, no preamble.";function Gn(e){let t=e.maxTokens??2e3,o=e.summaryPrompt??so,n=O("",{name:e.name??"conversationSummary"}),r=!1,i=ae(e.llm.status,a=>{if(r)if(a==="completed"){r=!1;let l=e.llm.get();l&&n.set(l)}else(a==="errored"||a==="pending")&&(r=!1)}),s=ae(e.chat.messages,a=>{if(r||a.length===0||a[a.length-1].role!=="assistant"||e.llm.status.get()==="active"||oo(a)<=t)return;r=!0;let l=a.map(d=>`${d.role}: ${d.content}`).join(`
47
+ `),c=[{role:"user",content:`${o}
48
+
49
+ ${l}`}];try{e.llm.generate(c)}catch{r=!1}});function u(){s.unsubscribe(),i.unsubscribe(),W(n)}return{get:()=>n.get(),source:(a,l)=>n.source(a,l),destroy:u}}function jn(e){let t=e.name??"conversationThread",o=new Map,n=O("",{name:`${t}.shared`}),r=O(0,{name:`${t}.threadCount`});function i(y,b){if(o.has(y))throw new Error(`Thread "${y}" already exists`);let A=Vt((g,f)=>{let p=n.get();if(p){let m=f.findIndex(E=>E.role!=="system"),h=m===-1?f.length:m,S=[...f];return S.splice(h,0,{role:"system",content:`[Shared Context]
50
+ ${p}`}),e.factory(g,S)}return e.factory(g,f)},{name:`${t}.${y}`,systemPrompt:b?.systemPrompt,rateLimiter:b?.rateLimiter??e.defaults?.rateLimiter,onComplete:b?.onComplete??e.defaults?.onComplete,onError:b?.onError??e.defaults?.onError}),T={id:y,send:A.send,stop:A.stop,retry:A.retry,clear:A.clear,messages:A.messages,partial:A.partial,streaming:A.streaming,error:A.error,setMessages:A.setMessages};return o.set(y,T),r.set(o.size),T}function s(y){return o.get(y)}function u(y){return o.has(y)}function a(){return Array.from(o.keys())}function l(y,b){let x=o.get(y);if(!x)throw new Error(`Thread "${y}" not found`);let A=b.filter(m=>m.role!=="system").map(m=>`[${m.role}]: ${m.content}`).join(`
51
+ `);if(!A)return;let T=x.messages.get(),g=T.findIndex(m=>m.role!=="system"),f=g===-1?T.length:g,p=[...T];p.splice(f,0,{role:"system",content:`[Cross-Thread Context]
52
+ ${A}`}),x.setMessages(p)}function c(y){let b=o.get(y);b&&(b.clear(),o.delete(y),r.set(o.size))}function d(){for(let[y]of o)c(y)}return{create:i,get:s,has:u,list:a,shared:n,inject:l,destroyThread:c,destroy:d,threadCount:r}}function Kn(e){let t=typeof e.db=="string"?e.db:e.db.href,o=e.limit??10,n=e.fetch??globalThis.fetch,r=O([],{name:e.name?`${e.name}.results`:void 0}),i=O(!1,{name:e.name?`${e.name}.loaded`:void 0}),s=O(void 0,{name:e.name?`${e.name}.error`:void 0}),u=null,a=null,l=!1;e._sqlite?(u=e._sqlite,c()):d();function c(){Y(ce(n(t)),x=>{if(!x.ok){l||z(()=>{i.set(!1),s.set(new Error(`Failed to fetch DB: ${x.status} ${x.statusText}`))});return}l||(a=u.open_v2("docs.db"),z(()=>{i.set(!0),s.set(void 0)}))},{onEnd:x=>{x!==void 0&&!l&&z(()=>{i.set(!1),s.set(x)})}})}function d(){let x=null,A=null,T=null,g=2,f=!1;function p(h){f||(f=!0,l||z(()=>{i.set(!1),s.set(h)}))}function m(){if(g--,g>0||f||l)return;let{SQLiteAPI:h}=x;u=h(A);let S=A.vfs;S&&typeof S.writeFile=="function"&&S.writeFile("docs.db",new Uint8Array(T)),a=u.open_v2("docs.db"),z(()=>{i.set(!0),s.set(void 0)})}Y(ce(import("@aspect-build/wa-sqlite")),h=>{x=h;let S=h.default??h;Y(ce(typeof S=="function"?S():S),E=>{A=E,m()},{onEnd:E=>{E!==void 0&&p(E)}})},{onEnd:h=>{h!==void 0&&p(h)}}),Y(ce(n(t).then(h=>{if(!h.ok)throw new Error(`Failed to fetch DB: ${h.status} ${h.statusText}`);return h.arrayBuffer()})),h=>{T=h,m()},{onEnd:h=>{h!==void 0&&p(h)}})}function y(x){if(!u||a===null||l){r.set([]);return}if(!x.trim()){r.set([]);return}try{let A=[],g=`SELECT rowid as id, title, snippet(docs, 1, '<mark>', '</mark>', '\u2026', 32) as excerpt, rank, source, tags FROM docs WHERE docs MATCH '"${x.replace(/"/g,'""')}"' ORDER BY rank LIMIT ${o}`;u.exec(a,g,(f,p)=>{let m=p.indexOf("id"),h=p.indexOf("title"),S=p.indexOf("excerpt"),E=p.indexOf("rank"),D=p.indexOf("source"),M=p.indexOf("tags");A.push({id:String(f[m]??""),title:String(f[h]??""),excerpt:String(f[S]??""),score:Number(f[E]??0),source:String(f[D]??""),tags:f[M]?String(f[M]).split(",").map(w=>w.trim()).filter(Boolean):[]})}),z(()=>{r.set(A),s.set(void 0)})}catch(A){z(()=>{r.set([]),s.set(A)})}}function b(){if(!l){if(l=!0,u&&a!==null)try{u.close(a)}catch{}u=null,a=null,z(()=>{i.set(!1),r.set([]),s.set(void 0)}),W(r),W(i),W(s)}}return{search:y,results:r,loaded:i,error:s,destroy:b}}function zt(e){let t=0,o=null;return{call(n,r,i){o?.abort(),o=new AbortController;let s=++t,u=o.signal;e(n,u).then(a=>{s===t&&r(a)},a=>{s===t&&i?.(a)})},cancel(){t++,o?.abort(),o=null}}}function Yn(e){let t=e.model??"Xenova/all-MiniLM-L6-v2",o=typeof e.vectors=="string"?e.vectors:e.vectors.href,n=typeof e.manifest=="string"?e.manifest:e.manifest.href,r=e.limit??10,i=e.fetch??globalThis.fetch,s=O([],{name:e.name?`${e.name}.results`:void 0}),u=O(!1,{name:e.name?`${e.name}.loaded`:void 0}),a=O(void 0,{name:e.name?`${e.name}.error`:void 0}),l=e._embedFn??null,c=null,d=null,y=!1,b=zt(({query:p,embedder:m})=>m(p,{pooling:"mean",normalize:!0}));e._embedFn?x():A();function x(){let p=null,m=null,h=2,S=!1;function E(M){S||(S=!0,y||z(()=>{u.set(!1),a.set(M)}))}function D(){if(h--,!(h>0||S||y)){c=p;try{T(m)}catch(M){E(M)}}}Y(ce(i(n).then(M=>{if(!M.ok)throw new Error(`Failed to fetch manifest: ${M.status} ${M.statusText}`);return M.json()})),M=>{p=M,D()},{onEnd:M=>{M!==void 0&&E(M)}}),Y(ce(i(o).then(M=>{if(!M.ok)throw new Error(`Failed to fetch vectors: ${M.status} ${M.statusText}`);return M.arrayBuffer()})),M=>{m=M,D()},{onEnd:M=>{M!==void 0&&E(M)}})}function A(){let p=null,m=null,h=null,S=3,E=!1;function D(w){E||(E=!0,y||z(()=>{u.set(!1),a.set(w)}))}function M(){if(S--,!(S>0||E||y)){c=p,l=h;try{T(m)}catch(w){D(w)}}}Y(ce(i(n).then(w=>{if(!w.ok)throw new Error(`Failed to fetch manifest: ${w.status} ${w.statusText}`);return w.json()})),w=>{p=w,M()},{onEnd:w=>{w!==void 0&&D(w)}}),Y(ce(i(o).then(w=>{if(!w.ok)throw new Error(`Failed to fetch vectors: ${w.status} ${w.statusText}`);return w.arrayBuffer()})),w=>{m=w,M()},{onEnd:w=>{w!==void 0&&D(w)}}),Y(ce(import("@huggingface/transformers").then(w=>{let $=w.pipeline??w.default?.pipeline;if(!$)throw new Error("Could not find pipeline export from @huggingface/transformers");return $("feature-extraction",t)})),w=>{h=w,M()},{onEnd:w=>{w!==void 0&&D(w)}})}function T(p){let m=e.dimensions??c.dimensions??384,h=new Float32Array(p),S=c.count*m;if(h.length!==S)throw new Error(`Vector binary size mismatch: expected ${S} floats (${c.count} \xD7 ${m}), got ${h.length}`);d=$t({dimensions:m,distance:"cosine"});for(let E=0;E<c.count;E++){let D=c.ids[E],M=h.subarray(E*m,(E+1)*m);d.add(D,M)}z(()=>{u.set(!0),a.set(void 0)})}function g(p,m){if(!l||!d||!c||y){s.set([]);return}if(!p.trim()){z(()=>{s.set([]),a.set(void 0)});return}let h=m??r,S=d,E=c;b.call({query:p,embedder:l},D=>{if(y)return;let w=S.search(D.data,h).map($=>({id:$.id,score:Math.max(0,Math.min(1,1-$.distance)),metadata:E.entries[$.id]??{}}));z(()=>{s.set(w),a.set(void 0)})},D=>{y||z(()=>{s.set([]),a.set(D)})})}function f(){y=!0,b.cancel(),d&&(d.destroy(),d=null),l=null,c=null,z(()=>{u.set(!1),s.set([]),a.set(void 0)}),W(s),W(u),W(a)}return{search:g,results:s,loaded:u,error:a,destroy:f}}function er(e){return e.map(t=>{let o;try{o=JSON.parse(t.arguments)}catch{o=t.arguments}return{id:t.id,tool:t.name,args:o}})}function io(e){switch(e){case"openai":return"https://api.openai.com/v1";case"ollama":return"http://localhost:11434";default:return""}}function ao(e,t){switch(e){case"openai":case"custom":return`${t}/chat/completions`;case"ollama":return`${t}/api/chat`;default:return`${t}/chat/completions`}}function co(e,t,o,n){let r={model:t,messages:o.map(i=>uo(e,i)),stream:!0};return n?.temperature!==void 0&&(r.temperature=n.temperature),n?.maxTokens!==void 0&&(e==="ollama"?r.options={num_predict:n.maxTokens}:r.max_tokens=n.maxTokens),n?.stop&&(r.stop=n.stop),n?.tools&&n.tools.length>0&&(r.tools=n.tools),r}function uo(e,t){let o={role:t.role,content:t.content};return t.tool_calls&&t.tool_calls.length>0&&(e==="ollama"?o.tool_calls=t.tool_calls.map(n=>{let r;try{r=JSON.parse(n.arguments)}catch{r={}}return{function:{name:n.name,arguments:r}}}):o.tool_calls=t.tool_calls.map(n=>({id:n.id,type:"function",function:{name:n.name,arguments:n.arguments}}))),t.tool_call_id&&(o.tool_call_id=t.tool_call_id),o}function lo(e,t){let o={"Content-Type":"application/json"};return t&&(o.Authorization=`Bearer ${t}`),o}function tr(e){let t=e.name??"llm",o=e.provider,n=e.baseURL??io(o),r=e.model??"",i=e.fetch??globalThis.fetch,s=O("",{name:`${t}.store`}),u=O({},{name:`${t}.tokens`}),a=O("pending",{name:`${t}.status`}),l=O(void 0,{name:`${t}.error`}),c=O([],{name:`${t}.toolCalls`}),d=null,y=0,b=0;function x(){d&&(d.abort(),d=null),a.get()==="active"&&z(()=>{s.set(""),c.set([]),a.set("pending")})}function A(g,f){x(),d=new AbortController;let p=f?.signal?fo(d.signal,f.signal):d.signal;z(()=>{s.set(""),u.set({}),l.set(void 0),c.set([]),a.set("active")});let m=++y;try{let h=ao(o,n),S=co(o,r,g,f),E=lo(o,e.apiKey);T(h,E,S,p,m)}catch(h){z(()=>{l.set(h),a.set("errored")}),y===m&&(d=null),p._cleanup?.()}}function T(g,f,p,m,h){let S=()=>{y===h&&(d=null)};Y(ce(i(g,{method:"POST",headers:f,body:JSON.stringify(p),signal:m})),E=>{if(!E.ok){Y(ce(E.text().catch(()=>"")),J=>{m.aborted||(z(()=>{l.set(new Error(`LLM API error ${E.status}: ${J}`)),a.set("errored")}),S(),m._cleanup?.())});return}let D=E.body?.getReader();if(!D){if(m.aborted){m._cleanup?.();return}z(()=>{l.set(new Error("No response body")),a.set("errored")}),S(),m._cleanup?.();return}let M=new TextDecoder,w="",$="",R=new Map;Y(Ze({[Symbol.asyncIterator](){return{next(){return D.read()},return(){return D.cancel(),Promise.resolve({done:!0,value:void 0})}}}}),J=>{if(m.aborted)return;$+=M.decode(J,{stream:!0});let K=$.split(`
53
+ `);$=K.pop()??"";for(let U of K){if(m.aborted)return;let L=U.trim();if(!L||L.startsWith(":")||!L.startsWith("data: "))continue;let C=L.slice(6);if(C!=="[DONE]")try{let V=JSON.parse(C),Z=Qn(o,V);if(Z&&(w+=Z,s.set(w)),Xn(o,V,R,()=>`call_${b++}`)){let j=[];for(let[,B]of R)j.push({id:B.id,name:B.name,arguments:B.arguments});c.set(j)}let X=Zn(o,V);X&&u.set(X)}catch{}}},{onEnd:J=>{let K=M.decode();if(K&&($+=K),$.trim()){let U=$.trim();if(U.startsWith("data: ")){let L=U.slice(6);if(L!=="[DONE]")try{let C=JSON.parse(L),V=Qn(o,C);if(V&&(w+=V,s.set(w)),Xn(o,C,R,()=>`call_${b++}`)){let X=[];for(let[,j]of R)X.push({id:j.id,name:j.name,arguments:j.arguments});c.set(X)}let Z=Zn(o,C);Z&&u.set(Z)}catch{}}}if(m.aborted){m._cleanup?.();return}J!==void 0?z(()=>{l.set(J),a.set("errored")}):a.set("completed"),S(),m._cleanup?.()}})},{onEnd:E=>{if(E!==void 0){if(m.aborted){m._cleanup?.();return}z(()=>{l.set(E),a.set("errored")}),S()}m._cleanup?.()}})}return{get:()=>s.get(),source:(g,f)=>s.source(g,f),tokens:u,status:a,error:l,toolCalls:c,generate:A,abort:x}}function Qn(e,t){return e==="ollama"?t?.message?.content:t?.choices?.[0]?.delta?.content}function Xn(e,t,o,n){if(e==="ollama"){let s=t?.message?.tool_calls;if(!Array.isArray(s))return!1;let u=!1;for(let a=0;a<s.length;a++){let c=s[a]?.function;c&&(o.set(a,{id:n?n():`call_${a}`,name:c.name??"",arguments:typeof c.arguments=="string"?c.arguments:JSON.stringify(c.arguments??{})}),u=!0)}return u}let r=t?.choices?.[0]?.delta?.tool_calls;if(!Array.isArray(r))return!1;let i=!1;for(let s of r){let u=s.index??0,a=o.get(u);a||(a={id:"",name:"",arguments:""},o.set(u,a)),s.id&&(a.id=s.id,i=!0),s.function?.name&&(a.name=s.function.name,i=!0),s.function?.arguments&&(a.arguments+=s.function.arguments,i=!0)}return i}function Zn(e,t){let o=e==="ollama"?t:t?.usage;if(o){if(e==="ollama")return t.eval_count!==void 0||t.prompt_eval_count!==void 0?{promptTokens:t.prompt_eval_count,completionTokens:t.eval_count,totalTokens:(t.prompt_eval_count??0)+(t.eval_count??0)}:void 0;if(o.prompt_tokens!==void 0||o.completion_tokens!==void 0)return{promptTokens:o.prompt_tokens,completionTokens:o.completion_tokens,totalTokens:o.total_tokens}}}function fo(e,t){let o=new AbortController,n=o.signal;if(e.aborted||t.aborted)return o.abort(),n._cleanup=()=>{},n;let r=()=>{e.removeEventListener("abort",i),t.removeEventListener("abort",i)},i=()=>{o.abort(),r()};return e.addEventListener("abort",i,{once:!0}),t.addEventListener("abort",i,{once:!0}),n._cleanup=r,n}function nr(e){let t=e.name??"hybridRoute",o=e.fallbackOnError??!0,n=e.shouldRoute??(()=>"local"),r=O(void 0,{name:`${t}.result`}),i=O("idle",{name:`${t}.route`}),s=O(0,{name:`${t}.localCount`}),u=O(0,{name:`${t}.cloudCount`}),a=O(void 0,{name:`${t}.error`}),l=null;function c(){l&&(l.unsubscribe(),l=null)}function d(b,x,A){c(),r.set(b.get()),l=ae(b,T=>{r.set(T)},{onEnd:T=>{if(T!==void 0)if(x==="local"&&o){a.set(T),i.set("cloud"),u.update(g=>g+1);try{let g=e.cloud(A);d(g,"cloud",A)}catch(g){a.set(g)}}else a.set(T)}})}function y(b){c(),a.set(void 0);let x=n(b);if(i.set(x),x==="local"){s.update(A=>A+1);try{let A=e.local(b);d(A,"local",b)}catch(A){if(a.set(A),o){i.set("cloud"),u.update(T=>T+1);try{let T=e.cloud(b);d(T,"cloud",b)}catch(T){a.set(T)}}}}else{u.update(A=>A+1);try{let A=e.cloud(b);d(A,"cloud",b)}catch(A){a.set(A)}}}return{store:r,route:i,localCount:s,cloudCount:u,error:a,process:y,dispose:c}}function rr(e){let t=e?.workingCapacity??20,o=e?.longTermCapacity??1e3,n=e?.weights??{},r=Je(),i=Je({maxSize:t}),s=Je({maxSize:o,weights:n}),u=O(0),a=ue([u,i.size,s.size],()=>(u.get(),r.size.get()+i.size.get()+s.size.get()));function l(m,h){return r.add(m,h)}function c(m,h){return i.add(m,h)}function d(m,h){return s.add(m,h)}function y(m){let h=null,S=r.get(m);if(S?h=r:(S=i.get(m),S&&(h=i)),!S||!h)return!1;let E=S.meta.get(),D=s.add(S.content.get(),{id:E.id,importance:E.importance,tags:Array.from(E.tags)});for(let M=0;M<E.accessCount;M++)D.touch();return h.remove(m),!0}function b(m,h){let S=h??n,E=[...r.topK(m,S),...i.topK(m,S),...s.topK(m,S)];E.sort((M,w)=>w.score(S)-M.score(S));let D=E.slice(0,m);for(let M of D)M.touch();return D}function x(m,h){let S=h??n,E=[...r.topK(m,S),...i.topK(m,S),...s.topK(m,S)];return E.sort((D,M)=>M.score(S)-D.score(S)),E.slice(0,m)}function A(m){return[...r.byTag(m),...i.byTag(m),...s.byTag(m)]}function T(m){return[...r.query(m),...i.query(m),...s.query(m)]}function g(){r.destroy(),r=Je(),u.update(m=>m+1)}function f(){r.destroy(),i.destroy(),s.destroy(),W(u)}let p=ue([u],()=>(u.get(),r.nodes.get()));return{remember:l,session:p,focus:c,working:i.nodes,store:d,longTerm:s.nodes,promote:y,recall:b,query:x,recallByTag:A,search:T,resetSession:g,destroy:f,totalSize:a}}function or(e){if(!Number.isFinite(e)||e<0)throw new RangeError("rawSkip: n must be a non-negative finite number");return t=>(o,n)=>{if(o!==0)return;let r=0,i=null;t(0,(s,u)=>{if(s===0){i=u,n(0,(a,l)=>{i?.(a,l)});return}if(s===1){r++,r>e&&n(1,u);return}n(s,u)})}}function mo(e,t,o){let n=new Set,r=[];for(let i of e.slice(0,o))n.has(i.id)||(n.add(i.id),r.push({id:i.id,title:i.title,excerpt:i.excerpt,score:i.score,source:i.source}));for(let i of t.slice(0,o))n.has(i.id)||(n.add(i.id),r.push({id:i.id,title:String(i.metadata.title??i.id),excerpt:String(i.metadata.excerpt??""),score:i.score,source:String(i.metadata.source??"")}));return r}function po(e,t,o,n){let r=[];if(n&&r.push(n),o&&r.push(`SUMMARY:
32
54
  ${o}`),t&&r.push(`USER CONTEXT:
33
55
  ${t}`),e.length>0){let i=e.map((s,u)=>`[${u+1}] ${s.title}
34
56
  ${s.excerpt}`).join(`
@@ -36,11 +58,11 @@ ${s.excerpt}`).join(`
36
58
  `);r.push(`SEARCH RESULTS:
37
59
  ${i}`)}return r.join(`
38
60
 
39
- `)}function mn(e){let t=e.maxResults??5,o=[e.docSearch.results];e.semanticSearch&&o.push(e.semanticSearch.results);let n=Q(o,()=>dr(e.docSearch.results.get(),e.semanticSearch?.results.get()??[],t)),r=[n];e.summary&&r.push(e.summary),e.memory&&r.push(e.memory.session);let i=Q(r,()=>{let a=n.get(),d=e.memory?.query(3).map(b=>String(b.content.get())).join(`
40
- `)??"",y=e.summary?.get()??"";return fr(a,d,y,e.systemPrompt)}),s=Q([e.llm.status],()=>e.llm.status.get()==="active"),u=mt(async(a,d)=>{e.docSearch.search(a),e.semanticSearch?.search(a),e.semanticSearch?.loaded.get()&&await Ce(fn(1)(e.semanticSearch.results.source),{signal:d})}),c=X(e.query,a=>{let d=a.trim();if(!d){e.llm.abort();return}u.call(d,()=>{let y=[{role:"system",content:i.get()},{role:"user",content:d}];e.llm.generate(y)},()=>{let y=[{role:"system",content:i.get()},{role:"user",content:d}];e.llm.generate(y)})});function l(){u.cancel(),c.unsubscribe(),e.llm.abort(),N(s),N(i),N(n)}return{context:i,docs:n,generating:s,error:e.llm.error,destroy:l}}function Rt(e){let t=e.split(/\s+/).filter(Boolean).length;return Math.ceil(t*1.3)}function pn(e,t){let o=e.split(/\s+/).filter(Boolean),n=0;for(let r=0;r<o.length;r++)if(n+=1.3,n>t)return o.slice(0,r).join(" ");return e}function gn(e){let t=e.sections.map(i=>i.content),o=e.name??"systemPromptBuilder",n=Q(t,()=>{let i=[];for(let s of e.sections){let u=s.content.get();u&&(s.maxTokens!==void 0&&(u=pn(u,s.maxTokens)),u&&i.push({name:s.name,text:u}))}if(e.maxTotalTokens!==void 0){let s=0;for(let u of i)s+=Rt(`## ${u.name}
41
- ${u.text}`);for(let u=i.length-1;u>=0&&s>e.maxTotalTokens;u--){let c=Rt(`## ${i[u].name}
42
- ${i[u].text}`),l=s-e.maxTotalTokens;if(l>=c)s-=c,i.splice(u,1);else{let a=Rt(`## ${i[u].name}
43
- `),d=Math.max(0,c-l-a);i[u].text=pn(i[u].text,d),i[u].text?s=e.maxTotalTokens:(s-=c,i.splice(u,1))}}}return i.map(s=>`## ${s.name}
61
+ `)}function sr(e){let t=e.maxResults??5,o=[e.docSearch.results];e.semanticSearch&&o.push(e.semanticSearch.results);let n=ue(o,()=>mo(e.docSearch.results.get(),e.semanticSearch?.results.get()??[],t)),r=[n];e.summary&&r.push(e.summary),e.memory&&r.push(e.memory.session);let i=ue(r,()=>{let c=n.get(),d=e.memory?.query(3).map(b=>String(b.content.get())).join(`
62
+ `)??"",y=e.summary?.get()??"";return po(c,d,y,e.systemPrompt)}),s=ue([e.llm.status],()=>e.llm.status.get()==="active"),u=zt(async(c,d)=>{e.docSearch.search(c),e.semanticSearch?.search(c),e.semanticSearch?.loaded.get()&&await Qe(or(1)(e.semanticSearch.results.source),{signal:d})}),a=ae(e.query,c=>{let d=c.trim();if(!d){e.llm.abort();return}u.call(d,()=>{let y=[{role:"system",content:i.get()},{role:"user",content:d}];e.llm.generate(y)},()=>{let y=[{role:"system",content:i.get()},{role:"user",content:d}];e.llm.generate(y)})});function l(){u.cancel(),a.unsubscribe(),e.llm.abort(),W(s),W(i),W(n)}return{context:i,docs:n,generating:s,error:e.llm.error,destroy:l}}function an(e){let t=e.split(/\s+/).filter(Boolean).length;return Math.ceil(t*1.3)}function ir(e,t){let o=e.split(/\s+/).filter(Boolean),n=0;for(let r=0;r<o.length;r++)if(n+=1.3,n>t)return o.slice(0,r).join(" ");return e}function ar(e){let t=e.sections.map(i=>i.content),o=e.name??"systemPromptBuilder",n=ue(t,()=>{let i=[];for(let s of e.sections){let u=s.content.get();u&&(s.maxTokens!==void 0&&(u=ir(u,s.maxTokens)),u&&i.push({name:s.name,text:u}))}if(e.maxTotalTokens!==void 0){let s=0;for(let u of i)s+=an(`## ${u.name}
63
+ ${u.text}`);for(let u=i.length-1;u>=0&&s>e.maxTotalTokens;u--){let a=an(`## ${i[u].name}
64
+ ${i[u].text}`),l=s-e.maxTotalTokens;if(l>=a)s-=a,i.splice(u,1);else{let c=an(`## ${i[u].name}
65
+ `),d=Math.max(0,a-l-c);i[u].text=ir(i[u].text,d),i[u].text?s=e.maxTotalTokens:(s-=a,i.splice(u,1))}}}return i.map(s=>`## ${s.name}
44
66
  ${s.text}`).join(`
45
67
 
46
- `)},{name:o});function r(){N(n)}return Object.assign(n,{destroy:r})}function hn(e){let t=e?.name??"toolCall",o=e?.maxHistory??100,n=I("idle",{name:`${t}.status`}),r=I(void 0,{name:`${t}.toolName`}),i=I(void 0,{name:`${t}.args`}),s=I(void 0,{name:`${t}.result`}),u=I(void 0,{name:`${t}.error`}),c=I(void 0,{name:`${t}.duration`}),l=I([],{name:`${t}.history`}),a=null;function d(E,w){n.get()!=="executing"&&(r.set(E),i.set(w),s.set(void 0),u.set(void 0),c.set(void 0),n.set("pending"),a={toolName:E,args:w,status:"pending",requestedAt:Date.now()})}function y(E){if(n.get()!=="pending"||a===null)return;let w=a.args,R=a;n.set("executing"),R.status="executing";let h=Date.now(),m=()=>{a===R&&(a=null);let p={...R};l.update(f=>{let g=[...f,p];return g.length>o?g.slice(-o):g})};V(Y(E(w)),p=>{let f=Date.now()-h;s.set(p),c.set(f),n.set("completed"),R.result=p,R.status="completed",R.duration=f,m()},{onEnd:p=>{if(p===void 0)return;let f=Date.now()-h;u.set(p),c.set(f),n.set("errored"),R.error=p,R.status="errored",R.duration=f,m()}})}function b(){n.set("idle"),r.set(void 0),i.set(void 0),s.set(void 0),u.set(void 0),c.set(void 0),a=null}return{status:n,toolName:r,args:i,result:s,error:u,duration:c,request:d,execute:y,reset:b,history:l}}function yn(e,t){return ae(({emit:o})=>{let n=0,r=setInterval(()=>o(n++),e);return t?.unref&&typeof r=="object"&&"unref"in r&&r.unref(),()=>clearInterval(r)})}function pt(e,t){return(o,n)=>{if(o!==0)return;let r=!1;function i(){r||(r=!0,clearTimeout(u),t?.removeEventListener("abort",s),n(1,void 0),n(2))}function s(){r||(r=!0,clearTimeout(u),t?.removeEventListener("abort",s),n(2,t.reason))}if(n(0,c=>{c===2&&!r&&(r=!0,clearTimeout(u),t?.removeEventListener("abort",s))}),t?.aborted){s();return}let u=setTimeout(i,e);t?.addEventListener("abort",s,{once:!0})}}function gt(e){let t=e?.base??100,o=e?.factor??2,n=e?.maxDelay??3e4,r=e?.jitter??"none";return i=>{let s=Math.min(t*o**i,n);return mr(s,r)}}function mr(e,t){switch(t){case"none":return e;case"full":return bn(0,e);case"equal":return e/2+bn(0,e/2)}}function bn(e,t){return e+Math.random()*(t-e)}function Tn(e,t,o){let n,r=[],i=!1,s=new Ie(e.length),u=!1;function c(){i||(n&&n(),n=t())}let l=0,a=[];function d(b){if(!i){if(b===he){for(let E of r)E(H,he);r.length=0,a.length=0,i=!0;try{n&&n()}finally{n=void 0}return}if(b===Se){l++,s.reset(),u=!1;for(let E=0;E<a.length;E++)a[E]=l;try{n&&n()}finally{n=void 0}}for(let E of r)E(H,b)}}we(),c();for(let b=0;b<e.length&&!i;b++){let E=b;a[E]=l,e[E].source(K,(w,R)=>{if(w===K){r.push(R),e.length===1&&R(H,Te);return}if(!i){if(w===H){if(Ee(R)){d(R),a[E]=l;return}if(a[E]!==l)return;R===Z?(s.empty()&&(u=!1),s.set(E)):R===re&&s.test(E)&&(s.clear(E),s.empty()&&u&&c())}if(w===ee){if(a[E]!==l)return;s.test(E)?(s.clear(E),u=!0,s.empty()&&c()):s.empty()?c():u=!0}if(w===U){i=!0,n&&n(),n=void 0;for(let h of r)h(U);r.length=0}}})}ke();let y=()=>{if(!i){i=!0,n&&n(),n=void 0;for(let b of r)b(U);r.length=0}};y.signal=b=>d(b),se.register(y,{kind:"effect",...o,deps:e});for(let b of e)se.registerEdge(b,y);return y}function pr(e){return e!=null&&typeof e.subscribe=="function"}function Mt(e){return pr(e)?ae(({emit:t,complete:o,error:n})=>{let r=!1,i=e.subscribe({next:s=>{r||t(s)},error:s=>{r||n(s)},complete:()=>{r||o()}});return()=>{r=!0,i.unsubscribe()}}):ae(({emit:t,complete:o,error:n})=>{let r=V(Y(e),i=>t(i),{onEnd:i=>i!==void 0?n(i):o()});return()=>r.unsubscribe()},{resubscribable:!0})}var gr=Symbol.for("callbag-recharge:topic-internal"),hr=Symbol.for("callbag-recharge:topic-log"),yr=0;function Sn(e){return{seq:e.seq,value:e.value.value,timestamp:e.value.timestamp,key:e.value.key,priority:e.value.priority,headers:e.value.headers}}function _n(e,t){let o=`sub-${++yr}`,n=t?.name??o,r=t?.mode??"exclusive",i=t?.batchSize??1,s=t?.ackTimeout??3e4,u=e[gr],c=e[hr],l,a=r==="shared"||r==="failover"||r==="key_shared",d;a?(d=u.getOrCreateGroup(n),d.consumers.add(o),d.consumers.size===1&&(d.cursor=y()),l=d.cursor):l=y();function y(){return t?.initialPosition==="earliest"?c.headSeq>0?c.headSeq:1:typeof t?.initialPosition=="number"?t.initialPosition:c.tailSeq+1}let b=new Map,E=new Map,w=[],R=t?.retry?.maxRetries??3,h=t?.retry?.backoff??gt(),m=t?.deadLetterTopic,p=!1,f=!1,g=I(l,{name:`${n}:pos`}),S=I(0,{name:`${n}:pending`}),M=Q([c.lengthStore,c.events,g],()=>{let P=c.tailSeq,F=g.get(),j=c.headSeq,G=j>0?Math.max(F,j):F;return Math.max(0,P-G+1)},{name:`${n}:backlog`}),D=Q([M,c.events,g],()=>{if(M.get()<=0)return 0;let F=g.get(),j=c.headSeq,G=j>0?Math.max(F,j):F,le=c.get(G);return le?Math.max(0,Date.now()-le.value.timestamp):0},{name:`${n}:lag`}),x=t?.persistence;function T(){if(!x)return;let P=Mt(x.save(`${n}:cursor`,l)),F=X(P,()=>{});setTimeout(()=>F.unsubscribe(),0)}function L(){return r!=="failover"||!d?!0:d.consumers.values().next().value===o}function A(P){let F=0;for(let j=0;j<P.length;j++)F=(F<<5)-F+P.charCodeAt(j)|0;return Math.abs(F)}function C(P){if(r!=="key_shared"||!d||!P)return!0;let F=Array.from(d.consumers),j=A(P)%F.length;return F[j]===o}function O(P){if(p||f)return[];if(!L())return[];let F=P??i,j=[],G=c.headSeq;G>0&&l<G&&(l=G,a&&d&&(d.cursor=Math.max(d.cursor,G)));let le=Date.now(),ie=[],Ct=[];for(let fe of w)fe.readyAt<=le&&ie.length<F?ie.push(fe):Ct.push(fe);w.length=0,w.push(...Ct);for(let fe of ie){let je=c.get(fe.seq);if(je){let Ue=Sn(je);j.push(Ue),B(fe.seq)}}let Lt=F-j.length,ze=-1;if(Lt>0){let fe=a&&d?d.cursor:l,je=c.tailSeq,Ue=0;for(let ge=fe;ge<=je&&Ue<Lt;ge++){let bt=c.get(ge);if(!bt||r==="key_shared"&&!C(bt.value.key))continue;if(r==="shared"&&d&&d.consumers.size>1){let Dt=Array.from(d.consumers),kn=d.roundRobinIndex%Dt.length;if(Dt[kn]!==o)continue;d.roundRobinIndex++}let wn=Sn(bt);j.push(wn),B(ge),ge>ze&&(ze=ge),Ue++}if(ze>=0){let ge=ze+1;a&&d&&(d.cursor=Math.max(d.cursor,ge)),l=a&&d?d.cursor:ge}}return j.length>0&&$(()=>{g.set(l),S.update(fe=>fe+j.length)}),j}function B(P){let F;s>0&&(F=setTimeout(()=>{b.has(P)&&k(P)},s)),b.set(P,{timer:F})}function _(P){let F=b.get(P);F&&(F.timer&&clearTimeout(F.timer),b.delete(P),E.delete(P),S.update(j=>Math.max(0,j-1)),T())}function v(P,F){if(m){let j=c.get(P);j&&m.publish(j.value.value,{key:j.value.key,headers:{...j.value.headers,"x-original-topic":e.name,"x-retry-count":String(F),"x-original-seq":String(P)}})}E.delete(P)}function k(P){let F=b.get(P);if(!F)return;F.timer&&clearTimeout(F.timer),b.delete(P),S.update(ie=>Math.max(0,ie-1));let j=E.get(P)??{attempts:0},G=j.attempts+1;if(G>R){v(P,G);return}let le=h(G-1,void 0,j.prevDelay);if(le===null){v(P,G);return}E.set(P,{attempts:G,prevDelay:le}),w.push({seq:P,readyAt:Date.now()+le})}function q(P){if(f)return;let F;P==="earliest"?F=c.headSeq>0?c.headSeq:1:P==="latest"?F=c.tailSeq+1:F=P,l=F,a&&d&&(d.cursor=F),g.set(F);for(let j of b.values())j.timer&&clearTimeout(j.timer);b.clear(),S.set(0),w.length=0,E.clear(),T()}let J,W;if(x){let P=Mt(x.load(`${n}:cursor`));W=P,J=Tn([P],()=>{let F=P.get();typeof F=="number"&&q(F)})}function z(){if(!f){f=!0,J?.(),W&&N(W);for(let P of b.values())P.timer&&clearTimeout(P.timer);b.clear(),w.length=0,E.clear(),d&&(d.consumers.delete(o),d.consumers.size===0&&u.removeGroup(n)),$(()=>{N(g),N(S),N(M),N(D)})}}return{get name(){return n},get mode(){return r},pull:O,ack:_,nack:k,seek:q,position:g,backlog:M,pending:S,lag:D,pause(){p||(p=!0,g.signal(_e),S.signal(_e))},resume(){p&&(p=!1,g.signal(ve),S.signal(ve))},get isPaused(){return p},destroy:z}}function vn(e,t,o){let n=o?.threshold??0,r=null,i=!1;function s(){if(i)return 0;let u=e.toArray();if(u.length===0)return 0;let c=new Map,l=[];for(let y of u){let b=t(y.value);c.has(b)||l.push(b),c.set(b,y.value)}let a=l.map(y=>c.get(y)),d=u.length-a.length;if(d===0)return 0;i=!0;try{e.clear(),e.appendMany(a)}finally{i=!1}return d}return n>0&&(r=X(e.events,u=>{u?.type==="append"&&e.length>=n&&s()})),{compact:s,destroy(){r?.unsubscribe(),r=null}}}var br=0;ht.from=function(t,o){let n=ht({...o,id:t.id});for(let r of t.entries)n.append(r.value);return n};function ht(e){let t=++br,o=e?.id??`rlog-${t}`,n=e?.maxSize??0,r=n>0,i=[],s=0,u=0,c=0,l=1,a=I(0,{name:`${o}:ver`}),d=I(void 0,{name:`${o}:events`,equals:()=>!1}),y=new Map,b=!1;function E(){if(!r)return i.slice();if(u===0)return[];let h=new Array(u);for(let m=0;m<u;m++)h[m]=i[(s+m)%n];return h}function w(h){if(!r)return i[h];if(!(h<0||h>=u))return i[(s+h)%n]}let R={get id(){return o},get version(){return a.get()},append(h){if(b)return-1;let m=++c,p={seq:m,value:h};return r?(u<n?(i[(s+u)%n]=p,u++):(i[s]=p,s=(s+1)%n),l=c-u+1):(i.push(p),l=i.length>0?i[0].seq:1),a.update(f=>f+1),d.set({type:"append",seq:m,value:h}),m},appendMany(h){if(b||h.length===0)return[];let m=[];return $(()=>{for(let p of h)m.push(R.append(p))}),m},get(h){if(r)return h<l||h>c||u===0?void 0:w(h-l);let m=h-l;if(!(m<0||m>=i.length))return i[m]},slice(h,m){let p=h??l,f=m??c;if((r?u:i.length)===0)return[];let S=Math.max(p,l),M=Math.min(f,c);if(S>M)return[];let D=S-l,x=M-l;if(!r)return i.slice(D,x+1);let T=[];for(let L=D;L<=x;L++)T.push(i[(s+L)%n]);return T},toArray(){return E()},get length(){return r?u:i.length},get headSeq(){return(r?u:i.length)>0?l:0},get tailSeq(){return c},trimHead(h){let m=r?u:i.length;if(m===0||h<=0)return 0;let p=Math.min(h,m);return $(()=>{r?(s=(s+p)%n,u-=p):i.splice(0,p),l+=p,a.update(f=>f+1),d.set({type:"trim"})}),p},clear(){(r?u:i.length)!==0&&$(()=>{r?(u=0,s=0):i.length=0,l=c+1,a.update(m=>m+1),d.set({type:"clear"})})},lengthStore:Q([a],()=>r?u:i.length,{name:`${o}:length`}),latest:Q([a],()=>{if((r?u:i.length)!==0)return r?i[(s+u-1)%n]:i[i.length-1]},{name:`${o}:latest`}),tail(h){let m=y.get(h);return m||(m=Q([a],()=>{let p=E();return h===void 0||h>=p.length?p:p.slice(-h)},{name:`${o}:tail${h??""}`}),y.set(h,m),m)},events:d,snapshot(){return{type:"reactiveLog",id:o,version:a.get(),entries:E().map(h=>({seq:h.seq,value:h.value})),headSeq:(r?u:i.length)>0?l:0,tailSeq:c}},destroy(){b||(b=!0,$(()=>{for(let h of y.values())N(h);y.clear(),N(R.lengthStore),N(R.latest),N(d),N(a),i.length=0,u=0}))}};return R}var Tr=0;function yt(e){return{seq:e.seq,value:e.value.value,timestamp:e.value.timestamp,key:e.value.key,priority:e.value.priority,headers:e.value.headers}}function xn(e,t){let o=++Tr,n=t?.namespace,r=n?n.prefix(e):e,i=`topic-${r}-${o}`,s=ht({id:`${i}:log`,maxSize:t?.maxSize}),u;if(t?.compaction){let A=t.compaction.keyFn;u=vn(s,C=>A(C.value),{threshold:t.compaction.threshold})}let c=t?.dedup?.windowMs??6e4,l=new Map,a;c>0&&(a=setInterval(()=>{let A=Date.now();for(let[C,O]of l)A-O>=c&&l.delete(C)},Math.min(c,3e4)),a&&typeof a=="object"&&"unref"in a&&a.unref());let d=t?.ttl??0;function y(){if(d<=0||s.length===0)return 0;let A=Date.now()-d,C=0,O=s.toArray();for(let B of O)if(B.value.timestamp<A)C++;else break;return C>0&&s.trimHead(C),C}let b=!1,E=!1,w=new Set,R=new Map,h=I(0,{name:`${i}:pubCount`}),m=I(0,{name:`${i}:ver`}),p=s.lengthStore,f=Q([s.latest],()=>{let A=s.latest.get();return A?yt(A):void 0},{name:`${i}:latest`}),g=t?.schema,S=t?.persistence?n?n.checkpoint(t.persistence):t.persistence:void 0,M={getOrCreateGroup(A){let C=R.get(A);return C||(C={cursor:s.tailSeq+1,roundRobinIndex:0,consumers:new Set},R.set(A,C)),C},removeGroup(A){R.delete(A)}};function D(A,C){if(E||b)return-1;d>0&&y(),g&&(A=g.parse(A));let O=C?.dedupKey;if(O){let v=Date.now(),k=l.get(O);if(k!==void 0&&v-k<c)return-1;l.set(O,v)}let B={value:A,timestamp:Date.now(),key:C?.key,priority:C?.priority,headers:C?.headers};if(C?.delay&&C.delay>0){let v=setTimeout(()=>{w.delete(v),!E&&!b&&$(()=>{s.append(B),h.update(k=>k+1),m.update(k=>k+1)})},C.delay);return w.add(v),-1}return $(()=>{let v=s.append(B);return h.update(k=>k+1),m.update(k=>k+1),v})}function x(A){let C=s.get(A);return C?yt(C):void 0}function T(A,C){return s.slice(A,C).map(yt)}let L={get id(){return i},get version(){return m.get()},get name(){return r},publish:D,get(A){return x(A)},slice(A,C){return T(A,C)},get headSeq(){return s.headSeq},get tailSeq(){return s.tailSeq},depth:p,latest:f,publishCount:h,peek(){if(s.length===0)return;let A=s.get(s.headSeq);return A?yt(A):void 0},expireMessages(){return y()},pause(){if(!b){b=!0;for(let A of w)clearTimeout(A);w.clear(),h.signal(_e),m.signal(_e)}},resume(){b&&(b=!1,h.signal(ve),m.signal(ve))},get paused(){return b},destroy(){if(!E){E=!0;for(let A of w)clearTimeout(A);w.clear(),a&&clearInterval(a),l.clear(),u?.destroy(),$(()=>{N(h),N(m),N(f),s.destroy()}),R.clear()}}};return L[Symbol.for("callbag-recharge:topic-internal")]=M,L[Symbol.for("callbag-recharge:topic-log")]=s,L}function An(e,t,o){let n=o?.concurrency??1,r=o?.ackTimeout??3e4,i=o?.stallInterval??5e3,s=o?.stalledJobAction??"none",u=o?.retry?.maxRetries??3,c=o?.retry?.backoff??gt(),l=I(!1,{name:`${e}:paused`}),a=!1,d=0,y=new AbortController,b=new Map,E={completed:new Set,failed:new Set,stalled:new Set},w=I(0,{name:`${e}:active`}),R=I(0,{name:`${e}:completed`}),h=I(0,{name:`${e}:failed`}),m=I(0,{name:`${e}:waiting`}),p=xn(`${e}:jobs`,o?.topicOptions),f=_n(p,{name:`${e}:worker`,mode:"shared",initialPosition:"earliest",ackTimeout:0});function g(){let _=new AbortController;return y.signal.addEventListener("abort",()=>_.abort(),{once:!0}),_}function S(_){return{seq:_.seq,data:_.data,status:_.status,result:_.result,error:_.error,duration:_.duration,attempts:_.attempts}}function M(_,v){let k=S(v);for(let q of E[_])try{q(k)}catch{}}function D(){a||m.set(Math.max(0,f.backlog.get()))}function x(_){if(a){T(_);return}_.status="active",_.startTime=Date.now(),_.attempts++,d++,$(()=>{w.update(v=>v+1),D()}),V(Y(t(_.abort.signal,_.data)),v=>{if(a){T(_);return}_.status="completed",_.result=v,_.duration=Date.now()-_.startTime,d--,f.ack(_.seq),$(()=>{w.update(k=>Math.max(0,k-1)),R.update(k=>k+1),D()}),M("completed",_),T(_)},{onEnd:v=>{if(v!==void 0){if(a){T(_);return}if(_.duration=Date.now()-_.startTime,d--,$(()=>{w.update(k=>Math.max(0,k-1))}),_.attempts<u){let k=c(_.attempts-1,v,void 0);if(k===null){L(_,v),T(_);return}let q=()=>{if(l.get()){let J=X(l,W=>{if(!W){if(J.unsubscribe(),a){T(_);return}_.abort=g(),x(_)}});return}if(a){T(_);return}_.abort=g(),x(_)};k>0?V(pt(k,_.abort.signal),()=>{q()},{onEnd:J=>{J!==void 0&&T(_)}}):q();return}L(_,v),T(_)}}})}function T(_){b.delete(_.seq),a||A()}function L(_,v){if(_.status="failed",_.error=v,f.ack(_.seq),$(()=>{h.update(k=>k+1),D()}),o?.deadLetterTopic)try{o.deadLetterTopic.publish(_.data,{headers:{"x-original-queue":e,"x-retry-count":String(_.attempts),"x-original-seq":String(_.seq)}})}catch{}M("failed",_)}function A(){if(l.get()||a)return;let _=n-d;if(_<=0)return;let v=f.pull(_);if(v.length!==0){D();for(let k of v){let q={seq:k.seq,data:k.value,status:"waiting",attempts:0,abort:g()};b.set(k.seq,q),x(q)}}}let C=X(p.depth,()=>{!l.get()&&!a&&(D(),A())}),O=yn(i),B=X(O,()=>{if(a)return;let _=Date.now();for(let v of b.values())v.status==="active"&&v.startTime&&_-v.startTime>r&&(v.status="stalled",M("stalled",v),(s==="cancel"||s==="retry")&&(v.abort.abort(),s==="cancel"&&(v.attempts=u)))});return D(),A(),{get name(){return e},add(_,v){let k=p.publish(_,v);return D(),queueMicrotask(()=>A()),k},active:w,completed:R,failed:h,waiting:m,on(_,v){return E[_].add(v),()=>{E[_].delete(v)}},pause(){l.get()||(l.set(!0),f.pause())},resume(){l.get()&&(l.set(!1),f.resume(),A())},get isPaused(){return l.get()},destroy(){a||(a=!0,y.abort(),C.unsubscribe(),B.unsubscribe(),f.destroy(),p.destroy(),b.clear(),$(()=>{N(l),N(w),N(R),N(h),N(m)}))}}}function En(e){let t=e.name??"toolRegistry",o=e.maxHistory??200,n=e.tools,r=!1,i=new AbortController,s=I(0,{name:`${t}.active`}),u=I([],{name:`${t}.history`}),c=I([],{name:`${t}.lastResults`}),l=new Map;for(let[m,p]of Object.entries(n))if(p.queue){let f={...p.queue};e.deadLetterTopic&&(f.deadLetterTopic=e.deadLetterTopic);let g=An(`${t}:${m}`,(S,M)=>p.handler(S,M.args),f);l.set(m,g)}function a(m){u.update(p=>{let f=[...p,m];return f.length>o?f.slice(-o):f})}function d(m){let p=new AbortController,f=()=>p.abort();i.signal.addEventListener("abort",f,{once:!0});let g;if(m&&m>0){let S=V(pt(m,p.signal),()=>{p.signal.aborted||p.abort()},{onEnd:()=>{}});g=()=>S.unsubscribe()}return{signal:p.signal,cleanup:()=>{i.signal.removeEventListener("abort",f),g?.()}}}function y(m,p){let f=n[m.tool];if(!f){let D={id:m.id,tool:m.tool,args:m.args,error:new Error(`Unknown tool: ${m.tool}`),status:"errored",duration:0};a(D),p(D);return}let g=m.args;if(f.schema)try{g=f.schema.parse(m.args)}catch(D){let x={id:m.id,tool:m.tool,args:m.args,error:D,status:"errored",duration:0};a(x),p(x);return}s.update(D=>D+1);let S=Date.now(),M=l.get(m.tool);if(M){let D=M.add({args:g,callId:m.id}),x=M.on("completed",A=>{if(A.seq!==D)return;L();let C={id:m.id,tool:m.tool,args:m.args,result:A.result,status:"completed",duration:Date.now()-S};s.update(O=>Math.max(0,O-1)),a(C),p(C)}),T=M.on("failed",A=>{if(A.seq!==D)return;L();let C={id:m.id,tool:m.tool,args:m.args,error:A.error,status:"errored",duration:Date.now()-S};s.update(O=>Math.max(0,O-1)),a(C),p(C)}),L=()=>{x(),T()}}else{let{signal:D,cleanup:x}=d(f.timeout),T;try{T=f.handler(D,g)}catch(L){x();let A={id:m.id,tool:m.tool,args:m.args,error:L,status:"errored",duration:Date.now()-S};s.update(C=>Math.max(0,C-1)),a(A),p(A);return}V(Y(T),L=>{x();let A=Date.now()-S,C={id:m.id,tool:m.tool,args:m.args,result:L,status:"completed",duration:A};s.update(O=>Math.max(0,O-1)),a(C),p(C)},{onEnd:L=>{if(L===void 0)return;x();let A=Date.now()-S,C={id:m.id,tool:m.tool,args:m.args,error:L,status:"errored",duration:A};s.update(O=>Math.max(0,O-1)),a(C),p(C)}})}}function b(m,p,f){r||y({id:f,tool:m,args:p},()=>{})}function E(m,p){if(m.length===0){let f=p!==void 0?p:[];return ae(({emit:g,complete:S})=>{g(f),S()},{_skipInspect:!0}).source}return ae(({emit:f,complete:g})=>{if(r){f(p!==void 0?p:[]),g();return}let S=[],M=m.length;for(let D of m)y(D,x=>{S.push(x),M--,M===0&&($(()=>{c.set(S)}),f(p!==void 0?p:S),g())})},{_skipInspect:!0}).source}function w(){return Object.entries(n).map(([m,p])=>({type:"function",function:{name:m,description:p.description,...p.parameters?{parameters:p.parameters}:{}}}))}function R(m){return m in n}function h(){if(!r){r=!0,i.abort();for(let m of l.values())m.destroy();l.clear(),$(()=>{N(s),N(u),N(c)})}}return{dispatch:b,execute:E,active:s,history:u,lastResults:c,definitions:w,has:R,destroy:h}}0&&(module.exports={agentLoop,agentMemory,chatStream,checkpoint,conversationSummary,conversationThread,docIndex,embeddingIndex,fromLLM,hybridRoute,indexedDBAdapter,memoryAdapter,memoryStore,ragPipeline,systemPromptBuilder,toToolCallRequests,tokenTracker,toolCallState,toolRegistry});
68
+ `)},{name:o});function r(){W(n)}return Object.assign(n,{destroy:r})}function cr(e){let t=e?.name??"toolCall",o=e?.maxHistory??100,n=O("idle",{name:`${t}.status`}),r=O(void 0,{name:`${t}.toolName`}),i=O(void 0,{name:`${t}.args`}),s=O(void 0,{name:`${t}.result`}),u=O(void 0,{name:`${t}.error`}),a=O(void 0,{name:`${t}.duration`}),l=O([],{name:`${t}.history`}),c=null;function d(x,A){n.get()!=="executing"&&(r.set(x),i.set(A),s.set(void 0),u.set(void 0),a.set(void 0),n.set("pending"),c={toolName:x,args:A,status:"pending",requestedAt:Date.now()})}function y(x){if(n.get()!=="pending"||c===null)return;let A=c.args,T=c;n.set("executing"),T.status="executing";let g=Date.now(),f=()=>{c===T&&(c=null);let p={...T};l.update(m=>{let h=[...m,p];return h.length>o?h.slice(-o):h})};Y(ce(x(A)),p=>{let m=Date.now()-g;s.set(p),a.set(m),n.set("completed"),T.result=p,T.status="completed",T.duration=m,f()},{onEnd:p=>{if(p===void 0)return;let m=Date.now()-g;u.set(p),a.set(m),n.set("errored"),T.error=p,T.status="errored",T.duration=m,f()}})}function b(){n.set("idle"),r.set(void 0),i.set(void 0),s.set(void 0),u.set(void 0),a.set(void 0),c=null}return{status:n,toolName:r,args:i,result:s,error:u,duration:a,request:d,execute:y,reset:b,history:l}}function ur(e){let t=e.name??"toolRegistry",o=e.maxHistory??200,n=e.tools,r=!1,i=new AbortController,s=O(0,{name:`${t}.active`}),u=O([],{name:`${t}.history`}),a=O([],{name:`${t}.lastResults`}),l=new Map;for(let[f,p]of Object.entries(n))if(p.queue){let m={...p.queue};e.deadLetterTopic&&(m.deadLetterTopic=e.deadLetterTopic);let h=ze(`${t}:${f}`,(S,E)=>p.handler(S,E.args),m);l.set(f,h)}function c(f){u.update(p=>{let m=[...p,f];return m.length>o?m.slice(-o):m})}function d(f){let p=new AbortController,m=()=>p.abort();i.signal.addEventListener("abort",m,{once:!0});let h;if(f&&f>0){let S=Y(Ve(f,p.signal),()=>{p.signal.aborted||p.abort()},{onEnd:()=>{}});h=()=>S.unsubscribe()}return{signal:p.signal,cleanup:()=>{i.signal.removeEventListener("abort",m),h?.()}}}function y(f,p){let m=n[f.tool];if(!m){let D={id:f.id,tool:f.tool,args:f.args,error:new Error(`Unknown tool: ${f.tool}`),status:"errored",duration:0};c(D),p(D);return}let h=f.args;if(m.schema)try{h=m.schema.parse(f.args)}catch(D){let M={id:f.id,tool:f.tool,args:f.args,error:D,status:"errored",duration:0};c(M),p(M);return}s.update(D=>D+1);let S=Date.now(),E=l.get(f.tool);if(E){let D=E.add({args:h,callId:f.id}),M=E.on("completed",R=>{if(R.seq!==D)return;$();let I={id:f.id,tool:f.tool,args:f.args,result:R.result,status:"completed",duration:Date.now()-S};s.update(J=>Math.max(0,J-1)),c(I),p(I)}),w=E.on("failed",R=>{if(R.seq!==D)return;$();let I={id:f.id,tool:f.tool,args:f.args,error:R.error,status:"errored",duration:Date.now()-S};s.update(J=>Math.max(0,J-1)),c(I),p(I)}),$=()=>{M(),w()}}else{let{signal:D,cleanup:M}=d(m.timeout),w;try{w=m.handler(D,h)}catch($){M();let R={id:f.id,tool:f.tool,args:f.args,error:$,status:"errored",duration:Date.now()-S};s.update(I=>Math.max(0,I-1)),c(R),p(R);return}Y(ce(w),$=>{M();let R=Date.now()-S,I={id:f.id,tool:f.tool,args:f.args,result:$,status:"completed",duration:R};s.update(J=>Math.max(0,J-1)),c(I),p(I)},{onEnd:$=>{if($===void 0)return;M();let R=Date.now()-S,I={id:f.id,tool:f.tool,args:f.args,error:$,status:"errored",duration:R};s.update(J=>Math.max(0,J-1)),c(I),p(I)}})}}function b(f,p,m){r||y({id:m,tool:f,args:p},()=>{})}function x(f,p){if(f.length===0){let m=p!==void 0?p:[];return xe(({emit:h,complete:S})=>{h(m),S()},{_skipInspect:!0}).source}return xe(({emit:m,complete:h})=>{if(r){m(p!==void 0?p:[]),h();return}let S=[],E=f.length;for(let D of f)y(D,M=>{S.push(M),E--,E===0&&(z(()=>{a.set(S)}),m(p!==void 0?p:S),h())})},{_skipInspect:!0}).source}function A(){return Object.entries(n).map(([f,p])=>({type:"function",function:{name:f,description:p.description,...p.parameters?{parameters:p.parameters}:{}}}))}function T(f){return f in n}function g(){if(!r){r=!0,i.abort();for(let f of l.values())f.destroy();l.clear(),z(()=>{W(s),W(u),W(a)})}}return{dispatch:b,execute:x,active:s,history:u,lastResults:a,definitions:A,has:T,destroy:g}}0&&(module.exports={agentLoop,agentMemory,chatStream,checkpoint,conversationSummary,conversationThread,docIndex,embeddingIndex,fromLLM,hybridRoute,indexedDBAdapter,memoryAdapter,memoryStore,ragPipeline,systemPromptBuilder,toToolCallRequests,tokenTracker,toolCallState,toolRegistry});