@theoremjs/studio 0.3.4-next.522.g9e684cd → 0.3.4-next.526.g51bc66f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/package.json +4 -4
  2. package/page/assets/{Banner-UZW6WFTG.js → Banner-DcgTcVVW.js} +2 -2
  3. package/page/assets/{ConsoleFrame-C6ZxuLse.js → ConsoleFrame-Dep1lvnm.js} +1 -1
  4. package/page/assets/{ContextMenu-ClIUDzvK.js → ContextMenu-NgzKbTao.js} +2 -2
  5. package/page/assets/{ToolResultCharts-COgqvWEu.js → ToolResultCharts-CFvHRt5v.js} +1 -1
  6. package/page/assets/{TraceInspector-D2unePaa.js → TraceInspector-D92rKzc_.js} +1 -1
  7. package/page/assets/{TraceOverview-CCA1iUNg.js → TraceOverview-m12m2XgM.js} +1 -1
  8. package/page/assets/{_virtual_studio-type-sources-DfyVGpe8.js → _virtual_studio-type-sources-DVbxNwnP.js} +26 -4
  9. package/page/assets/browser-engine-DL-WovTC.js +11 -0
  10. package/page/assets/{browser-transport-CgmN-3Ia.js → browser-transport-CmAIXFia.js} +4 -4
  11. package/page/assets/{crypto-BoqeX_71.js → crypto-BAY2nUlu.js} +1 -1
  12. package/page/assets/{encode-files-DFrbgXms.js → encode-files-BSTfq_Gp.js} +1 -1
  13. package/page/assets/{export-agent-U8qRBuhg.js → export-agent-C8_6CZgy.js} +1 -1
  14. package/page/assets/{guardrail-tester-DASanQyo.js → guardrail-tester-Dk5L25mc.js} +1 -1
  15. package/page/assets/{index-CGN6iWF2.js → index-B95kGH1Q.js} +9 -9
  16. package/page/assets/{live-messages-cl-CI8gZ.js → live-messages-DIf_R-NT.js} +1 -1
  17. package/page/assets/{reader-IkImpzZF.js → reader-BkaAkeh0.js} +5 -5
  18. package/page/assets/{shaped-data-CITXsEfw.js → shaped-data-C4jsvipW.js} +12 -13
  19. package/page/assets/{stub-Ccyi1ZiM.js → stub-4m0tKRlG.js} +1 -1
  20. package/page/assets/{studio-code-pane-AoMu0cGy.js → studio-code-pane-CPyzXehM.js} +3 -3
  21. package/page/assets/{studio-console-JNYkyQ0E.js → studio-console-BV4NlQY-.js} +1 -1
  22. package/page/assets/{studio-decision-BRJuvgS3.js → studio-decision-BT6Ee-kK.js} +1 -1
  23. package/page/assets/{studio-embedding-D-r2kuz3.js → studio-embedding-DVduw2Un.js} +1 -1
  24. package/page/assets/{studio-host-console-HoLSpRVk.js → studio-host-console-CngXS38i.js} +2 -2
  25. package/page/assets/{studio-labels-CBcjlfH4.js → studio-labels--uHJcIbG.js} +1 -1
  26. package/page/assets/{studio-live-DtywUIK2.js → studio-live-DTHgPVFH.js} +2 -2
  27. package/page/assets/{studio-map-BIJ-S7br.js → studio-map-CT0jsRMr.js} +1 -1
  28. package/page/assets/{studio-trace-replay-BuOKQwlj.js → studio-trace-replay-DS9o-VrA.js} +1 -1
  29. package/page/assets/{studio-type-checker-C8qG2W9D.js → studio-type-checker-CHFs7A7H.js} +1 -1
  30. package/page/assets/tool-schema-DpbtSZtQ.js +17 -0
  31. package/page/assets/{trace-record-Dqvj9bhx.js → trace-record-D9wgX8kq.js} +1 -1
  32. package/page/assets/{tree-jmLWUWxQ.js → tree-0OoOeHfS.js} +1 -1
  33. package/page/assets/{turn-client-DSatougR.js → turn-client-BWO4ocVM.js} +1 -1
  34. package/page/assets/types-BRZU5tBz.js +1 -0
  35. package/page/assets/{use-one-call-BcTU9gJ9.js → use-one-call-DOzbF9kQ.js} +1 -1
  36. package/page/assets/{workspace-B2bnm5qv.js → workspace-DJBP4Adw.js} +1 -1
  37. package/page/index.html +15 -15
  38. package/page/assets/browser-engine-CRGnAh9x.js +0 -11
  39. package/page/assets/tool-schema-DDkOMTMz.js +0 -17
  40. package/page/assets/types-4jMDDudJ.js +0 -1
