@theoremjs/studio 0.3.1 → 0.3.2
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-BISz3nXA.js} +2 -2
- package/page/assets/{ContextMenu-BcXTDSnA.js → ContextMenu-CBu9H-9H.js} +2 -2
- package/page/assets/{ToolResultCharts-DsbzvrBK.js → ToolResultCharts-CgshSv9Q.js} +1 -1
- package/page/assets/{TraceInspector-B34qMQJH.js → TraceInspector-_yZiz05W.js} +1 -1
- package/page/assets/{TraceOverview-Drp2Sl4p.js → TraceOverview-BPO-HIYK.js} +1 -1
- package/page/assets/{_virtual_studio-type-sources-B0u0_Vhq.js → _virtual_studio-type-sources-ByxqQaOG.js} +10 -7
- package/page/assets/browser-engine-CYq9DQAM.js +9 -0
- package/page/assets/{browser-transport-Bn77Eq5d.js → browser-transport-D-2jDYe7.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-C3yyzXH8.js} +1 -1
- package/page/assets/{guardrail-tester-BHcoZE5K.js → guardrail-tester-Gut5xK4a.js} +1 -1
- package/page/assets/host-patterns-C9RMP16Q.js +1 -0
- package/page/assets/{index-BmHkdZXS.js → index-CvvmFKgS.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-CnkL4GWi.js} +1 -1
- package/page/assets/{reader-CN15b9m8.js → reader-BOCCYaRp.js} +1 -1
- package/page/assets/{shaped-data-BO_JTcQq.js → shaped-data-BcarWqd5.js} +2 -2
- package/page/assets/{stub-DDddt29Y.js → stub-DhdcU_Ew.js} +1 -1
- package/page/assets/{studio-code-pane-BSXwNg0B.js → studio-code-pane-C_SAbcOa.js} +3 -3
- package/page/assets/{studio-console-C1hyAfeb.js → studio-console-DZwlEsvr.js} +1 -1
- package/page/assets/{studio-decision-CZDF06ic.js → studio-decision-B0FnCAXA.js} +1 -1
- package/page/assets/{studio-embedding-SqSYd_e1.js → studio-embedding-CmA51HVo.js} +1 -1
- package/page/assets/{studio-host-console-BlbRUrR_.js → studio-host-console-By7hqu2l.js} +2 -2
- package/page/assets/{studio-live-Dd0AEV_k.js → studio-live-BrcVQcyV.js} +1 -1
- package/page/assets/{studio-map-BIIZcltt.js → studio-map-B_xSia-z.js} +1 -1
- package/page/assets/{studio-type-checker-Cp6IxLBp.js → studio-type-checker-BOvxudki.js} +1 -1
- package/page/assets/{tool-schema-BF2BK9h8.js → tool-schema-idaOe2nI.js} +8 -8
- package/page/assets/{trace-record-C-XxCjSg.js → trace-record-C3zNksA_.js} +1 -1
- package/page/assets/{tree-D1IYOD_9.js → tree-DqyAMsbI.js} +1 -1
- package/page/assets/{turn-client-BMBqw-ho.js → turn-client-Du3Um3Mg.js} +1 -1
- package/page/assets/types-BhfXQCLx.js +1 -0
- package/page/assets/{use-one-call-BtrXMol7.js → use-one-call-Hcs8YBp1.js} +1 -1
- package/page/assets/{workspace-BMzjmPeQ.js → workspace-DZALqEDX.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/types-CBmpjaet.js +0 -1
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/compile-egress-CGwmX2BX.js","assets/rolldown-runtime-hePW80VL.js","assets/host-patterns-DCz9Cmrt.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-BF2BK9h8.js";import{c as H,t as Dt}from"./host-patterns-DCz9Cmrt.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-BO_JTcQq.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-CN15b9m8.js";import{a as Vr,t as Hr}from"./live-ingress-DsA4_80F.js";import{t as Ur}from"./trace-record-C-XxCjSg.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-BMBqw-ho.js";import{n as ti,t as ni}from"./live-messages-B19ZuTGI.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-BmHkdZXS.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=[1e3,2e3,4e3,8e3],ja=5e3,Ma=Aa.length,Na=1e3,Pa=new Set([408,429,500,502,503,504]),Fa=/name resolution|dns|econnreset|econnrefused|etimedout|connection (?:refused|reset)|error sending request|network|fetch failed|temporarily unavailable|socket|503|502|504/i,Ia=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(La(t));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e);function a(){clearTimeout(i),r(La(t))}t?.addEventListener(`abort`,a,{once:!0})});function La(e){return e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}function Ra(e){return Pa.has(e)}function za(e){return F(e)||ee(e)?!1:Fa.test(String(e))}function Ba(e){return Aa[Math.min(e,Aa.length-1)]}function Va(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*Na:Date.parse(r)-t}if(!(i===void 0||Number.isNaN(i)||i<0))return i}function Ha(e,t=Ia,n=()=>1/0){return async(r,i)=>{let a=0;for(let o=0;;o++){let s=Math.min(ja-a,n()),c;try{let t=await e(r,i);if(!Ra(t.status)||(c=Va(t.headers)??Ba(o),c>s||o>=Ma))return t;await t.body?.cancel()}catch(e){if(c=Ba(o),!za(e)||c>s||o>=Ma)throw e}await t(c,i?.signal),a+=c}}}var Ua=`[DONE]`;function Wa(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function Ga(e,t){let n=e.startsWith(`data:`)?e.slice(5).replace(/^ /,``):e,r={};if(t&&(r.sseEvent=t),n===Ua)return r.eventType=`sse_done`,r;try{let e=JSON.parse(n),t=Wa(e);return t?{...t,...r}:(r.eventType=`sse_unparsed`,r.data=e,r)}catch{return r.eventType=`sse_unparsed`,r.data=n,r}}function Ka(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(Ga(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*qa(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=Ka(r);r=o.rest;for(let e of o.payloads)yield e}}finally{i||t.cancel().catch(()=>void 0),t.releaseLock()}}var Ja=/key|auth|cookie|secret|token/i;function Ya(e,t){return Ja.test(e)?`[redacted]`:t}function Xa(e){let t={};for(let[n,r]of new Headers(e).entries())t[n]=Ya(n,r);return t}function Za(e){return e instanceof Error?{eventType:`http_throw`,name:e.name,message:e.message}:{eventType:`http_throw`,name:`Error`,message:String(e)}}function Qa(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 $a(e,t=fetch,n){return e?async(r,i)=>{e({eventType:`http_request`,method:i?.method??`GET`,url:String(r),headers:Xa(i?.headers),...n?{keySlot:n}:{},...Qa(i?.body)});try{let n=await t(r,i);return e({eventType:`http_response`,status:n.status,headers:Xa(n.headers)}),n.ok||e({eventType:`http_error_body`,body:await n.clone().text()}),n}catch(t){throw e(Za(t)),t}}:t}function eo(e){return e instanceof H||F(e)||ee(e)?e:new H(`network`,Ze(e),{cause:e})}function to(e=fetch){return async(t,n)=>{try{return await e(t,n)}catch(e){throw eo(e)}}}var no=`key_fallback`,ro=1e6;function io(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 ao(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 oo(e,t,n){let r=io(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)+ao(n.input-a,i.input,i.byModality?.input,n.byModality?.input)+ao(n.output,i.output,i.byModality?.output,n.byModality?.output))/ro,estimated:!0}}function so(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 co=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,lo=248;function uo(){let e=``;for(;e.length<24;)for(let t of crypto.getRandomValues(new Uint8Array(24-e.length)))t<lo&&(e+=co[t%62]);return e}function fo(e){return De(e.provider,e.binding)}var po=new WeakMap;function mo(e,t){return e&&Object.hasOwn(e,t)?e[t]:void 0}async function ho(e,t,n){let{definition:r}=e.provider,i=t.authorize??r.authorize;if(!r.key||!i)return;let a=n?mo(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=po.get(e.provider)??new Map;po.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 go(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*_o(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 qa(e.body)){if(t.eventType===`sse_done`)return;yield t}}function vo(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 yo(e,t,n){let r=vo(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 bo(e){return e.builtins.map(e=>e.id)}function xo(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 So(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 Co(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 wo(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 So(e.data);t.trim()&&s(Co(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 To(e,t,n,r={sent:!1},i=[]){let a=fo(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){xo(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:go(a,u(c.path),s,c.stream),headers:d,protocols:[],body:JSON.stringify(n)};await(await ho(e,a,t))?.sign(f);let p=Ha($a(e.tapUpstream&&(t=>e.tapUpstream?.(t)),to(e.fetch??fetch),t),e.wait??Ia,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 yo(o,e.provider.id,m);for await(let e of(o.framing??_o)(m,c.stream))l(e),yield e},async connect(n,c){xo(o,i,c?.wroteTools);let d={transport:`ws`,url:go(a,u(void 0),s,!0),headers:new Headers(a.headers),protocols:[]};await(await ho(e,a,t))?.sign(d);let f=e.openWebSocket??so(e.provider.id);r.sent=!0;let p=wo(await f(d.url.toString(),{headers:d.headers,protocols:d.protocols}),l);return p.send(n),p}}}function Eo(e,t){return e instanceof H&&e.kind===t}async function*Do(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(Eo(t,`rate_limit`)&&r&&i!==r&&Oo(e,r))e.tapUpstream?.({eventType:no,from:i??null,keySlot:r,errorKind:t.kind,error:t.message}),i=r,a=!0;else if(Eo(t,`auth`)&&!o){o=!0;let t=fo(e);po.get(e.provider)?.get(`${t.protocol.id}\u0000${i??``}`)?.signer.invalidate?.()}else throw t}}}function Oo(e,t){let n=mo(e.vault,t);return typeof n==`string`?n.trim()!==``:typeof n==`function`||typeof n==`object`&&!!n}function ko(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 Ao(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 jo(e){let t=new Map,n=e=>{let n=t.get(e);if(n)return n;let r=uo();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=oo(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 Mo(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=oo(n,t.model,{input:r,output:i,total:r+i});return a?{...t,usage:{...t.usage,costUsd:a.usd,estimated:!0}}:t}function No(e){return fo(e).protocol}function Po(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 Fo(e,t,n){let r=No(e);for await(let i of Do(e,i=>(async function*(){let a=r.create(To(e,i,[]));yield await Po(r,a,t)(n)})()))return i;throw new H(`internal`,W(`provider.decision_failed`))}function Io(e){let t=No(e);return{async*complete(n){let{finish:r}=jo(e),i=[],a={sent:!1},o=Do(e,(r,o)=>{a.sent=!1;let s=t.create(To(e,r,i,a,bo(n)));return Po(t,s,`complete`)(o?Ao(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 ko(e);return}for(let e of i.splice(0))yield{type:`raw`,row:e}},async openSession(n){let{finish:r,wireOf:i}=jo(e),a=[],o;for await(let r of Do(e,(r,i)=>(async function*(){let o=t.create(To(e,r,a,void 0,bo(n)));yield await Po(t,o,`openSession`)(i?Ao(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=>Mo(e,await Fo(e,`decide`,t)),embed:t=>Fo(e,`embed`,t)}}function Lo(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 Ro=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=Lo(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=Lo(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 zo(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})}}},zo=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)}},Bo=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()}),Vo=se.extend({type:o(`reasoning`)}),Ho=new Set([`text`,`thought`,`structured`,`media`,`grounding`,`citation`,`evidence`,`tokens`,`session`,`tool_draft`,`error`,`custom`]);function Uo(e){let t=_e.parse(e);if(t.kind===`gate`)throw new H(`bad_response`,W(`provider.kernel_gate`));return t}function Wo(e){if(!G(e)||typeof e.type!=`string`)throw new H(`bad_response`,W(`provider.event_invalid`));if(Ho.has(e.type))return j.parse(e);switch(e.type){case`tool_call`:return{type:`tool_call`,call:Bo.parse(e.call)};case`tool_cancel`:return{type:`tool_cancel`,callId:f().min(1).parse(e.callId)};case`reasoning`:return Vo.parse(e);case`raw`:return{type:`raw`,row:L.parse(e.row)};case`done`:return{type:`done`,stop:Uo(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 Go(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 Ko(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 qo(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:Ko(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 Jo(e,t){try{return await e()}catch(e){throw qo(e,t)}}async function*Yo(e,t,n,r=!1){r||n.resumeOperation();let i;try{for(i=e()[Symbol.asyncIterator]();;){let e=i,a=await Go(()=>e.next(),n.signal);if(a.done)break;let o=Wo(a.value);r&&(o.type!==`session`||o.session.kind===`working`)&&n.startLiveStep(),n.event(o),o.type===`error`?yield{...o,...o.errorCopy?{errorCopy:Ko(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 qo(e,t)}finally{n.close(),i?.return&&Promise.resolve(i.return()).catch(()=>void 0)}}var Xo=/^(?:authorization|proxy-authorization|cookie|set-cookie|api[_-]?key|x-goog-api-key|secret|token|access[_-]?token|refresh[_-]?token|password)$/i;function Zo(e,t,n,r,i){let a=ka(r.limits),o=new Ro(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)),Xo.test(e)&&typeof t==`string`?`[redacted]`:l(t)])):e},u=e=>String(l(e)),d=ge(e,t).keySlot,f=Io({provider:e,binding:t,profileType:n,limits:a,signal:o.signal,fetch:o.fetch(r.fetch??globalThis.fetch),openWebSocket:o.socket(r.openWebSocket??so(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 Go(()=>Jo(e,u),o.signal);return o.value(t),t}finally{o.close()}};return{keySlot:()=>d,complete:e=>Yo(()=>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 Go(()=>Jo(()=>f.openSession({...e,signal:o.signal}),u),o.signal).catch(e=>{throw o.close(),e}).finally(()=>o.stopTimer());return{events:()=>Yo(()=>t.events(),u,o,!0),closeInfo:()=>{let e=t.closeInfo?.();return e&&{...e,...e.error?{error:qo(e.error,u)}:{}}},sendText:e=>(o.startLiveStep(),Jo(()=>t.sendText(e),u)),sendAudio:e=>Jo(()=>t.sendAudio(e),u),sendVideo:e=>Jo(()=>t.sendVideo(e),u),sendContext:e=>Jo(()=>t.sendContext(e),u),sendToolResult:e=>(o.startLiveStep(),Jo(()=>t.sendToolResult(e),u)),close:e=>(o.stopTimer(),Jo(()=>t.close(e),u).finally(()=>o.dispose()))}}}}function Qo(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 $o(e,t,n){if(e?.history===`stateless`&&(t||n?.length))throw new H(`request`,W(`provider.stateless_history`))}async function es(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===Qo(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 ts(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:Qo(e,t,o),coveredHistoryLength:i.length,coveredHistoryHash:await wt(i),data:C.parse(s.schema.parse(r)),...Object.keys(a).length?{wireCallIds:a}:{}}}function ns(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 rs(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 is(e,t,n){let{providerState:r,tapUpstream:i,history:a,...o}=e,s=rs(ns(a,t),n.wireCallIds);return{...o,...s?{history:s}:{},...n.state===void 0?{}:{state:n.state,stateHistoryLength:n.covered}}}function as(e){let{wireCallId:t,...n}=e;return n}async function*os(e,t){let n={},r,i=!1,a=[],o=[],s=``,c=[],l=()=>{s&&c.push({role:`assistant`,content:s}),s=``},u=e[Symbol.asyncIterator](),d=!1;try{for(;;){let e=await Go(()=>u.next(),t);if(e.done){d=!0;break}I(t);let f=e.value;if(r)throw new H(`bad_response`,W(`provider.events_after_completion`));switch(f.type){case`raw`:continue;case`text`:s+=f.text;break;case`structured`:l(),c.push({role:`assistant`,content:JSON.stringify(f.structured)});break;case`reasoning`:{let{type:e,...t}=f;o.push(t);break}case`tool_call`:if(a.some(e=>e.callId===f.call.callId))throw new H(`bad_response`,W(`provider.duplicate_call`));l(),f.call.wireCallId&&(n[f.call.callId]=f.call.wireCallId),a.push(as(f.call));continue;case`tool_cancel`:throw new H(`bad_response`,W(`provider.tool_cancel_live`));case`error`:i=!0;break;case`done`:r=f;continue}yield f}}finally{!d&&u.return&&Promise.resolve(u.return()).catch(()=>void 0)}return l(),{terminal:r,failed:i,pending:a,reasoning:o,outputs:c,wireCallIds:n}}function ss(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 es(e,t,c,u?o:l.history??[],u?a:{});d.warning&&(c=void 0,yield{type:`provider_warning`,warning:d.warning});let f=Zo(e,t,n,r,l),{terminal:p,failed:m,pending:h,reasoning:g,outputs:_,wireCallIds:v}=yield*os(f.complete(is(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}h.length&&_.push(Je(h.map((e,t)=>t===0?{...e,reasoning:g}:e)));let y=[...l.history??[]];l.input.length&&y.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 b=await ts(e,t,f.keySlot(),p.state,[...y,...h.length?_.filter(e=>e.tool_calls):_],{...d.wireCallIds,...v});c=b;for(let e of h)yield{type:`tool`,tool:e};yield{type:`done`,stop:p.stop,providerState:b}}}}var cs=new Map;function ls(e){return typeof e==`object`&&!!e&&`write`in e&&typeof e.write==`function`}function us(e,t){let n=e.trim();if(!n)throw new H(`config`,`registerTraceDestination requires a non-empty id`);if(!ls(t))throw new H(`config`,`Trace destination '${n}' must be a TraceSink`);cs.set(n,t)}function ds(e){return cs.get(e)}function fs(e){let t=ds(e);if(!t)throw new H(`config`,`Trace destination '${e}' is not registered`);return t}async function ps(e,t,n){try{await e.write(await t,{retainForDays:n.retainForDays,rotateAfterMiB:n.rotateAfterMiB})}catch(t){try{e.onError?.(t)}catch{}}}function ms(e,t,n,r){return ps(e,Ur({spans:t,policy:n,...r?{metadata:r}:{}}),n)}function hs(){return{write:()=>Promise.resolve()}}function gs(e,t){return!t&&!e.onError?e:{write:(t,n)=>e.write(t,n),onError:e.onError??t}}var _s=2**32;function vs(e,t){let n=e.spans[0]?.traceId??``;return Number.parseInt(n.slice(-8),16)/_s<t}function ys(e,t){return t>=1?e:t<=0?hs():{write:async(n,r)=>{vs(n,t)&&await e.write(n,r)},onError:e.onError}}function bs(e,t){return e===void 0||e===!1?hs():gs(typeof e==`string`?fs(e):e,t.onWriteError)}function xs(e){let t={...Vr(e.observability),detect:z(e.guardrails).detect};return e.override?{policy:t,sink:gs(e.override,t.onWriteError)}:t.record?{policy:t,sink:ys(bs(t.writeTo,t),t.sampleRate)}:{policy:t,sink:hs()}}async function Ss({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}=xs(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 ms(s,o.collect(),c,r)}}var Cs={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(Cs[e],t,r),this.code=e,this.status=n}};function ws(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 Ts(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 Es(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 Ds(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 Os(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 ks(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:Es(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:Ds(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:Os(t.legend,e,`${r}.legend`),probabilities:Es(t.probabilities,e,`${r}.probabilities`)}}}return n}function As(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 js(e,t){if(!G(t)||!e.trim()||!Rs(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(Rs))throw new q(`invalid_request`,`Decision ${t.type} '${e}' must declare criteria`)}function Ms(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||!As(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)||!As(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))js(t,n);e.assets!==void 0&&Ls(e.assets);for(let[t,n]of Object.entries(e.questions))Ps(t,n,e.state,e.assets)}function Ns(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 Ps(e,t,n,r){if(!G(t)||t.image===void 0)return;let i=t.image,a=typeof i==`string`&&!r?.[i]?Ns(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 Fs(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 Is=/^[A-Za-z0-9+/]+={0,2}$/;function Ls(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||!Is.test(n.data))throw new q(`invalid_request`,`Decision asset '${t}' must be PNG or JPEG bytes as padded base64`)}function Rs(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 zs(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 Bs(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 Vs(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 Hs(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`,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 Us(e,t,[n,r],i,a){I(i.signal);let o=e.providers.require(r.provider,r.apiId);await zs(t,n,r.provider,i),I(i.signal);try{let e=await Zo(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,Fs(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:ks(e.answers,i.questions)}}catch(e){throw i.signal?.aborted?new q(`cancelled`,W(`provider.decision_ended`)):Hs(e)}}async function Ws(e,t,n){let r=ws(e,t.profile);Ms(t,r);let i=Ts(r),[a,o]=i;return await Ss({name:`decide ${o.apiId}`,attributes:Bs(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 Us(e,r,i,t,n);return Vs(a,o),o})}function Gs(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 Ks(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 qs=[`query`,`document`];function Js(e){if(e!==void 0&&!qs.includes(e))throw new H(`request`,`Embedding task must be 'query' or 'document'`)}function Ys(e){return Array.isArray(e)?e:[e]}function Xs(e){return typeof e==`string`?[{type:`text`,text:e}]:e&&Array.isArray(e.parts)?e.parts:[]}function Zs(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=Xs(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 Qs(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 $s(e,t,n={}){I(t.signal);let r=Gs(e,t.profile),[i,a]=Ks(r,t.model),o=Ys(t.input);Js(t.task);let s=e.providers.require(a.provider,a.apiId);Zs(r,i,o,Ve(s,a).embeddingLimits?.(a.apiId));let c=Zo(s,a,`embedding`,n,{...t.signal?{signal:t.signal}:{}});return await Ss({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()=>Qs(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 ec(e,t,n,r,i){let a=e.profiles.get(t);if(a.type===`host`)return tc(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 $o(a.providerContinuation,i?.providerState,i?.input?.history),{complete:ss(e.providers.require(o.provider,o.apiId),structuredClone(o),a.type,r,i?.providerState,a.providerContinuation,i?.input?.history).complete,forProfile:(t,n,i)=>ec(e,t,n,r,i)}}function tc(e,t){return{complete(){throw new H(`unsupported`,W(`provider.host_model`))},forProfile:(n,r,i)=>ec(e,n,r,t,i)}}function nc(e,t,n,r){return`forProfile`in e&&typeof e.forProfile==`function`?e.forProfile(t,n,r):e}function rc(){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 ic(){return Promise.resolve(rc())}function ac(e){return e.meter??`history`}function oc(e){let t=[];for(let n=0;n<e.length;n++)e[n].role===`user`&&t.push(n);return t}async function sc(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 ic()).messages(t)}async function cc(e){let t=ac(e.spec);if(t===`history`)return{meter:t,...await sc(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 lc(e,t){return e>t.compactAt*t.maxTokens}async function uc(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 lc(e.tokens,t)}async function dc(e,t){if(e.length===0)return{toCompact:[],toRetain:[]};if(t.previousExchanges===0)return{toCompact:[...e],toRetain:[]};let n=oc(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 ic(),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 fc(e){return e.metadata?.compactionSummary===!0}function pc(e){return{type:`text`,text:e}}function mc(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:[pc(W(`compaction.tool_result`,{tool:i??``,result:a},n)),...e]});continue}let i=(t.tool_calls??[]).map(e=>pc(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 hc(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(fc),...e.toRetain]}:{...i,outcome:`deferred`,failure:t.failure,history:[...e.toCompact,...e.toRetain]}}var gc={[wn.unscannable]:`egress.hint_unscannable`,[wn.providerToolLeak]:`egress.hint_provider_tool_leak`},_c=[Zt.canary_leak,Zt.prompt_leak],vc=3,yc=120,bc=`detect.`;function xc(e,t,n){let r=gc[e.rule];if(r)return W(r,{},n);let i=e.rule.startsWith(bc)?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 Sc(e){let t=e.flatMap(({rule:e,match:t})=>t&&!_c.includes(e)?[t]:[]);return[...new Set(t)].slice(0,vc).map(e=>JSON.stringify(e.length>yc?e.slice(0,yc):e))}function Cc(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=xc(e[0],t,n),i=Sc(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 wc(e){if(e.type!==`live`&&e.type!==`host`&&e.type!==`decision`&&e.type!==`embedding`)return e.outputs}var Tc=[`inject`,`abort`,`deny`,`confirm`,`mutate`,`labelFailed`,`waitFor`],Ec=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([])}),Dc=new Set([...Tc,`injectId`]);function Oc(e,t){return Ec[e].includes(t)}function Y(e,t,n,r){e.push({code:t,field:n,message:r})}function kc(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 Ac(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=kc(r,t);e&&n.push(e)}return n.length>0?n:void 0}function jc(e,t){let n=Ac(e.inject,t);if(n){if(e.injectId===void 0)return{messages:n};if(typeof e.injectId==`string`&&e.injectId.trim())return{id:e.injectId,messages:n};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`);return}let{stage:r,injectAllowed:i,injectWouldExceedMaxSteps:a}=t;if(!Oc(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(!Oc(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&&(Oc(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&&(Oc(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(!Oc(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&&(Oc(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(!Oc(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))Dc.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)),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)return Hc(e,{...n,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:Tc.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,r){let i=Uc(n);if(i.length===0)return 0;e.currentHistory.push(...i);let a=Wc(t,n,r);return a&&(e.allEmittedEvents.push(a),yield a),i.length}async function*Zc(e){let{profile:t,generation:n,state:r,onStage:i,host:a,...o}=e;I(o.signal);let s=Yc({...o,history:r.currentHistory,handlers:i?[i]:[],guardrails:t.guardrails,injectAllowed:Ee(t),host:a??n.host,span:r.trace.root}),c=await s.next();for(;!c.done;)r.allEmittedEvents.push(c.value),yield c.value,c=await s.next();let l=c.value;return{abort:l.abort,injectCount:yield*Xc(r,o.stage,l.inject),warnings:l.warnings}}function Qc(e,t){t.allEmittedEvents.push(e),t.attemptEvents.push(e)}function $c(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 el(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:``,givenUrls:rn(),destinations:gi(),canaryGiven:!1,canaryScanned:new WeakSet,...r?{ownTools:r}:{},...e.agents?{agents:e.agents}:{}};return t.type===`text`&&($c(i,n.input),n.input=[]),i}function tl(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 nl(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:tl(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 rl=t({accepted:L,preparedInput:C});function X(){let e=new H(`unavailable`,``);return e.message=oe(e),e}async function il(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(sl(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 al=T.tool.transform((e,t)=>e.tool.phase===`complete`||e.tool.phase===`error`?{...e,tool:e.tool}:(t.addIssue({code:`custom`}),a)),ol=t({event:al,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)})).optional()})});function sl(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 cl=class{outcome;constructor(e){this.outcome=e}};function ll(e){return new H(`unavailable`,W(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`},cause:e})}var ul=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:sl(e)}},n=await this.coordinator.begin(t);if(n.kind===`settled`)throw new cl(n.outcome);if(n.kind===`running`||n.kind===`uncertain`)throw ll();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 ll();return!0}async finish(e){if(e.gated){if(this.claim)throw ll();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=ol.parse(sl(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=ol.parse(sl(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?ll(e):e}async close(){this.claim&&!this.committed&&await this.coordinator.markUncertain(this.claim,this.writeFailed?`settlement_write_failed`:`execution_interrupted`)}};async function*dl(e,t,n,r,i,a){if(!e)return yield*i();let o=L.parse(sl(n)),s={...t,invocationHash:await il(o)},c=new ul(e,s,o,r);I(r);let l=await e.lookup(s);if(I(r),l?.kind===`running`||l?.kind===`uncertain`)throw ll();if(l?.kind===`settled`){if(!a)throw X();let e=c.replay(new cl(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 cl){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*fl(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 pl=class{base;checks;drafts;constructor(e,t){this.base=e,this.checks=t,t?.drafts&&(this.drafts=new Xn(()=>ml(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*fl(this.base,{...e,artifact:t.value}))}else if(e.kind===`trace`){let t=yield*this.shown(e.step);t.shown&&(yield*fl(this.base,{...e,step:t.value}))}else yield*fl(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 ml(e){return Br(e.policy,{stage:`tool_result`,trust:`untrusted`,profileId:e.profileId,provenance:e.provenance},e.boundary,{callable:e.callableTools})}function hl(e){return typeof e?.granted==`boolean`}function gl(e){return e?.granted===!0}function _l(e){return e?.granted===!1}function vl(e,t){return t?t.includes(`*`)||t.includes(e):!1}function yl(e,t){let n=Tt(e.labels?.request,{input:t});return{access:e.access,...n?{request:n}:{}}}function bl(e,t,n,r,i){return t===`auto`||(t===`always_confirm`?r?.granted===!0:vl(e,n))?null:{kind:`permission`,tool:e,permission:t,...i}}function xl(e,t,n){return je(e,t,{policy:n.network,followRedirects:!1,resolveHost:n.resolveHost,...n.fetchFn?{fetchFn:n.fetchFn}:{}})}function Sl(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 Cl=/^[\x20\x21\x23-\x5B\x5D-\x7E]*$/;async function wl(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`||!Cl.test(n)?``:typeof r==`string`&&Cl.test(r)?`: ${n} (${r})`:`: ${n}`}function Tl(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 El(e){return e===void 0?[]:e.split(` `).filter(e=>e.length>0)}function Dl(e,t,n){if(t.length===0)return;let r=El(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 Ol(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 xl(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 wl(c)}`);let l=Tl(await c.json(),t.tokenEndpoint);return Dl(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 kl(e){return Sl(e.tokenEndpoint,`token_endpoint`),Sl(e.resource,`resource`),Ol(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}:{}},El(e.scope),{refreshToken:e.refreshToken,scope:e.scope})}function Al(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 jl={now:Date.now,wait:Ia},Ml=new WeakMap;function Nl(e){let t=Ml.get(e);if(t)return t;let n={places:[],heldUntil:0,waiting:new Set};return Ml.set(e,n),n}function Pl(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 Fl(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 Il(e,t,n,r=jl){let i=Nl(e),a=r.now()+ja;for(;;){let e=r.now(),o=Pl(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?Va(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 Fl(i,Math.min(o,a)-e,n,r)}}async function Ll(e,t){try{let n=await t;return e?.answered(n),n}catch(t){throw e?.answered(),t}}function Rl(e){return{handlers:[],profile:e.profile,step:e.turn?.step??1,history:()=>[],injectAllowed:!1,host:e.host,signal:e.signal}}async function*zl(e){let{tool:t,ctx:n,base:r,stages:i}=e,a,o=gl(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*Bl({stages:i??Rl(n),toolName:t.name,callId:r.callId,input:e.input,toolPreTool:a,details:yl(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,...yl(t,r.data),preparedArguments:L.parse(sl(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 Vl(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*Bl(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 Vl(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*Hl(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*Ul(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 Wl(e,t){if(!t)return e;let n=new URL(e);return n.searchParams.set(t.name,t.value),n}function Gl(e,t,n){let r=e.headerName??n.headerName,i=e.headerPrefix??n.headerPrefix;return{[r]:`${i}${t}`}}function Kl(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 ql(e,t,n,r,i){return r===`gate`?{headers:{},unauthenticated:!0,gate:Kl(e,t,n,i)}:r===`fail`?{headers:{},unauthenticated:!0,failureMessage:n}:{headers:{},unauthenticated:!0,modelMessage:n}}function Jl(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:Gl(e,n,{headerName:`Authorization`,headerPrefix:`Bearer `})};let r=t.headerName??e.headerName??`Authorization`,i=t.headerPrefix??e.headerPrefix??``;return{headers:{[r]:`${i}${n}`}}}function Yl(e,t){if(e.type!==`bearer`&&e.type!==`api_key`)return;let n=e.type===`bearer`?e.token:e.key;return{...Jl(t,e),secret:n}}var Xl=new Map;function Zl(e,t,n,r){let i=`${e.tokenEndpoint}\n${t}`,a=Xl.get(i);if(a)return a;let o=kl({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);Xl.set(i,o);let s=()=>Xl.delete(i);return o.then(s,s),o}async function*Ql(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 ql(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 Zl(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)},ql(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 ql(e,t,`OAuth token expired for '${e}' (slot: '${s}') and no refresh token is available.`,o,c);return{headers:Gl(t,l.accessToken,{headerName:`Authorization`,headerPrefix:`Bearer `}),secret:l.accessToken,audience:n.resource}}async function*$l(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?ql(e,t,`Authentication required for '${e}' (auth slot: '${t.slot}').`,o):Yl(a,t)||(a.type===`oauth2`?yield*Ql(e,t,a,i,n,r,o):{headers:{}})}function eu(e,t){if(t===`.`||t===`..`)throw Error(`Path parameter "${e}" cannot be "${t}"`);return encodeURIComponent(t)}function tu(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}}`,eu(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 nu(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 ru(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 iu(e){return{finding:typeof e==`string`?e:JSON.stringify(e)}}function au(e,t){return t?.length?{...e,parts:t}:e}function Z(e,t){return{kind:`failed`,failure:e,callNotStarted:t}}async function*ou(e){let t=yield*zl(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 su(e,t,n){let r=gt(e,t,n);if(!r.ok)return{ok:!1,outcome:Z(r.failure,!0)};let i=bl(e.name,e.permission,n.sessionPermissions,n.resume,yl(e,r.data));return i?{ok:!1,outcome:{kind:`gated`,gate:i}}:{ok:!0,input:r.data}}function cu(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 lu(e){return e.status===401||e.status===403?{status:e.status,challenge:e.headers.get(`www-authenticate`)}:void 0}var uu=/^[\x21\x23-\x5B\x5D-\x7E]+$/;function du(e){let t=t=>e?.match(RegExp(`(?:^|[\\s,])${t}="([^"]*)"`,`i`))?.[1],n=(t(`scope`)??``).split(` `).filter(e=>uu.test(e)),r=t(`error`);return r===void 0?{scopes:n}:{error:r,scopes:n}}function fu(e){return e.status===401||du(e.challenge).error===`insufficient_scope`}function*pu(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 cu(ql(e.name,a,t,o),!0)}let s=du(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 cu(ql(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*mu(e){let t=yield*$l(e.tool.name,e.tool.auth,e.ctx,e.base),n=cu(t);if(n)return n;let r=yield*ou({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*hu(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 gu=`[omitted - credential]`,_u=4194304,vu=2e3;async function*yu(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 bu(e,t=_u){let n=yu(e,t),r=``;for(;;){let e=await n.next();if(e.done)return e.value?r:void 0;r+=e.value}}async function*xu(e,t,n){let r=yu(e,_u),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?wu(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 Su(e){return e.length>vu?`${e.slice(0,vu)}…`:e}function Cu(e){return{code:`response_too_large`,kind:`bad_response`,message:`Response from ${e} is larger than ${_u} bytes`}}function wu(e,t){return e.replaceAll(t,gu)}function Tu(e,t){return hn(e,e=>wu(e,t))}function Eu(e,t){return{...e,message:wu(e.message,t),...e.details===void 0?{}:{details:Tu(e.details,t)}}}function Du(e,t){if(!t)return e;if(e.kind===`ok`){let n=Tu(e.outputRaw,t);return{kind:`ok`,outputRaw:n,modelResult:au(iu(n),e.modelResult.parts)}}return e.kind===`failed`?{...e,failure:Eu(e.failure,t)}:e}function Ou(e,t){if(e&&!Al(e,t))return`The OAuth token for "${e}" cannot be sent to "${t.origin}${t.pathname}"`}async function*ku(e,t,n){let r=Ou(e.audience,t);return r?Z({code:`credential_audience_mismatch`,kind:`config`,message:r},!0):Du(yield*n(Wl(t,e.query)),e.secret)}async function*Au(e,t,n,r,i,a,o){let s=su(e,t,n);if(!s.ok)return s.outcome;let c=s.input,l=yield*mu({tool:e,input:c,ctx:n,base:r,stages:i});if(!(`ok`in l))return l;c=l.input;let u;try{u=tu(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*ku(l,d.url,t=>Nu(e,t,u.body,l,n,r,i?.span,o))):Z(d.failure,!0)}function ju(e){if(!e.ok)return!1;let t=e.headers.get(`content-type`)??``;return t===``||t.startsWith(`text/`)||/[/+]json\b/.test(t)}async function*Mu(e,t,n){return!t||!ju(e)?await bu(e):yield*xu(e,t,n)}async function*Nu(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 Il(e,e.limit,a.signal):void 0;if(s&&`full`in s)return Z(qu(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 Ll(s,je(t.href,{method:e.method,headers:u,body:n,signal:f},{policy:rt(a),followRedirects:!0,...e.access===`read-only`?{fetchFn:Ha(fetch)}:{},originBoundHeaders:{...e.headers,...r},resolveHost:a.resolveHost,onCheck:l.onCheck})),m=yield*Mu(p,c,i);if(m===void 0)return Z(Cu(t.hostname),!1);if(!p.ok)return(yield*pu(e,lu(p),i!==void 0,a,o))||Z({code:`http_${p.status}`,kind:Ju(p.status),message:`HTTP ${p.status} from ${t.hostname}: ${Su(m)}`},!1);let h=nu(p.headers.get(`content-type`)??``,m,p.status),g=ru(e.output,h);return g.success?{kind:`ok`,modelResult:iu(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(Pu(t.hostname,e.timeoutMs),!1):yield*hu(n,l)}finally{l.record()}}function Pu(e,t){return{code:`timeout`,kind:`timeout`,message:`${e} did not answer within ${t} ms`}}var Fu=[`2026-07-28`,`2025-11-25`,`2025-06-18`,`2025-03-26`];function Iu(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 Lu(e){if(!e)return!1;let t=e.message.toLowerCase();return t.includes(`unsupported protocol version`)||t.includes(`inconsistent mcp protocol version`)}function Ru(e){try{let t=Iu(e);if(t.error&&Lu(t.error))return t.error}catch{}if(e.toLowerCase().includes(`unsupported protocol version`))return{code:-32600,message:e}}async function zu(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 bu(o);if(s===void 0)return{kind:`failure`,failure:Cu(new URL(e.url).hostname)};if(!o.ok){let t=Vu 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!==Fu.at(-1))return{kind:`retry`};let n=Ru(s);if(n)return{kind:`protocol_retry`,error:n};let r=lu(o);return{kind:`failure`,...r?{refusal:r}:{},failure:{code:`mcp_http_${o.status}`,kind:Ju(o.status),message:`MCP server error HTTP ${o.status}: ${Su(s)}`}}}try{let e=Iu(s);return e.error&&Lu(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: ${Su(s)}`}}}}async function Bu(e,t,n,r){let i;for(let a of Fu){let o=await zu(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 Vu=`Mcp-Session-Id`,Hu=`2025-11-25`,Uu=class extends Error{failure;constructor(e){super(e.message),this.failure=e}};function Wu(e,t){return new Uu({code:e,kind:`failed`,message:t})}async function Gu(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:Hu,capabilities:{},clientInfo:{name:`theorem`,version:`1`}}},{"Mcp-Method":`initialize`}),r=await bu(n);if(r===void 0)throw new Uu(Cu(new URL(e.url).hostname));if(!n.ok)throw Wu(`mcp_session_http_${n.status}`,`MCP server refused to open a session: HTTP ${n.status}: ${Su(r)}`);let i=n.headers.get(Vu);if(!ir(i))throw Wu(`mcp_session_invalid`,`MCP server required a session but sent no usable session ID`);let a;try{a=Iu(r).result?.protocolVersion}catch{a=void 0}if(!Fu.some(e=>e===a))throw Wu(`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`},{[Vu]:i})).body?.cancel().catch(()=>{}),{id:i,protocolVersion:o}}async function Ku(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,()=>Gu(e))}catch(e){if(e instanceof Uu)return{failure:e.failure};throw e}let o=await zu({...e,originBoundHeaders:{...e.originBoundHeaders,[Vu]: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 qu(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 Ju(e){return e===401||e===402||e===403?`auth`:e===429?`rate_limit`:`failed`}function Yu(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 Xu(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 Zu(e,t){let n=Array.isArray(t?.content)?t.content:void 0,r=n?.flatMap(e=>Xu(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=Qu(n.error.issues)}let o=n?n.flatMap(e=>Yu(e)??[]).join(`
|
|
7
|
-
`):t;return{checked:ru(e.output,o),...i,...a?{warning:a}:{}}}function Qu(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 $u(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 ed(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=$u(n);if(r)return{ok:!1,failure:r};let{checked:i,parts:a,warning:o}=Zu(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*td(e,t,n,r,i,a=Bn(),o){let s=su(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*mu({tool:e,input:s.input,ctx:n,base:r,stages:i});return`ok`in l?(yield*h(e,l.input,n,r,o),yield*ku(l,c.url,t=>nd(e,t,l.input,l,n,r,i?.span,a))):l}async function*nd(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 Ku(s,o.callId,e.mcpToolName,n,{cache:c,key:u,cached:d}):await Bu(s,o.callId,e.mcpToolName,n),p=f.sessionRequired?await Ku(s,o.callId,e.mcpToolName,n,{cache:c,key:u}):f,m=yield*pu(e,p.refusal,i!==void 0,a,o);if(m)return m;let h=ed(e,p);return h.warning&&(yield B(o,{phase:`warning`,warning:h.warning})),h.ok?{kind:`ok`,modelResult:au(iu(h.data),h.parts),outputRaw:h.data}:Z(h.failure,!1)}catch(e){return yield*hu(e,l)}finally{l.record()}}var rd=class extends Error{refusal;constructor(e){super(`The service refused the credential (HTTP ${e.status}).`),this.name=`CredentialRefusedError`,this.refusal=e}};function id(e,t,n){return async(r,i={})=>{let a=new URL(r),o=Ou(e.audience,a);if(o)throw new H(`config`,o);let s=await je(Wl(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=lu(s);if(c&&fu(c))throw await s.body?.cancel(),new rd(c);return s}}function ad(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 od(e){return e.type===`builtin`?void 0:e.type}function sd(e,t){let n=e.get(t),r=n?od(n):`function`;return r&&Nt(`tool_arguments`,r)}function cd(e,t){let n=ad(e,t);return{origin:n,tool:e.name,depth:n===`delegated`?2:1}}function ld(e){return typeof e==`function`&&Object.prototype.toString.call(e)===`[object AsyncGeneratorFunction]`}var ud=new Set([`image`,`audio`,`video`,`document`]);function dd(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}):ud.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 fd(e){if(!G(e))return e;let{parts:t,...n}=e;return n}async function*pd(e,t,n,r){if(ld(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 md(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:fd(t)};let r=G(t)&&`parts`in t?dd(t.parts):void 0,i=fd(t),a=G(i)&&`finding`in i,{finding:o,...s}=a?i:{};return{...a?{finding:String(o),...Object.keys(s).length>0?{data:s}:{}}:iu(i),...r?{parts:r}:{}}}function hd(e,t){return Mn(t.profile)?.t2Loader===e.name}function gd(e,t,n,r,i){if(!hd(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*_d(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 vd(e,t,n){return Tt(e?.activityPast,{input:t,output:n})}function yd(e,t){let{input:n,outputRaw:r,modelResult:i}=t,a=t.labelFailed?mt(e):vd(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*bd(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:vd(e.labels,i,p);v=yield*Hl({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*_d(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)):yd(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}:{},...xd(v)}}function xd(e){return{...e?.abort===void 0?{}:{aborted:e.abort},...e?.inject.length?{pendingInject:e.inject}:{}}}function Sd(e,t,n,r,i){return bd({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 Cd(e,t,n,r,i){let a=cd(t,e),o=z(n.profile.guardrails),s=r?.executable??[],c={provenance:a,policy:o,kind:od(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=>tf(e,c),f=gl(n.resume)?zd(t,n.resume):void 0;if(!f)return{result:e=>ef(e,c),failure:e=>Qd(e,c),handlerEvents:u,shown:d};let p=W(`sign_in.done`,{service:f},n.profile.labels);return{result:e=>wd(p,ef(e,c)),failure:e=>wd(p,Qd(e,c)),handlerEvents:u,shown:d}}function*wd(e,t){let n=yield*t,r=`${e}\n\n${Ge(n.modelResult)}`;return{...n,modelResult:{...n.modelResult,modelText:r}}}async function*Td(e){let{tool:t,base:n,stages:r,guard:i}=e,a=yield*zl(e);return a.ok?a:a.kind===`aborted`?{aborted:a.aborted,callNotStarted:!0}:a.kind===`gated`?{gated:a.gate,callNotStarted:!0}:yield*Sd(i,n,a.failure,r,{toolName:t.name,callId:n.callId,input:e.input,callNotStarted:!0,...a.denied?{denied:!0}:{}})}function Ed(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*Dd(e,t,n){if(!e.auth)return{};let r=yield*$l(e.name,e.auth,t,n),i=cu(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 Od(e){return{code:`handler_error`,kind:e instanceof H?e.kind:`failed`,message:Ye(e)}}function kd(e,t){return e.answeredBy===`page`&&t.page===void 0&&!t.pageExecution}async function*Ad(e,t,n,r){let i=t.pageExecution;if(e.answeredBy!==`page`||!i)return t;if(!n?.invocation)throw X();let a=L.parse(sl(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*jd(e,t,n,r,i,a,o,s,c){let l=Cd(e,s??t,r,a,o?.span),u=i.callId,d=gt(t,n,r);if(!d.ok)return yield*Sd(l,i,d.failure,o,{toolName:t.name,callId:u,callNotStarted:!0});let f=d.data,p=bl(t.name,t.permission,r.sessionPermissions,r.resume,yl(t,f));if(p)return yield*Ul({base:i,gate:p,callId:u,toolName:t.name,labels:r.profile.labels}),{gated:p,callNotStarted:!0};I(r.signal);let m=e=>Ld({outcome:e,tool:t,base:i,callId:u,safeInput:f,stages:o,guard:l,labels:r.profile.labels}),g=yield*Dd(t,r,i);if(g.outcome)return yield*m(g.outcome);let _=yield*Td({tool:t,input:f,ctx:r,base:i,stages:o,guard:l});if(!(`ok`in _))return _;if(f=_.input,kd(t,r)){let e={kind:`page`,tool:t.name,...yl(t,f)};return yield*Ul({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*Ad(t,r,v,i);let{secret:y}=g,b=e=>Sd(l,i,y?Eu(e,y):e,o,{toolName:t.name,callId:u,input:f}),x=Re(o?.span),S=g.prepared?{...r,signedInFetch:id(g.prepared,r,x)}:r,C;try{let e=new pl(i,l.handlerEvents(o?.drafts===!0));C=yield*pd(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 rd){x.record();let n=yield*pu(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(Od(e))}if(y&&(C=Tu(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=gd(e,t,w.data,r,a);if(!T.ok)return yield*b(T.failure);let E=hd(t,r);return yield*bd({base:i,toolName:t.name,callId:u,input:f,stages:o,guard:l,provisional:{outputRaw:T.output,modelResult:md(t,T.output,r.profile.labels)},sources:t.sources,labels:t.labels,...E?{}:{reproject:Ed(e=>t.output.safeParse(e),e=>md(t,e,r.profile.labels),r.profile.labels)}})}function Md(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*Nd(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 Pd(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=hl(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:Md(t,n)}}function Fd(e){let t=e.tools.get(e.name);if(!t||t.type===`builtin`)throw new H(`blocked`,W(`error.blocked`));let n=Pd({...e,tool:t});if(n)throw new H(n.kind,n.message);e.outcome&&Id(e,t,e.outcome)}function Id(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},cd(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*Ld(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*Ul({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*Sd(s,r,t.failure,o,{toolName:l,callId:i,input:a,callNotStarted:t.callNotStarted,...t.denied?{denied:!0}:{}}):yield*bd({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:Ed(e=>ru(n.output,e),e=>au(iu(e),t.modelResult.parts),c)})}function Rd({modelResult:e}){return e?{text:Ge(e),parts:e.parts}:void 0}function zd(e,t){if(t?.signIn&&e.type!==`builtin`&&e.type!==`agent`)return e.auth?.service}function Bd(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 Vd(e,t,n){let r=zd(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)}:Bd(e.name,i===`expired`?r:void 0,n)}function Hd(e){if(gl(e))return!0;if(_l(e))return!1}function Ud(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 Wd(e){let t=e.tools.get(e.name),n=z(e.profile.guardrails),{args:r}=vt(Ar(e.input),t?cd(t,e.tools):{origin:`local`,tool:e.name,depth:1},n,sd(e.tools,e.name),jt(n,e.scope??{}));return typeof r==`object`&&r&&!Array.isArray(r)?r:{}}async function*Gd(e){return e={...e,ctx:{...e.ctx,operationId:e.ctx.operationId??crypto.randomUUID()}},yield*dl(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=>Kd({...e,beginBody:async n=>{let r=await t?.(n)??await e.beginBody?.(n);return e.onDispatch?.(),r}}),t=>Fd({outcome:t,tools:e.tools,profile:e.profile,name:e.name,resume:e.ctx.resume,snapshot:e.snapshot}))}async function*Kd(e){let t=e.tools.get(e.name);if(!e.openSpan)return yield*qd(e,t);let n=St(e.openSpan,{name:e.name,callId:e.callId,call:{arguments:Be(Ar(e.input))},origin:t?ad(t,e.tools):void 0,permission:t&&`permission`in t?t.permission:void 0,approved:Hd(e.ctx.resume),step:e.ctx.turn?.step}),r=qd({...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(Ud(t.value,e.readBack??Rd)),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*qd(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*Nd(t,{...o,callId:a,profile:n,operationId:u},d,s)}let f=Pd({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(_l(o.resume))return yield*Sd(Cd(e.tools,t,{...o,callId:a,profile:n,operationId:u},s,c?.span),d,Vd(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=cd(t,e.tools),g=performance.now(),_=od(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*Jd({tool:t,input:v.args,ctx:p,base:d,provenance:h,policy:m,span:c?.span}))||(yield*Zd(e.tools,t,v.args,p,d,s,c,e.agents,e.beginBody))}async function*Jd(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||gl(r.resume))return void 0;let u={kind:`confirmation`,tool:t.name,summary:c,...yl(t,n)};return yield*Ul({base:i,gate:u,callId:r.callId,toolName:t.name,labels:a}),{gated:u,callNotStarted:!0}}async function*Yd(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=jd(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 Xd(e.value,r.callId,a)}}function Xd(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*Zd(e,t,n,r,i,a,o,s,c){let{name:l}=t;if(t.type===`function`)return yield*jd(e,t,n,r,i,a,o,void 0,c);if(t.type===`agent`)return yield*Yd({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=Cd(e,t,r,a,o?.span);return yield*Ld({outcome:t.type===`http`?yield*Au(t,n,r,i,o,c,new pl(i,u.handlerEvents(o?.drafts===!0))):yield*td(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*Qd(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*$d({...e,message:i},t)}}function*$d(e,t){let n=Ae(e);return(yield*nf(n,t,void 0))??n}function*ef(e,t){let n=yield*nf(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*$d(r,t),withheld:r}}function*tf(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*nf(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 rf(){let e=()=>void 0;return{promise:new Promise(t=>{e=t}),resolve:e}}function af(e,t,n){let r=new Set,i=new Map(e.map(e=>[e,rf()])),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=rf();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*of(e,t,n){try{return await e.start(t),yield*n()}finally{e.settle(t)}}async function*sf(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 cf(e,t){return e.type===`thought`&&wc(t)?.streaming?.streamThoughts===!1}function*lf(e){e.some(e=>e.rule===wn.providerToolLeak)?yield*uf(e):yield*df(`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*uf(e){let t=Hn(`output_delta`,`untrusted`,e,`block`);t&&(yield t)}function*df(e,t){let n=t&&dn(e,t,void 0,ff[e]);n&&(yield K(n))}var ff={reply:`output_delta`};function*pf({text:e,hits:t,found:n},r){yield*df(`thought`,n);let i=Hn(`thought`,`untrusted`,t,`redact`);i&&(yield i),e&&(yield{...r,text:e})}function*mf(e,t){e&&(yield*pf(e.flush(),{type:`thought`,text:``}),t&&(t.thoughtCarry=e.carryOut()))}function hf(e){return e.type===`text`||e.type===`media`}function gf(e,t){return!t.structured||e.type!==`text`?e:t.stream===!1?void 0:{type:`structured_draft`,text:e.text}}var _f=class{drafts;generation;constructor(e){let t=z(e.profile.guardrails),n=bf(e,t);this.drafts=new Xn(()=>Br(t,n,`reply_structured`)),this.generation=e.generation}async*show(e){let t=gf(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 vf(e){return e.type===`structured`||e.type===`tool`}var yf=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=sd(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 bf(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*xf(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=bf(e,c),{canaryCarry:u,thoughtCarry:d}=o??{},f=await jn(c,l,`reply`,u),p=await Qi(c,l,d),m=new yf(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*uf(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*df(`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*pf(p.push(e.text),e),!0)}function*E(){w&&(w=!1,yield*mf(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=vf(e)?void 0:await s(`stream_canary`,()=>Rt(e,l,c.detect,`reply`));if(t?.stop){yield*lf(t.hits);return}t&&(yield*df(`reply`,{action:`flag`,hits:t.hits})),y()&&hf(e)||(e.type===`error`&&(D=!0),e.type===`done`&&(yield*mf(p,o))),yield e}yield*mf(p,o),(yield*x())!==`stop`&&(o&&f&&(o.canaryCarry=f.carryOut()),D&&(yield{type:`done`,stop:{kind:`provider_error`}}))}function Sf(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 Cf(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 wf(e,t){return{tokens:e.tokens+t.tokens,unknownMedia:e.unknownMedia+t.unknownMedia}}function Tf(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 Ef(e,t){let n=await ic(),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 Tf(e.output,t))r.tokens+=n.text(i);return r}async function Df(e){let t=await ic(),{conversation:n}=e;if(`previous`in n){let e=await Df(n.previous),r=await Ef(n.previous,!1),i=t.messages(n.continuation);return wf(wf(e,r),i)}let r=wf(t.messages(n.history),t.parts(n.input));return e.held?wf(e.held,r):r}async function Of(e){return wf(await Df(e),await Ef(e,!1))}async function kf(e,t){let n=await ic(),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 Df(e);return{tokens:n.text(e.system)+i+a+o.tokens,unknownMedia:o.unknownMedia}}async function Af(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 kf(e,t):void 0,a=r.includes(`output`)?await Ef(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 jf(e,t){return t>0&&e>=t}function Mf(e,t,n){let r={...e,history:t.currentHistory};return n?{...r,builtins:[],tools:{...e.tools,wire:[]}}:r}function Nf(e,t,n){return e.type===`text`&&e.turnBehaviour?.atStepLimit===`answer`&&jf(n,t.maxSteps??0)}function Pf(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 Ff(e,t,n,r){let i=Sf(t.text,{history:n.currentHistory,input:e.input});n.lastCall=i;let a=Mf(e,n,r),o=nl(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 If(e,t){let n=ie(e);return n?.autoContinue!==void 0&<(t,n)}var Lf=new Set([`text`,`media`,`structured`,`citation`]);function Rf(e,t,n){return e.type===`error`?(t.failures.push(e),!0):e.type===`tool`?Pf(t.calls,e.tool):(e.type===`guardrail`&&n.guardrail(e.guardrail),e.type===`structured`&&(t.latestStructured=e.structured),Lf.has(e.type)&&(t.replied=!0),!1)}function zf(e,t,n,r){if(Qc(e,n),t.withholdVisible&&hf(e))return n.withheldVisible=!0,!1;e.type===`text`&&(n.released+=e.text);let i=e.type===`thought`||!r.holdVisible&&hf(e);return!r.holdLate||i}var Bf=new Set([`unavailable`,`bad_response`,`network`,`timeout`,`rate_limit`]);function Vf(e,t,n){let{stop:r}=n;if(!e||n.replied||n.calls.length>0||!r||!Te(r.kind)||!If(t,r))return;let i=n.failures[0];if(!i?.errorKind||Bf.has(i.errorKind))return{stop:r,failure:i}}function Hf(e,t){e.canaryCarry=t.canaryCarry,e.thoughtCarry=t.thoughtCarry,t.promptLeaks&&(e.promptLeaks=[...e.promptLeaks??[],...t.promptLeaks])}async function*Uf(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}=Ff(i,a,t,Nf(r,i,t.stepCount)),f={calls:[],reasoning:[],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 _f(m);try{for await(let e of xf({...m,request:u,provider:o,call:d,signal:s,control:p,tools:t.tools}))if(!Cf(c,e)){if(e.type===`reasoning`){let{type:t,...n}=e;f.reasoning.push(n)}else e.type===`done`?(t.providerState=e.providerState,f.stop=e.stop,t.lastStop=e.stop):e.type===`tool_draft`?n.holdVisible||(yield e):Rf(e,f,d)||zf(e,p,t,n)&&(yield*h.show(e))}}catch(e){throw d.end(F(e)?{stop:{kind:`cancelled`}}:{stop:f.stop,thrown:e}),e}yield*h.end(),Hf(t,p);let g=Vf(e.mayResume,r,f);if(!g)for(let e of f.failures)Qc(e,t),n.holdLate||(yield e);let _=await Af(c,i);return d.end({tokens:_?.tokens,stop:f.stop}),_&&(Qc(_,t),yield _),{calls:f.calls,reasoning:f.reasoning,latestStructured:f.latestStructured,...g?{resume:g}:{}}}async function*Wf(e,t,n){let r=ie(e.profile)?.maxContinues??1;for(;;){let i=e.profile.type===`text`&&t.resumes<r,a=yield*Uf({...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 Ia(ve,e.signal)}}function Gf(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 Kf(e,t,n){e.currentHistory.push(Gf(t,n))}async function*qf(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 Jf(e){return(t,n)=>e.trace.root.child(t,{attributes:n})}function Yf(e,t,n){let r=R(t,n);e.allEmittedEvents.push(r);let i=qe(n);return St(Jf(e),{name:t.name,callId:t.callId,call:t,step:e.stepCount}).end({outcome:`error`,result:{text:Ge(i)},failure:n}),Kf(e,t,i),r}function*Xf(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}),Kf(t,n,e.modelResult),e.pendingInject&&(yield*Xc(t,`post_tool`,e.pendingInject,{callId:n.callId,toolName:n.name}))),`continue`)}async function*Zf({calls:e,reasoning:t},n,r,i,a,{onStage:o,signal:s,credentials:c,resolveHost:l}={}){e.length>0&&i.currentHistory.push(Je(e.map((e,n)=>n===0?{...e,reasoning:t}:e)));let u=crypto.randomUUID(),d={canary:n.canary,canaryGiven:i.canaryGiven,privateSystem:a.private},f=e.map(e=>({...e,operationId:crypto.randomUUID(),shown:e.failure?e.arguments:Wd({tools:i.tools,profile:r,name:e.name,input:e.arguments,scope:d})}));for(let[e,n]of f.entries()){let r=Ue(n,n.shown,{...e===0&&t.length?{reasoning:t}:{},stepId:u,stepCallCount:f.length});i.allEmittedEvents.push(r),yield r}let p=af(f.map(e=>e.callId),Zn(r)===!0,s),m={handlers:o?[o]:[],profile:r,step:i.stepCount,history:()=>i.currentHistory,injectAllowed:Ee(r),injectWouldExceedMaxSteps:Gc(i.stepCount,n.maxSteps),host:n.host,signal:s,stepCalls:f.map(e=>({callId:e.callId,tool:e.name,input:e.shown})),wait:p.wait,drafts:n.stream!==!1},h={step:i.stepCount,taint:i.taint,destinations:i.destinations,visible:[...n.tools.visible]},g=e=>qf(Gd({tools:i.tools,execution:n.execution,invocation:{model:n.model,input:n.input,history:n.history},...i.agents?{agents:i.agents}:{},profile:r,name:e.name,input:e.arguments,callId:e.callId,ctx:{operationId:e.operationId,pageExecution:n.pageExecution,sessionPermissions:n.sessionPermissions,path:n.tools.path,turn:h,credentials:c,resolveHost:l,host:n.host,resume:void 0,signal:s},snapshot:n.tools,stages:m,scope:d,openSpan:Jf(i)}),i);for(let e of f)e.failure&&p.settle(e.callId);let _=yield*sf(f.map(e=>e.failure?void 0:of(p,e.callId,()=>g(e)))),v=!1,y=!1;for(let[e,t]of f.entries()){if(t.failure){yield Yf(i,{...t,activityFailed:He(t.name,r.labels)},t.failure);continue}let n=_[e];if(!n)continue;let a=yield*Xf(n,i,t);a===`stop_cancelled`&&(y=!0),a===`gated`&&(v=!0)}return y?!1:v?(i.lastStop={kind:`gate`},!1):f.length>0}async function*Qf(e){let{profile:t,generation:n,system:r,provider:i,state:a}=e,o,s=wc(t)?.validation,c=s!==void 0||Rn(z(t.guardrails),ye),l=s!==void 0&&n.stream===!1;for(;!jf(a.stepCount,n.maxSteps??0);){I(e.safe.signal),a.stepCount++;let s=yield*Wf({profile:t,generation:n,system:r,provider:i,signal:e.safe.signal},a,{holdLate:c,holdVisible:l});if(s.latestStructured!==void 0&&(o=s.latestStructured),!(yield*Zf(s,n,t,a,r,e.safe)))break;jf(a.stepCount,n.maxSteps??0)&&(a.lastStop={kind:`step_limit`})}return{latestStructured:o}}var $f={kind:`filtered`,native:`egress`};function ep(e){let t=[];for(let n of e)n.type===`text`&&n.text&&t.push(n.text);return t.join(``)}function tp(e){let t=P(e,e=>e.type===`structured`)?.structured;return{text:ep(e),...t===void 0?{}:{structured:t}}}function np(e,t,n,r){return{...e,input:{...e.input,repair:{previousOutput:typeof t==`string`?t:JSON.stringify(t),rejection:n,guidance:r}}}}function rp(e){let{attemptEvents:t,request:n,profile:r,canRetry:i,promptLeaks:a}=e,{detect:o,blockedReply:s}=e.policy,c=tp(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:np(n,d.text,Cc(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 ip(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:np(i,r,Or(s))}:{action:`pass`,failed:s}}function*ap(e,t,n){for(let r of e){if(r.type===`tokens`||r.type===`thought`||t&&hf(r))continue;let e=gf(r,{...n,stream:!1});e&&(yield e)}}function op(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;$c(t,hr(n,{...a,input:{repair:a.input?.repair}}));for(let n of t.currentHistory.slice(e))sp(t,n)}else{let r=hr(n,a);sp(t,r),e.currentGen={...e.currentGen,input:r}}let o={type:`attempt`,attempt:e.currentAttempt,reason:i};return t.allEmittedEvents.push(o),o}function sp(e,t){e.canaryScanned.add(t),e.givenUrls.own.add(t)}function cp(e,t){return wc(e)?.validation!==void 0&&t.stream===!1}async function*lp(e,t,n,r,i){let a=t.currentAttempt<e.blockedReply.maxRetries,o=performance.now(),{outcome:s,guardrails:c,structured:l}=await rp({policy:e,attemptEvents:n.attemptEvents,withheld:n.withheldVisible===!0,released:n.released,shown:cp(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=$f,n.allEmittedEvents.push(s.event),yield s.event,`terminal`):s.action===`withhold`?(n.lastStop=$f,yield s.event,`terminal`):s.action===`retry`?(yield op(t,n,r,s.nextRequest,`egress`),`continue`):`pass`}function up(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 dp(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 fp(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 pp(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 mp(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 hp(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(`
|
|
9
|
-
`),l=np(t.currentReq,up(a),c,W(`repair.items_guidance`,{},r.labels));t.pendingItemFix={reply:i,refused:a,structured:o};let u=op(t,n,r,l,`validation`);return t.currentGen={...t.currentGen,structured:{id:o.id,jsonSchema:dp(o.jsonSchema,a.map(({path:e})=>e))}},u}async function gp(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=fp(o,i),mp(n,s,[]));let c=await ip({validation:e,generation:t.currentGen,latestStructured:s,request:t.currentReq,canRetry:a});if(c.action===`retry`)return op(t,n,r,c.nextRequest,`validation`);if(s===void 0)return`pass`;c.failed&&_p(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?hp({flow:t,state:n,profile:r,reply:s,refused:d,structured:f}):(mp(n,pp(s,u),u,c.failed),`pass`)}function _p(e,t){let n=P(e.attemptEvents,e=>e.type===`structured`);n&&(e.attemptEvents[e.attemptEvents.indexOf(n)]={...n,failed:t})}function vp(e){return e===`terminal`?{status:`terminal`}:e===`continue`?{status:`continue`}:null}async function*yp(e){let{flow:t,state:n,profile:r,system:i,provider:a}=e,o=wc(r)?.validation,s=z(r.guardrails),c=Rn(s,ye);n.stepCount=0;let l;for(;n.attemptEvents=[],n.released=``,n.withheldVisible=!1,n.promptLeaks=void 0,l=(yield*Qf({safe:t.currentReq,profile:r,generation:t.currentGen,system:i,provider:a,state:n})).latestStructured,n.lastStop?.kind!==`tool`&&n.lastStop?.kind!==`gate`&&n.lastStop?.kind!==`step_limit`;){if(n.lastStop?.kind===`cancelled`)return{status:`terminal`};let e=yield*Zc({profile:r,generation:t.currentGen,state:n,stage:`before_end`,step:Math.max(n.stepCount,1),onStage:t.currentReq.onStage,signal:t.currentReq.signal,host:t.currentGen.host,injectWouldExceedMaxSteps:Gc(n.stepCount,t.currentGen.maxSteps)});if(e.abort)return n.lastStop={kind:`cancelled`,...typeof e.abort==`object`&&e.abort.reason?{native:e.abort.reason}:{}},{status:`terminal`};if(!(e.injectCount>0))break}if(c){let e=vp(yield*lp(s,t,n,r,i.private));if(e)return e;l=tp(n.attemptEvents).structured??l}if(o){let e=await gp(o,t,n,r,l);if(e!==`pass`)return yield e,{status:`continue`}}if(o||c){let e=n.withheldVisible||cp(r,t.currentGen);yield*ap(n.attemptEvents,!e,t.currentGen)}return{status:`success`}}async function*bp(e,t,n,r,i,a){let{blockedReply:o}=z(t.guardrails),s=Math.max(wc(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*yp({flow:c,state:a,profile:t,system:r,provider:i});if(n.status===`terminal`||n.status===`success`)break}}var xp=new Set([`config`,`request`,`auth`,`internal`]);function Sp(e){return e.find(e=>e.type===`error`)}function Cp(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=wp(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)||xp.has(e.kind)||F(e))throw e;C.push(V(e))}return I(l),Tp(C,i.name,i.profile,u)}}}function wp(e,t,n,r){return r?ec(e.registry,t,n,r):e.provider?nc(e.provider,t,n):ec(e.registry,t,n,{})}function Tp(e,t,n,r){let i=P(e,e=>e.type===`done`),a=i?.tokens??de(e),o=a?{tokens:a}:{},s=Sp(e);if(s&&xp.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 Ep(e,t){return Vn(e,t?.include.guardrailMatchPreview??!1)}var Dp=1e3;function Op(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()/Dp})),e.seen.push(n),e.delivered.add(n,e.root.nowUnixNano()),n}function*kp(e,t,n){let r=Ep(t,e.observability);cf(r,n)||(yield Op(e,r))}function Ap(e,t){return e.models[t]?.compaction}function jp(){return{builtins:[],gated:[],visible:[],executable:[],wire:[]}}function Mp(e){let t=Vp(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),Up(t,nc(e.provider,e.req.profile,e.req.model,e.req))}async function Np(e){let t=e.spec.profile===void 0,n=e.spec.profile??e.owner,r=e.registry.profiles.get(n),{history:i,droppedMedia:a}=mc(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 Mp({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(xp.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=Sp(s);if(d&&xp.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 Pp(e){return P(e,e=>e.type===`tokens`)?.tokens}function Fp(e,t,n){return{timing:e.timing,meter:ac(e),budget:e.maxTokens,threshold:e.compactAt,...e.trigger?{trigger:`custom`}:{},...t?{tokens_before:t.tokens,unknown_media:t.unknownMedia}:{},needed:n}}function Ip(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 Lp(e){let t=await cc({spec:e.spec,input:e.input}),n=t!==void 0&&await uc(t,e.spec),r=Fp(e.spec,t,n);if(!(n&&t)){e.parent.event(`theorem.compaction`,r);return}let i=await dc(e.history,e.spec);if(i.toCompact.length===0){e.parent.event(`theorem.compaction`,r);return}let{toCompact:a,...o}=hc(i,await Np({...e,toCompact:i.toCompact}),t.tokens,e.spec);return e.parent.event(`theorem.compaction`,{...r,...Ip(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 Rp(e,t){if(t.history.length===0)return e;let n=Pp(t.seen),r=await cc({spec:t.spec,input:t.input,prompt:n}),i=r!==void 0&&await uc(r,t.spec);if(t.span.event(`theorem.compaction`,Fp(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*zp(e){let{safe:t,profile:n,generation:r,system:i,provider:a}=e,o=el({tools:e.registry.tools,profile:n,generation:r,trace:e.trace,...e.agents?{agents:e.agents}:{}});e.outState.state=o;let s=yield*Zc({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*Zc({profile:n,generation:r,state:o,stage:`post_turn`,step:1,onStage:t.onStage,signal:t.signal,stop:e,host:r.host});return}yield*bp(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*Bp(e,t,n,r,i){if(e.safe&&e.system!==void 0&&e.trace)for await(let a of zp({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=Ep(await Qp(a,e,n,i),e.observability);if(cf(r,t)||(yield Op(e,r)),r.type===`done`&&e.state&&!e.state.allEmittedEvents.some(e=>e.type===`stage`&&e.stage===`post_turn`))for await(let i of Zc({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*kp(e,i,t)}}function Vp(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 Hp(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*Up(e,t){try{yield*Kp(e,t)}catch(t){if(F(t)){yield*Gp(e),Hp(e);return}throw Hp(e,t),t}Hp(e)}async function*Wp(e,t,n,r){let i=En(`invoke_agent ${t.profile}`,{...Qe(t),...t.traceparent?{traceparent:t.traceparent}:{}}),a=Vp(e,t,i.root,[]),{sink:o,policy:s}=xs({override:r,observability:a.known?.observability,guardrails:a.known?.guardrails});a.observability=s;try{yield*Up(a,n)}finally{await ps(o,Ur({spans:i.collect(),policy:s,canaries:a.canaries,...t.metadata?{metadata:t.metadata}:{}}),s)}}async function*Gp(e){if(e.seen.some(e=>e.type===`done`))return;let t={kind:`cancelled`};yield Op(e,Ep({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??el({tools:e.registry.tools,profile:n,generation:r,trace:e.trace,allEmittedEvents:[...e.seen]});for await(let a of Zc({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*kp(e,a,n)}async function*Kp(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 Op(e,Ep(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=jp()),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=qp(e,t,c)),I(e.safe.signal);let l=e.compacting?void 0:Ap(o,s.model),u=await Zp(e,o,s,l,t);u&&(yield Op(e,Ep(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*Bp(e,o,s,t,l)}function qp(e,t,n){return Cp({registry:e.registry,req:e.safe??e.req,provider:t,own:n,depth:e.agentDepth,runNested:t=>Mp({...t,registry:e.registry,canaries:e.canaries})})}function Jp(e,t,n){return Cp({registry:e,req:t,provider:t.provider?tc(e,t.provider):void 0,own:void 0,depth:0,runNested:t=>Mp({...t,registry:e,canaries:n})})}function Yp(e,t,n,r){return Cp({registry:e,req:{...t,execution:n.execution},provider:tc(e,n),own:void 0,depth:0,runNested:t=>Mp({...t,registry:e,canaries:r})})}function Xp(e,t,n,r){return nc(r,n.profile??t.id,n.profile?void 0:e.req.model)}async function Zp(e,t,n,r,i){if(!(r?.timing===`before`&&e.safe))return;let a=Xp(e,t,r,i);if(!n.history?.length)return;let o=await Lp({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 Qp(e,t,n,r){return e.type===`done`&&r?.timing===`after`&&t.safe?await Rp(e,{spec:r,history:n.history??[],input:t.safe.input,seen:t.seen,span:t.root}):e}async function $p(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 dc(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}=xs({override:r,observability:i.observability,guardrails:i.guardrails}),f=[];try{let r=hc(s,await Np({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:ac(o),budget:o.maxTokens,threshold:o.compactAt,tokens_before:t.tokens,...Ip(r,t.history.length)}),l.root.end(),r}catch(e){throw bt(l.root,e),e}finally{await ps(u,Ur({spans:l.collect(),policy:d,canaries:f,...t.metadata?{metadata:t.metadata}:{}}),d)}}function em(e){return Array.isArray(e.input)?e.input:[]}function tm(e){return typeof e==`string`?e:JSON.stringify(e)}function nm(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 rm(e,t,n,r,i,a,o,s){let c=!a&&!i.interrupted&&(i.stop.kind===`completed`||i.stop.kind===`tool`),l=c?await ts(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 im(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 am(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 om(e){return{type:`batch`,row:{},turnPhase:`streaming`,events:e}}function sm(e,t,n){let r=as(e);return{type:`tool`,tool:!t.some(e=>e.type===`tool`)&&n.length?{...r,reasoning:n.splice(0)}:r}}function cm(e,t){let n=t.get(e);if(!n)throw new H(`bad_response`,W(`provider.tool_cancel_missing`));return om([{type:`tool`,tool:{callId:e,name:n,at:Date.now(),phase:`cancel`}}])}async function lm(e,t,n,r,i,a={}){let o=await es(e,t,i,n.history??[],a),s=Zo(e,t,`live`,r,{...n,liveConnection:!0}),c=await s.openSession(is(n,Ve(e,t),o)),l=Promise.resolve(),u=e=>{l=l.then(()=>Go(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 om([{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 Go(()=>f.next(),n.signal);if(o.done)break;let c=o.value;await Go(()=>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 om([...a,p]),a=[];else if(p.type===`tool_call`)am(p.call,r,n.history),i.push(sm(p.call,i,u));else if(p.type===`tool_cancel`){let e=cm(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 om([{type:`done`,stop:p.stop}]);continue}yield await rm(e,t,s.keySlot(),n,p,d,i,a),i=[],a=[],u=[],d=!1}else yield om([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 im(c.closeInfo?.())}}}function um(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 dm(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 fm=new Set([`text`,`thought`,`media`,`tool`]),pm=1e3;function mm(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 hm(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 gm=class{items=[];run;add(e){for(let t of e){let e=mm(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:hm(e)}:e)}};function _m(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 vm(e,t){return typeof t==`string`?{[e]:t}:{}}function ym(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`,...vm(`activity`,e?.type),...vm(`audio_offset`,e?.audioOffset)}}if(t.kind===`session_resumption`)return{kind:`session_resumption`,...pe(`resumable`,t.resumable),handle_issued:!!e.sessionResumptionHandle}}var bm=class{tree;out;identity;root;bound;response;lastResponse;pendingFrames=[];pendingInput=new gm;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=_m(t);`setup`in t?this.root.event(`theorem.wire.request`,{body:U(n)}):(this.pendingInput.add(em(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=ym(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:(Cf(r.usage,e),r.call.observe(e),!r.answering&&(fm.has(e.type)||n===`output_transcription`)&&(r.call.span.set({"gen_ai.response.time_to_first_chunk":r.call.span.msSinceStart()/pm}),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(_m(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=Sf(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 gm,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 Af(t.usage,n.generation):void 0;return r&&(this.held=await Of(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(()=>ps(this.out.sink,t,this.out.policy))}};function xm(e,t,n){let{sink:r,policy:i}=xs({override:n,observability:t?.observability,guardrails:t?.guardrails}),a={"gen_ai.agent.name":e.profile,...pe(`gen_ai.conversation.id`,e.conversationId)};return new bm(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 Sm(e,t){return e??(t?void 0:{unanswered:!0})}function Cm(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 wm(e){return typeof e.state==`object`&&e.state.released===!0}function Tm(e){return e.phase===`complete`||e.phase===`error`||e.phase===`gate`}function Em(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 Dm(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 Om(e){if(e.type!==`live`)throw new H(`request`,`runSession requires profile.type 'live' (got '${e.type}' for ${e.id})`)}function km(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 Am(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 jm(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 Mm(e,t){wr(e,{profile:e.id,input:{context:t}})}function Nm(e,t){return!t||!e.live?e:{...e,live:{...e.live,voice:t}}}function Pm(e,t){return!t||t.length===0?e:{...e,input:t}}async function Fm(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=>!Im(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=>!Im(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(Im),{type:`done`,stop:{kind:`completed`}}]}function Im(e){return e.type===`session`&&e.session.kind===`turn_complete`}function Lm(e){if(e.gated)return;let t=e.modelResult??(e.failure?qe(e.failure):void 0);return t?Ge(t):void 0}function Rm(e){let t=Lm(e);return t===void 0?void 0:{text:tm(t),parts:e.modelResult?.parts}}function zm(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*Bm(e){for(;e.length>0;){let t=e.shift();t&&(yield t)}}function Vm(e,t,n){return e.length>0?e:t===`abort`||n?[{type:`done`,stop:{kind:`interrupted`},interrupted:!0}]:[{type:`done`,stop:{kind:`completed`}}]}function Hm(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 Um(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*Wm(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 Gm(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??nm(),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=Bd(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=um(t,e);return p.inboundCheck(performance.now()-n,r.guardrail),r.guardrail&&j(r.guardrail),r.text},F=e=>{Mm(t,e);let n=performance.now(),i=dm(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=Dm(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=wm(r);r.state=`running`;let x=h.host??l,S=p.toolRecord(n),C=!1,w=Gd({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:Sm(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:Rm}),k;try{for(;;){let e=await w.next();if(e.done){k=e.value;break}j(e.value)}}catch(e){let n=C||Cm(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=Lm(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=Lm(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 wm(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=Wd({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=zm(r.filter(e=>e.type!==`tokens`),f).map(we),o=performance.now(),s=await Fm(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);Hm(s,A,ee);let c=yield*Wm(await Um(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=Vm(c,e.turnPhase,u);for await(let e of ve(t))yield Vn(de(e),w);yield*Bm(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*Bm(S);continue}if(a=void 0,n.done)break;let r=n.value;if(p.receive(r),yield*Bm(S),r.type===`closed`){r.goAway?yield Em(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*Bm(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`&&!wm(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`}});Tm(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,wm(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 Km(e,t,n,r){let i=xm(t,e.profiles.find(t.profile),r);try{return await qm(e,t,n,i)}catch(e){throw await i.close({thrown:e}),e}}async function qm(e,t,n,r){let i=Kr(`runSession`,n.gateTtlMs),a=Am(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);Om(l),t.context&&Mm(l,t.context),t.snapshot&&(u.tools=km(l,t.snapshot)),u.builtins=u.tools.builtins;let d=Nm(u,t.voice),f=!!(t.input&&t.input.length>0);d=Pm(d,t.input);let p=Kn(d.resolvedSystem,[On(d.canary,l.labels),mn(l.labels),l.inputs?.context?Dn(l.labels):``]),m={...nl(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));$o(l.providerContinuation,t.providerState,t.history);let y=await lm(e.providers.require(h.provider,h.apiId),{...h},m,n,t.providerState,l.providerContinuation);return r.setup(y.setup),Gm({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:jm(l,t,o.input?.slots),trace:r,agents:Yp(e,t,n,r.agentCanaries),gateTtlMs:i,signInGate:n.signInGate??`hold`})}function Jm(e){return{profile:e.profile,path:e.path,sessionPermissions:e.sessionPermissions,input:e.turnInput,model:e.model,host:e.host}}async function Ym(e,t,n){let r=Jm(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*Xm(e,t,n,r,i){let a=e.profiles.find(t.profile),{sink:o,policy:s}=xs({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 ps(o,Ur({spans:c.collect(),policy:s,canaries:l,...t.metadata?{metadata:t.metadata}:{}}),s)}}function Zm(e,t,n){return r=>St(e,{name:t.name,callId:n,call:{arguments:Be(Ar(t.input))}}).end(r)}async function Qm(e,t){let n=e.profiles.get(t.profile);return{profile:n,snapshot:t.snapshot?or(t.snapshot):await Ym(e,t,n)}}function $m(e,t,n){return eh(e,t,n).events}function eh(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=Xm(e,i,be(i.name),n,{events:(t,n)=>ih(e,i,r,a(t),Zm(a(t),i,r),t.root.traceparent(),n),failed:(e,t)=>Zm(a(e),i,r)(F(t)?{outcome:`cancelled`}:{outcome:`error`,thrown:t})});return{name:i.name,callId:r,events:o}}function th(e,t,n){return nh(e,t,n).events}function nh(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=Xm(e,t,`tool_step ${t.profile}`,n,{events:(n,r)=>rh(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*rh(e,t,n,r,i,a){let{profile:o,snapshot:s}=await Qm(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=af(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*sf(n.map(({callId:t,invoke:n})=>of(l,t,()=>ah(e,n,o,s,t,r,Zm(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*ih(e,t,n,r,i,a,o){let{profile:s,snapshot:c}=await Qm(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*ah(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 ah(e,t,n,r,i,a,o,s,c){return dl(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=>oh(e,t,n,r,i,a,o,s,l,c),i=>Fd({outcome:i,tools:e.tools,profile:n,name:t.name,resume:t.resume,snapshot:r}))}async function*oh(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*Gd({tools:e.tools,beginBody:c,agents:Jp(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 sh(e){return e.phase===`complete`||e.phase===`gate`||e.phase===`error`}function ch(e,t){t.phase===`running`&&(e.activity=t.activity??e.activity),sh(t)&&(e.settled=t)}function lh(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 uh(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&&ch(t,r.tool);return lh(t,n)}async function*dh(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),ch(o,a.tool),o.settled&&!r.has(e)&&(r.add(e),yield{...lh(o,i),index:e}))}for(let[e,n]of t.entries())r.has(e)||(yield{...lh(n,i),index:e})}function fh(e,t,n){try{return ec(e,t.profile,t.model,n,t)}catch(e){return{complete(){throw e}}}}function ph(){let e=mi();return{providers:e.providers,tools:e.tools,profiles:e.profiles,schemas:e.schemas,runTurn:(t,n={},r)=>Wp(e,t,fh(e,t,n),r),runSession:(t,n,r)=>Km(e,t,n,r),compactHistory:(t,n={},r)=>$p(e,t,ec(e,t.profile,t.model,n),r),invokeTool:(t,n)=>$m(e,t,n),invokeToolStep:(t,n)=>th(e,t,n),runTool:(t,n)=>uh(eh(e,t,n)),runToolStep:(t,n)=>dh(nh(e,t,n)),resolveTurn:t=>pr(e,t),projectProfile:t=>dr(e,t),runDecision:(t,n)=>Ws(e,t,n),runEmbedding:(t,n={})=>$s(e,t,n)}}ph();function mh(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 hh(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 mh(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 gh(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(hh(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 _h(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 vh(e,t){return async n=>await t.onAgentCall?.(n)||{provider:gh(t,e,e.profiles.get(n.profile))}}function yh(e,t){return v.indexOf(e??`off`)>v.indexOf(t)?e:t}function bh(e,t){if(t.mode!==`demo`||t.keys.holds.afterRemoteRead===`off`)return e;let n=yh(e.taint?.afterRemoteRead,t.keys.holds.afterRemoteRead);return n===e.taint?.afterRemoteRead?e:{...e,taint:{...e.taint,afterRemoteRead:n}}}function xh(e,t){switch(ii(t)){case`public`:return{...e,network:void 0};case`none`:return{...e,network:{allowedSchemes:[]}};case`asWritten`:return e}}function Sh(e,t){return e.type===`speech`||e.type===`decision`||e.type===`embedding`?e:e.type===`host`?{...e,guardrails:xh(e.guardrails??{},t)}:{...Ch(e,t),guardrails:bh(xh(e.guardrails??{},t),t)}}function Ch(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 wh(t){if(!Th(t))return t;let{compileDetect:n}=await e(async()=>{let{compileDetect:e}=await import(`./compile-egress-CGwmX2BX.js`);return{compileDetect:e}},__vite__mapDeps([0,1,2]));return Eh(t,n)}function Th(e){let t=e.guardrails&&`detect`in e.guardrails?e.guardrails.detect:void 0;return typeof t==`object`&&Dt(t)}function Eh(e,t){if(!Th(e))return e;let n=e.guardrails;return{...e,guardrails:{...n,detect:t(n.detect)}}}async function Dh(t){let n=t.flatMap(e=>[`input`,`output`].flatMap(t=>Oh(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-CGwmX2BX.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 Oh(e){return Array.isArray(e)?e.flatMap(Oh):!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):[],...Oh(t)])}function kh(e){try{return e()}catch(e){throw e instanceof H&&e.kind===`config`?new H(`request`,e.message,{cause:e}):e}}var Ah=(e=>kh(()=>Ln(e)));async function jh(e,t,n,r,i){if(zr(t).length>32)throw new H(`request`,`The studio supports up to 32 key slots.`);await Dh(n);let a=Ah(Sh(await wh(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 kh(()=>Dr(e,a,n,r,i.toolHandlers))}async function Mh(e,t,n,r,i=[]){let a=ph();_h(a,r);for(let e of i)await jh(a,e.profile,e.customTools,e.structured,r);return{scope:a,profile:await jh(a,e,t,n,r)}}var Nh=`studioRun`;function Ph(){let e=new Map;return{sink:{write:t=>{let n=t.metadata?.[Nh];return typeof n==`string`&&e.get(n)?.(t),Promise.resolve()}},route(t){let n=globalThis.crypto.randomUUID();return e.set(n,t),{metadata:{[Nh]:n},close:()=>{e.delete(n)}}}}}var Fh={maxGates:32,maxOperations:128,maxCheckpoints:256,maxPermissions:2048,maxStateBytes:33554432,maxInvocationBytes:262144,maxOutcomeBytes:262144};function Ih(e={}){let t={...Fh,...e};if(Object.keys(e).some(e=>!Object.hasOwn(Fh,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 Lh(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength}function Rh(){throw new H(`unavailable`,W(`error.unavailable`),{cause:{code:`session_state_capacity`}})}function zh(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)&&Rh();for(let e of n)Lh(e)>t.maxInvocationBytes&&Rh();let i=n.length*t.maxOutcomeBytes;for(let e of r)e.status!==`ready`&&e.invocation&&Lh(e.invocation)>t.maxInvocationBytes&&Rh(),e.status===`settled`?Lh(e.outcome)>t.maxOutcomeBytes&&Rh():(i+=t.maxOutcomeBytes,e.status===`ready`&&Lh(e)>t.maxInvocationBytes&&Rh());Lh(e)+i>t.maxStateBytes&&Rh()}var Bh=864e5,Vh=t({data:f(),mimeType:f(),name:f().optional()}),Hh=t({text:f().optional(),role:f().optional(),slots:p(f(),f()).optional(),context:t({client:C.optional(),server:C.optional()}).optional(),attachments:s(r([Vh,t({uri:f(),mimeType:f(),name:f().optional()})])).optional(),voice:s(Vh).optional(),history:s(N).optional(),repair:t({previousOutput:f(),rejection:f(),guidance:f()}).optional(),historyTokens:d().nonnegative().optional(),inputTokens:d().nonnegative().optional()}),Uh=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:Hh,model:f().optional(),createdAt:d().finite().nonnegative(),expiresAt:d().finite().nonnegative().optional()}),Wh=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()}),Gh={operationId:f().min(1).max(256),callId:f().min(1),profileId:f().min(1),toolId:f().min(1),invocationHash:f().min(1),invocation:rl.optional()},Kh=t({grantId:f().min(1),expiresAt:d().finite().positive(),resultHash:f().optional()}),qh=u(`status`,[t({status:o(`ready`),profileId:f().min(1),pending:Uh,answer:Wh,readyAt:d().finite().nonnegative()}),t({...Gh,status:o(`running`),pageGrant:Kh.optional(),claimToken:f().min(1),startedAt:d().finite().nonnegative()}),t({...Gh,status:o(`settled`),pageGrant:Kh.optional(),outcome:ol,settledAt:d().finite().nonnegative(),retainUntil:d().finite().nonnegative().optional()}),t({...Gh,status:o(`uncertain`),pageGrant:Kh.optional(),claimToken:f().min(1),reason:l([`execution_interrupted`,`settlement_write_failed`,`worker_lost`]),detectedAt:d().finite().nonnegative()})]),Jh=t({version:o(3),operations:p(f().min(1),qh),permissions:s(f().min(1)),gates:p(f().min(1),Uh),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 Yh(){return{version:3,operations:{},permissions:[],gates:{},providerCheckpoints:[]}}function Xh(e,t,n){return Object.fromEntries(Object.entries(e).filter(([,e])=>e.expiresAt===void 0?!$r(e.createdAt,t,n):t<e.expiresAt))}function Zh(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 Qh(e={}){let{ttlMs:t,maxSessions:n}=Zh(e),r=Ih(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=Jh.parse(s);if(zh(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 $h=m({events:s(j),base:s(N),baseEvents:d().int().nonnegative(),workedMs:d().nonnegative(),endedAt:d(),model:f().optional(),effort:f().optional()}),eg=m({version:o(1),transcript:s(vr),history:s(N),providerState:Fe.optional(),inputTokens:d().optional(),historyTokens:d().optional(),paused:$h.optional()});function tg(){return{version:1,transcript:[],history:[]}}function ng(e){return new H(`request`,W(`session.conversation_unknown`),{copy:{key:`session.conversation_unknown`},...e===void 0?{}:{cause:e}})}function rg(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:eg.parse(JSON.parse(r))}},async write(n,r,i,a){if(r!==i)return{written:!1};let o=eg.parse(a),s=await ci({plaintext:JSON.stringify(o),key:t,binding:[n],keyVersion:e.keyVersion});return{written:!0,ref:s,revision:s}}}}function ig(e,t){let n={...e===void 0?{}:{client:e},...t===void 0?{}:{server:t}};return Object.keys(n).length>0?n:void 0}function ag(e,t){let{context:n,...r}=e,i=ig(n,t);return i?{...r,context:i}:r}function og(e,t){let n=ig(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 sg(e,t){return pi(e.paused?.events??[]).some(e=>e.callId===t.callId&&e.operationId===t.operationId)}function cg(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 lg(e,t,n,r){let i=await ug(e,t,r);return n.kind===`message`&&Tg(i.conversation,n.abandon),n.kind===`answer`&&Eg(i.conversation,n.call),n.kind===`rewind`&&Mg(i.conversation,n.at),i}async function ug(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:tg()}}let r=await e.store.read(e.sessionId,t);if(r)return{ref:t,revision:r.revision,conversation:r.conversation};if(!n)throw ng();let{conversation:i,events:a}=dg(n.profile,n.blocks);return{ref:null,revision:null,conversation:i,events:a}}function dg(e,t){let{request:n,events:r,refusal:i}=Gn({profile:e.id,input:{history:ui(t)}},e);if(i)throw i;return{conversation:{...tg(),transcript:[...t],history:n.input?.history??[]},events:r}}function fg(e,t){return qr(t.map(t=>e.forReader(t)),{showThoughts:e.showThoughts})}function pg(e,t){let{paused:n}=t;return{transcript:t.transcript,...n?{paused:{events:n.events.map(t=>e.forReader(t)),blocks:fi(fg(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 mg(e,t){return e.ref===null?[]:[{type:`conversation`,ref:e.ref,...t?{posted:!0}:{}}]}function hg(e){return hi(e.base,e.events.slice(e.baseEvents))}function gg(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 _g(e,t,n){let{paused:r,providerState:i,...a}=t;return{...a,...gg(t,n.events),transcript:[...t.transcript,...fi(fg(e,n.events),{workedMs:n.workedMs,endedAt:Date.now()})],history:hg(n)}}function vg(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,...gg(e,t.events),paused:r}}function yg(e,t,n,r){let i=_g(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 bg(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*xg(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?bg(o,c()):yg(e,o,c(),V(t))),yield*mg(u),t}let d=c();if(r.signal.aborted)u=await $(e,u,bg(o,d));else if(l)u=await $(e,u,yg(e,o,d,l));else if(pi(d.events).length)u=await $(e,u,vg(o,d,r));else{u=await $(e,u,_g(e,o,d)),yield*mg(u);let t=await Sg(e,u,d,r,a);t&&(yield*mg(t));return}yield*mg(u),l&&(yield l)}async function Sg(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=hg({...n,base:i(s),baseEvents:0});return $(e,t,{...t.conversation,history:c})}function Cg(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 wg(e,t,n){let r=Yr(e.inputs,{...t.text===void 0?{}:{text:t.text},...t.attachments?{attachments:t.attachments.map(Cg)}:{},...t.voice?{voice:t.voice.map(Cg)}:{}},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:ag(o===void 0?a:{...a,text:o},n)}}function Tg(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=>sg(e,t)))throw new H(`request`,`the message walks away from calls the reply is not waiting on`,{copy:{key:`session.gate_expired`}})}function Eg(e,t){if(!sg(e,t))throw new H(`request`,`the reply is not waiting on ${t.callId}`,{copy:{key:`session.gate_expired`}})}async function*Dg(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 Og(e){return{base:e.base,events:[...e.events],baseEvents:e.baseEvents,seed:e.events.length,workedMs:e.workedMs}}function kg(e){return new H(e.errorKind,e.error??W(`error.${e.errorKind}`))}async function*Ag(e){let{host:t,message:n,runner:r}=e,{events:i=[],...a}=e.opened,o=a;yield*i;let{paused:s}=o.conversation;if(Tg(o.conversation,e.walkAway),s){let n=Og(s),r=yield*Dg(n,e.walkAway??[]);if(r){o=await $(t,o,{...o.conversation,paused:{...s,events:n.events,endedAt:Date.now()}}),yield*mg(o),yield r;return}o={...o,conversation:_g(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*mg(o,`posted`);let u={base:l(c.history),events:[],baseEvents:0,seed:0,workedMs:0};yield*xg(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*jg(e){let{host:t,runner:n}=e,r=e.opened;Eg(r.conversation,e.call);let{paused:i,...a}=r.conversation;if(!i)return;let o=Og(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*mg(r),c&&(yield c)}else yield*xg(t,{...r,conversation:a},o,{...n,model:n.model??i.model,effort:n.effort??i.effort},{history:hg(o),...a.inputTokens===void 0?{}:{inputTokens:a.inputTokens},...a.historyTokens===void 0?{}:{historyTokens:a.historyTokens}},e=>e)}function Mg(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 Ng(e){let{host:t,opened:n,at:r}=e,{conversation:i}=n;if(Mg(i,r),Tg(i,e.walkAway),i.paused){let n=Og(i.paused),r=Dg(n,e.walkAway??[]),a=await r.next();for(;!a.done;)a=await r.next();if(a.value)throw kg(a.value);i=_g(t,i,n)}let a=i.transcript.slice(0,r+1);return $(t,n,{version:1,transcript:a,history:ui(a)})}function Pg(e){if(!e.operationId)throw new H(`internal`,W(`error.internal`));return e.operationId}function Fg(e){return pi(e.paused?.events??[]).map(e=>({callId:e.callId,operationId:Pg(e)}))}function Ig(e){return new H(`request`,`a stateless chat keeps no conversation to ${e}`)}var Lg=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 Rg(){throw new H(`unavailable`,W(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`}})}function zg(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)&&Rg();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 Bg(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||Rg();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)&&Rg(),t.pageGrant={grantId:o,expiresAt:s}})}catch(e){throw c.cancel(),e}let l=s-Date.now();(l<=0||a?.aborted)&&(c.cancel(),Rg());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=Lg.parse(r),a=await il(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)&&Rg(),t.pageGrant.resultHash===void 0?((t.status!==`running`||Date.now()>=t.pageGrant.expiresAt)&&Rg(),t.pageGrant.resultHash=a,{duplicate:!1,settled:!1}):(t.pageGrant.resultHash!==a&&Rg(),t.status===`uncertain`&&Rg(),{duplicate:!0,settled:t.status===`settled`})});return o.duplicate||await n.deliver(t,i.grantId,i.page),o.settled}}}function Vg(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=Jh.safeParse(a===void 0?Yh():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=Xh(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);zh(u,i);let f=Jh.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 Hg=`theorem_session`,Ug=/^[A-Za-z0-9_-]{32,128}$/,Wg=2592e3;function Gg(e,t){for(let n of(e.headers.get(`cookie`)??``).split(`;`)){let[e,...r]=n.trim().split(`=`);if(e===t)return r.join(`=`)}}function Kg(){return si(crypto.getRandomValues(new Uint8Array(32)))}function qg(e){let t=Gg(e,Hg);return t&&Ug.test(t)?t:void 0}function Jg(e){let t=qg(e);if(t)return{id:t};let n=Kg();return{id:n,setCookie:`${Hg}=${n}; Path=/; Max-Age=${Wg}; HttpOnly; SameSite=Lax${new URL(e.url).protocol===`https:`?`; Secure`:``}`}}var Yg=16777216;function Xg(e=Yg){if(!Number.isSafeInteger(e)||e<=0)throw new H(`config`,W(`error.config`));return e}function Zg(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 Qg(e){let t=Xg();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 $g(e){return Zg(ni,Qg(e),`live message`)}function e_(e){return Zg(ti,Qg(e),`live open message`)}var t_=new Set([`pre_turn`,`post_tool`,`before_end`]);function n_(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 r_(e,t){return async({stage:n})=>{if(!t_.has(n))return;let r=await e.consume(t);return r?{inject:r.messages,injectId:r.id}:void 0}}function i_(){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 a_(){throw new H(`unavailable`,W(`error.unavailable`))}function o_(e,t){return e.operationId===t.operationId&&e.callId===t.callId&&e.profileId===t.profileId&&e.toolId===t.toolId&&e.invocationHash===t.invocationHash}function s_(e,t){t.operationId===`__proto__`&&a_();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)&&a_():n&&!o_(n,t)&&a_(),n}function c_(e,t){let n=s_(e,t);return(!n||n.status!==`running`&&n.status!==`uncertain`||n.claimToken!==t.claimToken)&&a_(),n}function l_(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 u_(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 d_(e,t){return{lookup(n){return e.mutate(t,e=>l_(s_(e,n)))},begin(n){let r=crypto.randomUUID(),i=Date.now();return e.mutate(t,e=>l_(s_(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=c_(e,n);u_(e,{...n,invocation:t.invocation},r)})},settleNotStarted(n,r){return e.mutate(t,e=>{let t=s_(e,n);t&&t.status!==`ready`&&a_(),r.effects!==`not_started`&&a_(),u_(e,n,r)})},markUncertain(n,r){return e.mutate(t,e=>{let t=c_(e,n);e.operations[n.operationId]={...n,invocation:t.invocation,...t.pageGrant?{pageGrant:t.pageGrant}:{},status:`uncertain`,reason:r,detectedAt:Date.now()}})}}}function f_(e){return il(Fe.parse(e))}async function p_(e,t){return`${e}:${await il(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 m_(e,t,n={},r){if(t===void 0)return;let i=Fe.parse(t),a=await f_(i),o=await p_(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 h_(e,t,n){return[...new Set([...e,...t].reverse())].slice(0,n).reverse()}async function g_(e){let t=e.session?void 0:Jg(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=Ih(e.sessionLimits),a=Vg(e.sessionStore,Kr(`session boundary`,e.gateTtlMs),r,i);await a.read(n);let o=Bg(a,n,e.pageToolBroker??zg());return{pageExecution:o.execution,answerPageResult:o.answer,sessionId:n,...t?.setCookie?{setCookie:t.setCookie}:{},toolExecution:d_(a,n),async prepareLiveOpen(e,t){let r=og(Zg(ti,e,`live open`),t),i=await a.read(n),o=await m_(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 m_(r.providerCheckpoints,e,r.operations,t)},async recordCheckpoint(e){let t=await f_(e);await a.mutate(n,async e=>{e.providerCheckpoints=h_(e.providerCheckpoints,[await p_(t,e.operations)],i.maxCheckpoints)})}}}function __(e,t){return jr(e,t.labels,t.clientEvents)}function v_(e,t){return JSON.stringify({type:`error`,...__(e,t)})}function y_(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 b_(e,t,n,r,i){let a=t=>{t.catch(t=>{e.send(v_(t,r))})};e.addEventListener(`message`,o=>{try{if(typeof o.data==`string`){let s=$g(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),S_(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(v_(t,r))}})}async function x_(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(v_(t,o))}finally{a.stopAll(),i.close();try{e.close(1e3,`session ended`)}catch{}}}async function S_(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:__(t,r)}))}}var C_=2e4;function w_(e,t,n,r,i,a,o={}){let s=y_(t,o.clientCallTimeoutMs??C_),c={labels:a,clientEvents:o.clientEvents};return b_(e,t,s,c,o.pageResult),e.addEventListener(`close`,()=>{t.close(`client disconnected`)}),x_(e,t,n,r,i,s,c,o.beforeEvent)}function T_(){let e=crypto.randomUUID(),t=Qh(),n=g_({request:new Request(`https://studio.local`),session:()=>e,sessionStore:t}),r=Vg(t,18e5,Bh,Ih()),i=Bg(r,e,zg());return{boundary:n,execution:d_(r,e),pageExecution:i.execution,pageResult:i.answer}}var E_=Ph();us(ct,E_.sink);async function*D_(e){let t=[],n=E_.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 O_(e,t){if(e===`live`)throw new H(`request`,`Studio ${t} does not support live profiles.`)}async function k_(e,t){let{scope:n,profile:r}=await Mh(e.profile,e.customTools,e.structured,e.runtime,e.dependencies);O_(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:cg({...t,profile:r,clientEvents:Tr(e.runtime)})}}function A_(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:vh(t,r)},gh(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}:{}},gh(r,t,n,o)))?.history},...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{},signal:a}}function j_(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 F_(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*M_(e){let{request:t,runtime:n,signal:r}=e,{scope:i,profile:a,iface:o,host:s}=await k_(e,e.conversations),c=wg(o,t.input),l=t.replay?.sessionPermissions;if(!s&&t.conversation!==void 0)throw Ig(`continue`);if(!s&&t.abandon)throw Ig(`walk away from`);let u=s?await lg(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:j_(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*D_(o=>{let p=A_({scope:i,profile:a,runtime:n,metadata:o,sessionPermissions:l,...t.model?{model:t.model}:{},...t.effort?{effort:t.effort}:{},signal:r,onStage:r_(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 Ag({host:s,opened:u,message:c,walkAway:m,runner:p})})}finally{await e.steer.close(f)}}var N_=p(f(),n());function P_(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 F_(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:Zg(N_,r.input,`replayed call input`),gateKind:r.gateKind,...P_(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:nm({[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:vh(e,i)}}function I_(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 L_(e,t,n,r,i){let a=F_(e,t,I_(n),n.replay??{},r);return D_(t=>e.invokeTool({...a,metadata:t,signal:i}))}async function*R_(e){let{answer:t,runtime:n,signal:r}=e,{scope:i,profile:a,host:o}=await k_(e,e.conversations),s=I_(t),c=t.replay?.sessionPermissions;if(!o){if(t.conversation!==void 0)throw Ig(`continue`);yield*L_(i,a.id,t,n,r);return}if(t.conversation===void 0)throw Ig(`continue`);let l=await lg(o,t.conversation,{kind:`answer`,call:{callId:s.callId,operationId:s.operationId}}),u=j_(i,a.id,l,s,c,n);yield*D_(e=>jg({host:o,opened:l,call:{callId:s.callId,operationId:s.operationId},settling:i.invokeTool({...u,metadata:e,signal:r}),runner:A_({scope:i,profile:a,runtime:n,metadata:e,sessionPermissions:c,signal:r})}))}async function z_(e,t,n){let{host:r}=await k_(e,t);if(!r)throw Ig(`read`);return pg(r,(await lg(r,n.conversation,{kind:`read`})).conversation)}async function B_(e,t,n,r){let{scope:i,profile:a,host:o}=await k_(e,t);if(!o)throw Ig(`rewind`);let s=await lg(o,n.conversation,{kind:`rewind`,at:n.at}),c=Fg(s.conversation).map(t=>{let n=j_(i,a.id,s,{...t,decision:`abandon`},void 0,e.runtime);return{...t,events:i.invokeTool({...n,signal:r})}}),l=await Ng({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:pg(o,l.conversation)}}async function*V_(e){let{scope:t,profile:n}=await H_(e);yield*L_(t,n.id,e.answer,e.runtime,e.signal)}async function H_(e){let t=await Mh(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*U_(e){let{scope:t,profile:n}=await H_(e);yield*D_(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:vh(t,e.runtime),signal:e.signal,metadata:r}))}function W_(e){let t=[];return!e||!Vr(e).record?{traces:t}:{traces:t,sink:{write:e=>(t.push(e),Promise.resolve())}}}async function G_(e,t,n,r,i){let{scope:a,profile:o}=await Mh(e.profile,[],void 0,{mode:`byok`}),{traces:s,sink:c}=W_(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 K_(e,t,n){let{scope:r,profile:i}=await Mh(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}=W_(i.observability);try{return{result:await r.runEmbedding({...t,profile:i.id},{...gh(n,r,i,t.model),...o?{sink:o}:{}}),traces:a}}catch(e){throw Cr(e,a)}}export{w_ as attachStudioLiveSession,T_ as browserExecution,i_ as createMemorySteerInbox,rg as createSealedConversationStore,og as liveSessionOpen,e_ as parseLiveOpenMessage,B_ as rewindStudio,G_ as runStudioDecision,K_ as runStudioEmbedding,n_ as steerUnitOf,U_ as streamStudioCall,V_ as streamStudioHostInvoke,R_ as streamStudioInvoke,M_ as streamStudioTurn,z_ as studioConversation,Mh as studioScope,E_ as studioTraces};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=[`config`,`request`,`input`,`action`,`auth`,`rate_limit`,`unsupported`,`unavailable`,`bad_response`,`network`,`timeout`,`safety`,`blocked`,`declined`,`failed`,`cancelled`,`internal`],t=class extends Error{kind;copy;constructor(e,t,n){super(t,n),this.name=`TheoremError`,this.kind=e,n?.copy&&(this.copy=n.copy)}},n=1024,r=`imsu`,i=`[\\p{L}\\p{N}_]`;function a(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function o(e){return`(?<!${i})(?:${[...new Set(e.map(e=>e.trim()).filter(Boolean))].sort((e,t)=>t.length-e.length).map(e=>e.split(/\s+/).map(a).join(`\\s+`)).join(`|`)})(?!${i})`}function s(e){return`words`in e?{name:e.name,source:o(e.words),flags:`iu`}:{name:e.name,source:e.pattern,flags:e.flags??``}}function c(e){return e.map(s)}function l(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function u(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function d(e,t){if(!l(t))return`${e} must be an object`;let{name:n,words:i,flags:a}=t;if(typeof n!=`string`||!n.trim())return`${e}.name must be a non-empty string`;if([`pattern`,`words`].filter(e=>t[e]!==void 0).length!==1)return`${e} takes one of pattern and words`;let o=Object.keys(t).find(e=>![`name`,`pattern`,`flags`,`words`].includes(e));if(o!==void 0)return`${e}.${o} is not a setting of a pattern (name, pattern, flags, words)`;if(i!==void 0)return a===void 0?!u(i)||!i.some(e=>e.trim())?`${e}.words must be a list with at least one word`:void 0:`${e}.flags is a setting of pattern, not of words`;if(typeof t.pattern!=`string`||!t.pattern)return`${e}.pattern must be a non-empty string`;if(a===void 0)return;if(typeof a!=`string`)return`${e}.flags must be a string`;let s=[...a].find((e,t)=>!r.includes(e)||a.indexOf(e)<t);return s===`y`?`${e}.flags: a sticky (y) pattern only matches where the last one ended`:s===`g`?`${e}.flags: g is implied, every match is found`:s===void 0?void 0:`${e}.flags takes each of ${[...r].join(`, `)} once, not ${JSON.stringify(s)}`}function f(e,t){let r=d(e,t);if(r!==void 0)return r;let{source:i,flags:a}=s(t);if(i.length>1024)return`${e} is ${i.length} characters as a regular expression; the most is ${n}`;let o;try{o=new RegExp(i,`${a}g`)}catch(t){return`${e} does not compile (${t instanceof Error?t.message:String(t)})`}return o.test(``)?`${e} matches the empty text`:void 0}function p(e,t,n){let r="run `agents detect-compile` or compilePatterns again";return!l(t)||!l(t.automaton)||!Array.isArray(t.patterns)?`${e} must be the table compilePatterns or \`agents detect-compile\` writes`:t.compiler===3?JSON.stringify(t.patterns)===JSON.stringify(n)?void 0:`${e} was compiled from other patterns; ${r}`:`${e} comes from compiler ${String(t.compiler)}, this one is 3; ${r}`}function m(e,t,n){if(t===void 0)return n===void 0?void 0:`${e}.compiled is set without patterns`;let r=h(e,t);return r===void 0?t.length===0?n===void 0?void 0:`${e}.compiled is set without patterns`:n===void 0?`${e}.patterns need their compiled table: set ${e}.compiled from \`agents detect-compile\`, or wrap the detect setting in compileDetect from @theoremjs/agents/guardrails/compile`:p(`${e}.compiled`,n,c(t)):r}function h(e,t){if(!Array.isArray(t))return`${e}.patterns must be a list`;if(t.length>64)return`${e}.patterns lists ${t.length} patterns; the most is 64`;let n=new Set;for(let[r,i]of t.entries()){let t=`${e}.patterns[${r}]`,a=f(t,i);if(a!==void 0)return a;let{name:o}=i;if(n.has(o))return`${t}.name ${JSON.stringify(o)} is listed twice`;n.add(o)}}function g(e){return l(e)?Object.values(e).some(e=>l(e)&&Array.isArray(e.patterns)&&e.patterns.length>0):!1}var _=new WeakMap;function v(e){let t=_.get(e);return t||(t=c(e).map(({name:e,source:t,flags:n})=>({name:e,regex:new RegExp(t,`${n}g`)})),_.set(e,t)),t}export{c as a,t as c,f as i,v as n,m as o,h as r,e as s,g as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lr as e}from"./tool-schema-BF2BK9h8.js";var t=e.filter(e=>e!==`builtin`),n=`Tool type must be ${t.join(`, `).replace(/, ([^,]+)$/,`, or $1`)}.`;export{n,t};
|