@theoremjs/studio 0.3.1 → 0.3.3
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 +1 -0
- package/package.json +3 -3
- package/page/assets/{Banner-ChigGVCM.js → Banner-Buiul23B.js} +2 -2
- package/page/assets/{ContextMenu-BcXTDSnA.js → ContextMenu-Dw9_F5b0.js} +2 -2
- package/page/assets/{ToolResultCharts-DsbzvrBK.js → ToolResultCharts-CVlI3NkJ.js} +1 -1
- package/page/assets/{TraceInspector-B34qMQJH.js → TraceInspector-TusXx3zZ.js} +1 -1
- package/page/assets/{TraceOverview-Drp2Sl4p.js → TraceOverview-DrHQgMQO.js} +1 -1
- package/page/assets/{_virtual_studio-type-sources-B0u0_Vhq.js → _virtual_studio-type-sources-BwZOives.js} +49 -18
- package/page/assets/browser-engine-BTOR18GA.js +11 -0
- package/page/assets/{browser-transport-Bn77Eq5d.js → browser-transport-BEFsWdzI.js} +3 -3
- package/page/assets/{compile-egress-CGwmX2BX.js → compile-egress-BSxOdX4K.js} +1 -1
- package/page/assets/{encode-files-Dq98bb-f.js → encode-files-Bc3HJyAh.js} +1 -1
- package/page/assets/{export-agent-wlS68_dE.js → export-agent-BnlMWFTv.js} +1 -1
- package/page/assets/{guardrail-tester-BHcoZE5K.js → guardrail-tester-DRsOgbwK.js} +1 -1
- package/page/assets/host-patterns-C9RMP16Q.js +1 -0
- package/page/assets/{index-BmHkdZXS.js → index-D2T8e_8Q.js} +6 -6
- package/page/assets/{live-ingress-DsA4_80F.js → live-ingress-lDUGPwth.js} +1 -1
- package/page/assets/{live-messages-B19ZuTGI.js → live-messages-BYi31jQk.js} +1 -1
- package/page/assets/{reader-CN15b9m8.js → reader-B0gVhfoZ.js} +1 -1
- package/page/assets/{shaped-data-BO_JTcQq.js → shaped-data-BcarWqd5.js} +2 -2
- package/page/assets/{stub-DDddt29Y.js → stub-DEZDrr-l.js} +1 -1
- package/page/assets/{studio-code-pane-BSXwNg0B.js → studio-code-pane-PndbSO1v.js} +3 -3
- package/page/assets/{studio-console-C1hyAfeb.js → studio-console-e6kqu38F.js} +1 -1
- package/page/assets/{studio-decision-CZDF06ic.js → studio-decision-DFM0psog.js} +1 -1
- package/page/assets/{studio-embedding-SqSYd_e1.js → studio-embedding-4qgdJ4gh.js} +1 -1
- package/page/assets/{studio-host-console-BlbRUrR_.js → studio-host-console-DajI604W.js} +2 -2
- package/page/assets/{studio-live-Dd0AEV_k.js → studio-live-B1a0aWbl.js} +1 -1
- package/page/assets/{studio-map-BIIZcltt.js → studio-map-CdrEm07d.js} +1 -1
- package/page/assets/{studio-type-checker-Cp6IxLBp.js → studio-type-checker-DosSRFbd.js} +1 -1
- package/page/assets/tool-schema-BrqSc6vO.js +18 -0
- package/page/assets/{trace-record-C-XxCjSg.js → trace-record-C3zNksA_.js} +1 -1
- package/page/assets/{tree-D1IYOD_9.js → tree-DeO1319a.js} +1 -1
- package/page/assets/{turn-client-BMBqw-ho.js → turn-client-DwVPS3TX.js} +1 -1
- package/page/assets/types-EVrOoUBG.js +1 -0
- package/page/assets/{use-one-call-BtrXMol7.js → use-one-call-9e3o5vH-.js} +1 -1
- package/page/assets/{workspace-BMzjmPeQ.js → workspace-Ck0o-_fd.js} +1 -1
- package/page/index.html +15 -15
- package/page/assets/browser-engine-rJc_aHJo.js +0 -9
- package/page/assets/host-patterns-DCz9Cmrt.js +0 -1
- package/page/assets/tool-schema-BF2BK9h8.js +0 -18
- package/page/assets/types-CBmpjaet.js +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/compile-egress-BSxOdX4K.js","assets/rolldown-runtime-hePW80VL.js","assets/host-patterns-C9RMP16Q.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-DpV6A1kQ.js";import{C as t,E as n,T as r,d as i,dt as a,g as o,l as s,m as c,o as l,p as u,v as d,w as f,x as p,y as m}from"./schemas-BQ9Jydzb.js";import{$ as h,A as g,An as _,Ar as v,At as y,Br as b,C as x,Cn as S,Cr as C,Ct as w,Dn as T,Dr as E,Dt as D,En as O,Et as k,Fn as A,Fr as ee,Ft as te,In as j,Ir as ne,It as M,Jt as re,Kt as ie,L as ae,Ln as N,Lr as oe,Lt as P,Mn as se,Mr as ce,Mt as le,Nr as ue,Nt as de,Or as fe,Ot as pe,Pr as F,Pt as me,Q as he,Qt as ge,Rn as _e,Rr as I,Rt as ve,Sn as ye,Sr as L,St as be,Tn as xe,Tr as Se,Tt as Ce,Un as we,Ut as Te,Wt as Ee,Yt as De,_n as Oe,_r as ke,_t as Ae,an as je,ar as Me,at as Ne,bn as Pe,br as Fe,bt as Ie,cr as Le,ct as Re,dn as ze,dt as Be,en as Ve,et as He,ft as Ue,gn as We,gt as Ge,hn as Ke,ht as qe,in as Je,it as Ye,jn as Xe,jr as Ze,jt as Qe,kn as $e,kt as et,lt as tt,mn as nt,mt as rt,nn as it,nt as R,on as at,or as ot,ot as st,p as ct,pn as z,pt as B,qt as lt,rn as ut,rt as dt,st as ft,tn as pt,tt as mt,un as ht,ut as gt,v as _t,vn as vt,wn as yt,wt as bt,xn as xt,xt as St,yn as Ct,yr as wt,yt as Tt,zn as Et,zr as V}from"./tool-schema-BrqSc6vO.js";import{c as H,t as Dt}from"./host-patterns-C9RMP16Q.js";import{$ as Ot,A as kt,At,B as jt,Ct as Mt,D as U,Dn as Nt,E as Pt,Et as Ft,Ft as It,It as Lt,J as Rt,K as zt,L as Bt,M as Vt,Mn as W,Mt as Ht,Nt as Ut,O as G,Ot as Wt,Pt as Gt,St as Kt,Tt as qt,U as Jt,Y as Yt,Z as Xt,_n as Zt,_t as Qt,an as $t,at as en,bn as tn,bt as nn,ct as rn,dt as an,et as on,fn as sn,gt as cn,hn as ln,ht as un,j as dn,jt as fn,k as pn,kt as mn,ln as hn,lt as gn,mn as _n,mt as vn,ot as yn,pn as bn,pt as xn,q as Sn,st as Cn,vn as wn,vt as Tn,w as En,xt as Dn,yt as On,z as kn}from"./shaped-data-BcarWqd5.js";import{At as An,Bt as jn,Ct as Mn,Dt as Nn,Et as Pn,G as Fn,Gt as In,H as Ln,Ht as Rn,It as zn,J as Bn,Jt as Vn,Kt as Hn,Lt as Un,M as Wn,Mt as Gn,Nt as Kn,O as qn,Ot as Jn,Q as Yn,Rt as Xn,St as Zn,Tt as Qn,Ut as $n,Vt as er,W as tr,Wt as nr,X as rr,Y as ir,Z as ar,_t as or,a as sr,at as cr,bt as lr,ct as ur,dt as dr,et as fr,ft as pr,gt as mr,ht as hr,i as gr,it as _r,j as vr,jt as yr,kt as br,l as xr,lt as Sr,m as Cr,mt as wr,n as Tr,nt as Er,o as Dr,ot as Or,pt as kr,q as Ar,qt as K,r as jr,rt as Mr,st as Nr,ut as Pr,vt as Fr,wt as Ir,xt as Lr,yt as Rr,z as zr,zt as Br}from"./reader-B0gVhfoZ.js";import{a as Vr,t as Hr}from"./live-ingress-lDUGPwth.js";import{t as Ur}from"./trace-record-C3zNksA_.js";import{C as Wr,E as Gr,T as Kr,_ as qr,c as Jr,g as Yr,i as Xr,l as Zr,u as Qr,w as $r,y as ei}from"./turn-client-DwVPS3TX.js";import{n as ti,t as ni}from"./live-messages-BYi31jQk.js";import{n as ri,r as ii}from"./lent-keys-C32ems-I.js";import{at as ai,ct as oi,gt as si,ht as ci,it as li,lt as ui,mt as di,nt as fi,ot as pi,pt as mi,st as hi}from"./index-D2T8e_8Q.js";function gi(){return{given:new Set,remote:new Map}}var _i=/[\p{L}\p{N}_.+-]/u,vi=/[\p{L}\p{N}_-]/u,yi=/(?:https?:\/\/|www\.)[^\s'"<>)\]]+/gi,bi=/\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g,xi=/[/?#]/;function Si(e,t){let n=t;for(;n<e.length;){let t=String.fromCodePoint(e.codePointAt(n)??0);if(!vi.test(t))break;n+=t.length}return n}function Ci(e,t){let n=Si(e,t);if(n===t)return-1;let r=1;for(;e.charAt(n)===`.`;){let t=Si(e,n+1);if(t===n+1)break;n=t,r+=1}return r>1?n:-1}function wi(e){let t=e.length;for(;t>0&&(e.charAt(t-1)===`.`||e.charAt(t-1)===`,`);)--t;return e.slice(0,t)}function Ti(e){let t=[],n=e.indexOf(`@`);for(;n>=0;){let r=n;for(;r>0&&_i.test(e.charAt(r-1));)--r;let i=r<n?Ci(e,n+1):-1;i>=0?(t.push({key:`email:${e.slice(r,i).toLowerCase()}`,start:r,end:i}),n=e.indexOf(`@`,i)):n=e.indexOf(`@`,n+1)}return t}function Ei(e){let t=e.replace(/^https?:\/\//i,``),n=t.search(xi),r=n<0?t:t.slice(0,n);return wi(r.slice(r.lastIndexOf(`@`)+1).replace(/:\d*$/,``).toLowerCase()).replace(/^www\./,``)}function Di(e){let t=Ti(e),n=e;for(let{start:e,end:r}of t)n=n.slice(0,e)+` `.repeat(r-e)+n.slice(r);let r=[...t];for(let e of[...n.matchAll(yi)]){let t=Ei(e[0]);t&&r.push({key:`host:${t}`,start:e.index,end:e.index+e[0].length})}for(let e of[...n.matchAll(bi)])r.push({key:`account:${e[0].toLowerCase()}`,start:e.index,end:e.index+e[0].length});return r}function Oi(e){let t=e.trimStart().charAt(0);if(t===`{`||t===`[`)try{return JSON.parse(e)}catch{return}}var ki=32;function Ai(e,t,n=0){if(!(n>ki)){if(typeof e==`string`){let r=Oi(e);r===void 0?t(e):Ai(r,t,n+1)}else if(Array.isArray(e))for(let r of e)Ai(r,t,n+1);else if(e&&typeof e==`object`)for(let r of Object.values(e))Ai(r,t,n+1)}}function ji(e,t=!1){let n=new Set;return Ai(e,e=>{let r=e.trim(),i=Di(r),[a]=i,o=i.length===1&&a?.start===0&&a.end===r.length;if(!(t&&o))for(let{key:e}of i)n.add(e)}),n}function Mi(e,t){for(let n of ji(t))e.given.add(n)}function Ni(e,t,n){for(let r of t)r.role===`assistant`||r.role===`tool`||n.has(r)||Mi(e,Ut(r).text)}function Pi(e,t,n){Mi(e,t.system),n.has(t.input)||Mi(e,Ut(t.input).text),Ni(e,t.history??[],n)}function Fi(e,t,n){if(!Ct(n.origin)){Mi(e,[t.finding,t.data]);return}let r=Oi(t.finding),i=new Set([...r===void 0?ji(t.finding):ji(r,!0),...ji(t.data,!0)]);for(let t of i)e.remote.has(t)||e.remote.set(t,n.tool)}function Ii(e,t,n,r){if(!e||e.remote.size===0)return{verdict:{action:`allow`}};let i=[...ji(t)].filter(t=>e.remote.has(t)&&!e.given.has(t));if(i.length===0)return{verdict:{action:`allow`}};let a=i.map(e=>e.slice(e.indexOf(`:`)+1)),o=a.map(e=>({rule:tn.remoteDestination,severity:`high`,match:e})),s={destination:a.join(`, `),sources:[...new Set(i.map(t=>e.remote.get(t)??``))].join(`, `)},c=n.taint?.remoteDestination??`off`;return c===`block`?{verdict:{action:`block`,hits:o,rejection:W(`taint.destination_blocked`,s,r)}}:{verdict:{action:`flag`,hits:o},...c===`confirm`?{confirm:W(`taint.destination_confirm`,s,r)}:{}}}var Li={image:`thought.omitted_image`,link:`thought.omitted_link`,instructions:`thought.omitted_instructions`},Ri={rule:Zt.ungiven_images,severity:`high`},zi={rule:Zt.ungiven_links,severity:`high`},Bi={rule:Zt.marker_leak,severity:`high`};function Vi(e,t,n=!1){let r=e.pieces[0];for(let i of e.pieces){if(i.raw>t||n&&i.raw===t&&t>0)break;r=i}return r?r.mark?n?r.mark.end:r.mark.start:r.shown+t-r.raw:t}function Hi(e){let t=[];for(let n of[...e].sort((e,t)=>e.start-t.start)){let e=t.at(-1);e&&n.start<e.end?e.end=Math.max(e.end,n.end):t.push({...n})}return t}var Ui=8,Wi=16;function Gi(e){let{omit:t={},canary:n,privateSystem:r,ends:i,given:a,labels:o}=e,s=[...t.markers?[`marker_leak`]:[],...t.images?[`ungiven_images`]:[],...t.links?[`ungiven_links`]:[]],c=t.imagesRead??t.images!==void 0,l=n??e.planted,u=Sn({canary:l,labels:o}),d=e=>({...e,...a?{given:a}:{}});function f(e,t){let n=W(Li[e],{},o);return/\s$/.test(t)?n.trimStart():n}let p=n||r?e.carry??``:``,m=``,h,g,_=0,v=0,y,b=[],x=0,S=!1,C=0,w=new Map;function T(e){return h=s.length>0?nr({detect:s,allow:{ungiven_images:t.images??{},ungiven_links:t.links??{}},skipImages:c,...a?{given:a}:{},...u?{note:u}:{}}):void 0,g=n?Kt(n):void 0,_=0,v=0,E(e)}function E(e){v+=e.length;let t=(h?.push(e).length??0)>0,n=g?.push(e)??!1,i=!1;if(r){let e=(p+m).slice(0,v),t=Lt(e,_);i=It(e.slice(t),r,l).length>0,_=e.length}return t||n||i}function D(e){let i=[];if(t.images)for(let n of gn(e,d(t.images)))i.push({...n,kind:`image`,hit:Ri});if(t.links)for(let n of an(e,d(t.links),c))i.push({...n,kind:`link`,hit:zi});if(t.markers){let t=[new RegExp(Ot.source,`gi`),...u?[on(u)]:[]];for(let n of t.flatMap(t=>[...e.matchAll(t)])){let e=n.index;i.push({start:e,end:e+n[0].length,kind:`instructions`,hit:Bi})}}if(n)for(let[t,r]of Tn(e,n))i.push({start:t,end:r,kind:`instructions`,hit:_n});if(r)for(let[t,n]of It(e,r,l))i.push({start:t,end:n,kind:`instructions`,hit:ln});return i}function O(e){return b.find(t=>t.start<e&&e<t.end)}function k(e,t){let n=p+m,r=``,i=e;for(let a of b)a.end<=e||a.start>=t||(r+=n.slice(i,a.start)+a.raw,i=a.end);return r+n.slice(i,t)}function A(){let e=p+m;for(let t=xn;;t*=2){let n=p.length,i=0;for(let e=b.length-1;n>0&&i<t;){let r=b[e];if(r&&r.end>n)e--;else if(r&&r.end===n)i+=r.raw.length,n=r.start,e--;else{let e=Math.max(r?.end??0,n-(t-i));i+=n-e,n=e}}if(b=b.filter(e=>e.end>n),b.length===0)return;let a={text:``,held:0,pieces:[]},o=n;for(let t of[...b,void 0]){let n=t?t.start:e.length;if(n>o&&a.pieces.push({raw:a.text.length,shown:o}),o<=p.length&&p.length<=n&&(a.held=a.text.length+p.length-o),a.text+=e.slice(o,n),!t)break;a.pieces.push({raw:a.text.length,shown:t.start,mark:t}),a.text+=t.raw,o=t.end}if(!r||n===0||Lt(a.text,a.held)>0)return a}}function ee(){let e=A();if(!e)return[];let t=[];if(n)for(let[r,i]of Tn(e.text,n))t.push([r,i,_n]);if(r)for(let[n,i]of It(e.text,r,l))t.push([n,i,ln]);let i=[];for(let[n,r,a]of t){if(r<=e.held)continue;let t=Vi(e,n),o=Vi(e,r,!0),s=!1;for(let e=Math.max(t,p.length);e<o&&!s;e++)s=!b.some(t=>t.start<=e&&e<t.end);s&&i.push({start:t,end:o,kind:`instructions`,hit:a})}return i}function te(){return Hi([...D(p+m),...ee()])}function j(){return te().filter(({end:e})=>e>p.length)}function ne(e,t=!1){let n=O(e);return n?t?n.end:n.start:e}function M(e){let t=j(),n=p+m,r=t.at(-1),a=!e&&r!==void 0&&r.end>=n.length?r:void 0,o=a?t.slice(0,-1):t,s=b.filter(e=>e.end<=p.length),c=``,l=p.length,u=e=>{let t=p.length+c.length-l;for(let n of b)n.start>=l&&n.end<=e&&s.push({...n,start:n.start+t,end:n.end+t});c+=n.slice(l,Math.max(l,e)),l=Math.max(l,e)};for(let{start:e,end:t,kind:r,hit:a}of o){u(ne(e)),S=i?.has(a.rule)??!1;let o=S?n.length:Math.max(l,ne(t,!0)),d=f(r,p+c),m=p.length+c.length;if(s.push({start:m,end:m+d.length,raw:k(l,o)}),c+=d,w.set(a.rule,a),l=o,S)break}return y=void 0,a&&!S&&(u(ne(a.start)),y=p.length+c.length),u(n.length),b=s,m=c,x=0,o.length>0}function re(){let e=te()[0],t=e?Math.max(0,ne(e.start)-p.length):0,n=m.slice(0,t),r=f(e?.kind??`instructions`,p+n),i=p.length+t,a=k(i,p.length+m.length);b=b.filter(e=>e.end<=i),b.push({start:i,end:i+r.length,raw:a}),m=n+r,x=0,e&&w.set(e.hit.rule,e.hit),y=void 0,S=!0}function ie(){let e=p+m;return y===void 0?e:e.slice(0,y)}function ae(){for(let e=0;e<Ui&&!(C>=Wi);e++){let e=new Set(b.map(e=>e.start));if(!M(!1)){if(y===void 0)break;return}if(S||(b.some(t=>!e.has(t.start))&&C++,!T(ie())))return}re()}function N(){let e=p.length+m.length,t=h?h.holdFrom():e,i=n?oe(n):e,a=r?p.length+Gt(m,r,l):e,o=Math.min(t,i,a,se()??e,y??e);return ne(o<p.length?o:p.length+At(m,o-p.length))}function oe(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+nn(P(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+nn(P(t),e)}return x=Math.min(r,p.length+m.length-vn),Math.max(p.length,r)}function P(e){return e<p.length?p.slice(e)+m:m.slice(e-p.length)}function se(){let e=A();if(!e)return;let t=e.text.slice(e.held),i=n?Qt(t,n,e.text.slice(0,e.held)):t.length,a=r?Gt(t,r,l):t.length;return Vi(e,e.held+Math.min(i,a))}function ce(e){let t={text:e,hits:[...w.values()]};return w=new Map,t}return T(p),{push(e){if(S||!e||(m+=e,(y!==void 0||E(e)||ee().length>0)&&ae(),S))return ce(``);let t=Math.max(0,N()-p.length),n=m.slice(0,t);return p+=n,m=m.slice(t),ce(n)},flush(){if(!S){for(let e=0;e<Ui&&!S&&M(!0);e++);!S&&m&&(D(p+m).length>0||ee().length>0)&&re()}let e=m,t=p+m;p=n||r?Ft(t,n,r):``;let i=p.length-t.length;return b=b.filter(e=>e.start+i>=0).map(e=>({...e,start:e.start+i,end:e.end+i})),m=``,x=0,y=void 0,S=!1,C=0,T(p),ce(e)},carryOut:()=>p}}function Ki(...e){let t=e.filter(e=>e!==void 0);return t.length===0?{}:{found:{action:t.reduce((e,t)=>Jt(e,t.action),`allow`),hits:[...new Map(t.flatMap(({hits:e})=>e).map(e=>[e.rule,e])).values()]}}}function qi(e,t,n,r){let i=()=>$n(`thought`,t,n,r),a=i();if(!a)return e;let o=0,s=0,c=!1;function l(e){if(c||!a)return{text:``};let t=e?o:Math.max(s,a.holdFrom()),{action:n,text:r=``,hits:i,taken:l}=a.take(s,t,e);return c=n===`block`,s+=l,{text:r,...n===`allow`?{}:{found:{action:n,hits:i}}}}return{push(t){o+=t.length,a?.push(t);let{text:n,found:r}=l(!1),i=e?e.push(n):{text:n,hits:[]};return{text:i.text,hits:i.hits,...Ki(r,i.found)}},flush(){let{text:t,found:n}=l(!0),r=e?.push(t),u=e?e.flush():{text:t,hits:[]};return a=i(),o=0,s=0,c=!1,{text:(r?.text??``)+u.text,hits:[...new Map([...r?.hits??[],...u.hits].map(e=>[e.rule,e])).values()],...Ki(n,r?.found,u.found)}},carryOut:()=>e?.carryOut()??``}}var Ji={canary_leak:_n,prompt_leak:ln,marker_leak:Bi,ungiven_images:Ri,ungiven_links:zi},Yi=[`marker_leak`,`ungiven_images`,`ungiven_links`];function Xi(e,t){let{canary:n,privateSystem:r}=e,i=n?Kt(n):void 0,a=``,o=new Set;return{read(e){let n=Lt(a+e,a.length);a+=e;let s=[];i?.push(e)&&s.push(_n),r&&It(a.slice(n),r,t).length>0&&s.push(ln);let c=s.filter(e=>!o.has(e.rule));for(let e of c)o.add(e.rule);return c},reset(){i=n?Kt(n):void 0,a=``,o=new Set}}}function Zi(e,t,n,r){let i=Xi(n,r),a=new Map(Object.entries(Ji).map(([e,n])=>[n.rule,t[e].thought]));function o(e,t){let n=[...t,...e.hits.filter(e=>a.has(e.rule))];if(n.length===0)return e;let r=n.reduce((e,t)=>Jt(e,a.get(t.rule)??`ignore`),e.found?.action??`allow`);return{text:e.text,hits:e.hits.filter(e=>!a.has(e.rule)),found:{action:r,hits:[...e.found?.hits??[],...n]}}}return{push:t=>o(e.push(t),i.read(t)),flush(){return i.reset(),o(e.flush(),[])},carryOut:()=>e.carryOut()}}async function Qi(e,t,n){let{detect:r}=e,i=Yi.filter(e=>$i(r,e)),a=ta(r,t,$i),o=ta(r,t,(e,t)=>e[t].thought===`flag`),s=i.length>0||na(a)||na(o),c=jt(e,t);(s||Vt([`thought`],r,c))&&await In();let l=s?Gi({omit:ea(e),...a,...ra(r),...ia(t),...n?{carry:n}:{}}):void 0;return qi(l&&Zi(l,r,o,t.canary),r,c,i)}function $i(e,t){return e[t].thought===`redact`||e[t].thought===`block`}function ea({detect:e,allow:t}){return{...$i(e,`marker_leak`)?{markers:!0}:{},...$i(e,`ungiven_images`)?{images:t.ungiven_images}:{},...$i(e,`ungiven_links`)?{links:t.ungiven_links}:{},imagesRead:e.ungiven_images.thought!==`ignore`}}function ta(e,t,n){let r=n(e,`canary_leak`)&&!t.canaryGiven&&t.canary,i=n(e,`prompt_leak`)&&t.privateSystem;return{...r?{canary:r}:{},...i?{privateSystem:i}:{}}}function na(e){return e.canary!==void 0||e.privateSystem!==void 0}function ra(e){let t=new Set(Object.entries(Ji).filter(([t])=>e[t].thought===`block`).map(([,e])=>e.rule));return t.size>0?{ends:t}:{}}function ia({canary:e,givenUrls:t,labels:n}){return{...e?{planted:e}:{},...t?{given:t}:{},...n?{labels:n}:{}}}var aa={rule:`live.untranscribed-audio`,severity:`high`};async function oa(e,t,n,r,i){let a=z(e.guardrails),o={stage:`live_outbound`,trust:`untrusted`,profileId:e.id,...Bt(a.detect,{canary:t,privateSystem:n}),...e.labels?{labels:e.labels}:{},...r?{givenUrls:r}:{},...i?{ownTools:i}:{}},s=await Qi(a,o);return{policy:a,context:o,gate:await jn(a,o,`live_reply`),held:[],releasedTo:0,withholdVisible:!1,...s?{thoughts:s}:{}}}function sa(e){let t=e.gate?.carryOut();e.gate=er(e.policy,e.context,`live_reply`,t),e.held=[],e.releasedTo=0,e.withholdVisible=!1,e.promptLeaks=void 0}function ca(e,t,n=[]){let r=Hn(`live_outbound`,`untrusted`,t,`block`);return{action:`withhold`,error:new H(`safety`,e),events:[...n,...r?[r]:[]]}}function la(e){return e.accumulated().length-e.unreleased().length}function ua(e,t,n,r,i=!1){let a=t.accumulated();for(let t=e.held[0];t!==void 0;t=e.held[0]){let{event:o}=t;if(o.type!==`media`){let i=Math.max(t.start,e.releasedTo),s=Math.min(t.end,n);s>i&&(r.push({...o,text:a.slice(i,s)}),e.releasedTo=s)}if(t.end>n&&!(i&&o.type===`media`))return;o.type===`media`&&r.push(o),e.held.shift()}}function da(e,t,n,r){if(!n.blocked){let i=n.found&&dn(`live_reply`,n.found);i&&r.push(K(i)),ua(e,t,la(t),r);return}let i=n.hits.filter(Yt);i.length>0&&(e.promptLeaks=i),e.withholdVisible=!0;let a=n.boundary?void 0:Hn(`live_outbound`,`untrusted`,n.hits,`block`);a&&r.push(a)}function fa(e,t,n){e.withholdVisible||e.held.length===0||da(e,t,t.flush(),n)}function pa(e,t,n,r){let i=t.accumulated().length;e.held.push({event:n,start:i,end:r?i:1/0})}function ma(e,t){for(let n=e.held.length-1;n>=0;--n){let r=e.held[n];if(r===void 0||r.end!==1/0)return;r.end=t}}function ha(e,t,n,r){let i=n.text??``;if(!i)return;let a=t.accumulated().length;ma(e,a+i.length),e.held.push({event:n,start:a,end:a+i.length});let o=t.process(i);e.withholdVisible||da(e,t,o,r)}function ga(e,t){let n=[],{gate:r}=e;if(!r){let{thoughts:n}=e;return ba(n?t.flatMap(e=>e.type===`thought`?_a(n.push(e.text),e):[e]):t)}let i=!1;for(let a of t){if(Mt(a)){i||=!!a.text,ha(e,r,a,n);continue}if(a.type===`media`){pa(e,r,a,i),e.withholdVisible||ua(e,r,la(r),n);continue}fa(e,r,n),va(a)&&ya(e,r,n);let t=a.type===`tool`?void 0:Rt(a,e.context,e.policy.detect,`live_reply`);if(t?.stop)return ca(Xt(t.hits),t.hits,n);if(t){let e=dn(`live_reply`,{action:`flag`,hits:t.hits});e&&n.push(K(e))}a.type===`thought`&&e.thoughts?n.push(..._a(e.thoughts.push(a.text),a)):n.push(a)}return ba(n)}function _a({text:e,hits:t,found:n},r){let i=n&&dn(`thought`,n),a=Hn(`thought`,`untrusted`,t,`redact`);return[...i?[K(i)]:[],...a?[a]:[],...e?[{...r,text:e}]:[]]}function va(e){return e.type===`done`&&e.stop?.kind===`generation_complete`}function ya(e,t,n){let r=t.accumulated().length;e.withholdVisible||r===0||la(t)<r||ua(e,t,r,n,!0)}function ba(e){return e.length===0?{action:`idle`}:{action:`emit`,events:e}}function xa(e,t,n){let{detect:r,blockedReply:i}=e.policy,a=S({text:t.accumulated()},r,{boundary:`live_reply`,...e.withholdVisible?{reportedTo:la(t)}:{},scope:jt(e.policy,e.context)}),o=t.accumulated().slice(0,e.releasedTo),s=O(a,e.promptLeaks),c=s&&s!==a.blocked?Hn(`live_outbound`,`untrusted`,s,`block`):void 0,l=[...n,...a.events.map(K),...c?[c]:[]];if(s){if(i.onBlock===`refuse`){let t=yt(o,e.context.labels);return{action:`emit`,events:[...l,{type:`text`,text:t}]}}return{action:`withhold`,error:new H(`safety`,zt.egress),events:l}}if(a.rewritten){let e=xe(o,a.payload.text);return{action:`emit`,events:[...l,{type:`text`,text:e}]}}return ua(e,t,t.accumulated().length,l,!0),ba(l)}function Sa(e,t){if(e.held.length===0)return t;let n=Hn(`live_outbound`,`untrusted`,[aa],`block`);return n?[...t,n]:t}function Ca(e,t){let n=[];return fa(e,t,n),t.accumulated()?xa(e,t,n):ba(Sa(e,n))}function wa(e){let t=e.thoughts?_a(e.thoughts.flush(),{type:`thought`,text:``}):[];if(!e.gate)return ba(t);let n=Ca(e,e.gate);return sa(e),t.length===0?n:n.action===`idle`?{action:`emit`,events:t}:{...n,events:[...t,...n.events??[]]}}function Ta(e){e.thoughts?.flush(),sa(e)}var Ea=d().int().positive().max(2**53-1),Da=Ea.max(2147483647),Oa=t({operationTimeoutMs:Da,connectTimeoutMs:Da,liveStepTimeoutMs:Da,maxWireRecordBytes:Ea,maxWireResponseBytes:Ea,maxEventBytes:Ea,maxStepBytes:Ea,maxStepEvents:Ea,maxPendingToolCalls:Ea});function ka(e={}){return Object.freeze(Oa.parse({operationTimeoutMs:12e4,connectTimeoutMs:3e4,liveStepTimeoutMs:12e4,maxWireRecordBytes:16777216,maxWireResponseBytes:67108864,maxEventBytes:16777216,maxStepBytes:67108864,maxStepEvents:1e5,maxPendingToolCalls:32,...e}))}var Aa=/key|auth|cookie|secret|token/i;function ja(e,t){return Aa.test(e)?`[redacted]`:t}function Ma(e){let t={};for(let[n,r]of new Headers(e).entries())t[n]=ja(n,r);return t}function Na(e){return e instanceof Error?{eventType:`http_throw`,name:e.name,message:e.message}:{eventType:`http_throw`,name:`Error`,message:String(e)}}function Pa(e){if(e==null)return{};if(typeof e!=`string`)return{bodyKind:e.constructor.name};try{return{body:JSON.parse(e)}}catch{return{body:e}}}function Fa(e,t=fetch,n){return e?async(r,i)=>{e({eventType:`http_request`,method:i?.method??`GET`,url:String(r),headers:Ma(i?.headers),...n?{keySlot:n}:{},...Pa(i?.body)});try{let n=await t(r,i);return e({eventType:`http_response`,status:n.status,headers:Ma(n.headers)}),n.ok||e({eventType:`http_error_body`,body:await n.clone().text()}),n}catch(t){throw e(Na(t)),t}}:t}function Ia(e){return e instanceof H||F(e)||ee(e)?e:new H(`network`,Ze(e),{cause:e})}function La(e=fetch){return async(t,n)=>{try{return await e(t,n)}catch(e){throw Ia(e)}}}var Ra=[1e3,2e3,4e3,8e3],za=5e3,Ba=Ra.length,Va=1e3,Ha=new Set([408,429,500,502,503,504,529]),Ua=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(Wa(t));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e);function a(){clearTimeout(i),r(Wa(t))}t?.addEventListener(`abort`,a,{once:!0})});function Wa(e){return e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}function Ga(e){return Ha.has(e)}function Ka(e){let t=Ia(e);return t instanceof H&&t.kind===`network`}function qa(e){return Ra[Math.min(e,Ra.length-1)]}function Ja(e,t=Date.now()){let n=e.get(`retry-after-ms`),r=e.get(`retry-after`),i;if(n!==null&&n.trim()!==``&&Number.isFinite(Number(n)))i=Number(n);else if(r!==null&&r.trim()!==``){let e=Number(r);i=Number.isFinite(e)?e*Va:Date.parse(r)-t}if(!(i===void 0||Number.isNaN(i)||i<0))return i}function Ya(e,t=Ua,n=()=>1/0){return async(r,i)=>{let a=0;for(let o=0;;o++){let s=Math.min(za-a,n()),c;try{let t=await e(r,i);if(!Ga(t.status)||(c=Ja(t.headers)??qa(o),c>s||o>=Ba))return t;await t.body?.cancel()}catch(e){if(c=qa(o),!Ka(e)||c>s||o>=Ba)throw e}await t(c,i?.signal),a+=c}}}var Xa=`[DONE]`;function Za(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function Qa(e,t){let n=e.startsWith(`data:`)?e.slice(5).replace(/^ /,``):e,r={};if(t&&(r.sseEvent=t),n===Xa)return r.eventType=`sse_done`,r;try{let e=JSON.parse(n),t=Za(e);return t?{...t,...r}:(r.eventType=`sse_unparsed`,r.data=e,r)}catch{return r.eventType=`sse_unparsed`,r.data=n,r}}function $a(e,t=``){let n=[],r=t,i=[],a=!1,o=0,s=/\r\n|\r|\n/g,c=0;for(let t=s.exec(e);t&&(t[0]!==`\r`||t.index!==e.length-1);t=s.exec(e)){let s=e.slice(c,t.index);if(c=t.index+t[0].length,!s)a&&n.push(Qa(i.join(`
|
|
3
|
+
`),r)),r=``,i=[],a=!1,o=c;else if(!s.startsWith(`:`)){let e=s.indexOf(`:`),t=e<0?s:s.slice(0,e),n=e<0?``:s.slice(e+1).replace(/^ /,``);t===`event`&&(r=n),t===`data`&&(i.push(n),a=!0)}}return{rest:e.slice(o),payloads:n,pendingEvent:``}}async function*eo(e){let t=e.getReader(),n=new TextDecoder,r=``,i=!1;try{for(;;){let{done:e,value:a}=await t.read();if(e){i=!0;break}r+=n.decode(a,{stream:!0});let o=$a(r);r=o.rest;for(let e of o.payloads)yield e}}finally{i||t.cancel().catch(()=>void 0),t.releaseLock()}}var to=`key_fallback`,no=1e6;function ro(e,t){let n=e.models[t];if(n)return n;let r;for(let[n,i]of Object.entries(e.models))n.endsWith(`*`)&&t.startsWith(n.slice(0,-1))&&n.length-1>(r?.prefix.length??-1)&&(r={prefix:n.slice(0,-1),price:i});return r?.price}function io(e,t,n,r){let i=e,a=0;for(let[e,t]of Object.entries(n??{})){let n=Math.min(r?.[e]??0,i);a+=n*t,i-=n}return a+i*t}function ao(e,t,n){let r=ro(e,t);if(!r)return;let i=r.longContext&&n.input>r.longContext.above?r.longContext:r,a=Math.min(n.cached??0,n.input);return{usd:(a*(i.cachedInput??i.input)+io(n.input-a,i.input,i.byModality?.input,n.byModality?.input)+io(n.output,i.output,i.byModality?.output,n.byModality?.output))/no,estimated:!0}}function oo(e){return(t,n)=>{if([...n.headers.keys()].length)throw new H(`unsupported`,W(`protocol.ws_headers`,{provider:e}));return Promise.resolve(new WebSocket(t,n.protocols))}}var so=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,co=248;function lo(){let e=``;for(;e.length<24;)for(let t of crypto.getRandomValues(new Uint8Array(24-e.length)))t<co&&(e+=so[t%62]);return e}function uo(e){return De(e.provider,e.binding)}var fo=new WeakMap;function po(e,t){return e&&Object.hasOwn(e,t)?e[t]:void 0}async function mo(e,t,n){let{definition:r}=e.provider,i=t.authorize??r.authorize;if(!r.key||!i)return;let a=n?po(e.vault,n):void 0,o=typeof a==`function`?await a({providerId:e.provider.id,apiId:e.binding.apiId,keySlot:n,...e.signal?{signal:e.signal}:{}}):a,s=typeof o==`string`?o.trim()||void 0:o,c=r.key.safeParse(s);if(!c.success||n&&s===void 0)throw new H(`auth`,s===void 0?W(`provider.credential_missing`,{slot:n??``}):W(`protocol.key_invalid`,{slot:n??``,provider:e.provider.id}));if(c.data===void 0)return;e.onKey?.(n,c.data);let l=`${t.protocol.id}\u0000${n??``}`,u=fo.get(e.provider)??new Map;fo.set(e.provider,u);let d=u.get(l);if(d&&JSON.stringify(d.key)===JSON.stringify(c.data))return d.signer;let f=i(c.data);return u.set(l,{key:c.data,signer:f}),f}function ho(e,t,n,r){return e.url?new URL(e.url({path:t,apiId:n,stream:r})):new URL(e.baseUrl.replace(/\/+$/,``)+(t.startsWith(`/`)?t:`/${t}`))}async function*go(e,t){let n=e.headers.get(`content-type`)??``;if(!t&&!/json/i.test(n)){let t=new Uint8Array(await e.arrayBuffer());yield{eventType:`http_body`,mime_type:n,data:bn(t)}}else if(!t)yield await e.json();else if(e.body)for await(let t of eo(e.body)){if(t.eventType===`sse_done`)return;yield t}}function _o(e){let t=e.split(/\r?\n/).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trim()).join(`
|
|
4
|
+
`);for(let n of t?[e,t]:[e])try{return JSON.parse(n)}catch{}return e}async function vo(e,t,n){let r=_o(await n.text()),i=e.error?.({status:n.status,body:r,headers:n.headers})??new H(ne(n.status),W(`protocol.http`,{provider:t,status:n.status}));return Object.assign(i,{status:n.status})}function yo(e){return e.builtins.map(e=>e.id)}function bo(e,t,n=[]){let r=t.find(e=>!n.includes(e));if(r!==void 0)throw new H(`unsupported`,W(`protocol.builtin_unwritten`,{protocol:e.id,tool:r}))}async function xo(e){return typeof e==`string`?e:e instanceof ArrayBuffer?new TextDecoder().decode(e):typeof Blob<`u`&&e instanceof Blob?await e.text():String(e)}function So(e){try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{}return{eventType:`ws_unparsed`,data:e}}function Co(e,t){let n=[],r=[],i,a=!1,o=Promise.resolve(),s=e=>{t(e),n.push(e),i?.()},c=e=>{o=o.then(e)};return e.addEventListener(`open`,()=>{for(let t of r.splice(0))e.send(t)}),e.addEventListener(`message`,e=>c(async()=>{let t=await xo(e.data);t.trim()&&s(So(t))})),e.addEventListener(`error`,()=>c(()=>s({eventType:`ws_error`}))),e.addEventListener(`close`,e=>c(()=>{let{code:t,reason:n}=e;s({eventType:`ws_close`,code:t,reason:n}),a=!0})),{send(n,i){t({eventType:`ws_send`,body:n,...i?.length?{input:C.parse(i)}:{}});let a=JSON.stringify(n);e.readyState===WebSocket.CONNECTING?r.push(a):e.send(a)},async*frames(){for(;;){let e=n.shift();if(e)yield e;else if(a)return;else await new Promise(e=>i=e)}},close(t,n){(e.readyState===WebSocket.CONNECTING||e.readyState===WebSocket.OPEN)&&e.close(t,n)}}}function wo(e,t,n,r={sent:!1},i=[]){let a=uo(e),{protocol:o}=a,{apiId:s}=e.binding,c=(`builtInTools`in e.binding?e.binding.builtInTools:void 0)??[],l=t=>{e.tapUpstream?.(t),e.rawRows&&n.push(t)},u=t=>{let n=t??o.endpoints[e.profileType];if(n===void 0)throw new H(`unsupported`,W(`protocol.profile_type`,{protocol:o.id,profileType:e.profileType}));return n};return{profileType:e.profileType,apiId:s,options:e.binding.options??{},builtInTools:c,limits:e.limits??ka(),...e.signal?{signal:e.signal}:{},tapUpstream:l,async*send(n,c){bo(o,i,c.wroteTools);let d=new Headers({"content-type":`application/json`});c.stream&&d.set(`accept`,`text/event-stream`);for(let[e,t]of Object.entries(a.headers??{}))d.set(e,t);for(let[e,t]of Object.entries(c.headers??{}))d.set(e,t);let f={transport:`http`,url:ho(a,u(c.path),s,c.stream),headers:d,protocols:[],body:JSON.stringify(n)};await(await mo(e,a,t))?.sign(f);let p=Ya(Fa(e.tapUpstream&&(t=>e.tapUpstream?.(t)),La(e.fetch??fetch),t),e.wait??Ua,e.timeLeft);r.sent=!0;let m=await p(f.url,{method:`POST`,headers:f.headers,body:f.body??null,...e.signal?{signal:e.signal}:{}});if(!m.ok)throw await vo(o,e.provider.id,m);for await(let e of(o.framing??go)(m,c.stream))l(e),yield e},async connect(n,c){bo(o,i,c?.wroteTools);let d={transport:`ws`,url:ho(a,u(void 0),s,!0),headers:new Headers(a.headers),protocols:[]};await(await mo(e,a,t))?.sign(d);let f=e.openWebSocket??oo(e.provider.id);r.sent=!0;let p=Co(await f(d.url.toString(),{headers:d.headers,protocols:d.protocols}),l);return p.send(n),p}}}function To(e,t){return e instanceof H&&e.kind===t}async function*Eo(e,t){let{keySlot:n,fallbackKeySlot:r}=ge(e.provider,e.binding),i=n,a=!1,o=!1;for(;;){let n=!1;try{for await(let e of t(i,a))n=!0,yield e;return}catch(t){if(n)throw t;if((To(t,`rate_limit`)||To(t,`busy`))&&r&&i!==r&&Do(e,r))e.tapUpstream?.({eventType:to,from:i??null,keySlot:r,errorKind:t.kind,error:t.message}),i=r,a=!0;else if(To(t,`auth`)&&!o){o=!0;let t=uo(e);fo.get(e.provider)?.get(`${t.protocol.id}\u0000${i??``}`)?.signer.invalidate?.()}else throw t}}}function Do(e,t){let n=po(e.vault,t);return typeof n==`string`?n.trim()!==``:typeof n==`function`||typeof n==`object`&&!!n}function Oo(e){if(!(e instanceof H)||e.kind===`cancelled`||e.kind===`config`)throw e;return{type:`error`,errorKind:e.kind,errorInternal:e.message,...e.copy?{errorCopy:e.copy}:{}}}function ko(e){if(e.state===void 0)return e;if(!e.history?.length)throw new H(`request`,W(`protocol.history_needed`));let{state:t,stateHistoryLength:n,...r}=e;return r}function Ao(e){let t=new Map,n=e=>{let n=t.get(e);if(n)return n;let r=lo();return t.set(e,r),r},r=e.provider.definition.prices;return{finish:t=>{switch(t.type){case`tool_call`:return{...t,call:{...t.call,callId:n(t.call.callId),wireCallId:t.call.callId}};case`tool_cancel`:case`tool_draft`:return{...t,callId:n(t.callId)};case`reasoning`:return{...t,origin:{protocol:t.origin?.protocol??e.binding.protocol,provider:e.provider.id,apiId:e.binding.apiId}};case`tokens`:{if(t.tokens.cost||!r)return t;let n=ao(r,e.binding.apiId,t.tokens);return n?{...t,tokens:{...t.tokens,cost:n}}:t}default:return t}},wireOf:e=>{for(let[n,r]of t)if(r===e)return n;return e}}}function jo(e,t){let n=e.provider.definition.prices;if(!t.usage||t.usage.costUsd!==void 0||!n)return t;let{inputTokens:r,outputTokens:i}=t.usage,a=ao(n,t.model,{input:r,output:i,total:r+i});return a?{...t,usage:{...t.usage,costUsd:a.usd,estimated:!0}}:t}function Mo(e){return uo(e).protocol}function No(e,t,n){let r=t[n];if(!r)throw new H(`unsupported`,W(`protocol.no_operation`,{protocol:e.id,operation:n}));let i=r;return((...e)=>i.apply(t,e))}async function Po(e,t,n){let r=Mo(e);for await(let i of Eo(e,i=>(async function*(){let a=r.create(wo(e,i,[]));yield await No(r,a,t)(n)})()))return i;throw new H(`internal`,W(`provider.decision_failed`))}function Fo(e){let t=Mo(e);return{async*complete(n){let{finish:r}=Ao(e),i=[],a={sent:!1},o=Eo(e,(r,o)=>{a.sent=!1;let s=t.create(wo(e,r,i,a,yo(n)));return No(t,s,`complete`)(o?ko(n):n)});try{for await(let e of o){for(let e of i.splice(0))yield{type:`raw`,row:e};yield r(e)}}catch(e){for(let e of i.splice(0))yield{type:`raw`,row:e};if(!a.sent)throw e;yield Oo(e);return}for(let e of i.splice(0))yield{type:`raw`,row:e}},async openSession(n){let{finish:r,wireOf:i}=Ao(e),a=[],o;for await(let r of Eo(e,(r,i)=>(async function*(){let o=t.create(wo(e,r,a,void 0,yo(n)));yield await No(t,o,`openSession`)(i?ko(n):n)})()))o=r;let s=o;return{...s,sendToolResult:e=>s.sendToolResult({...e,callId:i(e.callId)}),async*events(){for await(let e of s.events()){for(let e of a.splice(0))yield{type:`raw`,row:e};yield r(e)}}}},decide:async t=>jo(e,await Po(e,`decide`,t)),embed:t=>Po(e,`embed`,t)}}function Io(e){let t=new AbortController,n=[],r=()=>{for(let e of n.splice(0))e()};for(let i of e){let e=()=>{t.abort(i.reason),r()};if(i.aborted){e();break}i.addEventListener(`abort`,e,{once:!0}),n.push(()=>i.removeEventListener(`abort`,e))}return{signal:t.signal,dispose:r}}var Lo=class{limits;controller=new AbortController;signal;timer;timerDeadline;wireBytes=0;stepBytes=0;stepEvents=0;calls=new Set;deadline;releaseSignal;constructor(e,t,n=e.operationTimeoutMs){this.limits=e;let r=Io(t?[t,this.controller.signal]:[this.controller.signal]);this.signal=r.signal,this.releaseSignal=r.dispose,this.startTimer(n),this.deadline=performance.now()+n}resumeOperation(){let e=this.deadline-performance.now();e<=0&&(this.controller.abort(new H(`timeout`,W(`error.timeout`))),I(this.signal)),this.startTimer(e)}timeLeft(){return(this.timerDeadline??this.deadline)-performance.now()}startTimer(e){this.stopTimer(),this.timerDeadline=performance.now()+e,this.timer=setTimeout(()=>this.controller.abort(new H(`timeout`,W(`error.timeout`))),e)}stopTimer(){this.timer!==void 0&&clearTimeout(this.timer),this.timer=void 0,this.timerDeadline=void 0}close(){this.controller.abort(),this.dispose()}dispose(){this.stopTimer(),this.releaseSignal()}startLiveStep(){this.timer===void 0&&this.startTimer(this.limits.liveStepTimeoutMs)}fail(){let e=new H(`bad_response`,W(`provider.budget_exhausted`),{copy:{key:`provider.budget_exhausted`}});throw this.controller.abort(e),e}checkDeadline(){this.timerDeadline!==void 0&&performance.now()>=this.timerDeadline&&this.controller.abort(new H(`timeout`,W(`error.timeout`))),I(this.signal)}value(e){this.checkDeadline();let t=new TextEncoder().encode(JSON.stringify(e)).byteLength;this.checkDeadline(),this.stepBytes+=t,this.stepEvents++,(t>this.limits.maxEventBytes||this.stepBytes>this.limits.maxStepBytes||this.stepEvents>this.limits.maxStepEvents)&&this.fail()}event(e){this.value(e),e.type===`tool_call`&&this.calls.add(e.call.callId),e.type===`tool_cancel`&&this.calls.delete(e.callId),this.calls.size>this.limits.maxPendingToolCalls&&this.fail()}resetStep(){this.stepBytes=0,this.stepEvents=0,this.calls.clear(),this.wireBytes=0,this.stopTimer()}socket(e){return async(t,n)=>{I(this.signal);let r=await e(t,n);this.signal.aborted&&(r.close(),I(this.signal));let i=()=>r.close();return this.signal.addEventListener(`abort`,i,{once:!0}),r.addEventListener(`close`,()=>this.signal.removeEventListener(`abort`,i),{once:!0}),r.addEventListener(`message`,e=>{let t=e.data;if(!((typeof t==`string`?new TextEncoder().encode(t).byteLength:t instanceof Blob?t.size:t instanceof ArrayBuffer||ArrayBuffer.isView(t)?t.byteLength:0)<=this.limits.maxWireRecordBytes)){e.stopImmediatePropagation();try{this.fail()}catch{r.close(1009,`response limit`)}}}),r}}fetch(e){return async(t,n)=>{let r=n?.signal??(t instanceof Request?t.signal:void 0),i=Io(r?[this.signal,r]:[this.signal]),a=i.signal;I(a);let o=await e(t,{...n,signal:a}).catch(e=>{throw i.dispose(),e});if(I(a),!o.body)return i.dispose(),o;let s=o.body.getReader(),c=0,l=o.headers.get(`content-type`)?.includes(`text/event-stream`)?new Ro(this):void 0,u=()=>{s.cancel(a.reason).catch(()=>void 0)};a.addEventListener(`abort`,u,{once:!0});let d=new ReadableStream({pull:async e=>{try{I(a);let t=await s.read();if(I(a),t.done){e.close(),a.removeEventListener(`abort`,u),i.dispose(),s.releaseLock();return}c+=t.value.byteLength,this.wireBytes+=t.value.byteLength,(c>this.limits.maxWireResponseBytes||this.wireBytes>this.limits.maxWireResponseBytes)&&this.fail(),l?.accept(t.value),e.enqueue(t.value)}catch(t){e.error(t),a.removeEventListener(`abort`,u),i.dispose(),s.cancel(t).catch(()=>void 0)}},cancel:e=>(a.removeEventListener(`abort`,u),i.dispose(),s.cancel(e))});return new Response(d,{status:o.status,statusText:o.statusText,headers:o.headers})}}},Ro=class{budget;recordBytes=0;lineBytes=0;previousCR=!1;emptyCR=!1;constructor(e){this.budget=e}accept(e){for(let t of e)this.emptyCR&&t!==10&&(this.recordBytes=0,this.emptyCR=!1),this.recordBytes++,this.recordBytes>this.budget.limits.maxWireRecordBytes&&this.budget.fail(),this.emptyCR?(this.recordBytes=0,this.emptyCR=!1,this.previousCR=!1):t===10&&this.previousCR?this.previousCR=!1:(t===10||t===13?(this.lineBytes===0&&(t===13?this.emptyCR=!0:this.recordBytes=0),this.lineBytes=0):this.lineBytes++,this.previousCR=t===13)}},zo=t({name:f().min(1),callId:f().min(1),wireCallId:f().min(1).optional(),arguments:p(f(),C),stepId:f().min(1).optional(),stepCallCount:d().int().min(1).optional()}),Bo=se.extend({type:o(`reasoning`)}),Vo=new Set([`text`,`thought`,`structured`,`media`,`grounding`,`citation`,`evidence`,`tokens`,`session`,`tool_draft`,`error`,`custom`]);function Ho(e){let t=_e.parse(e);if(t.kind===`gate`)throw new H(`bad_response`,W(`provider.kernel_gate`));return t}function Uo(e){if(!G(e)||typeof e.type!=`string`)throw new H(`bad_response`,W(`provider.event_invalid`));if(Vo.has(e.type))return j.parse(e);switch(e.type){case`tool_call`:return{type:`tool_call`,call:zo.parse(e.call)};case`tool_cancel`:return{type:`tool_cancel`,callId:f().min(1).parse(e.callId)};case`reasoning`:return Bo.parse(e);case`raw`:return{type:`raw`,row:L.parse(e.row)};case`done`:return{type:`done`,stop:Ho(e.stop),interrupted:i().optional().parse(e.interrupted),state:e.state};case`response`:if(!G(e.response))throw new H(`bad_response`,W(`provider.response_identity`));return{type:`response`,response:t({id:f().optional(),model:f().optional()}).parse(e.response)};default:throw new H(`bad_response`,W(`provider.event_type`,{type:e.type}))}}async function Wo(e,t){if(I(t),!t)return await e();let n=()=>{},r=new Promise((e,r)=>{n=()=>{try{I(t)}catch(e){r(e)}},t.addEventListener(`abort`,n,{once:!0}),t.aborted&&n()});try{return await Promise.race([Promise.resolve().then(()=>(I(t),e())),r])}finally{t.removeEventListener(`abort`,n)}}function Go(e,t){if(!e)return;let n=e=>({...e,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([e,n])=>[e,typeof n==`string`?t(n):n]))}:{}});return`key`in e?n(e):e.map(n)}function Ko(e,t){let n=t(e instanceof Error?e.message:String(e));if(e instanceof DOMException)return new DOMException(n,e.name);if(F(e))return new DOMException(n,`AbortError`);let r=e instanceof H?new H(e.kind,n,{copy:Go(e.copy,t)}):e instanceof TypeError?TypeError(n):Error(n);return G(e)&&typeof e.status==`number`&&Object.assign(r,{status:e.status}),r}async function qo(e,t){try{return await e()}catch(e){throw Ko(e,t)}}async function*Jo(e,t,n,r=!1){r||n.resumeOperation();let i;try{for(i=e()[Symbol.asyncIterator]();;){let e=i,a=await Wo(()=>e.next(),n.signal);if(a.done)break;let o=Uo(a.value);r&&(o.type!==`session`||o.session.kind===`working`)&&n.startLiveStep(),n.event(o),o.type===`error`?yield{...o,...o.errorCopy?{errorCopy:Go(o.errorCopy,t)}:{},...o.errorInternal?{errorInternal:t(o.errorInternal)}:{},...o.error?{error:t(o.error)}:{}}:yield o,r&&o.type===`done`&&n.resetStep()}}catch(e){throw Ko(e,t)}finally{n.close(),i?.return&&Promise.resolve(i.return()).catch(()=>void 0)}}var Yo=/^(?:authorization|proxy-authorization|cookie|set-cookie|api[_-]?key|x-goog-api-key|secret|token|access[_-]?token|refresh[_-]?token|password)$/i;function Xo(e,t,n,r,i){let a=ka(r.limits),o=new Lo(a,i.signal,i.timeoutMs??(i.liveConnection?a.connectTimeoutMs:a.operationTimeoutMs)),s=new Set,c=e=>{if(typeof e==`string`)s.add(e);else if(e&&typeof e==`object`)for(let t of Object.values(e))c(t)},l=e=>{if(typeof e==`string`){let t=e;for(let e of s)e&&(e.length>=4||t===e)&&(t=t.split(e).join(`[redacted]`));return t}return Array.isArray(e)?e.map(l):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[String(l(e)),Yo.test(e)&&typeof t==`string`?`[redacted]`:l(t)])):e},u=e=>String(l(e)),d=ge(e,t).keySlot,f=Fo({provider:e,binding:t,profileType:n,limits:a,signal:o.signal,fetch:o.fetch(r.fetch??globalThis.fetch),openWebSocket:o.socket(r.openWebSocket??oo(e.id)),...r.vault?{vault:r.vault}:{},...r.wait?{wait:r.wait}:{},timeLeft:()=>o.timeLeft(),...i.tapUpstream?{tapUpstream:e=>i.tapUpstream?.(L.parse(l(e)))}:{},onKey(e,t){d=e,c(t)}});o.stopTimer();let p=async e=>{try{o.resumeOperation();let t=await Wo(()=>qo(e,u),o.signal);return o.value(t),t}finally{o.close()}};return{keySlot:()=>d,complete:e=>Jo(()=>f.complete({...e,signal:o.signal}),u,o),decide:e=>p(()=>f.decide({...e,signal:o.signal})),embed:e=>p(()=>f.embed({...e,signal:o.signal})),async openSession(e){o.resumeOperation();let t=await Wo(()=>qo(()=>f.openSession({...e,signal:o.signal}),u),o.signal).catch(e=>{throw o.close(),e}).finally(()=>o.stopTimer());return{events:()=>Jo(()=>t.events(),u,o,!0),closeInfo:()=>{let e=t.closeInfo?.();return e&&{...e,...e.error?{error:Ko(e.error,u)}:{}}},sendText:e=>(o.startLiveStep(),qo(()=>t.sendText(e),u)),sendAudio:e=>qo(()=>t.sendAudio(e),u),sendVideo:e=>qo(()=>t.sendVideo(e),u),sendContext:e=>qo(()=>t.sendContext(e),u),sendToolResult:e=>(o.startLiveStep(),qo(()=>t.sendToolResult(e),u)),close:e=>(o.stopTimer(),qo(()=>t.close(e),u).finally(()=>o.dispose()))}}}}function Zo(e,t,n){let r=t.options??{},i=[...n.continuation?.keyOptions??[]].sort().map(e=>[e,r[e]??null]);return JSON.stringify({connection:e.connection??null,options:i})}function Qo(e,t,n){if(e?.history===`stateless`&&(t||n?.length))throw new H(`request`,W(`provider.stateless_history`))}async function $o(e,t,n,r,i={}){if(!n)return{};let a=Fe.parse(n),o=Ve(e,t),s=o.continuation,c;return a.protocol!==o.id||a.provider!==e.id?c=`provider_changed`:a.apiId===t.apiId?!s||a.version!==s.version?c=`version_changed`:a.compatibilityKey===Zo(e,t,o)?a.keySlot===ge(e,t).keySlot?(i.history===`provider`?r.length>0:a.coveredHistoryLength>r.length||a.coveredHistoryHash!==await wt(r.slice(0,a.coveredHistoryLength)))&&(c=`history_changed`):c=`key_changed`:c=`connection_changed`:c=`model_changed`,c?{warning:{code:`provider_state_rebuilt`,reason:c}}:{state:s?.schema.parse(a.data),covered:i.history===`provider`?0:a.coveredHistoryLength,...a.wireCallIds?{wireCallIds:a.wireCallIds}:{}}}async function es(e,t,n,r,i,a={}){if(r===void 0)return;let o=Ve(e,t),s=o.continuation;if(!s)throw new H(`bad_response`,W(`provider.continuation_contract`));return{protocol:o.id,provider:e.id,version:s.version,apiId:t.apiId,...n?{keySlot:n}:{},compatibilityKey:Zo(e,t,o),coveredHistoryLength:i.length,coveredHistoryHash:await wt(i),data:C.parse(s.schema.parse(r)),...Object.keys(a).length?{wireCallIds:a}:{}}}function ts(e,t){return e?.map(e=>{if(!e.reasoning)return e;let{reasoning:n,...r}=e,i=n.filter(e=>pt(e.origin.protocol,t));return i.length?{...r,reasoning:i}:r})}function ns(e,t){if(!e||!t)return e;let n=e=>t[e]??e;return e.map(e=>({...e,...e.tool_calls?{tool_calls:e.tool_calls.map(e=>({...e,id:n(e.id)}))}:{},...e.tool_call_id?{tool_call_id:n(e.tool_call_id)}:{}}))}function rs(e,t,n){let{providerState:r,tapUpstream:i,history:a,...o}=e,s=ns(ts(a,t),n.wireCallIds);return{...o,...s?{history:s}:{},...n.state===void 0?{}:{state:n.state,stateHistoryLength:n.covered}}}function is(e){let{wireCallId:t,...n}=e;return n}async function*as(e,t){let n={},r,i=!1,a=[],o=[],s=``,c,l=e[Symbol.asyncIterator](),u=!1;try{for(;;){let e=await Wo(()=>l.next(),t);if(e.done){u=!0;break}I(t);let d=e.value;if(r)throw new H(`bad_response`,W(`provider.events_after_completion`));switch(d.type){case`raw`:continue;case`text`:s+=d.text;break;case`structured`:c=d.structured;break;case`reasoning`:{let{type:e,...t}=d;o.push(t);break}case`tool_call`:if(a.some(e=>e.callId===d.call.callId))throw new H(`bad_response`,W(`provider.duplicate_call`));d.call.wireCallId&&(n[d.call.callId]=d.call.wireCallId),a.push(is(d.call));continue;case`tool_cancel`:throw new H(`bad_response`,W(`provider.tool_cancel_live`));case`error`:i=!0;break;case`done`:r=d;continue}yield d}}finally{!u&&l.return&&Promise.resolve(l.return()).catch(()=>void 0)}return{terminal:r,failed:i,pending:a,reasoning:o,text:s,...c===void 0?{}:{structured:c},wireCallIds:n}}function os(e,t,n,r,i,a={},o=[]){let s=Ve(e,t),c=i;return{async*complete(l){let u=c===i&&a.history===`provider`,d=await $o(e,t,c,u?o:l.history??[],u?a:{});d.warning&&(c=void 0,yield{type:`provider_warning`,warning:d.warning});let f=Xo(e,t,n,r,l),{terminal:p,failed:m,pending:h,reasoning:g,text:_,structured:v,wireCallIds:y}=yield*as(f.complete(rs(l,s,d)),l.signal);if(I(l.signal),!p){yield{type:`done`,stop:{kind:m?`provider_error`:`stream_incomplete`}};return}if(m||p.interrupted||p.stop.kind!==`tool`&&p.stop.kind!==`completed`){yield{type:`done`,stop:p.stop};return}let b=[...l.history??[]];l.input.length&&b.push(l.input.every(e=>e.type===`text`)?{role:`user`,content:l.input.map(e=>e.type===`text`?e.text:``).join(``)}:{role:`user`,parts:l.input});let x=await es(e,t,f.keySlot(),p.state,[...b,...Je({text:_,structured:v,calls:h.map((e,t)=>t===0?{...e,reasoning:g}:e)})],{...d.wireCallIds,...y});c=x;for(let e of h)yield{type:`tool`,tool:e};yield{type:`done`,stop:p.stop,providerState:x}}}}var ss=new Map;function cs(e){return typeof e==`object`&&!!e&&`write`in e&&typeof e.write==`function`}function ls(e,t){let n=e.trim();if(!n)throw new H(`config`,`registerTraceDestination requires a non-empty id`);if(!cs(t))throw new H(`config`,`Trace destination '${n}' must be a TraceSink`);ss.set(n,t)}function us(e){return ss.get(e)}function ds(e){let t=us(e);if(!t)throw new H(`config`,`Trace destination '${e}' is not registered`);return t}async function fs(e,t,n){try{await e.write(await t,{retainForDays:n.retainForDays,rotateAfterMiB:n.rotateAfterMiB})}catch(t){try{e.onError?.(t)}catch{}}}function ps(e,t,n,r){return fs(e,Ur({spans:t,policy:n,...r?{metadata:r}:{}}),n)}function ms(){return{write:()=>Promise.resolve()}}function hs(e,t){return!t&&!e.onError?e:{write:(t,n)=>e.write(t,n),onError:e.onError??t}}var gs=2**32;function _s(e,t){let n=e.spans[0]?.traceId??``;return Number.parseInt(n.slice(-8),16)/gs<t}function vs(e,t){return t>=1?e:t<=0?ms():{write:async(n,r)=>{_s(n,t)&&await e.write(n,r)},onError:e.onError}}function ys(e,t){return e===void 0||e===!1?ms():hs(typeof e==`string`?ds(e):e,t.onWriteError)}function bs(e){let t={...Vr(e.observability),detect:z(e.guardrails).detect};return e.override?{policy:t,sink:hs(e.override,t.onWriteError)}:t.record?{policy:t,sink:vs(ys(t.writeTo,t),t.sampleRate)}:{policy:t,sink:ms()}}async function xs({name:e,attributes:t,traceparent:n,metadata:r,writer:i},a){let o=En(e,{kind:`CLIENT`,attributes:t,...n?{traceparent:n}:{}}),{sink:s,policy:c}=bs(i);try{let e=await a(o.root);return o.root.end({code:`OK`}),e}catch(e){throw bt(o.root,e),e}finally{await ps(s,o.collect(),c,r)}}var Ss={invalid_request:`request`,authentication:`auth`,permission:`auth`,rate_limited:`rate_limit`,unavailable:`unavailable`,network:`network`,timeout:`timeout`,cancelled:`cancelled`,malformed_response:`bad_response`,disclosure_blocked:`blocked`},q=class extends H{code;status;constructor(e,t,n,r){super(Ss[e],t,r),this.code=e,this.status=n}};function Cs(e,t){let n=e.profiles.get(t);if(n.type!==`decision`)throw new H(`request`,`runDecision requires profile.type 'decision' (got '${n.type}' for ${n.id})`);return n}function ws(e){let t=Nn(e.models),n=t?e.models[t]:void 0;if(!t||!n)throw new H(`config`,`Profile ${e.id}: type 'decision' must declare exactly one model`);return[t,n]}function J(e,t,n=0,r=1){if(typeof e!=`number`||!Number.isFinite(e)||e<n||e>r)throw new q(`malformed_response`,`${t} is outside its valid range`);return e}function Ts(e,t,n){if(!G(e)||Object.keys(e).length!==t.length||t.some(t=>!Object.hasOwn(e,t)))throw new q(`malformed_response`,`${n} does not match declared labels`);let r=Object.create(null);for(let i of t)r[i]=J(e[i],`${n}.${i}`);let i=Object.values(r).reduce((e,t)=>e+t,0);if(Math.abs(i-1)>.001)throw new q(`malformed_response`,`${n} must sum to one`);return r}function Es(e,t){if(!G(e))throw new q(`malformed_response`,`${t} is invalid`);let n={top:J(e.top,`${t}.top`),bottom:J(e.bottom,`${t}.bottom`),left:J(e.left,`${t}.left`),right:J(e.right,`${t}.right`)};if(n.left>=n.right||n.top>=n.bottom)throw new q(`malformed_response`,`${t} has an edge out of order`);return n}function Ds(e,t,n){if(!G(e)||Object.keys(e).length!==t.length||t.some(t=>!Object.hasOwn(e,t))||Object.values(e).some(e=>typeof e!=`string`||!e.trim()))throw new q(`malformed_response`,`${n} is invalid`);return e}function Os(e,t){if(!G(e)||Object.keys(e).length!==Object.keys(t).length)throw new q(`malformed_response`,`Decision provider returned an incomplete answer set`);let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=e[r];if(!G(t)||t.type!==i.type)throw new q(`malformed_response`,`Decision provider returned an invalid answer for '${r}'`);if(i.type===`choice`){let e=Object.keys(i.criteria);if(typeof t.choice!=`string`||!e.includes(t.choice))throw new q(`malformed_response`,`Decision provider returned an undeclared choice for '${r}'`);n[r]={type:`choice`,choice:t.choice,confidence:J(t.confidence,`${r}.confidence`),probabilities:Ts(t.probabilities,e,`${r}.probabilities`)}}else if(i.type===`noul`)n[r]={type:`noul`,noul:J(t.noul,`${r}.noul`)};else if(i.type===`box`)n[r]={type:`box`,box:Es(t.box,`${r}.box`),confidence:J(t.confidence,`${r}.confidence`)};else{let e=i.criteria.map((e,t)=>String(t));n[r]={type:`score`,score:J(t.score,`${r}.score`,0,Math.max(0,e.length-1)),confidence:J(t.confidence,`${r}.confidence`),legend:Ds(t.legend,e,`${r}.legend`),probabilities:Ts(t.probabilities,e,`${r}.probabilities`)}}}return n}function ks(e){let t=new Set,n=[{value:e}];for(;n.length;){let e=n.pop();if(!e)break;let r=e.value;if(e.exit){t.delete(r);continue}if(r===null||typeof r==`string`||typeof r==`boolean`)continue;if(typeof r==`number`){if(!Number.isFinite(r))return!1;continue}if(typeof r!=`object`||t.has(r)||!Array.isArray(r)&&Object.getPrototypeOf(r)!==Object.prototype&&Object.getPrototypeOf(r)!==null||Object.getOwnPropertySymbols(r).length)return!1;t.add(r),n.push({value:r,exit:!0});let i=Array.isArray(r)?Array.from(r):Object.values(r);for(let e of i)n.push({value:e})}return!0}function As(e,t){if(!G(t)||!e.trim()||!Ls(t.instructions))throw new q(`invalid_request`,`Decision question '${e}' must include instructions`);if((t.type===`noul`||t.type===`box`)&&t.criteria===void 0)return;if(typeof t.type!=`string`||![`choice`,`noul`,`score`].includes(t.type)||(t.type===`score`?!Array.isArray(t.criteria):!G(t.criteria)))throw new q(`invalid_request`,`Decision question '${e}' has invalid criteria`);let n=Array.isArray(t.criteria)?t.criteria:Object.values(t.criteria);if(!n.length||!n.every(Ls))throw new q(`invalid_request`,`Decision ${t.type} '${e}' must declare criteria`)}function js(e,t){if(I(e.signal),e.model!==void 0)throw new q(`invalid_request`,`Decision requests do not select a model; the profile runs its one model`);if(e.state===null||!ks(e.state))throw new q(`invalid_request`,`Decision state must be non-null JSON`);let n;try{n=JSON.stringify(e.state)}catch{throw new q(`invalid_request`,`Decision state cannot be serialized as JSON`)}let r=new TextEncoder().encode(n).byteLength;if(t.inputs.maxStateBytes!==void 0&&r>t.inputs.maxStateBytes)throw new q(`invalid_request`,`Decision state exceeds ${t.inputs.maxStateBytes} bytes`);if(!G(e.questions)||!ks(e.questions)||Object.keys(e.questions).length===0)throw new q(`invalid_request`,`Decision request must declare at least one question`);for(let[t,n]of Object.entries(e.questions))As(t,n);e.assets!==void 0&&Is(e.assets);for(let[t,n]of Object.entries(e.questions))Ns(t,n,e.state,e.assets)}function Ms(e,t){let n=e;for(let e of t.split(`.`)){if(!G(n)&&!Array.isArray(n))return;n=Array.isArray(n)?n[Number(e)]:n[e]}return n}function Ns(e,t,n,r){if(!G(t)||t.image===void 0)return;let i=t.image,a=typeof i==`string`&&!r?.[i]?Ms(n,i):i;if(t.type!==`box`||typeof a!=`string`||r?.[a]===void 0)throw new q(`invalid_request`,`Decision question '${e}' has an image that is neither a held image nor a state field holding one`)}function Ps(e,t){if(e.type!==`box`||e.image===void 0)return e;let{image:n,instructions:r}=e,i=W(`decision.box_image`,{image:t?.[n]?n:`\`${n}\``});return{type:`box`,instructions:typeof r==`string`?`${r} ${i}`:[r,i]}}var Fs=/^[A-Za-z0-9+/]+={0,2}$/;function Is(e){if(!G(e)||Object.keys(e).length===0)throw new q(`invalid_request`,`Decision assets must name at least one image`);for(let[t,n]of Object.entries(e))if(!t.trim()||!G(n)||n.mimeType!==`image/png`&&n.mimeType!==`image/jpeg`||typeof n.data!=`string`||n.data.length%4!=0||!Fs.test(n.data))throw new q(`invalid_request`,`Decision asset '${t}' must be PNG or JPEG bytes as padded base64`)}function Ls(e){let t=[e];for(;t.length;){let e=t.pop();if(typeof e==`string`){if(!e.trim())return!1;continue}if(!G(e)&&!Array.isArray(e))return!1;let n=Object.values(e);if(!n.length)return!1;for(let e of n)t.push(e)}return!0}async function Rs(e,t,n,r){if((await e.guardrails?.disclosure?.enforce(r.state,{destination:n,profileId:e.id,model:t,questionIds:Object.keys(r.questions),...r.assets?{assets:r.assets}:{}}))?.action===`block`)throw new q(`disclosure_blocked`,`Decision disclosure was blocked`)}function zs(e,t,n,r){return{"gen_ai.operation.name":`decide`,"gen_ai.provider.name":n.provider,"gen_ai.agent.name":e.id,"gen_ai.request.model":n.apiId,"theorem.model.id":t,"theorem.decision.contract":e.decision.contract,"theorem.decision.state":U(r.state),"theorem.decision.questions":U(r.questions),...r.assets?{"theorem.decision.assets":U(Object.fromEntries(Object.entries(r.assets).map(([e,{mimeType:t,data:n}])=>[e,{mimeType:t,bytes:n.length}])))}:{}}}function Bs(e,t){e.set({"gen_ai.response.model":t.model,"theorem.decision.answers":U(t.answers),...t.usage?{"gen_ai.usage.input_tokens":t.usage.inputTokens,"gen_ai.usage.output_tokens":t.usage.outputTokens,...t.usage.costUsd===void 0?{}:{"theorem.usage.cost_usd":t.usage.costUsd}}:{}})}function Vs(e){if(e instanceof q)return e;let t=e instanceof H?e.kind:e instanceof TypeError?`network`:`bad_response`;return new q(t===`auth`&&G(e)&&e.status===403?`permission`:{auth:`authentication`,rate_limit:`rate_limited`,network:`network`,busy:`unavailable`,unavailable:`unavailable`,timeout:`timeout`,cancelled:`cancelled`,request:`invalid_request`,unsupported:`invalid_request`}[t]??`malformed_response`,e instanceof H?e.message:W(`provider.decision_failed`),G(e)&&typeof e.status==`number`?e.status:void 0,{cause:e})}async function Hs(e,t,[n,r],i,a){I(i.signal);let o=e.providers.require(r.provider,r.apiId);await Rs(t,n,r.provider,i),I(i.signal);try{let e=await Xo(o,r,`decision`,a,{...i.signal?{signal:i.signal}:{},...r.timeoutMs?{timeoutMs:r.timeoutMs}:{}}).decide({apiId:r.apiId,state:i.state,questions:Object.fromEntries(Object.entries(i.questions).map(([e,t])=>[e,Ps(t,i.assets)])),...i.assets?{assets:i.assets}:{}});if(typeof e.model!=`string`||!e.model.trim())throw new q(`malformed_response`,W(`provider.decision_model_missing`));return{...e,answers:Os(e.answers,i.questions)}}catch(e){throw i.signal?.aborted?new q(`cancelled`,W(`provider.decision_ended`)):Vs(e)}}async function Us(e,t,n){let r=Cs(e,t.profile);js(t,r);let i=ws(r),[a,o]=i;return await xs({name:`decide ${o.apiId}`,attributes:zs(r,a,o,t),traceparent:t.traceparent,metadata:t.metadata,writer:{override:n.sink,observability:r.observability,guardrails:r.guardrails}},async a=>{let o=await Hs(e,r,i,t,n);return Bs(a,o),o})}function Ws(e,t){let n=e.profiles.get(t);if(n.type!==`embedding`)throw new H(`request`,`runEmbedding requires profile.type 'embedding' (got '${n.type}' for ${t})`);return n}function Gs(e,t){let n=t??e.defaultModel;if(t&&!e.allowModelSelect)throw new H(`request`,`Profile ${e.id} does not allow model selection`);let r=e.models[n];if(!r)throw new H(`request`,`Unknown model '${n}' for ${e.id}`);return[n,r]}var Ks=[`query`,`document`];function qs(e){if(e!==void 0&&!Ks.includes(e))throw new H(`request`,`Embedding task must be 'query' or 'document'`)}function Js(e){return Array.isArray(e)?e:[e]}function Ys(e){return typeof e==`string`?[{type:`text`,text:e}]:e&&Array.isArray(e.parts)?e.parts:[]}function Xs(e,t,n,r){let i=Pn(e.inputs,r);if(i.maxInputs!==void 0&&n.length>i.maxInputs)throw new H(`request`,`Model '${t}' of ${e.id} takes at most ${i.maxInputs} inputs per request`);let a=[];for(let t of n){let n=Ys(t);if(n.length===0)throw new H(`request`,`Profile ${e.id} received an empty embedding input`);let r=[];for(let t of n)if(t.type===`text`){if(kn(t.text,`embedding input`),!i.text)throw new H(`unsupported`,`Profile ${e.id} does not accept text embedding input`)}else r.push(t.type===`media`?{mimeType:t.mimeType,sizeBytes:Un(t.data)}:{mimeType:t.mimeType});a.push(r)}let o=Qn(i,a);if(o.length>0)throw zn(o)}function Zs(e,t){if(!e.model.trim()||e.embeddings.length!==t)throw new H(`bad_response`,`Embedding provider returned an invalid vector count`);let n=e.embeddings.map((e,t)=>{if(e.index!==t||e.dimensions!==e.values.length||e.dimensions===0)throw new H(`bad_response`,`Embedding provider returned invalid vector metadata`);if(e.values.some(e=>!Number.isFinite(e)))throw new H(`bad_response`,`Embedding provider returned a non-finite vector value`);return e});return{...e,embeddings:n}}async function Qs(e,t,n={}){I(t.signal);let r=Ws(e,t.profile),[i,a]=Gs(r,t.model),o=Js(t.input);qs(t.task);let s=e.providers.require(a.provider,a.apiId);Xs(r,i,o,Ve(s,a).embeddingLimits?.(a.apiId));let c=Xo(s,a,`embedding`,n,{...t.signal?{signal:t.signal}:{}});return await xs({name:`embed ${a.apiId}`,attributes:{"gen_ai.operation.name":`embeddings`,"gen_ai.provider.name":a.provider,"gen_ai.agent.name":r.id,"gen_ai.request.model":a.apiId,"theorem.model.id":i,"theorem.embedding.inputs":o.length,...t.task?{"theorem.embedding.task":t.task}:{}},traceparent:t.traceparent,metadata:t.metadata,writer:{override:n.sink,observability:r.observability,guardrails:r.guardrails}},async()=>Zs(await c.embed({apiId:a.apiId,input:t.input,...t.task?{task:t.task}:{},...a.options?{options:a.options}:{},...t.signal?{signal:t.signal}:{}}),o.length))}function $s(e,t,n,r,i){let a=e.profiles.get(t);if(a.type===`host`)return ec(e,r);if(a.type===`decision`||a.type===`live`||a.type===`embedding`)throw new H(`unsupported`,W(`provider.turn_profile`));let o=a.models[n??a.defaultModel];if(!o)throw new H(`config`,W(`provider.model_binding_missing`));return Qo(a.providerContinuation,i?.providerState,i?.input?.history),{complete:os(e.providers.require(o.provider,o.apiId),structuredClone(o),a.type,r,i?.providerState,a.providerContinuation,i?.input?.history).complete,forProfile:(t,n,i)=>$s(e,t,n,r,i)}}function ec(e,t){return{complete(){throw new H(`unsupported`,W(`provider.host_model`))},forProfile:(n,r,i)=>$s(e,n,r,t,i)}}function tc(e,t,n,r){return`forProfile`in e&&typeof e.forProfile==`function`?e.forProfile(t,n,r):e}function nc(){let e=e=>Math.ceil(e.length/4),t=t=>{let n={tokens:0,unknownMedia:0};for(let r of t)r.type===`text`?n.tokens+=e(r.text):n.unknownMedia+=1;return n};return{text:e,parts:t,messages:n=>{let r={tokens:0,unknownMedia:0};for(let i of n){let n=t(ut(i));r.tokens+=n.tokens,r.unknownMedia+=n.unknownMedia;for(let t of i.tool_calls??[])r.tokens+=e(t.function.name)+e(t.function.arguments)}return r}}}function rc(){return Promise.resolve(nc())}function ic(e){return e.meter??`history`}function ac(e){let t=[];for(let n=0;n<e.length;n++)e[n].role===`user`&&t.push(n);return t}async function oc(e){if(e?.historyTokens!=null)return{tokens:e.historyTokens,unknownMedia:0};let t=e?.history??[];return t.length===0?{tokens:0,unknownMedia:0}:await(await rc()).messages(t)}async function sc(e){let t=ic(e.spec);if(t===`history`)return{meter:t,...await oc(e.input)};if(e.prompt&&e.prompt.input>0)return{meter:t,tokens:e.prompt.input,unknownMedia:e.prompt.unknownMedia?.input??0};let n=e.input?.inputTokens;if(!(n==null||n<=0))return{meter:t,tokens:n,unknownMedia:0}}function cc(e,t){return e>t.compactAt*t.maxTokens}async function lc(e,t){if(t.trigger){let n={tokens:e.tokens,maxTokens:t.maxTokens,compactAt:t.compactAt,meter:e.meter,unknownMedia:e.unknownMedia};return await t.trigger(n)}return cc(e.tokens,t)}async function uc(e,t){if(e.length===0)return{toCompact:[],toRetain:[]};if(t.previousExchanges===0)return{toCompact:[...e],toRetain:[]};let n=ac(e);if(n.length===0)return{toCompact:[...e],toRetain:[]};let r;if(t.previousExchanges>=1){let e=Math.min(t.previousExchanges,n.length);r=n[n.length-e]}else{let i=t.previousExchanges*t.maxTokens,a=await rc(),o=0;r=e.length;for(let t=n.length-1;t>=0;t--){let s=n[t],c=t<n.length-1?n[t+1]:e.length,l=e.slice(s,c),u=a.messages(l).tokens;if(o+u>i)break;o+=u,r=s}}return r<=0?{toCompact:[],toRetain:[...e]}:{toCompact:e.slice(0,r),toRetain:e.slice(r)}}function dc(e){return e.metadata?.compactionSummary===!0}function fc(e){return{type:`text`,text:e}}function pc(e,t){let n=t.labels,r=new Map,i=0,a=e=>(e??[]).filter(e=>e.type===`text`||at(t,e.mimeType)?!0:(i+=1,!1)),o=[];for(let t of e){for(let e of t.tool_calls??[])r.set(e.id,e.function.name);let e=a(t.parts);if(t.role===`tool`){let i=t.name??(t.tool_call_id?r.get(t.tool_call_id):void 0),a=t.content??``;o.push({role:`assistant`,parts:[fc(W(`compaction.tool_result`,{tool:i??``,result:a},n)),...e]});continue}let i=(t.tool_calls??[]).map(e=>fc(W(`compaction.tool_call`,{tool:e.function.name,arguments:e.function.arguments},n))),s=[...e,...i];(t.content||s.length!==0)&&o.push({role:t.role,...t.content?{content:t.content}:{},...s.length>0?{parts:s}:{},...t.name?{name:t.name}:{}})}return{history:o,droppedMedia:i}}function mc(e,t,n,r){let i={toCompact:e.toCompact,droppedMedia:t.droppedMedia,...t.tokens?{tokens:t.tokens}:{}};if(`summary`in t){let n={role:`assistant`,content:t.summary,metadata:{compactionSummary:!0}};return{...i,outcome:`compacted`,summary:t.summary,history:[n,...e.toRetain]}}return n>r.maxTokens?{...i,outcome:`dropped`,failure:t.failure,history:[...e.toCompact.filter(dc),...e.toRetain]}:{...i,outcome:`deferred`,failure:t.failure,history:[...e.toCompact,...e.toRetain]}}var hc={[wn.unscannable]:`egress.hint_unscannable`,[wn.providerToolLeak]:`egress.hint_provider_tool_leak`},gc=[Zt.canary_leak,Zt.prompt_leak],_c=3,vc=120,yc=`detect.`;function bc(e,t,n){let r=hc[e.rule];if(r)return W(r,{},n);let i=e.rule.startsWith(yc)?e.rule.slice(7):e.rule;if($t(i))return t.hints?.[i]??W(`detect.hint.${i}`,{},n);let a=t.host?.find(({id:e})=>e===i),o=a?.label??e.label??i;return a?.hint??W(`detect.hint.own`,{label:o},n)}function xc(e){let t=e.flatMap(({rule:e,match:t})=>t&&!gc.includes(e)?[t]:[]);return[...new Set(t)].slice(0,_c).map(e=>JSON.stringify(e.length>vc?e.slice(0,vc):e))}function Sc(e,t,n){let r=new Map;for(let t of e)r.set(t.rule,[...r.get(t.rule)??[],t]);let i=[...r.values()].map(e=>{let r=bc(e[0],t,n),i=xc(e);return i.length>0?W(`egress.rejection_found`,{hint:r,matches:i.join(`, `)},n):r});return W(`egress.rejection`,{found:i.join(`
|
|
5
|
+
`)},n)}function Cc(e){if(e.type!==`live`&&e.type!==`host`&&e.type!==`decision`&&e.type!==`embedding`)return e.outputs}var wc=[`inject`,`abort`,`deny`,`confirm`,`mutate`,`labelFailed`,`waitFor`],Tc=Object.freeze({pre_turn:Object.freeze([`inject`,`abort`]),pre_tool:Object.freeze([`abort`,`deny`,`confirm`,`mutate`,`waitFor`]),post_tool:Object.freeze([`inject`,`abort`,`deny`,`mutate`,`labelFailed`]),before_end:Object.freeze([`inject`,`abort`]),post_turn:Object.freeze([])}),Ec=new Set([...wc,`injectId`,`released`]);function Dc(e,t){return Tc[e].includes(t)}function Y(e,t,n,r){e.push({code:t,field:n,message:r})}function Oc(e,t){if(!G(e)){Y(t,`inject_invalid_messages`,`inject`,`inject entry must be an object`);return}if(e.role===`tool`){Y(t,`inject_invalid_messages`,`inject`,`inject messages with role "tool" are rejected`);return}if(e.role!==`user`&&e.role!==`assistant`&&e.role!==`system`){Y(t,`inject_invalid_messages`,`inject`,`inject role not allowed: ${String(e.role)}`);return}let n={role:e.role};if(e.content!==void 0){if(typeof e.content!=`string`){Y(t,`inject_invalid_messages`,`inject`,`inject content must be a string when present`);return}n.content=e.content}if(e.parts!==void 0){if(!Array.isArray(e.parts)){Y(t,`inject_invalid_messages`,`inject`,`inject parts must be an array when present`);return}n.parts=e.parts}if(e.tool_calls!==void 0){if(!Array.isArray(e.tool_calls)){Y(t,`inject_invalid_messages`,`inject`,`inject tool_calls must be an array when present`);return}n.tool_calls=e.tool_calls}if(e.name!==void 0){if(typeof e.name!=`string`){Y(t,`inject_invalid_messages`,`inject`,`inject name must be a string`);return}n.name=e.name}if(e.metadata!==void 0){if(!G(e.metadata)){Y(t,`inject_invalid_messages`,`inject`,`inject metadata must be a plain object`);return}n.metadata={...e.metadata}}return e.tool_call_id!==void 0&&Y(t,`inject_invalid_messages`,`inject`,`inject tool_call_id is rejected (not a tool-role message)`),n}function kc(e,t){if(!Array.isArray(e)){Y(t,`inject_invalid_messages`,`inject`,`inject must be an array of history messages`);return}let n=[];for(let r of e){let e=Oc(r,t);e&&n.push(e)}return n.length>0?n:void 0}function Ac(e,t){if(e!==void 0){if(typeof e==`number`&&Number.isInteger(e)&&e>=0)return e;Y(t,`inject_released_invalid`,`released`,`released must be a whole number of characters, 0 or more; ignored`)}}function jc(e,t){let n=kc(e.inject,t);if(!n)return;let r=Ac(e.released,t),i={messages:n,...r===void 0?{}:{released:r}};if(e.injectId===void 0)return i;if(typeof e.injectId==`string`&&e.injectId.trim())return{id:e.injectId,...i};Y(t,`inject_id_invalid`,`injectId`,`injectId must be a non-empty string; inject refused`)}function Mc(e,t,n){if(!(`inject`in e)||e.inject===void 0){e.injectId!==void 0&&Y(n.warnings,`inject_id_invalid`,`injectId`,`injectId without inject ignored`),e.released!==void 0&&Y(n.warnings,`inject_released_invalid`,`released`,`released without inject ignored`);return}let{stage:r,injectAllowed:i,injectWouldExceedMaxSteps:a}=t;if(!Dc(r,`inject`))Y(n.warnings,`affordance_not_allowed`,`inject`,`inject is not allowed at stage ${r}`);else if(!i)Y(n.warnings,`inject_not_allowed`,`inject`,`inject gate is closed for this profile/session`);else if(a)Y(n.warnings,`inject_rejected_max_steps`,`inject`,`inject rejected: another model step would exceed maxSteps`);else{let t=jc(e,n.warnings);t&&(n.inject=t)}}function Nc(e,t,n){if(`abort`in e&&e.abort!==void 0){if(!Dc(t,`abort`))Y(n.warnings,`affordance_not_allowed`,`abort`,`abort is not allowed at post_turn`);else if(e.abort===!0)n.abort=!0;else if(G(e.abort)){let t=typeof e.abort.reason==`string`&&e.abort.reason.trim()?e.abort.reason.trim():void 0;n.abort=!t||{reason:t}}else e.abort!==!1&&Y(n.warnings,`abort_invalid`,`abort`,`abort must be boolean or { reason?: string }`)}}function Pc(e,t,n){`deny`in e&&e.deny!==void 0&&(Dc(t,`deny`)?G(e.deny)?n.deny={code:typeof e.deny.code==`string`&&e.deny.code.trim()?e.deny.code.trim():`not_authorized`,message:typeof e.deny.message==`string`&&e.deny.message.trim()?e.deny.message.trim():`Tool execution not authorized`}:Y(n.warnings,`deny_invalid`,`deny`,`deny must be an object`):Y(n.warnings,`affordance_not_allowed`,`deny`,`deny is not allowed at stage ${t}`))}function Fc(e,t,n){`labelFailed`in e&&e.labelFailed!==void 0&&(Dc(t,`labelFailed`)?e.labelFailed===!0?n.labelFailed=!0:e.labelFailed!==!1&&Y(n.warnings,`label_failed_invalid`,`labelFailed`,`labelFailed must be true`):Y(n.warnings,`affordance_not_allowed`,`labelFailed`,`labelFailed is not allowed at stage ${t}`))}function Ic(e,t,n){if(`confirm`in e&&e.confirm!==void 0){if(!Dc(t,`confirm`))Y(n.warnings,`affordance_not_allowed`,`confirm`,`confirm is not allowed at stage ${t}`);else if(e.confirm===!0)n.confirm={};else if(G(e.confirm)){let t=typeof e.confirm.summary==`string`&&e.confirm.summary.trim()?e.confirm.summary.trim():void 0;n.confirm=t?{summary:t}:{}}else Y(n.warnings,`confirm_invalid`,`confirm`,`confirm must be true or { summary?: string }`)}}function Lc(e,t,n){`waitFor`in e&&e.waitFor!==void 0&&(Dc(t,`waitFor`)?!Array.isArray(e.waitFor)||!e.waitFor.every(e=>typeof e==`string`&&e.trim()!==``)?Y(n.warnings,`wait_for_invalid`,`waitFor`,`waitFor must be an array of call ids`):e.waitFor.length>0&&(n.waitFor=[...new Set(e.waitFor)]):Y(n.warnings,`affordance_not_allowed`,`waitFor`,`waitFor is not allowed at stage ${t}`))}var Rc={pre_tool:`input`,post_tool:`output`};function zc(e){return e in Rc?Rc[e]:void 0}function Bc(e,t,n){let{stage:r}=t;if(!(`mutate`in e)||e.mutate===void 0)return;if(!Dc(r,`mutate`)){Y(n.warnings,`affordance_not_allowed`,`mutate`,`mutate is not allowed at stage ${r}`);return}let i=zc(r);i?!G(e.mutate)||e.mutate[i]===void 0?Y(n.warnings,`mutate_invalid`,`mutate`,`mutate must be { ${i}: unknown } at stage ${r}`):t.mutable===!1?Y(n.warnings,`mutate_invalid`,`mutate`,`there is no ${i} to replace at this ${r} fire`):n.mutate=i===`input`?{input:e.mutate.input}:{output:e.mutate.output}:Y(n.warnings,`mutate_invalid`,`mutate`,`no mutate subject is defined at stage ${r}`)}function Vc(e){let t=[],n={warnings:t},{stage:r,result:i}=e;if(i==null)return n;if(!G(i))return Y(t,`result_invalid`,`result`,`StageResult must be a plain object`),n;for(let e of Object.keys(i))Ec.has(e)||Y(t,`unknown_field`,e,`unknown StageResult field "${e}" ignored`);return Mc(i,e,n),Nc(i,r,n),Pc(i,r,n),Ic(i,r,n),Bc(i,e,n),Fc(i,r,n),Lc(i,r,n),n.deny&&n.confirm&&(Y(t,`confirm_invalid`,`confirm`,`confirm ignored because deny is set`),delete n.confirm),n}function Hc(e,t){let n={type:`stage`,stage:e};return t&&(t.callId!==void 0&&(n.callId=t.callId),t.toolName!==void 0&&(n.toolName=t.toolName),t.callNotStarted!==void 0&&(n.callNotStarted=t.callNotStarted),t.awaiting!==void 0&&(n.awaiting=t.awaiting),t.gate!==void 0&&(n.gate=t.gate),t.stop!==void 0&&(n.stop=t.stop),t.injected!==void 0&&(n.injected=t.injected),t.released!==void 0&&(n.released=t.released)),n}function Uc(e){return e.flatMap(e=>e.messages)}function Wc(e,t,n){let r=t.flatMap(e=>e.id===void 0?[]:[{id:e.id}]);if(r.length!==0||n?.released!==void 0)return Hc(e,{...n,...r.length>0?{injected:r}:{}})}function Gc(e,t){return t===void 0||t<=0?!1:e>=t}function Kc(e,t){return t===`inject`?e.inject.length>0:!!e[t]}function qc(e){let t={warnings:e.flatMap(e=>e.warnings),inject:[]};for(let n of e)n.abort!==void 0&&(t.abort=n.abort),n.deny&&(t.deny=n.deny),n.confirm&&(t.confirm=n.confirm),n.mutate&&(t.mutate=n.mutate),n.labelFailed&&(t.labelFailed=!0),n.waitFor&&(t.waitFor=[...new Set([...t.waitFor??[],...n.waitFor])]),n.inject&&t.inject.push(n.inject);return t.deny&&t.confirm&&(Y(t.warnings,`confirm_invalid`,`confirm`,`confirm ignored because deny is set`),delete t.confirm),t}async function Jc(e,t,n,r){let i=[];for(let a of e){let e;try{e=await a({...t})}catch(e){throw I(r),e}I(r),i.push(Vc({...n,result:e}))}return i}async function*Yc(e){let{stage:t,step:n,history:r,handlers:i,guardrails:a,injectAllowed:o,injectWouldExceedMaxSteps:s,mutable:c,host:l,signal:u,span:d,...f}=e;if(I(u),yield Hc(t,{callId:f.callId,toolName:f.tool,callNotStarted:f.callNotStarted,awaiting:f.awaiting,gate:f.gate,stop:f.stop}),i.length===0)return d?.event(`theorem.stage`,{stage:t,affordance:[]}),{warnings:[],inject:[]};let p={stage:t,step:n,history:r,host:l,...f},m=d?.msSinceStart(),h=qc(await Jc(i,p,{stage:t,injectAllowed:o,injectWouldExceedMaxSteps:s,mutable:c},u));if(d?.event(`theorem.stage`,{stage:t,...m===void 0?{}:{hook_ms:d.msSinceStart()-m},affordance:wc.filter(e=>Kc(h,e)),...h.warnings.length>0?{warnings:h.warnings.map(e=>e.code)}:{}}),h.warnings.length>0&&(yield{...Hc(t,{callId:f.callId,toolName:f.tool}),stageWarnings:h.warnings}),h.inject.length===0)return h;let g=pn(`injected`,z(a).detect),_=h.inject.map(e=>({...e,messages:An(e.messages,g)})),v=g.found(),y=dn(`injected`,v);if(y&&(d?.event(`theorem.guardrail`,k(y)),yield K(y)),v.action===`block`)throw Jn(`injected`);return{...h,inject:_}}function Xc(e,t,n){if(e.currentHistory.push(...t),n!==void 0)for(let r of t)typeof r.content==`string`&&e.replyMessages.push({message:r,at:n})}function Zc(e){let t=e.flatMap(e=>e.released===void 0?[]:[e.released]);return t.length>0?Math.min(...t):void 0}function Qc(e,t){let n=[...e],r=t;for(let e=n.length-1;e>=0&&r>0;--e){let t=n[e];if(t?.type!==`text`)continue;let i=Math.max(0,t.text.length-r);r-=t.text.length-i,i===0?n.splice(e,1):n[e]={...t,text:t.text.slice(0,i)}}return n}function $c(e,t){if(t===void 0||t>=e.replyText.length)return;let n=e.replyText.length-t;e.replyText=e.replyText.slice(0,t),e.released=e.released.slice(0,Math.max(0,e.released.length-n)),e.attemptEvents=Qc(e.attemptEvents,n);let r=[];for(let{message:n,at:i}of e.replyMessages){let a=typeof n.content==`string`?n.content:``,o=a.slice(0,Math.max(0,t-i)),s=e.currentHistory.indexOf(n);if(!(s<0)){if(o){let t=o===a?n:{...n,content:o};e.currentHistory[s]=t,r.push({message:t,at:i})}else e.currentHistory.splice(s,1)}}return e.replyMessages=r,t}function*el(e,t,n,r){let i=Uc(n);if(i.length===0)return 0;let a=$c(e,Zc(n));e.currentHistory.push(...i);let o=Wc(t,n,{...r,...a===void 0?{}:{released:a}});return o&&(e.allEmittedEvents.push(o),yield o),i.length}async function*tl(e){let{profile:t,generation:n,state:r,onStage:i,host:a,reply:o,replyAt:s,...c}=e;I(c.signal);let l=Yc({...c,history:r.currentHistory,handlers:i?[i]:[],guardrails:t.guardrails,injectAllowed:Ee(t),host:a??n.host,span:r.trace.root}),u=await l.next();for(;!u.done;)r.allEmittedEvents.push(u.value),yield u.value,u=await l.next();let d=u.value;return o&&Uc(d.inject).length>0&&Xc(r,o,s),{abort:d.abort,injectCount:yield*el(r,c.stage,d.inject),warnings:d.warnings}}function nl(e,t){t.allEmittedEvents.push(e),t.attemptEvents.push(e)}function rl(e,t){if(t.length===0)return;let n=t.every(e=>e.type===`text`);e.currentHistory.push(n?{role:`user`,content:t.map(e=>e.type===`text`?e.text:``).join(``)}:{role:`user`,parts:[...t]})}function il(e){let{profile:t,generation:n}=e,r=mr(e.tools,t),i={tools:e.tools,trace:e.trace,currentHistory:[...n.history??[]],stepCount:0,resumes:0,toolResults:[],allEmittedEvents:e.allEmittedEvents??[],attemptEvents:[],released:``,replyText:``,replyMessages:[],givenUrls:rn(),destinations:gi(),canaryGiven:!1,canaryScanned:new WeakSet,...r?{ownTools:r}:{},...e.agents?{agents:e.agents}:{}};return t.type===`text`&&(rl(i,n.input),n.input=[]),i}function al(e,t,n={}){return t.map(t=>{if(e.get(t)?.type!==`builtin`)throw new H(`config`,`Builtin '${t}' is not registered`);let r=n[t];return r?{id:t,args:r}:{id:t}})}function ol(e,t,n){return{model:t.model,apiId:t.apiId,stream:t.stream,thinking:t.thinking,summaries:t.summaries,maxOutputTokens:t.maxOutputTokens,temperature:t.temperature,builtins:al(e,t.builtins,t.builtInArgs),sessionId:t.sessionId,system:n,input:t.input,history:t.history,wireTools:t.tools.wire,structured:t.structured,image:t.image,speech:t.speech,live:t.live}}var sl=t({accepted:L,preparedInput:C});function X(){let e=new H(`unavailable`,``);return e.message=oe(e),e}async function cl(e){let t=e=>Array.isArray(e)?e.map(t):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0).sort(([e],[t])=>e<t?-1:+(e>t)).map(([e,n])=>[e,t(n)])):e,n=C.parse(t(dl(e))),r=await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(JSON.stringify(n)));return Array.from(new Uint8Array(r),e=>e.toString(16).padStart(2,`0`)).join(``)}var ll=T.tool.transform((e,t)=>e.tool.phase===`complete`||e.tool.phase===`error`?{...e,tool:e.tool}:(t.addIssue({code:`custom`}),a)),ul=t({event:ll,effects:l([`not_started`,`completed`,`unknown`]),replay:t({modelResult:t({finding:f(),data:C.optional(),parts:s($e).optional(),modelText:f().optional(),provenance:fe.optional(),suspicious:s(E).optional()}).optional(),outputRaw:C.optional(),failure:t({code:f(),kind:Se,message:f(),error:f().optional(),details:C.optional()}).optional(),awaiting:i().optional(),denied:o(!0).optional(),callNotStarted:i().optional(),aborted:r([i(),t({reason:f().optional()})]).optional(),pendingInject:s(t({id:f().optional(),messages:s(N),released:d().int().nonnegative().optional()})).optional()})});function dl(e){let t=new Set,n=e=>{if(!e||typeof e!=`object`)return e;if(t.has(e))throw X();let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null||Object.hasOwn(e,`__proto__`))throw X();t.add(e);try{if(Array.isArray(e))return e.map(n);let t=Object.entries(Object.getOwnPropertyDescriptors(e));if(t.some(([,e])=>e.get||e.set))throw X();return Object.fromEntries(t.filter(([,e])=>e.enumerable&&e.value!==void 0).map(([e,t])=>[e,n(t.value)]))}finally{t.delete(e)}};return C.parse(n(e))}var fl=class{outcome;constructor(e){this.outcome=e}};function pl(e){return new H(`unavailable`,W(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`},cause:e})}var ml=class{coordinator;operation;accepted;signal;claim;committed=!1;writeFailed=!1;terminal;constructor(e,t,n,r){this.coordinator=e,this.operation=t,this.accepted=n,this.signal=r}async beginBody(e){I(this.signal);let t={...this.operation,invocation:{accepted:this.accepted,preparedInput:dl(e)}},n=await this.coordinator.begin(t);if(n.kind===`settled`)throw new fl(n.outcome);if(n.kind===`running`||n.kind===`uncertain`)throw pl();if(n.kind!==`acquired`||typeof n.claimToken!=`string`||!n.claimToken)throw X();return this.claim={...t,claimToken:n.claimToken},I(this.signal),this.claim}observe(e){if(e.type!==`tool`)return!0;if(e.tool.phase===`complete`||e.tool.phase===`error`)return this.terminal={...e,tool:e.tool},!1;if(this.claim&&e.tool.phase===`gate`)throw pl();return!0}async finish(e){if(e.gated){if(this.claim)throw pl();return}if(!this.terminal)throw X();let{modelResult:t,outputRaw:n,failure:r,awaiting:i,denied:a,callNotStarted:o,aborted:s,pendingInject:c}=e,l=this.claim?r?`unknown`:`completed`:`not_started`,u={event:this.terminal,effects:l,replay:{modelResult:t,outputRaw:n,failure:r,awaiting:i,denied:a,callNotStarted:o,aborted:s,pendingInject:c}};this.writeFailed=!0;let d=ul.parse(dl(u));return this.claim?await this.coordinator.settle(this.claim,d):await this.coordinator.settleNotStarted(this.operation,d),this.committed=!0,d.event}replay(e){let t=ul.parse(dl(e.outcome)),{operationId:n,callId:r,toolId:i}=this.operation;if(t.event.tool.operationId!==n||t.event.tool.callId!==r||t.event.tool.name!==i)throw X();return this.committed=!0,t}failure(e){return this.claim&&!this.committed?pl(e):e}async close(){this.claim&&!this.committed&&await this.coordinator.markUncertain(this.claim,this.writeFailed?`settlement_write_failed`:`execution_interrupted`)}};async function*hl(e,t,n,r,i,a){if(!e)return yield*i();let o=L.parse(dl(n)),s={...t,invocationHash:await cl(o)},c=new ml(e,s,o,r);I(r);let l=await e.lookup(s);if(I(r),l?.kind===`running`||l?.kind===`uncertain`)throw pl();if(l?.kind===`settled`){if(!a)throw X();let e=c.replay(new fl(l.outcome));return await a(e),I(r),yield e.event,e.replay}let u=i(e=>c.beginBody(e));try{for(;;){let e=await u.next();if(e.done){let t=await c.finish(e.value);return t&&(yield t),e.value}c.observe(e.value)&&(yield e.value)}}catch(e){if(e instanceof fl){if(!a)throw X();let t=c.replay(e);return await a(t),yield t.event,t.replay}throw c.failure(e)}finally{try{await c.close()}finally{await u.return({})}}}function*gl(e,t){t.kind===`progress`?yield B(e,{phase:`progress`,data:t.data}):t.kind===`draft`?yield B(e,{phase:`draft`,text:t.text}):t.kind===`trace`?yield B(e,{phase:`trace`,step:t.step}):t.kind===`artifact`?yield B(e,{phase:`artifact`,artifact:t.artifact}):t.kind===`warning`&&(yield B(e,{phase:`warning`,warning:t.warning}))}var _l=class{base;checks;drafts;constructor(e,t){this.base=e,this.checks=t,t?.drafts&&(this.drafts=new Xn(()=>vl(t)))}async*show(e){if(e.kind===`draft`)yield*this.draft(e.text);else if(!(e.kind===`progress`&&(yield*this.progressStops(e.data)))){if(e.kind===`artifact`){let t=yield*this.shown(e.artifact);t.shown&&(yield*gl(this.base,{...e,artifact:t.value}))}else if(e.kind===`trace`){let t=yield*this.shown(e.step);t.shown&&(yield*gl(this.base,{...e,step:t.value}))}else yield*gl(this.base,e)}}*end(){let e=this.drafts?.end();e&&(yield B(this.base,{phase:`draft`,text:e}))}async*draft(e){let t=await this.drafts?.read(e);t&&(yield B(this.base,{phase:`draft`,text:t}))}*shown(e){let t=this.checks;if(!t)return{shown:!0,value:e};let n=Ke(e,t.provenance,t.policy,t.shown);return n.event&&(yield{type:`guardrail`,guardrail:n.event}),`value`in n?{shown:!0,value:n.value}:{shown:!1}}*progressStops(e){let t=this.checks;if(!t)return!1;let{event:n,text:r}=Oe(``,e,t.provenance,t.policy,t.boundary,t.callableTools);return r!==void 0&&(n===void 0||n.action===`flag`)?!1:(n&&(yield{type:`guardrail`,guardrail:n}),!0)}};function vl(e){return Br(e.policy,{stage:`tool_result`,trust:`untrusted`,profileId:e.profileId,provenance:e.provenance},e.boundary,{callable:e.callableTools})}function yl(e){return typeof e?.granted==`boolean`}function bl(e){return e?.granted===!0}function xl(e){return e?.granted===!1}function Sl(e,t){return t?t.includes(`*`)||t.includes(e):!1}function Cl(e,t){let n=Tt(e.labels?.request,{input:t});return{access:e.access,...n?{request:n}:{}}}function wl(e,t,n,r,i){return t===`auto`||(t===`always_confirm`?r?.granted===!0:Sl(e,n))?null:{kind:`permission`,tool:e,permission:t,...i}}function Tl(e,t,n){return je(e,t,{policy:n.network,followRedirects:!1,resolveHost:n.resolveHost,...n.fetchFn?{fetchFn:n.fetchFn}:{}})}function El(e,t){if(typeof e!=`string`)throw Error(`OAuth ${t} is missing`);let n;try{n=new URL(e)}catch{throw Error(`OAuth ${t} "${e}" is not a URL`)}if(n.protocol!==`https:`||n.hash)throw Error(`OAuth ${t} "${e}" must be an https URL without a fragment`);return n}var Dl=/^[\x20\x21\x23-\x5B\x5D-\x7E]*$/;async function Ol(e){let t;try{t=await e.json()}catch{return``}if(!G(t))return``;let{error:n,error_description:r}=t;return typeof n!=`string`||!Dl.test(n)?``:typeof r==`string`&&Dl.test(r)?`: ${n} (${r})`:`: ${n}`}function kl(e,t){let n=e=>{throw Error(`Token response from ${t} ${e}`)};if(!G(e))return n(`is not a JSON object`);let r=e;(typeof r.access_token!=`string`||r.access_token.length===0)&&n(`has no access_token`),(typeof r.token_type!=`string`||r.token_type.toLowerCase()!==`bearer`)&&n(`has token_type "${String(r.token_type)}", not Bearer`);let i=r.expires_in;i!==void 0&&(typeof i!=`number`||!Number.isFinite(i)||i<0)&&n(`has an expires_in that is not a number of seconds`);for(let e of[`refresh_token`,`scope`])r[e]!==void 0&&typeof r[e]!=`string`&&n(`has a ${e} that is not a string`);return r}function Al(e){return e===void 0?[]:e.split(` `).filter(e=>e.length>0)}function jl(e,t,n){if(t.length===0)return;let r=Al(e).filter(e=>!t.includes(e));if(r.length>0)throw Error(`Token response from ${n} grants scopes that were not asked for: ${r.join(`, `)}`)}async function Ml(e,t,n,r,i){let{clientSecret:a,...o}=t,s=new URLSearchParams({...n,client_id:t.clientId,...a===void 0?{}:{client_secret:a},resource:t.resource}),c=await Tl(t.tokenEndpoint,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,Accept:`application/json`},body:s.toString()},e);if(!c.ok)throw Error(`${i?`Token refresh failed`:`Token exchange failed`} at ${t.tokenEndpoint} (HTTP ${c.status})${await Ol(c)}`);let l=kl(await c.json(),t.tokenEndpoint);return jl(l.scope,r,t.tokenEndpoint),{tokens:l,credential:{type:`oauth2`,...o,accessToken:l.access_token,refreshToken:l.refresh_token??i?.refreshToken,expiresAt:l.expires_in===void 0?void 0:Date.now()+l.expires_in*1e3,scope:l.scope??i?.scope??(r.length>0?r.join(` `):void 0)}}}function Nl(e){return El(e.tokenEndpoint,`token_endpoint`),El(e.resource,`resource`),Ml(e,{issuer:e.issuer,resource:e.resource,tokenEndpoint:e.tokenEndpoint,clientId:e.clientId,...e.clientSecret===void 0?{}:{clientSecret:e.clientSecret}},{grant_type:`refresh_token`,refresh_token:e.refreshToken,...e.scope?{scope:e.scope}:{}},Al(e.scope),{refreshToken:e.refreshToken,scope:e.scope})}function Pl(e,t){let n;try{n=new URL(e)}catch{return!1}if(n.origin!==t.origin)return!1;let r=n.pathname.replace(/\/$/,``);return t.pathname===r||t.pathname.startsWith(`${r}/`)||r===``}var Fl={now:Date.now,wait:Ua},Il=new WeakMap;function Ll(e){let t=Il.get(e);if(t)return t;let n={places:[],heldUntil:0,waiting:new Set};return Il.set(e,n),n}function Rl(e,t,n){e.places=e.places.filter(e=>e.opensAt>n);let r=e.places.length<t.requests?n:Math.min(...e.places.map(e=>e.opensAt));return Math.max(r,e.heldUntil)}async function zl(e,t,n,r){let i=new AbortController,a=()=>i.abort();e.waiting.add(a);try{await r.wait(t,n?AbortSignal.any([n,i.signal]):i.signal)}catch(e){if(n?.aborted||!i.signal.aborted)throw e}finally{e.waiting.delete(a)}}async function Bl(e,t,n,r=Fl){let i=Ll(e),a=r.now()+za;for(;;){let e=r.now(),o=Rl(i,t,e);if(o<=e){let e={opensAt:1/0};return i.places.push(e),{answered:n=>{let a=r.now();e.opensAt=a+t.windowMs;let o=n?.status===429?Ja(n.headers,a):void 0;o!==void 0&&(i.heldUntil=Math.max(i.heldUntil,a+o));for(let e of i.waiting)e()}}}if(o>a&&o!==1/0)return{full:!0,limit:t,opensInMs:o-e};if(e>=a)return{full:!0,limit:t,opensInMs:void 0};await zl(i,Math.min(o,a)-e,n,r)}}async function Vl(e,t){try{let n=await t;return e?.answered(n),n}catch(t){throw e?.answered(),t}}function Hl(e){return{handlers:[],profile:e.profile,step:e.turn?.step??1,history:()=>[],injectAllowed:!1,host:e.host,signal:e.signal}}async function*Ul(e){let{tool:t,ctx:n,base:r,stages:i}=e,a,o=bl(n.resume)&&n.resume?.edited===void 0&&n.resume?.gateKind!==`permission`&&n.resume?.gateKind!==`auth`;if(t.preTool&&!o&&(a=await t.preTool(e.input,n)??void 0),!i&&a===void 0)return{ok:!0,input:e.input};let s=yield*Wl({stages:i??Hl(n),toolName:t.name,callId:r.callId,input:e.input,toolPreTool:a,details:Cl(t,e.input)});if(!s.ok){if(s.kind===`gated`){if(`input`in s){let e=s.input,r=t.input.safeParse(Ar(e));if(!r.success)return{ok:!1,kind:`failed`,failure:{code:`invalid_input`,kind:`bad_response`,message:W(`tool.input_invalid_after_mutate`,{},n.profile.labels),details:r.error.flatten()}};s.gate={...s.gate,...Cl(t,r.data),preparedArguments:L.parse(dl(Ar(e)))}}yield Hc(`pre_tool`,{callId:r.callId,toolName:t.name,callNotStarted:!0,gate:s.gate}),yield B(r,{phase:`gate`,gate:s.gate})}return s}let c=s.mutated?t.input.safeParse(Ar(s.input)):void 0;if(c&&!c.success)return{ok:!1,kind:`failed`,failure:{code:`invalid_input`,kind:`bad_response`,message:W(`tool.input_invalid_after_mutate`,{},e.ctx.profile.labels),details:c.error.flatten()}};let l=await Gl(i,r.callId,t.name,s.waitFor,n.profile.labels);return l?{ok:!1,kind:`failed`,failure:l}:{ok:!0,input:c?c.data:s.input}}async function*Wl(e){let{stages:t,toolName:n,callId:r,input:i,toolPreTool:a,details:o}=e,s=yield*Yc({stage:`pre_tool`,step:t.step,history:t.history(),handlers:[...a===void 0?[]:[()=>a],...t.handlers],guardrails:t.profile.guardrails,injectAllowed:!1,host:t.host,signal:t.signal,span:t.span,callId:r,tool:n,input:i,...t.stepCalls?{stepCalls:t.stepCalls}:{}});if(s.abort)return{ok:!1,kind:`aborted`,aborted:s.abort};if(s.deny)return{ok:!1,kind:`failed`,failure:{...s.deny,kind:`blocked`},denied:!0};if(s.confirm)return{ok:!1,kind:`gated`,gate:{kind:`confirmation`,tool:n,...s.confirm.summary?{summary:s.confirm.summary}:{},...o},...s.mutate&&`input`in s.mutate?{input:s.mutate.input}:{}};let c=s.waitFor?{waitFor:s.waitFor}:{};return s.mutate&&`input`in s.mutate?{ok:!0,input:s.mutate.input,mutated:!0,...c}:{ok:!0,input:i,mutated:!1,...c}}async function Gl(e,t,n,r,i){if(!r)return;let a=e?.wait?await e.wait(t,r):{ok:!1,reason:`unknown`,callIds:[...r]};if(!a.ok)return{code:a.reason===`unknown`?`wait_unknown`:`wait_cycle`,kind:`request`,message:W(a.reason===`unknown`?`tool.wait_unknown`:`tool.wait_cycle`,{tool:n,calls:a.callIds.join(`, `)},i)}}async function*Kl(e){let{stages:t,toolName:n,callId:r,mutable:i,...a}=e,o=yield*Yc({...a,stage:`post_tool`,step:t.step,history:t.history(),handlers:t.handlers,guardrails:t.profile.guardrails,injectAllowed:t.injectAllowed,injectWouldExceedMaxSteps:t.injectWouldExceedMaxSteps,mutable:i,host:t.host,signal:t.signal,span:t.span,callId:r,tool:n});return{...o.abort===void 0?{}:{abort:o.abort},...o.deny?{deny:o.deny}:{},...o.mutate&&`output`in o.mutate?{mutate:o.mutate}:{},...o.labelFailed?{labelFailed:!0}:{},inject:o.inject}}async function*ql(e){yield Hc(`pre_tool`,{callId:e.callId,toolName:e.toolName,callNotStarted:!0,gate:e.gate});let t=e.gate.kind===`auth`?W(`sign_in.pending`,{service:e.gate.authChallenge.service},e.labels):void 0;return yield B(e.base,{phase:`gate`,gate:e.gate,...t?{readBack:t}:{}}),t}function Jl(e,t){if(!t)return e;let n=new URL(e);return n.searchParams.set(t.name,t.value),n}function Yl(e,t,n){let r=e.headerName??n.headerName,i=e.headerPrefix??n.headerPrefix;return{[r]:`${i}${t}`}}function Xl(e,t,n,r){return{kind:`auth`,tool:e,authChallenge:{slot:t.slot,authType:t.type,service:t.service,message:n,issuer:r?.issuer??t.preResolved?.issuer,resource:r?.resource??t.preResolved?.resource,requiredScopes:t.scopes}}}function Zl(e,t,n,r,i){return r===`gate`?{headers:{},unauthenticated:!0,gate:Xl(e,t,n,i)}:r===`fail`?{headers:{},unauthenticated:!0,failureMessage:n}:{headers:{},unauthenticated:!0,modelMessage:n}}function Ql(e,t){let n=t.type===`bearer`?t.token:t.key;if(e.queryParam!==void 0)return{headers:{},query:{name:e.queryParam,value:n}};if(t.type===`bearer`)return{headers:Yl(e,n,{headerName:`Authorization`,headerPrefix:`Bearer `})};let r=t.headerName??e.headerName??`Authorization`,i=t.headerPrefix??e.headerPrefix??``;return{headers:{[r]:`${i}${n}`}}}function $l(e,t){if(e.type!==`bearer`&&e.type!==`api_key`)return;let n=e.type===`bearer`?e.token:e.key;return{...Ql(t,e),secret:n}}var eu=new Map;function tu(e,t,n,r){let i=`${e.tokenEndpoint}\n${t}`,a=eu.get(i);if(a)return a;let o=Nl({refreshToken:t,tokenEndpoint:e.tokenEndpoint,clientId:e.clientId,resource:e.resource,scope:e.scope,issuer:e.issuer,...r===void 0?{}:{clientSecret:r},...n}).then(e=>e.credential);eu.set(i,o);let s=()=>eu.delete(i);return o.then(s,s),o}async function*nu(e,t,n,r,i,a,o){let s=t.slot,c={issuer:n.issuer,resource:n.resource};if(typeof n.resource!=`string`||n.resource.length===0)return Zl(e,t,`OAuth credential for '${e}' (slot: '${s}') does not name the resource it was issued for.`,o,c);let l=n,u=n.expiresAt!==void 0&&n.expiresAt<=Date.now()+3e4;if(u&&n.refreshToken){try{l=await tu(n,n.refreshToken,{network:rt(i),resolveHost:i.resolveHost},await r.clientSecret?.(n.clientId))}catch(n){return yield{...B(a,{phase:`progress`,data:{kind:`auth_token_refresh_failed`,slot:s}}),errorInternal:Ye(n)},Zl(e,t,`Failed to refresh OAuth token for '${e}' (slot: '${s}').`,o,c)}await r.set(s,l),yield B(a,{phase:`progress`,data:{kind:`auth_token_refreshed`,slot:s}})}else if(u)return Zl(e,t,`OAuth token expired for '${e}' (slot: '${s}') and no refresh token is available.`,o,c);return{headers:Yl(t,l.accessToken,{headerName:`Authorization`,headerPrefix:`Bearer `}),secret:l.accessToken,audience:n.resource}}async function*ru(e,t,n,r){if(!t)return{headers:{}};let i=n.credentials,a=i?await i.get(t.slot):void 0,o=t.onUnauthenticated??`gate`;return!i||!a?Zl(e,t,`Authentication required for '${e}' (auth slot: '${t.slot}').`,o):$l(a,t)||(a.type===`oauth2`?yield*nu(e,t,a,i,n,r,o):{headers:{}})}function iu(e,t){if(t===`.`||t===`..`)throw Error(`Path parameter "${e}" cannot be "${t}"`);return encodeURIComponent(t)}function au(e,t,n,r){Fn(e);let i=e,a=r?.pathParams??[];for(let e of a){let t=n[e];t!==void 0&&(i=i.replaceAll(`{${e}}`,iu(e,String(t))))}let o=i.match(/\{([a-zA-Z0-9_-]+)\}/);if(o)throw Error(`Missing required path parameter "${o[1]}" for endpoint "${e}"`);let s=new URL(i),c=r?.queryParams??[];for(let e of c){let t=n[e];t!==void 0&&s.searchParams.set(e,String(t))}if(t===`GET`)return{url:s.toString()};if(r?.bodyParam)return{url:s.toString(),body:JSON.stringify(n[r.bodyParam])};let l={},u=new Set([...a,...c]);for(let[e,t]of Object.entries(n))u.has(e)||(l[e]=t);return{url:s.toString(),body:JSON.stringify(l)}}function ou(e,t,n){if(e.includes(`application/json`)&&t.trim().length>0)try{return JSON.parse(t)}catch{return t}return t.trim().length===0&&n===204?null:t}function su(e,t){let n=e.safeParse(t);if(!n.success&&typeof t==`string`&&t.trim().length>0)try{let r=JSON.parse(t),i=e.safeParse(r);i.success&&(n=i)}catch{}return n}function cu(e){return{finding:typeof e==`string`?e:JSON.stringify(e)}}function lu(e,t){return t?.length?{...e,parts:t}:e}function Z(e,t){return{kind:`failed`,failure:e,callNotStarted:t}}async function*uu(e){let t=yield*Ul(e);return t.ok?t:t.kind===`aborted`?{kind:`aborted`,aborted:t.aborted}:t.kind===`gated`?{kind:`gated`,gate:t.gate}:{...Z(t.failure,!0),...t.denied?{denied:!0}:{}}}function du(e,t,n){let r=gt(e,t,n);if(!r.ok)return{ok:!1,outcome:Z(r.failure,!0)};let i=wl(e.name,e.permission,n.sessionPermissions,n.resume,Cl(e,r.data));return i?{ok:!1,outcome:{kind:`gated`,gate:i}}:{ok:!0,input:r.data}}function fu(e,t=!1){if(e.unauthenticated){if(e.gate)return{kind:`gated`,gate:e.gate};if(e.modelMessage)return{kind:`ok`,modelResult:{finding:e.modelMessage},outputRaw:{unauthenticated:!0,message:e.modelMessage}};if(e.failureMessage===void 0)throw Error(`An unauthenticated call carries a gate, a model message or a failure`);return Z({code:`not_authorized`,kind:`auth`,message:e.failureMessage},!t)}}function pu(e){return e.status===401||e.status===403?{status:e.status,challenge:e.headers.get(`www-authenticate`)}:void 0}var mu=/^[\x21\x23-\x5B\x5D-\x7E]+$/;function hu(e){let t=t=>e?.match(RegExp(`(?:^|[\\s,])${t}="([^"]*)"`,`i`))?.[1],n=(t(`scope`)??``).split(` `).filter(e=>mu.test(e)),r=t(`error`);return r===void 0?{scopes:n}:{error:r,scopes:n}}function gu(e){return e.status===401||hu(e.challenge).error===`insufficient_scope`}function*_u(e,t,n,r,i){let a=e.auth;if(!a||!t||!n)return;let o=a.onUnauthenticated??`gate`;if(t.status===401){let t=`The credential for '${e.name}' (slot: '${a.slot}') was refused.`;return fu(Zl(e.name,a,t,o),!0)}let s=hu(t.challenge);if(s.error!==`insufficient_scope`)return;let c=a.scopes??[],l=s.scopes;if(l.length>0&&l.every(e=>c.includes(e))){let t=`'${e.name}' needs scopes its credential (slot: '${a.slot}') does not carry.`;return fu(Zl(e.name,a,t,o),!0)}let u={kind:`auth_scope_refused`,slot:a.slot,requested:l,declared:c};return yield B(i,{phase:`progress`,data:u}),Z({code:`out_of_scope`,kind:`auth`,message:W(`sign_in.out_of_scope`,{service:a.service},r.profile.labels)},!1)}async function*vu(e){let t=yield*ru(e.tool.name,e.tool.auth,e.ctx,e.base),n=fu(t);if(n)return n;let r=yield*uu({tool:e.tool,input:e.input,ctx:e.ctx,base:e.base,stages:e.stages});return`ok`in r?{ok:!0,input:r.input,authHeaders:t.headers??{},...t.query?{query:t.query}:{},...t.secret?{secret:t.secret}:{},...t.audience?{audience:t.audience}:{}}:r}function*yu(e,t){if(ue(e)===`blocked`){let n=st();return t.record(n),Z(yield*Ne(e,n),!1)}return Z({code:`network_error`,kind:`network`,message:Ye(e)},!1)}var bu=`[omitted - credential]`,xu=4194304,Su=2e3;async function*Cu(e,t){let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)return await e.body?.cancel().catch(()=>{}),!1;if(!e.body)return yield await e.text(),!0;let r=e.body.getReader(),i=new TextDecoder,a=0;for(;;){let{done:e,value:n}=await r.read();if(e)break;if(a+=n.byteLength,a>t)return await r.cancel().catch(()=>{}),!1;let o=i.decode(n,{stream:!0});o&&(yield o)}let o=i.decode();return o&&(yield o),!0}async function wu(e,t=xu){let n=Cu(e,t),r=``;for(;;){let e=await n.next();if(e.done)return e.value?r:void 0;r+=e.value}}async function*Tu(e,t,n){let r=Cu(e,xu),i=n?n.length-1:0,a=``,o=``;for(;;){let e=await r.next();if(e.done)return e.value?(o&&(yield*t.show({kind:`draft`,text:o})),yield*t.end(),a):void 0;a+=e.value,o=n?Ou(o+e.value,n):o+e.value;let s=o.length-i;s<=0||(yield*t.show({kind:`draft`,text:o.slice(0,s)}),o=o.slice(s))}}function Eu(e){return e.length>Su?`${e.slice(0,Su)}…`:e}function Du(e){return{code:`response_too_large`,kind:`bad_response`,message:`Response from ${e} is larger than ${xu} bytes`}}function Ou(e,t){return e.replaceAll(t,bu)}function ku(e,t){return hn(e,e=>Ou(e,t))}function Au(e,t){return{...e,message:Ou(e.message,t),...e.details===void 0?{}:{details:ku(e.details,t)}}}function ju(e,t){if(!t)return e;if(e.kind===`ok`){let n=ku(e.outputRaw,t);return{kind:`ok`,outputRaw:n,modelResult:lu(cu(n),e.modelResult.parts)}}return e.kind===`failed`?{...e,failure:Au(e.failure,t)}:e}function Mu(e,t){if(e&&!Pl(e,t))return`The OAuth token for "${e}" cannot be sent to "${t.origin}${t.pathname}"`}async function*Nu(e,t,n){let r=Mu(e.audience,t);return r?Z({code:`credential_audience_mismatch`,kind:`config`,message:r},!0):ju(yield*n(Jl(t,e.query)),e.secret)}async function*Pu(e,t,n,r,i,a,o){let s=du(e,t,n);if(!s.ok)return s.outcome;let c=s.input,l=yield*vu({tool:e,input:c,ctx:n,base:r,stages:i});if(!(`ok`in l))return l;c=l.input;let u;try{u=au(e.endpoint,e.method,c,e.mapping)}catch(e){return Z({code:`invalid_input`,kind:`bad_response`,message:Ye(e)},!0)}let d=yield*dt(u.url,n,i?.span);return d.ok?(yield*h(e,c,n,r,a),yield*Nu(l,d.url,t=>Lu(e,t,u.body,l,n,r,i?.span,o))):Z(d.failure,!0)}function Fu(e){if(!e.ok)return!1;let t=e.headers.get(`content-type`)??``;return t===``||t.startsWith(`text/`)||/[/+]json\b/.test(t)}async function*Iu(e,t,n){return!t||!Fu(e)?await wu(e):yield*Tu(e,t,n)}async function*Lu(e,t,n,{authHeaders:r,secret:i},a,o,s,c){let l=Re(s),u={Accept:`application/json`};e.method!==`GET`&&(u[`Content-Type`]=`application/json`);let d;try{let s=e.limit?await Bl(e,e.limit,a.signal):void 0;if(s&&`full`in s)return Z(Zu(e,s),!1);d=e.timeoutMs===void 0?void 0:AbortSignal.timeout(e.timeoutMs);let f=d&&a.signal?AbortSignal.any([a.signal,d]):d??a.signal,p=await Vl(s,je(t.href,{method:e.method,headers:u,body:n,signal:f},{policy:rt(a),followRedirects:!0,...e.access===`read-only`?{fetchFn:Ya(fetch)}:{},originBoundHeaders:{...e.headers,...r},resolveHost:a.resolveHost,onCheck:l.onCheck})),m=yield*Iu(p,c,i);if(m===void 0)return Z(Du(t.hostname),!1);if(!p.ok)return(yield*_u(e,pu(p),i!==void 0,a,o))||Z({code:`http_${p.status}`,kind:Qu(p.status),message:`HTTP ${p.status} from ${t.hostname}: ${Eu(m)}`},!1);let h=ou(p.headers.get(`content-type`)??``,m,p.status),g=su(e.output,h);return g.success?{kind:`ok`,modelResult:cu(g.data),outputRaw:g.data}:Z({code:`invalid_output`,kind:`bad_response`,message:`HTTP response did not match tool output schema`,details:g.error.flatten()},!1)}catch(n){return e.timeoutMs!==void 0&&d?.aborted&&!a.signal?.aborted?Z(Ru(t.hostname,e.timeoutMs),!1):yield*yu(n,l)}finally{l.record()}}function Ru(e,t){return{code:`timeout`,kind:`timeout`,message:`${e} did not answer within ${t} ms`}}var zu=[`2026-07-28`,`2025-11-25`,`2025-06-18`,`2025-03-26`];function Bu(e){let t=e.trim();if(t.startsWith(`{`))return JSON.parse(t);let n=[];for(let t of e.split(`
|
|
6
|
+
`)){if(!t.startsWith(`data: `))continue;let e=t.slice(6).trim();if(e&&e!==`[DONE]`)try{n.push(JSON.parse(e))}catch{}}for(let e=n.length-1;e>=0;e--){let t=n[e];if(t.result!==void 0&&t.method===void 0)return t}let r=n.at(-1);if(!r)throw Error(`MCP server returned non-JSON response: ${e}`);return r}function Vu(e){if(!e)return!1;let t=e.message.toLowerCase();return t.includes(`unsupported protocol version`)||t.includes(`inconsistent mcp protocol version`)}function Hu(e){try{let t=Bu(e);if(t.error&&Vu(t.error))return t.error}catch{}if(e.toLowerCase().includes(`unsupported protocol version`))return{code:-32600,message:e}}async function Uu(e,t,n,r,i){let a={jsonrpc:`2.0`,id:t,method:`tools/call`,params:{name:n,arguments:r,_meta:{"io.modelcontextprotocol/protocolVersion":i,"io.modelcontextprotocol/clientCapabilities":{}}}},o=await je(e.url,{method:`POST`,headers:{...e.headers,"MCP-Protocol-Version":i,"Mcp-Method":a.method,"Mcp-Name":n},body:JSON.stringify(a),signal:e.signal},{policy:e.policy,followRedirects:!0,originBoundHeaders:e.originBoundHeaders,resolveHost:e.resolveHost,onCheck:e.onCheck}),s=await wu(o);if(s===void 0)return{kind:`failure`,failure:Du(new URL(e.url).hostname)};if(!o.ok){let t=Gu in e.originBoundHeaders;if(t&&o.status===404)return{kind:`session_expired`};if(!t&&o.status===400&&/mcp-session-id/i.test(s))return{kind:`session_required`};if(o.status===406&&s.toLowerCase().includes(`accept`)&&i!==zu.at(-1))return{kind:`retry`};let n=Hu(s);if(n)return{kind:`protocol_retry`,error:n};let r=pu(o);return{kind:`failure`,...r?{refusal:r}:{},failure:{code:`mcp_http_${o.status}`,kind:Qu(o.status),message:`MCP server error HTTP ${o.status}: ${Eu(s)}`}}}try{let e=Bu(s);return e.error&&Vu(e.error)?{kind:`protocol_retry`,error:e.error}:{kind:`rpc`,response:e}}catch{return{kind:`failure`,failure:{code:`invalid_response`,kind:`bad_response`,message:`MCP server returned non-JSON response: ${Eu(s)}`}}}}async function Wu(e,t,n,r){let i;for(let a of zu){let o=await Uu(e,t,n,r,a);if(o.kind===`retry`||o.kind===`protocol_retry`)o.kind===`protocol_retry`&&(i=o.error);else return o.kind===`failure`?{failure:o.failure,...o.refusal?{refusal:o.refusal}:{}}:o.kind===`rpc`?{rpc:o.response}:{sessionRequired:!0}}return{lastProtocolError:i}}var Gu=`Mcp-Session-Id`,Ku=`2025-11-25`,qu=class extends Error{failure;constructor(e){super(e.message),this.failure=e}};function Ju(e,t){return new qu({code:e,kind:`failed`,message:t})}async function Yu(e){let t=(t,n,r={})=>je(e.url,{method:`POST`,headers:{...e.headers,...n},body:JSON.stringify(t),signal:e.signal},{policy:e.policy,followRedirects:!1,originBoundHeaders:{...e.originBoundHeaders,...r},resolveHost:e.resolveHost,onCheck:e.onCheck}),n=await t({jsonrpc:`2.0`,id:`initialize`,method:`initialize`,params:{protocolVersion:Ku,capabilities:{},clientInfo:{name:`theorem`,version:`1`}}},{"Mcp-Method":`initialize`}),r=await wu(n);if(r===void 0)throw new qu(Du(new URL(e.url).hostname));if(!n.ok)throw Ju(`mcp_session_http_${n.status}`,`MCP server refused to open a session: HTTP ${n.status}: ${Eu(r)}`);let i=n.headers.get(Gu);if(!ir(i))throw Ju(`mcp_session_invalid`,`MCP server required a session but sent no usable session ID`);let a;try{a=Bu(r).result?.protocolVersion}catch{a=void 0}if(!zu.some(e=>e===a))throw Ju(`mcp_protocol_error`,`MCP server opened a session on a protocol version Theorem does not speak`);let o=String(a);return await(await t({jsonrpc:`2.0`,method:`notifications/initialized`},{"MCP-Protocol-Version":o,"Mcp-Method":`notifications/initialized`},{[Gu]:i})).body?.cancel().catch(()=>{}),{id:i,protocolVersion:o}}async function Xu(e,t,n,r,i){let a=i.cached;for(let o=0;o<2;o++){if(!a)try{a=await i.cache.open(i.key,()=>Yu(e))}catch(e){if(e instanceof qu)return{failure:e.failure};throw e}let o=await Uu({...e,originBoundHeaders:{...e.originBoundHeaders,[Gu]:a.id}},t,n,r,a.protocolVersion);if(o.kind===`session_expired`)i.cache.drop(i.key,a.id),a=void 0;else return o.kind===`rpc`?{rpc:o.response}:o.kind===`failure`?{failure:{...o.failure,message:o.failure.message.replaceAll(a.id,`[session]`)},...o.refusal?{refusal:o.refusal}:{}}:{lastProtocolError:o.kind===`protocol_retry`?o.error:void 0}}return{failure:{code:`mcp_session_expired`,kind:`failed`,message:`MCP server ended the session again right after it was reopened`}}}function Zu(e,t){let{requests:n,windowMs:r}=t.limit,i=t.opensInMs===void 0?`every one is still unanswered`:`the next place opens in ${Math.ceil(t.opensInMs)} ms`;return{code:`rate_limit_window`,kind:`rate_limit`,message:`${e.name} is at its limit of ${n} requests per ${r} ms; ${i}`}}function Qu(e){return e===401||e===402||e===403?`auth`:e===429?`rate_limit`:`failed`}function $u(e){if(e.type===`text`)return e.text;let t=e.resource;if(e.type===`resource`&&typeof t?.text==`string`)return t.text;if(e.type===`resource_link`&&typeof e.uri==`string`)return e.uri}function ed(e){if(e.type!==`image`&&e.type!==`audio`)return;let{data:t,mimeType:n}=e;if(typeof t==`string`&&t&&typeof n==`string`&&n.trim())return{type:e.type,mimeType:n,data:t}}function td(e,t){let n=Array.isArray(t?.content)?t.content:void 0,r=n?.flatMap(e=>ed(e)??[]),i=r?.length?{parts:r}:{},a;if(t?.structuredContent!==void 0){let n=e.output.safeParse(t.structuredContent);if(n.success)return{checked:n,...i};a=nd(n.error.issues)}let o=n?n.flatMap(e=>$u(e)??[]).join(`
|
|
7
|
+
`):t;return{checked:su(e.output,o),...i,...a?{warning:a}:{}}}function nd(e){let t=e.slice(0,3).map(e=>`${e.path.map(String).join(`.`)||`(root)`}: ${e.message}`),n=e.length>3?` (+${String(e.length-3)} more)`:``;return{code:`mcp_structured_mismatch`,severity:`warning`,message:`structuredContent does not match the output schema, so the text content was used. ${t.join(`; `)}${n}`}}function rd(e){if(e.error)return{code:`mcp_rpc_error_${e.error.code}`,kind:`failed`,message:e.error.message,details:e.error.data};let t=e.result;if(t?.isError)return{code:`mcp_tool_execution_failed`,kind:`failed`,message:t.content?.map(e=>e.text??``).join(`
|
|
8
|
+
`)??`MCP Tool execution error`}}function id(e,t){if(t.failure)return{ok:!1,failure:t.failure};let n=t.rpc;if(!n)return{ok:!1,failure:{code:`mcp_protocol_error`,kind:`failed`,message:t.lastProtocolError?.message??`MCP protocol negotiation failed`,details:t.lastProtocolError?.data}};let r=rd(n);if(r)return{ok:!1,failure:r};let{checked:i,parts:a,warning:o}=td(e,n.result),s=o?{warning:o}:{};return i.success?{ok:!0,data:i.data,...a?{parts:a}:{},...s}:{ok:!1,failure:{code:`invalid_output`,kind:`bad_response`,message:`MCP output schema validation failed`,details:i.error.flatten()},...s}}async function*ad(e,t,n,r,i,a=Bn(),o){let s=du(e,t,n);if(!s.ok)return s.outcome;let c=yield*dt(e.serverUrl,n,i?.span);if(!c.ok)return Z(c.failure,!0);let l=yield*vu({tool:e,input:s.input,ctx:n,base:r,stages:i});return`ok`in l?(yield*h(e,l.input,n,r,o),yield*Nu(l,c.url,t=>od(e,t,l.input,l,n,r,i?.span,a))):l}async function*od(e,t,n,{authHeaders:r,secret:i},a,o,s,c){let l=Re(s);try{let s={url:t.href,headers:{"Content-Type":`application/json`,Accept:`application/json, text/event-stream`},originBoundHeaders:{...e.headers,...r},policy:rt(a),resolveHost:a.resolveHost,signal:a.signal,onCheck:l.onCheck},u=await rr(t.href,s.originBoundHeaders),d=c.get(u),f=d?await Xu(s,o.callId,e.mcpToolName,n,{cache:c,key:u,cached:d}):await Wu(s,o.callId,e.mcpToolName,n),p=f.sessionRequired?await Xu(s,o.callId,e.mcpToolName,n,{cache:c,key:u}):f,m=yield*_u(e,p.refusal,i!==void 0,a,o);if(m)return m;let h=id(e,p);return h.warning&&(yield B(o,{phase:`warning`,warning:h.warning})),h.ok?{kind:`ok`,modelResult:lu(cu(h.data),h.parts),outputRaw:h.data}:Z(h.failure,!1)}catch(e){return yield*yu(e,l)}finally{l.record()}}var sd=class extends Error{refusal;constructor(e){super(`The service refused the credential (HTTP ${e.status}).`),this.name=`CredentialRefusedError`,this.refusal=e}};function cd(e,t,n){return async(r,i={})=>{let a=new URL(r),o=Mu(e.audience,a);if(o)throw new H(`config`,o);let s=await je(Jl(a,e.query).href,{method:i.method??`GET`,headers:i.headers,body:i.body,signal:t.signal},{policy:rt(t),followRedirects:!0,originBoundHeaders:e.authHeaders,resolveHost:t.resolveHost,onCheck:n.onCheck}),c=pu(s);if(c&&gu(c))throw await s.body?.cancel(),new sd(c);return s}}function ld(e,t){return e.type===`agent`?fr(t.findProfile(e.profile)):e.type===`http`?`http`:e.type===`mcp`?`mcp`:e.type===`builtin`?`builtin`:`local`}function ud(e){return e.type===`builtin`?void 0:e.type}function dd(e,t){let n=e.get(t),r=n?ud(n):`function`;return r&&Nt(`tool_arguments`,r)}function fd(e,t){let n=ld(e,t);return{origin:n,tool:e.name,depth:n===`delegated`?2:1}}function pd(e){return typeof e==`function`&&Object.prototype.toString.call(e)===`[object AsyncGeneratorFunction]`}var md=new Set([`image`,`audio`,`video`,`document`]);function hd(e){if(!Array.isArray(e)||e.length===0)return;let t=[];for(let n of e)G(n)&&typeof n.type==`string`&&(n.type===`text`&&typeof n.text==`string`?t.push({type:`text`,text:n.text}):md.has(n.type)&&typeof n.mimeType==`string`&&n.mimeType.trim()&&typeof n.data==`string`&&n.data.length>0&&t.push({type:n.type,mimeType:n.mimeType,data:n.data}));return t.length>0?t:void 0}function gd(e){if(!G(e))return e;let{parts:t,...n}=e;return n}async function*_d(e,t,n,r){if(pd(e)){let i,a=e(t,n);for await(let e of a)I(n.signal),e.kind===`complete`?i=e.output:yield*r.show(e);return yield*r.end(),i}let i=await e(t,n);return i instanceof tr?i.value:i}function vd(e,t,n){if(e.exposeToModel===!1)return{finding:W(`tool.completed_hidden`,{},n)};if(_(t))return{finding:W(`tool.awaiting_user`,{kind:t.kind,prompt:t.prompt},n),data:gd(t)};let r=G(t)&&`parts`in t?hd(t.parts):void 0,i=gd(t),a=G(i)&&`finding`in i,{finding:o,...s}=a?i:{};return{...a?{finding:String(o),...Object.keys(s).length>0?{data:s}:{}}:cu(i),...r?{parts:r}:{}}}function yd(e,t){return Mn(t.profile)?.t2Loader===e.name}function bd(e,t,n,r,i){if(!yd(t,r))return{ok:!0,output:n};if(!i)return{ok:!1,failure:{code:`invalid_output`,kind:`bad_response`,message:W(`tool.t2_loader_needs_snapshot`,{tool:t.name},r.profile.labels)}};let a=Rr(n);if(!a)return{ok:!1,failure:{code:`invalid_output`,kind:`bad_response`,message:W(`tool.t2_loader_shape`,{tool:t.name},r.profile.labels)}};let{promoted:o,failure:s}=Ir(e,i,a,r.profile);if(s)return{ok:!1,failure:s};let c={...n,loaded:o},l=t.output.safeParse(c);return l.success?{ok:!0,output:l.data}:{ok:!1,failure:{code:`invalid_output`,kind:`bad_response`,message:W(`tool.t2_loader_output_invalid`,{},r.profile.labels),details:l.error.flatten()}}}function*xd(e,t,n){if(e.deny){let n={code:e.deny.code,kind:`blocked`,message:e.deny.message};return{failure:n,outputRaw:void 0,modelResult:(yield*t.failure(n)).modelResult,awaiting:!1}}if(!e.mutate||!n)return;let r=n(Ar(e.mutate.output));if(!r.ok)return{failure:r.failure,outputRaw:void 0,modelResult:(yield*t.failure(r.failure)).modelResult,awaiting:!1};let i=yield*t.result(r.modelResult);return i.withheld?{failure:i.withheld,outputRaw:void 0,modelResult:i.modelResult,awaiting:!1}:{outputRaw:r.outputRaw,modelResult:i.modelResult,awaiting:_(r.outputRaw)}}function Sd(e,t,n){return Tt(e?.activityPast,{input:t,output:n})}function Cd(e,t){let{input:n,outputRaw:r,modelResult:i}=t,a=t.labelFailed?mt(e):Sd(t.labels,n,r);return B(e,{phase:`complete`,output:r,readBack:Ge(i),...i.parts?.length?{parts:i.parts}:{},...a?{activityPast:a}:{}})}async function*wd(e){let{base:t,toolName:n,callId:r,input:i,stages:a,provisional:o,guard:s,reproject:c,sources:l}=e,u=yield*`failure`in o?s.failure(o.failure):s.result(o.modelResult),d=u.modelResult,f=`failure`in o?o.failure:u.withheld,p=`outputRaw`in o&&!f?o.outputRaw:void 0,m=`callNotStarted`in o?o.callNotStarted:void 0,h=`denied`in o?o.denied:void 0,g=!f&&_(p),v;if(a){let o=f?void 0:Sd(e.labels,i,p);v=yield*Kl({stages:a,toolName:n,callId:r,input:i,callNotStarted:m,outputRaw:p,outputModel:d,...o?{activityPast:o}:{},activityFailed:mt(t),failure:f,awaiting:g||void 0,mutable:!f&&c!==void 0});let l=yield*xd(v,s,c);l&&({failure:f,outputRaw:p,modelResult:d,awaiting:g}=l,v.deny&&(h=!0))}return!f&&l&&(yield*tt(t,l,p)),yield f?R(t,{...f,message:String(yield*s.shown(f.message))},Ge(d)):Cd(t,{input:i,outputRaw:yield*s.shown(p),modelResult:d,labels:e.labels,...v?.labelFailed?{labelFailed:!0}:{}}),{modelResult:d,...f?{failure:f}:{outputRaw:p},...h?{denied:h}:{},...m?{callNotStarted:!0}:{},...g?{awaiting:!0}:{},...Td(v)}}function Td(e){return{...e?.abort===void 0?{}:{aborted:e.abort},...e?.inject.length?{pendingInject:e.inject}:{}}}function Ed(e,t,n,r,i){return wd({base:t,toolName:i.toolName,callId:i.callId,input:i.input,stages:r,guard:e,provisional:{failure:n,...i.callNotStarted?{callNotStarted:!0}:{},...i.denied?{denied:!0}:{}}})}function Dd(e,t,n,r,i){let a=fd(t,e),o=z(n.profile.guardrails),s=r?.executable??[],c={provenance:a,policy:o,kind:ud(t),callableTools:s,labels:n.profile.labels,span:i},{kind:l}=c,u=e=>l&&{profileId:n.profile.id,provenance:a,policy:o,boundary:Nt(`tool_output`,l),shown:Nt(`tool_shown`,l),callableTools:s,drafts:e},d=e=>of(e,c),f=bl(n.resume)?Ud(t,n.resume):void 0;if(!f)return{result:e=>af(e,c),failure:e=>nf(e,c),handlerEvents:u,shown:d};let p=W(`sign_in.done`,{service:f},n.profile.labels);return{result:e=>Od(p,af(e,c)),failure:e=>Od(p,nf(e,c)),handlerEvents:u,shown:d}}function*Od(e,t){let n=yield*t,r=`${e}\n\n${Ge(n.modelResult)}`;return{...n,modelResult:{...n.modelResult,modelText:r}}}async function*kd(e){let{tool:t,base:n,stages:r,guard:i}=e,a=yield*Ul(e);return a.ok?a:a.kind===`aborted`?{aborted:a.aborted,callNotStarted:!0}:a.kind===`gated`?{gated:a.gate,callNotStarted:!0}:yield*Ed(i,n,a.failure,r,{toolName:t.name,callId:n.callId,input:e.input,callNotStarted:!0,...a.denied?{denied:!0}:{}})}function Ad(e,t,n){return r=>{let i=e(r);return i.success?{ok:!0,outputRaw:i.data,modelResult:t(i.data)}:{ok:!1,failure:{code:`invalid_output`,kind:`bad_response`,message:W(`tool.output_invalid_after_mutate`,{},n),details:i.error.flatten()}}}}async function*jd(e,t,n){if(!e.auth)return{};let r=yield*ru(e.name,e.auth,t,n),i=fu(r);return i?{outcome:i}:{prepared:{authHeaders:r.headers,...r.query?{query:r.query}:{},...r.audience?{audience:r.audience}:{}},...r.secret?{secret:r.secret}:{}}}function Md(e){return{code:`handler_error`,kind:e instanceof H?e.kind:`failed`,message:Ye(e)}}function Nd(e,t){return e.answeredBy===`page`&&t.page===void 0&&!t.pageExecution}async function*Pd(e,t,n,r){let i=t.pageExecution;if(e.answeredBy!==`page`||!i)return t;if(!n?.invocation)throw X();let a=L.parse(dl(n.invocation.preparedInput)),o=await i.dispatch(n,t.signal);if(I(t.signal),!o.grantId)throw X();return yield B(r,{phase:`dispatch`,grantId:o.grantId,arguments:a}),t={...t,page:await o.result},I(t.signal),t}async function*Fd(e,t,n,r,i,a,o,s,c){let l=Dd(e,s??t,r,a,o?.span),u=i.callId,d=gt(t,n,r);if(!d.ok)return yield*Ed(l,i,d.failure,o,{toolName:t.name,callId:u,callNotStarted:!0});let f=d.data,p=wl(t.name,t.permission,r.sessionPermissions,r.resume,Cl(t,f));if(p)return yield*ql({base:i,gate:p,callId:u,toolName:t.name,labels:r.profile.labels}),{gated:p,callNotStarted:!0};I(r.signal);let m=e=>Vd({outcome:e,tool:t,base:i,callId:u,safeInput:f,stages:o,guard:l,labels:r.profile.labels}),g=yield*jd(t,r,i);if(g.outcome)return yield*m(g.outcome);let _=yield*kd({tool:t,input:f,ctx:r,base:i,stages:o,guard:l});if(!(`ok`in _))return _;if(f=_.input,Nd(t,r)){let e={kind:`page`,tool:t.name,...Cl(t,f)};return yield*ql({base:i,gate:e,callId:u,toolName:t.name,labels:r.profile.labels}),{gated:e,callNotStarted:!0}}I(r.signal);let v=yield*h(t,f,r,i,c);r=yield*Pd(t,r,v,i);let{secret:y}=g,b=e=>Ed(l,i,y?Au(e,y):e,o,{toolName:t.name,callId:u,input:f}),x=Re(o?.span),S=g.prepared?{...r,signedInFetch:cd(g.prepared,r,x)}:r,C;try{let e=new _l(i,l.handlerEvents(o?.drafts===!0));C=yield*_d(t.handler,f,S,e),x.record()}catch(e){if(s){if(e instanceof ar)return yield*b(e.failure);throw e}if(g.prepared&&e instanceof sd){x.record();let n=yield*_u(t,e.refusal,g.secret!==void 0,r,i);if(n)return yield*m(n)}if(g.prepared&&ue(e)===`blocked`){let t=st();return x.record(t),yield*b(yield*Ne(e,t))}return yield*b(Md(e))}if(y&&(C=ku(C,y)),C===void 0)return yield*b({code:`invalid_output`,kind:`bad_response`,message:W(`tool.handler_no_output`,{},r.profile.labels)});let w=t.output.safeParse(C);if(!w.success)return yield*b({code:`invalid_output`,kind:`bad_response`,message:W(`tool.output_invalid`,{},r.profile.labels),details:w.error.flatten()});let T=bd(e,t,w.data,r,a);if(!T.ok)return yield*b(T.failure);let E=yd(t,r);return yield*wd({base:i,toolName:t.name,callId:u,input:f,stages:o,guard:l,provisional:{outputRaw:T.output,modelResult:vd(t,T.output,r.profile.labels)},sources:t.sources,labels:t.labels,...E?{}:{reproject:Ad(e=>t.output.safeParse(e),e=>vd(t,e,r.profile.labels),r.profile.labels)}})}function Id(e,t){let n=Mn(t)?.t2Loader;return e.loadTier===`T2`&&n?W(`tool.not_loaded_t2`,{tool:e.name,loader:n},t.labels):W(`tool.not_visible`,{tool:e.name},t.labels)}function Q(e){return{failure:e,callNotStarted:!0,modelResult:qe(e)}}async function*Ld(e,t,n,r){if(yield B(n,{phase:`running`}),I(t.signal),!r.builtins.includes(e.name)){let r={code:`not_loaded`,kind:`request`,message:W(`tool.builtin_not_enabled`,{tool:e.name},t.profile.labels)};return yield R(n,r),Q(r)}let i={code:`provider_native`,kind:`request`,message:W(`tool.provider_native`,{tool:e.name},t.profile.labels)};return yield R(n,i),Q(i)}function Rd(e){let{tool:t,profile:n,name:r,resume:i,snapshot:a}=e;if(!Lr(n).includes(r))return{code:`not_allowed`,kind:`blocked`,message:W(`tool.not_allowed`,{tool:r,profile:n.id},n.labels)};if(!a)return;let o=yl(i);if(!o&&!a.gated.includes(r))return{code:`not_gated`,kind:`request`,message:W(`tool.not_eligible`,{tool:r},n.labels)};if(!(e.visible??a.visible).includes(r)&&!(o&&t.loadTier===`T0`))return{code:`not_loaded`,kind:`request`,message:Id(t,n)}}function zd(e){let t=e.tools.get(e.name);if(!t||t.type===`builtin`)throw new H(`blocked`,W(`error.blocked`));let n=Rd({...e,tool:t});if(n)throw new H(n.kind,n.message);e.outcome&&Bd(e,t,e.outcome)}function Bd(e,t,n){let r=()=>new H(`blocked`,W(`detect.output_blocked`,{},e.profile.labels)),i=n.replay.modelResult;if(t.type===`function`&&t.exposeToModel===!1&&i?.finding!==W(`tool.completed_hidden`,{},e.profile.labels))throw r();let a=Oe(n.event.tool.readBack??``,{event:n.event,output:n.replay.outputRaw},fd(t,e.tools),z(e.profile.guardrails),t.type===`builtin`?void 0:Nt(`tool_output`,t.type),e.snapshot?.executable??[],e.profile.labels);if(a.event?.action===`block`||a.event?.action===`redact`)throw r()}async function*Vd(e){let{outcome:t,tool:n,base:r,callId:i,safeInput:a,stages:o,guard:s,labels:c}=e,l=n.name;if(t.kind===`gated`){if(t.gate.kind===`confirmation`)return{gated:t.gate,callNotStarted:!0};let e=yield*ql({base:r,gate:t.gate,callId:i,toolName:l,labels:c});return{gated:t.gate,callNotStarted:!0,...e?{gateReadBack:e}:{}}}return t.kind===`aborted`?{aborted:t.aborted,callNotStarted:!0}:t.kind===`failed`?yield*Ed(s,r,t.failure,o,{toolName:l,callId:i,input:a,callNotStarted:t.callNotStarted,...t.denied?{denied:!0}:{}}):yield*wd({base:r,toolName:l,callId:i,input:a,stages:o,guard:s,provisional:{outputRaw:t.outputRaw,modelResult:t.modelResult},sources:n.sources,labels:n.labels,reproject:Ad(e=>su(n.output,e),e=>lu(cu(e),t.modelResult.parts),c)})}function Hd({modelResult:e}){return e?{text:Ge(e),parts:e.parts}:void 0}function Ud(e,t){if(t?.signIn&&e.type!==`builtin`&&e.type!==`agent`)return e.auth?.service}function Wd(e,t,n){return t?{code:`expired`,kind:`cancelled`,message:W(`sign_in.expired`,{service:t},n)}:{code:`cancelled`,kind:`cancelled`,message:W(`session.abandon_gated`,{tool:e},n)}}function Gd(e,t,n){let r=Ud(e,t),i=t?.cause??`declined`;return i===`declined`?{code:`denied`,kind:`declined`,message:r?W(`sign_in.declined`,{service:r},n):W(`session.tool_denied`,{tool:e.name},n)}:Wd(e.name,i===`expired`?r:void 0,n)}function Kd(e){if(bl(e))return!0;if(xl(e))return!1}function qd(e,t){let{failure:n}=e,r=t(e);return{outcome:e.gated?`gated`:e.aborted!==void 0&&e.callNotStarted?`cancelled`:e.denied?`denied`:n?`error`:e.awaiting?`paused`:`ok`,...r?{result:r}:{},...!n&&`outputRaw`in e?{data:{value:e.outputRaw}}:{},...n?{failure:n}:{}}}function Jd(e){let t=e.tools.get(e.name),n=z(e.profile.guardrails),{args:r}=vt(Ar(e.input),t?fd(t,e.tools):{origin:`local`,tool:e.name,depth:1},n,dd(e.tools,e.name),jt(n,e.scope??{}));return typeof r==`object`&&r&&!Array.isArray(r)?r:{}}async function*Yd(e){return e={...e,ctx:{...e.ctx,operationId:e.ctx.operationId??crypto.randomUUID()}},yield*hl(e.execution,{operationId:e.ctx.operationId??crypto.randomUUID(),callId:e.callId,profileId:e.profile.id,toolId:e.name},{input:e.input,resume:e.ctx.resume,snapshot:e.snapshot,context:e.invocation},e.ctx.signal,t=>Xd({...e,beginBody:async n=>{let r=await t?.(n)??await e.beginBody?.(n);return e.onDispatch?.(),r}}),t=>zd({outcome:t,tools:e.tools,profile:e.profile,name:e.name,resume:e.ctx.resume,snapshot:e.snapshot}))}async function*Xd(e){let t=e.tools.get(e.name);if(!e.openSpan)return yield*Zd(e,t);let n=St(e.openSpan,{name:e.name,callId:e.callId,call:{arguments:Be(Ar(e.input))},origin:t?ld(t,e.tools):void 0,permission:t&&`permission`in t?t.permission:void 0,approved:Kd(e.ctx.resume),step:e.ctx.turn?.step}),r=Zd({...e,ctx:{...e.ctx,traceparent:n.span.traceparent()},...e.stages?{stages:{...e.stages,span:n.span}}:{}},t);try{for(;;){let t=await r.next();if(t.done)return n.end(qd(t.value,e.readBack??Hd)),t.value;n.observe(t.value),yield t.value}}catch(e){throw n.end(F(e)?{outcome:`cancelled`}:{outcome:`error`,thrown:e}),e}finally{n.span.ended||(n.end({outcome:`cancelled`}),await r.return({}))}}async function*Zd(e,t){let{profile:n,name:r,input:i,callId:a,ctx:o,snapshot:s,stages:c}=e,l=Ar(i),u=o.operationId??crypto.randomUUID(),d={name:r,callId:a,operationId:u,activityFailed:He(r,n.labels,t?.labels,l)};if(!t){let e={code:`unknown_tool`,kind:`request`,message:W(`tool.not_registered`,{tool:r},n.labels)};return yield R(d,e),Q(e)}if(t.type===`builtin`){if(!s){let e={code:`provider_native`,kind:`request`,message:W(`tool.builtin_needs_snapshot`,{tool:r},n.labels)};return yield R(d,e),Q(e)}return yield*Ld(t,{...o,callId:a,profile:n,operationId:u},d,s)}let f=Rd({tool:t,profile:n,name:r,resume:o.resume,snapshot:s,visible:o.turn?.visible});if(f)return yield R(d,f),Q(f);if(xl(o.resume))return yield*Ed(Dd(e.tools,t,{...o,callId:a,profile:n,operationId:u},s,c?.span),d,Gd(t,o.resume,n.labels),c,{toolName:r,callId:a,input:l,callNotStarted:!0,denied:!0});let p={...o,callId:a,profile:n,operationId:u},m=z(n.guardrails),h=fd(t,e.tools),g=performance.now(),_=ud(t),v=vt(l,h,m,_&&Nt(`tool_arguments`,_),jt(m,e.scope??{}));if(Ie(c?.span,`tool_arguments`,performance.now()-g,v.event),v.event&&(yield{type:`guardrail`,guardrail:v.event}),!(`args`in v)){let e={code:`arguments_blocked`,kind:`blocked`,message:W(`detect.call_blocked`,{},n.labels)};return yield R(d,e),{...Q(e),denied:!0}}let y=performance.now(),b=nt(o.turn?.taint,t.access,m,n.labels),x=xt(b,h);if(Ie(c?.span,`taint`,performance.now()-y,x),x&&(yield{type:`guardrail`,guardrail:x}),b.action===`block`){let e={code:`tainted_turn`,kind:`blocked`,message:b.rejection};return yield R(d,e),{...Q(e),denied:!0}}return(yield*Qd({tool:t,input:v.args,ctx:p,base:d,provenance:h,policy:m,span:c?.span}))||(yield*tf(e.tools,t,v.args,p,d,s,c,e.agents,e.beginBody))}async function*Qd(e){let{tool:t,input:n,ctx:r,base:i}=e,{labels:a}=r.profile,o=performance.now(),{verdict:s,confirm:c}=Ii(r.turn?.destinations,n,e.policy,a),l=xt(s,e.provenance);if(Ie(e.span,`destination`,performance.now()-o,l),l&&(yield{type:`guardrail`,guardrail:l}),s.action===`block`){let e={code:`remote_destination`,kind:`blocked`,message:s.rejection};return yield R(i,e),{...Q(e),denied:!0}}if(!c||bl(r.resume))return void 0;let u={kind:`confirmation`,tool:t.name,summary:c,...Cl(t,n)};return yield*ql({base:i,gate:u,callId:r.callId,toolName:t.name,labels:a}),{gated:u,callNotStarted:!0}}async function*$d(e){let{tool:t,ctx:n,base:r,agents:i}=e;if(!i){let e={code:`unknown_tool`,kind:`unsupported`,message:W(`tool.unsupported_type`,{tool:t.name},n.profile.labels)};return yield R(r,e),Q(e)}let a,o=e.stages?.span,s=async function*(e,n){let r=i.run({tool:t,callId:n.callId,input:e,caller:n.profile,...o?{span:o}:{},...n.signal?{signal:n.signal}:{}}),s=!1;for(;;){let e=await r.next();if(e.done){if(a=e.value.tokens,`failure`in e.value)throw new ar(e.value.failure);yield{kind:`complete`,output:e.value.output};return}let n=e.value;n.type===`attempt`&&(s=!0),n.type===`text`||n.type===`structured_draft`?s||(yield{kind:`draft`,text:n.text}):yield{kind:`progress`,data:{agent:t.profile,event:n}}}},c={...t,type:`function`,handler:s},l=Fd(e.tools,c,e.safeInput,n,r,e.snapshot,e.stages,t,e.beginBody);for(;;){let e=await l.next();if(e.done)return e.value;yield ef(e.value,r.callId,a)}}function ef(e,t,n){if(!n||e.type!==`tool`||e.tool.callId!==t)return e;let{tool:r}=e;return r.phase!==`complete`&&r.phase!==`error`?e:{...e,tool:{...r,tokens:n}}}async function*tf(e,t,n,r,i,a,o,s,c){let{name:l}=t;if(t.type===`function`)return yield*Fd(e,t,n,r,i,a,o,void 0,c);if(t.type===`agent`)return yield*$d({tools:e,tool:t,safeInput:n,ctx:r,base:i,snapshot:a,stages:o,agents:s,beginBody:c});if(t.type!==`http`&&t.type!==`mcp`)return Q({code:`unknown_tool`,kind:`request`,message:W(`tool.unsupported_type`,{tool:l},r.profile.labels)});let u=Dd(e,t,r,a,o?.span);return yield*Vd({outcome:t.type===`http`?yield*Pu(t,n,r,i,o,c,new _l(i,u.handlerEvents(o?.drafts===!0))):yield*ad(t,n,r,i,o,e.mcpSessions,c),tool:t,base:i,callId:i.callId,safeInput:n,stages:o,guard:u,labels:r.profile.labels})}function*nf(e,t){let n=performance.now(),r=We(e.message,t.provenance,t.policy,t.kind&&Nt(`tool_failure`,t.kind));Ie(t.span,`tool_failure`,performance.now()-n,r.event),r.event&&(yield{type:`guardrail`,guardrail:r.event});let i=r.text??W(`detect.output_blocked`,{},t.labels);return{modelResult:yield*rf({...e,message:i},t)}}function*rf(e,t){let n=Ae(e);return(yield*sf(n,t,void 0))??n}function*af(e,t){let n=yield*sf(e,t,t.kind&&Nt(`tool_output`,t.kind));if(n)return{modelResult:n};let r={code:`output_blocked`,kind:`blocked`,message:W(`detect.output_blocked`,{},t.labels)};return{modelResult:yield*rf(r,t),withheld:r}}function*of(e,t){let n=t.kind&&Nt(`tool_shown`,t.kind),r=Ke(e,t.provenance,t.policy,n);return r.event&&(yield{type:`guardrail`,guardrail:r.event}),`value`in r?r.value:W(`detect.shown_blocked`,{},t.labels)}function*sf(e,t,n){let{provenance:r,span:i}=t,a=performance.now(),o=Oe(e.finding,e.data,r,t.policy,n,t.callableTools,t.labels);if(Ie(i,`tool_result`,performance.now()-a,o.event),o.event&&(yield{type:`guardrail`,guardrail:o.event}),o.text!==void 0)return{...e,modelText:o.text,provenance:r,...o.suspicious?{suspicious:o.suspicious}:{}}}function cf(){let e=()=>void 0;return{promise:new Promise(t=>{e=t}),resolve:e}}function lf(e,t,n){let r=new Set,i=new Map(e.map(e=>[e,cf()])),a=new Map,o=new Map,s=new Map,c=n=>t?[]:e.slice(0,e.indexOf(n));for(let t of e){let e=c(t);e.length>0&&a.set(t,new Map(e.map(e=>[e,`after`])))}let l=(e,t,n=new Set)=>{if(e===t)return[t];if(!(n.has(e)||r.has(e))){n.add(e);for(let r of a.get(e)?.keys()??[]){let i=l(r,t,n);if(i)return[e,...i]}}},u=(e,t)=>{o.get(e)?.(t),o.delete(e),s.get(e)?.(),s.delete(e);for(let[t,n]of a.get(e)??[])n===`asked`&&a.get(e)?.delete(t)},d=e=>i.get(e)?.promise??Promise.resolve();return{start:async e=>{await Promise.all(c(e).map(d)),I(n)},settle:e=>{r.add(e),a.delete(e),i.get(e)?.resolve()},wait:(e,t)=>{let c=t.filter(e=>!i.has(e));if(c.length>0)return Promise.resolve({ok:!1,reason:`unknown`,callIds:c});let f=t.filter(e=>!r.has(e));if(f.length===0)return Promise.resolve({ok:!0});let p=a.get(e)??new Map;a.set(e,p);for(let e of f)p.set(e,`asked`);let m=f.flatMap(t=>{let n=l(t,e);return n?[{id:t,path:n}]:[]});if(m.length>0){for(let{path:t}of m)for(let[n,r]of t.entries()){let i=t[n+1];i!==void 0&&r!==e&&a.get(r)?.get(i)===`asked`&&u(r,{ok:!1,reason:`cycle`,callIds:[i]})}return u(e,{ok:!1,reason:`cycle`,callIds:m.map(({id:e})=>e)}),Promise.resolve({ok:!1,reason:`cycle`,callIds:m.map(({id:e})=>e)})}let h=cf();o.set(e,h.resolve),Promise.all(f.map(d)).then(()=>u(e,{ok:!0}));let g=new Promise((t,r)=>{if(!n)return;let i=()=>r(n.reason);n.addEventListener(`abort`,i,{once:!0}),s.set(e,()=>n.removeEventListener(`abort`,i))});return g.catch(()=>{}),Promise.race([h.promise,g])}}}async function*uf(e,t,n){try{return await e.start(t),yield*n()}finally{e.settle(t)}}async function*df(e){let t=e.map(()=>void 0),n=new Map,r=(e,t)=>{let r=t.next().then(t=>({index:e,next:t}));r.catch(()=>{}),n.set(e,r)};e.forEach((e,t)=>{e&&r(t,e)});try{for(;n.size>0;){let{index:i,next:a}=await Promise.race(n.values());n.delete(i);let o=e[i];a.done||!o?a.done&&(t[i]=a.value):(yield a.value,r(i,o))}}finally{for(let t of n.keys())e[t]?.return(void 0).catch(()=>{})}return t}function ff(e,t){return e.type===`thought`&&Cc(t)?.streaming?.streamThoughts===!1}function*pf(e){e.some(e=>e.rule===wn.providerToolLeak)?yield*mf(e):yield*hf(`reply`,{action:`block`,hits:e});let t=Xt(e);yield V(new H(`safety`,t)),yield{type:`done`,stop:{kind:`filtered`,native:t===zt.canary?`canary`:t===zt.promptEcho?`prompt_echo`:`provider_tool_leak`}}}function*mf(e){let t=Hn(`output_delta`,`untrusted`,e,`block`);t&&(yield t)}function*hf(e,t){let n=t&&dn(e,t,void 0,gf[e]);n&&(yield K(n))}var gf={reply:`output_delta`};function*_f({text:e,hits:t,found:n},r){yield*hf(`thought`,n);let i=Hn(`thought`,`untrusted`,t,`redact`);i&&(yield i),e&&(yield{...r,text:e})}function*vf(e,t){e&&(yield*_f(e.flush(),{type:`thought`,text:``}),t&&(t.thoughtCarry=e.carryOut()))}function yf(e){return e.type===`text`||e.type===`media`}function bf(e,t){return!t.structured||e.type!==`text`?e:t.stream===!1?void 0:{type:`structured_draft`,text:e.text}}var xf=class{drafts;generation;constructor(e){let t=z(e.profile.guardrails),n=wf(e,t);this.drafts=new Xn(()=>Br(t,n,`reply_structured`)),this.generation=e.generation}async*show(e){let t=bf(e,this.generation);if(t?.type!==`structured_draft`){t&&(yield t);return}let n=await this.drafts.read(t.text);n&&(yield{...t,text:n})}*end(){let e=this.drafts.end();e&&(yield{type:`structured_draft`,text:e})}};function Sf(e){return e.type===`structured`||e.type===`tool`}var Cf=class{policy;context;tools;drafts=new Map;constructor(e,t,n){this.policy=e,this.context=t,this.tools=n}async*take(e,t,n){return e.type===`tool_draft`?(t||(yield*this.release(e,n)),!0):(this.close(e),!1)}async*release(e,t){let n=this.drafts.get(e.callId)??await this.open(e);if(n===`stopped`)return;if(n.name!==e.name){this.drafts.set(e.callId,`stopped`);return}if(!n.gate){yield e;return}let{gate:r}=n,i=await t(`tool_draft`,()=>r.process(e.text));i.blocked?this.drafts.set(e.callId,`stopped`):i.emit&&(yield{...e,text:i.emit})}close(e){e.type===`tool`&&this.drafts.delete(e.tool.callId)}async open(e){let t=dd(this.tools,e.name),n=t?await Br(this.policy,this.context,t):null,r={name:e.name,gate:n};return this.drafts.set(e.callId,r),r}};function wf(e,t){let{profile:n,privateSystem:r,canaryGiven:i}=e,{canary:a}=e.generation;return{stage:`output_final`,trust:`untrusted`,profileId:n.id,...n.labels?{labels:n.labels}:{},...Bt(t.detect,{canary:a,canaryGiven:i,privateSystem:r}),givenUrls:e.givenUrls,...e.ownTools?{ownTools:e.ownTools}:{}}}async function*Tf(e){let{profile:t,request:n,provider:r,call:i,signal:a,control:o}=e;async function s(e,t){let n=performance.now();try{return await t()}finally{i.guardTime?.(e,performance.now()-n)}}let c=z(t.guardrails),l=wf(e,c),{canaryCarry:u,thoughtCarry:d}=o??{},f=await jn(c,l,`reply`,u),p=await Qi(c,l,d),m=new Cf(c,l,e.tools),h=null,g=!1;function _(e){let t=e.filter(Yt);o&&t.length>0&&(o.promptLeaks=t)}function v(){g=!0,o&&(o.withholdVisible=!0)}function y(){return g}async function*b(e,t){yield*mf(e),v();let n=f?.drainUnreleased();n&&(yield{...t,text:n})}async function*x(){if(!(f&&h))return`pass`;let e=h,t=await s(`output_stream`,()=>f.flush());return h=null,(yield*S(t,e))===`stop`?`stop`:`pass`}async function*S(e,t){if(e.blocked){_(e.hits);let n=e.boundary&&dn(e.boundary,{action:`block`,hits:e.hits},void 0,`output_delta`);return n&&i.guardrail?.(n),yield*b(e.boundary?[]:e.hits,t),`go`}return yield*hf(`reply`,e.found),e.emit&&(yield{...t,text:e.emit}),`go`}async function*C(e){return f?y()?(yield{...e,text:e.text??``},`continue`):(h=e,(yield*S(await s(`output_stream`,()=>f.process(e.text??``)),e))===`stop`?`stop`:`continue`):(yield e,`continue`)}let w=!1;function*T(e){return e.type!==`thought`||!p?!1:(w=!0,yield*_f(p.push(e.text),e),!0)}function*E(){w&&(w=!1,yield*vf(p,o))}I(a);let D=!1;for await(let e of r.complete({...n,signal:a,tapUpstream:i.tap})){if(i.observe(e),I(a),e.type===`response`)continue;if(e.type===`reasoning`){yield e;continue}if(yield*T(e))continue;if(Mt(e)){if(yield*E(),(yield*C(e))===`stop`)return;continue}if((yield*x())===`stop`)return;if(yield*m.take(e,y(),s))continue;let t=Sf(e)?void 0:await s(`stream_canary`,()=>Rt(e,l,c.detect,`reply`));if(t?.stop){yield*pf(t.hits);return}t&&(yield*hf(`reply`,{action:`flag`,hits:t.hits})),y()&&yf(e)||(e.type===`error`&&(D=!0),e.type===`done`&&(yield*vf(p,o))),yield e}yield*vf(p,o),(yield*x())!==`stop`&&(o&&f&&(o.canaryCarry=f.carryOut()),D&&(yield{type:`done`,stop:{kind:`provider_error`}}))}function Ef(e,t,n){return{system:e,...n?{held:n}:{},conversation:`previous`in t?{previous:t.previous,continuation:[...t.continuation]}:{history:[...t.history],input:[...t.input]},output:[],failed:!1}}function Df(e,t){switch(t.type){case`tokens`:return e.reported=t.tokens,!0;case`error`:return e.failed=!0,!1;case`tool`:return t.tool.phase===void 0&&e.output.push({type:`tool`,tool:t.tool}),!1;case`text`:case`thought`:case`media`:return e.output.push(t),!1;default:return!1}}function Of(e,t){return{tokens:e.tokens+t.tokens,unknownMedia:e.unknownMedia+t.unknownMedia}}function kf(e,t){let n=[],r;for(let i of e)i.type===`tool`||i.type===`media`?r=void 0:i.text&&(t||i.type!==`thought`)&&(i.type===r?n.push(`${n.pop()??``}${i.text}`):(n.push(i.text),r=i.type));return n}async function Af(e,t){let n=await rc(),r={tokens:0,unknownMedia:0};for(let t of e.output)t.type===`media`?r.unknownMedia+=1:t.type===`tool`&&(r.tokens+=n.text(t.tool.name)+n.text(JSON.stringify(t.tool.arguments)));for(let i of kf(e.output,t))r.tokens+=n.text(i);return r}async function jf(e){let t=await rc(),{conversation:n}=e;if(`previous`in n){let e=await jf(n.previous),r=await Af(n.previous,!1),i=t.messages(n.continuation);return Of(Of(e,r),i)}let r=Of(t.messages(n.history),t.parts(n.input));return e.held?Of(e.held,r):r}async function Mf(e){return Of(await jf(e),await Af(e,!1))}async function Nf(e,t){let n=await rc(),r=t.tools.wire,i=r.length>0?n.text(JSON.stringify(r)):0,a=t.structured?n.text(JSON.stringify(t.structured.jsonSchema)):0,o=await jf(e);return{tokens:n.text(e.system)+i+a+o.tokens,unknownMedia:o.unknownMedia}}async function Pf(e,t){let n=e.reported;if(!n&&e.failed)return;let r=n?n.estimated??[]:[`input`,`output`];if(n&&r.length===0)return{type:`tokens`,tokens:n};let i=r.includes(`input`)?await Nf(e,t):void 0,a=r.includes(`output`)?await Af(e,!0):void 0,o=i?.tokens??n?.input??0,s=a?.tokens??n?.output??0,c={...i?.unknownMedia?{input:i.unknownMedia}:{},...a?.unknownMedia?{output:a.unknownMedia}:{}};return{type:`tokens`,tokens:{...n,input:o,output:s,total:o+s,estimated:[...r],...Object.keys(c).length>0?{unknownMedia:c}:{}}}}function Ff(e,t){return t>0&&e>=t}function If(e,t,n){let r={...e,history:t.currentHistory};return n?{...r,builtins:[],tools:{...e.tools,wire:[]}}:r}function Lf(e,t,n){return e.type===`text`&&e.turnBehaviour?.atStepLimit===`answer`&&Ff(n,t.maxSteps??0)}function Rf(e,t){if(t.phase===void 0)return e.push({name:t.name,callId:t.callId,arguments:t.arguments}),!0;let n=P(e,e=>e.callId===t.callId);return t.phase!==`error`||!n?!1:(n.failure=t.failure,!0)}function zf(e,t,n,r){let i=Ef(t.text,{history:n.currentHistory,input:e.input});n.lastCall=i;let a=If(e,n,r),o=ol(n.tools,a,t.text);return yn(n.givenUrls,o),Pi(n.destinations,o,n.givenUrls.own),e.canary&&!n.canaryGiven&&(n.canaryGiven=Wt(o,e.canary,n.canaryScanned)),n.trace.calls+=1,{usage:i,genForStep:a,request:o,call:et((e,t)=>n.trace.root.child(e,t),{req:o,usage:i,binding:n.trace.binding,transport:a.transport,step:n.stepCount,attempt:n.trace.attempt})}}function Bf(e,t){let n=ie(e);return n?.autoContinue!==void 0&<(t,n)}var Vf=new Set([`text`,`media`,`structured`,`citation`]);function Hf(e,t,n){return e.type===`error`?(t.failures.push(e),!0):e.type===`tool`?Rf(t.calls,e.tool):(e.type===`guardrail`&&n.guardrail(e.guardrail),e.type===`structured`&&(t.latestStructured=e.structured),e.type===`text`&&(t.text+=e.text),Vf.has(e.type)&&(t.replied=!0),!1)}var Uf=`
|
|
9
|
+
|
|
10
|
+
`;function Wf(e,t,n,r){if(t.text)return e;let i=n.replyText,a=i&&r.structured===null&&!/\s$/.test(i)&&!/^\s/.test(e.text);return t.replyAt=i.length+(a?2:0),a?{...e,text:`${Uf}${e.text}`}:e}function Gf(e,t,n,r){if(nl(e,n),t.withholdVisible&&yf(e))return n.withheldVisible=!0,!1;e.type===`text`&&(n.released+=e.text,n.replyText+=e.text);let i=e.type===`thought`||!r.holdVisible&&yf(e);return!r.holdLate||i}var Kf=new Set([`busy`,`unavailable`,`bad_response`,`network`,`timeout`,`rate_limit`]);function qf(e,t,n){let{stop:r}=n;if(!e||n.replied||n.calls.length>0||!r||!Te(r.kind)||!Bf(t,r))return;let i=n.failures[0];if(!i?.errorKind||Kf.has(i.errorKind))return{stop:r,failure:i}}function Jf(e,t){e.canaryCarry=t.canaryCarry,e.thoughtCarry=t.thoughtCarry,t.promptLeaks&&(e.promptLeaks=[...e.promptLeaks??[],...t.promptLeaks])}async function*Yf(e,t,n={holdLate:!1,holdVisible:!1}){let{profile:r,generation:i,system:a,provider:o,signal:s}=e,{usage:c,genForStep:l,request:u,call:d}=zf(i,a,t,Lf(r,i,t.stepCount)),f={calls:[],reasoning:[],text:``,failures:[],replied:!1},p={withholdVisible:!1,...t.canaryCarry?{canaryCarry:t.canaryCarry}:{},...t.thoughtCarry?{thoughtCarry:t.thoughtCarry}:{}},m={profile:e.profile,generation:l,privateSystem:a.private,givenUrls:t.givenUrls,canaryGiven:t.canaryGiven,...t.ownTools?{ownTools:t.ownTools}:{}},h=new xf(m);try{for await(let e of Tf({...m,request:u,provider:o,call:d,signal:s,control:p,tools:t.tools})){if(Df(c,e))continue;if(e.type===`reasoning`){let{type:t,...n}=e;f.reasoning.push(n);continue}if(e.type===`done`){t.providerState=e.providerState,f.stop=e.stop,t.lastStop=e.stop;continue}if(e.type===`tool_draft`){n.holdVisible||(yield e);continue}let r=e.type===`text`?Wf(e,f,t,l):e;Hf(e,f,d)||Gf(r,p,t,n)&&(yield*h.show(r))}}catch(e){throw d.end(F(e)?{stop:{kind:`cancelled`}}:{stop:f.stop,thrown:e}),e}yield*h.end(),Jf(t,p);let g=qf(e.mayResume,r,f);if(!g)for(let e of f.failures)nl(e,t),n.holdLate||(yield e);let _=await Pf(c,i);return d.end({tokens:_?.tokens,stop:f.stop}),_&&(nl(_,t),yield _),{calls:f.calls,reasoning:f.reasoning,text:f.text,latestStructured:f.latestStructured,...f.replyAt===void 0?{}:{replyAt:f.replyAt},...g?{resume:g}:{}}}async function*Xf(e,t,n){let r=ie(e.profile)?.maxContinues??1;for(;;){let i=e.profile.type===`text`&&t.resumes<r,a=yield*Yf({...e,mayResume:i},t,n);if(!a.resume)return a;t.resumes+=1;let o=a.resume.failure?.errorInternal??a.resume.failure?.error;t.trace.root.event(`theorem.step.resume`,{step:t.stepCount,resume:t.resumes,stop:a.resume.stop.kind,...o?{error:o}:{}}),t.lastStop=void 0,await Ua(ve,e.signal)}}function Zf(e,t){return{role:`tool`,tool_call_id:e.callId,name:e.name,content:Ge(t),...t.parts&&t.parts.length>0?{parts:t.parts}:{}}}function Qf(e,t,n){e.currentHistory.push(Zf(t,n))}async function*$f(e,t){let n=await e.next();for(;!n.done;)t.allEmittedEvents.push(n.value),yield n.value,n=await e.next();return n.value}function ep(e){return(t,n)=>e.trace.root.child(t,{attributes:n})}function tp(e,t,n){let r=R(t,n);e.allEmittedEvents.push(r);let i=qe(n);return St(ep(e),{name:t.name,callId:t.callId,call:t,step:e.stepCount}).end({outcome:`error`,result:{text:Ge(i)},failure:n}),Qf(e,t,i),r}function*np(e,t,n){return e.aborted?(t.lastStop=re(e.aborted),`stop_cancelled`):e.gated?`gated`:(e.modelResult?.provenance&&(t.taint=Pe(t.taint,e.modelResult.provenance,e.modelResult.suspicious),Fi(t.destinations,e.modelResult,e.modelResult.provenance)),e.modelResult&&(!e.failure&&`outputRaw`in e&&t.toolResults.push({tool:n.name,output:e.outputRaw}),Qf(t,n,e.modelResult),e.pendingInject&&(yield*el(t,`post_tool`,e.pendingInject,{callId:n.callId,toolName:n.name}))),`continue`)}function rp(e){return Je({text:e.text,structured:e.latestStructured,calls:e.calls.map((t,n)=>n===0?{...t,reasoning:e.reasoning}:t)})}async function*ip(e,t,n,r,i,{onStage:a,signal:o,credentials:s,resolveHost:c}={}){let{calls:l,reasoning:u}=e;l.length>0&&Xc(r,rp(e),e.replyAt);let d=crypto.randomUUID(),f={canary:t.canary,canaryGiven:r.canaryGiven,privateSystem:i.private},p=l.map(e=>({...e,operationId:crypto.randomUUID(),shown:e.failure?e.arguments:Jd({tools:r.tools,profile:n,name:e.name,input:e.arguments,scope:f})}));for(let[e,t]of p.entries()){let n=Ue(t,t.shown,{...e===0&&u.length?{reasoning:u}:{},stepId:d,stepCallCount:p.length});r.allEmittedEvents.push(n),yield n}let m=lf(p.map(e=>e.callId),Zn(n)===!0,o),h={handlers:a?[a]:[],profile:n,step:r.stepCount,history:()=>r.currentHistory,injectAllowed:Ee(n),injectWouldExceedMaxSteps:Gc(r.stepCount,t.maxSteps),host:t.host,signal:o,stepCalls:p.map(e=>({callId:e.callId,tool:e.name,input:e.shown})),wait:m.wait,drafts:t.stream!==!1},g={step:r.stepCount,taint:r.taint,destinations:r.destinations,visible:[...t.tools.visible]},_=e=>$f(Yd({tools:r.tools,execution:t.execution,invocation:{model:t.model,input:t.input,history:t.history},...r.agents?{agents:r.agents}:{},profile:n,name:e.name,input:e.arguments,callId:e.callId,ctx:{operationId:e.operationId,pageExecution:t.pageExecution,sessionPermissions:t.sessionPermissions,path:t.tools.path,turn:g,credentials:s,resolveHost:c,host:t.host,resume:void 0,signal:o},snapshot:t.tools,stages:h,scope:f,openSpan:ep(r)}),r);for(let e of p)e.failure&&m.settle(e.callId);let v=yield*df(p.map(e=>e.failure?void 0:uf(m,e.callId,()=>_(e)))),y=!1,b=!1;for(let[e,t]of p.entries()){if(t.failure){yield tp(r,{...t,activityFailed:He(t.name,n.labels)},t.failure);continue}let i=v[e];if(!i)continue;let a=yield*np(i,r,t);a===`stop_cancelled`&&(b=!0),a===`gated`&&(y=!0)}return b?!1:y?(r.lastStop={kind:`gate`},!1):p.length>0}async function*ap(e){let{profile:t,generation:n,system:r,provider:i,state:a}=e,o,s=[],c,l=Cc(t)?.validation,u=l!==void 0||Rn(z(t.guardrails),ye),d=l!==void 0&&n.stream===!1;for(;!Ff(a.stepCount,n.maxSteps??0);){I(e.safe.signal),a.stepCount++;let l=yield*Xf({profile:t,generation:n,system:r,provider:i,signal:e.safe.signal},a,{holdLate:u,holdVisible:d});if(l.latestStructured!==void 0&&(o=l.latestStructured),s=l.calls.length>0?[]:rp(l),c=l.replyAt,!(yield*ip(l,n,t,a,r,e.safe)))break;Ff(a.stepCount,n.maxSteps??0)&&(a.lastStop={kind:`step_limit`})}return{latestStructured:o,reply:s,...c===void 0?{}:{replyAt:c}}}var op={kind:`filtered`,native:`egress`};function sp(e){let t=[];for(let n of e)n.type===`text`&&n.text&&t.push(n.text);return t.join(``)}function cp(e){let t=P(e,e=>e.type===`structured`)?.structured;return{text:sp(e),...t===void 0?{}:{structured:t}}}function lp(e,t,n,r){return{...e,input:{...e.input,repair:{previousOutput:typeof t==`string`?t:JSON.stringify(t),rejection:n,guidance:r}}}}function up(e){let{attemptEvents:t,request:n,profile:r,canRetry:i,promptLeaks:a}=e,{detect:o,blockedReply:s}=e.policy,c=cp(t),l=jt(e.policy,{canary:e.generation.canary,canaryGiven:e.canaryGiven,privateSystem:e.privateSystem,givenUrls:e.givenUrls,...e.ownTools?{ownTools:e.ownTools}:{},...r.labels?{labels:r.labels}:{}}),u=S(c,o,{boundary:`reply`,...e.withheld?{reportedTo:e.released.length}:{},scope:l}),{payload:d}=u,f=e=>({action:`refusal`,event:{type:`text`,text:e}}),p=O(u,a),m=p&&p!==u.blocked?Hn(`output_final`,`untrusted`,p,`block`):void 0,h=[...u.events.map(K),...m?[m]:[]];return p?s.onBlock===`refuse`?{outcome:f(yt(e.shown,r.labels)),guardrails:h}:i?{outcome:{action:`retry`,nextRequest:lp(n,d.text,Sc(p,o,r.labels),W(`egress.default_repair_guidance`,{},r.labels))},guardrails:h}:{outcome:{action:`withhold`,event:V(new H(`safety`,zt.egress))},guardrails:h}:u.rewritten?{outcome:f(xe(e.shown,d.text)),guardrails:h}:{outcome:{action:`pass`},guardrails:h,...d.structured===c.structured?{}:{structured:d.structured}}}async function dp(e){let{validation:t,generation:n,latestStructured:r,request:i,canRetry:a}=e;if(r===void 0)return{action:`pass`};let o=n.structured;if(!o)throw new H(`config`,`outputs.validation requires outputs.structured with a JSON Schema`);let s=await cr(o.jsonSchema,r,t.fields,i.input?.slots);return s.length===0?{action:`pass`}:a?{action:`retry`,nextRequest:lp(i,r,Or(s))}:{action:`pass`,failed:s}}function*fp(e,t,n){for(let r of e){if(r.type===`tokens`||r.type===`thought`||t&&yf(r))continue;let e=bf(r,{...n,stream:!1});e&&(yield e)}}function pp(e,t,n,r,i){e.currentAttempt++,t.trace.attempt=e.currentAttempt,t.trace.root.event(`theorem.attempt.retry`,{attempt:e.currentAttempt,reason:i}),e.currentReq=r;let a=yr(r,n);if(n.type===`text`){let e=t.currentHistory.length;rl(t,hr(n,{...a,input:{repair:a.input?.repair}}));for(let n of t.currentHistory.slice(e))mp(t,n)}else{let r=hr(n,a);mp(t,r),e.currentGen={...e.currentGen,input:r}}let o={type:`attempt`,attempt:e.currentAttempt,reason:i};return t.allEmittedEvents.push(o),o}function mp(e,t){e.canaryScanned.add(t),e.givenUrls.own.add(t)}function hp(e,t){return Cc(e)?.validation!==void 0&&t.stream===!1}async function*gp(e,t,n,r,i){let a=t.currentAttempt<e.blockedReply.maxRetries,o=performance.now(),{outcome:s,guardrails:c,structured:l}=await up({policy:e,attemptEvents:n.attemptEvents,withheld:n.withheldVisible===!0,released:n.released,shown:hp(r,t.currentGen)?``:n.released,generation:t.currentGen,request:t.currentReq,profile:r,canRetry:a,...n.promptLeaks?{promptLeaks:n.promptLeaks}:{},givenUrls:n.givenUrls,canaryGiven:n.canaryGiven,privateSystem:i,...n.ownTools?{ownTools:n.ownTools}:{}});n.trace.root.event(`theorem.guardrail`,D(`egress`,performance.now()-o,c.at(-1)?.guardrail,{stage:`output_final`,trust:`untrusted`}));for(let e of c)n.allEmittedEvents.push(e),yield e;if(l!==void 0){let e=P(n.attemptEvents,e=>e.type===`structured`);e&&(n.attemptEvents[n.attemptEvents.indexOf(e)]={...e,structured:l})}return s.action===`refusal`?(n.lastStop=op,n.allEmittedEvents.push(s.event),yield s.event,`terminal`):s.action===`withhold`?(n.lastStop=op,yield s.event,`terminal`):s.action===`retry`?(yield pp(t,n,r,s.nextRequest,`egress`),`continue`):`pass`}function _p(e){let t={};for(let n of new Set(e.map(e=>e.path))){let r=e.filter(e=>e.path===n).map(({item:e})=>e);t=Sr(t,n,r)}return t}function vp(e,t){let n={type:`object`,properties:{},required:[]};e.$defs!==void 0&&(n.$defs=e.$defs);for(let r of t){let t=Nr(e,r);if(!t)continue;let i=r.split(`.`),a=n;for(let[e,n]of i.entries()){if(a.required.includes(n)||a.required.push(n),e===i.length-1){a.properties[n]={type:`array`,items:t};break}let r=a.properties[n],o=r?.type===`object`?r:{type:`object`,properties:{},required:[]};a.properties[n]=o,a=o}}return n}function yp(e,t){let n=e.reply;for(let r of new Set(e.refused.map(e=>e.path))){let i=ur(n,r),a=ur(t,r);if(!Array.isArray(i)||!Array.isArray(a))continue;let o=[...i],s=e.refused.filter(e=>e.path===r);for(let[e,t]of s.entries())e<a.length&&(o[t.index]=a[e]);n=Sr(n,r,o)}return n}function bp(e,t){let n=e;for(let e of new Set(t.map(e=>e.path))){let r=ur(n,e);if(!Array.isArray(r))continue;let i=new Set(t.filter(t=>t.path===e).map(({index:e})=>e));n=Sr(n,e,r.filter((e,t)=>!i.has(t)))}return n}function xp(e,t,n,r){let i={type:`structured`,structured:t,...n.length?{removed:n.map(({path:e,reason:t,item:n})=>({path:e,reason:t,item:n}))}:{},...r?{failed:r}:{}};e.attemptEvents=[...e.attemptEvents.filter(e=>e.type!==`structured`&&e.type!==`text`),{type:`text`,text:JSON.stringify(t)},i]}function Sp(e){let{flow:t,state:n,profile:r,reply:i,refused:a,structured:o}=e,s=new Map,c=a.map(({path:e,reason:t})=>{let n=s.get(e)??0;return s.set(e,n+1),`${e}[${n}]: ${t}`}).join(`
|
|
11
|
+
`),l=lp(t.currentReq,_p(a),c,W(`repair.items_guidance`,{},r.labels));t.pendingItemFix={reply:i,refused:a,structured:o};let u=pp(t,n,r,l,`validation`);return t.currentGen={...t.currentGen,structured:{id:o.id,jsonSchema:vp(o.jsonSchema,a.map(({path:e})=>e))}},u}async function Cp(e,t,n,r,i){let a=t.currentAttempt<(e.maxRetries??0),o=t.pendingItemFix,s=i;o&&(t.pendingItemFix=void 0,t.currentGen={...t.currentGen,structured:o.structured},s=yp(o,i),xp(n,s,[]));let c=await dp({validation:e,generation:t.currentGen,latestStructured:s,request:t.currentReq,canRetry:a});if(c.action===`retry`)return pp(t,n,r,c.nextRequest,`validation`);if(s===void 0)return`pass`;c.failed&&wp(n,c.failed);let l=t.currentReq.input?.slots,u=await _r(s,e.items,{...l?{slots:l}:{},toolResults:n.toolResults});if(u.length===0)return`pass`;let d=u.filter(e=>e.onFail===`fix`),f=t.currentGen.structured;return d.length>0&&a&&!o&&f?Sp({flow:t,state:n,profile:r,reply:s,refused:d,structured:f}):(xp(n,bp(s,u),u,c.failed),`pass`)}function wp(e,t){let n=P(e.attemptEvents,e=>e.type===`structured`);n&&(e.attemptEvents[e.attemptEvents.indexOf(n)]={...n,failed:t})}function Tp(e){return e===`terminal`?{status:`terminal`}:e===`continue`?{status:`continue`}:null}async function*Ep(e){let{flow:t,state:n,profile:r,system:i,provider:a}=e,o=Cc(r)?.validation,s=z(r.guardrails),c=Rn(s,ye);n.stepCount=0,n.replyText=``,n.replyMessages=[];let l;for(;;){n.attemptEvents=[],n.released=``,n.withheldVisible=!1,n.promptLeaks=void 0;let e=yield*ap({safe:t.currentReq,profile:r,generation:t.currentGen,system:i,provider:a,state:n});if(l=e.latestStructured,n.lastStop?.kind===`tool`||n.lastStop?.kind===`gate`||n.lastStop?.kind===`step_limit`)break;if(n.lastStop?.kind===`cancelled`)return{status:`terminal`};let o=yield*tl({profile:r,generation:t.currentGen,state:n,stage:`before_end`,step:Math.max(n.stepCount,1),reply:e.reply,...e.replyAt===void 0?{}:{replyAt:e.replyAt},onStage:t.currentReq.onStage,signal:t.currentReq.signal,host:t.currentGen.host,injectWouldExceedMaxSteps:Gc(n.stepCount,t.currentGen.maxSteps)});if(o.abort)return n.lastStop={kind:`cancelled`,...typeof o.abort==`object`&&o.abort.reason?{native:o.abort.reason}:{}},{status:`terminal`};if(!(o.injectCount>0))break}if(c){let e=Tp(yield*gp(s,t,n,r,i.private));if(e)return e;l=cp(n.attemptEvents).structured??l}if(o){let e=await Cp(o,t,n,r,l);if(e!==`pass`)return yield e,{status:`continue`}}if(o||c){let e=n.withheldVisible||hp(r,t.currentGen);yield*fp(n.attemptEvents,!e,t.currentGen)}return{status:`success`}}async function*Dp(e,t,n,r,i,a){let{blockedReply:o}=z(t.guardrails),s=Math.max(Cc(t)?.validation?.maxRetries??0,o.onBlock===`retry`?o.maxRetries:0),c={currentAttempt:0,currentGen:n,currentReq:e};for(;c.currentAttempt<=s;){I(e.signal);let n=yield*Ep({flow:c,state:a,profile:t,system:r,provider:i});if(n.status===`terminal`||n.status===`success`)break}}var Op=new Set([`config`,`request`,`auth`,`internal`]);function kp(e){return e.find(e=>e.type===`error`)}function Ap(e){let t=new Map,{registry:n,req:r}=e;return{async*run({tool:i,callId:a,input:o,caller:s,span:c,signal:l}){let u=s.labels,d=(e,t,n)=>({failure:{code:e,kind:t,message:n}}),f=t.get(i.name)??0;if(i.maxCallsPerTurn!==void 0&&f>=i.maxCallsPerTurn)return d(`call_limit`,`declined`,W(`tool.agent_call_limit`,{tool:i.name},u));t.set(i.name,f+1);let p=n.profiles.get(i.profile),m=Yn(p,e=>n.tools.get(e));if(m)throw new H(`config`,`Agent tool "${i.name}" can't run '${i.profile}': ${m}`);let{sent:h,hostInput:g}=Mr(i,o);if(g&&!r.onAgentCall)throw new H(`config`,`Agent tool "${i.name}" declares host fields, which need the request's onAgentCall`);let _=await r.onAgentCall?.({tool:i.name,callId:a,profile:i.profile,input:h,...g?{hostInput:g}:{},caller:s.id,depth:e.depth+1,...r.metadata?{metadata:r.metadata}:{},...l?{signal:l}:{}});if(_&&`refuse`in _)return d(`refused_by_host`,`declined`,_.refuse);let{provider:v,...y}=_??{},b=jp(e,p.id,y.model,v);if(!c)throw new H(`internal`,`Agent tool "${i.name}" ran without a span`);let{speech:x,...S}=h,C=[];try{for await(let t of e.runNested({req:{...x?{speech:x}:{},...y,profile:i.profile,execution:r.execution,pageExecution:r.pageExecution,input:y.input??S,...l?{signal:l}:{},...r.onAgentCall?{onAgentCall:r.onAgentCall}:{}},provider:b,parent:c,agentDepth:e.depth+1}))C.push(t),yield t}catch(e){if(!(e instanceof H)||Op.has(e.kind)||F(e))throw e;C.push(V(e))}return I(l),Mp(C,i.name,i.profile,u)}}}function jp(e,t,n,r){return r?$s(e.registry,t,n,r):e.provider?tc(e.provider,t,n):$s(e.registry,t,n,{})}function Mp(e,t,n,r){let i=P(e,e=>e.type===`done`),a=i?.tokens??de(e),o=a?{tokens:a}:{},s=kp(e);if(s&&Op.has(s.errorKind))throw new H(s.errorKind,`Agent '${n}' failed: ${s.errorInternal??s.error}`);let c=i?.stop.kind;if(c!==`completed`||s){let e=W(`tool.agent_failed`,{tool:t},r),i=s?.errorCopy?ce(s.errorCopy,r):s?.error;return{failure:{code:`agent_failed`,kind:s?.errorKind??`failed`,message:i?`${e}\n${i}`:e,details:{agent:n,...c?{stop:c}:{},...s?.errorCopy?{reasons:s.errorCopy}:{}}},...o}}return{output:Er(e),...o}}function Np(e,t){return Vn(e,t?.include.guardrailMatchPreview??!1)}var Pp=1e3;function Fp(e,t){let n=b(t,e.known?.labels);return(n.type===`text`||n.type===`structured_draft`)&&!e.shownText&&(e.shownText=!0,e.root.set({"theorem.turn.time_to_first_text":e.root.msSinceStart()/Pp})),e.seen.push(n),e.delivered.add(n,e.root.nowUnixNano()),n}function*Ip(e,t,n){let r=Np(t,e.observability);ff(r,n)||(yield Fp(e,r))}function Lp(e,t){return e.models[t]?.compaction}function Rp(){return{builtins:[],gated:[],visible:[],executable:[],wire:[]}}function zp(e){let t=Jp(e.registry,e.req,e.parent.child(`invoke_agent ${e.req.profile}`,Qe(e.req)),e.canaries);return t.agentDepth=e.agentDepth,e.compacting&&(t.compacting=e.compacting),t.observability=Vr(t.known?.observability),Xp(t,tc(e.provider,e.req.profile,e.req.model,e.req))}async function Bp(e){let t=e.spec.profile===void 0,n=e.spec.profile??e.owner,r=e.registry.profiles.get(n),{history:i,droppedMedia:a}=pc(e.toCompact,r);if(i.length===0)return{droppedMedia:a,failure:{unreadable:!0}};let o={profile:n,...t&&e.model!==r.defaultModel?{model:e.model}:{},input:{text:W(`compaction.request`,{},r.labels),history:i},signal:e.signal},s=[];try{for await(let n of zp({registry:e.registry,req:o,provider:e.provider,parent:e.parent,canaries:e.canaries,agentDepth:0,compacting:t?`self`:`other`}))s.push(n)}catch(t){I(e.signal);let n=t instanceof H?t.kind:`internal`;if(Op.has(n))throw t;return{droppedMedia:a,failure:{error:n}}}I(e.signal);let c=de(s),l=c?{tokens:c}:{},u=P(s,e=>e.type===`done`)?.stop.kind,d=kp(s);if(d&&Op.has(d.errorKind))throw new H(d.errorKind,`Compactor '${n}' failed: ${d.errorInternal??d.error}`);let f=d?.errorKind;if(u!==`completed`||f)return{droppedMedia:a,failure:{...u?{stop:u}:{},...f?{error:f}:{}},...l};let p=Xe(s),m=P(p,e=>e.type===`structured`)?.structured,h=m===void 0?p.flatMap(e=>e.type===`text`?[e.text]:[]).join(``):JSON.stringify(m);return h.trim()?{summary:h,droppedMedia:a,...l}:{droppedMedia:a,failure:{stop:u,empty:!0},...l}}function Vp(e){return P(e,e=>e.type===`tokens`)?.tokens}function Hp(e,t,n){return{timing:e.timing,meter:ic(e),budget:e.maxTokens,threshold:e.compactAt,...e.trigger?{trigger:`custom`}:{},...t?{tokens_before:t.tokens,unknown_media:t.unknownMedia}:{},needed:n}}function Up(e,t){return{outcome:e.outcome,messages_before:t,messages_after:e.history.length,dropped_media:e.droppedMedia,...e.failure?.stop?{failure_stop:e.failure.stop}:{},...e.failure?.error?{failure_error:e.failure.error}:{},...e.failure?.empty?{failure_empty:!0}:{},...e.failure?.unreadable?{failure_unreadable:!0}:{},...e.summary===void 0?{}:{summary:Pt(e.summary)}}}async function Wp(e){let t=await sc({spec:e.spec,input:e.input}),n=t!==void 0&&await lc(t,e.spec),r=Hp(e.spec,t,n);if(!(n&&t)){e.parent.event(`theorem.compaction`,r);return}let i=await uc(e.history,e.spec);if(i.toCompact.length===0){e.parent.event(`theorem.compaction`,r);return}let{toCompact:a,...o}=mc(i,await Bp({...e,toCompact:i.toCompact}),t.tokens,e.spec);return e.parent.event(`theorem.compaction`,{...r,...Up(o,e.history.length)}),{type:`compaction`,timing:`before`,meter:t.meter,tokensBefore:t.tokens,unknownMedia:t.unknownMedia,messagesBefore:e.history.length,messagesAfter:o.history.length,...o}}async function Gp(e,t){if(t.history.length===0)return e;let n=Vp(t.seen),r=await sc({spec:t.spec,input:t.input,prompt:n}),i=r!==void 0&&await lc(r,t.spec);if(t.span.event(`theorem.compaction`,Hp(t.spec,r,i)),!(i&&r))return e;let a={needed:!0,meter:r.meter,tokens:r.tokens,unknownMedia:r.unknownMedia,history:t.history};return n&&n.input>0&&(a.promptTokens=n.input,n.estimated?.includes(`input`)&&(a.promptTokensEstimated=!0)),{...e,compaction:a}}async function*Kp(e){let{safe:t,profile:n,generation:r,system:i,provider:a}=e,o=il({tools:e.registry.tools,profile:n,generation:r,trace:e.trace,...e.agents?{agents:e.agents}:{}});e.outState.state=o;let s=yield*tl({profile:n,generation:r,state:o,stage:`pre_turn`,step:1,onStage:t.onStage,signal:t.signal,host:r.host});if(s.abort){let e={kind:`cancelled`,...typeof s.abort==`object`&&s.abort.reason?{native:s.abort.reason}:{}},i={type:`done`,stop:e,traceparent:o.trace.root.traceparent()};o.allEmittedEvents.push(i),yield i,yield*tl({profile:n,generation:r,state:o,stage:`post_turn`,step:1,onStage:t.onStage,signal:t.signal,stop:e,host:r.host});return}yield*Dp(t,n,r,i,a,o);let c=te(o.allEmittedEvents),l=A({stop:o.lastStop??{kind:`completed`},...o.providerState&&!(`providerContinuation`in n&&n.providerContinuation?.history===`stateless`)&&(!o.lastStop||[`completed`,`tool`,`gate`].includes(o.lastStop.kind))?{providerState:o.providerState}:{},traceparent:o.trace.root.traceparent(),...c?{tokens:c}:{}},or(r.tools));o.allEmittedEvents.push(l),yield l}async function*qp(e,t,n,r,i){if(e.safe&&e.system!==void 0&&e.trace)for await(let a of Kp({registry:e.registry,safe:e.safe,profile:t,generation:n,system:e.system,provider:r,trace:e.trace,agents:e.agents,outState:e})){let r=Np(await am(a,e,n,i),e.observability);if(ff(r,t)||(yield Fp(e,r)),r.type===`done`&&e.state&&!e.state.allEmittedEvents.some(e=>e.type===`stage`&&e.stage===`post_turn`))for await(let i of tl({profile:t,generation:n,state:e.state,stage:`post_turn`,step:Math.max(e.state.stepCount,1),onStage:e.safe.onStage,signal:e.safe.signal,stop:r.stop,host:n.host}))yield*Ip(e,i,t)}}function Jp(e,t,n,r){return{registry:e,req:t,known:e.profiles.find(t.profile),seen:[],delivered:new w,root:n,compacting:!1,agentDepth:0,canary:``,canaries:r}}function Yp(e,t){let n=e.trace?.calls??0;Ce(e.root,{seen:e.seen,delivered:e.delivered,attempts:n>0?(e.trace?.attempt??0)+1:0,calls:n,...t===void 0?{}:{thrown:t}})}async function*Xp(e,t){try{yield*$p(e,t)}catch(t){if(F(t)){yield*Qp(e),Yp(e);return}throw Yp(e,t),t}Yp(e)}async function*Zp(e,t,n,r){let i=En(`invoke_agent ${t.profile}`,{...Qe(t),...t.traceparent?{traceparent:t.traceparent}:{}}),a=Jp(e,t,i.root,[]),{sink:o,policy:s}=bs({override:r,observability:a.known?.observability,guardrails:a.known?.guardrails});a.observability=s;try{yield*Xp(a,n)}finally{await fs(o,Ur({spans:i.collect(),policy:s,canaries:a.canaries,...t.metadata?{metadata:t.metadata}:{}}),s)}}async function*Qp(e){if(e.seen.some(e=>e.type===`done`))return;let t={kind:`cancelled`};yield Fp(e,Np({type:`done`,stop:t,traceparent:e.root.traceparent()},e.observability));let n=e.known,r=e.generation;if(!(n&&r&&e.safe&&e.trace))return;let i=e.state??il({tools:e.registry.tools,profile:n,generation:r,trace:e.trace,allEmittedEvents:[...e.seen]});for await(let a of tl({profile:n,generation:r,state:i,stage:`post_turn`,step:Math.max(i.stepCount,1),onStage:e.safe.onStage,stop:t,host:r.host}))yield*Ip(e,a,n)}async function*$p(e,t){let n=performance.now(),r=Gn(e.req,e.registry.profiles.get(e.req.profile)),i=performance.now()-n;e.safe=r.request;let a=r.events.filter(e=>e.type===`guardrail`);a.length===0&&e.root.event(`theorem.guardrail`,D(`input`,i,void 0,{stage:`input`,trust:`untrusted`}));for(let t of r.events)t.type===`guardrail`&&e.root.event(`theorem.guardrail`,t===a.at(-1)?D(`input`,i,t.guardrail,t.guardrail):k(t.guardrail)),yield Fp(e,Np(t,e.observability));if(r.refusal)throw r.refusal;let{profile:o,generation:s}=pr(e.registry,e.safe);await Fr(e.registry.tools,s.tools,o,e.safe),e.compacting===`self`&&(s.tools=Rp()),s.builtins=s.tools.builtins,s.canary&&=await qt(o.id,s.resolvedSystem),e.generation=s,e.canary=s.canary,e.canaries.push(s.canary);let c=o.models[s.model];e.trace={root:e.root,attempt:0,calls:0,binding:c},e.compacting||(e.agents=em(e,t,c)),I(e.safe.signal);let l=e.compacting?void 0:Lp(o,s.model),u=await im(e,o,s,l,t);u&&(yield Fp(e,Np(u,e.observability))),e.system=Kn(s.resolvedSystem,[On(e.canary,o.labels),ke(`identity.system`).includes(o.type)?mn(o.labels):``,ht(o)?.context?Dn(o.labels):``]),yield*qp(e,o,s,t,l)}function em(e,t,n){return Ap({registry:e.registry,req:e.safe??e.req,provider:t,own:n,depth:e.agentDepth,runNested:t=>zp({...t,registry:e.registry,canaries:e.canaries})})}function tm(e,t,n){return Ap({registry:e,req:t,provider:t.provider?ec(e,t.provider):void 0,own:void 0,depth:0,runNested:t=>zp({...t,registry:e,canaries:n})})}function nm(e,t,n,r){return Ap({registry:e,req:{...t,execution:n.execution},provider:ec(e,n),own:void 0,depth:0,runNested:t=>zp({...t,registry:e,canaries:r})})}function rm(e,t,n,r){return tc(r,n.profile??t.id,n.profile?void 0:e.req.model)}async function im(e,t,n,r,i){if(!(r?.timing===`before`&&e.safe))return;let a=rm(e,t,r,i);if(!n.history?.length)return;let o=await Wp({registry:e.registry,owner:t.id,model:n.model,spec:r,history:n.history,input:e.safe.input,provider:a,parent:e.root,canaries:e.canaries,signal:e.safe.signal});return o&&(n.history=o.history),o}async function am(e,t,n,r){return e.type===`done`&&r?.timing===`after`&&t.safe?await Gp(e,{spec:r,history:n.history??[],input:t.safe.input,seen:t.seen,span:t.root}):e}async function om(e,t,n,r){let i=e.profiles.get(t.profile),a=t.model??i.defaultModel,o=ze(i,a).compaction;if(!o)throw new H(`config`,`Profile ${i.id} model '${a}' has no compaction`);let s=await uc(t.history,o);if(s.toCompact.length===0)return;let c={profile:t.profile,input:{},...t.conversationId?{conversationId:t.conversationId}:{}},l=En(`invoke_agent ${t.profile}`,{...Qe(c),...t.traceparent?{traceparent:t.traceparent}:{}}),{sink:u,policy:d}=bs({override:r,observability:i.observability,guardrails:i.guardrails}),f=[];try{let r=mc(s,await Bp({registry:e,owner:i.id,model:a,toCompact:s.toCompact,spec:o,provider:n,parent:l.root,canaries:f,...t.signal?{signal:t.signal}:{}}),t.tokens,o);return l.root.event(`theorem.compaction`,{timing:o.timing,meter:ic(o),budget:o.maxTokens,threshold:o.compactAt,tokens_before:t.tokens,...Up(r,t.history.length)}),l.root.end(),r}catch(e){throw bt(l.root,e),e}finally{await fs(u,Ur({spans:l.collect(),policy:d,canaries:f,...t.metadata?{metadata:t.metadata}:{}}),d)}}function sm(e){return Array.isArray(e.input)?e.input:[]}function cm(e){return typeof e==`string`?e:JSON.stringify(e)}function lm(e={}){let t=new Map(Object.entries(e));return{get:e=>Promise.resolve(t.get(e)),set:(e,n)=>(t.set(e,n),Promise.resolve())}}async function um(e,t,n,r,i,a,o,s){let c=!a&&!i.interrupted&&(i.stop.kind===`completed`||i.stop.kind===`tool`),l=c?await es(e,t,n,i.state,r.history??[]):void 0;return{type:`batch`,row:{},turnPhase:c?i.stop.kind===`tool`?`streaming`:`complete`:`abort`,events:[...c?o:[],...s,...l?[{type:`provider_checkpoint`,providerState:l}]:[],...i.stop.kind===`tool`?[]:[{type:`done`,stop:i.stop,interrupted:i.interrupted,providerState:l}]]}}function dm(e){return{type:`closed`,code:e?.code??1e3,reason:e?.reason??`provider-closed`,...e?.error?{error:e.error instanceof H?e.error:new H(`unavailable`,W(`provider.session_closed`))}:{},...e?.warning?{goAway:e.warning}:{}}}function fm(e,t,n){if(t.has(e.callId)||n?.some(t=>t.role===`tool`&&t.tool_call_id===e.callId))throw new H(`bad_response`,W(`provider.settled_call`));t.set(e.callId,e.name)}function pm(e){return{type:`batch`,row:{},turnPhase:`streaming`,events:e}}function mm(e,t,n){let r=is(e);return{type:`tool`,tool:!t.some(e=>e.type===`tool`)&&n.length?{...r,reasoning:n.splice(0)}:r}}function hm(e,t){let n=t.get(e);if(!n)throw new H(`bad_response`,W(`provider.tool_cancel_missing`));return pm([{type:`tool`,tool:{callId:e,name:n,at:Date.now(),phase:`cancel`}}])}async function gm(e,t,n,r,i,a={}){let o=await $o(e,t,i,n.history??[],a),s=Xo(e,t,`live`,r,{...n,liveConnection:!0}),c=await s.openSession(rs(n,Ve(e,t),o)),l=Promise.resolve(),u=e=>{l=l.then(()=>Wo(e,n.signal))};return{setup:{},flush:()=>l,sendInput(e){if(e.type===`text`)u(()=>c.sendText(e.text));else if(e.type===`audio`&&`data`in e)u(()=>c.sendAudio(e));else if(e.type===`video`&&`data`in e)u(()=>c.sendVideo(e));else throw new H(`unsupported`,W(`provider.live_input`))},sendContext(e){u(()=>c.sendContext({server:e}))},sendToolResponse(e,t,n,r){u(()=>c.sendToolResult({callId:e,name:t,text:typeof n==`string`?n:JSON.stringify(n),...r?.length?{parts:r}:{}}))},close(e,t){l=l.then(()=>c.close(t),()=>c.close(t))},async*batches(){o.warning&&(yield pm([{type:`provider_warning`,warning:o.warning}]));let r=new Map,i=[],a=[],u=[],d=!1,f=c.events()[Symbol.asyncIterator]();try{for(;;){let o=await Wo(()=>f.next(),n.signal);if(o.done)break;let c=o.value;await Wo(()=>l,n.signal);let p=c;if(p.type!==`raw`){if(p.type===`reasoning`){let{type:e,...t}=p;u.push(t)}else if(p.type===`session`&&p.session.kind===`turn_complete`)a.push(p);else if(p.type===`session`&&a.length&&!i.length&&(p.session.kind===`working`||p.session.kind===`idle`))yield pm([...a,p]),a=[];else if(p.type===`tool_call`)fm(p.call,r,n.history),i.push(mm(p.call,i,u));else if(p.type===`tool_cancel`){let e=hm(p.callId,r);i=i.filter(e=>e.type!==`tool`||e.tool.callId!==p.callId),yield e}else if(p.type===`error`&&(d=!0),p.type===`done`){if(p.stop.kind===`generation_complete`){yield pm([{type:`done`,stop:p.stop}]);continue}yield await um(e,t,s.keySlot(),n,p,d,i,a),i=[],a=[],u=[],d=!1}else yield pm([p])}}}finally{let e=f.return?.();e&&e.catch(()=>{})}(i.length||a.length)&&(yield{type:`batch`,row:{},turnPhase:`abort`,events:[{type:`done`,stop:{kind:`stream_incomplete`}}]}),yield dm(c.closeInfo?.())}}}function _m(e,t){let{detect:n}=z(e.guardrails),r=kt(t,`live_user`,n),i=dn(`live_user`,r),a=Vr(e.observability).include.guardrailMatchPreview,o=i?Vn(K(i),a):void 0;return{...r.text===void 0?{}:{text:Ht(r.text)},...o?{guardrail:o}:{}}}function vm(e,t){let{detect:n}=z(e.guardrails),r=Vr(e.observability).include.guardrailMatchPreview,i=[],a=[];for(let e of[...we].reverse()){if(t[e]===void 0)continue;let o=br({[e]:t[e]},()=>pn(`context`,n));for(let e of o.events)a.push(Vn(K(e),r));let s=o.context?.[e];!o.blocked&&typeof s==`string`&&i.push(fn(e,s))}return{texts:i,guardrails:a}}var ym=new Set([`text`,`thought`,`media`,`tool`]),bm=1e3;function xm(e){let[t,...n]=e.parts??[];if(!(e.role!==`user`||e.content||n.length>0))return t?.type===`audio`&&`data`in t?t:void 0}function Sm(e){try{let t=e.chunks.map(sn),n=new Uint8Array(t.reduce((e,t)=>e+t.byteLength,0)),r=0;for(let e of t)n.set(e,r),r+=e.byteLength;return[{type:`audio`,mimeType:e.mimeType,data:bn(n)}]}catch{return e.chunks.map(t=>({type:`audio`,mimeType:e.mimeType,data:t}))}}var Cm=class{items=[];run;add(e){for(let t of e){let e=xm(t);e&&this.run?.mimeType===e.mimeType?this.run.chunks.push(e.data):(this.run=e?{mimeType:e.mimeType,chunks:[e.data]}:void 0,this.items.push(this.run??t))}}messages(){return this.items.map(e=>`chunks`in e?{role:`user`,parts:Sm(e)}:e)}};function wm(e){let t=M(e.setup),n=M(t?.sessionResumption);if(t&&n&&`handle`in n){let{handle:r,...i}=n;return{...e,setup:{...t,sessionResumption:i}}}let r=M(e.sessionResumptionUpdate);if(r&&`newHandle`in r){let{newHandle:t,...n}=r;return{...e,sessionResumptionUpdate:n}}return e}function Tm(e,t){return typeof t==`string`?{[e]:t}:{}}function Em(e){if(e.type===`session`){let{session:t}=e;return t.kind===`turn_complete`?void 0:{kind:t.kind,...`timeLeftMs`in t?pe(`time_left_ms`,t.timeLeftMs):{}}}if(e.type!==`evidence`)return;let{evidence:t}=e;if(t.kind===`voice_activity`){let e=M(t.raw);return{kind:`voice_activity`,...Tm(`activity`,e?.type),...Tm(`audio_offset`,e?.audioOffset)}}if(t.kind===`session_resumption`)return{kind:`session_resumption`,...pe(`resumable`,t.resumable),handle_issued:!!e.sessionResumptionHandle}}var Dm=class{tree;out;identity;root;bound;response;lastResponse;pendingFrames=[];pendingInput=new Cm;pendingHeard=[];held;tokens=[];responses=0;callParents=new Map;writes=Promise.resolve();failure;endedByGoAway=!1;socketHasClosed=!1;closing;agentCanaries=[];constructor(e,t,n){this.tree=e,this.out=t,this.identity=n,this.root=e.root}bind(e){this.bound=e}sent=e=>{if(e.eventType===`key_fallback`){this.keyFallback(e);return}if(e.direction===`receive`){let t=M(e.body);t&&this.row(t);return}let t=M(e.body);if(!t)return;let n=wm(t);`setup`in t?this.root.event(`theorem.wire.request`,{body:U(n)}):(this.pendingInput.add(sm(e)),this.pendingFrames.push({timeUnixNano:this.root.nowUnixNano(),body:n}))};keyFallback(e){this.root.event(`theorem.session`,{kind:`key_fallback`,key_slot:String(e.from),to_key_slot:String(e.keySlot),"error.type":String(e.errorKind),error:String(e.error)});let t=this.bound;t?.binding&&(this.bound={...t,binding:{...t.binding,keySlot:String(e.keySlot)}})}setup(e){this.root.event(`theorem.upstream.row`,{row:U(e)}),this.root.event(`theorem.session`,{kind:`setup_complete`})}receive(e){switch(e.type){case`batch`:for(let t of e.events)this.route(t);this.row(e.row);return;case`row`:this.row(e.row);return;case`error`:e.row&&this.row(e.row),this.failure??=e.error;return;case`closed`:this.socketClosed(e.code,e.reason,`provider`,e),e.goAway?this.endedByGoAway=!0:this.failure??=e.error;return}}delivered(e){(e.type!==`evidence`||e.evidence.kind!==`input_transcription`)&&this.response?.delivered.add(e,this.root.nowUnixNano())}outbound(e){this.response?this.response.call.guardrail(e.guardrail):this.inbound(e)}inbound(e){this.root.event(`theorem.guardrail`,k(e.guardrail))}outboundTime(e){this.response?.call.guardTime(`live_output`,e)}inboundCheck(e,t){this.root.event(`theorem.guardrail`,D(`live_input`,e,t?.guardrail,{stage:`live_inbound`,trust:`untrusted`}))}socketClosed(e,t,n,r){if(this.socketHasClosed)return;this.socketHasClosed=!0;let i=r?.goAway;this.root.event(`theorem.session`,{kind:`closed`,code:e,reason:t,initiator:n,...r?.error?{"error.type":ue(r.error)}:{},...i?{cause:`go_away`,...pe(`time_left_ms`,i.timeLeftMs),closed_after_ms:i.closedAfterMs}:{}})}async settle(){return this.response?.complete?await this.endResponse({}):void 0}responseTraceparent(){return(this.response?.call.span??this.lastResponse)?.traceparent()}toolRecord(e){let t;return{open:(n,r)=>(t=En(n,{attributes:{...this.identity,...r},traceparent:this.callParents.get(e)??this.root.traceparent(),clock:this.tree.clock}),t.root),finish:()=>{t&&this.write(t.collect())}}}close(e){return this.closing??=this.finish(e),this.closing}async finish(e){let t=e.thrown!==void 0&&F(e.thrown),n=t?void 0:e.thrown??this.failure;this.response&&await this.endResponse(n===void 0?{cancelled:!0}:{thrown:n});for(let e of this.pendingFrames)this.root.event(`theorem.wire.request`,{body:U(e.body)},e.timeUnixNano);this.pendingFrames=[];let r=me(this.tokens);this.root.set({...r?le(r):{},"theorem.steps":this.responses,...t?{"theorem.stop.kind":`cancelled`}:{},...!t&&this.endedByGoAway?{"theorem.stop.kind":`go_away`}:{}}),n===void 0?this.root.end(t||this.endedByGoAway?{code:`UNSET`}:{code:`OK`}):bt(this.root,n),this.write(this.tree.collect()),await this.writes}route(e){let t=Em(e);if(t){this.root.event(`theorem.session`,t);return}if(e.type===`tool`&&e.tool.phase===`cancel`){(this.response?.call.span??this.root).event(`theorem.tool.cancel`,{"gen_ai.tool.call.id":e.tool.callId,"gen_ai.tool.name":e.tool.name});return}let n=e.type===`evidence`?e.evidence.kind:void 0;if(n===`input_transcription`&&(!this.response||this.response.answering)){this.pendingHeard.push(e);return}let r=this.open();e.type===`session`?r.complete=!0:(Df(r.usage,e),r.call.observe(e),!r.answering&&(ym.has(e.type)||n===`output_transcription`)&&(r.call.span.set({"gen_ai.response.time_to_first_chunk":r.call.span.msSinceStart()/bm}),r.answering=!0),e.type===`tool`&&e.tool.phase===void 0&&this.callParents.set(e.tool.callId,r.call.span.traceparent()),e.type===`done`&&r.stop?.kind!==`interrupted`&&(e.stop.kind!==`completed`||r.stop?.kind!==`generation_complete`)&&(r.stop=e.stop))}row(e){(this.response?.call.span??this.root).event(`theorem.upstream.row`,{row:U(wm(e))})}open(){if(this.response)return this.response;let e=this.bound;if(!e)throw new H(`internal`,`Live trace received a response before it was bound`);let t=Ef(e.system,{history:[],input:[]},this.held),n=this.pendingFrames[0]?.timeUnixNano,r,i=et((e,t)=>(r=En(e,{...t,attributes:{...this.identity,...t.attributes},traceparent:this.root.traceparent(),clock:this.tree.clock,...n?{startTimeUnixNano:n}:{}}),r.root),{req:e.request,usage:t,binding:e.binding,transport:e.generation.transport,step:this.responses+1});if(!r)throw new H(`internal`,`Live response span was not opened`);i.span.set({"gen_ai.request.stream":!0});for(let e of this.pendingFrames)i.span.event(`theorem.wire.request`,{body:U(e.body)},e.timeUnixNano);let a={tree:r,call:i,usage:t,input:this.pendingInput,delivered:new w,answering:!1,complete:!1};for(let e of this.pendingHeard)i.observe(e);return this.pendingFrames=[],this.pendingInput=new Cm,this.pendingHeard=[],this.response=a,a}async endResponse(e){let t=this.response,n=this.bound;if(!(t&&n))return;this.response=void 0,this.responses+=1,t.usage.conversation={history:t.input.messages(),input:[]};let r=e.thrown===void 0&&!e.cancelled,i=r?await Pf(t.usage,n.generation):void 0;return r&&(this.held=await Mf(t.usage)),t.call.span.set({"theorem.output.delivered":[{role:`assistant`,parts:t.delivered.parts}]}),t.call.end({...i?.tokens?{tokens:i.tokens}:{},stop:e.cancelled?{kind:`cancelled`}:t.stop,...e.thrown===void 0?{}:{thrown:e.thrown}}),i?.tokens&&this.tokens.push(i.tokens),this.lastResponse=t.call.span,this.write(t.tree.collect()),i}write(e){let t=Ur({spans:e,policy:this.out.policy,canaries:[...this.bound?[this.bound.canary]:[],...this.agentCanaries],...this.out.metadata?{metadata:this.out.metadata}:{}});this.writes=this.writes.then(()=>fs(this.out.sink,t,this.out.policy))}};function Om(e,t,n){let{sink:r,policy:i}=bs({override:n,observability:t?.observability,guardrails:t?.guardrails}),a={"gen_ai.agent.name":e.profile,...pe(`gen_ai.conversation.id`,e.conversationId)};return new Dm(En(`invoke_agent ${e.profile}`,{kind:`INTERNAL`,attributes:{"gen_ai.operation.name":`invoke_agent`,...a},links:y(e.links),...e.traceparent?{traceparent:e.traceparent}:{}}),{sink:r,policy:i,...e.metadata?{metadata:e.metadata}:{}},a)}function km(e,t){return e??(t?void 0:{unanswered:!0})}function Am(e){return!(e instanceof H)||!e.copy?!1:`key`in e.copy?e.copy.key===`tool.execution_uncertain`:e.copy.some(e=>e.key===`tool.execution_uncertain`)}function jm(e){return typeof e.state==`object`&&e.state.released===!0}function Mm(e){return e.phase===`complete`||e.phase===`error`||e.phase===`gate`}function Nm(e,t,n){let r=e.error?Ze(e.error):e.reason;return{type:`session`,session:{kind:`ended`,...t.timeLeftMs===void 0?{}:{timeLeftMs:t.timeLeftMs},message:W(`live.session_ended`,{},n),ended:{cause:`go_away`,code:e.code,closedAfterMs:t.closedAfterMs,...e.error?{errorKind:ue(e.error)}:{}}},...r?{errorInternal:r}:{}}}function Pm(e){let t=[];for(let n of e){let e=n.role===`tool`||n.parts?.length?void 0:n.content?.trim();if(!e)return;t.push(e)}return t}function Fm(e){if(e.type!==`live`)throw new H(`request`,`runSession requires profile.type 'live' (got '${e.type}' for ${e.id})`)}function Im(e,t){let n=new Set(e.tools.allow),r=new Set(t.builtins),i=new Set;for(let e of[...t.gated,...t.visible,...t.executable])!n.has(e)&&!r.has(e)&&i.add(e);if(i.size>0){let t=`session snapshot declares tools outside tools.allow: ${[...i].join(`, `)}`;throw new H(`config`,`Profile ${e.id}: ${t}`)}return or(t)}function Lm(e){return{profile:e.profile,providerState:e.providerState,system:e.system,builtInArgs:e.builtInArgs,path:e.path,sessionPermissions:e.sessionPermissions,signal:e.signal,metadata:e.metadata,host:e.host,input:{text:``,history:e.history,slots:e.slots}}}function Rm(e,t,n){let{greeting:r,resumed:i}=e.live;if(!t.providerState&&!t.history?.length)return r?kr(e,r,n,`live.greeting`):void 0;if(!(!i||(t.awayMs??0)<(i.afterMs??3e3)))return kr(e,i.prompt,n,`live.resumed.prompt`)}function zm(e,t){wr(e,{profile:e.id,input:{context:t}})}function Bm(e,t){return!t||!e.live?e:{...e,live:{...e.live,voice:t}}}function Vm(e,t){return!t||t.length===0?e:{...e,input:t}}async function Hm(e,t,n,r){if(n===`abort`)return Ta(e),t.filter(e=>e.type===`tool`||e.type===`session`||e.type===`done`&&e.interrupted===!0);let i=await ga(e,t);if(i.action===`withhold`)return r(),[...(i.events??[]).filter(e=>!Um(e)&&e.type!==`provider_checkpoint`),V(i.error)];let a=i.action===`emit`?i.events:[];if(n!==`complete`)return a;let o=a.filter(e=>!Um(e)),s=await wa(e);return s.action===`withhold`?(r(),[...o.filter(e=>e.type!==`provider_checkpoint`),...s.events??[],V(s.error)]):[...o,...s.action===`emit`?s.events:[],...a.filter(Um),{type:`done`,stop:{kind:`completed`}}]}function Um(e){return e.type===`session`&&e.session.kind===`turn_complete`}function Wm(e){if(e.gated)return;let t=e.modelResult??(e.failure?qe(e.failure):void 0);return t?Ge(t):void 0}function Gm(e){let t=Wm(e);return t===void 0?void 0:{text:cm(t),parts:e.modelResult?.parts}}function Km(e,t){return e.flatMap(e=>{if(e.type===`response`||e.type===`reasoning`)return[];if(e.type!==`done`)return[e];let{type:n,...r}=e;return[A(r,t)]})}function*qm(e){for(;e.length>0;){let t=e.shift();t&&(yield t)}}function Jm(e,t,n){return e.length>0?e:t===`abort`||n?[{type:`done`,stop:{kind:`interrupted`},interrupted:!0}]:[{type:`done`,stop:{kind:`completed`}}]}function Ym(e,t,n){for(let r of e)r.type===`text`&&n(r.text),r.type===`evidence`&&r.text&&(r.evidence.kind===`input_transcription`||r.evidence.kind===`output_transcription`)&&!r.evidence.interim&&(r.evidence.kind===`input_transcription`&&t(r.text),r.evidence.kind===`output_transcription`&&!e.some(e=>e.type===`text`)&&n(r.text))}async function Xm(e,t,n,r){let i=[];for(let a of e)if(r||a.type!==`provider_checkpoint`){if(!r&&a.type===`done`){let{providerState:e,...t}=a;i.push(t)}else if((a.type===`provider_checkpoint`||a.type===`done`)&&a.providerState){let e=[...t];for(let[t,r]of n)e.some(e=>e.tool_calls?.some(e=>e.id===t))||e.push({role:`assistant`,tool_calls:[{id:t,type:`function`,function:{name:r.name,arguments:JSON.stringify(r.arguments)}}]});i.push({...a,...a.type===`provider_checkpoint`?{history:structuredClone(e)}:{},providerState:{...a.providerState,coveredHistoryLength:e.length,coveredHistoryHash:await wt(e)}})}else i.push(a)}return i}function*Zm(e,t){let n=e.filter(e=>e.type===`done`);for(let n of e)n.type!==`done`&&(yield Vn(n,t??!1));return n}function Qm(e){let{profile:t,canary:n,connection:r,gate:i,givenUrls:a,destinations:o,signal:s,onStage:c,host:l,resolveHost:u,path:d,snapshot:f,trace:p,gateTtlMs:m,signInGate:h}=e,g=e.sessionPermissions,_=e.credentials??lm(),v=new Map,y=!1,x=!1,S=[],C,w=Vr(t.observability).include.guardrailMatchPreview,T=`idle`,E=0,D,O=e.historySeed?.length?structuredClone(e.historySeed):[],k=Promise.resolve(),A=e=>{let t=e.trim();t&&(O.push({role:`user`,content:t}),Cn(a.request,t),Mi(o,t))},ee=e=>{if(!e)return;let t=O.at(-1);t?.role===`assistant`&&typeof t.content==`string`&&!t.tool_calls?t.content=`${t.content}${e}`:O.push({role:`assistant`,content:e})},te=(e,t,n)=>{O.push({role:`assistant`,tool_calls:[{id:e.callId,type:`function`,function:{name:e.name,arguments:JSON.stringify(e.arguments)}}]},{role:`tool`,tool_call_id:e.callId,name:e.name,content:t,...n?.length?{parts:n}:{}}),Cn(a.tools,t)},j=e=>{S.push(Vn(e,w));let t=C;C=void 0,t?.()};for(let t of e.requestEvents)j(t);let ne=()=>S.length>0?Promise.resolve(`queued`):new Promise(e=>{C=()=>e(`queued`)}),M=()=>{if(y)throw new H(`request`,`Live session is closed`)},ie=e=>{M(),r.sendInput(e)},ae=(e,t,n,i)=>{te({name:t.name,callId:e,arguments:t.arguments},n,i),M(),r.sendToolResponse(e,t.name,n,i)},N=(e,t,n,r)=>{clearTimeout(t.lapse),v.delete(e),ae(e,t,n,r)},oe=(e,n,r)=>{let i=Ge(qe(r));j(R({name:n.name,callId:e,operationId:n.operationId,activityFailed:He(n.name,t.labels)},r,i)),N(e,n,i)},P=(e,n)=>{if(y||v.get(e)!==n||typeof n.state!=`object`)return;let{gate:r}=n.state,i=Wd(n.name,r.kind===`auth`?r.authChallenge.service:void 0,t.labels);oe(e,n,i)},se=()=>{for(let e of v.values())clearTimeout(e.lapse)},ce=(e,t,n,r,i)=>{let a=h===`answer`&&r.kind===`auth`&&i!==void 0;return!a&&!n?!1:(a&&ae(e,t,i),clearTimeout(t.lapse),t.state={gate:r,createdAt:Date.now(),released:!0},t.lapse=setTimeout(()=>P(e,t),m),!0)},le=e=>{for(let t of e){if(t.type!==`tool`)continue;let e=t.tool;if(e.phase===void 0){v.set(e.callId,{name:e.name,arguments:e.arguments,operationId:e.operationId??crypto.randomUUID(),state:`open`});continue}let n=v.get(e.callId);n&&(e.phase===`error`&&e.readBack!==void 0?N(e.callId,n,e.readBack):e.phase===`cancel`&&n.state!==`running`&&n.state!==`uncertain`&&v.delete(e.callId))}},ue=(e,t,n)=>{p.socketClosed(e,t,n),r.close(e,t)},de=e=>{if(e.type!==`done`)return e;let t=p.responseTraceparent();return t?{...e,traceparent:t}:e},fe=async(e,n)=>{let r=Yc({...n,stage:e,step:Math.max(1,E),history:O,handlers:c?[c]:[],guardrails:t.guardrails,injectAllowed:Ee(t),host:l,signal:s,span:p.root}),i=await r.next();for(;!i.done;)j(i.value),i=await r.next();return{abort:i.value.abort,inject:i.value.inject}},pe=e=>{let n=performance.now(),r=_m(t,e);return p.inboundCheck(performance.now()-n,r.guardrail),r.guardrail&&j(r.guardrail),r.text},F=e=>{zm(t,e);let n=performance.now(),i=vm(t,e);p.inboundCheck(performance.now()-n,i.guardrails[0]);for(let e of i.guardrails)j(e);for(let e of i.texts)Cn(a.request,e),Mi(o,e),M(),r.sendContext(e)},me=e=>{let t=pe(e);t!==void 0&&(A(t.slice(cn.length+1,-(un.length+1))),ie({type:`text`,text:t}))},he=(e,n,r)=>{let i=[];for(let a of n){let n=Pm(a.messages);if(!n)j({...Hc(e,r),stageWarnings:[{code:`inject_invalid_messages`,field:`inject`,message:`live ingress takes plain-text inject messages only; inject refused`}]});else{for(let e of n)Hr(t,`text`),me(e);i.push(a)}}let a=Wc(e,i,r);a&&j(a)},ge=async e=>{let t=re(e);T=`idle`,j({type:`done`,stop:t,interrupted:!0}),await fe(`post_turn`,{stop:t})},_e=async()=>{if(T===`open`)return{aborted:!1};T=`open`,E+=1,D=void 0,o.remote.clear();let e=await fe(`pre_turn`);return e.abort?(await ge(e.abort),{aborted:!0}):(he(`pre_turn`,e.inject),{aborted:!1})},ve=async function*(e){if(T!==`open`){for(let t of e)yield t;return}let t=await fe(`before_end`,{stop:e.find(e=>e.type===`done`)?.stop});if(t.abort){yield{type:`done`,stop:{kind:`cancelled`},interrupted:!0},await fe(`post_turn`,{stop:{kind:`cancelled`}}),T=`idle`;return}he(`before_end`,t.inject);for(let t of e)yield t;let n=e.find(e=>e.type===`done`);await fe(`post_turn`,{stop:n?.stop}),T=`idle`},ye=e=>{let t=async()=>{await e(),await r.flush?.()},n=k.then(t,t);return k=n.then(()=>void 0,()=>void 0),n},L=async(n,r,a,m,h)=>{let y=r.state,b=jm(r);r.state=`running`;let x=h.host??l,S=p.toolRecord(n),C=!1,w=Yd({onDispatch:()=>{C=!0},tools:e.tools,agents:e.agents,execution:e.execution,profile:t,name:r.name,input:a,callId:n,ctx:{operationId:r.operationId,sessionPermissions:g,credentials:h.credentials??_,resolveHost:u,path:d,signal:s,resume:m,host:x,page:km(h.page,e.pageExecution),pageExecution:e.pageExecution,turn:{step:Math.max(1,E),taint:D,destinations:o}},snapshot:f,stages:{handlers:c?[c]:[],profile:t,step:Math.max(1,E),history:()=>O,injectAllowed:Ee(t),host:x,signal:s},scope:i.context,openSpan:S.open,readBack:Gm}),k;try{for(;;){let e=await w.next();if(e.done){k=e.value;break}j(e.value)}}catch(e){let n=C||Am(e);throw r.state=n?`uncertain`:y,n?new H(`unavailable`,W(`tool.execution_uncertain`,{},t.labels),{copy:{key:`tool.execution_uncertain`},cause:e}):e}finally{S.finish()}if(k.gated)return ce(n,r,b,k.gated,k.gateReadBack)||(r.state={gate:k.gated,createdAt:Date.now()}),{gated:k.gated};if(k.aborted){let e=k.callNotStarted?{code:`cancelled`,kind:`cancelled`,message:W(`session.tool_aborted`,{tool:r.name},t.labels)}:k.failure;if(k.callNotStarted&&e)oe(n,r,e);else{let e=Wm(k);e===void 0?v.delete(n):N(n,r,e,k.modelResult?.parts)}let{aborted:i}=k;return await ye(async()=>{T===`open`&&await ge(i)}),{outputRaw:k.outputRaw,outputModel:k.modelResult,failure:e,awaiting:k.awaiting}}k.modelResult?.provenance&&(D=Pe(D,k.modelResult.provenance,k.modelResult.suspicious),Fi(o,k.modelResult,k.modelResult.provenance));let{pendingInject:A}=k;A&&await ye(async()=>{(await _e()).aborted||he(`post_tool`,A,{callId:n,toolName:r.name})});let ee=Wm(k);return ee===void 0?v.delete(n):N(n,r,ee,k.modelResult?.parts),{outputRaw:k.outputRaw,outputModel:k.modelResult,failure:k.failure,awaiting:k.awaiting}},be=async(...e)=>{let t=await L(...e);return await r.flush?.(),t},xe=e=>new H(`request`,`gate ${e} expired`,{copy:{key:`session.gate_expired`}}),Se=e=>typeof e.state==`object`&&$r(e.state.createdAt,Date.now(),m),Ce=async(e,n)=>{let r=v.get(e);if(!r||r.state===`running`)throw new H(`request`,`call ${e} is not waiting to run`);if(n!==void 0&&n!==r.operationId)throw new H(`request`,W(`session.gate_expired`,{},t.labels),{copy:{key:`session.gate_expired`}});if(r.state===`uncertain`)throw new H(`unavailable`,W(`tool.execution_uncertain`,{},t.labels),{copy:{key:`tool.execution_uncertain`}});if(Se(r))throw jm(r)?P(e,r):await be(e,r,r.arguments,Gr({decision:`abandon`}),{}),xe(e);return r},we=n=>{if(n.type!==`tool`||n.tool.phase!==void 0)return n;let{name:r,arguments:a}=n.tool,o=Jd({tools:e.tools,profile:t,name:r,input:a,scope:i.context});return{...n,tool:{...n.tool,arguments:o}}},Te=async function*(e){let n=new Map,r=e.events.map(e=>{if(e.type!==`tool`)return e;let{tool:r}=e;if(r.phase===void 0){if(v.has(r.callId)||n.has(r.callId))throw new H(`bad_response`,W(`provider.duplicate_call`,{},t.labels),{cause:{code:`duplicate_pending_call`}});n.set(r.callId,crypto.randomUUID())}let i=n.get(r.callId)??v.get(r.callId)?.operationId;return{...e,tool:{...r,operationId:i}}});le(r);let a=Km(r.filter(e=>e.type!==`tokens`),f).map(we),o=performance.now(),s=await Hm(i,a,e.turnPhase,()=>{x=!0});e.turnPhase!==`abort`&&p.outboundTime(performance.now()-o);for(let e of s)e.type===`guardrail`&&p.outbound(e);Ym(s,A,ee);let c=yield*Zm(await Xm(s,O,v,t.providerContinuation?.history!==`stateless`),w),l=await p.settle();l&&(yield l);let u=c.some(e=>e.type===`done`&&e.interrupted);if((e.turnPhase===`complete`||e.turnPhase===`abort`||c.length>0)&&T===`open`){let t=Jm(c,e.turnPhase,u);for await(let e of ve(t))yield Vn(de(e),w);yield*qm(S)}else if(c.length>0)for(let e of c)yield Vn(de(e),w)},De=async function*(){let e=`host`,n,i=r.batches(),a;try{for(;;){a??=i.next();let n=await Promise.race([a,ne()]);if(I(s),n===`queued`){yield*qm(S);continue}if(a=void 0,n.done)break;let r=n.value;if(p.receive(r),yield*qm(S),r.type===`closed`){r.goAway?yield Nm(r,r.goAway,t.labels):r.error&&(yield V(r.error));break}if(r.type===`error`){e=`theorem`,yield V(r.error);break}if(r.type!==`row`&&(yield*Te(r),x)){e=`theorem`;break}}yield*qm(S)}catch(e){throw n=e,e}finally{y=!0,se(),x?ue(1011,`guardrail withheld`,e):ue(1e3,`session-closed`,e),await i.return(void 0),await p.close({thrown:n})}},Oe={profileId:t.id,canary:n,async*events(){for await(let e of De()){let n=b(e,t.labels);p.delivered(n),yield n}},sendAudio(e){return ye(async()=>{e.data&&(Hr(t,`audio`),!(await _e()).aborted&&ie({type:`audio`,mimeType:e.mimeType,data:e.data}))})},sendVideo(e){return ye(async()=>{Hr(t,`video`),!(await _e()).aborted&&ie({type:`video`,mimeType:e.mimeType,data:e.data})})},sendText(e){return ye(async()=>{Hr(t,`text`),!(await _e()).aborted&&me(e)})},sendContext(e){return ye(()=>(F(e),Promise.resolve()))},async executeTool({callId:e,operationId:t,decision:n,input:r,secret:i,credentials:a,host:o,page:s}){M();let c=await Ce(e,t),l=typeof c.state==`object`?c.state.gate:void 0;if(!l){if(n!==void 0||r!==void 0||i!==void 0)throw new H(`request`,`call ${e} is not waiting on a gate; it takes no decision, input, or secret`);return await be(e,c,c.arguments,void 0,{credentials:a,host:o,page:s})}if(n===void 0)throw new H(`request`,`call ${e} is waiting on a gate; answer it with a decision`);let u=Wr({callId:e,decision:n,input:r,secret:i},{name:c.name,arguments:l.preparedArguments??c.arguments,permission:l.permission,gateKind:l.kind,...l.kind===`auth`?{auth:l.authChallenge}:{}},g??[]);return u.typed&&await(a??_).set(u.typed.slot,u.typed.credential),g=u.sessionPermissions,await be(e,c,u.input,u.resume,{credentials:a,host:o,page:s})},answerToolCall({callId:e,events:n}){M();let r=v.get(e);if(!r||r.state!==`open`&&!jm(r))throw new H(`request`,`call ${e} is not waiting for an answer`);if(Se(r))throw P(e,r),xe(e);let i;for(let a of n)if(a.type===`tool`){if(a.tool.phase===void 0||a.tool.callId!==e)throw new H(`request`,`the run answering call ${e} carries a call of its own (${a.tool.callId})`);if(a.tool.operationId!==r.operationId||a.tool.name!==r.name)throw new H(`request`,W(`session.gate_expired`,{},t.labels),{copy:{key:`session.gate_expired`}});Mm(a.tool)&&(i=a.tool)}if(!i)throw new H(`request`,`the run answering call ${e} settled nothing`);let a=()=>{for(let e of n)e.type!==`done`&&j(e)};if(i.phase===`gate`)return a(),ce(e,r,jm(r),i.gate,i.readBack),{gated:i.gate};let{readBack:o}=i;if(o===void 0)throw new H(`request`,`the run answering call ${e} carries no readBack`);return a(),N(e,r,o),i.phase===`complete`?{outputRaw:i.output,...i.awaiting?{awaiting:!0}:{}}:{failure:i.failure}},async close(e=`session-closed`){return y||(y=!0,se(),ue(1e3,e,`host`)),await r.flush?.(),p.close({})}},{initialContext:ke,opening:Ae}=e;return(e.openInitialCycle||ke||Ae)&&ye(async()=>{if(ke&&F(ke),!e.openInitialCycle&&!Ae)return;let t=await _e();Ae&&!t.aborted&&ie({type:`text`,text:Ae})}),Oe}async function $m(e,t,n,r){let i=Om(t,e.profiles.find(t.profile),r);try{return await eh(e,t,n,i)}catch(e){throw await i.close({thrown:e}),e}}async function eh(e,t,n,r){let i=Kr(`runSession`,n.gateTtlMs),a=Lm(t),{request:o,events:s,refusal:c}=Gn(a,e.profiles.get(a.profile));if(c)throw c;I(o.signal);let{profile:l,generation:u}=pr(e,o);Fm(l),t.context&&zm(l,t.context),t.snapshot&&(u.tools=Im(l,t.snapshot)),u.builtins=u.tools.builtins;let d=Bm(u,t.voice),f=!!(t.input&&t.input.length>0);d=Vm(d,t.input);let p=Kn(d.resolvedSystem,[On(d.canary,l.labels),mn(l.labels),l.inputs?.context?Dn(l.labels):``]),m={...ol(e.tools,d,p.text),signal:o.signal,tapUpstream:r.sent},h=l.models[d.model];r.bind({request:m,generation:d,binding:h,system:p.text,canary:d.canary});let g=rn();yn(g,m),en(g,t.history??[]);let _=gi();Pi(_,m,g.own),Ni(_,t.history??[],g.own);let v=await oa(l,d.canary||void 0,p.private,g,mr(e.tools,l));Qo(l.providerContinuation,t.providerState,t.history);let y=await gm(e.providers.require(h.provider,h.apiId),{...h},m,n,t.providerState,l.providerContinuation);return r.setup(y.setup),Qm({execution:n.execution,pageExecution:n.pageExecution,tools:e.tools,profile:l,canary:d.canary,connection:y,gate:v,givenUrls:g,destinations:_,signal:o.signal,onStage:t.onStage,host:t.host,credentials:t.credentials,resolveHost:t.resolveHost,sessionPermissions:t.sessionPermissions,path:t.path,snapshot:u.tools,historySeed:t.history,openInitialCycle:f,requestEvents:s,initialContext:t.context,opening:f?void 0:Rm(l,t,o.input?.slots),trace:r,agents:nm(e,t,n,r.agentCanaries),gateTtlMs:i,signInGate:n.signInGate??`hold`})}function th(e){return{profile:e.profile,path:e.path,sessionPermissions:e.sessionPermissions,input:e.turnInput,model:e.model,host:e.host}}async function nh(e,t,n){let r=th(t);if(n.type===`decision`||n.type===`embedding`)throw new H(`request`,`Profile ${n.id}: type 'decision' cannot invoke tools`);let i=n.type===`host`?void 0:Pr(n,t.model);return await lr(e.tools,n,r,i)}async function*rh(e,t,n,r,i){let a=e.profiles.find(t.profile),{sink:o,policy:s}=bs({override:r,observability:a?.observability,guardrails:a?.guardrails}),c=En(n,{attributes:{"gen_ai.agent.name":t.profile,...pe(`gen_ai.conversation.id`,t.conversationId)},links:y(t.links),...t.traceparent?{traceparent:t.traceparent}:{}}),l=[];try{let e=a?.labels;for await(let t of i.events(c,l))yield Vn(b(t,e),s.include.guardrailMatchPreview);i.ended?.(c)}catch(e){throw i.failed(c,e),e}finally{await fs(o,Ur({spans:c.collect(),policy:s,canaries:l,...t.metadata?{metadata:t.metadata}:{}}),s)}}function ih(e,t,n){return r=>St(e,{name:t.name,callId:n,call:{arguments:Be(Ar(t.input))}}).end(r)}async function ah(e,t){let n=e.profiles.get(t.profile);return{profile:n,snapshot:t.snapshot?or(t.snapshot):await nh(e,t,n)}}function oh(e,t,n){return sh(e,t,n).events}function sh(e,t,n){let r=t.callId??ft(t.name),i={...t,operationId:t.operationId??crypto.randomUUID()},a=e=>(t,n)=>(e.root.set(n),e.root),o=rh(e,i,be(i.name),n,{events:(t,n)=>dh(e,i,r,a(t),ih(a(t),i,r),t.root.traceparent(),n),failed:(e,t)=>ih(a(e),i,r)(F(t)?{outcome:`cancelled`}:{outcome:`error`,thrown:t})});return{name:i.name,callId:r,events:o}}function ch(e,t,n){return lh(e,t,n).events}function lh(e,t,n){let{calls:r,...i}=t,a=r.map(e=>{let t=e.callId??ft(e.name);return{callId:t,invoke:{...i,name:e.name,input:e.input,callId:t,operationId:e.operationId??crypto.randomUUID()},announce:e.callId===void 0}}),o=rh(e,t,`tool_step ${t.profile}`,n,{events:(n,r)=>uh(e,t,a,(e,t)=>n.root.child(e,{attributes:t}),n.root.traceparent(),r),ended:e=>e.root.end({code:`OK`}),failed:(e,t)=>{F(t)?e.root.end():bt(e.root,t)}});return{calls:a.map(({callId:e,invoke:t})=>({name:t.name,callId:e})),events:o}}async function*uh(e,t,n,r,i,a){let{profile:o,snapshot:s}=await ah(e,t),c=crypto.randomUUID();for(let{callId:e,invoke:t,announce:r}of n)r&&(yield Ue({name:t.name,callId:e,operationId:t.operationId},Be(t.input),{stepId:c,stepCallCount:n.length}));let l=lf(n.map(({callId:e})=>e),Zn(o)===!0,t.signal),u={stepCalls:n.map(({callId:e,invoke:t})=>({callId:e,tool:t.name,input:Be(t.input)})),wait:l.wait},d=!1;try{d=(yield*df(n.map(({callId:t,invoke:n})=>uf(l,t,()=>fh(e,n,o,s,t,r,ih(r,n,t),a,u))))).some(e=>e?.gated!==void 0)}catch(e){yield V(e)}yield A({stop:{kind:d?`gate`:`completed`},traceparent:i},s)}async function*dh(e,t,n,r,i,a,o){let{profile:s,snapshot:c}=await ah(e,t);t.callId===void 0&&(yield Ue({name:t.name,callId:n,operationId:t.operationId},Be(t.input)));let l=!1;try{l=(yield*fh(e,t,s,c,n,r,i,o)).gated!==void 0}catch(e){yield V(e)}yield A({stop:{kind:l?`gate`:`completed`},traceparent:a},c)}function fh(e,t,n,r,i,a,o,s,c){return hl(t.execution,{operationId:t.operationId??crypto.randomUUID(),callId:i,profileId:n.id,toolId:t.name},{input:t.input,resume:t.resume,snapshot:r,context:{model:t.model,turnInput:t.turnInput,promoted:t.promoted}},t.signal,l=>ph(e,t,n,r,i,a,o,s,l,c),i=>zd({outcome:i,tools:e.tools,profile:n,name:t.name,resume:t.resume,snapshot:r}))}async function*ph(e,t,n,r,i,a,o,s,c,l){if(t.promoted?.length){let{failure:a}=Ir(e.tools,r,t.promoted,n);if(a)return o({outcome:`error`,failure:a}),yield R({name:t.name,callId:i,operationId:t.operationId,activityFailed:He(t.name,n.labels)},a),{failure:a,callNotStarted:!0}}let u=t.onStage?[t.onStage]:[];return yield*Yd({tools:e.tools,beginBody:c,agents:tm(e,t,s),profile:n,name:t.name,input:t.input,callId:i,ctx:{operationId:t.operationId,sessionPermissions:t.sessionPermissions,credentials:t.credentials,resolveHost:t.resolveHost,path:t.path,signal:t.signal,resume:t.resume,page:t.page,pageExecution:t.pageExecution,host:t.host},snapshot:r,openSpan:a,stages:{handlers:u,profile:n,step:1,history:()=>[],injectAllowed:!1,host:t.host,signal:t.signal,...l}})}function mh(e){return e.phase===`complete`||e.phase===`gate`||e.phase===`error`}function hh(e,t){t.phase===`running`&&(e.activity=t.activity??e.activity),mh(t)&&(e.settled=t)}function gh(e,t){return{...e.settled??{phase:`error`,name:e.name,callId:e.callId,at:Date.now(),failure:{code:`invoke_failed`,kind:t?.errorKind??`internal`,message:t?.errorInternal??t?.error??W(`tool.did_not_run`,{tool:e.name})}},events:e.events,...e.activity?{activity:e.activity}:{}}}async function _h(e){let t={name:e.name,callId:e.callId,events:[]},n;for await(let r of e.events)t.events.push(r),r.type===`error`&&(n=r),r.type===`tool`&&r.tool.callId===e.callId&&hh(t,r.tool);return gh(t,n)}async function*vh(e){let t=e.calls.map(({name:e,callId:t})=>({name:e,callId:t,events:[]})),n=new Map(e.calls.map(({callId:e},t)=>[e,t])),r=new Set,i;for await(let a of e.events){if(a.type===`error`&&(i=a),a.type!==`tool`)continue;let e=n.get(a.tool.callId),o=e===void 0?void 0:t[e];e!==void 0&&o&&(o.events.push(a),hh(o,a.tool),o.settled&&!r.has(e)&&(r.add(e),yield{...gh(o,i),index:e}))}for(let[e,n]of t.entries())r.has(e)||(yield{...gh(n,i),index:e})}function yh(e,t,n){try{return $s(e,t.profile,t.model,n,t)}catch(e){return{complete(){throw e}}}}function bh(){let e=mi();return{providers:e.providers,tools:e.tools,profiles:e.profiles,schemas:e.schemas,runTurn:(t,n={},r)=>Zp(e,t,yh(e,t,n),r),runSession:(t,n,r)=>$m(e,t,n,r),compactHistory:(t,n={},r)=>om(e,t,$s(e,t.profile,t.model,n),r),invokeTool:(t,n)=>oh(e,t,n),invokeToolStep:(t,n)=>ch(e,t,n),runTool:(t,n)=>_h(sh(e,t,n)),runToolStep:(t,n)=>vh(lh(e,t,n)),resolveTurn:t=>pr(e,t),projectProfile:t=>dr(e,t),runDecision:(t,n)=>Us(e,t,n),runEmbedding:(t,n={})=>Qs(e,t,n)}}bh();function xh(e){return e.type===`tool`?{type:`tool_call`,call:e.tool}:e.type===`done`?{type:`done`,stop:e.stop,...e.interrupted?{interrupted:!0}:{}}:e}function Sh(e,t,n){let r=it({id:t,name:`Scripted`,description:`Answers with the events a scripted model gives.`,endpoints:{text:`/`,image:`/`,speech:`/`},options:p(f(),c()),create:e=>({async*complete(t){let r=!1;for await(let i of n.complete({...t,builtInTools:e.builtInTools}))i.type===`done`&&(r=!0),yield xh(i);r||(yield{type:`done`,stop:{kind:`completed`}})}})});return he({id:e,name:`Scripted`,description:`Answers with a scripted model.`,serves:()=>[{protocol:r,baseUrl:`https://scripted.invalid`}]})}function Ch(e,t,n,r){let i=e.provider?.(n,r);if(i&&n.type!==`host`){let e=r??(`defaultModel`in n?n.defaultModel:Object.keys(n.models)[0]),a=n.models[e],o=`scripted-${n.id.toLowerCase().replace(/[^a-z0-9-]/g,`-`)}`,s=o.replaceAll(`-`,``);t.providers.replace(Sh(o,s,i)),t.profiles.register({...n,models:{...n.models,[e]:{...a,protocol:s,provider:o,options:{},keySlot:void 0,fallbackKeySlot:void 0}}})}let a=e.providers??{},o=e.hostOptions?.(n,r)??{};return{...o,vault:o.vault??a.vault,fetch:o.fetch??a.fetch??a.local?.fetch,wait:o.wait??a.wait}}function wh(e,t){let n=t?.providers?.local?.baseUrl;for(let t of x)ae(e.providers,t.definition===`local`&&n?{...t,connection:{baseUrl:g(n)}}:t);for(let n of t?.providerDefinitions??[])e.providers.register(n)}function Th(e,t){return async n=>await t.onAgentCall?.(n)||{provider:Ch(t,e,e.profiles.get(n.profile))}}function Eh(e,t){return v.indexOf(e??`off`)>v.indexOf(t)?e:t}function Dh(e,t){if(t.mode!==`demo`||t.keys.holds.afterRemoteRead===`off`)return e;let n=Eh(e.taint?.afterRemoteRead,t.keys.holds.afterRemoteRead);return n===e.taint?.afterRemoteRead?e:{...e,taint:{...e.taint,afterRemoteRead:n}}}function Oh(e,t){switch(ii(t)){case`public`:return{...e,network:void 0};case`none`:return{...e,network:{allowedSchemes:[]}};case`asWritten`:return e}}function kh(e,t){return e.type===`speech`||e.type===`decision`||e.type===`embedding`?e:e.type===`host`?{...e,guardrails:Oh(e.guardrails??{},t)}:{...Ah(e,t),guardrails:Dh(Oh(e.guardrails??{},t),t)}}function Ah(e,t){if(e.type!==`live`||t.mode!==`demo`)return e;let n=e.live?.contextCompression;if(!n)return e;let r=ri(t.keys,{triggerTokens:n.triggerTokens,targetTokens:n.slidingWindow.targetTokens});return{...e,live:{...e.live,contextCompression:{...n,triggerTokens:r.triggerTokens,slidingWindow:{...n.slidingWindow,targetTokens:r.targetTokens}}}}}async function jh(t){if(!Mh(t))return t;let{compileDetect:n}=await e(async()=>{let{compileDetect:e}=await import(`./compile-egress-BSxOdX4K.js`);return{compileDetect:e}},__vite__mapDeps([0,1,2]));return Nh(t,n)}function Mh(e){let t=e.guardrails&&`detect`in e.guardrails?e.guardrails.detect:void 0;return typeof t==`object`&&Dt(t)}function Nh(e,t){if(!Mh(e))return e;let n=e.guardrails;return{...e,guardrails:{...n,detect:t(n.detect)}}}async function Ph(t){let n=t.flatMap(e=>[`input`,`output`].flatMap(t=>Fh(e[`${t}Schema`]).map(n=>({tool:e.name,side:t,source:n}))));if(!n.length)return;let{slowPatternProblem:r}=await e(async()=>{let{slowPatternProblem:e}=await import(`./compile-egress-BSxOdX4K.js`);return{slowPatternProblem:e}},__vite__mapDeps([0,1,2]));for(let{tool:e,side:t,source:i}of n){let n=r(i);if(n)throw new H(`request`,`${e}: the pattern /${i}/ in its ${t} schema ${n}`)}}function Fh(e){return Array.isArray(e)?e.flatMap(Fh):!e||typeof e!=`object`?[]:Object.entries(e).flatMap(([e,t])=>[...e===`pattern`&&typeof t==`string`?[t]:[],...e===`patternProperties`&&t&&typeof t==`object`?Object.keys(t):[],...Fh(t)])}function Ih(e){try{return e()}catch(e){throw e instanceof H&&e.kind===`config`?new H(`request`,e.message,{cause:e}):e}}var Lh=(e=>Ih(()=>Ln(e)));async function Rh(e,t,n,r,i){if(zr(t).length>32)throw new H(`request`,`The studio supports up to 32 key slots.`);await Ph(n);let a=Lh(kh(await jh(t),i));if(a.type!==`host`)for(let t of Object.values(a.models)){let n=_t({profileType:a.type,protocol:t.protocol,provider:t.provider,definition:e.providers.require(t.provider,t.apiId).definition.id,apiId:t.apiId,decision:a.type===`decision`,builtInTools:`builtInTools`in t?t.builtInTools??[]:[]},i);if(n)throw new H(`request`,n.message)}return Ih(()=>Dr(e,a,n,r,i.toolHandlers))}async function zh(e,t,n,r,i=[]){let a=bh();wh(a,r);for(let e of i)await Rh(a,e.profile,e.customTools,e.structured,r);return{scope:a,profile:await Rh(a,e,t,n,r)}}var Bh=`studioRun`;function Vh(){let e=new Map;return{sink:{write:t=>{let n=t.metadata?.[Bh];return typeof n==`string`&&e.get(n)?.(t),Promise.resolve()}},route(t){let n=globalThis.crypto.randomUUID();return e.set(n,t),{metadata:{[Bh]:n},close:()=>{e.delete(n)}}}}}var Hh={maxGates:32,maxOperations:128,maxCheckpoints:256,maxPermissions:2048,maxStateBytes:33554432,maxInvocationBytes:262144,maxOutcomeBytes:262144};function Uh(e={}){let t={...Hh,...e};if(Object.keys(e).some(e=>!Object.hasOwn(Hh,e))||Object.values(t).some(e=>!Number.isSafeInteger(e)||e<=0))throw new H(`config`,W(`error.config`),{cause:{code:`session_limits`}});return t}function Wh(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength}function Gh(){throw new H(`unavailable`,W(`error.unavailable`),{cause:{code:`session_state_capacity`}})}function Kh(e,t){let n=Object.values(e.gates),r=Object.values(e.operations);(n.length>t.maxGates||r.length>t.maxOperations||e.providerCheckpoints.length>t.maxCheckpoints||e.permissions.length>t.maxPermissions)&&Gh();for(let e of n)Wh(e)>t.maxInvocationBytes&&Gh();let i=n.length*t.maxOutcomeBytes;for(let e of r)e.status!==`ready`&&e.invocation&&Wh(e.invocation)>t.maxInvocationBytes&&Gh(),e.status===`settled`?Wh(e.outcome)>t.maxOutcomeBytes&&Gh():(i+=t.maxOutcomeBytes,e.status===`ready`&&Wh(e)>t.maxInvocationBytes&&Gh());Wh(e)+i>t.maxStateBytes&&Gh()}var qh=864e5,Jh=t({data:f(),mimeType:f(),name:f().optional()}),Yh=t({text:f().optional(),role:f().optional(),slots:p(f(),f()).optional(),context:t({client:C.optional(),server:C.optional()}).optional(),attachments:s(r([Jh,t({uri:f(),mimeType:f(),name:f().optional()})])).optional(),voice:s(Jh).optional(),history:s(N).optional(),repair:t({previousOutput:f(),rejection:f(),guidance:f()}).optional(),historyTokens:d().nonnegative().optional(),inputTokens:d().nonnegative().optional()}),Xh=t({profileId:f().min(1),operationId:f().min(1).max(256),callId:f().min(1),name:f().min(1),arguments:L,gate:t({kind:l(ot),permission:l(Le).optional(),auth:t({slot:f().min(1),authType:l(Me),service:f().min(1)}).optional()}).superRefine((e,t)=>{e.kind===`auth`!=(e.auth!==void 0)&&t.addIssue({code:`custom`,path:[`auth`]})}),snapshot:Et.optional(),promoted:s(f().min(1)),turnInput:Yh,model:f().optional(),createdAt:d().finite().nonnegative(),expiresAt:d().finite().nonnegative().optional()}),Zh=t({input:L,resume:t({granted:i().optional(),gateKind:l(ot).optional(),cause:l([`declined`,`abandoned`,`expired`]).optional(),signIn:i().optional(),edited:t({from:L}).optional()}),sessionPermissions:s(f().min(1)),page:r([t({output:C}),t({timedOut:o(!0)}),t({unanswered:o(!0)})]).optional()}),Qh={operationId:f().min(1).max(256),callId:f().min(1),profileId:f().min(1),toolId:f().min(1),invocationHash:f().min(1),invocation:sl.optional()},$h=t({grantId:f().min(1),expiresAt:d().finite().positive(),resultHash:f().optional()}),eg=u(`status`,[t({status:o(`ready`),profileId:f().min(1),pending:Xh,answer:Zh,readyAt:d().finite().nonnegative()}),t({...Qh,status:o(`running`),pageGrant:$h.optional(),claimToken:f().min(1),startedAt:d().finite().nonnegative()}),t({...Qh,status:o(`settled`),pageGrant:$h.optional(),outcome:ul,settledAt:d().finite().nonnegative(),retainUntil:d().finite().nonnegative().optional()}),t({...Qh,status:o(`uncertain`),pageGrant:$h.optional(),claimToken:f().min(1),reason:l([`execution_interrupted`,`settlement_write_failed`,`worker_lost`]),detectedAt:d().finite().nonnegative()})]),tg=t({version:o(3),operations:p(f().min(1),eg),permissions:s(f().min(1)),gates:p(f().min(1),Xh),providerCheckpoints:s(f().min(1))}).superRefine((e,t)=>{for(let[n,r]of Object.entries(e.operations))((r.status===`ready`?r.pending:r).operationId!==n||r.status===`ready`&&r.profileId!==r.pending.profileId||n in e.gates||r.status===`settled`&&(r.outcome.event.tool.operationId!==n||r.outcome.event.tool.callId!==r.callId||r.outcome.event.tool.name!==r.toolId))&&t.addIssue({code:`custom`,path:[`operations`,n]});for(let[n,r]of Object.entries(e.gates))n!==r.operationId&&t.addIssue({code:`custom`,path:[`gates`,n]})});function ng(){return{version:3,operations:{},permissions:[],gates:{},providerCheckpoints:[]}}function rg(e,t,n){return Object.fromEntries(Object.entries(e).filter(([,e])=>e.expiresAt===void 0?!$r(e.createdAt,t,n):t<e.expiresAt))}function ig(e){let t=e.ttlMs??864e5,n=e.maxSessions??1e4;if(!Number.isFinite(t)||t<=0||!Number.isSafeInteger(n)||n<=0)throw new H(`config`,W(`error.config`),{cause:{code:`session_store_options`,ttlMs:t,maxSessions:n}});return{ttlMs:t,maxSessions:n}}function ag(e={}){let{ttlMs:t,maxSessions:n}=ig(e),r=Uh(e.sessionLimits),i=new Map,a=e=>Object.values(e.snapshot.state.gates).some(e=>e.expiresAt===void 0||Date.now()<e.expiresAt)||Object.values(e.snapshot.state.operations).some(e=>e.status!==`settled`||Date.now()<(e.retainUntil??e.settledAt+864e5)),o=e=>{let n=i.get(e);if(n&&!a(n)&&Date.now()-n.touched>=t)i.delete(e);else return n?.snapshot};return{load(e){return Promise.resolve(structuredClone(o(e)))},compareAndSwap(e,t,s){let c=o(e);if((c?.revision??null)!==t)return Promise.resolve({written:!1});let l=tg.parse(s);if(Kh(l,r),!c&&i.size>=n){let e=[...i].find(([,e])=>!a(e));if(!e)throw new H(`unavailable`,W(`error.unavailable`),{cause:{code:`session_store_capacity`}});i.delete(e[0])}let u=crypto.randomUUID();return i.delete(e),i.set(e,{snapshot:{revision:u,state:structuredClone(l)},touched:Date.now()}),Promise.resolve({written:!0,revision:u})}}}var og=m({events:s(j),base:s(N),baseEvents:d().int().nonnegative(),workedMs:d().nonnegative(),endedAt:d(),model:f().optional(),effort:f().optional()}),sg=m({version:o(1),transcript:s(vr),history:s(N),providerState:Fe.optional(),inputTokens:d().optional(),historyTokens:d().optional(),paused:og.optional()});function cg(){return{version:1,transcript:[],history:[]}}function lg(e){return new H(`request`,W(`session.conversation_unknown`),{copy:{key:`session.conversation_unknown`},...e===void 0?{}:{cause:e}})}function ug(e){let t=e.keys[e.keyVersion];if(t===void 0)throw new H(`config`,W(`error.config`),{cause:{code:`conversation_seal_key_missing`,keyVersion:e.keyVersion}});return{async read(t,n){let r=await di({sealed:n,keys:e.keys,binding:[t]}).catch(()=>void 0);if(r!==void 0)return{revision:n,conversation:sg.parse(JSON.parse(r))}},async write(n,r,i,a){if(r!==i)return{written:!1};let o=sg.parse(a),s=await ci({plaintext:JSON.stringify(o),key:t,binding:[n],keyVersion:e.keyVersion});return{written:!0,ref:s,revision:s}}}}function dg(e,t){let n={...e===void 0?{}:{client:e},...t===void 0?{}:{server:t}};return Object.keys(n).length>0?n:void 0}function fg(e,t){let{context:n,...r}=e,i=dg(n,t);return i?{...r,context:i}:r}function pg(e,t){let n=dg(e.context,t);return{...e.history?{history:e.history}:{},...e.slots?{slots:e.slots}:{},...n?{context:n}:{},...e.resume?{providerState:e.resume.providerState,awayMs:e.resume.awayMs}:{}}}function mg(e,t){return pi(e.paused?.events??[]).some(e=>e.callId===t.callId&&e.operationId===t.operationId)}function hg(e){let{profile:t,clientEvents:n}=e;return{sessionId:e.sessionId,store:e.store,showThoughts:Jr(t.outputs),forReader:e=>gr(e,n),failureText(e){let r=gr(b(e,t.labels),n);return r.type===`error`&&r.error?r.error:W(`error.${e.errorKind}`,{},t.labels)}}}async function gg(e,t,n,r){let i=await _g(e,t,r);return n.kind===`message`&&Mg(i.conversation,n.abandon),n.kind===`answer`&&Ng(i.conversation,n.call),n.kind===`rewind`&&zg(i.conversation,n.at),i}async function _g(e,t,n){if(t===void 0){if(n)throw new H(`request`,`a transcript restores a conversation the host lost, and this message names none`);return{ref:null,revision:null,conversation:cg()}}let r=await e.store.read(e.sessionId,t);if(r)return{ref:t,revision:r.revision,conversation:r.conversation};if(!n)throw lg();let{conversation:i,events:a}=vg(n.profile,n.blocks);return{ref:null,revision:null,conversation:i,events:a}}function vg(e,t){let{request:n,events:r,refusal:i}=Gn({profile:e.id,input:{history:ui(t)}},e);if(i)throw i;return{conversation:{...cg(),transcript:[...t],history:n.input?.history??[]},events:r}}function yg(e,t){return qr(t.map(t=>e.forReader(t)),{showThoughts:e.showThoughts})}function bg(e,t){let{paused:n}=t;return{transcript:t.transcript,...n?{paused:{events:n.events.map(t=>e.forReader(t)),blocks:fi(yg(e,n.events),{workedMs:n.workedMs,endedAt:n.endedAt})}}:{}}}async function $(e,t,n){let r=await e.store.write(e.sessionId,t.ref,t.revision,n);if(!r.written)throw new H(`unavailable`,`the conversation changed while this reply ran`,{cause:{code:`conversation_conflict`}});return{ref:r.ref,revision:r.revision,conversation:n}}function xg(e,t){return e.ref===null?[]:[{type:`conversation`,ref:e.ref,...t?{posted:!0}:{}}]}function Sg(e){return hi(e.base,e.events.slice(e.baseEvents))}function Cg(e,t){let n=li({...ai(),providerState:e.providerState,inputTokens:e.inputTokens,historyTokens:e.historyTokens},t);return{...n.providerState?{providerState:n.providerState}:{},...n.inputTokens===void 0?{}:{inputTokens:n.inputTokens},...n.historyTokens===void 0?{}:{historyTokens:n.historyTokens}}}function wg(e,t,n){let{paused:r,providerState:i,...a}=t;return{...a,...Cg(t,n.events),transcript:[...t.transcript,...fi(yg(e,n.events),{workedMs:n.workedMs,endedAt:Date.now()})],history:Sg(n)}}function Tg(e,t,n){let r={events:t.events,base:t.base,baseEvents:t.baseEvents,workedMs:t.workedMs,endedAt:Date.now(),...n.model?{model:n.model}:{},...n.effort?{effort:n.effort}:{}};return{...e,...Cg(e,t.events),paused:r}}function Eg(e,t,n,r){let i=wg(e,t,n);return i.transcript.slice(t.transcript.length).some(e=>e.kind===`error`)?i:{...i,transcript:[...i.transcript,{id:crypto.randomUUID(),kind:`error`,message:e.failureText(r)}]}}function Dg(e,t){let{paused:n,...r}=e;return{...r,transcript:[...e.transcript,{id:crypto.randomUUID(),kind:`turn-done`,stop:{kind:`cancelled`}}],history:hi(t.base,t.events.slice(t.baseEvents,Math.max(t.baseEvents,t.seed)))}}async function*Og(e,t,n,r,i,a){let{conversation:o}=t,s=Date.now(),c=()=>({...n,workedMs:n.workedMs+(Date.now()-s)}),l,u=t;try{let e=r.run({input:i,providerState:o.providerState,model:r.model,effort:r.effort});for await(let t of e)n.events.push(t),t.type===`error`?l=t:(t.type===`compaction`&&(n.base=a(t.history),n.baseEvents=n.events.length),yield t)}catch(t){throw u=await $(e,u,r.signal.aborted?Dg(o,c()):Eg(e,o,c(),V(t))),yield*xg(u),t}let d=c();if(r.signal.aborted)u=await $(e,u,Dg(o,d));else if(l)u=await $(e,u,Eg(e,o,d,l));else if(pi(d.events).length)u=await $(e,u,Tg(o,d,r));else{u=await $(e,u,wg(e,o,d)),yield*xg(u);let t=await kg(e,u,d,r,a);t&&(yield*xg(t));return}yield*xg(u),l&&(yield l)}async function kg(e,t,n,r,i){let a=n.events.findLast(e=>e.type===`done`),o=a?.type===`done`?a.compaction:void 0;if(!o?.needed)return;let s=await r.compact(o.history,o.tokens,r.model);if(!s)return;let c=Sg({...n,base:i(s),baseEvents:0});return $(e,t,{...t.conversation,history:c})}function Ag(e){let t;try{t=sn(e.data).length}catch{throw new H(`request`,W(`error.request`),{cause:{code:`request_file_encoding`}})}return{name:e.name,mimeType:e.mimeType,sizeBytes:t,data:e.data}}function jg(e,t,n){let r=Yr(e.inputs,{...t.text===void 0?{}:{text:t.text},...t.attachments?{attachments:t.attachments.map(Ag)}:{},...t.voice?{voice:t.voice.map(Ag)}:{}},e.guardrails);if(!r.ok)throw zn(r.issues);let{text:i,...a}=t,{text:o}=r.draft;return{draft:r.draft,blocks:r.blocks,media:{...t.attachments?{attachments:t.attachments}:{},...t.voice?{voice:t.voice}:{}},input:fg(o===void 0?a:{...a,text:o},n)}}function Mg(e,t){let n=pi(e.paused?.events??[]);if(n.length&&!t)throw new H(`request`,`a message to a paused reply must walk away from it`,{copy:{key:`session.gate_pending`}});let r=t??[];if(n.length!==r.length||!r.every(t=>mg(e,t)))throw new H(`request`,`the message walks away from calls the reply is not waiting on`,{copy:{key:`session.gate_expired`}})}function Ng(e,t){if(!mg(e,t))throw new H(`request`,`the reply is not waiting on ${t.callId}`,{copy:{key:`session.gate_expired`}})}async function*Pg(e,t){for(let n of t){for await(let t of n.events){if(t.type===`error`)return t;t.type===`tool`&&(e.events.push(t),yield t)}if(!e.events.some(e=>ei(e,n.callId)))throw new H(`internal`,`walked-away call ${n.callId} ended without settling`)}return void 0}function Fg(e){return{base:e.base,events:[...e.events],baseEvents:e.baseEvents,seed:e.events.length,workedMs:e.workedMs}}function Ig(e){return new H(e.errorKind,e.error??W(`error.${e.errorKind}`))}async function*Lg(e){let{host:t,message:n,runner:r}=e,{events:i=[],...a}=e.opened,o=a;yield*i;let{paused:s}=o.conversation;if(Mg(o.conversation,e.walkAway),s){let n=Fg(s),r=yield*Pg(n,e.walkAway??[]);if(r){o=await $(t,o,{...o.conversation,paused:{...s,events:n.events,endedAt:Date.now()}}),yield*xg(o),yield r;return}o={...o,conversation:wg(t,o.conversation,n)}}let{conversation:c}=o,l=e=>oi(e,n.draft,n.media);o=await $(t,o,{...c,transcript:[...c.transcript,...n.blocks],history:l(c.history)}),yield*xg(o,`posted`);let u={base:l(c.history),events:[],baseEvents:0,seed:0,workedMs:0};yield*Og(t,o,u,r,{...n.input,history:c.history,...c.inputTokens===void 0?{}:{inputTokens:c.inputTokens},...c.historyTokens===void 0?{}:{historyTokens:c.historyTokens}},l)}async function*Rg(e){let{host:t,runner:n}=e,r=e.opened;Ng(r.conversation,e.call);let{paused:i,...a}=r.conversation;if(!i)return;let o=Fg(i),s=Date.now(),c;for await(let t of e.settling){if(t.type===`error`){c=t;break}o.events.push(t),yield t}if(o.workedMs+=Date.now()-s,o.seed=o.events.length,c||pi(o.events).length){let n=o.events.some(t=>ei(t,e.call.callId)),a=c&&!n?i.events:o.events;r=await $(t,r,{...r.conversation,paused:{...i,events:a,workedMs:o.workedMs,endedAt:Date.now()}}),yield*xg(r),c&&(yield c)}else yield*Og(t,{...r,conversation:a},o,{...n,model:n.model??i.model,effort:n.effort??i.effort},{history:Sg(o),...a.inputTokens===void 0?{}:{inputTokens:a.inputTokens},...a.historyTokens===void 0?{}:{historyTokens:a.historyTokens}},e=>e)}function zg(e,t){if(!(Number.isSafeInteger(t)&&t>=-1&&t<e.transcript.length))throw new H(`request`,`no transcript block ${t} to rewind to`)}async function Bg(e){let{host:t,opened:n,at:r}=e,{conversation:i}=n;if(zg(i,r),Mg(i,e.walkAway),i.paused){let n=Fg(i.paused),r=Pg(n,e.walkAway??[]),a=await r.next();for(;!a.done;)a=await r.next();if(a.value)throw Ig(a.value);i=wg(t,i,n)}let a=i.transcript.slice(0,r+1);return $(t,n,{version:1,transcript:a,history:ui(a)})}function Vg(e){if(!e.operationId)throw new H(`internal`,W(`error.internal`));return e.operationId}function Hg(e){return pi(e.paused?.events??[]).map(e=>({callId:e.callId,operationId:Vg(e)}))}function Ug(e){return new H(`request`,`a stateless chat keeps no conversation to ${e}`)}var Wg=t({callId:f().min(1),operationId:f().min(1).max(256),grantId:f().min(1),page:r([t({output:C}),t({unanswered:o(!0)}),t({timedOut:o(!0)})])});function Gg(){throw new H(`unavailable`,W(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`}})}function Kg(e=128){if(!Number.isSafeInteger(e)||e<=0)throw new H(`config`,W(`error.config`));let t=new Map,n=(e,t)=>JSON.stringify([e,t]);return{reserve(r,i,a){let o=n(r,i);(a?.aborted||t.has(o)||t.size>=e)&&Gg();let s=()=>{},c=new Promise(e=>{s=e}),l=()=>{t.delete(o),a?.removeEventListener(`abort`,l),s({timedOut:!0})};return t.set(o,e=>{t.delete(o),a?.removeEventListener(`abort`,l),s(e)}),a?.addEventListener(`abort`,l,{once:!0}),{result:c,cancel:l}},deliver(e,r,i){let a=t.get(n(e,r));return a?(a(i),Promise.resolve()):Promise.reject(new H(`unavailable`,W(`tool.execution_uncertain`)))}}}function qg(e,t,n,r=2e4){if(!Number.isSafeInteger(r)||r<=0||r>2147483647)throw new H(`config`,W(`error.config`));return{execution:{async dispatch(i,a){i.invocation||Gg();let o=crypto.randomUUID(),s=Date.now()+r,c=n.reserve(t,o,a);try{await e.mutate(t,e=>{let t=e.operations[i.operationId];(t?.status!==`running`||t.claimToken!==i.claimToken||t.invocationHash!==i.invocationHash||t.pageGrant)&&Gg(),t.pageGrant={grantId:o,expiresAt:s}})}catch(e){throw c.cancel(),e}let l=s-Date.now();(l<=0||a?.aborted)&&(c.cancel(),Gg());let u=()=>{},d=new Promise(e=>{u=()=>e({timedOut:!0})}),f=setTimeout(u,l);return a?.addEventListener(`abort`,u,{once:!0}),{grantId:o,result:Promise.race([c.result,d]).finally(()=>{clearTimeout(f),a?.removeEventListener(`abort`,u),c.cancel()})}}},async answer(r){let i=Wg.parse(r),a=await cl(i.page),o=await e.mutate(t,e=>{let t=e.operations[i.operationId];return(!t||t.status===`ready`||t.callId!==i.callId||t.pageGrant?.grantId!==i.grantId)&&Gg(),t.pageGrant.resultHash===void 0?((t.status!==`running`||Date.now()>=t.pageGrant.expiresAt)&&Gg(),t.pageGrant.resultHash=a,{duplicate:!1,settled:!1}):(t.pageGrant.resultHash!==a&&Gg(),t.status===`uncertain`&&Gg(),{duplicate:!0,settled:t.status===`settled`})});return o.duplicate||await n.deliver(t,i.grantId,i.page),o.settled}}}function Jg(e,n,r,i){if(typeof e.compareAndSwap!=`function`)throw new H(`config`,W(`error.config`),{cause:{code:`session_store_contract`,required:`compareAndSwap`}});let a=u(`written`,[t({written:o(!1)}),t({written:o(!0),revision:f().min(1)})]),s=async(t,i)=>{let a=await e.load(t),o=tg.safeParse(a===void 0?ng():a.state);if(!o.success||a!==void 0&&(typeof a.revision!=`string`||!a.revision))throw new H(`config`,W(`error.config`),{cause:{code:`session_store_state`}});let s=structuredClone(o.data);for(let e of Object.values(s.gates))e.expiresAt??=e.createdAt+n;s.gates=rg(s.gates,i,n);for(let e of Object.values(s.operations))e.status===`ready`&&e.answer.resume.granted===!0&&(e.answer.resume.gateKind??=e.pending.gate.kind);return s.operations=Object.fromEntries(Object.entries(s.operations).filter(([,e])=>e.status!==`settled`||i<(e.retainUntil??e.settledAt+r))),{revision:a?.revision??null,state:s}};return{async read(e){return(await s(e,Date.now())).state},async mutate(t,o){let c=Date.now();for(let l=0;l<8;l++){let{revision:l,state:u}=await s(t,c),d=await o(u);for(let e of Object.values(u.gates))e.expiresAt??=e.createdAt+n;for(let e of Object.values(u.operations))e.status===`settled`&&(e.retainUntil??=e.settledAt+r);Kh(u,i);let f=tg.safeParse(u);if(!f.success)throw new H(`config`,W(`error.config`),{cause:{code:`session_store_transition`}});let p=a.safeParse(await e.compareAndSwap(t,l,f.data));if(!p.success)throw new H(`config`,W(`error.config`),{cause:{code:`session_store_write_result`}});if(p.data.written){if(p.data.revision===l)throw new H(`config`,W(`error.config`),{cause:{code:`session_store_revision`}});return d}}throw new H(`unavailable`,W(`error.unavailable`),{cause:{code:`session_store_contention`}})}}}var Yg=`theorem_session`,Xg=/^[A-Za-z0-9_-]{32,128}$/,Zg=2592e3;function Qg(e,t){for(let n of(e.headers.get(`cookie`)??``).split(`;`)){let[e,...r]=n.trim().split(`=`);if(e===t)return r.join(`=`)}}function $g(){return si(crypto.getRandomValues(new Uint8Array(32)))}function e_(e){let t=Qg(e,Yg);return t&&Xg.test(t)?t:void 0}function t_(e){let t=e_(e);if(t)return{id:t};let n=$g();return{id:n,setCookie:`${Yg}=${n}; Path=/; Max-Age=${Zg}; HttpOnly; SameSite=Lax${new URL(e.url).protocol===`https:`?`; Secure`:``}`}}var n_=16777216;function r_(e=n_){if(!Number.isSafeInteger(e)||e<=0)throw new H(`config`,W(`error.config`));return e}function i_(e,t,n){let r=e.safeParse(t);if(!r.success)throw new H(`request`,`${n} failed its check: ${qn(r.error)}`);return r.data}function a_(e){let t=r_();if(e.length>t||new TextEncoder().encode(e).byteLength>t)throw new H(`request`,W(`error.request`));try{return JSON.parse(e)}catch{throw new H(`request`,W(`error.request`),{cause:{code:`request_json`}})}}function o_(e){return i_(ni,a_(e),`live message`)}function s_(e){return i_(ti,a_(e),`live open message`)}var c_=new Set([`pre_turn`,`post_tool`,`before_end`]);function l_(e){let t=e.inject.filter(e=>e.role===`user`);if(!t.length)throw new H(`request`,`inject must contain user messages`);return{id:e.id,messages:t}}function u_(e,t){return async({stage:n})=>{if(!c_.has(n))return;let r=await e.consume(t);return r?{inject:r.messages,injectId:r.id}:void 0}}function d_(){let e=new Map;return{open(t){e.has(t)||e.set(t,[])},enqueue(t,n){let r=e.get(t);return r?(r.push(structuredClone(n)),!0):!1},consume(t){return e.get(t)?.shift()},close(t){e.delete(t)}}}function f_(){throw new H(`unavailable`,W(`error.unavailable`))}function p_(e,t){return e.operationId===t.operationId&&e.callId===t.callId&&e.profileId===t.profileId&&e.toolId===t.toolId&&e.invocationHash===t.invocationHash}function m_(e,t){t.operationId===`__proto__`&&f_();let n=Object.hasOwn(e.operations,t.operationId)?e.operations[t.operationId]:void 0;return n?.status===`ready`?(n.pending.callId!==t.callId||n.pending.profileId!==t.profileId||n.pending.name!==t.toolId||n.profileId!==t.profileId)&&f_():n&&!p_(n,t)&&f_(),n}function h_(e,t){let n=m_(e,t);return(!n||n.status!==`running`&&n.status!==`uncertain`||n.claimToken!==t.claimToken)&&f_(),n}function g_(e){if(e?.status===`settled`)return{kind:`settled`,outcome:e.outcome};if(e?.status===`running`)return{kind:`running`};if(e?.status===`uncertain`)return{kind:`uncertain`}}function __(e,t,n){let r=e.operations[t.operationId],i=r&&r.status!==`ready`?r.pageGrant:void 0,a=Date.now(),{operationId:o,callId:s,profileId:c,toolId:l,invocationHash:u,invocation:d}=t;e.operations[t.operationId]={operationId:o,callId:s,profileId:c,toolId:l,invocationHash:u,...d?{invocation:d}:{},status:`settled`,...i?{pageGrant:i}:{},outcome:n,settledAt:a}}function v_(e,t){return{lookup(n){return e.mutate(t,e=>g_(m_(e,n)))},begin(n){let r=crypto.randomUUID(),i=Date.now();return e.mutate(t,e=>g_(m_(e,n))||(e.operations[n.operationId]={...n,status:`running`,claimToken:r,startedAt:i},{kind:`acquired`,claimToken:r}))},settle(n,r){return e.mutate(t,e=>{let t=h_(e,n);__(e,{...n,invocation:t.invocation},r)})},settleNotStarted(n,r){return e.mutate(t,e=>{let t=m_(e,n);t&&t.status!==`ready`&&f_(),r.effects!==`not_started`&&f_(),__(e,n,r)})},markUncertain(n,r){return e.mutate(t,e=>{let t=h_(e,n);e.operations[n.operationId]={...n,invocation:t.invocation,...t.pageGrant?{pageGrant:t.pageGrant}:{},status:`uncertain`,reason:r,detectedAt:Date.now()}})}}}function y_(e){return cl(Fe.parse(e))}async function b_(e,t){return`${e}:${await cl(Object.entries(t).sort(([e],[t])=>e<t?-1:+(e>t)).map(([e,t])=>t.status===`ready`?[e,t.status,t.profileId,t.readyAt]:[e,t.status,t.profileId,t.toolId,t.invocationHash]))}`}async function x_(e,t,n={},r){if(t===void 0)return;let i=Fe.parse(t),a=await y_(i),o=await b_(a,n),s=Object.values(n),c=r!==void 0&&s.length>0&&e.some(e=>e.startsWith(`${a}:`))&&s.every(e=>e.status===`settled`&&e.outcome.effects!==`unknown`&&e.outcome.event.tool.readBack!==void 0&&r.some(t=>t.role===`tool`&&t.tool_call_id===e.callId&&t.name===e.toolId&&t.content===e.outcome.event.tool.readBack));if(!e.includes(o)&&!c&&!(s.length===0&&e.includes(a)))throw new H(`request`,W(`session.provider_state_unowned`),{copy:{key:`session.provider_state_unowned`}});return i}function S_(e,t,n){return[...new Set([...e,...t].reverse())].slice(0,n).reverse()}async function C_(e){let t=e.session?void 0:t_(e.request),n=e.session?(await e.session(e.request))?.trim():t?.id;if(!n)throw new H(`auth`,W(`session.sign_in`),{copy:{key:`session.sign_in`}});let r=e.operationRetentionMs??864e5;if(!Number.isSafeInteger(r)||r<=0)throw new H(`config`,W(`error.config`));let i=Uh(e.sessionLimits),a=Jg(e.sessionStore,Kr(`session boundary`,e.gateTtlMs),r,i);await a.read(n);let o=qg(a,n,e.pageToolBroker??Kg());return{pageExecution:o.execution,answerPageResult:o.answer,sessionId:n,...t?.setCookie?{setCookie:t.setCookie}:{},toolExecution:v_(a,n),async prepareLiveOpen(e,t){let r=pg(i_(ti,e,`live open`),t),i=await a.read(n),o=await x_(i.providerCheckpoints,r.providerState,i.operations);if(o&&Object.values(i.operations).some(e=>e.status!==`settled`))throw new H(`unavailable`,W(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`}});return{...r,providerState:o,...r.history?{history:r.history.filter(e=>e.role!==`system`)}:{}}},async prepareProviderState(e,t){let r=await a.read(n);return x_(r.providerCheckpoints,e,r.operations,t)},async recordCheckpoint(e){let t=await y_(e);await a.mutate(n,async e=>{e.providerCheckpoints=S_(e.providerCheckpoints,[await b_(t,e.operations)],i.maxCheckpoints)})}}}function w_(e,t){return jr(e,t.labels,t.clientEvents)}function T_(e,t){return JSON.stringify({type:`error`,...w_(e,t)})}function E_(e,t){let n=new Map;return{start(r,i){let a=n.get(r);a&&clearTimeout(a.timer),n.set(r,{operationId:i,timer:setTimeout(()=>{n.delete(r),e.executeTool({callId:r,operationId:i,page:{timedOut:!0}}).catch(()=>{})},t)})},stop:(e,t)=>{let r=n.get(e);r?.operationId===t&&(clearTimeout(r.timer),n.delete(e))},stopAll(){for(let e of n.values())clearTimeout(e.timer);n.clear()}}}function D_(e,t,n,r,i){let a=t=>{t.catch(t=>{e.send(T_(t,r))})};e.addEventListener(`message`,o=>{try{if(typeof o.data==`string`){let s=o_(o.data);switch(s.type){case`audio`:a(t.sendAudio({data:s.data,mimeType:`audio/pcm;rate=16000`}));return;case`video`:a(t.sendVideo({data:s.data,mimeType:s.mimeType}));return;case`text`:a(t.sendText(s.text));return;case`context`:a(t.sendContext({client:s.context}));return;case`executeTool`:{let{type:o,output:c,grantId:l,unanswered:u,...d}=s;if(l){if(!i)throw Error(`Page dispatch result is unavailable`);a(i({callId:d.callId,operationId:d.operationId,grantId:l,page:u?{unanswered:!0}:{output:c}}).then(t=>{t&&e.send(JSON.stringify({type:`executeToolResult`,callId:d.callId,operationId:d.operationId,status:`settled`}))}));return}if(i&&c!==void 0)throw Error(`Page result requires a dispatch grant`);n.stop(d.callId,d.operationId),k_(e,t,c===void 0?d:{...d,page:{output:c}},r);return}}}(o.data instanceof ArrayBuffer||o.data instanceof Uint8Array)&&a(t.sendAudio({data:bn(o.data instanceof Uint8Array?o.data:new Uint8Array(o.data)),mimeType:`audio/pcm;rate=16000`}))}catch(t){e.send(T_(t,r))}})}async function O_(e,t,n,r,i,a,o,s){e.send(JSON.stringify({type:`ready`,profile:n,sessionId:r}));try{for await(let n of t.events()){if(await s?.(n),n.type===`error`){e.send(JSON.stringify(gr(n,o.clientEvents)));try{e.close(1011,`session error`)}catch{}return}if(n.type===`tool`){let{tool:t}=n;t.phase===`dispatch`&&(a.stop(t.callId,Xr(t)),e.send(JSON.stringify({type:`executeToolResult`,callId:t.callId,operationId:Xr(t),status:`dispatched`,grantId:t.grantId,arguments:t.arguments}))),t.phase===void 0?a.start(t.callId,Xr(t)):(t.phase===`complete`||t.phase===`error`||t.phase===`cancel`)&&a.stop(t.callId,Xr(t))}e.send(JSON.stringify({type:`events`,events:sr([n],o.clientEvents)}))}}catch(t){e.send(T_(t,o))}finally{a.stopAll(),i.close();try{e.close(1e3,`session ended`)}catch{}}}async function k_(e,t,n,r){try{let r=await t.executeTool(n);e.send(JSON.stringify(r.gated?{type:`executeToolResult`,callId:n.callId,operationId:n.operationId,status:`gated`,gate:r.gated}:{type:`executeToolResult`,callId:n.callId,operationId:n.operationId,status:`settled`}))}catch(t){e.send(JSON.stringify({type:`executeToolResult`,callId:n.callId,operationId:n.operationId,status:`refused`,body:w_(t,r)}))}}var A_=2e4;function j_(e,t,n,r,i,a,o={}){let s=E_(t,o.clientCallTimeoutMs??A_),c={labels:a,clientEvents:o.clientEvents};return D_(e,t,s,c,o.pageResult),e.addEventListener(`close`,()=>{t.close(`client disconnected`)}),O_(e,t,n,r,i,s,c,o.beforeEvent)}function M_(){let e=crypto.randomUUID(),t=ag(),n=C_({request:new Request(`https://studio.local`),session:()=>e,sessionStore:t}),r=Jg(t,18e5,qh,Uh()),i=qg(r,e,Kg());return{boundary:n,execution:v_(r,e),pageExecution:i.execution,pageResult:i.answer}}var N_=Vh();ls(ct,N_.sink);async function*P_(e){let t=[],n=N_.route(e=>t.push(e)),r;try{yield*e(n.metadata)}catch(e){r={error:e}}finally{n.close()}for(let e of t)yield{type:`trace`,record:e};if(r)throw r.error}function F_(e,t){if(e===`live`)throw new H(`request`,`Studio ${t} does not support live profiles.`)}async function I_(e,t){let{scope:n,profile:r}=await zh(e.profile,e.customTools,e.structured,e.runtime,e.dependencies);F_(r.type,`turn runner — use runSession`);let i=Wn(r,n.tools);if(i.type===`live`)throw new H(`request`,`A studio chat does not run a live profile.`);return{scope:n,profile:r,iface:i,host:i.providerContinuation?.history===`stateless`?void 0:hg({...t,profile:r,clientEvents:Tr(e.runtime)})}}function L_(e){let{scope:t,profile:n,runtime:r,metadata:i,signal:a}=e;return{run:o=>t.runTurn({profile:n.id,execution:r.execution,pageExecution:r.pageExecution,metadata:i,input:o.input,providerState:o.providerState,sessionPermissions:e.sessionPermissions,resolveHost:r.resolveHost,signal:a,...o.model?{model:o.model}:{},...o.effort?{effort:o.effort}:{},...e.onStage?{onStage:e.onStage}:{},onAgentCall:Th(t,r)},Ch(r,t,n,o.model)),async compact(e,i,o){return(await t.compactHistory({profile:n.id,history:e,tokens:i,signal:a,...o?{model:o}:{}},Ch(r,t,n,o)))?.history},...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{},signal:a}}function R_(e,t,n,r,i,a){let o=n.conversation.paused?.events??[],s=pi(o).find(e=>e.callId===r.callId&&e.operationId===r.operationId);if(!s)throw new H(`internal`,`the paused reply holds no call ${r.callId}`);return H_(e,t,r,{name:s.name,input:s.arguments,gateKind:s.gateKind,snapshot:Qr(o),promoted:Zr(o),...n.conversation.paused?.model?{model:n.conversation.paused.model}:{},...i?{sessionPermissions:i}:{}},a)}async function*z_(e){let{request:t,runtime:n,signal:r}=e,{scope:i,profile:a,iface:o,host:s}=await I_(e,e.conversations),c=jg(o,t.input),l=t.replay?.sessionPermissions;if(!s&&t.conversation!==void 0)throw Ug(`continue`);if(!s&&t.abandon)throw Ug(`walk away from`);let u=s?await gg(s,t.conversation,{kind:`message`,...t.abandon?{abandon:t.abandon}:{}},t.transcript?{profile:a,blocks:t.transcript}:void 0):void 0,d=u?(t.abandon??[]).map(e=>({reference:e,invoke:R_(i,a.id,u,{...e,decision:`abandon`},l,n)})):[],f=globalThis.crypto.randomUUID();await e.steer.open(f),yield{type:`steer_inbox`,inbox:f};try{yield*P_(o=>{let p=L_({scope:i,profile:a,runtime:n,metadata:o,sessionPermissions:l,...t.model?{model:t.model}:{},...t.effort?{effort:t.effort}:{},signal:r,onStage:u_(e.steer,f)});if(!s||!u)return p.run({input:c.input,model:t.model,effort:t.effort});let m=d.map(({reference:e,invoke:t})=>({...e,events:i.invokeTool({...t,metadata:o,signal:r})}));return Lg({host:s,opened:u,message:c,walkAway:m,runner:p})})}finally{await e.steer.close(f)}}var B_=p(f(),n());function V_(e){let t=`auth`in e?e.auth:void 0;return{permission:e.permission,...t?{auth:{slot:t.slot,authType:t.type,service:t.service}}:{}}}function H_(e,t,n,r,i){let a=r.name===void 0?void 0:e.tools.get(r.name);if(!a)throw new H(`request`,`invoke: the paused call names no tool in this draft`);let o=Wr(n,{name:a.name,arguments:i_(B_,r.input,`replayed call input`),gateKind:r.gateKind,...V_(a)},r.sessionPermissions??[]);return{profile:t,name:a.name,callId:n.callId,operationId:n.operationId,input:o.input,resume:o.resume,...o.page?{page:o.page}:{},sessionPermissions:o.sessionPermissions,...o.typed?{credentials:lm({[o.typed.slot]:o.typed.credential})}:{},snapshot:r.snapshot,promoted:r.promoted,model:r.model,resolveHost:i.resolveHost,execution:i.execution,pageExecution:i.pageExecution,onAgentCall:Th(e,i)}}function U_(e){let{gateId:t,operationId:n,decision:r,input:i,secret:a,page:o}=e;return{callId:t,operationId:n,decision:r,input:i,secret:a,page:o}}function W_(e,t,n,r,i){let a=H_(e,t,U_(n),n.replay??{},r);return P_(t=>e.invokeTool({...a,metadata:t,signal:i}))}async function*G_(e){let{answer:t,runtime:n,signal:r}=e,{scope:i,profile:a,host:o}=await I_(e,e.conversations),s=U_(t),c=t.replay?.sessionPermissions;if(!o){if(t.conversation!==void 0)throw Ug(`continue`);yield*W_(i,a.id,t,n,r);return}if(t.conversation===void 0)throw Ug(`continue`);let l=await gg(o,t.conversation,{kind:`answer`,call:{callId:s.callId,operationId:s.operationId}}),u=R_(i,a.id,l,s,c,n);yield*P_(e=>Rg({host:o,opened:l,call:{callId:s.callId,operationId:s.operationId},settling:i.invokeTool({...u,metadata:e,signal:r}),runner:L_({scope:i,profile:a,runtime:n,metadata:e,sessionPermissions:c,signal:r})}))}async function K_(e,t,n){let{host:r}=await I_(e,t);if(!r)throw Ug(`read`);return bg(r,(await gg(r,n.conversation,{kind:`read`})).conversation)}async function q_(e,t,n,r){let{scope:i,profile:a,host:o}=await I_(e,t);if(!o)throw Ug(`rewind`);let s=await gg(o,n.conversation,{kind:`rewind`,at:n.at}),c=Hg(s.conversation).map(t=>{let n=R_(i,a.id,s,{...t,decision:`abandon`},void 0,e.runtime);return{...t,events:i.invokeTool({...n,signal:r})}}),l=await Bg({host:o,opened:s,at:n.at,walkAway:c});if(l.ref===null)throw new H(`internal`,W(`error.internal`));return{conversation:l.ref,view:bg(o,l.conversation)}}async function*J_(e){let{scope:t,profile:n}=await Y_(e);yield*W_(t,n.id,e.answer,e.runtime,e.signal)}async function Y_(e){let t=await zh(e.profile,e.customTools,void 0,e.runtime,e.dependencies);if(t.profile.type!==`host`)throw new H(`request`,`Studio calls run host profiles only.`);return t}async function*X_(e){let{scope:t,profile:n}=await Y_(e);yield*P_(r=>t.invokeTool({profile:n.id,execution:e.runtime.execution,pageExecution:e.runtime.pageExecution,name:e.call.name,input:e.call.input,sessionPermissions:e.sessionPermissions,resolveHost:e.runtime.resolveHost,onAgentCall:Th(t,e.runtime),signal:e.signal,metadata:r}))}function Z_(e){let t=[];return!e||!Vr(e).record?{traces:t}:{traces:t,sink:{write:e=>(t.push(e),Promise.resolve())}}}async function Q_(e,t,n,r,i){let{scope:a,profile:o}=await zh(e.profile,[],void 0,{mode:`byok`}),{traces:s,sink:c}=Z_(o.observability);try{return{result:await a.runDecision({profile:o.id,state:t,questions:e.questions??{},assets:xr(e.images,i),signal:r},{...n,...c?{sink:c}:{}}),traces:s}}catch(e){throw Cr(e,s)}}async function $_(e,t,n){let{scope:r,profile:i}=await zh(e.profile,e.customTools,e.structured,n,e.dependencies);if(i.type!==`embedding`)throw new H(`request`,`Studio embedding runs require an embedding profile.`);let{traces:a,sink:o}=Z_(i.observability);try{return{result:await r.runEmbedding({...t,profile:i.id},{...Ch(n,r,i,t.model),...o?{sink:o}:{}}),traces:a}}catch(e){throw Cr(e,a)}}export{j_ as attachStudioLiveSession,M_ as browserExecution,d_ as createMemorySteerInbox,ug as createSealedConversationStore,pg as liveSessionOpen,s_ as parseLiveOpenMessage,q_ as rewindStudio,Q_ as runStudioDecision,$_ as runStudioEmbedding,l_ as steerUnitOf,X_ as streamStudioCall,J_ as streamStudioHostInvoke,G_ as streamStudioInvoke,z_ as streamStudioTurn,K_ as studioConversation,zh as studioScope,N_ as studioTraces};
|