@reason-machines/cli-linux-x64 0.2.558 → 0.2.560
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/bin/reason +2 -2
- package/bin/vm-hands/agent-network-j5f603sy.js +2 -0
- package/bin/vm-hands/api-credentials-7rhpwe7n.js +2 -0
- package/bin/vm-hands/api-vkgf7wma.js +2 -0
- package/bin/vm-hands/ask-relay-2vf6fa2t.js +5 -0
- package/bin/vm-hands/connect-cli-06x1wfgv.js +2 -0
- package/bin/vm-hands/credentials-s7ps7y6s.js +2 -0
- package/bin/vm-hands/custom-endpoint-device-3xnrp33e.js +2 -0
- package/bin/vm-hands/desktop-account-eg8thn79.js +2 -0
- package/bin/vm-hands/device-workspace-h5rsecq8.js +2 -0
- package/bin/vm-hands/{fsevents-fev1pxw2.js → fsevents-vxv56sp5.js} +1 -1
- package/bin/vm-hands/hands-worker-source-vk664w8p.js +2 -0
- package/bin/vm-hands/{index-j6wffzfd.js → index-03p9c17x.js} +106 -106
- package/bin/vm-hands/install-receipt-j04hdw1k.js +2 -0
- package/bin/vm-hands/local-automation-8b1znx0p.js +2 -0
- package/bin/vm-hands/local-capabilities-m6pzcc94.js +2 -0
- package/bin/vm-hands/local-desktop-users-sq4trh07.js +2 -0
- package/bin/vm-hands/local-display-mac-yxcxvg2z.js +2 -0
- package/bin/vm-hands/local-display-session-zyd8s6n6.js +2 -0
- package/bin/vm-hands/local-display-video-rk680vwg.js +2 -0
- package/bin/vm-hands/local-managed-process-w26jhyfg.js +2 -0
- package/bin/vm-hands/local-pty-session-edd8ttf9.js +2 -0
- package/bin/vm-hands/managed-runtime-ykv5nyva.js +2 -0
- package/bin/vm-hands/network-auto-update-mrjz964a.js +3 -0
- package/bin/vm-hands/network-contract-8mxtma3w.js +2 -0
- package/bin/vm-hands/network-sign-in-8yvdx5rm.js +3 -0
- package/bin/vm-hands/package-vwvzjtn0.js +2 -0
- package/bin/vm-hands/permissions-nmxr8238.js +2 -0
- package/bin/vm-hands/reason-hands-protocol-1nkpw1v3.js +2 -0
- package/bin/vm-hands/serve-service-det934tz.js +2 -0
- package/bin/vm-hands/status-fr7192eh.js +96 -0
- package/bin/vm-hands/version-5d6gbmrd.js +2 -0
- package/bin/vm-hands/vm-hands-entry-lite-0as6nsks.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-0ex2twm5.js +4 -0
- package/bin/vm-hands/vm-hands-entry-lite-0wb1n769.js +9 -0
- package/bin/vm-hands/{vm-hands-entry-lite-a3p6xz53.js → vm-hands-entry-lite-2rgf8866.js} +2 -2
- package/bin/vm-hands/vm-hands-entry-lite-4jgykvd3.js +2 -0
- package/bin/vm-hands/vm-hands-entry-lite-52qz0n30.js +7 -0
- package/bin/vm-hands/vm-hands-entry-lite-57ajjwmh.js +2 -0
- package/bin/vm-hands/vm-hands-entry-lite-71ebge0c.js +42 -0
- package/bin/vm-hands/vm-hands-entry-lite-84mc1f7h.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-8pcs85ak.js +105 -0
- package/bin/vm-hands/vm-hands-entry-lite-8w0ah5j9.js +11 -0
- package/bin/vm-hands/vm-hands-entry-lite-8xv6c0rm.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-9g52kxyj.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-a6ss0ges.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-a7bf7xr7.js +5 -0
- package/bin/vm-hands/vm-hands-entry-lite-ab1pq3xg.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-bnpdn6fw.js +127 -0
- package/bin/vm-hands/vm-hands-entry-lite-cspd38hc.js +539 -0
- package/bin/vm-hands/{vm-hands-entry-lite-q1yvw4xz.js → vm-hands-entry-lite-e3fn8ys2.js} +2 -2
- package/bin/vm-hands/vm-hands-entry-lite-f8p11q6h.js +452 -0
- package/bin/vm-hands/{vm-hands-entry-lite-qzkxtymm.js → vm-hands-entry-lite-f95mg81d.js} +2 -2
- package/bin/vm-hands/vm-hands-entry-lite-fhx46jny.js +10 -0
- package/bin/vm-hands/{vm-hands-entry-lite-wptbvtg0.js → vm-hands-entry-lite-fk2s50nc.js} +5 -5
- package/bin/vm-hands/vm-hands-entry-lite-hjjbjpd7.js +4 -0
- package/bin/vm-hands/vm-hands-entry-lite-hs6sdn60.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-hxfxs7r9.js +3 -0
- package/bin/vm-hands/{vm-hands-entry-lite-2v4zh9ze.js → vm-hands-entry-lite-j10cw3d9.js} +9 -9
- package/bin/vm-hands/{vm-hands-entry-lite-rdnm87zp.js → vm-hands-entry-lite-jhsa4av7.js} +2 -2
- package/bin/vm-hands/vm-hands-entry-lite-jpvmkce5.js +2 -0
- package/bin/vm-hands/vm-hands-entry-lite-k5ytpgzz.js +65 -0
- package/bin/vm-hands/{vm-hands-entry-lite-s85p7tqp.js → vm-hands-entry-lite-krpqqx12.js} +2 -2
- package/bin/vm-hands/{vm-hands-entry-lite-q2h781jg.js → vm-hands-entry-lite-ms99mzp0.js} +3 -3
- package/bin/vm-hands/vm-hands-entry-lite-nn6zcvmp.js +3 -0
- package/bin/vm-hands/{vm-hands-entry-lite-46pwqvpf.js → vm-hands-entry-lite-ptycjmkc.js} +2 -2
- package/bin/vm-hands/vm-hands-entry-lite-pxtycfdv.js +5 -0
- package/bin/vm-hands/vm-hands-entry-lite-q3er9m6y.js +9 -0
- package/bin/vm-hands/vm-hands-entry-lite-q9djb28r.js +4 -0
- package/bin/vm-hands/vm-hands-entry-lite-q9s1e2y1.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-qegwyvyz.js +3 -0
- package/bin/vm-hands/{vm-hands-entry-lite-pzj5s203.js → vm-hands-entry-lite-qf990rxw.js} +2 -2
- package/bin/vm-hands/vm-hands-entry-lite-rhx6adbr.js +52 -0
- package/bin/vm-hands/vm-hands-entry-lite-sy7dcccg.js +2 -0
- package/bin/vm-hands/vm-hands-entry-lite-tcmye5ny.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-tvnfm4xg.js +150 -0
- package/bin/vm-hands/{vm-hands-entry-lite-1yv5qqew.js → vm-hands-entry-lite-v4hr9x9h.js} +45 -45
- package/bin/vm-hands/vm-hands-entry-lite-vdv4nm5f.js +3 -0
- package/bin/vm-hands/vm-hands-entry-lite-weqam12f.js +6 -0
- package/bin/vm-hands/vm-hands-entry-lite-y4df9n3f.js +345 -0
- package/bin/vm-hands/vm-hands-entry-lite-yvws5zpx.js +4 -0
- package/bin/vm-hands/{vm-hands-entry-lite-qd46yhvz.js → vm-hands-entry-lite-z0ht62s4.js} +3 -3
- package/bin/vm-hands/vm-hands-entry-lite-zawytz09.js +3 -0
- package/bin/vm-hands/{vm-hands-entry-lite-h2rq71rj.js → vm-hands-entry-lite-zh6ncdjn.js} +2 -2
- package/bin/vm-hands/vm-hands-entry-lite.js +2 -2
- package/bin/vm-hands/{vm-hands-executor-a6c1j3gp.js → vm-hands-executor-qny3mx8f.js} +8 -8
- package/bin/vm-hands/vm-hands-op-runner-5q01rhkc.js +2 -0
- package/bin/vm-hands/{vm-hands-runtime-t5e8a0mn.js → vm-hands-runtime-gjjm5fzd.js} +3 -3
- package/bin/vm-hands/worker-preview-readiness-06tygyjs.js +2 -0
- package/bin/vm-hands/worker-sandbox-e1cpkzfz.js +2 -0
- package/package.json +1 -1
- package/bin/vm-hands/api-credentials-ds01769g.js +0 -2
- package/bin/vm-hands/api-tfq16a08.js +0 -2
- package/bin/vm-hands/connect-cli-ha9vbajx.js +0 -2
- package/bin/vm-hands/credentials-sbza33ac.js +0 -2
- package/bin/vm-hands/custom-endpoint-device-mydksbg8.js +0 -2
- package/bin/vm-hands/desktop-account-t0afsge2.js +0 -2
- package/bin/vm-hands/device-workspace-b534qy2c.js +0 -2
- package/bin/vm-hands/hands-worker-source-qj7s9dk5.js +0 -2
- package/bin/vm-hands/install-receipt-zv1bjbgh.js +0 -2
- package/bin/vm-hands/local-automation-29f2yk7r.js +0 -2
- package/bin/vm-hands/local-capabilities-1x36d69w.js +0 -2
- package/bin/vm-hands/local-desktop-users-5scb9930.js +0 -2
- package/bin/vm-hands/local-display-mac-pft73te9.js +0 -2
- package/bin/vm-hands/local-display-session-0sbtewn9.js +0 -2
- package/bin/vm-hands/local-display-video-vtd5xa7h.js +0 -2
- package/bin/vm-hands/local-managed-process-jz8h33nx.js +0 -2
- package/bin/vm-hands/local-pty-session-njd0tprg.js +0 -2
- package/bin/vm-hands/managed-runtime-c843ftzx.js +0 -2
- package/bin/vm-hands/network-contract-kx0hz3wt.js +0 -2
- package/bin/vm-hands/package-way7qesn.js +0 -2
- package/bin/vm-hands/permissions-qyfv0m6a.js +0 -2
- package/bin/vm-hands/reason-hands-protocol-g54rtrhd.js +0 -2
- package/bin/vm-hands/serve-service-fjr8vj0t.js +0 -2
- package/bin/vm-hands/status-yfp1ayay.js +0 -10
- package/bin/vm-hands/version-f3kptj80.js +0 -2
- package/bin/vm-hands/vm-hands-entry-lite-04x5xjt6.js +0 -5
- package/bin/vm-hands/vm-hands-entry-lite-07apxfh8.js +0 -42
- package/bin/vm-hands/vm-hands-entry-lite-0wsr8edk.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-1bbt37sr.js +0 -452
- package/bin/vm-hands/vm-hands-entry-lite-3gbf905c.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-46zcjqas.js +0 -2
- package/bin/vm-hands/vm-hands-entry-lite-48rphbjm.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-4anjdcth.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-4rystkgj.js +0 -14
- package/bin/vm-hands/vm-hands-entry-lite-6dk00ch5.js +0 -150
- package/bin/vm-hands/vm-hands-entry-lite-73f4cgkf.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-7cmf6428.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-8dfw96ym.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-97agw762.js +0 -5
- package/bin/vm-hands/vm-hands-entry-lite-ak0hd94p.js +0 -7
- package/bin/vm-hands/vm-hands-entry-lite-bpamn7ny.js +0 -9
- package/bin/vm-hands/vm-hands-entry-lite-cmfzxk3d.js +0 -126
- package/bin/vm-hands/vm-hands-entry-lite-dgfx0rbn.js +0 -5
- package/bin/vm-hands/vm-hands-entry-lite-efsp2wfz.js +0 -539
- package/bin/vm-hands/vm-hands-entry-lite-fs0bsr5q.js +0 -52
- package/bin/vm-hands/vm-hands-entry-lite-fxzadxz4.js +0 -2
- package/bin/vm-hands/vm-hands-entry-lite-gje7xvy9.js +0 -6
- package/bin/vm-hands/vm-hands-entry-lite-h1qjggz0.js +0 -4
- package/bin/vm-hands/vm-hands-entry-lite-n7bd44rm.js +0 -2
- package/bin/vm-hands/vm-hands-entry-lite-ny6w4vgq.js +0 -4
- package/bin/vm-hands/vm-hands-entry-lite-ravxhygk.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-tf0qzc0a.js +0 -9
- package/bin/vm-hands/vm-hands-entry-lite-tyem93c1.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-vj7xzb3y.js +0 -2
- package/bin/vm-hands/vm-hands-entry-lite-wf26hjeh.js +0 -105
- package/bin/vm-hands/vm-hands-entry-lite-wghmyfba.js +0 -4
- package/bin/vm-hands/vm-hands-entry-lite-wzv13c8k.js +0 -65
- package/bin/vm-hands/vm-hands-entry-lite-yptpy066.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-yretc2th.js +0 -3
- package/bin/vm-hands/vm-hands-entry-lite-z6znx10m.js +0 -2
- package/bin/vm-hands/vm-hands-op-runner-g81p656v.js +0 -2
- package/bin/vm-hands/worker-preview-readiness-gy36ejp9.js +0 -2
- package/bin/vm-hands/worker-sandbox-f1tfb3y0.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Zc,it,fc,bl,Qo,Oi,qe}from"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{Zc as FUTURE_DEVICE_CONSENT_SCOPE,bl as INSTALLER_WORKER_EXECUTABLES,it as installationReceiptPath,fc as installerLauncherNames,Oi as installerReasonAlias,Qo as installerReceiptLauncher,qe as loadInstallationReceipt};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{hr,To,Io,Do,wl,Oo}from"./vm-hands-entry-lite-fk2s50nc.js";import"./vm-hands-entry-lite-tvnfm4xg.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-bnpdn6fw.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-8pcs85ak.js";import"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-rhx6adbr.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{Io as ensureLocalBrowser,hr as localAutomationAvailable,Do as localBrowserProfile,To as localUserChromeHost,wl as runAutomationCallLocally,Oo as runLocalAutomation};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Gr,Kr,lo,qn,Kc,Jc,Wn,uo,po,ho,Vn}from"./vm-hands-entry-lite-cspd38hc.js";import"./vm-hands-entry-lite-52qz0n30.js";import"./vm-hands-entry-lite-0ex2twm5.js";import"./vm-hands-entry-lite-f8p11q6h.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-fk2s50nc.js";import"./vm-hands-entry-lite-tvnfm4xg.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-bnpdn6fw.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-8pcs85ak.js";import"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-rhx6adbr.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";export{r as LocalCapabilityError,Gr as SHORT_REQUEST_CAPABILITIES,uo as capabilityInventoryForRoots,Kr as confinedExecutionShell,qn as defaultLocalCommandRunner,po as deliverLocalHandsEnvironment,Wn as enrolledRootPaths,Vn as executeLocalOperation,ho as rebindLocalHandsControl,Kc as runFileCapability,Jc as runTransferCapability,lo as spawnCaptured};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Br,kl,ua,da,pa}from"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{kl as forgetLocalDesktopUse,pa as holdLocalDesktop,Br as noteLocalDesktopUse,ua as releaseLocalDesktop,da as trackDesktopRun};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{on,No,Te,Ft,sn}from"./vm-hands-entry-lite-tvnfm4xg.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-bnpdn6fw.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-rhx6adbr.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{Ft as ensureLinuxDesktop,on as localDisplayAvailable,No as localDisplayReady,Te as privateDirectory,sn as runLocalDisplayStream};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{qo,Wo,Vo,Go,Jt}from"./vm-hands-entry-lite-bnpdn6fw.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-rhx6adbr.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{qo as MAC_SCREEN,Wo as WINDOWS_SCREEN,Vo as createDisplayVideoLane,Jt as localDisplayVideoAvailable,Go as simulatorVideoFfmpeg};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{lr,Xn,go,Yn}from"./vm-hands-entry-lite-0ex2twm5.js";import"./vm-hands-entry-lite-f8p11q6h.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{lr as ManagedProcessStoppedError,go as controlManagedDeviceProcess,Yn as retireManagedDeviceProcess,Xn as runManagedDeviceProcess};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{mi,an,gi,Yc,Lo,_i,$o}from"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{an as LOCAL_PTY_MAX_BUFFERED_OUTPUT_BYTES,gi as LOCAL_PTY_MAX_SESSIONS,mi as LOCAL_PTY_MAX_SESSION_MS,_i as defaultConnect,Yc as defaultLoginShell,Lo as ptyRuntimeSupported,$o as runLocalPtySession};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Vc,Nt,hl,Wr,fl,ml,Ye,gl,_l,ie,yl,N,Qi}from"./vm-hands-entry-lite-8w0ah5j9.js";import"./vm-hands-entry-lite-yvws5zpx.js";import{mn,Ri}from"./vm-hands-entry-lite-vdv4nm5f.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{Vc as MANAGED_RUNTIME_MANIFEST_URL,mn as MANAGED_RUNTIME_MAX_MANIFEST_BYTES,ie as acquireManagedRuntimeDirectoryLock,yl as acquireManagedRuntimeLock,Ye as currentManagedRuntimeVersion,Wr as fetchManagedRuntimeBytes,Qi as flushManagedRuntimeLifecycleEvents,ml as installManagedRuntimeLauncher,gl as isManagedRuntimeVersionExecutable,hl as legacyManagedRuntimePaths,_l as managedRuntimeExecutableVersion,Nt as managedRuntimePaths,Ri as parseAndVerifyManagedRuntimeManifest,N as recordManagedRuntimeLifecycle,fl as updateManagedRuntime};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{P}from"./vm-hands-entry-lite-2rgf8866.js";import{w}from"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-krpqqx12.js";import"./vm-hands-entry-lite-9g52kxyj.js";import{it,qe}from"./vm-hands-entry-lite-sy7dcccg.js";import{us}from"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-8w0ah5j9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-bnpdn6fw.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-rhx6adbr.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-84mc1f7h.js";import"./vm-hands-entry-lite-a7bf7xr7.js";import"./vm-hands-entry-lite-0as6nsks.js";import"./vm-hands-entry-lite-4jgykvd3.js";import"./vm-hands-entry-lite-8pcs85ak.js";import"./vm-hands-entry-lite-f8p11q6h.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-y4df9n3f.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-52qz0n30.js";import"./vm-hands-entry-lite-nn6zcvmp.js";import"./vm-hands-entry-lite-cspd38hc.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-0ex2twm5.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-tvnfm4xg.js";import"./vm-hands-entry-lite-fk2s50nc.js";import"./vm-hands-entry-lite-ms99mzp0.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-zawytz09.js";import{Me,Be}from"./vm-hands-entry-lite-8xv6c0rm.js";import{spawn as I}from"child_process";import{randomUUID as A}from"crypto";import{closeSync as M,existsSync as T,mkdirSync as y,openSync as N,readFileSync as U,renameSync as O,rmSync as V,writeFileSync as F}from"fs";import{homedir as u}from"os";import{dirname as p,join as h}from"path";var L=["curl","npm","bun","brew"];function x(e){return L.includes(e)}function v(e,n=process.env){let r=P(n,"REASON_INSTALL_METHOD");if(x(r))return r;let t=e.replaceAll("\\","/").toLowerCase();if(t.includes("/.bun/install/global/"))return"bun";if(t.includes("/node_modules/"))return"npm";if(t.includes("/cellar/")||t.includes("/homebrew/"))return"brew";return"curl"}var f=86400000,_=7200000,W=900000,q=900000,J=30000,B=3600000,j=43200000,G="network-update-check.json",K="automatic-updates-declined.json",H="network-update.log";function g(e,n){return p(it(e,n))}function S(e=process.env,n=u()){return T(h(g(e,n),K))}function R(e){if(!e||e.channel!=="production"||e.install_method!=="curl")return"no_receipt";return e.background_mode==="cli_only"?null:"background_updater"}function Y(e={}){let n=e.env??process.env,r=e.home??u(),t=e.executablePath??process.execPath;if(!(e.compiled??us(e.main)))return"source_checkout";if(w({env:n,executablePath:t})!=="production")return"not_production";if(v(t,n)!=="curl")return"package_manager";let o=e.receipt===void 0?qe(it(n,r)):e.receipt,s=R(o);if(s)return s;if(S(n,r))return"declined";return"eligible"}async function jt(e,n=process.env,r=u()){if(e.background_mode!=="cli_only")return"background_updater";if(S(n,r))return"declined";if(R(e)!==null)return"none";let{installedEngineVersion:t}=await import("./agent-network-j5f603sy.js");return t(r)===null?"none":"reason_network"}function X(e){try{let n=JSON.parse(U(e,"utf8"));return n?.schema_version===1&&typeof n.next_at==="string"&&Number.isFinite(Date.parse(n.next_at))?n:null}catch{return null}}function z(e,n){y(p(e),{recursive:!0,mode:448});let r=`${e}.${process.pid}.${A()}.tmp`;try{F(r,`${JSON.stringify(n)}
|
|
3
|
+
`,{mode:384,flag:"wx"}),O(r,e)}finally{V(r,{force:!0})}}function Q(e={}){let n=h(g(e.env??process.env,e.home??u()),G),r=(e.now??new Date).getTime(),t=()=>{let i=(e.random??Math.random)();return Number.isFinite(i)?Math.min(Math.max(i,0),1):0},o=(i)=>z(n,{schema_version:1,next_at:new Date(i).toISOString()}),s=X(n),c=s?Date.parse(s.next_at):NaN;if(!s||c>r+f+_)return o(r+Math.floor(t()*f)),!1;if(r<c)return!1;return o(r+f+Math.round((t()*2-1)*_)),!0}function Z(e,n={}){let r=n.platform??process.platform,t=n.kill??Be,o=(c)=>{try{t(e,c,r)}catch{}};if(o("SIGTERM"),r==="win32")return;setTimeout(()=>o("SIGKILL"),n.graceMs??J).unref?.()}function ee(e={}){let n=e.env??process.env,r=e.platform??process.platform,t=h(g(n,e.home??u()),H);y(p(t),{recursive:!0,mode:448});let o=N(t,"w",384);return new Promise((s)=>{let c=!1,i=(d)=>{if(c)return;c=!0,clearTimeout(a),s(d)},l=I(e.executablePath??process.execPath,["update","--quiet"],{env:n,stdio:["ignore",o,o],windowsHide:!0,...Me(r)});M(o);let a=setTimeout(()=>{if(l.pid)Z(l.pid,{platform:r,...e.killGraceMs===void 0?{}:{graceMs:e.killGraceMs},...e.kill?{kill:e.kill}:{}});i(124)},e.timeoutMs??q);a.unref?.(),l.once("error",()=>i(127)),l.once("exit",(d,m)=>i(m?128:d??1))})}function te(e,n){return new Promise((r)=>{if(n.aborted)return r();let t=setTimeout(r,e);n.addEventListener("abort",()=>{clearTimeout(t),r()},{once:!0})})}function ne(e,n=()=>new Date){let r=-1/0,t="";return(o)=>{let s=n().getTime();if(s-r<B||o===t&&s-r<j)return;r=s,t=o,e(o)}}async function Gt(e,n,r,t={}){let o=t.env??process.env,s=t.home??u(),c=t.sleep??te,i=t.now??(()=>new Date);if(o.REASON_NETWORK_NO_UPDATE||o.TINCAN_NO_UPDATE)return;let l=ne(n,i);try{let a=t.refreshEngine??(async(m)=>(await import("./agent-network-j5f603sy.js")).refreshEngine({home:s,env:o,beforeRestart:m})),d=()=>l("moved the network engine to this release's pin; its daemon restarts on it");if(await a(d)){d();return}}catch(a){l(`couldn't move the network engine to this release's pin: ${a instanceof Error?a.message:String(a)}`)}while(!e.aborted){try{if(Y({env:o,home:s,...t.executablePath?{executablePath:t.executablePath}:{},...t.compiled===void 0?{}:{compiled:t.compiled}})==="eligible"&&Q({env:o,home:s,now:i(),...t.random?{random:t.random}:{}})){let d=await(t.update??(()=>ee({env:o,home:s,...t.executablePath?{executablePath:t.executablePath}:{}})))();if(d===0)await r();else l(`reason update failed (exit ${d}); the next try is in about a day`)}}catch(a){l(`automatic update: ${a instanceof Error?a.message:String(a)}`)}await c(t.tickMs??W,e)}}export{jt as automaticUpdatesFor,Gt as keepNetworkComputerCurrent};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{er,Je,ps,hs,M,Ct,fs,$n,ms,Rr,gs,_s,ys,bs,vs,Ss,Es,ks,xs,Cs,As,Ps,Rs,Ts,Is,Ds,at,Le,At,xe,Os,Ns,Ls,pe,$s,Ms,Bs,Fs,js,Tr,Hs,Us,tr,Ir,zs,zi,qs,Ws,Vs,Mn,Gs,Ks,Js,Xs,Ys,Zs,Qs,ea,ta,ra}from"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";export{Hs as AUTOMATION_CLOUD_SESSIONS,Tr as AUTOMATION_USER_CHROME,As as HANDS_CLOUD_ACCESS,Ps as HANDS_CLOUD_ACCESS_KEY,at as HANDS_CONFINEMENT,Le as HANDS_CONFINEMENT_KEY,bs as HANDS_ENVIRONMENT_AT_CLAIM,vs as HANDS_ENVIRONMENT_AT_CLAIM_KEY,ms as HANDS_ENVIRONMENT_DELIVERY,Rr as HANDS_ENVIRONMENT_DELIVER_CONTROL,Rs as HANDS_HEADLESS_BROWSER,Ts as HANDS_HEADLESS_BROWSER_KEY,Os as HANDS_JOBS_USER,Ns as HANDS_JOBS_USER_KEY,Is as HANDS_LARGE_ENVIRONMENT,Ds as HANDS_LARGE_ENVIRONMENT_KEY,At as HANDS_MODEL_JOBS_EGRESS,xe as HANDS_MODEL_JOBS_EGRESS_KEY,ks as HANDS_REBIND,Cs as HANDS_REBIND_CONTROL,xs as HANDS_REBIND_KEY,$s as HANDS_SESSION_CAP_KEY,Ms as HANDS_SESSION_CAP_NONE,Ls as HANDS_SESSION_GROUP,pe as HANDS_SESSION_GROUP_KEY,Ss as HANDS_WORKSPACE_CHECK,Es as HANDS_WORKSPACE_CHECK_KEY,Fs as JOBS_START_WAIT,js as JOBS_START_WAIT_KEY,Je as LOCAL_OPERATION_MAX_BYTES,er as LOCAL_RUNTIME_PROTOCOL_VERSION,M as LOCAL_RUNTIME_ROUTES,$n as LOCAL_RUNTIME_SESSION_CLAIM_WAIT_MAX_MS,Ct as LOCAL_RUNTIME_SESSION_PATH,tr as LOCAL_RUNTIME_WORKER_STARTUP_MAX_MS,ps as RELAY_HOST_ALIAS_HEADER,hs as RELAY_HOST_ALIAS_VERSION,ys as VM_HANDS_UNBIND_UNVERIFIED_EVENT,gs as VM_HANDS_WORKSPACE_DEFERRED_KEY,_s as VM_HANDS_WORKSPACE_GRANT_CONTROL,Bs as WORKER_PREVIEW_CARRIED_JOBS,Us as WORKER_STARTUP_TIMING_STAGES,Ir as buildLocalRuntimeDeviceProofBytes,fs as localRuntimeSessionRoutable,Js as parseLocalRuntimeDisconnectResponse,Ws as parseLocalRuntimeEnrollmentResponse,zs as parseLocalRuntimeErrorEnvelope,Mn as parseLocalRuntimeFirstHeartbeat,Vs as parseLocalRuntimeHeartbeatResponse,Ks as parseLocalRuntimeIdentityResponse,Ys as parseLocalRuntimeLifecycleResponse,Xs as parseLocalRuntimeLocalSubscriptionResponse,Zs as parseLocalRuntimeOperationClaim,ra as parseLocalRuntimeOperationCompletionResponse,ta as parseLocalRuntimeOperationEnvironmentResponse,ea as parseLocalRuntimeOperationEventsResponse,Qs as parseLocalRuntimeOperationHeartbeatResponse,zi as parseLocalRuntimeProofChallenge,qs as parseLocalRuntimeRegistrationResponse,Gs as parseLocalRuntimeRootsSyncResponse};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import"./vm-hands-entry-lite-84mc1f7h.js";import{Fe}from"./vm-hands-entry-lite-fhx46jny.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-9g52kxyj.js";import{ve}from"./vm-hands-entry-lite-a7bf7xr7.js";import"./vm-hands-entry-lite-krpqqx12.js";import{be}from"./vm-hands-entry-lite-0as6nsks.js";import{xr}from"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-4jgykvd3.js";import"./vm-hands-entry-lite-sy7dcccg.js";import{ma,ga,_a,Ur,zr}from"./vm-hands-entry-lite-hjjbjpd7.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import{createHash as y}from"crypto";var _={start:"/network/auth/start",poll:"/network/auth/poll",key:"/network/auth/key",teams:"/v3/network/teams",leave:"/v3/network/teams/leave",proof:"/v3/network/proof"};async function I(r,e,t={}){let o=AbortSignal.timeout(t.timeoutMs??30000),i=await fetch(r,{method:"POST",redirect:"error",signal:t.signal?AbortSignal.any([t.signal,o]):o,headers:{"content-type":"application/json","user-agent":xr,...t.token?{authorization:`Bearer ${t.token}`}:{}},body:JSON.stringify(e)}),n=await i.json().catch(()=>({}));return{status:i.status,body:n&&typeof n==="object"?n:{}}}var d=(r)=>y("sha256").update(r).digest("hex");async function b(r,e,t,o,i=!1){let n={team_id:t.teamId,team_name:t.teamName,link:o,...i?{own_copy:!0}:{}},s=await I(`${r}${_.teams}`,n,{token:e}).catch(()=>null);return s!==null&&s.status>=200&&s.status<300}async function v(r,e,t,o,i={}){let n=zr(t);if(!n||!i.ownCopy&&e.registered===d(n.secret))return!0;let s=ma(i.home),a=ve(s)?await be({path:s}).catch(()=>null):null,c=(await r.team())?.name??e.team;if(a&&await b(a.apiOrigin,a.accessToken,{teamId:n.teamId,teamName:c},t,i.ownCopy)){if(!i.ownCopy&&e.registered!==d(n.secret))_a({...e,registered:d(n.secret)},i.home);return!0}return o?.stderr.write(T(`Your Reason account still lists ${Fe(c)}'s old link; signing in for this network refreshes it: reason network join '${t}'`)+`
|
|
3
|
+
`),!1}var S=300000,R=21600000;async function xe(r,e,t,o){let i=ga(t),n=o?await r.team():null;if(i&&(!o||i.team===n?.name)){let{url:l}=await r.link(),u=zr(l);if(!u||d(u.secret)===e.sent)return e;return await v(r,i,l,null,{ownCopy:!0,...t?{home:t}:{}})?{...e,sent:d(u.secret)}:e}if(!o||!n?.teamId||Ur(t)?.team===n.name)return e;let{url:s}=await r.link(),a=zr(s);if(!a||a.teamId!==n.teamId.toLowerCase())return e;let c=d(a.secret);if(c===e.sent||e.refused?.link===c&&Date.now()<e.refused.until)return e;if(await(async()=>{let l=await o.agentNetwork();if(l.team===n.name||l.link&&zr(l.link)?.teamId===a.teamId)return!1;return await o.registerNetworkTeam({team_id:a.teamId,team_name:n.name,link:s,own_copy:!0}),!0})().catch(()=>!1))return{sent:c,refused:null};let g=e.refused?.link===c?e.refused.tries+1:1;return{...e,refused:{link:c,tries:g,until:Date.now()+Math.min(R,S*2**Math.min(g-1,10))}}}var T=(r)=>process.stdout.isTTY?`\x1B[2m${r}\x1B[22m`:r;export{xe as sendTeamLink};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Qc,bc,vl,el,Sl}from"./vm-hands-entry-lite-rhx6adbr.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{el as allowMacPermissions,vl as permissionsSummary,bc as readMacPermissions,Qc as reasonIdentity,Sl as runPermissionsCli};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{F,bi,vi,Mo,_r,Bo,Si,zt,gt,Fo,qt,pn,He,Wt,jo,_t,hn,Ei,fn,ki,Ho,rt,Ee,ce,nt,xi,Ci,Uo}from"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{ki as REASON_HANDS_CLOSE_CODES,qt as REASON_HANDS_JOB_CONTROL_MAX_FRAME_BYTES,Si as REASON_HANDS_JOB_MAX_INPUT_CHARS,zt as REASON_HANDS_JOB_MAX_OUTPUT_CHARS,gt as REASON_HANDS_JOB_MAX_OUTPUT_CHUNKS,Fo as REASON_HANDS_JOB_MAX_RECORDS,Bo as REASON_HANDS_MAX_ERROR_CHARS,bi as REASON_HANDS_MAX_FRAME_BYTES,vi as REASON_HANDS_MAX_INPUT_CHARS,_r as REASON_HANDS_MAX_OUTPUT_CHARS,Mo as REASON_HANDS_MAX_STRUCTURED_INPUT_CHARS,F as REASON_HANDS_PROTOCOL_VERSION,Ei as REASON_HANDS_PTY_ANCHOR_EXIT_MS,fn as REASON_HANDS_PTY_CLEANUP_RECEIPT_MS,hn as REASON_HANDS_PTY_CLEANUP_SWEEP_MS,_t as REASON_HANDS_PTY_MAX_DIMENSION,He as REASON_HANDS_PTY_MAX_INPUT_BYTES,Wt as REASON_HANDS_PTY_MAX_OUTPUT_BYTES,jo as REASON_HANDS_PTY_MAX_PENDING_INPUT_BYTES,pn as REASON_HANDS_PTY_PROTOCOL_VERSION,Ho as REASON_HANDS_WORKSPACE_BEFORE_MAX_OUTPUT_CHARS,Ee as isReasonHandsGeneration,nt as isReasonHandsPtyJobId,rt as isReasonHandsRequestId,ce as isReasonHandsUuid,xi as parseReasonHandsJobRequest,Ci as parseReasonHandsJobResult,Uo as parseReasonHandsPtyReceipt};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{ke,de,j,Ue,Jo,bn,Xo,ze,Ii,Di,Yo,vn,Ie,Zo,Sn}from"./vm-hands-entry-lite-8pcs85ak.js";import"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-qegwyvyz.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{ke as WORKER_SERVICE_ENV,j as WorkerServiceError,bn as connectServiceLabel,de as defaultWorkerServiceHost,vn as installWorkerService,ze as installedWorkerService,Xo as isConnectServiceLabel,Sn as removeWorkerService,Ie as restartWorkerService,Zo as retargetWorkerServiceLogs,Ii as retireLegacyWorkerService,Yo as workerServiceDefinitionCurrent,Ue as workerServiceLauncher,Di as workerServiceProcessRunning,Jo as workerServiceRetargetPending};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import"./vm-hands-entry-lite-84mc1f7h.js";import"./vm-hands-entry-lite-2rgf8866.js";import{w,We,_c}from"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-9g52kxyj.js";import{Q}from"./vm-hands-entry-lite-a7bf7xr7.js";import"./vm-hands-entry-lite-krpqqx12.js";import{me}from"./vm-hands-entry-lite-0as6nsks.js";import{g}from"./vm-hands-entry-lite-qegwyvyz.js";import{ir}from"./vm-hands-entry-lite-4jgykvd3.js";import{un,tt}from"./vm-hands-entry-lite-pxtycfdv.js";import{f,S,nr,Z,fe,Xi,Yi}from"./vm-hands-entry-lite-y4df9n3f.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-cspd38hc.js";import"./vm-hands-entry-lite-f8p11q6h.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-52qz0n30.js";import"./vm-hands-entry-lite-nn6zcvmp.js";import"./vm-hands-entry-lite-bnpdn6fw.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-q3er9m6y.js";import"./vm-hands-entry-lite-rhx6adbr.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-8w0ah5j9.js";import{qe}from"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-8pcs85ak.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-0ex2twm5.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-tvnfm4xg.js";import"./vm-hands-entry-lite-fk2s50nc.js";import"./vm-hands-entry-lite-ms99mzp0.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-hs6sdn60.js";import{s}from"./vm-hands-entry-lite-zawytz09.js";import{t,o,d,n,c,i}from"./vm-hands-entry-lite-k5ytpgzz.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import{createHash as Ye,randomBytes as Qe}from"crypto";import{readFileSync as Ze,realpathSync as ye,renameSync as en,unlinkSync as nn,writeFileSync as tn}from"fs";import{dirname as rn,join as we}from"path";import{spawnSync as xe}from"child_process";import{accessSync as $e,constants as Ue,existsSync as J,mkdirSync as Le,readFileSync as Te,renameSync as Ee,writeFileSync as Oe}from"fs";import{homedir as De}from"os";import{delimiter as Ne,dirname as Fe,join as D}from"path";import{existsSync as Me,readFileSync as Ae}from"fs";import{join as Pe}from"path";var Ie=`---
|
|
3
|
+
name: reason
|
|
4
|
+
description: Integrate software with Reason's public REST API using a scoped API key. Use for API clients, CI, service integrations, or cloud coding-session automation.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Reason API
|
|
8
|
+
|
|
9
|
+
Reason integrations use the public REST API. Public customer MCP is retired.
|
|
10
|
+
|
|
11
|
+
Base URL: \`https://api.reasonmachines.com/v3\`
|
|
12
|
+
|
|
13
|
+
- API quickstart: \`https://docs.reasonmachines.com/api-quickstart\`
|
|
14
|
+
- Endpoint reference: \`https://docs.reasonmachines.com/api-reference\`
|
|
15
|
+
|
|
16
|
+
## Authentication and scope
|
|
17
|
+
|
|
18
|
+
1. Create a least-privilege \`ara_\` key in Reason Settings \u2192 Developers (the Code
|
|
19
|
+
/ API keys picker) and keep it only in the calling service or CI secret
|
|
20
|
+
manager. Never
|
|
21
|
+
put it in source, prompts, logs, generated files, or a repository
|
|
22
|
+
environment file. A new key from that picker includes the ordinary public
|
|
23
|
+
scopes for session, skill, repo, and org reads.
|
|
24
|
+
2. Send it as \`Authorization: Bearer <api-key>\`. Call \`GET /v3/self\` first
|
|
25
|
+
to resolve the key's organization before reading or mutating resources.
|
|
26
|
+
3. Request only the scopes needed by the integration. Treat secret values as
|
|
27
|
+
write-only and never expose them in API responses or diagnostics.
|
|
28
|
+
4. Use the endpoint reference as the source of truth for request/response
|
|
29
|
+
shapes, pagination, and error handling. Do not recreate an old MCP client,
|
|
30
|
+
route, OAuth flow, or plugin configuration. Do not connect to the retired
|
|
31
|
+
public MCP transport.
|
|
32
|
+
|
|
33
|
+
## Session automation
|
|
34
|
+
|
|
35
|
+
- Create and monitor sessions through the documented \`/v3/organizations/:orgId/
|
|
36
|
+
sessions\` endpoints. Return the session URL or identifier to the caller, then
|
|
37
|
+
poll or stream only as the API reference specifies.
|
|
38
|
+
- Omit \`hands_mode\` for adaptive lazy Hands, or set it to \`brain_only\` when
|
|
39
|
+
physical execution must remain permanently disabled for that Conversation.
|
|
40
|
+
- Keep API work idempotent where the endpoint supports it, and surface failed
|
|
41
|
+
mutations rather than retrying destructive operations blindly.
|
|
42
|
+
- Scope every request to the intended organization and repository. Do not infer
|
|
43
|
+
authority from a repository name or an untrusted task payload.
|
|
44
|
+
`;function V(e){return Pe(e,".agents","skills","ara","SKILL.md")}function re(e){let r=V(e);return Me(r)&&Ae(r,"utf8")===Ie}var Y=["codex","claude","cursor"],oe={codex:"Codex",claude:"Claude Code",cursor:"Cursor"};function je(e,r=process.env){let a=r.PATH??"",u=process.platform==="win32"?(r.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";"):[""];for(let l of a.split(Ne)){if(!l)continue;for(let m of u)try{return $e(D(l,`${e}${m}`),Ue.X_OK),!0}catch{}}return!1}function ze(){return{exists:je,run(e,r,a={}){let u=a.interactive===!0,l=xe(e,r,{encoding:"utf8",env:process.env,stdio:u?"inherit":"pipe"});return{status:l.status??1,stdout:u?"":l.stdout??"",stderr:u?l.error?.message??"":`${l.stderr??""}${l.error?`${l.error.message}
|
|
45
|
+
`:""}`}}}}function O(e){return`${e.stdout}
|
|
46
|
+
${e.stderr}`}function A(e){return e.status===0}function E(e,r,a,u={}){let l=e.run(r,a,u);if(A(l))return l;let m=O(l).trim();throw Error(`${r} ${a.join(" ")} failed${m?`: ${m}`:` with exit code ${l.status}`}`)}function Be(e=process.env){return _c(w({env:e}))}function ee(e,r){return e.split(/\s+/).some((a)=>ae(a,r))}function H(e){return D(e,".cursor","mcp.json")}function se(e){if(!J(e))return{};try{let r=JSON.parse(Te(e,"utf8"));if(!r||typeof r!=="object"||Array.isArray(r))throw Error("top-level value must be an object");return r}catch(r){let a=r instanceof Error?r.message:String(r);throw Error(`Cursor MCP config at ${e} is invalid; refusing to overwrite it (${a})`)}}function He(e,r){Le(Fe(e),{recursive:!0,mode:448});let a=`${e}.ara-${process.pid}.tmp`;Oe(a,`${JSON.stringify(r,null,2)}
|
|
47
|
+
`,{mode:384}),Ee(a,e)}function ae(e,r){if(typeof e!=="string")return!1;if(e===r)return!0;try{let a=new URL(e);return["https://api.ara.so","https://api-staging.ara.so","https://api.reasonmachines.ai","https://staging-api.reasonmachines.ai","https://api.reasonmachines.com","https://staging-api.reasonmachines.com"].includes(a.origin)&&!a.username&&!a.password&&a.pathname==="/mcp/ara"&&!a.search&&!a.hash}catch{return!1}}function Je(e,r){let a=e.mcpServers?.ara;return Boolean(a&&typeof a==="object"&&!Array.isArray(a)&&ae(a.url,r))}class K{runner;home;mcpUrl;constructor(e=ze(),r=De(),a=Be()){this.runner=e;this.home=r;this.mcpUrl=a}isAvailable(e){if(e==="codex")return this.runner.exists("codex");if(e==="claude")return this.runner.exists("claude");return this.runner.exists("cursor")||J("/Applications/Cursor.app")||J(D(this.home,"Applications","Cursor.app"))||J(H(this.home))}availableClients(){return Y.filter((e)=>this.isAvailable(e))}installationPath(e){if(e==="cursor")return H(this.home);if(e==="codex")return D(this.home,".codex","plugins","cache","ara");return D(this.home,".claude","plugins","cache","ara")}sharedSkillStatus(){return{installed:re(this.home),path:V(this.home)}}status(e){let r=oe[e];if(!this.isAvailable(e))return{id:e,label:r,available:!1,installed:!1,connection:null,detail:"Client not detected",legacyInstallations:[]};if(e==="cursor"){let C=H(this.home),M=Je(se(C),this.mcpUrl);return{id:e,label:r,available:!0,installed:M,connection:M?"configured":null,detail:M?`Retired Reason MCP configuration in ${C}`:`No retired Reason MCP configuration in ${C}`,legacyInstallations:[]}}if(e==="codex"){let C=this.runner.run("codex",["plugin","list"]);if(!(A(C)&&O(C).includes("ara@ara")))return{id:e,label:r,available:!0,installed:!1,connection:null,detail:"No retired Reason plugin installed",legacyInstallations:[]};let x=this.runner.run("codex",["mcp","list"]),h=O(x).split(/\r?\n/).find((j)=>j.trimStart().startsWith("ara ")&&ee(j,this.mcpUrl)),W=A(x)&&Boolean(h),F=!A(x)?"error":h?.includes("Not logged in")?"not_logged_in":h?.includes("OAuth")?"oauth":h?"configured":"unknown";return{id:e,label:r,available:!0,installed:W,connection:F,detail:h?.trim()||"The retired Reason plugin is installed but has no verified retired MCP registration",legacyInstallations:[]}}let a=this.runner.run("claude",["plugin","list"]),u=O(a),l=A(a)&&u.includes("ara@ara"),m=A(a)&&u.includes("ara-handoff@ara");if(!l&&!m)return{id:e,label:r,available:!0,installed:!1,connection:null,detail:"No retired Reason plugin installed",legacyInstallations:[]};let R=this.runner.run("claude",["mcp","list"]),v=O(R),_=v.split(/\r?\n/).find((C)=>C.includes("plugin:ara:ara")&&ee(C,this.mcpUrl)),k=v.split(/\r?\n/).find((C)=>C.includes("plugin:ara-handoff:ara")&&ee(C,this.mcpUrl)),N=A(R)&&Boolean(_),b=A(R)&&k?["ara-handoff@ara"]:[],q=!A(R)?"error":_?.includes("Connected")?"connected":_?.includes("Failed")?"error":_?"configured":"unknown";return{id:e,label:r,available:!0,installed:N,connection:q,detail:_?.trim()||"The retired Reason plugin is installed but has no verified retired MCP registration",legacyInstallations:b}}statuses(){return Y.map((e)=>this.status(e))}logout(e){let r=this.status(e);if(!r.available||!r.installed)return`${r.label}: not connected`;if(e==="cursor")return this.uninstall("cursor").replace("removed retired Reason","signed out and removed retired Reason");if(e==="codex")return E(this.runner,"codex",["mcp","logout","ara"]),"Codex: signed out of Reason";return E(this.runner,"claude",["mcp","logout","plugin:ara:ara"]),"Claude Code: signed out of Reason"}uninstall(e){let r=this.status(e);if(!r.available||!r.installed)return`${r.label}: Reason is not installed`;if(e==="cursor"){let a=H(this.home),u=se(a),l={...u.mcpServers??{}};return delete l.ara,u.mcpServers=l,He(a,u),`Cursor: removed retired Reason MCP from ${a}`}if(e==="codex")return E(this.runner,"codex",["plugin","remove","ara@ara"]),"Codex: removed retired ara@ara";return E(this.runner,"claude",["plugin","uninstall","ara@ara","--scope","user"]),"Claude Code: removed retired ara@ara"}removeLegacyClaudePlugin(){if(!this.runner.exists("claude"))return"Claude Code: not installed";if(!this.status("claude").legacyInstallations.includes("ara-handoff@ara"))return"Claude Code: no legacy Reason plugin found";return E(this.runner,"claude",["plugin","uninstall","ara-handoff@ara","--scope","user"]),"Claude Code: removed obsolete ara-handoff@ara"}removeRetiredInstallations(){let e=[],r=[];for(let a of Y){let u;try{u=this.status(a)}catch(l){r.push(`${oe[a]}: ${l instanceof Error?l.message:String(l)}`);continue}if(u.installed){if(a!=="cursor")try{e.push(this.logout(a))}catch(l){r.push(`${u.label}: ${l instanceof Error?l.message:String(l)}`)}try{e.push(this.uninstall(a))}catch(l){r.push(`${u.label}: ${l instanceof Error?l.message:String(l)}`)}}if(a==="claude"&&u.legacyInstallations.includes("ara-handoff@ara"))try{e.push(this.removeLegacyClaudePlugin())}catch(l){r.push(`${u.label}: ${l instanceof Error?l.message:String(l)}`)}}if(e.length===0&&r.length===0)e.push("No retired Reason MCP configuration found.");return{messages:e,failures:r}}}function ie(e){return`claude mcp add --transport http reason ${e}`}function ce(e){return`codex mcp add reason --url ${e}
|
|
48
|
+
codex mcp login reason`}var Mn=ie("https://mcp.reasonmachines.com/mcp"),An=ce("https://mcp.reasonmachines.com/mcp"),Pn=`https://claude.ai/settings/connectors?add=custom&url=${encodeURIComponent("https://mcp.reasonmachines.com/mcp")}`,In=`https://cursor.com/install-mcp?name=reason&config=${encodeURIComponent(btoa(JSON.stringify({url:"https://mcp.reasonmachines.com/mcp"})))}`;var Ke="https://github.com/reason-machines/reason-plugins",En=`Connect a coding agent to Reason over MCP
|
|
49
|
+
|
|
50
|
+
Usage:
|
|
51
|
+
reason mcp Show how to connect Claude Code, Codex, or another MCP client
|
|
52
|
+
reason mcp uninstall Remove only this machine's registrations of the earlier, retired server
|
|
53
|
+
|
|
54
|
+
Plugins for Claude Code and Codex: ${Ke}
|
|
55
|
+
`;function le(e){if(!e.available)return"not detected";if(e.installed||e.legacyInstallations.length>0)return"retired configuration";return"not installed"}function Ge(e,r){let a=r.toLowerCase();if(e==="codex")return a.includes("codex");if(e==="claude")return a.includes("claude");return a.includes("cursor")}function ue(e,r){return(r.mcp_connections??[]).filter((u)=>Ge(e.id,u.client_name)).flatMap((u)=>u.last_used_at?[u.last_used_at]:[]).sort().at(-1)??null}function de(e,r=new Date){if(!e)return"never";let a=Date.parse(e);if(!Number.isFinite(a))return"never";let u=Math.max(0,Math.floor((r.getTime()-a)/1000));if(u<45)return"just now";let l=Math.floor(u/60);if(l<60)return`${l} ${l===1?"minute":"minutes"} ago`;let m=Math.floor(l/60);if(m<24)return`${m} ${m===1?"hour":"hours"} ago`;let R=Math.floor(m/24);return`${R} ${R===1?"day":"days"} ago`}function pe(e){let r=e.name?.trim(),a=e.email?.trim();if(r&&a)return`${r} (${a})`;return r||a||e.id||"Reason user"}function ge(e){let r=e.name?.trim(),a=e.slug?.trim();if(r&&a)return`${r} (${a})`;return r||a||e.id}var Ve=c(["granted","not_granted","unknown"]),he=n({status:Ve,checkedAt:o().finite(),executablePath:t().min(1)});var on=`Reason status
|
|
56
|
+
|
|
57
|
+
Usage:
|
|
58
|
+
reason status [--json]
|
|
59
|
+
|
|
60
|
+
Show the installed version, signed-in account and organization, this
|
|
61
|
+
computer's connection (\`reason connect\`) and the workspaces it serves, any
|
|
62
|
+
retired MCP configuration that can be cleaned up, and automatic updates.
|
|
63
|
+
`,sn=5000,an=300000,cn=n({version:i(1),key:t(),at:o(),self:n({principal_type:t(),user_id:t().optional(),user_name:t().nullish(),email:t().nullish(),org_id:t(),organization_name:t().nullish(),organization_slug:t().nullish(),mcp_connections:d(n({client_id:t(),client_name:t(),last_used_at:t().nullable()})).optional()})}),Re=(e)=>`${e.apiOrigin}
|
|
64
|
+
${Ye("sha256").update(e.accessToken).digest("hex")}`;function ln(e,r,a){try{let u=cn.safeParse(JSON.parse(Ze(e,"utf8")));if(!u.success||u.data.key!==Re(r))return null;let l=a-u.data.at;return l>=0&&l<an?u.data.self:null}catch{return null}}function dn(e,r,a,u){let l=`${e}.${process.pid}.${Qe(6).toString("hex")}.tmp`;try{let m={version:1,key:Re(r),at:u,self:a};tn(l,`${JSON.stringify(m)}
|
|
65
|
+
`,{mode:384,flag:"wx"}),en(l,e)}catch{try{nn(l)}catch{}}}var pn=30000;function mn(e,r=Date.now(),a=null){let u=tt(e),l=(()=>{if(u?.state!=="connected"&&u?.state!=="starting")return!1;try{return process.kill(u.pid,0),!0}catch{return!1}})(),m=l&&u?.state==="connected",R=(k)=>m&&r-k>=0&&r-k<pn,v=he.safeParse(u?.fullDiskAccess),_=un(u,a,r);return{..._?{permission_recovery:_}:{},full_disk_access:v.success&&R(v.data.checkedAt)?v.data.status:"unknown",keep_awake:{enabled:nr(e)==="battery_and_ac",holding:u?.idleSleepHold===!0&&R(Date.parse(u.lastHeartbeatAt??""))},executable:l&&v.success?v.data.executablePath:null}}function gn(e=w()){if(process.platform!=="darwin")return null;let r=Z(we(fe(ye(s()),e),"worker.json"));return r?mn(f(r).daemon,Date.now(),S(r)):null}var fn={background_updater:"enabled",reason_network:"enabled, daily by Reason Network",declined:"disabled (installed with --background-mode cli_only)",none:"disabled"},Ce={connected:"connected",starting:"starting",reconnecting:"reconnecting",stopping:"stopping",not_running:"not running",removed:"removed from Reason (run `reason connect` to connect it again)"};async function it(e,r={}){let a=r.io??{stdout:process.stdout,stderr:process.stderr};if(e.includes("--help")||e.includes("-h"))return a.stdout.write(on),0;if(e.some((m)=>m!=="--json"))return a.stderr.write(`Usage: reason status [--json]
|
|
66
|
+
`),1;let u=new AbortController,l=setTimeout(()=>u.abort(Error("timed out reading the account")),sn);try{let m=r.now?.()??new Date,R=performance.now(),v=R,_=()=>{let p=performance.now(),P=Math.round(p-v);return v=p,P},k=null,N=(p)=>(k=p instanceof Error?p.message:String(p),null),b=await ir(r,u.signal).catch(N),q=_(),C=b?.credentialKind==="api_key",M=b&&!C?we(rn(Q(r.env??process.env)),"status-account.json"):null,x=b&&M&&e.includes("--json")?ln(M,b,m.getTime()):null,h=x??(b?await(r.getSelf??((p,P)=>new me(p).self(P)))(b,u.signal).catch(N):null);if(b&&h&&!x&&M)dn(M,b,h,m.getTime());let W=_(),F=r.manager??new K,j=e.includes("--json")?[]:F.statuses(),U=(r.loadReceipt??qe)(),z=U?await(r.automaticUpdates??(async(p)=>p.background_mode==="cli_only"?(await import("./network-auto-update-mrjz964a.js")).automaticUpdatesFor(p,r.env??process.env,r.home):"background_updater"))(U).catch(()=>U.background_mode==="cli_only"?"none":"background_updater"):null,B=await(r.readConnection??(()=>Yi({channel:r.channel})))().catch(()=>null),I=null;try{if(B)I=(r.readConnectionMacState??(()=>gn(r.channel??w())))()}catch{}let y=B&&I?{...B,...I}:B,G=(()=>{try{return(r.readDisconnected??(()=>Xi(ye(s()),r.channel??w())))()}catch{return!1}})(),_e=_(),ne=h?{id:h.org_id,name:h.organization_name??null,slug:h.organization_slug??null}:null,T=h?{id:h.user_id??null,name:(C?h.service_user_name:h.user_name)??null,email:h.email??null,credential:C?"api_key":"login"}:null,X=r.channel??w(),L={version:g,channel:X,api_origin:b?.apiOrigin??We(X),account:T,account_error:k,organization:ne,mcp:j.map((p)=>({client:p.id,label:p.label,status:le(p),installed_at:p.installed?F.installationPath(p.id):null,last_used_at:h?ue(p,h):null})),connection:y,disconnected:G,installation:U&&z?{background_mode:U.background_mode,automatic_updates:z==="background_updater"||z==="reason_network",automatic_updates_by:z,future_device_consent:U.device_consent?.decision??"disabled"}:null,timings_ms:{process:Math.round(R),credentials:q,account:W,local:_e,total:Math.round(performance.now()-R)}};if(e.includes("--json"))return a.stdout.write(`${JSON.stringify(L,null,2)}
|
|
67
|
+
`),0;if(X==="staging")a.stdout.write(`Reason ${g} \xB7 channel: STAGING
|
|
68
|
+
`),a.stdout.write(`API: ${L.api_origin}
|
|
69
|
+
`);else a.stdout.write(`Reason ${g}
|
|
70
|
+
`);if(T)a.stdout.write(C?`Account: API key (REASON_API_KEY)${T.name?`: ${T.name}`:""}
|
|
71
|
+
`:`Account: ${pe(T)}
|
|
72
|
+
`),a.stdout.write(`Organization: ${ge(ne)}
|
|
73
|
+
`);else if(k)a.stdout.write(`Account: unavailable (${k})
|
|
74
|
+
`);else a.stdout.write(`Account: signed out
|
|
75
|
+
`),a.stdout.write(`Organization: none
|
|
76
|
+
`);if(a.stdout.write(`
|
|
77
|
+
This computer
|
|
78
|
+
`),!y)a.stdout.write(G?"Disconnected. Run `reason connect` to connect it again.\n":"Not connected. Run `reason connect` to run your Sessions here.\n");else{if(a.stdout.write(`Connection: ${Ce[y.state]} (${y.name})${G?", disconnected (run `reason connect` to connect it again)":""}
|
|
79
|
+
`),y.version)a.stdout.write(`Version: ${y.version}${y.version===g?"":` (${g} is installed; \`reason connect\` restarts it on that)`}
|
|
80
|
+
`);if(a.stdout.write(`Folder: ${y.folder}
|
|
81
|
+
`),a.stdout.write(`Sessions: ${y.sessions_running===null?"":`${y.sessions_running} running, `}${y.sessions_max===null?"every Session you start":y.sessions_max===1?"one at a time":`up to ${y.sessions_max} at once`}
|
|
82
|
+
`),I){let p=I,P=await(r.readPermissionsSummary??(async()=>{let{permissionsSummary:Se,readMacPermissions:ve,reasonIdentity:be}=await import("./permissions-nmxr8238.js"),{macScreenStatus:ke}=await import("./local-display-mac-yxcxvg2z.js");return Se(await ve({identity:()=>be(),grants:ke,worker:async()=>p}))}))().catch(()=>null);if(P)a.stdout.write(`${P}
|
|
83
|
+
`);a.stdout.write(`Keep awake: ${I.keep_awake.enabled?"on":"off"}${I.keep_awake.holding?" (holding)":""}
|
|
84
|
+
`)}if(y.service)a.stdout.write(`Logs: ${y.service.logs}
|
|
85
|
+
`);for(let p of y.workspaces??[]){let P=p.state==="removed"?"removed from that workspace":p.blocked?"offline (this computer is outside that workspace's allowed networks)":p.device_id?Ce[p.state]:"connecting";a.stdout.write(`Also in workspace ${p.name??p.organization_id}${p.account?" (another Reason account's)":""}: ${P}
|
|
86
|
+
`)}if(y.workspaces_off==="sign_in")a.stdout.write("Other workspaces: off. This computer's sign-in is not one the Reason app or the setup command\n Reason shows you made for it (or that sign-in ended, or it is in use on another computer), so it is\n connected in one workspace only. Run the setup command from Reason here (it ends in --pair CODE);\n if this computer was connected before that, run `reason disconnect` and `reason connect` once.\n")}let te=L.mcp.filter((p)=>p.installed_at||p.status!=="not installed");if(te.length>0)a.stdout.write(`
|
|
87
|
+
Retired MCP configuration
|
|
88
|
+
`);for(let p of te)if(a.stdout.write(`${p.label}: ${p.status}
|
|
89
|
+
`),p.installed_at)a.stdout.write(` Installed: ${p.installed_at}
|
|
90
|
+
`),a.stdout.write(` Last used: ${de(p.last_used_at,m)}
|
|
91
|
+
`);if(L.mcp.some((p)=>p.status==="retired configuration"))a.stdout.write("Run `reason mcp uninstall` to remove only the retired Reason MCP registrations.\n");if(a.stdout.write(`
|
|
92
|
+
Background access
|
|
93
|
+
`),!L.installation)a.stdout.write(`Not managed by the Reason installer
|
|
94
|
+
`);else a.stdout.write(`Automatic updates: ${fn[L.installation.automatic_updates_by]}
|
|
95
|
+
`);return 0}catch(m){return a.stderr.write(`Reason status: ${m instanceof Error?m.message:String(m)}
|
|
96
|
+
`),1}finally{clearTimeout(l)}}export{gn as connectionMacState,it as runStatusCli};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{ba}from"./vm-hands-entry-lite-84mc1f7h.js";import{P}from"./vm-hands-entry-lite-2rgf8866.js";import{W}from"./vm-hands-entry-lite-q9s1e2y1.js";import{Q,ro,ve,no}from"./vm-hands-entry-lite-a7bf7xr7.js";import{xr}from"./vm-hands-entry-lite-qegwyvyz.js";import{t,o,_,d,n,rl,we,c,i}from"./vm-hands-entry-lite-k5ytpgzz.js";var E=/^(0|[1-9][0-9]{0,5})\.(0|[1-9][0-9]{0,5})$/;function S(e){let s=typeof e==="string"?E.exec(e):null;return s?{major:Number(s[1]),minor:Number(s[2])}:null}import{createHash as q,randomBytes as v}from"crypto";import{createInterface as M}from"readline";var k=["run","mcp:read","mcp:write","secrets:read","secrets:write","sessions:read","sessions:debug","devices:read","devices:write","devices:use","ssh:write","knowledge:read","memory:read","memory:write","skills:read","skills:write","repos:read","repos:write","reviews:read","reviews:write","deployment:read","analytics:read","org:read","org:write","attachments:read","attachments:write","guardrails:read","guardrails:write","network:read","network:write","automations:read","automations:write","agent_auth:read"];var Ge=k.filter((e)=>e!=="network:read"&&e!=="network:write");class y extends Error{oauthCode;constructor(e,s=null){super(e);this.oauthCode=s;this.name="LoginError"}}function ya(){let e=v(48).toString("base64url"),s=q("sha256").update(e).digest("base64url");return{verifier:e,challenge:s,state:v(32).toString("base64url")}}function z(e,s){let r=typeof e.error==="string"?e.error:null,a=typeof e.error_description==="string"?e.error_description:r?r:s;return new y(a,r)}async function L(e,s,r,a){let l=await r(`${e}/mcp/oauth/token`,{method:"POST",redirect:"error",headers:{"content-type":"application/x-www-form-urlencoded"},body:s,signal:a}),u=await l.json().catch(()=>({}));if(!l.ok)throw z(u,`OAuth token request failed (${l.status})`);return u}var j=1e4;async function D(e,s={}){let r=s.fetchImpl??fetch,a=await L(e.apiOrigin,new URLSearchParams({grant_type:"refresh_token",client_id:e.clientId,refresh_token:e.refreshToken}),r,AbortSignal.timeout(j)).catch((u)=>{if(u instanceof Error&&u.name==="TimeoutError")throw new y("Reason did not answer the login refresh in time. Check the network and retry.");throw u});if(typeof a.access_token!=="string"||typeof a.refresh_token!=="string"||typeof a.expires_in!=="number")throw new y("Reason returned an incomplete refreshed login.");let l={...e,accessToken:a.access_token,refreshToken:a.refresh_token,expiresAt:new Date(Date.now()+a.expires_in*1000).toISOString(),scopes:typeof a.scope==="string"?a.scope.split(/\s+/).filter(Boolean):e.scopes};return ro(l,s.path??Q()),l}var R=new Map,N=2000,H=100;function I(e,s){if(!s)return e;if(s.aborted)return Promise.reject(s.reason);return new Promise((r,a)=>{let l=()=>a(s.reason);s.addEventListener("abort",l,{once:!0}),e.then(r,a).finally(()=>s.removeEventListener("abort",l))})}async function be(e={}){let s=e.path??Q(),r=ve(s);if(!r)return null;let a=e.apiOrigin??P(process.env,"REASON_API_URL")?.trim();if(a&&!W(r.apiOrigin,new URL(a).origin))return null;if(!(Date.parse(r.expiresAt)<=Date.now()+60000)&&(!e.forceRefresh||e.refused!==void 0&&r.accessToken!==e.refused))return r;let u=[s,r.apiOrigin,r.clientId,r.refreshToken].join("\x00"),g=R.get(u);if(g)return I(g,e.signal);let h;return h=D(r,{fetchImpl:e.fetchImpl,path:s}).catch(async(p)=>{if(!(p instanceof y)||p.oauthCode!=="invalid_grant"&&p.oauthCode!=="invalid_client")throw p;let b=(f)=>f!==null&&(p.oauthCode==="invalid_client"?f.clientId!==r.clientId:f.refreshToken!==r.refreshToken),O=Date.now()+N;while(!b(ve(s))&&Date.now()<O)await new Promise((f)=>setTimeout(f,H));if(b(ve(s)))return be({fetchImpl:e.fetchImpl,path:s});return no(s),null}).finally(()=>{if(R.get(u)===h)R.delete(u)}),R.set(u,h),I(h,e.signal)}function wa(e,s){return new Promise((r)=>{let a=M({input:e}),l=!1,u=(h)=>{if(l)return;l=!0,s.removeEventListener("abort",g),a.close(),e.pause(),r(h)},g=()=>u(null);s.addEventListener("abort",g,{once:!0}),a.once("line",(h)=>u(h)),a.once("close",()=>u(null))})}var F=n({label:t(),used_percent:o().min(0).max(100).nullable(),resets_at:t().nullable(),exhausted:_().nullable()}),B=n({groups:d(n({selectable:_().optional(),accounts:d(n({source_id:t().min(1),model_ids:d(t().min(1)).optional()}))}))});function G(e){let s=B.safeParse(e);if(!s.success)return;return s.data.groups.some((r)=>r.selectable!==!1&&r.accounts.some((a)=>a.model_ids===void 0||a.model_ids.length>0))}class C extends Error{status;code;suggestedModel;retryAfterMs;resolutionReason;refusal;constructor(e,s,r,a,l,u,g){super(r);this.status=e;this.code=s;this.suggestedModel=a;this.retryAfterMs=l;this.resolutionReason=u;this.refusal=g;this.name="ApiError"}static rateLimitDelayMs(e,s){if(!(e instanceof C)||e.status!==429)return null;return Math.min(60000,Math.max(s,e.retryAfterMs??0))}}var J=["minimal","low","medium","high","xhigh","max"],K=n({id:t().min(1),kind:t(),name:t(),custom_name:t().nullish(),status:t(),online:_(),compatible:_().optional(),compatibility_reason:t().nullish(),folder_lane_of:t().nullish(),roots:d(n({id:t().min(1),label:t()}))}),V=n({devices:d(K),end_cursor:t().nullish(),has_next_page:_().optional()}),Y=n({id:t().min(1),name:t()}),Z=n({items:d(Y)}),X=n({id:t().min(1),name:t(),main:_(),mine:_(),session_id:t().nullish(),appearance:n({color:t().nullish()}).nullish().catch(null)}),ee=n({items:d(X)}),ne=n({skill_id:t().min(1),name:t(),description:t().nullish(),activation_keywords:d(t()).default([]),is_enabled:_().default(!0)}),te=n({items:d(ne).default([])}),se=n({id:t().min(1),kind:t(),enabled:_(),schedule:n({expression:t().nullish(),every_seconds:o().nullish(),next_run_at:t().nullish()}).nullish(),github:n({event:t().nullish(),action:t().nullish(),repo:t().nullish()}).nullish(),last_fired_at:t().nullish()}),A=n({id:t().min(1),name:t().nullish(),instructions:t().nullish(),enabled:_(),triggers:d(se).default([])}),oe=n({items:d(A).default([]),end_cursor:t().nullish(),has_next_page:_().optional()}),re=n({id:t().min(1),slug:t().nullish(),name:t(),description:t().nullish(),transport:t().nullish(),url:t().nullish(),enabled:_()}),ie=n({items:d(re).default([])}),ae=n({status:t(),summary:t().nullish(),category:t().nullish(),outcome:t().nullish(),message_count:o().nullish(),pr_url:t().nullish(),cost_usd:o().nullish(),generated_at:t().nullish()}),x=n({tags:d(t()).default([])}),le=c(["linux","macos"]),T=n({id:t().min(1),name:t().min(1),platform:le.nullable(),workers:n({total:o().int(),online:o().int(),busy:o().int(),idle:o().int()}),sessions:n({queued:o().int(),running:o().int()})}),ce=n({machines:d(T)}),de=n({machine:T}),ue=n({deleted:i(!0),revoked_workers:o().int(),revoked_tokens:o().int()}),ge=n({token:n({id:t().min(1),machine_id:t().min(1),token_prefix:t()}),secret:t().startsWith("rmt_")}),U=rl({machine_id:t().min(1),machine_name:t().min(1)}),he=U.extend({organization_id:t().min(1)}),tn=n({id:t().min(1),name:t().min(1),state:c(["waiting","placed"]),queue_position:o().int().nullable()});var sn=we([n({kind:i("cloud")}),n({kind:c(["mac","headless"]),device_id:t().min(1),root_id:t().min(1)})]);function m(e,s,r){let a=e.safeParse(s);if(!a.success)throw new C(502,r,"Reason returned an unexpected response.");return a.data}var pe=n({error:n({type:t(),message:t()})});function w(e,s,r){let a=pe.safeParse(s),l=typeof s.error==="string"?s.error:a.success?a.data.error.type:`http_${e}`,u=typeof s.detail==="string"?s.detail:typeof s.message==="string"?s.message:a.success?a.data.error.message:`Reason request failed (${e}${typeof s.error==="string"?` ${s.error}`:""})`,g=l==="github_connection_required"&&typeof s.connect_url==="string"&&/^https?:\/\//.test(s.connect_url)?` Connect it at ${s.connect_url}`:"",h=r===null||r.trim()===""?NaN:Number(r);return new C(e,l,`${u}${g}`,typeof s.suggested_model==="string"?s.suggested_model:void 0,Number.isFinite(h)&&h>=0?h*1000:void 0,typeof s.resolution_reason==="string"?s.resolution_reason:void 0,typeof s.code==="string"?{code:s.code,...typeof s.billing_path==="string"&&/^\/(?![/\\])/.test(s.billing_path)?{billingPath:s.billing_path}:{}}:void 0)}async function eo(e){let s=await(e.fetchImpl??fetch)(`${e.apiOrigin}/v3/machines/enrollment-tickets`,{method:"POST",headers:{authorization:`Bearer ${e.token}`,accept:"application/json","content-type":"application/json"},body:JSON.stringify(e.body),signal:AbortSignal.timeout(30000),redirect:"error"}),r=await s.json().catch(()=>({}));if(!s.ok)throw w(s.status,r,s.headers.get("retry-after"));return m(he,r,"invalid_machine_ticket")}var fe=n({items:d(n({name:t()}))}),_e=n({name:t(),scope:t(),result:c(["created","updated"]).optional(),warning:n({message:t()}).optional()});class me{options;credentials;constructor(e,s={}){this.options=s;this.credentials=e}trackEvent(e,s={}){}async request(e,s={}){let{status:r,headers:a,json:l}=await this.exchange(e,s);if(r<200||r>299)throw w(r,l,a.get("retry-after"));return l}async exchange(e,s={},r=!1){let a=this.options.fetchImpl??fetch;if(!r&&s.retryUnauthorized!==!1)await this.renewBeforeExpiry(a,s.signal);let l=await a(`${this.credentials.apiOrigin}/v3${e}`,{method:s.method??"GET",headers:{authorization:`Bearer ${this.credentials.accessToken}`,accept:"application/json","user-agent":xr,"x-reason-agent":"Reason CLI","x-client-surface":this.options.clientSurface??"direct_cli",...s.raw?{"content-type":s.raw.contentType}:s.body===void 0?{}:{"content-type":"application/json"},...s.headers,...s.ifNoneMatch?{"if-none-match":s.ifNoneMatch}:{}},body:s.raw?s.raw.bytes:s.body===void 0?void 0:JSON.stringify(s.body),signal:s.signal,redirect:s.ifNoneMatch?"manual":"error"}),u=await l.json().catch(()=>({}));if(l.status===401&&!r&&s.retryUnauthorized!==!1&&this.credentials.credentialKind!=="api_key"){let g=await be({fetchImpl:a,path:this.options.credentialsPath,forceRefresh:!0,refused:this.credentials.accessToken,signal:s.signal});if(g)return this.credentials=g,this.exchange(e,s,!0)}return{status:l.status,headers:l.headers,json:u}}async renewBeforeExpiry(e,s){let r=this.credentials;if(r.credentialKind==="api_key"||!(Date.parse(r.expiresAt)<=Date.now()+60000))return;let a=await be({fetchImpl:e,path:this.options.credentialsPath,signal:s}).catch(()=>null);if(a&&a.apiOrigin===r.apiOrigin&&a.orgId===r.orgId&&a.clientId===r.clientId)this.credentials=a}createHeadlessDeviceEnrollmentTicket(e){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/devices/enrollment-tickets`,{method:"POST",body:e,signal:AbortSignal.timeout(30000),retryUnauthorized:!1})}async enrollHeadlessDevice(e){try{return await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/devices/enrollments`,{method:"POST",body:e,signal:AbortSignal.timeout(30000),retryUnauthorized:!1})}catch(s){if(s instanceof C&&(s.status===404||s.status===405||s.status===403&&s.code==="endpoint_not_available"))return null;throw s}}addDeviceRoot(e,s){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/devices/${encodeURIComponent(e)}/roots`,{method:"POST",body:s,signal:AbortSignal.timeout(30000)})}removeDeviceRoot(e,s){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/devices/${encodeURIComponent(e)}/roots/${encodeURIComponent(s)}`,{method:"DELETE",signal:AbortSignal.timeout(30000)})}machinePath(e,s=""){let r=`/organizations/${encodeURIComponent(this.credentials.orgId)}/machines`;return e===void 0?r:`${r}/${encodeURIComponent(e)}${s}`}async listMachines(){return m(ce,await this.request(this.machinePath()),"invalid_machine_list").machines}async createMachine(e){let s=await this.request(this.machinePath(),{method:"POST",body:{name:e.name,...e.platform?{platform:e.platform}:{}}});return m(de,s,"invalid_machine").machine}async deleteMachine(e){let s=await this.request(this.machinePath(e),{method:"DELETE"});return m(ue,s,"invalid_machine_deletion")}async listSecretNames(e){let s=await this.request(`${this.secretsPath()}?scope=${e}`);return m(fe,s,"invalid_secret_list").items.map((r)=>r.name)}async setSecret(e){let s=await this.request(this.secretsPath(),{method:"POST",body:e});return m(_e,s,"invalid_secret_write")}secretsPath(){return`/organizations/${encodeURIComponent(this.credentials.orgId)}/secrets`}async createMachineToken(e){let s=await this.request(this.machinePath(e,"/tokens"),{method:"POST",body:{}});return m(ge,s,"invalid_machine_token")}async createMachineEnrollmentTicket(e,s){let r=await this.request(this.machinePath(e,"/enrollment-tickets"),{method:"POST",body:s,signal:AbortSignal.timeout(30000),retryUnauthorized:!1});return m(U,r,"invalid_machine_ticket")}self(e){return this.request("/self",{signal:e})}submitFeedback(e){return this.request("/feedback",{method:"POST",body:e,signal:AbortSignal.timeout(30000)})}agentNetwork(e=AbortSignal.timeout(30000)){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-network`,{signal:e})}startAgentNetwork(e){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-network`,{method:"POST",body:e,signal:AbortSignal.timeout(30000)})}rotateAgentNetwork(e){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-network`,{method:"PUT",body:e,signal:AbortSignal.timeout(30000)})}async registerNetworkTeam(e){await this.request("/network/teams",{method:"POST",body:e,signal:AbortSignal.timeout(30000)})}async claimAgentNetworkRelayJob(e,s){let r=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-network/relay/claim`,{method:"POST",body:e,signal:s});return m(ba,r,"invalid_agent_network_job")}async completeAgentNetworkRelayJob(e,s){await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-network/relay/jobs/${encodeURIComponent(e)}`,{method:"POST",body:s,signal:AbortSignal.timeout(30000)})}async recordAgentNetworkRelayReplies(e){await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-network/relay/replies`,{method:"POST",body:e,signal:AbortSignal.timeout(30000)})}async workspaceMembers(){return((await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/members/users`,{signal:AbortSignal.timeout(30000)})).items??[]).flatMap((s)=>typeof s.email==="string"?[{email:s.email,role:typeof s.role==="string"?s.role:"member"}]:[])}claimExistingCliPairing(e){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/onboarding/import/pairing/claim-existing`,{method:"POST",body:{pairing_code:e}})}async claudeCodeSignIn(e){return(await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/provider-credentials`,{retryUnauthorized:!1,signal:e?AbortSignal.any([e,AbortSignal.timeout(15000)]):AbortSignal.timeout(15000)})).claude_code_sign_in===!0}connectAnthropicProvider(e,s,r={}){let a=e.kind==="setup_token"?{setup_token:e.token}:{access_token:e.credential.access,refresh_token:e.credential.refresh,expires_at:new Date(e.credential.expires).toISOString()};return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/provider-credentials/anthropic`,{method:"POST",retryUnauthorized:r.retryUnauthorized,signal:r.signal,body:{...a,...s?{account_key:s}:{}}})}async listRepositories(){return((await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/repositories`)).items??[]).flatMap((s)=>{let r=typeof s.full_name==="string"?s.full_name:typeof s.repo_full_name==="string"?s.repo_full_name:null;if(!r)return[];return[{repo_id:typeof s.repo_id==="string"?s.repo_id:void 0,full_name:r,provider:s.provider==="gitlab"?"gitlab":"github",default_branch:typeof s.default_branch==="string"?s.default_branch:null,private:typeof s.private==="boolean"?s.private:void 0}]})}async listProjects(){let e=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/projects`),s=Z.safeParse(e);if(!s.success)throw new C(502,"invalid_project_list","Reason returned an unexpected project list.");return s.data.items}async listReasons(){let e=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/reasons`);return m(ee,e,"invalid_reason_list").items}async openReasonConversation(e){let s=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/reasons/${encodeURIComponent(e)}/conversation`,{method:"POST"});return m(n({session_id:t().min(1)}),s,"invalid_reason_conversation").session_id}async listSkills(){try{let e=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/skills`);return m(te,e,"invalid_skill_list").items}catch(e){if(e instanceof C&&(e.status===403||e.status===404))return[];throw e}}async listDevices(){let e=[],s=null;for(let r=0;r<50;r+=1){let a=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/devices${s?`?after=${encodeURIComponent(s)}`:""}`),l=V.safeParse(a);if(!l.success)throw new C(502,"invalid_device_list","Reason returned an unexpected machine list.");if(e.push(...l.data.devices),s=l.data.has_next_page?l.data.end_cursor??null:null,!s)break}return e}async listModels(){try{let s=((await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-auth/models`)).models??[]).filter((l)=>l.hidden!==!0),r=s.filter((l)=>l.available!==!1).map(({reasoning_efforts:l,hidden:u,available:g,...h})=>({...h,...Array.isArray(l)?{reasoning_efforts:J.filter((p)=>l.includes(p))}:{}})),a=new Set(r.map((l)=>l.detail));return{models:r.length>1&&a.size===1?r.map(({detail:l,...u})=>u):r,runnable:r.length>0||s.length===0}}catch(e){if(e instanceof C&&(e.status===403||e.status===404))return{models:[],runnable:!0};throw e}}async getAgentVersion(e){try{let s=await this.request("/deployment",{signal:e,retryUnauthorized:!1});return S(s.reason_version)?s.reason_version:null}catch{return null}}async getUsageQuota(){try{let e=F.safeParse(await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/usage/quota`));if(!e.success)return null;let s;try{s=G(await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/agent-auth/models`))}catch{}return{...e.data,own_inference:s}}catch(e){if(e instanceof C&&(e.status===403||e.status===404))return null;throw e}}async listSessionFields(e){let s=new URLSearchParams({first:String(Math.min(Math.max(e.first,1),200)),status:e.status??"active"});if(e.origin)s.set("origin",e.origin);s.set("fields",e.fields.join(","));let r=`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions?${s.toString()}`,{status:a,headers:l,json:u}=await this.exchange(r,e.etag?{ifNoneMatch:e.etag}:{});if(a===304)return null;if(a<200||a>299)throw w(a,u,l.get("retry-after"));return{items:Array.isArray(u.items)?u.items:[],etag:l.get("etag")}}async listSessions(e=50,s,r={}){let a=new URLSearchParams({first:String(Math.min(Math.max(e,1),200)),status:r.status??"active"});if(s)a.set("project_id",s);if(r.origin)a.set("origin",r.origin);return(await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions?${a.toString()}`)).items??[]}getSession(e,s){let r=s?.fields.length?`?fields=${encodeURIComponent(s.fields.join(","))}`:"";return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}${r}`)}async prestartSession(e){let s=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/prestart`,{method:"POST",body:{client_session_id:e}});return s?.status==="starting"||s?.status==="ready"}async createSession(e){let s=e.mode==="ephemeral"||e.workspaceOwnership==="externally-managed";if(e.attachments?.length)await this.requireSessionAttachments();if(s||e.runtimeProfile){let l=await this.request("/deployment");if(s&&(!Array.isArray(l.session_modes)||!l.session_modes.includes(e.mode??"standard")||!Array.isArray(l.workspace_ownerships)||!l.workspace_ownerships.includes(e.workspaceOwnership??"managed")))throw Error("Deployment does not support the requested Session policy; refusing to create a Session.");if(e.runtimeProfile&&(!Array.isArray(l.experimental_runtime_profiles)||!l.experimental_runtime_profiles.includes(e.runtimeProfile)))throw Error("Deployment does not support the requested runtime profile; refusing to create a Session.")}let r=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions`,{method:"POST",body:{prompt:e.prompt,...e.attachments?.length?{attachments:e.attachments}:{},...e.mode?{mode:e.mode}:{},...e.workspaceOwnership?{workspace_ownership:e.workspaceOwnership}:{},...e.target?{target:e.target}:{},...e.repo?{repo:e.repo}:{},...e.provider?{provider:e.provider}:{},...e.model?{model:e.model}:{},...e.reasoningEffort?{reasoning_effort:e.reasoningEffort}:{},...e.runtimeProfile?{experimental_runtime_profile:e.runtimeProfile}:{},...e.ref?{ref:e.ref}:{},...e.branch?{branch:e.branch}:{},...e.completionMode?{completion_mode:e.completionMode}:{},...e.env&&Object.keys(e.env).length>0?{env:e.env}:{},...e.clientSessionId?{client_session_id:e.clientSessionId}:{},...e.longRunning?{long_running:{enabled:!0}}:{},...e.spendLimitRcu?{spend_limit_rcu:e.spendLimitRcu}:{},idempotency_key:`cli-${crypto.randomUUID()}`}}),a=await this.getSession(r.session_id);if(s){let l=a.session_policy,u=["memoryRead","memoryWrite","skills","inheritedInstructions","integrations","secretInjection"];if(!l||l.version!==1||l.mode!==(e.mode??"standard")||l.workspaceOwnership!==(e.workspaceOwnership??"managed")||!l.components||u.some((g)=>l.components[g]!==!0))throw await this.cancelSession(r.session_id),Error("Server did not attest the requested Session policy; cancellation requested.")}if(e.runtimeProfile&&a.experimental_runtime_profile!==e.runtimeProfile)throw await this.cancelSession(r.session_id),Error("Server did not attest the requested runtime profile; cancellation requested.");return a}async getEvents(e,s=-1,r={}){try{return await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/events?after_seq=${s}&limit=500${r.waitMs?`&wait_ms=${r.waitMs}`:""}`,r.signal?{signal:r.signal}:{})}catch(a){if(!(a instanceof C)||a.status!==403&&a.status!==404)throw a;return{session:await this.getSession(e),items:[],next_seq:s}}}async getMessages(e,s){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/messages?first=500${s===void 0?"":`&after_seq=${s}`}`)}async getAttachments(e,s){try{return(await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/attachments${s?`?view=${s}`:""}`)).items??[]}catch(r){if(r instanceof C&&(r.status===403||r.status===404))return[];throw r}}async requireSessionAttachments(){let e=await this.request("/deployment",{headers:{"cache-control":"no-cache"}});if(e.session_attachments!==!0){let s=typeof e.reason_version==="string"&&/^\d+\.\d+(?:\.\d+)?$/.test(e.reason_version)?`Agent ${e.reason_version}`:null,r=typeof e.commit_sha==="string"&&/^[a-f0-9]{40,64}$/i.test(e.commit_sha)?`server ${e.commit_sha.slice(0,12)}`:null,a=[s,r].filter(Boolean).join(", ");throw Error(`This server does not support Session image attachments: ${new URL(this.credentials.apiOrigin).host}${a?` (${a})`:""}. The API server needs an attachment-capable deployment; updating the Agent version alone is not enough. Your image was not sent; retry after the server update.`)}}async sendMessage(e,s,r={}){if(r.attachments?.length)await this.requireSessionAttachments();return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/messages`,{method:"POST",body:{message:s,...r.attachments?.length?{attachments:r.attachments}:{},...r.model?{model:r.model}:{},...r.reasoningEffort?{reasoning_effort:r.reasoningEffort}:{},...r.target?{target:r.target}:{},...r.delivery?{delivery:r.delivery}:{}}})}async steerQueuedMessage(e,s){await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/messages/${encodeURIComponent(s)}/steer`,{method:"POST",body:{}})}async withdrawQueuedMessage(e,s){await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/messages/${encodeURIComponent(s)}/queued`,{method:"DELETE"})}async getConversation(e){let s=[],r=null;for(let a=0;a<50;a+=1){let l=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/conversation${r?`?after=${encodeURIComponent(r)}`:""}`);if(s.push(...l.items??[]),!l.has_next_page||!l.end_cursor)break;r=l.end_cursor}return s}createSharedLink(e,s){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/shared-links`,{method:"POST",body:{url:s.url,...s.label?{label:s.label}:{},...s.expiresInSeconds!==void 0?{expires_in_seconds:s.expiresInSeconds}:{}}})}sessionAction(e,s,r={}){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/${s}`,{method:"POST",body:r})}renameSession(e,s){return this.sessionAction(e,"rename",{title:s||null})}moveSessionToProject(e,s){return this.sessionAction(e,"project",{project_id:s})}compactSession(e){return this.sessionAction(e,"compact")}retrySession(e){return this.sessionAction(e,"retry")}rewindSession(e,s){return this.sessionAction(e,"rewind",{message_id:s.messageId,content:s.content,request_id:s.requestId})}forkSession(e,s){return this.sessionAction(e,"fork",{...s.message?{message:s.message}:{},client_session_id:s.clientSessionId})}cancelSession(e,s={}){return this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}/cancel`,{method:"POST",body:s.mode==="hard"?{mode:"hard"}:{}})}sessionPath(e,s=""){return`/organizations/${encodeURIComponent(this.credentials.orgId)}/sessions/${encodeURIComponent(e)}${s}`}async archiveSession(e){await this.request(this.sessionPath(e,"/archive"),{method:"POST",body:{}})}async unarchiveSession(e){await this.request(this.sessionPath(e,"/unarchive"),{method:"POST",body:{}})}async deleteSession(e){await this.request(this.sessionPath(e),{method:"DELETE"})}async listSessionTags(e){return m(x,await this.request(this.sessionPath(e,"/tags")),"invalid_session_tags").tags}async appendSessionTags(e,s){let r=await this.request(this.sessionPath(e,"/tags"),{method:"POST",body:{tags:s}});return m(x,r,"invalid_session_tags").tags}async sessionInsight(e,s=!1){let r=await this.request(this.sessionPath(e,s?"/insights/generate":"/insights"),s?{method:"POST",body:{}}:{});return m(ae,r,"invalid_session_insight")}async listAutomations(){let e=[],s=null;for(let r=0;r<20;r+=1){let a=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/automations?first=100${s?`&after=${encodeURIComponent(s)}`:""}`),l=m(oe,a,"invalid_automation_list");if(e.push(...l.items),s=l.has_next_page?l.end_cursor??null:null,!s)break}return e}async createScheduledAutomation(e,s){let r=`/organizations/${encodeURIComponent(this.credentials.orgId)}/automations`,a=m(A,await this.request(r,{method:"POST",body:{name:e.name,instructions:e.instructions,...e.repo?{repo:e.repo.full_name,provider:e.repo.provider}:{}}}),"invalid_automation");try{await this.request(`${r}/${encodeURIComponent(a.id)}/triggers`,{method:"POST",body:s})}catch(l){throw await this.deleteAutomation(a.id).catch(()=>{return}),l}return a}async setAutomationEnabled(e,s){await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/automations/${encodeURIComponent(e)}`,{method:"PATCH",body:{enabled:s}})}async deleteAutomation(e){await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/automations/${encodeURIComponent(e)}`,{method:"DELETE"})}async transcribe(e,s){let r=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/transcribe`,{method:"POST",raw:{bytes:e,contentType:s}});return m(n({transcript:t()}),r,"invalid_transcript").transcript}async listMcpServers(){let e=await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/mcp-servers`);return m(ie,e,"invalid_mcp_server_list").items}async setSkillEnabled(e,s){await this.request(`/organizations/${encodeURIComponent(this.credentials.orgId)}/skills/${encodeURIComponent(e)}`,{method:"PUT",body:{is_enabled:s}})}}
|
|
3
|
+
export{ya,be,wa,C,eo,me};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{te}from"./vm-hands-entry-lite-9g52kxyj.js";import{U,H,R}from"./vm-hands-entry-lite-v4hr9x9h.js";import{ge,Lt,ti,ko,xo,ur}from"./vm-hands-entry-lite-f8p11q6h.js";import{mt}from"./vm-hands-entry-lite-pxtycfdv.js";import{v,dr,Co,pt,ht}from"./vm-hands-entry-lite-0wb1n769.js";import{b,m}from"./vm-hands-entry-lite-yvws5zpx.js";import{s,St,Mc}from"./vm-hands-entry-lite-zawytz09.js";import{Vi,I,t,V,o,_,tl,Pt,ca,d,n,we,A,$e,c,i,Gi}from"./vm-hands-entry-lite-k5ytpgzz.js";import{Xe,G}from"./vm-hands-entry-lite-8xv6c0rm.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{randomUUID as X}from"crypto";import{spawn as ke}from"child_process";import{existsSync as Y,lstatSync as de,mkdirSync as Oe,readFileSync as Me,realpathSync as q,rmSync as Te,writeFileSync as je}from"fs";import{dirname as Le,join as k,relative as We,sep as Ne}from"path";var he=["process.run.v1","process.full.v1"],be=600000,ve=1800000,ye=20000,re="process.cancel.v1",oe=n({action:i("start"),request_id:t().uuid(),command:t().min(1).max(16000).refine((e)=>!e.includes("\x00")),cwd:t().min(1).max(4096).refine((e)=>!e.includes("\x00")&&!e.startsWith("/")&&!e.split(/[\\/]/).includes("..")).describe("Path relative to the granted device root; omit to use that root. Must not start with /, contain a .. path segment, or contain a NUL character.").optional(),mode:c(["host","confined"]).default("host"),timeout_ms:o().int().min(1000).max(ve).default(be).describe("Absolute process budget including queue and startup time. Defaults to ten minutes; longer explicit requests require the selected root's advertised max_timeout_ms. Retrying never renews the deadline.")}).strict(),B={device_id:t().uuid(),root_id:t().uuid()},Se=A("action",[oe.extend(B),n({...B,action:i("inspect"),process_id:t().uuid(),after:o().int().min(0).default(0),wait_ms:o().int().min(0).max(ye).default(0).describe("Wait for new output or a state change, bounded by this call's wait budget. Expiring this wait does not cancel the process or extend its deadline.")}).strict(),n({...B,action:i("cancel"),process_id:t().uuid()}).strict()]),qe=Vi(Se,{io:"input"}),Je=oe.extend({process_brain_fence:t().uuid(),process_expires_at:I.datetime()}).strict(),W=n({version:i(1),process_id:t().uuid(),state:c(["starting","running","exited","cancelled","expired","uncertain"]),exit_code:o().int().nullable(),first_cursor:o().int().min(0),next_cursor:o().int().min(0),truncated:_(),observed_at:I.datetime(),output:d(n({cursor:o().int().min(1),stream:c(["stdout","stderr"]),text:t().max(32768)}).strict()).max(128)}).strict().refine((e)=>{if(Buffer.byteLength(JSON.stringify(e))>1e5||e.next_cursor<e.first_cursor-1)return!1;if((e.state==="starting"||e.state==="running"||e.state==="uncertain")&&e.exit_code!==null)return!1;if(e.state==="exited"&&(e.exit_code===null||e.exit_code<0||e.exit_code>255))return!1;if(e.state==="cancelled"&&e.exit_code!==130||e.state==="expired"&&e.exit_code!==124)return!1;let p=e.first_cursor-1;for(let l of e.output){if(l.cursor<=p||l.cursor>e.next_cursor)return!1;p=l.cursor}return!0});function Jn(e){return he.includes(e)}var ze=n({operation_constraints:$e(t(),Pt())}),Ge=n({ready:i(!0),version:i(1),execution_mode:c(["host","confined"]),max_timeout_ms:o().int().min(1000).optional()});var xe=n({version:i(1),process_id:t().uuid(),state:c(["queued","cancelled_before_start","not_started"]),exit_code:tl(),output:d(ca()).length(0),first_cursor:i(0),next_cursor:i(0),truncated:i(!1),cancellation_requested:i(!1),reason_code:c(["cancelled_before_start","process_journal_capacity","path_not_found","process_timeout_unsupported"]).optional(),expires_at:I.datetime().optional().describe("Accepted absolute process deadline. Reading, waiting and retrying do not extend it.")}).strict(),Pe=n({...W.shape,state:c(["queued","starting","running","exited","cancelled","expired","uncertain","cancelled_before_start","not_started"]),observed_at:I.datetime().optional(),expires_at:I.datetime().optional().describe("Accepted absolute process deadline. Reading, waiting and retrying do not extend it."),cancellation_requested:_(),reason_code:t().nullable().optional(),execution_authority:i("lost").optional().describe("Historical receipt only; the current Brain cannot control this older-generation process."),recovery:n({cause:i("brain_generation_changed"),terminal_confirmed:_(),next_step:c(["inspect_until_terminal","reconcile_effects_before_new_intent"])}).strict().optional().describe("Historical process recovery only. An unconfirmed outcome forbids replay. A confirmed terminal observation proves the old process stopped, not that its command had no effects. Reconcile the result; only restart still-needed, safely repeatable work with a new request_id and current authority. Respect user cancellation."),last_observed_state:W.shape.state.or(i("cancelled_before_start")).nullable().optional().describe("Last saved observation before authority was lost; a running observation does not establish current child liveness.")}).strict(),Be=Vi(Pe),Fe=we([W,xe.refine((e)=>e.state==="cancelled_before_start")]),F=n({version:i(1),process_id:t().uuid(),state:c(["exited","cancelled","expired"]),exit_code:o().int().min(0).max(255),observed_at:I.datetime()}).strict().refine((e)=>(e.state!=="cancelled"||e.exit_code===130)&&(e.state!=="expired"||e.exit_code===124)),Ee=n({process_terminal_observation:F}).strict();function Ra(e,a){let p=Ee.safeParse(e);return p.success&&p.data.process_terminal_observation.process_id===a?p.data:null}var Ta="preview.serve.v1",Ia=43200000;var Da=3,ne="preview.open.v1",se=1,fo="gid_proxy_v1",Oa="egress",mo=/^(?:\*\.)?[a-z0-9](?:[a-z0-9.-]{0,251}[a-z0-9])?(?::[1-9][0-9]{0,4})?$/,Re=n({version:i(fo),allowed_domains:d(t().max(260).regex(mo)).max(1024)}).strict(),Ie=Gi((e)=>te(e)!==null,"invalid workspace"),De=n({version:i(1),request_id:V(),session_id:V(),command:t().min(1).max(16000).refine((e)=>!e.includes("\x00")),port:o().int().min(1024).max(65535),workspace:Ie,egress:Re.optional()}).strict(),Na=De.extend({expires_at:I.datetime()}).strict();var Ce=4,Ae=5000;function K(e,a,p){let l=null;try{l=dr(e)}catch{}Co({deviceRelayUrl:l?.deviceRelayUrl??"",binding:l?.binding??null,jobId:a,port:l?.binding.port??0,reason:l?p:"binding_invalid"})}function ie(e){let a=new Map;return{open(p){let l=(w)=>K(p,e.claim.operation_id,w),P;try{P=dr(p)}catch{return l("binding_invalid")}let{binding:h,deviceRelayUrl:N}=P,S=e.claim.owner;if(!S||h.organizationId!==S.organization_id||h.userId!==S.user_id||h.deviceId!==S.device_id||h.rootId!==e.claim.root_id||h.jobId!==e.claim.operation_id||h.fenceId!==e.claim.operation_id||h.generation!==se||h.expiresAtMs>Math.min(Date.now()+v.lifetimeMs+Ae,e.expiresAtMs))return l("binding_mismatch");if(h.expiresAtMs<=Date.now())return l("binding_expired");if(a.get(h.port)?.abort(),a.delete(h.port),a.size>=Ce)return l("preview_capacity");let O=new AbortController;a.set(h.port,O);let y=ht({binding:h,deniedPorts:e.deniedPorts,readCurrentJob:async()=>{if(O.signal.aborted)return null;let w=await e.inspect();return w?{binding:h,executorLaunchId:e.executorLaunchId,job:w}:null}});pt({binding:h,deviceRelayUrl:N,port:y,signal:O.signal}).then((w)=>w.closed,(w)=>{let x=w instanceof Error?w.message:"preview_failed";if(x!=="preview_not_authorized")process.stderr.write(`${JSON.stringify({event:"worker_preview.open_failed",job_id:h.jobId,port:h.port,reason_code:x})}
|
|
3
|
+
`)}).finally(()=>{if(a.get(h.port)===O)a.delete(h.port)})},dispose(){for(let p of a.values())p.abort();a.clear()}}}class lr extends r{observation;constructor(e){super("process_authority_lost","Process authority was lost; the owned process group has stopped.");this.observation=e}}var le=256,J=new Map,pe="preview.serve.v1",T=new Map;function ue(e){let a=T.get(e.operation_id);if(a){if(a.claim!==e)throw D("process_authority_lost");return a}if(T.size>=le)throw D("process_journal_capacity");let p={claim:e,executing:!1,cancelRequested:!1,phase:"pending"};return T.set(e.operation_id,p),p}function ae(e){return{version:1,process_id:e,state:"cancelled_before_start",exit_code:null,output:[],first_cursor:0,next_cursor:0,truncated:!1,cancellation_requested:!1,reason_code:"cancelled_before_start"}}var ce=(e)=>new Promise((a)=>setTimeout(a,e)),D=(e="process_outcome_uncertain")=>new r(e,"The managed process outcome could not be confirmed; inspect its saved receipt before starting another intent.");function Ve(e=s(),a=He()){let p=Le(mt({},e)),l=We(St(e),p),[P,...h]=l.split(Ne);return{directory:k(a,l,"processes"),previous:[k(p,"processes"),...P==="reason"?[k(a,"ara",...h,"processes")]:[]]}}function He(){if(process.platform!=="darwin")throw new r("process_unavailable","Managed Mac process execution is unavailable.");let e=Mc();if(!e)throw new r("process_unavailable","The private per-user process directory is unavailable.");return e}async function Xn(e){if(!e.claim.owner||e.signal.aborted||e.expiresAtMs<=Date.now())throw D("process_authority_lost");let a=ue(e.claim);if(a.executing)throw D("process_busy");if(a.executing=!0,a.cancelRequested)return a.phase="settling",ae(e.claim.operation_id);a.phase="starting";let p=e.journals??Ve();Oe(p.directory,{recursive:!0,mode:448});let l=Lt({runtimeDirectory:q(p.directory),previousRuntimeDirectories:(p.previous??[]).filter((u)=>Y(u)).map((u)=>q(u)),root:e.root,runId:JSON.stringify([e.claim.owner,e.claim.run_id,e.claim.root_id,e.claim.operation_id]),maxScopes:le,folders:[e.root,e.cwd]});try{for(let u of[e.root,e.cwd])if(!ge(q(u),l.journalDirectory))throw new r("process_journal_inside_workspace","The selected root contains the private process journal. Select an existing narrower granted workspace root outside the journal; no command was dispatched.")}catch(u){throw l.disposeSocket(),u}let P=de(l.journalDirectory),h=e.claim.capability===pe,N=()=>J.set(e.claim.operation_id,{path:l.journalDirectory,ino:P.ino,dev:P.dev,anyCompletion:h}),S=l.launchDirectory,O=k(S,"config.json"),y={url:"",transport:"local_job_ipc",directShell:{mode:e.mode,executable:e.shell,jobId:e.claim.operation_id},workerVersion:U,protocolVersion:2,workerArtifactSha256:R,workerEntrypoint:H,targetGeneration:1,fenceId:X(),...process.platform==="win32"?{bashExecutable:Xe()}:{},workRoot:e.root,workspaceAliasPath:e.root,repoPath:e.cwd,jobEnvPath:k(S,"unused.env"),replSocketPath:k(S,"unused.sock"),readyPath:k(S,"ready.json"),directTerminalReceiptPath:k(S,"terminal.json"),launchId:X(),expiresAtMs:e.expiresAtMs+5000,bashTimeoutMs:60000,replTimeoutMs:1000,allowedTools:["bash"],managedJobs:{journalDirectory:l.journalDirectory,scopeId:l.scopeId},jobControlSocketPath:l.socketPath,...e.prefix?{bashCommandPrefix:e.prefix}:{},...e.jobsUser?{jobsUser:e.jobsUser}:{}},w;try{je(O,JSON.stringify(y),{mode:384});let u=ko({configPath:O,root:e.cwd,grantedRoot:e.root,workRoot:e.root,temporaryDirectory:S});w=e.spawnWorker?.(O,y)??ke(u.command,u.args,{...u.options,env:e.environment,stdio:[xo,"ignore","ignore"]})}catch(u){throw l.disposeSocket(),u}let x=!1,z=new Promise((u,g)=>{w.once("exit",(f)=>{x=!0,u(f)}),w.once("error",(f)=>{x=!0,g(f)})});z.catch(()=>{});let me={root:e.root,runId:e.claim.run_id,scopeId:l.scopeId,socketPath:l.socketPath,generation:1,fenceId:y.fenceId,executorLaunchId:y.launchId,expiresAtMs:y.expiresAtMs},M=async(u)=>{let g=await ti(me,{type:"job",version:2,generation:1,id:X(),jobId:e.claim.operation_id,...u==="start"?{action:u,input:{script:e.command,leaseExpiresAtMs:e.expiresAtMs}}:u==="inspect"?{action:u,input:{after:0}}:u==="probe"?{action:"inspect",input:{after:Number.MAX_SAFE_INTEGER}}:{action:u,input:{}}},new AbortController().signal);if(!g.ok)throw D(g.error);return g.job},j=!1,L=!1,Q,Z=()=>{j=!0,ur(w,"SIGTERM")};e.signal.addEventListener("abort",Z,{once:!0});let C,ee=0,_e=async(u)=>{let g=[...u.output],f={version:1,process_id:e.claim.operation_id,state:u.state,exit_code:u.exitCode,first_cursor:u.firstCursor,next_cursor:u.nextCursor,truncated:u.truncated,output:g,observed_at:new Date().toISOString()};while(Buffer.byteLength(JSON.stringify(f))>90000&&g.length)g.shift(),f.truncated=!0,f.first_cursor=g[0]?.cursor??f.next_cursor+1;C=W.parse(f),await e.emit(C),ee=Date.now()};try{let u=Math.min(Date.now()+1e4,e.expiresAtMs);while(!Y(y.readyPath)){if(x)throw new r("process_start_failed","The managed process supervisor exited before accepting a command; no command was dispatched.");if(e.signal.aborted||Date.now()>=u)throw D("process_start_unconfirmed");await ce(25)}let g=JSON.parse(Me(y.readyPath,"utf8"));if(g.launchId!==y.launchId||g.fenceId!==y.fenceId||g.workerArtifactSha256!==R)throw D();if(e.signal.throwIfAborted(),a.cancelRequested)return ae(e.claim.operation_id);let f;try{L=!0,f=await M("start")}catch(E){if(!(E instanceof r)||E.code!=="hands_job_result_unknown")throw E;f=await M("inspect")}if(a.phase="running",a.cancel=async()=>{await M("cancel")},h&&e.preview)a.tunnels=ie({claim:e.claim,executorLaunchId:y.launchId,expiresAtMs:e.expiresAtMs,deniedPorts:e.preview.deniedPorts,inspect:async()=>a.phase==="running"&&!x?await M("probe"):null});if(a.cancelRequested)await a.cancel(),f=await M("inspect");for(;;){if(!["starting","running"].includes(f.state))a.phase="settling",a.cancel=void 0;if(!C||C.state!==f.state||C.next_cursor!==f.nextCursor&&Date.now()-ee>=5000)await _e(f);if(!["starting","running"].includes(f.state))break;if(e.signal.aborted||x)throw D();await ce(1000);try{f=await M("inspect"),Q=void 0}catch(E){if(!(E instanceof r)||E.code!=="hands_job_result_unknown"||e.signal.aborted||x||Date.now()-(Q??=Date.now())>120000)throw E}}if(!C||C.state==="uncertain")throw D();return C}finally{if(a.phase="settling",a.cancel=void 0,a.tunnels?.dispose(),a.tunnels=void 0,await a.cancelInFlight?.catch(()=>{}),e.signal.removeEventListener("abort",Z),!x&&!j)ur(w,"SIGTERM");let u,g=await Promise.race([z.then((f)=>({code:f})),new Promise((f)=>{u=setTimeout(()=>f(null),6000)})]).finally(()=>{clearTimeout(u)});if(!g){try{ur(w,"SIGKILL")}catch{}try{await z}finally{if(x)l.disposeSocket()}throw D("process_cleanup_unconfirmed")}try{if((j||e.signal.aborted)&&g.code===0&&L){b(S);let f=JSON.parse(m(y.directTerminalReceiptPath)),E=F.safeParse(f.observation);if(Object.keys(f).length===4&&f.launch_id===y.launchId&&f.fence_id===y.fenceId&&f.scope_id===l.scopeId&&E.success&&E.data.process_id===e.claim.operation_id){if(h)N();throw new lr(E.data)}}}catch(f){if(f instanceof lr)throw f}finally{if(x)l.disposeSocket()}if(g.code!==0&&!j&&L)throw D("process_cleanup_unconfirmed");if(!j&&g.code===0&&(C&&["exited","cancelled","expired"].includes(C.state)||!L&&a.cancelRequested)||h&&g.code===0&&!L)N()}}async function go(e,a){if(a.kind===ne&&e.capability===pe){let P=T.get(e.operation_id);if(P?.claim===e&&P.tunnels)P.tunnels.open(a.payload);else K(a.payload,e.operation_id,"server_not_running");return!0}if(a.kind!==re||!Jn(e.capability)||!e.owner||a.payload.process_id!==e.operation_id)return!1;let p=T.get(e.operation_id);if(p&&p.claim!==e)return!1;let l=ue(e);if(l.cancelRequested=!0,l.phase==="running"&&l.cancel)l.cancelInFlight??=l.cancel(),await l.cancelInFlight;return!0}function Yn(e,a){T.delete(e);let p=J.get(e);if(!p||a!=="succeeded"&&!p.anyCompletion)return J.delete(e),!1;try{let l=de(p.path);if(!l.isDirectory()||l.isSymbolicLink()||l.ino!==p.ino||l.dev!==p.dev||!G(l)||q(p.path)!==p.path||Y(k(p.path,"owner.lock")))return!1;return Te(p.path,{recursive:!0}),J.delete(e),!0}catch{return!1}}
|
|
4
|
+
export{Jn,Ra,Ta,Ia,Da,fo,Oa,mo,Na,lr,Xn,go,Yn};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Rt,Tt}from"./vm-hands-entry-lite-8xv6c0rm.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{request as Ie}from"http";import{pipeline as We}from"stream";import{constants as ne,createBrotliCompress as Re,createGzip as Be}from"zlib";import{WebSocket as U}from"ws";import{randomBytes as Ee,timingSafeEqual as Ae}from"crypto";import{createServer as Te}from"net";var v={chunk:32768,upload:1048576,total:536870912,streams:16,queued:512,buffered:262144,relayBuffered:8388608,requestMs:30000,lifetimeMs:600000,authorizationMs:2000,window:8};function J(e){return e!==null&&typeof e==="object"&&!Array.isArray(e)}function L(e,t,n=Number.MAX_SAFE_INTEGER){return typeof e==="number"&&Number.isSafeInteger(e)&&e>=t&&e<=n}function fe(e){return typeof e==="string"&&/^[a-zA-Z0-9_-]{1,160}$/.test(e)}function we(e,t){let n=Buffer.from(e,"latin1");return Buffer.concat([Buffer.from([n.length]),n,t])}function C(e){if(!J(e)||Object.keys(e).length!==12||![e.organizationId,e.userId,e.runId,e.deviceId,e.rootId,e.jobId,e.fenceId].every(fe)||!L(e.attachmentRevision,0)||!L(e.grantRevision,1)||!L(e.generation,1)||!L(e.port,1024,65535)||!L(e.expiresAtMs,1))throw Error("preview_binding_invalid");return Object.freeze({...e})}function Mt(e,t){return Object.keys(e).every((n)=>e[n]===t[n])}function H(e){if(e.length>4096||!e.startsWith("/")||e.startsWith("//")||/[\\\x00-\x20\x7f#]/.test(e))throw Error("preview_path_invalid");let t=decodeURIComponent(e);if(t.startsWith("//")||/[\\\x00-\x1f\x7f]/.test(t))throw Error("preview_path_invalid");return e}function pe(e){return Array.isArray(e)&&e.length<=64&&e.every((t)=>Array.isArray(t)&&t.length===2&&typeof t[0]==="string"&&/^[a-zA-Z0-9-]{1,80}$/.test(t[0])&&typeof t[1]==="string"&&t[1].length<=4096&&!/[\x00-\x1f\x7f]/.test(t[1]))}function z(e,t=v.chunk){if(e.length>Math.ceil(t/3)*4||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e))throw Error("preview_data_invalid");let n=Buffer.from(e,"base64");if(n.length>t)throw Error("preview_data_too_large");return n}function me(e){if(Array.isArray(e))return Buffer.concat(e);if(typeof e==="string")return Buffer.from(e,"utf8");if(e instanceof ArrayBuffer)return Buffer.from(e);return e}function di(e){if(Buffer.byteLength(e)>v.upload*1.4+300000)throw Error("preview_frame_too_large");let t=JSON.parse(e);if(!J(t))throw Error("preview_frame_invalid");if(t.type==="hello")return{type:"hello",binding:C(t.binding),...L(t.messages,v.chunk,v.upload)?{messages:t.messages}:{},...L(t.window,1,v.window)?{window:t.window}:{},...t.bytes===!0?{bytes:!0}:{}};if(t.type==="refused"&&typeof t.reason==="string"&&/^[a-z_]{1,32}$/.test(t.reason))return{type:"refused",binding:C(t.binding),reason:t.reason};if(!fe(t.id))throw Error("preview_frame_invalid");if(t.type==="end"||t.type==="cancel"||t.type==="credit")return{type:t.type,id:t.id};if(t.type==="ws"&&typeof t.protocol==="string"&&/^[a-zA-Z0-9._-]{0,100}$/.test(t.protocol))return{type:"ws",id:t.id,protocol:t.protocol};if(t.type==="data"&&typeof t.data==="string"&&typeof t.binary==="boolean")return z(t.data,v.upload),{type:"data",id:t.id,data:t.data,binary:t.binary};if(t.type==="head"&&L(t.status,200,599)&&pe(t.headers))return{type:"head",id:t.id,status:t.status,headers:t.headers};if(t.type==="request"&&typeof t.method==="string"&&/^(GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS)$/.test(t.method)&&typeof t.path==="string"&&pe(t.headers)&&typeof t.body==="string"&&typeof t.upgrade==="boolean")return z(t.body,v.upload),{type:"request",id:t.id,method:t.method,path:H(t.path),headers:t.headers,body:t.body,upgrade:t.upgrade};throw Error("preview_frame_invalid")}function re(e){let t=[...e],n=new Set(t.filter(([o])=>o.toLowerCase()==="connection").flatMap(([,o])=>o.toLowerCase().split(",").map((i)=>i.trim()))),s=new Set(["authorization","proxy-authorization","cookie","set-cookie","host","origin","referer","connection","upgrade","keep-alive","transfer-encoding","te","trailer","content-length","forwarded","alt-svc","service-worker-allowed","clear-site-data","refresh"]);return t.filter(([o])=>!s.has(o.toLowerCase())&&!n.has(o.toLowerCase())&&!/^(x-forwarded-|x-ara-|sec-websocket-|access-control-)/i.test(o))}async function te(e){let t;try{return await Promise.race([Promise.resolve().then(e).then((n)=>n===!0||(n===!1?!1:void 0),()=>{return}),new Promise((n)=>{t=setTimeout(()=>n(void 0),v.authorizationMs)})])}finally{clearTimeout(t)}}async function en(e){return await te(e)===!0}function V(e,t){let n=new URL(e);if(n.username||n.password||n.search||n.hash||!(n.protocol==="wss:"||n.protocol==="ws:"&&["127.0.0.1","[::1]"].includes(n.hostname))||!new RegExp(`^/${t}/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]{32,}$`).test(n.pathname))throw Error("preview_relay_invalid");return n.href}function dr(e){if(!J(e)||Object.keys(e).length!==2||typeof e.deviceRelayUrl!=="string")throw Error("preview_open_invalid");return{binding:C(e.binding),deviceRelayUrl:V(e.deviceRelayUrl,"device")}}function Ya(e){if(!J(e)||Object.keys(e).length!==1||!("binding"in e))throw Error("preview_close_invalid");return{binding:C(e.binding)}}var ge="x-preview-connection";async function be(e,t){if(t.aborted)throw Error("preview_closed");let n=Ee(32).toString("base64url"),s=new Set,o=!1,i=Te((c)=>{if(o||t.aborted||s.size>=v.streams*2)return c.destroy();s.add(c);let d=new AbortController;c.once("close",()=>{s.delete(c),d.abort()}),c.on("error",()=>c.destroy()),c.setTimeout(2000,()=>c.destroy());let g=Buffer.alloc(0),w=(m)=>{g=Buffer.concat([g,m]);let f=g.indexOf(`\r
|
|
3
|
+
\r
|
|
4
|
+
`);if(f<0){if(g.length>16384)c.destroy();return}if(c.pause(),c.off("data",w),f>16384||g.length>v.upload+16384)return c.destroy();u(g,f).catch(()=>c.destroy())};c.on("data",w);async function u(m,f){let b=m.subarray(0,f).toString("latin1").split(`\r
|
|
5
|
+
`),_=/^(GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS) (\S+) HTTP\/1\.1$/.exec(b.shift()??"");if(!_)throw Error("preview_request_invalid");H(_[2]);let k=!1,O=0,T=[];for(let B of b){let S=/^([a-zA-Z0-9-]+):[ \t]*([^\x00-\x08\x0a-\x1f\x7f]*)$/.exec(B);if(!S)throw Error("preview_header_invalid");if(S[1].toLowerCase()===ge){O++;let N=Buffer.from(S[2].trim());k=N.length===n.length&&Ae(N,Buffer.from(n))}else if(S[1].toLowerCase()!=="host")T.push(B)}if(!k||O!==1||o||d.signal.aborted)throw Error("preview_connection_denied");let P=await e.connect(d.signal);if(o||d.signal.aborted)throw P.destroy(),Error("preview_closed");s.add(P),P.on("error",()=>c.destroy()),P.once("close",()=>{s.delete(P),c.destroy()}),c.once("close",()=>P.destroy()),c.setTimeout(0);let h=[`${_[1]} ${_[2]} HTTP/1.1`,`Host: 127.0.0.1:${P.remotePort}`,...T,"",""].join(`\r
|
|
6
|
+
`);P.write(Buffer.concat([Buffer.from(h,"latin1"),m.subarray(f+4)])),P.pipe(c),c.pipe(P),c.resume()}});await new Promise((c,d)=>{i.once("error",d),i.listen(0,"127.0.0.1",c)});let a=i.address();if(!a||typeof a==="string")throw i.close(),Error("preview_bind_failed");function l(){if(o)return;o=!0,t.removeEventListener("abort",l);for(let c of s)c.destroy();s.clear(),i.close()}if(t.addEventListener("abort",l,{once:!0}),t.aborted)l();return{port:a.port,headers:{[ge]:n},close:l}}var Le=60000,Ce=1e4,Ne=5000,$e=/^(?:text\/(?!event-stream)|application\/(?:(?:x-)?javascript|json|[a-z.+-]*\+json|xml|[a-z.+-]*\+xml|wasm)|image\/svg\+xml)/i;function Me(e,t,n,s){let o=(c)=>t.find(([d])=>d.toLowerCase()===c)?.[1],i=(c)=>s.find(([d])=>d.toLowerCase()===c)?.[1],a=Number(i("content-length")??Number.NaN);if(e!=="GET"||n!==200||o("range")!==void 0||i("content-encoding")!==void 0||!$e.test(i("content-type")??"")||/\bno-transform\b/i.test(i("cache-control")??"")||a<1024)return null;let l=(c)=>new RegExp(`(?:^|,)\\s*${c}\\s*(?:,|$|;\\s*q=(?:1|0?\\.0*[1-9]))`,"i").test(o("accept-encoding")??"");return l("br")?"br":l("gzip")?"gzip":null}function Oe(e,t){let n=e.filter(([s])=>s.toLowerCase()==="vary").map(([,s])=>s).join(", ");return[...e.filter(([s])=>!["vary","etag","content-md5"].includes(s.toLowerCase())),...e.filter(([s])=>s.toLowerCase()==="etag").map(([s,o])=>[s,o.startsWith("W/")?o:`W/${o}`]),["Content-Encoding",t],["Vary",n.split(",").some((s)=>/^\s*(?:accept-encoding|\*)\s*$/i.test(s))?n:n?`${n}, Accept-Encoding`:"Accept-Encoding"]]}async function Co(e){process.stderr.write(`${JSON.stringify({event:"worker_preview.open_refused",job_id:e.jobId,port:e.port,reason_code:e.reason})}
|
|
7
|
+
`);let t=e.binding,n;try{n=V(e.deviceRelayUrl,"device")}catch{return}if(!t)return;await new Promise((s)=>{let o=new U(n,{followRedirects:!1,perMessageDeflate:!1,maxPayload:4096}),i=setTimeout(()=>{o.terminate(),s()},v.authorizationMs*2);o.addEventListener("open",()=>{o.send(JSON.stringify({type:"refused",binding:t,reason:e.reason})),o.close(1000,`worker_refused_${e.reason}`)}),o.addEventListener("error",()=>{clearTimeout(i),s()}),o.addEventListener("close",()=>{clearTimeout(i),s()})})}async function Fe(e,t){let n=Date.now()+Ce,s;for(;;){if(!t())return"closed";let o=s??=e.refusal().finally(()=>{s=void 0}),i,a=await Promise.race([o.catch(()=>"port_unproved"),new Promise((l)=>{i=setTimeout(()=>l("port_check_timeout"),v.authorizationMs)})]).finally(()=>clearTimeout(i));if(a===null)return null;if(!["listener_unproved","port_check_timeout"].includes(a)||Date.now()+500>=n)return a;await new Promise((l)=>setTimeout(l,500))}}async function pt(e){let t=C(e.binding),n=()=>!e.signal.aborted&&Date.now()<t.expiresAtMs,s=t.expiresAtMs>Date.now()+v.lifetimeMs+Ne?"binding_mismatch":await Fe(e.port,n);if(s)throw await Co({deviceRelayUrl:e.deviceRelayUrl,binding:t,jobId:t.jobId,port:t.port,reason:s}),Error("preview_not_authorized",{cause:s});let o=V(e.deviceRelayUrl,"device"),i=await be(e.port,e.signal),a;try{a=new U(o,{followRedirects:!1,perMessageDeflate:!1,maxPayload:v.upload*1.4+300000})}catch(p){throw i.close(),p}let l=new Map,c=!1,d=!1,g=0,w=!1,u,m,f,b=new Promise((p)=>{f=p}),_,k,O=new Promise((p,y)=>{_=p,k=y}),T=!1,P=(p)=>{let y=Buffer.isBuffer(p)?p:JSON.stringify(p);if(g+=Buffer.byteLength(y),!n()||d||a.readyState!==U.OPEN)return h(n()?"relay_closed":"expired");if(a.bufferedAmount>v.relayBuffered)return h("relay_backlog");if(g>v.total)return h("quota");a.send(y)};function h(p="closed"){if(d)return;d=!0,clearInterval(N),clearTimeout(S),e.signal.removeEventListener("abort",B);for(let y of l.values())y.stop();l.clear(),i.close(),a.close(1000,`worker_${p}`),k(Error("preview_closed")),f()}let B=()=>h("aborted"),S=setTimeout(()=>h("pair_timeout"),v.requestMs),N=setInterval(async()=>{if(!n())return h(e.signal.aborted?"aborted":"expired");if(w)return;w=!0;try{let p=u??=Promise.resolve().then(()=>e.port.check()).finally(()=>{u=void 0}),y=await te(()=>p);if(y===!1)return h("port_refused");if(y){m=void 0;return}if(Date.now()-(m??=Date.now())>Le)return h("port_unknown");for(let E of l.values())E.stop()}finally{w=!1}},1000);if(e.signal.addEventListener("abort",B,{once:!0}),!n())h(e.signal.aborted?"aborted":"expired");a.addEventListener("open",()=>P({type:"hello",binding:t,messages:v.upload,window:v.window})),a.addEventListener("close",()=>h("relay_closed")),a.addEventListener("error",()=>h("relay_error")),a.addEventListener("message",(p)=>{try{if(!n()||d)return h(e.signal.aborted?"aborted":"expired");if(typeof p.data!=="string")throw Error("preview_frame_invalid");if(g+=Buffer.byteLength(p.data),g>v.total)return h("quota");let y=di(p.data);if(!c){if(y.type!=="hello"||!Mt(t,y.binding))return h("binding_mismatch");c=!0,T=y.bytes===!0,clearTimeout(S),_();return}if(y.type==="hello"||y.type==="refused")return h("invalid_frame");if(y.type==="request"){q(y).catch(()=>h("invalid_request"));return}let E=l.get(y.id);if(!E)return;if(y.type==="cancel"||y.type==="end")E.stop();else if(y.type==="credit"&&E.credit)E.credit();else if(y.type==="data"&&E.ws){if(E.ws.readyState!==U.OPEN||E.ws.bufferedAmount>v.buffered)return E.stop();let I=z(y.data,v.upload);E.ws.send(y.binary?I:I.toString("utf8"))}else h("invalid_frame")}catch{h("invalid_frame")}});async function q(p){if(l.has(p.id)||l.size>=v.streams)return h("stream_limit");if(!n())return h(e.signal.aborted?"aborted":"expired");let y=new AbortController,E,I,K,Q=0,R=(W=!1)=>{if(!l.delete(p.id))return;clearTimeout(E),y.abort(),I?.close(1000,"preview_closed"),K?.(),P({type:W?"end":"cancel",id:p.id})},ae={stop:()=>R(),credit:()=>{Q++,K?.()}};if(l.set(p.id,ae),E=setTimeout(R,v.requestMs),!await en(()=>e.port.check())||!n()||y.signal.aborted)return R();let de=H(p.path);if(p.upgrade){if(p.method!=="GET"||p.body)return R();let W=p.headers.find(([A])=>A.toLowerCase()==="sec-websocket-protocol")?.[1].split(",").map((A)=>A.trim());if(W?.some((A)=>!/^[a-zA-Z0-9._-]{1,100}$/.test(A))||(W?.length??0)>8)return R();I=new U(`ws://127.0.0.1:${i.port}${de}`,W,{headers:i.headers,followRedirects:!1,perMessageDeflate:!1,maxPayload:v.upload}),ae.ws=I,I.binaryType="arraybuffer",I.addEventListener("open",()=>{clearTimeout(E),P({type:"ws",id:p.id,protocol:I.protocol})}),I.addEventListener("message",(A)=>{let G=typeof A.data!=="string",M=me(A.data);if(M.length>v.upload)return R();P({type:"data",id:p.id,data:M.toString("base64"),binary:G})}),I.addEventListener("error",()=>R()),I.addEventListener("close",(A)=>R(A.wasClean));return}let xe=z(p.body,v.upload),ce=Ie({hostname:"127.0.0.1",port:i.port,path:de,method:p.method,headers:{...Object.fromEntries(re(p.headers)),...i.headers,connection:"close"},signal:y.signal,agent:!1,maxHeaderSize:16384},async(W)=>{try{let A=[];for(let F=0;F<W.rawHeaders.length;F+=2)A.push([W.rawHeaders[F],W.rawHeaders[F+1]]);let G=W.statusCode??502,M=Me(p.method,p.headers,G,A),ee=M==="br"?Re({flush:ne.BROTLI_OPERATION_FLUSH,params:{[ne.BROTLI_PARAM_QUALITY]:5}}):M==="gzip"?Be({level:6,flush:ne.Z_SYNC_FLUSH}):void 0;if(P({type:"head",id:p.id,status:G,headers:re(M?Oe(A,M):A)}),clearTimeout(E),ee)We(W,ee,()=>{});for await(let F of ee??W){let le=Buffer.from(F);for(let Z=0;Z<le.length;Z+=v.chunk){if(Q===0&&!y.signal.aborted)await new Promise((Se)=>{K=Se});if(K=void 0,y.signal.aborted)return;Q--;let ue=le.subarray(Z,Z+v.chunk);P(T?we(p.id,ue):{type:"data",id:p.id,data:ue.toString("base64"),binary:!0})}}R(!0)}catch{R()}});ce.on("error",()=>R()),ce.end(xe)}return await O,{close:h,closed:b}}import{execFile as ze}from"child_process";import{createRequire as He}from"module";import{win32 as X}from"path";var Ue=250,je=50,De=250,qe=4194304;function ye(e){let t=/^(?:\[([^\]]+)\]|([^:]+)):([0-9]{1,5})$/.exec(e??""),n=Number(t?.[3]);return t&&n<=65535?{address:t[1]??t[2],port:n}:null}function Ke(e){let t=[];for(let n of e.split(/\r?\n/)){let s=n.trim().split(/\s+/);if(s[0]!=="TCP"||s.length<5)continue;let o=ye(s[1]),i=ye(s[2]),a=Number(s.at(-1));if(!o||!i||!Number.isSafeInteger(a)||a<0)continue;t.push({pid:a,localAddress:o.address,localPort:o.port,remoteAddress:i.address,remotePort:i.port,listening:i.port===0})}return t}function Ge(e){if(e.localAddress==="0.0.0.0"||e.localAddress==="::")return`*:${e.localPort}`;return e.localAddress.includes(":")?`[${e.localAddress}]:${e.localPort}`:`${e.localAddress}:${e.localPort}`}var oe=(e)=>new Promise((t,n)=>ze(X.join(Rt("win32").split(";")[0],"NETSTAT.EXE"),["-ano"],{timeout:e,maxBuffer:qe,encoding:"utf8",windowsHide:!0,env:Tt()},(s,o)=>s?n(s):t(o)));function D(e){let t=X.normalize(e.startsWith("\\\\?\\")?e.slice(4):e);return t.length>3&&t.endsWith("\\")?t.slice(0,-1):t}function Ze(e,t){let n=e.toLowerCase(),s=t.toLowerCase();return s===n||s.startsWith(n.endsWith("\\")?n:`${n}\\`)}function Pe(e,t,n){let s=e.cwd(n),o=s?D(s):null;return o&&X.isAbsolute(o)&&Ze(t,o)?o:null}var j;function et(){if(j!==void 0)return j;if(j=null,process.platform!=="win32"||!["x64","arm64"].includes(process.arch))return null;let e;try{e=He(import.meta.url)("bun:ffi")}catch{return null}let{FFIType:t,ptr:n}=e,s,o;try{s=e.dlopen("kernel32.dll",{CreateToolhelp32Snapshot:{args:[t.u32,t.u32],returns:t.u64},Process32FirstW:{args:[t.u64,t.ptr],returns:t.i32},Process32NextW:{args:[t.u64,t.ptr],returns:t.i32},OpenProcess:{args:[t.u32,t.i32,t.u32],returns:t.u64},ReadProcessMemory:{args:[t.u64,t.u64,t.ptr,t.u64,t.ptr],returns:t.i32},CloseHandle:{args:[t.u64],returns:t.i32}}).symbols,o=e.dlopen("ntdll.dll",{NtQueryInformationProcess:{args:[t.u64,t.i32,t.ptr,t.u32,t.ptr],returns:t.i32}}).symbols}catch{return null}let i=0xFFFFFFFFFFFFFFFFn,a=2,l=1040,c=568,d=(g,w,u)=>{let m=Buffer.alloc(u);return s.ReadProcessMemory(g,w,n(m),u,null)?m:null};return j={processes(){let g=BigInt(s.CreateToolhelp32Snapshot(a,0));if(g===i)throw new r("process_inspection_failed","Reading this computer's processes did not complete.");try{let w=Buffer.alloc(c);w.writeUInt32LE(c,0);let u=n(w),m=[];for(let f=s.Process32FirstW(g,u);f;f=s.Process32NextW(g,u)){let b=w.toString("utf16le",44,c),_=b.slice(0,b.includes("\x00")?b.indexOf("\x00"):void 0),k=w.readUInt32LE(8);if(k>0)m.push({pid:k,parentPid:w.readUInt32LE(32),command:_.replace(/\.exe$/i,"")||null})}return m}finally{s.CloseHandle(g)}},cwd(g){let w=BigInt(s.OpenProcess(l,0,g));if(w===0n)return null;try{let u=Buffer.alloc(48);if(o.NtQueryInformationProcess(w,0,n(u),u.length,null)!==0)return null;let m=d(w,u.readBigUInt64LE(8)+0x20n,8)?.readBigUInt64LE(0),f=m?d(w,m+0x38n,16):null,b=f?.readUInt16LE(0)??0;if(!f||b===0||b%2!==0)return null;return d(w,f.readBigUInt64LE(8),b)?.toString("utf16le")??null}finally{s.CloseHandle(w)}}},j}function se(e){if(!e)throw new r("process_inspection_failed","Reading this computer's processes is unavailable.");return e}async function ve(e,t){let n;try{n=await e(t)}catch{throw new r("process_inspection_failed","Reading this computer's ports did not complete.")}return Ke(n)}async function Za(e,t=et()){let n=se(t),s=D(e),o=[];for(let i of n.processes()){if(o.length>=Ue)break;let a=Pe(n,s,i.pid);if(a)o.push({pid:i.pid,command:i.command,cwd:X.relative(s,a)||"."})}return{processes:o}}async function Qa(e,t=et(),n=oe){let s=se(t),o=D(e),i=(await ve(n,5000)).filter((d)=>d.listening&&d.pid>0).map((d)=>({pid:d.pid,port:d.localPort,address:Ge(d)})).sort((d,g)=>d.pid-g.pid||d.port-g.port||(d.address<g.address?-1:d.address>g.address?1:0)),a=[...new Set(i.map((d)=>d.pid))].slice(0,je),l=new Set(a.filter((d)=>Pe(s,o,d)!==null));if(l.size===0)return{ports:[]};let c=new Map(s.processes().map((d)=>[d.pid,d.command]));return{ports:i.filter((d)=>l.has(d.pid)).slice(0,De).map((d)=>({pid:d.pid,command:c.get(d.pid)??null,address:d.address}))}}function he(e,t){let n=new Set([t]);for(let s=!0;s;){s=!1;for(let o of e)if(!n.has(o.pid)&&n.has(o.parentPid)&&o.pid!==o.parentPid)n.add(o.pid),s=!0}return n}function Je(e,t,n,s){let o=(i)=>i==="127.0.0.1"||i==="::ffff:127.0.0.1"||i==="::1";return e.flatMap((i)=>{if(!t.has(i.pid)||i.localPort!==s)return[];let a=i.listening&&(o(i.localAddress)||["0.0.0.0","::"].includes(i.localAddress)),l=!i.listening&&o(i.localAddress)&&o(i.remoteAddress);if(!a&&!l)return[];let c=`${i.localAddress}:${i.localPort}>${i.remoteAddress}:${i.remotePort}`;return[{pid:i.pid,processGroupId:n,descriptor:String(i.pid),kernelId:c,state:a?"listen":"established",port:s,peerPort:a?null:i.remotePort,host:i.localAddress==="::1"?"::1":"127.0.0.1"}]})}async function _e(e,t,n=et(),s=oe){let o=se(n),i=he(o.processes(),e),a=await ve(s,1000),l=he(o.processes(),e);return Je(a,new Set([...i].filter((c)=>l.has(c))),e,t)}async function ec(e,t=et(),n=oe){if(!t||e.aborted)return!1;let s=t.processes().some((l)=>l.pid===process.pid),o=t.cwd(process.pid),i=o!==null&&D(o).toLowerCase()===D(process.cwd()).toLowerCase(),a=await n(5000).then((l)=>/^\s*TCP\s/m.test(l),()=>!1);return s&&i&&a&&!e.aborted}import{execFile as Ve}from"child_process";import{readFile as Xe,readdir as Ye,readlink as Qe}from"fs/promises";import{connect as er}from"net";import{setTimeout as rr}from"timers/promises";var tr={directory:Ye,text:(e)=>Xe(e,"utf8"),link:Qe};class ie extends Error{code;constructor(e="port_unproved"){super("preview_port_ownership_unproved");this.code=e}}var x=(e)=>new ie(e),Y="preview_listener_unproved",ke="00000000000000000000000001000000";async function nr(e,t,n=tr){let s=new Map;for(let a of["tcp","tcp6"]){let l=await n.text(`/proc/net/${a}`);if(l.length>4194304)throw x();for(let c of l.split(`
|
|
8
|
+
`).slice(1)){let d=c.trim().split(/\s+/);if(d.length<10||!["0A","01"].includes(d[3]))continue;let[g,w]=d[1].split(":"),[u,m]=d[2].split(":");if(Number.parseInt(w,16)!==t)continue;let f=(k)=>k==="0100007F"||k==="0000000000000000FFFF00000100007F"||k===ke,b=d[3]==="0A";if(!(f(g)||b&&/^0+$/.test(g??"")))continue;if(!b&&!f(u))continue;let _=d[9];if(!/^[1-9][0-9]*$/.test(_))continue;s.set(_,{kernelId:_,port:t,peerPort:b?null:Number.parseInt(m,16),state:b?"listen":"established",host:g===ke?"::1":"127.0.0.1"})}}let o=await n.directory("/proc");if(o.length>8192)throw x();let i=[];for(let a of o){if(!/^[1-9][0-9]*$/.test(a))continue;try{let l=await n.text(`/proc/${a}/stat`),c=l.slice(l.lastIndexOf(")")+2).trim().split(/\s+/);if(Number(c[2])!==e)continue;let d=await n.directory(`/proc/${a}/fd`);if(d.length>1024)throw x();let g=[];for(let m of d){if(!/^[0-9]+$/.test(m))continue;let f=await n.link(`/proc/${a}/fd/${m}`).catch(()=>""),b=/^socket:\[([0-9]+)\]$/.exec(f)?.[1],_=b?s.get(b):void 0;if(_)g.push({..._,pid:Number(a),processGroupId:e,descriptor:m})}let w=await n.text(`/proc/${a}/stat`),u=w.slice(w.lastIndexOf(")")+2).trim().split(/\s+/);if(c[19]===u[19]&&c[2]===u[2])i.push(...g)}catch(l){if(l instanceof Error&&l.message==="preview_port_ownership_unproved")throw l}}return i}function or(e,t,n){if(e.length>2097152)throw x();let s=0,o=0,i="",a="",l="",c="",d=[],g=()=>{if(s<1||o!==t||!/^\d+$/.test(i)||!/^0x[0-9a-f]+$/i.test(a))return;let w=c==="LISTEN"&&["*","127.0.0.1","[::ffff:127.0.0.1]","[::1]"].some((m)=>l===`${m}:${n}`),u=new RegExp(`^(?:127\\.0\\.0\\.1|\\[::ffff:127\\.0\\.0\\.1\\]|\\[::1\\]):${n}->(?:127\\.0\\.0\\.1|\\[::ffff:127\\.0\\.0\\.1\\]|\\[::1\\]):([0-9]+)$`).exec(l);if(w||c==="ESTABLISHED"&&u)d.push({pid:s,processGroupId:o,descriptor:i,kernelId:a,state:w?"listen":"established",port:n,peerPort:w?null:Number(u[1]),host:l.startsWith("[::1]:")?"::1":"127.0.0.1"})};for(let w of e.split(/[\0\n]/)){let u=w.slice(1);if(w[0]==="p")g(),s=Number(u),o=0,i=a=l=c="";else if(w[0]==="g")o=Number(u);else if(w[0]==="f")g(),i=u,a=l=c="";else if(w[0]==="d")a=u;else if(w[0]==="n")l=u;else if(w.startsWith("TST="))c=w.slice(4)}return g(),d}async function sr(e,t){if(process.platform==="linux")return nr(e,t);if(process.platform==="win32")return _e(e,t);if(process.platform!=="darwin")throw x();let n=await new Promise((s,o)=>Ve("/usr/sbin/lsof",["-nP","-a","-g",String(e),`-iTCP:${t}`,"-F0pgfdnT"],{timeout:1000,maxBuffer:2097152,encoding:"utf8",env:{PATH:"/usr/bin:/bin",LC_ALL:"C"}},(i,a)=>i?o(x()):s(a)));return or(n,e,t)}function ht(e,t={}){let n=C(e.binding),s=t.inspectSockets??sr,o=t.monotonicNow??(()=>performance.now());async function i(){let u=()=>{if(Date.now()>=n.expiresAtMs)throw x("binding_expired");if(e.deniedPorts.has(n.port))throw x("port_denied")};u();let m=await e.readCurrentJob(),f=m?.job,b=f?.process;if(u(),!m)throw x("server_stopped");if(!Mt(n,m.binding)||f?.jobId!==n.jobId)throw x("binding_changed");if(f.state!=="running"||f.finishedAtMs!==null||f.leaseExpiresAtMs<n.expiresAtMs)throw x("job_not_running");if(!b||b.pid<1||b.pid!==b.processGroupId||b.executorLaunchId!==m.executorLaunchId)throw x("process_unproved");return{pid:b.pid,launch:b.executorLaunchId,started:f.startedAtMs}}let a,l;async function c(){let u=await i(),m=await s(u.pid,n.port).catch(()=>{throw Error(Y)}),f=await i();if(u.pid!==f.pid||u.launch!==f.launch||u.started!==f.started)throw x("job_restarted");return m}async function d(u){for(;;){if(l&&l.startedAt>=u)return l.sockets;if(a&&a.startedAt>=u)return await a.sockets;if(a){await a.sockets.catch(()=>{});continue}let m={startedAt:o(),sockets:c()};a=m;try{let f=await m.sockets;if(!l||l.startedAt<=m.startedAt)l={startedAt:m.startedAt,sockets:f};return f}finally{if(a===m)a=void 0}}}async function g(u=()=>{},m=o()){u();let f=await d(m);if(u(),Date.now()>=n.expiresAtMs)throw x("binding_expired");if(!f.some((b)=>b.state==="listen"))throw Error(Y);return f}async function w(){try{return await g(()=>{},o()-1000),null}catch(u){if(u instanceof Error&&u.message===Y)return"listener_unproved";return u instanceof ie?u.code:"port_unproved"}}return{refusal:w,async check(){let u=await w();if(u==="listener_unproved")throw Error(Y);return u===null},async connect(u){if(u.aborted)throw x();let m=o()+2000,f=new AbortController,b=new Promise((h)=>f.signal.addEventListener("abort",()=>h(null),{once:!0})),_,k=()=>{f.abort(),_?.destroy()},O=setTimeout(k,2000);u.addEventListener("abort",k,{once:!0});let T=()=>{if(f.signal.aborted||u.aborted||o()>=m||_?.destroyed)throw k(),x()};async function P(h){T();let B=await Promise.race([h().then((S)=>({value:S})),b]);if(T(),!B)throw x();return B.value}try{let h=await P(()=>g(T,o()-1000));T();let B=h.some((p)=>p.state==="listen"&&p.host==="127.0.0.1")?"127.0.0.1":"::1",S=er({host:B,port:n.port,signal:u});_=S,S.once("close",k),await P(()=>new Promise((p,y)=>{S.once("connect",p),S.once("error",y)}));let N=S.localPort;if(!N)throw x();let q=o();while(!(await P(()=>g(T,q))).some((p)=>p.state==="established"&&p.peerPort===N))await P(()=>rr(Math.min(20,Math.max(1,m-o())),void 0,{signal:f.signal})),q=o();return T(),S}catch(h){throw k(),h}finally{clearTimeout(O),u.removeEventListener("abort",k),_?.off("close",k),f.abort()}}}}
|
|
9
|
+
export{v,Mt,di,en,dr,Ya,Co,pt,et,Za,Qa,ec,ht};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
export{
|
|
2
|
+
var e={REASON_API_KEY:"ARA_API_KEY",REASON_API_URL:"ARA_API_URL",REASON_CLI_CHANNEL:"ARA_CLI_CHANNEL",REASON_CLI_LAUNCHER_PATH:"ARA_CLI_LAUNCHER_PATH",REASON_MANAGED_RUNTIME_ROOT:"ARA_MANAGED_RUNTIME_ROOT",REASON_INSTALL_ALIAS_PATH:"ARA_INSTALL_ALIAS_PATH",REASON_INSTALL_DIR:"ARA_INSTALL_DIR",REASON_INSTALL_METHOD:"ARA_INSTALL_METHOD",REASON_INSTALL_PINNED_VERSION:"ARA_INSTALL_PINNED_VERSION",REASON_INSTALL_UPGRADE:"ARA_INSTALL_UPGRADE"},t=Object.values(e),E=new Set;function P(n,A){let N=n[A];if(N?.trim())return N;let _=n[e[A]];if(_?.trim())E.add(e[A]);return _}function xn(n,A){return{[n]:A,[e[n]]:A}}
|
|
3
|
+
export{P,xn};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{P}from"./vm-hands-entry-lite-2rgf8866.js";import{w,We}from"./vm-hands-entry-lite-q9s1e2y1.js";import{be,C}from"./vm-hands-entry-lite-0as6nsks.js";import{q}from"./vm-hands-entry-lite-a6ss0ges.js";function lt(e,i){let t=P(e,"REASON_API_URL")?.trim();if(!t)return We(i);let n=new URL(t);if(n.protocol!=="https:"&&!(n.protocol==="http:"&&["127.0.0.1","localhost","::1"].includes(n.hostname)))throw Error("REASON_API_URL must use HTTPS (HTTP is allowed only for loopback development).");return n.origin}function Gc(e){return P(e,"REASON_API_URL")?.trim()?lt(e,"production"):void 0}function Un(e){return P(e,"REASON_API_KEY")?.trim()||void 0}async function ir(e,i){let t=e.env??process.env,n=Un(t);if(!n)return(e.getCredentials??be)({apiOrigin:Gc(t),signal:i});let a=lt(t,e.channel??w({env:t})),o=await(e.fetchImpl??fetch)(a+"/v3/self",{redirect:"error",headers:{authorization:"Bearer "+n,accept:"application/json"},signal:i}),p=await o.json().catch(()=>({})),r=q(p)?p:{};if(!o.ok){let s=typeof r.detail==="string"?r.detail:typeof r.message==="string"?r.message:"API key authentication failed ("+o.status+")";throw new C(o.status,typeof r.error==="string"?r.error:"api_key_auth_failed",s)}if(typeof r.org_id!=="string"||!r.org_id)throw Error("The API key in the environment did not resolve to a Workspace.");let l=Array.isArray(r.scopes)?r.scopes.filter((s)=>typeof s==="string"):[];return{credentialKind:"api_key",apiOrigin:a,accessToken:n,orgId:r.org_id,clientId:"api-key",refreshToken:"",expiresAt:"",scopes:l}}export{lt,Gc,Un,ir};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Bt}from"./vm-hands-entry-lite-weqam12f.js";import{rn}from"./vm-hands-entry-lite-tcmye5ny.js";import{Y,Xe,B}from"./vm-hands-entry-lite-8xv6c0rm.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{spawn as k,spawnSync as N}from"child_process";import{existsSync as S,mkdtempSync as z,readFileSync as j,readdirSync as we,realpathSync as Se,rmSync as q,statSync as Q}from"fs";import{platform as W,tmpdir as V}from"os";import{dirname as A,join as u,win32 as x}from"path";import{fileURLToPath as be,pathToFileURL as F}from"url";var xe=["bwrap","socat","rg"],he=2000,I=20000,ye=3,O=4000,Pe=new Set([".git",".hg",".svn","node_modules"]),Ee=["runAsHostUid","sysrq-trigger"],Z=u(A(A(be(import.meta.url))),"packages","sandbox-runtime"),Re=u(Z,"src","index.ts"),ee=!1;function cr(){ee=!0}function ne(){return ee?u(A(Se(process.execPath)),"runtime","srt"):void 0}function Ae(){let e=u(ne()??Z,"vendor","srt-win");return u(e,process.arch,"srt-win.exe")}var ka="confined commands need the Windows sandbox: run `reason connect` and approve the Windows prompt.";function Jr(e=Ae()){let n=N(e,["status"],{encoding:"utf8",timeout:15000,windowsHide:!0});try{let o=JSON.parse(n.stdout??"");return n.status===0&&o.user?.user?.exists===!0&&o.user.cred_present===!0}catch{return!1}}function xa(e=Ae()){let n=N(e,["install"],{stdio:["ignore","ignore","ignore"],timeout:120000,windowsHide:!0});return n.status===0?"installed":n.status===10?"cancelled":"failed"}async function te(){let e=ne();if(e&&process.platform==="linux"&&!S(u(e,"vendor","seccomp",process.arch,"apply-seccomp")))throw Error("packaged_sandbox_runtime_vendor_missing");if(e&&process.platform==="win32"&&!S(Ae()))throw Error("packaged_sandbox_runtime_vendor_missing");if(e){let i=j(u(e,"sandbox-runtime.mjs"),"utf8");for(let s of Ee)if(!i.includes(s))throw Error(`packaged_sandbox_runtime_fork_missing:${s}`)}let t=(await import(e?F(u(e,"sandbox-runtime.mjs")).href:F(Re).href)).SandboxManager;if(!t||typeof t.initialize!=="function"||typeof t.wrapWithSandboxArgv!=="function")throw Error("sandbox-runtime does not expose the expected SandboxManager API.");return{SandboxManager:t}}function _e(e={}){if((e.platformName??W())!=="linux")return!1;let o=e.fileExists??S,t=e.readFile??((i)=>j(i,"utf8"));for(let i of["/.dockerenv","/run/.containerenv"])try{if(o(i))return!0}catch{}try{return/docker|containerd|kubepods|lxc|libpod/.test(t("/proc/1/cgroup"))}catch{return!1}}function re(e){return["/bin/true","/usr/bin/true"].find((n)=>e(n))??null}function Me(e,n){return e==="strict"?["--ro-bind","/","/","--unshare-pid","--unshare-user","--cap-drop","ALL","--proc","/proc","--",n]:["--ro-bind","/","/","--unshare-pid","--unshare-user","--bind","/proc","/proc","--",n]}function Ce(e,n){try{let o=N("bwrap",Me(e,n),{stdio:"ignore",timeout:he});return!o.error&&o.status===0}catch{return!1}}function ve(e){let n=e.platformName??W(),o=e.fileExists??S;if(n==="win32")return(e.bash??Y)()&&o(Ae())?m??"strict":null;if(n!=="linux")return null;let t=e.hasExecutable??rn;if(!xe.every((l)=>t(l)))return null;let i=re(o);if(!i)return null;let s=m??(e.containerized??_e({platformName:n})?"weak":"strict");return(e.probeNamespaces??((l)=>Ce(l,i)))(s)?s:null}var h=null,M=!1,p=null,U=null,H=null,m=null,y=null,_=null,P=null,C=[],b=new Map;function v(){throw g("sandbox_mode_conflict"),new r("sandbox_unavailable","Sandbox process policy conflicts with an existing probe or session. Restart the worker.")}function Ca(e){if(m!==null&&m!==e||M&&h!==null&&h!==e||y!==null&&y!==e)v();m=e}function g(e){if(!p)process.stderr.write(`Reason worker: confined commands are off (${e})
|
|
3
|
+
`);p=e}function Gn(e){if(p)return!1;if(!M){if(h=ve(e??{}),M=!0,h&&!e)ue()}return h!==null}function De(){return Gn()?h:null}var E=null,w=0;function D(e,n){if(p)throw new r("sandbox_unavailable","Confined execution is unavailable in this worker process.");if(m&&e.sandboxMode&&m!==e.sandboxMode)v();let o=m??e.sandboxMode??De();if(!o)throw new r("sandbox_unavailable","Confined command execution is unavailable on this operating system.");if(y&&y!==o)v();return y=o,E??=(async()=>{let{SandboxManager:t}=await(e.loadSandboxRuntime??te)();return await t.initialize(Ie(o,n)),t})().catch((t)=>{if(E=null,n)_=null,process.stderr.write(`Reason worker: the Windows sandbox did not start for this folder (${String(t).slice(0,500)})
|
|
4
|
+
`);else g(`initialize_failed: ${String(t)}`);throw t instanceof r?t:new r("sandbox_unavailable","The confined execution sandbox failed to start.")}),E.then((t)=>{if(p)throw new r("sandbox_unavailable","Confined execution became unavailable during sandbox initialization.");return t})}function T(){if(w-=1,w===0)for(let e of C.splice(0))e()}async function oe(e,n=!0,o,t){let i=t===void 0?1/0:Date.now()+t;await le();let s=ke();if(n)await s;let a=JSON.stringify(e),l=!1,c=()=>{if(!l)return;l=!1;let d=(b.get(a)??1)-1;if(d>0)b.set(a,d);else b.delete(a)};try{for(;;){if(o?.aborted)throw new r("cancelled","Operation was cancelled.");if(Date.now()>=i)return!1;if(P){await P;continue}let d=b.keys().next().value;if(_??=d??a,_===a&&(d===void 0||d===a))break;if(!l){l=!0,b.set(a,(b.get(a)??0)+1);continue}if(w===0&&d===a){ie();continue}await new Promise((f)=>{if(C.push(f),o?.addEventListener("abort",()=>f(),{once:!0}),i!==1/0)setTimeout(f,Math.max(0,i-Date.now())).unref?.()})}return w+=1,!0}finally{if(l&&w===0)for(let d of C.splice(0))d();c()}}function ie(){return P??=ce().finally(()=>{P=null}),P}function se(e,n,o=process.env){let t=o.USERPROFILE?x.resolve(o.USERPROFILE).toLowerCase():null,i=x.resolve(e).toLowerCase(),s=t!==null&&i.startsWith(`${t}\\`),a=n?ae(o).filter((l)=>l.toLowerCase()===i||l.toLowerCase().startsWith(`${i}\\`)):[];return{denyRead:[],allowRead:[e],allowWrite:n?[e]:[],denyWrite:n?a:s?[]:[e]}}function ae(e,n=process.execPath){let o=new Map;for(let t of[...(e.PATH??e.Path??"").split(";"),x.dirname(n)]){if(!t||!x.isAbsolute(t))continue;let i=x.resolve(t);if(!o.has(i.toLowerCase()))o.set(i.toLowerCase(),i)}return[...o.values()]}function Te(e=process.env,n=process.execPath){let o=[e.SystemRoot,e.ProgramFiles,e["ProgramFiles(x86)"],e.ProgramW6432,e.ProgramData,e.USERPROFILE].filter((t)=>!!t).map((t)=>x.resolve(t).toLowerCase());return ae(e,n).filter((t)=>{let i=t.toLowerCase();return!o.some((s)=>i===s||i.startsWith(`${s}\\`))})}var J=null,K=null;function le(e=Ae()){return K??=(async()=>{let n;try{n=JSON.parse((await de(e,["status"])).stdout).user?.user?.sid}catch{return null}if(typeof n!=="string"||!/^S-1-[0-9-]+$/.test(n))return null;if(!await new Promise((t)=>{let i=k(B("icacls"),[e,"/grant",`*${n}:(RX)`],{stdio:"ignore",windowsHide:!0,timeout:30000});i.on("error",()=>t(!1)),i.on("close",(s)=>t(s===0))}))process.stderr.write(`Reason worker: could not let the Windows sandbox user run srt-win.exe
|
|
5
|
+
`);return n})(),K}function de(e,n,o){return new Promise((t)=>{let i=k(e,n,{stdio:["pipe","pipe","ignore"],windowsHide:!0,timeout:120000}),s="";i.stdout?.setEncoding("utf8").on("data",(a)=>{s+=a}),i.on("error",()=>t({status:null,stdout:s})),i.on("close",(a)=>t({status:a,stdout:s})),i.stdin?.end(o??"")})}function ke(e=Ae()){return J??=(async()=>{let n=Te();if(n.length===0)return;let o=await le(e),t=o?await de(e,["acl","stamp","--holder-pid",String(process.ppid),"--sandbox-user-sid",o],JSON.stringify({denyRead:[],denyWrite:n})):null;if(!t||t.status!==0&&t.status!==2)g(`program_folder_deny_failed: ${t?`exit ${t.status}`:"no sandbox user"}`),process.stderr.write(`Reason worker: could not deny the Windows sandbox writes to PATH folders (${t?`exit ${t.status}`:"no sandbox user"}); confined commands are off
|
|
6
|
+
`)})(),J}var Ne=`h=$(mktemp -d) || exit 125; trap 'rm -rf "$h"' EXIT; mkdir -p "$h/AppData/Roaming" "$h/AppData/Local"; w=$(cygpath -w "$h"); export HOME="$h" USERPROFILE="$w" APPDATA="$w\\AppData\\Roaming" LOCALAPPDATA="$w\\AppData\\Local" TEMP="$w" TMP="$w"; `;async function ce(){let e=E;if(E=null,_=null,!e)return;try{await(await e).reset()}catch{}}async function ue(e={}){if(p)return!1;if(e.loadSandboxRuntime)return G(e.loadSandboxRuntime);if(!Gn())return!1;return U??=G(te),U}async function G(e){try{let{SandboxManager:n}=await e();if(process.platform==="win32"){if(!S(Ae()))g("dependencies_missing: srt-win.exe");return!p}let o=n.checkDependencies().errors;if(o.length>0)return g(`dependencies_missing: ${o.join(", ")}`),!1;return!p}catch(n){return g(`load_failed: ${String(n)}`),!1}}async function Aa(e={}){if(!e.loadSandboxRuntime&&!e.sandboxMode){if(!await ue())return!1;return H??=X({}),H}return X(e)}async function X(e){let n=process.platform==="win32",o=z(u(V(),"reason-device-probe-"));try{let t=n?se(o,!1):void 0;if(t)await oe(t,!1);let i;try{i=await We(await D(e,t),o)}catch{return!1}finally{if(n)T()}if(!i)g("confined_command_failed");if(w===0)await(n?ie():ce());return i}finally{q(o,{recursive:!0,force:!0})}}async function We(e,n){let o=process.platform==="win32",t=o?"true":re(S);if(!t)return!1;try{let{argv:i,env:s}=await e.wrapWithSandboxArgv(fe([t]),Kn(),{filesystem:o?pe([],n):me({root:n,allowWrite:!1,temporaryDirectory:n,protectedPaths:[]})},void 0,n),[a,...l]=i;if(!a)return!1;return await Le(a,l,n,o?{env:s}:{})}catch{return!1}finally{try{e.cleanupAfterCommand()}catch{}}}function Le(e,n,o,t={}){return new Promise((i)=>{let s=!1,a,l=(f)=>{if(s)return;s=!0,clearTimeout(a),i(f)},c;try{c=(t.spawnChild??k)(e,n,{cwd:o,env:t.env??{PATH:Bt,HOME:o,TMPDIR:o},stdio:"ignore",windowsHide:!0})}catch{l(!1);return}c.once("error",()=>l(!1));let d=(f,R)=>l(f===0&&R===null);if(c.once("exit",d),c.once("close",d),c.exitCode!==null||c.signalCode!==null)d(c.exitCode,c.signalCode);if(s)return;a=setTimeout(()=>{l(!1);try{c.kill("SIGKILL")}catch{}},Math.min(t.timeoutMs??I,I))})}function Kn(e=S,n=W()){if(n==="win32")return Xe("win32");return["/bin/bash","/bin/sh"].find((o)=>e(o))??"/bin/sh"}function fe(e){return e.map((n)=>`'${n.replaceAll("'","'\\''")}'`).join(" ")}function Fe(e,n,o=(t)=>we(t,{withFileTypes:!0}).filter((i)=>i.isDirectory()||i.isFile()).map((i)=>i.name)){let t=[],i=[{path:e,depth:0}],s=0;while(i.length>0&&s<O){let a=i.pop(),l;try{l=o(a.path)}catch{continue}for(let c of l){if(s+=1,s>O)break;let d=u(a.path,c);if(n(d)){t.push(d);continue}if(a.depth+1<ye&&!Pe.has(c))i.push({path:d,depth:a.depth+1})}}return t}function me(e){let n=u(e.root,".git"),o=[];try{if(Q(n).isDirectory())o=[u(n,"config"),u(n,"hooks")]}catch{}return{denyRead:["/home","/root","/tmp","/tmp/.X11-unix",...e.protectedPaths],allowRead:[e.root,e.temporaryDirectory],allowWrite:[...e.allowWrite?[e.root]:[],e.temporaryDirectory],denyWrite:[...e.protectedPaths,...o]}}function pe(e,n){let o=u(n,".git"),t=[];try{if(Q(o).isDirectory())t=[u(o,"config"),u(o,"hooks")]}catch{}return{denyRead:[...e],allowRead:[],allowWrite:[],denyWrite:[...e,...t]}}function Ie(e,n){if(n)return{network:{allowedDomains:[],deniedDomains:[]},filesystem:n,windows:{srtWin:{path:Ae()}}};return{network:{allowedDomains:[],deniedDomains:[]},filesystem:{denyRead:[],allowRead:[],allowWrite:[],denyWrite:[]},...e==="weak"?{enableWeakerNestedSandbox:!0}:{}}}function Pa(e){let n=e.createTemporaryDirectory??(()=>z(u(V(),"reason-device-"))),o=e.removeTemporaryDirectory??((t)=>q(t,{recursive:!0,force:!0}));return async(t,i,s)=>{let a=process.platform==="win32",l;if(a){let d=se(s.root,s.allowWrite);if(!await oe(d,!s.workerProbe,s.signal,s.timeoutMs))return{exitCode:null,signal:null,stdout:"",stderr:"",timedOut:!0,truncated:!1};try{l=await D(e,d)}catch(f){throw T(),f}}else l=await D(e),w+=1;let c;try{c=n();let d=Fe(s.root,e.isProtectedPath),f;try{f=await l.wrapWithSandboxArgv((a?Ne:"")+fe([t,...i]),e.shell??Kn(),{filesystem:a?pe(d,s.root):me({root:s.root,allowWrite:s.allowWrite,temporaryDirectory:c,protectedPaths:d})},s.signal,s.cwd)}catch(L){throw L instanceof r?L:new r("sandbox_unavailable","The confined execution sandbox could not wrap the command.")}let[R,...ge]=f.argv;if(!R)throw new r("sandbox_unavailable","The confined execution sandbox produced no command.");return await e.spawnCaptured(R,ge,{cwd:s.cwd,timeoutMs:s.timeoutMs,signal:s.signal,env:a?f.env:e.scrubEnvironment(s.root,c)})}finally{T();try{l.cleanupAfterCommand()}catch{}if(c!==void 0)o(c)}}}
|
|
7
|
+
export{cr,Ae,ka,Jr,xa,Ca,Gn,Aa,Kn,Pa};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{t,o,n,we,$e,c,i}from"./vm-hands-entry-lite-k5ytpgzz.js";var rr="inference.custom.v1",Dr=32768,Bn=67108864,qi=16384,Or=4194304,h=204800,Nr=2*Or+65536,na=600000,E=["content-type","anthropic-version","user-agent"],m=c(["openai-completions","openai-responses","anthropic-messages"]),f=new Set(E),C=$e(t(),t().max(2048)).refine((e)=>Object.keys(e).every((s)=>f.has(s))&&Object.values(e).every((s)=>!/[\r\n\0]/.test(s)),"Only non-secret custom endpoint request headers are permitted");function u(e){try{let s=new URL(e);return["http:","https:"].includes(s.protocol)&&!s.username&&!s.password&&!s.search&&!s.hash?s:null}catch{return null}}function Wi(e,s){let r=u(e.baseUrl),d=u(s.baseUrl),a=u(e.url);if(!r||!d||!a||e.method!=="POST"||s.execution!=="device")return!1;let l=(p)=>p.origin+p.pathname.replace(/\/+$/,"");if(l(r)!==l(d)||a.origin!==r.origin)return!1;let _=s.api==="openai-completions"?"/chat/completions":s.api==="openai-responses"?"/responses":"/v1/messages";return a.pathname===r.pathname.replace(/\/+$/,"")+_}var ia=n({baseUrl:t().max(2048),url:t().max(4096),method:i("POST"),body:t().refine((e)=>new TextEncoder().encode(e).byteLength<=Or).optional(),headers:C,credentialOrganizationId:t().uuid(),accountKey:t().min(1).max(256).optional()}).strict().refine((e)=>m.options.some((s)=>Wi(e,{baseUrl:e.baseUrl,api:s,execution:"device"})),"Invalid custom endpoint inference URL"),D=n({status:o().int().min(200).max(599),statusText:t().max(256).refine((e)=>!/[\r\n\0]/.test(e)),headers:$e(t(),t().max(4096)).refine((e)=>Object.keys(e).every((s)=>["content-type","retry-after","x-request-id","request-id"].includes(s))&&Object.values(e).every((s)=>!/[\r\n\0]/.test(s)))}).strict(),y=we([n({eof:i(!0)}).strict(),n({eof:i(!1),data:t().max(Math.ceil(Dr/3)*4).regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/).refine((e)=>e.length>0&&e.length*3/4-(e.endsWith("==")?2:e.endsWith("=")?1:0)<=Dr)}).strict()]),x=n({bytes:o().int().min(0).max(Bn),chunks:o().int().min(0).max(qi)}).strict(),oa=n({apiKey:t().min(1).max(16384).refine((e)=>!/[\r\n\0]/.test(e)),api:m}).strict(),S=["custom_endpoint_host_not_found","custom_endpoint_connection_failed","custom_endpoint_tls_failed","custom_endpoint_request_too_large","custom_endpoint_device_update_required"];function Lr(e){return typeof e==="string"&&S.includes(e)}var O="Ollama listens only on 127.0.0.1 unless it is started with OLLAMA_HOST=0.0.0.0.",T={custom_endpoint_host_not_found:"Your computer couldn't resolve your model server's hostname. Check the hostname in the Base URL, and that this computer is on the network or tailnet that resolves it.",custom_endpoint_connection_failed:`Your computer's connection to your model server was refused or timed out. Check that the server is running and listening on the Base URL's address and port. ${O}`,custom_endpoint_tls_failed:"Your computer couldn't make a secure (TLS) connection to your model server. Check the server's https certificate, or use an http:// Base URL for a server on your computer or private network.",custom_endpoint_request_too_large:`This conversation is too long for your computer to send to your model server: the request is over ${Or/1024/1024} MB, the most it relays. Start a new session to continue, or choose another model.`,custom_endpoint_device_update_required:`Reason on your computer is too old to send this conversation to your model server: it relays requests of at most ${h/1024} KB. Update Reason on that computer (reason update), then send your message again.`,401:"Your model server refused the request (HTTP 401). Check the API key saved for it in Models.",403:"Your model server refused the request (HTTP 403). Ollama refuses requests addressed to a hostname other than localhost, such as a *.ts.net name from tailscale serve or funnel: restart it with OLLAMA_HOST=0.0.0.0, or use http://localhost:11434/v1 when it runs on the session's computer. For another server, check the API key and its access rules.",404:"Your model server answered HTTP 404 (not found). Check that the Base URL is the API root (for Ollama, http://localhost:11434/v1) and that each model ID is one the server lists."};var I=new Set(Object.values(T));export{rr,Dr,Bn,qi,Or,Nr,na,Wi,ia,oa,Lr};
|