@robota-sdk/agent-cli 3.0.0-beta.1 → 3.0.0-beta.100
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/CHANGELOG.md +2998 -0
- package/LICENSE +661 -21
- package/README.md +527 -170
- package/bin/agent.cjs +39 -0
- package/dist/node/artifact-DrPhOb_v.d.ts +749 -0
- package/dist/node/artifact-DrPhOb_v.d.ts.map +1 -0
- package/dist/node/bin.js +35 -9
- package/dist/node/bounded-output-BdWv9SX3-28em7iHq.js +2 -0
- package/dist/node/bounded-output-BdWv9SX3-28em7iHq.js.map +1 -0
- package/dist/node/bounded-output-BdWv9SX3-C4ucXwLR.js +2 -0
- package/dist/node/cli-core-QK7sBRp8.js +2920 -0
- package/dist/node/command-executor-D_UBZHxh-CVZipoOV.js +2 -0
- package/dist/node/command-executor-D_UBZHxh-CVZipoOV.js.map +1 -0
- package/dist/node/command-executor-D_UBZHxh-D7UrdAlN.js +2 -0
- package/dist/node/desktop-host.d.ts +53 -0
- package/dist/node/desktop-host.d.ts.map +1 -0
- package/dist/node/desktop-host.js +2 -0
- package/dist/node/desktop-host.js.map +1 -0
- package/dist/node/headless.js +4 -0
- package/dist/node/host.d.ts +3 -0
- package/dist/node/host.js +1 -0
- package/dist/node/http-executor-ADn4locH-D-8crzF8.js +2 -0
- package/dist/node/http-executor-ADn4locH-D-8crzF8.js.map +1 -0
- package/dist/node/http-executor-ADn4locH-uz5KV6N-.js +2 -0
- package/dist/node/index.d.ts +790 -49
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +6 -13
- package/dist/node/index.js.map +1 -0
- package/dist/node/node-BRvqhy29.js +165 -0
- package/dist/node/node-BRvqhy29.js.map +1 -0
- package/dist/node/node-BTKWbzr0.js +15 -0
- package/dist/node/node-BZfTvzcV.js +15 -0
- package/dist/node/node-BZfTvzcV.js.map +1 -0
- package/dist/node/node-CdgadDFa.js +2 -0
- package/dist/node/node-CdgadDFa.js.map +1 -0
- package/dist/node/node-aM3G__lp.js +2 -0
- package/dist/node/node-zABT8WBL.js +165 -0
- package/dist/node/product-host-CwqVX6Xg.js +2954 -0
- package/dist/node/product-host-CwqVX6Xg.js.map +1 -0
- package/dist/node/product-host-DYR8lHfh.d.ts +4691 -0
- package/dist/node/product-host-DYR8lHfh.d.ts.map +1 -0
- package/dist/node/rolldown-runtime-C9xYM0wc.js +1 -0
- package/dist/node/rolldown-runtime-DK3Fl9T5-BeX3Bzvn.js +2 -0
- package/dist/node/rolldown-runtime-DK3Fl9T5-DK3Fl9T5.js +2 -0
- package/dist/node/rolldown-runtime-DK3Fl9T5-DK3Fl9T5.js.map +1 -0
- package/dist/node/rolldown-runtime-rs7quPpn.js +2 -0
- package/dist/node/verdict-decoder-Dz_rjoIZ-DA8BKB83.js +2 -0
- package/dist/node/verdict-decoder-Dz_rjoIZ-DA8BKB83.js.map +1 -0
- package/dist/node/verdict-decoder-Dz_rjoIZ-qM0jJVsB.js +2 -0
- package/dist/web/app-sandbox.html +145 -0
- package/dist/web/assets/PretendardVariable.subset.0-BHUkWNFR.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.1-C-__qv6_.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.10-DzSWztS8.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.11-CqVmlKJn.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.12-BHuZSgT0.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.13-C42mj_j2.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.14-Bl512uUX.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.15-D04iXIE3.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.16-BQUnS2GX.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.17-BfZSA-Xc.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.18-CwAxMC3C.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.19-CJu4Zcdo.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.2-dCZkyKLw.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.20-Ig1-z3n5.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.21-yKPEdLXC.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.22-CSqxKoOs.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.23-DK80wi0t.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.24-CmkE8Q8D.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.25-CsoWBIZB.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.26-Sozl8dw8.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.27-CT6nuW9L.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.28-CpO0Y96p.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.29-D6hjrUWm.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.3-Dqw33sf4.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.30-CWDM1c0J.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.31-CdmyZ5mm.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.32-CGnFWD2i.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.33--0OT__YQ.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.34-CaCS33Md.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.35-DWFYRGLp.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.36-Dn5IBRQB.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.37-BD6FyOtY.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.38-D4hu443z.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.39-B_7wfth9.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.4-Bvh2YGoc.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.40-BDaOfdUe.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.41-BUACvzZC.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.42-Dp-5mnyL.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.43-DHdpry7N.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.44-qHopVhdd.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.45-BniyRFfm.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.46-BMRq7xC-.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.47-B-cWO2pw.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.48-Ct-fWrPO.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.49-BblQVys9.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.5-K_MNGNCe.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.50-C8IyFH7L.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.51-Bxd0gTAs.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.52-CNgqKOOJ.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.53-BSRnyb-u.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.54-Dt2-cQkx.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.55-jFgflYjX.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.56-BwZdvJZQ.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.57-BwFDg-Fs.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.58-DlucQts_.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.59-CMkWjhdo.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.6-Bxhohlcm.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.60-CeHezjjf.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.61-PUuTnod4.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.62-DGSAWCfb.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.63-B35xsm4O.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.64-CTbrgYF9.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.65-B66rjuyf.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.66-C3HqaDeY.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.67-BmuXdlDy.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.68-DS9B48d0.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.69-YT16ymcp.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.7-E2HaA55t.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.70-BUXiAGMT.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.71-DuPZj8us.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.72-pYYGrEQR.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.73-DMrK970F.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.74-D4tQnymK.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.75-CxKdrRNf.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.76-DhPm2b_q.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.77-DwaxqOC8.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.78-DhqRbBzT.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.79-XpoyPP38.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.8-CRbJhhyA.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.80-DsV9Qp_h.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.81-BZzF9Hb3.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.82-BgAHe30u.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.83-DF-zBLLe.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.84-Brb8EsYQ.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.85-Byo_x2hf.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.86-XG7lTN_6.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.87-Lzui2vbK.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.88-CqX6JSgh.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.89-DOzqWPpX.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.9-Btb3bmS6.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.90-BF7RiZjm.woff2 +0 -0
- package/dist/web/assets/PretendardVariable.subset.91-Csm0YNoH.woff2 +0 -0
- package/dist/web/assets/index-2GhVGsHN.js +314 -0
- package/dist/web/assets/index-BSxTg2Py.css +1 -0
- package/dist/web/index.html +15 -0
- package/package.json +203 -34
- package/scripts/koffi-bun-plugin.mjs +116 -0
- package/scripts/native-build.d.mts +19 -0
- package/scripts/native-build.mjs +72 -0
- package/scripts/qualify-koffi-gc.mjs +28 -0
- package/dist/node/bin.cjs +0 -1185
- package/dist/node/bin.d.cts +0 -1
- package/dist/node/bin.d.ts +0 -1
- package/dist/node/chunk-C56WFH5S.js +0 -1163
- package/dist/node/index.cjs +0 -1202
- package/dist/node/index.d.cts +0 -49
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/cli.ts","../../src/cli-entry.ts","../../src/hosted/hosted-runtime-controller.ts","../../src/hosted/hosted-runtime-admission.ts","../../../agent-organization/dist/node/index.d.ts","../../../agent-organization-host/dist/node/index.d.ts","../../src/hosted/hosted-organization-control.ts","../../src/hosted/e2b-organization-inventory.ts","../../src/hosted/hosted-organization-payloads.ts","../../src/hosted/hosted-organization-gateway.ts","../../src/hosted/hosted-organization-model.ts","../../src/hosted/hosted-organization-token-counter.ts","../../src/hosted/e2b-worker-process.ts","../../src/hosted/e2b-task-worker.ts","../../src/hosted/hosted-worker-execution-config.ts","../../src/hosted/e2b-worker-provisioning.ts","../../../agent-transport/dist/node/node.d.ts","../../src/hosted/desktop/authorization.ts","../../src/hosted/desktop/authority-store.ts","../../src/hosted/desktop/worker-port.ts","../../src/hosted/desktop/gateway.ts"],"mappings":"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"}
|
package/dist/node/index.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
Session,
|
|
9
|
-
SessionStore,
|
|
10
|
-
TRUST_TO_MODE,
|
|
11
|
-
query,
|
|
12
|
-
startCli
|
|
13
|
-
};
|
|
1
|
+
import{C as e,E as t,S as n,T as r,_ as i,b as a,c as o,d as s,f as c,g as l,h as u,l as d,m as f,n as p,p as m,r as h,t as g,u as _,v,w as y,x as b,y as x}from"./product-host-CwqVX6Xg.js";import"node:module";import{createHash as S,createPublicKey as C,randomBytes as w,randomUUID as T,verify as E}from"node:crypto";import{isAbsolute as ee,join as D,posix as O}from"node:path";import"node:child_process";import{open as k,realpath as te,rename as ne,stat as re,unlink as ie}from"node:fs/promises";import{closeSync as ae,constants as A,existsSync as oe,fstatSync as se,fsyncSync as ce,lstatSync as le,mkdirSync as ue,openSync as de,readFileSync as fe,realpathSync as pe,renameSync as me,rmdirSync as he,unlinkSync as ge,writeFileSync as _e}from"node:fs";import{isIP as ve}from"node:net";import{ServerResponse as ye}from"node:http";import{performance as j}from"node:perf_hooks";import{WebSocket as M,WebSocketServer as be}from"ws";var N=class extends Error{reason=`invalid-schema`;constructor(){super(`Invalid organization schema`)}};function xe(e){for(let t of e){let e=t.codePointAt(0);if(e>=55296&&e<=57343)throw new N}}function Se(e){let t=new Set,n=0;function r(e,i){if(++n>4096||i>32)throw new N;if(e===null||typeof e==`boolean`)return JSON.stringify(e);if(typeof e==`string`)return xe(e),JSON.stringify(e);if(typeof e==`number`){if(!Number.isSafeInteger(e)||Object.is(e,-0))throw new N;return JSON.stringify(e)}if(typeof e!=`object`||t.has(e))throw new N;t.add(e);try{if(Array.isArray(e)){if(Reflect.ownKeys(e).length!==e.length+1)throw new N;return`[${Array.from({length:e.length},(t,n)=>{let a=Object.getOwnPropertyDescriptor(e,String(n));if(a===void 0||!(`value`in a))throw new N;return r(a.value,i+1)}).join(`,`)}]`}if(Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw new N;let t=Reflect.ownKeys(e);if(t.some(e=>typeof e!=`string`))throw new N;return`{${t.sort().map(t=>{xe(t);let n=Object.getOwnPropertyDescriptor(e,t);if(!n.enumerable||!(`value`in n))throw new N;return`${JSON.stringify(t)}:${r(n.value,i+1)}`}).join(`,`)}}`}finally{t.delete(e)}}let i=r(e,0);if(new TextEncoder().encode(i).byteLength>64*1024)throw new N;return i}function Ce(e,t){if(Se(e),typeof e!=`object`||!e||Array.isArray(e))throw new N;let n=e;if(Object.keys(n).length!==t.length||t.some(e=>!Object.hasOwn(n,e)))throw new N;return n}function P(e,t=0){if(typeof e!=`number`||!Number.isSafeInteger(e)||Object.is(e,-0)||e<t)throw new N;return e}function we(e){let t=Ce(e,[`tokens`,`timeMs`,`costMicros`]);return Object.freeze({tokens:P(t.tokens),timeMs:P(t.timeMs),costMicros:P(t.costMicros)})}var F=class extends Error{reason;constructor(e){super(`Organization operation refused: ${e}`),this.reason=e}};function I(e){try{return Se(e)}catch(e){throw e instanceof N?new F(`invalid-schema`):e}}function Te(e,t){if(![`workload`,`request`,`approval`].includes(e))throw new F(`invalid-schema`);return Buffer.from(I([`robota/organization-${e}/v1`,t]),`utf8`)}function L(e){return S(`sha256`).update(I([`robota/organization-operation/v1`,e.grantId,e.tenant,e.task,e.actor,e.audience,e.epoch,e.operation]),`utf8`).digest(`hex`)}function R(e,t){if(I(e),typeof e!=`object`||!e||Array.isArray(e))throw new F(`invalid-schema`);let n=e;if(Object.keys(n).length!==t.length||t.some(e=>!Object.hasOwn(n,e)))throw new F(`invalid-schema`);return n}function z(e){if(typeof e!=`string`||e.length<1||e.length>256||[...e].some(e=>{let t=e.codePointAt(0);return t<32||t===127||t>=55296&&t<=57343}))throw new F(`invalid-schema`);return e}function B(e,t=0){if(typeof e!=`number`||!Number.isSafeInteger(e)||Object.is(e,-0)||e<t)throw new F(`invalid-schema`);return e}function V(e){try{return we(e)}catch(e){throw e instanceof N?new F(`invalid-schema`):e}}function Ee(e){let t=R(e,[`value`,`usage`]);return Object.freeze({value:H(JSON.parse(I(t.value))),usage:V(t.usage)})}function De(e){if(typeof e!=`string`||e.length>4096||!e.startsWith(`-----BEGIN PUBLIC KEY-----`))throw new F(`invalid-schema`);try{let t=C(e);if(t.asymmetricKeyType!==`ed25519`)throw Error(`wrong type`);return t}catch{throw new F(`invalid-proof`)}}function H(e){if(typeof e==`object`&&e){for(let t of Object.values(e))H(t);Object.freeze(e)}return e}function Oe(e){if(e.version!==1||B(e.expiresAt,1)<=B(e.notBefore))throw new F(`invalid-schema`);B(e.epoch,1)}function ke(e){let t=R(e,[`version`,`grantId`,`tenant`,`task`,`actor`,`audience`,`epoch`,`nonce`,`notBefore`,`expiresAt`,`operation`]);Oe(t);let n=R(t.operation,[`idempotencyKey`,`resource`,`operation`,`environment`,`parameters`]);return Object.freeze({version:1,grantId:z(t.grantId),tenant:z(t.tenant),task:z(t.task),actor:z(t.actor),audience:z(t.audience),epoch:B(t.epoch,1),nonce:z(t.nonce),notBefore:B(t.notBefore),expiresAt:B(t.expiresAt,1),operation:Object.freeze({idempotencyKey:z(n.idempotencyKey),resource:z(n.resource),operation:z(n.operation),environment:z(n.environment),parameters:H(JSON.parse(I(n.parameters)))})})}function Ae(e){let t=R(e,[`version`,`id`,`tenant`,`task`,`actor`,`audience`,`epoch`,`environment`,`operationDigest`,`notBefore`,`expiresAt`]);if(Oe(t),typeof t.operationDigest!=`string`||!/^[a-f0-9]{64}$/.test(t.operationDigest))throw new F(`invalid-schema`);return Object.freeze({version:1,id:z(t.id),tenant:z(t.tenant),task:z(t.task),actor:z(t.actor),audience:z(t.audience),epoch:B(t.epoch,1),environment:z(t.environment),operationDigest:t.operationDigest,notBefore:B(t.notBefore),expiresAt:B(t.expiresAt,1)})}var je=class extends Error{constructor(){super(`Organization audit append conflict`)}};const Me=/^[0-9a-f]{64}$/,Ne=[`dispatch`,`complete`,`refused`,`unknown`];function Pe(e){return S(`sha256`).update(I(e),`utf8`).digest(`hex`)}function U(e){if(typeof e!=`string`||!Me.test(e))throw new F(`invalid-schema`);return e}function Fe(e,t){let n=R(e,[`version`,`stream`,`sequence`,`hash`]);if(n.version!==1||n.stream!==t)throw new F(`invalid-schema`);return Object.freeze({version:1,stream:t,sequence:B(n.sequence),hash:U(n.hash)})}function Ie(e){let t=R(e,[`phase`,`operationDigest`,`tenantDigest`,`taskDigest`,`actorDigest`,`grantDigest`,`epoch`]);if(typeof t.phase!=`string`||!Ne.includes(t.phase))throw new F(`invalid-schema`);return Object.freeze({phase:t.phase,operationDigest:U(t.operationDigest),tenantDigest:U(t.tenantDigest),taskDigest:U(t.taskDigest),actorDigest:U(t.actorDigest),grantDigest:U(t.grantDigest),epoch:B(t.epoch,1)})}function W(e,t){if(!Ne.includes(t))throw new F(`invalid-schema`);let n=ke(e),r=(e,t)=>Pe([`robota/organization-audit-identity/v1`,e,t]);return Object.freeze({phase:t,operationDigest:L(n),tenantDigest:r(`tenant`,[n.tenant]),taskDigest:r(`task`,[n.tenant,n.task]),actorDigest:r(`actor`,[n.tenant,n.actor]),grantDigest:r(`grant`,[n.grantId]),epoch:n.epoch})}function Le(e){return z(e),Object.freeze({version:1,stream:e,sequence:0,hash:Pe([`robota/organization-audit-genesis/v1`,e])})}function Re(e,t,n,r){return Pe([`robota/organization-audit-entry/v1`,z(e),B(t,1),U(n),Ie(r)])}function ze(e){return Buffer.from(I([`robota/organization-audit-checkpoint/v1`,Fe(e,z(e.stream))]),`utf8`)}function G(e,t,n){let r=R(e,[`claims`,`signature`]),i=Fe(r.claims,t);if(typeof r.signature!=`string`||!/^[A-Za-z0-9_-]{86}$/.test(r.signature))throw new F(`invalid-proof`);let a=Buffer.from(r.signature,`base64url`);if(a.length!==64||a.toString(`base64url`)!==r.signature||!E(null,ze(i),n,a)||i.sequence===0&&i.hash!==Le(t).hash)throw new F(`invalid-proof`);return Object.freeze({claims:i,signature:r.signature})}function Be(e,t){let n=R(e,[`stream`,`sequence`,`previous`,`event`,`hash`]),r=Ie(n.event);if(n.stream!==t.stream||n.sequence!==t.sequence+1||n.previous!==t.hash)throw new F(`invalid-proof`);let i=Re(t.stream,B(n.sequence,1),t.hash,r);if(n.hash!==i)throw new F(`invalid-proof`);return Object.freeze({stream:t.stream,sequence:n.sequence,previous:t.hash,event:r,hash:i})}function K(e,t){return e.stream===t.stream&&e.sequence===t.sequence&&e.hash===t.hash}function q(e,t,n){let r=R(e,[`entries`,`head`]);if(!Array.isArray(r.entries)||r.entries.length>128)throw new F(`invalid-schema`);let i=G(r.head,t.stream,n),a=t;for(let e of r.entries){let t=Be(e,a);a={version:1,stream:t.stream,sequence:t.sequence,hash:t.hash}}if(!K(a,i.claims))throw new F(`invalid-proof`);return i}function J(e,t){return new Promise((n,r)=>{let i=()=>{clearTimeout(o),t.removeEventListener(`abort`,a)},a=()=>{i(),r(new F(`policy-unavailable`))},o=setTimeout(()=>{i(),n()},e);t.addEventListener(`abort`,a,{once:!0}),t.aborted&&a()})}function Y(e){if(e.aborted)throw new F(`policy-unavailable`)}var Ve=class{stream;key;sink;anchor;timeout;constructor(e){if(this.stream=z(e.stream),this.key=De(e.publicKey),this.timeout=B(e.timeoutMs??1e3,1),this.timeout>3e4||typeof e.sink?.read!=`function`||typeof e.sink?.append!=`function`||typeof e.anchor?.load!=`function`||typeof e.anchor?.compareAndSet!=`function`)throw new F(`invalid-schema`);this.sink=Object.freeze({read:e.sink.read.bind(e.sink),append:e.sink.append.bind(e.sink)}),this.anchor=Object.freeze({load:e.anchor.load.bind(e.anchor),compareAndSet:e.anchor.compareAndSet.bind(e.anchor)})}async bounded(e,t){let n=new AbortController,r=()=>n.abort();t?.addEventListener(`abort`,r,{once:!0}),t?.aborted&&n.abort();let i,a=new Promise((e,t)=>{i=()=>t(new F(`policy-unavailable`)),n.signal.addEventListener(`abort`,i,{once:!0}),n.signal.aborted&&i()}),o=setTimeout(r,this.timeout);try{return await Promise.race([Promise.resolve().then(()=>(Y(n.signal),e(n.signal))),a])}catch{throw new F(`policy-unavailable`)}finally{clearTimeout(o),t?.removeEventListener(`abort`,r),n.signal.removeEventListener(`abort`,i),n.abort()}}async record(e,t){let n=Ie(e);await this.bounded(async e=>{let t=5;for(;;){Y(e);let r=G(await this.anchor.load(e),this.stream,this.key);Y(e);let i=q(await this.sink.read(r.claims,e),r.claims,this.key);if(Y(e),!K(i.claims,r.claims)){await J(t,e),t=Math.min(t*2,50);continue}let a;try{a=R(await this.sink.append(r.claims,n,e),[`entry`,`head`])}catch(n){if(Y(e),!(n instanceof je))throw n;await J(t,e),t=Math.min(t*2,50);continue}Y(e);let o=Be(a.entry,r.claims),s=G(a.head,this.stream,this.key);if(I(o.event)!==I(n)||!K(s.claims,{version:1,stream:o.stream,sequence:o.sequence,hash:o.hash}))throw new F(`invalid-proof`);let c=await this.anchor.compareAndSet(r.claims,s,e);if(Y(e),c!==!0)throw new F(`policy-unavailable`);return}},t)}async recover(e){return this.bounded(async e=>{let t=G(await this.anchor.load(e),this.stream,this.key);Y(e);let n=q(await this.sink.read(t.claims,e),t.claims,this.key);if(Y(e),K(n.claims,t.claims))return n.claims;let r=await this.anchor.compareAndSet(t.claims,n,e);if(Y(e),r!==!0)throw new F(`policy-unavailable`);return n.claims},e)}async verify(e){return this.bounded(async e=>{let t=5;for(;;){let n=G(await this.anchor.load(e),this.stream,this.key);Y(e);let r=q(await this.sink.read(n.claims,e),n.claims,this.key);if(Y(e),K(r.claims,n.claims))return n.claims;await J(t,e),t=Math.min(t*2,50)}},e)}};const He=[`budget-exhausted`,`not-authorized`,`invalid-schema`,`expired`,`revoked`,`operation-conflict`,`operation-pending`];function Ue(e){if(typeof e!=`string`||!He.includes(e))throw new F(`invalid-schema`);return e}var We=class extends F{usage;constructor(e,t){super(Ue(e)),this.usage=V(t)}};function Ge(e){let t=R(e,[`request`,`approval`]),n=R(t.request,[`claims`,`signature`]),r=t.approval===null?null:R(t.approval,[`claims`,`signature`]);if(typeof n.signature!=`string`||r!==null&&typeof r.signature!=`string`)throw new F(`invalid-proof`);return Object.freeze({request:Object.freeze({claims:ke(n.claims),signature:n.signature}),approval:r===null?null:Object.freeze({claims:Ae(r.claims),signature:r.signature})})}var Ke=class{audience;ledger;actions=new Map;interval;now;active=new Set;audit;auditReadiness;closed=!1;constructor(e){if(this.ledger=e.ledger,e.hosted===!0){if(this.ledger.verifyAnchoredAuthority(),!(e.audit instanceof Ve))throw new F(`policy-unavailable`);this.auditReadiness=e.audit.verify.bind(e.audit)}if(e.audit!==void 0){if(typeof e.audit?.record!=`function`)throw new F(`invalid-schema`);this.audit=Object.freeze({record:e.audit.record.bind(e.audit)})}if(this.audience=e.ledger.audience,this.interval=B(e.policyIntervalMs??100,1),this.interval>1e3)throw new F(`invalid-schema`);this.now=e.now??Date.now;for(let t of e.actions){let e=z(t.resource),n=z(t.operation),r=t.roles.map(z);if(r.length===0||new Set(r).size!==r.length||typeof t.requiresApproval!=`boolean`||typeof t.reserve!=`function`||typeof t.execute!=`function`)throw new F(`invalid-schema`);let i=I([e,n]);if(this.actions.has(i))throw new F(`invalid-schema`);this.actions.set(i,Object.freeze({resource:e,operation:n,roles:Object.freeze(r),requiresApproval:t.requiresApproval,reserve:t.reserve.bind(t),execute:t.execute.bind(t)}))}}async apply(e,t){if(this.closed)throw new F(`policy-unavailable`);if(t?.aborted||(await this.auditReadiness?.(t),this.closed||t?.aborted))throw new F(`not-authorized`);let n=Ge(e),{request:r,grant:i}=this.ledger.authenticate(n.request),a=this.actions.get(I([r.operation.resource,r.operation.operation]));if(a===void 0||!a.roles.includes(i.role))throw new F(`not-authorized`);let o=V(a.reserve(r.operation));if(B(o.timeMs,1),o.timeMs>2147483647)throw new F(`invalid-schema`);let s=this.ledger.reserve(n.request,o,n.approval,a.requiresApproval);if(s.kind===`complete`)return s.receipt;if(s.kind===`refused`)throw new F(s.reason);return this.execute(n.request,a,s,t)}async auditRecord(e,t,n){if(this.audit===void 0)return;let r,i=new Promise((e,t)=>{r=()=>t(new F(`outcome-unknown`)),n.addEventListener(`abort`,r,{once:!0}),n.aborted&&r()});try{if(await Promise.race([Promise.resolve().then(()=>{if(n.aborted)throw new F(`outcome-unknown`);return this.audit.record(W(e,t),n)}),i]),n.aborted)throw new F(`outcome-unknown`)}finally{n.removeEventListener(`abort`,r)}}async execute(e,t,n,r){let i=e.claims,a=new AbortController;this.active.add(a);let o=()=>a.abort();r?.addEventListener(`abort`,o,{once:!0}),(r?.aborted||this.closed)&&a.abort();let s=Math.min(n.reservation.timeMs,i.expiresAt-this.now(),n.grant.expiresAt-this.now()),c=setTimeout(o,Math.max(0,s)),l=setInterval(()=>{try{this.ledger.authenticate(e)}catch{a.abort()}},this.interval),u=j.now(),d;try{let r=new Promise((e,t)=>{d=()=>t(new F(`outcome-unknown`)),a.signal.addEventListener(`abort`,d,{once:!0}),a.signal.aborted&&d()}),o=Promise.resolve().then(async()=>{if(a.signal.aborted||(this.ledger.authenticate(e),await this.auditRecord(i,`dispatch`,a.signal),a.signal.aborted||j.now()-u>s))throw new F(`outcome-unknown`);return this.ledger.authenticate(e),t.execute(i.operation,{signal:a.signal,proof:e,operationDigest:n.digest,identity:n.grant,reservation:n.reservation})}),c=Ee(await Promise.race([o,r]));if(this.ledger.authenticate(e),a.signal.aborted||j.now()-u>s||(await this.auditRecord(i,`complete`,a.signal),this.ledger.authenticate(e),a.signal.aborted||j.now()-u>s))throw new F(`outcome-unknown`);let l=Ee({value:c.value,usage:{...c.usage,timeMs:Math.max(c.usage.timeMs,Math.ceil(j.now()-u))}});return this.ledger.settle(i,l),l}catch(e){if(e instanceof We&&!a.signal.aborted&&j.now()-u<=s){try{if(await this.auditRecord(i,`refused`,a.signal),a.signal.aborted||j.now()-u>s)throw new F(`outcome-unknown`);this.ledger.confirmNoEffect(i,Ue(e.reason),{...e.usage,timeMs:Math.max(e.usage.timeMs,Math.ceil(j.now()-u))})}catch{a.abort();try{this.ledger.markUnknown(i)}catch{}throw new F(`outcome-unknown`)}throw new F(e.reason)}a.abort();try{this.ledger.markUnknown(i)}catch{}try{await this.auditRecord(i,`unknown`,AbortSignal.timeout(1e3))}catch{}throw new F(`outcome-unknown`)}finally{clearTimeout(c),clearInterval(l),r?.removeEventListener(`abort`,o),d!==void 0&&a.signal.removeEventListener(`abort`,d),this.active.delete(a)}}close(){this.closed=!0;for(let e of this.active)e.abort()}},qe=class{ledger;audit;broker;inventory;incidents;timeout;timer;calls=new Map;sweepPending;closed=!1;quarantined=!1;constructor(e){this.ledger=e.ledger,this.audit=e.audit,this.broker=new Ke({ledger:e.ledger,audit:e.audit,actions:e.actions,hosted:!0,policyIntervalMs:e.policyIntervalMs});let t=e.policyIntervalMs??100;if(this.timeout=e.providerTimeoutMs??1e4,!Number.isSafeInteger(this.timeout)||this.timeout<1||this.timeout>3e4||typeof e.inventory?.list!=`function`||typeof e.inventory.terminate!=`function`||typeof e.incidentOwners?.report!=`function`||[`detection`,`containment`,`assessment`,`recovery`].some(t=>{let n=e.incidentOwners[t];return typeof n!=`string`||n.trim().length===0}))throw new F(`invalid-schema`);this.inventory=Object.freeze({list:e.inventory.list.bind(e.inventory),terminate:e.inventory.terminate.bind(e.inventory)}),this.incidents=Object.freeze({...e.incidentOwners,report:e.incidentOwners.report.bind(e.incidentOwners)}),this.timer=setInterval(()=>{this.sweep().catch(()=>void 0)},t),this.timer.unref()}identity(e,t,n){let r=this.ledger.currentGrant(e);if(r.tenant!==t.tenant||r.task!==t.task||r.actor!==t.actor||r.epoch!==n)throw new F(`not-authorized`);return r}async admit(e,t){if(this.closed||this.quarantined)throw new F(`policy-unavailable`);this.ledger.verifyAnchoredAuthority();let n=this.identity(e.grantId,e.identity,e.epoch);if(await this.audit.verify(t),!(await this.inventory.list(t===void 0?AbortSignal.timeout(this.timeout):AbortSignal.any([t,AbortSignal.timeout(this.timeout)]))).some(t=>t.resource===e.resource&&t.grantId===e.grantId&&t.epoch===e.epoch&&Object.entries(e.identity).every(([e,n])=>t.identity[e]===n))||this.closed||this.quarantined||t?.aborted)throw new F(`not-authorized`);return this.identity(e.grantId,e.identity,e.epoch),n}async apply(e,t,n){if(this.closed||this.quarantined)throw new F(`policy-unavailable`);let r=new AbortController,i=()=>{n?.()};r.signal.addEventListener(`abort`,i,{once:!0});let a=()=>r.abort();t?.addEventListener(`abort`,a,{once:!0}),t?.aborted&&r.abort(),this.calls.set(r,e.request.claims.grantId);try{return await this.broker.apply(e,r.signal)}catch(t){throw t instanceof F&&t.reason===`outcome-unknown`&&await this.incidents.report({kind:`unknown-effect`,resources:[e.request.claims.operation.resource],operationDigest:L(e.request.claims)}).catch(()=>void 0),t}finally{this.calls.delete(r),t?.removeEventListener(`abort`,a),r.signal.removeEventListener(`abort`,i)}}async afterWithdrawal(){await this.sweepPending?.catch(()=>void 0),await this.sweep()}async stopGrant(e){this.ledger.revokeGrant(e),await this.afterWithdrawal()}async stopTask(e,t){this.ledger.stopTask(e,t),await this.afterWithdrawal()}async stopTenant(e){this.ledger.stopTenant(e),await this.afterWithdrawal()}async emergencyStop(){this.ledger.emergencyStop(),await this.afterWithdrawal()}async reconcileExternalOperation(e,t,n){this.ledger.verifyAnchoredAuthority();let r=W(e,`complete`),i=await t.confirm(r.operationDigest,n);return await this.audit.record(r,n),this.ledger.reconcileExternalOperation(e,i)}sweep(){return this.sweepPending===void 0&&(this.sweepPending=this.sweepOnce().finally(()=>{this.sweepPending=void 0})),this.sweepPending}async sweepOnce(){let e=!this.closed&&!this.quarantined,t=this.closed||this.quarantined;try{this.ledger.verifyAnchoredAuthority(),await this.audit.verify(AbortSignal.timeout(this.timeout))}catch{t=!0}t&&!this.closed&&(this.quarantined=!0,this.broker.close());for(let[e,n]of this.calls)try{if(t)throw new F(`policy-unavailable`);this.ledger.currentGrant(n)}catch{e.abort()}let n;try{n=await this.inventory.list(AbortSignal.timeout(this.timeout))}catch{this.quarantined=!0,this.broker.close();for(let e of this.calls.keys())e.abort();throw await this.incidents.report({kind:`cleanup-unresolved`,resources:[]}),new F(`policy-unavailable`)}let r=n.filter(e=>{try{return t?!0:(this.identity(e.grantId,e.identity,e.epoch),!1)}catch{return!0}}),i=await Promise.allSettled(r.map(e=>this.inventory.terminate(e,AbortSignal.timeout(this.timeout)))),a=r.filter((e,t)=>i[t].status===`rejected`).map(e=>e.resource);if(t&&e&&await this.incidents.report({kind:`authority-unavailable`,resources:r.map(e=>e.resource)}),a.length>0)throw await this.incidents.report({kind:`cleanup-unresolved`,resources:a}),new F(`policy-unavailable`)}async close(){this.closed=!0,clearInterval(this.timer),this.broker.close();for(let e of this.calls.keys())e.abort();await this.afterWithdrawal()}};function Je(e){let t=y(e.controlPlane,`organization control plane`),n=y(e.tenant,`organization tenant`),i={apiKey:y(e.apiKey,`E2B management credential`),requestTimeoutMs:r(e.requestTimeoutMs??1e4,`E2B request timeout`,3e4),apiUrl:`https://api.e2b.app`,sandboxUrl:`https://sandbox.e2b.app`,domain:`e2b.app`,debug:!1,retries:0};function o(e){if(e.metadata.organizationControlPlane!==t||e.metadata.tenant!==n)throw Error(`Organization inventory ownership mismatch`);return Object.freeze({resource:y(e.sandboxId,`organization worker`),grantId:y(e.metadata.organizationGrant,`organization grant`),epoch:r(Number(e.metadata.epoch),`organization epoch`),identity:a({tenant:e.metadata.tenant,task:e.metadata.task,rootTask:e.metadata.rootTask,actor:e.metadata.actor,runtime:e.metadata.runtime})})}return{async list(e){e.throwIfAborted();let{Sandbox:r}=await l();e.throwIfAborted();let a=r.list({...i,query:{metadata:{organizationControlPlane:t,tenant:n},state:[`running`,`paused`]},limit:100}),s=[],c=new Set;for(;a.hasNext;){e.throwIfAborted();for(let t of await a.nextItems({...i,signal:e})){let e=o(t);if(c.has(e.resource)||s.length>=1e4)throw Error(`Organization inventory is incomplete`);c.add(e.resource),s.push(e)}}return s},async terminate(e,t){t.throwIfAborted();let{Sandbox:n,SandboxNotFoundError:r}=await l();t.throwIfAborted();let a;try{a=await n.getInfo(e.resource,{...i,signal:t})}catch(e){if(e instanceof r)return;throw Error(`Organization cleanup is unresolved`)}let s=o(a);if(s.grantId!==e.grantId||s.epoch!==e.epoch||Object.entries(e.identity).some(([e,t])=>s.identity[e]!==t))throw Error(`Organization cleanup ownership mismatch`);await n.kill(e.resource,i)}}}function Ye(e){let t=[...e.bindings],n=new Set,r=new Set,i=new Set;for(let a of t){if(!/^[A-Za-z0-9_-]{32,256}$/u.test(a.token)||n.has(a.token)||r.has(a.config.identity.runtime)||i.has(a.grantId))throw new F(`invalid-schema`);let t=e.ledger.currentGrant(a.grantId);if(t.scopes.length!==1||t.scopes[0].resource!==e.modelResource||t.scopes[0].operations.length!==1||t.scopes[0].operations[0]!==`generate`)throw new F(`not-authorized`);n.add(a.token),r.add(a.config.identity.runtime),i.add(a.grantId)}let a=t=>{let n=e.ledger.budgetState(`grant`,t.grantId);return{sessions:1,modelCalls:e.ledger.grantOperationCount(t.grantId),modelTokens:n.spent.tokens,costMicros:n.spent.costMicros}};return(n,r)=>{let i=new AbortController,o=()=>{r.writableFinished||i.abort()};r.once(`close`,o);let s=setTimeout(()=>{i.abort(),n.destroy(),r.destroy()},3e4),c=(e,t)=>{r.destroyed||r.writableEnded||(r.writeHead(e,{"content-type":`application/json`,"cache-control":`no-store`}),r.end(JSON.stringify(t)))};(async()=>{try{let o=new Set;for(let e=0;e<n.rawHeaders.length;e+=2){let t=n.rawHeaders[e].toLowerCase();if([`host`,`authorization`,`idempotency-key`,`content-type`,`content-length`,`transfer-encoding`,`origin`].includes(t)){if(o.has(t))throw new F(`invalid-schema`);o.add(t)}}if(n.method!==`POST`||n.headers.origin!==void 0||n.headers[`content-type`]!==`application/json`||n.headers[`content-encoding`]!==void 0)throw new F(`not-authorized`);let s=[],l=0;for await(let e of n){let t=Buffer.from(e);if(l+=t.length,l>4*1024*1024)throw new F(`invalid-schema`);s.push(t)}let u=Buffer.concat(s),d=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(u));if(!d||Array.isArray(d))throw new F(`invalid-schema`);let f=[`/v1/chat/completions`,`/v1/responses`].includes(n.url??``),p=f?t.find(e=>n.headers.authorization===`Bearer ${e.token}`):t.find(e=>d.identity?.runtime===e.config.identity.runtime);if(!p||p.expiresAt<=Date.now())throw new F(`expired`);let m=p.config;if(n.headers.host!==new URL(m.broker.endpoint).host||new URL(m.worker.endpoint).origin!==new URL(m.broker.endpoint).origin)throw new F(`not-authorized`);let h=await e.control.admit({resource:m.worker.resource,grantId:p.grantId,identity:m.identity,epoch:m.epoch},i.signal);if(!f){let e=n.url===new URL(m.worker.endpoint).pathname?`worker`:n.url===new URL(m.broker.endpoint).pathname?`broker`:void 0;if(!e||typeof d.nonce!=`string`||d.version!==3||d.role!==e||d.resource!==m[e].resource||d.epoch!==m.epoch||Object.entries(m.identity).some(([e,t])=>d.identity?.[e]!==t)||JSON.stringify(d.snapshot)!==JSON.stringify(m.snapshot)||JSON.stringify(d.limits)!==JSON.stringify(m.limits))throw new F(`not-authorized`);let t=Date.now(),r={version:3,identity:m.identity,role:e,resource:m[e].resource,nonce:d.nonce,epoch:m.epoch,issuedAt:t,expiresAt:Math.min(t+6e4,p.expiresAt,h.expiresAt),snapshot:m.snapshot,ready:!0,limits:m.limits,usage:e===`broker`?a(p):null},i={...r,signature:p.signAdmission(e,v(r))};x(i,m,e,d.nonce,Date.now()),c(200,i);return}let g=n.headers[`idempotency-key`];if(typeof g!=`string`||!/^[A-Za-z0-9_-]{1,128}$/u.test(g))throw new F(`invalid-schema`);let _=await e.payloads.put(h.id,u),y=Date.now(),b={version:1,grantId:h.id,tenant:h.tenant,task:h.task,actor:h.actor,audience:h.audience,epoch:h.epoch,nonce:T(),notBefore:y,expiresAt:Math.min(y+25e3,p.expiresAt,h.expiresAt),operation:{idempotencyKey:g,resource:e.modelResource,operation:`generate`,environment:`hosted`,parameters:{request:_,surface:n.url===`/v1/responses`?`responses`:`chat-completions`}}},S={claims:b,signature:p.signRequest(Te(`request`,b))};await e.payloads.recordOperation(b);let C=(await e.control.apply({request:S,approval:null},i.signal,()=>r.destroy())).value?.response;if(typeof C!=`string`)throw new F(`outcome-unknown`);let w=await e.payloads.get(h.id,C),E=JSON.parse(w.toString(`utf8`));if(d.stream===!0)if(r.writeHead(200,{"content-type":`text/event-stream`,"cache-control":`no-store`}),n.url===`/v1/responses`){let e=E.output;if(Array.isArray(e)){for(let t of e)if(t.type===`message`&&Array.isArray(t.content))for(let e of t.content)e.type===`output_text`&&typeof e.text==`string`&&r.write(`data: ${JSON.stringify({type:`response.output_text.delta`,delta:e.text})}\n\n`)}r.end(`data: ${JSON.stringify({type:`response.completed`,response:E})}\n\n`)}else{let e=E.choices;if(!Array.isArray(e))throw new F(`outcome-unknown`);r.write(`data: ${JSON.stringify({...E,object:`chat.completion.chunk`,choices:e.map(e=>({index:e.index,delta:{...e.message,...Array.isArray(e.message.tool_calls)?{tool_calls:e.message.tool_calls.map((e,t)=>({...e,index:t}))}:{}},finish_reason:null}))})}\n\n`),r.end(`data: ${JSON.stringify({...E,object:`chat.completion.chunk`,choices:e.map(e=>({index:e.index,delta:{},finish_reason:e.finish_reason}))})}\n\ndata: [DONE]\n\n`)}else c(200,E)}catch(e){r.headersSent?r.destroy():c(e instanceof F&&[`policy-unavailable`,`outcome-unknown`].includes(e.reason)?503:403,{error:{message:e instanceof F?e.message:`Organization ingress refused`,type:`organization_refusal`}}),n.resume()}finally{clearTimeout(s),r.removeListener(`close`,o)}})()}}var Xe=class e{directory;constructor(e){this.directory=e}static async open(t){if(!ee(t))throw new F(`policy-unavailable`);let n=await te(t),r=await re(n);if(!r.isDirectory()||r.mode&63||process.getuid!==void 0&&r.uid!==process.getuid())throw new F(`policy-unavailable`);return new e(n)}path(e,t){if(!/^[a-f0-9]{64}$/u.test(t))throw new F(`invalid-schema`);let n=S(`sha256`).update(e).digest(`hex`);return D(this.directory,`${n}-${t}.json`)}async put(e,t){if(t.length>4*1024*1024)throw new F(`invalid-schema`);let n=S(`sha256`).update(t).digest(`hex`),r=this.path(e,n);return await this.persist(r,t),n}async persist(e,t){let n=D(this.directory,`${T()}.tmp`);try{let r=await k(n,`wx`,384);try{await r.writeFile(t),await r.sync()}finally{await r.close()}await ne(n,e);let i=await k(this.directory,A.O_RDONLY);try{await i.sync()}finally{await i.close()}}catch{throw new F(`policy-unavailable`)}finally{await ie(n).catch(()=>void 0)}}async recordOperation(e){let t=L(e),n=await this.put(e.grantId,Buffer.from(JSON.stringify(e)));await this.persist(`${this.path(e.grantId,t)}.operation`,Buffer.from(JSON.stringify({requestDigest:n})))}async operation(e,t){let n=await k(`${this.path(e,t)}.operation`,A.O_RDONLY|A.O_NOFOLLOW|A.O_NONBLOCK);try{let r=await n.stat();if(!r.isFile()||r.size>4096||r.mode&63||process.getuid!==void 0&&r.uid!==process.getuid())throw new F(`policy-unavailable`);let i=JSON.parse(await n.readFile(`utf8`));if(typeof i.requestDigest!=`string`)throw new F(`policy-unavailable`);let a=JSON.parse((await this.get(e,i.requestDigest)).toString(`utf8`));if(W(a,`complete`),a.grantId!==e||L(a)!==t)throw new F(`policy-unavailable`);return a}finally{await n.close()}}async get(e,t){try{let n=await k(this.path(e,t),A.O_RDONLY|A.O_NOFOLLOW|A.O_NONBLOCK);try{let e=await n.stat();if(!e.isFile()||e.size>4*1024*1024||e.mode&63||process.getuid!==void 0&&e.uid!==process.getuid())throw Error(`unowned content`);let r=await n.readFile();if(S(`sha256`).update(r).digest(`hex`)!==t)throw Error(`changed content`);return r}finally{await n.close()}}catch{throw new F(`policy-unavailable`)}}};function Ze(e){let t=new URL(e.endpoint);if(t.protocol!==`https:`&&!(t.protocol===`http:`&&[`127.0.0.1`,`[::1]`].includes(t.hostname))||t.username||t.password||t.search||t.hash||typeof e.apiKey!=`string`||/[\r\n]/u.test(e.apiKey)||e.apiKey.length===0||!Number.isSafeInteger(e.maxInputBytes)||e.maxInputBytes<1||e.maxInputBytes>4*1024*1024||!Number.isSafeInteger(e.maxOutputTokens)||e.maxOutputTokens<1||!Number.isSafeInteger(e.costMicrosPerToken)||e.costMicrosPerToken<0||typeof e.countInputTokens!=`function`)throw new F(`invalid-schema`);let n=Object.freeze({...e.reservation}),r=e.countInputTokens.bind(e),i=e=>{let t=e;if(!t||Object.keys(t).sort().join(`,`)!==`request,surface`||typeof t.request!=`string`||!/^[a-f0-9]{64}$/u.test(t.request)||![`responses`,`chat-completions`].includes(String(t.surface)))throw new F(`invalid-schema`);return t};return{resource:e.resource,operation:`generate`,roles:[...e.roles],requiresApproval:!1,reserve:e=>(i(e.parameters),n),execute:async(a,o)=>{let s=i(a.parameters),c=await e.payloads.get(o.identity.id,s.request);if(c.length>e.maxInputBytes)throw new F(`invalid-schema`);let l=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(c));if(!l||Array.isArray(l)||l.model!==e.model)throw new F(`not-authorized`);let u={...l,stream:!1};if([`conversation`,`previous_response_id`,`prompt`].some(e=>u[e]!=null)||Array.isArray(u.tools)&&u.tools.some(e=>e?.type!==`function`))throw new We(`not-authorized`,{tokens:0,timeMs:0,costMicros:0});delete u.max_tokens,delete u.max_completion_tokens,delete u.max_output_tokens,delete u.stream_options,u[s.surface===`responses`?`max_output_tokens`:`max_completion_tokens`]=e.maxOutputTokens,u.store=!1,u.n=s.surface===`chat-completions`?1:void 0,s.surface===`responses`&&(delete u.n,u.background=!1);let d=JSON.stringify(u),f=await r(s.surface,JSON.parse(d),o.signal),p=f+e.maxOutputTokens;if(!Number.isSafeInteger(f)||f<0||!Number.isSafeInteger(p)||p>n.tokens||!Number.isSafeInteger(p*e.costMicrosPerToken)||p*e.costMicrosPerToken>n.costMicros)throw new We(`budget-exhausted`,{tokens:0,timeMs:0,costMicros:0});o.signal.throwIfAborted();let m=await fetch(`${t.href.replace(/\/$/u,``)}/${s.surface===`responses`?`responses`:`chat/completions`}`,{method:`POST`,redirect:`error`,signal:o.signal,headers:{authorization:`Bearer ${e.apiKey}`,"content-type":`application/json`,...e.providerIdempotency?{"Idempotency-Key":o.operationDigest}:{}},body:d});if(!m.ok||m.body===null)throw await m.body?.cancel(),new F(`outcome-unknown`);let h=[],g=0,_=m.body.getReader();try{for(;;){let e=await _.read();if(e.done)break;if(g+=e.value.length,g>4*1024*1024)throw new F(`outcome-unknown`);h.push(e.value)}}finally{await _.cancel()}let v=Buffer.concat(h),y=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(v))?.usage?.total_tokens;if(typeof y!=`number`||!Number.isSafeInteger(y)||y<0||y>n.tokens||!Number.isSafeInteger(y*e.costMicrosPerToken)||y*e.costMicrosPerToken>n.costMicros)throw new F(`outcome-unknown`);return{value:{response:await e.payloads.put(o.identity.id,v)},usage:{tokens:y,timeMs:0,costMicros:y*e.costMicrosPerToken}}}}}function Qe(e){let t=new URL(e.endpoint);if(t.protocol!==`https:`&&!(t.protocol===`http:`&&[`127.0.0.1`,`[::1]`].includes(t.hostname))||t.username||t.password||t.search||t.hash||typeof e.encode!=`function`||typeof e.apiKey!=`string`||e.apiKey.length===0||/[\r\n]/u.test(e.apiKey))throw new F(`invalid-schema`);let n=e.apiKey,r=e.encode.bind(e);return async(e,i,a)=>{let o=await fetch(t,{method:`POST`,redirect:`error`,signal:a,headers:{authorization:`Bearer ${n}`,"content-type":`application/json`},body:JSON.stringify(r(e,i))});if(!o.ok||o.body===null)throw await o.body?.cancel(),new F(`policy-unavailable`);let s=[],c=0,l=o.body.getReader();try{for(;;){let e=await l.read();if(e.done)break;if(c+=e.value.length,c>64*1024)throw new F(`policy-unavailable`);s.push(e.value)}}finally{await l.cancel()}let u=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(Buffer.concat(s)));if(!Number.isSafeInteger(u?.input_tokens)||u.input_tokens<0)throw new F(`policy-unavailable`);return u.input_tokens}}function $e(i,o,s){if(i.byteLength>48*1024*1024||S(`sha256`).update(i).digest(`hex`)!==o.digest)throw e(`filesystem checkpoint digest or size is invalid`);let c;try{c=t(JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(i)),`checkpoint`)}catch{throw e(`filesystem checkpoint is not valid UTF-8 JSON`)}if(n(c,[`version`,`id`,`identity`,`epoch`,`worker`,`files`,...c.version===2?[`session`]:[]],`checkpoint`),c.version!==1&&c.version!==2||c.id!==o.id)throw e(`filesystem checkpoint version or identity does not match`);let l=a(c.identity),u=r(c.epoch,`checkpoint epoch`),d=y(c.worker,`checkpoint worker`);if([`tenant`,`task`,`rootTask`].some(e=>l[e]!==s.identity[e])||l.runtime===s.identity.runtime||u>=s.epoch)throw e(`filesystem checkpoint requires the same task and a fresh identity/epoch`);if(!Array.isArray(c.files)||c.files.length>1e3)throw e(`filesystem checkpoint file inventory is invalid`);let p=new Set,m=0,h=c.files.map(r=>{let i=t(r,`checkpoint file`);n(i,[`path`,`base64`],`checkpoint file`);let a=y(i.path,`checkpoint file path`),o=a.split(`/`)[0];if(O.isAbsolute(a)||O.normalize(a)!==a||a===`.`||a===`..`||a.startsWith(`../`)||a.endsWith(`/`)||a.includes(`\\`)||o===`.home`||o===`.tmp`||p.has(a))throw e(`filesystem checkpoint path escapes or replaces private state`);if(typeof i.base64!=`string`||i.base64.length>44*1024*1024)throw e(`filesystem checkpoint file encoding is invalid`);let s=Buffer.from(i.base64,`base64`);if(m+=s.byteLength,s.toString(`base64`)!==i.base64||m>32*1024*1024)throw e(`filesystem checkpoint encoding or byte budget is invalid`);return p.add(a),Object.freeze({path:a,bytes:new Uint8Array(s)})});for(let t of p){let n=O.dirname(t);for(;n!==`.`;){if(p.has(n))throw e(`filesystem checkpoint file conflicts with a directory`);n=O.dirname(n)}}return Object.freeze({sourceWorker:d,sourceRuntime:l.runtime,sourceEpoch:u,files:h,...c.version===2?{session:f(c.session,`/`)}:{}})}var X=class extends Error{outcome;operationId;resource;constructor(e,t,n){super(`E2B worker provisioning ${e}; owner reconciliation is required`),this.outcome=e,this.operationId=t,this.resource=n,this.name=`E2BWorkerProvisioningError`}};async function et(t){let n=a(t.identity),i=r(t.epoch,`worker epoch`),o=y(t.templateId,`E2B clean template`),s=b(t.snapshot);if(s===null!=(t.checkpoint===void 0)||s?.id===o)throw e(`worker recovery requires checkpoint bytes and a separate clean template`);let c=s===null?void 0:$e(t.checkpoint,s,{identity:n,epoch:i}),u;try{u=new URL(t.brokerEndpoint)}catch{throw e(`worker broker endpoint is invalid`)}if(u.protocol!==`https:`&&!(u.protocol===`http:`&&[`127.0.0.1`,`[::1]`].includes(u.hostname))||u.username||u.password||u.search||u.hash)throw e(`worker broker endpoint requires owner-selected TLS or literal loopback`);let d={apiKey:y(t.apiKey,`E2B management credential`),requestTimeoutMs:r(t.requestTimeoutMs,`E2B request timeout`,3e4),apiUrl:`https://api.e2b.app`,sandboxUrl:`https://sandbox.e2b.app`,domain:`e2b.app`,debug:!1,retries:0},f=r(t.lifetimeMs,`E2B lifetime`,864e5),p=T(),h={...n,epoch:String(i),operationId:p,...t.organization===void 0?{}:{organizationControlPlane:y(t.organization.controlPlane,`organization control plane`),organizationGrant:y(t.organization.grantId,`organization grant`)},...s===null?{}:{restoreMode:`filesystem-v1`,checkpointId:s.id,checkpointDigest:s.digest,sourceWorker:c.sourceWorker,sourceRuntime:c.sourceRuntime,sourceEpoch:String(c.sourceEpoch)}};t.signal.throwIfAborted();let{Sandbox:g}=await l();t.signal.throwIfAborted();let _;try{_=await g.create(o,{...d,timeoutMs:f,metadata:h,envs:{},allowInternetAccess:!1,network:{allowPublicTraffic:!1,allowOut:[u.hostname]},lifecycle:{onTimeout:`kill`,autoResume:!1}})}catch{throw new X(`allocation-unknown`,p)}let v;try{v=y(_.sandboxId,`allocated worker`)}catch{throw new X(`allocation-unknown`,p)}let x,C=()=>(x===void 0&&(x=g.kill(v,d).then(()=>void 0).catch(()=>{throw new X(`cleanup-unresolved`,p,v)})),x);try{let n=await g.getInfo(v,d).catch(()=>{throw new X(`allocation-unknown`,p,v)});if(n.sandboxId!==v||Object.entries(h).some(([e,t])=>n.metadata[e]!==t))throw new X(`allocation-unknown`,p,v);if(v===c?.sourceWorker)throw e(`provider returned the checkpoint source instead of a fresh worker`);if(n.templateId!==o||n.state!==`running`||n.lifecycle?.onTimeout!==`kill`||n.lifecycle.autoResume!==!1||n.allowInternetAccess!==!1||n.network?.allowPublicTraffic!==!1||JSON.stringify(n.network.allowOut??[])!==JSON.stringify([u.hostname])||(n.volumeMounts?.length??0)!==0||n.network.egressProxy!==void 0||Object.keys(n.network.rules??{}).length!==0)throw e(`allocated worker ownership, clean template or network posture is invalid`);t.signal.throwIfAborted();let r=await _.commands.run(`umask 077; mktemp -d "\${TMPDIR:-/tmp}/agent-task-${p}-XXXXXXXXXX"`,{cwd:`/`,envs:{},timeoutMs:t.requestTimeoutMs,requestTimeoutMs:t.requestTimeoutMs});if(r.exitCode!==0||typeof r.stdout!=`string`)throw e(`fresh worker workspace creation failed`);let i=r.stdout.trim();if(!/^\/[A-Za-z0-9._/-]+$/u.test(i)||O.normalize(i)!==i||!RegExp(`^agent-task-${p}-[A-Za-z0-9]{10}$`,`u`).test(O.basename(i)))throw e(`fresh worker workspace receipt is invalid`);for(let n of c?.files??[]){t.signal.throwIfAborted();let r=O.join(i,n.path);await _.files.write(r,n.bytes.slice().buffer,{requestTimeoutMs:t.requestTimeoutMs});let a=await _.files.read(r,{format:`bytes`,requestTimeoutMs:t.requestTimeoutMs});if(!Buffer.from(a).equals(Buffer.from(n.bytes)))throw e(`restored filesystem checkpoint bytes do not match`)}let a;if(c?.session!==void 0){t.signal.throwIfAborted();let n={...c.session,cwd:i},r=m(n),o=O.join(i,`.home`,`.checkpoint-sessions`,`${n.id}.json`);await _.files.write(o,Uint8Array.from(r).buffer,{requestTimeoutMs:t.requestTimeoutMs});let s=await _.files.read(o,{format:`bytes`,requestTimeoutMs:t.requestTimeoutMs});if(!Buffer.from(s).equals(r))throw e(`restored conversation checkpoint bytes do not match`);a=Object.freeze({id:n.id,path:o,digest:S(`sha256`).update(r).digest(`hex`)})}return t.signal.throwIfAborted(),Object.freeze({resource:v,workspaceRoot:i,operationId:p,snapshot:s,release:C,...a===void 0?{}:{resumeSession:a}})}catch(n){throw n instanceof X&&n.outcome===`allocation-unknown`||(await C(),t.signal.aborted&&t.signal.throwIfAborted(),n instanceof Error&&n.message.startsWith(`Hosted runtime admission refused:`))?n:e(`fresh worker provisioning or filesystem restoration failed`)}}var Z=class extends Error{reason;constructor(e){super(`Remote desktop refused: ${e}`),this.reason=e}};function Q(e){return JSON.stringify([e.id,e.user,e.client,e.session,e.worker.resource,e.worker.grantId,e.worker.epoch,e.worker.identity.tenant,e.worker.identity.task,e.worker.identity.rootTask,e.worker.identity.actor,e.worker.identity.runtime])}var tt=class{options;url;now;bindings;constructor(e){if(this.options=e,this.url=o(e.publicUrl,`Desktop runtime`),o(e.issuer,`Desktop issuer`),this.now=e.now??Date.now,this.bindings=e.bindings.map(e=>{let t=structuredClone(e);return Object.freeze(t.worker.identity),Object.freeze(t.worker),Object.freeze(t)}),e.bindings.length===0||e.bindings.length>100||e.bindings.some(e=>[e.id,e.user,e.client,e.session].some(e=>typeof e!=`string`||e.length===0||e.length>256||/[\r\n]/u.test(e)))||new Set(e.bindings.map(e=>e.id)).size!==e.bindings.length)throw new Z(`owner-bindings`)}binding(e){let t=this.bindings.find(t=>t.id===e);if(!t)throw new Z(`owner-binding`);return t}async verify(e,t,n=!1,r){if(r?.throwIfAborted(),!this.bindings.some(e=>Q(e)===Q(t)))throw new Z(`owner-binding`);let i=await s({issuer:this.options.issuer,resource:n?`${this.url.href.replace(/\/$/u,``)}/approval`:this.url.href,algorithms:[`EdDSA`,`ES256`,`RS256`],allowedSubjects:[t.user],requiredScopes:n?[`desktop:approve`]:[`desktop:pair`,`desktop:drive`]},this.options.verifierDeps).verify(e);if(!i.admitted)throw new Z(i.refusal);let a=JSON.parse(Buffer.from(e.split(`.`)[1],`base64url`).toString(`utf8`)),o=this.now();if(typeof a.iat!=`number`||!Number.isSafeInteger(a.iat)||typeof a.exp!=`number`||!Number.isSafeInteger(a.exp)||a.iat*1e3>o||a.exp*1e3<=o||a.exp-a.iat>120||a.nbf!==void 0&&(typeof a.nbf!=`number`||!Number.isSafeInteger(a.nbf)||a.nbf*1e3>o)||typeof a.jti!=`string`||!/^[A-Za-z0-9_-]{8,256}$/u.test(a.jti))throw new Z(`short-lived-credential`);if(a.sub!==t.user||a.client_id!==t.client||a.tenant!==t.worker.identity.tenant||a.task!==t.worker.identity.task||a.session!==t.session||a.workload!==t.worker.identity.runtime||a.epoch!==t.worker.epoch)throw new Z(`session-ownership`);r?.throwIfAborted();let c=await this.options.control.admit(t.worker,r);return r?.throwIfAborted(),{binding:t,jti:a.jti,credentialExpiresAt:a.exp*1e3,expiresAt:Math.min(a.exp*1e3,c.expiresAt,o+6e4)}}async current(e,t){if(!this.bindings.some(t=>Q(t)===Q(e)))throw new Z(`owner-binding`);await this.options.control.admit(e.worker,t)}};const $=e=>S(`sha256`).update(e).digest(`hex`),nt=(e,t)=>e?.version===t.version&&e.ledger===t.ledger&&e.revision===t.revision&&e.digest===t.digest;var rt=class{now;directory;file;lock;constructor(e,t=Date.now){if(this.now=t,this.anchor=e.anchor,!ee(e.directory))throw new Z(`store-unavailable`);this.directory=pe(e.directory);let n=le(this.directory);if(!n.isDirectory()||n.mode&63||process.getuid!==void 0&&n.uid!==process.getuid())throw new Z(`store-unavailable`);if(this.file=D(this.directory,`desktop-authority.json`),this.lock=D(this.directory,`desktop-authority.lock`),e.create===!0){if(oe(this.file)||this.anchor.read()!==void 0)throw new Z(`store-unavailable`);this.locked(()=>this.write(void 0,{version:1,revision:1,spent:{},connections:{}}))}this.read()}anchor;head(e){return{version:1,ledger:this.anchor.ledger,revision:e.revision,digest:$(JSON.stringify(e))}}read(){let e=de(this.file,A.O_RDONLY|A.O_NOFOLLOW|A.O_NONBLOCK);try{let t=se(e);if(!t.isFile()||t.size>2*1024*1024||t.mode&63||process.getuid!==void 0&&t.uid!==process.getuid())throw new Z(`store-unavailable`);let n=JSON.parse(fe(e,`utf8`)),r=this.anchor.read();if(n.version!==1||!Number.isSafeInteger(n.revision)||n.revision<1||!n.spent||!n.connections||!nt(r,this.head(n)))throw new Z(`store-unavailable`);return n}finally{ae(e)}}locked(e){ue(this.lock,{mode:448});try{return e()}finally{he(this.lock)}}write(e,t){let n=D(this.directory,`desktop-${T()}.tmp`);try{let r=de(n,`wx`,384);try{_e(r,JSON.stringify(t)),ce(r)}finally{ae(r)}let i=this.head(t);if(this.anchor.compareAndSet(e===void 0?void 0:this.head(e),i),!nt(this.anchor.read(),i))throw new Z(`store-unavailable`);me(n,this.file);let a=de(this.directory,A.O_RDONLY);try{ce(a)}finally{ae(a)}}finally{oe(n)&&ge(n)}}change(e){return this.locked(()=>{let t=this.read(),n=structuredClone(t),r=e(n);return n.revision++,this.write(t,n),r})}pair(e,t,n,r){let i=w(32).toString(`base64url`),a=r?w(32).toString(`base64url`):null;return this.change(r=>{for(let[e,t]of Object.entries(r.spent))t<=this.now()&&delete r.spent[e];if(n<=this.now()||t.length===0||new Set(t.map(e=>e.id)).size!==t.length||t.some(e=>!Number.isSafeInteger(e.expiresAt)||e.expiresAt<n)||Object.keys(r.spent).length+t.length>4096||t.some(e=>r.spent[$(e.id)]!==void 0))throw new Z(`replayed-pairing`);let o=$(e);if(r.connections[o]===void 0&&Object.keys(r.connections).length>=100)throw new Z(`connection-capacity`);let s=(r.connections[o]?.generation??0)+1;r.connections[o]={generation:s,access:$(i),approval:a===null?null:$(a),expiresAt:n,connected:!1};for(let e of t)r.spent[$(e.id)]=e.expiresAt;return{key:e,generation:s,token:i,approvalToken:a,expiresAt:n}})}authorize(e,t,n,r=!1){let i=this.read().connections[$(e)];if(!i||i.generation!==t||i.expiresAt<=this.now()||(r?i.approval:i.access)!==$(n))throw new Z(`withdrawn-connection`)}connect(e,t,n){this.authorize(e,t,n),this.change(n=>{let r=n.connections[$(e)];if(r.generation!==t||r.expiresAt<=this.now()||r.connected)throw new Z(`replayed-connection`);r.connected=!0})}approveOnce(e,t,n,r){this.authorize(e,t,n,!0),this.change(i=>{let a=i.connections[$(e)];if(a.generation!==t||a.expiresAt<=this.now()||a.approval!==$(n))throw new Z(`withdrawn-connection`);let o=$(`approval:${e}:${r}`);if(i.spent[o]!==void 0)throw new Z(`replayed-approval`);if(Object.keys(i.spent).length>=4096)throw new Z(`approval-capacity`);i.spent[o]=2**53-1})}revoke(e){this.change(t=>{let n=t.connections[$(e)];n&&(n.generation++,n.expiresAt=0)})}};const it=128*1024,at=new Set([`get-messages`,`get-status`,`get-context`,`get-history`,`get-prompts`,`get-pending`,`get-executing`,`get-execution-workspace`,`get-execution-detail`,`project-status`,`project-diff`,`project-memory`,`get-usage-report`,`get-background-tasks`,`list-models`,`get-agent-definitions`]),ot=new Set([`sessions`,`session_list`,`session_renamed_in_list`,`session_deleted`,`ui_intent`,`settings`,`commands`]);function st(e){return S(`sha256`).update(`robota/desktop-permission/v1\0`).update(JSON.stringify(e)).digest(`hex`)}var ct=class e{socket;worker;session;listeners=new Set;ended=new Set;pending=new Map;constructor(e,t,n){this.socket=e,this.worker=n,this.session=t,e.on(`message`,(e,t)=>{try{if(t||Buffer.byteLength(String(e))>131072)throw new Z(`worker-frame`);let n=JSON.parse(String(e));if(!n||typeof n!=`object`||typeof n.type!=`string`)throw new Z(`worker-frame`);if(n.type===`session_status`&&n.status?.sessionId!==this.session||n.type===`session_switched`)throw new Z(`worker-session-changed`);if(ot.has(n.type))return;if(n.type===`permission_request`){let e=n.event;if(!e||typeof e.id!=`string`||e.id.length>256||typeof e.toolName!=`string`||this.pending.size>=32)throw new Z(`worker-prompt`);this.pending.set(e.id,{digest:st(e),event:e})}n.type===`prompt_resolved`&&this.pending.delete(n.event?.id);for(let e of this.listeners)e(n)}catch{this.close()}}),e.on(`error`,()=>this.close()),e.on(`close`,()=>{for(let e of this.ended)e();this.listeners.clear(),this.ended.clear(),this.pending.clear()})}static async connect(t){let n=new URL(t.endpoint);if(n.protocol!==`ws:`||![`127.0.0.1`,`[::1]`].includes(n.hostname)||n.username||n.password||n.search||n.hash||n.pathname!==`/`||typeof t.token!=`string`||t.token.length<16||t.token.length>8192)throw new Z(`owner-worker-endpoint`);let r=AbortSignal.any([AbortSignal.timeout(5e3),...t.signal?[t.signal]:[]]);await t.control.admit(t.worker,r),n.searchParams.set(`token`,t.token);let i=new M(n,{maxPayload:it,handshakeTimeout:5e3,followRedirects:!1});try{let n=await new Promise((e,n)=>{let a=0,o=()=>n(new Z(`worker-unavailable`)),s=(n,r)=>{try{if(a+=Buffer.byteLength(String(n)),r||a>1024*1024)return o();let i=JSON.parse(String(n));if(i.type!==`session_status`)return;let s=i.status?.sessionId;if(typeof s!=`string`||s.length===0||s.length>256||t.session!==void 0&&s!==t.session)return o();e(s)}catch{o()}};i.once(`open`,()=>i.send(JSON.stringify({type:`get-status`}))),i.on(`message`,s),i.once(`error`,o),i.once(`close`,o),r.addEventListener(`abort`,o,{once:!0});let c=()=>{i.off(`message`,s),i.off(`error`,o),i.off(`close`,o),r.removeEventListener(`abort`,o)};i.once(`close`,c),i.on(`message`,function e(t){try{JSON.parse(String(t)).type===`session_status`&&(c(),i.off(`message`,e))}catch{}})});return r.throwIfAborted(),await t.control.admit(t.worker,r),r.throwIfAborted(),new e(i,n,Object.freeze(structuredClone(t.worker)))}catch{throw i.terminate(),new Z(`worker-unavailable`)}}onFrame(e){return this.listeners.add(e),()=>this.listeners.delete(e)}onClose(e){return this.ended.add(e),()=>this.ended.delete(e)}ready(){if(this.socket.readyState!==M.OPEN)throw new Z(`worker-unavailable`)}send(e){this.ready();let t=JSON.stringify(e);if(Buffer.byteLength(t)>131072||this.socket.bufferedAmount>1024*1024)throw new Z(`frame-capacity`);if(e.type===`get-commands`)return{type:`commands`,commands:[],skills:[]};if(e.type===`list-sessions`&&typeof e.requestId==`string`)return{type:`sessions`,requestId:e.requestId,listing:{currentSessionId:this.session,sessions:[],unreadableSessionIds:[]}};if(e.type===`submit`){if(typeof e.prompt!=`string`||/^\s*\//u.test(e.prompt)||Object.keys(e).some(e=>![`type`,`prompt`].includes(e)))throw new Z(`remote-command`)}else if(!at.has(String(e.type))&&e.type!==`abort`&&e.type!==`ask-response`)throw new Z(`remote-capability`);if(`sessionId`in e||`driverId`in e||`tenant`in e||`task`in e)throw new Z(`remote-ownership`);this.socket.send(t)}prompt(e,t){if(this.pending.get(e)?.digest!==t)throw new Z(`stale-approval`)}approve(e,t,n){this.ready(),this.prompt(e,t),this.pending.delete(e),this.socket.send(JSON.stringify({type:`permission-response`,id:e,result:n}))}close(){this.socket.terminate()}};const lt=new Set([`authorization`,`x-desktop-operator-authorization`,`host`,`origin`,`x-forwarded-for`,`x-forwarded-host`,`x-forwarded-proto`]),ut=e=>(e??``).replace(/^::ffff:/u,``).toLowerCase();var dt=class{options;wss=new be({noServer:!0,maxPayload:it});paired=new Map;active=new Map;names;proxies;interval;closed=!1;upgrades=new Set;constructor(e){if(this.options=e,this.interval=e.policyIntervalMs??1e3,!Number.isSafeInteger(this.interval)||this.interval<100||this.interval>5e3||(e.trustedProxies??[]).some(e=>ve(e)===0))throw new Z(`gateway-configuration`);this.proxies=new Set((e.trustedProxies??[]).map(ut)),this.names=d({publicUrl:e.authorization.url.href,label:`Desktop runtime`,trustedProxies:e.trustedProxies});for(let[t,n]of e.ports){let r=e.authorization.binding(t);if(r.session!==n.session||JSON.stringify(r.worker)!==JSON.stringify(n.worker))throw new Z(`owner-worker-binding`);n.ready()}e.server.on(`request`,this.request),e.server.on(`upgrade`,this.upgrade)}boundary(e,t){let n=new Set;for(let r=0;r<e.rawHeaders.length;r+=2){let i=e.rawHeaders[r].toLowerCase();if(lt.has(i)&&n.has(i))return t.writeHead(403).end(),!1;n.add(i)}let r=[...n].some(e=>e.startsWith(`x-forwarded-`)),i=this.proxies.has(ut(e.socket.remoteAddress));return r&&!i||!e.socket.encrypted&&(!i||e.headers[`x-forwarded-proto`]!==`https`)||r&&(e.headers[`x-forwarded-proto`]!==`https`||e.headers[`x-forwarded-host`]!==this.names.url.host)?(t.writeHead(403).end(),!1):this.names.checkNames(e,t)}async bounded(e){let t=new AbortController,n;try{return await Promise.race([e(t.signal),new Promise((e,r)=>{n=setTimeout(()=>{t.abort(),r(new Z(`authority-timeout`))},5e3)})])}finally{n&&clearTimeout(n),t.abort()}}async body(e){let t=[],n=0;for await(let r of e){let e=Buffer.from(r);if(n+=e.length,n>8192)throw new Z(`request-capacity`);t.push(e)}let r=JSON.parse(Buffer.concat(t).toString(`utf8`));if(!r||typeof r!=`object`||Array.isArray(r))throw new Z(`request-shape`);return r}request=(e,t)=>{this.handle(e,t).catch(()=>{t.headersSent||t.writeHead(403),t.end()})};async handle(e,t){if(this.closed||!this.boundary(e,t))return;if(e.method!==`POST`||![`${this.names.url.pathname.replace(/\/$/u,``)}/pair`,`${this.names.url.pathname.replace(/\/$/u,``)}/approval`].includes(e.url??``)){t.writeHead(404).end();return}let n=setTimeout(()=>e.destroy(),5e3);try{let n=await this.body(e);if(e.url?.endsWith(`/pair`)){if(Object.keys(n).join(`,`)!==`binding`||typeof n.binding!=`string`)throw new Z(`request-shape`);let r=this.options.authorization.binding(n.binding),i=this.options.ports.get(r.id);if(!i)throw new Z(`worker-unavailable`);i.ready();let a=_(e.headers.authorization);if(!a)throw new Z(`missing-token`);let o=_(e.headers[`x-desktop-operator-authorization`]);if(e.headers[`x-desktop-operator-authorization`]!==void 0&&!o)throw new Z(`operator-token`);let{drive:s,operator:c}=await this.bounded(async e=>{let t=await this.options.authorization.verify(a,r,!1,e),n=o===void 0?void 0:await this.options.authorization.verify(o,r,!0,e);return e.throwIfAborted(),{drive:t,operator:n}});if(e.aborted||t.destroyed||this.closed)throw new Z(`connection-withdrawn`);let l=Q(r),u=this.options.store.pair(l,[s,...c?[c]:[]].map(e=>({id:e.jti,expiresAt:e.credentialExpiresAt})),Math.min(s.expiresAt,c?.expiresAt??s.expiresAt),c!==void 0);this.paired.set(r.id,{binding:r,access:u,jwt:a,operatorJwt:o,port:i});for(let[e,t]of this.active)t.binding.id===r.id&&e.terminate();t.setHeader(`cache-control`,`no-store`),t.setHeader(`content-type`,`application/json`),t.end(JSON.stringify({binding:r.id,generation:u.generation,token:u.token,approvalToken:u.approvalToken,expiresAt:u.expiresAt,session:r.session}))}else{if(Object.keys(n).sort().join(`,`)!==`allow,binding,digest,generation,id`||typeof n.binding!=`string`||!Number.isSafeInteger(n.generation)||typeof n.id!=`string`||typeof n.digest!=`string`||!/^[a-f0-9]{64}$/u.test(n.digest)||typeof n.allow!=`boolean`)throw new Z(`request-shape`);let r=this.paired.get(n.binding),i=_(e.headers.authorization);if(!r||r.access.generation!==n.generation||!i||!r.operatorJwt)throw new Z(`operator-token`);if(this.options.store.authorize(r.access.key,r.access.generation,i,!0),await this.bounded(e=>this.options.authorization.verify(r.operatorJwt,r.binding,!0,e)),e.aborted||t.destroyed||this.closed)throw new Z(`connection-withdrawn`);r.port.prompt(n.id,n.digest),this.options.store.approveOnce(r.access.key,r.access.generation,i,n.digest),r.port.approve(n.id,n.digest,n.allow),t.writeHead(204).end()}}finally{clearTimeout(n)}}upgrade=(e,t,n)=>{this.upgrades.add(t),t.once(`close`,()=>this.upgrades.delete(t)),t.once(`error`,()=>t.destroy());let r=new ye(e);if(r.assignSocket(t),!this.boundary(e,r)){r.on(`finish`,()=>t.destroy());return}r.detachSocket(t),this.connect(e,t,n).catch(()=>{t.end(`HTTP/1.1 403 Forbidden\r
|
|
2
|
+
Connection: close\r
|
|
3
|
+
Content-Length: 0\r
|
|
4
|
+
\r
|
|
5
|
+
`,()=>t.destroy())})};async connect(e,t,n){if(this.closed)throw new Z(`gateway-closed`);let r=new URL(e.url,this.names.url);if(e.method!==`GET`||r.pathname!==`${this.names.url.pathname.replace(/\/$/u,``)}/connect`||[...r.searchParams.keys()].sort().join(`,`)!==`binding,generation`)throw new Z(`connection-shape`);let i=this.paired.get(r.searchParams.get(`binding`)),a=Number(r.searchParams.get(`generation`)),o=_(e.headers.authorization);if(!i||!o||!Number.isSafeInteger(a)||a!==i.access.generation)throw new Z(`withdrawn-connection`);if(this.options.store.authorize(i.access.key,a,o),await this.bounded(e=>this.options.authorization.verify(i.jwt,i.binding,!1,e)),t.destroyed||this.closed)throw new Z(`connection-withdrawn`);i.port.ready(),this.options.store.connect(i.access.key,a,o),this.wss.handleUpgrade(e,t,n,e=>this.attach(e,i,o))}attach(e,t,n){this.active.set(e,t);let r=!1,i=Promise.resolve(),a=0,o=()=>e.terminate(),s=async()=>{this.options.store.authorize(t.access.key,t.access.generation,n),await this.bounded(e=>this.options.authorization.verify(t.jwt,t.binding,!1,e)),this.options.store.authorize(t.access.key,t.access.generation,n)},c=setInterval(()=>{r||(r=!0,s().catch(o).finally(()=>{r=!1}))},this.interval);c.unref();let l=t.port.onFrame(r=>{try{if(this.options.store.authorize(t.access.key,t.access.generation,n),e.readyState!==M.OPEN||e.bufferedAmount>1024*1024)throw new Z(`delivery-capacity`);e.send(JSON.stringify(r))}catch{o()}}),u=t.port.onClose(o);e.on(`message`,(n,r)=>{if(r||++a>16){o();return}i=i.then(async()=>{if(await s(),e.readyState!==M.OPEN)return;let r=JSON.parse(String(n)),i=t.port.send(r);i&&e.send(JSON.stringify(i))}).catch(o).finally(()=>{a--})}),e.on(`error`,o),e.once(`close`,()=>{clearInterval(c),l(),u(),this.active.delete(e)}),t.port.send({type:`get-messages`}),t.port.send({type:`get-status`}),t.port.send({type:`get-prompts`})}revoke(e){let t=Q(this.options.authorization.binding(e));this.options.store.revoke(t),this.paired.delete(e);for(let[t,n]of this.active)n.binding.id===e&&t.terminate()}async close(){this.closed=!0,this.options.server.off(`request`,this.request),this.options.server.off(`upgrade`,this.upgrade);for(let e of this.upgrades)e.destroy();for(let e of this.active.keys())e.terminate();for(let e of this.options.ports.values())e.close();this.paired.clear(),await new Promise(e=>this.wss.close(()=>e()))}};export{X as E2BWorkerProvisioningError,rt as HostedDesktopAuthorityStore,tt as HostedDesktopAuthorization,dt as HostedDesktopGateway,ct as HostedDesktopWorkerPort,qe as HostedOrganizationControl,Xe as HostedOrganizationPayloads,i as HostedRuntimeController,u as connectE2BTaskWorker,Je as createE2BOrganizationInventory,Ye as createHostedOrganizationGateway,Qe as createHostedOrganizationInputTokenCounter,Ze as createHostedOrganizationModelAction,g as createProductCliHost,v as hostedAdmissionBytes,c as hostedWorkerAccessBytes,et as provisionE2BTaskWorker,h as startCli,p as startCliEntry};
|
|
6
|
+
//# sourceMappingURL=index.js.map
|