@@ -1,11 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/compile-egress-BRGW9qfO.js","assets/rolldown-runtime-hePW80VL.js","assets/host-patterns-cSf1U25G.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,Bn as b,C as x,Cn as S,Cr as C,Ct as w,Dn as T,Dt as E,En as D,Er as O,Et as ee,Fn as k,Ft as te,Hn as ne,It as A,Jt as re,Kn as ie,Kt as ae,L as oe,Lt as j,Mn as se,Mt as ce,Nn as le,Nr as ue,Nt as de,On as fe,Or as pe,Ot as me,Pn as he,Pt as ge,Q as _e,Rn as ve,Rt as M,Sn as ye,Sr as N,St as be,Tn as P,Tr as F,Tt as xe,Vn as Se,Wt as Ce,Xt as we,Yt as Te,Zt as Ee,_n as De,_t as Oe,an as ke,at as Ae,bn as je,br as Me,bt as Ne,cn as Pe,cr as Fe,ct as Ie,dr as Le,dt as Re,en as ze,et as Be,ft as Ve,gn as I,gt as He,ht as Ue,in as We,it as Ge,jr as Ke,jt as qe,kn as Je,kt as Ye,ln as Xe,lr as Ze,lt as Qe,mn as $e,mt as et,nn as tt,nt as L,on as nt,ot as rt,p as it,pn as at,pt as R,rn as ot,rt as st,sn as ct,st as lt,tt as ut,ut as dt,v as ft,vn as pt,wn as mt,wt as ht,xn as gt,xt as _t,yn as vt,yt,zn as bt,zt as xt}from"./tool-schema-DDkOMTMz.js";import{c as z,t as St}from"./host-patterns-cSf1U25G.js";import{$ as Ct,A as wt,An as Tt,At as Et,B as Dt,Ct as Ot,D as kt,Dn as At,Et as jt,Fn as B,Ft as Mt,Hn as V,In as H,It as Nt,J as Pt,K as Ft,Ln as It,M as Lt,Mn as Rt,Mt as zt,N as Bt,Nn as Vt,Nt as Ht,O as U,On as Ut,Ot as Wt,Pn as Gt,Pt as Kt,R as qt,St as Jt,T as Yt,Tt as Xt,U as Zt,Y as Qt,Z as $t,_n as en,_t as tn,at as nn,bn as rn,bt as an,ct as on,dt as sn,et as cn,gt as ln,hn as un,ht as dn,j as fn,jn as W,jt as pn,k as G,kn as mn,kt as hn,lt as gn,mn as _n,mt as vn,on as yn,ot as bn,pn as xn,pt as Sn,q as Cn,st as wn,un as Tn,vn as En,vt as Dn,xt as On,yt as kn}from"./shaped-data-CITXsEfw.js";import{$ as An,At as jn,B as Mn,Bt as Nn,Ct as Pn,Dt as Fn,Et as In,Ft as Ln,G as Rn,Gt as zn,Ht as Bn,It as Vn,J as Hn,Jt as Un,K as Wn,Kt as Gn,Lt as Kn,M as qn,Mt as Jn,N as Yn,Nt as Xn,Ot as Zn,Pt as Qn,Q as $n,Qt as er,St as tr,Tt as nr,U as rr,Ut as ir,Vt as ar,Wt as or,X as sr,Xt as cr,Y as lr,Yt as ur,Z as dr,Zt as K,_t as fr,a as pr,at as mr,bt as hr,ct as gr,dt as _r,ft as vr,gt as yr,ht as br,i as xr,it as Sr,jt as Cr,k as wr,kt as Tr,l as Er,lt as Dr,m as Or,mt as kr,n as Ar,o as jr,ot as Mr,pt as Nr,qt as Pr,r as Fr,rt as Ir,st as Lr,tt as Rr,ut as zr,vt as Br,wt as Vr,xt as Hr,yt as Ur}from"./reader-IkImpzZF.js";import{a as Wr,t as Gr}from"./live-ingress-qi-y5uvH.js";import{t as Kr}from"./trace-record-Dqvj9bhx.js";import{n as qr,r as Jr,t as Yr}from"./crypto-BoqeX_71.js";import{D as Xr,E as Zr,T as Qr,b as $r,c as ei,g as ti,i as ni,l as ri,u as ii,v as ai,w as oi}from"./turn-client-DSatougR.js";import{n as si,t as ci}from"./live-messages-cl-CI8gZ.js";import{n as li,r as ui}from"./lent-keys-C32ems-I.js";import{at as di,ct as fi,et as pi,ft as mi,it as hi,ot as gi,rt as _i,st as vi,tt as yi}from"./index-CGN6iWF2.js";function bi(){return{given:new Set,remote:new Map}}var xi=/[\p{L}\p{N}_.+-]/u,Si=/[\p{L}\p{N}_-]/u,Ci=/(?:https?:\/\/|www\.)[^\s'"<>)\]]+/gi,wi=/\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g,Ti=/[/?#]/;function Ei(e,t){let n=t;for(;n<e.length;){let t=String.fromCodePoint(e.codePointAt(n)??0);if(!Si.test(t))break;n+=t.length}return n}function Di(e,t){let n=Ei(e,t);if(n===t)return-1;let r=1;for(;e.charAt(n)===`.`;){let t=Ei(e,n+1);if(t===n+1)break;n=t,r+=1}return r>1?n:-1}function Oi(e){let t=e.length;for(;t>0&&(e.charAt(t-1)===`.`||e.charAt(t-1)===`,`);)--t;return e.slice(0,t)}function ki(e){let t=[],n=e.indexOf(`@`);for(;n>=0;){let r=n;for(;r>0&&xi.test(e.charAt(r-1));)--r;let i=r<n?Di(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 Ai(e){let t=e.replace(/^https?:\/\//i,``),n=t.search(Ti),r=n<0?t:t.slice(0,n);return Oi(r.slice(r.lastIndexOf(`@`)+1).replace(/:\d*$/,``).toLowerCase()).replace(/^www\./,``)}function ji(e){let t=ki(e),n=[],r=0;for(let{start:i,end:a}of t)n.push(e.slice(r,i),` `.repeat(a-i)),r=a;n.push(e.slice(r));let i=n.join(``),a=[...t];for(let e of[...i.matchAll(Ci)]){let t=Ai(e[0]);t&&a.push({key:`host:${t}`,start:e.index,end:e.index+e[0].length})}for(let e of[...i.matchAll(wi)])a.push({key:`account:${e[0].toLowerCase()}`,start:e.index,end:e.index+e[0].length});return a}function Mi(e){let t=e.trimStart().charAt(0);if(t===`{`||t===`[`)try{return JSON.parse(e)}catch{return}}var Ni=32;function Pi(e,t,n=0){if(!(n>Ni)){if(typeof e==`string`){let r=Mi(e);r===void 0?t(e):Pi(r,t,n+1)}else if(Array.isArray(e))for(let r of e)Pi(r,t,n+1);else if(e&&typeof e==`object`)for(let r of Object.values(e))Pi(r,t,n+1)}}function Fi(e,t=!1){let n=new Set;return Pi(e,e=>{let r=e.trim(),i=ji(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 Ii(e,t){for(let n of Fi(t))e.given.add(n)}function Li(e,t,n){for(let r of t)r.role===`assistant`||r.role===`tool`||n.has(r)||Ii(e,Ht(r).text)}function Ri(e,t,n){Ii(e,t.system),n.has(t.input)||Ii(e,Ht(t.input).text),Li(e,t.history??[],n)}function zi(e,t,n){if(!ye(n.origin)){Ii(e,[t.finding,t.data]);return}let r=Mi(t.finding),i=new Set([...r===void 0?Fi(t.finding):Fi(r,!0),...Fi(t.data,!0)]);for(let t of i)e.remote.has(t)||e.remote.set(t,n.tool)}function Bi(e,t,n,r){if(!e||e.remote.size===0)return{verdict:{action:`allow`}};let i=[...Fi(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:rn.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:V(`taint.destination_blocked`,s,r)}}:{verdict:{action:`flag`,hits:o},...c===`confirm`?{confirm:V(`taint.destination_confirm`,s,r)}:{}}}var Vi={image:`thought.omitted_image`,link:`thought.omitted_link`,instructions:`thought.omitted_instructions`},Hi={rule:en.ungiven_images,severity:`high`},Ui={rule:en.ungiven_links,severity:`high`},Wi={rule:en.marker_leak,severity:`high`},Gi={rule:en.prompt_leak,severity:`high`};function Ki(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 qi(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 Ji=8,Yi=16;function Xi(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=Cn({canary:l,labels:o}),d=e=>({...e,...a?{given:a}:{}});function f(e,t){let n=V(Vi[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?Un({detect:s,allow:{ungiven_images:t.images??{},ungiven_links:t.links??{}},skipImages:c,...a?{given:a}:{},...u?{note:u}:{}}):void 0,g=n?Jt(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=Nt(e,_);i=Mt(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:Hi});if(t.links)for(let n of sn(e,d(t.links),c))i.push({...n,kind:`link`,hit:Ui});if(t.markers){let t=[new RegExp(Ct.source,`gi`),...u?[cn(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:Wi})}}if(n)for(let[t,r]of Dn(e,n))i.push({start:t,end:r,kind:`instructions`,hit:un});if(r)for(let[t,n]of Mt(e,r,l))i.push({start:t,end:n,kind:`instructions`,hit:Gi});return i}function O(e){return b.find(t=>t.start<e&&e<t.end)}function ee(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 k(){let e=p+m;for(let t=Sn;;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||Nt(a.text,a.held)>0)return a}}function te(){let e=k();if(!e)return[];let t=[];if(n)for(let[r,i]of Dn(e.text,n))t.push([r,i,un]);if(r)for(let[n,i]of Mt(e.text,r,l))t.push([n,i,Gi]);let i=[];for(let[n,r,a]of t){if(r<=e.held)continue;let t=Ki(e,n),o=Ki(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 ne(){return qi([...D(p+m),...te()])}function A(){return ne().filter(({end:e})=>e>p.length)}function re(e,t=!1){let n=O(e);return n?t?n.end:n.start:e}function ie(e){let t=A(),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(re(e)),S=i?.has(a.rule)??!1;let o=S?n.length:Math.max(l,re(t,!0)),d=f(r,p+c),m=p.length+c.length;if(s.push({start:m,end:m+d.length,raw:ee(l,o)}),c+=d,w.set(a.rule,a),l=o,S)break}return y=void 0,a&&!S&&(u(re(a.start)),y=p.length+c.length),u(n.length),b=s,m=c,x=0,o.length>0}function ae(){let e=ne()[0],t=e?Math.max(0,re(e.start)-p.length):0,n=m.slice(0,t),r=f(e?.kind??`instructions`,p+n),i=p.length+t,a=ee(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 oe(){let e=p+m;return y===void 0?e:e.slice(0,y)}function j(){for(let e=0;e<Ji&&!(C>=Yi);e++){let e=new Set(b.map(e=>e.start));if(!ie(!1)){if(y===void 0)break;return}if(S||(b.some(t=>!e.has(t.start))&&C++,!T(oe())))return}ae()}function se(){let e=p.length+m.length,t=h?h.holdFrom():e,i=n?ce(n):e,a=r?p.length+Kt(m,r,l):e,o=Math.min(t,i,a,ue()??e,y??e);return re(o<p.length?o:p.length+Et(m,o-p.length))}function ce(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+an(le(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+an(le(t),e)}return x=Math.min(r,p.length+m.length-vn),Math.max(p.length,r)}function le(e){return e<p.length?p.slice(e)+m:m.slice(e-p.length)}function ue(){let e=k();if(!e)return;let t=e.text.slice(e.held),i=n?tn(t,n,e.text.slice(0,e.held)):t.length,a=r?Kt(t,r,l):t.length;return Ki(e,e.held+Math.min(i,a))}function de(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)||te().length>0)&&j(),S))return de(``);let t=Math.max(0,se()-p.length),n=m.slice(0,t);return p+=n,m=m.slice(t),de(n)},flush(){if(!S){for(let e=0;e<Ji&&!S&&ie(!0);e++);!S&&m&&(D(p+m).length>0||te().length>0)&&ae()}let e=m,t=p+m;p=n||r?jt(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),de(e)},carryOut:()=>p}}function Zi(...e){let t=e.filter(e=>e!==void 0);return t.length===0?{}:{found:{action:t.reduce((e,t)=>Zt(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=()=>Pr(`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,...Zi(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()],...Zi(n,r?.found,u.found)}},carryOut:()=>e?.carryOut()??``}}var $i={canary_leak:un,prompt_leak:Gi,marker_leak:Wi,ungiven_images:Hi,ungiven_links:Ui},ea=[`marker_leak`,`ungiven_images`,`ungiven_links`];function ta(e,t){let{canary:n,privateSystem:r}=e,i=n?Jt(n):void 0,a=``,o=new Set;return{read(e){let n=Nt(a+e,a.length);a+=e;let s=[];i?.push(e)&&s.push(un),r&&Mt(a.slice(n),r,t).length>0&&s.push(Gi);let c=s.filter(e=>!o.has(e.rule));for(let e of c)o.add(e.rule);return c},reset(){i=n?Jt(n):void 0,a=``,o=new Set}}}function na(e,t,n,r){let i=ta(n,r),a=new Map(Object.entries($i).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)=>Zt(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 ra(e,t,n){let{detect:r}=e,i=ea.filter(e=>ia(r,e)),a=oa(r,t,ia),o=oa(r,t,(e,t)=>e[t].thought===`flag`),s=i.length>0||sa(a)||sa(o),c=Dt(e,t);(s||Bt([`thought`],r,c))&&await ur();let l=s?Xi({omit:aa(e),...a,...ca(r),...la(t),...n?{carry:n}:{}}):void 0;return Qi(l&&na(l,r,o,t.canary),r,c,i)}function ia(e,t){return e[t].thought===`redact`||e[t].thought===`block`}function aa({detect:e,allow:t}){return{...ia(e,`marker_leak`)?{markers:!0}:{},...ia(e,`ungiven_images`)?{images:t.ungiven_images}:{},...ia(e,`ungiven_links`)?{links:t.ungiven_links}:{},imagesRead:e.ungiven_images.thought!==`ignore`}}function oa(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 sa(e){return e.canary!==void 0||e.privateSystem!==void 0}function ca(e){let t=new Set(Object.entries($i).filter(([t])=>e[t].thought===`block`).map(([,e])=>e.rule));return t.size>0?{ends:t}:{}}function la({canary:e,givenUrls:t,labels:n}){return{...e?{planted:e}:{},...t?{given:t}:{},...n?{labels:n}:{}}}var ua={rule:`live.untranscribed-audio`,severity:`high`};async function da(e,t,n,r,i){let a=I(e.guardrails),o={stage:`live_outbound`,trust:`untrusted`,profileId:e.id,...qt(a.detect,{canary:t,privateSystem:n}),...e.labels?{labels:e.labels}:{},...r?{givenUrls:r}:{},...i?{ownTools:i}:{}},s=await ra(a,o);return{policy:a,context:o,gate:await or(a,o,`live_reply`),held:[],releasedTo:0,withholdVisible:!1,...s?{thoughts:s}:{}}}function fa(e){let t=e.gate?.carryOut();e.gate=zn(e.policy,e.context,`live_reply`,t),e.held=[],e.releasedTo=0,e.withholdVisible=!1,e.promptLeaks=void 0}function pa(e,t,n=[]){let r=cr(`live_outbound`,`untrusted`,t,`block`);return{action:`withhold`,error:new z(`safety`,e),events:[...n,...r?[r]:[]]}}function ma(e){return e.accumulated().length-e.unreleased().length}function ha(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 ga(e,t,n,r){if(!n.blocked){let i=n.found&&Lt(`live_reply`,n.found);i&&r.push(K(i)),ha(e,t,ma(t),r);return}let i=n.hits.filter(Qt);i.length>0&&(e.promptLeaks=i),e.withholdVisible=!0;let a=n.boundary?void 0:cr(`live_outbound`,`untrusted`,n.hits,`block`);a&&r.push(a)}function _a(e,t,n){e.withholdVisible||e.held.length===0||ga(e,t,t.flush(),n)}function va(e,t,n,r){let i=t.accumulated().length;e.held.push({event:n,start:i,end:r?i:1/0})}function ya(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 ba(e,t,n,r){let i=n.text??``;if(!i)return;let a=t.accumulated().length;ya(e,a+i.length),e.held.push({event:n,start:a,end:a+i.length});let o=t.process(i);e.withholdVisible||ga(e,t,o,r)}function xa(e,t){let n=[],{gate:r}=e;if(!r){let{thoughts:n}=e;return Ta(n?t.flatMap(e=>e.type===`thought`?Sa(n.push(e.text),e):[e]):t)}let i=!1;for(let a of t){if(Ot(a)){i||=!!a.text,ba(e,r,a,n);continue}if(a.type===`media`){va(e,r,a,i),e.withholdVisible||ha(e,r,ma(r),n);continue}_a(e,r,n),Ca(a)&&wa(e,r,n);let t=a.type===`tool`?void 0:Pt(a,e.context,e.policy.detect,`live_reply`);if(t?.stop)return pa($t(t.hits),t.hits,n);if(t){let e=Lt(`live_reply`,{action:`flag`,hits:t.hits});e&&n.push(K(e))}a.type===`thought`&&e.thoughts?n.push(...Sa(e.thoughts.push(a.text),a)):n.push(a)}return Ta(n)}function Sa({text:e,hits:t,found:n},r){let i=n&&Lt(`thought`,n),a=cr(`thought`,`untrusted`,t,`redact`);return[...i?[K(i)]:[],...a?[a]:[],...e?[{...r,text:e}]:[]]}function Ca(e){return e.type===`done`&&e.stop?.kind===`generation_complete`}function wa(e,t,n){let r=t.accumulated().length;e.withholdVisible||r===0||ma(t)<r||ha(e,t,r,n,!0)}function Ta(e){return e.length===0?{action:`idle`}:{action:`emit`,events:e}}function Ea(e,t,n){let{detect:r,blockedReply:i}=e.policy,a=D({text:t.accumulated()},r,{boundary:`live_reply`,...e.withholdVisible?{reportedTo:ma(t)}:{},scope:Dt(e.policy,e.context)}),o=t.accumulated().slice(0,e.releasedTo),s=Je(a,e.promptLeaks),c=s&&s!==a.blocked?cr(`live_outbound`,`untrusted`,s,`block`):void 0,l=[...n,...a.events.map(K),...c?[c]:[]];if(s){if(i.onBlock===`refuse`){let t=T(o,e.context.labels);return{action:`emit`,events:[...l,{type:`text`,text:t}]}}return{action:`withhold`,error:new z(`safety`,Ft.egress),events:l}}if(a.rewritten){let e=fe(o,a.payload.text);return{action:`emit`,events:[...l,{type:`text`,text:e}]}}return ha(e,t,t.accumulated().length,l,!0),Ta(l)}function Da(e,t){if(e.held.length===0)return t;let n=cr(`live_outbound`,`untrusted`,[ua],`block`);return n?[...t,n]:t}function Oa(e,t){let n=[];return _a(e,t,n),t.accumulated()?Ea(e,t,n):Ta(Da(e,n))}function ka(e){let t=e.thoughts?Sa(e.thoughts.flush(),{type:`thought`,text:``}):[];if(!e.gate)return Ta(t);let n=Oa(e,e.gate);return fa(e),t.length===0?n:n.action===`idle`?{action:`emit`,events:t}:{...n,events:[...t,...n.events??[]]}}function Aa(e){e.thoughts?.flush(),fa(e)}var ja=/key|auth|cookie|secret|token/i;function Ma(e,t){return ja.test(e)?`[redacted]`:t}function Na(e){let t={};for(let[n,r]of new Headers(e).entries())t[n]=Ma(n,r);return t}function Pa(e){return e instanceof Error?{eventType:`http_throw`,name:e.name,message:e.message}:{eventType:`http_throw`,name:`Error`,message:String(e)}}function Fa(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 Ia(e,t=fetch,n){return e?async(r,i)=>{e({eventType:`http_request`,method:i?.method??`GET`,url:String(r),headers:Na(i?.headers),...n?{keySlot:n}:{},...Fa(i?.body)});try{let n=await t(r,i);return e({eventType:`http_response`,status:n.status,headers:Na(n.headers)}),n.ok||e({eventType:`http_error_body`,body:await n.clone().text()}),n}catch(t){throw e(Pa(t)),t}}:t}function La(e){return e instanceof z||W(e)||Rt(e)?e:new z(`network`,Ut(e),{cause:e})}function Ra(e=fetch){return async(t,n)=>{try{return await e(t,n)}catch(e){throw La(e)}}}var za=[1e3,2e3,4e3,8e3],Ba=5e3,Va=za.length,Ha=1e3,Ua=new Set([408,429,500,502,503,504,529]),Wa=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(Ga(t));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e);function a(){clearTimeout(i),r(Ga(t))}t?.addEventListener(`abort`,a,{once:!0})});function Ga(e){return e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}function Ka(e){return Ua.has(e)}function qa(e){let t=La(e);return t instanceof z&&t.kind===`network`}function Ja(e){return za[Math.min(e,za.length-1)]}function Ya(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*Ha:Date.parse(r)-t}if(!(i===void 0||Number.isNaN(i)||i<0))return i}function Xa(e,t=Wa,n=()=>1/0){return async(r,i)=>{let a=0;for(let o=0;;o++){let s=Math.min(Ba-a,n()),c;try{let t=await e(r,i);if(!Ka(t.status)||(c=Ya(t.headers)??Ja(o),c>s||o>=Va))return t;await t.body?.cancel()}catch(e){if(c=Ja(o),!qa(e)||c>s||o>=Va)throw e}await t(c,i?.signal),a+=c}}}var Za=`[DONE]`;function Qa(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function $a(e,t){let n=e.startsWith(`data:`)?e.slice(5).replace(/^ /,``):e,r={};if(t&&(r.sseEvent=t),n===Za)return r.eventType=`sse_done`,r;try{let e=JSON.parse(n),t=Qa(e);return t?{...t,...r}:(r.eventType=`sse_unparsed`,r.data=e,r)}catch{return r.eventType=`sse_unparsed`,r.data=n,r}}function eo(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($a(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*to(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=eo(r);r=o.rest;for(let e of o.payloads)yield e}}finally{i||t.cancel().catch(()=>void 0),t.releaseLock()}}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 z(`unsupported`,V(`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 Ee(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 z(`auth`,s===void 0?V(`provider.credential_missing`,{slot:n??``}):V(`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:_n(t)}}else if(!t)yield await e.json();else if(e.body)for await(let t of to(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 z(Vt(n.status),V(`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 z(`unsupported`,V(`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:O.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 z(`unsupported`,V(`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??e.binding.limits??{},...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=Xa(Ia(e.tapUpstream&&(t=>e.tapUpstream?.(t)),Ra(e.fetch??fetch),t),e.wait??Wa,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 z&&e.kind===t}async function*Do(e,t){let{keySlot:n,fallbackKeySlot:r}=ze(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`)||Eo(t,`busy`))&&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 z)||e.kind===`cancelled`||e.kind===`config`)throw e;return{type:`error`,errorKind:e.kind,errorInternal:Ut(e),...e.copy?{errorCopy:e.copy}:{}}}function Ao(e){if(e.state===void 0)return e;if(!e.history?.length)throw new z(`request`,V(`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 z(`unsupported`,V(`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 z(`internal`,V(`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}}function Ro(e,t){return t!==void 0&&e>t}var zo=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,n!==void 0&&(this.startTimer(n),this.deadline=performance.now()+n)}resumeOperation(){if(this.deadline===void 0)return;let e=this.deadline-performance.now();e<=0&&(this.controller.abort(new z(`timeout`,V(`error.timeout`))),B(this.signal)),this.startTimer(e)}timeLeft(){let e=this.timerDeadline??this.deadline;return e===void 0?1/0:e-performance.now()}startTimer(e){this.stopTimer(),this.timerDeadline=performance.now()+e,this.timer=setTimeout(()=>this.controller.abort(new z(`timeout`,V(`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(){let e=this.limits.liveStepTimeoutMs;this.timer===void 0&&e!==void 0&&this.startTimer(e)}fail(){let e=new z(`bad_response`,V(`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 z(`timeout`,V(`error.timeout`))),B(this.signal)}value(e){this.checkDeadline();let t=new TextEncoder().encode(JSON.stringify(e)).byteLength;this.checkDeadline(),this.stepBytes+=t,this.stepEvents++,(Ro(t,this.limits.maxEventBytes)||Ro(this.stepBytes,this.limits.maxStepBytes)||Ro(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),Ro(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)=>{B(this.signal);let r=await e(t,n);this.signal.aborted&&(r.close(),B(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(Ro(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;B(a);let o=await e(t,{...n,signal:a}).catch(e=>{throw i.dispose(),e});if(B(a),!o.body)return i.dispose(),o;let s=o.body.getReader(),c=0,l=this.limits.maxWireRecordBytes!==void 0&&o.headers.get(`content-type`)?.includes(`text/event-stream`)?new Bo(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{B(a);let t=await s.read();if(B(a),t.done){e.close(),a.removeEventListener(`abort`,u),i.dispose(),s.releaseLock();return}c+=t.value.byteLength,this.wireBytes+=t.value.byteLength,(Ro(c,this.limits.maxWireResponseBytes)||Ro(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})}}},Bo=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++,Ro(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)}},Vo=t({name:f().min(1),callId:f().min(1),wireCallId:f().min(1).optional(),arguments:p(f(),O),stepId:f().min(1).optional(),stepCallCount:d().int().min(1).optional()}),Ho=k.extend({type:o(`reasoning`)}),Uo=new Set([`text`,`thought`,`structured`,`media`,`grounding`,`citation`,`evidence`,`tokens`,`session`,`tool_draft`,`error`,`custom`]);function Wo(e){let t=Se.parse(e);if(t.kind===`gate`)throw new z(`bad_response`,V(`provider.kernel_gate`));return t}function Go(e){if(!G(e)||typeof e.type!=`string`)throw new z(`bad_response`,V(`provider.event_invalid`));if(Uo.has(e.type))return bt.parse(e);switch(e.type){case`tool_call`:return{type:`tool_call`,call:Vo.parse(e.call)};case`tool_cancel`:return{type:`tool_cancel`,callId:f().min(1).parse(e.callId)};case`reasoning`:return Ho.parse(e);case`raw`:return{type:`raw`,row:F.parse(e.row)};case`done`:return{type:`done`,stop:Wo(e.stop),interrupted:i().optional().parse(e.interrupted),state:e.state};case`response`:if(!G(e.response))throw new z(`bad_response`,V(`provider.response_identity`));return{type:`response`,response:t({id:f().optional(),model:f().optional()}).parse(e.response)};default:throw new z(`bad_response`,V(`provider.event_type`,{type:e.type}))}}async function Ko(e,t){if(B(t),!t)return await e();let n=()=>{},r=new Promise((e,r)=>{n=()=>{try{B(t)}catch(e){r(e)}},t.addEventListener(`abort`,n,{once:!0}),t.aborted&&n()});try{return await Promise.race([Promise.resolve().then(()=>(B(t),e())),r])}finally{t.removeEventListener(`abort`,n)}}function qo(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 Jo(e,t){let n=t(e instanceof Error?e.message:String(e));if(e instanceof DOMException)return new DOMException(n,e.name);if(W(e))return new DOMException(n,`AbortError`);let r=e instanceof Error&&e.cause!==void 0?{cause:Jo(e.cause,t)}:{},i=e instanceof z?new z(e.kind,n,{copy:qo(e.copy,t),...r}):e instanceof TypeError?TypeError(n,r):Error(n,r);return G(e)&&typeof e.status==`number`&&Object.assign(i,{status:e.status}),i}async function Yo(e,t){try{return await e()}catch(e){throw Jo(e,t)}}async function*Xo(e,t,n,r=!1){r||n.resumeOperation();let i;try{for(i=e()[Symbol.asyncIterator]();;){let e=i,a=await Ko(()=>e.next(),n.signal);if(a.done)break;let o=Go(a.value);r&&(o.type!==`session`||o.session.kind===`working`)&&n.startLiveStep(),n.event(o),o.type===`error`?yield{...o,...o.errorCopy?{errorCopy:qo(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 Jo(e,t)}finally{n.close(),i?.return&&Promise.resolve(i.return()).catch(()=>void 0)}}var Zo=/^(?:authorization|proxy-authorization|cookie|set-cookie|api[_-]?key|x-goog-api-key|secret|token|access[_-]?token|refresh[_-]?token|password)$/i;function Qo(e,t,n,r,i){let a=Object.freeze(ke.parse({...t.limits,...r.limits})),o=new zo(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)),Zo.test(e)&&typeof t==`string`?`[redacted]`:l(t)])):e},u=e=>String(l(e)),d=ze(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?.(F.parse(l(e)))}:{},onKey(e,t){d=e,c(t)}});o.stopTimer();let p=async e=>{try{o.resumeOperation();let t=await Ko(()=>Yo(e,u),o.signal);return o.value(t),t}finally{o.close()}};return{keySlot:()=>d,complete:e=>Xo(()=>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 Ko(()=>Yo(()=>f.openSession({...e,signal:o.signal}),u),o.signal).catch(e=>{throw o.close(),e}).finally(()=>o.stopTimer());return{events:()=>Xo(()=>t.events(),u,o,!0),closeInfo:()=>{let e=t.closeInfo?.();return e&&{...e,...e.error?{error:Jo(e.error,u)}:{}}},sendText:e=>(o.startLiveStep(),Yo(()=>t.sendText(e),u)),sendAudio:e=>Yo(()=>t.sendAudio(e),u),sendVideo:e=>Yo(()=>t.sendVideo(e),u),sendContext:e=>Yo(()=>t.sendContext(e),u),sendToolResult:e=>(o.startLiveStep(),Yo(()=>t.sendToolResult(e),u)),close:e=>(o.stopTimer(),Yo(()=>t.close(e),u).finally(()=>o.dispose()))}}}}function $o(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 es(e,t,n){if(e?.history===`stateless`&&(t||n?.length))throw new z(`request`,V(`provider.stateless_history`))}async function ts(e,t,n,r,i={}){if(!n)return{};let a=C.parse(n),o=tt(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===$o(e,t,o)?a.keySlot===ze(e,t).keySlot?(i.history===`provider`?r.length>0:a.coveredHistoryLength>r.length||a.coveredHistoryHash!==await N(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 ns(e,t,n,r,i,a={}){if(r===void 0)return;let o=tt(e,t),s=o.continuation;if(!s)throw new z(`bad_response`,V(`provider.continuation_contract`));return{protocol:o.id,provider:e.id,version:s.version,apiId:t.apiId,...n?{keySlot:n}:{},compatibilityKey:$o(e,t,o),coveredHistoryLength:i.length,coveredHistoryHash:await N(i),data:O.parse(s.schema.parse(r)),...Object.keys(a).length?{wireCallIds:a}:{}}}function rs(e,t){return e?.map(e=>{if(!e.reasoning)return e;let{reasoning:n,...r}=e,i=n.filter(e=>ot(e.origin.protocol,t));return i.length?{...r,reasoning:i}:r})}function is(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 as(e,t,n){let{providerState:r,tapUpstream:i,history:a,...o}=e,s=is(rs(a,t),n.wireCallIds);return{...o,...s?{history:s}:{},...n.state===void 0?{}:{state:n.state,stateHistoryLength:n.covered}}}function os(e){let{wireCallId:t,...n}=e;return n}async function*ss(e,t){let n={},r,i=!1,a=[],o=[],s=``,c,l=e[Symbol.asyncIterator](),u=!1;try{for(;;){let e=await Ko(()=>l.next(),t);if(e.done){u=!0;break}B(t);let d=e.value;if(r)throw new z(`bad_response`,V(`provider.events_after_completion`));switch(d.type){case`raw`:continue;case`text`:s+=d.text;break;case`structured`:c=d.structured;break;case`reasoning`:{let{type:e,...t}=d;o.push(t);break}case`tool_call`:if(a.some(e=>e.callId===d.call.callId))throw new z(`bad_response`,V(`provider.duplicate_call`));d.call.wireCallId&&(n[d.call.callId]=d.call.wireCallId),a.push(os(d.call));continue;case`tool_cancel`:throw new z(`bad_response`,V(`provider.tool_cancel_live`));case`error`:i=!0;break;case`done`:r=d;continue}yield d}}finally{!u&&l.return&&Promise.resolve(l.return()).catch(()=>void 0)}return{terminal:r,failed:i,pending:a,reasoning:o,text:s,...c===void 0?{}:{structured:c},wireCallIds:n}}function cs(e,t,n,r,i,a={},o=[]){let s=tt(e,t),c=i;return{async*complete(l){let u=c===i&&a.history===`provider`,d=await ts(e,t,c,u?o:l.history??[],u?a:{});d.warning&&(c=void 0,yield{type:`provider_warning`,warning:d.warning});let f=Qo(e,t,n,r,l),{terminal:p,failed:m,pending:h,reasoning:g,text:_,structured:v,wireCallIds:y}=yield*ss(f.complete(as(l,s,d)),l.signal);if(B(l.signal),!p){yield{type:`done`,stop:{kind:m?`provider_error`:`stream_incomplete`}};return}if(m||p.interrupted||p.stop.kind!==`tool`&&p.stop.kind!==`completed`){yield{type:`done`,stop:p.stop};return}let b=[...l.history??[]];l.input.length&&b.push(l.input.every(e=>e.type===`text`)?{role:`user`,content:l.input.map(e=>e.type===`text`?e.text:``).join(``)}:{role:`user`,parts:l.input});let x=await ns(e,t,f.keySlot(),p.state,[...b,...ct({text:_,structured:v,calls:h.map((e,t)=>t===0?{...e,reasoning:g}:e)})],{...d.wireCallIds,...y});c=x;for(let e of h)yield{type:`tool`,tool:e};yield{type:`done`,stop:p.stop,providerState:x}}}}var ls=new Map;function us(e){return typeof e==`object`&&!!e&&`write`in e&&typeof e.write==`function`}function ds(e,t){let n=e.trim();if(!n)throw new z(`config`,`registerTraceDestination requires a non-empty id`);if(!us(t))throw new z(`config`,`Trace destination '${n}' must be a TraceSink`);ls.set(n,t)}function fs(e){return ls.get(e)}function ps(e){let t=fs(e);if(!t)throw new z(`config`,`Trace destination '${e}' is not registered`);return t}async function ms(e,t,n){try{await e.write(await t,{retainForDays:n.retainForDays,rotateAfterMiB:n.rotateAfterMiB})}catch(t){try{e.onError?.(t)}catch{}}}function hs(e,t,n,r){return ms(e,Kr({spans:t,policy:n,...r?{metadata:r}:{}}),n)}function gs(){return{write:()=>Promise.resolve()}}function _s(e,t){return!t&&!e.onError?e:{write:(t,n)=>e.write(t,n),onError:e.onError??t}}var vs=2**32;function ys(e,t){let n=e.spans[0]?.traceId??``;return Number.parseInt(n.slice(-8),16)/vs<t}function bs(e,t){return t>=1?e:t<=0?gs():{write:async(n,r)=>{ys(n,t)&&await e.write(n,r)},onError:e.onError}}function xs(e,t){return e===void 0||e===!1?gs():_s(typeof e==`string`?ps(e):e,t.onWriteError)}function Ss(e){let t={...Wr(e.observability),detect:I(e.guardrails).detect};return e.override?{policy:t,sink:_s(e.override,t.onWriteError)}:t.record?{policy:t,sink:bs(xs(t.writeTo,t),t.sampleRate)}:{policy:t,sink:gs()}}async function Cs({name:e,attributes:t,traceparent:n,metadata:r,writer:i},a){let o=Yt(e,{kind:`CLIENT`,attributes:t,...n?{traceparent:n}:{}}),{sink:s,policy:c}=Ss(i);try{let e=await a(o.root);return o.root.end({code:`OK`}),e}catch(e){throw xe(o.root,e),e}finally{await hs(s,o.collect(),c,r)}}var ws={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 z{code;status;constructor(e,t,n,r){super(ws[e],t,r),this.code=e,this.status=n}};function Ts(e,t){let n=e.profiles.get(t);if(n.type!==`decision`)throw new z(`request`,`runDecision requires profile.type 'decision' (got '${n.type}' for ${n.id})`);return n}function Es(e){let t=Cr(e.models),n=t?e.models[t]:void 0;if(!t||!n)throw new z(`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 Ds(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)>.005*t.length+1e-9)throw new q(`malformed_response`,`${n} must sum to one`);return r}function Os(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 ks(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 As(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:Ds(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:Os(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:ks(t.legend,e,`${r}.legend`),probabilities:Ds(t.probabilities,e,`${r}.probabilities`)}}}return n}function js(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 Ms(e,t){if(!G(t)||!e.trim()||!zs(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(zs))throw new q(`invalid_request`,`Decision ${t.type} '${e}' must declare criteria`)}function Ns(e,t){if(B(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||!js(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)||!js(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))Ms(t,n);e.assets!==void 0&&Rs(e.assets);for(let[t,n]of Object.entries(e.questions))Fs(t,n,e.state,e.assets)}function Ps(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 Fs(e,t,n,r){if(!G(t)||t.image===void 0)return;let i=t.image,a=typeof i==`string`&&!r?.[i]?Ps(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 Is(e,t){if(e.type!==`box`||e.image===void 0)return e;let{image:n,instructions:r}=e,i=V(`decision.box_image`,{image:t?.[n]?n:`\`${n}\``});return{type:`box`,instructions:typeof r==`string`?`${r} ${i}`:[r,i]}}var Ls=/^[A-Za-z0-9+/]+={0,2}$/;function Rs(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||!Ls.test(n.data))throw new q(`invalid_request`,`Decision asset '${t}' must be PNG or JPEG bytes as padded base64`)}function zs(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 Bs(e,t,n,r,i){if((await e.guardrails?.disclosure?.enforce(r.state,{destination:n,profileId:e.id,model:t,questionIds:Object.keys(r.questions),...i?{assets:i}:{}}))?.action===`block`)throw new q(`disclosure_blocked`,`Decision disclosure was blocked`)}function Vs(e,t,n,r,i){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),...i?{"theorem.decision.assets":U(Object.fromEntries(Object.entries(i).map(([e,{mimeType:t,data:n}])=>[e,{mimeType:t,bytes:n.length}])))}:{}}}function Hs(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 Us(e){if(e instanceof q)return e;let t=e instanceof z?e.kind:e instanceof TypeError?`network`:`bad_response`;return new q(t===`auth`&&G(e)&&e.status===403?`permission`:{auth:`authentication`,rate_limit:`rate_limited`,network:`network`,busy:`unavailable`,unavailable:`unavailable`,timeout:`timeout`,cancelled:`cancelled`,request:`invalid_request`,unsupported:`invalid_request`}[t]??`malformed_response`,e instanceof z?e.message:V(`provider.decision_failed`),G(e)&&typeof e.status==`number`?e.status:void 0,{cause:e})}function Ws(e){let t=Object.fromEntries(Object.entries(e.questions).map(([t,n])=>[t,Is(n,e.assets)])),n=e.assets?w([e.state,...Object.values(t).flatMap(e=>[e.instructions,`criteria`in e?e.criteria:void 0])],e.assets):{};return{state:e.state,questions:t,...Object.keys(n).length?{assets:n}:{}}}async function Gs(e,t,[n,r],i,a,o){B(i.signal);let s=e.providers.require(r.provider,r.apiId);await Bs(t,n,r.provider,i,a.assets),B(i.signal);try{let e=await Qo(s,r,`decision`,o,{...i.signal?{signal:i.signal}:{},...r.timeoutMs?{timeoutMs:r.timeoutMs}:{}}).decide({apiId:r.apiId,...a});if(typeof e.model!=`string`||!e.model.trim())throw new q(`malformed_response`,V(`provider.decision_model_missing`));return{...e,answers:As(e.answers,i.questions)}}catch(e){throw i.signal?.aborted?new q(`cancelled`,V(`provider.decision_ended`)):Us(e)}}async function Ks(e,t,n){let r=Ts(e,t.profile);Ns(t,r);let i=Es(r),[a,o]=i,s=Ws(t);return await Cs({name:`decide ${o.apiId}`,attributes:Vs(r,a,o,t,s.assets),traceparent:t.traceparent,metadata:t.metadata,writer:{override:n.sink,observability:r.observability,guardrails:r.guardrails}},async a=>{let o=await Gs(e,r,i,t,s,n);return Hs(a,o),o})}function qs(e,t){let n=e.profiles.get(t);if(n.type!==`embedding`)throw new z(`request`,`runEmbedding requires profile.type 'embedding' (got '${n.type}' for ${t})`);return n}function Js(e,t){let n=t??e.defaultModel;if(t&&!e.allowModelSelect)throw new z(`request`,`Profile ${e.id} does not allow model selection`);let r=e.models[n];if(!r)throw new z(`request`,`Unknown model '${n}' for ${e.id}`);return[n,r]}var Ys=[`query`,`document`];function Xs(e){if(e!==void 0&&!Ys.includes(e))throw new z(`request`,`Embedding task must be 'query' or 'document'`)}function Zs(e){return Array.isArray(e)?e:[e]}function Qs(e){return typeof e==`string`?[{type:`text`,text:e}]:e&&Array.isArray(e.parts)?e.parts:[]}function $s(e,t,n,r){let i=jn(e.inputs,r);if(i.maxInputs!==void 0&&n.length>i.maxInputs)throw new z(`request`,`Model '${t}' of ${e.id} takes at most ${i.maxInputs} inputs per request`);let a=[];for(let t of n){let n=Qs(t);if(n.length===0)throw new z(`request`,`Profile ${e.id} received an empty embedding input`);let r=[];for(let t of n)if(t.type===`text`){if(!i.text)throw new z(`unsupported`,`Profile ${e.id} does not accept text embedding input`)}else r.push(t.type===`media`?{mimeType:t.mimeType,sizeBytes:ar(t.data)}:{mimeType:t.mimeType});a.push(r)}let o=Tr(i,a);if(o.length>0)throw Nn(o)}function ec(e,t){if(!e.model.trim()||e.embeddings.length!==t)throw new z(`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 z(`bad_response`,`Embedding provider returned invalid vector metadata`);if(e.values.some(e=>!Number.isFinite(e)))throw new z(`bad_response`,`Embedding provider returned a non-finite vector value`);return e});return{...e,embeddings:n}}async function tc(e,t,n={}){B(t.signal);let r=qs(e,t.profile),[i,a]=Js(r,t.model),o=Zs(t.input);Xs(t.task);let s=e.providers.require(a.provider,a.apiId);$s(r,i,o,tt(s,a).embeddingLimits?.(a.apiId));let c=Qo(s,a,`embedding`,n,{...t.signal?{signal:t.signal}:{}});return await Cs({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()=>ec(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 nc(e,t,n,r,i){let a=e.profiles.get(t);if(a.type===`host`)return rc(e,r);if(a.type===`decision`||a.type===`live`||a.type===`embedding`)throw new z(`unsupported`,V(`provider.turn_profile`));let o=a.models[n??a.defaultModel];if(!o)throw new z(`config`,V(`provider.model_binding_missing`));return es(a.providerContinuation,i?.providerState,i?.input?.history),{complete:cs(e.providers.require(o.provider,o.apiId),structuredClone(o),a.type,r,i?.providerState,a.providerContinuation,i?.input?.history).complete,forProfile:(t,n,i)=>nc(e,t,n,r,i)}}function rc(e,t){return{complete(){throw new z(`unsupported`,V(`provider.host_model`))},forProfile:(n,r,i)=>nc(e,n,r,t,i)}}function ic(e,t,n,r){return`forProfile`in e&&typeof e.forProfile==`function`?e.forProfile(t,n,r):e}function ac(){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(nt(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 oc(){return Promise.resolve(ac())}function sc(e){return e.meter??`history`}function cc(e){let t=[];for(let n=0;n<e.length;n++)e[n].role===`user`&&t.push(n);return t}async function lc(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 oc()).messages(t)}async function uc(e){let t=sc(e.spec);if(t===`history`)return{meter:t,...await lc(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 dc(e,t){return e>t.compactAt*t.maxTokens}async function fc(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 dc(e.tokens,t)}async function pc(e,t){if(e.length===0)return{toCompact:[],toRetain:[]};if(t.previousExchanges===0)return{toCompact:[...e],toRetain:[]};let n=cc(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 oc(),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 mc(e){return e.metadata?.compactionSummary===!0}function hc(e){return{type:`text`,text:e}}function gc(e,t){let n=t.labels,r=new Map,i=0,a=e=>(e??[]).filter(e=>e.type===`text`||Xe(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:[hc(V(`compaction.tool_result`,{tool:i??``,result:a},n)),...e]});continue}let i=(t.tool_calls??[]).map(e=>hc(V(`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 _c(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(mc),...e.toRetain]}:{...i,outcome:`deferred`,failure:t.failure,history:[...e.toCompact,...e.toRetain]}}var vc={[En.unscannable]:`egress.hint_unscannable`,[En.providerToolLeak]:`egress.hint_provider_tool_leak`},yc=[en.canary_leak],bc=3,xc=120,Sc=`detect.`;function Cc(e,t,n){let r=vc[e.rule];if(r)return V(r,{},n);let i=e.rule.startsWith(Sc)?e.rule.slice(7):e.rule;if(yn(i))return t.hints?.[i]??V(`detect.hint.${i}`,{},n);let a=t.host?.find(({id:e})=>e===i),o=a?.label??e.label??i;return a?.hint??V(`detect.hint.own`,{label:o},n)}function wc(e){let t=e.flatMap(({rule:e,match:t})=>t&&!yc.includes(e)?[t]:[]);return[...new Set(t)].slice(0,bc).map(e=>JSON.stringify(e.length>xc?e.slice(0,xc):e))}function Tc(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=Cc(e[0],t,n),i=wc(e);return i.length>0?V(`egress.rejection_found`,{hint:r,matches:i.join(`, `)},n):r});return V(`egress.rejection`,{found:i.join(`
5
- `)},n)}function Ec(e){if(e.type!==`live`&&e.type!==`host`&&e.type!==`decision`&&e.type!==`embedding`)return e.outputs}var Dc=[`inject`,`abort`,`deny`,`confirm`,`mutate`,`labelFailed`,`waitFor`],Oc=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([])}),kc=new Set([...Dc,`injectId`,`released`]);function Ac(e,t){return Oc[e].includes(t)}function Y(e,t,n,r){e.push({code:t,field:n,message:r})}function jc(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 Mc(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=jc(r,t);e&&n.push(e)}return n.length>0?n:void 0}function Nc(e,t){if(e!==void 0){if(typeof e==`number`&&Number.isInteger(e)&&e>=0)return e;Y(t,`inject_released_invalid`,`released`,`released must be a whole number of characters, 0 or more; ignored`)}}function Pc(e,t){let n=Mc(e.inject,t);if(!n)return;let r=Nc(e.released,t),i={messages:n,...r===void 0?{}:{released:r}};if(e.injectId===void 0)return i;if(typeof e.injectId==`string`&&e.injectId.trim())return{id:e.injectId,...i};Y(t,`inject_id_invalid`,`injectId`,`injectId must be a non-empty string; inject refused`)}function Fc(e,t,n){if(!(`inject`in e)||e.inject===void 0){e.injectId!==void 0&&Y(n.warnings,`inject_id_invalid`,`injectId`,`injectId without inject ignored`),e.released!==void 0&&Y(n.warnings,`inject_released_invalid`,`released`,`released without inject ignored`);return}let{stage:r,injectAllowed:i,injectWouldExceedMaxSteps:a}=t;if(!Ac(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=Pc(e,n.warnings);t&&(n.inject=t)}}function Ic(e,t,n){if(`abort`in e&&e.abort!==void 0){if(!Ac(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 Lc(e,t,n){`deny`in e&&e.deny!==void 0&&(Ac(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 Rc(e,t,n){`labelFailed`in e&&e.labelFailed!==void 0&&(Ac(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 zc(e,t,n){if(`confirm`in e&&e.confirm!==void 0){if(!Ac(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 Bc(e,t,n){`waitFor`in e&&e.waitFor!==void 0&&(Ac(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 Vc={pre_tool:`input`,post_tool:`output`};function Hc(e){return e in Vc?Vc[e]:void 0}function Uc(e,t,n){let{stage:r}=t;if(!(`mutate`in e)||e.mutate===void 0)return;if(!Ac(r,`mutate`)){Y(n.warnings,`affordance_not_allowed`,`mutate`,`mutate is not allowed at stage ${r}`);return}let i=Hc(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 Wc(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))kc.has(e)||Y(t,`unknown_field`,e,`unknown StageResult field "${e}" ignored`);return Fc(i,e,n),Ic(i,r,n),Lc(i,r,n),zc(i,r,n),Uc(i,e,n),Rc(i,r,n),Bc(i,r,n),n.deny&&n.confirm&&(Y(t,`confirm_invalid`,`confirm`,`confirm ignored because deny is set`),delete n.confirm),n}function Gc(e,t){let n={type:`stage`,stage:e};return t&&(t.callId!==void 0&&(n.callId=t.callId),t.toolName!==void 0&&(n.toolName=t.toolName),t.callNotStarted!==void 0&&(n.callNotStarted=t.callNotStarted),t.awaiting!==void 0&&(n.awaiting=t.awaiting),t.gate!==void 0&&(n.gate=t.gate),t.stop!==void 0&&(n.stop=t.stop),t.injected!==void 0&&(n.injected=t.injected),t.released!==void 0&&(n.released=t.released)),n}function Kc(e){return e.flatMap(e=>e.messages)}function qc(e,t,n){let r=t.flatMap(e=>e.id===void 0?[]:[{id:e.id,messages:e.messages}]);if(r.length!==0||n?.released!==void 0)return Gc(e,{...n,...r.length>0?{injected:r}:{}})}function Jc(e,t){return t===void 0||t<=0?!1:e>=t}function Yc(e,t){return t===`inject`?e.inject.length>0:!!e[t]}function Xc(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 Zc(e,t,n,r){let i=[];for(let a of e){let e;try{e=await a({...t})}catch(e){throw B(r),e}B(r),i.push(Wc({...n,result:e}))}return i}async function*Qc(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(B(u),yield Gc(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=Xc(await Zc(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:Dc.filter(e=>Yc(h,e)),...h.warnings.length>0?{warnings:h.warnings.map(e=>e.code)}:{}}),h.warnings.length>0&&(yield{...Gc(t,{callId:f.callId,toolName:f.tool}),stageWarnings:h.warnings}),h.inject.length===0)return h;let g=wt(`injected`,I(a).detect),_=h.inject.map(e=>({...e,messages:Qn(e.messages,g)})),v=g.found(),y=Lt(`injected`,v);if(y&&(d?.event(`theorem.guardrail`,E(y)),yield K(y)),v.action===`block`)throw Jn(`injected`);return{...h,inject:_}}function $c(e,t,n){if(e.currentHistory.push(...t),n!==void 0)for(let r of t)typeof r.content==`string`&&e.replyMessages.push({message:r,at:n})}function el(e){let t=e.flatMap(e=>e.released===void 0?[]:[e.released]);return t.length>0?Math.min(...t):void 0}function tl(e,t){let n=[...e],r=t;for(let e=n.length-1;e>=0&&r>0;--e){let t=n[e];if(t?.type!==`text`)continue;let i=Math.max(0,t.text.length-r);r-=t.text.length-i,i===0?n.splice(e,1):n[e]={...t,text:t.text.slice(0,i)}}return n}function nl(e,t){if(t===void 0||t>=e.replyText.length)return;let n=e.replyText.length-t;e.replyText=e.replyText.slice(0,t),e.released=e.released.slice(0,Math.max(0,e.released.length-n)),e.attemptEvents=tl(e.attemptEvents,n);let r=[];for(let{message:n,at:i}of e.replyMessages){let a=typeof n.content==`string`?n.content:``,o=a.slice(0,Math.max(0,t-i)),s=e.currentHistory.indexOf(n);if(!(s<0)){if(o){let t=o===a?n:{...n,content:o};e.currentHistory[s]=t,r.push({message:t,at:i})}else e.currentHistory.splice(s,1)}}return e.replyMessages=r,t}function*rl(e,t,n,r){let i=Kc(n);if(i.length===0)return 0;let a=nl(e,el(n));e.currentHistory.push(...i);let o=qc(t,n,{...r,...a===void 0?{}:{released:a}});return o&&(e.allEmittedEvents.push(o),yield o),i.length}async function*il(e){let{profile:t,generation:n,state:r,onStage:i,host:a,reply:o,replyAt:s,...c}=e;B(c.signal);let l=Qc({...c,...o?{reply:o}:{},history:r.currentHistory,handlers:i?[i]:[],guardrails:t.guardrails,injectAllowed:ae(t),host:a??n.host,span:r.trace.root}),u=await l.next();for(;!u.done;)r.allEmittedEvents.push(u.value),yield u.value,u=await l.next();let d=u.value;return o&&Kc(d.inject).length>0&&$c(r,o,s),{abort:d.abort,injectCount:yield*rl(r,c.stage,d.inject),warnings:d.warnings}}function al(e,t){t.allEmittedEvents.push(e),t.attemptEvents.push(e)}function ol(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 sl(e){let{profile:t,generation:n}=e,r=fr(e.tools,t),i={tools:e.tools,trace:e.trace,currentHistory:[...n.history??[]],turnStart:n.history?.length??0,stepCount:0,resumes:0,toolResults:[],allEmittedEvents:e.allEmittedEvents??[],attemptEvents:[],released:``,replyText:``,replyMessages:[],givenUrls:on(),destinations:bi(),canaryGiven:!1,canaryScanned:new WeakSet,...r?{ownTools:r}:{},...e.agents?{agents:e.agents}:{}};return t.type===`text`&&(ol(i,n.input),n.input=[]),i}function cl(e){return e.turnOnly?e.currentHistory.slice(e.turnStart):e.currentHistory}function ll(e){return e.turnOnly===!0&&e.turnStart>0}function ul(e,t,n={}){return t.map(t=>{if(e.get(t)?.type!==`builtin`)throw new z(`config`,`Builtin '${t}' is not registered`);let r=n[t];return r?{id:t,args:r}:{id:t}})}function dl(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:ul(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 fl=t({accepted:F,preparedInput:O});function X(){let e=new z(`unavailable`,``);return e.message=Gt(e),e}async function pl(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=O.parse(t(gl(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 ml=_.tool.transform((e,t)=>e.tool.phase===`complete`||e.tool.phase===`error`?{...e,tool:e.tool}:(t.addIssue({code:`custom`}),a)),hl=t({event:ml,effects:l([`not_started`,`completed`,`unknown`]),replay:t({modelResult:t({finding:f(),data:O.optional(),parts:s(se).optional(),modelText:f().optional(),provenance:Ke.optional(),suspicious:s(v).optional()}).optional(),outputRaw:O.optional(),failure:t({code:f(),kind:pe,message:f(),error:f().optional(),details:O.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(b),released:d().int().nonnegative().optional()})).optional()})});function gl(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 O.parse(n(e))}var _l=class{outcome;constructor(e){this.outcome=e}};function vl(e){return new z(`unavailable`,V(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`},cause:e})}var yl=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){B(this.signal);let t={...this.operation,invocation:{accepted:this.accepted,preparedInput:gl(e)}},n=await this.coordinator.begin(t);if(n.kind===`settled`)throw new _l(n.outcome);if(n.kind===`running`||n.kind===`uncertain`)throw vl();if(n.kind!==`acquired`||typeof n.claimToken!=`string`||!n.claimToken)throw X();return this.claim={...t,claimToken:n.claimToken},B(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 vl();return!0}async finish(e){if(e.gated){if(this.claim)throw vl();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=hl.parse(gl(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=hl.parse(gl(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?vl(e):e}async close(){this.claim&&!this.committed&&await this.coordinator.markUncertain(this.claim,this.writeFailed?`settlement_write_failed`:`execution_interrupted`)}};async function*bl(e,t,n,r,i,a){if(!e)return yield*i();let o=F.parse(gl(n)),s={...t,invocationHash:await pl(o)},c=new yl(e,s,o,r);B(r);let l=await e.lookup(s);if(B(r),l?.kind===`running`||l?.kind===`uncertain`)throw vl();if(l?.kind===`settled`){if(!a)throw X();let e=c.replay(new _l(l.outcome));return await a(e),B(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 _l){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*xl(e,t){t.kind===`progress`?yield R(e,{phase:`progress`,data:t.data}):t.kind===`draft`?yield R(e,{phase:`draft`,text:t.text}):t.kind===`trace`?yield R(e,{phase:`trace`,step:t.step}):t.kind===`artifact`?yield R(e,{phase:`artifact`,artifact:t.artifact}):t.kind===`warning`&&(yield R(e,{phase:`warning`,warning:t.warning}))}var Sl=class{base;checks;drafts;constructor(e,t){this.base=e,this.checks=t,t?.drafts&&(this.drafts=new Bn(()=>Cl(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*xl(this.base,{...e,artifact:t.value}))}else if(e.kind===`trace`){let t=yield*this.shown(e.step);t.shown&&(yield*xl(this.base,{...e,step:t.value}))}else yield*xl(this.base,e)}}*end(){let e=this.drafts?.end();e&&(yield R(this.base,{phase:`draft`,text:e}))}async*draft(e){let t=await this.drafts?.read(e);t&&(yield R(this.base,{phase:`draft`,text:t}))}*shown(e){let t=this.checks;if(!t)return{shown:!0,value:e};let n=pt(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}=je(``,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 Cl(e){return ir(e.policy,{stage:`tool_result`,trust:`untrusted`,profileId:e.profileId,provenance:e.provenance},e.boundary,{callable:e.callableTools})}var wl=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]);async function Tl(e,t=1/0){let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t){await e.body?.cancel().catch(()=>{});return}if(!e.body)return new Uint8Array(await e.arrayBuffer());let r=e.body.getReader(),i=[],a=0;for(;;){let{done:e,value:n}=await r.read();if(e)break;if(a+=n.byteLength,a>t){await r.cancel().catch(()=>{});return}i.push(n)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.byteLength;return o}function El(e,t){if(t===void 0)return e.signal;let n=AbortSignal.timeout(t);return e.signal?AbortSignal.any([e.signal,n]):n}async function Dl(e,t,n){let r=El(t,n.timeoutMs),i=await Pe(e,{method:`GET`,headers:{Accept:`image/*`},signal:r},{policy:et(t),followRedirects:!0,resolveHost:t.resolveHost});if(!i.ok)throw Error(`HTTP ${i.status}`);let a=(i.headers.get(`content-type`)??``).split(`;`)[0]?.trim().toLowerCase();if(!a||!wl.has(a))throw await i.body?.cancel().catch(()=>{}),Error(`not a png, jpeg, gif or webp image (${a||`no type`})`);let o=await Tl(i,n.bytes);if(!o)throw Error(`larger than ${n.bytes} bytes`);return{type:`image`,mimeType:a,data:_n(o)}}function Ol(e){if(typeof e!=`string`)return{reason:`an address that is not text`};try{if(new URL(e).protocol===`https:`)return{url:e}}catch{}return{reason:`${e.slice(0,80)}: not an absolute https address`}}async function kl(e,t,n,r={}){let i=[],a=[];try{for(let n of new Set(e(t))){let e=Ol(n);`url`in e?a.push(e.url):i.push(e.reason)}}catch(e){return{parts:[],urls:[],warning:Al([`the images hook threw: ${String(e)}`])}}let o=a.slice(0,r.count),s=await Promise.allSettled(o.map(e=>Dl(e,n,r))),c=r.totalBytes??1/0,l=[],u=[],d=0;return s.forEach((e,t)=>{let n=o[t];if(e.status===`rejected`){let t=e.reason instanceof Error?e.reason.message:String(e.reason);i.push(`${new URL(n).hostname}: ${t}`);return}let r=`data`in e.value?e.value.data.length:0;d+r>c?i.push(`${new URL(n).hostname}: past the ${c} byte total`):(d+=r,l.push(e.value),u.push(n))}),{parts:l,urls:u,...i.length?{warning:Al(i)}:{}}}function Al(e){return{code:`images_unfetched`,severity:`warning`,message:`Some pictures the tool named were left out. ${e.join(`; `)}`}}function jl(e){return typeof e?.granted==`boolean`}function Ml(e){return e?.granted===!0}function Nl(e){return e?.granted===!1}function Pl(e,t){return t?t.includes(`*`)||t.includes(e):!1}function Fl(e,t){let n=yt(e.labels?.request,{input:t});return{access:e.access,...n?{request:n}:{}}}function Il(e,t,n,r,i){return t===`auto`||(t===`always_confirm`?r?.granted===!0:Pl(e,n))?null:{kind:`permission`,tool:e,permission:t,...i}}function Ll(e,t,n){return Pe(e,t,{policy:n.network,followRedirects:!1,resolveHost:n.resolveHost,...n.fetchFn?{fetchFn:n.fetchFn}:{}})}function Rl(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 zl=/^[\x20\x21\x23-\x5B\x5D-\x7E]*$/;async function Bl(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`||!zl.test(n)?``:typeof r==`string`&&zl.test(r)?`: ${n} (${r})`:`: ${n}`}function Vl(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 Hl(e){return e===void 0?[]:e.split(` `).filter(e=>e.length>0)}function Ul(e,t,n){if(t.length===0)return;let r=Hl(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 Wl(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 Ll(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 Bl(c)}`);let l=Vl(await c.json(),t.tokenEndpoint);return Ul(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 Gl(e){return Rl(e.tokenEndpoint,`token_endpoint`),Rl(e.resource,`resource`),Wl(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}:{}},Hl(e.scope),{refreshToken:e.refreshToken,scope:e.scope})}function Kl(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 ql={now:Date.now,wait:Wa},Jl=new WeakMap;function Yl(e){let t=Jl.get(e);if(t)return t;let n={places:[],heldUntil:0,waiting:new Set};return Jl.set(e,n),n}function Xl(e,t,n){e.places=e.places.filter(e=>e.opensAt>n);let r=e.places.length<t.requests?n:Math.min(...e.places.map(e=>e.opensAt));return Math.max(r,e.heldUntil)}async function Zl(e,t,n,r){let i=new AbortController,a=()=>i.abort();e.waiting.add(a);try{await r.wait(t,n?AbortSignal.any([n,i.signal]):i.signal)}catch(e){if(n?.aborted||!i.signal.aborted)throw e}finally{e.waiting.delete(a)}}async function Ql(e,t,n,r=ql){let i=Yl(e),a=r.now()+Ba;for(;;){let e=r.now(),o=Xl(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?Ya(n.headers,a):void 0;o!==void 0&&(i.heldUntil=Math.max(i.heldUntil,a+o));for(let e of i.waiting)e()}}}if(o>a&&o!==1/0)return{full:!0,limit:t,opensInMs:o-e};if(e>=a)return{full:!0,limit:t,opensInMs:void 0};await Zl(i,Math.min(o,a)-e,n,r)}}async function $l(e,t){try{let n=await t;return e?.answered(n),n}catch(t){throw e?.answered(),t}}function eu(e){return{handlers:[],profile:e.profile,step:e.turn?.step??1,history:()=>[],injectAllowed:!1,host:e.host,signal:e.signal}}async function*tu(e){let{tool:t,ctx:n,base:r,stages:i}=e,a,o=Ml(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*nu({stages:i??eu(n),toolName:t.name,callId:r.callId,input:e.input,toolPreTool:a,details:Fl(t,e.input)});if(!s.ok){if(s.kind===`gated`){if(`input`in s){let e=s.input,r=t.input.safeParse(Hn(e));if(!r.success)return{ok:!1,kind:`failed`,failure:{code:`invalid_input`,kind:`bad_response`,message:V(`tool.input_invalid_after_mutate`,{},n.profile.labels),details:r.error.flatten()}};s.gate={...s.gate,...Fl(t,r.data),preparedArguments:F.parse(gl(Hn(e)))}}yield Gc(`pre_tool`,{callId:r.callId,toolName:t.name,callNotStarted:!0,gate:s.gate}),yield R(r,{phase:`gate`,gate:s.gate})}return s}let c=s.mutated?t.input.safeParse(Hn(s.input)):void 0;if(c&&!c.success)return{ok:!1,kind:`failed`,failure:{code:`invalid_input`,kind:`bad_response`,message:V(`tool.input_invalid_after_mutate`,{},e.ctx.profile.labels),details:c.error.flatten()}};let l=await ru(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*nu(e){let{stages:t,toolName:n,callId:r,input:i,toolPreTool:a,details:o}=e,s=yield*Qc({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 ru(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:V(a.reason===`unknown`?`tool.wait_unknown`:`tool.wait_cycle`,{tool:n,calls:a.callIds.join(`, `)},i)}}async function*iu(e){let{stages:t,toolName:n,callId:r,mutable:i,...a}=e,o=yield*Qc({...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*au(e){yield Gc(`pre_tool`,{callId:e.callId,toolName:e.toolName,callNotStarted:!0,gate:e.gate});let t=e.gate.kind===`auth`?V(`sign_in.pending`,{service:e.gate.authChallenge.service},e.labels):void 0;return yield R(e.base,{phase:`gate`,gate:e.gate,...t?{readBack:t}:{}}),t}function ou(e,t){if(!t)return e;let n=new URL(e);return n.searchParams.set(t.name,t.value),n}function su(e,t,n){let r=e.headerName??n.headerName,i=e.headerPrefix??n.headerPrefix;return{[r]:`${i}${t}`}}function cu(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 lu(e,t,n,r,i){return r===`gate`?{headers:{},unauthenticated:!0,gate:cu(e,t,n,i)}:r===`fail`?{headers:{},unauthenticated:!0,failureMessage:n}:{headers:{},unauthenticated:!0,modelMessage:n}}function uu(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:su(e,n,{headerName:`Authorization`,headerPrefix:`Bearer `})};let r=t.headerName??e.headerName??`Authorization`,i=t.headerPrefix??e.headerPrefix??``;return{headers:{[r]:`${i}${n}`}}}function du(e,t){if(e.type!==`bearer`&&e.type!==`api_key`)return;let n=e.type===`bearer`?e.token:e.key;return{...uu(t,e),secret:n}}var fu=new Map;function pu(e,t,n,r){let i=`${e.tokenEndpoint}\n${t}`,a=fu.get(i);if(a)return a;let o=Gl({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);fu.set(i,o);let s=()=>fu.delete(i);return o.then(s,s),o}async function*mu(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 lu(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 pu(n,n.refreshToken,{network:et(i),resolveHost:i.resolveHost},await r.clientSecret?.(n.clientId))}catch(n){return yield{...R(a,{phase:`progress`,data:{kind:`auth_token_refresh_failed`,slot:s}}),errorInternal:Ge(n)},lu(e,t,`Failed to refresh OAuth token for '${e}' (slot: '${s}').`,o,c)}await r.set(s,l),yield R(a,{phase:`progress`,data:{kind:`auth_token_refreshed`,slot:s}})}else if(u)return lu(e,t,`OAuth token expired for '${e}' (slot: '${s}') and no refresh token is available.`,o,c);return{headers:su(t,l.accessToken,{headerName:`Authorization`,headerPrefix:`Bearer `}),secret:l.accessToken,audience:n.resource}}async function*hu(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?lu(e,t,`Authentication required for '${e}' (auth slot: '${t.slot}').`,o):du(a,t)||(a.type===`oauth2`?yield*mu(e,t,a,i,n,r,o):{headers:{}})}function gu(e,t){if(t===`.`||t===`..`)throw Error(`Path parameter "${e}" cannot be "${t}"`);return encodeURIComponent(t)}function _u(e,t,n,r){Wn(e);let i=e,a=r?.pathParams??[];for(let e of a){let t=n[e];t!==void 0&&(i=i.replaceAll(`{${e}}`,gu(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 vu(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 yu(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 bu(e){return{finding:typeof e==`string`?e:JSON.stringify(e)}}function xu(e,t){return t?.length?{...e,parts:t}:e}function Z(e,t){return{kind:`failed`,failure:e,callNotStarted:t}}async function*Su(e){let t=yield*tu(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 Cu(e,t,n){let r=dt(e,t,n);if(!r.ok)return{ok:!1,outcome:Z(r.failure,!0)};let i=Il(e.name,e.permission,n.sessionPermissions,n.resume,Fl(e,r.data));return i?{ok:!1,outcome:{kind:`gated`,gate:i}}:{ok:!0,input:r.data}}function wu(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 Tu(e){return e.status===401||e.status===403?{status:e.status,challenge:e.headers.get(`www-authenticate`)}:void 0}var Eu=/^[\x21\x23-\x5B\x5D-\x7E]+$/;function Du(e){let t=t=>e?.match(RegExp(`(?:^|[\\s,])${t}="([^"]*)"`,`i`))?.[1],n=(t(`scope`)??``).split(` `).filter(e=>Eu.test(e)),r=t(`error`);return r===void 0?{scopes:n}:{error:r,scopes:n}}function Ou(e){return e.status===401||Du(e.challenge).error===`insufficient_scope`}function*ku(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 wu(lu(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 wu(lu(e.name,a,t,o),!0)}let u={kind:`auth_scope_refused`,slot:a.slot,requested:l,declared:c};return yield R(i,{phase:`progress`,data:u}),Z({code:`out_of_scope`,kind:`auth`,message:V(`sign_in.out_of_scope`,{service:a.service},r.profile.labels)},!1)}async function*Au(e){let t=yield*hu(e.tool.name,e.tool.auth,e.ctx,e.base),n=wu(t);if(n)return n;let r=yield*Su({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*ju(e,t){if(Tt(e)===`blocked`){let n=rt();return t.record(n),Z(yield*Ae(e,n),!1)}return Z({code:`network_error`,kind:`network`,message:Ge(e)},!1)}var Mu=`[omitted - credential]`,Nu=2e3;async function*Pu(e,t=1/0){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 Fu(e,t){let n=Pu(e,t),r=``;for(;;){let e=await n.next();if(e.done)return e.value?r:void 0;r+=e.value}}async function*Iu(e,t,n,r){let i=Pu(e,r),a=n?n.length-1:0,o=``,s=``;for(;;){let e=await i.next();if(e.done)return e.value?(s&&(yield*t.show({kind:`draft`,text:s})),yield*t.end(),o):void 0;o+=e.value,s=n?zu(s+e.value,n):s+e.value;let r=s.length-a;r<=0||(yield*t.show({kind:`draft`,text:s.slice(0,r)}),s=s.slice(r))}}function Lu(e){return e.length>Nu?`${e.slice(0,Nu)}…`:e}function Ru(e,t){return{code:`response_too_large`,kind:`bad_response`,message:`Response from ${e} is larger than ${t} bytes`}}function zu(e,t){return e.replaceAll(t,Mu)}function Bu(e,t){return Tn(e,e=>zu(e,t))}function Vu(e,t){return{...e,message:zu(e.message,t),...e.details===void 0?{}:{details:Bu(e.details,t)}}}function Hu(e,t){if(!t)return e;if(e.kind===`ok`){let n=Bu(e.outputRaw,t);return{kind:`ok`,outputRaw:n,modelResult:xu(bu(n),e.modelResult.parts)}}return e.kind===`failed`?{...e,failure:Vu(e.failure,t)}:e}function Uu(e,t){if(e&&!Kl(e,t))return`The OAuth token for "${e}" cannot be sent to "${t.origin}${t.pathname}"`}async function*Wu(e,t,n){let r=Uu(e.audience,t);return r?Z({code:`credential_audience_mismatch`,kind:`config`,message:r},!0):Hu(yield*n(ou(t,e.query)),e.secret)}async function*Gu(e,t,n,r,i,a,o){let s=Cu(e,t,n);if(!s.ok)return s.outcome;let c=s.input,l=yield*Au({tool:e,input:c,ctx:n,base:r,stages:i});if(!(`ok`in l))return l;c=l.input;let u;try{u=_u(e.endpoint,e.method,c,e.mapping)}catch(e){return Z({code:`invalid_input`,kind:`bad_response`,message:Ge(e)},!0)}let d=yield*st(u.url,n,i?.span);return d.ok?(yield*h(e,c,n,r,a),yield*Wu(l,d.url,t=>Ju(e,t,u.body,l,n,r,i?.span,o))):Z(d.failure,!0)}function Ku(e){if(!e.ok)return!1;let t=e.headers.get(`content-type`)??``;return t===``||t.startsWith(`text/`)||/[/+]json\b/.test(t)}async function*qu(e,t,n,r){return!t||!Ku(e)?await Fu(e,r):yield*Iu(e,t,n,r)}async function*Ju(e,t,n,{authHeaders:r,secret:i},a,o,s,c){let l=Ie(s),u={Accept:`application/json`};e.method!==`GET`&&(u[`Content-Type`]=`application/json`);let d;try{let s=e.limit?await Ql(e,e.limit,a.signal):void 0;if(s&&`full`in s)return Z(ld(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 $l(s,Pe(t.href,{method:e.method,headers:u,body:n,signal:f},{policy:et(a),followRedirects:!0,...e.access===`read-only`?{fetchFn:Xa(fetch)}:{},originBoundHeaders:{...e.headers,...r},resolveHost:a.resolveHost,onCheck:l.onCheck})),m=yield*qu(p,c,i,e.maxResponseBytes);if(m===void 0)return Z(Ru(t.hostname,e.maxResponseBytes),!1);if(!p.ok)return(yield*ku(e,Tu(p),i!==void 0,a,o))||Z({code:`http_${p.status}`,kind:ud(p.status),message:`HTTP ${p.status} from ${t.hostname}: ${Lu(m)}`},!1);let h=vu(p.headers.get(`content-type`)??``,m,p.status),g=yu(e.output,h);return g.success?{kind:`ok`,modelResult:bu(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(Yu(t.hostname,e.timeoutMs),!1):yield*ju(n,l)}finally{l.record()}}function Yu(e,t){return{code:`timeout`,kind:`timeout`,message:`${e} did not answer within ${t} ms`}}var Xu=[`2026-07-28`,`2025-11-25`,`2025-06-18`,`2025-03-26`];function Zu(e){return{"io.modelcontextprotocol/protocolVersion":e,"io.modelcontextprotocol/clientCapabilities":{}}}function Qu(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 $u(e){if(!e)return!1;let t=e.message.toLowerCase();return t.includes(`unsupported protocol version`)||t.includes(`inconsistent mcp protocol version`)}function ed(e){try{let t=Qu(e);if(t.error&&$u(t.error))return t.error}catch{}if(e.toLowerCase().includes(`unsupported protocol version`))return{code:-32600,message:e}}async function td(e,t,n,r,i){let a={jsonrpc:`2.0`,id:t,method:`tools/call`,params:{name:n,arguments:r,_meta:Zu(i)}},o=await Pe(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 Fu(o,e.maxResponseBytes);if(s===void 0){let t=new URL(e.url).hostname;return{kind:`failure`,failure:Ru(t,e.maxResponseBytes)}}if(!o.ok){let t=rd 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!==Xu.at(-1))return{kind:`retry`};let n=ed(s);if(n)return{kind:`protocol_retry`,error:n};let r=Tu(o);return{kind:`failure`,...r?{refusal:r}:{},failure:{code:`mcp_http_${o.status}`,kind:ud(o.status),message:`MCP server error HTTP ${o.status}: ${Lu(s)}`}}}try{let e=Qu(s);return e.error&&$u(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: ${Lu(s)}`}}}}async function nd(e,t,n,r){let i;for(let a of Xu){let o=await td(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 rd=`Mcp-Session-Id`,id=`2025-11-25`,ad=class extends Error{failure;constructor(e){super(e.message),this.failure=e}};function od(e,t){return new ad({code:e,kind:`failed`,message:t})}async function sd(e){let t=(t,n,r={})=>Pe(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:id,capabilities:{},clientInfo:{name:`theorem`,version:`1`}}},{"Mcp-Method":`initialize`}),r=await Fu(n,e.maxResponseBytes);if(r===void 0){let t=new URL(e.url).hostname;throw new ad(Ru(t,e.maxResponseBytes))}if(!n.ok)throw od(`mcp_session_http_${n.status}`,`MCP server refused to open a session: HTTP ${n.status}: ${Lu(r)}`);let i=n.headers.get(rd);if(!sr(i))throw od(`mcp_session_invalid`,`MCP server required a session but sent no usable session ID`);let a;try{a=Qu(r).result?.protocolVersion}catch{a=void 0}if(!Xu.some(e=>e===a))throw od(`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`},{[rd]:i})).body?.cancel().catch(()=>{}),{id:i,protocolVersion:o}}async function cd(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,i.use,()=>sd(e))}catch(e){if(e instanceof ad)return{failure:e.failure};throw e}let o=await td({...e,originBoundHeaders:{...e.originBoundHeaders,[rd]: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 ld(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 ud(e){return e===401||e===402||e===403?`auth`:e===429?`rate_limit`:`failed`}function dd(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 fd(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 pd(e,t){let n=Array.isArray(t?.content)?t.content:void 0,r=n?.flatMap(e=>fd(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=md(n.error.issues)}let o=n?n.flatMap(e=>dd(e)??[]).join(`
7
- `):t;return{checked:yu(e.output,o),...i,...a?{warning:a}:{}}}function md(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 hd(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 gd(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=hd(n);if(r)return{ok:!1,failure:r};let{checked:i,parts:a,warning:o}=pd(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*_d(e,t,n,r,i,a=lr(),o){let s=Cu(e,t,n);if(!s.ok)return s.outcome;let c=yield*st(e.serverUrl,n,i?.span);if(!c.ok)return Z(c.failure,!0);let l=yield*Au({tool:e,input:s.input,ctx:n,base:r,stages:i});return`ok`in l?(yield*h(e,l.input,n,r,o),yield*Wu(l,c.url,t=>vd(e,t,l.input,l,n,r,i?.span,a))):l}async function*vd(e,t,n,{authHeaders:r,secret:i},a,o,s,c){let l=Ie(s);try{let s={url:t.href,headers:{"Content-Type":`application/json`,Accept:`application/json, text/event-stream`},originBoundHeaders:{...e.headers,...r},policy:et(a),resolveHost:a.resolveHost,signal:a.signal,onCheck:l.onCheck,...e.maxResponseBytes===void 0?{}:{maxResponseBytes:e.maxResponseBytes}},u=await dr(t.href,s.originBoundHeaders),d={tool:e.name,...e.session},f=c.get(u,d),p=f?await cd(s,o.callId,e.mcpToolName,n,{cache:c,key:u,use:d,cached:f}):await nd(s,o.callId,e.mcpToolName,n),m=p.sessionRequired?await cd(s,o.callId,e.mcpToolName,n,{cache:c,key:u,use:d}):p,h=yield*ku(e,m.refusal,i!==void 0,a,o);if(h)return h;let g=gd(e,m);return g.warning&&(yield R(o,{phase:`warning`,warning:g.warning})),g.ok?{kind:`ok`,modelResult:xu(bu(g.data),g.parts),outputRaw:g.data}:Z(g.failure,!1)}catch(e){return yield*ju(e,l)}finally{l.record()}}var yd=class extends Error{refusal;constructor(e){super(`The service refused the credential (HTTP ${e.status}).`),this.name=`CredentialRefusedError`,this.refusal=e}};function bd(e,t,n){return async(r,i={})=>{let a=new URL(r),o=Uu(e.audience,a);if(o)throw new z(`config`,o);let s=await Pe(ou(a,e.query).href,{method:i.method??`GET`,headers:i.headers,body:i.body,signal:t.signal},{policy:et(t),followRedirects:!0,originBoundHeaders:e.authHeaders,resolveHost:t.resolveHost,onCheck:n.onCheck}),c=Tu(s);if(c&&Ou(c))throw await s.body?.cancel(),new yd(c);return s}}function xd(e,t){return e.type===`agent`?Rr(t.findProfile(e.profile)):e.type===`http`?`http`:e.type===`mcp`?`mcp`:e.type===`builtin`?`builtin`:`local`}function Sd(e){return e.type===`builtin`?void 0:e.type}function Cd(e,t){let n=e.get(t),r=n?Sd(n):`function`;return r&&At(`tool_arguments`,r)}function wd(e,t){let n=xd(e,t);return{origin:n,tool:e.name,depth:n===`delegated`?2:1}}function Td(e){return typeof e==`function`&&Object.prototype.toString.call(e)===`[object AsyncGeneratorFunction]`}var Ed=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}):Ed.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 Od(e){if(!G(e))return e;let{parts:t,...n}=e;return n}async function*kd(e,t,n,r){if(Td(e)){let i,a=e(t,n);for await(let e of a)B(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 Rn?i.value:i}function Ad(e,t,n){if(e.exposeToModel===!1)return{finding:V(`tool.completed_hidden`,{},n)};if(le(t))return{finding:V(`tool.awaiting_user`,{kind:t.kind,prompt:t.prompt},n),data:Od(t)};let r=G(t)&&`parts`in t?Dd(t.parts):void 0,i=Od(t),a=G(i)&&`finding`in i,{finding:o,...s}=a?i:{};return{...a?{finding:String(o),...Object.keys(s).length>0?{data:s}:{}}:bu(i),...r?{parts:r}:{}}}function jd(e,t){return Vr(t.profile)?.t2Loader===e.name}function Md(e,t,n,r,i){if(!jd(t,r))return{ok:!0,output:n};if(!i)return{ok:!1,failure:{code:`invalid_output`,kind:`bad_response`,message:V(`tool.t2_loader_needs_snapshot`,{tool:t.name},r.profile.labels)}};let a=hr(n);if(!a)return{ok:!1,failure:{code:`invalid_output`,kind:`bad_response`,message:V(`tool.t2_loader_shape`,{tool:t.name},r.profile.labels)}};let{promoted:o,failure:s}=nr(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:V(`tool.t2_loader_output_invalid`,{},r.profile.labels),details:l.error.flatten()}}}function*Nd(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(Hn(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:le(r.outputRaw)}}function Pd(e,t,n){return yt(e?.activityPast,{input:t,output:n})}function Fd(e,t){let{input:n,outputRaw:r,modelResult:i}=t,a=t.labelFailed?ut(e):Pd(t.labels,n,r);return R(e,{phase:`complete`,output:r,readBack:He(i),...i.parts?.length?{parts:i.parts}:{},...a?{activityPast:a}:{}})}async function*Id(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&&le(p),_;if(a){let o=f?void 0:Pd(e.labels,i,p);_=yield*iu({stages:a,toolName:n,callId:r,input:i,callNotStarted:m,outputRaw:p,outputModel:d,...o?{activityPast:o}:{},activityFailed:ut(t),failure:f,awaiting:g||void 0,mutable:!f&&c!==void 0});let l=yield*Nd(_,s,c);l&&({failure:f,outputRaw:p,modelResult:d,awaiting:g}=l,_.deny&&(h=!0))}return f||(d=yield*Ld({base:t,sources:l,images:e.images,outputRaw:p,modelResult:d})),yield f?L(t,{...f,message:String(yield*s.shown(f.message))},He(d)):Fd(t,{input:i,outputRaw:yield*s.shown(p),modelResult:d,labels:e.labels,..._?.labelFailed?{labelFailed:!0}:{}}),{modelResult:d,...f?{failure:f}:{outputRaw:p},...h?{denied:h}:{},...m?{callNotStarted:!0}:{},...g?{awaiting:!0}:{},...zd(_)}}async function*Ld(e){let{base:t,sources:n,images:r,outputRaw:i,modelResult:a}=e;return n&&(yield*Qe(t,n,i)),!r||i===void 0?a:yield*Rd(t,a,r,i)}async function*Rd(e,t,n,r){let i=await n(r);if(i.warning&&(yield R(e,{phase:`warning`,warning:i.warning})),i.parts.length===0)return t;let a=`\n[Pictures shown with this result: ${i.urls.join(` `)}]`;return{...t,parts:[...t.parts??[],...i.parts],...t.modelText===void 0?{finding:t.finding+a}:{modelText:t.modelText+a}}}function zd(e){return{...e?.abort===void 0?{}:{aborted:e.abort},...e?.inject.length?{pendingInject:e.inject}:{}}}function Bd(e,t,n,r,i){return Id({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 Vd(e,t,n,r,i){let a=wd(t,e),o=I(n.profile.guardrails),s=r?.executable??[],c={provenance:a,policy:o,kind:Sd(t),callableTools:s,labels:n.profile.labels,span:i},{kind:l}=c,u=e=>l&&{profileId:n.profile.id,provenance:a,policy:o,boundary:At(`tool_output`,l),shown:At(`tool_shown`,l),callableTools:s,drafts:e},d=e=>bf(e,c),f=Ml(n.resume)?rf(t,n.resume):void 0;if(!f)return{result:e=>yf(e,c),failure:e=>_f(e,c),handlerEvents:u,shown:d};let p=V(`sign_in.done`,{service:f},n.profile.labels);return{result:e=>Hd(p,yf(e,c)),failure:e=>Hd(p,_f(e,c)),handlerEvents:u,shown:d}}function*Hd(e,t){let n=yield*t,r=`${e}\n\n${He(n.modelResult)}`;return{...n,modelResult:{...n.modelResult,modelText:r}}}async function*Ud(e){let{tool:t,base:n,stages:r,guard:i}=e,a=yield*tu(e);return a.ok?a:a.kind===`aborted`?{aborted:a.aborted,callNotStarted:!0}:a.kind===`gated`?{gated:a.gate,callNotStarted:!0}:yield*Bd(i,n,a.failure,r,{toolName:t.name,callId:n.callId,input:e.input,callNotStarted:!0,...a.denied?{denied:!0}:{}})}function Wd(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:V(`tool.output_invalid_after_mutate`,{},n),details:i.error.flatten()}}}}async function*Gd(e,t,n){if(!e.auth)return{};let r=yield*hu(e.name,e.auth,t,n),i=wu(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 Kd(e){return{code:`handler_error`,kind:e instanceof z?e.kind:`failed`,message:Ge(e)}}function qd(e,t){return e.answeredBy===`page`&&t.page===void 0&&!t.pageExecution}async function*Jd(e,t,n,r){let i=t.pageExecution;if(e.answeredBy!==`page`||!i)return t;if(!n?.invocation)throw X();let a=F.parse(gl(n.invocation.preparedInput)),o=await i.dispatch(n,t.signal);if(B(t.signal),!o.grantId)throw X();return yield R(r,{phase:`dispatch`,grantId:o.grantId,arguments:a}),t={...t,page:await o.result},B(t.signal),t}async function*Yd(e,t,n,r,i,a,o,s,c){let l=Vd(e,s??t,r,a,o?.span),u=i.callId,d=dt(t,n,r);if(!d.ok)return yield*Bd(l,i,d.failure,o,{toolName:t.name,callId:u,callNotStarted:!0});let f=d.data,p=Il(t.name,t.permission,r.sessionPermissions,r.resume,Fl(t,f));if(p)return yield*au({base:i,gate:p,callId:u,toolName:t.name,labels:r.profile.labels}),{gated:p,callNotStarted:!0};B(r.signal);let m=e=>tf({outcome:e,ctx:r,tool:t,base:i,callId:u,safeInput:f,stages:o,guard:l,labels:r.profile.labels}),g=yield*Gd(t,r,i);if(g.outcome)return yield*m(g.outcome);let _=yield*Ud({tool:t,input:f,ctx:r,base:i,stages:o,guard:l});if(!(`ok`in _))return _;if(f=_.input,qd(t,r)){let e={kind:`page`,tool:t.name,...Fl(t,f)};return yield*au({base:i,gate:e,callId:u,toolName:t.name,labels:r.profile.labels}),{gated:e,callNotStarted:!0}}B(r.signal);let v=yield*h(t,f,r,i,c);r=yield*Jd(t,r,v,i);let{secret:y}=g,b=e=>Bd(l,i,y?Vu(e,y):e,o,{toolName:t.name,callId:u,input:f}),x=Ie(o?.span),S=g.prepared?{...r,signedInFetch:bd(g.prepared,r,x)}:r,C;try{let e=new Sl(i,l.handlerEvents(o?.drafts===!0));C=yield*kd(t.handler,f,S,e),x.record()}catch(e){if(s){if(e instanceof $n)return yield*b(e.failure);throw e}if(g.prepared&&e instanceof yd){x.record();let n=yield*ku(t,e.refusal,g.secret!==void 0,r,i);if(n)return yield*m(n)}if(g.prepared&&Tt(e)===`blocked`){let t=rt();return x.record(t),yield*b(yield*Ae(e,t))}return yield*b(Kd(e))}if(y&&(C=Bu(C,y)),C===void 0)return yield*b({code:`invalid_output`,kind:`bad_response`,message:V(`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:V(`tool.output_invalid`,{},r.profile.labels),details:w.error.flatten()});let T=Md(e,t,w.data,r,a);if(!T.ok)return yield*b(T.failure);let E=jd(t,r);return yield*Id({base:i,toolName:t.name,callId:u,input:f,stages:o,guard:l,provisional:{outputRaw:T.output,modelResult:Ad(t,T.output,r.profile.labels)},sources:t.sources,labels:t.labels,...E?{}:{reproject:Wd(e=>t.output.safeParse(e),e=>Ad(t,e,r.profile.labels),r.profile.labels)}})}function Xd(e,t){let n=Vr(t)?.t2Loader;return e.loadTier===`T2`&&n?V(`tool.not_loaded_t2`,{tool:e.name,loader:n},t.labels):V(`tool.not_visible`,{tool:e.name},t.labels)}function Q(e){return{failure:e,callNotStarted:!0,modelResult:Ue(e)}}async function*Zd(e,t,n,r){if(yield R(n,{phase:`running`}),B(t.signal),!r.builtins.includes(e.name)){let r={code:`not_loaded`,kind:`request`,message:V(`tool.builtin_not_enabled`,{tool:e.name},t.profile.labels)};return yield L(n,r),Q(r)}let i={code:`provider_native`,kind:`request`,message:V(`tool.provider_native`,{tool:e.name},t.profile.labels)};return yield L(n,i),Q(i)}function Qd(e){let{tool:t,profile:n,name:r,resume:i,snapshot:a}=e;if(!tr(n).includes(r))return{code:`not_allowed`,kind:`blocked`,message:V(`tool.not_allowed`,{tool:r,profile:n.id},n.labels)};if(!a)return;let o=jl(i);if(!o&&!a.gated.includes(r))return{code:`not_gated`,kind:`request`,message:V(`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:Xd(t,n)}}function $d(e){let t=e.tools.get(e.name);if(!t||t.type===`builtin`)throw new z(`blocked`,V(`error.blocked`));let n=Qd({...e,tool:t});if(n)throw new z(n.kind,n.message);e.outcome&&ef(e,t,e.outcome)}function ef(e,t,n){let r=()=>new z(`blocked`,V(`detect.output_blocked`,{},e.profile.labels)),i=n.replay.modelResult;if(t.type===`function`&&t.exposeToModel===!1&&i?.finding!==V(`tool.completed_hidden`,{},e.profile.labels))throw r();let a=je(n.event.tool.readBack??``,{event:n.event,output:n.replay.outputRaw},wd(t,e.tools),I(e.profile.guardrails),t.type===`builtin`?void 0:At(`tool_output`,t.type),e.snapshot?.executable??[],e.profile.labels);if(a.event?.action===`block`||a.event?.action===`redact`)throw r()}async function*tf(e){let{outcome:t,tool:n,base:r,callId:i,safeInput:a,stages:o,guard:s,labels:c,ctx:l}=e,u=n.name;if(t.kind===`gated`){if(t.gate.kind===`confirmation`)return{gated:t.gate,callNotStarted:!0};let e=yield*au({base:r,gate:t.gate,callId:i,toolName:u,labels:c});return{gated:t.gate,callNotStarted:!0,...e?{gateReadBack:e}:{}}}return t.kind===`aborted`?{aborted:t.aborted,callNotStarted:!0}:t.kind===`failed`?yield*Bd(s,r,t.failure,o,{toolName:u,callId:i,input:a,callNotStarted:t.callNotStarted,...t.denied?{denied:!0}:{}}):yield*Id({base:r,toolName:u,callId:i,input:a,stages:o,guard:s,provisional:{outputRaw:t.outputRaw,modelResult:t.modelResult},sources:n.sources,...n.type!==`function`&&n.images?{images:e=>kl(n.images,e,l,n.imageLimits)}:{},labels:n.labels,reproject:Wd(e=>yu(n.output,e),e=>xu(bu(e),t.modelResult.parts),c)})}function nf({modelResult:e}){return e?{text:He(e),parts:e.parts}:void 0}function rf(e,t){if(t?.signIn&&e.type!==`builtin`&&e.type!==`agent`)return e.auth?.service}function af(e,t,n){return t?{code:`expired`,kind:`cancelled`,message:V(`sign_in.expired`,{service:t},n)}:{code:`cancelled`,kind:`cancelled`,message:V(`session.abandon_gated`,{tool:e},n)}}function of(e,t,n){let r=rf(e,t),i=t?.cause??`declined`;return i===`declined`?{code:`denied`,kind:`declined`,message:r?V(`sign_in.declined`,{service:r},n):V(`session.tool_denied`,{tool:e.name},n)}:af(e.name,i===`expired`?r:void 0,n)}function sf(e){if(Ml(e))return!0;if(Nl(e))return!1}function cf(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 lf(e){let t=e.tools.get(e.name),n=I(e.profile.guardrails),{args:r}=gt(Hn(e.input),t?wd(t,e.tools):{origin:`local`,tool:e.name,depth:1},n,Cd(e.tools,e.name),Dt(n,e.scope??{}));return typeof r==`object`&&r&&!Array.isArray(r)?r:{}}async function*uf(e){return e={...e,ctx:{...e.ctx,operationId:e.ctx.operationId??crypto.randomUUID()}},yield*bl(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=>df({...e,beginBody:async n=>{let r=await t?.(n)??await e.beginBody?.(n);return e.onDispatch?.(),r}}),t=>$d({outcome:t,tools:e.tools,profile:e.profile,name:e.name,resume:e.ctx.resume,snapshot:e.snapshot}))}async function*df(e){let t=e.tools.get(e.name);if(!e.openSpan)return yield*ff(e,t);let n=_t(e.openSpan,{name:e.name,callId:e.callId,call:{arguments:Re(Hn(e.input))},origin:t?xd(t,e.tools):void 0,permission:t&&`permission`in t?t.permission:void 0,approved:sf(e.ctx.resume),step:e.ctx.turn?.step}),r=ff({...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(cf(t.value,e.readBack??nf)),t.value;n.observe(t.value),yield t.value}}catch(e){throw n.end(W(e)?{outcome:`cancelled`}:{outcome:`error`,thrown:e}),e}finally{n.span.ended||(n.end({outcome:`cancelled`}),await r.return({}))}}async function*ff(e,t){let{profile:n,name:r,input:i,callId:a,ctx:o,snapshot:s,stages:c}=e,l=Hn(i),u=o.operationId??crypto.randomUUID(),d={name:r,callId:a,operationId:u,activityFailed:Be(r,n.labels,t?.labels,l)};if(!t){let e={code:`unknown_tool`,kind:`request`,message:V(`tool.not_registered`,{tool:r},n.labels)};return yield L(d,e),Q(e)}if(t.type===`builtin`){if(!s){let e={code:`provider_native`,kind:`request`,message:V(`tool.builtin_needs_snapshot`,{tool:r},n.labels)};return yield L(d,e),Q(e)}return yield*Zd(t,{...o,callId:a,profile:n,operationId:u},d,s)}let f=Qd({tool:t,profile:n,name:r,resume:o.resume,snapshot:s,visible:o.turn?.visible});if(f)return yield L(d,f),Q(f);if(Nl(o.resume))return yield*Bd(Vd(e.tools,t,{...o,callId:a,profile:n,operationId:u},s,c?.span),d,of(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=I(n.guardrails),h=wd(t,e.tools),g=performance.now(),_=Sd(t),v=gt(l,h,m,_&&At(`tool_arguments`,_),Dt(m,e.scope??{}));if(Ne(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:V(`detect.call_blocked`,{},n.labels)};return yield L(d,e),{...Q(e),denied:!0}}let y=performance.now(),b=De(o.turn?.taint,t.access,m,n.labels),x=mt(b,h);if(Ne(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 L(d,e),{...Q(e),denied:!0}}return(yield*pf({tool:t,input:v.args,ctx:p,base:d,provenance:h,policy:m,span:c?.span}))||(yield*gf(e.tools,t,v.args,p,d,s,c,e.agents,e.beginBody))}async function*pf(e){let{tool:t,input:n,ctx:r,base:i}=e,{labels:a}=r.profile,o=performance.now(),{verdict:s,confirm:c}=Bi(r.turn?.destinations,n,e.policy,a),l=mt(s,e.provenance);if(Ne(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 L(i,e),{...Q(e),denied:!0}}if(!c||Ml(r.resume))return void 0;let u={kind:`confirmation`,tool:t.name,summary:c,...Fl(t,n)};return yield*au({base:i,gate:u,callId:r.callId,toolName:t.name,labels:a}),{gated:u,callNotStarted:!0}}async function*mf(e){let{tool:t,ctx:n,base:r,agents:i}=e;if(!i){let e={code:`unknown_tool`,kind:`unsupported`,message:V(`tool.unsupported_type`,{tool:t.name},n.profile.labels)};return yield L(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 $n(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=Yd(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 hf(e.value,r.callId,a)}}function hf(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*gf(e,t,n,r,i,a,o,s,c){let{name:l}=t;if(t.type===`function`)return yield*Yd(e,t,n,r,i,a,o,void 0,c);if(t.type===`agent`)return yield*mf({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:V(`tool.unsupported_type`,{tool:l},r.profile.labels)});let u=Vd(e,t,r,a,o?.span);return yield*tf({outcome:t.type===`http`?yield*Gu(t,n,r,i,o,c,new Sl(i,u.handlerEvents(o?.drafts===!0))):yield*_d(t,n,r,i,o,e.mcpSessions,c),ctx:r,tool:t,base:i,callId:i.callId,safeInput:n,stages:o,guard:u,labels:r.profile.labels})}function*_f(e,t){let n=performance.now(),r=vt(e.message,t.provenance,t.policy,t.kind&&At(`tool_failure`,t.kind));Ne(t.span,`tool_failure`,performance.now()-n,r.event),r.event&&(yield{type:`guardrail`,guardrail:r.event});let i=r.text??V(`detect.output_blocked`,{},t.labels);return{modelResult:yield*vf({...e,message:i},t)}}function*vf(e,t){let n=Oe(e);return(yield*xf(n,t,void 0))??n}function*yf(e,t){let n=yield*xf(e,t,t.kind&&At(`tool_output`,t.kind));if(n)return{modelResult:n};let r={code:`output_blocked`,kind:`blocked`,message:V(`detect.output_blocked`,{},t.labels)};return{modelResult:yield*vf(r,t),withheld:r}}function*bf(e,t){let n=t.kind&&At(`tool_shown`,t.kind),r=pt(e,t.provenance,t.policy,n);return r.event&&(yield{type:`guardrail`,guardrail:r.event}),`value`in r?r.value:V(`detect.shown_blocked`,{},t.labels)}function*xf(e,t,n){let{provenance:r,span:i}=t,a=performance.now(),o=je(e.finding,e.data,r,t.policy,n,t.callableTools,t.labels);if(Ne(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 Sf(){let e=()=>void 0;return{promise:new Promise(t=>{e=t}),resolve:e}}function Cf(e,t,n){let r=new Set,i=new Map(e.map(e=>[e,Sf()])),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)),B(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=Sf();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*wf(e,t,n){try{return await e.start(t),yield*n()}finally{e.settle(t)}}async function*Tf(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 Ef(e,t){return e.type===`thought`&&Ec(t)?.streaming?.streamThoughts===!1}function*Df(e){e.some(e=>e.rule===En.providerToolLeak)?yield*Of(e):yield*kf(`reply`,{action:`block`,hits:e});let t=$t(e);yield H(new z(`safety`,t)),yield{type:`done`,stop:{kind:`filtered`,native:t===Ft.canary?`canary`:t===Ft.promptEcho?`prompt_echo`:`provider_tool_leak`}}}function*Of(e){let t=cr(`output_delta`,`untrusted`,e,`block`);t&&(yield t)}function*kf(e,t){let n=t&&Lt(e,t,void 0,Af[e]);n&&(yield K(n))}var Af={reply:`output_delta`};function*jf({text:e,hits:t,found:n},r){yield*kf(`thought`,n);let i=cr(`thought`,`untrusted`,t,`redact`);i&&(yield i),e&&(yield{...r,text:e})}function*Mf(e,t){e&&(yield*jf(e.flush(),{type:`thought`,text:``}),t&&(t.thoughtCarry=e.carryOut()))}function Nf(e){return e.type===`text`||e.type===`media`}function Pf(e,t){return!t.structured||Fn(t)||e.type!==`text`?e:t.stream===!1?void 0:{type:`structured_draft`,text:e.text}}var Ff=class{drafts;generation;constructor(e){let t=I(e.profile.guardrails),n=Rf(e,t);this.drafts=new Bn(()=>ir(t,n,`reply_structured`)),this.generation=e.generation}async*show(e){let t=Pf(e,this.generation);t?.type===`structured_draft`?yield*this.draft(t.text):t&&(yield t)}async*draft(e){if(this.generation.stream===!1)return;let t=await this.drafts.read(e);t&&(yield{type:`structured_draft`,text:t})}*end(){let e=this.drafts.end();e&&(yield{type:`structured_draft`,text:e})}};function If(e){return e.type===`structured`||e.type===`tool`}var Lf=class{policy;context;tools;answerTool;drafts=new Map;constructor(e,t,n,r){this.policy=e,this.context=t,this.tools=n,this.answerTool=r}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=this.answerTool&&e.name===`final_answer`?void 0:Cd(this.tools,e.name),n=t?await ir(this.policy,this.context,t):null,r={name:e.name,gate:n};return this.drafts.set(e.callId,r),r}};function Rf(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}:{},...qt(t.detect,{canary:a,canaryGiven:i,privateSystem:r}),givenUrls:e.givenUrls,...e.ownTools?{ownTools:e.ownTools}:{}}}async function*zf(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=I(t.guardrails),l=Rf(e,c),{canaryCarry:u,thoughtCarry:d}=o??{},f=await or(c,l,`reply`,u),p=await ra(c,l,d),m=new Lf(c,l,e.tools,e.answerTool===!0),h=null,g=!1;function _(e){let t=e.filter(Qt);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*Of(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&&Lt(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*kf(`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*jf(p.push(e.text),e),!0)}function*E(){w&&(w=!1,yield*Mf(p,o))}B(a);let D=!1;for await(let e of r.complete({...n,signal:a,tapUpstream:i.tap})){if(i.observe(e),B(a),e.type===`response`)continue;if(e.type===`reasoning`){yield e;continue}if(yield*T(e))continue;if(Ot(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=If(e)?void 0:await s(`stream_canary`,()=>Pt(e,l,c.detect,`reply`));if(t?.stop){yield*Df(t.hits);return}t&&(yield*kf(`reply`,{action:`flag`,hits:t.hits})),y()&&Nf(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 Bf(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 Vf(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 Hf(e,t){return{tokens:e.tokens+t.tokens,unknownMedia:e.unknownMedia+t.unknownMedia}}function Uf(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 Wf(e,t){let n=await oc(),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 Uf(e.output,t))r.tokens+=n.text(i);return r}async function Gf(e){let t=await oc(),{conversation:n}=e;if(`previous`in n){let e=await Gf(n.previous),r=await Wf(n.previous,!1),i=t.messages(n.continuation);return Hf(Hf(e,r),i)}let r=Hf(t.messages(n.history),t.parts(n.input));return e.held?Hf(e.held,r):r}async function Kf(e){return Hf(await Gf(e),await Wf(e,!1))}async function qf(e,t){let n=await oc(),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 Gf(e);return{tokens:n.text(e.system)+i+a+o.tokens,unknownMedia:o.unknownMedia}}async function Jf(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 qf(e,t):void 0,a=r.includes(`output`)?await Wf(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 Yf(e,t){return t>0&&e>=t}function Xf(e,t,n){let r={...e,history:cl(t)};return n?{...r,builtins:[],tools:{...e.tools,wire:[]}}:r}function Zf(e,t,n){return e.type===`text`&&e.turnBehaviour?.atStepLimit===`answer`&&Yf(n,t.maxSteps??0)}function Qf(e,t){if(t.phase===void 0)return e.push({name:t.name,callId:t.callId,arguments:t.arguments}),!0;let n=M(e,e=>e.callId===t.callId);return t.phase!==`error`||!n?!1:(n.failure=t.failure,!0)}function $f(e,t,n,r,i){let a=Bf(t.text,{history:cl(n),input:e.input});n.lastCall=a;let o=Xf(e,n,r),s=Zn(dl(n.tools,o,t.text),e,i);return bn(n.givenUrls,s),Ri(n.destinations,s,n.givenUrls.own),e.canary&&!n.canaryGiven&&(n.canaryGiven=Wt(s,e.canary,n.canaryScanned)),n.trace.calls+=1,{usage:a,genForStep:o,request:s,call:y((e,t)=>n.trace.root.child(e,t),{req:s,usage:a,binding:n.trace.binding,transport:o.transport,step:n.stepCount,attempt:n.trace.attempt})}}function ep(e,t){let n=re(e);return n?.autoContinue!==void 0&&Te(t,n)}var tp=new Set([`text`,`media`,`structured`,`citation`]);function np(e,t,n){return e.type===`error`?(t.failures.push(e),!0):e.type===`tool`?Qf(t.calls,e.tool):(e.type===`guardrail`&&n.guardrail(e.guardrail),e.type===`structured`&&(t.latestStructured=e.structured),e.type===`text`&&(t.text+=e.text),tp.has(e.type)&&(t.replied=!0),!1)}async function*rp(e,t,n){if(!Fn(n.generation))return;let r=t.calls.find(e=>e.name===`final_answer`&&!e.failure);if(t.calls=r?[]:t.calls.filter(e=>e.name!==In),!r)return;t.stop?.kind===`tool`&&(t.stop={kind:`completed`},n.state.lastStop=t.stop);let i={type:`structured`,structured:r.arguments};np(i,t,n.call)||sp(i,n.control,n.state,n.buffer)&&(yield*e.show(i))}async function*ip(e,t,n,r){r.holdVisible||(e.name===`final_answer`&&Fn(n)?yield*t.draft(e.text):yield e)}var ap=`
9
-
10
- `;function op(e,t,n,r){if(t.text)return e;let i=n.replyText,a=r.structured===null||Fn(r),o=i&&a&&!/\s$/.test(i)&&!/^\s/.test(e.text);return t.replyAt=i.length+(o?2:0),o?{...e,text:`${ap}${e.text}`}:e}function sp(e,t,n,r){if(al(e,n),t.withholdVisible&&Nf(e))return n.withheldVisible=!0,!1;e.type===`text`&&(n.released+=e.text,n.replyText+=e.text);let i=e.type===`thought`||!r.holdVisible&&Nf(e);return!r.holdLate||i}var cp=new Set([`busy`,`unavailable`,`bad_response`,`network`,`timeout`,`rate_limit`]);function lp(e,t,n){let{stop:r}=n;if(!e||n.replied||n.calls.length>0||!r||!Ce(r.kind)||!ep(t,r))return;let i=n.failures[0];if(!i?.errorKind||cp.has(i.errorKind))return{stop:r,failure:i}}function up(e,t){e.canaryCarry=t.canaryCarry,e.thoughtCarry=t.thoughtCarry,t.promptLeaks&&(e.promptLeaks=[...e.promptLeaks??[],...t.promptLeaks])}async function*dp(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}=$f(i,a,t,Zf(r,i,t.stepCount),r.labels),f={calls:[],reasoning:[],text:``,failures:[],replied:!1},p={withholdVisible:!1,...t.canaryCarry?{canaryCarry:t.canaryCarry}:{},...t.thoughtCarry?{thoughtCarry:t.thoughtCarry}:{}},m={profile:e.profile,generation:l,privateSystem:a.private,givenUrls:t.givenUrls,canaryGiven:t.canaryGiven,...t.ownTools?{ownTools:t.ownTools}:{}},h=new Ff({...m,generation:i});try{for await(let e of zf({...m,request:u,provider:o,call:d,signal:s,control:p,tools:t.tools,answerTool:Fn(i)})){if(Vf(c,e))continue;if(e.type===`reasoning`){let{type:t,...n}=e;f.reasoning.push(n);continue}if(e.type===`done`){t.providerState=e.providerState,f.stop=e.stop,t.lastStop=e.stop;continue}if(e.type===`tool_draft`){yield*ip(e,h,i,n);continue}let r=e.type===`text`?op(e,f,t,i):e;np(e,f,d)||sp(r,p,t,n)&&(yield*h.show(r))}}catch(e){throw d.end(W(e)?{stop:{kind:`cancelled`}}:{stop:f.stop,thrown:e}),e}yield*h.end(),yield*rp(h,f,{generation:i,state:t,control:p,buffer:n,call:d}),up(t,p);let g=lp(e.mayResume,r,f);if(!g)for(let e of f.failures)al(e,t),n.holdLate||(yield e);let _=await Jf(c,i);return d.end({tokens:_?.tokens,stop:f.stop}),_&&(al(_,t),yield _),{calls:f.calls,reasoning:f.reasoning,text:f.text,latestStructured:f.latestStructured,...f.replyAt===void 0?{}:{replyAt:f.replyAt},...g?{resume:g}:{}}}async function*fp(e,t,n){let r=re(e.profile)?.maxContinues??1;for(;;){let i=e.profile.type===`text`&&t.resumes<r,a=yield*dp({...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 Wa(xt,e.signal)}}function pp(e,t){return{role:`tool`,tool_call_id:e.callId,name:e.name,content:He(t),...t.parts&&t.parts.length>0?{parts:t.parts}:{}}}function mp(e,t,n){e.currentHistory.push(pp(t,n))}async function*hp(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 gp(e){return(t,n)=>e.trace.root.child(t,{attributes:n})}function _p(e,t,n){let r=L(t,n);e.allEmittedEvents.push(r);let i=Ue(n);return _t(gp(e),{name:t.name,callId:t.callId,call:t,step:e.stepCount}).end({outcome:`error`,result:{text:He(i)},failure:n}),mp(e,t,i),r}function*vp(e,t,n){return e.aborted?(t.lastStop=we(e.aborted),`stop_cancelled`):e.gated?`gated`:(e.modelResult?.provenance&&(t.taint=S(t.taint,e.modelResult.provenance,e.modelResult.suspicious),zi(t.destinations,e.modelResult,e.modelResult.provenance)),e.modelResult&&(!e.failure&&`outputRaw`in e&&t.toolResults.push({tool:n.name,output:e.outputRaw}),mp(t,n,e.modelResult),e.pendingInject&&(yield*rl(t,`post_tool`,e.pendingInject,{callId:n.callId,toolName:n.name}))),`continue`)}function yp(e){return ct({text:e.text,structured:e.latestStructured,calls:e.calls.map((t,n)=>n===0?{...t,reasoning:e.reasoning}:t)})}async function*bp(e,t,n,r,i,{onStage:a,signal:o,credentials:s,resolveHost:c}={}){let{calls:l,reasoning:u}=e;l.length>0&&$c(r,yp(e),e.replyAt);let d=crypto.randomUUID(),f={canary:t.canary,canaryGiven:r.canaryGiven,privateSystem:i.private},p=l.map(e=>({...e,operationId:crypto.randomUUID(),shown:e.failure?e.arguments:lf({tools:r.tools,profile:n,name:e.name,input:e.arguments,scope:f})}));for(let[e,t]of p.entries()){let n=Ve(t,t.shown,{...e===0&&u.length?{reasoning:u}:{},stepId:d,stepCallCount:p.length});r.allEmittedEvents.push(n),yield n}let m=Cf(p.map(e=>e.callId),Pn(n)===!0,o),h={handlers:a?[a]:[],profile:n,step:r.stepCount,history:()=>r.currentHistory,injectAllowed:ae(n),injectWouldExceedMaxSteps:Jc(r.stepCount,t.maxSteps),host:t.host,signal:o,stepCalls:p.map(e=>({callId:e.callId,tool:e.name,input:e.shown})),wait:m.wait,drafts:t.stream!==!1},g={step:r.stepCount,taint:r.taint,destinations:r.destinations,visible:[...t.tools.visible]},_=e=>hp(uf({tools:r.tools,execution:t.execution,invocation:{model:t.model,input:t.input,history:t.history},...r.agents?{agents:r.agents}:{},profile:n,name:e.name,input:e.arguments,callId:e.callId,ctx:{operationId:e.operationId,pageExecution:t.pageExecution,sessionPermissions:t.sessionPermissions,path:t.tools.path,turn:g,credentials:s,resolveHost:c,host:t.host,resume:void 0,signal:o},snapshot:t.tools,stages:h,scope:f,openSpan:gp(r)}),r);for(let e of p)e.failure&&m.settle(e.callId);let v=yield*Tf(p.map(e=>e.failure?void 0:wf(m,e.callId,()=>_(e)))),y=!1,b=!1;for(let[e,t]of p.entries()){if(t.failure){yield _p(r,{...t,activityFailed:Be(t.name,n.labels)},t.failure);continue}let i=v[e];if(!i)continue;let a=yield*vp(i,r,t);a===`stop_cancelled`&&(b=!0),a===`gated`&&(y=!0)}return b?!1:y?(r.lastStop={kind:`gate`},!1):p.length>0}async function*xp(e){let{profile:t,generation:n,system:r,provider:i,state:a}=e,o,s=[],c,l=Ec(t)?.validation,u=l!==void 0||Gn(I(t.guardrails),P),d=l!==void 0&&n.stream===!1;for(;!Yf(a.stepCount,n.maxSteps??0);){B(e.safe.signal),a.stepCount++;let l=yield*fp({profile:t,generation:n,system:r,provider:i,signal:e.safe.signal},a,{holdLate:u,holdVisible:d});if(l.latestStructured!==void 0&&(o=l.latestStructured),s=l.calls.length>0?[]:yp(l),c=l.replyAt,!(yield*bp(l,n,t,a,r,e.safe)))break;Yf(a.stepCount,n.maxSteps??0)&&(a.lastStop={kind:`step_limit`})}return{latestStructured:o,reply:s,...c===void 0?{}:{replyAt:c}}}var Sp={kind:`filtered`,native:`egress`};function Cp(e){let t=[];for(let n of e)n.type===`text`&&n.text&&t.push(n.text);return t.join(``)}function wp(e){let t=M(e,e=>e.type===`structured`)?.structured;return{text:Cp(e),...t===void 0?{}:{structured:t}}}function Tp(e,t,n,r){return{...e,input:{...e.input,repair:{previousOutput:typeof t==`string`?t:JSON.stringify(t),rejection:n,guidance:r}}}}function Ep(e){let{attemptEvents:t,request:n,profile:r,canRetry:i,promptLeaks:a}=e,{detect:o,blockedReply:s}=e.policy,c=wp(t),l=Dt(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=D(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=Je(u,a),m=p&&p!==u.blocked?cr(`output_final`,`untrusted`,p,`block`):void 0,h=[...u.events.map(K),...m?[m]:[]];return p?s.onBlock===`refuse`?{outcome:f(T(e.shown,r.labels)),guardrails:h}:i?{outcome:{action:`retry`,nextRequest:Tp(n,d.text,Tc(p,o,r.labels),V(`egress.default_repair_guidance`,{},r.labels))},guardrails:h}:{outcome:{action:`withhold`,event:H(new z(`safety`,Ft.egress))},guardrails:h}:u.rewritten?{outcome:f(fe(e.shown,d.text)),guardrails:h}:{outcome:{action:`pass`},guardrails:h,...d.structured===c.structured?{}:{structured:d.structured}}}async function Dp(e){let{validation:t,generation:n,latestStructured:r,request:i,canRetry:a}=e;if(r===void 0)return{action:`pass`};let o=n.structured;if(!o)throw new z(`config`,`outputs.validation requires outputs.structured with a JSON Schema`);let s=await Mr(o.jsonSchema,r,t.fields,i.input?.slots);return s.length===0?{action:`pass`}:a?{action:`retry`,nextRequest:Tp(i,r,Lr(s))}:{action:`pass`,failed:s}}function*Op(e,t,n){for(let r of e){if(r.type===`tokens`||r.type===`thought`||t&&Nf(r))continue;let e=Pf(r,{...n,stream:!1});e&&(yield e)}}function kp(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=Ln(r,n);if(n.type===`text`){t.turnOnly=!0;let e=t.currentHistory.length;ol(t,yr(n,{...a,input:{repair:a.input?.repair}}));for(let n of t.currentHistory.slice(e))Ap(t,n)}else{let r=yr(n,a);Ap(t,r),e.currentGen={...e.currentGen,input:r}}let o={type:`attempt`,attempt:e.currentAttempt,reason:i};return t.allEmittedEvents.push(o),o}function Ap(e,t){e.canaryScanned.add(t),e.givenUrls.own.add(t)}function jp(e,t){return Ec(e)?.validation!==void 0&&t.stream===!1}async function*Mp(e,t,n,r,i){let a=t.currentAttempt<e.blockedReply.maxRetries,o=performance.now(),{outcome:s,guardrails:c,structured:l}=await Ep({policy:e,attemptEvents:n.attemptEvents,withheld:n.withheldVisible===!0,released:n.released,shown:jp(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`,me(`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=M(n.attemptEvents,e=>e.type===`structured`);e&&(n.attemptEvents[n.attemptEvents.indexOf(e)]={...e,structured:l})}return s.action===`refusal`?(n.lastStop=Sp,n.allEmittedEvents.push(s.event),yield s.event,`terminal`):s.action===`withhold`?(n.lastStop=Sp,yield s.event,`terminal`):s.action===`retry`?(yield kp(t,n,r,s.nextRequest,`egress`),`continue`):`pass`}function Np(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=zr(t,n,r)}return t}function Pp(e,t){let n={type:`object`,properties:{},required:[]};e.$defs!==void 0&&(n.$defs=e.$defs);for(let r of t){let t=gr(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=Dr(n,r),a=Dr(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=zr(n,r,o)}return n}function Ip(e,t){let n=e;for(let e of new Set(t.map(e=>e.path))){let r=Dr(n,e);if(!Array.isArray(r))continue;let i=new Set(t.filter(t=>t.path===e).map(({index:e})=>e));n=zr(n,e,r.filter((e,t)=>!i.has(t)))}return n}function Lp(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 Rp(e){let{flow:t,state:n,profile:r,reply:i,refused:a,structured:o}=e,s=new Map,c=a.map(({path:e,reason:t})=>{let n=s.get(e)??0;return s.set(e,n+1),`${e}[${n}]: ${t}`}).join(`
11
- `),l=Tp(t.currentReq,Np(a),c,V(`repair.items_guidance`,{},r.labels));t.pendingItemFix={reply:i,refused:a,structured:o};let u=kp(t,n,r,l,`validation`);return t.currentGen={...t.currentGen,structured:{id:o.id,jsonSchema:Pp(o.jsonSchema,a.map(({path:e})=>e))}},u}async function zp(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),Lp(n,s,[]));let c=await Dp({validation:e,generation:t.currentGen,latestStructured:s,request:t.currentReq,canRetry:a});if(c.action===`retry`)return kp(t,n,r,c.nextRequest,`validation`);if(s===void 0)return`pass`;c.failed&&Vp(n,c.failed);let l=t.currentReq.input?.slots,u=await mr(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?Rp({flow:t,state:n,profile:r,reply:s,refused:d,structured:f}):(Lp(n,Ip(s,u),u,c.failed),`pass`)}function*Bp(e,t,n,r,i){if(r!==void 0||t.lastStop?.kind!==`completed`||!Fn(e.currentGen))return`pass`;let a=Ec(n)?.validation;if(a&&e.currentAttempt<(a.maxRetries??0)){let r=V(`structured.answer_missing`,{tool:In},n.labels);return yield kp(e,t,n,Tp(e.currentReq,Cp(t.attemptEvents),r),`validation`),`continue`}let o=H(new z(`bad_response`,`the model ended without calling ${In}`));return al(o,t),t.lastStop={kind:`provider_error`},i||(yield o),`pass`}function Vp(e,t){let n=M(e.attemptEvents,e=>e.type===`structured`);n&&(e.attemptEvents[e.attemptEvents.indexOf(n)]={...n,failed:t})}function Hp(e){return e===`terminal`?{status:`terminal`}:e===`continue`?{status:`continue`}:null}async function*Up(e){let{flow:t,state:n,profile:r,system:i,provider:a}=e;n.stepCount=0,n.replyText=``,n.replyMessages=[],n.canaryCarry=void 0;let o;for(;;){n.attemptEvents=[],n.released=``,n.withheldVisible=!1,n.promptLeaks=void 0;let e=yield*xp({safe:t.currentReq,profile:r,generation:t.currentGen,system:i,provider:a,state:n});if(o=e.latestStructured,n.lastStop?.kind===`tool`||n.lastStop?.kind===`gate`||n.lastStop?.kind===`step_limit`)break;if(n.lastStop?.kind===`cancelled`)return{status:`terminal`};let s=yield*il({profile:r,generation:t.currentGen,state:n,stage:`before_end`,step:Math.max(n.stepCount,1),reply:e.reply,...e.replyAt===void 0?{}:{replyAt:e.replyAt},onStage:t.currentReq.onStage,signal:t.currentReq.signal,host:t.currentGen.host,injectWouldExceedMaxSteps:Jc(n.stepCount,t.currentGen.maxSteps)});if(s.abort)return n.lastStop={kind:`cancelled`,...typeof s.abort==`object`&&s.abort.reason?{native:s.abort.reason}:{}},{status:`terminal`};if(!(s.injectCount>0))break}return yield*Wp(t,n,r,i,o)}async function*Wp(e,t,n,r,i){let a=Ec(n)?.validation,o=I(n.guardrails),s=Gn(o,P),c=i;if(s){let i=Hp(yield*Mp(o,e,t,n,r.private));if(i)return i;c=wp(t.attemptEvents).structured??c}if((yield*Bp(e,t,n,c,!!a||s))===`continue`)return{status:`continue`};if(a){let r=await zp(a,e,t,n,c);if(r!==`pass`)return yield r,{status:`continue`}}if(a||s){let r=t.withheldVisible||jp(n,e.currentGen);yield*Op(t.attemptEvents,!r,e.currentGen)}return{status:`success`}}async function*Gp(e,t,n,r,i,a){let{blockedReply:o}=I(t.guardrails),s=Math.max(Ec(t)?.validation?.maxRetries??0,o.onBlock===`retry`?o.maxRetries:0),c={currentAttempt:0,currentGen:n,currentReq:e};for(;c.currentAttempt<=s;){B(e.signal);let n=yield*Up({flow:c,state:a,profile:t,system:r,provider:i});if(n.status===`terminal`||n.status===`success`)break}}var Kp=new Set([`config`,`request`,`auth`,`internal`]);function qp(e){return e.find(e=>e.type===`error`)}function Jp(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`,V(`tool.agent_call_limit`,{tool:i.name},u));t.set(i.name,f+1);let p=n.profiles.get(i.profile),m=An(p,e=>n.tools.get(e));if(m)throw new z(`config`,`Agent tool "${i.name}" can't run '${i.profile}': ${m}`);let{sent:h,hostInput:g}=Sr(i,o);if(g&&!r.onAgentCall)throw new z(`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=Yp(e,p.id,y.model,v);if(!c)throw new z(`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 z)||Kp.has(e.kind)||W(e))throw e;C.push(H(e))}return B(l),Xp(C,i.name,i.profile,u)}}}function Yp(e,t,n,r){return r?nc(e.registry,t,n,r):e.provider?ic(e.provider,t,n):nc(e.registry,t,n,{})}function Xp(e,t,n,r){let i=M(e,e=>e.type===`done`),a=i?.tokens??ge(e),o=a?{tokens:a}:{},s=qp(e);if(s&&Kp.has(s.errorKind))throw new z(s.errorKind,`Agent '${n}' failed: ${s.errorInternal??s.error}`);let c=i?.stop.kind;if(c!==`completed`||s){let e=V(`tool.agent_failed`,{tool:t},r),i=s?.errorCopy?mn(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:Ir(e),...o}}function Zp(e,t){return er(e,t?.include.guardrailMatchPreview??!1)}var Qp=1e3;function $p(e,t){let n=It(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()/Qp})),e.seen.push(n),e.delivered.add(n,e.root.nowUnixNano()),n}function*em(e,t,n){let r=Zp(t,e.observability);Ef(r,n)||(yield $p(e,r))}function tm(e,t){return e.models[t]?.compaction}function nm(){return{builtins:[],gated:[],visible:[],executable:[],wire:[]}}function rm(e){let t=fm(e.registry,e.req,e.parent.child(`invoke_agent ${e.req.profile}`,ce(e.req)),e.canaries);return t.agentDepth=e.agentDepth,e.compacting&&(t.compacting=e.compacting),t.observability=Wr(t.known?.observability),mm(t,ic(e.provider,e.req.profile,e.req.model,e.req))}async function im(e){let t=e.spec.profile===void 0,n=e.spec.profile??e.owner,r=e.registry.profiles.get(n),{history:i,droppedMedia:a}=gc(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:V(`compaction.request`,{},r.labels),history:i},signal:e.signal},s=[];try{for await(let n of rm({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){B(e.signal);let n=Tt(t);if(Kp.has(n))throw t;return{droppedMedia:a,failure:{error:n,errorInternal:Ut(t)}}}B(e.signal);let c=ge(s),l=c?{tokens:c}:{},u=M(s,e=>e.type===`done`)?.stop.kind,d=qp(s);if(d&&Kp.has(d.errorKind))throw new z(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}:{},...d?.errorInternal?{errorInternal:d.errorInternal}:{}},...l};let p=he(s),m=M(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 am(e){return M(e,e=>e.type===`tokens`)?.tokens}function om(e,t,n){return{timing:e.timing,meter:sc(e),budget:e.maxTokens,threshold:e.compactAt,...e.trigger?{trigger:`custom`}:{},...t?{tokens_before:t.tokens,unknown_media:t.unknownMedia}:{},needed:n}}function sm(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?.errorInternal?{failure_reason:kt(e.failure.errorInternal)}:{},...e.failure?.empty?{failure_empty:!0}:{},...e.failure?.unreadable?{failure_unreadable:!0}:{},...e.summary===void 0?{}:{summary:kt(e.summary)}}}async function cm(e){let t=await uc({spec:e.spec,input:e.input}),n=t!==void 0&&await fc(t,e.spec),r=om(e.spec,t,n);if(!(n&&t)){e.parent.event(`theorem.compaction`,r);return}let i=await pc(e.history,e.spec);if(i.toCompact.length===0){e.parent.event(`theorem.compaction`,r);return}let{toCompact:a,...o}=_c(i,await im({...e,toCompact:i.toCompact}),t.tokens,e.spec);return e.parent.event(`theorem.compaction`,{...r,...sm(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 lm(e,t){if(t.history.length===0)return e;let n=am(t.seen),r=await uc({spec:t.spec,input:t.input,prompt:n}),i=r!==void 0&&await fc(r,t.spec);if(t.span.event(`theorem.compaction`,om(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*um(e){let{safe:t,profile:n,generation:r,system:i,provider:a}=e,o=sl({tools:e.registry.tools,profile:n,generation:r,trace:e.trace,...e.agents?{agents:e.agents}:{}});e.outState.state=o;let s=yield*il({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*il({profile:n,generation:r,state:o,stage:`post_turn`,step:1,onStage:t.onStage,signal:t.signal,stop:e,host:r.host});return}yield*Gp(t,n,r,i,a,o);let c=A(o.allEmittedEvents),l=ve({stop:o.lastStop??{kind:`completed`},...o.providerState&&!ll(o)&&!(`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}:{}},Br(r.tools));o.allEmittedEvents.push(l),yield l}async function*dm(e,t,n,r,i){if(e.safe&&e.system!==void 0&&e.trace)for await(let a of um({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=Zp(await Cm(a,e,n,i),e.observability);if(Ef(r,t)||(yield $p(e,r)),r.type===`done`&&e.state&&!e.state.allEmittedEvents.some(e=>e.type===`stage`&&e.stage===`post_turn`))for await(let i of il({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*em(e,i,t)}}function fm(e,t,n,r){return{registry:e,req:t,known:e.profiles.find(t.profile),seen:[],delivered:new ht,root:n,compacting:!1,agentDepth:0,canary:``,canaries:r}}function pm(e,t){let n=e.trace?.calls??0;ee(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*mm(e,t){try{yield*_m(e,t)}catch(t){if(W(t)){yield*gm(e),pm(e);return}throw pm(e,t),t}pm(e)}async function*hm(e,t,n,r){let i=Yt(`invoke_agent ${t.profile}`,{...ce(t),...t.traceparent?{traceparent:t.traceparent}:{}}),a=fm(e,t,i.root,[]),{sink:o,policy:s}=Ss({override:r,observability:a.known?.observability,guardrails:a.known?.guardrails});a.observability=s;try{yield*mm(a,n)}finally{await ms(o,Kr({spans:i.collect(),policy:s,canaries:a.canaries,...t.metadata?{metadata:t.metadata}:{}}),s)}}async function*gm(e){if(e.seen.some(e=>e.type===`done`))return;let t={kind:`cancelled`};yield $p(e,Zp({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??sl({tools:e.registry.tools,profile:n,generation:r,trace:e.trace,allEmittedEvents:[...e.seen]});for await(let a of il({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*em(e,a,n)}async function*_m(e,t){let n=performance.now(),r=Vn(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`,me(`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)?me(`input`,i,t.guardrail,t.guardrail):E(t.guardrail)),yield $p(e,Zp(t,e.observability));if(r.refusal)throw r.refusal;let{profile:o,generation:s}=Nr(e.registry,e.safe);await Ur(e.registry.tools,s.tools,o,e.safe),e.compacting===`self`&&(s.tools=nm()),s.builtins=s.tools.builtins,s.canary&&=await Xt(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=vm(e,t,c)),B(e.safe.signal);let l=e.compacting?void 0:tm(o,s.model),u=await Sm(e,o,s,l,t);u&&(yield $p(e,Zp(u,e.observability))),e.system=Kn(s.resolvedSystem,[kn(e.canary,o.labels),Me(`identity.system`).includes(o.type)?hn(o.labels):``,at(o)?.context?On(o.labels):``]),yield*dm(e,o,s,t,l)}function vm(e,t,n){return Jp({registry:e.registry,req:e.safe??e.req,provider:t,own:n,depth:e.agentDepth,runNested:t=>rm({...t,registry:e.registry,canaries:e.canaries})})}function ym(e,t,n){return Jp({registry:e,req:t,provider:t.provider?rc(e,t.provider):void 0,own:void 0,depth:0,runNested:t=>rm({...t,registry:e,canaries:n})})}function bm(e,t,n,r){return Jp({registry:e,req:{...t,execution:n.execution},provider:rc(e,n),own:void 0,depth:0,runNested:t=>rm({...t,registry:e,canaries:r})})}function xm(e,t,n,r){return ic(r,n.profile??t.id,n.profile?void 0:e.req.model)}async function Sm(e,t,n,r,i){if(!(r?.timing===`before`&&e.safe))return;let a=xm(e,t,r,i);if(!n.history?.length)return;let o=await cm({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 Cm(e,t,n,r){return e.type===`done`&&r?.timing===`after`&&t.safe?await lm(e,{spec:r,history:n.history??[],input:t.safe.input,seen:t.seen,span:t.root}):e}async function wm(e,t,n,r){let i=e.profiles.get(t.profile),a=t.model??i.defaultModel,o=$e(i,a).compaction;if(!o)throw new z(`config`,`Profile ${i.id} model '${a}' has no compaction`);let s=await pc(t.history,o);if(s.toCompact.length===0)return;let c={profile:t.profile,input:{},...t.conversationId?{conversationId:t.conversationId}:{}},l=Yt(`invoke_agent ${t.profile}`,{...ce(c),...t.traceparent?{traceparent:t.traceparent}:{}}),{sink:u,policy:d}=Ss({override:r,observability:i.observability,guardrails:i.guardrails}),f=[];try{let r=_c(s,await im({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:sc(o),budget:o.maxTokens,threshold:o.compactAt,tokens_before:t.tokens,...sm(r,t.history.length)}),l.root.end(),r}catch(e){throw xe(l.root,e),e}finally{await ms(u,Kr({spans:l.collect(),policy:d,canaries:f,...t.metadata?{metadata:t.metadata}:{}}),d)}}function Tm(e){return Array.isArray(e.input)?e.input:[]}function Em(e){return typeof e==`string`?e:JSON.stringify(e)}function Dm(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 Om(e,t,n,r,i,a,o,s){let c=!a&&!i.interrupted&&(i.stop.kind===`completed`||i.stop.kind===`tool`),l=c?await ns(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 km(e){return{type:`closed`,code:e?.code??1e3,reason:e?.reason??`provider-closed`,...e?.error?{error:e.error instanceof z?e.error:new z(`unavailable`,V(`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 z(`bad_response`,V(`provider.settled_call`));t.set(e.callId,e.name)}function jm(e){return{type:`batch`,row:{},turnPhase:`streaming`,events:e}}function Mm(e,t,n){let r=os(e);return{type:`tool`,tool:!t.some(e=>e.type===`tool`)&&n.length?{...r,reasoning:n.splice(0)}:r}}function Nm(e,t){let n=t.get(e);if(!n)throw new z(`bad_response`,V(`provider.tool_cancel_missing`));return jm([{type:`tool`,tool:{callId:e,name:n,at:Date.now(),phase:`cancel`}}])}async function Pm(e,t,n,r,i,a={}){let o=await ts(e,t,i,n.history??[],a),s=Qo(e,t,`live`,r,{...n,liveConnection:!0}),c=await s.openSession(as(n,tt(e,t),o)),l=Promise.resolve(),u=e=>{l=l.then(()=>Ko(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 z(`unsupported`,V(`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 jm([{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 Ko(()=>f.next(),n.signal);if(o.done)break;let c=o.value;await Ko(()=>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 jm([...a,p]),a=[];else if(p.type===`tool_call`)Am(p.call,r,n.history),i.push(Mm(p.call,i,u));else if(p.type===`tool_cancel`){let e=Nm(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 jm([{type:`done`,stop:p.stop}]);continue}yield await Om(e,t,s.keySlot(),n,p,d,i,a),i=[],a=[],u=[],d=!1}else yield jm([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 km(c.closeInfo?.())}}}function Fm(e,t){let{detect:n}=I(e.guardrails),r=fn(t,`live_user`,n),i=Lt(`live_user`,r),a=Wr(e.observability).include.guardrailMatchPreview,o=i?er(K(i),a):void 0;return{...r.text===void 0?{}:{text:zt(r.text)},...o?{guardrail:o}:{}}}function Im(e,t){let{detect:n}=I(e.guardrails),r=Wr(e.observability).include.guardrailMatchPreview,i=[],a=[];for(let e of[...ie].reverse()){if(t[e]===void 0)continue;let o=Xn({[e]:t[e]},()=>wt(`context`,n));for(let e of o.events)a.push(er(K(e),r));let s=o.context?.[e];!o.blocked&&typeof s==`string`&&i.push(pn(e,s))}return{texts:i,guardrails:a}}var Lm=new Set([`text`,`thought`,`media`,`tool`]),Rm=1e3;function zm(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 Bm(e){try{let t=e.chunks.map(xn),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:_n(n)}]}catch{return e.chunks.map(t=>({type:`audio`,mimeType:e.mimeType,data:t}))}}var Vm=class{items=[];run;add(e){for(let t of e){let e=zm(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:Bm(e)}:e)}};function Hm(e){let t=j(e.setup),n=j(t?.sessionResumption);if(t&&n&&`handle`in n){let{handle:r,...i}=n;return{...e,setup:{...t,sessionResumption:i}}}let r=j(e.sessionResumptionUpdate);if(r&&`newHandle`in r){let{newHandle:t,...n}=r;return{...e,sessionResumptionUpdate:n}}return e}function Um(e,t){return typeof t==`string`?{[e]:t}:{}}function Wm(e){if(e.type===`session`){let{session:t}=e;return t.kind===`turn_complete`?void 0:{kind:t.kind,...`timeLeftMs`in t?Ye(`time_left_ms`,t.timeLeftMs):{}}}if(e.type!==`evidence`)return;let{evidence:t}=e;if(t.kind===`voice_activity`){let e=j(t.raw);return{kind:`voice_activity`,...Um(`activity`,e?.type),...Um(`audio_offset`,e?.audioOffset)}}if(t.kind===`session_resumption`)return{kind:`session_resumption`,...Ye(`resumable`,t.resumable),handle_issued:!!e.sessionResumptionHandle}}var Gm=class{tree;out;identity;root;bound;response;lastResponse;pendingFrames=[];pendingInput=new Vm;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=j(e.body);t&&this.row(t);return}let t=j(e.body);if(!t)return;let n=Hm(t);`setup`in t?this.root.event(`theorem.wire.request`,{body:U(n)}):(this.pendingInput.add(Tm(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`,E(e.guardrail))}outboundTime(e){this.response?.call.guardTime(`live_output`,e)}inboundCheck(e,t){this.root.event(`theorem.guardrail`,me(`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":Tt(r.error)}:{},...i?{cause:`go_away`,...Ye(`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=Yt(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&&W(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=te(this.tokens);this.root.set({...r?de(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`}):xe(this.root,n),this.write(this.tree.collect()),await this.writes}route(e){let t=Wm(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:(Vf(r.usage,e),r.call.observe(e),!r.answering&&(Lm.has(e.type)||n===`output_transcription`)&&(r.call.span.set({"gen_ai.response.time_to_first_chunk":r.call.span.msSinceStart()/Rm}),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(Hm(e))})}open(){if(this.response)return this.response;let e=this.bound;if(!e)throw new z(`internal`,`Live trace received a response before it was bound`);let t=Bf(e.system,{history:[],input:[]},this.held),n=this.pendingFrames[0]?.timeUnixNano,r,i=y((e,t)=>(r=Yt(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 z(`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 ht,answering:!1,complete:!1};for(let e of this.pendingHeard)i.observe(e);return this.pendingFrames=[],this.pendingInput=new Vm,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 Jf(t.usage,n.generation):void 0;return r&&(this.held=await Kf(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=Kr({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(()=>ms(this.out.sink,t,this.out.policy))}};function Km(e,t,n){let{sink:r,policy:i}=Ss({override:n,observability:t?.observability,guardrails:t?.guardrails}),a={"gen_ai.agent.name":e.profile,...Ye(`gen_ai.conversation.id`,e.conversationId)};return new Gm(Yt(`invoke_agent ${e.profile}`,{kind:`INTERNAL`,attributes:{"gen_ai.operation.name":`invoke_agent`,...a},links:qe(e.links),...e.traceparent?{traceparent:e.traceparent}:{}}),{sink:r,policy:i,...e.metadata?{metadata:e.metadata}:{}},a)}function qm(e,t){return e??(t?void 0:{unanswered:!0})}function Jm(e){return!(e instanceof z)||!e.copy?!1:`key`in e.copy?e.copy.key===`tool.execution_uncertain`:e.copy.some(e=>e.key===`tool.execution_uncertain`)}function Ym(e){return typeof e.state==`object`&&e.state.released===!0}function Xm(e){return e.phase===`complete`||e.phase===`error`||e.phase===`gate`}function Zm(e,t,n){let r=e.error?Ut(e.error):e.reason;return{type:`session`,session:{kind:`ended`,...t.timeLeftMs===void 0?{}:{timeLeftMs:t.timeLeftMs},message:V(`live.session_ended`,{},n),ended:{cause:`go_away`,code:e.code,closedAfterMs:t.closedAfterMs,...e.error?{errorKind:Tt(e.error)}:{}}},...r?{errorInternal:r}:{}}}function Qm(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 $m(e){if(e.type!==`live`)throw new z(`request`,`runSession requires profile.type 'live' (got '${e.type}' for ${e.id})`)}function eh(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 z(`config`,`Profile ${e.id}: ${t}`)}return Br(t)}function th(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 nh(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 rh(e,t){br(e,{profile:e.id,input:{context:t}})}function ih(e,t){return!t||!e.live?e:{...e,live:{...e.live,voice:t}}}function ah(e,t){return!t||t.length===0?e:{...e,input:t}}async function oh(e,t,n,r){if(n===`abort`)return Aa(e),t.filter(e=>e.type===`tool`||e.type===`session`||e.type===`done`&&e.interrupted===!0);let i=await xa(e,t);if(i.action===`withhold`)return r(),[...(i.events??[]).filter(e=>!sh(e)&&e.type!==`provider_checkpoint`),H(i.error)];let a=i.action===`emit`?i.events:[];if(n!==`complete`)return a;let o=a.filter(e=>!sh(e)),s=await ka(e);return s.action===`withhold`?(r(),[...o.filter(e=>e.type!==`provider_checkpoint`),...s.events??[],H(s.error)]):[...o,...s.action===`emit`?s.events:[],...a.filter(sh),{type:`done`,stop:{kind:`completed`}}]}function sh(e){return e.type===`session`&&e.session.kind===`turn_complete`}function ch(e){if(e.gated)return;let t=e.modelResult??(e.failure?Ue(e.failure):void 0);return t?He(t):void 0}function lh(e){let t=ch(e);return t===void 0?void 0:{text:Em(t),parts:e.modelResult?.parts}}function uh(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[ve(r,t)]})}function*dh(e){for(;e.length>0;){let t=e.shift();t&&(yield t)}}function fh(e,t,n){return e.length>0?e:t===`abort`||n?[{type:`done`,stop:{kind:`interrupted`},interrupted:!0}]:[{type:`done`,stop:{kind:`completed`}}]}function ph(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 mh(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 N(e)}})}else i.push(a)}return i}function*hh(e,t){let n=e.filter(e=>e.type===`done`);for(let n of e)n.type!==`done`&&(yield er(n,t??!1));return n}function gh(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??Dm(),v=new Map,y=!1,b=!1,x=[],C,w=Wr(t.observability).include.guardrailMatchPreview,T=`idle`,E=0,D,O=e.historySeed?.length?structuredClone(e.historySeed):[],ee=Promise.resolve(),k=e=>{let t=e.trim();t&&(O.push({role:`user`,content:t}),wn(a.request,t),Ii(o,t))},te=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})},ne=(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}:{}}),wn(a.tools,t)},A=e=>{x.push(er(e,w));let t=C;C=void 0,t?.()};for(let t of e.requestEvents)A(t);let re=()=>x.length>0?Promise.resolve(`queued`):new Promise(e=>{C=()=>e(`queued`)}),ie=()=>{if(y)throw new z(`request`,`Live session is closed`)},oe=e=>{ie(),r.sendInput(e)},j=(e,t,n,i)=>{ne({name:t.name,callId:e,arguments:t.arguments},n,i),ie(),r.sendToolResponse(e,t.name,n,i)},se=(e,t,n,r)=>{clearTimeout(t.lapse),v.delete(e),j(e,t,n,r)},ce=(e,n,r)=>{let i=He(Ue(r));A(L({name:n.name,callId:e,operationId:n.operationId,activityFailed:Be(n.name,t.labels)},r,i)),se(e,n,i)},le=(e,n)=>{if(y||v.get(e)!==n||typeof n.state!=`object`)return;let{gate:r}=n.state,i=af(n.name,r.kind===`auth`?r.authChallenge.service:void 0,t.labels);ce(e,n,i)},ue=()=>{for(let e of v.values())clearTimeout(e.lapse)},de=(e,t,n,r,i)=>{let a=h===`answer`&&r.kind===`auth`&&i!==void 0;return!a&&!n?!1:(a&&j(e,t,i),clearTimeout(t.lapse),t.state={gate:r,createdAt:Date.now(),released:!0},t.lapse=setTimeout(()=>le(e,t),m),!0)},fe=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?se(e.callId,n,e.readBack):e.phase===`cancel`&&n.state!==`running`&&n.state!==`uncertain`&&v.delete(e.callId))}},pe=(e,t,n)=>{p.socketClosed(e,t,n),r.close(e,t)},me=e=>{if(e.type!==`done`)return e;let t=p.responseTraceparent();return t?{...e,traceparent:t}:e},he=async(e,n)=>{let r=Qc({...n,stage:e,step:Math.max(1,E),history:O,handlers:c?[c]:[],guardrails:t.guardrails,injectAllowed:ae(t),host:l,signal:s,span:p.root}),i=await r.next();for(;!i.done;)A(i.value),i=await r.next();return{abort:i.value.abort,inject:i.value.inject}},ge=e=>{let n=performance.now(),r=Fm(t,e);return p.inboundCheck(performance.now()-n,r.guardrail),r.guardrail&&A(r.guardrail),r.text},_e=e=>{rh(t,e);let n=performance.now(),i=Im(t,e);p.inboundCheck(performance.now()-n,i.guardrails[0]);for(let e of i.guardrails)A(e);for(let e of i.texts)wn(a.request,e),Ii(o,e),ie(),r.sendContext(e)},ve=e=>{let t=ge(e);t!==void 0&&(k(t.slice(ln.length+1,-(dn.length+1))),oe({type:`text`,text:t}))},M=(e,n,r)=>{let i=[];for(let a of n){let n=Qm(a.messages);if(!n)A({...Gc(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)Gr(t,`text`),ve(e);i.push(a)}}let a=qc(e,i,r);a&&A(a)},ye=async e=>{let t=we(e);T=`idle`,A({type:`done`,stop:t,interrupted:!0}),await he(`post_turn`,{stop:t})},N=async()=>{if(T===`open`)return{aborted:!1};T=`open`,E+=1,D=void 0,o.remote.clear();let e=await he(`pre_turn`);return e.abort?(await ye(e.abort),{aborted:!0}):(M(`pre_turn`,e.inject),{aborted:!1})},be=async function*(e){if(T!==`open`){for(let t of e)yield t;return}let t=await he(`before_end`,{stop:e.find(e=>e.type===`done`)?.stop});if(t.abort){yield{type:`done`,stop:{kind:`cancelled`},interrupted:!0},await he(`post_turn`,{stop:{kind:`cancelled`}}),T=`idle`;return}M(`before_end`,t.inject);for(let t of e)yield t;let n=e.find(e=>e.type===`done`);await he(`post_turn`,{stop:n?.stop}),T=`idle`},P=e=>{let t=async()=>{await e(),await r.flush?.()},n=ee.then(t,t);return ee=n.then(()=>void 0,()=>void 0),n},F=async(n,r,a,m,h)=>{let y=r.state,b=Ym(r);r.state=`running`;let x=h.host??l,C=p.toolRecord(n),w=!1,ee=uf({onDispatch:()=>{w=!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:qm(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:ae(t),host:x,signal:s},scope:i.context,openSpan:C.open,readBack:lh}),k;try{for(;;){let e=await ee.next();if(e.done){k=e.value;break}A(e.value)}}catch(e){let n=w||Jm(e);throw r.state=n?`uncertain`:y,n?new z(`unavailable`,V(`tool.execution_uncertain`,{},t.labels),{copy:{key:`tool.execution_uncertain`},cause:e}):e}finally{C.finish()}if(k.gated)return de(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:V(`session.tool_aborted`,{tool:r.name},t.labels)}:k.failure;if(k.callNotStarted&&e)ce(n,r,e);else{let e=ch(k);e===void 0?v.delete(n):se(n,r,e,k.modelResult?.parts)}let{aborted:i}=k;return await P(async()=>{T===`open`&&await ye(i)}),{outputRaw:k.outputRaw,outputModel:k.modelResult,failure:e,awaiting:k.awaiting}}k.modelResult?.provenance&&(D=S(D,k.modelResult.provenance,k.modelResult.suspicious),zi(o,k.modelResult,k.modelResult.provenance));let{pendingInject:te}=k;te&&await P(async()=>{(await N()).aborted||M(`post_tool`,te,{callId:n,toolName:r.name})});let ne=ch(k);return ne===void 0?v.delete(n):se(n,r,ne,k.modelResult?.parts),{outputRaw:k.outputRaw,outputModel:k.modelResult,failure:k.failure,awaiting:k.awaiting}},xe=async(...e)=>{let t=await F(...e);return await r.flush?.(),t},Se=e=>new z(`request`,`gate ${e} expired`,{copy:{key:`session.gate_expired`}}),Ce=e=>typeof e.state==`object`&&Qr(e.state.createdAt,Date.now(),m),Te=async(e,n)=>{let r=v.get(e);if(!r||r.state===`running`)throw new z(`request`,`call ${e} is not waiting to run`);if(n!==void 0&&n!==r.operationId)throw new z(`request`,V(`session.gate_expired`,{},t.labels),{copy:{key:`session.gate_expired`}});if(r.state===`uncertain`)throw new z(`unavailable`,V(`tool.execution_uncertain`,{},t.labels),{copy:{key:`tool.execution_uncertain`}});if(Ce(r))throw Ym(r)?le(e,r):await xe(e,r,r.arguments,Xr({decision:`abandon`}),{}),Se(e);return r},Ee=n=>{if(n.type!==`tool`||n.tool.phase!==void 0)return n;let{name:r,arguments:a}=n.tool,o=lf({tools:e.tools,profile:t,name:r,input:a,scope:i.context});return{...n,tool:{...n.tool,arguments:o}}},De=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 z(`bad_response`,V(`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}}});fe(r);let a=uh(r.filter(e=>e.type!==`tokens`),f).map(Ee),o=performance.now(),s=await oh(i,a,e.turnPhase,()=>{b=!0});e.turnPhase!==`abort`&&p.outboundTime(performance.now()-o);for(let e of s)e.type===`guardrail`&&p.outbound(e);ph(s,k,te);let c=yield*hh(await mh(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=fh(c,e.turnPhase,u);for await(let e of be(t))yield er(me(e),w);yield*dh(x)}else if(c.length>0)for(let e of c)yield er(me(e),w)},Oe=async function*(){let e=`host`,n,i=r.batches(),a;try{for(;;){a??=i.next();let n=await Promise.race([a,re()]);if(B(s),n===`queued`){yield*dh(x);continue}if(a=void 0,n.done)break;let r=n.value;if(p.receive(r),yield*dh(x),r.type===`closed`){r.goAway?yield Zm(r,r.goAway,t.labels):r.error&&(yield H(r.error));break}if(r.type===`error`){e=`theorem`,yield H(r.error);break}if(r.type!==`row`&&(yield*De(r),b)){e=`theorem`;break}}yield*dh(x)}catch(e){throw n=e,e}finally{y=!0,ue(),b?pe(1011,`guardrail withheld`,e):pe(1e3,`session-closed`,e),await i.return(void 0),await p.close({thrown:n})}},ke={profileId:t.id,canary:n,async*events(){for await(let e of Oe()){let n=It(e,t.labels);p.delivered(n),yield n}},sendAudio(e){return P(async()=>{e.data&&(Gr(t,`audio`),!(await N()).aborted&&oe({type:`audio`,mimeType:e.mimeType,data:e.data}))})},sendVideo(e){return P(async()=>{Gr(t,`video`),!(await N()).aborted&&oe({type:`video`,mimeType:e.mimeType,data:e.data})})},sendText(e){return P(async()=>{Gr(t,`text`),!(await N()).aborted&&ve(e)})},sendContext(e){return P(()=>(_e(e),Promise.resolve()))},async executeTool({callId:e,operationId:t,decision:n,input:r,secret:i,credentials:a,host:o,page:s}){ie();let c=await Te(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 z(`request`,`call ${e} is not waiting on a gate; it takes no decision, input, or secret`);return await xe(e,c,c.arguments,void 0,{credentials:a,host:o,page:s})}if(n===void 0)throw new z(`request`,`call ${e} is waiting on a gate; answer it with a decision`);let u=oi({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 xe(e,c,u.input,u.resume,{credentials:a,host:o,page:s})},answerToolCall({callId:e,events:n}){ie();let r=v.get(e);if(!r||r.state!==`open`&&!Ym(r))throw new z(`request`,`call ${e} is not waiting for an answer`);if(Ce(r))throw le(e,r),Se(e);let i;for(let a of n)if(a.type===`tool`){if(a.tool.phase===void 0||a.tool.callId!==e)throw new z(`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 z(`request`,V(`session.gate_expired`,{},t.labels),{copy:{key:`session.gate_expired`}});Xm(a.tool)&&(i=a.tool)}if(!i)throw new z(`request`,`the run answering call ${e} settled nothing`);let a=()=>{for(let e of n)e.type!==`done`&&A(e)};if(i.phase===`gate`)return a(),de(e,r,Ym(r),i.gate,i.readBack),{gated:i.gate};let{readBack:o}=i;if(o===void 0)throw new z(`request`,`the run answering call ${e} carries no readBack`);return a(),se(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,ue(),pe(1e3,e,`host`)),await r.flush?.(),p.close({})}},{initialContext:Ae,opening:je}=e;return(e.openInitialCycle||Ae||je)&&P(async()=>{if(Ae&&_e(Ae),!e.openInitialCycle&&!je)return;let t=await N();je&&!t.aborted&&oe({type:`text`,text:je})}),ke}async function _h(e,t,n,r){let i=Km(t,e.profiles.find(t.profile),r);try{return await vh(e,t,n,i)}catch(e){throw await i.close({thrown:e}),e}}async function vh(e,t,n,r){let i=Zr(`runSession`,n.gateTtlMs),a=th(t),{request:o,events:s,refusal:c}=Vn(a,e.profiles.get(a.profile));if(c)throw c;B(o.signal);let{profile:l,generation:u}=Nr(e,o);$m(l),t.context&&rh(l,t.context),t.snapshot&&(u.tools=eh(l,t.snapshot)),u.builtins=u.tools.builtins;let d=ih(u,t.voice),f=!!(t.input&&t.input.length>0);d=ah(d,t.input);let p=Kn(d.resolvedSystem,[kn(d.canary,l.labels),hn(l.labels),l.inputs?.context?On(l.labels):``]),m={...dl(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=on();bn(g,m),nn(g,t.history??[]);let _=bi();Ri(_,m,g.own),Li(_,t.history??[],g.own);let v=await da(l,d.canary||void 0,p.private,g,fr(e.tools,l));es(l.providerContinuation,t.providerState,t.history);let y=await Pm(e.providers.require(h.provider,h.apiId),{...h},m,n,t.providerState,l.providerContinuation);return r.setup(y.setup),gh({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:nh(l,t,o.input?.slots),trace:r,agents:bm(e,t,n,r.agentCanaries),gateTtlMs:i,signInGate:n.signInGate??`hold`})}function yh(e){return{profile:e.profile,path:e.path,sessionPermissions:e.sessionPermissions,input:e.turnInput,model:e.model,host:e.host}}async function bh(e,t,n){let r=yh(t);if(n.type===`decision`||n.type===`embedding`)throw new z(`request`,`Profile ${n.id}: type 'decision' cannot invoke tools`);let i=n.type===`host`?void 0:_r(n,t.model);return await Hr(e.tools,n,r,i)}async function*xh(e,t,n,r,i){let a=e.profiles.find(t.profile),{sink:o,policy:s}=Ss({override:r,observability:a?.observability,guardrails:a?.guardrails}),c=Yt(n,{attributes:{"gen_ai.agent.name":t.profile,...Ye(`gen_ai.conversation.id`,t.conversationId)},links:qe(t.links),...t.traceparent?{traceparent:t.traceparent}:{}}),l=[];try{let e=a?.labels;for await(let t of i.events(c,l))yield er(It(t,e),s.include.guardrailMatchPreview);i.ended?.(c)}catch(e){throw i.failed(c,e),e}finally{await ms(o,Kr({spans:c.collect(),policy:s,canaries:l,...t.metadata?{metadata:t.metadata}:{}}),s)}}function Sh(e,t,n){return r=>_t(e,{name:t.name,callId:n,call:{arguments:Re(Hn(t.input))}}).end(r)}async function Ch(e,t){let n=e.profiles.get(t.profile);return{profile:n,snapshot:t.snapshot?Br(t.snapshot):await bh(e,t,n)}}function wh(e,t,n){return Th(e,t,n).events}function Th(e,t,n){let r=t.callId??lt(t.name),i={...t,operationId:t.operationId??crypto.randomUUID()},a=e=>(t,n)=>(e.root.set(n),e.root),o=xh(e,i,be(i.name),n,{events:(t,n)=>kh(e,i,r,a(t),Sh(a(t),i,r),t.root.traceparent(),n),failed:(e,t)=>Sh(a(e),i,r)(W(t)?{outcome:`cancelled`}:{outcome:`error`,thrown:t})});return{name:i.name,callId:r,events:o}}function Eh(e,t,n){return Dh(e,t,n).events}function Dh(e,t,n){let{calls:r,...i}=t,a=r.map(e=>{let t=e.callId??lt(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=xh(e,t,`tool_step ${t.profile}`,n,{events:(n,r)=>Oh(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)=>{W(t)?e.root.end():xe(e.root,t)}});return{calls:a.map(({callId:e,invoke:t})=>({name:t.name,callId:e})),events:o}}async function*Oh(e,t,n,r,i,a){let{profile:o,snapshot:s}=await Ch(e,t),c=crypto.randomUUID();for(let{callId:e,invoke:t,announce:r}of n)r&&(yield Ve({name:t.name,callId:e,operationId:t.operationId},Re(t.input),{stepId:c,stepCallCount:n.length}));let l=Cf(n.map(({callId:e})=>e),Pn(o)===!0,t.signal),u={stepCalls:n.map(({callId:e,invoke:t})=>({callId:e,tool:t.name,input:Re(t.input)})),wait:l.wait},d=!1;try{d=(yield*Tf(n.map(({callId:t,invoke:n})=>wf(l,t,()=>Ah(e,n,o,s,t,r,Sh(r,n,t),a,u))))).some(e=>e?.gated!==void 0)}catch(e){yield H(e)}yield ve({stop:{kind:d?`gate`:`completed`},traceparent:i},s)}async function*kh(e,t,n,r,i,a,o){let{profile:s,snapshot:c}=await Ch(e,t);t.callId===void 0&&(yield Ve({name:t.name,callId:n,operationId:t.operationId},Re(t.input)));let l=!1;try{l=(yield*Ah(e,t,s,c,n,r,i,o)).gated!==void 0}catch(e){yield H(e)}yield ve({stop:{kind:l?`gate`:`completed`},traceparent:a},c)}function Ah(e,t,n,r,i,a,o,s,c){return bl(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=>jh(e,t,n,r,i,a,o,s,l,c),i=>$d({outcome:i,tools:e.tools,profile:n,name:t.name,resume:t.resume,snapshot:r}))}async function*jh(e,t,n,r,i,a,o,s,c,l){if(t.promoted?.length){let{failure:a}=nr(e.tools,r,t.promoted,n);if(a)return o({outcome:`error`,failure:a}),yield L({name:t.name,callId:i,operationId:t.operationId,activityFailed:Be(t.name,n.labels)},a),{failure:a,callNotStarted:!0}}let u=t.onStage?[t.onStage]:[];return yield*uf({tools:e.tools,beginBody:c,agents:ym(e,t,s),profile:n,name:t.name,input:t.input,callId:i,ctx:{operationId:t.operationId,sessionPermissions:t.sessionPermissions,credentials:t.credentials,resolveHost:t.resolveHost,path:t.path,signal:t.signal,resume:t.resume,page:t.page,pageExecution:t.pageExecution,host:t.host},snapshot:r,openSpan:a,stages:{handlers:u,profile:n,step:1,history:()=>[],injectAllowed:!1,host:t.host,signal:t.signal,...l}})}function Mh(e){return e.phase===`complete`||e.phase===`gate`||e.phase===`error`}function Nh(e,t){t.phase===`running`&&(e.activity=t.activity??e.activity),Mh(t)&&(e.settled=t)}function Ph(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??V(`tool.did_not_run`,{tool:e.name})}},events:e.events,...e.activity?{activity:e.activity}:{}}}async function Fh(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&&Nh(t,r.tool);return Ph(t,n)}async function*Ih(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),Nh(o,a.tool),o.settled&&!r.has(e)&&(r.add(e),yield{...Ph(o,i),index:e}))}for(let[e,n]of t.entries())r.has(e)||(yield{...Ph(n,i),index:e})}function Lh(e,t,n){try{return nc(e,t.profile,t.model,n,t)}catch(e){return{complete(){throw e}}}}function Rh(){let e=mi();return{providers:e.providers,tools:e.tools,profiles:e.profiles,schemas:e.schemas,runTurn:(t,n={},r)=>hm(e,t,Lh(e,t,n),r),runSession:(t,n,r)=>_h(e,t,n,r),compactHistory:(t,n={},r)=>wm(e,t,nc(e,t.profile,t.model,n),r),invokeTool:(t,n)=>wh(e,t,n),invokeToolStep:(t,n)=>Eh(e,t,n),runTool:(t,n)=>Fh(Th(e,t,n)),runToolStep:(t,n)=>Ih(Dh(e,t,n)),resolveTurn:t=>Nr(e,t),projectProfile:t=>vr(e,t),runDecision:(t,n)=>Ks(e,t,n),runEmbedding:(t,n={})=>tc(e,t,n)}}Rh();function zh(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 Bh(e,t,n){let r=We({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 zh(i);r||(yield{type:`done`,stop:{kind:`completed`}})}})});return _e({id:e,name:`Scripted`,description:`Answers with a scripted model.`,serves:()=>[{protocol:r,baseUrl:`https://scripted.invalid`}]})}function Vh(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(Bh(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 Hh(e,t){let n=t?.providers?.local?.baseUrl;for(let t of x)oe(e.providers,t.definition===`local`&&n?{...t,connection:{baseUrl:g(n)}}:t);for(let n of t?.providerDefinitions??[])e.providers.register(n)}function Uh(e,t){return async n=>await t.onAgentCall?.(n)||{provider:Vh(t,e,e.profiles.get(n.profile))}}function Wh(e,t){return ue.indexOf(e??`off`)>ue.indexOf(t)?e:t}function Gh(e,t){if(t.mode!==`demo`||t.keys.holds.afterRemoteRead===`off`)return e;let n=Wh(e.taint?.afterRemoteRead,t.keys.holds.afterRemoteRead);return n===e.taint?.afterRemoteRead?e:{...e,taint:{...e.taint,afterRemoteRead:n}}}function Kh(e,t){switch(ui(t)){case`public`:return{...e,network:void 0};case`none`:return{...e,network:{allowedSchemes:[]}};case`asWritten`:return e}}function qh(e,t){return e.type===`speech`||e.type===`decision`||e.type===`embedding`?e:e.type===`host`?{...e,guardrails:Kh(e.guardrails??{},t)}:{...Jh(e,t),guardrails:Gh(Kh(e.guardrails??{},t),t)}}function Jh(e,t){if(e.type!==`live`||t.mode!==`demo`)return e;let n=e.live?.contextCompression;if(!n)return e;let r=li(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 Yh(t){if(!Xh(t))return t;let{compileDetect:n}=await e(async()=>{let{compileDetect:e}=await import(`./compile-egress-BRGW9qfO.js`);return{compileDetect:e}},__vite__mapDeps([0,1,2]));return Zh(t,n)}function Xh(e){let t=e.guardrails&&`detect`in e.guardrails?e.guardrails.detect:void 0;return typeof t==`object`&&St(t)}function Zh(e,t){if(!Xh(e))return e;let n=e.guardrails;return{...e,guardrails:{...n,detect:t(n.detect)}}}async function Qh(t){let n=t.flatMap(e=>[`input`,`output`].flatMap(t=>$h(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-BRGW9qfO.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 z(`request`,`${e}: the pattern /${i}/ in its ${t} schema ${n}`)}}function $h(e){return Array.isArray(e)?e.flatMap($h):!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):[],...$h(t)])}function eg(e){try{return e()}catch(e){throw e instanceof z&&e.kind===`config`?new z(`request`,e.message,{cause:e}):e}}var tg=(e=>eg(()=>rr(e)));async function ng(e,t,n,r,i){if(Mn(t).length>32)throw new z(`request`,`The studio supports up to 32 key slots.`);await Qh(n);let a=tg(qh(await Yh(t),i));if(a.type!==`host`)for(let t of Object.values(a.models)){let n=ft({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 z(`request`,n.message)}return eg(()=>jr(e,a,n,r,i.toolHandlers))}async function rg(e,t,n,r,i=[]){let a=Rh();Hh(a,r);for(let e of i)await ng(a,e.profile,e.customTools,e.structured,r);return{scope:a,profile:await ng(a,e,t,n,r)}}var ig=`studioRun`;function ag(){let e=new Map;return{sink:{write:t=>{let n=t.metadata?.[ig];return typeof n==`string`&&e.get(n)?.(t),Promise.resolve()}},route(t){let n=globalThis.crypto.randomUUID();return e.set(n,t),{metadata:{[ig]:n},close:()=>{e.delete(n)}}}}}var og={maxGates:32,maxOperations:128,maxCheckpoints:256,maxPermissions:2048,maxStateBytes:33554432,maxInvocationBytes:262144,maxOutcomeBytes:262144};function sg(e={}){let t={...og,...e};if(Object.keys(e).some(e=>!Object.hasOwn(og,e))||Object.values(t).some(e=>!Number.isSafeInteger(e)||e<=0))throw new z(`config`,V(`error.config`),{cause:{code:`session_limits`}});return t}function cg(e){return new TextEncoder().encode(JSON.stringify(e)).byteLength}function lg(){throw new z(`unavailable`,V(`error.unavailable`),{cause:{code:`session_state_capacity`}})}function ug(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)&&lg();for(let e of n)cg(e)>t.maxInvocationBytes&&lg();let i=n.length*t.maxOutcomeBytes;for(let e of r)e.status!==`ready`&&e.invocation&&cg(e.invocation)>t.maxInvocationBytes&&lg(),e.status===`settled`?cg(e.outcome)>t.maxOutcomeBytes&&lg():(i+=t.maxOutcomeBytes,e.status===`ready`&&cg(e)>t.maxInvocationBytes&&lg());cg(e)+i>t.maxStateBytes&&lg()}var dg=864e5,fg=t({data:f(),mimeType:f(),name:f().optional()}),pg=t({text:f().optional(),role:f().optional(),slots:p(f(),f()).optional(),context:t({client:O.optional(),server:O.optional()}).optional(),attachments:s(r([fg,t({uri:f(),mimeType:f(),name:f().optional()})])).optional(),voice:s(fg).optional(),history:s(b).optional(),repair:t({previousOutput:f(),rejection:f(),guidance:f()}).optional(),historyTokens:d().nonnegative().optional(),inputTokens:d().nonnegative().optional()}),mg=t({profileId:f().min(1),operationId:f().min(1).max(256),callId:f().min(1),name:f().min(1),arguments:F,gate:t({kind:l(Ze),permission:l(Le).optional(),auth:t({slot:f().min(1),authType:l(Fe),service:f().min(1)}).optional()}).superRefine((e,t)=>{e.kind===`auth`!=(e.auth!==void 0)&&t.addIssue({code:`custom`,path:[`auth`]})}),snapshot:ne.optional(),promoted:s(f().min(1)),turnInput:pg,model:f().optional(),createdAt:d().finite().nonnegative(),expiresAt:d().finite().nonnegative().optional()}),hg=t({input:F,resume:t({granted:i().optional(),gateKind:l(Ze).optional(),cause:l([`declined`,`abandoned`,`expired`]).optional(),signIn:i().optional(),edited:t({from:F}).optional()}),sessionPermissions:s(f().min(1)),page:r([t({output:O}),t({timedOut:o(!0)}),t({unanswered:o(!0)})]).optional()}),gg={operationId:f().min(1).max(256),callId:f().min(1),profileId:f().min(1),toolId:f().min(1),invocationHash:f().min(1),invocation:fl.optional()},_g=t({grantId:f().min(1),expiresAt:d().finite().positive(),resultHash:f().optional()}),vg=u(`status`,[t({status:o(`ready`),profileId:f().min(1),pending:mg,answer:hg,readyAt:d().finite().nonnegative()}),t({...gg,status:o(`running`),pageGrant:_g.optional(),claimToken:f().min(1),startedAt:d().finite().nonnegative()}),t({...gg,status:o(`settled`),pageGrant:_g.optional(),outcome:hl,settledAt:d().finite().nonnegative(),retainUntil:d().finite().nonnegative().optional()}),t({...gg,status:o(`uncertain`),pageGrant:_g.optional(),claimToken:f().min(1),reason:l([`execution_interrupted`,`settlement_write_failed`,`worker_lost`]),detectedAt:d().finite().nonnegative()})]),yg=t({version:o(3),operations:p(f().min(1),vg),permissions:s(f().min(1)),gates:p(f().min(1),mg),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 bg(){return{version:3,operations:{},permissions:[],gates:{},providerCheckpoints:[]}}function xg(e,t,n){return Object.fromEntries(Object.entries(e).filter(([,e])=>e.expiresAt===void 0?!Qr(e.createdAt,t,n):t<e.expiresAt))}function Sg(e){let t=e.ttlMs??864e5,n=e.maxSessions??1e4;if(!Number.isFinite(t)||t<=0||!Number.isSafeInteger(n)||n<=0)throw new z(`config`,V(`error.config`),{cause:{code:`session_store_options`,ttlMs:t,maxSessions:n}});return{ttlMs:t,maxSessions:n}}function Cg(e={}){let{ttlMs:t,maxSessions:n}=Sg(e),r=sg(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=yg.parse(s);if(ug(l,r),!c&&i.size>=n){let e=[...i].find(([,e])=>!a(e));if(!e)throw new z(`unavailable`,V(`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 wg=m({events:s(bt),base:s(b),baseEvents:d().int().nonnegative(),workedMs:d().nonnegative(),endedAt:d(),model:f().optional(),effort:f().optional()}),Tg=m({version:o(1),transcript:s(qn),history:s(b),providerState:C.optional(),inputTokens:d().optional(),historyTokens:d().optional(),paused:wg.optional()});function Eg(){return{version:1,transcript:[],history:[]}}function Dg(e){return new z(`request`,V(`session.conversation_unknown`),{copy:{key:`session.conversation_unknown`},...e===void 0?{}:{cause:e}})}function Og(e){let t=e.keys[e.keyVersion];if(t===void 0)throw new z(`config`,V(`error.config`),{cause:{code:`conversation_seal_key_missing`,keyVersion:e.keyVersion}});return{async read(t,n){let r=await Yr({sealed:n,keys:e.keys,binding:[t]}).catch(()=>void 0);if(r!==void 0)return{revision:n,conversation:Tg.parse(JSON.parse(r))}},async write(n,r,i,a){if(r!==i)return{written:!1};let o=Tg.parse(a),s=await qr({plaintext:JSON.stringify(o),key:t,binding:[n],keyVersion:e.keyVersion});return{written:!0,ref:s,revision:s}}}}function kg(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=kg(n,t);return i?{...r,context:i}:r}function jg(e,t){let n=kg(e.context,t);return{...e.history?{history:e.history}:{},...e.slots?{slots:e.slots}:{},...n?{context:n}:{},...e.resume?{providerState:e.resume.providerState,awayMs:e.resume.awayMs}:{}}}function Mg(e,t){return di(e.paused?.events??[]).some(e=>e.callId===t.callId&&e.operationId===t.operationId)}function Ng(e){let{profile:t,clientEvents:n}=e;return{sessionId:e.sessionId,store:e.store,showThoughts:ei(t.outputs),forReader:e=>xr(e,n),failureText(e){let r=xr(It(e,t.labels),n);return r.type===`error`&&r.error?r.error:V(`error.${e.errorKind}`,{},t.labels)}}}async function Pg(e,t,n,r){let i=await Fg(e,t,r);return n.kind===`message`&&Zg(i.conversation,n.abandon),n.kind===`answer`&&Qg(i.conversation,n.call),n.kind===`rewind`&&i_(i.conversation,n.at),i}async function Fg(e,t,n){if(t===void 0){if(n)throw new z(`request`,`a transcript restores a conversation the host lost, and this message names none`);return{ref:null,revision:null,conversation:Eg()}}let r=await e.store.read(e.sessionId,t);if(r)return{ref:t,revision:r.revision,conversation:r.conversation};if(!n)throw Dg();let{conversation:i,events:a}=Ig(n.profile,n.blocks);return{ref:null,revision:null,conversation:i,events:a}}function Ig(e,t){let{request:n,events:r,refusal:i}=Vn({profile:e.id,input:{history:fi(t)}},e);if(i)throw i;return{conversation:{...Eg(),transcript:[...t],history:n.input?.history??[]},events:r}}async function Lg(e,t,n){let{conversation:r,events:i}=Ig(t,n),a=await e.store.write(e.sessionId,null,null,r);if(!a.written)throw new z(`unavailable`,`the conversation store did not keep the new conversation`);return{ref:a.ref,view:{transcript:[...n]},events:i}}function Rg(e,t){return ai(t.map(t=>e.forReader(t)),{showThoughts:e.showThoughts})}function zg(e,t){let{paused:n}=t;return{transcript:t.transcript,...n?{paused:{events:n.events.map(t=>e.forReader(t)),blocks:pi(Rg(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 z(`unavailable`,`the conversation changed while this reply ran`,{cause:{code:`conversation_conflict`}});return{ref:r.ref,revision:r.revision,conversation:n}}function Bg(e,t){return e.ref===null?[]:[{type:`conversation`,ref:e.ref,...t?{posted:!0}:{}}]}function Vg(e){return gi(e.base,e.events.slice(e.baseEvents))}function Hg(e,t){let n=_i({...hi(),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 Ug(e,t,n,r=e=>e){let{paused:i,providerState:a,...o}=t;return{...o,...Hg(t,n.events),transcript:[...t.transcript,...pi(r(Rg(e,n.events)),{workedMs:n.workedMs,endedAt:Date.now()})],history:Vg(n)}}function Wg(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,...Hg(e,t.events),paused:r}}function Gg(e,t,n,r){let i=Ug(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 Kg(e,t,n){return Ug(e,t,n,yi)}async function*qg(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){if(u=await $(e,u,r.signal.aborted?Kg(e,o,c()):Gg(e,o,c(),H(t))),yield*Bg(u),!r.signal.aborted)throw t;return}let d=c();if(r.signal.aborted)u=await $(e,u,Kg(e,o,d));else if(l)u=await $(e,u,Gg(e,o,d,l));else if(di(d.events).length)u=await $(e,u,Wg(o,d,r));else{u=await $(e,u,Ug(e,o,d)),yield*Bg(u);let t=await Jg(e,u,d,r,a);t&&(yield*Bg(t));return}yield*Bg(u),l&&(yield l)}async function Jg(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=Vg({...n,base:i(s),baseEvents:0});return $(e,t,{...t.conversation,history:c})}function Yg(e){let t;try{t=xn(e.data).length}catch{throw new z(`request`,V(`error.request`),{cause:{code:`request_file_encoding`}})}return{name:e.name,mimeType:e.mimeType,sizeBytes:t,data:e.data}}function Xg(e,t,n){let r=ti(e.inputs,{...t.text===void 0?{}:{text:t.text},...t.attachments?{attachments:t.attachments.map(Yg)}:{},...t.voice?{voice:t.voice.map(Yg)}:{}},e.guardrails);if(!r.ok)throw Nn(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 Zg(e,t){let n=di(e.paused?.events??[]);if(n.length&&!t)throw new z(`request`,`a message to a paused reply must walk away from it`,{copy:{key:`session.gate_pending`}});let r=t??[];if(n.length!==r.length||!r.every(t=>Mg(e,t)))throw new z(`request`,`the message walks away from calls the reply is not waiting on`,{copy:{key:`session.gate_expired`}})}function Qg(e,t){if(!Mg(e,t))throw new z(`request`,`the reply is not waiting on ${t.callId}`,{copy:{key:`session.gate_expired`}})}async function*$g(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=>$r(e,n.callId)))throw new z(`internal`,`walked-away call ${n.callId} ended without settling`)}return void 0}function e_(e){return{base:e.base,events:[...e.events],baseEvents:e.baseEvents,workedMs:e.workedMs}}function t_(e){return new z(e.errorKind,e.error??V(`error.${e.errorKind}`))}async function*n_(e){let{host:t,message:n,runner:r}=e,{events:i=[],...a}=e.opened,o=a;yield*i;let{paused:s}=o.conversation;if(Zg(o.conversation,e.walkAway),s){let n=e_(s),r=yield*$g(n,e.walkAway??[]);if(r){o=await $(t,o,{...o.conversation,paused:{...s,events:n.events,endedAt:Date.now()}}),yield*Bg(o),yield r;return}o={...o,conversation:Ug(t,o.conversation,n)}}let{conversation:c}=o,l=e=>vi(e,n.draft,n.media);o=await $(t,o,{...c,transcript:[...c.transcript,...n.blocks],history:l(c.history)}),yield*Bg(o,`posted`);let u={base:l(c.history),events:[],baseEvents:0,workedMs:0};yield*qg(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*r_(e){let{host:t,runner:n}=e,r=e.opened;Qg(r.conversation,e.call);let{paused:i,...a}=r.conversation;if(!i)return;let o=e_(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,c||di(o.events).length){let n=o.events.some(t=>$r(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*Bg(r),c&&(yield c)}else yield*qg(t,{...r,conversation:a},o,{...n,model:n.model??i.model,effort:n.effort??i.effort},{history:Vg(o),...a.inputTokens===void 0?{}:{inputTokens:a.inputTokens},...a.historyTokens===void 0?{}:{historyTokens:a.historyTokens}},e=>e)}function i_(e,t){if(!(Number.isSafeInteger(t)&&t>=-1&&t<e.transcript.length))throw new z(`request`,`no transcript block ${t} to rewind to`)}async function a_(e){let{host:t,opened:n,at:r}=e,{conversation:i}=n;if(i_(i,r),Zg(i,e.walkAway),i.paused){let n=e_(i.paused),r=$g(n,e.walkAway??[]),a=await r.next();for(;!a.done;)a=await r.next();if(a.value)throw t_(a.value);i=Ug(t,i,n)}let a=i.transcript.slice(0,r+1);return $(t,n,{version:1,transcript:a,history:fi(a)})}function o_(e){if(!e.operationId)throw new z(`internal`,V(`error.internal`));return e.operationId}function s_(e){return di(e.paused?.events??[]).map(e=>({callId:e.callId,operationId:o_(e)}))}function c_(e){return new z(`request`,`a stateless chat keeps no conversation to ${e}`)}var l_=t({callId:f().min(1),operationId:f().min(1).max(256),grantId:f().min(1),page:r([t({output:O}),t({unanswered:o(!0)}),t({timedOut:o(!0)})])});function u_(){throw new z(`unavailable`,V(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`}})}function d_(e=128){if(!Number.isSafeInteger(e)||e<=0)throw new z(`config`,V(`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)&&u_();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 z(`unavailable`,V(`tool.execution_uncertain`)))}}}function f_(e,t,n,r=2e4){if(!Number.isSafeInteger(r)||r<=0||r>2147483647)throw new z(`config`,V(`error.config`));return{execution:{async dispatch(i,a){i.invocation||u_();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)&&u_(),t.pageGrant={grantId:o,expiresAt:s}})}catch(e){throw c.cancel(),e}let l=s-Date.now();(l<=0||a?.aborted)&&(c.cancel(),u_());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=l_.parse(r),a=await pl(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)&&u_(),t.pageGrant.resultHash===void 0?((t.status!==`running`||Date.now()>=t.pageGrant.expiresAt)&&u_(),t.pageGrant.resultHash=a,{duplicate:!1,settled:!1}):(t.pageGrant.resultHash!==a&&u_(),t.status===`uncertain`&&u_(),{duplicate:!0,settled:t.status===`settled`})});return o.duplicate||await n.deliver(t,i.grantId,i.page),o.settled}}}function p_(e,n,r,i){if(typeof e.compareAndSwap!=`function`)throw new z(`config`,V(`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=yg.safeParse(a===void 0?bg():a.state);if(!o.success||a!==void 0&&(typeof a.revision!=`string`||!a.revision))throw new z(`config`,V(`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=xg(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);ug(u,i);let f=yg.safeParse(u);if(!f.success)throw new z(`config`,V(`error.config`),{cause:{code:`session_store_transition`}});let p=a.safeParse(await e.compareAndSwap(t,l,f.data));if(!p.success)throw new z(`config`,V(`error.config`),{cause:{code:`session_store_write_result`}});if(p.data.written){if(p.data.revision===l)throw new z(`config`,V(`error.config`),{cause:{code:`session_store_revision`}});return d}}throw new z(`unavailable`,V(`error.unavailable`),{cause:{code:`session_store_contention`}})}}}var m_=`theorem_session`,h_=/^[A-Za-z0-9_-]{32,128}$/,g_=2592e3;function __(e,t){for(let n of(e.headers.get(`cookie`)??``).split(`;`)){let[e,...r]=n.trim().split(`=`);if(e===t)return r.join(`=`)}}function v_(){return Jr(crypto.getRandomValues(new Uint8Array(32)))}function y_(e){let t=__(e,m_);return t&&h_.test(t)?t:void 0}function b_(e){let t=y_(e);if(t)return{id:t};let n=v_();return{id:n,setCookie:`${m_}=${n}; Path=/; Max-Age=${g_}; HttpOnly; SameSite=Lax${new URL(e.url).protocol===`https:`?`; Secure`:``}`}}var x_=16777216;function S_(e=x_){if(!Number.isSafeInteger(e)||e<=0)throw new z(`config`,V(`error.config`));return e}function C_(e,t,n){let r=e.safeParse(t);if(!r.success)throw new z(`request`,`${n} failed its check: ${wr(r.error)}`);return r.data}function w_(e){let t=S_();if(e.length>t||new TextEncoder().encode(e).byteLength>t)throw new z(`request`,V(`error.request`));try{return JSON.parse(e)}catch{throw new z(`request`,V(`error.request`),{cause:{code:`request_json`}})}}function T_(e){return C_(ci,w_(e),`live message`)}function E_(e){return C_(si,w_(e),`live open message`)}var D_=new Set([`pre_turn`,`post_tool`,`before_end`]);function O_(e){let t=e.inject.filter(e=>e.role===`user`);if(!t.length)throw new z(`request`,`inject must contain user messages`);return{id:e.id,messages:t}}function k_(e,t){return async({stage:n})=>{if(!D_.has(n))return;let r=await e.consume(t);return r?{inject:r.messages,injectId:r.id}:void 0}}function A_(){let e=new Map;return{open(t){e.has(t)||e.set(t,{queue:[],stopped:!1,settle:new Set})},enqueue(t,n){let r=e.get(t);return r?(r.queue.push(structuredClone(n)),!0):!1},consume(t){return e.get(t)?.queue.shift()},stop(t){let n=e.get(t);if(!n)return!1;n.stopped=!0;for(let e of n.settle)e(!0);return n.settle.clear(),!0},stopped(t){let n=e.get(t);return n?n.stopped?Promise.resolve(!0):new Promise(e=>n.settle.add(e)):Promise.resolve(!1)},close(t){let n=e.get(t);for(let e of n?.settle??[])e(!1);e.delete(t)}}}function j_(e,t,n){e.stopped(t).then(e=>{e&&n.abort()},()=>{})}function M_(){throw new z(`unavailable`,V(`error.unavailable`))}function N_(e,t){return e.operationId===t.operationId&&e.callId===t.callId&&e.profileId===t.profileId&&e.toolId===t.toolId&&e.invocationHash===t.invocationHash}function P_(e,t){t.operationId===`__proto__`&&M_();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)&&M_():n&&!N_(n,t)&&M_(),n}function F_(e,t){let n=P_(e,t);return(!n||n.status!==`running`&&n.status!==`uncertain`||n.claimToken!==t.claimToken)&&M_(),n}function I_(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 L_(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 R_(e,t){return{lookup(n){return e.mutate(t,e=>I_(P_(e,n)))},begin(n){let r=crypto.randomUUID(),i=Date.now();return e.mutate(t,e=>I_(P_(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=F_(e,n);L_(e,{...n,invocation:t.invocation},r)})},settleNotStarted(n,r){return e.mutate(t,e=>{let t=P_(e,n);t&&t.status!==`ready`&&M_(),r.effects!==`not_started`&&M_(),L_(e,n,r)})},markUncertain(n,r){return e.mutate(t,e=>{let t=F_(e,n);e.operations[n.operationId]={...n,invocation:t.invocation,...t.pageGrant?{pageGrant:t.pageGrant}:{},status:`uncertain`,reason:r,detectedAt:Date.now()}})}}}function z_(e){return pl(C.parse(e))}async function B_(e,t){return`${e}:${await pl(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 V_(e,t,n={},r){if(t===void 0)return;let i=C.parse(t),a=await z_(i),o=await B_(a,n),s=Object.values(n),c=r!==void 0&&s.length>0&&e.some(e=>e.startsWith(`${a}:`))&&s.every(e=>e.status===`settled`&&e.outcome.effects!==`unknown`&&e.outcome.event.tool.readBack!==void 0&&r.some(t=>t.role===`tool`&&t.tool_call_id===e.callId&&t.name===e.toolId&&t.content===e.outcome.event.tool.readBack));if(!e.includes(o)&&!c&&!(s.length===0&&e.includes(a)))throw new z(`request`,V(`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 U_(e){let t=e.session?void 0:b_(e.request),n=e.session?(await e.session(e.request))?.trim():t?.id;if(!n)throw new z(`auth`,V(`session.sign_in`),{copy:{key:`session.sign_in`}});let r=e.operationRetentionMs??864e5;if(!Number.isSafeInteger(r)||r<=0)throw new z(`config`,V(`error.config`));let i=sg(e.sessionLimits),a=p_(e.sessionStore,Zr(`session boundary`,e.gateTtlMs),r,i);await a.read(n);let o=f_(a,n,e.pageToolBroker??d_());return{pageExecution:o.execution,answerPageResult:o.answer,sessionId:n,...t?.setCookie?{setCookie:t.setCookie}:{},toolExecution:R_(a,n),async prepareLiveOpen(e,t){let r=jg(C_(si,e,`live open`),t),i=await a.read(n),o=await V_(i.providerCheckpoints,r.providerState,i.operations);if(o&&Object.values(i.operations).some(e=>e.status!==`settled`))throw new z(`unavailable`,V(`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 V_(r.providerCheckpoints,e,r.operations,t)},async recordCheckpoint(e){let t=await z_(e);await a.mutate(n,async e=>{e.providerCheckpoints=H_(e.providerCheckpoints,[await B_(t,e.operations)],i.maxCheckpoints)})}}}function W_(e,t){return Fr(e,t.labels,t.clientEvents)}function G_(e,t){return JSON.stringify({type:`error`,...W_(e,t)})}function K_(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 q_(e,t,n,r,i){let a=t=>{t.catch(t=>{e.send(G_(t,r))})};e.addEventListener(`message`,o=>{try{if(typeof o.data==`string`){let s=T_(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),Y_(e,t,c===void 0?d:{...d,page:{output:c}},r);return}}}(o.data instanceof ArrayBuffer||o.data instanceof Uint8Array)&&a(t.sendAudio({data:_n(o.data instanceof Uint8Array?o.data:new Uint8Array(o.data)),mimeType:`audio/pcm;rate=16000`}))}catch(t){e.send(G_(t,r))}})}async function J_(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(xr(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,ni(t)),e.send(JSON.stringify({type:`executeToolResult`,callId:t.callId,operationId:ni(t),status:`dispatched`,grantId:t.grantId,arguments:t.arguments}))),t.phase===void 0?a.start(t.callId,ni(t)):(t.phase===`complete`||t.phase===`error`||t.phase===`cancel`)&&a.stop(t.callId,ni(t))}e.send(JSON.stringify({type:`events`,events:pr([n],o.clientEvents)}))}}catch(t){e.send(G_(t,o))}finally{a.stopAll(),i.close();try{e.close(1e3,`session ended`)}catch{}}}async function Y_(e,t,n,r){try{let r=await t.executeTool(n);e.send(JSON.stringify(r.gated?{type:`executeToolResult`,callId:n.callId,operationId:n.operationId,status:`gated`,gate:r.gated}:{type:`executeToolResult`,callId:n.callId,operationId:n.operationId,status:`settled`}))}catch(t){e.send(JSON.stringify({type:`executeToolResult`,callId:n.callId,operationId:n.operationId,status:`refused`,body:W_(t,r)}))}}var X_=2e4;function Z_(e,t,n,r,i,a,o={}){let s=K_(t,o.clientCallTimeoutMs??X_),c={labels:a,clientEvents:o.clientEvents};return q_(e,t,s,c,o.pageResult),e.addEventListener(`close`,()=>{t.close(`client disconnected`)}),J_(e,t,n,r,i,s,c,o.beforeEvent)}function Q_(){let e=crypto.randomUUID(),t=Cg(),n=U_({request:new Request(`https://studio.local`),session:()=>e,sessionStore:t}),r=p_(t,18e5,dg,sg()),i=f_(r,e,d_());return{boundary:n,execution:R_(r,e),pageExecution:i.execution,pageResult:i.answer}}var $_=ag();ds(it,$_.sink);async function*ev(e){let t=[],n=$_.route(e=>t.push(e)),r;try{yield*e(n.metadata)}catch(e){r={error:e}}finally{n.close()}for(let e of t)yield{type:`trace`,record:e};if(r)throw r.error}function tv(e,t){if(e===`live`)throw new z(`request`,`Studio ${t} does not support live profiles.`)}async function nv(e,t){let{scope:n,profile:r}=await rg(e.profile,e.customTools,e.structured,e.runtime,e.dependencies);tv(r.type,`turn runner — use runSession`);let i=Yn(r,n.tools);if(i.type===`live`)throw new z(`request`,`A studio chat does not run a live profile.`);return{scope:n,profile:r,iface:i,host:i.providerContinuation?.history===`stateless`?void 0:Ng({...t,profile:r,clientEvents:Ar(e.runtime)})}}function rv(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:Uh(t,r)},Vh(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}:{}},Vh(r,t,n,o)))?.history},...e.model?{model:e.model}:{},...e.effort?{effort:e.effort}:{},signal:a}}function iv(e,t,n,r,i,a){let o=n.conversation.paused?.events??[],s=di(o).find(e=>e.callId===r.callId&&e.operationId===r.operationId);if(!s)throw new z(`internal`,`the paused reply holds no call ${r.callId}`);return cv(e,t,r,{name:s.name,input:s.arguments,gateKind:s.gateKind,snapshot:ii(o),promoted:ri(o),...n.conversation.paused?.model?{model:n.conversation.paused.model}:{},...i?{sessionPermissions:i}:{}},a)}async function*av(e){let{request:t,runtime:n}=e,{scope:r,profile:i,iface:a,host:o}=await nv(e,e.conversations),s=Xg(a,t.input),c=t.replay?.sessionPermissions;if(!o&&t.conversation!==void 0)throw c_(`continue`);if(!o&&t.abandon)throw c_(`walk away from`);let l=o?await Pg(o,t.conversation,{kind:`message`,...t.abandon?{abandon:t.abandon}:{}},t.transcript?{profile:i,blocks:t.transcript}:void 0):void 0,u=l?(t.abandon??[]).map(e=>({reference:e,invoke:iv(r,i.id,l,{...e,decision:`abandon`},c,n)})):[],d=globalThis.crypto.randomUUID();await e.steer.open(d);let f=new AbortController;j_(e.steer,d,f);let p=AbortSignal.any([e.signal,f.signal]);yield{type:`steer_inbox`,inbox:d};try{yield*ev(a=>{let f=rv({scope:r,profile:i,runtime:n,metadata:a,sessionPermissions:c,...t.model?{model:t.model}:{},...t.effort?{effort:t.effort}:{},signal:p,onStage:k_(e.steer,d)});if(!o||!l)return f.run({input:s.input,model:t.model,effort:t.effort});let m=u.map(({reference:e,invoke:t})=>({...e,events:r.invokeTool({...t,metadata:a,signal:p})}));return n_({host:o,opened:l,message:s,walkAway:m,runner:f})})}finally{await e.steer.close(d)}}var ov=p(f(),n());function sv(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 cv(e,t,n,r,i){let a=r.name===void 0?void 0:e.tools.get(r.name);if(!a)throw new z(`request`,`invoke: the paused call names no tool in this draft`);let o=oi(n,{name:a.name,arguments:C_(ov,r.input,`replayed call input`),gateKind:r.gateKind,...sv(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:Dm({[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:Uh(e,i)}}function lv(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 uv(e,t,n,r,i){let a=cv(e,t,lv(n),n.replay??{},r);return ev(t=>e.invokeTool({...a,metadata:t,signal:i}))}async function*dv(e){let{answer:t,runtime:n,signal:r}=e,{scope:i,profile:a,host:o}=await nv(e,e.conversations),s=lv(t),c=t.replay?.sessionPermissions;if(!o){if(t.conversation!==void 0)throw c_(`continue`);yield*uv(i,a.id,t,n,r);return}if(t.conversation===void 0)throw c_(`continue`);let l=await Pg(o,t.conversation,{kind:`answer`,call:{callId:s.callId,operationId:s.operationId}}),u=iv(i,a.id,l,s,c,n);yield*ev(e=>r_({host:o,opened:l,call:{callId:s.callId,operationId:s.operationId},settling:i.invokeTool({...u,metadata:e,signal:r}),runner:rv({scope:i,profile:a,runtime:n,metadata:e,sessionPermissions:c,signal:r})}))}async function fv(e,t,n){let{profile:r,host:i}=await nv(e,t);if(!i)throw c_(`start`);let{ref:a,view:o}=await Lg(i,r,n);return{conversation:a,view:o}}async function pv(e,t,n){let{host:r}=await nv(e,t);if(!r)throw c_(`read`);return zg(r,(await Pg(r,n.conversation,{kind:`read`})).conversation)}async function mv(e,t,n,r){let{scope:i,profile:a,host:o}=await nv(e,t);if(!o)throw c_(`rewind`);let s=await Pg(o,n.conversation,{kind:`rewind`,at:n.at}),c=s_(s.conversation).map(t=>{let n=iv(i,a.id,s,{...t,decision:`abandon`},void 0,e.runtime);return{...t,events:i.invokeTool({...n,signal:r})}}),l=await a_({host:o,opened:s,at:n.at,walkAway:c});if(l.ref===null)throw new z(`internal`,V(`error.internal`));return{conversation:l.ref,view:zg(o,l.conversation)}}async function*hv(e){let{scope:t,profile:n}=await gv(e);yield*uv(t,n.id,e.answer,e.runtime,e.signal)}async function gv(e){let t=await rg(e.profile,e.customTools,void 0,e.runtime,e.dependencies);if(t.profile.type!==`host`)throw new z(`request`,`Studio calls run host profiles only.`);return t}async function*_v(e){let{scope:t,profile:n}=await gv(e);yield*ev(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:Uh(t,e.runtime),signal:e.signal,metadata:r}))}function vv(e){let t=[];return!e||!Wr(e).record?{traces:t}:{traces:t,sink:{write:e=>(t.push(e),Promise.resolve())}}}async function yv(e,t,n,r,i){let{scope:a,profile:o}=await rg(e.profile,[],void 0,{mode:`byok`}),{traces:s,sink:c}=vv(o.observability);try{return{result:await a.runDecision({profile:o.id,state:t,questions:e.questions??{},assets:Er(e.images,i),signal:r},{...n,...c?{sink:c}:{}}),traces:s}}catch(e){throw Or(e,s)}}async function bv(e,t,n){let{scope:r,profile:i}=await rg(e.profile,e.customTools,e.structured,n,e.dependencies);if(i.type!==`embedding`)throw new z(`request`,`Studio embedding runs require an embedding profile.`);let{traces:a,sink:o}=vv(i.observability);try{return{result:await r.runEmbedding({...t,profile:i.id},{...Vh(n,r,i,t.model),...o?{sink:o}:{}}),traces:a}}catch(e){throw Or(e,a)}}export{Z_ as attachStudioLiveSession,Q_ as browserExecution,A_ as createMemorySteerInbox,Og as createSealedConversationStore,jg as liveSessionOpen,E_ as parseLiveOpenMessage,mv as rewindStudio,yv as runStudioDecision,bv as runStudioEmbedding,fv as startStudioConversation,O_ as steerUnitOf,_v as streamStudioCall,hv as streamStudioHostInvoke,dv as streamStudioInvoke,av as streamStudioTurn,pv as studioConversation,rg as studioScope,$_ as studioTraces};