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