@fungi.computer/grove 0.1.0 → 0.2.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.
- package/README.md +18 -9
- package/dist/assets/Effect-BY0T-p9d.js +76 -0
- package/dist/assets/abort-signals-joV34wzR.js +1 -0
- package/dist/assets/anthropic-messages-BPUe3sjP.js +19 -0
- package/dist/assets/azure-openai-responses-qVCjcy57.js +1 -0
- package/dist/assets/{base-face-BaB6vmvy.js → base-face-Dc6wvM5e.js} +1 -1
- package/dist/assets/burger-CJ8nsj7v.js +1 -0
- package/dist/assets/cat-DCYVOD6V.js +1 -0
- package/dist/assets/classifier-shared-DtTbFkSF.js +1 -0
- package/dist/assets/cloudflare-workers-ai-system-one-C4GWBDtR.js +1 -0
- package/dist/assets/compat-Dluy1HPa.js +2 -0
- package/dist/assets/{diagnostics-CmW2yJSB.js → diagnostics-CxvqSC4Q.js} +1 -1
- package/dist/assets/{document-D5hwZS3o.js → document-DjWTbvB5.js} +1 -1
- package/dist/assets/error-BTdmRKoB.js +1 -0
- package/dist/assets/extension-hook-Ce1QNicQ.js +721 -0
- package/dist/assets/extensions-D55BOb_a.js +1 -0
- package/dist/assets/{google-generative-ai-DP-8xZvz.js → google-generative-ai-D4EEWKtU.js} +1 -1
- package/dist/assets/{google-shared-Cs5udoZV.js → google-shared-CvUYw8Za.js} +3 -3
- package/dist/assets/{google-vertex-BJiAIGUd.js → google-vertex-MtdrRNuD.js} +1 -1
- package/dist/assets/index--Y1OC0IE.js +171 -0
- package/dist/assets/index-BmdZJzrt.css +1 -0
- package/dist/assets/{json-parse-nqKewMRF.js → json-parse-M7s0500m.js} +2 -2
- package/dist/assets/mistral-conversations-CI9T5Sz9.js +4 -0
- package/dist/assets/models-BM_0GHMS.js +1 -0
- package/dist/assets/mushroom-CstiBfYI.js +1 -0
- package/dist/assets/{node.browser-hsQQ6fyG.js → node.browser-DL9pz-ZD.js} +1 -1
- package/dist/assets/node.browser-HQ5SKBOf.js +1 -0
- package/dist/assets/openai-codex-responses-C1JF2nxc.js +9 -0
- package/dist/assets/openai-completions-DJRWblh-.js +5 -0
- package/dist/assets/openai-decisions-CRn788gD.js +2 -0
- package/dist/assets/openai-responses-DT9fG-Eg.js +1 -0
- package/dist/assets/openai-responses-shared-BDR0j8d9.js +10 -0
- package/dist/assets/{openrouter-images-DwousKhc.js → openrouter-images-BqwSYNGm.js} +1 -1
- package/dist/assets/parakeet-conversation-DFuwoFfN.js +4 -0
- package/dist/assets/{pi-messages-CfXPQ4jp.js → pi-messages-0BariYjJ.js} +1 -1
- package/dist/assets/preload-helper-DY31Aviq.js +8 -0
- package/dist/assets/{provider-retry-CSlu6hjs.js → provider-retry-RVfYd5Vz.js} +1 -1
- package/dist/assets/renderer-l9sYXW5N.js +1 -0
- package/dist/assets/runtime-core-BHRx5Fxu.js +2 -0
- package/dist/assets/system-one-shared-DywxmMny.js +1 -0
- package/dist/assets/transform-messages-ByuM-ZZe.js +1 -0
- package/dist/assets/typesafe-system-one-D7tQu98S.js +1 -0
- package/dist/index.html +7 -7
- package/package.json +38 -18
- package/dist/assets/Effect-CxgtVs4O.js +0 -76
- package/dist/assets/anthropic-messages-DVt3Yh9K.js +0 -41
- package/dist/assets/azure-openai-responses-QZaJy-8U.js +0 -1
- package/dist/assets/burger-CoqBXzRV.js +0 -1
- package/dist/assets/cat-2dRm7fBw.js +0 -1
- package/dist/assets/cloudflare-workers-ai-system-one-Bq-3_D9p.js +0 -1
- package/dist/assets/compat-fz0ZcRJH.js +0 -2
- package/dist/assets/error-CJ3RHG07.js +0 -1
- package/dist/assets/extension-hook-0UB2lkEs.js +0 -560
- package/dist/assets/extensions-CAsZR9ky.js +0 -1
- package/dist/assets/index-Bw6tV9qS.css +0 -1
- package/dist/assets/index-DRDNbHYF.js +0 -171
- package/dist/assets/mistral-conversations-mRYg3mWw.js +0 -4
- package/dist/assets/models-CcNnosqL.js +0 -1
- package/dist/assets/mushroom-B9t9hgQE.js +0 -1
- package/dist/assets/node.browser-DFtqp6Hr.js +0 -1
- package/dist/assets/openai-codex-responses-CA-ivUEd.js +0 -9
- package/dist/assets/openai-completions-BxBCgHHI.js +0 -5
- package/dist/assets/openai-responses-cvwOEFWg.js +0 -1
- package/dist/assets/openai-responses-shared-DzD8B6NI.js +0 -10
- package/dist/assets/parakeet-conversation-w0nznEs9.js +0 -3
- package/dist/assets/preload-helper-mbhLTglw.js +0 -8
- package/dist/assets/renderer-s3PB0XrL.js +0 -1
- package/dist/assets/runtime-core-GKyHklNK.js +0 -2
- package/dist/assets/system-one-shared-CGF8IYMZ.js +0 -1
- package/dist/assets/transform-messages-CrQEqmfx.js +0 -1
- package/dist/assets/typesafe-system-one-CWcJw-Ys.js +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/compat-fz0ZcRJH.js","assets/extension-hook-0UB2lkEs.js","assets/Effect-CxgtVs4O.js","assets/preload-helper-mbhLTglw.js","assets/provider-env-CcCbsTJq.js","assets/rolldown-runtime-hePW80VL.js","assets/diagnostics-CmW2yJSB.js","assets/models-CcNnosqL.js","assets/json-parse-nqKewMRF.js","assets/openai-codex-responses-CA-ivUEd.js","assets/headers-FK4rgixo.js","assets/transform-messages-CrQEqmfx.js","assets/error-body-pkrba6pf.js","assets/openai-prompt-cache-DXo9f3w5.js","assets/openai-responses-shared-DzD8B6NI.js","assets/sanitize-unicode-DmIE6hZJ.js","assets/hash-yQufAZII.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e}from"./rolldown-runtime-hePW80VL.js";import{A as t,Gn as n,I as r,In as i,Jn as a,Kn as o,N as s,Nr as c,P as l,Q as u,U as d,Wn as f,X as p,Xn as m,Z as ee,_ as h,_t as te,a as g,at as _,c as v,ct as y,d as ne,dt as b,er as x,ft as re,g as S,gt as C,h as w,ht as T,i as ie,it as ae,lt as E,m as D,n as O,nr as k,o as oe,p as se,q as ce,r as A,rr as j,s as M,t as le,ui as ue,ut as N,vt as de,w as fe,y as P,yt as F,z as pe}from"./Effect-CxgtVs4O.js";import{$ as me,$t as he,A as ge,An as I,At as _e,B as ve,Bi as L,Bt as ye,C as be,Ca as xe,Ci as Se,Cr as Ce,Ct as we,D as Te,Da as Ee,Di as R,Dn as De,Dt as Oe,E as ke,Ea as Ae,Er as je,Et as Me,F as Ne,Fi as Pe,Fn as Fe,Fr as z,Ft as Ie,G as Le,Gr as Re,Gt as ze,H as Be,Ht as Ve,I as He,Ii as B,It as Ue,J as We,Ji as Ge,Jt as Ke,K as qe,Kr as Je,Kt as Ye,L as Xe,Ln as Ze,Lt as Qe,M as $e,Mn as et,Mr as tt,Mt as nt,N as rt,Nn as V,Nr as it,Nt as at,O as ot,On as st,Or as ct,Ot as lt,P as ut,Pi as dt,Pt as ft,Q as pt,Qn as mt,Qt as ht,R as gt,Ri as _t,Rr as vt,Rt as yt,S as bt,Sa as xt,Sr as St,St as Ct,T as wt,Tn as Tt,Tr as H,Tt as Et,U as Dt,Un as Ot,Ur as U,Vi as kt,Vt as At,W as jt,Wr as Mt,Wt as Nt,X as Pt,Xn as Ft,Xr as It,Xt as Lt,Y as Rt,Yr as zt,Yt as Bt,Z as Vt,Zt as Ht,_ as Ut,_n as Wt,_t as Gt,a as Kt,an as qt,ar as Jt,at as Yt,b as Xt,ba as Zt,bn as Qt,bt as $t,c as en,ca as tn,ci as nn,cr as rn,ct as an,d as on,da as sn,di as cn,dn as ln,dr as un,dt as dn,en as fn,et as pn,f as mn,fn as hn,fr as gn,ft as _n,g as vn,gt as yn,h as bn,hr as xn,ht as Sn,i as Cn,in as W,it as wn,j as Tn,ja as En,ji as Dn,jn as On,jr as kn,jt as G,k as An,kt as jn,l as Mn,la as Nn,lt as Pn,m as Fn,ma as In,mr as Ln,mt as Rn,n as zn,nn as Bn,nt as Vn,o as Hn,on as Un,or as K,ot as Wn,p as Gn,pa as Kn,pn as qn,pr as Jn,pt as Yn,q as Xn,qn as Zn,qr as Qn,qt as $n,r as er,rn as tr,rt as nr,s as rr,sa as ir,sn as ar,sr as or,st as sr,t as cr,tn as lr,tt as ur,u as dr,un as fr,ur as pr,ut as mr,v as hr,vr as gr,vt as _r,w as vr,wa as yr,wr as br,wt as xr,x as Sr,xa as Cr,xt as wr,y as Tr,yi as Er,yr as Dr,yt as Or,z as kr,zi as q,zn as Ar,zr as jr,zt as Mr}from"./extension-hook-0UB2lkEs.js";import{d as Nr,g as Pr,t as Fr}from"./preload-helper-mbhLTglw.js";import{d as Ir,f as Lr,u as Rr}from"./index-DRDNbHYF.js";import{a as zr,i as Br,n as Vr,o as Hr,r as Ur,t as Wr}from"./extensions-CAsZR9ky.js";var Gr=_t(()=>gi),Kr=K(Gr),qr=H({id:Dr,payload:gn}),Jr=H({...qr.fields,schemas:Pe(Kr)});function Yr(e){let t={};for(let[n,r]of Object.entries(e))Ge(r)&&c(t,n,r);return Object.keys(t).length===0?x():k(t)}var Xr=Pe(Ce(br,it)).pipe(Qn(B(Jn),{decode:ir(),encode:Nn(e=>a(e)||e.value===void 0?x():Yr(e.value))})),Zr=_t(()=>ei),Qr=K(Zr),$r={annotations:Xr,checks:Qr},ei=tt([H({_tag:q(`Filter`),representation:Jr,annotations:Xr,aborted:rn}),H({_tag:q(`FilterGroup`),representation:Pe(Jr),annotations:Xr,checks:gr(Zr)})]);function J(e){return H({_tag:q(e),...$r})}var ti=H({_tag:q(`Declaration`),representation:qr,annotations:Xr,typeParameters:Kr,checks:Qr}),ni=H({_tag:q(`Suspend`),annotations:Xr,checks:ct([]),thunk:Gr});function ri(e,t){return t.pipe(Qn(H({type:q(e),value:t}),{decode:tn(e=>e.value),encode:tn(t=>({type:e,value:t}))}))}var ii=ri(`string`,br),ai=ri(`number`,St),oi=H({_tag:q(`Literal`),...$r,literal:tt([ii,ri(`number`,pr),ri(`bigint`,or),ri(`boolean`,rn)])}),si=H({_tag:q(`UniqueSymbol`),...$r,symbol:je}),ci=H({_tag:q(`Enum`),...$r,enums:K(ct([br,tt([ii,ai])]))}),li=H({_tag:q(`TemplateLiteral`),...$r,parts:Kr}),ui=H({isOptional:rn,type:Gr,annotations:Xr}),di=H({_tag:q(`Arrays`),...$r,elements:K(ui),rest:Kr}),fi=H({name:tt([ii,ai,ri(`symbol`,je)]),type:Gr,isOptional:rn,isMutable:rn,annotations:Xr}),pi=H({parameter:Gr,type:Gr}),mi=H({_tag:q(`Objects`),...$r,propertySignatures:K(fi),indexSignatures:K(pi)}),hi=H({_tag:q(`Union`),...$r,types:Kr,options:B(H({mode:B(xn([`anyOf`,`oneOf`]))}))}),gi=tt([ti,H({_tag:q(`Reference`),$ref:Dr}),ni,J(`Null`),J(`Undefined`),J(`Void`),J(`Never`),J(`Unknown`),J(`Any`),J(`String`),J(`Number`),J(`Boolean`),J(`BigInt`),J(`Symbol`),J(`ObjectKeyword`),oi,si,ci,li,di,mi,hi]),_i=Je(L(H({representation:Gr,references:Ce(br,Gr)})));function vi(e){return _i(e)}var yi=Symbol.for(`@fungi.computer/shiitake/extension-definition-reader`);function bi(e){return e[yi]?.()}var xi=0xffffffffffff,Si=(1n<<41n)-1n,Ci=-1,Y;function wi(e){let t=e??Date.now();if(!Number.isInteger(t)||t<0||t>xi)throw RangeError(`UUIDv7 timestamp must be an integer between 0 and ${xi}`);let n=e===void 0?Math.max(t,Ci):e;e===void 0&&(Ci=n);let r=new Uint8Array(16);if(globalThis.crypto.getRandomValues(r),Y===void 0)Y=BigInt(r[1])<<32n|BigInt(r[2])<<24n|BigInt(r[3])<<16n|BigInt(r[4])<<8n|BigInt(r[5]);else{if(Y===Si)throw RangeError(`UUIDv7 generator sequence exhausted`);Y++}let i=BigInt(n);for(let e=5;e>=0;e--)r[e]=Number(i>>BigInt((5-e)*8))&255;r[6]=112|Number(Y>>37n&15n),r[7]=Number(Y>>29n&255n),r[8]=128|Number(Y>>23n&63n),r[9]=Number(Y>>15n&255n),r[10]=Number(Y>>7n&255n),r[11]=Number((Y&127n)<<1n)|r[11]&1;let a=Array.from(r,e=>e.toString(16).padStart(2,`0`));return`${a.slice(0,4).join(``)}-${a.slice(4,6).join(``)}-${a.slice(6,8).join(``)}-${a.slice(8,10).join(``)}-${a.slice(10).join(``)}`}function Ti(e){return xt(e,{onFailure:h,onSuccess:()=>F})}function Ei(e,t){return pe(e,{onFailure:e=>w(t).pipe(g(h(e))),onSuccess:()=>t})}function Di(e,t){let n={_tag:`open`},r=r=>Ei(e,t).pipe(w,P(e=>N(()=>{r.result=e,n={_tag:`closed`}}).pipe(g(r.settled.open),g(Ti(e)))),te);return E(()=>{if(n._tag===`closed`)return F;if(n._tag!==`open`){let e=n;return e.settled.await.pipe(g(E(()=>{let t=e.result;return t===void 0?se(Error(`Agent close settlement was not recorded`)):Ti(t)})))}let e={_tag:`running`,settled:mt(!1)};return n=e,r(e)})}function Oi(e,t,n,r){let i=We(e,t);if(n.state===`idle`)return{facts:{queue:{state:`idle`},cancellationRequested:!1,retry:null,activeTool:null,lastModelChoiceSequence:i,compaction:null},progress:null};if(n.state===`queued`)return{facts:{queue:{state:`queued`,commandId:n.jobId,runningWork:r},cancellationRequested:n.cancellationRequested,retry:null,activeTool:null,lastModelChoiceSequence:i,compaction:null},progress:null};let a=Rt(e,t,n.jobId),o=a?.event.type===`auto_retry_start`?{attempt:a.event.attempt,maxAttempts:a.event.maxAttempts,delayMs:a.event.delayMs,errorMessage:a.event.errorMessage,scheduledAt:a.timestamp}:null;return{facts:{queue:{state:`running`,commandId:n.jobId},cancellationRequested:n.cancellationRequested,retry:o,activeTool:Xn(e,t,n.jobId)??null,lastModelChoiceSequence:i,compaction:gt(e,t)},progress:kr(e,t,n.jobId)}}function ki(e){return new V(`model`,`rejected`,e)}function Ai(e,t){let n={input:e.input+t.input,output:e.output+t.output,cacheRead:e.cacheRead+t.cacheRead,cacheWrite:e.cacheWrite+t.cacheWrite,totalTokens:e.totalTokens+t.totalTokens,cost:{input:e.cost.input+t.cost.input,output:e.cost.output+t.cost.output,cacheRead:e.cost.cacheRead+t.cost.cacheRead,cacheWrite:e.cost.cacheWrite+t.cost.cacheWrite,total:e.cost.total+t.cost.total}};return(e.cacheWrite1h!==void 0||t.cacheWrite1h!==void 0)&&(n.cacheWrite1h=(e.cacheWrite1h??0)+(t.cacheWrite1h??0)),(e.reasoning!==void 0||t.reasoning!==void 0)&&(n.reasoning=(e.reasoning??0)+(t.reasoning??0)),n}function ji(e){let t;for(let n of e)n.kind===`compaction`&&(t=n);let n=t,r=n===void 0?0:Math.max(0,e.findIndex(({id:e})=>e===n.firstKeptEntryId)),i=e.flatMap((e,t)=>e.kind===`message`&&t>=r?[e.message]:[]);return n===void 0?i:[Rn(n.summary,n.timestamp),...i]}function Mi(e,t,n){let r=yn(),i=t[n];if(i?.kind===`compaction`&&i.details!==void 0){for(let e of i.details.readFiles)r.read.add(e);for(let e of i.details.modifiedFiles)r.edited.add(e)}for(let t of e)Or(t,r);return r}function Ni(e){return e.role!==`toolResult`}function Pi(e,t,n,r){let i=e.flatMap((e,r)=>e.kind===`message`&&r>=t&&r<n&&Ni(e.message)?[r]:[]),a=i[0];if(a===void 0)return;let o=0,s=a;for(let a=n-1;a>=t;--a){let t=e[a];if(t?.kind===`message`&&(o+=_r(t.message),o>=r)){s=i.find(e=>e>=a)??i.at(-1)??s;break}}return s}function Fi(e,t,n){let r=e[n],i=r?.kind===`message`&&r.message.role===`user`,a=-1;if(!i)for(let r=n;r>=t;--r){let t=e[r];if(t?.kind===`message`&&t.message.role===`user`){a=r;break}}return{isSplitTurn:!i&&a>=0,turnStartIndex:a}}function Ii(e,t,n,r){let i=Pi(e,t,n,r);return i===void 0?{firstKeptEntryIndex:t,isSplitTurn:!1,turnStartIndex:-1}:{firstKeptEntryIndex:i,...Fi(e,t,i)}}function Li(e,t){if(e.at(-1)?.kind===`compaction`)return;let n,r=-1,i=0;for(let t=e.length-1;t>=0;--t){let a=e[t];if(a?.kind===`compaction`){n=a.summary,r=t;let o=e.findIndex(e=>e.id===a.firstKeptEntryId);i=o>=0?o:t+1;break}}let a=e.flatMap((e,t)=>e.kind===`message`&&t>=i?[e]:[]),o=Gt(ji(e)).tokens,s=Ii(a,0,a.length,t.keepRecentTokens),c=a[s.firstKeptEntryIndex];if(c?.kind!==`message`)return;let l=s.isSplitTurn?s.turnStartIndex:s.firstKeptEntryIndex,u=Object.freeze(a.slice(0,l).map(({message:e})=>e)),d=Object.freeze(s.isSplitTurn?a.slice(s.turnStartIndex,s.firstKeptEntryIndex).map(({message:e})=>e):[]);if(u.length===0&&d.length===0)return;let f=Mi(u,e,r);for(let e of d)Or(e,f);let p={firstKeptEntryId:c.id,messagesToSummarize:u,turnPrefixMessages:d,isSplitTurn:s.isSplitTurn,tokensBefore:o,fileOps:f,settings:t};return n===void 0?p:{...p,previousSummary:n}}var Ri={enabled:!0,maxRetries:3,baseDelayMs:2e3};function zi(e,t,n,r){let i={...n,cacheRetention:`none`,sessionId:n.sessionId??wi()};return Wt(()=>r?Promise.resolve(r(e,Nr(t),i)).then(e=>e.result()):Fr(async()=>{let{completeSimple:e}=await import(`./compat-fz0ZcRJH.js`);return{completeSimple:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16])).then(({completeSimple:n})=>n(e,t,i)),Ri,i.signal)}function Bi(e){return{systemPrompt:dn,messages:[{role:`user`,content:[{type:`text`,text:e}],timestamp:Date.now()}]}}function Vi(e,t,n){let r=e.previousSummary??``,i=t?Yn:mr,a=n===void 0?i:`${i}\n\nAdditional focus: ${n}`;return`<conversation>\n${wr(e.messagesToSummarize)}\n</conversation>\n\n${t?`<previous-summary>\n${r}\n</previous-summary>\n\n`:``}${a}`}function Hi(e){return`# Conversation\n${wr(e.turnPrefixMessages)}\n\n# Instructions\n${_n}`}async function Ui(e,t,n,r,i,a){let o=n===void 0?{maxTokens:t}:{maxTokens:t,signal:n},s=await zi(e,Bi(r),o,a),c=we(s,i);if(c!==void 0)throw Error(c);return s}function Wi(e,t,n,r,i,a){return e.messagesToSummarize.length===0?Promise.resolve(void 0):Ui(t,n,r,Vi(e,e.previousSummary!==void 0&&e.previousSummary.length>0,i),`Summarization`,a)}function Gi(e,t,n,r){return!e.isSplitTurn||e.turnPrefixMessages.length===0?Promise.resolve(void 0):Ui(t,Math.min(Math.floor(.5*e.settings.reserveTokens),t.maxTokens>0?t.maxTokens:1/0),n,Hi(e),`Turn prefix summarization`,r)}function Ki(e,t,n){let r,i;if(e.isSplitTurn){if(n===void 0)throw Error(`Split-turn compaction did not produce a prefix summary`);r=`${t===void 0?e.previousSummary??`No prior history.`:Pr(t.content)}\n\n---\n\n**Turn Context (split turn):**\n\n${Pr(n.content)}`,i=t===void 0?n.usage:Ai(t.usage,n.usage)}else{if(t===void 0)throw Error(`Compaction did not produce a history summary`);r=Pr(t.content),i=t.usage}let a=Sn(e.fileOps);return{summary:r+$t(a.readFiles,a.modifiedFiles),firstKeptEntryId:e.firstKeptEntryId,tokensBefore:e.tokensBefore,usage:i,details:a}}async function qi(e,t,n,r,i){return Ki(e,await Wi(e,t,Math.min(Math.floor(.8*e.settings.reserveTokens),t.maxTokens>0?t.maxTokens:1/0),n,r,i),e.isSplitTurn&&e.turnPrefixMessages.length>0?await Gi(e,t,n,i):void 0)}function Ji(e,t,n,r){return T({try:i=>qi(e,t,i,r,n),catch:e=>ki(e instanceof Error?e.message:String(e))})}function Yi(e,t,n){return{messagesToSummarize:e.messagesToSummarize,turnPrefixMessages:e.turnPrefixMessages,result:t,contextRevision:n}}function Xi(e){return new V(`runtime`,`rejected`,e)}var Zi={handoff:`The compaction handoff failed; the conversation context is unchanged`,conflict:`The Session changed during compaction; the conversation context is unchanged`},Qi=class extends V{phase;constructor(e){super(e===`conflict`?`store`:`runtime`,e===`conflict`?`conflict`:`rejected`,Zi[e]),this.phase=e}get diagnostic(){return Zi[this.phase]}};function $i(e,t){let n=wn(e,t),r=Vn(e),i=[];for(let t of e){let e=$n(t.entry);if(e!==void 0&&!r.has(e.workId)){i.push({id:t.id,kind:`message`,message:Nt(e)});continue}if(t.entry.kind===`operator`){i.push({id:t.id,kind:`message`,message:Ye(t.entry)});continue}if(t.entry.kind===`message`){n.has(t.id)&&i.push({id:t.id,kind:`message`,message:t.entry.value});continue}if(t.entry.kind===`compaction`){let e={id:t.id,kind:`compaction`,timestamp:t.timestamp,firstKeptEntryId:t.entry.firstKeptEntryId,summary:t.entry.summary,usage:t.entry.usage};i.push(t.entry.details===void 0?e:{...e,details:t.entry.details})}}return i}function ea(e,t,n){return C({try:()=>Vt(e,{sessionId:t,workId:n}),catch:e=>e instanceof V&&e.cause===`context_too_large`?e:Xi(`Woodstock selected lineage is unavailable`)})}function ta(e,t){let n=e.reduce((e,t)=>t.entry.kind===`compaction`?t.timestamp:e,void 0),r=Gt(t),i=r.lastUsageIndex,a=i===null?void 0:t[i];return n===void 0||a?.role!==`assistant`||a.timestamp>n?r.tokens:t.reduce((e,t)=>e+_r(t),0)}function na(e,t,n,r){let i={...t,id:`${t.id}:compaction`,parentId:t.id,sequence:t.sequence+1,timestamp:Date.now(),entry:n};return Dt([...e,i],r).reduce((e,t)=>e+_r(t),0)}function ra(e,t,n){return E(()=>(He(e.store,e.sessionId,n.trigger),ia(e,t,n).pipe(D(N(()=>{Xe(e.store,e.sessionId)})))))}function ia(e,n,i){return t(function*(){let t=Li($i(n,e.workId),e.settings);if(t===void 0)return;let a=n.at(-1);if(a===void 0)return;let o=yield*Ji(t,e.model,e.stream,i.instructions);e.handoff!==void 0&&(yield*e.handoff.consume(Yi(t,o,a.id)).pipe(r(()=>new Qi(`handoff`))));let s=na(n,a,{kind:`compaction`,resumesRun:i.resumesRun,trigger:i.trigger,workId:e.workId,firstKeptEntryId:o.firstKeptEntryId,summary:o.summary,tokensBefore:o.tokensBefore,usage:o.usage,contextRevision:a.id},e.workId),c=yield*C({try:()=>on(e.store,{sessionId:e.sessionId,resumesRun:i.resumesRun,trigger:i.trigger,tokensAfter:s,expectedLeafId:a.id,workId:e.workId,firstKeptEntryId:o.firstKeptEntryId,summary:o.summary,tokensBefore:o.tokensBefore,usage:o.usage,contextRevision:a.id,details:o.details}),catch:e=>e instanceof V?e.cause===`conflict`?new Qi(`conflict`):e:Xi(`Woodstock compaction append failed`)}),l=[...n,c];return{path:l,messages:Dt(l,e.workId)}})}function aa(e){return e instanceof Qi?e.diagnostic:e.boundary===`model`?e.message:`Compaction failed (${e.boundary}: ${e.cause})`}function oa(e,t,n){return C({try:()=>{dr(e.store,{sessionId:e.sessionId,workId:e.workId,trigger:t,result:n===void 0?`nothing_to_compact`:`failed`,diagnostic:n===void 0?void 0:aa(n)})},catch:e=>e instanceof V?e:Xi(`Compaction notice could not be recorded`)})}function sa(e,t,n){return u(ra(e,t,n)).pipe(P(t=>t._tag===`Success`?y(t.success):oa(e,n.trigger,t.failure).pipe(M(void 0))))}function ca(e){return e.resuming===!0||!Ct(ta(e.path,e.messages),e.model.contextWindow,e.settings)?y({path:e.path,messages:e.messages}):sa(e,e.path,{trigger:`threshold`,resumesRun:!1}).pipe(l(t=>t??{path:e.path,messages:e.messages}))}function la(e,t){let n=ln(e.message,t.contextWindow),r=Qt(e.message,t.maxTokens);return{triggered:n||r,overflow:n,retry:(n||r)&&e.message.stopReason!==`stop`}}function ua(e){let t=e.at(-1);return t?.role===`assistant`&&(t.stopReason===`error`||t.stopReason===`length`)?e.slice(0,-1):e}function da(e,t,n,r){if(!e.settings.enabled)return y(void 0);let i=Ct(ta(t.path,[...t.messages,...n.messages.slice(t.newMessageCount)]),e.model.contextWindow,e.settings);return r.triggered||i?ea(e.store,e.sessionId,e.workId):y(void 0)}function fa(e,n){return(r,i)=>t(function*(){if(!Ct(ta(n.path,r),e.model.contextWindow,e.settings))return;let t=yield*sa(e,yield*ea(e.store,e.sessionId,e.workId),{trigger:`threshold`,resumesRun:!1});if(t!==void 0)return n.path=t.path,n.messages=t.messages,n.newMessageCount=i,t.messages})}function pa(e,n){return t(function*(){let t=n,r=n.path.some(({entry:t})=>t.kind===`compaction`&&t.workId===e.workId&&t.resumesRun===!0);for(;;){let n={path:t.path,messages:t.messages,newMessageCount:0},i=yield*e.run(n.messages,fa(e,n)),a=la(i,e.model),o=yield*da(e,n,i,a);if(o===void 0||a.retry&&r)return i;let s=yield*sa(e,o,{trigger:a.overflow?`overflow`:`threshold`,resumesRun:a.retry});if(s===void 0||!a.retry)return i;t={path:s.path,messages:ua(s.messages)},r=!0}})}function ma(e){return e.settings.enabled?ca(e).pipe(P(t=>pa(e,t))):pa(e,e)}function ha(e){return e.path.some(({entry:t})=>(t.kind===`compaction`||t.kind===`compaction_notice`)&&t.workId===e.workId)?y(`compacted`):ra(e,e.path,{trigger:`manual`,resumesRun:!1,instructions:e.instructions}).pipe(re(t=>oa(e,`manual`,t)),P(t=>t===void 0?oa(e,`manual`,void 0).pipe(M(`nothing_to_compact`)):y(`compacted`)))}function ga(e,t){let n=Vt(e,{sessionId:t}),r=Dt(n);return r.length===0?null:ta(n,r)}var _a=new WeakMap;function va(e){let t=_a.get(e);if(t!==void 0)return t;let n=new Map;return _a.set(e,n),n}function ya(e,n,r){return t(function*(){let t=yield*u(C({try:()=>({tokens:ga(e.store,r),preference:me(e.store,r)}),catch:e=>e}));if(t._tag===`Failure`||t.success.tokens===null)return;let{tokens:i,preference:a}=t.success,o=va(n),s=JSON.stringify(a),c=o.get(r);if(c?.preference===s)return Object.freeze({tokens:i,window:c.window});let d=e.model.describe;if(d===void 0)return Object.freeze({tokens:i,window:null});let f=yield*d({sessionId:r,preference:a}).pipe(l(({contextWindow:e})=>e),ne(e=>N(()=>{qt(`session-context.describe`,e)})));return f===void 0?Object.freeze({tokens:i,window:null}):(o.set(r,{preference:s,window:f}),Object.freeze({tokens:i,window:f}))})}function ba(e){return Object.freeze({list:e.assertOpen.pipe(l(()=>e.extensions.list())),resume:t=>e.assertOpen.pipe(g(e.extensions.resume(t))),call:(t,n,r)=>e.assertOpen.pipe(g(e.extensions.call({scope:`agent`},t,n,r)))})}function xa(e,t,n){return t.readQueueHead(n).pipe(P(r=>(r.state===`queued`?t.runningWork(r.jobId):y(null)).pipe(l(t=>Oi(e.store,n,r,t)))))}function Sa(e,t){return t===void 0?e:Object.freeze({...e,context:t})}function Ca(e,t,n,r){return xa(e,t,n).pipe(P(i=>bt(e.store,n,i,r,()=>t.extensions.project(n))),P(r=>ya(e,t,n).pipe(l(e=>Sa(r,e)))))}function wa(e,t,n){return e.assertOpen.pipe(g(C({try:()=>n(I(t)),catch:e=>e instanceof V?e:new V(`store`,`rejected`,`Session owner operation failed`)})))}function Ta(e,t){return C({try:()=>{let n=st(t);if(n._tag===`Failure`)throw new V(`contract`,`invalid`,`Session command is invalid`);return Object.freeze({sessionId:I(e),command:n.success})},catch:e=>e instanceof V?e:new V(`contract`,`invalid`,`Session command is invalid`)})}function Ea(e,t){return C({try:()=>Object.freeze({sessionId:I(e),options:On(t)}),catch:e=>e instanceof V?e:new V(`contract`,`invalid`,`Subscribe options are invalid`)})}function Da(e,t,n,r=!1){return t.assertOpen.pipe(g(Ca(e,t,n,{includeSandboxFailures:r})),l(e=>Object.freeze({kind:`reset`,reason:`history_unavailable`,cursor:e.cursor,baseline:e})))}function Oa(e){return[[e],k({after:e.cursor??void 0,delivery:e.baseline.hasMore?`replay`:`live`,awaitSignal:!e.baseline.hasMore})]}function ka(e,t,n,r,i,a,o=!1){return Zn({after:i,delivery:a,awaitSignal:!1},i=>(i.awaitSignal?n.awaitSignal.pipe(P(e=>n.pollSignal.pipe(l(t=>t===void 0?e:Bn(e,t))))):n.pollSignal).pipe(P(n=>n===`closed`?y([[],x()]):n===`reset`?Da(e,t,r,o).pipe(l(Oa)):t.assertOpen.pipe(g(xa(e,t,r)),P(a=>n===`progress`&&i.delivery===`live`&&a.progress!==null?y([[{kind:`progress`,progress:a.progress,activity:a.facts}],k({...i,awaitSignal:!0})]):vr(e.store,r,i.after,i.delivery,a,()=>t.extensions.project(r),o).pipe(P(n=>{if(n.kind===`reset`)return Da(e,t,r,o).pipe(l(Oa));let a={after:n.frames.flatMap(e=>e.kind===`progress`?[]:[e.cursor]).at(-1)??i.after,delivery:n.hasMore?i.delivery:`live`,awaitSignal:!n.hasMore};return(n.frames.some(e=>e.kind===`update`)?ya(e,t,r):y(void 0)).pipe(l(e=>[e===void 0?n.frames:n.frames.map(t=>t.kind===`update`?Object.freeze({...t,context:e}):t),k(a)]))})))))))}function Aa(e,t,n,r,i){return Ft(t.assertOpen.pipe(g(Ea(r,i)),P(r=>le(n.register(r.sessionId),e=>N(e.close)).pipe(l(n=>ka(e,t,n,r.sessionId,r.options.after,`replay`,r.options.includeSandboxFailures===!0))))))}function ja(e,t){return C({try:()=>Object.freeze({sessionId:I(e),options:De(t)}),catch:e=>e instanceof V?e:new V(`contract`,`invalid`,`Watch options are invalid`)})}function Ma(e,n,r,i,a){return n.assertOpen.pipe(g(ja(i,a)),P(i=>de(a=>t(function*(){let t=yield*r.register(i.sessionId);return yield*a(n.assertOpen.pipe(g(Ca(e,n,i.sessionId,i.options)),l(r=>Object.freeze({snapshot:r,changes:ka(e,n,t,i.sessionId,r.cursor??void 0,`live`,i.options.includeSandboxFailures===!0).pipe(Ot(N(t.close))),close:N(t.close)})))).pipe(d(()=>N(t.close)))}))))}function Na(e,t,n,r,i,a){let o={sessionId:t,command:n,when:`now`,origin:{kind:`user`}};return r!==void 0&&(o={...o,meta:r}),i!==void 0&&(o={...o,mail:i}),a!==void 0&&(o={...o,reply:a}),e.assertOpen.pipe(g(e.door.admit(o)),P(e=>e.status===`accepted`?y({status:`accepted`,commandId:e.commandId}):S(new V(`runtime`,`unavailable`,`Session command was not admitted`))))}function Pa(e,t,n,r,i){return t.assertOpen.pipe(g(Gn(e.store,n,r.commandId,r.onlyIfPending,()=>t.readQueueHeadTransactional(n),t.recordAcceptedCancellation,i)),P(e=>e===void 0?y({status:`too_late`,commandId:r.commandId}):(e.active?t.signalCancellation(e.accepted.commandId,e.accepted.entryId):t.requestWake).pipe(M({status:`accepted`,commandId:e.accepted.commandId}))))}function Fa(e,t,n,r){return t.assertOpen.pipe(g(t.commit(Mn(e.store,n,()=>t.readQueueHeadTransactional(n),t.recordAcceptedCancellation,r))),P(e=>e===void 0?t.requestWake:t.signalCancellation(e.commandId,e.entryId)))}function Ia(e,t,n,r){return t.assertOpen.pipe(g(mn(e.store,{sessionId:n,type:`branch`,entryId:r.entryId,assertIdleSession:t.assertIdleSession})),M(void 0))}function La(e,t,n,r){return t.assertOpen.pipe(g(vn(e.store,{sessionId:n,type:`fork`,entryId:r.entryId,assertIdleSession:t.assertIdleSession})))}function Ra(e,t,n,r,i){return t.assertOpen.pipe(g(Ta(n,i)),P(t=>za(e,r).pipe(l(e=>({...t,checked:e})))),P(({sessionId:n,command:r,checked:i})=>{switch(r.type){case`prompt`:case`compact`:return Na(t,n,r,i);case`abort`:return Fa(e,t,n,i).pipe(M(void 0));case`cancel`:return Pa(e,t,n,r,i);case`branch`:return Ia(e,t,n,r);case`fork`:return La(e,t,n,r);case`operator`:return t.assertOpen.pipe(g(ge(e.store,{sessionId:n,requestId:r.requestId,author:r.author,meta:i,text:r.text,assertIdleSession:t.assertIdleSession})),M(void 0));case`title`:return t.commit(wa(t,n,t=>{ur(e.store,t,r.title)})).pipe(M(void 0))}}))}function za(e,t){return C({try:()=>t===void 0?void 0:Ht(e.meta,t),catch:e=>e instanceof V?e:new V(`contract`,`invalid`,`Host metadata is invalid`)})}function Ba(e,t){let n=tr(e.store),i=(i,a)=>{function o(n){return Ra(e,t,i,a,n)}return Object.freeze({command:o,abort:o({type:`abort`}),send:(e,t)=>N(()=>t?.requestId??Jt()).pipe(P(n=>{let i={type:`prompt`,delivery:t?.delivery??`steer`,requestId:n,text:e};return o(t?.images===void 0?i:{...i,images:t.images}).pipe(r(e=>e.requestId===n?e:new V(e.boundary,e.cause,e.message,n)))})),cancel:e=>o({type:`cancel`,...e}),modelPreference:Object.freeze({read:wa(t,i,t=>me(e.store,t)),set:n=>C({try:()=>Fe(n),catch:()=>new V(`contract`,`invalid`,`Model preference is invalid`)}).pipe(P(n=>t.commit(wa(t,i,t=>(pn(e.store,t,n),t))).pipe(b(t=>N(()=>{W(e.store,t)})),v)))}),extension:e=>Object.freeze({call:(n,r)=>t.assertOpen.pipe(g(t.extensions.call({scope:`session`,sessionId:i},e,n,r)))}),read:n=>t.assertOpen.pipe(g(Ca(e,t,i,n))),subscribe:r=>Aa(e,t,n,i,r),watch:r=>Ma(e,t,n,i,r)})},a=Object.freeze({createSession:n=>t.assertOpen.pipe(g(Fn(e.store,n,t.storage.admitNew))),deleteSession:n=>t.assertOpen.pipe(g(bn(e.store,{sessionId:n,assertIdleSession:t.assertIdleSession}))),listSessions:n=>t.assertOpen.pipe(g(be(e.store,n))),extensions:ba(t),session:e=>i(e,void 0),close:t.beginClose.pipe(g(n.close))});return Object.freeze({...a,grants:Object.freeze({deliver:(n,r)=>wa(t,n,t=>e.store.transactionSync(()=>sr(e.store,t,r))),read:n=>wa(t,n,t=>an(e.store,t))}),withMeta:e=>Object.freeze({...a,session:t=>i(t,e)})})}function Va(e,t,n,r){return Na(e,t.to.sessionId,{requestId:t.key,delivery:r===void 0?`followUp`:`steer`,type:`prompt`,text:t.content},n,t,r)}var Ha=H({fork:xn([`inherit-at-fork-point`,`current`,`fresh`]),maxBytes:un.pipe(z(nn(0)),z(Er(2**53-1)))});function Ua(e,t){let n=zt(e.schema)(t);if(n._tag===`Failure`)throw new Br({reason:`encode`,message:`Session document does not match its schema`});let r=U(Un)(n.success);if(r._tag===`Failure`)throw new Br({reason:`encode`,message:`Session document must encode finite JSON`});let i=JSON.stringify(r.success);if(new TextEncoder().encode(i).byteLength>e.maxBytes)throw new Br({reason:`bound`,message:`Session document exceeds maxBytes`});return i}function Wa(e){return{...Mt(Ha)(e),schema:vi(kt(e.schema)),initial:Ua(e,e.initial)}}var Ga=64,Ka=xn([`state`,`attention`,`settled`,`send`,`timers`,`commands`,`projection`,`run_tools`,`files`,`prompt`,`compaction_handoff`]),qa=K(Ka).pipe(z(Se(10))),Ja=H({protocol:Ln(`shiitake.extension/v0`),id:Hn,version:en,requests:qa}),Ya=K(H({id:Hn,capabilities:qa,grantKey:B(Hn)})).pipe(z(Se(Ga))),Xa=br.pipe(z(Dn(/^[a-z][A-Za-z0-9_]{0,63}$/u))),Za=U(Ja,{onExcessProperty:`error`}),Qa=U(Ya,{onExcessProperty:`error`}),$a=U(Xa);function X(e){return new V(`extensions`,`invalid`,e)}function eo(e){return new Set(e).size!==e.length}function to(e){return JSON.stringify(e,(e,t)=>ue(t)?Object.fromEntries(Object.entries(t).sort(([e],[t])=>e<t?-1:+(e>t))):t)}function no(e){return T({try:async()=>{let t=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(e));return Array.from(new Uint8Array(t),e=>e.toString(16).padStart(2,`0`)).join(``)},catch:()=>new V(`extensions`,`rejected`,`Extension digest failed`)})}function ro(e,t){let{manifest:n,contract:r,state:i,config:a,catalog:o}=e,s={manifest:{protocol:n.protocol,id:n.id,version:n.version,requests:[...n.requests].sort()},commands:Object.fromEntries(Object.entries(r.commands).map(([e,t])=>[e,{scope:t.scope,input:vi(kt(t.input)),output:vi(kt(t.output))}])),projection:r.projection===null?null:vi(kt(r.projection.schema)),state:{version:i.version,collections:Object.fromEntries(Object.entries(i.collections).map(([e,t])=>[e,vi(kt(t.schema))]))},config:a},c=Object.keys(t).length===0?s:{...s,documents:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,Wa(t)]))};return o===void 0?c:{...c,catalog:o}}function io(e){if(Za(e.manifest)._tag===`Failure`)throw X(`Extension manifest is invalid`);let t=e.manifest;if(eo(t.requests))throw X(`Extension capability requests are invalid`);if(e.contract.id!==t.id)throw X(`Extension contract identity does not match its manifest`);if(!Number.isSafeInteger(e.state.version)||e.state.version<1)throw X(`Extension state version is invalid`);for(let t of Object.keys(e.state.collections))if(t===`update`||t===`read`||t===`observe`||$a(t)._tag===`Failure`)throw X(`Extension collection name is invalid`);if(e.catalog!==void 0&&!t.requests.includes(`commands`))throw X(`An extension catalog requires the commands capability`);return t}function ao(e){return t(function*(){let n=e?.roster??[],r=e?.grants??[],i=yield*C({try:()=>{if(n.length>Ga)throw X(`Extension roster is invalid`);let e=n.map(e=>{let t=bi(e);if(t===void 0)throw X(`Extension roster entry was not defined`);let n=t.documents??{};for(let[e,t]of Object.entries(n)){if($a(e)._tag===`Failure`)throw X(`Session document name is invalid`);Wa(t)}let r=io(t);if(Object.keys(n).length>0&&!r.requests.includes(`state`))throw X(`Session documents require the state capability`);return{definition:t,documents:n,manifest:r}});if(eo(e.map(({manifest:e})=>e.id)))throw new V(`extensions`,`conflict`,`Extension identities conflict`);let t=Qa(r);if(t._tag===`Failure`)throw X(`Extension grants are invalid`);if(eo(t.success.map(({id:e})=>e)))throw X(`Extension grant identities are invalid`);let i=new Map;for(let n of t.success){let t=e.find(({manifest:e})=>e.id===n.id);if(t===void 0||eo(n.capabilities)||n.capabilities.some(e=>!t.manifest.requests.includes(e)))throw X(`Extension grant is invalid`);i.set(n.id,n.capabilities)}if(e.filter(({manifest:e})=>i.get(e.id)?.includes(`compaction_handoff`)).length>1)throw new V(`extensions`,`conflict`,`Compaction handoff slot is already owned`);if(e.filter(({manifest:e})=>i.get(e.id)?.includes(`files`)).length>1)throw new V(`extensions`,`conflict`,`Files slot is already owned`);return e.map(e=>({...e,grants:i.get(e.manifest.id)??[]})).sort((e,t)=>e.manifest.id<t.manifest.id?-1:+(e.manifest.id>t.manifest.id))},catch:e=>e instanceof V?e:X(`Extension roster is invalid`)});return yield*fe(i,e=>t(function*(){let t=`sha256:${yield*no(yield*C({try:()=>to(ro(e.definition,e.documents)),catch:()=>X(`Extension schemas cannot be described`)}))}`,n=[...e.grants].sort(),r=`sha256:${yield*no(to([t,n]))}`;return Object.freeze({id:e.manifest.id,manifest:e.manifest,definition:e.definition,documents:e.documents,grants:new Set(n),revision:Mt(rr)(t),fingerprint:Mt(Kt)(r)})}))})}function oo(e){return no(to({protocol:`shiitake.extension/v0`,runContract:1,fileTools:[...e].sort()}))}var so=un.pipe(z(cn(0)),z(Er(2**53-1))),co=H({reserveTokens:B(so),keepRecentTokens:B(so)}),lo=H({enabled:B(rn),reserveTokens:B(so),keepRecentTokens:B(so),modelOverrides:B(Ce(br,co))}),uo=U(lo,{onExcessProperty:`error`});function fo(e){let t=uo(e??{});if(t._tag===`Failure`)throw new V(`contract`,`invalid`,`Compaction settings must be non-negative whole token counts`);let n=t.success;return e=>{let t=n.modelOverrides?.[`${e.provider}/${e.id}`];return{enabled:n.enabled??Pn.enabled,reserveTokens:t?.reserveTokens??n.reserveTokens??Pn.reserveTokens,keepRecentTokens:t?.keepRecentTokens??n.keepRecentTokens??Pn.keepRecentTokens}}}function po(e){return new V(`runtime`,`rejected`,e)}var mo={missing:`Instruction capabilities have no tool runtime`,runtime:`Tool runtime failed`,lease:`Tool lease failed`},ho=class extends V{phase;constructor(e){super(`runtime`,`rejected`,mo[e]),this.phase=e}get diagnostic(){return mo[this.phase]}};function go(e){return e.type===`retry_attempt_started`?{type:`auto_retry_attempt`,run:e.run,attempt:e.attempt}:e.type===`retry_scheduled`?{type:`auto_retry_start`,run:e.run,attempt:e.attempt,maxAttempts:e.maxAttempts,delayMs:e.delayMs,errorMessage:e.errorMessage}:e.finalError===void 0?{type:`auto_retry_end`,run:e.run,attempt:e.attempt,success:e.success}:{type:`auto_retry_end`,run:e.run,attempt:e.attempt,success:e.success,finalError:e.finalError}}function _o(e,n,i,a,o,s,c){let l=e.tools,u=o.modules??[],d=[...u,...s];return l===void 0?u.length>0||c.length>0?S(new ho(`missing`)):y([]):t(function*(){let t={sessionId:n,commandId:i};a!==void 0&&(t={...t,meta:a});let o={sources:l.sources,session:t,sandbox:l.sandbox,onSandboxFailure:t=>Tn(e.store,{sessionId:n,commandId:i},t).pipe(ce),modules:[...l.modules,...d],tools:c,access:{...l.access,sessionGrants:()=>an(e.store,n)?.grants??{}}},s=yield*(yield*fr(l.execution===void 0?o:{...o,execution:l.execution}).pipe(r(()=>new ho(`runtime`)))).acquire().pipe(r(()=>new ho(`lease`)));return[s.executeTool,...s.tools]})}function vo(e,n,i,a,o,s,c){return _(t(function*(){let t=yield*e.instructions.load({sessionId:n.command.sessionId,commandId:n.command.entry.workId}),u=t.release;u!==void 0&&(yield*A(()=>N(u)));let d=yield*Rr(e.model.acquire({sessionId:n.command.sessionId,preference:n.modelPreference})),f=yield*_o(e,n.command.sessionId,n.command.entry.workId,n.command.entry.meta,t,a,o),p=Object.freeze({sessionId:n.command.sessionId,requestId:n.command.entry.requestId,commandId:n.command.entry.workId}),m=yield*hr(e.store,p,i),ee=t=>ut(e.store,{sessionId:p.sessionId,workId:p.commandId,delivery:t}).pipe(l(e=>e.map(({message:e})=>e)),r(e=>({_tag:`MuleError`,phase:`control`,message:e instanceof V?e.message:`Session control delivery failed`}))),h=n.resume,te=fo(e.compaction)(d.model);return yield*ma({store:e.store,sessionId:n.command.sessionId,workId:n.command.entry.workId,model:d.model,stream:d.stream,handoff:s,settings:te,path:n.path,messages:n.messages,resuming:h!==void 0,run:(n,i)=>{let a=h;h=void 0;let o=e=>m(e),s={model:d.model,modelStreamIdleTimeoutMs:e.modelStreamIdleTimeoutMs??3e5,retry:e.retry??qn,retryAfterMs:d.retryAfterMs,systemPrompt:t.text,prepareSystemPrompt:()=>(c===void 0?y([]):c()).pipe(l(e=>t.text+e.map(({name:e,text:t})=>`\n\n[extension:${e}]\n${t}`).join(``)),r(e=>({_tag:`MuleError`,phase:`model`,message:`Extension prompt is unavailable`,cause:e}))),messages:n,resume:a,tools:f,getSteeringMessages:()=>ee(`steer`),prepareNextTurn:e=>i(e.context,e.newMessages.length).pipe(r(e=>({_tag:`MuleError`,phase:`control`,message:e.message}))),onRetry:t=>An(e.store,p,go(t),t.turn)};return hn.run(d.stream===void 0?s:{...s,stream:d.stream},o).pipe(r(e=>po(e.phase===`model`?e.message:`Mule rejected the durable command run`)))}})}))}function yo(e,n,r){return _(t(function*(){let t=yield*Rr(e.model.acquire({sessionId:n.command.sessionId,preference:n.modelPreference})),i=n.command.entry;return yield*ha({store:e.store,sessionId:n.command.sessionId,workId:i.workId,model:t.model,stream:t.stream,handoff:r,settings:fo(e.compaction)(t.model),path:n.path,instructions:ze(i)?i.instructions:void 0})}))}var bo=Object.freeze({maxRecoveries:2});function xo(e){return new V(`runtime`,`rejected`,e)}function So(e){let t=`${e.boundary}:${e.cause}`,n=e instanceof ho||e instanceof Qi?e.diagnostic:e.boundary===`model`?e.message:void 0;return{kind:`failed`,reason:n===void 0?t:`${t}: ${n}`.slice(0,200)}}function Co(e,t){return s(`shiitake_run_failed`,En(t)).pipe(oe({workId:e,reason:`${t.boundary}:${t.cause}`}))}function wo(e,n,r,i){return t(function*(){W(e.store,r.queue);let t=yield*C({try:()=>Lt(r),catch:()=>xo(`Agent work payload is invalid`)}),a=yield*Ut(e.store,t.work);if(a.abnormalTerminal!==void 0)return{kind:a.abnormalTerminal};let o=i?.incompatibleMigrations()[0];if(o!==void 0)return yield*s(`shiitake_run_contract_changed`).pipe(oe({workId:r.jobId,terminal:`contract_changed: ${o}`})),yield*S(xo(`contract_changed: ${o}`));let c=new Set(i?.runParticipants().map(([e])=>e)??[]);if(ze(a.command.entry))return yield*yo(e,a,i?.compactionHandoff(c)),yield*$e(e.store,{sessionId:a.command.sessionId,commandFactId:t.work.commandFactId,workId:a.command.entry.workId,outcome:`completed`}),{kind:`completed`};let u=yield*C({try:()=>Sr(e.store,t.work.sessionId,t.work.commandFactId,a.command.entry.workId),catch:()=>xo(`Accepted run origin is unavailable`)}),d={sessionId:a.command.sessionId,workId:a.command.entry.workId,origin:u===null?null:{extensionId:Mt(Cn)(u.extensionId),correlation:u.correlation}},f=i===void 0?[]:yield*i.filesForRun(d,c),p=i===void 0?[]:yield*fe([...c],t=>i.modulesForRun(d,new Set([t])).pipe(P(n=>C({try:()=>{let r=e.extensions.grants.find(e=>e.id===t)?.grantKey??t;return n.map(e=>ar.grantAs(e,r))},catch:()=>xo(`Extension tools are invalid`)})))).pipe(l(e=>e.flat())),m=i?.compactionHandoff(c);switch((yield*vo(e,a,{core:f.length===0?n:yield*oo(f.map(e=>e.descriptor.name)),extensions:i?.runParticipants()??[]},p,f,m,i===void 0?void 0:()=>i.promptSections(d,c))).status){case`completed`:return{kind:`completed`};case`cancelled`:return{kind:`cancelled`};case`failed`:return{kind:`failed`}}}).pipe(ne(e=>Co(r.jobId,e).pipe(M(So(e)))))}var To=U(ve,{onExcessProperty:`error`}),Eo=U(kn(rn)),Do=U(Ke,{onExcessProperty:`error`});function Oo(e){if(e.reply===void 0)return;let t=et(Do(e.reply),`Verified Agent reply is invalid`),n=e.mail;if(n?.replyTo.length!==0||n.from.agentId!==t.agentId||n.from.sessionId!==t.sessionId||e.command.type!==`prompt`||e.command.delivery!==`steer`)throw new V(`contract`,`invalid`,`Verified Agent reply does not match its mail`);return t}function ko(e){let t=t=>({sessionId:I(t.sessionId),requireExistingSession:et(Eo(t.requireExistingSession),`Session admission condition is invalid`)??!1,command:et(Tt(t.command),`Session command is invalid`),origin:et(To(t.origin),`Session command origin is invalid`),when:t.when,mail:t.mail,reply:Oo(t),meta:t.meta===void 0?void 0:Ht(e.hostMeta,t.meta)}),n=(t,n)=>{let{sessionId:r,origin:i}=t,a=t.command;if(t.requireExistingSession&&!Le(e.owner,r))throw new V(`contract`,`closed`,`Session target is unavailable`);let o=e.readQueueHead(r);if(t.when===`idle`&&o.state!==`idle`&&Pt(e.owner,r,a.requestId)===void 0)return Object.freeze({status:`not_ready`});a.type===`prompt`&&Pt(e.owner,r,a.requestId)===void 0&&e.admitNew();let s=a.type===`prompt`&&a.delivery===`steer`&&o.state===`running`&&!o.cancellationRequested?o.jobId:void 0,c=Be(e.owner,r,a,t.meta,i,e.contract(),s===void 0?n=>{e.enqueue(n,t.mail)}:void 0,s,t.reply);return n.set(r,(n.get(r)??!1)||c.delivery===`new`),Object.freeze({status:`accepted`,commandId:c.accepted.commandId,delivery:c.delivery})},r=(t,r)=>E(()=>{let i=new Map,a=C({try:()=>(i.clear(),e.owner.transactionSync(()=>t(e=>n(e,i)))),catch:e=>e instanceof V?e:new V(`store`,`unavailable`,`Session command admission is unavailable`)});return(r===`request`?e.commit(a):a).pipe(b(()=>N(()=>{for(let[t,n]of i)n&&W(e.owner,t)})),b(()=>i.size>0?e.requestWake:F))});return Object.freeze({transact:(e,n=`request`)=>r(n=>e(e=>n(t(e))),n),admit:(e,n)=>C({try:()=>t(e),catch:e=>e instanceof V?e:new V(`contract`,`invalid`,`Session command is invalid`)}).pipe(P(e=>r(t=>t(e),n??`request`)))})}var Ao=`core`,jo=256,Mo=1048576,No=512,Po=64,Fo=new TextEncoder,Io=U(K(H({name:br.pipe(z(Dn(/^[a-z][A-Za-z0-9_-]{0,63}$/u))),text:br.pipe(z(R(1)),z(dt(e=>Fo.encode(e).byteLength<=8192)))})).pipe(z(Se(16)))),Lo=class extends Error{};function Ro(e){return e.length<=No?e:`${e.slice(0,511)}…`}var zo=jr(It(Un));function Bo(e){return e instanceof zr?e.reason:`${e._tag}: ${e.message}`}function Vo(e){return e instanceof zr||e instanceof Br||e instanceof Wr||e instanceof Vr}function Ho(e,t){let n=Ee(t);if(m(n)){let t=n.value;return t instanceof zr?Ro(t.reason):Ro(Vo(t)?`${e}: ${Bo(t)}`:`${e} failed`)}let r=i(Ae(t));return m(r)?r.value instanceof Error?Ro(r.value.name===`AsyncFiberError`?`${e} crossed an asynchronous boundary inside a core transaction`:`${e} defect: ${r.value.message}`):Ro(`${e} defect`):Ro(`${e} was interrupted`)}function Uo(e){let t=Ee(e);return a(t)||t.value instanceof zr}function Z(e,t){return new Br({reason:e,message:t})}function Wo(e,t){return e.length>=1&&e.length<=jo?y(e):S(Z(`bound`,`${t} must be 1..256 characters`))}function Go(e){let t=Ro(e.message);if(e instanceof Vr)switch(e.reason){case`invalid`:return new V(`contract`,`invalid`,t);case`conflict`:return new V(`store`,`conflict`,t);case`not_found`:return new V(`store`,`rejected`,t);case`rejected`:return new V(`extensions`,`rejected`,t)}if(e instanceof Wr)switch(e.reason){case`invalid`:return new V(`contract`,`invalid`,t);case`conflict`:return new V(`contract`,`conflict`,t);case`closed`:return new V(`runtime`,`closed`,t)}return e.reason===`bound`?new V(`contract`,`invalid`,t):new V(`store`,`unavailable`,t)}function Ko(e){let{owner:r}=e,i=new WeakMap,c=new Map,u=new Set,ee,te=new Set,_=new Set,v,re=e=>Object.freeze({extensionId:e}),T=e=>P(Ur,t=>t.extensionId===e?F:se(Error(`Extension read used another extension's context`))),D=e=>P(Hr,t=>{let n=i.get(t);return n?.extensionId===e?y(n):se(Error(`Extension write used outside its own core transaction`))}),O=e=>C({try:e,catch:()=>Z(`unavailable`,`Extension state is unavailable`)}),A=(e,t)=>e.admitted.grants.has(t)?F:S(Z(`unavailable`,`Extension is not granted ${t}`));function le(e,t,n){let i=e.admitted.id,a=vt(It(n.schema)),o=Re(n.schema),s=e=>{let n=a(e);return n._tag===`Failure`?S(Z(`decode`,`Stored ${t} record is invalid`)):y(n.success)};return Object.freeze({peek:n=>{if(ee!==i||!e.admitted.grants.has(`state`))throw Error(`Extension read used outside its own projection`);let o=at(r,i,t,n);if(o===void 0)return x();let s=a(o);if(s._tag===`Failure`)throw Z(`decode`,`Stored ${t} record is invalid`);return k(s.success)},peekPage:n=>{if(ee!==i||!e.admitted.grants.has(`state`))throw Error(`Extension read used outside its own projection`);if(!Number.isSafeInteger(n.limit)||n.limit<1||n.limit>Po)throw Z(`bound`,`Page limit must be 1..64`);return ft(r,i,t,n).map(e=>{let n=a(e);if(n._tag===`Failure`)throw Z(`decode`,`Stored ${t} record is invalid`);return n.success})},get:n=>T(i).pipe(g(A(e,`state`)),g(O(()=>at(r,i,t,n))),P(e=>e===void 0?y(x()):s(e).pipe(l(k)))),page:n=>T(i).pipe(g(A(e,`state`)),g(Number.isSafeInteger(n.limit)&&n.limit>=1&&n.limit<=Po?F:S(Z(`bound`,`Page limit must be 1..64`))),g(O(()=>ft(r,i,t,n))),P(e=>fe(e,s))),put:a=>D(i).pipe(g(A(e,`state`)),g(E(()=>{let e=o(a);if(e._tag===`Failure`)return S(Z(`encode`,`The ${t} record does not match its schema`));let s=JSON.stringify(e.success);if(Fo.encode(s).byteLength>Mo)return S(Z(`bound`,`The ${t} record exceeds 1 MiB`));let c=n.index?.(a)??null;return ie([Wo(n.key(a),`A record key`),c===null?y(null):Wo(c,`A record index`)]).pipe(P(([e,n])=>O(()=>{Mr(r,i,t,e,n,s)})))}))),remove:n=>D(i).pipe(g(A(e,`state`)),g(O(()=>{Oe(r,i,t,n)})))})}function ue(e,t,n){let i=e.admitted.id,a=vt(It(n.schema)),o=Re(n.schema),s=()=>{if(!te.has(i)||!e.admitted.grants.has(`state`))throw Z(`unavailable`,`Extension state update is unavailable`)},c=e=>{if(e.length<1||e.length>jo)throw Z(`bound`,`A record key must be 1..256 characters`);return e},l=e=>{let n=a(e);if(n._tag===`Failure`)throw Z(`decode`,`Stored ${t} record is invalid`);return n.success};return Object.freeze({get:e=>{s();let n=at(r,i,t,c(e));return n===void 0?x():k(l(n))},page:e=>{if(s(),!Number.isSafeInteger(e.limit)||e.limit<1||e.limit>Po)throw Z(`bound`,`Page limit must be 1..64`);return ft(r,i,t,e).map(l)},put:e=>{s();let a=o(e);if(a._tag===`Failure`)throw Z(`encode`,`The ${t} record does not match its schema`);let l=JSON.stringify(a.success);if(Fo.encode(l).byteLength>Mo)throw Z(`bound`,`The ${t} record exceeds 1 MiB`);let u=n.index?.(e)??null;u!==null&&c(u),Mr(r,i,t,c(n.key(e)),u,l)},remove:e=>{s(),Oe(r,i,t,c(e))}})}function de(e){let t=e.admitted.id;return Object.freeze({set:(n,i)=>D(t).pipe(b(()=>A(e,`timers`)),b(()=>Wo(n,`A timer key`)),b(()=>Number.isSafeInteger(i)&&i>=0?F:S(Z(`bound`,`A timer instant is invalid`))),P(e=>O(()=>{Ve(r,t,n,i),e.timersChanged=!0}))),cancel:n=>D(t).pipe(b(()=>A(e,`timers`)),P(e=>O(()=>{lt(r,t,n),e.timersChanged=!0}))),read:i=>T(t).pipe(g(A(e,`timers`)),g(O(()=>Qe(r,t,i))),l(n))})}function pe(t){let n=t.admitted.id,i=(i,a)=>D(n).pipe(b(()=>A(t,`attention`)),P(t=>C({try:()=>{I(i),a(),Yt(r,i,e.readQueueHead(i)),t.observed.add(i)},catch:e=>e instanceof V&&e.cause===`invalid`?Z(`bound`,e.message):Z(`unavailable`,`Attention update is unavailable`)})));return{set:(e,t)=>{let a=U(Ze,{onExcessProperty:`error`})(t);return a._tag===`Failure`?S(Z(`bound`,`Attention item is invalid`)):i(e,()=>{if(!Le(r,e))throw Error(`Attention Session is unavailable`);lr(r,e,n,a.success)})},clear:(e,t)=>Wo(t,`An attention id`).pipe(g(i(e,()=>{ht(r,e,n,t)})))}}function me(e){let t=e.admitted.id;return n=>D(t).pipe(P(r=>e.admitted.grants.has(`send`)?C({try:()=>{let{requireExistingSession:e=!1}=n,i=r.admit({sessionId:n.sessionId,requireExistingSession:e,command:{type:`prompt`,requestId:n.prompt.requestId,delivery:n.prompt.delivery,text:n.prompt.text},when:n.when,origin:{kind:`extension`,extensionId:t,correlation:n.correlation??null}});return i.status===`accepted`?{_tag:`Accepted`,commandId:i.commandId,delivery:i.delivery}:{_tag:`NotReady`}},catch:e=>new Wr({reason:e instanceof V?e.cause===`conflict`?`conflict`:e.cause===`closed`?`closed`:`invalid`:`invalid`,message:e instanceof V?e.message:`Session command is invalid`})}):S(new Wr({reason:`closed`,message:`Extension is not granted send`}))))}function ge(n,a,o){return E(()=>{let s,c,u=Error(`Extension transaction rolled back`);return e.door.transact(e=>{let t=re(n.admitted.id);c={extensionId:n.admitted.id,admit:e,observed:new Set,timersChanged:!1},i.set(t,c),_.add(n.admitted.id);let r=v;v=c;try{s=ae(a.pipe(p(Hr,t),p(Ur,t)))}finally{v=r,i.delete(t),_.delete(n.admitted.id)}if(Zt(s))throw u;return s.value},o).pipe(l(()=>{if(s===void 0)throw Error(`Extension transaction returned no exit`);return s}),ne(e=>s!==void 0&&Zt(s)?y(s):S(e)),b(n=>Cr(n)&&c!==void 0?t(function*(){for(let e of c?.observed??[])W(r,e);o===`request`&&c?.timersChanged===!0&&(yield*e.requestWake)}):F))})}function ve(t){let n=``;for(let i=0;i<Ar;i+=Po){let i=he(r,t,n);for(let t of i)Yt(r,t,e.readQueueHead(t)),queueMicrotask(()=>{W(r,t)});let a=i.at(-1);if(i.length<Po||a===void 0)return;n=a}}function L(e,n,i,a){let o=Date.now();e.status=`stopped`,e.reason=n,e.stoppedAt=o;let c=C({try:()=>{let t=()=>{At(r,e.admitted.id,{status:`stopped`,reason:n,stoppedAt:o,revision:e.admitted.revision}),ve(e.admitted.id)};a===`own-transaction`?r.transactionSync(t):t()},catch:t=>new V(`store`,`unavailable`,`Extension ${e.admitted.id} stop status is unavailable`,void 0,t)});return t(function*(){let t=yield*w(c);return yield*s(`shiitake_extension_stopped`).pipe(oe({extensionId:e.admitted.id,reason:n,cause:i===void 0?null:En(i),durable:Cr(t)})),yield*t})}function be(e,t,n){e.status=`stopped`,e.reason=t,e.stoppedAt=Date.now();let i=()=>{At(r,e.admitted.id,{status:`stopped`,reason:t,stoppedAt:e.stoppedAt,revision:e.admitted.revision}),ve(e.admitted.id)};try{n===`own-transaction`?r.transactionSync(i):i()}catch(t){throw new V(`store`,`unavailable`,`Extension ${e.admitted.id} stop status is unavailable`,void 0,t)}}function Se(e,t,n){let i=t=>{if(v?.extensionId!==e.admitted.id||!e.admitted.grants.has(`state`))throw Z(`unavailable`,`Session documents require the extension's state transaction`);return I(t),v},a=a=>{i(a);let o=pt(r,a,e.admitted.id,t)??Ua(n,n.initial);if(Fo.encode(o).byteLength>n.maxBytes)throw Z(`bound`,`Session document exceeds maxBytes`);let s=U(It(n.schema))(o);if(s._tag===`Failure`)throw Z(`decode`,`Stored session document does not match its schema`);return s.success};return Object.freeze({read:a,update:(o,s)=>{let c=i(o),l=s(a(o));nr(r,o,e.admitted.id,t,Ua(n,l)),c.observed.add(o)}})}function Ce(e){let t=new Set;return Object.freeze({collection:(t,n)=>le(e,t,n),updateCollection:(t,n)=>ue(e,t,n),document:(t,n)=>Se(e,t,n),update:n=>{let i=e.admitted.id;if(e.status!==`running`||!e.admitted.grants.has(`state`)||te.has(i)||_.has(i)||ee===i)throw Z(`unavailable`,`Extension state update is unavailable`);try{let e=r.transactionSync(()=>{te.add(i);try{return er(n,void 0)}finally{te.delete(i)}});for(let e of t)W(r,e);return e}catch(t){if(!(t instanceof cr))throw t;let n=t.message;throw be(e,n,`own-transaction`),new zr({reason:n})}finally{t.clear()}},observeUpdate:n=>{if(!te.has(e.admitted.id))throw Z(`unavailable`,`Extension observation is unavailable`);t.add(I(n))},context:Object.freeze({manifest:e.admitted.manifest,revision:e.admitted.revision,grants:Object.freeze([...e.admitted.grants]),send:me(e),timers:de(e),attention:pe(e),hasPendingSteer:t=>T(e.admitted.id).pipe(g(A(e,`run_tools`)),g(O(()=>jt(r,I(t.sessionId),t.workId)))),hasSuccessfulToolResult:(t,n)=>T(e.admitted.id).pipe(g(A(e,`run_tools`)),g(O(()=>qe(r,I(t.sessionId),t.workId,n)))),observe:t=>D(e.admitted.id).pipe(l(e=>{e.observed.add(t)})),transact:t=>(e.status===`running`?ge(e,t,`request`).pipe(ce):S(new zr({reason:e.reason??`Extension is stopped`}))).pipe(P(t=>{if(Cr(t))return y(t.value);if(!Uo(t.cause))return h(t.cause);let n=Ho(`transact`,t.cause);return L(e,n,t.cause,`own-transaction`).pipe(P(()=>S(new zr({reason:n}))))}))})})}function we(e){let{id:t,definition:n,revision:i}=e.admitted,a=n.state.version;r.transactionSync(()=>{let e=Ie(r,t);if(e!==void 0&&e.version>a)throw new V(`extensions`,`conflict`,`Stored ${t} state version ${String(e.version)} is newer than ${String(a)}`);if(e!==void 0&&e.version<a){let i=_e(r,t).map(e=>({collection:e.collection,key:e.key,value:zo(e.valueJson)}));for(let r=e.version;r<a;r+=1){let e=n.state.migrations[r];if(e===void 0)throw new Lo(`Missing ${t} state migration from ${String(r)}`);try{i=i.flatMap(t=>e(t))}catch(e){throw new Lo(`Failed ${t} state migration from ${String(r)}`,{cause:e})}}Me(r,t);for(let e of i){let i=n.state.collections[e.collection];if(i===void 0)throw new Lo(`Migrated ${t} record names an undeclared collection`);let a=i.indexFromEncoded(e.value);if(a._tag===`Failure`)throw new Lo(`Migrated ${t} ${e.collection} record is invalid`);Mr(r,t,e.collection,e.key,a.success,JSON.stringify(e.value))}}ye(r,t,a,i)})}function Te(e,t){let n=Ce(e);return E(()=>e.admitted.definition.activate(n)).pipe(p(sn,t),w,P(t=>Cr(t)?(e.hooks=t.value,F):L(e,Ho(`activation`,t.cause),t.cause,`own-transaction`)))}let R=e=>[...c.values()].filter(t=>t.status===`running`&&t.hooks!==void 0&&t.admitted.grants.has(e));function De(e){return Object.freeze({id:e.admitted.id,version:e.admitted.manifest.version,revision:e.admitted.revision,status:e.status,reason:e.reason,stoppedAt:e.stoppedAt})}function ke(e){return e.status===`running`&&e.hooks!==void 0&&(e.admitted.grants.has(`run_tools`)||e.admitted.grants.has(`files`)||e.admitted.grants.has(`prompt`)||e.admitted.grants.has(`compaction_handoff`))}function Ae(e,t,n){return w(n.pipe(p(Ur,re(e.admitted.id)))).pipe(P(n=>Cr(n)?y(k(n.value)):L(e,Ho(t,n.cause),n.cause,`own-transaction`).pipe(M(x()))))}let je=(e,t,n)=>Zt(n)?L(e,Ho(t,n.cause),n.cause,`own-transaction`):F;function Ne(e){return C({try:()=>{we(e),r.transactionSync(()=>{for(let[t,n]of Object.entries(e.admitted.documents))xr(r,{extensionId:e.admitted.id,name:t,initialJson:Ua(n,n.initial),fork:n.fork,maxBytes:n.maxBytes})})},catch:e=>e}).pipe(M(!0),ne(t=>t instanceof V?S(t):(t instanceof Lo&&(e.admitted.grants.has(`run_tools`)||e.admitted.grants.has(`files`)||e.admitted.grants.has(`prompt`)||e.admitted.grants.has(`compaction_handoff`))&&u.add(e.admitted.id),L(e,Ro(t instanceof Error?`migration: ${t.message}`:`migration failed`),yr(t),`own-transaction`).pipe(M(!1)))))}return t(function*(){let n=yield*In();for(let t of e.admitted){let e=Ue(r,t.id),i=e?.status===`stopped`&&e.revision===t.revision,a={admitted:t,hooks:void 0,status:i?`stopped`:`running`,reason:i?e.reason:null,stoppedAt:i?e.stoppedAt:null};c.set(t.id,a),yield*C({try:()=>{t.grants.has(`settled`)&&r.transactionSync(()=>{G(r,t.id)===void 0&&Et(r,t.id,G(r,`core`)??0)})},catch:()=>new V(`store`,`unavailable`,`Settled cursor is unavailable`)}),(yield*Ne(a).pipe(d(()=>Kn(n,xe))))&&(i||(yield*C({try:()=>{r.transactionSync(()=>{At(r,t.id,{status:`running`,reason:null,stoppedAt:null,revision:t.revision}),ve(t.id)})},catch:()=>new V(`store`,`unavailable`,`Extension status is unavailable`)}),yield*Te(a,n)))}yield*C({try:()=>{r.transactionSync(()=>{let t=fn(r,e.admitted.filter(e=>e.grants.has(`attention`)).map(e=>e.id));for(let e of t)ve(e)})},catch:()=>new V(`store`,`unavailable`,`Attention grants are unavailable`)});let i={runParticipants:()=>[...c.values()].filter(ke).map(e=>[e.admitted.id,e.admitted.fingerprint]),incompatibleMigrations:()=>[...u],modulesForRun:(e,t)=>fe(R(`run_tools`),n=>{let r=n.hooks?.moduleForRun;return!t.has(n.admitted.id)||r===void 0?y(x()):Ae(n,`moduleForRun`,E(()=>r(e))).pipe(l(f))}).pipe(l(e=>e.flatMap(j))),filesForRun:(e,n)=>t(function*(){let t=R(`files`).find(e=>n.has(e.admitted.id));if(t===void 0)return[];let r=t.hooks?.filesForRun;if(r===void 0)return yield*L(t,`files: granted capability has no handler`,void 0,`own-transaction`),yield*S(new V(`extensions`,`rejected`,`Extension Files are unavailable`));let i=yield*Ae(t,`filesForRun`,E(()=>r(e)));return a(i)?yield*S(new V(`extensions`,`rejected`,`Extension Files capture failed`)):Object.freeze([...o(i.value,()=>[])])}),promptSections:(e,n)=>t(function*(){let t=[],r=0;for(let i of R(`prompt`)){if(!n.has(i.admitted.id))continue;let a=i.hooks?.prompt;if(a===void 0)return yield*L(i,`prompt: granted capability has no handler`,void 0,`own-transaction`),yield*S(new V(`extensions`,`rejected`,`Extension prompt is unavailable`));let o=yield*w(zn(()=>a(e)).pipe(p(Ur,re(i.admitted.id))));if(Zt(o))return yield*L(i,Ho(`prompt`,o.cause),o.cause,`own-transaction`),yield*S(new V(`extensions`,`rejected`,`Extension prompt failed`));let s=Io(o.value),c=s._tag===`Success`?s.success:[];if(r+=c.reduce((e,t)=>e+Fo.encode(t.text).byteLength,0),s._tag===`Failure`||new Set(c.map(({name:e})=>e)).size!==c.length||r>65536)return yield*L(i,`prompt: section is invalid or exceeds its bound`,void 0,`own-transaction`),yield*S(new V(`extensions`,`rejected`,`Extension prompt is invalid`));t.push(...[...c].sort((e,t)=>e.name<t.name?-1:+(e.name>t.name)).map(e=>({name:`${i.admitted.id}.${e.name}`,text:e.text})))}return t}),compactionHandoff:e=>R(`compaction_handoff`).find(({admitted:t})=>e.has(t.id))?.hooks?.compactionHandoff,settledConsumers:()=>R(`settled`).map(e=>({id:e.admitted.id,cursor:G(r,e.admitted.id)??0})),deliverSettled:(e,t)=>fe(R(`settled`),n=>E(()=>{let i=G(r,n.admitted.id)??0;if(t<=i)return F;let a=e.filter(({sequence:e})=>e>i),o=n.hooks?.onSettled;return ge(n,(o===void 0||a.length===0?F:o(a)).pipe(g(N(()=>{Et(r,n.admitted.id,t)}))),`reconcile`).pipe(P(e=>je(n,`onSettled`,e)))}),{discard:!0}),fireDueTimers:e=>t(function*(){let t=R(`timers`).map(({admitted:e})=>e.id),n=nt(r,t,e,Po);for(let t of n){let n=c.get(t.extensionId);if(n?.status!==`running`)continue;let i=n.hooks?.onTimer,a=yield*ge(n,E(()=>Qe(r,t.extensionId,t.key)===t.dueAt?(lt(r,t.extensionId,t.key),i===void 0?F:i({key:t.key,dueAt:t.dueAt,firedAt:e})):F),`reconcile`);yield*je(n,`onTimer`,a)}return n.length===Po}),timerWake:e=>yt(r,R(`timers`).map(({admitted:e})=>e.id),e),project:e=>{let t={};for(let n of c.values()){let r=n.admitted.grants.has(`projection`),i=n.admitted.grants.has(`commands`)?n.admitted.definition.catalog:void 0;if(!r&&i===void 0)continue;let a=n.admitted.revision,o=n.admitted.definition.contract.projection,s=n.hooks?.project;if(n.status===`running`&&n.hooks!==void 0){let c=!r||s===void 0||o===null?k(null):(()=>{let t=null,r;ee=n.admitted.id;try{let r=er(()=>s(e),void 0);if(m(r)){let e=Re(o.schema)(r.value);if(e._tag===`Failure`)throw Error(`Extension projection is invalid`);let a=U(Un)(e.success);if(a._tag===`Failure`)throw Error(`Extension projection is not JSON`);t=a.success;let s=n.hooks.projectCatalog;i!==void 0&&s!==void 0&&(i=Mt(Un)(er(()=>s(a.success),void 0)))}}catch(e){r=e}finally{ee=void 0}return r===void 0?k(t):(be(n,Ro(r instanceof Error?`project defect: ${r.message}`:`project defect`),`enclosing-transaction`),x())})();if(m(c)){t[n.admitted.id]=Object.freeze(i===void 0?{status:`running`,revision:a,value:c.value}:{status:`running`,revision:a,value:c.value,catalog:i});continue}}t[n.admitted.id]=Object.freeze({status:`stopped`,revision:a,reason:n.reason??`Extension did not activate`})}return Object.freeze(t)},call:(e,n,r,i)=>t(function*(){let t=c.get(n);if(t?.admitted.grants.has(`commands`)!==!0)return yield*S(new V(`extensions`,`unavailable`,`Extension is unavailable`));if(t.status!==`running`||t.hooks===void 0)return yield*S(new V(`extensions`,`unavailable`,`Extension ${n} is stopped: ${t.reason??`not activated`}`));let a=t.admitted.definition.contract.commands,o=Object.hasOwn(a,r)?a[r]:void 0;if(o?.scope!==e.scope)return yield*S(new V(`contract`,`invalid`,`Extension command is unknown`));let s=e.scope===`session`?yield*C({try:()=>I(e.sessionId),catch:()=>new V(`contract`,`invalid`,`Session id is invalid`)}):null,l=t.hooks.commands.get(r);if(l===void 0)return U(o.input,{onExcessProperty:`error`})(i)._tag===`Failure`?yield*S(new V(`contract`,`invalid`,`Extension command input is invalid`)):(yield*L(t,`command ${r} has no handler`,void 0,`own-transaction`),yield*S(new V(`extensions`,`unavailable`,`Extension is stopped`)));let u=l({sessionId:s,input:i});if(u._tag===`Failure`)return yield*S(new V(`contract`,`invalid`,`Extension command input is invalid`));let d=yield*ge(t,u.success(),`request`);if(Cr(d))return d.value;let f=Ee(d.cause);if(m(f)&&!Uo(d.cause))return yield*S(Go(f.value));let p=Ho(`command ${r}`,d.cause);return yield*L(t,p,d.cause,`own-transaction`),yield*S(new V(`extensions`,`unavailable`,`Extension ${n} is stopped: ${p}`))}),list:()=>[...c.values()].map(De),resume:i=>t(function*(){let t=c.get(i);return t===void 0?yield*S(new V(`extensions`,`unavailable`,`Extension is unavailable`)):(t.status===`stopped`&&(yield*C({try:()=>{r.transactionSync(()=>{At(r,t.admitted.id,{status:`running`,reason:null,stoppedAt:null,revision:t.admitted.revision}),ve(t.admitted.id)})},catch:()=>new V(`store`,`unavailable`,`Extension status is unavailable`)}),t.status=`running`,t.reason=null,t.stoppedAt=null,t.hooks===void 0&&(yield*Ne(t))&&(yield*Te(t,n)),yield*e.requestWake),De(t))}),close:Kn(n,xe)};return Object.freeze(i)})}var qo=64;function Q(e){return new V(`runtime`,`rejected`,e)}function Jo(e,n,i){return n===void 0?F:t(function*(){let t=yield*C({try:()=>Lt(i),catch:()=>Q(`Agent work payload is invalid`)}),a=i.outcome===`cancelled`?``:yield*ke(e,t.work),o=yield*ot(e,t.work,i.outcome),s=i.outcome===`completed`||i.outcome===`cancelled`?void 0:yield*Te(e,t.work),c=s===void 0?{job:i,content:a}:{job:i,content:a,diagnostic:s};yield*n.fanOut(o===void 0?c:{...c,meta:o}).pipe(r(()=>Q(`Agent reply fan-out is unavailable`)))})}function Yo(e,n){let r=n.outcome;return r!==`interrupted`&&r!==`cancelled`&&r!==`failed`?F:t(function*(){let t=yield*C({try:()=>Lt(n),catch:()=>Q(`Agent work payload is invalid`)});yield*$e(e,{sessionId:t.work.sessionId,commandFactId:t.work.commandFactId,workId:n.jobId,outcome:r,diagnostic:n.failureReason})})}function Xo(e,n,r){return t(function*(){let t=yield*C({try:()=>Lt(r),catch:()=>Q(`Agent work payload is invalid`)}),i=r.outcome===`outcome_unknown`?`interrupted`:r.outcome;yield*rt(e,{sessionId:t.work.sessionId,parentWorkId:r.jobId,outcome:i,enqueue:e=>{n.transactional.enqueueAcceptedJob(Bt({work:{...e,recovery:bo}}))}})})}function Zo(e){return e===void 0?F:e.drainOutbox().pipe(r(()=>Q(`Agent reply delivery is unavailable`)))}function Qo(e,t){let n=Lt(t.job),r=wt(e,n.work.sessionId,n.work.commandFactId,t.job.jobId);return Object.freeze({sequence:t.sequence,sessionId:n.work.sessionId,workId:t.job.jobId,outcome:t.job.outcome,terminal:r.terminal,toolCalls:r.toolCalls,origin:r.origin===null?null:Object.freeze({extensionId:Mt(Cn)(r.origin.extensionId),correlation:r.origin.correlation})})}function $o(e,n,r,i){return fe(i,i=>t(function*(){W(e,i.job.queue),yield*Yo(e,i.job),yield*Xo(e,n,i.job),yield*Jo(e,r,i.job),yield*C({try:()=>{Et(e,Ao,i.sequence)},catch:()=>Q(`Settled cursor is unavailable`)})}),{discard:!0})}function es(e){return t(function*(){if((yield*e.watchdog.tick()).status===`busy`)return yield*S(Q(`Runtime reconciliation is already active`));let t=yield*C({try:()=>G(e.store,`core`)??0,catch:()=>Q(`Settled cursor is unavailable`)}),n=e.extensions.settledConsumers(),r=Math.min(t,...n.map(({cursor:e})=>e)),i=yield*e.watchdog.readSettled(qo,r),a=yield*w($o(e.store,e.watchdog,e.mailRoom,i.filter(({sequence:e})=>e>t))),o=yield*C({try:()=>{let t=G(e.store,`core`)??0;return i.filter(({sequence:e})=>e<=t).map(t=>Qo(e.store,t))},catch:()=>Q(`Settled run facts are unavailable`)});yield*e.extensions.deliverSettled(o,G(e.store,`core`)??0);let s=yield*e.extensions.fireDueTimers(Date.now());if((i.length===qo||s)&&(yield*e.requestWake),yield*Zo(e.mailRoom),Zt(a))return yield*h(a.cause)}).pipe(r(e=>e instanceof V?e:Q(`Runtime reconciliation failed`)))}function $(e){return new V(`runtime`,`rejected`,e)}function ts(e,n,i,a){return t(function*(){if(e.hostJobs?.lane==="default")return yield*S($(`Host lane conflicts with Agent work`));let o=`open`,s,c,u=mt(!1),f=e=>N(()=>{o===`open`&&(s??=e)}),p=E(()=>o===`open`?(o=`closing`,c=s,u.open):F).pipe(te),m={},_={current:void 0},v=E(()=>m.requestWake??S($(`Runtime host is unavailable`))),x={current:void 0},w=new Set,T=new Map,ae={owner:e.store,isAlive:()=>y(!1),executor:{execute:t=>O(N(()=>{let n=t.lane===e.hostJobs?.lane?{kind:`host`,lane:t.lane,jobId:t.jobId}:{kind:`session`,sessionId:t.queue,commandId:t.jobId};T.set(n.kind===`host`?`host`:`serial`,n),n.kind===`session`&&w.add(t.queue),W(e.store,null)}),()=>t.lane===e.hostJobs?.lane?x.current?.execute(t)??S(new Lr(`execution_failed`)):wo(e,n,t,_.current),()=>N(()=>{t.lane!==e.hostJobs?.lane&&w.delete(t.queue),T.delete(t.lane===e.hostJobs?.lane?`host`:`serial`),W(e.store,null)}))},wake:{recompute:()=>v.pipe(r(()=>new Lr(`wake_unavailable`)))},project:t=>{Wn(e.store,t,Date.now())}},k=yield*(e.hostJobs===void 0?Ir(ae):Ir({...ae,concurrentLane:e.hostJobs.lane}).pipe(b(t=>N(()=>{x.current=e.hostJobs?.open(t)})))).pipe(r(()=>$(`Watchdog is unavailable`))),oe=()=>({core:n,extensions:[..._.current?.runParticipants()??[]]});yield*C({try:()=>fo(e.compaction),catch:e=>e instanceof V?e:$(`Compaction settings are unavailable`)});let se=yield*C({try:()=>Ne(e.storageBudget),catch:e=>e instanceof V?e:$(`Storage budget is unavailable`)}),A=ko({owner:e.store,admitNew:se.admitNew,hostMeta:e.meta,contract:oe,enqueue:(e,t)=>{let n={work:{...e,recovery:bo}};k.transactional.enqueueAcceptedJob(Bt(t===void 0?n:{...n,mail:t}))},readQueueHead:e=>k.transactional.readQueueHead(e),commit:e=>E(()=>m.commit===void 0?S($(`Runtime host is unavailable`)):m.commit(e)),requestWake:v});yield*C({try:()=>{jn(e.store),G(e.store,`core`)===void 0&&e.store.transactionSync(()=>{Et(e.store,Ao,0)})},catch:()=>new V(`store`,`unavailable`,`Extension store is unavailable`)});let j=yield*Ko({owner:e.store,readQueueHead:e=>k.transactional.readQueueHead(e),door:A,admitted:i,requestWake:v});_.current=j;let M=es({watchdog:k,store:e.store,extensions:j,requestWake:v,mailRoom:a}).pipe(re(f)),le=t(function*(){let t=yield*k.hasPendingWork,n=Date.now(),r=yield*C({try:()=>[G(e.store,`core`)??0,...j.settledConsumers().map(({cursor:e})=>e)],catch:()=>$(`Settled cursor is unavailable`)}),i=(yield*k.readSettled(1,Math.min(...r))).length>0,a=yield*C({try:()=>j.timerWake(n),catch:()=>$(`Extension timers are unavailable`)});return{pending:t||i||a.due,nextWakeAt:a.nextWakeAt}}),ue=yield*e.runtime.bind({reconcile:M,pendingWork:le.pipe(r(()=>$(`Pending work is unavailable`)))}).pipe(d(()=>j.close.pipe(ce))),de=E(()=>o===`open`?ee(ue.requestWake.pipe(ne(f)),u.await):F);return m.requestWake=de,m.commit=ue.commit,yield*ue.requestWake.pipe(d(()=>ie([ue.close,j.close]).pipe(ce))),Object.freeze({activeSessions:N(()=>[...w]),runningWork:t=>k.read(t).pipe(l(t=>t.status===`found`?T.get(t.job.lane===e.hostJobs?.lane?`host`:`serial`)??null:null),r(e=>new V(`runtime`,`rejected`,`Running work is unavailable`,void 0,e))),extensions:j,commit:ue.commit,assertOpen:E(()=>o===`open`?F:S(new V(`runtime`,`closed`,`Shiitake is closed`))),beginClose:p,door:A,storage:se,recordAcceptedCancellation:({jobId:e,cancellationId:t,onlyIfPending:n})=>k.transactional.recordCancellationIntent({jobId:e,cancellationId:t,onlyIfQueued:n}),assertIdleSession:e=>{try{if(k.transactional.readQueueHead(e).state!==`idle`)throw new V(`runtime`,`conflict`,`Session branch or fork requires an idle Session`)}catch(e){throw e instanceof V?e:$(`Session status is unavailable`)}},signalCancellation:(e,t)=>k.cancel({jobId:e,cancellationId:t}).pipe(P(e=>e.status===`recorded`||e.status===`replayed`?F:S($(`Cancellation is unavailable`))),r(()=>$(`Cancellation is unavailable`))),readQueueHead:e=>k.readQueueHead(e).pipe(r(()=>$(`Session status is unavailable`))),readQueueHeadTransactional:e=>k.transactional.readQueueHead(e),requestWake:de,close:p.pipe(g(pe(ue.close,{onFailure:e=>j.close.pipe(g(c===void 0?h(e):S(c))),onSuccess:()=>j.close.pipe(g(c===void 0?F:S(c)))})),D(N(()=>{o=`closed`})))})})}var ns=e({openRuntimeCore:()=>rs});function rs(e,n){return t(function*(){let t=yield*ao(e.extensions),r=yield*oo([]);yield*Tr(e.store);let i=yield*ts(e,r,t,n),a=Ba(e,i),o=Object.freeze({session:a.session,createSession:a.createSession,deleteSession:a.deleteSession,listSessions:a.listSessions,extensions:a.extensions,close:Di(a.close,i.close)}),s=Object.freeze({...o,grants:a.grants,withMeta:e=>Object.freeze({...o,session:a.withMeta(e).session})});return Object.freeze({agent:s,readSettlement:(t,n)=>i.assertOpen.pipe(g(Xt(e.store,t,n))),activeSessions:i.activeSessions,acceptMail:(e,t,n)=>Va(i,e,t,n)})})}export{wi as n,rs as openRuntimeCore,ns as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./models-CcNnosqL.js";import{n as t,t as n}from"./headers-FK4rgixo.js";import{t as r}from"./provider-retry-CSlu6hjs.js";import{n as i,t as a}from"./error-body-pkrba6pf.js";function o(e,t,n){let r=Error(`${e} returned ${t.status}`);return r.status=t.status,r.headers=t.headers,r.body=n,r}function s(e){let t=Error(`Request timed out after ${e}ms`);return t.name=`TimeoutError`,t.status=void 0,t.headers=void 0,t.body=``,t}function c(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function l(e,t,n){if(typeof t!=`number`||!Number.isFinite(t))throw Error(`${e} returned an invalid ${n}`);return t}function u(e,t,n){if(!c(t))throw Error(`${e} returned invalid probabilities for ${n}`);return Object.fromEntries(Object.entries(t).map(([t,r])=>[t,l(e,r,`probability for ${n}.${t}`)]))}function d(e,t,n){if(!c(t))throw Error(`${e} returned an unexpected response`);let r=[];for(let[i,a]of Object.entries(n.questions)){let n=t[i];if(!c(n))throw Error(`${e} did not return an answer for ${i}`);if(a.type===`choice`){if(n.type!==`choice`||typeof n.choice!=`string`)throw Error(`${e} did not return a choice answer for ${i}`);r.push([i,{type:`choice`,choice:n.choice,probabilities:u(e,n.probabilities,i),confidence:l(e,n.confidence,`confidence for ${i}`)}])}else if(a.type===`score`){if(n.type!==`score`)throw Error(`${e} did not return a score answer for ${i}`);r.push([i,{type:`score`,score:l(e,n.score,`score for ${i}`),confidence:l(e,n.confidence,`confidence for ${i}`)}])}else{if(n.type!==`noul`)throw Error(`${e} did not return a bool answer for ${i}`);r.push([i,{type:`bool`,probability:l(e,n.noul,`probability for ${i}`)}])}}return Object.fromEntries(r)}function f(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:0}function p(t,n){if(!c(t)||t.input_tokens===void 0&&t.output_tokens===void 0)return;let r=f(t.input_tokens),i=f(t.output_tokens),a={input:r,output:i,cacheRead:0,cacheWrite:0,totalTokens:r+i,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}};return e(n,a),a}function m(e){return{state:e.state,questions:Object.fromEntries(Object.entries(e.questions).map(([e,t])=>[e,t.type===`bool`?{...t,type:`noul`}:t]))}}function h(e,n,r){return t({authorization:`Bearer ${n}`,"content-type":`application/json`},e.headers,r)??{}}async function g(e,t,c,l){let u={api:t.api,provider:t.provider,model:t.id,answers:{},stopReason:`stop`,timestamp:Date.now()};try{if(t.api!==e.api)throw Error(`Unsupported classifier API: ${t.api}`);if(!l?.apiKey)throw Error(`No API key for provider: ${t.provider}`);let i=l.apiKey,a=e.payload(t,m(c)),f=await l.onPayload?.(a,t);f!==void 0&&(a=f);let g=l.fetch??globalThis.fetch,{response:_,body:v}=await r(async()=>{let n=l.timeoutMs===void 0?void 0:AbortSignal.timeout(l.timeoutMs),r=l.signal&&n?AbortSignal.any([l.signal,n]):l.signal??n;try{let n=await g(e.url(t),{method:`POST`,headers:h(t,i,l.headers),body:JSON.stringify(a),signal:r});if(!n.ok)throw o(e.label,n,await n.text());return{response:n,body:await n.json()}}catch(e){throw n?.aborted&&!l.signal?.aborted?s(l.timeoutMs):e}},{maxRetries:l.maxRetries??2,maxRetryDelayMs:l.maxRetryDelayMs,signal:l.signal});await l.onResponse?.({status:_.status,headers:n(_.headers)},t);let y=e.output(v),b=p(y.usage,t);return b&&(u.usage=b),u.answers=d(e.label,y.answers,c),u}catch(t){return u.stopReason=l?.signal?.aborted?`aborted`:`error`,u.errorMessage=a(i(t),`${e.label} error`),u}}export{c as n,g as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e}from"./preload-helper-mbhLTglw.js";function t(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:os`)??null}var n=t();function r(){return n?`pi (${n.platform()} ${n.release()}; ${n.arch()})`:`pi (browser)`}var i=class extends Error{},a=[`$ref`,`$defs`,`definitions`,`allOf`,`oneOf`,`patternProperties`,`dependentSchemas`,`dependencies`,`unevaluatedProperties`,`propertyNames`,`contains`,`prefixItems`,`not`,`if`,`then`,`else`];function o(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function s(e){if(!o(e))return!1;let t=typeof e.type==`string`?[e.type]:Array.isArray(e.type)?e.type:[];return t.includes(`object`)||t.includes(`array`)||e.properties!==void 0||e.items!==void 0}function c(e){return o(e)?e.type===`null`||Array.isArray(e.type)&&e.type.includes(`null`)||e.const===null||Array.isArray(e.enum)&&e.enum.includes(null)?!0:Array.isArray(e.anyOf)&&e.anyOf.some(e=>c(e)):!1}function l(e,t){if(!o(e))throw new i(`boolean schemas are unsupported`);for(let t of a)if(e[t]!==void 0)throw new i(`${t} schemas are unsupported`);if(t){for(let[n,r]of Object.entries(e))if(t(n,r))throw new i(`${n}: ${JSON.stringify(r)} is unsupported`)}if(e.anyOf!==void 0){if(!Array.isArray(e.anyOf)||e.anyOf.length===0)throw new i(`anyOf must contain at least one schema`);for(let n of e.anyOf){if(s(n))throw new i(`object and array unions are unsupported`);l(n,t)}}if(e.items!==void 0){if(Array.isArray(e.items))throw new i(`tuple schemas are unsupported`);l(e.items,t)}let n=e.type===`object`;if(e.properties!==void 0&&!n)throw new i(`properties require type object`);if(!n)return;if(e.additionalProperties!==void 0&&e.additionalProperties!==!1)throw new i(`schema-valued or true additionalProperties is unsupported`);if(e.properties!==void 0&&!o(e.properties))throw new i(`object properties must be a schema map`);if(e.required!==void 0&&(!Array.isArray(e.required)||e.required.some(e=>typeof e!=`string`)))throw new i(`object required must be a string array`);let r=e.properties??{},u=Object.keys(r),d=new Set(Array.isArray(e.required)?e.required:[]);if([...d].some(e=>!u.includes(e)))throw new i(`required contains an unknown property`);for(let[e,n]of Object.entries(r))l(n,t),!d.has(e)&&!c(n)&&(r[e]={anyOf:[n,{type:`null`}]});e.required=u,e.additionalProperties=!1}function u(e,t){let n=structuredClone(e);if(!o(n)||(l(n,t),n.type!==`object`))throw new i(`root schema must have type object`);return n}function d(e,t){return t===!0?u(e.parameters):e.parameters}function f(e,t,n){let r=t[n];if(typeof r!=`string`)throw Error(`Grammar tool call "${e}" requires argument "${n}" to be a string.`);return r}function p(e,t,n,r){if(e.closed){if(r&&n===e.input)return;throw Error(`grammar tool input for property "${t}" changed after it was closed`)}if(!n.startsWith(e.input))throw Error(`grammar tool input for property "${t}" changed non-monotonically`);let i=n.slice(e.input.length);if(!r&&i.length===0)return;let a=``;return e.started||=(a+=`{${JSON.stringify(t)}:"`,!0),a+=JSON.stringify(i).slice(1,-1),e.input=n,r&&(a+=`"}`,e.closed=!0),a}function m(e){let t=e.parameters;if(t.type!==`object`)throw Error(`grammar constrained sampling requires an object parameter schema`);if(!Array.isArray(t.required)||t.required.length!==1||typeof t.required[0]!=`string`)throw Error(`grammar constrained sampling requires exactly one required string property`);let n=t.required[0];if(!t.properties?.[n])throw Error(`grammar constrained sampling requires a properties entry for ${n}`);if(t.properties[n]?.type!==`string`)throw Error(`grammar constrained sampling property ${n} must have type string`);return n}function h(e,t,n){let r=e.constrainedSampling;if(!(!r||r.type!==`json_schema`)){if(t)try{return u(e.parameters,n),!0}catch(t){if(!(t instanceof i))throw t;if(r.strict!==`require`)return;throw Error(`Tool "${e.name}" requires JSON-schema constrained sampling, but ${t.message}.`)}if(r.strict===`require`)throw Error(`Tool "${e.name}" requires JSON-schema constrained sampling, but strict tools are unsupported.`)}}function g(e,t){let n=e.constrainedSampling;if(!n||n.type!==`grammar`||!t)return;let r=n.variants.openai_lark,i=n.variants.openai_regex,a=typeof r==`string`&&r.trim().length>0,o=typeof i==`string`&&i.trim().length>0;if(!a&&!o)throw Error(`Tool "${e.name}" cannot use grammar constrained sampling: no supported grammar variant was provided.`);try{return{format:a?`lark`:`regex`,definition:a?r:i,inputProperty:m(e)}}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Tool "${e.name}" cannot use grammar constrained sampling: ${n}.`)}}function _(e,t){let n=new Map;for(let r of e??[]){let e=g(r,t);e&&n.set(r.name,e.inputProperty)}return n}var v=4,y=4800;function b(e){return e.totalTokens||e.input+e.output+e.cacheRead+e.cacheWrite}function x(e){try{return JSON.stringify(e)??`undefined`}catch{return`[unserializable]`}}function S(e){if(typeof e==`string`)return e.length;let t=0;for(let n of e)t+=n.type===`text`?n.text.length:y;return t}function C(e){return Math.ceil(e.length/v)}function w(e){return Math.ceil(S(e)/v)}function T(t){let n=0;if(t.role===`system`)return C(e(t))+O(t.toolsAdded)+O(t.toolsRemoved);if(t.role===`user`||t.role===`toolResult`)return w(t.content);for(let e of t.content)e.type===`text`?n+=e.text.length:e.type===`thinking`?n+=e.thinking.length:n+=e.name.length+x(e.arguments).length;return Math.ceil(n/v)}function E(e){let t=-1/0,n;for(let r=0;r<e.length;r++){let i=e[r];if(i.role===`assistant`){let e=i;e.timestamp>=t&&e.stopReason!==`aborted`&&e.stopReason!==`error`&&b(e.usage)>0&&(n={usage:e.usage,index:r})}t=Math.max(t,i.timestamp)}return n}function D(e){let t=`messages`in e?e.messages:e,n=E(t);if(n){let e=b(n.usage),r=0;for(let e=n.index+1;e<t.length;e++)r+=T(t[e]);return{tokens:e+r,usageTokens:e,trailingTokens:r,lastUsageIndex:n.index}}let r=0;for(let e of t)r+=T(e);return{tokens:r,usageTokens:0,trailingTokens:r,lastUsageIndex:null}}function O(e){return!e||e.length===0?0:C(x(e))}var k=4096,A=1;function j(e,t,n){if(e.contextWindow<=0)return Math.max(A,n);let r=e.contextWindow-D(t).tokens-k;return Math.min(n,Math.max(A,r))}function M(e,t,n,r){return{temperature:n?.temperature,samplingParams:n?.samplingParams,maxTokens:j(e,t,n?.maxTokens??e.maxTokens),signal:n?.signal,telemetryContext:n?.telemetryContext,apiKey:r||n?.apiKey,fetch:n?.fetch,transport:n?.transport,cacheRetention:n?.cacheRetention,sessionId:n?.sessionId,headers:n?.headers,onPayload:n?.onPayload,onResponse:n?.onResponse,onProviderStreamEvent:n?.onProviderStreamEvent,timeoutMs:n?.timeoutMs,websocketConnectTimeoutMs:n?.websocketConnectTimeoutMs,maxRetries:n?.maxRetries,maxRetryDelayMs:n?.maxRetryDelayMs,metadata:n?.metadata,env:n?.env}}var N=1024,P={minimal:1024,low:2048,medium:8192,high:16384};function F(e){return e===`xhigh`||e===`max`?`high`:e}function I(e,t){return{...P,...t}[F(e)]}function L(e,t){return Math.min(e,Math.max(0,t-N))}function R(e,t,n,r){let i=I(n,r),a=e===void 0?t:Math.min(e+i,t);return a<=i&&(i=L(i,a)),{maxTokens:a,thinkingBudget:i}}var z=`(image omitted: model does not support images)`,B=`(tool image omitted: model does not support images)`;function V(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function H(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:V(e.content,z)}:e.role===`toolResult`?{...e,content:V(e.content,B)}:e)}function U(e,t,n){let r=new Map,i=H(e.map(e=>e.content==null?{...e,content:[]}:e),t).map(e=>{if(e.role===`system`||e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=[],l=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}a.push(...c),c.length=0};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){l();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):t.role===`system`?o.length>0?c.push(t):a.push(t):(t.role===`user`&&l(),a.push(t))}return l(),a}export{L as a,_ as c,g as d,h as f,j as i,f as l,R as n,I as o,r as p,M as r,p as s,U as t,d as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./system-one-shared-CGF8IYMZ.js";var n={api:`typesafe-system-one`,label:`System One API`,url:e=>new URL(`systemone`,`${e.baseUrl.replace(/\/+$/u,``)}/`),payload:(e,t)=>({model:e.id,...t}),output:t=>{if(!e(t))throw Error(`System One API returned an unexpected response`);return t}},r=(e,r,i)=>t(n,e,r,i);export{r as classify};
|