@theoremjs/studio 0.3.4-next.526.g51bc66f → 0.3.4-next.528.g44c76f9
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-DcgTcVVW.js → Banner-BhKnM-76.js} +2 -2
- package/page/assets/{ConsoleFrame-Dep1lvnm.js → ConsoleFrame-CnGU8SiE.js} +1 -1
- package/page/assets/{ContextMenu-NgzKbTao.js → ContextMenu-G2oYmfwG.js} +2 -2
- package/page/assets/{ToolResultCharts-CFvHRt5v.js → ToolResultCharts-DpaHoQFj.js} +1 -1
- package/page/assets/{TraceInspector-D92rKzc_.js → TraceInspector-Bo0PzFVf.js} +1 -1
- package/page/assets/{TraceOverview-m12m2XgM.js → TraceOverview-CM-sd2zM.js} +1 -1
- package/page/assets/{browser-engine-DL-WovTC.js → browser-engine-BJYQz5d_.js} +1 -1
- package/page/assets/{browser-transport-CmAIXFia.js → browser-transport-YKpXhacP.js} +3 -3
- package/page/assets/{export-agent-C8_6CZgy.js → export-agent-CtklkKZk.js} +1 -1
- package/page/assets/{guardrail-tester-Dk5L25mc.js → guardrail-tester-BXROlU1L.js} +1 -1
- package/page/assets/{index-B95kGH1Q.js → index-DbHspDC4.js} +6 -6
- package/page/assets/{studio-code-pane-CPyzXehM.js → studio-code-pane-Dt3MWPBE.js} +1 -1
- package/page/assets/{studio-console-BV4NlQY-.js → studio-console-4PMBDYuu.js} +1 -1
- package/page/assets/{studio-decision-BT6Ee-kK.js → studio-decision-BiN_FO02.js} +1 -1
- package/page/assets/{studio-embedding-DVduw2Un.js → studio-embedding-C7gIUtxM.js} +1 -1
- package/page/assets/{studio-host-console-CngXS38i.js → studio-host-console-DOBHkxDj.js} +2 -2
- package/page/assets/{studio-labels--uHJcIbG.js → studio-labels-Dh_rsQs7.js} +1 -1
- package/page/assets/{studio-live-DTHgPVFH.js → studio-live-xPsQmJyQ.js} +1 -1
- package/page/assets/{studio-map-CT0jsRMr.js → studio-map-Cc4_9fe9.js} +1 -1
- package/page/assets/{studio-trace-replay-DS9o-VrA.js → studio-trace-replay-D5JoQXyY.js} +1 -1
- package/page/assets/{use-one-call-DOzbF9kQ.js → use-one-call-ApIuuZX3.js} +1 -1
- package/page/index.html +5 -5
|
@@ -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 L,ht as He,in as Ue,it as We,jr as Ge,jt as Ke,kn as qe,kt as Je,ln as Ye,lr as Xe,lt as Ze,mn as Qe,mt as $e,nn as et,nt as R,on as tt,ot as nt,p as rt,pn as it,pt as z,rn as at,rt as ot,sn as st,st as ct,tt as lt,ut,v as dt,vn as ft,wn as pt,wt as mt,xn as ht,xt as gt,yn as _t,yt as vt,zn as yt,zt as bt}from"./tool-schema-DpbtSZtQ.js";import{c as B,t as xt}from"./host-patterns-cSf1U25G.js";import{$ as St,A as Ct,An as wt,At as Tt,B as Et,Ct as Dt,D as Ot,Dn as kt,Et as At,Fn as jt,Ft as Mt,In as V,It as Nt,J as Pt,K as Ft,Ln as H,M as It,Mn as Lt,Mt as Rt,N as zt,Nn as Bt,Nt as Vt,O as U,On as Ht,Ot as Ut,Pt as Wt,R as Gt,Rn as Kt,St as qt,T as Jt,Tt as Yt,U as Xt,Un as W,Y as Zt,Z as Qt,_n as $t,_t as en,at as tn,bn as nn,bt as rn,ct as an,dt as on,et as sn,gt as cn,hn as ln,ht as un,j as dn,jn as fn,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-C4jsvipW.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-BkaAkeh0.js";import{a as Wr,t as Gr}from"./live-ingress-qi-y5uvH.js";import{t as Kr}from"./trace-record-D9wgX8kq.js";import{n as qr,r as Jr,t as Yr}from"./crypto-BAY2nUlu.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-BWO4ocVM.js";import{n as si,t as ci}from"./live-messages-DIf_R-NT.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-B95kGH1Q.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,Vt(r).text)}function Ri(e,t,n){Ii(e,t.system),n.has(t.input)||Ii(e,Vt(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:nn.remoteDestination,severity:`high`,match:e})),s={destination:a.join(`, `),sources:[...new Set(i.map(t=>e.remote.get(t)??``))].join(`, `)},c=n.taint?.remoteDestination??`off`;return c===`block`?{verdict:{action:`block`,hits:o,rejection:W(`taint.destination_blocked`,s,r)}}:{verdict:{action:`flag`,hits:o},...c===`confirm`?{confirm:W(`taint.destination_confirm`,s,r)}:{}}}var Vi={image:`thought.omitted_image`,link:`thought.omitted_link`,instructions:`thought.omitted_instructions`},Hi={rule:$t.ungiven_images,severity:`high`},Ui={rule:$t.ungiven_links,severity:`high`},Wi={rule:$t.marker_leak,severity:`high`},Gi={rule:$t.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=W(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?qt(n):void 0,_=0,v=0,E(e)}function E(e){v+=e.length;let t=(h?.push(e).length??0)>0,n=g?.push(e)??!1,i=!1;if(r){let e=(p+m).slice(0,v),t=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 on(e,d(t.links),c))i.push({...n,kind:`link`,hit:Ui});if(t.markers){let t=[new RegExp(St.source,`gi`),...u?[sn(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:ln});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,ln]);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+Wt(m,r,l):e,o=Math.min(t,i,a,ue()??e,y??e);return re(o<p.length?o:p.length+Tt(m,o-p.length))}function ce(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+rn(le(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+rn(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?en(t,n,e.text.slice(0,e.held)):t.length,a=r?Wt(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?At(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)=>Xt(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:ln,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?qt(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(ln),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?qt(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)=>Xt(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=Et(e,t);(s||zt([`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,...Gt(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 B(`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&&It(`live_reply`,n.found);i&&r.push(K(i)),ha(e,t,ma(t),r);return}let i=n.hits.filter(Zt);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(Dt(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(Qt(t.hits),t.hits,n);if(t){let e=It(`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&&It(`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:Et(e.policy,e.context)}),o=t.accumulated().slice(0,e.releasedTo),s=qe(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 B(`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=[1e3,2e3,4e3,8e3],Ma=5e3,Na=ja.length,Pa=1e3,Fa=new Set([408,429,500,502,503,504,529]),Ia=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(La(t));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e);function a(){clearTimeout(i),r(La(t))}t?.addEventListener(`abort`,a,{once:!0})});function La(e){return e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}function Ra(e){return Fa.has(e)}function za(e){let t=Bt(e);return t instanceof B&&t.kind===`network`}function Ba(e){return ja[Math.min(e,ja.length-1)]}function Va(e,t=Date.now()){let n=e.get(`retry-after-ms`),r=e.get(`retry-after`),i;if(n!==null&&n.trim()!==``&&Number.isFinite(Number(n)))i=Number(n);else if(r!==null&&r.trim()!==``){let e=Number(r);i=Number.isFinite(e)?e*Pa:Date.parse(r)-t}if(!(i===void 0||Number.isNaN(i)||i<0))return i}function Ha(e,t=Ia,n=()=>1/0){return async(r,i)=>{let a=0;for(let o=0;;o++){let s=Math.min(Ma-a,n()),c;try{let t=await e(r,i);if(!Ra(t.status)||(c=Va(t.headers)??Ba(o),c>s||o>=Na))return t;await t.body?.cancel()}catch(e){if(c=Ba(o),!za(e)||c>s||o>=Na)throw e}await t(c,i?.signal),a+=c}}}var Ua=`[DONE]`;function Wa(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function Ga(e,t){let n=e.startsWith(`data:`)?e.slice(5).replace(/^ /,``):e,r={};if(t&&(r.sseEvent=t),n===Ua)return r.eventType=`sse_done`,r;try{let e=JSON.parse(n),t=Wa(e);return t?{...t,...r}:(r.eventType=`sse_unparsed`,r.data=e,r)}catch{return r.eventType=`sse_unparsed`,r.data=n,r}}function Ka(e,t=``){let n=[],r=t,i=[],a=!1,o=0,s=/\r\n|\r|\n/g,c=0;for(let t=s.exec(e);t&&(t[0]!==`\r`||t.index!==e.length-1);t=s.exec(e)){let s=e.slice(c,t.index);if(c=t.index+t[0].length,!s)a&&n.push(Ga(i.join(`
|
|
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 L,ht as He,in as Ue,it as We,jr as Ge,jt as Ke,kn as qe,kt as Je,ln as Ye,lr as Xe,lt as Ze,mn as Qe,mt as $e,nn as et,nt as R,on as tt,ot as nt,p as rt,pn as it,pt as z,rn as at,rt as ot,sn as st,st as ct,tt as lt,ut,v as dt,vn as ft,wn as pt,wt as mt,xn as ht,xt as gt,yn as _t,yt as vt,zn as yt,zt as bt}from"./tool-schema-DpbtSZtQ.js";import{c as B,t as xt}from"./host-patterns-cSf1U25G.js";import{$ as St,A as Ct,An as wt,At as Tt,B as Et,Ct as Dt,D as Ot,Dn as kt,Et as At,Fn as jt,Ft as Mt,In as V,It as Nt,J as Pt,K as Ft,Ln as H,M as It,Mn as Lt,Mt as Rt,N as zt,Nn as Bt,Nt as Vt,O as U,On as Ht,Ot as Ut,Pt as Wt,R as Gt,Rn as Kt,St as qt,T as Jt,Tt as Yt,U as Xt,Un as W,Y as Zt,Z as Qt,_n as $t,_t as en,at as tn,bn as nn,bt as rn,ct as an,dt as on,et as sn,gt as cn,hn as ln,ht as un,j as dn,jn as fn,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-C4jsvipW.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-BkaAkeh0.js";import{a as Wr,t as Gr}from"./live-ingress-qi-y5uvH.js";import{t as Kr}from"./trace-record-D9wgX8kq.js";import{n as qr,r as Jr,t as Yr}from"./crypto-BAY2nUlu.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-BWO4ocVM.js";import{n as si,t as ci}from"./live-messages-DIf_R-NT.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-DbHspDC4.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,Vt(r).text)}function Ri(e,t,n){Ii(e,t.system),n.has(t.input)||Ii(e,Vt(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:nn.remoteDestination,severity:`high`,match:e})),s={destination:a.join(`, `),sources:[...new Set(i.map(t=>e.remote.get(t)??``))].join(`, `)},c=n.taint?.remoteDestination??`off`;return c===`block`?{verdict:{action:`block`,hits:o,rejection:W(`taint.destination_blocked`,s,r)}}:{verdict:{action:`flag`,hits:o},...c===`confirm`?{confirm:W(`taint.destination_confirm`,s,r)}:{}}}var Vi={image:`thought.omitted_image`,link:`thought.omitted_link`,instructions:`thought.omitted_instructions`},Hi={rule:$t.ungiven_images,severity:`high`},Ui={rule:$t.ungiven_links,severity:`high`},Wi={rule:$t.marker_leak,severity:`high`},Gi={rule:$t.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=W(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?qt(n):void 0,_=0,v=0,E(e)}function E(e){v+=e.length;let t=(h?.push(e).length??0)>0,n=g?.push(e)??!1,i=!1;if(r){let e=(p+m).slice(0,v),t=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 on(e,d(t.links),c))i.push({...n,kind:`link`,hit:Ui});if(t.markers){let t=[new RegExp(St.source,`gi`),...u?[sn(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:ln});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,ln]);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+Wt(m,r,l):e,o=Math.min(t,i,a,ue()??e,y??e);return re(o<p.length?o:p.length+Tt(m,o-p.length))}function ce(e){let t=Math.max(p.length,x),n=Math.max(0,t-vn),r=n+rn(le(n),e);if(r<t&&t>p.length){let t=Math.max(0,p.length-vn);r=t+rn(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?en(t,n,e.text.slice(0,e.held)):t.length,a=r?Wt(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?At(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)=>Xt(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:ln,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?qt(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(ln),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?qt(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)=>Xt(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=Et(e,t);(s||zt([`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,...Gt(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 B(`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&&It(`live_reply`,n.found);i&&r.push(K(i)),ha(e,t,ma(t),r);return}let i=n.hits.filter(Zt);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(Dt(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(Qt(t.hits),t.hits,n);if(t){let e=It(`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&&It(`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:Et(e.policy,e.context)}),o=t.accumulated().slice(0,e.releasedTo),s=qe(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 B(`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=[1e3,2e3,4e3,8e3],Ma=5e3,Na=ja.length,Pa=1e3,Fa=new Set([408,429,500,502,503,504,529]),Ia=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(La(t));return}let i=setTimeout(()=>{t?.removeEventListener(`abort`,a),n()},e);function a(){clearTimeout(i),r(La(t))}t?.addEventListener(`abort`,a,{once:!0})});function La(e){return e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}function Ra(e){return Fa.has(e)}function za(e){let t=Bt(e);return t instanceof B&&t.kind===`network`}function Ba(e){return ja[Math.min(e,ja.length-1)]}function Va(e,t=Date.now()){let n=e.get(`retry-after-ms`),r=e.get(`retry-after`),i;if(n!==null&&n.trim()!==``&&Number.isFinite(Number(n)))i=Number(n);else if(r!==null&&r.trim()!==``){let e=Number(r);i=Number.isFinite(e)?e*Pa:Date.parse(r)-t}if(!(i===void 0||Number.isNaN(i)||i<0))return i}function Ha(e,t=Ia,n=()=>1/0){return async(r,i)=>{let a=0;for(let o=0;;o++){let s=Math.min(Ma-a,n()),c;try{let t=await e(r,i);if(!Ra(t.status)||(c=Va(t.headers)??Ba(o),c>s||o>=Na))return t;await t.body?.cancel()}catch(e){if(c=Ba(o),!za(e)||c>s||o>=Na)throw e}await t(c,i?.signal),a+=c}}}var Ua=`[DONE]`;function Wa(e){if(e&&typeof e==`object`&&!Array.isArray(e))return e}function Ga(e,t){let n=e.startsWith(`data:`)?e.slice(5).replace(/^ /,``):e,r={};if(t&&(r.sseEvent=t),n===Ua)return r.eventType=`sse_done`,r;try{let e=JSON.parse(n),t=Wa(e);return t?{...t,...r}:(r.eventType=`sse_unparsed`,r.data=e,r)}catch{return r.eventType=`sse_unparsed`,r.data=n,r}}function Ka(e,t=``){let n=[],r=t,i=[],a=!1,o=0,s=/\r\n|\r|\n/g,c=0;for(let t=s.exec(e);t&&(t[0]!==`\r`||t.index!==e.length-1);t=s.exec(e)){let s=e.slice(c,t.index);if(c=t.index+t[0].length,!s)a&&n.push(Ga(i.join(`
|
|
3
3
|
`),r)),r=``,i=[],a=!1,o=c;else if(!s.startsWith(`:`)){let e=s.indexOf(`:`),t=e<0?s:s.slice(0,e),n=e<0?``:s.slice(e+1).replace(/^ /,``);t===`event`&&(r=n),t===`data`&&(i.push(n),a=!0)}}return{rest:e.slice(o),payloads:n,pendingEvent:``}}async function*qa(e){let t=e.getReader(),n=new TextDecoder,r=``,i=!1;try{for(;;){let{done:e,value:a}=await t.read();if(e){i=!0;break}r+=n.decode(a,{stream:!0});let o=Ka(r);r=o.rest;for(let e of o.payloads)yield e}}finally{i||t.cancel().catch(()=>void 0),t.releaseLock()}}var Ja=/key|auth|cookie|secret|token/i;function Ya(e,t){return Ja.test(e)?`[redacted]`:t}function Xa(e){let t={};for(let[n,r]of new Headers(e).entries())t[n]=Ya(n,r);return t}function Za(e){return e instanceof Error?{eventType:`http_throw`,name:e.name,message:e.message}:{eventType:`http_throw`,name:`Error`,message:String(e)}}function Qa(e){if(e==null)return{};if(typeof e!=`string`)return{bodyKind:e.constructor.name};try{return{body:JSON.parse(e)}}catch{return{body:e}}}function $a(e,t=fetch,n){return e?async(r,i)=>{e({eventType:`http_request`,method:i?.method??`GET`,url:String(r),headers:Xa(i?.headers),...n?{keySlot:n}:{},...Qa(i?.body)});try{let n=await t(r,i);return e({eventType:`http_response`,status:n.status,headers:Xa(n.headers)}),n.ok||e({eventType:`http_error_body`,body:await n.clone().text()}),n}catch(t){throw e(Za(t)),t}}:t}function eo(e=fetch){return(t,n)=>jt(e,t,n)}var to=`key_fallback`,no=1e6;function ro(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 io(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 ao(e,t,n){let r=ro(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)+io(n.input-a,i.input,i.byModality?.input,n.byModality?.input)+io(n.output,i.output,i.byModality?.output,n.byModality?.output))/no,estimated:!0}}function oo(e){return(t,n)=>{if([...n.headers.keys()].length)throw new B(`unsupported`,W(`protocol.ws_headers`,{provider:e}));return Promise.resolve(new WebSocket(t,n.protocols))}}var so=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,co=248;function lo(){let e=``;for(;e.length<24;)for(let t of crypto.getRandomValues(new Uint8Array(24-e.length)))t<co&&(e+=so[t%62]);return e}function uo(e){return Ee(e.provider,e.binding)}var fo=new WeakMap;function po(e,t){return e&&Object.hasOwn(e,t)?e[t]:void 0}async function mo(e,t,n){let{definition:r}=e.provider,i=t.authorize??r.authorize;if(!r.key||!i)return;let a=n?po(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 B(`auth`,s===void 0?W(`provider.credential_missing`,{slot:n??``}):W(`protocol.key_invalid`,{slot:n??``,provider:e.provider.id}));if(c.data===void 0)return;e.onKey?.(n,c.data);let l=`${t.protocol.id}\u0000${n??``}`,u=fo.get(e.provider)??new Map;fo.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 ho(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*go(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 qa(e.body)){if(t.eventType===`sse_done`)return;yield t}}function _o(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 vo(e,t,n){let r=_o(await n.text()),i=e.error?.({status:n.status,body:r,headers:n.headers})??new B(Lt(n.status),W(`protocol.http`,{provider:t,status:n.status}));return Object.assign(i,{status:n.status})}function yo(e){return e.builtins.map(e=>e.id)}function bo(e,t,n=[]){let r=t.find(e=>!n.includes(e));if(r!==void 0)throw new B(`unsupported`,W(`protocol.builtin_unwritten`,{protocol:e.id,tool:r}))}async function xo(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 So(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 Co(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 xo(e.data);t.trim()&&s(So(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 wo(e,t,n,r={sent:!1},i=[]){let a=uo(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 B(`unsupported`,W(`protocol.profile_type`,{protocol:o.id,profileType:e.profileType}));return n};return{profileType:e.profileType,apiId:s,options:e.binding.options??{},builtInTools:c,limits:e.limits??e.binding.limits??{},...e.signal?{signal:e.signal}:{},tapUpstream:l,async*send(n,c){bo(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:ho(a,u(c.path),s,c.stream),headers:d,protocols:[],body:JSON.stringify(n)};await(await mo(e,a,t))?.sign(f);let p=Ha($a(e.tapUpstream&&(t=>e.tapUpstream?.(t)),eo(e.fetch??fetch),t),e.wait??Ia,e.timeLeft);r.sent=!0;let m=await p(f.url,{method:`POST`,headers:f.headers,body:f.body??null,...e.signal?{signal:e.signal}:{}});if(!m.ok)throw await vo(o,e.provider.id,m);for await(let e of(o.framing??go)(m,c.stream))l(e),yield e},async connect(n,c){bo(o,i,c?.wroteTools);let d={transport:`ws`,url:ho(a,u(void 0),s,!0),headers:new Headers(a.headers),protocols:[]};await(await mo(e,a,t))?.sign(d);let f=e.openWebSocket??oo(e.provider.id);r.sent=!0;let p=Co(await f(d.url.toString(),{headers:d.headers,protocols:d.protocols}),l);return p.send(n),p}}}function To(e,t){return e instanceof B&&e.kind===t}async function*Eo(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((To(t,`rate_limit`)||To(t,`busy`))&&r&&i!==r&&Do(e,r))e.tapUpstream?.({eventType:to,from:i??null,keySlot:r,errorKind:t.kind,error:t.message}),i=r,a=!0;else if(To(t,`auth`)&&!o){o=!0;let t=uo(e);fo.get(e.provider)?.get(`${t.protocol.id}\u0000${i??``}`)?.signer.invalidate?.()}else throw t}}}function Do(e,t){let n=po(e.vault,t);return typeof n==`string`?n.trim()!==``:typeof n==`function`||typeof n==`object`&&!!n}function Oo(e){if(!(e instanceof B)||e.kind===`cancelled`||e.kind===`config`)throw e;return{type:`error`,errorKind:e.kind,errorInternal:Ht(e),...e.copy?{errorCopy:e.copy}:{}}}function ko(e){if(e.state===void 0)return e;if(!e.history?.length)throw new B(`request`,W(`protocol.history_needed`));let{state:t,stateHistoryLength:n,...r}=e;return r}function Ao(e){let t=new Map,n=e=>{let n=t.get(e);if(n)return n;let r=lo();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=ao(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 jo(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=ao(n,t.model,{input:r,output:i,total:r+i});return a?{...t,usage:{...t.usage,costUsd:a.usd,estimated:!0}}:t}function Mo(e){return uo(e).protocol}function No(e,t,n){let r=t[n];if(!r)throw new B(`unsupported`,W(`protocol.no_operation`,{protocol:e.id,operation:n}));let i=r;return((...e)=>i.apply(t,e))}async function Po(e,t,n){let r=Mo(e);for await(let i of Eo(e,i=>(async function*(){let a=r.create(wo(e,i,[]));yield await No(r,a,t)(n)})()))return i;throw new B(`internal`,W(`provider.decision_failed`))}function Fo(e){let t=Mo(e);return{async*complete(n){let{finish:r}=Ao(e),i=[],a={sent:!1},o=Eo(e,(r,o)=>{a.sent=!1;let s=t.create(wo(e,r,i,a,yo(n)));return No(t,s,`complete`)(o?ko(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 Oo(e);return}for(let e of i.splice(0))yield{type:`raw`,row:e}},async openSession(n){let{finish:r,wireOf:i}=Ao(e),a=[],o;for await(let r of Eo(e,(r,i)=>(async function*(){let o=t.create(wo(e,r,a,void 0,yo(n)));yield await No(t,o,`openSession`)(i?ko(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=>jo(e,await Po(e,`decide`,t)),embed:t=>Po(e,`embed`,t)}}function Io(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 Lo(e,t){return t!==void 0&&e>t}var Ro=class{limits;controller=new AbortController;signal;timer;timerDeadline;wireBytes=0;stepBytes=0;stepEvents=0;calls=new Set;deadline;releaseSignal;constructor(e,t,n=e.operationTimeoutMs){this.limits=e;let r=Io(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 B(`timeout`,W(`error.timeout`))),V(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 B(`timeout`,W(`error.timeout`))),e)}stopTimer(){this.timer!==void 0&&clearTimeout(this.timer),this.timer=void 0,this.timerDeadline=void 0}close(){this.controller.abort(),this.dispose()}dispose(){this.stopTimer(),this.releaseSignal()}startLiveStep(){let e=this.limits.liveStepTimeoutMs;this.timer===void 0&&e!==void 0&&this.startTimer(e)}fail(){let e=new B(`bad_response`,W(`provider.budget_exhausted`),{copy:{key:`provider.budget_exhausted`}});throw this.controller.abort(e),e}checkDeadline(){this.timerDeadline!==void 0&&performance.now()>=this.timerDeadline&&this.controller.abort(new B(`timeout`,W(`error.timeout`))),V(this.signal)}value(e){this.checkDeadline();let t=new TextEncoder().encode(JSON.stringify(e)).byteLength;this.checkDeadline(),this.stepBytes+=t,this.stepEvents++,(Lo(t,this.limits.maxEventBytes)||Lo(this.stepBytes,this.limits.maxStepBytes)||Lo(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),Lo(this.calls.size,this.limits.maxPendingToolCalls)&&this.fail()}resetStep(){this.stepBytes=0,this.stepEvents=0,this.calls.clear(),this.wireBytes=0,this.stopTimer()}socket(e){return async(t,n)=>{V(this.signal);let r=await e(t,n);this.signal.aborted&&(r.close(),V(this.signal));let i=()=>r.close();return this.signal.addEventListener(`abort`,i,{once:!0}),r.addEventListener(`close`,()=>this.signal.removeEventListener(`abort`,i),{once:!0}),r.addEventListener(`message`,e=>{let t=e.data;if(Lo(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=Io(r?[this.signal,r]:[this.signal]),a=i.signal;V(a);let o=await e(t,{...n,signal:a}).catch(e=>{throw i.dispose(),e});if(V(a),!o.body)return i.dispose(),o;let s=o.body.getReader(),c=0,l=this.limits.maxWireRecordBytes!==void 0&&o.headers.get(`content-type`)?.includes(`text/event-stream`)?new zo(this):void 0,u=()=>{s.cancel(a.reason).catch(()=>void 0)};a.addEventListener(`abort`,u,{once:!0});let d=new ReadableStream({pull:async e=>{try{V(a);let t=await s.read();if(V(a),t.done){e.close(),a.removeEventListener(`abort`,u),i.dispose(),s.releaseLock();return}c+=t.value.byteLength,this.wireBytes+=t.value.byteLength,(Lo(c,this.limits.maxWireResponseBytes)||Lo(this.wireBytes,this.limits.maxWireResponseBytes))&&this.fail(),l?.accept(t.value),e.enqueue(t.value)}catch(t){e.error(t),a.removeEventListener(`abort`,u),i.dispose(),s.cancel(t).catch(()=>void 0)}},cancel:e=>(a.removeEventListener(`abort`,u),i.dispose(),s.cancel(e))});return new Response(d,{status:o.status,statusText:o.statusText,headers:o.headers})}}},zo=class{budget;recordBytes=0;lineBytes=0;previousCR=!1;emptyCR=!1;constructor(e){this.budget=e}accept(e){for(let t of e)this.emptyCR&&t!==10&&(this.recordBytes=0,this.emptyCR=!1),this.recordBytes++,Lo(this.recordBytes,this.budget.limits.maxWireRecordBytes)&&this.budget.fail(),this.emptyCR?(this.recordBytes=0,this.emptyCR=!1,this.previousCR=!1):t===10&&this.previousCR?this.previousCR=!1:(t===10||t===13?(this.lineBytes===0&&(t===13?this.emptyCR=!0:this.recordBytes=0),this.lineBytes=0):this.lineBytes++,this.previousCR=t===13)}},Bo=t({name:f().min(1),callId:f().min(1),wireCallId:f().min(1).optional(),arguments:p(f(),O),stepId:f().min(1).optional(),stepCallCount:d().int().min(1).optional()}),Vo=k.extend({type:o(`reasoning`)}),Ho=new Set([`text`,`thought`,`structured`,`media`,`grounding`,`citation`,`evidence`,`tokens`,`session`,`tool_draft`,`error`,`custom`]);function Uo(e){let t=Se.parse(e);if(t.kind===`gate`)throw new B(`bad_response`,W(`provider.kernel_gate`));return t}function Wo(e){if(!G(e)||typeof e.type!=`string`)throw new B(`bad_response`,W(`provider.event_invalid`));if(Ho.has(e.type))return yt.parse(e);switch(e.type){case`tool_call`:return{type:`tool_call`,call:Bo.parse(e.call)};case`tool_cancel`:return{type:`tool_cancel`,callId:f().min(1).parse(e.callId)};case`reasoning`:return Vo.parse(e);case`raw`:return{type:`raw`,row:F.parse(e.row)};case`done`:return{type:`done`,stop:Uo(e.stop),interrupted:i().optional().parse(e.interrupted),state:e.state};case`response`:if(!G(e.response))throw new B(`bad_response`,W(`provider.response_identity`));return{type:`response`,response:t({id:f().optional(),model:f().optional()}).parse(e.response)};default:throw new B(`bad_response`,W(`provider.event_type`,{type:e.type}))}}async function Go(e,t){if(V(t),!t)return await e();let n=()=>{},r=new Promise((e,r)=>{n=()=>{try{V(t)}catch(e){r(e)}},t.addEventListener(`abort`,n,{once:!0}),t.aborted&&n()});try{return await Promise.race([Promise.resolve().then(()=>(V(t),e())),r])}finally{t.removeEventListener(`abort`,n)}}function Ko(e,t){if(!e)return;let n=e=>({...e,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([e,n])=>[e,typeof n==`string`?t(n):n]))}:{}});return`key`in e?n(e):e.map(n)}function qo(e,t){let n=t(e instanceof Error?e.message:String(e));if(e instanceof DOMException)return new DOMException(n,e.name);if(fn(e))return new DOMException(n,`AbortError`);let r=e instanceof Error&&e.cause!==void 0?{cause:qo(e.cause,t)}:{},i=e instanceof B?new B(e.kind,n,{copy:Ko(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 Jo(e,t){try{return await e()}catch(e){throw qo(e,t)}}async function*Yo(e,t,n,r=!1){r||n.resumeOperation();let i;try{for(i=e()[Symbol.asyncIterator]();;){let e=i,a=await Go(()=>e.next(),n.signal);if(a.done)break;let o=Wo(a.value);r&&(o.type!==`session`||o.session.kind===`working`)&&n.startLiveStep(),n.event(o),o.type===`error`?yield{...o,...o.errorCopy?{errorCopy:Ko(o.errorCopy,t)}:{},...o.errorInternal?{errorInternal:t(o.errorInternal)}:{},...o.error?{error:t(o.error)}:{}}:yield o,r&&o.type===`done`&&n.resetStep()}}catch(e){throw qo(e,t)}finally{n.close(),i?.return&&Promise.resolve(i.return()).catch(()=>void 0)}}var Xo=/^(?:authorization|proxy-authorization|cookie|set-cookie|api[_-]?key|x-goog-api-key|secret|token|access[_-]?token|refresh[_-]?token|password)$/i;function Zo(e,t,n,r,i){let a=Object.freeze(ke.parse({...t.limits,...r.limits})),o=new Ro(a,i.signal,i.timeoutMs??(i.liveConnection?a.connectTimeoutMs:a.operationTimeoutMs)),s=new Set,c=e=>{if(typeof e==`string`)s.add(e);else if(e&&typeof e==`object`)for(let t of Object.values(e))c(t)},l=e=>{if(typeof e==`string`){let t=e;for(let e of s)e&&(e.length>=4||t===e)&&(t=t.split(e).join(`[redacted]`));return t}return Array.isArray(e)?e.map(l):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,t])=>[String(l(e)),Xo.test(e)&&typeof t==`string`?`[redacted]`:l(t)])):e},u=e=>String(l(e)),d=ze(e,t).keySlot,f=Fo({provider:e,binding:t,profileType:n,limits:a,signal:o.signal,fetch:o.fetch(r.fetch??globalThis.fetch),openWebSocket:o.socket(r.openWebSocket??oo(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 Go(()=>Jo(e,u),o.signal);return o.value(t),t}finally{o.close()}};return{keySlot:()=>d,complete:e=>Yo(()=>f.complete({...e,signal:o.signal}),u,o),decide:e=>p(()=>f.decide({...e,signal:o.signal})),embed:e=>p(()=>f.embed({...e,signal:o.signal})),async openSession(e){o.resumeOperation();let t=await Go(()=>Jo(()=>f.openSession({...e,signal:o.signal}),u),o.signal).catch(e=>{throw o.close(),e}).finally(()=>o.stopTimer());return{events:()=>Yo(()=>t.events(),u,o,!0),closeInfo:()=>{let e=t.closeInfo?.();return e&&{...e,...e.error?{error:qo(e.error,u)}:{}}},sendText:e=>(o.startLiveStep(),Jo(()=>t.sendText(e),u)),sendAudio:e=>Jo(()=>t.sendAudio(e),u),sendVideo:e=>Jo(()=>t.sendVideo(e),u),sendContext:e=>Jo(()=>t.sendContext(e),u),sendToolResult:e=>(o.startLiveStep(),Jo(()=>t.sendToolResult(e),u)),close:e=>(o.stopTimer(),Jo(()=>t.close(e),u).finally(()=>o.dispose()))}}}}function Qo(e,t,n){let r=t.options??{},i=[...n.continuation?.keyOptions??[]].sort().map(e=>[e,r[e]??null]);return JSON.stringify({connection:e.connection??null,options:i})}function $o(e,t,n){if(e?.history===`stateless`&&(t||n?.length))throw new B(`request`,W(`provider.stateless_history`))}async function es(e,t,n,r,i={}){if(!n)return{};let a=C.parse(n),o=et(e,t),s=o.continuation,c;return a.protocol!==o.id||a.provider!==e.id?c=`provider_changed`:a.apiId===t.apiId?!s||a.version!==s.version?c=`version_changed`:a.compatibilityKey===Qo(e,t,o)?a.keySlot===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 ts(e,t,n,r,i,a={}){if(r===void 0)return;let o=et(e,t),s=o.continuation;if(!s)throw new B(`bad_response`,W(`provider.continuation_contract`));return{protocol:o.id,provider:e.id,version:s.version,apiId:t.apiId,...n?{keySlot:n}:{},compatibilityKey:Qo(e,t,o),coveredHistoryLength:i.length,coveredHistoryHash:await N(i),data:O.parse(s.schema.parse(r)),...Object.keys(a).length?{wireCallIds:a}:{}}}function ns(e,t){return e?.map(e=>{if(!e.reasoning)return e;let{reasoning:n,...r}=e,i=n.filter(e=>at(e.origin.protocol,t));return i.length?{...r,reasoning:i}:r})}function rs(e,t){if(!e||!t)return e;let n=e=>t[e]??e;return e.map(e=>({...e,...e.tool_calls?{tool_calls:e.tool_calls.map(e=>({...e,id:n(e.id)}))}:{},...e.tool_call_id?{tool_call_id:n(e.tool_call_id)}:{}}))}function is(e,t,n){let{providerState:r,tapUpstream:i,history:a,...o}=e,s=rs(ns(a,t),n.wireCallIds);return{...o,...s?{history:s}:{},...n.state===void 0?{}:{state:n.state,stateHistoryLength:n.covered}}}function as(e){let{wireCallId:t,...n}=e;return n}async function*os(e,t){let n={},r,i=!1,a=[],o=[],s=``,c,l=e[Symbol.asyncIterator](),u=!1;try{for(;;){let e=await Go(()=>l.next(),t);if(e.done){u=!0;break}V(t);let d=e.value;if(r)throw new B(`bad_response`,W(`provider.events_after_completion`));switch(d.type){case`raw`:continue;case`text`:s+=d.text;break;case`structured`:c=d.structured;break;case`reasoning`:{let{type:e,...t}=d;o.push(t);break}case`tool_call`:if(a.some(e=>e.callId===d.call.callId))throw new B(`bad_response`,W(`provider.duplicate_call`));d.call.wireCallId&&(n[d.call.callId]=d.call.wireCallId),a.push(as(d.call));continue;case`tool_cancel`:throw new B(`bad_response`,W(`provider.tool_cancel_live`));case`error`:i=!0;break;case`done`:r=d;continue}yield d}}finally{!u&&l.return&&Promise.resolve(l.return()).catch(()=>void 0)}return{terminal:r,failed:i,pending:a,reasoning:o,text:s,...c===void 0?{}:{structured:c},wireCallIds:n}}function ss(e,t,n,r,i,a={},o=[]){let s=et(e,t),c=i;return{async*complete(l){let u=c===i&&a.history===`provider`,d=await es(e,t,c,u?o:l.history??[],u?a:{});d.warning&&(c=void 0,yield{type:`provider_warning`,warning:d.warning});let f=Zo(e,t,n,r,l),{terminal:p,failed:m,pending:h,reasoning:g,text:_,structured:v,wireCallIds:y}=yield*os(f.complete(is(l,s,d)),l.signal);if(V(l.signal),!p){yield{type:`done`,stop:{kind:m?`provider_error`:`stream_incomplete`}};return}if(m||p.interrupted||p.stop.kind!==`tool`&&p.stop.kind!==`completed`){yield{type:`done`,stop:p.stop};return}let b=[...l.history??[]];l.input.length&&b.push(l.input.every(e=>e.type===`text`)?{role:`user`,content:l.input.map(e=>e.type===`text`?e.text:``).join(``)}:{role:`user`,parts:l.input});let x=await ts(e,t,f.keySlot(),p.state,[...b,...st({text:_,structured:v,calls:h.map((e,t)=>t===0?{...e,reasoning:g}:e)})],{...d.wireCallIds,...y});c=x;for(let e of h)yield{type:`tool`,tool:e};yield{type:`done`,stop:p.stop,providerState:x}}}}var cs=new Map;function ls(e){return typeof e==`object`&&!!e&&`write`in e&&typeof e.write==`function`}function us(e,t){let n=e.trim();if(!n)throw new B(`config`,`registerTraceDestination requires a non-empty id`);if(!ls(t))throw new B(`config`,`Trace destination '${n}' must be a TraceSink`);cs.set(n,t)}function ds(e){return cs.get(e)}function fs(e){let t=ds(e);if(!t)throw new B(`config`,`Trace destination '${e}' is not registered`);return t}async function ps(e,t,n){try{await e.write(await t,{retainForDays:n.retainForDays,rotateAfterMiB:n.rotateAfterMiB})}catch(t){try{e.onError?.(t)}catch{}}}function ms(e,t,n,r){return ps(e,Kr({spans:t,policy:n,...r?{metadata:r}:{}}),n)}function hs(){return{write:()=>Promise.resolve()}}function gs(e,t){return!t&&!e.onError?e:{write:(t,n)=>e.write(t,n),onError:e.onError??t}}var _s=2**32;function vs(e,t){let n=e.spans[0]?.traceId??``;return Number.parseInt(n.slice(-8),16)/_s<t}function ys(e,t){return t>=1?e:t<=0?hs():{write:async(n,r)=>{vs(n,t)&&await e.write(n,r)},onError:e.onError}}function bs(e,t){return e===void 0||e===!1?hs():gs(typeof e==`string`?fs(e):e,t.onWriteError)}function xs(e){let t={...Wr(e.observability),detect:I(e.guardrails).detect};return e.override?{policy:t,sink:gs(e.override,t.onWriteError)}:t.record?{policy:t,sink:ys(bs(t.writeTo,t),t.sampleRate)}:{policy:t,sink:hs()}}async function Ss({name:e,attributes:t,traceparent:n,metadata:r,writer:i},a){let o=Jt(e,{kind:`CLIENT`,attributes:t,...n?{traceparent:n}:{}}),{sink:s,policy:c}=xs(i);try{let e=await a(o.root);return o.root.end({code:`OK`}),e}catch(e){throw xe(o.root,e),e}finally{await ms(s,o.collect(),c,r)}}var Cs={invalid_config:`config`,invalid_request:`request`,invalid_input:`input`,not_allowed:`action`,authentication:`auth`,permission:`auth`,rate_limited:`rate_limit`,busy:`busy`,unsupported:`unsupported`,unavailable:`unavailable`,network:`network`,timeout:`timeout`,cancelled:`cancelled`,malformed_response:`bad_response`,refused:`safety`,blocked:`blocked`,disclosure_blocked:`blocked`,declined:`declined`,failed:`failed`,internal:`internal`},ws={config:`invalid_config`,request:`invalid_request`,input:`invalid_input`,action:`not_allowed`,auth:`authentication`,rate_limit:`rate_limited`,busy:`busy`,unsupported:`unsupported`,unavailable:`unavailable`,bad_response:`malformed_response`,network:`network`,timeout:`timeout`,safety:`refused`,blocked:`blocked`,declined:`declined`,failed:`failed`,cancelled:`cancelled`,internal:`internal`},q=class extends B{code;status;constructor(e,t,n,r){super(Cs[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 B(`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 B(`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(V(e.signal),e.model!==void 0)throw new q(`invalid_request`,`Decision requests do not select a model; the profile runs its one model`);if(e.state===null||!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=W(`decision.box_image`,{image:t?.[n]?n:`\`${n}\``});return{type:`box`,instructions:typeof r==`string`?`${r} ${i}`:[r,i]}}var Ls=/^[A-Za-z0-9+/]+={0,2}$/;function Rs(e){if(!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=wt(e);return new q(t===`auth`&&G(e)&&e.status===403?`permission`:ws[t],e instanceof B?e.message:W(`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){V(i.signal);let s=e.providers.require(r.provider,r.apiId);await Bs(t,n,r.provider,i,a.assets),V(i.signal);try{let e=await Zo(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`,W(`provider.decision_model_missing`));return{...e,answers:As(e.answers,i.questions)}}catch(e){throw i.signal?.aborted?new q(`cancelled`,W(`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 Ss({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 B(`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 B(`request`,`Profile ${e.id} does not allow model selection`);let r=e.models[n];if(!r)throw new B(`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 B(`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 B(`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 B(`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 B(`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 B(`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 B(`bad_response`,`Embedding provider returned invalid vector metadata`);if(e.values.some(e=>!Number.isFinite(e)))throw new B(`bad_response`,`Embedding provider returned a non-finite vector value`);return e});return{...e,embeddings:n}}async function tc(e,t,n={}){V(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,et(s,a).embeddingLimits?.(a.apiId));let c=Zo(s,a,`embedding`,n,{...t.signal?{signal:t.signal}:{}});return await Ss({name:`embed ${a.apiId}`,attributes:{"gen_ai.operation.name":`embeddings`,"gen_ai.provider.name":a.provider,"gen_ai.agent.name":r.id,"gen_ai.request.model":a.apiId,"theorem.model.id":i,"theorem.embedding.inputs":o.length,...t.task?{"theorem.embedding.task":t.task}:{}},traceparent:t.traceparent,metadata:t.metadata,writer:{override:n.sink,observability:r.observability,guardrails:r.guardrails}},async()=>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 B(`unsupported`,W(`provider.turn_profile`));let o=a.models[n??a.defaultModel];if(!o)throw new B(`config`,W(`provider.model_binding_missing`));return $o(a.providerContinuation,i?.providerState,i?.input?.history),{complete:ss(e.providers.require(o.provider,o.apiId),structuredClone(o),a.type,r,i?.providerState,a.providerContinuation,i?.input?.history).complete,forProfile:(t,n,i)=>nc(e,t,n,r,i)}}function rc(e,t){return{complete(){throw new B(`unsupported`,W(`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(tt(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`||Ye(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(W(`compaction.tool_result`,{tool:i??``,result:a},n)),...e]});continue}let i=(t.tool_calls??[]).map(e=>hc(W(`compaction.tool_call`,{tool:e.function.name,arguments:e.function.arguments},n))),s=[...e,...i];(t.content||s.length!==0)&&o.push({role:t.role,...t.content?{content:t.content}:{},...s.length>0?{parts:s}:{},...t.name?{name:t.name}:{}})}return{history:o,droppedMedia:i}}function _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=[$t.canary_leak],bc=3,xc=120,Sc=`detect.`;function Cc(e,t,n){let r=vc[e.rule];if(r)return W(r,{},n);let i=e.rule.startsWith(Sc)?e.rule.slice(7):e.rule;if(yn(i))return t.hints?.[i]??W(`detect.hint.${i}`,{},n);let a=t.host?.find(({id:e})=>e===i),o=a?.label??e.label??i;return a?.hint??W(`detect.hint.own`,{label:o},n)}function 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?W(`egress.rejection_found`,{hint:r,matches:i.join(`, `)},n):r});return W(`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 V(r),e}V(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(V(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=Ct(`injected`,I(a).detect),_=h.inject.map(e=>({...e,messages:Qn(e.messages,g)})),v=g.found(),y=It(`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;V(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:an(),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 B(`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(e){return new B(`internal`,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:Ge.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(`Tool operation value has a cycle`);let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null)throw X(`Tool operation value holds an object that is not plain data`);if(Object.hasOwn(e,`__proto__`))throw X(`Tool operation value has an own __proto__ key`);t.add(e);try{if(Array.isArray(e))return e.map(n);let t=Object.entries(Object.getOwnPropertyDescriptors(e)),r=t.find(([,e])=>e.get||e.set);if(r)throw X(`Tool operation value has a getter or setter at '${r[0]}'`);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 B(`unavailable`,W(`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){V(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(`The tool coordinator's begin returned no claim`);return this.claim={...t,claimToken:n.claimToken},V(this.signal),this.claim}observe(e){if(e.type!==`tool`)return!0;if(e.tool.phase===`complete`||e.tool.phase===`error`)return this.terminal={...e,tool:e.tool},!1;if(this.claim&&e.tool.phase===`gate`)throw vl();return!0}async finish(e){if(e.gated){if(this.claim)throw vl();return}if(!this.terminal)throw X(`The tool run ended with no terminal event`);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(`The tool coordinator's saved outcome is another operation's`);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);V(r);let l=await e.lookup(s);if(V(r),l?.kind===`running`||l?.kind===`uncertain`)throw vl();if(l?.kind===`settled`){if(!a)throw X(`A settled tool operation has no replay check`);let e=c.replay(new _l(l.outcome));return await a(e),V(r),yield e.event,e.replay}let u=i(e=>c.beginBody(e));try{for(;;){let e=await u.next();if(e.done){let t=await c.finish(e.value);return t&&(yield t),e.value}c.observe(e.value)&&(yield e.value)}}catch(e){if(e instanceof _l){if(!a)throw X(`A settled tool operation has no replay check`);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 z(e,{phase:`progress`,data:t.data}):t.kind===`draft`?yield z(e,{phase:`draft`,text:t.text}):t.kind===`trace`?yield z(e,{phase:`trace`,step:t.step}):t.kind===`artifact`?yield z(e,{phase:`artifact`,artifact:t.artifact}):t.kind===`warning`&&(yield z(e,{phase:`warning`,warning:t.warning}))}var 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 z(this.base,{phase:`draft`,text:e}))}async*draft(e){let t=await this.drafts?.read(e);t&&(yield z(this.base,{phase:`draft`,text:t}))}*shown(e){let t=this.checks;if(!t)return{shown:!0,value:e};let n=ft(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:$e(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=vt(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:Ia},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()+Ma;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?Va(n.headers,a):void 0;o!==void 0&&(i.heldUntil=Math.max(i.heldUntil,a+o));for(let e of i.waiting)e()}}}if(o>a&&o!==1/0)return{full:!0,limit:t,opensInMs:o-e};if(e>=a)return{full:!0,limit:t,opensInMs:void 0};await 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:W(`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 z(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:W(`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:W(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`?W(`sign_in.pending`,{service:e.gate.authChallenge.service},e.labels):void 0;return yield z(e.base,{phase:`gate`,gate:e.gate,...t?{readBack:t}:{}}),t}function 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:$e(i),resolveHost:i.resolveHost},await r.clientSecret?.(n.clientId))}catch(n){return yield{...z(a,{phase:`progress`,data:{kind:`auth_token_refresh_failed`,slot:s}}),errorInternal:We(n)},lu(e,t,`Failed to refresh OAuth token for '${e}' (slot: '${s}').`,o,c)}await r.set(s,l),yield z(a,{phase:`progress`,data:{kind:`auth_token_refreshed`,slot:s}})}else if(u)return 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=ut(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 z(i,{phase:`progress`,data:u}),Z({code:`out_of_scope`,kind:`auth`,message:W(`sign_in.out_of_scope`,{service:a.service},r.profile.labels)},!1)}async function*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}var ju={network:`network_error`,cancelled:`cancelled`,timeout:`timeout`};function*Mu(e,t){if(wt(e)===`blocked`){let n=nt();return t.record(n),Z(yield*Ae(e,n),!1)}let n=wt(e);return Z({code:ju[n]??`request_failed`,kind:n,message:We(e)},!1)}var Nu=`[omitted - credential]`,Pu=2e3;async function*Fu(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 Iu(e,t){let n=Fu(e,t),r=``;for(;;){let e=await n.next();if(e.done)return e.value?r:void 0;r+=e.value}}async function*Lu(e,t,n,r){let i=Fu(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?Bu(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 Ru(e){return e.length>Pu?`${e.slice(0,Pu)}…`:e}function zu(e,t){return{code:`response_too_large`,kind:`bad_response`,message:`Response from ${e} is larger than ${t} bytes`}}function Bu(e,t){return e.replaceAll(t,Nu)}function Vu(e,t){return Tn(e,e=>Bu(e,t))}function Hu(e,t){return{...e,message:Bu(e.message,t),...e.details===void 0?{}:{details:Vu(e.details,t)}}}function Uu(e,t){if(!t)return e;if(e.kind===`ok`){let n=Vu(e.outputRaw,t);return{kind:`ok`,outputRaw:n,modelResult:xu(bu(n),e.modelResult.parts)}}return e.kind===`failed`?{...e,failure:Hu(e.failure,t)}:e}function Wu(e,t){if(e&&!Kl(e,t))return`The OAuth token for "${e}" cannot be sent to "${t.origin}${t.pathname}"`}async function*Gu(e,t,n){let r=Wu(e.audience,t);return r?Z({code:`credential_audience_mismatch`,kind:`config`,message:r},!0):Uu(yield*n(ou(t,e.query)),e.secret)}async function*Ku(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:We(e)},!0)}let d=yield*ot(u.url,n,i?.span);return d.ok?(yield*h(e,c,n,r,a),yield*Gu(l,d.url,t=>Yu(e,t,u.body,l,n,r,i?.span,o))):Z(d.failure,!0)}function qu(e){if(!e.ok)return!1;let t=e.headers.get(`content-type`)??``;return t===``||t.startsWith(`text/`)||/[/+]json\b/.test(t)}async function*Ju(e,t,n,r){return!t||!qu(e)?await Iu(e,r):yield*Lu(e,t,n,r)}async function*Yu(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(ud(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:$e(a),followRedirects:!0,...e.access===`read-only`?{fetchFn:Ha(fetch)}:{},originBoundHeaders:{...e.headers,...r},resolveHost:a.resolveHost,onCheck:l.onCheck})),m=yield*Ju(p,c,i,e.maxResponseBytes);if(m===void 0)return Z(zu(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:dd(p.status),message:`HTTP ${p.status} from ${t.hostname}: ${Ru(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(Xu(t.hostname,e.timeoutMs),!1):yield*Mu(n,l)}finally{l.record()}}function Xu(e,t){return{code:`timeout`,kind:`timeout`,message:`${e} did not answer within ${t} ms`}}var Zu=[`2026-07-28`,`2025-11-25`,`2025-06-18`,`2025-03-26`];function Qu(e){return{"io.modelcontextprotocol/protocolVersion":e,"io.modelcontextprotocol/clientCapabilities":{}}}function $u(e){let t=e.trim();if(t.startsWith(`{`))return JSON.parse(t);let n=[];for(let t of e.split(`
|