@theoremjs/studio 0.3.4-next.429.g04f32ef → 0.3.4-next.433.gf6b4da5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/compile.js +29 -5
- package/package.json +4 -4
- package/page/assets/{Banner-BXxhF-o1.js → Banner-DqFqeJx4.js} +2 -2
- package/page/assets/{ConsoleFrame-Zogp88Wc.js → ConsoleFrame-CZvaA-nP.js} +1 -1
- package/page/assets/{ContextMenu-CBOyKWd3.js → ContextMenu-DX9Xmroi.js} +2 -2
- package/page/assets/{ToolResultCharts-DoQ48Rsd.js → ToolResultCharts-142qwvoG.js} +1 -1
- package/page/assets/{TraceInspector-75n9__a7.js → TraceInspector-CiszHOn4.js} +1 -1
- package/page/assets/{TraceOverview-UM4eJDLe.js → TraceOverview-DpGrlsvE.js} +1 -1
- package/page/assets/{browser-engine-bQlfBE9p.js → browser-engine-DhWIzxGh.js} +1 -1
- package/page/assets/browser-transport-CYmonEpj.js +47 -0
- package/page/assets/{export-agent-DX9oOrot.js → export-agent-DD3nkkXc.js} +1 -1
- package/page/assets/{guardrail-tester-BNJdJRUn.js → guardrail-tester-CB_zfwu-.js} +1 -1
- package/page/assets/{index-DF970vI_.js → index-D3Myde0v.js} +6 -6
- package/page/assets/{studio-code-pane-B8JqSxFl.js → studio-code-pane-BEu6fsah.js} +1 -1
- package/page/assets/{studio-console-BbXL5cQm.js → studio-console-C1aZk0Nc.js} +1 -1
- package/page/assets/{studio-decision-BX7Q1Ux3.js → studio-decision-B4Xv1U6i.js} +1 -1
- package/page/assets/{studio-embedding-CaD6jPeS.js → studio-embedding-B88JqYyA.js} +1 -1
- package/page/assets/{studio-host-console-Cc0ph_Fn.js → studio-host-console-CV6UmZhm.js} +2 -2
- package/page/assets/{studio-labels-J8Gxj-VB.js → studio-labels-W7ubfnI9.js} +1 -1
- package/page/assets/{studio-live-TQtVqURP.js → studio-live-DsZTO9nf.js} +1 -1
- package/page/assets/{studio-map-D-aUd36N.js → studio-map-B8KLLT-0.js} +1 -1
- package/page/assets/{studio-trace-replay-DHRQV1xK.js → studio-trace-replay-CNI1i-QJ.js} +1 -1
- package/page/assets/{use-one-call-DOmiIAXx.js → use-one-call-BDdS64oW.js} +1 -1
- package/page/index.html +5 -5
- package/ui/studio-screen.d.ts +7 -6
- package/ui/studio-screen.js +23 -25
- package/page/assets/browser-transport-DxIOg1UT.js +0 -47
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/compile-egress-BSxOdX4K.js","assets/rolldown-runtime-hePW80VL.js","assets/host-patterns-C9RMP16Q.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-DpV6A1kQ.js";import{C as t,E as n,T as r,d as i,dt as a,g as o,l as s,m as c,o as l,p as u,v as d,w as f,x as p,y as m}from"./schemas-BQ9Jydzb.js";import{$ as h,$t as g,A as _,An as v,At as y,Bn as b,Br as x,C as S,Cn as C,Cr as w,Ct as T,Dn as E,Dt as D,En as O,Er as k,Et as A,Fr as j,Ft as ee,Gt as te,In as M,Ir as ne,It as N,Jt as re,L as ie,Ln as P,Lr as ae,Lt as F,Mn as oe,Mr as se,Mt as ce,Nn as le,Nr as ue,Nt as de,On as fe,Or as pe,Ot as me,Pr as he,Pt as ge,Q as _e,Rn as ve,Rr as I,Rt as ye,Sn as be,St as xe,Tn as Se,Tt as Ce,Ut as we,Vr as Te,Wn as Ee,Xt as De,Yt as Oe,_n as ke,_t as Ae,an as je,at as Me,bn as Ne,br as Pe,bt as Fe,ct as Ie,dn as Le,dt as Re,et as ze,fn as Be,ft as Ve,gn as He,gt as Ue,hn as We,ht as Ge,in as Ke,it as qe,jn as Je,jr as Ye,jt as Xe,kr as Ze,kt as Qe,lr as $e,lt as et,mn as L,mt as tt,nn as nt,nt as R,on as rt,or as it,ot as at,p as ot,pt as z,qt as st,rn as ct,rt as lt,sn as ut,sr as dt,st as ft,tn as pt,tt as mt,ut as ht,v as gt,vn as _t,vr as vt,wn as yt,wr as B,wt as bt,xn as xt,xr as St,xt as Ct,yn as wt,yt as Tt,zn as Et,zr as V}from"./tool-schema-BlUbzOu9.js";import{c as H,t as Dt}from"./host-patterns-C9RMP16Q.js";import{$ as Ot,A as kt,At,B as jt,Ct as Mt,D as U,Dn as Nt,E as Pt,Et as Ft,Ft as It,It as Lt,J as Rt,K as zt,L as Bt,M as Vt,Mn as W,Mt as Ht,Nt as Ut,O as G,Ot as Wt,Pt as Gt,St as Kt,Tt as qt,U as Jt,Y as Yt,Z as Xt,_n as Zt,_t as Qt,an as $t,at as en,bn as tn,bt as nn,ct as rn,dt as an,et as on,fn as sn,gt as cn,hn as ln,ht as un,j as dn,jt as fn,k as pn,kt as mn,ln as hn,lt as gn,mn as _n,mt as vn,ot as yn,pn as bn,pt as xn,q as Sn,st as Cn,vn as wn,vt as Tn,w as En,xt as Dn,yt as On,z as kn}from"./shaped-data-0GUF7Al3.js";import{$ as An,At as jn,B as Mn,Bt as Nn,Ct as Pn,Dt as Fn,Et as In,G as Ln,Gt as Rn,Ht as zn,J as Bn,Jt as K,K as Vn,Kt as Hn,Lt as Un,M as Wn,Mt as Gn,N as Kn,Nt as qn,Ot as Jn,Pt as Yn,Q as Xn,Rt as Zn,St as Qn,Tt as $n,U as er,Ut as tr,Vt as nr,Wt as rr,X as ir,Y as ar,Yt as or,Z as sr,_t as cr,a as lr,at as ur,bt as dr,ct as fr,dt as pr,ft as mr,gt as hr,ht as gr,i as _r,it as vr,jt as yr,k as br,kt as xr,l as Sr,lt as Cr,m as wr,mt as Tr,n as Er,o as Dr,ot as Or,pt as kr,qt as Ar,r as jr,rt as Mr,st as Nr,tt as Pr,ut as Fr,vt as Ir,wt as Lr,xt as Rr,yt as zr,zt as Br}from"./reader-CVFKFctz.js";import{a as Vr,t as Hr}from"./live-ingress-lDUGPwth.js";import{t as Ur}from"./trace-record-BjsBbPRl.js";import{n as Wr,r as Gr,t as Kr}from"./crypto-Boxudvjl.js";import{D as qr,E as Jr,T as Yr,b as Xr,c as Zr,g as Qr,i as $r,l as ei,u as ti,v as ni,w as ri}from"./turn-client-4GHmGV_4.js";import{n as ii,t as ai}from"./live-messages-CI-oP2dK.js";import{n as oi,r as si}from"./lent-keys-C32ems-I.js";import{$ as ci,X as li,Z as ui,ct as di,et as fi,it as pi,nt as mi,rt as hi,tt as gi}from"./index-DF970vI_.js";function _i(){return{given:new Set,remote:new Map}}var vi=/[\p{L}\p{N}_.+-]/u,yi=/[\p{L}\p{N}_-]/u,bi=/(?:https?:\/\/|www\.)[^\s'"<>)\]]+/gi,xi=/\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g,Si=/[/?#]/;function Ci(e,t){let n=t;for(;n<e.length;){let t=String.fromCodePoint(e.codePointAt(n)??0);if(!yi.test(t))break;n+=t.length}return n}function wi(e,t){let n=Ci(e,t);if(n===t)return-1;let r=1;for(;e.charAt(n)===`.`;){let t=Ci(e,n+1);if(t===n+1)break;n=t,r+=1}return r>1?n:-1}function Ti(e){let t=e.length;for(;t>0&&(e.charAt(t-1)===`.`||e.charAt(t-1)===`,`);)--t;return e.slice(0,t)}function Ei(e){let t=[],n=e.indexOf(`@`);for(;n>=0;){let r=n;for(;r>0&&vi.test(e.charAt(r-1));)--r;let i=r<n?wi(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 Di(e){let t=e.replace(/^https?:\/\//i,``),n=t.search(Si),r=n<0?t:t.slice(0,n);return Ti(r.slice(r.lastIndexOf(`@`)+1).replace(/:\d*$/,``).toLowerCase()).replace(/^www\./,``)}function Oi(e){let t=Ei(e),n=e;for(let{start:e,end:r}of t)n=n.slice(0,e)+` `.repeat(r-e)+n.slice(r);let r=[...t];for(let e of[...n.matchAll(bi)]){let t=Di(e[0]);t&&r.push({key:`host:${t}`,start:e.index,end:e.index+e[0].length})}for(let e of[...n.matchAll(xi)])r.push({key:`account:${e[0].toLowerCase()}`,start:e.index,end:e.index+e[0].length});return r}function ki(e){let t=e.trimStart().charAt(0);if(t===`{`||t===`[`)try{return JSON.parse(e)}catch{return}}var Ai=32;function ji(e,t,n=0){if(!(n>Ai)){if(typeof e==`string`){let r=ki(e);r===void 0?t(e):ji(r,t,n+1)}else if(Array.isArray(e))for(let r of e)ji(r,t,n+1);else if(e&&typeof e==`object`)for(let r of Object.values(e))ji(r,t,n+1)}}function Mi(e,t=!1){let n=new Set;return ji(e,e=>{let r=e.trim(),i=Oi(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 Ni(e,t){for(let n of Mi(t))e.given.add(n)}function Pi(e,t,n){for(let r of t)r.role===`assistant`||r.role===`tool`||n.has(r)||Ni(e,Ut(r).text)}function Fi(e,t,n){Ni(e,t.system),n.has(t.input)||Ni(e,Ut(t.input).text),Pi(e,t.history??[],n)}function Ii(e,t,n){if(!Ne(n.origin)){Ni(e,[t.finding,t.data]);return}let r=ki(t.finding),i=new Set([...r===void 0?Mi(t.finding):Mi(r,!0),...Mi(t.data,!0)]);for(let t of i)e.remote.has(t)||e.remote.set(t,n.tool)}function Li(e,t,n,r){if(!e||e.remote.size===0)return{verdict:{action:`allow`}};let i=[...Mi(t)].filter(t=>e.remote.has(t)&&!e.given.has(t));if(i.length===0)return{verdict:{action:`allow`}};let a=i.map(e=>e.slice(e.indexOf(`:`)+1)),o=a.map(e=>({rule:tn.remoteDestination,severity:`high`,match:e})),s={destination:a.join(`, `),sources:[...new Set(i.map(t=>e.remote.get(t)??``))].join(`, `)},c=n.taint?.remoteDestination??`off`;return c===`block`?{verdict:{action:`block`,hits:o,rejection:W(`taint.destination_blocked`,s,r)}}:{verdict:{action:`flag`,hits:o},...c===`confirm`?{confirm:W(`taint.destination_confirm`,s,r)}:{}}}var Ri={image:`thought.omitted_image`,link:`thought.omitted_link`,instructions:`thought.omitted_instructions`},zi={rule:Zt.ungiven_images,severity:`high`},Bi={rule:Zt.ungiven_links,severity:`high`},Vi={rule:Zt.marker_leak,severity:`high`};function Hi(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 Ui(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 Wi=8,Gi=16;function Ki(e){let{omit:t={},canary:n,privateSystem:r,ends:i,given:a,labels:o}=e,s=[...t.markers?[`marker_leak`]:[],...t.images?[`ungiven_images`]:[],...t.links?[`ungiven_links`]:[]],c=t.imagesRead??t.images!==void 0,l=n??e.planted,u=Sn({canary:l,labels:o}),d=e=>({...e,...a?{given:a}:{}});function f(e,t){let n=W(Ri[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?Rn({detect:s,allow:{ungiven_images:t.images??{},ungiven_links:t.links??{}},skipImages:c,...a?{given:a}:{},...u?{note:u}:{}}):void 0,g=n?Kt(n):void 0,_=0,v=0,E(e)}function E(e){v+=e.length;let t=(h?.push(e).length??0)>0,n=g?.push(e)??!1,i=!1;if(r){let e=(p+m).slice(0,v),t=Lt(e,_);i=It(e.slice(t),r,l).length>0,_=e.length}return t||n||i}function D(e){let i=[];if(t.images)for(let n of gn(e,d(t.images)))i.push({...n,kind:`image`,hit:zi});if(t.links)for(let n of an(e,d(t.links),c))i.push({...n,kind:`link`,hit:Bi});if(t.markers){let t=[new RegExp(Ot.source,`gi`),...u?[on(u)]:[]];for(let n of t.flatMap(t=>[...e.matchAll(t)])){let e=n.index;i.push({start:e,end:e+n[0].length,kind:`instructions`,hit:Vi})}}if(n)for(let[t,r]of Tn(e,n))i.push({start:t,end:r,kind:`instructions`,hit:_n});if(r)for(let[t,n]of It(e,r,l))i.push({start:t,end:n,kind:`instructions`,hit:ln});return i}function O(e){return b.find(t=>t.start<e&&e<t.end)}function k(e,t){let n=p+m,r=``,i=e;for(let a of b)a.end<=e||a.start>=t||(r+=n.slice(i,a.start)+a.raw,i=a.end);return r+n.slice(i,t)}function A(){let e=p+m;for(let t=xn;;t*=2){let n=p.length,i=0;for(let e=b.length-1;n>0&&i<t;){let r=b[e];if(r&&r.end>n)e--;else if(r&&r.end===n)i+=r.raw.length,n=r.start,e--;else{let e=Math.max(r?.end??0,n-(t-i));i+=n-e,n=e}}if(b=b.filter(e=>e.end>n),b.length===0)return;let a={text:``,held:0,pieces:[]},o=n;for(let t of[...b,void 0]){let n=t?t.start:e.length;if(n>o&&a.pieces.push({raw:a.text.length,shown:o}),o<=p.length&&p.length<=n&&(a.held=a.text.length+p.length-o),a.text+=e.slice(o,n),!t)break;a.pieces.push({raw:a.text.length,shown:t.start,mark:t}),a.text+=t.raw,o=t.end}if(!r||n===0||Lt(a.text,a.held)>0)return a}}function j(){let e=A();if(!e)return[];let t=[];if(n)for(let[r,i]of Tn(e.text,n))t.push([r,i,_n]);if(r)for(let[n,i]of It(e.text,r,l))t.push([n,i,ln]);let i=[];for(let[n,r,a]of t){if(r<=e.held)continue;let t=Hi(e,n),o=Hi(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 ee(){return Ui([...D(p+m),...j()])}function te(){return ee().filter(({end:e})=>e>p.length)}function M(e,t=!1){let n=O(e);return n?t?n.end:n.start:e}function ne(e){let t=te(),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(M(e)),S=i?.has(a.rule)??!1;let o=S?n.length:Math.max(l,M(t,!0)),d=f(r,p+c),m=p.length+c.length;if(s.push({start:m,end:m+d.length,raw:k(l,o)}),c+=d,w.set(a.rule,a),l=o,S)break}return y=void 0,a&&!S&&(u(M(a.start)),y=p.length+c.length),u(n.length),b=s,m=c,x=0,o.length>0}function N(){let e=ee()[0],t=e?Math.max(0,M(e.start)-p.length):0,n=m.slice(0,t),r=f(e?.kind??`instructions`,p+n),i=p.length+t,a=k(i,p.length+m.length);b=b.filter(e=>e.end<=i),b.push({start:i,end:i+r.length,raw:a}),m=n+r,x=0,e&&w.set(e.hit.rule,e.hit),y=void 0,S=!0}function re(){let e=p+m;return y===void 0?e:e.slice(0,y)}function ie(){for(let e=0;e<Wi&&!(C>=Gi);e++){let e=new Set(b.map(e=>e.start));if(!ne(!1)){if(y===void 0)break;return}if(S||(b.some(t=>!e.has(t.start))&&C++,!T(re())))return}N()}function P(){let e=p.length+m.length,t=h?h.holdFrom():e,i=n?ae(n):e,a=r?p.length+Gt(m,r,l):e,o=Math.min(t,i,a,oe()??e,y??e);return M(o<p.length?o:p.length+At(m,o-p.length))}function ae(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+nn(F(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+nn(F(t),e)}return x=Math.min(r,p.length+m.length-vn),Math.max(p.length,r)}function F(e){return e<p.length?p.slice(e)+m:m.slice(e-p.length)}function oe(){let e=A();if(!e)return;let t=e.text.slice(e.held),i=n?Qt(t,n,e.text.slice(0,e.held)):t.length,a=r?Gt(t,r,l):t.length;return Hi(e,e.held+Math.min(i,a))}function se(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)||j().length>0)&&ie(),S))return se(``);let t=Math.max(0,P()-p.length),n=m.slice(0,t);return p+=n,m=m.slice(t),se(n)},flush(){if(!S){for(let e=0;e<Wi&&!S&&ne(!0);e++);!S&&m&&(D(p+m).length>0||j().length>0)&&N()}let e=m,t=p+m;p=n||r?Ft(t,n,r):``;let i=p.length-t.length;return b=b.filter(e=>e.start+i>=0).map(e=>({...e,start:e.start+i,end:e.end+i})),m=``,x=0,y=void 0,S=!1,C=0,T(p),se(e)},carryOut:()=>p}}function qi(...e){let t=e.filter(e=>e!==void 0);return t.length===0?{}:{found:{action:t.reduce((e,t)=>Jt(e,t.action),`allow`),hits:[...new Map(t.flatMap(({hits:e})=>e).map(e=>[e.rule,e])).values()]}}}function Ji(e,t,n,r){let i=()=>rr(`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,...qi(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()],...qi(n,r?.found,u.found)}},carryOut:()=>e?.carryOut()??``}}var Yi={canary_leak:_n,prompt_leak:ln,marker_leak:Vi,ungiven_images:zi,ungiven_links:Bi},Xi=[`marker_leak`,`ungiven_images`,`ungiven_links`];function Zi(e,t){let{canary:n,privateSystem:r}=e,i=n?Kt(n):void 0,a=``,o=new Set;return{read(e){let n=Lt(a+e,a.length);a+=e;let s=[];i?.push(e)&&s.push(_n),r&&It(a.slice(n),r,t).length>0&&s.push(ln);let c=s.filter(e=>!o.has(e.rule));for(let e of c)o.add(e.rule);return c},reset(){i=n?Kt(n):void 0,a=``,o=new Set}}}function Qi(e,t,n,r){let i=Zi(n,r),a=new Map(Object.entries(Yi).map(([e,n])=>[n.rule,t[e].thought]));function o(e,t){let n=[...t,...e.hits.filter(e=>a.has(e.rule))];if(n.length===0)return e;let r=n.reduce((e,t)=>Jt(e,a.get(t.rule)??`ignore`),e.found?.action??`allow`);return{text:e.text,hits:e.hits.filter(e=>!a.has(e.rule)),found:{action:r,hits:[...e.found?.hits??[],...n]}}}return{push:t=>o(e.push(t),i.read(t)),flush(){return i.reset(),o(e.flush(),[])},carryOut:()=>e.carryOut()}}async function $i(e,t,n){let{detect:r}=e,i=Xi.filter(e=>ea(r,e)),a=na(r,t,ea),o=na(r,t,(e,t)=>e[t].thought===`flag`),s=i.length>0||ra(a)||ra(o),c=jt(e,t);(s||Vt([`thought`],r,c))&&await Hn();let l=s?Ki({omit:ta(e),...a,...ia(r),...aa(t),...n?{carry:n}:{}}):void 0;return Ji(l&&Qi(l,r,o,t.canary),r,c,i)}function ea(e,t){return e[t].thought===`redact`||e[t].thought===`block`}function ta({detect:e,allow:t}){return{...ea(e,`marker_leak`)?{markers:!0}:{},...ea(e,`ungiven_images`)?{images:t.ungiven_images}:{},...ea(e,`ungiven_links`)?{links:t.ungiven_links}:{},imagesRead:e.ungiven_images.thought!==`ignore`}}function na(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 ra(e){return e.canary!==void 0||e.privateSystem!==void 0}function ia(e){let t=new Set(Object.entries(Yi).filter(([t])=>e[t].thought===`block`).map(([,e])=>e.rule));return t.size>0?{ends:t}:{}}function aa({canary:e,givenUrls:t,labels:n}){return{...e?{planted:e}:{},...t?{given:t}:{},...n?{labels:n}:{}}}var oa={rule:`live.untranscribed-audio`,severity:`high`};async function sa(e,t,n,r,i){let a=L(e.guardrails),o={stage:`live_outbound`,trust:`untrusted`,profileId:e.id,...Bt(a.detect,{canary:t,privateSystem:n}),...e.labels?{labels:e.labels}:{},...r?{givenUrls:r}:{},...i?{ownTools:i}:{}},s=await $i(a,o);return{policy:a,context:o,gate:await nr(a,o,`live_reply`),held:[],releasedTo:0,withholdVisible:!1,...s?{thoughts:s}:{}}}function ca(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 la(e,t,n=[]){let r=Ar(`live_outbound`,`untrusted`,t,`block`);return{action:`withhold`,error:new H(`safety`,e),events:[...n,...r?[r]:[]]}}function ua(e){return e.accumulated().length-e.unreleased().length}function da(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 fa(e,t,n,r){if(!n.blocked){let i=n.found&&dn(`live_reply`,n.found);i&&r.push(K(i)),da(e,t,ua(t),r);return}let i=n.hits.filter(Yt);i.length>0&&(e.promptLeaks=i),e.withholdVisible=!0;let a=n.boundary?void 0:Ar(`live_outbound`,`untrusted`,n.hits,`block`);a&&r.push(a)}function pa(e,t,n){e.withholdVisible||e.held.length===0||fa(e,t,t.flush(),n)}function ma(e,t,n,r){let i=t.accumulated().length;e.held.push({event:n,start:i,end:r?i:1/0})}function ha(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 ga(e,t,n,r){let i=n.text??``;if(!i)return;let a=t.accumulated().length;ha(e,a+i.length),e.held.push({event:n,start:a,end:a+i.length});let o=t.process(i);e.withholdVisible||fa(e,t,o,r)}function _a(e,t){let n=[],{gate:r}=e;if(!r){let{thoughts:n}=e;return xa(n?t.flatMap(e=>e.type===`thought`?va(n.push(e.text),e):[e]):t)}let i=!1;for(let a of t){if(Mt(a)){i||=!!a.text,ga(e,r,a,n);continue}if(a.type===`media`){ma(e,r,a,i),e.withholdVisible||da(e,r,ua(r),n);continue}pa(e,r,n),ya(a)&&ba(e,r,n);let t=a.type===`tool`?void 0:Rt(a,e.context,e.policy.detect,`live_reply`);if(t?.stop)return la(Xt(t.hits),t.hits,n);if(t){let e=dn(`live_reply`,{action:`flag`,hits:t.hits});e&&n.push(K(e))}a.type===`thought`&&e.thoughts?n.push(...va(e.thoughts.push(a.text),a)):n.push(a)}return xa(n)}function va({text:e,hits:t,found:n},r){let i=n&&dn(`thought`,n),a=Ar(`thought`,`untrusted`,t,`redact`);return[...i?[K(i)]:[],...a?[a]:[],...e?[{...r,text:e}]:[]]}function ya(e){return e.type===`done`&&e.stop?.kind===`generation_complete`}function ba(e,t,n){let r=t.accumulated().length;e.withholdVisible||r===0||ua(t)<r||da(e,t,r,n,!0)}function xa(e){return e.length===0?{action:`idle`}:{action:`emit`,events:e}}function Sa(e,t,n){let{detect:r,blockedReply:i}=e.policy,a=yt({text:t.accumulated()},r,{boundary:`live_reply`,...e.withholdVisible?{reportedTo:ua(t)}:{},scope:jt(e.policy,e.context)}),o=t.accumulated().slice(0,e.releasedTo),s=E(a,e.promptLeaks),c=s&&s!==a.blocked?Ar(`live_outbound`,`untrusted`,s,`block`):void 0,l=[...n,...a.events.map(K),...c?[c]:[]];if(s){if(i.onBlock===`refuse`){let t=Se(o,e.context.labels);return{action:`emit`,events:[...l,{type:`text`,text:t}]}}return{action:`withhold`,error:new H(`safety`,zt.egress),events:l}}if(a.rewritten){let e=O(o,a.payload.text);return{action:`emit`,events:[...l,{type:`text`,text:e}]}}return da(e,t,t.accumulated().length,l,!0),xa(l)}function Ca(e,t){if(e.held.length===0)return t;let n=Ar(`live_outbound`,`untrusted`,[oa],`block`);return n?[...t,n]:t}function wa(e,t){let n=[];return pa(e,t,n),t.accumulated()?Sa(e,t,n):xa(Ca(e,n))}function Ta(e){let t=e.thoughts?va(e.thoughts.flush(),{type:`thought`,text:``}):[];if(!e.gate)return xa(t);let n=wa(e,e.gate);return ca(e),t.length===0?n:n.action===`idle`?{action:`emit`,events:t}:{...n,events:[...t,...n.events??[]]}}function Ea(e){e.thoughts?.flush(),ca(e)}var Da=d().int().positive().max(2**53-1),Oa=Da.max(2147483647),ka=t({operationTimeoutMs:Oa,connectTimeoutMs:Oa,liveStepTimeoutMs:Oa,maxWireRecordBytes:Da,maxWireResponseBytes:Da,maxEventBytes:Da,maxStepBytes:Da,maxStepEvents:Da,maxPendingToolCalls:Da});function Aa(e={}){return Object.freeze(ka.parse({operationTimeoutMs:12e4,connectTimeoutMs:3e4,liveStepTimeoutMs:12e4,maxWireRecordBytes:16777216,maxWireResponseBytes:67108864,maxEventBytes:16777216,maxStepBytes:67108864,maxStepEvents:1e5,maxPendingToolCalls:32,...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 H||j(e)||ne(e)?e:new H(`network`,se(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 H&&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(`
|
|
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,$t as g,A as _,An as v,At as y,Bn as b,Br as x,C as S,Cn as C,Cr as w,Ct as T,Dn as E,Dt as D,En as O,Er as k,Et as A,Fr as j,Ft as ee,Gt as te,In as M,Ir as ne,It as N,Jt as re,L as ie,Ln as P,Lr as ae,Lt as F,Mn as oe,Mr as se,Mt as ce,Nn as le,Nr as ue,Nt as de,On as fe,Or as pe,Ot as me,Pr as he,Pt as ge,Q as _e,Rn as ve,Rr as I,Rt as ye,Sn as be,St as xe,Tn as Se,Tt as Ce,Ut as we,Vr as Te,Wn as Ee,Xt as De,Yt as Oe,_n as ke,_t as Ae,an as je,at as Me,bn as Ne,br as Pe,bt as Fe,ct as Ie,dn as Le,dt as Re,et as ze,fn as Be,ft as Ve,gn as He,gt as Ue,hn as We,ht as Ge,in as Ke,it as qe,jn as Je,jr as Ye,jt as Xe,kr as Ze,kt as Qe,lr as $e,lt as et,mn as L,mt as tt,nn as nt,nt as R,on as rt,or as it,ot as at,p as ot,pt as z,qt as st,rn as ct,rt as lt,sn as ut,sr as dt,st as ft,tn as pt,tt as mt,ut as ht,v as gt,vn as _t,vr as vt,wn as yt,wr as B,wt as bt,xn as xt,xr as St,xt as Ct,yn as wt,yt as Tt,zn as Et,zr as V}from"./tool-schema-BlUbzOu9.js";import{c as H,t as Dt}from"./host-patterns-C9RMP16Q.js";import{$ as Ot,A as kt,At,B as jt,Ct as Mt,D as U,Dn as Nt,E as Pt,Et as Ft,Ft as It,It as Lt,J as Rt,K as zt,L as Bt,M as Vt,Mn as W,Mt as Ht,Nt as Ut,O as G,Ot as Wt,Pt as Gt,St as Kt,Tt as qt,U as Jt,Y as Yt,Z as Xt,_n as Zt,_t as Qt,an as $t,at as en,bn as tn,bt as nn,ct as rn,dt as an,et as on,fn as sn,gt as cn,hn as ln,ht as un,j as dn,jt as fn,k as pn,kt as mn,ln as hn,lt as gn,mn as _n,mt as vn,ot as yn,pn as bn,pt as xn,q as Sn,st as Cn,vn as wn,vt as Tn,w as En,xt as Dn,yt as On,z as kn}from"./shaped-data-0GUF7Al3.js";import{$ as An,At as jn,B as Mn,Bt as Nn,Ct as Pn,Dt as Fn,Et as In,G as Ln,Gt as Rn,Ht as zn,J as Bn,Jt as K,K as Vn,Kt as Hn,Lt as Un,M as Wn,Mt as Gn,N as Kn,Nt as qn,Ot as Jn,Pt as Yn,Q as Xn,Rt as Zn,St as Qn,Tt as $n,U as er,Ut as tr,Vt as nr,Wt as rr,X as ir,Y as ar,Yt as or,Z as sr,_t as cr,a as lr,at as ur,bt as dr,ct as fr,dt as pr,ft as mr,gt as hr,ht as gr,i as _r,it as vr,jt as yr,k as br,kt as xr,l as Sr,lt as Cr,m as wr,mt as Tr,n as Er,o as Dr,ot as Or,pt as kr,qt as Ar,r as jr,rt as Mr,st as Nr,tt as Pr,ut as Fr,vt as Ir,wt as Lr,xt as Rr,yt as zr,zt as Br}from"./reader-CVFKFctz.js";import{a as Vr,t as Hr}from"./live-ingress-lDUGPwth.js";import{t as Ur}from"./trace-record-BjsBbPRl.js";import{n as Wr,r as Gr,t as Kr}from"./crypto-Boxudvjl.js";import{D as qr,E as Jr,T as Yr,b as Xr,c as Zr,g as Qr,i as $r,l as ei,u as ti,v as ni,w as ri}from"./turn-client-4GHmGV_4.js";import{n as ii,t as ai}from"./live-messages-CI-oP2dK.js";import{n as oi,r as si}from"./lent-keys-C32ems-I.js";import{$ as ci,X as li,Z as ui,ct as di,et as fi,it as pi,nt as mi,rt as hi,tt as gi}from"./index-D3Myde0v.js";function _i(){return{given:new Set,remote:new Map}}var vi=/[\p{L}\p{N}_.+-]/u,yi=/[\p{L}\p{N}_-]/u,bi=/(?:https?:\/\/|www\.)[^\s'"<>)\]]+/gi,xi=/\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g,Si=/[/?#]/;function Ci(e,t){let n=t;for(;n<e.length;){let t=String.fromCodePoint(e.codePointAt(n)??0);if(!yi.test(t))break;n+=t.length}return n}function wi(e,t){let n=Ci(e,t);if(n===t)return-1;let r=1;for(;e.charAt(n)===`.`;){let t=Ci(e,n+1);if(t===n+1)break;n=t,r+=1}return r>1?n:-1}function Ti(e){let t=e.length;for(;t>0&&(e.charAt(t-1)===`.`||e.charAt(t-1)===`,`);)--t;return e.slice(0,t)}function Ei(e){let t=[],n=e.indexOf(`@`);for(;n>=0;){let r=n;for(;r>0&&vi.test(e.charAt(r-1));)--r;let i=r<n?wi(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 Di(e){let t=e.replace(/^https?:\/\//i,``),n=t.search(Si),r=n<0?t:t.slice(0,n);return Ti(r.slice(r.lastIndexOf(`@`)+1).replace(/:\d*$/,``).toLowerCase()).replace(/^www\./,``)}function Oi(e){let t=Ei(e),n=e;for(let{start:e,end:r}of t)n=n.slice(0,e)+` `.repeat(r-e)+n.slice(r);let r=[...t];for(let e of[...n.matchAll(bi)]){let t=Di(e[0]);t&&r.push({key:`host:${t}`,start:e.index,end:e.index+e[0].length})}for(let e of[...n.matchAll(xi)])r.push({key:`account:${e[0].toLowerCase()}`,start:e.index,end:e.index+e[0].length});return r}function ki(e){let t=e.trimStart().charAt(0);if(t===`{`||t===`[`)try{return JSON.parse(e)}catch{return}}var Ai=32;function ji(e,t,n=0){if(!(n>Ai)){if(typeof e==`string`){let r=ki(e);r===void 0?t(e):ji(r,t,n+1)}else if(Array.isArray(e))for(let r of e)ji(r,t,n+1);else if(e&&typeof e==`object`)for(let r of Object.values(e))ji(r,t,n+1)}}function Mi(e,t=!1){let n=new Set;return ji(e,e=>{let r=e.trim(),i=Oi(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 Ni(e,t){for(let n of Mi(t))e.given.add(n)}function Pi(e,t,n){for(let r of t)r.role===`assistant`||r.role===`tool`||n.has(r)||Ni(e,Ut(r).text)}function Fi(e,t,n){Ni(e,t.system),n.has(t.input)||Ni(e,Ut(t.input).text),Pi(e,t.history??[],n)}function Ii(e,t,n){if(!Ne(n.origin)){Ni(e,[t.finding,t.data]);return}let r=ki(t.finding),i=new Set([...r===void 0?Mi(t.finding):Mi(r,!0),...Mi(t.data,!0)]);for(let t of i)e.remote.has(t)||e.remote.set(t,n.tool)}function Li(e,t,n,r){if(!e||e.remote.size===0)return{verdict:{action:`allow`}};let i=[...Mi(t)].filter(t=>e.remote.has(t)&&!e.given.has(t));if(i.length===0)return{verdict:{action:`allow`}};let a=i.map(e=>e.slice(e.indexOf(`:`)+1)),o=a.map(e=>({rule:tn.remoteDestination,severity:`high`,match:e})),s={destination:a.join(`, `),sources:[...new Set(i.map(t=>e.remote.get(t)??``))].join(`, `)},c=n.taint?.remoteDestination??`off`;return c===`block`?{verdict:{action:`block`,hits:o,rejection:W(`taint.destination_blocked`,s,r)}}:{verdict:{action:`flag`,hits:o},...c===`confirm`?{confirm:W(`taint.destination_confirm`,s,r)}:{}}}var Ri={image:`thought.omitted_image`,link:`thought.omitted_link`,instructions:`thought.omitted_instructions`},zi={rule:Zt.ungiven_images,severity:`high`},Bi={rule:Zt.ungiven_links,severity:`high`},Vi={rule:Zt.marker_leak,severity:`high`};function Hi(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 Ui(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 Wi=8,Gi=16;function Ki(e){let{omit:t={},canary:n,privateSystem:r,ends:i,given:a,labels:o}=e,s=[...t.markers?[`marker_leak`]:[],...t.images?[`ungiven_images`]:[],...t.links?[`ungiven_links`]:[]],c=t.imagesRead??t.images!==void 0,l=n??e.planted,u=Sn({canary:l,labels:o}),d=e=>({...e,...a?{given:a}:{}});function f(e,t){let n=W(Ri[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?Rn({detect:s,allow:{ungiven_images:t.images??{},ungiven_links:t.links??{}},skipImages:c,...a?{given:a}:{},...u?{note:u}:{}}):void 0,g=n?Kt(n):void 0,_=0,v=0,E(e)}function E(e){v+=e.length;let t=(h?.push(e).length??0)>0,n=g?.push(e)??!1,i=!1;if(r){let e=(p+m).slice(0,v),t=Lt(e,_);i=It(e.slice(t),r,l).length>0,_=e.length}return t||n||i}function D(e){let i=[];if(t.images)for(let n of gn(e,d(t.images)))i.push({...n,kind:`image`,hit:zi});if(t.links)for(let n of an(e,d(t.links),c))i.push({...n,kind:`link`,hit:Bi});if(t.markers){let t=[new RegExp(Ot.source,`gi`),...u?[on(u)]:[]];for(let n of t.flatMap(t=>[...e.matchAll(t)])){let e=n.index;i.push({start:e,end:e+n[0].length,kind:`instructions`,hit:Vi})}}if(n)for(let[t,r]of Tn(e,n))i.push({start:t,end:r,kind:`instructions`,hit:_n});if(r)for(let[t,n]of It(e,r,l))i.push({start:t,end:n,kind:`instructions`,hit:ln});return i}function O(e){return b.find(t=>t.start<e&&e<t.end)}function k(e,t){let n=p+m,r=``,i=e;for(let a of b)a.end<=e||a.start>=t||(r+=n.slice(i,a.start)+a.raw,i=a.end);return r+n.slice(i,t)}function A(){let e=p+m;for(let t=xn;;t*=2){let n=p.length,i=0;for(let e=b.length-1;n>0&&i<t;){let r=b[e];if(r&&r.end>n)e--;else if(r&&r.end===n)i+=r.raw.length,n=r.start,e--;else{let e=Math.max(r?.end??0,n-(t-i));i+=n-e,n=e}}if(b=b.filter(e=>e.end>n),b.length===0)return;let a={text:``,held:0,pieces:[]},o=n;for(let t of[...b,void 0]){let n=t?t.start:e.length;if(n>o&&a.pieces.push({raw:a.text.length,shown:o}),o<=p.length&&p.length<=n&&(a.held=a.text.length+p.length-o),a.text+=e.slice(o,n),!t)break;a.pieces.push({raw:a.text.length,shown:t.start,mark:t}),a.text+=t.raw,o=t.end}if(!r||n===0||Lt(a.text,a.held)>0)return a}}function j(){let e=A();if(!e)return[];let t=[];if(n)for(let[r,i]of Tn(e.text,n))t.push([r,i,_n]);if(r)for(let[n,i]of It(e.text,r,l))t.push([n,i,ln]);let i=[];for(let[n,r,a]of t){if(r<=e.held)continue;let t=Hi(e,n),o=Hi(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 ee(){return Ui([...D(p+m),...j()])}function te(){return ee().filter(({end:e})=>e>p.length)}function M(e,t=!1){let n=O(e);return n?t?n.end:n.start:e}function ne(e){let t=te(),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(M(e)),S=i?.has(a.rule)??!1;let o=S?n.length:Math.max(l,M(t,!0)),d=f(r,p+c),m=p.length+c.length;if(s.push({start:m,end:m+d.length,raw:k(l,o)}),c+=d,w.set(a.rule,a),l=o,S)break}return y=void 0,a&&!S&&(u(M(a.start)),y=p.length+c.length),u(n.length),b=s,m=c,x=0,o.length>0}function N(){let e=ee()[0],t=e?Math.max(0,M(e.start)-p.length):0,n=m.slice(0,t),r=f(e?.kind??`instructions`,p+n),i=p.length+t,a=k(i,p.length+m.length);b=b.filter(e=>e.end<=i),b.push({start:i,end:i+r.length,raw:a}),m=n+r,x=0,e&&w.set(e.hit.rule,e.hit),y=void 0,S=!0}function re(){let e=p+m;return y===void 0?e:e.slice(0,y)}function ie(){for(let e=0;e<Wi&&!(C>=Gi);e++){let e=new Set(b.map(e=>e.start));if(!ne(!1)){if(y===void 0)break;return}if(S||(b.some(t=>!e.has(t.start))&&C++,!T(re())))return}N()}function P(){let e=p.length+m.length,t=h?h.holdFrom():e,i=n?ae(n):e,a=r?p.length+Gt(m,r,l):e,o=Math.min(t,i,a,oe()??e,y??e);return M(o<p.length?o:p.length+At(m,o-p.length))}function ae(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+nn(F(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+nn(F(t),e)}return x=Math.min(r,p.length+m.length-vn),Math.max(p.length,r)}function F(e){return e<p.length?p.slice(e)+m:m.slice(e-p.length)}function oe(){let e=A();if(!e)return;let t=e.text.slice(e.held),i=n?Qt(t,n,e.text.slice(0,e.held)):t.length,a=r?Gt(t,r,l):t.length;return Hi(e,e.held+Math.min(i,a))}function se(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)||j().length>0)&&ie(),S))return se(``);let t=Math.max(0,P()-p.length),n=m.slice(0,t);return p+=n,m=m.slice(t),se(n)},flush(){if(!S){for(let e=0;e<Wi&&!S&&ne(!0);e++);!S&&m&&(D(p+m).length>0||j().length>0)&&N()}let e=m,t=p+m;p=n||r?Ft(t,n,r):``;let i=p.length-t.length;return b=b.filter(e=>e.start+i>=0).map(e=>({...e,start:e.start+i,end:e.end+i})),m=``,x=0,y=void 0,S=!1,C=0,T(p),se(e)},carryOut:()=>p}}function qi(...e){let t=e.filter(e=>e!==void 0);return t.length===0?{}:{found:{action:t.reduce((e,t)=>Jt(e,t.action),`allow`),hits:[...new Map(t.flatMap(({hits:e})=>e).map(e=>[e.rule,e])).values()]}}}function Ji(e,t,n,r){let i=()=>rr(`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,...qi(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()],...qi(n,r?.found,u.found)}},carryOut:()=>e?.carryOut()??``}}var Yi={canary_leak:_n,prompt_leak:ln,marker_leak:Vi,ungiven_images:zi,ungiven_links:Bi},Xi=[`marker_leak`,`ungiven_images`,`ungiven_links`];function Zi(e,t){let{canary:n,privateSystem:r}=e,i=n?Kt(n):void 0,a=``,o=new Set;return{read(e){let n=Lt(a+e,a.length);a+=e;let s=[];i?.push(e)&&s.push(_n),r&&It(a.slice(n),r,t).length>0&&s.push(ln);let c=s.filter(e=>!o.has(e.rule));for(let e of c)o.add(e.rule);return c},reset(){i=n?Kt(n):void 0,a=``,o=new Set}}}function Qi(e,t,n,r){let i=Zi(n,r),a=new Map(Object.entries(Yi).map(([e,n])=>[n.rule,t[e].thought]));function o(e,t){let n=[...t,...e.hits.filter(e=>a.has(e.rule))];if(n.length===0)return e;let r=n.reduce((e,t)=>Jt(e,a.get(t.rule)??`ignore`),e.found?.action??`allow`);return{text:e.text,hits:e.hits.filter(e=>!a.has(e.rule)),found:{action:r,hits:[...e.found?.hits??[],...n]}}}return{push:t=>o(e.push(t),i.read(t)),flush(){return i.reset(),o(e.flush(),[])},carryOut:()=>e.carryOut()}}async function $i(e,t,n){let{detect:r}=e,i=Xi.filter(e=>ea(r,e)),a=na(r,t,ea),o=na(r,t,(e,t)=>e[t].thought===`flag`),s=i.length>0||ra(a)||ra(o),c=jt(e,t);(s||Vt([`thought`],r,c))&&await Hn();let l=s?Ki({omit:ta(e),...a,...ia(r),...aa(t),...n?{carry:n}:{}}):void 0;return Ji(l&&Qi(l,r,o,t.canary),r,c,i)}function ea(e,t){return e[t].thought===`redact`||e[t].thought===`block`}function ta({detect:e,allow:t}){return{...ea(e,`marker_leak`)?{markers:!0}:{},...ea(e,`ungiven_images`)?{images:t.ungiven_images}:{},...ea(e,`ungiven_links`)?{links:t.ungiven_links}:{},imagesRead:e.ungiven_images.thought!==`ignore`}}function na(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 ra(e){return e.canary!==void 0||e.privateSystem!==void 0}function ia(e){let t=new Set(Object.entries(Yi).filter(([t])=>e[t].thought===`block`).map(([,e])=>e.rule));return t.size>0?{ends:t}:{}}function aa({canary:e,givenUrls:t,labels:n}){return{...e?{planted:e}:{},...t?{given:t}:{},...n?{labels:n}:{}}}var oa={rule:`live.untranscribed-audio`,severity:`high`};async function sa(e,t,n,r,i){let a=L(e.guardrails),o={stage:`live_outbound`,trust:`untrusted`,profileId:e.id,...Bt(a.detect,{canary:t,privateSystem:n}),...e.labels?{labels:e.labels}:{},...r?{givenUrls:r}:{},...i?{ownTools:i}:{}},s=await $i(a,o);return{policy:a,context:o,gate:await nr(a,o,`live_reply`),held:[],releasedTo:0,withholdVisible:!1,...s?{thoughts:s}:{}}}function ca(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 la(e,t,n=[]){let r=Ar(`live_outbound`,`untrusted`,t,`block`);return{action:`withhold`,error:new H(`safety`,e),events:[...n,...r?[r]:[]]}}function ua(e){return e.accumulated().length-e.unreleased().length}function da(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 fa(e,t,n,r){if(!n.blocked){let i=n.found&&dn(`live_reply`,n.found);i&&r.push(K(i)),da(e,t,ua(t),r);return}let i=n.hits.filter(Yt);i.length>0&&(e.promptLeaks=i),e.withholdVisible=!0;let a=n.boundary?void 0:Ar(`live_outbound`,`untrusted`,n.hits,`block`);a&&r.push(a)}function pa(e,t,n){e.withholdVisible||e.held.length===0||fa(e,t,t.flush(),n)}function ma(e,t,n,r){let i=t.accumulated().length;e.held.push({event:n,start:i,end:r?i:1/0})}function ha(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 ga(e,t,n,r){let i=n.text??``;if(!i)return;let a=t.accumulated().length;ha(e,a+i.length),e.held.push({event:n,start:a,end:a+i.length});let o=t.process(i);e.withholdVisible||fa(e,t,o,r)}function _a(e,t){let n=[],{gate:r}=e;if(!r){let{thoughts:n}=e;return xa(n?t.flatMap(e=>e.type===`thought`?va(n.push(e.text),e):[e]):t)}let i=!1;for(let a of t){if(Mt(a)){i||=!!a.text,ga(e,r,a,n);continue}if(a.type===`media`){ma(e,r,a,i),e.withholdVisible||da(e,r,ua(r),n);continue}pa(e,r,n),ya(a)&&ba(e,r,n);let t=a.type===`tool`?void 0:Rt(a,e.context,e.policy.detect,`live_reply`);if(t?.stop)return la(Xt(t.hits),t.hits,n);if(t){let e=dn(`live_reply`,{action:`flag`,hits:t.hits});e&&n.push(K(e))}a.type===`thought`&&e.thoughts?n.push(...va(e.thoughts.push(a.text),a)):n.push(a)}return xa(n)}function va({text:e,hits:t,found:n},r){let i=n&&dn(`thought`,n),a=Ar(`thought`,`untrusted`,t,`redact`);return[...i?[K(i)]:[],...a?[a]:[],...e?[{...r,text:e}]:[]]}function ya(e){return e.type===`done`&&e.stop?.kind===`generation_complete`}function ba(e,t,n){let r=t.accumulated().length;e.withholdVisible||r===0||ua(t)<r||da(e,t,r,n,!0)}function xa(e){return e.length===0?{action:`idle`}:{action:`emit`,events:e}}function Sa(e,t,n){let{detect:r,blockedReply:i}=e.policy,a=yt({text:t.accumulated()},r,{boundary:`live_reply`,...e.withholdVisible?{reportedTo:ua(t)}:{},scope:jt(e.policy,e.context)}),o=t.accumulated().slice(0,e.releasedTo),s=E(a,e.promptLeaks),c=s&&s!==a.blocked?Ar(`live_outbound`,`untrusted`,s,`block`):void 0,l=[...n,...a.events.map(K),...c?[c]:[]];if(s){if(i.onBlock===`refuse`){let t=Se(o,e.context.labels);return{action:`emit`,events:[...l,{type:`text`,text:t}]}}return{action:`withhold`,error:new H(`safety`,zt.egress),events:l}}if(a.rewritten){let e=O(o,a.payload.text);return{action:`emit`,events:[...l,{type:`text`,text:e}]}}return da(e,t,t.accumulated().length,l,!0),xa(l)}function Ca(e,t){if(e.held.length===0)return t;let n=Ar(`live_outbound`,`untrusted`,[oa],`block`);return n?[...t,n]:t}function wa(e,t){let n=[];return pa(e,t,n),t.accumulated()?Sa(e,t,n):xa(Ca(e,n))}function Ta(e){let t=e.thoughts?va(e.thoughts.flush(),{type:`thought`,text:``}):[];if(!e.gate)return xa(t);let n=wa(e,e.gate);return ca(e),t.length===0?n:n.action===`idle`?{action:`emit`,events:t}:{...n,events:[...t,...n.events??[]]}}function Ea(e){e.thoughts?.flush(),ca(e)}var Da=d().int().positive().max(2**53-1),Oa=Da.max(2147483647),ka=t({operationTimeoutMs:Oa,connectTimeoutMs:Oa,liveStepTimeoutMs:Oa,maxWireRecordBytes:Da,maxWireResponseBytes:Da,maxEventBytes:Da,maxStepBytes:Da,maxStepEvents:Da,maxPendingToolCalls:Da});function Aa(e={}){return Object.freeze(ka.parse({operationTimeoutMs:12e4,connectTimeoutMs:3e4,liveStepTimeoutMs:12e4,maxWireRecordBytes:16777216,maxWireResponseBytes:67108864,maxEventBytes:16777216,maxStepBytes:67108864,maxStepEvents:1e5,maxPendingToolCalls:32,...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 H||j(e)||ne(e)?e:new H(`network`,se(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 H&&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
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 H(`unsupported`,W(`protocol.ws_headers`,{provider:e}));return Promise.resolve(new WebSocket(t,n.protocols))}}var co=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,lo=248;function uo(){let e=``;for(;e.length<24;)for(let t of crypto.getRandomValues(new Uint8Array(24-e.length)))t<lo&&(e+=co[t%62]);return e}function fo(e){return De(e.provider,e.binding)}var po=new WeakMap;function mo(e,t){return e&&Object.hasOwn(e,t)?e[t]:void 0}async function ho(e,t,n){let{definition:r}=e.provider,i=t.authorize??r.authorize;if(!r.key||!i)return;let a=n?mo(e.vault,n):void 0,o=typeof a==`function`?await a({providerId:e.provider.id,apiId:e.binding.apiId,keySlot:n,...e.signal?{signal:e.signal}:{}}):a,s=typeof o==`string`?o.trim()||void 0:o,c=r.key.safeParse(s);if(!c.success||n&&s===void 0)throw new H(`auth`,s===void 0?W(`provider.credential_missing`,{slot:n??``}):W(`protocol.key_invalid`,{slot:n??``,provider:e.provider.id}));if(c.data===void 0)return;e.onKey?.(n,c.data);let l=`${t.protocol.id}\u0000${n??``}`,u=po.get(e.provider)??new Map;po.set(e.provider,u);let d=u.get(l);if(d&&JSON.stringify(d.key)===JSON.stringify(c.data))return d.signer;let f=i(c.data);return u.set(l,{key:c.data,signer:f}),f}function go(e,t,n,r){return e.url?new URL(e.url({path:t,apiId:n,stream:r})):new URL(e.baseUrl.replace(/\/+$/,``)+(t.startsWith(`/`)?t:`/${t}`))}async function*_o(e,t){let n=e.headers.get(`content-type`)??``;if(!t&&!/json/i.test(n)){let t=new Uint8Array(await e.arrayBuffer());yield{eventType:`http_body`,mime_type:n,data:bn(t)}}else if(!t)yield await e.json();else if(e.body)for await(let t of 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
4
|
`);for(let n of t?[e,t]:[e])try{return JSON.parse(n)}catch{}return e}async function yo(e,t,n){let r=vo(await n.text()),i=e.error?.({status:n.status,body:r,headers:n.headers})??new H(ae(n.status),W(`protocol.http`,{provider:t,status:n.status}));return Object.assign(i,{status:n.status})}function bo(e){return e.builtins.map(e=>e.id)}function xo(e,t,n=[]){let r=t.find(e=>!n.includes(e));if(r!==void 0)throw new H(`unsupported`,W(`protocol.builtin_unwritten`,{protocol:e.id,tool:r}))}async function So(e){return typeof e==`string`?e:e instanceof ArrayBuffer?new TextDecoder().decode(e):typeof Blob<`u`&&e instanceof Blob?await e.text():String(e)}function Co(e){try{let t=JSON.parse(e);if(t&&typeof t==`object`&&!Array.isArray(t))return t}catch{}return{eventType:`ws_unparsed`,data:e}}function wo(e,t){let n=[],r=[],i,a=!1,o=Promise.resolve(),s=e=>{t(e),n.push(e),i?.()},c=e=>{o=o.then(e)};return e.addEventListener(`open`,()=>{for(let t of r.splice(0))e.send(t)}),e.addEventListener(`message`,e=>c(async()=>{let t=await So(e.data);t.trim()&&s(Co(t))})),e.addEventListener(`error`,()=>c(()=>s({eventType:`ws_error`}))),e.addEventListener(`close`,e=>c(()=>{let{code:t,reason:n}=e;s({eventType:`ws_close`,code:t,reason:n}),a=!0})),{send(n,i){t({eventType:`ws_send`,body:n,...i?.length?{input:B.parse(i)}:{}});let a=JSON.stringify(n);e.readyState===WebSocket.CONNECTING?r.push(a):e.send(a)},async*frames(){for(;;){let e=n.shift();if(e)yield e;else if(a)return;else await new Promise(e=>i=e)}},close(t,n){(e.readyState===WebSocket.CONNECTING||e.readyState===WebSocket.OPEN)&&e.close(t,n)}}}function To(e,t,n,r={sent:!1},i=[]){let a=fo(e),{protocol:o}=a,{apiId:s}=e.binding,c=(`builtInTools`in e.binding?e.binding.builtInTools:void 0)??[],l=t=>{e.tapUpstream?.(t),e.rawRows&&n.push(t)},u=t=>{let n=t??o.endpoints[e.profileType];if(n===void 0)throw new H(`unsupported`,W(`protocol.profile_type`,{protocol:o.id,profileType:e.profileType}));return n};return{profileType:e.profileType,apiId:s,options:e.binding.options??{},builtInTools:c,limits:e.limits??Aa(),...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 H&&e.kind===t}async function*Do(e,t){let{keySlot:n,fallbackKeySlot:r}=g(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 H)||e.kind===`cancelled`||e.kind===`config`)throw e;return{type:`error`,errorKind:e.kind,errorInternal:e.message,...e.copy?{errorCopy:e.copy}:{}}}function Ao(e){if(e.state===void 0)return e;if(!e.history?.length)throw new H(`request`,W(`protocol.history_needed`));let{state:t,stateHistoryLength:n,...r}=e;return r}function jo(e){let t=new Map,n=e=>{let n=t.get(e);if(n)return n;let r=uo();return t.set(e,r),r},r=e.provider.definition.prices;return{finish:t=>{switch(t.type){case`tool_call`:return{...t,call:{...t.call,callId:n(t.call.callId),wireCallId:t.call.callId}};case`tool_cancel`:case`tool_draft`:return{...t,callId:n(t.callId)};case`reasoning`:return{...t,origin:{protocol:t.origin?.protocol??e.binding.protocol,provider:e.provider.id,apiId:e.binding.apiId}};case`tokens`:{if(t.tokens.cost||!r)return t;let n=oo(r,e.binding.apiId,t.tokens);return n?{...t,tokens:{...t.tokens,cost:n}}:t}default:return t}},wireOf:e=>{for(let[n,r]of t)if(r===e)return n;return e}}}function Mo(e,t){let n=e.provider.definition.prices;if(!t.usage||t.usage.costUsd!==void 0||!n)return t;let{inputTokens:r,outputTokens:i}=t.usage,a=oo(n,t.model,{input:r,output:i,total:r+i});return a?{...t,usage:{...t.usage,costUsd:a.usd,estimated:!0}}:t}function No(e){return fo(e).protocol}function Po(e,t,n){let r=t[n];if(!r)throw new H(`unsupported`,W(`protocol.no_operation`,{protocol:e.id,operation:n}));let i=r;return((...e)=>i.apply(t,e))}async function Fo(e,t,n){let r=No(e);for await(let i of Do(e,i=>(async function*(){let a=r.create(To(e,i,[]));yield await Po(r,a,t)(n)})()))return i;throw new H(`internal`,W(`provider.decision_failed`))}function Io(e){let t=No(e);return{async*complete(n){let{finish:r}=jo(e),i=[],a={sent:!1},o=Do(e,(r,o)=>{a.sent=!1;let s=t.create(To(e,r,i,a,bo(n)));return Po(t,s,`complete`)(o?Ao(n):n)});try{for await(let e of o){for(let e of i.splice(0))yield{type:`raw`,row:e};yield r(e)}}catch(e){for(let e of i.splice(0))yield{type:`raw`,row:e};if(!a.sent)throw e;yield ko(e);return}for(let e of i.splice(0))yield{type:`raw`,row:e}},async openSession(n){let{finish:r,wireOf:i}=jo(e),a=[],o;for await(let r of Do(e,(r,i)=>(async function*(){let o=t.create(To(e,r,a,void 0,bo(n)));yield await Po(t,o,`openSession`)(i?Ao(n):n)})()))o=r;let s=o;return{...s,sendToolResult:e=>s.sendToolResult({...e,callId:i(e.callId)}),async*events(){for await(let e of s.events()){for(let e of a.splice(0))yield{type:`raw`,row:e};yield r(e)}}}},decide:async t=>Mo(e,await Fo(e,`decide`,t)),embed:t=>Fo(e,`embed`,t)}}function Lo(e){let t=new AbortController,n=[],r=()=>{for(let e of n.splice(0))e()};for(let i of e){let e=()=>{t.abort(i.reason),r()};if(i.aborted){e();break}i.addEventListener(`abort`,e,{once:!0}),n.push(()=>i.removeEventListener(`abort`,e))}return{signal:t.signal,dispose:r}}var Ro=class{limits;controller=new AbortController;signal;timer;timerDeadline;wireBytes=0;stepBytes=0;stepEvents=0;calls=new Set;deadline;releaseSignal;constructor(e,t,n=e.operationTimeoutMs){this.limits=e;let r=Lo(t?[t,this.controller.signal]:[this.controller.signal]);this.signal=r.signal,this.releaseSignal=r.dispose,this.startTimer(n),this.deadline=performance.now()+n}resumeOperation(){let e=this.deadline-performance.now();e<=0&&(this.controller.abort(new H(`timeout`,W(`error.timeout`))),V(this.signal)),this.startTimer(e)}timeLeft(){return(this.timerDeadline??this.deadline)-performance.now()}startTimer(e){this.stopTimer(),this.timerDeadline=performance.now()+e,this.timer=setTimeout(()=>this.controller.abort(new H(`timeout`,W(`error.timeout`))),e)}stopTimer(){this.timer!==void 0&&clearTimeout(this.timer),this.timer=void 0,this.timerDeadline=void 0}close(){this.controller.abort(),this.dispose()}dispose(){this.stopTimer(),this.releaseSignal()}startLiveStep(){this.timer===void 0&&this.startTimer(this.limits.liveStepTimeoutMs)}fail(){let e=new H(`bad_response`,W(`provider.budget_exhausted`),{copy:{key:`provider.budget_exhausted`}});throw this.controller.abort(e),e}checkDeadline(){this.timerDeadline!==void 0&&performance.now()>=this.timerDeadline&&this.controller.abort(new H(`timeout`,W(`error.timeout`))),V(this.signal)}value(e){this.checkDeadline();let t=new TextEncoder().encode(JSON.stringify(e)).byteLength;this.checkDeadline(),this.stepBytes+=t,this.stepEvents++,(t>this.limits.maxEventBytes||this.stepBytes>this.limits.maxStepBytes||this.stepEvents>this.limits.maxStepEvents)&&this.fail()}event(e){this.value(e),e.type===`tool_call`&&this.calls.add(e.call.callId),e.type===`tool_cancel`&&this.calls.delete(e.callId),this.calls.size>this.limits.maxPendingToolCalls&&this.fail()}resetStep(){this.stepBytes=0,this.stepEvents=0,this.calls.clear(),this.wireBytes=0,this.stopTimer()}socket(e){return async(t,n)=>{V(this.signal);let r=await e(t,n);this.signal.aborted&&(r.close(),V(this.signal));let i=()=>r.close();return this.signal.addEventListener(`abort`,i,{once:!0}),r.addEventListener(`close`,()=>this.signal.removeEventListener(`abort`,i),{once:!0}),r.addEventListener(`message`,e=>{let t=e.data;if(!((typeof t==`string`?new TextEncoder().encode(t).byteLength:t instanceof Blob?t.size:t instanceof ArrayBuffer||ArrayBuffer.isView(t)?t.byteLength:0)<=this.limits.maxWireRecordBytes)){e.stopImmediatePropagation();try{this.fail()}catch{r.close(1009,`response limit`)}}}),r}}fetch(e){return async(t,n)=>{let r=n?.signal??(t instanceof Request?t.signal:void 0),i=Lo(r?[this.signal,r]:[this.signal]),a=i.signal;V(a);let o=await e(t,{...n,signal:a}).catch(e=>{throw i.dispose(),e});if(V(a),!o.body)return i.dispose(),o;let s=o.body.getReader(),c=0,l=o.headers.get(`content-type`)?.includes(`text/event-stream`)?new zo(this):void 0,u=()=>{s.cancel(a.reason).catch(()=>void 0)};a.addEventListener(`abort`,u,{once:!0});let d=new ReadableStream({pull:async e=>{try{V(a);let t=await s.read();if(V(a),t.done){e.close(),a.removeEventListener(`abort`,u),i.dispose(),s.releaseLock();return}c+=t.value.byteLength,this.wireBytes+=t.value.byteLength,(c>this.limits.maxWireResponseBytes||this.wireBytes>this.limits.maxWireResponseBytes)&&this.fail(),l?.accept(t.value),e.enqueue(t.value)}catch(t){e.error(t),a.removeEventListener(`abort`,u),i.dispose(),s.cancel(t).catch(()=>void 0)}},cancel:e=>(a.removeEventListener(`abort`,u),i.dispose(),s.cancel(e))});return new Response(d,{status:o.status,statusText:o.statusText,headers:o.headers})}}},zo=class{budget;recordBytes=0;lineBytes=0;previousCR=!1;emptyCR=!1;constructor(e){this.budget=e}accept(e){for(let t of e)this.emptyCR&&t!==10&&(this.recordBytes=0,this.emptyCR=!1),this.recordBytes++,this.recordBytes>this.budget.limits.maxWireRecordBytes&&this.budget.fail(),this.emptyCR?(this.recordBytes=0,this.emptyCR=!1,this.previousCR=!1):t===10&&this.previousCR?this.previousCR=!1:(t===10||t===13?(this.lineBytes===0&&(t===13?this.emptyCR=!0:this.recordBytes=0),this.lineBytes=0):this.lineBytes++,this.previousCR=t===13)}},Bo=t({name:f().min(1),callId:f().min(1),wireCallId:f().min(1).optional(),arguments:p(f(),B),stepId:f().min(1).optional(),stepCallCount:d().int().min(1).optional()}),Vo=le.extend({type:o(`reasoning`)}),Ho=new Set([`text`,`thought`,`structured`,`media`,`grounding`,`citation`,`evidence`,`tokens`,`session`,`tool_draft`,`error`,`custom`]);function Uo(e){let t=Et.parse(e);if(t.kind===`gate`)throw new H(`bad_response`,W(`provider.kernel_gate`));return t}function Wo(e){if(!G(e)||typeof e.type!=`string`)throw new H(`bad_response`,W(`provider.event_invalid`));if(Ho.has(e.type))return P.parse(e);switch(e.type){case`tool_call`:return{type:`tool_call`,call:Bo.parse(e.call)};case`tool_cancel`:return{type:`tool_cancel`,callId:f().min(1).parse(e.callId)};case`reasoning`:return Vo.parse(e);case`raw`:return{type:`raw`,row:w.parse(e.row)};case`done`:return{type:`done`,stop:Uo(e.stop),interrupted:i().optional().parse(e.interrupted),state:e.state};case`response`:if(!G(e.response))throw new H(`bad_response`,W(`provider.response_identity`));return{type:`response`,response:t({id:f().optional(),model:f().optional()}).parse(e.response)};default:throw new H(`bad_response`,W(`provider.event_type`,{type:e.type}))}}async function Go(e,t){if(V(t),!t)return await e();let n=()=>{},r=new Promise((e,r)=>{n=()=>{try{V(t)}catch(e){r(e)}},t.addEventListener(`abort`,n,{once:!0}),t.aborted&&n()});try{return await Promise.race([Promise.resolve().then(()=>(V(t),e())),r])}finally{t.removeEventListener(`abort`,n)}}function Ko(e,t){if(!e)return;let n=e=>({...e,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([e,n])=>[e,typeof n==`string`?t(n):n]))}:{}});return`key`in e?n(e):e.map(n)}function qo(e,t){let n=t(e instanceof Error?e.message:String(e));if(e instanceof DOMException)return new DOMException(n,e.name);if(j(e))return new DOMException(n,`AbortError`);let r=e instanceof H?new H(e.kind,n,{copy:Ko(e.copy,t)}):e instanceof TypeError?TypeError(n):Error(n);return G(e)&&typeof e.status==`number`&&Object.assign(r,{status:e.status}),r}async function Jo(e,t){try{return await e()}catch(e){throw qo(e,t)}}async function*Yo(e,t,n,r=!1){r||n.resumeOperation();let i;try{for(i=e()[Symbol.asyncIterator]();;){let e=i,a=await Go(()=>e.next(),n.signal);if(a.done)break;let o=Wo(a.value);r&&(o.type!==`session`||o.session.kind===`working`)&&n.startLiveStep(),n.event(o),o.type===`error`?yield{...o,...o.errorCopy?{errorCopy:Ko(o.errorCopy,t)}:{},...o.errorInternal?{errorInternal:t(o.errorInternal)}:{},...o.error?{error:t(o.error)}:{}}:yield o,r&&o.type===`done`&&n.resetStep()}}catch(e){throw qo(e,t)}finally{n.close(),i?.return&&Promise.resolve(i.return()).catch(()=>void 0)}}var Xo=/^(?:authorization|proxy-authorization|cookie|set-cookie|api[_-]?key|x-goog-api-key|secret|token|access[_-]?token|refresh[_-]?token|password)$/i;function Zo(e,t,n,r,i){let a=Aa(r.limits),o=new Ro(a,i.signal,i.timeoutMs??(i.liveConnection?a.connectTimeoutMs:a.operationTimeoutMs)),s=new Set,c=e=>{if(typeof e==`string`)s.add(e);else if(e&&typeof e==`object`)for(let t of Object.values(e))c(t)},l=e=>{if(typeof e==`string`){let t=e;for(let e of s)e&&(e.length>=4||t===e)&&(t=t.split(e).join(`[redacted]`));return t}return Array.isArray(e)?e.map(l):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[String(l(e)),Xo.test(e)&&typeof t==`string`?`[redacted]`:l(t)])):e},u=e=>String(l(e)),d=g(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?.(w.parse(l(e)))}:{},onKey(e,t){d=e,c(t)}});o.stopTimer();let p=async e=>{try{o.resumeOperation();let t=await Go(()=>Jo(e,u),o.signal);return o.value(t),t}finally{o.close()}};return{keySlot:()=>d,complete:e=>Yo(()=>f.complete({...e,signal:o.signal}),u,o),decide:e=>p(()=>f.decide({...e,signal:o.signal})),embed:e=>p(()=>f.embed({...e,signal:o.signal})),async openSession(e){o.resumeOperation();let t=await Go(()=>Jo(()=>f.openSession({...e,signal:o.signal}),u),o.signal).catch(e=>{throw o.close(),e}).finally(()=>o.stopTimer());return{events:()=>Yo(()=>t.events(),u,o,!0),closeInfo:()=>{let e=t.closeInfo?.();return e&&{...e,...e.error?{error:qo(e.error,u)}:{}}},sendText:e=>(o.startLiveStep(),Jo(()=>t.sendText(e),u)),sendAudio:e=>Jo(()=>t.sendAudio(e),u),sendVideo:e=>Jo(()=>t.sendVideo(e),u),sendContext:e=>Jo(()=>t.sendContext(e),u),sendToolResult:e=>(o.startLiveStep(),Jo(()=>t.sendToolResult(e),u)),close:e=>(o.stopTimer(),Jo(()=>t.close(e),u).finally(()=>o.dispose()))}}}}function Qo(e,t,n){let r=t.options??{},i=[...n.continuation?.keyOptions??[]].sort().map(e=>[e,r[e]??null]);return JSON.stringify({connection:e.connection??null,options:i})}function $o(e,t,n){if(e?.history===`stateless`&&(t||n?.length))throw new H(`request`,W(`provider.stateless_history`))}async function es(e,t,n,r,i={}){if(!n)return{};let a=St.parse(n),o=pt(e,t),s=o.continuation,c;return a.protocol!==o.id||a.provider!==e.id?c=`provider_changed`:a.apiId===t.apiId?!s||a.version!==s.version?c=`version_changed`:a.compatibilityKey===Qo(e,t,o)?a.keySlot===g(e,t).keySlot?(i.history===`provider`?r.length>0:a.coveredHistoryLength>r.length||a.coveredHistoryHash!==await Pe(r.slice(0,a.coveredHistoryLength)))&&(c=`history_changed`):c=`key_changed`:c=`connection_changed`:c=`model_changed`,c?{warning:{code:`provider_state_rebuilt`,reason:c}}:{state:s?.schema.parse(a.data),covered:i.history===`provider`?0:a.coveredHistoryLength,...a.wireCallIds?{wireCallIds:a.wireCallIds}:{}}}async function ts(e,t,n,r,i,a={}){if(r===void 0)return;let o=pt(e,t),s=o.continuation;if(!s)throw new H(`bad_response`,W(`provider.continuation_contract`));return{protocol:o.id,provider:e.id,version:s.version,apiId:t.apiId,...n?{keySlot:n}:{},compatibilityKey:Qo(e,t,o),coveredHistoryLength:i.length,coveredHistoryHash:await Pe(i),data:B.parse(s.schema.parse(r)),...Object.keys(a).length?{wireCallIds:a}:{}}}function ns(e,t){return e?.map(e=>{if(!e.reasoning)return e;let{reasoning:n,...r}=e,i=n.filter(e=>nt(e.origin.protocol,t));return i.length?{...r,reasoning:i}:r})}function rs(e,t){if(!e||!t)return e;let n=e=>t[e]??e;return e.map(e=>({...e,...e.tool_calls?{tool_calls:e.tool_calls.map(e=>({...e,id:n(e.id)}))}:{},...e.tool_call_id?{tool_call_id:n(e.tool_call_id)}:{}}))}function is(e,t,n){let{providerState:r,tapUpstream:i,history:a,...o}=e,s=rs(ns(a,t),n.wireCallIds);return{...o,...s?{history:s}:{},...n.state===void 0?{}:{state:n.state,stateHistoryLength:n.covered}}}function as(e){let{wireCallId:t,...n}=e;return n}async function*os(e,t){let n={},r,i=!1,a=[],o=[],s=``,c,l=e[Symbol.asyncIterator](),u=!1;try{for(;;){let e=await Go(()=>l.next(),t);if(e.done){u=!0;break}V(t);let d=e.value;if(r)throw new H(`bad_response`,W(`provider.events_after_completion`));switch(d.type){case`raw`:continue;case`text`:s+=d.text;break;case`structured`:c=d.structured;break;case`reasoning`:{let{type:e,...t}=d;o.push(t);break}case`tool_call`:if(a.some(e=>e.callId===d.call.callId))throw new H(`bad_response`,W(`provider.duplicate_call`));d.call.wireCallId&&(n[d.call.callId]=d.call.wireCallId),a.push(as(d.call));continue;case`tool_cancel`:throw new H(`bad_response`,W(`provider.tool_cancel_live`));case`error`:i=!0;break;case`done`:r=d;continue}yield d}}finally{!u&&l.return&&Promise.resolve(l.return()).catch(()=>void 0)}return{terminal:r,failed:i,pending:a,reasoning:o,text:s,...c===void 0?{}:{structured:c},wireCallIds:n}}function ss(e,t,n,r,i,a={},o=[]){let s=pt(e,t),c=i;return{async*complete(l){let u=c===i&&a.history===`provider`,d=await es(e,t,c,u?o:l.history??[],u?a:{});d.warning&&(c=void 0,yield{type:`provider_warning`,warning:d.warning});let f=Zo(e,t,n,r,l),{terminal:p,failed:m,pending:h,reasoning:g,text:_,structured:v,wireCallIds:y}=yield*os(f.complete(is(l,s,d)),l.signal);if(V(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 ts(e,t,f.keySlot(),p.state,[...b,...je({text:_,structured:v,calls:h.map((e,t)=>t===0?{...e,reasoning:g}:e)})],{...d.wireCallIds,...y});c=x;for(let e of h)yield{type:`tool`,tool:e};yield{type:`done`,stop:p.stop,providerState:x}}}}var cs=new Map;function ls(e){return typeof e==`object`&&!!e&&`write`in e&&typeof e.write==`function`}function us(e,t){let n=e.trim();if(!n)throw new H(`config`,`registerTraceDestination requires a non-empty id`);if(!ls(t))throw new H(`config`,`Trace destination '${n}' must be a TraceSink`);cs.set(n,t)}function ds(e){return cs.get(e)}function fs(e){let t=ds(e);if(!t)throw new H(`config`,`Trace destination '${e}' is not registered`);return t}async function ps(e,t,n){try{await e.write(await t,{retainForDays:n.retainForDays,rotateAfterMiB:n.rotateAfterMiB})}catch(t){try{e.onError?.(t)}catch{}}}function ms(e,t,n,r){return ps(e,Ur({spans:t,policy:n,...r?{metadata:r}:{}}),n)}function hs(){return{write:()=>Promise.resolve()}}function gs(e,t){return!t&&!e.onError?e:{write:(t,n)=>e.write(t,n),onError:e.onError??t}}var _s=2**32;function vs(e,t){let n=e.spans[0]?.traceId??``;return Number.parseInt(n.slice(-8),16)/_s<t}function ys(e,t){return t>=1?e:t<=0?hs():{write:async(n,r)=>{vs(n,t)&&await e.write(n,r)},onError:e.onError}}function bs(e,t){return e===void 0||e===!1?hs():gs(typeof e==`string`?fs(e):e,t.onWriteError)}function xs(e){let t={...Vr(e.observability),detect:L(e.guardrails).detect};return e.override?{policy:t,sink:gs(e.override,t.onWriteError)}:t.record?{policy:t,sink:ys(bs(t.writeTo,t),t.sampleRate)}:{policy:t,sink:hs()}}async function Ss({name:e,attributes:t,traceparent:n,metadata:r,writer:i},a){let o=En(e,{kind:`CLIENT`,attributes:t,...n?{traceparent:n}:{}}),{sink:s,policy:c}=xs(i);try{let e=await a(o.root);return o.root.end({code:`OK`}),e}catch(e){throw bt(o.root,e),e}finally{await ms(s,o.collect(),c,r)}}var Cs={invalid_request:`request`,authentication:`auth`,permission:`auth`,rate_limited:`rate_limit`,unavailable:`unavailable`,network:`network`,timeout:`timeout`,cancelled:`cancelled`,malformed_response:`bad_response`,disclosure_blocked:`blocked`},q=class extends H{code;status;constructor(e,t,n,r){super(Cs[e],t,r),this.code=e,this.status=n}};function ws(e,t){let n=e.profiles.get(t);if(n.type!==`decision`)throw new H(`request`,`runDecision requires profile.type 'decision' (got '${n.type}' for ${n.id})`);return n}function Ts(e){let t=Jn(e.models),n=t?e.models[t]:void 0;if(!t||!n)throw new H(`config`,`Profile ${e.id}: type 'decision' must declare exactly one model`);return[t,n]}function J(e,t,n=0,r=1){if(typeof e!=`number`||!Number.isFinite(e)||e<n||e>r)throw new q(`malformed_response`,`${t} is outside its valid range`);return e}function Es(e,t,n){if(!G(e)||Object.keys(e).length!==t.length||t.some(t=>!Object.hasOwn(e,t)))throw new q(`malformed_response`,`${n} does not match declared labels`);let r=Object.create(null);for(let i of t)r[i]=J(e[i],`${n}.${i}`);let i=Object.values(r).reduce((e,t)=>e+t,0);if(Math.abs(i-1)>.001)throw new q(`malformed_response`,`${n} must sum to one`);return r}function Ds(e,t){if(!G(e))throw new q(`malformed_response`,`${t} is invalid`);let n={top:J(e.top,`${t}.top`),bottom:J(e.bottom,`${t}.bottom`),left:J(e.left,`${t}.left`),right:J(e.right,`${t}.right`)};if(n.left>=n.right||n.top>=n.bottom)throw new q(`malformed_response`,`${t} has an edge out of order`);return n}function Os(e,t,n){if(!G(e)||Object.keys(e).length!==t.length||t.some(t=>!Object.hasOwn(e,t))||Object.values(e).some(e=>typeof e!=`string`||!e.trim()))throw new q(`malformed_response`,`${n} is invalid`);return e}function ks(e,t){if(!G(e)||Object.keys(e).length!==Object.keys(t).length)throw new q(`malformed_response`,`Decision provider returned an incomplete answer set`);let n=Object.create(null);for(let[r,i]of Object.entries(t)){let t=e[r];if(!G(t)||t.type!==i.type)throw new q(`malformed_response`,`Decision provider returned an invalid answer for '${r}'`);if(i.type===`choice`){let e=Object.keys(i.criteria);if(typeof t.choice!=`string`||!e.includes(t.choice))throw new q(`malformed_response`,`Decision provider returned an undeclared choice for '${r}'`);n[r]={type:`choice`,choice:t.choice,confidence:J(t.confidence,`${r}.confidence`),probabilities:Es(t.probabilities,e,`${r}.probabilities`)}}else if(i.type===`noul`)n[r]={type:`noul`,noul:J(t.noul,`${r}.noul`)};else if(i.type===`box`)n[r]={type:`box`,box:Ds(t.box,`${r}.box`),confidence:J(t.confidence,`${r}.confidence`)};else{let e=i.criteria.map((e,t)=>String(t));n[r]={type:`score`,score:J(t.score,`${r}.score`,0,Math.max(0,e.length-1)),confidence:J(t.confidence,`${r}.confidence`),legend:Os(t.legend,e,`${r}.legend`),probabilities:Es(t.probabilities,e,`${r}.probabilities`)}}}return n}function As(e){let t=new Set,n=[{value:e}];for(;n.length;){let e=n.pop();if(!e)break;let r=e.value;if(e.exit){t.delete(r);continue}if(r===null||typeof r==`string`||typeof r==`boolean`)continue;if(typeof r==`number`){if(!Number.isFinite(r))return!1;continue}if(typeof r!=`object`||t.has(r)||!Array.isArray(r)&&Object.getPrototypeOf(r)!==Object.prototype&&Object.getPrototypeOf(r)!==null||Object.getOwnPropertySymbols(r).length)return!1;t.add(r),n.push({value:r,exit:!0});let i=Array.isArray(r)?Array.from(r):Object.values(r);for(let e of i)n.push({value:e})}return!0}function js(e,t){if(!G(t)||!e.trim()||!Rs(t.instructions))throw new q(`invalid_request`,`Decision question '${e}' must include instructions`);if((t.type===`noul`||t.type===`box`)&&t.criteria===void 0)return;if(typeof t.type!=`string`||![`choice`,`noul`,`score`].includes(t.type)||(t.type===`score`?!Array.isArray(t.criteria):!G(t.criteria)))throw new q(`invalid_request`,`Decision question '${e}' has invalid criteria`);let n=Array.isArray(t.criteria)?t.criteria:Object.values(t.criteria);if(!n.length||!n.every(Rs))throw new q(`invalid_request`,`Decision ${t.type} '${e}' must declare criteria`)}function Ms(e,t){if(V(e.signal),e.model!==void 0)throw new q(`invalid_request`,`Decision requests do not select a model; the profile runs its one model`);if(e.state===null||!As(e.state))throw new q(`invalid_request`,`Decision state must be non-null JSON`);let n;try{n=JSON.stringify(e.state)}catch{throw new q(`invalid_request`,`Decision state cannot be serialized as JSON`)}let r=new TextEncoder().encode(n).byteLength;if(t.inputs.maxStateBytes!==void 0&&r>t.inputs.maxStateBytes)throw new q(`invalid_request`,`Decision state exceeds ${t.inputs.maxStateBytes} bytes`);if(!G(e.questions)||!As(e.questions)||Object.keys(e.questions).length===0)throw new q(`invalid_request`,`Decision request must declare at least one question`);for(let[t,n]of Object.entries(e.questions))js(t,n);e.assets!==void 0&&Ls(e.assets);for(let[t,n]of Object.entries(e.questions))Ps(t,n,e.state,e.assets)}function Ns(e,t){let n=e;for(let e of t.split(`.`)){if(!G(n)&&!Array.isArray(n))return;n=Array.isArray(n)?n[Number(e)]:n[e]}return n}function Ps(e,t,n,r){if(!G(t)||t.image===void 0)return;let i=t.image,a=typeof i==`string`&&!r?.[i]?Ns(n,i):i;if(t.type!==`box`||typeof a!=`string`||r?.[a]===void 0)throw new q(`invalid_request`,`Decision question '${e}' has an image that is neither a held image nor a state field holding one`)}function Fs(e,t){if(e.type!==`box`||e.image===void 0)return e;let{image:n,instructions:r}=e,i=W(`decision.box_image`,{image:t?.[n]?n:`\`${n}\``});return{type:`box`,instructions:typeof r==`string`?`${r} ${i}`:[r,i]}}var Is=/^[A-Za-z0-9+/]+={0,2}$/;function Ls(e){if(!G(e)||Object.keys(e).length===0)throw new q(`invalid_request`,`Decision assets must name at least one image`);for(let[t,n]of Object.entries(e))if(!t.trim()||!G(n)||n.mimeType!==`image/png`&&n.mimeType!==`image/jpeg`||typeof n.data!=`string`||n.data.length%4!=0||!Is.test(n.data))throw new q(`invalid_request`,`Decision asset '${t}' must be PNG or JPEG bytes as padded base64`)}function Rs(e){let t=[e];for(;t.length;){let e=t.pop();if(typeof e==`string`){if(!e.trim())return!1;continue}if(!G(e)&&!Array.isArray(e))return!1;let n=Object.values(e);if(!n.length)return!1;for(let e of n)t.push(e)}return!0}async function zs(e,t,n,r){if((await e.guardrails?.disclosure?.enforce(r.state,{destination:n,profileId:e.id,model:t,questionIds:Object.keys(r.questions),...r.assets?{assets:r.assets}:{}}))?.action===`block`)throw new q(`disclosure_blocked`,`Decision disclosure was blocked`)}function Bs(e,t,n,r){return{"gen_ai.operation.name":`decide`,"gen_ai.provider.name":n.provider,"gen_ai.agent.name":e.id,"gen_ai.request.model":n.apiId,"theorem.model.id":t,"theorem.decision.contract":e.decision.contract,"theorem.decision.state":U(r.state),"theorem.decision.questions":U(r.questions),...r.assets?{"theorem.decision.assets":U(Object.fromEntries(Object.entries(r.assets).map(([e,{mimeType:t,data:n}])=>[e,{mimeType:t,bytes:n.length}])))}:{}}}function Vs(e,t){e.set({"gen_ai.response.model":t.model,"theorem.decision.answers":U(t.answers),...t.usage?{"gen_ai.usage.input_tokens":t.usage.inputTokens,"gen_ai.usage.output_tokens":t.usage.outputTokens,...t.usage.costUsd===void 0?{}:{"theorem.usage.cost_usd":t.usage.costUsd}}:{}})}function Hs(e){if(e instanceof q)return e;let t=e instanceof H?e.kind:e instanceof TypeError?`network`:`bad_response`;return new q(t===`auth`&&G(e)&&e.status===403?`permission`:{auth:`authentication`,rate_limit:`rate_limited`,network:`network`,busy:`unavailable`,unavailable:`unavailable`,timeout:`timeout`,cancelled:`cancelled`,request:`invalid_request`,unsupported:`invalid_request`}[t]??`malformed_response`,e instanceof H?e.message:W(`provider.decision_failed`),G(e)&&typeof e.status==`number`?e.status:void 0,{cause:e})}async function Us(e,t,[n,r],i,a){V(i.signal);let o=e.providers.require(r.provider,r.apiId);await zs(t,n,r.provider,i),V(i.signal);try{let e=await Zo(o,r,`decision`,a,{...i.signal?{signal:i.signal}:{},...r.timeoutMs?{timeoutMs:r.timeoutMs}:{}}).decide({apiId:r.apiId,state:i.state,questions:Object.fromEntries(Object.entries(i.questions).map(([e,t])=>[e,Fs(t,i.assets)])),...i.assets?{assets:i.assets}:{}});if(typeof e.model!=`string`||!e.model.trim())throw new q(`malformed_response`,W(`provider.decision_model_missing`));return{...e,answers:ks(e.answers,i.questions)}}catch(e){throw i.signal?.aborted?new q(`cancelled`,W(`provider.decision_ended`)):Hs(e)}}async function Ws(e,t,n){let r=ws(e,t.profile);Ms(t,r);let i=Ts(r),[a,o]=i;return await Ss({name:`decide ${o.apiId}`,attributes:Bs(r,a,o,t),traceparent:t.traceparent,metadata:t.metadata,writer:{override:n.sink,observability:r.observability,guardrails:r.guardrails}},async a=>{let o=await Us(e,r,i,t,n);return Vs(a,o),o})}function Gs(e,t){let n=e.profiles.get(t);if(n.type!==`embedding`)throw new H(`request`,`runEmbedding requires profile.type 'embedding' (got '${n.type}' for ${t})`);return n}function Ks(e,t){let n=t??e.defaultModel;if(t&&!e.allowModelSelect)throw new H(`request`,`Profile ${e.id} does not allow model selection`);let r=e.models[n];if(!r)throw new H(`request`,`Unknown model '${n}' for ${e.id}`);return[n,r]}var qs=[`query`,`document`];function Js(e){if(e!==void 0&&!qs.includes(e))throw new H(`request`,`Embedding task must be 'query' or 'document'`)}function Ys(e){return Array.isArray(e)?e:[e]}function Xs(e){return typeof e==`string`?[{type:`text`,text:e}]:e&&Array.isArray(e.parts)?e.parts:[]}function Zs(e,t,n,r){let i=Fn(e.inputs,r);if(i.maxInputs!==void 0&&n.length>i.maxInputs)throw new H(`request`,`Model '${t}' of ${e.id} takes at most ${i.maxInputs} inputs per request`);let a=[];for(let t of n){let n=Xs(t);if(n.length===0)throw new H(`request`,`Profile ${e.id} received an empty embedding input`);let r=[];for(let t of n)if(t.type===`text`){if(kn(t.text,`embedding input`),!i.text)throw new H(`unsupported`,`Profile ${e.id} does not accept text embedding input`)}else r.push(t.type===`media`?{mimeType:t.mimeType,sizeBytes:Zn(t.data)}:{mimeType:t.mimeType});a.push(r)}let o=In(i,a);if(o.length>0)throw Un(o)}function Qs(e,t){if(!e.model.trim()||e.embeddings.length!==t)throw new H(`bad_response`,`Embedding provider returned an invalid vector count`);let n=e.embeddings.map((e,t)=>{if(e.index!==t||e.dimensions!==e.values.length||e.dimensions===0)throw new H(`bad_response`,`Embedding provider returned invalid vector metadata`);if(e.values.some(e=>!Number.isFinite(e)))throw new H(`bad_response`,`Embedding provider returned a non-finite vector value`);return e});return{...e,embeddings:n}}async function $s(e,t,n={}){V(t.signal);let r=Gs(e,t.profile),[i,a]=Ks(r,t.model),o=Ys(t.input);Js(t.task);let s=e.providers.require(a.provider,a.apiId);Zs(r,i,o,pt(s,a).embeddingLimits?.(a.apiId));let c=Zo(s,a,`embedding`,n,{...t.signal?{signal:t.signal}:{}});return await Ss({name:`embed ${a.apiId}`,attributes:{"gen_ai.operation.name":`embeddings`,"gen_ai.provider.name":a.provider,"gen_ai.agent.name":r.id,"gen_ai.request.model":a.apiId,"theorem.model.id":i,"theorem.embedding.inputs":o.length,...t.task?{"theorem.embedding.task":t.task}:{}},traceparent:t.traceparent,metadata:t.metadata,writer:{override:n.sink,observability:r.observability,guardrails:r.guardrails}},async()=>Qs(await c.embed({apiId:a.apiId,input:t.input,...t.task?{task:t.task}:{},...a.options?{options:a.options}:{},...t.signal?{signal:t.signal}:{}}),o.length))}function ec(e,t,n,r,i){let a=e.profiles.get(t);if(a.type===`host`)return tc(e,r);if(a.type===`decision`||a.type===`live`||a.type===`embedding`)throw new H(`unsupported`,W(`provider.turn_profile`));let o=a.models[n??a.defaultModel];if(!o)throw new H(`config`,W(`provider.model_binding_missing`));return $o(a.providerContinuation,i?.providerState,i?.input?.history),{complete:ss(e.providers.require(o.provider,o.apiId),structuredClone(o),a.type,r,i?.providerState,a.providerContinuation,i?.input?.history).complete,forProfile:(t,n,i)=>ec(e,t,n,r,i)}}function tc(e,t){return{complete(){throw new H(`unsupported`,W(`provider.host_model`))},forProfile:(n,r,i)=>ec(e,n,r,t,i)}}function nc(e,t,n,r){return`forProfile`in e&&typeof e.forProfile==`function`?e.forProfile(t,n,r):e}function rc(){let e=e=>Math.ceil(e.length/4),t=t=>{let n={tokens:0,unknownMedia:0};for(let r of t)r.type===`text`?n.tokens+=e(r.text):n.unknownMedia+=1;return n};return{text:e,parts:t,messages:n=>{let r={tokens:0,unknownMedia:0};for(let i of n){let n=t(Ke(i));r.tokens+=n.tokens,r.unknownMedia+=n.unknownMedia;for(let t of i.tool_calls??[])r.tokens+=e(t.function.name)+e(t.function.arguments)}return r}}}function ic(){return Promise.resolve(rc())}function ac(e){return e.meter??`history`}function oc(e){let t=[];for(let n=0;n<e.length;n++)e[n].role===`user`&&t.push(n);return t}async function sc(e){if(e?.historyTokens!=null)return{tokens:e.historyTokens,unknownMedia:0};let t=e?.history??[];return t.length===0?{tokens:0,unknownMedia:0}:await(await ic()).messages(t)}async function cc(e){let t=ac(e.spec);if(t===`history`)return{meter:t,...await sc(e.input)};if(e.prompt&&e.prompt.input>0)return{meter:t,tokens:e.prompt.input,unknownMedia:e.prompt.unknownMedia?.input??0};let n=e.input?.inputTokens;if(!(n==null||n<=0))return{meter:t,tokens:n,unknownMedia:0}}function lc(e,t){return e>t.compactAt*t.maxTokens}async function uc(e,t){if(t.trigger){let n={tokens:e.tokens,maxTokens:t.maxTokens,compactAt:t.compactAt,meter:e.meter,unknownMedia:e.unknownMedia};return await t.trigger(n)}return lc(e.tokens,t)}async function dc(e,t){if(e.length===0)return{toCompact:[],toRetain:[]};if(t.previousExchanges===0)return{toCompact:[...e],toRetain:[]};let n=oc(e);if(n.length===0)return{toCompact:[...e],toRetain:[]};let r;if(t.previousExchanges>=1){let e=Math.min(t.previousExchanges,n.length);r=n[n.length-e]}else{let i=t.previousExchanges*t.maxTokens,a=await ic(),o=0;r=e.length;for(let t=n.length-1;t>=0;t--){let s=n[t],c=t<n.length-1?n[t+1]:e.length,l=e.slice(s,c),u=a.messages(l).tokens;if(o+u>i)break;o+=u,r=s}}return r<=0?{toCompact:[],toRetain:[...e]}:{toCompact:e.slice(0,r),toRetain:e.slice(r)}}function fc(e){return e.metadata?.compactionSummary===!0}function pc(e){return{type:`text`,text:e}}function mc(e,t){let n=t.labels,r=new Map,i=0,a=e=>(e??[]).filter(e=>e.type===`text`||ut(t,e.mimeType)?!0:(i+=1,!1)),o=[];for(let t of e){for(let e of t.tool_calls??[])r.set(e.id,e.function.name);let e=a(t.parts);if(t.role===`tool`){let i=t.name??(t.tool_call_id?r.get(t.tool_call_id):void 0),a=t.content??``;o.push({role:`assistant`,parts:[pc(W(`compaction.tool_result`,{tool:i??``,result:a},n)),...e]});continue}let i=(t.tool_calls??[]).map(e=>pc(W(`compaction.tool_call`,{tool:e.function.name,arguments:e.function.arguments},n))),s=[...e,...i];(t.content||s.length!==0)&&o.push({role:t.role,...t.content?{content:t.content}:{},...s.length>0?{parts:s}:{},...t.name?{name:t.name}:{}})}return{history:o,droppedMedia:i}}function hc(e,t,n,r){let i={toCompact:e.toCompact,droppedMedia:t.droppedMedia,...t.tokens?{tokens:t.tokens}:{}};if(`summary`in t){let n={role:`assistant`,content:t.summary,metadata:{compactionSummary:!0}};return{...i,outcome:`compacted`,summary:t.summary,history:[n,...e.toRetain]}}return n>r.maxTokens?{...i,outcome:`dropped`,failure:t.failure,history:[...e.toCompact.filter(fc),...e.toRetain]}:{...i,outcome:`deferred`,failure:t.failure,history:[...e.toCompact,...e.toRetain]}}var gc={[wn.unscannable]:`egress.hint_unscannable`,[wn.providerToolLeak]:`egress.hint_provider_tool_leak`},_c=[Zt.canary_leak,Zt.prompt_leak],vc=3,yc=120,bc=`detect.`;function xc(e,t,n){let r=gc[e.rule];if(r)return W(r,{},n);let i=e.rule.startsWith(bc)?e.rule.slice(7):e.rule;if($t(i))return t.hints?.[i]??W(`detect.hint.${i}`,{},n);let a=t.host?.find(({id:e})=>e===i),o=a?.label??e.label??i;return a?.hint??W(`detect.hint.own`,{label:o},n)}function Sc(e){let t=e.flatMap(({rule:e,match:t})=>t&&!_c.includes(e)?[t]:[]);return[...new Set(t)].slice(0,vc).map(e=>JSON.stringify(e.length>yc?e.slice(0,yc):e))}function Cc(e,t,n){let r=new Map;for(let t of e)r.set(t.rule,[...r.get(t.rule)??[],t]);let i=[...r.values()].map(e=>{let r=xc(e[0],t,n),i=Sc(e);return i.length>0?W(`egress.rejection_found`,{hint:r,matches:i.join(`, `)},n):r});return W(`egress.rejection`,{found:i.join(`
|
|
5
5
|
`)},n)}function wc(e){if(e.type!==`live`&&e.type!==`host`&&e.type!==`decision`&&e.type!==`embedding`)return e.outputs}var Tc=[`inject`,`abort`,`deny`,`confirm`,`mutate`,`labelFailed`,`waitFor`],Ec=Object.freeze({pre_turn:Object.freeze([`inject`,`abort`]),pre_tool:Object.freeze([`abort`,`deny`,`confirm`,`mutate`,`waitFor`]),post_tool:Object.freeze([`inject`,`abort`,`deny`,`mutate`,`labelFailed`]),before_end:Object.freeze([`inject`,`abort`]),post_turn:Object.freeze([])}),Dc=new Set([...Tc,`injectId`,`released`]);function Oc(e,t){return Ec[e].includes(t)}function Y(e,t,n,r){e.push({code:t,field:n,message:r})}function kc(e,t){if(!G(e)){Y(t,`inject_invalid_messages`,`inject`,`inject entry must be an object`);return}if(e.role===`tool`){Y(t,`inject_invalid_messages`,`inject`,`inject messages with role "tool" are rejected`);return}if(e.role!==`user`&&e.role!==`assistant`&&e.role!==`system`){Y(t,`inject_invalid_messages`,`inject`,`inject role not allowed: ${String(e.role)}`);return}let n={role:e.role};if(e.content!==void 0){if(typeof e.content!=`string`){Y(t,`inject_invalid_messages`,`inject`,`inject content must be a string when present`);return}n.content=e.content}if(e.parts!==void 0){if(!Array.isArray(e.parts)){Y(t,`inject_invalid_messages`,`inject`,`inject parts must be an array when present`);return}n.parts=e.parts}if(e.tool_calls!==void 0){if(!Array.isArray(e.tool_calls)){Y(t,`inject_invalid_messages`,`inject`,`inject tool_calls must be an array when present`);return}n.tool_calls=e.tool_calls}if(e.name!==void 0){if(typeof e.name!=`string`){Y(t,`inject_invalid_messages`,`inject`,`inject name must be a string`);return}n.name=e.name}if(e.metadata!==void 0){if(!G(e.metadata)){Y(t,`inject_invalid_messages`,`inject`,`inject metadata must be a plain object`);return}n.metadata={...e.metadata}}return e.tool_call_id!==void 0&&Y(t,`inject_invalid_messages`,`inject`,`inject tool_call_id is rejected (not a tool-role message)`),n}function Ac(e,t){if(!Array.isArray(e)){Y(t,`inject_invalid_messages`,`inject`,`inject must be an array of history messages`);return}let n=[];for(let r of e){let e=kc(r,t);e&&n.push(e)}return n.length>0?n:void 0}function jc(e,t){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 Mc(e,t){let n=Ac(e.inject,t);if(!n)return;let r=jc(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 Nc(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(!Oc(r,`inject`))Y(n.warnings,`affordance_not_allowed`,`inject`,`inject is not allowed at stage ${r}`);else if(!i)Y(n.warnings,`inject_not_allowed`,`inject`,`inject gate is closed for this profile/session`);else if(a)Y(n.warnings,`inject_rejected_max_steps`,`inject`,`inject rejected: another model step would exceed maxSteps`);else{let t=Mc(e,n.warnings);t&&(n.inject=t)}}function Pc(e,t,n){if(`abort`in e&&e.abort!==void 0){if(!Oc(t,`abort`))Y(n.warnings,`affordance_not_allowed`,`abort`,`abort is not allowed at post_turn`);else if(e.abort===!0)n.abort=!0;else if(G(e.abort)){let t=typeof e.abort.reason==`string`&&e.abort.reason.trim()?e.abort.reason.trim():void 0;n.abort=!t||{reason:t}}else e.abort!==!1&&Y(n.warnings,`abort_invalid`,`abort`,`abort must be boolean or { reason?: string }`)}}function Fc(e,t,n){`deny`in e&&e.deny!==void 0&&(Oc(t,`deny`)?G(e.deny)?n.deny={code:typeof e.deny.code==`string`&&e.deny.code.trim()?e.deny.code.trim():`not_authorized`,message:typeof e.deny.message==`string`&&e.deny.message.trim()?e.deny.message.trim():`Tool execution not authorized`}:Y(n.warnings,`deny_invalid`,`deny`,`deny must be an object`):Y(n.warnings,`affordance_not_allowed`,`deny`,`deny is not allowed at stage ${t}`))}function Ic(e,t,n){`labelFailed`in e&&e.labelFailed!==void 0&&(Oc(t,`labelFailed`)?e.labelFailed===!0?n.labelFailed=!0:e.labelFailed!==!1&&Y(n.warnings,`label_failed_invalid`,`labelFailed`,`labelFailed must be true`):Y(n.warnings,`affordance_not_allowed`,`labelFailed`,`labelFailed is not allowed at stage ${t}`))}function Lc(e,t,n){if(`confirm`in e&&e.confirm!==void 0){if(!Oc(t,`confirm`))Y(n.warnings,`affordance_not_allowed`,`confirm`,`confirm is not allowed at stage ${t}`);else if(e.confirm===!0)n.confirm={};else if(G(e.confirm)){let t=typeof e.confirm.summary==`string`&&e.confirm.summary.trim()?e.confirm.summary.trim():void 0;n.confirm=t?{summary:t}:{}}else Y(n.warnings,`confirm_invalid`,`confirm`,`confirm must be true or { summary?: string }`)}}function Rc(e,t,n){`waitFor`in e&&e.waitFor!==void 0&&(Oc(t,`waitFor`)?!Array.isArray(e.waitFor)||!e.waitFor.every(e=>typeof e==`string`&&e.trim()!==``)?Y(n.warnings,`wait_for_invalid`,`waitFor`,`waitFor must be an array of call ids`):e.waitFor.length>0&&(n.waitFor=[...new Set(e.waitFor)]):Y(n.warnings,`affordance_not_allowed`,`waitFor`,`waitFor is not allowed at stage ${t}`))}var zc={pre_tool:`input`,post_tool:`output`};function Bc(e){return e in zc?zc[e]:void 0}function Vc(e,t,n){let{stage:r}=t;if(!(`mutate`in e)||e.mutate===void 0)return;if(!Oc(r,`mutate`)){Y(n.warnings,`affordance_not_allowed`,`mutate`,`mutate is not allowed at stage ${r}`);return}let i=Bc(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 Hc(e){let t=[],n={warnings:t},{stage:r,result:i}=e;if(i==null)return n;if(!G(i))return Y(t,`result_invalid`,`result`,`StageResult must be a plain object`),n;for(let e of Object.keys(i))Dc.has(e)||Y(t,`unknown_field`,e,`unknown StageResult field "${e}" ignored`);return Nc(i,e,n),Pc(i,r,n),Fc(i,r,n),Lc(i,r,n),Vc(i,e,n),Ic(i,r,n),Rc(i,r,n),n.deny&&n.confirm&&(Y(t,`confirm_invalid`,`confirm`,`confirm ignored because deny is set`),delete n.confirm),n}function Uc(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 Wc(e){return e.flatMap(e=>e.messages)}function Gc(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 Uc(e,{...n,...r.length>0?{injected:r}:{}})}function Kc(e,t){return t===void 0||t<=0?!1:e>=t}function qc(e,t){return t===`inject`?e.inject.length>0:!!e[t]}function Jc(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 Yc(e,t,n,r){let i=[];for(let a of e){let e;try{e=await a({...t})}catch(e){throw V(r),e}V(r),i.push(Hc({...n,result:e}))}return i}async function*Xc(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(V(u),yield Uc(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=Jc(await Yc(i,p,{stage:t,injectAllowed:o,injectWouldExceedMaxSteps:s,mutable:c},u));if(d?.event(`theorem.stage`,{stage:t,...m===void 0?{}:{hook_ms:d.msSinceStart()-m},affordance:Tc.filter(e=>qc(h,e)),...h.warnings.length>0?{warnings:h.warnings.map(e=>e.code)}:{}}),h.warnings.length>0&&(yield{...Uc(t,{callId:f.callId,toolName:f.tool}),stageWarnings:h.warnings}),h.inject.length===0)return h;let g=pn(`injected`,L(a).detect),_=h.inject.map(e=>({...e,messages:yr(e.messages,g)})),v=g.found(),y=dn(`injected`,v);if(y&&(d?.event(`theorem.guardrail`,A(y)),yield K(y)),v.action===`block`)throw xr(`injected`);return{...h,inject:_}}function Zc(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 Qc(e){let t=e.flatMap(e=>e.released===void 0?[]:[e.released]);return t.length>0?Math.min(...t):void 0}function $c(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 el(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=$c(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*tl(e,t,n,r){let i=Wc(n);if(i.length===0)return 0;let a=el(e,Qc(n));e.currentHistory.push(...i);let o=Gc(t,n,{...r,...a===void 0?{}:{released:a}});return o&&(e.allEmittedEvents.push(o),yield o),i.length}async function*nl(e){let{profile:t,generation:n,state:r,onStage:i,host:a,reply:o,replyAt:s,...c}=e;V(c.signal);let l=Xc({...c,...o?{reply:o}:{},history:r.currentHistory,handlers:i?[i]:[],guardrails:t.guardrails,injectAllowed:te(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&&Wc(d.inject).length>0&&Zc(r,o,s),{abort:d.abort,injectCount:yield*tl(r,c.stage,d.inject),warnings:d.warnings}}function rl(e,t){t.allEmittedEvents.push(e),t.attemptEvents.push(e)}function il(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 al(e){let{profile:t,generation:n}=e,r=cr(e.tools,t),i={tools:e.tools,trace:e.trace,currentHistory:[...n.history??[]],stepCount:0,resumes:0,toolResults:[],allEmittedEvents:e.allEmittedEvents??[],attemptEvents:[],released:``,replyText:``,replyMessages:[],givenUrls:rn(),destinations:_i(),canaryGiven:!1,canaryScanned:new WeakSet,...r?{ownTools:r}:{},...e.agents?{agents:e.agents}:{}};return t.type===`text`&&(il(i,n.input),n.input=[]),i}function ol(e,t,n={}){return t.map(t=>{if(e.get(t)?.type!==`builtin`)throw new H(`config`,`Builtin '${t}' is not registered`);let r=n[t];return r?{id:t,args:r}:{id:t}})}function sl(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:ol(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 cl=t({accepted:w,preparedInput:B});function X(){let e=new H(`unavailable`,``);return e.message=I(e),e}async function ll(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=B.parse(t(fl(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 ul=fe.tool.transform((e,t)=>e.tool.phase===`complete`||e.tool.phase===`error`?{...e,tool:e.tool}:(t.addIssue({code:`custom`}),a)),dl=t({event:ul,effects:l([`not_started`,`completed`,`unknown`]),replay:t({modelResult:t({finding:f(),data:B.optional(),parts:s(v).optional(),modelText:f().optional(),provenance:Ze.optional(),suspicious:s(pe).optional()}).optional(),outputRaw:B.optional(),failure:t({code:f(),kind:k,message:f(),error:f().optional(),details:B.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(ve),released:d().int().nonnegative().optional()})).optional()})});function fl(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 B.parse(n(e))}var pl=class{outcome;constructor(e){this.outcome=e}};function ml(e){return new H(`unavailable`,W(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`},cause:e})}var hl=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){V(this.signal);let t={...this.operation,invocation:{accepted:this.accepted,preparedInput:fl(e)}},n=await this.coordinator.begin(t);if(n.kind===`settled`)throw new pl(n.outcome);if(n.kind===`running`||n.kind===`uncertain`)throw ml();if(n.kind!==`acquired`||typeof n.claimToken!=`string`||!n.claimToken)throw X();return this.claim={...t,claimToken:n.claimToken},V(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 ml();return!0}async finish(e){if(e.gated){if(this.claim)throw ml();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=dl.parse(fl(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=dl.parse(fl(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?ml(e):e}async close(){this.claim&&!this.committed&&await this.coordinator.markUncertain(this.claim,this.writeFailed?`settlement_write_failed`:`execution_interrupted`)}};async function*gl(e,t,n,r,i,a){if(!e)return yield*i();let o=w.parse(fl(n)),s={...t,invocationHash:await ll(o)},c=new hl(e,s,o,r);V(r);let l=await e.lookup(s);if(V(r),l?.kind===`running`||l?.kind===`uncertain`)throw ml();if(l?.kind===`settled`){if(!a)throw X();let e=c.replay(new pl(l.outcome));return await a(e),V(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 pl){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*_l(e,t){t.kind===`progress`?yield z(e,{phase:`progress`,data:t.data}):t.kind===`draft`?yield z(e,{phase:`draft`,text:t.text}):t.kind===`trace`?yield z(e,{phase:`trace`,step:t.step}):t.kind===`artifact`?yield z(e,{phase:`artifact`,artifact:t.artifact}):t.kind===`warning`&&(yield z(e,{phase:`warning`,warning:t.warning}))}var vl=class{base;checks;drafts;constructor(e,t){this.base=e,this.checks=t,t?.drafts&&(this.drafts=new Br(()=>yl(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*_l(this.base,{...e,artifact:t.value}))}else if(e.kind===`trace`){let t=yield*this.shown(e.step);t.shown&&(yield*_l(this.base,{...e,step:t.value}))}else yield*_l(this.base,e)}}*end(){let e=this.drafts?.end();e&&(yield z(this.base,{phase:`draft`,text:e}))}async*draft(e){let t=await this.drafts?.read(e);t&&(yield z(this.base,{phase:`draft`,text:t}))}*shown(e){let t=this.checks;if(!t)return{shown:!0,value:e};let n=He(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}=_t(``,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 yl(e){return Nn(e.policy,{stage:`tool_result`,trust:`untrusted`,profileId:e.profileId,provenance:e.provenance},e.boundary,{callable:e.callableTools})}var bl=5242880,xl=10485760,Sl=15e3,Cl=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]);async function wl(e,t){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}async function Tl(e,t){let n=AbortSignal.timeout(Sl),r=t.signal?AbortSignal.any([t.signal,n]):n,i=await rt(e,{method:`GET`,headers:{Accept:`image/*`},signal:r},{policy:tt(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||!Cl.has(a))throw await i.body?.cancel().catch(()=>{}),Error(`not a png, jpeg, gif or webp image (${a||`no type`})`);let o=await wl(i,bl);if(!o)throw Error(`larger than ${bl} bytes`);return{type:`image`,mimeType:a,data:bn(o)}}function El(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 Dl(e,t,n){let r=[],i=[];try{for(let n of new Set(e(t))){let e=El(n);`url`in e?i.push(e.url):r.push(e.reason)}}catch(e){return{parts:[],urls:[],warning:Ol([`the images hook threw: ${String(e)}`])}}let a=i.slice(0,4),o=await Promise.allSettled(a.map(e=>Tl(e,n))),s=[],c=[],l=0;return o.forEach((e,t)=>{let n=a[t];if(e.status===`rejected`){let t=e.reason instanceof Error?e.reason.message:String(e.reason);r.push(`${new URL(n).hostname}: ${t}`);return}let i=`data`in e.value?e.value.data.length:0;l+i>xl?r.push(`${new URL(n).hostname}: past the ${xl} byte total`):(l+=i,s.push(e.value),c.push(n))}),{parts:s,urls:c,...r.length?{warning:Ol(r)}:{}}}function Ol(e){return{code:`images_unfetched`,severity:`warning`,message:`Some pictures the tool named were left out. ${e.join(`; `)}`}}function kl(e){return typeof e?.granted==`boolean`}function Al(e){return e?.granted===!0}function jl(e){return e?.granted===!1}function Ml(e,t){return t?t.includes(`*`)||t.includes(e):!1}function Nl(e,t){let n=Tt(e.labels?.request,{input:t});return{access:e.access,...n?{request:n}:{}}}function Pl(e,t,n,r,i){return t===`auto`||(t===`always_confirm`?r?.granted===!0:Ml(e,n))?null:{kind:`permission`,tool:e,permission:t,...i}}function Fl(e,t,n){return rt(e,t,{policy:n.network,followRedirects:!1,resolveHost:n.resolveHost,...n.fetchFn?{fetchFn:n.fetchFn}:{}})}function Il(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 Ll=/^[\x20\x21\x23-\x5B\x5D-\x7E]*$/;async function Rl(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`||!Ll.test(n)?``:typeof r==`string`&&Ll.test(r)?`: ${n} (${r})`:`: ${n}`}function zl(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 Bl(e){return e===void 0?[]:e.split(` `).filter(e=>e.length>0)}function Vl(e,t,n){if(t.length===0)return;let r=Bl(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 Hl(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 Fl(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 Rl(c)}`);let l=zl(await c.json(),t.tokenEndpoint);return Vl(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 Ul(e){return Il(e.tokenEndpoint,`token_endpoint`),Il(e.resource,`resource`),Hl(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}:{}},Bl(e.scope),{refreshToken:e.refreshToken,scope:e.scope})}function Wl(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 Gl={now:Date.now,wait:Wa},Kl=new WeakMap;function ql(e){let t=Kl.get(e);if(t)return t;let n={places:[],heldUntil:0,waiting:new Set};return Kl.set(e,n),n}function Jl(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 Yl(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 Xl(e,t,n,r=Gl){let i=ql(e),a=r.now()+Ba;for(;;){let e=r.now(),o=Jl(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 Yl(i,Math.min(o,a)-e,n,r)}}async function Zl(e,t){try{let n=await t;return e?.answered(n),n}catch(t){throw e?.answered(),t}}function Ql(e){return{handlers:[],profile:e.profile,step:e.turn?.step??1,history:()=>[],injectAllowed:!1,host:e.host,signal:e.signal}}async function*$l(e){let{tool:t,ctx:n,base:r,stages:i}=e,a,o=Al(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*eu({stages:i??Ql(n),toolName:t.name,callId:r.callId,input:e.input,toolPreTool:a,details:Nl(t,e.input)});if(!s.ok){if(s.kind===`gated`){if(`input`in s){let e=s.input,r=t.input.safeParse(Bn(e));if(!r.success)return{ok:!1,kind:`failed`,failure:{code:`invalid_input`,kind:`bad_response`,message:W(`tool.input_invalid_after_mutate`,{},n.profile.labels),details:r.error.flatten()}};s.gate={...s.gate,...Nl(t,r.data),preparedArguments:w.parse(fl(Bn(e)))}}yield Uc(`pre_tool`,{callId:r.callId,toolName:t.name,callNotStarted:!0,gate:s.gate}),yield z(r,{phase:`gate`,gate:s.gate})}return s}let c=s.mutated?t.input.safeParse(Bn(s.input)):void 0;if(c&&!c.success)return{ok:!1,kind:`failed`,failure:{code:`invalid_input`,kind:`bad_response`,message:W(`tool.input_invalid_after_mutate`,{},e.ctx.profile.labels),details:c.error.flatten()}};let l=await tu(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*eu(e){let{stages:t,toolName:n,callId:r,input:i,toolPreTool:a,details:o}=e,s=yield*Xc({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 tu(e,t,n,r,i){if(!r)return;let a=e?.wait?await e.wait(t,r):{ok:!1,reason:`unknown`,callIds:[...r]};if(!a.ok)return{code:a.reason===`unknown`?`wait_unknown`:`wait_cycle`,kind:`request`,message:W(a.reason===`unknown`?`tool.wait_unknown`:`tool.wait_cycle`,{tool:n,calls:a.callIds.join(`, `)},i)}}async function*nu(e){let{stages:t,toolName:n,callId:r,mutable:i,...a}=e,o=yield*Xc({...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*ru(e){yield Uc(`pre_tool`,{callId:e.callId,toolName:e.toolName,callNotStarted:!0,gate:e.gate});let t=e.gate.kind===`auth`?W(`sign_in.pending`,{service:e.gate.authChallenge.service},e.labels):void 0;return yield z(e.base,{phase:`gate`,gate:e.gate,...t?{readBack:t}:{}}),t}function iu(e,t){if(!t)return e;let n=new URL(e);return n.searchParams.set(t.name,t.value),n}function au(e,t,n){let r=e.headerName??n.headerName,i=e.headerPrefix??n.headerPrefix;return{[r]:`${i}${t}`}}function ou(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 su(e,t,n,r,i){return r===`gate`?{headers:{},unauthenticated:!0,gate:ou(e,t,n,i)}:r===`fail`?{headers:{},unauthenticated:!0,failureMessage:n}:{headers:{},unauthenticated:!0,modelMessage:n}}function cu(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:au(e,n,{headerName:`Authorization`,headerPrefix:`Bearer `})};let r=t.headerName??e.headerName??`Authorization`,i=t.headerPrefix??e.headerPrefix??``;return{headers:{[r]:`${i}${n}`}}}function lu(e,t){if(e.type!==`bearer`&&e.type!==`api_key`)return;let n=e.type===`bearer`?e.token:e.key;return{...cu(t,e),secret:n}}var uu=new Map;function du(e,t,n,r){let i=`${e.tokenEndpoint}\n${t}`,a=uu.get(i);if(a)return a;let o=Ul({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);uu.set(i,o);let s=()=>uu.delete(i);return o.then(s,s),o}async function*fu(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 su(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 du(n,n.refreshToken,{network:tt(i),resolveHost:i.resolveHost},await r.clientSecret?.(n.clientId))}catch(n){return yield{...z(a,{phase:`progress`,data:{kind:`auth_token_refresh_failed`,slot:s}}),errorInternal:qe(n)},su(e,t,`Failed to refresh OAuth token for '${e}' (slot: '${s}').`,o,c)}await r.set(s,l),yield z(a,{phase:`progress`,data:{kind:`auth_token_refreshed`,slot:s}})}else if(u)return su(e,t,`OAuth token expired for '${e}' (slot: '${s}') and no refresh token is available.`,o,c);return{headers:au(t,l.accessToken,{headerName:`Authorization`,headerPrefix:`Bearer `}),secret:l.accessToken,audience:n.resource}}async function*pu(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?su(e,t,`Authentication required for '${e}' (auth slot: '${t.slot}').`,o):lu(a,t)||(a.type===`oauth2`?yield*fu(e,t,a,i,n,r,o):{headers:{}})}function mu(e,t){if(t===`.`||t===`..`)throw Error(`Path parameter "${e}" cannot be "${t}"`);return encodeURIComponent(t)}function hu(e,t,n,r){Vn(e);let i=e,a=r?.pathParams??[];for(let e of a){let t=n[e];t!==void 0&&(i=i.replaceAll(`{${e}}`,mu(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 gu(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 _u(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 vu(e){return{finding:typeof e==`string`?e:JSON.stringify(e)}}function yu(e,t){return t?.length?{...e,parts:t}:e}function Z(e,t){return{kind:`failed`,failure:e,callNotStarted:t}}async function*bu(e){let t=yield*$l(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 xu(e,t,n){let r=ht(e,t,n);if(!r.ok)return{ok:!1,outcome:Z(r.failure,!0)};let i=Pl(e.name,e.permission,n.sessionPermissions,n.resume,Nl(e,r.data));return i?{ok:!1,outcome:{kind:`gated`,gate:i}}:{ok:!0,input:r.data}}function Su(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 Cu(e){return e.status===401||e.status===403?{status:e.status,challenge:e.headers.get(`www-authenticate`)}:void 0}var wu=/^[\x21\x23-\x5B\x5D-\x7E]+$/;function Tu(e){let t=t=>e?.match(RegExp(`(?:^|[\\s,])${t}="([^"]*)"`,`i`))?.[1],n=(t(`scope`)??``).split(` `).filter(e=>wu.test(e)),r=t(`error`);return r===void 0?{scopes:n}:{error:r,scopes:n}}function Eu(e){return e.status===401||Tu(e.challenge).error===`insufficient_scope`}function*Du(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 Su(su(e.name,a,t,o),!0)}let s=Tu(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 Su(su(e.name,a,t,o),!0)}let u={kind:`auth_scope_refused`,slot:a.slot,requested:l,declared:c};return yield z(i,{phase:`progress`,data:u}),Z({code:`out_of_scope`,kind:`auth`,message:W(`sign_in.out_of_scope`,{service:a.service},r.profile.labels)},!1)}async function*Ou(e){let t=yield*pu(e.tool.name,e.tool.auth,e.ctx,e.base),n=Su(t);if(n)return n;let r=yield*bu({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*ku(e,t){if(he(e)===`blocked`){let n=at();return t.record(n),Z(yield*Me(e,n),!1)}return Z({code:`network_error`,kind:`network`,message:qe(e)},!1)}var Au=`[omitted - credential]`,ju=4194304,Mu=2e3;async function*Nu(e,t){let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)return await e.body?.cancel().catch(()=>{}),!1;if(!e.body)return yield await e.text(),!0;let r=e.body.getReader(),i=new TextDecoder,a=0;for(;;){let{done:e,value:n}=await r.read();if(e)break;if(a+=n.byteLength,a>t)return await r.cancel().catch(()=>{}),!1;let o=i.decode(n,{stream:!0});o&&(yield o)}let o=i.decode();return o&&(yield o),!0}async function Pu(e,t=ju){let n=Nu(e,t),r=``;for(;;){let e=await n.next();if(e.done)return e.value?r:void 0;r+=e.value}}async function*Fu(e,t,n){let r=Nu(e,ju),i=n?n.length-1:0,a=``,o=``;for(;;){let e=await r.next();if(e.done)return e.value?(o&&(yield*t.show({kind:`draft`,text:o})),yield*t.end(),a):void 0;a+=e.value,o=n?Ru(o+e.value,n):o+e.value;let s=o.length-i;s<=0||(yield*t.show({kind:`draft`,text:o.slice(0,s)}),o=o.slice(s))}}function Iu(e){return e.length>Mu?`${e.slice(0,Mu)}…`:e}function Lu(e){return{code:`response_too_large`,kind:`bad_response`,message:`Response from ${e} is larger than ${ju} bytes`}}function Ru(e,t){return e.replaceAll(t,Au)}function zu(e,t){return hn(e,e=>Ru(e,t))}function Bu(e,t){return{...e,message:Ru(e.message,t),...e.details===void 0?{}:{details:zu(e.details,t)}}}function Vu(e,t){if(!t)return e;if(e.kind===`ok`){let n=zu(e.outputRaw,t);return{kind:`ok`,outputRaw:n,modelResult:yu(vu(n),e.modelResult.parts)}}return e.kind===`failed`?{...e,failure:Bu(e.failure,t)}:e}function Hu(e,t){if(e&&!Wl(e,t))return`The OAuth token for "${e}" cannot be sent to "${t.origin}${t.pathname}"`}async function*Uu(e,t,n){let r=Hu(e.audience,t);return r?Z({code:`credential_audience_mismatch`,kind:`config`,message:r},!0):Vu(yield*n(iu(t,e.query)),e.secret)}async function*Wu(e,t,n,r,i,a,o){let s=xu(e,t,n);if(!s.ok)return s.outcome;let c=s.input,l=yield*Ou({tool:e,input:c,ctx:n,base:r,stages:i});if(!(`ok`in l))return l;c=l.input;let u;try{u=hu(e.endpoint,e.method,c,e.mapping)}catch(e){return Z({code:`invalid_input`,kind:`bad_response`,message:qe(e)},!0)}let d=yield*lt(u.url,n,i?.span);return d.ok?(yield*h(e,c,n,r,a),yield*Uu(l,d.url,t=>qu(e,t,u.body,l,n,r,i?.span,o))):Z(d.failure,!0)}function Gu(e){if(!e.ok)return!1;let t=e.headers.get(`content-type`)??``;return t===``||t.startsWith(`text/`)||/[/+]json\b/.test(t)}async function*Ku(e,t,n){return!t||!Gu(e)?await Pu(e):yield*Fu(e,t,n)}async function*qu(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 Xl(e,e.limit,a.signal):void 0;if(s&&`full`in s)return Z(sd(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 Zl(s,rt(t.href,{method:e.method,headers:u,body:n,signal:f},{policy:tt(a),followRedirects:!0,...e.access===`read-only`?{fetchFn:Xa(fetch)}:{},originBoundHeaders:{...e.headers,...r},resolveHost:a.resolveHost,onCheck:l.onCheck})),m=yield*Ku(p,c,i);if(m===void 0)return Z(Lu(t.hostname),!1);if(!p.ok)return(yield*Du(e,Cu(p),i!==void 0,a,o))||Z({code:`http_${p.status}`,kind:cd(p.status),message:`HTTP ${p.status} from ${t.hostname}: ${Iu(m)}`},!1);let h=gu(p.headers.get(`content-type`)??``,m,p.status),g=_u(e.output,h);return g.success?{kind:`ok`,modelResult:vu(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(Ju(t.hostname,e.timeoutMs),!1):yield*ku(n,l)}finally{l.record()}}function Ju(e,t){return{code:`timeout`,kind:`timeout`,message:`${e} did not answer within ${t} ms`}}var Yu=[`2026-07-28`,`2025-11-25`,`2025-06-18`,`2025-03-26`];function Xu(e){let t=e.trim();if(t.startsWith(`{`))return JSON.parse(t);let n=[];for(let t of e.split(`
|