@theoremjs/studio 0.3.4-next.468.ge2da06f → 0.3.4-next.472.gd209e07
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/package.json +4 -4
- package/page/assets/{Banner-Z4LFsB9Y.js → Banner-CtU6GWsR.js} +2 -2
- package/page/assets/{ConsoleFrame-BJo1I5fw.js → ConsoleFrame-rOazU_3-.js} +1 -1
- package/page/assets/{ContextMenu-BrT5KgtG.js → ContextMenu-DmUul6pF.js} +2 -2
- package/page/assets/{ToolResultCharts-CvdG2e3W.js → ToolResultCharts-BDDx1etB.js} +1 -1
- package/page/assets/{TraceInspector-CwsPN13M.js → TraceInspector-D6vHUDyE.js} +1 -1
- package/page/assets/{TraceOverview-Bdz85-Rn.js → TraceOverview-BhXATGPj.js} +1 -1
- package/page/assets/{browser-engine-Biheh6VY.js → browser-engine-C_bnPqwE.js} +1 -1
- package/page/assets/{browser-transport-Cnyo4CDA.js → browser-transport-DhK6zdPU.js} +3 -3
- package/page/assets/{export-agent-CVpG2q1m.js → export-agent-DYkJ9TvF.js} +1 -1
- package/page/assets/{guardrail-tester-CJuC6zTI.js → guardrail-tester-jPLQwdKE.js} +1 -1
- package/page/assets/{index-CYmjuHBy.js → index-CqWriUY5.js} +6 -6
- package/page/assets/{studio-code-pane-CkjZy0ML.js → studio-code-pane-C5Ni_xAW.js} +1 -1
- package/page/assets/{studio-console-D7Gp4J9U.js → studio-console-DAgC8PBu.js} +1 -1
- package/page/assets/{studio-decision-BRgQ4PBH.js → studio-decision-BagUC4JS.js} +1 -1
- package/page/assets/{studio-embedding-Dl4-HUCw.js → studio-embedding-D-cMc1Pu.js} +1 -1
- package/page/assets/{studio-host-console-C2kDYgZ0.js → studio-host-console-DT1bVkuk.js} +2 -2
- package/page/assets/{studio-labels-BOSQZulx.js → studio-labels-13hwz_RT.js} +1 -1
- package/page/assets/{studio-live-BweMJXiN.js → studio-live-KEG55ci9.js} +1 -1
- package/page/assets/{studio-map-ClUV7cPI.js → studio-map-CFMwUuYl.js} +1 -1
- package/page/assets/{studio-trace-replay-BVJ_xUpV.js → studio-trace-replay-CUR5tah-.js} +1 -1
- package/page/assets/{use-one-call-Djq1Oucn.js → use-one-call-COJjNMUc.js} +1 -1
- package/page/index.html +5 -5
- package/ui/tree-map.css +10 -0
- package/ui/tree-map.d.ts +3 -1
- package/ui/tree-map.js +41 -4
|
@@ -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 ae,Lr as oe,Lt as P,Mn as se,Mr as ce,Mt as le,Nn as ue,Nr as de,Nt as fe,On as pe,Or as me,Ot as he,Pr as ge,Pt as _e,Q as ve,Rn as ye,Rr as F,Rt as be,Sn as xe,St as Se,Tn as Ce,Tt as we,Ut as Te,Vr as Ee,Wn as De,Xt as Oe,Yt as ke,_n as Ae,_t as je,an as Me,at as Ne,bn as Pe,br as Fe,bt as Ie,ct as Le,dn as Re,dt as ze,et as Be,fn as Ve,ft as He,gn as Ue,gt as We,hn as Ge,ht as Ke,in as qe,it as Je,jn as Ye,jr as Xe,jt as Ze,kr as Qe,kt as $e,lr as et,lt as tt,mn as I,mt as nt,nn as rt,nt as L,on as it,or as at,ot,p as st,pt as R,qt as ct,rn as lt,rt as ut,sn as dt,sr as ft,st as pt,tn as mt,tt as ht,ut as gt,v as _t,vn as vt,vr as yt,wn as bt,wr as z,wt as xt,xn as St,xr as Ct,xt as wt,yn as Tt,yt as Et,zn as Dt,zr as B}from"./tool-schema-DUAd6AXZ.js";import{c as V,t as Ot}from"./host-patterns-C9RMP16Q.js";import{$ as kt,A as At,At as jt,B as Mt,Ct as Nt,D as H,E as Pt,En as Ft,Et as It,Ft as Lt,It as Rt,J as zt,K as Bt,L as Vt,M as Ht,Mt as Ut,Nt as Wt,O as U,Ot as Gt,Pt as Kt,St as qt,Tt as Jt,U as Yt,Y as Xt,Z as Zt,_n as Qt,_t as $t,an as en,at as tn,bt as nn,ct as rn,dt as an,et as on,fn as sn,gn as cn,gt as ln,ht as un,j as dn,jn as W,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,vt as wn,w as Tn,xt as En,yn as Dn,yt as On,z as kn}from"./shaped-data-Hq2l-bCM.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 G,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-DkhgU7-Z.js";import{a as Vr,t as Hr}from"./live-ingress-lDUGPwth.js";import{t as Ur}from"./trace-record-Dfx7WS9n.js";import{n as Wr,r as Gr,t as Kr}from"./crypto-C5mfRMPv.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-BHueOGtF.js";import{n as ii,t as ai}from"./live-messages-CcUq850L.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-CYmjuHBy.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,Wt(r).text)}function Fi(e,t,n){Ni(e,t.system),n.has(t.input)||Ni(e,Wt(t.input).text),Pi(e,t.history??[],n)}function Ii(e,t,n){if(!Pe(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:Dn.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:cn.ungiven_images,severity:`high`},Bi={rule:cn.ungiven_links,severity:`high`},Vi={rule:cn.marker_leak,severity:`high`},Hi={rule:cn.prompt_leak,severity:`high`};function Ui(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 Wi(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 Gi=8,Ki=16;function qi(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?qt(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=Rt(e,_);i=Lt(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(kt.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 wn(e,n))i.push({start:t,end:r,kind:`instructions`,hit:_n});if(r)for(let[t,n]of Lt(e,r,l))i.push({start:t,end:n,kind:`instructions`,hit:Hi});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||Rt(a.text,a.held)>0)return a}}function j(){let e=A();if(!e)return[];let t=[];if(n)for(let[r,i]of wn(e.text,n))t.push([r,i,_n]);if(r)for(let[n,i]of Lt(e.text,r,l))t.push([n,i,Hi]);let i=[];for(let[n,r,a]of t){if(r<=e.held)continue;let t=Ui(e,n),o=Ui(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 Wi([...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<Gi&&!(C>=Ki);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 ae(){let e=p.length+m.length,t=h?h.holdFrom():e,i=n?oe(n):e,a=r?p.length+Kt(m,r,l):e,o=Math.min(t,i,a,se()??e,y??e);return M(o<p.length?o:p.length+jt(m,o-p.length))}function oe(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+nn(P(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+nn(P(t),e)}return x=Math.min(r,p.length+m.length-vn),Math.max(p.length,r)}function P(e){return e<p.length?p.slice(e)+m:m.slice(e-p.length)}function se(){let e=A();if(!e)return;let t=e.text.slice(e.held),i=n?$t(t,n,e.text.slice(0,e.held)):t.length,a=r?Kt(t,r,l):t.length;return Ui(e,e.held+Math.min(i,a))}function ce(e){let t={text:e,hits:[...w.values()]};return w=new Map,t}return T(p),{push(e){if(S||!e||(m+=e,(y!==void 0||E(e)||j().length>0)&&ie(),S))return ce(``);let t=Math.max(0,ae()-p.length),n=m.slice(0,t);return p+=n,m=m.slice(t),ce(n)},flush(){if(!S){for(let e=0;e<Gi&&!S&&ne(!0);e++);!S&&m&&(D(p+m).length>0||j().length>0)&&N()}let e=m,t=p+m;p=n||r?It(t,n,r):``;let i=p.length-t.length;return b=b.filter(e=>e.start+i>=0).map(e=>({...e,start:e.start+i,end:e.end+i})),m=``,x=0,y=void 0,S=!1,C=0,T(p),ce(e)},carryOut:()=>p}}function Ji(...e){let t=e.filter(e=>e!==void 0);return t.length===0?{}:{found:{action:t.reduce((e,t)=>Yt(e,t.action),`allow`),hits:[...new Map(t.flatMap(({hits:e})=>e).map(e=>[e.rule,e])).values()]}}}function Yi(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,...Ji(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()],...Ji(n,r?.found,u.found)}},carryOut:()=>e?.carryOut()??``}}var Xi={canary_leak:_n,prompt_leak:Hi,marker_leak:Vi,ungiven_images:zi,ungiven_links:Bi},Zi=[`marker_leak`,`ungiven_images`,`ungiven_links`];function Qi(e,t){let{canary:n,privateSystem:r}=e,i=n?qt(n):void 0,a=``,o=new Set;return{read(e){let n=Rt(a+e,a.length);a+=e;let s=[];i?.push(e)&&s.push(_n),r&&Lt(a.slice(n),r,t).length>0&&s.push(Hi);let c=s.filter(e=>!o.has(e.rule));for(let e of c)o.add(e.rule);return c},reset(){i=n?qt(n):void 0,a=``,o=new Set}}}function $i(e,t,n,r){let i=Qi(n,r),a=new Map(Object.entries(Xi).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)=>Yt(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 ea(e,t,n){let{detect:r}=e,i=Zi.filter(e=>ta(r,e)),a=ra(r,t,ta),o=ra(r,t,(e,t)=>e[t].thought===`flag`),s=i.length>0||ia(a)||ia(o),c=Mt(e,t);(s||Ht([`thought`],r,c))&&await Hn();let l=s?qi({omit:na(e),...a,...aa(r),...oa(t),...n?{carry:n}:{}}):void 0;return Yi(l&&$i(l,r,o,t.canary),r,c,i)}function ta(e,t){return e[t].thought===`redact`||e[t].thought===`block`}function na({detect:e,allow:t}){return{...ta(e,`marker_leak`)?{markers:!0}:{},...ta(e,`ungiven_images`)?{images:t.ungiven_images}:{},...ta(e,`ungiven_links`)?{links:t.ungiven_links}:{},imagesRead:e.ungiven_images.thought!==`ignore`}}function ra(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 ia(e){return e.canary!==void 0||e.privateSystem!==void 0}function aa(e){let t=new Set(Object.entries(Xi).filter(([t])=>e[t].thought===`block`).map(([,e])=>e.rule));return t.size>0?{ends:t}:{}}function oa({canary:e,givenUrls:t,labels:n}){return{...e?{planted:e}:{},...t?{given:t}:{},...n?{labels:n}:{}}}var sa={rule:`live.untranscribed-audio`,severity:`high`};async function ca(e,t,n,r,i){let a=I(e.guardrails),o={stage:`live_outbound`,trust:`untrusted`,profileId:e.id,...Vt(a.detect,{canary:t,privateSystem:n}),...e.labels?{labels:e.labels}:{},...r?{givenUrls:r}:{},...i?{ownTools:i}:{}},s=await ea(a,o);return{policy:a,context:o,gate:await nr(a,o,`live_reply`),held:[],releasedTo:0,withholdVisible:!1,...s?{thoughts:s}:{}}}function la(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 ua(e,t,n=[]){let r=Ar(`live_outbound`,`untrusted`,t,`block`);return{action:`withhold`,error:new V(`safety`,e),events:[...n,...r?[r]:[]]}}function da(e){return e.accumulated().length-e.unreleased().length}function fa(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 pa(e,t,n,r){if(!n.blocked){let i=n.found&&dn(`live_reply`,n.found);i&&r.push(G(i)),fa(e,t,da(t),r);return}let i=n.hits.filter(Xt);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 ma(e,t,n){e.withholdVisible||e.held.length===0||pa(e,t,t.flush(),n)}function ha(e,t,n,r){let i=t.accumulated().length;e.held.push({event:n,start:i,end:r?i:1/0})}function ga(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 _a(e,t,n,r){let i=n.text??``;if(!i)return;let a=t.accumulated().length;ga(e,a+i.length),e.held.push({event:n,start:a,end:a+i.length});let o=t.process(i);e.withholdVisible||pa(e,t,o,r)}function va(e,t){let n=[],{gate:r}=e;if(!r){let{thoughts:n}=e;return Sa(n?t.flatMap(e=>e.type===`thought`?ya(n.push(e.text),e):[e]):t)}let i=!1;for(let a of t){if(Nt(a)){i||=!!a.text,_a(e,r,a,n);continue}if(a.type===`media`){ha(e,r,a,i),e.withholdVisible||fa(e,r,da(r),n);continue}ma(e,r,n),ba(a)&&xa(e,r,n);let t=a.type===`tool`?void 0:zt(a,e.context,e.policy.detect,`live_reply`);if(t?.stop)return ua(Zt(t.hits),t.hits,n);if(t){let e=dn(`live_reply`,{action:`flag`,hits:t.hits});e&&n.push(G(e))}a.type===`thought`&&e.thoughts?n.push(...ya(e.thoughts.push(a.text),a)):n.push(a)}return Sa(n)}function ya({text:e,hits:t,found:n},r){let i=n&&dn(`thought`,n),a=Ar(`thought`,`untrusted`,t,`redact`);return[...i?[G(i)]:[],...a?[a]:[],...e?[{...r,text:e}]:[]]}function ba(e){return e.type===`done`&&e.stop?.kind===`generation_complete`}function xa(e,t,n){let r=t.accumulated().length;e.withholdVisible||r===0||da(t)<r||fa(e,t,r,n,!0)}function Sa(e){return e.length===0?{action:`idle`}:{action:`emit`,events:e}}function Ca(e,t,n){let{detect:r,blockedReply:i}=e.policy,a=bt({text:t.accumulated()},r,{boundary:`live_reply`,...e.withholdVisible?{reportedTo:da(t)}:{},scope:Mt(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(G),...c?[c]:[]];if(s){if(i.onBlock===`refuse`){let t=Ce(o,e.context.labels);return{action:`emit`,events:[...l,{type:`text`,text:t}]}}return{action:`withhold`,error:new V(`safety`,Bt.egress),events:l}}if(a.rewritten){let e=O(o,a.payload.text);return{action:`emit`,events:[...l,{type:`text`,text:e}]}}return fa(e,t,t.accumulated().length,l,!0),Sa(l)}function wa(e,t){if(e.held.length===0)return t;let n=Ar(`live_outbound`,`untrusted`,[sa],`block`);return n?[...t,n]:t}function Ta(e,t){let n=[];return ma(e,t,n),t.accumulated()?Ca(e,t,n):Sa(wa(e,n))}function Ea(e){let t=e.thoughts?ya(e.thoughts.flush(),{type:`thought`,text:``}):[];if(!e.gate)return Sa(t);let n=Ta(e,e.gate);return la(e),t.length===0?n:n.action===`idle`?{action:`emit`,events:t}:{...n,events:[...t,...n.events??[]]}}function Da(e){e.thoughts?.flush(),la(e)}var Oa=d().int().positive().max(2**53-1),ka=Oa.max(2147483647),Aa=t({operationTimeoutMs:ka,connectTimeoutMs:ka,liveStepTimeoutMs:ka,maxWireRecordBytes:Oa,maxWireResponseBytes:Oa,maxEventBytes:Oa,maxStepBytes:Oa,maxStepEvents:Oa,maxPendingToolCalls:Oa});function ja(e={}){return Object.freeze(Aa.parse({operationTimeoutMs:12e4,connectTimeoutMs:3e4,liveStepTimeoutMs:12e4,maxWireRecordBytes:16777216,maxWireResponseBytes:67108864,maxEventBytes:16777216,maxStepBytes:67108864,maxStepEvents:1e5,maxPendingToolCalls:32,...e}))}var Ma=/key|auth|cookie|secret|token/i;function Na(e,t){return Ma.test(e)?`[redacted]`:t}function Pa(e){let t={};for(let[n,r]of new Headers(e).entries())t[n]=Na(n,r);return t}function Fa(e){return e instanceof Error?{eventType:`http_throw`,name:e.name,message:e.message}:{eventType:`http_throw`,name:`Error`,message:String(e)}}function Ia(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 La(e,t=fetch,n){return e?async(r,i)=>{e({eventType:`http_request`,method:i?.method??`GET`,url:String(r),headers:Pa(i?.headers),...n?{keySlot:n}:{},...Ia(i?.body)});try{let n=await t(r,i);return e({eventType:`http_response`,status:n.status,headers:Pa(n.headers)}),n.ok||e({eventType:`http_error_body`,body:await n.clone().text()}),n}catch(t){throw e(Fa(t)),t}}:t}function Ra(e){return e instanceof V||j(e)||ne(e)?e:new V(`network`,ce(e),{cause:e})}function za(e=fetch){return async(t,n)=>{try{return await e(t,n)}catch(e){throw Ra(e)}}}var Ba=[1e3,2e3,4e3,8e3],Va=5e3,Ha=Ba.length,Ua=1e3,Wa=new Set([408,429,500,502,503,504,529]),Ga=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(Ka(t));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e);function a(){clearTimeout(i),r(Ka(t))}t?.addEventListener(`abort`,a,{once:!0})});function Ka(e){return e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}function qa(e){return Wa.has(e)}function Ja(e){let t=Ra(e);return t instanceof V&&t.kind===`network`}function Ya(e){return Ba[Math.min(e,Ba.length-1)]}function Xa(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*Ua:Date.parse(r)-t}if(!(i===void 0||Number.isNaN(i)||i<0))return i}function Za(e,t=Ga,n=()=>1/0){return async(r,i)=>{let a=0;for(let o=0;;o++){let s=Math.min(Va-a,n()),c;try{let t=await e(r,i);if(!qa(t.status)||(c=Xa(t.headers)??Ya(o),c>s||o>=Ha))return t;await t.body?.cancel()}catch(e){if(c=Ya(o),!Ja(e)||c>s||o>=Ha)throw e}await t(c,i?.signal),a+=c}}}var Qa=`[DONE]`;function $a(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function eo(e,t){let n=e.startsWith(`data:`)?e.slice(5).replace(/^ /,``):e,r={};if(t&&(r.sseEvent=t),n===Qa)return r.eventType=`sse_done`,r;try{let e=JSON.parse(n),t=$a(e);return t?{...t,...r}:(r.eventType=`sse_unparsed`,r.data=e,r)}catch{return r.eventType=`sse_unparsed`,r.data=n,r}}function to(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(eo(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 ae,Lr as oe,Lt as P,Mn as se,Mr as ce,Mt as le,Nn as ue,Nr as de,Nt as fe,On as pe,Or as me,Ot as he,Pr as ge,Pt as _e,Q as ve,Rn as ye,Rr as F,Rt as be,Sn as xe,St as Se,Tn as Ce,Tt as we,Ut as Te,Vr as Ee,Wn as De,Xt as Oe,Yt as ke,_n as Ae,_t as je,an as Me,at as Ne,bn as Pe,br as Fe,bt as Ie,ct as Le,dn as Re,dt as ze,et as Be,fn as Ve,ft as He,gn as Ue,gt as We,hn as Ge,ht as Ke,in as qe,it as Je,jn as Ye,jr as Xe,jt as Ze,kr as Qe,kt as $e,lr as et,lt as tt,mn as I,mt as nt,nn as rt,nt as L,on as it,or as at,ot,p as st,pt as R,qt as ct,rn as lt,rt as ut,sn as dt,sr as ft,st as pt,tn as mt,tt as ht,ut as gt,v as _t,vn as vt,vr as yt,wn as bt,wr as z,wt as xt,xn as St,xr as Ct,xt as wt,yn as Tt,yt as Et,zn as Dt,zr as B}from"./tool-schema-DUAd6AXZ.js";import{c as V,t as Ot}from"./host-patterns-C9RMP16Q.js";import{$ as kt,A as At,At as jt,B as Mt,Ct as Nt,D as H,E as Pt,En as Ft,Et as It,Ft as Lt,It as Rt,J as zt,K as Bt,L as Vt,M as Ht,Mt as Ut,Nt as Wt,O as U,Ot as Gt,Pt as Kt,St as qt,Tt as Jt,U as Yt,Y as Xt,Z as Zt,_n as Qt,_t as $t,an as en,at as tn,bt as nn,ct as rn,dt as an,et as on,fn as sn,gn as cn,gt as ln,ht as un,j as dn,jn as W,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,vt as wn,w as Tn,xt as En,yn as Dn,yt as On,z as kn}from"./shaped-data-Hq2l-bCM.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 G,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-DkhgU7-Z.js";import{a as Vr,t as Hr}from"./live-ingress-lDUGPwth.js";import{t as Ur}from"./trace-record-Dfx7WS9n.js";import{n as Wr,r as Gr,t as Kr}from"./crypto-C5mfRMPv.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-BHueOGtF.js";import{n as ii,t as ai}from"./live-messages-CcUq850L.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-CqWriUY5.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,Wt(r).text)}function Fi(e,t,n){Ni(e,t.system),n.has(t.input)||Ni(e,Wt(t.input).text),Pi(e,t.history??[],n)}function Ii(e,t,n){if(!Pe(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:Dn.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:cn.ungiven_images,severity:`high`},Bi={rule:cn.ungiven_links,severity:`high`},Vi={rule:cn.marker_leak,severity:`high`},Hi={rule:cn.prompt_leak,severity:`high`};function Ui(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 Wi(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 Gi=8,Ki=16;function qi(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?qt(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=Rt(e,_);i=Lt(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(kt.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 wn(e,n))i.push({start:t,end:r,kind:`instructions`,hit:_n});if(r)for(let[t,n]of Lt(e,r,l))i.push({start:t,end:n,kind:`instructions`,hit:Hi});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||Rt(a.text,a.held)>0)return a}}function j(){let e=A();if(!e)return[];let t=[];if(n)for(let[r,i]of wn(e.text,n))t.push([r,i,_n]);if(r)for(let[n,i]of Lt(e.text,r,l))t.push([n,i,Hi]);let i=[];for(let[n,r,a]of t){if(r<=e.held)continue;let t=Ui(e,n),o=Ui(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 Wi([...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<Gi&&!(C>=Ki);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 ae(){let e=p.length+m.length,t=h?h.holdFrom():e,i=n?oe(n):e,a=r?p.length+Kt(m,r,l):e,o=Math.min(t,i,a,se()??e,y??e);return M(o<p.length?o:p.length+jt(m,o-p.length))}function oe(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+nn(P(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+nn(P(t),e)}return x=Math.min(r,p.length+m.length-vn),Math.max(p.length,r)}function P(e){return e<p.length?p.slice(e)+m:m.slice(e-p.length)}function se(){let e=A();if(!e)return;let t=e.text.slice(e.held),i=n?$t(t,n,e.text.slice(0,e.held)):t.length,a=r?Kt(t,r,l):t.length;return Ui(e,e.held+Math.min(i,a))}function ce(e){let t={text:e,hits:[...w.values()]};return w=new Map,t}return T(p),{push(e){if(S||!e||(m+=e,(y!==void 0||E(e)||j().length>0)&&ie(),S))return ce(``);let t=Math.max(0,ae()-p.length),n=m.slice(0,t);return p+=n,m=m.slice(t),ce(n)},flush(){if(!S){for(let e=0;e<Gi&&!S&&ne(!0);e++);!S&&m&&(D(p+m).length>0||j().length>0)&&N()}let e=m,t=p+m;p=n||r?It(t,n,r):``;let i=p.length-t.length;return b=b.filter(e=>e.start+i>=0).map(e=>({...e,start:e.start+i,end:e.end+i})),m=``,x=0,y=void 0,S=!1,C=0,T(p),ce(e)},carryOut:()=>p}}function Ji(...e){let t=e.filter(e=>e!==void 0);return t.length===0?{}:{found:{action:t.reduce((e,t)=>Yt(e,t.action),`allow`),hits:[...new Map(t.flatMap(({hits:e})=>e).map(e=>[e.rule,e])).values()]}}}function Yi(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,...Ji(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()],...Ji(n,r?.found,u.found)}},carryOut:()=>e?.carryOut()??``}}var Xi={canary_leak:_n,prompt_leak:Hi,marker_leak:Vi,ungiven_images:zi,ungiven_links:Bi},Zi=[`marker_leak`,`ungiven_images`,`ungiven_links`];function Qi(e,t){let{canary:n,privateSystem:r}=e,i=n?qt(n):void 0,a=``,o=new Set;return{read(e){let n=Rt(a+e,a.length);a+=e;let s=[];i?.push(e)&&s.push(_n),r&&Lt(a.slice(n),r,t).length>0&&s.push(Hi);let c=s.filter(e=>!o.has(e.rule));for(let e of c)o.add(e.rule);return c},reset(){i=n?qt(n):void 0,a=``,o=new Set}}}function $i(e,t,n,r){let i=Qi(n,r),a=new Map(Object.entries(Xi).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)=>Yt(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 ea(e,t,n){let{detect:r}=e,i=Zi.filter(e=>ta(r,e)),a=ra(r,t,ta),o=ra(r,t,(e,t)=>e[t].thought===`flag`),s=i.length>0||ia(a)||ia(o),c=Mt(e,t);(s||Ht([`thought`],r,c))&&await Hn();let l=s?qi({omit:na(e),...a,...aa(r),...oa(t),...n?{carry:n}:{}}):void 0;return Yi(l&&$i(l,r,o,t.canary),r,c,i)}function ta(e,t){return e[t].thought===`redact`||e[t].thought===`block`}function na({detect:e,allow:t}){return{...ta(e,`marker_leak`)?{markers:!0}:{},...ta(e,`ungiven_images`)?{images:t.ungiven_images}:{},...ta(e,`ungiven_links`)?{links:t.ungiven_links}:{},imagesRead:e.ungiven_images.thought!==`ignore`}}function ra(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 ia(e){return e.canary!==void 0||e.privateSystem!==void 0}function aa(e){let t=new Set(Object.entries(Xi).filter(([t])=>e[t].thought===`block`).map(([,e])=>e.rule));return t.size>0?{ends:t}:{}}function oa({canary:e,givenUrls:t,labels:n}){return{...e?{planted:e}:{},...t?{given:t}:{},...n?{labels:n}:{}}}var sa={rule:`live.untranscribed-audio`,severity:`high`};async function ca(e,t,n,r,i){let a=I(e.guardrails),o={stage:`live_outbound`,trust:`untrusted`,profileId:e.id,...Vt(a.detect,{canary:t,privateSystem:n}),...e.labels?{labels:e.labels}:{},...r?{givenUrls:r}:{},...i?{ownTools:i}:{}},s=await ea(a,o);return{policy:a,context:o,gate:await nr(a,o,`live_reply`),held:[],releasedTo:0,withholdVisible:!1,...s?{thoughts:s}:{}}}function la(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 ua(e,t,n=[]){let r=Ar(`live_outbound`,`untrusted`,t,`block`);return{action:`withhold`,error:new V(`safety`,e),events:[...n,...r?[r]:[]]}}function da(e){return e.accumulated().length-e.unreleased().length}function fa(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 pa(e,t,n,r){if(!n.blocked){let i=n.found&&dn(`live_reply`,n.found);i&&r.push(G(i)),fa(e,t,da(t),r);return}let i=n.hits.filter(Xt);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 ma(e,t,n){e.withholdVisible||e.held.length===0||pa(e,t,t.flush(),n)}function ha(e,t,n,r){let i=t.accumulated().length;e.held.push({event:n,start:i,end:r?i:1/0})}function ga(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 _a(e,t,n,r){let i=n.text??``;if(!i)return;let a=t.accumulated().length;ga(e,a+i.length),e.held.push({event:n,start:a,end:a+i.length});let o=t.process(i);e.withholdVisible||pa(e,t,o,r)}function va(e,t){let n=[],{gate:r}=e;if(!r){let{thoughts:n}=e;return Sa(n?t.flatMap(e=>e.type===`thought`?ya(n.push(e.text),e):[e]):t)}let i=!1;for(let a of t){if(Nt(a)){i||=!!a.text,_a(e,r,a,n);continue}if(a.type===`media`){ha(e,r,a,i),e.withholdVisible||fa(e,r,da(r),n);continue}ma(e,r,n),ba(a)&&xa(e,r,n);let t=a.type===`tool`?void 0:zt(a,e.context,e.policy.detect,`live_reply`);if(t?.stop)return ua(Zt(t.hits),t.hits,n);if(t){let e=dn(`live_reply`,{action:`flag`,hits:t.hits});e&&n.push(G(e))}a.type===`thought`&&e.thoughts?n.push(...ya(e.thoughts.push(a.text),a)):n.push(a)}return Sa(n)}function ya({text:e,hits:t,found:n},r){let i=n&&dn(`thought`,n),a=Ar(`thought`,`untrusted`,t,`redact`);return[...i?[G(i)]:[],...a?[a]:[],...e?[{...r,text:e}]:[]]}function ba(e){return e.type===`done`&&e.stop?.kind===`generation_complete`}function xa(e,t,n){let r=t.accumulated().length;e.withholdVisible||r===0||da(t)<r||fa(e,t,r,n,!0)}function Sa(e){return e.length===0?{action:`idle`}:{action:`emit`,events:e}}function Ca(e,t,n){let{detect:r,blockedReply:i}=e.policy,a=bt({text:t.accumulated()},r,{boundary:`live_reply`,...e.withholdVisible?{reportedTo:da(t)}:{},scope:Mt(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(G),...c?[c]:[]];if(s){if(i.onBlock===`refuse`){let t=Ce(o,e.context.labels);return{action:`emit`,events:[...l,{type:`text`,text:t}]}}return{action:`withhold`,error:new V(`safety`,Bt.egress),events:l}}if(a.rewritten){let e=O(o,a.payload.text);return{action:`emit`,events:[...l,{type:`text`,text:e}]}}return fa(e,t,t.accumulated().length,l,!0),Sa(l)}function wa(e,t){if(e.held.length===0)return t;let n=Ar(`live_outbound`,`untrusted`,[sa],`block`);return n?[...t,n]:t}function Ta(e,t){let n=[];return ma(e,t,n),t.accumulated()?Ca(e,t,n):Sa(wa(e,n))}function Ea(e){let t=e.thoughts?ya(e.thoughts.flush(),{type:`thought`,text:``}):[];if(!e.gate)return Sa(t);let n=Ta(e,e.gate);return la(e),t.length===0?n:n.action===`idle`?{action:`emit`,events:t}:{...n,events:[...t,...n.events??[]]}}function Da(e){e.thoughts?.flush(),la(e)}var Oa=d().int().positive().max(2**53-1),ka=Oa.max(2147483647),Aa=t({operationTimeoutMs:ka,connectTimeoutMs:ka,liveStepTimeoutMs:ka,maxWireRecordBytes:Oa,maxWireResponseBytes:Oa,maxEventBytes:Oa,maxStepBytes:Oa,maxStepEvents:Oa,maxPendingToolCalls:Oa});function ja(e={}){return Object.freeze(Aa.parse({operationTimeoutMs:12e4,connectTimeoutMs:3e4,liveStepTimeoutMs:12e4,maxWireRecordBytes:16777216,maxWireResponseBytes:67108864,maxEventBytes:16777216,maxStepBytes:67108864,maxStepEvents:1e5,maxPendingToolCalls:32,...e}))}var Ma=/key|auth|cookie|secret|token/i;function Na(e,t){return Ma.test(e)?`[redacted]`:t}function Pa(e){let t={};for(let[n,r]of new Headers(e).entries())t[n]=Na(n,r);return t}function Fa(e){return e instanceof Error?{eventType:`http_throw`,name:e.name,message:e.message}:{eventType:`http_throw`,name:`Error`,message:String(e)}}function Ia(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 La(e,t=fetch,n){return e?async(r,i)=>{e({eventType:`http_request`,method:i?.method??`GET`,url:String(r),headers:Pa(i?.headers),...n?{keySlot:n}:{},...Ia(i?.body)});try{let n=await t(r,i);return e({eventType:`http_response`,status:n.status,headers:Pa(n.headers)}),n.ok||e({eventType:`http_error_body`,body:await n.clone().text()}),n}catch(t){throw e(Fa(t)),t}}:t}function Ra(e){return e instanceof V||j(e)||ne(e)?e:new V(`network`,ce(e),{cause:e})}function za(e=fetch){return async(t,n)=>{try{return await e(t,n)}catch(e){throw Ra(e)}}}var Ba=[1e3,2e3,4e3,8e3],Va=5e3,Ha=Ba.length,Ua=1e3,Wa=new Set([408,429,500,502,503,504,529]),Ga=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(Ka(t));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e);function a(){clearTimeout(i),r(Ka(t))}t?.addEventListener(`abort`,a,{once:!0})});function Ka(e){return e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}function qa(e){return Wa.has(e)}function Ja(e){let t=Ra(e);return t instanceof V&&t.kind===`network`}function Ya(e){return Ba[Math.min(e,Ba.length-1)]}function Xa(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*Ua:Date.parse(r)-t}if(!(i===void 0||Number.isNaN(i)||i<0))return i}function Za(e,t=Ga,n=()=>1/0){return async(r,i)=>{let a=0;for(let o=0;;o++){let s=Math.min(Va-a,n()),c;try{let t=await e(r,i);if(!qa(t.status)||(c=Xa(t.headers)??Ya(o),c>s||o>=Ha))return t;await t.body?.cancel()}catch(e){if(c=Ya(o),!Ja(e)||c>s||o>=Ha)throw e}await t(c,i?.signal),a+=c}}}var Qa=`[DONE]`;function $a(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function eo(e,t){let n=e.startsWith(`data:`)?e.slice(5).replace(/^ /,``):e,r={};if(t&&(r.sseEvent=t),n===Qa)return r.eventType=`sse_done`,r;try{let e=JSON.parse(n),t=$a(e);return t?{...t,...r}:(r.eventType=`sse_unparsed`,r.data=e,r)}catch{return r.eventType=`sse_unparsed`,r.data=n,r}}function to(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(eo(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*no(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=to(r);r=o.rest;for(let e of o.payloads)yield e}}finally{i||t.cancel().catch(()=>void 0),t.releaseLock()}}var ro=`key_fallback`,io=1e6;function ao(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 oo(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 so(e,t,n){let r=ao(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)+oo(n.input-a,i.input,i.byModality?.input,n.byModality?.input)+oo(n.output,i.output,i.byModality?.output,n.byModality?.output))/io,estimated:!0}}function co(e){return(t,n)=>{if([...n.headers.keys()].length)throw new V(`unsupported`,W(`protocol.ws_headers`,{provider:e}));return Promise.resolve(new WebSocket(t,n.protocols))}}var lo=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,uo=248;function fo(){let e=``;for(;e.length<24;)for(let t of crypto.getRandomValues(new Uint8Array(24-e.length)))t<uo&&(e+=lo[t%62]);return e}function po(e){return Oe(e.provider,e.binding)}var mo=new WeakMap;function ho(e,t){return e&&Object.hasOwn(e,t)?e[t]:void 0}async function go(e,t,n){let{definition:r}=e.provider,i=t.authorize??r.authorize;if(!r.key||!i)return;let a=n?ho(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 V(`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=mo.get(e.provider)??new Map;mo.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 _o(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*vo(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 no(e.body)){if(t.eventType===`sse_done`)return;yield t}}function yo(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 bo(e,t,n){let r=yo(await n.text()),i=e.error?.({status:n.status,body:r,headers:n.headers})??new V(oe(n.status),W(`protocol.http`,{provider:t,status:n.status}));return Object.assign(i,{status:n.status})}function xo(e){return e.builtins.map(e=>e.id)}function So(e,t,n=[]){let r=t.find(e=>!n.includes(e));if(r!==void 0)throw new V(`unsupported`,W(`protocol.builtin_unwritten`,{protocol:e.id,tool:r}))}async function Co(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 wo(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 To(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 Co(e.data);t.trim()&&s(wo(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:z.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 Eo(e,t,n,r={sent:!1},i=[]){let a=po(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 V(`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??ja(),...e.signal?{signal:e.signal}:{},tapUpstream:l,async*send(n,c){So(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:_o(a,u(c.path),s,c.stream),headers:d,protocols:[],body:JSON.stringify(n)};await(await go(e,a,t))?.sign(f);let p=Za(La(e.tapUpstream&&(t=>e.tapUpstream?.(t)),za(e.fetch??fetch),t),e.wait??Ga,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 bo(o,e.provider.id,m);for await(let e of(o.framing??vo)(m,c.stream))l(e),yield e},async connect(n,c){So(o,i,c?.wroteTools);let d={transport:`ws`,url:_o(a,u(void 0),s,!0),headers:new Headers(a.headers),protocols:[]};await(await go(e,a,t))?.sign(d);let f=e.openWebSocket??co(e.provider.id);r.sent=!0;let p=To(await f(d.url.toString(),{headers:d.headers,protocols:d.protocols}),l);return p.send(n),p}}}function Do(e,t){return e instanceof V&&e.kind===t}async function*Oo(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((Do(t,`rate_limit`)||Do(t,`busy`))&&r&&i!==r&&ko(e,r))e.tapUpstream?.({eventType:ro,from:i??null,keySlot:r,errorKind:t.kind,error:t.message}),i=r,a=!0;else if(Do(t,`auth`)&&!o){o=!0;let t=po(e);mo.get(e.provider)?.get(`${t.protocol.id}\u0000${i??``}`)?.signer.invalidate?.()}else throw t}}}function ko(e,t){let n=ho(e.vault,t);return typeof n==`string`?n.trim()!==``:typeof n==`function`||typeof n==`object`&&!!n}function Ao(e){if(!(e instanceof V)||e.kind===`cancelled`||e.kind===`config`)throw e;return{type:`error`,errorKind:e.kind,errorInternal:e.message,...e.copy?{errorCopy:e.copy}:{}}}function jo(e){if(e.state===void 0)return e;if(!e.history?.length)throw new V(`request`,W(`protocol.history_needed`));let{state:t,stateHistoryLength:n,...r}=e;return r}function Mo(e){let t=new Map,n=e=>{let n=t.get(e);if(n)return n;let r=fo();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=so(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 No(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=so(n,t.model,{input:r,output:i,total:r+i});return a?{...t,usage:{...t.usage,costUsd:a.usd,estimated:!0}}:t}function Po(e){return po(e).protocol}function Fo(e,t,n){let r=t[n];if(!r)throw new V(`unsupported`,W(`protocol.no_operation`,{protocol:e.id,operation:n}));let i=r;return((...e)=>i.apply(t,e))}async function Io(e,t,n){let r=Po(e);for await(let i of Oo(e,i=>(async function*(){let a=r.create(Eo(e,i,[]));yield await Fo(r,a,t)(n)})()))return i;throw new V(`internal`,W(`provider.decision_failed`))}function Lo(e){let t=Po(e);return{async*complete(n){let{finish:r}=Mo(e),i=[],a={sent:!1},o=Oo(e,(r,o)=>{a.sent=!1;let s=t.create(Eo(e,r,i,a,xo(n)));return Fo(t,s,`complete`)(o?jo(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 Ao(e);return}for(let e of i.splice(0))yield{type:`raw`,row:e}},async openSession(n){let{finish:r,wireOf:i}=Mo(e),a=[],o;for await(let r of Oo(e,(r,i)=>(async function*(){let o=t.create(Eo(e,r,a,void 0,xo(n)));yield await Fo(t,o,`openSession`)(i?jo(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=>No(e,await Io(e,`decide`,t)),embed:t=>Io(e,`embed`,t)}}function Ro(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 zo=class{limits;controller=new AbortController;signal;timer;timerDeadline;wireBytes=0;stepBytes=0;stepEvents=0;calls=new Set;deadline;releaseSignal;constructor(e,t,n=e.operationTimeoutMs){this.limits=e;let r=Ro(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 V(`timeout`,W(`error.timeout`))),B(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 V(`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 V(`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 V(`timeout`,W(`error.timeout`))),B(this.signal)}value(e){this.checkDeadline();let t=new TextEncoder().encode(JSON.stringify(e)).byteLength;this.checkDeadline(),this.stepBytes+=t,this.stepEvents++,(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)=>{B(this.signal);let r=await e(t,n);this.signal.aborted&&(r.close(),B(this.signal));let i=()=>r.close();return this.signal.addEventListener(`abort`,i,{once:!0}),r.addEventListener(`close`,()=>this.signal.removeEventListener(`abort`,i),{once:!0}),r.addEventListener(`message`,e=>{let t=e.data;if(!((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=Ro(r?[this.signal,r]:[this.signal]),a=i.signal;B(a);let o=await e(t,{...n,signal:a}).catch(e=>{throw i.dispose(),e});if(B(a),!o.body)return i.dispose(),o;let s=o.body.getReader(),c=0,l=o.headers.get(`content-type`)?.includes(`text/event-stream`)?new Bo(this):void 0,u=()=>{s.cancel(a.reason).catch(()=>void 0)};a.addEventListener(`abort`,u,{once:!0});let d=new ReadableStream({pull:async e=>{try{B(a);let t=await s.read();if(B(a),t.done){e.close(),a.removeEventListener(`abort`,u),i.dispose(),s.releaseLock();return}c+=t.value.byteLength,this.wireBytes+=t.value.byteLength,(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})}}},Bo=class{budget;recordBytes=0;lineBytes=0;previousCR=!1;emptyCR=!1;constructor(e){this.budget=e}accept(e){for(let t of e)this.emptyCR&&t!==10&&(this.recordBytes=0,this.emptyCR=!1),this.recordBytes++,this.recordBytes>this.budget.limits.maxWireRecordBytes&&this.budget.fail(),this.emptyCR?(this.recordBytes=0,this.emptyCR=!1,this.previousCR=!1):t===10&&this.previousCR?this.previousCR=!1:(t===10||t===13?(this.lineBytes===0&&(t===13?this.emptyCR=!0:this.recordBytes=0),this.lineBytes=0):this.lineBytes++,this.previousCR=t===13)}},Vo=t({name:f().min(1),callId:f().min(1),wireCallId:f().min(1).optional(),arguments:p(f(),z),stepId:f().min(1).optional(),stepCallCount:d().int().min(1).optional()}),Ho=ue.extend({type:o(`reasoning`)}),Uo=new Set([`text`,`thought`,`structured`,`media`,`grounding`,`citation`,`evidence`,`tokens`,`session`,`tool_draft`,`error`,`custom`]);function Wo(e){let t=Dt.parse(e);if(t.kind===`gate`)throw new V(`bad_response`,W(`provider.kernel_gate`));return t}function Go(e){if(!U(e)||typeof e.type!=`string`)throw new V(`bad_response`,W(`provider.event_invalid`));if(Uo.has(e.type))return ae.parse(e);switch(e.type){case`tool_call`:return{type:`tool_call`,call:Vo.parse(e.call)};case`tool_cancel`:return{type:`tool_cancel`,callId:f().min(1).parse(e.callId)};case`reasoning`:return Ho.parse(e);case`raw`:return{type:`raw`,row:w.parse(e.row)};case`done`:return{type:`done`,stop:Wo(e.stop),interrupted:i().optional().parse(e.interrupted),state:e.state};case`response`:if(!U(e.response))throw new V(`bad_response`,W(`provider.response_identity`));return{type:`response`,response:t({id:f().optional(),model:f().optional()}).parse(e.response)};default:throw new V(`bad_response`,W(`provider.event_type`,{type:e.type}))}}async function Ko(e,t){if(B(t),!t)return await e();let n=()=>{},r=new Promise((e,r)=>{n=()=>{try{B(t)}catch(e){r(e)}},t.addEventListener(`abort`,n,{once:!0}),t.aborted&&n()});try{return await Promise.race([Promise.resolve().then(()=>(B(t),e())),r])}finally{t.removeEventListener(`abort`,n)}}function qo(e,t){if(!e)return;let n=e=>({...e,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([e,n])=>[e,typeof n==`string`?t(n):n]))}:{}});return`key`in e?n(e):e.map(n)}function Jo(e,t){let n=t(e instanceof Error?e.message:String(e));if(e instanceof DOMException)return new DOMException(n,e.name);if(j(e))return new DOMException(n,`AbortError`);let r=e instanceof V?new V(e.kind,n,{copy:qo(e.copy,t)}):e instanceof TypeError?TypeError(n):Error(n);return U(e)&&typeof e.status==`number`&&Object.assign(r,{status:e.status}),r}async function Yo(e,t){try{return await e()}catch(e){throw Jo(e,t)}}async function*Xo(e,t,n,r=!1){r||n.resumeOperation();let i;try{for(i=e()[Symbol.asyncIterator]();;){let e=i,a=await Ko(()=>e.next(),n.signal);if(a.done)break;let o=Go(a.value);r&&(o.type!==`session`||o.session.kind===`working`)&&n.startLiveStep(),n.event(o),o.type===`error`?yield{...o,...o.errorCopy?{errorCopy:qo(o.errorCopy,t)}:{},...o.errorInternal?{errorInternal:t(o.errorInternal)}:{},...o.error?{error:t(o.error)}:{}}:yield o,r&&o.type===`done`&&n.resetStep()}}catch(e){throw Jo(e,t)}finally{n.close(),i?.return&&Promise.resolve(i.return()).catch(()=>void 0)}}var Zo=/^(?:authorization|proxy-authorization|cookie|set-cookie|api[_-]?key|x-goog-api-key|secret|token|access[_-]?token|refresh[_-]?token|password)$/i;function Qo(e,t,n,r,i){let a=ja(r.limits),o=new zo(a,i.signal,i.timeoutMs??(i.liveConnection?a.connectTimeoutMs:a.operationTimeoutMs)),s=new Set,c=e=>{if(typeof e==`string`)s.add(e);else if(e&&typeof e==`object`)for(let t of Object.values(e))c(t)},l=e=>{if(typeof e==`string`){let t=e;for(let e of s)e&&(e.length>=4||t===e)&&(t=t.split(e).join(`[redacted]`));return t}return Array.isArray(e)?e.map(l):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[String(l(e)),Zo.test(e)&&typeof t==`string`?`[redacted]`:l(t)])):e},u=e=>String(l(e)),d=g(e,t).keySlot,f=Lo({provider:e,binding:t,profileType:n,limits:a,signal:o.signal,fetch:o.fetch(r.fetch??globalThis.fetch),openWebSocket:o.socket(r.openWebSocket??co(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 Ko(()=>Yo(e,u),o.signal);return o.value(t),t}finally{o.close()}};return{keySlot:()=>d,complete:e=>Xo(()=>f.complete({...e,signal:o.signal}),u,o),decide:e=>p(()=>f.decide({...e,signal:o.signal})),embed:e=>p(()=>f.embed({...e,signal:o.signal})),async openSession(e){o.resumeOperation();let t=await Ko(()=>Yo(()=>f.openSession({...e,signal:o.signal}),u),o.signal).catch(e=>{throw o.close(),e}).finally(()=>o.stopTimer());return{events:()=>Xo(()=>t.events(),u,o,!0),closeInfo:()=>{let e=t.closeInfo?.();return e&&{...e,...e.error?{error:Jo(e.error,u)}:{}}},sendText:e=>(o.startLiveStep(),Yo(()=>t.sendText(e),u)),sendAudio:e=>Yo(()=>t.sendAudio(e),u),sendVideo:e=>Yo(()=>t.sendVideo(e),u),sendContext:e=>Yo(()=>t.sendContext(e),u),sendToolResult:e=>(o.startLiveStep(),Yo(()=>t.sendToolResult(e),u)),close:e=>(o.stopTimer(),Yo(()=>t.close(e),u).finally(()=>o.dispose()))}}}}function $o(e,t,n){let r=t.options??{},i=[...n.continuation?.keyOptions??[]].sort().map(e=>[e,r[e]??null]);return JSON.stringify({connection:e.connection??null,options:i})}function es(e,t,n){if(e?.history===`stateless`&&(t||n?.length))throw new V(`request`,W(`provider.stateless_history`))}async function ts(e,t,n,r,i={}){if(!n)return{};let a=Ct.parse(n),o=mt(e,t),s=o.continuation,c;return a.protocol!==o.id||a.provider!==e.id?c=`provider_changed`:a.apiId===t.apiId?!s||a.version!==s.version?c=`version_changed`:a.compatibilityKey===$o(e,t,o)?a.keySlot===g(e,t).keySlot?(i.history===`provider`?r.length>0:a.coveredHistoryLength>r.length||a.coveredHistoryHash!==await Fe(r.slice(0,a.coveredHistoryLength)))&&(c=`history_changed`):c=`key_changed`:c=`connection_changed`:c=`model_changed`,c?{warning:{code:`provider_state_rebuilt`,reason:c}}:{state:s?.schema.parse(a.data),covered:i.history===`provider`?0:a.coveredHistoryLength,...a.wireCallIds?{wireCallIds:a.wireCallIds}:{}}}async function ns(e,t,n,r,i,a={}){if(r===void 0)return;let o=mt(e,t),s=o.continuation;if(!s)throw new V(`bad_response`,W(`provider.continuation_contract`));return{protocol:o.id,provider:e.id,version:s.version,apiId:t.apiId,...n?{keySlot:n}:{},compatibilityKey:$o(e,t,o),coveredHistoryLength:i.length,coveredHistoryHash:await Fe(i),data:z.parse(s.schema.parse(r)),...Object.keys(a).length?{wireCallIds:a}:{}}}function rs(e,t){return e?.map(e=>{if(!e.reasoning)return e;let{reasoning:n,...r}=e,i=n.filter(e=>rt(e.origin.protocol,t));return i.length?{...r,reasoning:i}:r})}function is(e,t){if(!e||!t)return e;let n=e=>t[e]??e;return e.map(e=>({...e,...e.tool_calls?{tool_calls:e.tool_calls.map(e=>({...e,id:n(e.id)}))}:{},...e.tool_call_id?{tool_call_id:n(e.tool_call_id)}:{}}))}function as(e,t,n){let{providerState:r,tapUpstream:i,history:a,...o}=e,s=is(rs(a,t),n.wireCallIds);return{...o,...s?{history:s}:{},...n.state===void 0?{}:{state:n.state,stateHistoryLength:n.covered}}}function os(e){let{wireCallId:t,...n}=e;return n}async function*ss(e,t){let n={},r,i=!1,a=[],o=[],s=``,c,l=e[Symbol.asyncIterator](),u=!1;try{for(;;){let e=await Ko(()=>l.next(),t);if(e.done){u=!0;break}B(t);let d=e.value;if(r)throw new V(`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 V(`bad_response`,W(`provider.duplicate_call`));d.call.wireCallId&&(n[d.call.callId]=d.call.wireCallId),a.push(os(d.call));continue;case`tool_cancel`:throw new V(`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 cs(e,t,n,r,i,a={},o=[]){let s=mt(e,t),c=i;return{async*complete(l){let u=c===i&&a.history===`provider`,d=await ts(e,t,c,u?o:l.history??[],u?a:{});d.warning&&(c=void 0,yield{type:`provider_warning`,warning:d.warning});let f=Qo(e,t,n,r,l),{terminal:p,failed:m,pending:h,reasoning:g,text:_,structured:v,wireCallIds:y}=yield*ss(f.complete(as(l,s,d)),l.signal);if(B(l.signal),!p){yield{type:`done`,stop:{kind:m?`provider_error`:`stream_incomplete`}};return}if(m||p.interrupted||p.stop.kind!==`tool`&&p.stop.kind!==`completed`){yield{type:`done`,stop:p.stop};return}let b=[...l.history??[]];l.input.length&&b.push(l.input.every(e=>e.type===`text`)?{role:`user`,content:l.input.map(e=>e.type===`text`?e.text:``).join(``)}:{role:`user`,parts:l.input});let x=await ns(e,t,f.keySlot(),p.state,[...b,...Me({text:_,structured:v,calls:h.map((e,t)=>t===0?{...e,reasoning:g}:e)})],{...d.wireCallIds,...y});c=x;for(let e of h)yield{type:`tool`,tool:e};yield{type:`done`,stop:p.stop,providerState:x}}}}var ls=new Map;function us(e){return typeof e==`object`&&!!e&&`write`in e&&typeof e.write==`function`}function ds(e,t){let n=e.trim();if(!n)throw new V(`config`,`registerTraceDestination requires a non-empty id`);if(!us(t))throw new V(`config`,`Trace destination '${n}' must be a TraceSink`);ls.set(n,t)}function fs(e){return ls.get(e)}function ps(e){let t=fs(e);if(!t)throw new V(`config`,`Trace destination '${e}' is not registered`);return t}async function ms(e,t,n){try{await e.write(await t,{retainForDays:n.retainForDays,rotateAfterMiB:n.rotateAfterMiB})}catch(t){try{e.onError?.(t)}catch{}}}function hs(e,t,n,r){return ms(e,Ur({spans:t,policy:n,...r?{metadata:r}:{}}),n)}function gs(){return{write:()=>Promise.resolve()}}function _s(e,t){return!t&&!e.onError?e:{write:(t,n)=>e.write(t,n),onError:e.onError??t}}var vs=2**32;function ys(e,t){let n=e.spans[0]?.traceId??``;return Number.parseInt(n.slice(-8),16)/vs<t}function bs(e,t){return t>=1?e:t<=0?gs():{write:async(n,r)=>{ys(n,t)&&await e.write(n,r)},onError:e.onError}}function xs(e,t){return e===void 0||e===!1?gs():_s(typeof e==`string`?ps(e):e,t.onWriteError)}function Ss(e){let t={...Vr(e.observability),detect:I(e.guardrails).detect};return e.override?{policy:t,sink:_s(e.override,t.onWriteError)}:t.record?{policy:t,sink:bs(xs(t.writeTo,t),t.sampleRate)}:{policy:t,sink:gs()}}async function Cs({name:e,attributes:t,traceparent:n,metadata:r,writer:i},a){let o=Tn(e,{kind:`CLIENT`,attributes:t,...n?{traceparent:n}:{}}),{sink:s,policy:c}=Ss(i);try{let e=await a(o.root);return o.root.end({code:`OK`}),e}catch(e){throw xt(o.root,e),e}finally{await hs(s,o.collect(),c,r)}}var ws={invalid_request:`request`,authentication:`auth`,permission:`auth`,rate_limited:`rate_limit`,unavailable:`unavailable`,network:`network`,timeout:`timeout`,cancelled:`cancelled`,malformed_response:`bad_response`,disclosure_blocked:`blocked`},K=class extends V{code;status;constructor(e,t,n,r){super(ws[e],t,r),this.code=e,this.status=n}};function Ts(e,t){let n=e.profiles.get(t);if(n.type!==`decision`)throw new V(`request`,`runDecision requires profile.type 'decision' (got '${n.type}' for ${n.id})`);return n}function Es(e){let t=Jn(e.models),n=t?e.models[t]:void 0;if(!t||!n)throw new V(`config`,`Profile ${e.id}: type 'decision' must declare exactly one model`);return[t,n]}function q(e,t,n=0,r=1){if(typeof e!=`number`||!Number.isFinite(e)||e<n||e>r)throw new K(`malformed_response`,`${t} is outside its valid range`);return e}function Ds(e,t,n){if(!U(e)||Object.keys(e).length!==t.length||t.some(t=>!Object.hasOwn(e,t)))throw new K(`malformed_response`,`${n} does not match declared labels`);let r=Object.create(null);for(let i of t)r[i]=q(e[i],`${n}.${i}`);let i=Object.values(r).reduce((e,t)=>e+t,0);if(Math.abs(i-1)>.001)throw new K(`malformed_response`,`${n} must sum to one`);return r}function Os(e,t){if(!U(e))throw new K(`malformed_response`,`${t} is invalid`);let n={top:q(e.top,`${t}.top`),bottom:q(e.bottom,`${t}.bottom`),left:q(e.left,`${t}.left`),right:q(e.right,`${t}.right`)};if(n.left>=n.right||n.top>=n.bottom)throw new K(`malformed_response`,`${t} has an edge out of order`);return n}function ks(e,t,n){if(!U(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 K(`malformed_response`,`${n} is invalid`);return e}function As(e,t){if(!U(e)||Object.keys(e).length!==Object.keys(t).length)throw new K(`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(!U(t)||t.type!==i.type)throw new K(`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 K(`malformed_response`,`Decision provider returned an undeclared choice for '${r}'`);n[r]={type:`choice`,choice:t.choice,confidence:q(t.confidence,`${r}.confidence`),probabilities:Ds(t.probabilities,e,`${r}.probabilities`)}}else if(i.type===`noul`)n[r]={type:`noul`,noul:q(t.noul,`${r}.noul`)};else if(i.type===`box`)n[r]={type:`box`,box:Os(t.box,`${r}.box`),confidence:q(t.confidence,`${r}.confidence`)};else{let e=i.criteria.map((e,t)=>String(t));n[r]={type:`score`,score:q(t.score,`${r}.score`,0,Math.max(0,e.length-1)),confidence:q(t.confidence,`${r}.confidence`),legend:ks(t.legend,e,`${r}.legend`),probabilities:Ds(t.probabilities,e,`${r}.probabilities`)}}}return n}function js(e){let t=new Set,n=[{value:e}];for(;n.length;){let e=n.pop();if(!e)break;let r=e.value;if(e.exit){t.delete(r);continue}if(r===null||typeof r==`string`||typeof r==`boolean`)continue;if(typeof r==`number`){if(!Number.isFinite(r))return!1;continue}if(typeof r!=`object`||t.has(r)||!Array.isArray(r)&&Object.getPrototypeOf(r)!==Object.prototype&&Object.getPrototypeOf(r)!==null||Object.getOwnPropertySymbols(r).length)return!1;t.add(r),n.push({value:r,exit:!0});let i=Array.isArray(r)?Array.from(r):Object.values(r);for(let e of i)n.push({value:e})}return!0}function Ms(e,t){if(!U(t)||!e.trim()||!zs(t.instructions))throw new K(`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):!U(t.criteria)))throw new K(`invalid_request`,`Decision question '${e}' has invalid criteria`);let n=Array.isArray(t.criteria)?t.criteria:Object.values(t.criteria);if(!n.length||!n.every(zs))throw new K(`invalid_request`,`Decision ${t.type} '${e}' must declare criteria`)}function Ns(e,t){if(B(e.signal),e.model!==void 0)throw new K(`invalid_request`,`Decision requests do not select a model; the profile runs its one model`);if(e.state===null||!js(e.state))throw new K(`invalid_request`,`Decision state must be non-null JSON`);let n;try{n=JSON.stringify(e.state)}catch{throw new K(`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 K(`invalid_request`,`Decision state exceeds ${t.inputs.maxStateBytes} bytes`);if(!U(e.questions)||!js(e.questions)||Object.keys(e.questions).length===0)throw new K(`invalid_request`,`Decision request must declare at least one question`);for(let[t,n]of Object.entries(e.questions))Ms(t,n);e.assets!==void 0&&Rs(e.assets);for(let[t,n]of Object.entries(e.questions))Fs(t,n,e.state,e.assets)}function Ps(e,t){let n=e;for(let e of t.split(`.`)){if(!U(n)&&!Array.isArray(n))return;n=Array.isArray(n)?n[Number(e)]:n[e]}return n}function Fs(e,t,n,r){if(!U(t)||t.image===void 0)return;let i=t.image,a=typeof i==`string`&&!r?.[i]?Ps(n,i):i;if(t.type!==`box`||typeof a!=`string`||r?.[a]===void 0)throw new K(`invalid_request`,`Decision question '${e}' has an image that is neither a held image nor a state field holding one`)}function Is(e,t){if(e.type!==`box`||e.image===void 0)return e;let{image:n,instructions:r}=e,i=W(`decision.box_image`,{image:t?.[n]?n:`\`${n}\``});return{type:`box`,instructions:typeof r==`string`?`${r} ${i}`:[r,i]}}var Ls=/^[A-Za-z0-9+/]+={0,2}$/;function Rs(e){if(!U(e)||Object.keys(e).length===0)throw new K(`invalid_request`,`Decision assets must name at least one image`);for(let[t,n]of Object.entries(e))if(!t.trim()||!U(n)||n.mimeType!==`image/png`&&n.mimeType!==`image/jpeg`||typeof n.data!=`string`||n.data.length%4!=0||!Ls.test(n.data))throw new K(`invalid_request`,`Decision asset '${t}' must be PNG or JPEG bytes as padded base64`)}function zs(e){let t=[e];for(;t.length;){let e=t.pop();if(typeof e==`string`){if(!e.trim())return!1;continue}if(!U(e)&&!Array.isArray(e))return!1;let n=Object.values(e);if(!n.length)return!1;for(let e of n)t.push(e)}return!0}async function Bs(e,t,n,r){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 K(`disclosure_blocked`,`Decision disclosure was blocked`)}function Vs(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":H(r.state),"theorem.decision.questions":H(r.questions),...r.assets?{"theorem.decision.assets":H(Object.fromEntries(Object.entries(r.assets).map(([e,{mimeType:t,data:n}])=>[e,{mimeType:t,bytes:n.length}])))}:{}}}function Hs(e,t){e.set({"gen_ai.response.model":t.model,"theorem.decision.answers":H(t.answers),...t.usage?{"gen_ai.usage.input_tokens":t.usage.inputTokens,"gen_ai.usage.output_tokens":t.usage.outputTokens,...t.usage.costUsd===void 0?{}:{"theorem.usage.cost_usd":t.usage.costUsd}}:{}})}function Us(e){if(e instanceof K)return e;let t=e instanceof V?e.kind:e instanceof TypeError?`network`:`bad_response`;return new K(t===`auth`&&U(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 V?e.message:W(`provider.decision_failed`),U(e)&&typeof e.status==`number`?e.status:void 0,{cause:e})}async function Ws(e,t,[n,r],i,a){B(i.signal);let o=e.providers.require(r.provider,r.apiId);await Bs(t,n,r.provider,i),B(i.signal);try{let e=await Qo(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,Is(t,i.assets)])),...i.assets?{assets:i.assets}:{}});if(typeof e.model!=`string`||!e.model.trim())throw new K(`malformed_response`,W(`provider.decision_model_missing`));return{...e,answers:As(e.answers,i.questions)}}catch(e){throw i.signal?.aborted?new K(`cancelled`,W(`provider.decision_ended`)):Us(e)}}async function Gs(e,t,n){let r=Ts(e,t.profile);Ns(t,r);let i=Es(r),[a,o]=i;return await Cs({name:`decide ${o.apiId}`,attributes:Vs(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 Ws(e,r,i,t,n);return Hs(a,o),o})}function Ks(e,t){let n=e.profiles.get(t);if(n.type!==`embedding`)throw new V(`request`,`runEmbedding requires profile.type 'embedding' (got '${n.type}' for ${t})`);return n}function qs(e,t){let n=t??e.defaultModel;if(t&&!e.allowModelSelect)throw new V(`request`,`Profile ${e.id} does not allow model selection`);let r=e.models[n];if(!r)throw new V(`request`,`Unknown model '${n}' for ${e.id}`);return[n,r]}var Js=[`query`,`document`];function Ys(e){if(e!==void 0&&!Js.includes(e))throw new V(`request`,`Embedding task must be 'query' or 'document'`)}function Xs(e){return Array.isArray(e)?e:[e]}function Zs(e){return typeof e==`string`?[{type:`text`,text:e}]:e&&Array.isArray(e.parts)?e.parts:[]}function Qs(e,t,n,r){let i=Fn(e.inputs,r);if(i.maxInputs!==void 0&&n.length>i.maxInputs)throw new V(`request`,`Model '${t}' of ${e.id} takes at most ${i.maxInputs} inputs per request`);let a=[];for(let t of n){let n=Zs(t);if(n.length===0)throw new V(`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 V(`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 $s(e,t){if(!e.model.trim()||e.embeddings.length!==t)throw new V(`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 V(`bad_response`,`Embedding provider returned invalid vector metadata`);if(e.values.some(e=>!Number.isFinite(e)))throw new V(`bad_response`,`Embedding provider returned a non-finite vector value`);return e});return{...e,embeddings:n}}async function ec(e,t,n={}){B(t.signal);let r=Ks(e,t.profile),[i,a]=qs(r,t.model),o=Xs(t.input);Ys(t.task);let s=e.providers.require(a.provider,a.apiId);Qs(r,i,o,mt(s,a).embeddingLimits?.(a.apiId));let c=Qo(s,a,`embedding`,n,{...t.signal?{signal:t.signal}:{}});return await Cs({name:`embed ${a.apiId}`,attributes:{"gen_ai.operation.name":`embeddings`,"gen_ai.provider.name":a.provider,"gen_ai.agent.name":r.id,"gen_ai.request.model":a.apiId,"theorem.model.id":i,"theorem.embedding.inputs":o.length,...t.task?{"theorem.embedding.task":t.task}:{}},traceparent:t.traceparent,metadata:t.metadata,writer:{override:n.sink,observability:r.observability,guardrails:r.guardrails}},async()=>$s(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 tc(e,t,n,r,i){let a=e.profiles.get(t);if(a.type===`host`)return nc(e,r);if(a.type===`decision`||a.type===`live`||a.type===`embedding`)throw new V(`unsupported`,W(`provider.turn_profile`));let o=a.models[n??a.defaultModel];if(!o)throw new V(`config`,W(`provider.model_binding_missing`));return es(a.providerContinuation,i?.providerState,i?.input?.history),{complete:cs(e.providers.require(o.provider,o.apiId),structuredClone(o),a.type,r,i?.providerState,a.providerContinuation,i?.input?.history).complete,forProfile:(t,n,i)=>tc(e,t,n,r,i)}}function nc(e,t){return{complete(){throw new V(`unsupported`,W(`provider.host_model`))},forProfile:(n,r,i)=>tc(e,n,r,t,i)}}function rc(e,t,n,r){return`forProfile`in e&&typeof e.forProfile==`function`?e.forProfile(t,n,r):e}function ic(){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(qe(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 ac(){return Promise.resolve(ic())}function oc(e){return e.meter??`history`}function sc(e){let t=[];for(let n=0;n<e.length;n++)e[n].role===`user`&&t.push(n);return t}async function cc(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 ac()).messages(t)}async function lc(e){let t=oc(e.spec);if(t===`history`)return{meter:t,...await cc(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 uc(e,t){return e>t.compactAt*t.maxTokens}async function dc(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 uc(e.tokens,t)}async function fc(e,t){if(e.length===0)return{toCompact:[],toRetain:[]};if(t.previousExchanges===0)return{toCompact:[...e],toRetain:[]};let n=sc(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 ac(),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 pc(e){return e.metadata?.compactionSummary===!0}function mc(e){return{type:`text`,text:e}}function hc(e,t){let n=t.labels,r=new Map,i=0,a=e=>(e??[]).filter(e=>e.type===`text`||dt(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:[mc(W(`compaction.tool_result`,{tool:i??``,result:a},n)),...e]});continue}let i=(t.tool_calls??[]).map(e=>mc(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 gc(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(pc),...e.toRetain]}:{...i,outcome:`deferred`,failure:t.failure,history:[...e.toCompact,...e.toRetain]}}var _c={[Qt.unscannable]:`egress.hint_unscannable`,[Qt.providerToolLeak]:`egress.hint_provider_tool_leak`},vc=[cn.canary_leak],yc=3,bc=120,xc=`detect.`;function Sc(e,t,n){let r=_c[e.rule];if(r)return W(r,{},n);let i=e.rule.startsWith(xc)?e.rule.slice(7):e.rule;if(en(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 Cc(e){let t=e.flatMap(({rule:e,match:t})=>t&&!vc.includes(e)?[t]:[]);return[...new Set(t)].slice(0,yc).map(e=>JSON.stringify(e.length>bc?e.slice(0,bc):e))}function wc(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=Sc(e[0],t,n),i=Cc(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 Tc(e){if(e.type!==`live`&&e.type!==`host`&&e.type!==`decision`&&e.type!==`embedding`)return e.outputs}var Ec=[`inject`,`abort`,`deny`,`confirm`,`mutate`,`labelFailed`,`waitFor`],Dc=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([])}),Oc=new Set([...Ec,`injectId`,`released`]);function kc(e,t){return Dc[e].includes(t)}function J(e,t,n,r){e.push({code:t,field:n,message:r})}function Ac(e,t){if(!U(e)){J(t,`inject_invalid_messages`,`inject`,`inject entry must be an object`);return}if(e.role===`tool`){J(t,`inject_invalid_messages`,`inject`,`inject messages with role "tool" are rejected`);return}if(e.role!==`user`&&e.role!==`assistant`&&e.role!==`system`){J(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`){J(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)){J(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)){J(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`){J(t,`inject_invalid_messages`,`inject`,`inject name must be a string`);return}n.name=e.name}if(e.metadata!==void 0){if(!U(e.metadata)){J(t,`inject_invalid_messages`,`inject`,`inject metadata must be a plain object`);return}n.metadata={...e.metadata}}return e.tool_call_id!==void 0&&J(t,`inject_invalid_messages`,`inject`,`inject tool_call_id is rejected (not a tool-role message)`),n}function jc(e,t){if(!Array.isArray(e)){J(t,`inject_invalid_messages`,`inject`,`inject must be an array of history messages`);return}let n=[];for(let r of e){let e=Ac(r,t);e&&n.push(e)}return n.length>0?n:void 0}function Mc(e,t){if(e!==void 0){if(typeof e==`number`&&Number.isInteger(e)&&e>=0)return e;J(t,`inject_released_invalid`,`released`,`released must be a whole number of characters, 0 or more; ignored`)}}function Nc(e,t){let n=jc(e.inject,t);if(!n)return;let r=Mc(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};J(t,`inject_id_invalid`,`injectId`,`injectId must be a non-empty string; inject refused`)}function Pc(e,t,n){if(!(`inject`in e)||e.inject===void 0){e.injectId!==void 0&&J(n.warnings,`inject_id_invalid`,`injectId`,`injectId without inject ignored`),e.released!==void 0&&J(n.warnings,`inject_released_invalid`,`released`,`released without inject ignored`);return}let{stage:r,injectAllowed:i,injectWouldExceedMaxSteps:a}=t;if(!kc(r,`inject`))J(n.warnings,`affordance_not_allowed`,`inject`,`inject is not allowed at stage ${r}`);else if(!i)J(n.warnings,`inject_not_allowed`,`inject`,`inject gate is closed for this profile/session`);else if(a)J(n.warnings,`inject_rejected_max_steps`,`inject`,`inject rejected: another model step would exceed maxSteps`);else{let t=Nc(e,n.warnings);t&&(n.inject=t)}}function Fc(e,t,n){if(`abort`in e&&e.abort!==void 0){if(!kc(t,`abort`))J(n.warnings,`affordance_not_allowed`,`abort`,`abort is not allowed at post_turn`);else if(e.abort===!0)n.abort=!0;else if(U(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&&J(n.warnings,`abort_invalid`,`abort`,`abort must be boolean or { reason?: string }`)}}function Ic(e,t,n){`deny`in e&&e.deny!==void 0&&(kc(t,`deny`)?U(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`}:J(n.warnings,`deny_invalid`,`deny`,`deny must be an object`):J(n.warnings,`affordance_not_allowed`,`deny`,`deny is not allowed at stage ${t}`))}function Lc(e,t,n){`labelFailed`in e&&e.labelFailed!==void 0&&(kc(t,`labelFailed`)?e.labelFailed===!0?n.labelFailed=!0:e.labelFailed!==!1&&J(n.warnings,`label_failed_invalid`,`labelFailed`,`labelFailed must be true`):J(n.warnings,`affordance_not_allowed`,`labelFailed`,`labelFailed is not allowed at stage ${t}`))}function Rc(e,t,n){if(`confirm`in e&&e.confirm!==void 0){if(!kc(t,`confirm`))J(n.warnings,`affordance_not_allowed`,`confirm`,`confirm is not allowed at stage ${t}`);else if(e.confirm===!0)n.confirm={};else if(U(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 J(n.warnings,`confirm_invalid`,`confirm`,`confirm must be true or { summary?: string }`)}}function zc(e,t,n){`waitFor`in e&&e.waitFor!==void 0&&(kc(t,`waitFor`)?!Array.isArray(e.waitFor)||!e.waitFor.every(e=>typeof e==`string`&&e.trim()!==``)?J(n.warnings,`wait_for_invalid`,`waitFor`,`waitFor must be an array of call ids`):e.waitFor.length>0&&(n.waitFor=[...new Set(e.waitFor)]):J(n.warnings,`affordance_not_allowed`,`waitFor`,`waitFor is not allowed at stage ${t}`))}var Bc={pre_tool:`input`,post_tool:`output`};function Vc(e){return e in Bc?Bc[e]:void 0}function Hc(e,t,n){let{stage:r}=t;if(!(`mutate`in e)||e.mutate===void 0)return;if(!kc(r,`mutate`)){J(n.warnings,`affordance_not_allowed`,`mutate`,`mutate is not allowed at stage ${r}`);return}let i=Vc(r);i?!U(e.mutate)||e.mutate[i]===void 0?J(n.warnings,`mutate_invalid`,`mutate`,`mutate must be { ${i}: unknown } at stage ${r}`):t.mutable===!1?J(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}:J(n.warnings,`mutate_invalid`,`mutate`,`no mutate subject is defined at stage ${r}`)}function Uc(e){let t=[],n={warnings:t},{stage:r,result:i}=e;if(i==null)return n;if(!U(i))return J(t,`result_invalid`,`result`,`StageResult must be a plain object`),n;for(let e of Object.keys(i))Oc.has(e)||J(t,`unknown_field`,e,`unknown StageResult field "${e}" ignored`);return Pc(i,e,n),Fc(i,r,n),Ic(i,r,n),Rc(i,r,n),Hc(i,e,n),Lc(i,r,n),zc(i,r,n),n.deny&&n.confirm&&(J(t,`confirm_invalid`,`confirm`,`confirm ignored because deny is set`),delete n.confirm),n}function Wc(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 Gc(e){return e.flatMap(e=>e.messages)}function Kc(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 Wc(e,{...n,...r.length>0?{injected:r}:{}})}function qc(e,t){return t===void 0||t<=0?!1:e>=t}function Jc(e,t){return t===`inject`?e.inject.length>0:!!e[t]}function Yc(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&&(J(t.warnings,`confirm_invalid`,`confirm`,`confirm ignored because deny is set`),delete t.confirm),t}async function Xc(e,t,n,r){let i=[];for(let a of e){let e;try{e=await a({...t})}catch(e){throw B(r),e}B(r),i.push(Uc({...n,result:e}))}return i}async function*Zc(e){let{stage:t,step:n,history:r,handlers:i,guardrails:a,injectAllowed:o,injectWouldExceedMaxSteps:s,mutable:c,host:l,signal:u,span:d,...f}=e;if(B(u),yield Wc(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=Yc(await Xc(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:Ec.filter(e=>Jc(h,e)),...h.warnings.length>0?{warnings:h.warnings.map(e=>e.code)}:{}}),h.warnings.length>0&&(yield{...Wc(t,{callId:f.callId,toolName:f.tool}),stageWarnings:h.warnings}),h.inject.length===0)return h;let g=pn(`injected`,I(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 G(y)),v.action===`block`)throw xr(`injected`);return{...h,inject:_}}function Qc(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 $c(e){let t=e.flatMap(e=>e.released===void 0?[]:[e.released]);return t.length>0?Math.min(...t):void 0}function el(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 tl(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=el(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*nl(e,t,n,r){let i=Gc(n);if(i.length===0)return 0;let a=tl(e,$c(n));e.currentHistory.push(...i);let o=Kc(t,n,{...r,...a===void 0?{}:{released:a}});return o&&(e.allEmittedEvents.push(o),yield o),i.length}async function*rl(e){let{profile:t,generation:n,state:r,onStage:i,host:a,reply:o,replyAt:s,...c}=e;B(c.signal);let l=Zc({...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&&Gc(d.inject).length>0&&Qc(r,o,s),{abort:d.abort,injectCount:yield*nl(r,c.stage,d.inject),warnings:d.warnings}}function il(e,t){t.allEmittedEvents.push(e),t.attemptEvents.push(e)}function al(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 ol(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`&&(al(i,n.input),n.input=[]),i}function sl(e,t,n={}){return t.map(t=>{if(e.get(t)?.type!==`builtin`)throw new V(`config`,`Builtin '${t}' is not registered`);let r=n[t];return r?{id:t,args:r}:{id:t}})}function cl(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:sl(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 ll=t({accepted:w,preparedInput:z});function Y(){let e=new V(`unavailable`,``);return e.message=F(e),e}async function ul(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=z.parse(t(pl(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 dl=pe.tool.transform((e,t)=>e.tool.phase===`complete`||e.tool.phase===`error`?{...e,tool:e.tool}:(t.addIssue({code:`custom`}),a)),fl=t({event:dl,effects:l([`not_started`,`completed`,`unknown`]),replay:t({modelResult:t({finding:f(),data:z.optional(),parts:s(v).optional(),modelText:f().optional(),provenance:Qe.optional(),suspicious:s(me).optional()}).optional(),outputRaw:z.optional(),failure:t({code:f(),kind:k,message:f(),error:f().optional(),details:z.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(ye),released:d().int().nonnegative().optional()})).optional()})});function pl(e){let t=new Set,n=e=>{if(!e||typeof e!=`object`)return e;if(t.has(e))throw Y();let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null||Object.hasOwn(e,`__proto__`))throw Y();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 Y();return Object.fromEntries(t.filter(([,e])=>e.enumerable&&e.value!==void 0).map(([e,t])=>[e,n(t.value)]))}finally{t.delete(e)}};return z.parse(n(e))}var ml=class{outcome;constructor(e){this.outcome=e}};function hl(e){return new V(`unavailable`,W(`tool.execution_uncertain`),{copy:{key:`tool.execution_uncertain`},cause:e})}var gl=class{coordinator;operation;accepted;signal;claim;committed=!1;writeFailed=!1;terminal;constructor(e,t,n,r){this.coordinator=e,this.operation=t,this.accepted=n,this.signal=r}async beginBody(e){B(this.signal);let t={...this.operation,invocation:{accepted:this.accepted,preparedInput:pl(e)}},n=await this.coordinator.begin(t);if(n.kind===`settled`)throw new ml(n.outcome);if(n.kind===`running`||n.kind===`uncertain`)throw hl();if(n.kind!==`acquired`||typeof n.claimToken!=`string`||!n.claimToken)throw Y();return this.claim={...t,claimToken:n.claimToken},B(this.signal),this.claim}observe(e){if(e.type!==`tool`)return!0;if(e.tool.phase===`complete`||e.tool.phase===`error`)return this.terminal={...e,tool:e.tool},!1;if(this.claim&&e.tool.phase===`gate`)throw hl();return!0}async finish(e){if(e.gated){if(this.claim)throw hl();return}if(!this.terminal)throw Y();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=fl.parse(pl(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=fl.parse(pl(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 Y();return this.committed=!0,t}failure(e){return this.claim&&!this.committed?hl(e):e}async close(){this.claim&&!this.committed&&await this.coordinator.markUncertain(this.claim,this.writeFailed?`settlement_write_failed`:`execution_interrupted`)}};async function*_l(e,t,n,r,i,a){if(!e)return yield*i();let o=w.parse(pl(n)),s={...t,invocationHash:await ul(o)},c=new gl(e,s,o,r);B(r);let l=await e.lookup(s);if(B(r),l?.kind===`running`||l?.kind===`uncertain`)throw hl();if(l?.kind===`settled`){if(!a)throw Y();let e=c.replay(new ml(l.outcome));return await a(e),B(r),yield e.event,e.replay}let u=i(e=>c.beginBody(e));try{for(;;){let e=await u.next();if(e.done){let t=await c.finish(e.value);return t&&(yield t),e.value}c.observe(e.value)&&(yield e.value)}}catch(e){if(e instanceof ml){if(!a)throw Y();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*vl(e,t){t.kind===`progress`?yield R(e,{phase:`progress`,data:t.data}):t.kind===`draft`?yield R(e,{phase:`draft`,text:t.text}):t.kind===`trace`?yield R(e,{phase:`trace`,step:t.step}):t.kind===`artifact`?yield R(e,{phase:`artifact`,artifact:t.artifact}):t.kind===`warning`&&(yield R(e,{phase:`warning`,warning:t.warning}))}var yl=class{base;checks;drafts;constructor(e,t){this.base=e,this.checks=t,t?.drafts&&(this.drafts=new Br(()=>bl(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*vl(this.base,{...e,artifact:t.value}))}else if(e.kind===`trace`){let t=yield*this.shown(e.step);t.shown&&(yield*vl(this.base,{...e,step:t.value}))}else yield*vl(this.base,e)}}*end(){let e=this.drafts?.end();e&&(yield R(this.base,{phase:`draft`,text:e}))}async*draft(e){let t=await this.drafts?.read(e);t&&(yield R(this.base,{phase:`draft`,text:t}))}*shown(e){let t=this.checks;if(!t)return{shown:!0,value:e};let n=Ue(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}=vt(``,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 bl(e){return Nn(e.policy,{stage:`tool_result`,trust:`untrusted`,profileId:e.profileId,provenance:e.provenance},e.boundary,{callable:e.callableTools})}var xl=5242880,Sl=10485760,Cl=15e3,wl=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]);async function Tl(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 El(e,t){let n=AbortSignal.timeout(Cl),r=t.signal?AbortSignal.any([t.signal,n]):n,i=await it(e,{method:`GET`,headers:{Accept:`image/*`},signal:r},{policy:nt(t),followRedirects:!0,resolveHost:t.resolveHost});if(!i.ok)throw Error(`HTTP ${i.status}`);let a=(i.headers.get(`content-type`)??``).split(`;`)[0]?.trim().toLowerCase();if(!a||!wl.has(a))throw await i.body?.cancel().catch(()=>{}),Error(`not a png, jpeg, gif or webp image (${a||`no type`})`);let o=await Tl(i,xl);if(!o)throw Error(`larger than ${xl} bytes`);return{type:`image`,mimeType:a,data:bn(o)}}function Dl(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 Ol(e,t,n){let r=[],i=[];try{for(let n of new Set(e(t))){let e=Dl(n);`url`in e?i.push(e.url):r.push(e.reason)}}catch(e){return{parts:[],urls:[],warning:kl([`the images hook threw: ${String(e)}`])}}let a=i.slice(0,4),o=await Promise.allSettled(a.map(e=>El(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>Sl?r.push(`${new URL(n).hostname}: past the ${Sl} byte total`):(l+=i,s.push(e.value),c.push(n))}),{parts:s,urls:c,...r.length?{warning:kl(r)}:{}}}function kl(e){return{code:`images_unfetched`,severity:`warning`,message:`Some pictures the tool named were left out. ${e.join(`; `)}`}}function Al(e){return typeof e?.granted==`boolean`}function jl(e){return e?.granted===!0}function Ml(e){return e?.granted===!1}function Nl(e,t){return t?t.includes(`*`)||t.includes(e):!1}function Pl(e,t){let n=Et(e.labels?.request,{input:t});return{access:e.access,...n?{request:n}:{}}}function Fl(e,t,n,r,i){return t===`auto`||(t===`always_confirm`?r?.granted===!0:Nl(e,n))?null:{kind:`permission`,tool:e,permission:t,...i}}function Il(e,t,n){return it(e,t,{policy:n.network,followRedirects:!1,resolveHost:n.resolveHost,...n.fetchFn?{fetchFn:n.fetchFn}:{}})}function Ll(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 Rl=/^[\x20\x21\x23-\x5B\x5D-\x7E]*$/;async function zl(e){let t;try{t=await e.json()}catch{return``}if(!U(t))return``;let{error:n,error_description:r}=t;return typeof n!=`string`||!Rl.test(n)?``:typeof r==`string`&&Rl.test(r)?`: ${n} (${r})`:`: ${n}`}function Bl(e,t){let n=e=>{throw Error(`Token response from ${t} ${e}`)};if(!U(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 Vl(e){return e===void 0?[]:e.split(` `).filter(e=>e.length>0)}function Hl(e,t,n){if(t.length===0)return;let r=Vl(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 Ul(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 Il(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 zl(c)}`);let l=Bl(await c.json(),t.tokenEndpoint);return Hl(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 Wl(e){return Ll(e.tokenEndpoint,`token_endpoint`),Ll(e.resource,`resource`),Ul(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}:{}},Vl(e.scope),{refreshToken:e.refreshToken,scope:e.scope})}function Gl(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 Kl={now:Date.now,wait:Ga},ql=new WeakMap;function Jl(e){let t=ql.get(e);if(t)return t;let n={places:[],heldUntil:0,waiting:new Set};return ql.set(e,n),n}function Yl(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 Xl(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 Zl(e,t,n,r=Kl){let i=Jl(e),a=r.now()+Va;for(;;){let e=r.now(),o=Yl(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?Xa(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 Xl(i,Math.min(o,a)-e,n,r)}}async function Ql(e,t){try{let n=await t;return e?.answered(n),n}catch(t){throw e?.answered(),t}}function $l(e){return{handlers:[],profile:e.profile,step:e.turn?.step??1,history:()=>[],injectAllowed:!1,host:e.host,signal:e.signal}}async function*eu(e){let{tool:t,ctx:n,base:r,stages:i}=e,a,o=jl(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*tu({stages:i??$l(n),toolName:t.name,callId:r.callId,input:e.input,toolPreTool:a,details:Pl(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,...Pl(t,r.data),preparedArguments:w.parse(pl(Bn(e)))}}yield Wc(`pre_tool`,{callId:r.callId,toolName:t.name,callNotStarted:!0,gate:s.gate}),yield R(r,{phase:`gate`,gate:s.gate})}return s}let c=s.mutated?t.input.safeParse(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 nu(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*tu(e){let{stages:t,toolName:n,callId:r,input:i,toolPreTool:a,details:o}=e,s=yield*Zc({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 nu(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*ru(e){let{stages:t,toolName:n,callId:r,mutable:i,...a}=e,o=yield*Zc({...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*iu(e){yield Wc(`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 R(e.base,{phase:`gate`,gate:e.gate,...t?{readBack:t}:{}}),t}function au(e,t){if(!t)return e;let n=new URL(e);return n.searchParams.set(t.name,t.value),n}function ou(e,t,n){let r=e.headerName??n.headerName,i=e.headerPrefix??n.headerPrefix;return{[r]:`${i}${t}`}}function su(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 cu(e,t,n,r,i){return r===`gate`?{headers:{},unauthenticated:!0,gate:su(e,t,n,i)}:r===`fail`?{headers:{},unauthenticated:!0,failureMessage:n}:{headers:{},unauthenticated:!0,modelMessage:n}}function lu(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:ou(e,n,{headerName:`Authorization`,headerPrefix:`Bearer `})};let r=t.headerName??e.headerName??`Authorization`,i=t.headerPrefix??e.headerPrefix??``;return{headers:{[r]:`${i}${n}`}}}function uu(e,t){if(e.type!==`bearer`&&e.type!==`api_key`)return;let n=e.type===`bearer`?e.token:e.key;return{...lu(t,e),secret:n}}var du=new Map;function fu(e,t,n,r){let i=`${e.tokenEndpoint}\n${t}`,a=du.get(i);if(a)return a;let o=Wl({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);du.set(i,o);let s=()=>du.delete(i);return o.then(s,s),o}async function*pu(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 cu(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 fu(n,n.refreshToken,{network:nt(i),resolveHost:i.resolveHost},await r.clientSecret?.(n.clientId))}catch(n){return yield{...R(a,{phase:`progress`,data:{kind:`auth_token_refresh_failed`,slot:s}}),errorInternal:Je(n)},cu(e,t,`Failed to refresh OAuth token for '${e}' (slot: '${s}').`,o,c)}await r.set(s,l),yield R(a,{phase:`progress`,data:{kind:`auth_token_refreshed`,slot:s}})}else if(u)return cu(e,t,`OAuth token expired for '${e}' (slot: '${s}') and no refresh token is available.`,o,c);return{headers:ou(t,l.accessToken,{headerName:`Authorization`,headerPrefix:`Bearer `}),secret:l.accessToken,audience:n.resource}}async function*mu(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?cu(e,t,`Authentication required for '${e}' (auth slot: '${t.slot}').`,o):uu(a,t)||(a.type===`oauth2`?yield*pu(e,t,a,i,n,r,o):{headers:{}})}function hu(e,t){if(t===`.`||t===`..`)throw Error(`Path parameter "${e}" cannot be "${t}"`);return encodeURIComponent(t)}function gu(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}}`,hu(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 _u(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 vu(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 yu(e){return{finding:typeof e==`string`?e:JSON.stringify(e)}}function bu(e,t){return t?.length?{...e,parts:t}:e}function X(e,t){return{kind:`failed`,failure:e,callNotStarted:t}}async function*xu(e){let t=yield*eu(e);return t.ok?t:t.kind===`aborted`?{kind:`aborted`,aborted:t.aborted}:t.kind===`gated`?{kind:`gated`,gate:t.gate}:{...X(t.failure,!0),...t.denied?{denied:!0}:{}}}function Su(e,t,n){let r=gt(e,t,n);if(!r.ok)return{ok:!1,outcome:X(r.failure,!0)};let i=Fl(e.name,e.permission,n.sessionPermissions,n.resume,Pl(e,r.data));return i?{ok:!1,outcome:{kind:`gated`,gate:i}}:{ok:!0,input:r.data}}function Cu(e,t=!1){if(e.unauthenticated){if(e.gate)return{kind:`gated`,gate:e.gate};if(e.modelMessage)return{kind:`ok`,modelResult:{finding:e.modelMessage},outputRaw:{unauthenticated:!0,message:e.modelMessage}};if(e.failureMessage===void 0)throw Error(`An unauthenticated call carries a gate, a model message or a failure`);return X({code:`not_authorized`,kind:`auth`,message:e.failureMessage},!t)}}function wu(e){return e.status===401||e.status===403?{status:e.status,challenge:e.headers.get(`www-authenticate`)}:void 0}var Tu=/^[\x21\x23-\x5B\x5D-\x7E]+$/;function Eu(e){let t=t=>e?.match(RegExp(`(?:^|[\\s,])${t}="([^"]*)"`,`i`))?.[1],n=(t(`scope`)??``).split(` `).filter(e=>Tu.test(e)),r=t(`error`);return r===void 0?{scopes:n}:{error:r,scopes:n}}function Du(e){return e.status===401||Eu(e.challenge).error===`insufficient_scope`}function*Ou(e,t,n,r,i){let a=e.auth;if(!a||!t||!n)return;let o=a.onUnauthenticated??`gate`;if(t.status===401){let t=`The credential for '${e.name}' (slot: '${a.slot}') was refused.`;return Cu(cu(e.name,a,t,o),!0)}let s=Eu(t.challenge);if(s.error!==`insufficient_scope`)return;let c=a.scopes??[],l=s.scopes;if(l.length>0&&l.every(e=>c.includes(e))){let t=`'${e.name}' needs scopes its credential (slot: '${a.slot}') does not carry.`;return Cu(cu(e.name,a,t,o),!0)}let u={kind:`auth_scope_refused`,slot:a.slot,requested:l,declared:c};return yield R(i,{phase:`progress`,data:u}),X({code:`out_of_scope`,kind:`auth`,message:W(`sign_in.out_of_scope`,{service:a.service},r.profile.labels)},!1)}async function*ku(e){let t=yield*mu(e.tool.name,e.tool.auth,e.ctx,e.base),n=Cu(t);if(n)return n;let r=yield*xu({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*Au(e,t){if(ge(e)===`blocked`){let n=ot();return t.record(n),X(yield*Ne(e,n),!1)}return X({code:`network_error`,kind:`network`,message:Je(e)},!1)}var ju=`[omitted - credential]`,Mu=4194304,Nu=2e3;async function*Pu(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 Fu(e,t=Mu){let n=Pu(e,t),r=``;for(;;){let e=await n.next();if(e.done)return e.value?r:void 0;r+=e.value}}async function*Iu(e,t,n){let r=Pu(e,Mu),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?zu(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 Lu(e){return e.length>Nu?`${e.slice(0,Nu)}…`:e}function Ru(e){return{code:`response_too_large`,kind:`bad_response`,message:`Response from ${e} is larger than ${Mu} bytes`}}function zu(e,t){return e.replaceAll(t,ju)}function Bu(e,t){return hn(e,e=>zu(e,t))}function Vu(e,t){return{...e,message:zu(e.message,t),...e.details===void 0?{}:{details:Bu(e.details,t)}}}function Hu(e,t){if(!t)return e;if(e.kind===`ok`){let n=Bu(e.outputRaw,t);return{kind:`ok`,outputRaw:n,modelResult:bu(yu(n),e.modelResult.parts)}}return e.kind===`failed`?{...e,failure:Vu(e.failure,t)}:e}function Uu(e,t){if(e&&!Gl(e,t))return`The OAuth token for "${e}" cannot be sent to "${t.origin}${t.pathname}"`}async function*Wu(e,t,n){let r=Uu(e.audience,t);return r?X({code:`credential_audience_mismatch`,kind:`config`,message:r},!0):Hu(yield*n(au(t,e.query)),e.secret)}async function*Gu(e,t,n,r,i,a,o){let s=Su(e,t,n);if(!s.ok)return s.outcome;let c=s.input,l=yield*ku({tool:e,input:c,ctx:n,base:r,stages:i});if(!(`ok`in l))return l;c=l.input;let u;try{u=gu(e.endpoint,e.method,c,e.mapping)}catch(e){return X({code:`invalid_input`,kind:`bad_response`,message:Je(e)},!0)}let d=yield*ut(u.url,n,i?.span);return d.ok?(yield*h(e,c,n,r,a),yield*Wu(l,d.url,t=>Ju(e,t,u.body,l,n,r,i?.span,o))):X(d.failure,!0)}function Ku(e){if(!e.ok)return!1;let t=e.headers.get(`content-type`)??``;return t===``||t.startsWith(`text/`)||/[/+]json\b/.test(t)}async function*qu(e,t,n){return!t||!Ku(e)?await Fu(e):yield*Iu(e,t,n)}async function*Ju(e,t,n,{authHeaders:r,secret:i},a,o,s,c){let l=Le(s),u={Accept:`application/json`};e.method!==`GET`&&(u[`Content-Type`]=`application/json`);let d;try{let s=e.limit?await Zl(e,e.limit,a.signal):void 0;if(s&&`full`in s)return X(ld(e,s),!1);d=e.timeoutMs===void 0?void 0:AbortSignal.timeout(e.timeoutMs);let f=d&&a.signal?AbortSignal.any([a.signal,d]):d??a.signal,p=await Ql(s,it(t.href,{method:e.method,headers:u,body:n,signal:f},{policy:nt(a),followRedirects:!0,...e.access===`read-only`?{fetchFn:Za(fetch)}:{},originBoundHeaders:{...e.headers,...r},resolveHost:a.resolveHost,onCheck:l.onCheck})),m=yield*qu(p,c,i);if(m===void 0)return X(Ru(t.hostname),!1);if(!p.ok)return(yield*Ou(e,wu(p),i!==void 0,a,o))||X({code:`http_${p.status}`,kind:ud(p.status),message:`HTTP ${p.status} from ${t.hostname}: ${Lu(m)}`},!1);let h=_u(p.headers.get(`content-type`)??``,m,p.status),g=vu(e.output,h);return g.success?{kind:`ok`,modelResult:yu(g.data),outputRaw:g.data}:X({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?X(Yu(t.hostname,e.timeoutMs),!1):yield*Au(n,l)}finally{l.record()}}function Yu(e,t){return{code:`timeout`,kind:`timeout`,message:`${e} did not answer within ${t} ms`}}var Xu=[`2026-07-28`,`2025-11-25`,`2025-06-18`,`2025-03-26`];function Zu(e){return{"io.modelcontextprotocol/protocolVersion":e,"io.modelcontextprotocol/clientCapabilities":{}}}function Qu(e){let t=e.trim();if(t.startsWith(`{`))return JSON.parse(t);let n=[];for(let t of e.split(`
|