@reason-machines/cli-linux-x64 0.2.434 → 0.2.437

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.
Files changed (35) hide show
  1. package/bin/reason +1 -1
  2. package/bin/vm-hands/{connect-cli-a6xfkdrp.js → connect-cli-vgnz9ndr.js} +1 -1
  3. package/bin/vm-hands/{local-automation-txbg9ztt.js → local-automation-k4prkpe7.js} +1 -1
  4. package/bin/vm-hands/{local-capabilities-ban71b70.js → local-capabilities-40gr3cb4.js} +1 -1
  5. package/bin/vm-hands/{local-display-session-q7yb7zch.js → local-display-session-c3x9jwsa.js} +1 -1
  6. package/bin/vm-hands/local-display-video-m8bxdh69.js +2 -0
  7. package/bin/vm-hands/{local-managed-process-s5eppwhr.js → local-managed-process-2tftndbf.js} +1 -1
  8. package/bin/vm-hands/{managed-runtime-7s43903s.js → managed-runtime-txpn09d3.js} +1 -1
  9. package/bin/vm-hands/{permissions-zafvpmbv.js → permissions-7j7d7363.js} +1 -1
  10. package/bin/vm-hands/{serve-service-86ge4vsk.js → serve-service-jgb79rp4.js} +1 -1
  11. package/bin/vm-hands/{status-btsmfzbp.js → status-bshj9ydd.js} +1 -1
  12. package/bin/vm-hands/version-y4kfnqvd.js +2 -0
  13. package/bin/vm-hands/{vm-hands-entry-lite-m4x8nt2r.js → vm-hands-entry-lite-2vs83bp0.js} +1 -1
  14. package/bin/vm-hands/{vm-hands-entry-lite-vwfzvwcg.js → vm-hands-entry-lite-2w04q9a6.js} +1 -1
  15. package/bin/vm-hands/{vm-hands-entry-lite-5vwss606.js → vm-hands-entry-lite-6zags97v.js} +1 -1
  16. package/bin/vm-hands/{vm-hands-entry-lite-kfbcdxpc.js → vm-hands-entry-lite-9jxdd391.js} +1 -1
  17. package/bin/vm-hands/{vm-hands-entry-lite-vxpz4ha7.js → vm-hands-entry-lite-e24k4djp.js} +1 -1
  18. package/bin/vm-hands/{vm-hands-entry-lite-7q90z39n.js → vm-hands-entry-lite-gemb5d56.js} +1 -1
  19. package/bin/vm-hands/{vm-hands-entry-lite-qnbc2bt1.js → vm-hands-entry-lite-gqygejrd.js} +1 -1
  20. package/bin/vm-hands/{vm-hands-entry-lite-41jkfbkg.js → vm-hands-entry-lite-q25x232x.js} +1 -1
  21. package/bin/vm-hands/vm-hands-entry-lite-t1akv6pa.js +2 -0
  22. package/bin/vm-hands/{vm-hands-entry-lite-s7qnn93s.js → vm-hands-entry-lite-te2kjapa.js} +1 -1
  23. package/bin/vm-hands/{vm-hands-entry-lite-5g4m3ng5.js → vm-hands-entry-lite-wt5qh4mq.js} +1 -1
  24. package/bin/vm-hands/{vm-hands-entry-lite-4nsrr3vh.js → vm-hands-entry-lite-xgctesh9.js} +1 -1
  25. package/bin/vm-hands/{vm-hands-entry-lite-apejx721.js → vm-hands-entry-lite-zs4tknxy.js} +1 -1
  26. package/bin/vm-hands/{vm-hands-entry-lite-hn6bz8ps.js → vm-hands-entry-lite-ztvh5hpp.js} +1 -1
  27. package/bin/vm-hands/vm-hands-entry-lite.js +1 -1
  28. package/bin/vm-hands/vm-hands-executor-wx2hm179.js +12 -0
  29. package/bin/vm-hands/{vm-hands-op-runner-k7r1h07m.js → vm-hands-op-runner-fsm8xyc7.js} +1 -1
  30. package/bin/vm-hands/{vm-hands-runtime-dk94qzwx.js → vm-hands-runtime-cf2t761z.js} +3 -3
  31. package/package.json +1 -1
  32. package/bin/vm-hands/local-display-video-7bgc3wqr.js +0 -2
  33. package/bin/vm-hands/version-4yptyrek.js +0 -2
  34. package/bin/vm-hands/vm-hands-entry-lite-mfpwe6xs.js +0 -2
  35. package/bin/vm-hands/vm-hands-executor-ppyrw9vz.js +0 -12
package/bin/reason CHANGED
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/bin/reason
3
3
  size: 90658272 bytes
4
- sha256: bfb9b41789384ce1793f4cdfa52d50b180b76930320143ed2a14572bf8ac5d4f
4
+ sha256: eda41aca441c91491f9576f8af914c538679a07fccfed95ccc039aae56bb7d50
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{tt,ss,as,cs}from"./vm-hands-entry-lite-s7qnn93s.js";import"./vm-hands-entry-lite-4fwf7wgb.js";import"./vm-hands-entry-lite-cm497v4t.js";import"./vm-hands-entry-lite-n4x7reax.js";import"./vm-hands-entry-lite-9jgf223h.js";import"./vm-hands-entry-lite-m4x8nt2r.js";import"./vm-hands-entry-lite-7q90z39n.js";import"./vm-hands-entry-lite-4nsrr3vh.js";import"./vm-hands-entry-lite-qnbc2bt1.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-njs8k65s.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-t3qf6qrj.js";import"./vm-hands-entry-lite-hn6bz8ps.js";import"./vm-hands-entry-lite-vxpz4ha7.js";import"./vm-hands-entry-lite-vwfzvwcg.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-5g4m3ng5.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-kfbcdxpc.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{ss as computerDisconnected,tt as connectionDirectory,as as connectionReport,cs as restartConnection};
2
+ import{tt,ss,as,cs}from"./vm-hands-entry-lite-te2kjapa.js";import"./vm-hands-entry-lite-4fwf7wgb.js";import"./vm-hands-entry-lite-cm497v4t.js";import"./vm-hands-entry-lite-n4x7reax.js";import"./vm-hands-entry-lite-9jgf223h.js";import"./vm-hands-entry-lite-2vs83bp0.js";import"./vm-hands-entry-lite-gemb5d56.js";import"./vm-hands-entry-lite-xgctesh9.js";import"./vm-hands-entry-lite-gqygejrd.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-njs8k65s.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-t3qf6qrj.js";import"./vm-hands-entry-lite-ztvh5hpp.js";import"./vm-hands-entry-lite-e24k4djp.js";import"./vm-hands-entry-lite-2w04q9a6.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-wt5qh4mq.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-9jxdd391.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{ss as computerDisconnected,tt as connectionDirectory,as as connectionReport,cs as restartConnection};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{xn,As,Ps,Ts,Rs,kn}from"./vm-hands-entry-lite-hn6bz8ps.js";import"./vm-hands-entry-lite-vxpz4ha7.js";import"./vm-hands-entry-lite-vwfzvwcg.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-5g4m3ng5.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-kfbcdxpc.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{Ps as ensureLocalBrowser,xn as localAutomationAvailable,Ts as localBrowserProfile,As as localUserChromeHost,Rs as runAutomationCallLocally,kn as runLocalAutomation};
2
+ import{xn,As,Ps,Ts,Rs,kn}from"./vm-hands-entry-lite-ztvh5hpp.js";import"./vm-hands-entry-lite-e24k4djp.js";import"./vm-hands-entry-lite-2w04q9a6.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-wt5qh4mq.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-9jxdd391.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{Ps as ensureLocalBrowser,xn as localAutomationAvailable,Ts as localBrowserProfile,As as localUserChromeHost,Rs as runAutomationCallLocally,kn as runLocalAutomation};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{zo,Li,cn,qo,Wo,Vo,Go,vs,Ss,Es,xs}from"./vm-hands-entry-lite-7q90z39n.js";import"./vm-hands-entry-lite-4nsrr3vh.js";import"./vm-hands-entry-lite-qnbc2bt1.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-njs8k65s.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-t3qf6qrj.js";import"./vm-hands-entry-lite-hn6bz8ps.js";import"./vm-hands-entry-lite-vxpz4ha7.js";import"./vm-hands-entry-lite-vwfzvwcg.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-5g4m3ng5.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-kfbcdxpc.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";export{r as LocalCapabilityError,zo as SHORT_REQUEST_CAPABILITIES,vs as capabilityInventoryForRoots,Li as confinedExecutionShell,qo as defaultLocalCommandRunner,Ss as deliverLocalHandsEnvironment,Go as enrolledRootPaths,xs as executeLocalOperation,Es as rebindLocalHandsControl,Wo as runFileCapability,Vo as runTransferCapability,cn as spawnCaptured};
2
+ import{zo,Li,cn,qo,Wo,Vo,Go,vs,Ss,Es,xs}from"./vm-hands-entry-lite-gemb5d56.js";import"./vm-hands-entry-lite-xgctesh9.js";import"./vm-hands-entry-lite-gqygejrd.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-njs8k65s.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-t3qf6qrj.js";import"./vm-hands-entry-lite-ztvh5hpp.js";import"./vm-hands-entry-lite-e24k4djp.js";import"./vm-hands-entry-lite-2w04q9a6.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-wt5qh4mq.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-9jxdd391.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";export{r as LocalCapabilityError,zo as SHORT_REQUEST_CAPABILITIES,vs as capabilityInventoryForRoots,Li as confinedExecutionShell,qo as defaultLocalCommandRunner,Ss as deliverLocalHandsEnvironment,Go as enrolledRootPaths,xs as executeLocalOperation,Es as rebindLocalHandsControl,Wo as runFileCapability,Vo as runTransferCapability,cn as spawnCaptured};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Lt,Os,G,ze,Mt}from"./vm-hands-entry-lite-vxpz4ha7.js";import"./vm-hands-entry-lite-vwfzvwcg.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-kfbcdxpc.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{ze as ensureLinuxDesktop,Lt as localDisplayAvailable,Os as localDisplayReady,G as privateDirectory,Mt as runLocalDisplayStream};
2
+ import{Lt,Os,G,ze,Mt}from"./vm-hands-entry-lite-e24k4djp.js";import"./vm-hands-entry-lite-2w04q9a6.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-9jxdd391.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{ze as ensureLinuxDesktop,Lt as localDisplayAvailable,Os as localDisplayReady,G as privateDirectory,Mt as runLocalDisplayStream};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{An,Pn,Tn,Rn,Cr}from"./vm-hands-entry-lite-2w04q9a6.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-9jxdd391.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";export{An as MAC_SCREEN,Pn as WINDOWS_SCREEN,Tn as createDisplayVideoLane,Cr as localDisplayVideoAvailable,Rn as simulatorVideoFfmpeg};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{rt,cr,ks,Cs}from"./vm-hands-entry-lite-4nsrr3vh.js";import"./vm-hands-entry-lite-qnbc2bt1.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{rt as ManagedProcessStoppedError,ks as controlManagedDeviceProcess,Cs as retireManagedDeviceProcess,cr as runManagedDeviceProcess};
2
+ import{rt,cr,ks,Cs}from"./vm-hands-entry-lite-xgctesh9.js";import"./vm-hands-entry-lite-gqygejrd.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-1f2cam25.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{rt as ManagedProcessStoppedError,ks as controlManagedDeviceProcess,Cs as retireManagedDeviceProcess,cr as runManagedDeviceProcess};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{hs,fs,ms,gs,_s,ys,bs}from"./vm-hands-entry-lite-m4x8nt2r.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{_s as acquireManagedRuntimeDirectoryLock,ms as currentManagedRuntimeVersion,bs as flushManagedRuntimeLifecycleEvents,gs as isManagedRuntimeVersionExecutable,fs as legacyManagedRuntimePaths,hs as managedRuntimePaths,ys as recordManagedRuntimeLifecycle};
2
+ import{hs,fs,ms,gs,_s,ys,bs}from"./vm-hands-entry-lite-2vs83bp0.js";import"./vm-hands-entry-lite-t5q30ne0.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{_s as acquireManagedRuntimeDirectoryLock,ms as currentManagedRuntimeVersion,bs as flushManagedRuntimeLifecycleEvents,gs as isManagedRuntimeVersionExecutable,fs as legacyManagedRuntimePaths,hs as managedRuntimePaths,ys as recordManagedRuntimeLifecycle};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Xo,Yo,Fs,js}from"./vm-hands-entry-lite-kfbcdxpc.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";export{js as allowMacPermissions,Fs as permissionsSummary,Yo as readMacPermissions,Xo as reasonIdentity};
2
+ import{Xo,Yo,Fs,js}from"./vm-hands-entry-lite-9jxdd391.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";export{js as allowMacPermissions,Fs as permissionsSummary,Yo as readMacPermissions,Xo as reasonIdentity};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Ur,Ee,J,jn,Ds,uo,Ns,Ze,Zo,Un,Ls,Ms,Hr,$s,Bs}from"./vm-hands-entry-lite-5g4m3ng5.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{Ur as WORKER_SERVICE_ENV,J as WorkerServiceError,uo as connectServiceLabel,Ee as defaultWorkerServiceHost,Ms as installWorkerService,Ze as installedWorkerService,Ns as isConnectServiceLabel,Bs as removeWorkerService,Hr as restartWorkerService,$s as retargetWorkerServiceLogs,Zo as retireLegacyWorkerService,Ls as workerServiceDefinitionCurrent,jn as workerServiceLauncher,Un as workerServiceProcessRunning,Ds as workerServiceRetargetPending};
2
+ import{Ur,Ee,J,jn,Ds,uo,Ns,Ze,Zo,Un,Ls,Ms,Hr,$s,Bs}from"./vm-hands-entry-lite-wt5qh4mq.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-fcvf8md1.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-9sa1knn7.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-8j7p91hr.js";import"./vm-hands-entry-lite-em7mk9tn.js";export{Ur as WORKER_SERVICE_ENV,J as WorkerServiceError,uo as connectServiceLabel,Ee as defaultWorkerServiceHost,Ms as installWorkerService,Ze as installedWorkerService,Ns as isConnectServiceLabel,Bs as removeWorkerService,Hr as restartWorkerService,$s as retargetWorkerServiceLogs,Zo as retireLegacyWorkerService,Ls as workerServiceDefinitionCurrent,jn as workerServiceLauncher,Un as workerServiceProcessRunning,Ds as workerServiceRetargetPending};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import"./vm-hands-entry-lite-9jgf223h.js";import"./vm-hands-entry-lite-fcvf8md1.js";import{g}from"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-em7mk9tn.js";import"./vm-hands-entry-lite-n4x7reax.js";import{jt,ct}from"./vm-hands-entry-lite-1f2cam25.js";import{w,M,ar,Be,tt}from"./vm-hands-entry-lite-s7qnn93s.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-7q90z39n.js";import"./vm-hands-entry-lite-qnbc2bt1.js";import"./vm-hands-entry-lite-mfpwe6xs.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-njs8k65s.js";import"./vm-hands-entry-lite-cm497v4t.js";import"./vm-hands-entry-lite-vwfzvwcg.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-apejx721.js";import"./vm-hands-entry-lite-kfbcdxpc.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-m4x8nt2r.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-5g4m3ng5.js";import"./vm-hands-entry-lite-t3qf6qrj.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-4nsrr3vh.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-vxpz4ha7.js";import"./vm-hands-entry-lite-hn6bz8ps.js";import"./vm-hands-entry-lite-4fwf7wgb.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-t5q30ne0.js";import{a}from"./vm-hands-entry-lite-9sa1knn7.js";import{t,o,u,i,s,n}from"./vm-hands-entry-lite-ba3qq0bs.js";import"./vm-hands-entry-lite-8j7p91hr.js";import{readFileSync as me,realpathSync as k,renameSync as ge,unlinkSync as fe,writeFileSync as he}from"fs";import{dirname as ye,join as I}from"path";function h(e){return`claude mcp add --transport http reason ${e}`}function C(e){return`codex mcp add reason --url ${e}
2
+ import"./vm-hands-entry-lite-9jgf223h.js";import"./vm-hands-entry-lite-fcvf8md1.js";import{g}from"./vm-hands-entry-lite-hw26gewc.js";import"./vm-hands-entry-lite-r7zs4ce2.js";import"./vm-hands-entry-lite-em7mk9tn.js";import"./vm-hands-entry-lite-n4x7reax.js";import{jt,ct}from"./vm-hands-entry-lite-1f2cam25.js";import{w,M,ar,Be,tt}from"./vm-hands-entry-lite-te2kjapa.js";import"./vm-hands-entry-lite-tqc2ezda.js";import"./vm-hands-entry-lite-gemb5d56.js";import"./vm-hands-entry-lite-gqygejrd.js";import"./vm-hands-entry-lite-t1akv6pa.js";import"./vm-hands-entry-lite-a3w8m8nb.js";import"./vm-hands-entry-lite-njs8k65s.js";import"./vm-hands-entry-lite-cm497v4t.js";import"./vm-hands-entry-lite-2w04q9a6.js";import"./vm-hands-entry-lite-jcf61cb4.js";import"./vm-hands-entry-lite-zs4tknxy.js";import"./vm-hands-entry-lite-9jxdd391.js";import"./vm-hands-entry-lite-d9g1pzzx.js";import"./vm-hands-entry-lite-2vs83bp0.js";import"./vm-hands-entry-lite-3pnjdh8m.js";import"./vm-hands-entry-lite-wt5qh4mq.js";import"./vm-hands-entry-lite-t3qf6qrj.js";import"./vm-hands-entry-lite-3vmhs921.js";import"./vm-hands-entry-lite-499mywh7.js";import"./vm-hands-entry-lite-12rzrd95.js";import"./vm-hands-entry-lite-xgctesh9.js";import"./vm-hands-entry-lite-g9z467dk.js";import"./vm-hands-entry-lite-3adw9jw3.js";import"./vm-hands-entry-lite-e24k4djp.js";import"./vm-hands-entry-lite-ztvh5hpp.js";import"./vm-hands-entry-lite-4fwf7wgb.js";import"./vm-hands-entry-lite-dh8f2h2d.js";import"./vm-hands-entry-lite-t5q30ne0.js";import{a}from"./vm-hands-entry-lite-9sa1knn7.js";import{t,o,u,i,s,n}from"./vm-hands-entry-lite-ba3qq0bs.js";import"./vm-hands-entry-lite-8j7p91hr.js";import{readFileSync as me,realpathSync as k,renameSync as ge,unlinkSync as fe,writeFileSync as he}from"fs";import{dirname as ye,join as I}from"path";function h(e){return`claude mcp add --transport http reason ${e}`}function C(e){return`codex mcp add reason --url ${e}
3
3
  codex mcp login reason`}var F=h("https://mcp.reasonmachines.com/mcp"),z=C("https://mcp.reasonmachines.com/mcp"),B=`https://claude.ai/settings/connectors?add=custom&url=${encodeURIComponent("https://mcp.reasonmachines.com/mcp")}`,H=`https://cursor.com/install-mcp?name=reason&config=${encodeURIComponent(btoa(JSON.stringify({url:"https://mcp.reasonmachines.com/mcp"})))}`;var b="https://github.com/reason-machines/reason-plugins",X=`Connect a coding agent to Reason over MCP
4
4
 
5
5
  Usage:
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{gt}from"./vm-hands-entry-lite-t1akv6pa.js";export{gt as CLI_VERSION};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{T}from"./vm-hands-entry-lite-fcvf8md1.js";import{Kr}from"./vm-hands-entry-lite-apejx721.js";import{ut}from"./vm-hands-entry-lite-3rwtqr28.js";import{a}from"./vm-hands-entry-lite-9sa1knn7.js";import{A}from"./vm-hands-entry-lite-8j7p91hr.js";import{randomUUID as f}from"crypto";import{chmodSync as U,closeSync as h,constants as g,existsSync as me,fstatSync as F,lstatSync as R,mkdirSync as B,openSync as G,readFileSync as Y,readdirSync as z,readlinkSync as J,realpathSync as P,renameSync as _,rmSync as p,statSync as K,symlinkSync as _t,unlinkSync as M,writeFileSync as L}from"fs";import{basename as vt,dirname as S,isAbsolute as fe,join as c,relative as ge,resolve as b,sep as _e}from"path";import{createRequire as H}from"module";var q=1,j=1,ye=128,ve=65536;var he=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;var D=/^[a-z0-9_.-]{1,80}$/,be=64,Ee="so.ara.device-broker",Me=[Ee,"com.reasonmachines.device-broker"],Pt=Kr(Me);var we=["service.install_started","service.install_completed","service.install_failed","service.launcher_adopted","service.launcher_conflict","service.started","service.reconnecting","service.reconnected","service.idle_sleep_held","service.idle_sleep_released","service.idle_sleep_failed","service.start_failed","service.stopped","service.exit_failed","service.singleton_rejected","credential.migration_started","credential.migration_completed","credential.migration_failed","credential.store_started","credential.store_completed","credential.store_failed","credential.delete_started","credential.delete_completed","credential.delete_failed","update.check_started","update.not_available","update.download_started","update.downloaded","update.verified","update.activated","update.rollback","update.failed","executor.update.check_started","executor.update.not_available","executor.update.download_started","executor.update.downloaded","executor.update.verified","executor.update.activated","executor.update.rollback","executor.update.failed","identity.refresh_completed","identity.refresh_failed","update.device_moved","update.components_installed","update.deferred","update.deferral_expired","worker.previous_exit","worker.capabilities_withheld","identity.computer_use_unavailable"];function X(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function W(e,t,n=[]){let r=new Set([...t,...n]);return t.every((i)=>(i in e))&&Object.keys(e).every((i)=>r.has(i))}function E(e){return typeof e==="string"&&he.test(e)}function Z(e){return typeof e==="string"&&!Number.isNaN(Date.parse(e))&&new Date(e).toISOString()===e}function k(e){B(e,{recursive:!0,mode:448}),U(e,448)}function Re(e,t){k(S(e));let n=`${e}.${process.pid}.${f()}.tmp`;try{L(n,t,{mode:384,flag:"wx"}),U(n,384),_(n,e)}finally{if(me(n))M(n)}}function hs(e={}){if((e.platform??process.platform)!=="darwin")throw new ut("unsupported_platform","The managed Reason runtime is currently available only on macOS.");let n=e.environment??process.env,r=T(n,"REASON_CLI_CHANNEL")==="staging",i=r?T(n,"REASON_MANAGED_RUNTIME_ROOT")?.trim():void 0,o=e.root!==void 0||Boolean(i&&fe(i))?null:c(e.home??a(),"Library","Application Support"),d=e.root??(o?c(o,r?"Reason Staging":"Reason","CLI"):i);return{executableName:"reason",root:d,...o?{legacyRoot:c(o,"Ara",...r?["staging","runtime"]:["runtime"])}:{},versions:c(d,"versions"),current:c(d,"current"),previous:c(d,"previous"),brokerLock:c(d,"broker.lock"),transitionLock:c(d,"transition.lock"),lifecycleEvents:c(d,"lifecycle-events")}}function fs(e){let t=e.legacyRoot;if(!t)return null;return{root:t,versions:c(t,"versions"),current:c(t,"current"),previous:c(t,"previous"),brokerLock:c(t,"broker.lock"),transitionLock:c(t,"transition.lock"),lifecycleEvents:c(t,"lifecycle-events")}}function pe(e,t){let n;try{if(!R(e).isSymbolicLink())return null;n=J(e)}catch{return null}let r=n.match(/^versions\/(\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?)\/(ara|Reason|reason)$/);return r&&(r[2]==="ara"||r[2]===t)?r[1]:null}function ms(e){return pe(e.current,e.executableName)}function O(e,t,n){let i=ge(t,e).split(_e);return i.length===2&&E(i[0])&&(i[1]==="ara"||n!==void 0&&i[1]===n)?i[0]:null}function Le(e,t){try{return R(t).isSymbolicLink()&&b(S(t),J(t))===b(e.current)}catch{return!1}}function gs(e,t=process.execPath){try{return O(P(t),P(e.versions),e.executableName)!==null}catch{let n=b(t);return n===b(e.current)||Le(e,n)||O(n,b(e.versions),e.executableName)!==null}}function Ae(e){return X(e)&&W(e,["schema_version","pid","nonce","started_at","runtime_version"])&&e.schema_version===q&&typeof e.pid==="number"&&Number.isSafeInteger(e.pid)&&e.pid>0&&typeof e.nonce==="string"&&/^[0-9a-f-]{36}$/.test(e.nonce)&&Z(e.started_at)&&E(e.runtime_version)}function Q(e,t){try{let n=R(e);if(!n.isDirectory()||!A(n))return null;let r=G(c(e,t),g.O_RDONLY|g.O_NOFOLLOW|g.O_NONBLOCK);try{let i=F(r);if(!i.isFile()||i.nlink!==1||!A(i)||i.size>4096)return null;return Y(r,"utf8")}finally{h(r)}}catch{return null}}function N(e){try{let t=JSON.parse(Q(e,"owner.json")??"null");return Ae(t)?t:null}catch{return null}}function ee(e){try{return process.kill(e,0),!0}catch(t){return!(t instanceof Error&&("code"in t)&&t.code==="ESRCH")}}var C="lease",Ne=2,Se=4,y;function ke(){if(y!==void 0)return y;if(y=null,process.platform!=="linux"&&process.platform!=="darwin")return null;let e;try{e=H(import.meta.url)("bun:ffi")}catch{return null}let t=process.platform==="darwin"?"__error":"__errno_location",n=process.platform==="darwin"?["/usr/lib/libSystem.B.dylib"]:["libc.so.6",`libc.musl-${process.arch==="arm64"?"aarch64":"x86_64"}.so.1`];for(let r of n)try{let i=e.dlopen(r,{flock:{args:[e.FFIType.i32,e.FFIType.i32],returns:e.FFIType.i32},[t]:{args:[],returns:e.FFIType.ptr}}),s=i.symbols[t]();if(s===null)continue;return y={flock:(o,d)=>i.symbols.flock(o,d),errno:()=>e.read.i32(s),wouldBlock:process.platform==="darwin"?35:11},y}catch{}return null}var v,Ie=3221225472,Te=4,xe=128,Pe=32;function De(e){if(v===void 0){v=null;try{let s=H(import.meta.url)("bun:ffi"),{FFIType:o}=s;v={kernel:s.dlopen("kernel32.dll",{CreateFileW:{args:[o.ptr,o.u32,o.u32,o.ptr,o.u32,o.u32,o.ptr],returns:o.i64_fast},CloseHandle:{args:[o.i64_fast],returns:o.i32},GetLastError:{args:[],returns:o.u32}}).symbols,ptr:(l)=>s.ptr(l)}}catch{return null}}if(!v)return null;let{kernel:t,ptr:n}=v,r=Buffer.from(`${e}\x00`,"utf16le"),i=t.CreateFileW(n(r),Ie,0,null,Te,xe,null);if(Number(i)===-1)return t.GetLastError()===Pe?"busy":null;return{release:()=>{t.CloseHandle(i)}}}function Oe(e){if(process.platform==="win32")return De(`${e}.lease`);let t=ke();if(!t)return null;let n=G(`${e}.lease`,g.O_RDWR|g.O_CREAT|g.O_NOFOLLOW,384);try{let r=F(n);if(!r.isFile()||r.nlink!==1||!A(r))return h(n),"busy";if(t.flock(n,Ne|Se)===0)return{release:()=>h(n)};let i=t.errno();return h(n),i===t.wouldBlock?"busy":null}catch(r){throw h(n),r}}function _s(e){k(S(e.path));let t=Oe(e.path);if(t==="busy")return{acquired:!1,owner:N(e.path),recoveredStaleOwner:!1};let n=t!==null;try{let r=Ce(e,t);if(r.acquired)n=!1;return r}finally{if(n)t.release()}}function Ce(e,t){let n=e.alive??ee,r=!1;for(let i=0;i<4;i+=1){let s={schema_version:q,pid:e.pid??process.pid,nonce:e.nonce?.()??f(),started_at:(e.now?.()??new Date).toISOString(),runtime_version:e.runtimeVersion},o=`${e.path}.init-${process.pid}-${f()}`,d=!1;try{if(B(o,{mode:448}),L(c(o,"owner.json"),`${JSON.stringify(s)}
2
+ import{T}from"./vm-hands-entry-lite-fcvf8md1.js";import{Kr}from"./vm-hands-entry-lite-zs4tknxy.js";import{ut}from"./vm-hands-entry-lite-3rwtqr28.js";import{a}from"./vm-hands-entry-lite-9sa1knn7.js";import{A}from"./vm-hands-entry-lite-8j7p91hr.js";import{randomUUID as f}from"crypto";import{chmodSync as U,closeSync as h,constants as g,existsSync as me,fstatSync as F,lstatSync as R,mkdirSync as B,openSync as G,readFileSync as Y,readdirSync as z,readlinkSync as J,realpathSync as P,renameSync as _,rmSync as p,statSync as K,symlinkSync as _t,unlinkSync as M,writeFileSync as L}from"fs";import{basename as vt,dirname as S,isAbsolute as fe,join as c,relative as ge,resolve as b,sep as _e}from"path";import{createRequire as H}from"module";var q=1,j=1,ye=128,ve=65536;var he=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;var D=/^[a-z0-9_.-]{1,80}$/,be=64,Ee="so.ara.device-broker",Me=[Ee,"com.reasonmachines.device-broker"],Pt=Kr(Me);var we=["service.install_started","service.install_completed","service.install_failed","service.launcher_adopted","service.launcher_conflict","service.started","service.reconnecting","service.reconnected","service.idle_sleep_held","service.idle_sleep_released","service.idle_sleep_failed","service.start_failed","service.stopped","service.exit_failed","service.singleton_rejected","credential.migration_started","credential.migration_completed","credential.migration_failed","credential.store_started","credential.store_completed","credential.store_failed","credential.delete_started","credential.delete_completed","credential.delete_failed","update.check_started","update.not_available","update.download_started","update.downloaded","update.verified","update.activated","update.rollback","update.failed","executor.update.check_started","executor.update.not_available","executor.update.download_started","executor.update.downloaded","executor.update.verified","executor.update.activated","executor.update.rollback","executor.update.failed","identity.refresh_completed","identity.refresh_failed","update.device_moved","update.components_installed","update.deferred","update.deferral_expired","worker.previous_exit","worker.capabilities_withheld","identity.computer_use_unavailable"];function X(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function W(e,t,n=[]){let r=new Set([...t,...n]);return t.every((i)=>(i in e))&&Object.keys(e).every((i)=>r.has(i))}function E(e){return typeof e==="string"&&he.test(e)}function Z(e){return typeof e==="string"&&!Number.isNaN(Date.parse(e))&&new Date(e).toISOString()===e}function k(e){B(e,{recursive:!0,mode:448}),U(e,448)}function Re(e,t){k(S(e));let n=`${e}.${process.pid}.${f()}.tmp`;try{L(n,t,{mode:384,flag:"wx"}),U(n,384),_(n,e)}finally{if(me(n))M(n)}}function hs(e={}){if((e.platform??process.platform)!=="darwin")throw new ut("unsupported_platform","The managed Reason runtime is currently available only on macOS.");let n=e.environment??process.env,r=T(n,"REASON_CLI_CHANNEL")==="staging",i=r?T(n,"REASON_MANAGED_RUNTIME_ROOT")?.trim():void 0,o=e.root!==void 0||Boolean(i&&fe(i))?null:c(e.home??a(),"Library","Application Support"),d=e.root??(o?c(o,r?"Reason Staging":"Reason","CLI"):i);return{executableName:"reason",root:d,...o?{legacyRoot:c(o,"Ara",...r?["staging","runtime"]:["runtime"])}:{},versions:c(d,"versions"),current:c(d,"current"),previous:c(d,"previous"),brokerLock:c(d,"broker.lock"),transitionLock:c(d,"transition.lock"),lifecycleEvents:c(d,"lifecycle-events")}}function fs(e){let t=e.legacyRoot;if(!t)return null;return{root:t,versions:c(t,"versions"),current:c(t,"current"),previous:c(t,"previous"),brokerLock:c(t,"broker.lock"),transitionLock:c(t,"transition.lock"),lifecycleEvents:c(t,"lifecycle-events")}}function pe(e,t){let n;try{if(!R(e).isSymbolicLink())return null;n=J(e)}catch{return null}let r=n.match(/^versions\/(\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?)\/(ara|Reason|reason)$/);return r&&(r[2]==="ara"||r[2]===t)?r[1]:null}function ms(e){return pe(e.current,e.executableName)}function O(e,t,n){let i=ge(t,e).split(_e);return i.length===2&&E(i[0])&&(i[1]==="ara"||n!==void 0&&i[1]===n)?i[0]:null}function Le(e,t){try{return R(t).isSymbolicLink()&&b(S(t),J(t))===b(e.current)}catch{return!1}}function gs(e,t=process.execPath){try{return O(P(t),P(e.versions),e.executableName)!==null}catch{let n=b(t);return n===b(e.current)||Le(e,n)||O(n,b(e.versions),e.executableName)!==null}}function Ae(e){return X(e)&&W(e,["schema_version","pid","nonce","started_at","runtime_version"])&&e.schema_version===q&&typeof e.pid==="number"&&Number.isSafeInteger(e.pid)&&e.pid>0&&typeof e.nonce==="string"&&/^[0-9a-f-]{36}$/.test(e.nonce)&&Z(e.started_at)&&E(e.runtime_version)}function Q(e,t){try{let n=R(e);if(!n.isDirectory()||!A(n))return null;let r=G(c(e,t),g.O_RDONLY|g.O_NOFOLLOW|g.O_NONBLOCK);try{let i=F(r);if(!i.isFile()||i.nlink!==1||!A(i)||i.size>4096)return null;return Y(r,"utf8")}finally{h(r)}}catch{return null}}function N(e){try{let t=JSON.parse(Q(e,"owner.json")??"null");return Ae(t)?t:null}catch{return null}}function ee(e){try{return process.kill(e,0),!0}catch(t){return!(t instanceof Error&&("code"in t)&&t.code==="ESRCH")}}var C="lease",Ne=2,Se=4,y;function ke(){if(y!==void 0)return y;if(y=null,process.platform!=="linux"&&process.platform!=="darwin")return null;let e;try{e=H(import.meta.url)("bun:ffi")}catch{return null}let t=process.platform==="darwin"?"__error":"__errno_location",n=process.platform==="darwin"?["/usr/lib/libSystem.B.dylib"]:["libc.so.6",`libc.musl-${process.arch==="arm64"?"aarch64":"x86_64"}.so.1`];for(let r of n)try{let i=e.dlopen(r,{flock:{args:[e.FFIType.i32,e.FFIType.i32],returns:e.FFIType.i32},[t]:{args:[],returns:e.FFIType.ptr}}),s=i.symbols[t]();if(s===null)continue;return y={flock:(o,d)=>i.symbols.flock(o,d),errno:()=>e.read.i32(s),wouldBlock:process.platform==="darwin"?35:11},y}catch{}return null}var v,Ie=3221225472,Te=4,xe=128,Pe=32;function De(e){if(v===void 0){v=null;try{let s=H(import.meta.url)("bun:ffi"),{FFIType:o}=s;v={kernel:s.dlopen("kernel32.dll",{CreateFileW:{args:[o.ptr,o.u32,o.u32,o.ptr,o.u32,o.u32,o.ptr],returns:o.i64_fast},CloseHandle:{args:[o.i64_fast],returns:o.i32},GetLastError:{args:[],returns:o.u32}}).symbols,ptr:(l)=>s.ptr(l)}}catch{return null}}if(!v)return null;let{kernel:t,ptr:n}=v,r=Buffer.from(`${e}\x00`,"utf16le"),i=t.CreateFileW(n(r),Ie,0,null,Te,xe,null);if(Number(i)===-1)return t.GetLastError()===Pe?"busy":null;return{release:()=>{t.CloseHandle(i)}}}function Oe(e){if(process.platform==="win32")return De(`${e}.lease`);let t=ke();if(!t)return null;let n=G(`${e}.lease`,g.O_RDWR|g.O_CREAT|g.O_NOFOLLOW,384);try{let r=F(n);if(!r.isFile()||r.nlink!==1||!A(r))return h(n),"busy";if(t.flock(n,Ne|Se)===0)return{release:()=>h(n)};let i=t.errno();return h(n),i===t.wouldBlock?"busy":null}catch(r){throw h(n),r}}function _s(e){k(S(e.path));let t=Oe(e.path);if(t==="busy")return{acquired:!1,owner:N(e.path),recoveredStaleOwner:!1};let n=t!==null;try{let r=Ce(e,t);if(r.acquired)n=!1;return r}finally{if(n)t.release()}}function Ce(e,t){let n=e.alive??ee,r=!1;for(let i=0;i<4;i+=1){let s={schema_version:q,pid:e.pid??process.pid,nonce:e.nonce?.()??f(),started_at:(e.now?.()??new Date).toISOString(),runtime_version:e.runtimeVersion},o=`${e.path}.init-${process.pid}-${f()}`,d=!1;try{if(B(o,{mode:448}),L(c(o,"owner.json"),`${JSON.stringify(s)}
3
3
  `,{mode:384,flag:"wx"}),t!==null)L(c(o,C),`flock
4
4
  `,{mode:384,flag:"wx"});e.beforePublish?.();try{throw R(e.path),Object.assign(Error("Managed runtime lock exists."),{code:"EEXIST"})}catch(m){if(m.code!=="ENOENT")throw m}_(o,e.path),d=!0;let l=!1;return{acquired:!0,owner:s,recoveredStaleOwner:r,release(){if(l)return;if(l=!0,N(e.path)?.nonce===s.nonce)p(e.path,{recursive:!0,force:!0});t?.release()}}}catch(l){let m=l.code;if(!["EEXIST","ENOTEMPTY"].includes(m??""))throw l;let u=N(e.path),re=(e.now?.()??new Date).getTime(),ie=u&&e.staleAfterMs!==void 0?re-Date.parse(u.started_at)<e.staleAfterMs:!1,ae=u!==null&&!(t!==null&&Q(e.path,C)!==null)&&n(u.pid);if(!u||ae||ie)return{acquired:!1,owner:u,recoveredStaleOwner:!1};let I=`${e.path}.stale-${process.pid}-${f()}`;try{_(e.path,I),p(I,{recursive:!0,force:!0}),r=!0}catch(x){let oe=x.code;if(!["ENOENT","EEXIST"].includes(oe??""))throw x}}finally{if(!d)p(o,{recursive:!0,force:!0})}}throw new ut("lock_unavailable","Could not acquire the managed Reason runtime lock.")}function te(e){return X(e)&&W(e,["schema_version","event_id","occurred_at","event","runtime_version"],["from_version","to_version","reason_code","duration_ms","attempt_count","retry_in_ms","capabilities"])&&e.schema_version===j&&typeof e.event_id==="string"&&/^[0-9a-f-]{36}$/.test(e.event_id)&&Z(e.occurred_at)&&typeof e.event==="string"&&we.includes(e.event)&&E(e.runtime_version)&&(e.from_version===void 0||E(e.from_version))&&(e.to_version===void 0||E(e.to_version))&&(e.reason_code===void 0||typeof e.reason_code==="string"&&D.test(e.reason_code))&&(e.duration_ms===void 0||typeof e.duration_ms==="number"&&Number.isSafeInteger(e.duration_ms)&&e.duration_ms>=0&&e.duration_ms<=86400000)&&(e.attempt_count===void 0||typeof e.attempt_count==="number"&&Number.isSafeInteger(e.attempt_count)&&e.attempt_count>=1&&e.attempt_count<=1e5)&&(e.retry_in_ms===void 0||typeof e.retry_in_ms==="number"&&Number.isSafeInteger(e.retry_in_ms)&&e.retry_in_ms>=0&&e.retry_in_ms<=30000)&&(e.capabilities===void 0||Array.isArray(e.capabilities)&&e.capabilities.length<=be&&e.capabilities.every((t)=>typeof t==="string"&&D.test(t)))}var Ve=/^(\d{22}-[0-9a-f-]{36}\.json)$/,Ue=/^(\d{22}-[0-9a-f-]{36}\.json)\.sending-(\d+)-[0-9a-f-]{36}$/,Fe=300000,w=0n;function Be(e){let t=BigInt(new Date(e.occurred_at).getTime())*1000000n;return w=t>w?t:w+1n,`${String(w).padStart(22,"0")}-${e.event_id}.json`}function ne(e){try{return z(e.lifecycleEvents).filter((t)=>Ve.test(t)).sort()}catch{return[]}}function V(e){try{let t=JSON.parse(Y(e,"utf8"));return te(t)?t:null}catch{return null}}function $e(e,t=ee,n=Date.now()){let r;try{r=z(e.lifecycleEvents)}catch{return}for(let i of r){let s=i.match(Ue);if(!s)continue;let o=c(e.lifecycleEvents,i),d=c(e.lifecycleEvents,s[1]),l=!t(Number(s[2]));if(!l)try{l=n-K(o).mtimeMs>=Fe}catch{continue}if(!l)continue;try{_(o,d)}catch(m){let u=m.code;if(u==="EEXIST")M(o);else if(u!=="ENOENT")throw m}}}function Ge(e){let n=ne(e).flatMap((i)=>{try{return[{name:i,size:K(c(e.lifecycleEvents,i)).size}]}catch{return[]}}),r=n.reduce((i,s)=>i+s.size,0);while(n.length>ye||r>ve){let i=n.shift();if(!i)break;try{M(c(e.lifecycleEvents,i.name)),r-=i.size}catch(s){if(s.code!=="ENOENT")throw s}}}function ys(e,t,n={}){let r={schema_version:j,event_id:n.eventId?.()??f(),occurred_at:(n.now?.()??new Date).toISOString(),...t};if(!te(r))throw new ut("invalid_lifecycle_event","Managed runtime lifecycle event is invalid.");return k(e.lifecycleEvents),Re(c(e.lifecycleEvents,Be(r)),`${JSON.stringify(r)}
5
5
  `),Ge(e),r}async function bs(e,t,n){$e(e);let r=0;for(let i of ne(e)){let s=c(e.lifecycleEvents,i);if(n){let l=V(s);if(!l||!n(l))continue}let o=`${s}.sending-${process.pid}-${f()}`;try{_(s,o)}catch(l){if(l.code==="ENOENT")continue;throw l}let d=V(o);if(!d){M(o);continue}try{await t(d),M(o),r+=1}catch{try{_(o,s)}catch(l){if(l.code!=="ENOENT")throw l}break}}return r}export{hs,fs,ms,gs,_s,ys,bs};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{S,Gt,Vn,Xe,Gn,Kn}from"./vm-hands-entry-lite-jcf61cb4.js";import{Zn}from"./vm-hands-entry-lite-apejx721.js";import{Fn}from"./vm-hands-entry-lite-d9g1pzzx.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{execFile as ys,spawn as Ke}from"child_process";import{existsSync as ws}from"fs";import{connect as xs}from"net";function pn(){let e=new Set,t=null,n=(s)=>({holder:t?.viewer??null,you:t===s,same_user:Boolean(t?.viewer&&s.viewer&&t.viewer.user_id===s.viewer.user_id)}),o=()=>{for(let s of e)s.notify(n(s))};return{join(s){return e.add(s),s.notify(n(s)),()=>{if(!e.delete(s))return;if(t!==s)return;t=null,o()}},claim(s){if(t===s||!e.has(s))return;t=s,o()}}}var ut=pn();import{createHash as St}from"crypto";import{once as Sn}from"events";import{createWriteStream as vn,existsSync as mr,mkdirSync as gr,mkdtempSync as hr,readFileSync as le,readdirSync as br,renameSync as yr,realpathSync as En,rmSync as Dn,statSync as Ne,writeFileSync as wr}from"fs";import{delimiter as _r,dirname as vt,join as b}from"path";import{finished as In}from"stream/promises";var qe="omljlfpmafedpplnpkkahegadhkimdje",io="https://chromewebstore.google.com/detail/reason/omljlfpmafedpplnpkkahegadhkimdje";var O={ocu:{repository:"https://github.com/iFurySt/open-codex-computer-use.git",revision:"386a260d1ab8b690adbbb27f7471595cf0c2b752",version:"0.3.5"},obu:{repository:"https://github.com/iFurySt/open-browser-use.git",revision:"ac015846df75928fbcf0f3a0f3ba3a210ce1a507",version:"0.1.42"}},H={version:"155.0.8059.84",macArm64Sha256:"13b9e98ce56f5ce18e100a009f455c9285f399e7c9dc8a76fdf2f3a9755bb5f2",linux64Sha256:"cf0f049892dea22e6a6db26d47ed0d7776b7158edcbec4634086633df8bafcbc",win64Sha256:"507f2a031441d10c62b5e3d4e863f09ac1198a571c1419976cbd8387f639afde"};var J={ocu:{url:`https://registry.npmjs.org/open-computer-use/-/open-computer-use-${O.ocu.version}.tgz`,sha256:"7c16a87c8cd357787b02c0ebd040dd5f93880c1fb51c1901caa2e0c05d063130",size_bytes:5844280},obu:{url:`https://registry.npmjs.org/open-browser-use/-/open-browser-use-${O.obu.version}.tgz`,sha256:"9386d8ce0a147b3f55e1807b68edf736836378807541c457c9b5f6ca2cabaa4e",size_bytes:21372018},extension:{url:`https://github.com/iFurySt/open-browser-use/releases/download/v${O.obu.version}/open-browser-use-chrome-extension-${O.obu.version}.zip`,sha256:"c9c07bec1175e12ea6985b0e7784a5ef01fd03f014b958224a1e17dcd838a241",size_bytes:31070}},F="pnbmoicbkopffjjgfgfglopechaiemkp";import{spawn as Me}from"child_process";import{createRequire as fn}from"module";import{join as mn}from"path";var gn=30000,hn=1048576;function Te(){return process.env.SystemRoot??"C:\\Windows"}function bn(){return mn(Te(),"System32","WindowsPowerShell","v1.0","powershell.exe")}var yn=String.raw`
2
+ import{S,Gt,Vn,Xe,Gn,Kn}from"./vm-hands-entry-lite-jcf61cb4.js";import{Zn}from"./vm-hands-entry-lite-zs4tknxy.js";import{Fn}from"./vm-hands-entry-lite-d9g1pzzx.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{execFile as ys,spawn as Ke}from"child_process";import{existsSync as ws}from"fs";import{connect as xs}from"net";function pn(){let e=new Set,t=null,n=(s)=>({holder:t?.viewer??null,you:t===s,same_user:Boolean(t?.viewer&&s.viewer&&t.viewer.user_id===s.viewer.user_id)}),o=()=>{for(let s of e)s.notify(n(s))};return{join(s){return e.add(s),s.notify(n(s)),()=>{if(!e.delete(s))return;if(t!==s)return;t=null,o()}},claim(s){if(t===s||!e.has(s))return;t=s,o()}}}var ut=pn();import{createHash as St}from"crypto";import{once as Sn}from"events";import{createWriteStream as vn,existsSync as mr,mkdirSync as gr,mkdtempSync as hr,readFileSync as le,readdirSync as br,renameSync as yr,realpathSync as En,rmSync as Dn,statSync as Ne,writeFileSync as wr}from"fs";import{delimiter as _r,dirname as vt,join as b}from"path";import{finished as In}from"stream/promises";var qe="omljlfpmafedpplnpkkahegadhkimdje",io="https://chromewebstore.google.com/detail/reason/omljlfpmafedpplnpkkahegadhkimdje";var O={ocu:{repository:"https://github.com/iFurySt/open-codex-computer-use.git",revision:"386a260d1ab8b690adbbb27f7471595cf0c2b752",version:"0.3.5"},obu:{repository:"https://github.com/iFurySt/open-browser-use.git",revision:"ac015846df75928fbcf0f3a0f3ba3a210ce1a507",version:"0.1.42"}},H={version:"155.0.8059.84",macArm64Sha256:"13b9e98ce56f5ce18e100a009f455c9285f399e7c9dc8a76fdf2f3a9755bb5f2",linux64Sha256:"cf0f049892dea22e6a6db26d47ed0d7776b7158edcbec4634086633df8bafcbc",win64Sha256:"507f2a031441d10c62b5e3d4e863f09ac1198a571c1419976cbd8387f639afde"};var J={ocu:{url:`https://registry.npmjs.org/open-computer-use/-/open-computer-use-${O.ocu.version}.tgz`,sha256:"7c16a87c8cd357787b02c0ebd040dd5f93880c1fb51c1901caa2e0c05d063130",size_bytes:5844280},obu:{url:`https://registry.npmjs.org/open-browser-use/-/open-browser-use-${O.obu.version}.tgz`,sha256:"9386d8ce0a147b3f55e1807b68edf736836378807541c457c9b5f6ca2cabaa4e",size_bytes:21372018},extension:{url:`https://github.com/iFurySt/open-browser-use/releases/download/v${O.obu.version}/open-browser-use-chrome-extension-${O.obu.version}.zip`,sha256:"c9c07bec1175e12ea6985b0e7784a5ef01fd03f014b958224a1e17dcd838a241",size_bytes:31070}},F="pnbmoicbkopffjjgfgfglopechaiemkp";import{spawn as Me}from"child_process";import{createRequire as fn}from"module";import{join as mn}from"path";var gn=30000,hn=1048576;function Te(){return process.env.SystemRoot??"C:\\Windows"}function bn(){return mn(Te(),"System32","WindowsPowerShell","v1.0","powershell.exe")}var yn=String.raw`
3
3
  $ErrorActionPreference = "Stop"
4
4
  Add-Type -TypeDefinition @"
5
5
  using System;
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{readdirSync as b,readFileSync as P}from"fs";import{userInfo as k}from"os";var or="--vm-hands-op-runner-kind=person",sr="--vm-hands-op-runner-kind=surface",xt="--vm-hands-surface-uid=",kt="--vm-hands-surface-dir=",Ct=new Set(["automation.call.v1","display.stream.v1","preview.serve.v1"]);function R(t){let c=new Set([t]),l=[];try{l=b("/proc")}catch{}for(let o of l){if(!/^\d+$/.test(o))continue;try{let d=P(`/proc/${o}/stat`,"utf8");if(Number(d.slice(d.lastIndexOf(")")+2).split(" ")[3])===t)c.add(Number(o))}catch{}}for(let o of c)try{process.kill(o,"SIGKILL")}catch{}}var A=(t)=>{let c=globalThis.Bun;if(!c)throw new r("pty_unavailable","Reason terminals require the Bun runtime.");let l=c.spawn({cmd:[t.shell,...t.args],cwd:t.cwd,env:{...t.environment,TERM:"xterm-256color"},terminal:{cols:t.cols,rows:t.rows,data:(i,s)=>t.onData(s)}}),o=l.terminal,d=()=>{R(l.pid);try{o?.close()}catch{}};if(!o)throw d(),new r("pty_unavailable","Reason could not allocate a pseudo-terminal.");return{write:(i)=>o.write(i),resize:(i,s)=>o.resize(i,s),kill:d,exited:l.exited.then((i)=>typeof i==="number"?i:null,()=>null)}};function x(){let t=(()=>{try{return k().username}catch{return}})();return{PATH:process.env.PATH,HOME:process.env.HOME,SHELL:process.env.SHELL,LANG:"C.UTF-8",...t?{USER:t,LOGNAME:t}:{}}}async function E(t){let[{localAutomationAvailable:c},{localDisplayReady:l},{localDisplayVideoAvailable:o},{probeWorkerPreview:d},y]=await Promise.all([import("./local-automation-txbg9ztt.js"),import("./local-display-session-q7yb7zch.js"),import("./local-display-video-7bgc3wqr.js"),import("./worker-preview-readiness-kmwcrttt.js"),import("fs")]),i=AbortSignal.timeout(15000),s=null;try{y.mkdirSync(t,{recursive:!0,mode:448}),s=y.mkdtempSync(`${t}/probe-`);let[g,p,m]=await Promise.all([Promise.resolve().then(()=>c()).catch(()=>!1),l().catch(()=>!1),d(s,i).catch(()=>!1)]);return{t:"readiness",display_video:p&&await o().catch(()=>!1),lanes:{"automation.call.v1":g,"display.stream.v1":p,"preview.serve.v1":m,"tunnel.open":m,"tunnel.close":m}}}finally{if(s)y.rmSync(s,{recursive:!0,force:!0})}}async function os(){let[{executeLocalOperation:t,spawnCaptured:c},{runLocalPtySession:l},{configureDesktopAccount:o,desktopAccount:d},{configureWorkerSandbox:y}]=await Promise.all([import("./local-capabilities-ban71b70.js"),import("./local-pty-session-7hps89vj.js"),import("./desktop-account-nb7g2ek5.js"),import("./worker-sandbox-epre0fnv.js")]);y();let i=process.argv.includes(or),s=process.argv.includes(sr),g=(a,e,u)=>c(a,e[0]==="-lic"?["-lc",...e.slice(1)]:e,u),p=(process.geteuid?.()??0)!==0;if(s){p=!1;let a=process.argv.find((e)=>e.startsWith(xt))?.slice(xt.length);if((process.geteuid?.()??-1)===0&&a)try{p=o({value:a})!==null&&d()!==null}catch{p=!1}}let m=new Map,v=new Map,f=(a)=>{try{process.send?.(a)}catch{}};if(process.on("message",(a)=>{let e=a;if(e?.t==="cancel"){m.get(e.id)?.abort();return}if(e?.t==="control"){let n=v.get(e.id);if(s&&n&&e.control&&typeof e.control.kind==="string")import("./local-managed-process-s5eppwhr.js").then(({controlManagedDeviceProcess:_})=>_(n,{kind:e.control.kind,payload:e.control.payload??{}})).catch(()=>!1);return}if(e?.t==="retire"){if(s&&typeof e.operation_id==="string"&&typeof e.status==="string")import("./local-managed-process-s5eppwhr.js").then(({retireManagedDeviceProcess:n})=>n(e.operation_id,e.status)).catch(()=>!1);return}if(e?.t!=="op")return;if(!p){f({t:"done",id:e.id,completion:{status:"failed",error_code:"vm_hands_payload_account_unavailable"}});return}let u=e.claim.capability;if(u==="pty.start"&&!i){f({t:"done",id:e.id,completion:{status:"failed",error_code:"capability_not_granted"}});return}if(Ct.has(u)!==s){f({t:"done",id:e.id,completion:{status:"failed",error_code:"capability_not_granted"}});return}let w=new AbortController;m.set(e.id,w),v.set(e.id,e.claim);let S=u==="pty.start"?{runPtySession:(n)=>l(n,{spawnPty:A,environment:x(),loadProxy:()=>null})}:{worker:e.worker,...u==="exec.full"?{spawnFullControl:g}:{}};t(e.state,e.claim,{...S,signal:w.signal,emit:(n)=>{let{deliverySignal:_,...h}=n;f({t:"event",id:e.id,event:h})}}).then((n)=>f({t:"done",id:e.id,completion:n}),(n)=>f({t:"done",id:e.id,completion:{status:"failed",error_code:n&&typeof n==="object"&&"code"in n&&typeof n.code==="string"?n.code:"vm_hands_op_failed"}})).finally(()=>{m.delete(e.id),v.delete(e.id)})}),process.on("disconnect",()=>process.exit(0)),s){let a=process.argv.find((u)=>u.startsWith(kt))?.slice(kt.length),e={t:"readiness",display_video:!1,lanes:{}};f(p&&a?await E(a).catch(()=>e):e)}await new Promise(()=>{})}
2
+ import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{readdirSync as b,readFileSync as P}from"fs";import{userInfo as k}from"os";var or="--vm-hands-op-runner-kind=person",sr="--vm-hands-op-runner-kind=surface",xt="--vm-hands-surface-uid=",kt="--vm-hands-surface-dir=",Ct=new Set(["automation.call.v1","display.stream.v1","preview.serve.v1"]);function R(t){let c=new Set([t]),l=[];try{l=b("/proc")}catch{}for(let o of l){if(!/^\d+$/.test(o))continue;try{let d=P(`/proc/${o}/stat`,"utf8");if(Number(d.slice(d.lastIndexOf(")")+2).split(" ")[3])===t)c.add(Number(o))}catch{}}for(let o of c)try{process.kill(o,"SIGKILL")}catch{}}var A=(t)=>{let c=globalThis.Bun;if(!c)throw new r("pty_unavailable","Reason terminals require the Bun runtime.");let l=c.spawn({cmd:[t.shell,...t.args],cwd:t.cwd,env:{...t.environment,TERM:"xterm-256color"},terminal:{cols:t.cols,rows:t.rows,data:(i,s)=>t.onData(s)}}),o=l.terminal,d=()=>{R(l.pid);try{o?.close()}catch{}};if(!o)throw d(),new r("pty_unavailable","Reason could not allocate a pseudo-terminal.");return{write:(i)=>o.write(i),resize:(i,s)=>o.resize(i,s),kill:d,exited:l.exited.then((i)=>typeof i==="number"?i:null,()=>null)}};function x(){let t=(()=>{try{return k().username}catch{return}})();return{PATH:process.env.PATH,HOME:process.env.HOME,SHELL:process.env.SHELL,LANG:"C.UTF-8",...t?{USER:t,LOGNAME:t}:{}}}async function E(t){let[{localAutomationAvailable:c},{localDisplayReady:l},{localDisplayVideoAvailable:o},{probeWorkerPreview:d},y]=await Promise.all([import("./local-automation-k4prkpe7.js"),import("./local-display-session-c3x9jwsa.js"),import("./local-display-video-m8bxdh69.js"),import("./worker-preview-readiness-kmwcrttt.js"),import("fs")]),i=AbortSignal.timeout(15000),s=null;try{y.mkdirSync(t,{recursive:!0,mode:448}),s=y.mkdtempSync(`${t}/probe-`);let[g,p,m]=await Promise.all([Promise.resolve().then(()=>c()).catch(()=>!1),l().catch(()=>!1),d(s,i).catch(()=>!1)]);return{t:"readiness",display_video:p&&await o().catch(()=>!1),lanes:{"automation.call.v1":g,"display.stream.v1":p,"preview.serve.v1":m,"tunnel.open":m,"tunnel.close":m}}}finally{if(s)y.rmSync(s,{recursive:!0,force:!0})}}async function os(){let[{executeLocalOperation:t,spawnCaptured:c},{runLocalPtySession:l},{configureDesktopAccount:o,desktopAccount:d},{configureWorkerSandbox:y}]=await Promise.all([import("./local-capabilities-40gr3cb4.js"),import("./local-pty-session-7hps89vj.js"),import("./desktop-account-nb7g2ek5.js"),import("./worker-sandbox-epre0fnv.js")]);y();let i=process.argv.includes(or),s=process.argv.includes(sr),g=(a,e,u)=>c(a,e[0]==="-lic"?["-lc",...e.slice(1)]:e,u),p=(process.geteuid?.()??0)!==0;if(s){p=!1;let a=process.argv.find((e)=>e.startsWith(xt))?.slice(xt.length);if((process.geteuid?.()??-1)===0&&a)try{p=o({value:a})!==null&&d()!==null}catch{p=!1}}let m=new Map,v=new Map,f=(a)=>{try{process.send?.(a)}catch{}};if(process.on("message",(a)=>{let e=a;if(e?.t==="cancel"){m.get(e.id)?.abort();return}if(e?.t==="control"){let n=v.get(e.id);if(s&&n&&e.control&&typeof e.control.kind==="string")import("./local-managed-process-2tftndbf.js").then(({controlManagedDeviceProcess:_})=>_(n,{kind:e.control.kind,payload:e.control.payload??{}})).catch(()=>!1);return}if(e?.t==="retire"){if(s&&typeof e.operation_id==="string"&&typeof e.status==="string")import("./local-managed-process-2tftndbf.js").then(({retireManagedDeviceProcess:n})=>n(e.operation_id,e.status)).catch(()=>!1);return}if(e?.t!=="op")return;if(!p){f({t:"done",id:e.id,completion:{status:"failed",error_code:"vm_hands_payload_account_unavailable"}});return}let u=e.claim.capability;if(u==="pty.start"&&!i){f({t:"done",id:e.id,completion:{status:"failed",error_code:"capability_not_granted"}});return}if(Ct.has(u)!==s){f({t:"done",id:e.id,completion:{status:"failed",error_code:"capability_not_granted"}});return}let w=new AbortController;m.set(e.id,w),v.set(e.id,e.claim);let S=u==="pty.start"?{runPtySession:(n)=>l(n,{spawnPty:A,environment:x(),loadProxy:()=>null})}:{worker:e.worker,...u==="exec.full"?{spawnFullControl:g}:{}};t(e.state,e.claim,{...S,signal:w.signal,emit:(n)=>{let{deliverySignal:_,...h}=n;f({t:"event",id:e.id,event:h})}}).then((n)=>f({t:"done",id:e.id,completion:n}),(n)=>f({t:"done",id:e.id,completion:{status:"failed",error_code:n&&typeof n==="object"&&"code"in n&&typeof n.code==="string"?n.code:"vm_hands_op_failed"}})).finally(()=>{m.delete(e.id),v.delete(e.id)})}),process.on("disconnect",()=>process.exit(0)),s){let a=process.argv.find((u)=>u.startsWith(kt))?.slice(kt.length),e={t:"readiness",display_video:!1,lanes:{}};f(p&&a?await E(a).catch(()=>e):e)}await new Promise(()=>{})}
3
3
  export{or,sr,xt,kt,Ct,os};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Xe,ft}from"./vm-hands-entry-lite-jcf61cb4.js";import{gt}from"./vm-hands-entry-lite-mfpwe6xs.js";import{Co,le,Jr,mt,Ao}from"./vm-hands-entry-lite-apejx721.js";import{E}from"./vm-hands-entry-lite-qyp2a4c3.js";import{a,Qt}from"./vm-hands-entry-lite-9sa1knn7.js";import{spawnSync as H}from"child_process";import{dirname as w}from"path";import{spawn as A}from"child_process";import{accessSync as _,constants as v}from"fs";import{basename as C,join as O}from"path";var l=null;function S(e){if(l===e)l=null;if(e.exitCode===null&&e.signalCode===null)e.kill("SIGTERM")}var Gr=(e,t)=>{if(l)S(l);let s=O(e,Co);try{_(s,v.X_OK)}catch{return()=>{}}let n;try{n=A(s,["--app",e,"--name",C(e,".app"),"--permission",t==="screen"?"screen_recording":"accessibility"],{detached:!0,stdio:"ignore"})}catch{return()=>{}}return n.on("error",()=>{if(l===n)l=null}),n.once("exit",()=>{if(l===n)l=null}),n.unref(),l=n,()=>S(n)};import{chmodSync as ne,existsSync as se,mkdirSync as re,readFileSync as D,realpathSync as ie,renameSync as oe,statSync as j,writeFileSync as ae}from"fs";import{dirname as de,isAbsolute as G,join as N,resolve as T,sep as b}from"path";function F(e=a()){return N(Qt(e),"reason","protected-path-grants.json")}var f=null;function L(e){let t=JSON.parse(e);if(!Array.isArray(t?.grants))return[];return t.grants.flatMap((s)=>{let n=s;return n&&typeof n.path==="string"&&G(n.path)&&(n.kind==="file"||n.kind==="folder")&&typeof n.grantedAt==="number"?[{path:n.path,kind:n.kind,grantedAt:n.grantedAt}]:[]})}function y(e=F()){try{let{mtimeMs:t}=j(e);if(f&&f.file===e&&f.mtimeMs===t)return f.grants;let s=L(D(e,"utf8"));return f={file:e,mtimeMs:t,grants:s},s}catch{return[]}}function W(e,t){return e.kind==="file"?t===e.path:t===e.path||t.startsWith(`${e.path}${b}`)}function U(e,t){let s=T(e);return y(t).some((n)=>W(n,s))}function go(e,t){return E(e)&&!U(e,t)}function _o(e,t,s){let n=t?"file-read* file-write*":"file-read*";return y(s).filter((r)=>r.path===e||r.path.startsWith(`${e}${b}`)).map((r)=>`(allow ${n} (${r.kind==="file"?"literal":"subpath"} ${JSON.stringify(r.path)}))`)}var P="x-apple.systempreferences:com.apple.preference.security",J="curl -fsSL https://reasonmachines.com/install.sh | bash",q=180000,B=2000;var k={screen:{label:"Screen & System Audio Recording",purpose:"desktop video, computer-use screenshots",level:"required",pane:`${P}?Privacy_ScreenCapture`},accessibility:{label:"Accessibility",purpose:"computer-use clicks and typing, desktop input",level:"required",pane:`${P}?Privacy_Accessibility`},disk:{label:"Full Disk Access",purpose:"Sessions in Desktop, Documents, Downloads, iCloud Drive and Mail",level:"recommended",pane:`${P}?Privacy_AllFiles`}};function R(e){return e.executable}function K(e,t){if(e==="computer_use_identity_missing")return`Reason's background identity is not installed (${e}); reinstall Reason: ${J}`;if(e==="computer_use_identity_outdated")return`Reason's background identity is outdated (${Jr(t)??"unknown"}; this CLI is ${gt}) (${e}); \`reason update\` installs this release's`;return`Reason's background identity cannot run computer use for this CLI (${e}); run the installed \`reason\``}function Xo(e=a()){let t=mt(e);if(t.length>0)return{state:"ready",path:w(w(w(t[0]))),prefix:t};let s=Ao(t,e)??"computer_use_identity_unavailable";return{state:s,path:le(e),detail:K(s,e)}}function V(){return{identity:()=>Xo(),grants:(e)=>Xe(e),request:(e,t)=>ft(e,t),worker:async()=>(await import("./status-btsmfzbp.js")).connectionMacState(),open:(e)=>{H("/usr/bin/open",e,{stdio:"ignore",timeout:1e4})},tile:Gr,restartConnection:async()=>(await import("./connect-cli-a6xfkdrp.js")).restartConnection(),sleep:(e)=>new Promise((t)=>setTimeout(t,e)),now:()=>Date.now()}}function M(e,t,s){if(e.state!=="ready"||!t)return"unknown";return t[s]?"granted":"missing"}async function Yo(e){let t=e.identity(),s=t.state==="ready"?await e.grants(t.prefix):null,n=await e.worker(),r=n?R(n):null,i=!r||n?.full_disk_access==="unknown"?"unknown":n?.full_disk_access==="granted"?"granted":"missing",c=(u,d,o)=>{let{label:p,purpose:h,level:m}=k[u];return{id:u,label:p,purpose:h,level:m,state:d,holder:o}};return{identity:{state:t.state,path:t.path,detail:t.state==="ready"?null:t.detail},worker_detail:r?null:"Full Disk Access is read from this computer's running worker; `reason connect` starts it.",permissions:[c("screen",M(t,s,"screen"),t.path),c("accessibility",M(t,s,"accessibility"),t.path),c("disk",i,r)]}}function Fs(e){let t=e.identity.state==="ready"?null:e.identity.state,s=e.permissions.filter((i)=>i.state==="granted").length,n=[...t?[t]:[],...e.permissions.filter((i)=>i.state!=="granted"&&!(t&&i.id!=="disk")).map((i)=>`${i.label} ${i.state}`)],r=!t&&e.permissions.some((i)=>i.state==="missing");return`Permissions: ${s} of ${e.permissions.length}${n.length>0?` (${n.join(", ")})`:""}`+(r?" \u2014 reason permissions allow":n.length>0?" \u2014 reason permissions":"")}async function x(e,t){let s=t.now()+q;for(;;){if(await e())return!0;if(t.now()>=s)return!1;await t.sleep(B)}}async function js(e,t){let s=t.host??V(),{io:n}=t,r=await Yo(s),i=r.permissions.filter((o)=>e.includes(o.id)&&o.state!=="granted");if(i.length===0)return n.stdout.write(`Reason permissions: ${e.map((o)=>k[o].label).join(", ")} already allowed.
2
+ import{Xe,ft}from"./vm-hands-entry-lite-jcf61cb4.js";import{gt}from"./vm-hands-entry-lite-t1akv6pa.js";import{Co,le,Jr,mt,Ao}from"./vm-hands-entry-lite-zs4tknxy.js";import{E}from"./vm-hands-entry-lite-qyp2a4c3.js";import{a,Qt}from"./vm-hands-entry-lite-9sa1knn7.js";import{spawnSync as H}from"child_process";import{dirname as w}from"path";import{spawn as A}from"child_process";import{accessSync as _,constants as v}from"fs";import{basename as C,join as O}from"path";var l=null;function S(e){if(l===e)l=null;if(e.exitCode===null&&e.signalCode===null)e.kill("SIGTERM")}var Gr=(e,t)=>{if(l)S(l);let s=O(e,Co);try{_(s,v.X_OK)}catch{return()=>{}}let n;try{n=A(s,["--app",e,"--name",C(e,".app"),"--permission",t==="screen"?"screen_recording":"accessibility"],{detached:!0,stdio:"ignore"})}catch{return()=>{}}return n.on("error",()=>{if(l===n)l=null}),n.once("exit",()=>{if(l===n)l=null}),n.unref(),l=n,()=>S(n)};import{chmodSync as ne,existsSync as se,mkdirSync as re,readFileSync as D,realpathSync as ie,renameSync as oe,statSync as j,writeFileSync as ae}from"fs";import{dirname as de,isAbsolute as G,join as N,resolve as T,sep as b}from"path";function F(e=a()){return N(Qt(e),"reason","protected-path-grants.json")}var f=null;function L(e){let t=JSON.parse(e);if(!Array.isArray(t?.grants))return[];return t.grants.flatMap((s)=>{let n=s;return n&&typeof n.path==="string"&&G(n.path)&&(n.kind==="file"||n.kind==="folder")&&typeof n.grantedAt==="number"?[{path:n.path,kind:n.kind,grantedAt:n.grantedAt}]:[]})}function y(e=F()){try{let{mtimeMs:t}=j(e);if(f&&f.file===e&&f.mtimeMs===t)return f.grants;let s=L(D(e,"utf8"));return f={file:e,mtimeMs:t,grants:s},s}catch{return[]}}function W(e,t){return e.kind==="file"?t===e.path:t===e.path||t.startsWith(`${e.path}${b}`)}function U(e,t){let s=T(e);return y(t).some((n)=>W(n,s))}function go(e,t){return E(e)&&!U(e,t)}function _o(e,t,s){let n=t?"file-read* file-write*":"file-read*";return y(s).filter((r)=>r.path===e||r.path.startsWith(`${e}${b}`)).map((r)=>`(allow ${n} (${r.kind==="file"?"literal":"subpath"} ${JSON.stringify(r.path)}))`)}var P="x-apple.systempreferences:com.apple.preference.security",J="curl -fsSL https://reasonmachines.com/install.sh | bash",q=180000,B=2000;var k={screen:{label:"Screen & System Audio Recording",purpose:"desktop video, computer-use screenshots",level:"required",pane:`${P}?Privacy_ScreenCapture`},accessibility:{label:"Accessibility",purpose:"computer-use clicks and typing, desktop input",level:"required",pane:`${P}?Privacy_Accessibility`},disk:{label:"Full Disk Access",purpose:"Sessions in Desktop, Documents, Downloads, iCloud Drive and Mail",level:"recommended",pane:`${P}?Privacy_AllFiles`}};function R(e){return e.executable}function K(e,t){if(e==="computer_use_identity_missing")return`Reason's background identity is not installed (${e}); reinstall Reason: ${J}`;if(e==="computer_use_identity_outdated")return`Reason's background identity is outdated (${Jr(t)??"unknown"}; this CLI is ${gt}) (${e}); \`reason update\` installs this release's`;return`Reason's background identity cannot run computer use for this CLI (${e}); run the installed \`reason\``}function Xo(e=a()){let t=mt(e);if(t.length>0)return{state:"ready",path:w(w(w(t[0]))),prefix:t};let s=Ao(t,e)??"computer_use_identity_unavailable";return{state:s,path:le(e),detail:K(s,e)}}function V(){return{identity:()=>Xo(),grants:(e)=>Xe(e),request:(e,t)=>ft(e,t),worker:async()=>(await import("./status-bshj9ydd.js")).connectionMacState(),open:(e)=>{H("/usr/bin/open",e,{stdio:"ignore",timeout:1e4})},tile:Gr,restartConnection:async()=>(await import("./connect-cli-vgnz9ndr.js")).restartConnection(),sleep:(e)=>new Promise((t)=>setTimeout(t,e)),now:()=>Date.now()}}function M(e,t,s){if(e.state!=="ready"||!t)return"unknown";return t[s]?"granted":"missing"}async function Yo(e){let t=e.identity(),s=t.state==="ready"?await e.grants(t.prefix):null,n=await e.worker(),r=n?R(n):null,i=!r||n?.full_disk_access==="unknown"?"unknown":n?.full_disk_access==="granted"?"granted":"missing",c=(u,d,o)=>{let{label:p,purpose:h,level:m}=k[u];return{id:u,label:p,purpose:h,level:m,state:d,holder:o}};return{identity:{state:t.state,path:t.path,detail:t.state==="ready"?null:t.detail},worker_detail:r?null:"Full Disk Access is read from this computer's running worker; `reason connect` starts it.",permissions:[c("screen",M(t,s,"screen"),t.path),c("accessibility",M(t,s,"accessibility"),t.path),c("disk",i,r)]}}function Fs(e){let t=e.identity.state==="ready"?null:e.identity.state,s=e.permissions.filter((i)=>i.state==="granted").length,n=[...t?[t]:[],...e.permissions.filter((i)=>i.state!=="granted"&&!(t&&i.id!=="disk")).map((i)=>`${i.label} ${i.state}`)],r=!t&&e.permissions.some((i)=>i.state==="missing");return`Permissions: ${s} of ${e.permissions.length}${n.length>0?` (${n.join(", ")})`:""}`+(r?" \u2014 reason permissions allow":n.length>0?" \u2014 reason permissions":"")}async function x(e,t){let s=t.now()+q;for(;;){if(await e())return!0;if(t.now()>=s)return!1;await t.sleep(B)}}async function js(e,t){let s=t.host??V(),{io:n}=t,r=await Yo(s),i=r.permissions.filter((o)=>e.includes(o.id)&&o.state!=="granted");if(i.length===0)return n.stdout.write(`Reason permissions: ${e.map((o)=>k[o].label).join(", ")} already allowed.
3
3
  `),0;let c=!1,u=!1,d=s.identity();for(let o of i){let{label:p,pane:h}=k[o.id];if(o.id!=="disk"){if(d.state!=="ready"){if(!c)n.stderr.write(`Reason permissions: ${d.detail}
4
4
  `);c=!0;continue}let g=o.id;await s.request(d.prefix,g),s.open([h]);let I=s.tile(d.path,g);if(n.stdout.write(`Allow Reason in System Settings > Privacy & Security > ${p}.
5
5
  `),!t.wait)continue;if(n.stdout.write(`Waiting for it (Ctrl-C to stop)\u2026
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Wn,ko,Gt}from"./vm-hands-entry-lite-jcf61cb4.js";import{Cn,We,oo,An,Pn,Tn,Cr,x}from"./vm-hands-entry-lite-vwfzvwcg.js";import{Et}from"./vm-hands-entry-lite-g9z467dk.js";import{Rr}from"./vm-hands-entry-lite-3adw9jw3.js";import{j}from"./vm-hands-entry-lite-1f2cam25.js";import{a}from"./vm-hands-entry-lite-9sa1knn7.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{execFile as z,spawn as H}from"child_process";import{randomBytes as he}from"crypto";import{chmodSync as Qe,existsSync as I,lstatSync as _e,mkdirSync as De,readFileSync as we,rmSync as ee,writeFileSync as U}from"fs";import{connect as Re}from"net";import{join as y}from"path";var P=32,w=76;var B="./desktop-wallpaper-0pjhgyfk.jpg";var O="./dock-browser-afp005mt.png";var F="./dock-files-rywdm96b.png";var k="./dock-terminal-s41cj1jp.png";var K=`# Sets the X root window background and _XROOTPMAP_ID, as feh --bg-fill does.
2
+ import{Wn,ko,Gt}from"./vm-hands-entry-lite-jcf61cb4.js";import{Cn,We,oo,An,Pn,Tn,Cr,x}from"./vm-hands-entry-lite-2w04q9a6.js";import{Et}from"./vm-hands-entry-lite-g9z467dk.js";import{Rr}from"./vm-hands-entry-lite-3adw9jw3.js";import{j}from"./vm-hands-entry-lite-1f2cam25.js";import{a}from"./vm-hands-entry-lite-9sa1knn7.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{execFile as z,spawn as H}from"child_process";import{randomBytes as he}from"crypto";import{chmodSync as Qe,existsSync as I,lstatSync as _e,mkdirSync as De,readFileSync as we,rmSync as ee,writeFileSync as U}from"fs";import{connect as Re}from"net";import{join as y}from"path";var P=32,w=76;var B="./desktop-wallpaper-0pjhgyfk.jpg";var O="./dock-browser-afp005mt.png";var F="./dock-files-rywdm96b.png";var k="./dock-terminal-s41cj1jp.png";var K=`# Sets the X root window background and _XROOTPMAP_ID, as feh --bg-fill does.
3
3
  # The native Blaxel image ships no feh, hsetroot or compositor, but it does ship
4
4
  # python3-gi and libX11. tint2 reads _XROOTPMAP_ID to draw its transparent panel.
5
5
  # Usage: DISPLAY=:99 python3 set-root-wallpaper.py IMAGE
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{at,Dt,xr,bn,kr,vn,Sn,En}from"./vm-hands-entry-lite-t3qf6qrj.js";import{Pe,rr,Xn,_t,Io,oe,Do,No,Qe,Te,en,Qn,wt,ni,ii,oi,si,ai,ci,li,ui,di,pi,hi,fi,mi,pe,Y,Re,q,gi,_i,yi,wi,bi,vi,Si,Ei,bt,xi}from"./vm-hands-entry-lite-tqc2ezda.js";import{ue,Z,O}from"./vm-hands-entry-lite-r7zs4ce2.js";import{P,zt}from"./vm-hands-entry-lite-3vmhs921.js";import{lr,ji,Ui,nt,Hi,zi,qi,Wi,Vi,Gi,pr,hr,fr,dn,pn,mr,Ji,hn,gr,me,ge,Pt,_r,wr,Tt}from"./vm-hands-entry-lite-qnbc2bt1.js";import{D,R,b}from"./vm-hands-entry-lite-499mywh7.js";import{Mi,$i,ln,Bi,un,Fi,rt,cr}from"./vm-hands-entry-lite-4nsrr3vh.js";import{K}from"./vm-hands-entry-lite-d9g1pzzx.js";import{He}from"./vm-hands-entry-lite-a3w8m8nb.js";import{j}from"./vm-hands-entry-lite-1f2cam25.js";import{vr,_n,to}from"./vm-hands-entry-lite-njs8k65s.js";import{yo,wo,ht,bo,vo,So,Eo,xo}from"./vm-hands-entry-lite-jcf61cb4.js";import{Pr,Bt,Tr,On,In}from"./vm-hands-entry-lite-3adw9jw3.js";import{Lt,ze,Mt}from"./vm-hands-entry-lite-vxpz4ha7.js";import{Rn,x,so}from"./vm-hands-entry-lite-vwfzvwcg.js";import{go,_o}from"./vm-hands-entry-lite-kfbcdxpc.js";import{Nt,xn,kn}from"./vm-hands-entry-lite-hn6bz8ps.js";import{ye,Xi,Yi}from"./vm-hands-entry-lite-dh8f2h2d.js";import{be}from"./vm-hands-entry-lite-yretc2th.js";import{It}from"./vm-hands-entry-lite-2yz6b0n3.js";import{ke,Kt,Jt,Zt,E}from"./vm-hands-entry-lite-qyp2a4c3.js";import{a,ie}from"./vm-hands-entry-lite-9sa1knn7.js";import{t,k,o,d,u,i,W,_,ee,s,n,$o}from"./vm-hands-entry-lite-ba3qq0bs.js";import{fe,Ne,Le,Me,nn}from"./vm-hands-entry-lite-8j7p91hr.js";import{$e}from"./vm-hands-entry-lite-mcjca0ez.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{request as kl}from"http";import{request as Tl}from"https";import{lookup as Dl}from"dns/promises";import{isIP as Nl}from"net";async function Ml(e){let l=new URL(e.url);return await new Promise((c,p)=>{let m=(l.protocol==="https:"?Tl:kl)(l,{method:"POST",headers:{...e.headers,"accept-encoding":"identity"},signal:e.signal,timeout:bn},(f)=>c({response:f,close:()=>{f.destroy(),m.destroy(),f.socket?.destroy()}}));m.once("error",p),m.once("timeout",()=>m.destroy(Object.assign(Error("custom_endpoint_timeout"),{code:"ETIMEDOUT"}))),m.end(e.body)})}var Qi=new Set(["ENOTFOUND","EAI_AGAIN","EAI_NONAME","EAI_NODATA","EAI_FAIL","DNSException"]),$l=new Set(["ECONNREFUSED","ETIMEDOUT","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EHOSTDOWN","ENETDOWN","EPIPE","ECONNABORTED","EADDRNOTAVAIL","ConnectionRefused","ConnectionClosed","ConnectionTimedOut","Timeout"]);function es(e,l=0){if(!e||typeof e!=="object"||l>3)return null;let c=e.code;if(typeof c==="string"){if(Qi.has(c))return"custom_endpoint_host_not_found";if($l.has(c))return"custom_endpoint_connection_failed";if(/^(?:ERR_TLS_|ERR_SSL_|CERT_|UNABLE_TO_(?:GET|VERIFY|DECRYPT)|DEPTH_ZERO_SELF_SIGNED|SELF_SIGNED_CERT|HOSTNAME_MISMATCH|EPROTO$)/.test(c))return"custom_endpoint_tls_failed"}for(let p of[...e instanceof AggregateError?e.errors:[],e.cause]){let m=es(p,l+1);if(m)return m}return null}async function Bl(e,l){let c=es(e),p=new URL(l).hostname.replace(/^\[|\]$/g,"");if(c!==null&&c!=="custom_endpoint_connection_failed"||Nl(p)!==0)return c;let m;return await Promise.race([Dl(p).then(()=>!0,(h)=>!Qi.has(String(h?.code))),new Promise((h)=>{m=setTimeout(()=>h(!0),5000)})]).finally(()=>clearTimeout(m))?c:"custom_endpoint_host_not_found"}function Fl(e){for(let l=42;;l++){if(l===127)l=256;let c=String.fromCodePoint(l);if(!e.includes(c))return c}}function Ul(e,l){let c=Buffer.from(e),p=Buffer.from(l),m=new Uint32Array(c.length);for(let h=1,y=0;h<c.length;h++){while(y&&c[h]!==c[y])y=m[y-1];if(c[h]===c[y])y++;m[h]=y}let f=0;return(h,y=!1)=>{let S=Buffer.allocUnsafe(h.length*p.length+f),w=0;for(let g of h){while(f&&c[f]!==g){let v=m[f-1];w+=c.copy(S,w,0,f-v),f=v}if(c[f]===g){if(f++,f===c.length)w+=p.copy(S,w),f=0}else S[w++]=g}if(y)w+=c.copy(S,w,0,f),f=0;return S.subarray(0,w)}}async function ts(e){e.signal.throwIfAborted();let l=vn.safeParse(e.payload);if(!l.success)throw new r("custom_endpoint_invalid_request","Invalid local model request.");let c=l.data,p=Sn.parse(await e.credential(e.signal));if(!kr(c,{baseUrl:c.baseUrl,api:p.api,execution:"device"}))throw new r("custom_endpoint_invalid_request","The request does not match the configured API.");e.signal.throwIfAborted();let m,f,h=0,y=0,S=0,w=Fl(p.apiKey),g=Ul(p.apiKey,w),v=async(I,A)=>{e.signal.throwIfAborted(),await new Promise((M,N)=>{let L=()=>{e.signal.removeEventListener("abort",L),N(e.signal.reason)};if(e.signal.addEventListener("abort",L,{once:!0}),e.signal.aborted){L();return}Promise.resolve().then(()=>(e.signal.throwIfAborted(),e.emit(I,A))).then(()=>{e.signal.removeEventListener("abort",L),M()},(B)=>{e.signal.removeEventListener("abort",L),N(B)})})},C=async(I)=>{if(h+=I.length,h>Dt)throw new r("custom_endpoint_response_too_large","Local model response exceeds the transport limit.");for(let A=0;A<I.length;A+=at){if(S>=xr)throw new r("custom_endpoint_response_too_large","Local model response exceeds the chunk limit.");await v(`custom_endpoint.chunk.${S++}`,{eof:!1,data:I.subarray(A,A+at).toString("base64")})}};try{let I=await Ml({url:c.url,body:c.body,signal:e.signal,headers:{...c.headers,...p.api==="anthropic-messages"?{"x-api-key":p.apiKey}:{authorization:`Bearer ${p.apiKey}`}}});m=I.response,f=I.close;let A=m.statusCode??500;if(A>=300&&A<400)throw new r("custom_endpoint_redirect_refused","Local model redirects are not followed.");if(m.headers["content-encoding"]&&m.headers["content-encoding"]!=="identity")throw new r("custom_endpoint_encoding_unsupported","The local server must honor identity encoding.");let M={};for(let N of["content-type","retry-after","x-request-id","request-id"]){let L=m.headers[N];if(typeof L==="string")M[N]=L.replaceAll(p.apiKey,w).slice(0,4096)}await v("custom_endpoint.headers",{status:A,statusText:(m.statusMessage??"").replaceAll(p.apiKey,w).slice(0,256),headers:M});for await(let N of m){e.signal.throwIfAborted();let L=Buffer.isBuffer(N)?N:Buffer.from(N);if(y+=L.length,y>Dt)throw new r("custom_endpoint_response_too_large","Local model response exceeds the transport limit.");await C(g(L))}return await C(g(Buffer.alloc(0),!0)),await v(`custom_endpoint.chunk.${S}`,{eof:!0}),{bytes:h,chunks:S}}catch(I){if(e.signal.throwIfAborted(),I instanceof r)throw I;throw new r((m?null:await Bl(I,c.url))??"custom_endpoint_request_failed","The local model server could not complete the request.")}finally{f?.()}}import{join as rs}from"path";function Hl(e,l){return e===rs(l,".ara","workspace")||e===rs(l,".reason","workspace")}function ns(e,l){let c=e.filter((p)=>Hl(p.path,l));return c.length===1?c[0].path:null}var jl=/^[a-f0-9]{64}$/;var on=32,ql=/^\/[^\x00-\x1f\x7f\\]*$/;function Er(e){if(typeof e!=="string"||e.length>4096||!ql.test(e))return!1;if(e==="/")return!0;return e.split("/").slice(1).every((l)=>l!==""&&l!=="."&&l!=="..")}function Cr(e,l){let c=l==="win32"?/^([A-Za-z]):[\\/]*(.*)$/.exec(e):null;if(!c)return e;let p=c[2].split(/[\\/]+/).filter(Boolean).join("/");return`/${c[1].toUpperCase()}:${p?`/${p}`:""}`}function sn(e){if(!e||typeof e!=="object"||Array.isArray(e))return;let l=e;if(!Er(l.home)||!Array.isArray(l.roots)||l.roots.length>on)return;let c=[];for(let p of l.roots){if(!p||typeof p!=="object"||Array.isArray(p))return;let{path_fingerprint:m,path:f}=p;if(typeof m!=="string"||!jl.test(m)||!Er(f))return;c.push({path_fingerprint:m,path:f})}return{home:l.home,roots:c}}function Wl(e){let l=/^Reason contributor (rc_[0-9a-f]{32})$/.exec(e.name)?.[1];return e.email.toLowerCase()==="343777287+reason-contributors@users.noreply.github.com"&&l?l:void 0}function zl(e){return Wl(e)??e.email.toLowerCase()}function mn(e){let l=/^Co-authored-by:\s*([^<>\r\n]+) <([^<>\s]+)>$/i.exec(e.trim());return l?zl({name:l[1],email:l[2]}):e.trim().toLowerCase()}var jt=(e)=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/[a-z]/gi,(l)=>`[${l.toLowerCase()}${l.toUpperCase()}]`),Gl=[...ke.map((e)=>`/(${e.map(jt).join("/")})(/|$)`),...Kt.map((e)=>`/(${e.map(jt).join("/")})(/|$)`),...[...Jt].map((e)=>`/(${jt(e)})$`),`/${jt(".env.")}[^/]*$`,...Zt.map((e)=>`/[^/]*${jt(e)}$`)],os=`function localGithubSandboxProfile(root, temporary) {
2
+ import{at,Dt,xr,bn,kr,vn,Sn,En}from"./vm-hands-entry-lite-t3qf6qrj.js";import{Pe,rr,Xn,_t,Io,oe,Do,No,Qe,Te,en,Qn,wt,ni,ii,oi,si,ai,ci,li,ui,di,pi,hi,fi,mi,pe,Y,Re,q,gi,_i,yi,wi,bi,vi,Si,Ei,bt,xi}from"./vm-hands-entry-lite-tqc2ezda.js";import{ue,Z,O}from"./vm-hands-entry-lite-r7zs4ce2.js";import{P,zt}from"./vm-hands-entry-lite-3vmhs921.js";import{lr,ji,Ui,nt,Hi,zi,qi,Wi,Vi,Gi,pr,hr,fr,dn,pn,mr,Ji,hn,gr,me,ge,Pt,_r,wr,Tt}from"./vm-hands-entry-lite-gqygejrd.js";import{D,R,b}from"./vm-hands-entry-lite-499mywh7.js";import{Mi,$i,ln,Bi,un,Fi,rt,cr}from"./vm-hands-entry-lite-xgctesh9.js";import{K}from"./vm-hands-entry-lite-d9g1pzzx.js";import{He}from"./vm-hands-entry-lite-a3w8m8nb.js";import{j}from"./vm-hands-entry-lite-1f2cam25.js";import{vr,_n,to}from"./vm-hands-entry-lite-njs8k65s.js";import{yo,wo,ht,bo,vo,So,Eo,xo}from"./vm-hands-entry-lite-jcf61cb4.js";import{Pr,Bt,Tr,On,In}from"./vm-hands-entry-lite-3adw9jw3.js";import{Lt,ze,Mt}from"./vm-hands-entry-lite-e24k4djp.js";import{Rn,x,so}from"./vm-hands-entry-lite-2w04q9a6.js";import{go,_o}from"./vm-hands-entry-lite-9jxdd391.js";import{Nt,xn,kn}from"./vm-hands-entry-lite-ztvh5hpp.js";import{ye,Xi,Yi}from"./vm-hands-entry-lite-dh8f2h2d.js";import{be}from"./vm-hands-entry-lite-yretc2th.js";import{It}from"./vm-hands-entry-lite-2yz6b0n3.js";import{ke,Kt,Jt,Zt,E}from"./vm-hands-entry-lite-qyp2a4c3.js";import{a,ie}from"./vm-hands-entry-lite-9sa1knn7.js";import{t,k,o,d,u,i,W,_,ee,s,n,$o}from"./vm-hands-entry-lite-ba3qq0bs.js";import{fe,Ne,Le,Me,nn}from"./vm-hands-entry-lite-8j7p91hr.js";import{$e}from"./vm-hands-entry-lite-mcjca0ez.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{request as kl}from"http";import{request as Tl}from"https";import{lookup as Dl}from"dns/promises";import{isIP as Nl}from"net";async function Ml(e){let l=new URL(e.url);return await new Promise((c,p)=>{let m=(l.protocol==="https:"?Tl:kl)(l,{method:"POST",headers:{...e.headers,"accept-encoding":"identity"},signal:e.signal,timeout:bn},(f)=>c({response:f,close:()=>{f.destroy(),m.destroy(),f.socket?.destroy()}}));m.once("error",p),m.once("timeout",()=>m.destroy(Object.assign(Error("custom_endpoint_timeout"),{code:"ETIMEDOUT"}))),m.end(e.body)})}var Qi=new Set(["ENOTFOUND","EAI_AGAIN","EAI_NONAME","EAI_NODATA","EAI_FAIL","DNSException"]),$l=new Set(["ECONNREFUSED","ETIMEDOUT","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EHOSTDOWN","ENETDOWN","EPIPE","ECONNABORTED","EADDRNOTAVAIL","ConnectionRefused","ConnectionClosed","ConnectionTimedOut","Timeout"]);function es(e,l=0){if(!e||typeof e!=="object"||l>3)return null;let c=e.code;if(typeof c==="string"){if(Qi.has(c))return"custom_endpoint_host_not_found";if($l.has(c))return"custom_endpoint_connection_failed";if(/^(?:ERR_TLS_|ERR_SSL_|CERT_|UNABLE_TO_(?:GET|VERIFY|DECRYPT)|DEPTH_ZERO_SELF_SIGNED|SELF_SIGNED_CERT|HOSTNAME_MISMATCH|EPROTO$)/.test(c))return"custom_endpoint_tls_failed"}for(let p of[...e instanceof AggregateError?e.errors:[],e.cause]){let m=es(p,l+1);if(m)return m}return null}async function Bl(e,l){let c=es(e),p=new URL(l).hostname.replace(/^\[|\]$/g,"");if(c!==null&&c!=="custom_endpoint_connection_failed"||Nl(p)!==0)return c;let m;return await Promise.race([Dl(p).then(()=>!0,(h)=>!Qi.has(String(h?.code))),new Promise((h)=>{m=setTimeout(()=>h(!0),5000)})]).finally(()=>clearTimeout(m))?c:"custom_endpoint_host_not_found"}function Fl(e){for(let l=42;;l++){if(l===127)l=256;let c=String.fromCodePoint(l);if(!e.includes(c))return c}}function Ul(e,l){let c=Buffer.from(e),p=Buffer.from(l),m=new Uint32Array(c.length);for(let h=1,y=0;h<c.length;h++){while(y&&c[h]!==c[y])y=m[y-1];if(c[h]===c[y])y++;m[h]=y}let f=0;return(h,y=!1)=>{let S=Buffer.allocUnsafe(h.length*p.length+f),w=0;for(let g of h){while(f&&c[f]!==g){let v=m[f-1];w+=c.copy(S,w,0,f-v),f=v}if(c[f]===g){if(f++,f===c.length)w+=p.copy(S,w),f=0}else S[w++]=g}if(y)w+=c.copy(S,w,0,f),f=0;return S.subarray(0,w)}}async function ts(e){e.signal.throwIfAborted();let l=vn.safeParse(e.payload);if(!l.success)throw new r("custom_endpoint_invalid_request","Invalid local model request.");let c=l.data,p=Sn.parse(await e.credential(e.signal));if(!kr(c,{baseUrl:c.baseUrl,api:p.api,execution:"device"}))throw new r("custom_endpoint_invalid_request","The request does not match the configured API.");e.signal.throwIfAborted();let m,f,h=0,y=0,S=0,w=Fl(p.apiKey),g=Ul(p.apiKey,w),v=async(I,A)=>{e.signal.throwIfAborted(),await new Promise((M,N)=>{let L=()=>{e.signal.removeEventListener("abort",L),N(e.signal.reason)};if(e.signal.addEventListener("abort",L,{once:!0}),e.signal.aborted){L();return}Promise.resolve().then(()=>(e.signal.throwIfAborted(),e.emit(I,A))).then(()=>{e.signal.removeEventListener("abort",L),M()},(B)=>{e.signal.removeEventListener("abort",L),N(B)})})},C=async(I)=>{if(h+=I.length,h>Dt)throw new r("custom_endpoint_response_too_large","Local model response exceeds the transport limit.");for(let A=0;A<I.length;A+=at){if(S>=xr)throw new r("custom_endpoint_response_too_large","Local model response exceeds the chunk limit.");await v(`custom_endpoint.chunk.${S++}`,{eof:!1,data:I.subarray(A,A+at).toString("base64")})}};try{let I=await Ml({url:c.url,body:c.body,signal:e.signal,headers:{...c.headers,...p.api==="anthropic-messages"?{"x-api-key":p.apiKey}:{authorization:`Bearer ${p.apiKey}`}}});m=I.response,f=I.close;let A=m.statusCode??500;if(A>=300&&A<400)throw new r("custom_endpoint_redirect_refused","Local model redirects are not followed.");if(m.headers["content-encoding"]&&m.headers["content-encoding"]!=="identity")throw new r("custom_endpoint_encoding_unsupported","The local server must honor identity encoding.");let M={};for(let N of["content-type","retry-after","x-request-id","request-id"]){let L=m.headers[N];if(typeof L==="string")M[N]=L.replaceAll(p.apiKey,w).slice(0,4096)}await v("custom_endpoint.headers",{status:A,statusText:(m.statusMessage??"").replaceAll(p.apiKey,w).slice(0,256),headers:M});for await(let N of m){e.signal.throwIfAborted();let L=Buffer.isBuffer(N)?N:Buffer.from(N);if(y+=L.length,y>Dt)throw new r("custom_endpoint_response_too_large","Local model response exceeds the transport limit.");await C(g(L))}return await C(g(Buffer.alloc(0),!0)),await v(`custom_endpoint.chunk.${S}`,{eof:!0}),{bytes:h,chunks:S}}catch(I){if(e.signal.throwIfAborted(),I instanceof r)throw I;throw new r((m?null:await Bl(I,c.url))??"custom_endpoint_request_failed","The local model server could not complete the request.")}finally{f?.()}}import{join as rs}from"path";function Hl(e,l){return e===rs(l,".ara","workspace")||e===rs(l,".reason","workspace")}function ns(e,l){let c=e.filter((p)=>Hl(p.path,l));return c.length===1?c[0].path:null}var jl=/^[a-f0-9]{64}$/;var on=32,ql=/^\/[^\x00-\x1f\x7f\\]*$/;function Er(e){if(typeof e!=="string"||e.length>4096||!ql.test(e))return!1;if(e==="/")return!0;return e.split("/").slice(1).every((l)=>l!==""&&l!=="."&&l!=="..")}function Cr(e,l){let c=l==="win32"?/^([A-Za-z]):[\\/]*(.*)$/.exec(e):null;if(!c)return e;let p=c[2].split(/[\\/]+/).filter(Boolean).join("/");return`/${c[1].toUpperCase()}:${p?`/${p}`:""}`}function sn(e){if(!e||typeof e!=="object"||Array.isArray(e))return;let l=e;if(!Er(l.home)||!Array.isArray(l.roots)||l.roots.length>on)return;let c=[];for(let p of l.roots){if(!p||typeof p!=="object"||Array.isArray(p))return;let{path_fingerprint:m,path:f}=p;if(typeof m!=="string"||!jl.test(m)||!Er(f))return;c.push({path_fingerprint:m,path:f})}return{home:l.home,roots:c}}function Wl(e){let l=/^Reason contributor (rc_[0-9a-f]{32})$/.exec(e.name)?.[1];return e.email.toLowerCase()==="343777287+reason-contributors@users.noreply.github.com"&&l?l:void 0}function zl(e){return Wl(e)??e.email.toLowerCase()}function mn(e){let l=/^Co-authored-by:\s*([^<>\r\n]+) <([^<>\s]+)>$/i.exec(e.trim());return l?zl({name:l[1],email:l[2]}):e.trim().toLowerCase()}var jt=(e)=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/[a-z]/gi,(l)=>`[${l.toLowerCase()}${l.toUpperCase()}]`),Gl=[...ke.map((e)=>`/(${e.map(jt).join("/")})(/|$)`),...Kt.map((e)=>`/(${e.map(jt).join("/")})(/|$)`),...[...Jt].map((e)=>`/(${jt(e)})$`),`/${jt(".env.")}[^/]*$`,...Zt.map((e)=>`/[^/]*${jt(e)}$`)],os=`function localGithubSandboxProfile(root, temporary) {
3
3
  return ['(version 1)','(deny default)','(import "system.sb")','(allow process-exec process-fork)',
4
4
  '(allow file-read* (subpath "/bin") (subpath "/sbin") (subpath "/usr/bin") (subpath "/usr/sbin") (subpath "/usr/libexec") (subpath "/usr/share") (subpath "/private/var/select") (literal "/private/var/db/xcode_select_link"))',
5
5
  '(allow file-read-metadata (path-ancestors "/opt/homebrew/bin") (path-ancestors "/usr/local/bin") (path-ancestors "/Library/Developer/CommandLineTools"))',
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Ut,j}from"./vm-hands-entry-lite-1f2cam25.js";import{ue,Ce,Z,Ae,de,er,Ye,X,O,H,Qr}from"./vm-hands-entry-lite-r7zs4ce2.js";import{mo,qn}from"./vm-hands-entry-lite-hw26gewc.js";import{ao,P,Ge,ve,Ke,ne,Je,Mn,Se,Wt,ae,U,N,ce,Fr,jr,Bn}from"./vm-hands-entry-lite-3vmhs921.js";import{Pe,oe,pe,Y,Re,q,Q}from"./vm-hands-entry-lite-tqc2ezda.js";import{Rt,br,ot,V,D,R,b}from"./vm-hands-entry-lite-499mywh7.js";import{Sr,Er,yn,ro,He,wn}from"./vm-hands-entry-lite-a3w8m8nb.js";import{K}from"./vm-hands-entry-lite-d9g1pzzx.js";import{Ri}from"./vm-hands-entry-lite-g9z467dk.js";import{p,Ue,Ot,st,Zi,_e,we}from"./vm-hands-entry-lite-dh8f2h2d.js";import{v,h,no}from"./vm-hands-entry-lite-t5q30ne0.js";import{E}from"./vm-hands-entry-lite-qyp2a4c3.js";import{Yt}from"./vm-hands-entry-lite-41jkfbkg.js";import{a,ie,Oo}from"./vm-hands-entry-lite-9sa1knn7.js";import{L,Ci,Ai,Mo,y,t,k,St,o,d,u,i,c,_,ee,s,n}from"./vm-hands-entry-lite-ba3qq0bs.js";import{Ti}from"./vm-hands-entry-lite-07vak0wy.js";import{Bo,se,Fo,C,De,Me,A}from"./vm-hands-entry-lite-8j7p91hr.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";var li=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function l(w){return e[w]??null}let f={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},g={nan:"NaN"};return(w)=>{switch(w.code){case"invalid_type":{let S=g[w.expected]??w.expected,I=Mo(w.input),W=g[I]??I;return`Invalid input: expected ${S}, received ${W}`}case"invalid_value":if(w.values.length===1)return`Invalid input: expected ${Ai(w.values[0])}`;return`Invalid option: expected one of ${Ci(w.values,"|")}`;case"too_big":{let S=w.inclusive?"<=":"<",I=l(w.origin);if(I)return`Too big: expected ${w.origin??"value"} to have ${S}${w.maximum.toString()} ${I.unit??"elements"}`;return`Too big: expected ${w.origin??"value"} to be ${S}${w.maximum.toString()}`}case"too_small":{let S=w.inclusive?">=":">",I=l(w.origin);if(I)return`Too small: expected ${w.origin} to have ${S}${w.minimum.toString()} ${I.unit}`;return`Too small: expected ${w.origin} to be ${S}${w.minimum.toString()}`}case"invalid_format":{let S=w;if(S.format==="starts_with")return`Invalid string: must start with "${S.prefix}"`;if(S.format==="ends_with")return`Invalid string: must end with "${S.suffix}"`;if(S.format==="includes")return`Invalid string: must include "${S.includes}"`;if(S.format==="regex")return`Invalid string: must match pattern ${S.pattern}`;return`Invalid ${f[S.format]??w.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${w.divisor}`;case"unrecognized_keys":return`Unrecognized key${w.keys.length>1?"s":""}: ${Ci(w.keys,", ")}`;case"invalid_key":return`Invalid key in ${w.origin}`;case"invalid_union":if(w.options&&Array.isArray(w.options)&&w.options.length>0)return`Invalid discriminator value. Expected ${w.options.map((I)=>`'${I}'`).join(" | ")}`;return"Invalid input";case"invalid_element":return`Invalid value in ${w.origin}`;default:return"Invalid input"}}};function En(){return{localeError:li()}}L(En());class _t extends Error{}function Ro(e){let l;try{l=new URL(e)}catch{throw new _t("The proxy must be a URL like https://proxy.example.com:3128.")}if(l.protocol!=="https:"&&l.protocol!=="http:")throw new _t("The proxy URL must use the https or http scheme.");if(!l.hostname)throw new _t("The proxy URL must name a host.");if(l.port!==""&&Number(l.port)<1)throw new _t("The proxy URL must use a port between 1 and 65535.");if(l.pathname!==""&&l.pathname!=="/"||l.search||l.hash)throw new _t("The proxy URL must not carry a path, query, or fragment.");return l.toString()}import{createHash as ui}from"crypto";import{isAbsolute as xo,join as Po,relative as Io,resolve as Xt,sep as Ao}from"path";var qt=t().min(1).refine(xo,"absolute path required"),On=c({version:n(1),apiOrigin:St(),channel:s(["staging","production"]),stateDirectory:qt,workspaceRoot:qt,lifetime:s(["persistent","ephemeral"]),executionMode:s(["confined","host"]).default("confined"),name:t().min(1).max(160).default("Reason headless worker"),slots:o().int().min(1).max(4).default(1),shutdownGraceMs:o().int().min(0).max(300000).default(30000),proxy:c({version:n(Ut),url:t().refine((e)=>{try{return Ro(e)===e}catch{return!1}},"invalid proxy URL"),caFile:qt.optional()}).optional(),userChrome:d().optional(),cloudSessions:n(!0).optional(),localLogins:d().optional(),folders:u(qt).min(1).max(31).optional()}),fi=/^https:\/\/[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.trycloudflare\.com$/,B=_("channel",[On,On.extend({channel:n("pr"),apiOrigin:t(),prEnvironment:t()}),On.extend({channel:n("local-qa"),apiOrigin:t()})]).superRefine((e,l)=>{if(e.channel==="local-qa"){if(!fi.test(e.apiOrigin))l.addIssue({code:"custom",message:"local QA worker requires an exact HTTPS trycloudflare.com quick-tunnel origin"})}else if(e.channel==="pr"){let g=e.prEnvironment,w=/^https:\/\/([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)\.up\.railway\.app$/.exec(e.apiOrigin),S=w?.[1]?.match(/(?:^|-)pr-[0-9]+(?=-|$)/g)?.map((I)=>I.replace(/^-/,""));if(!g||/^pr-[1-9][0-9]*$/.exec(g)?.[0]!==g||w?.[0]!==e.apiOrigin||S?.length!==1||S[0]!==g)l.addIssue({code:"custom",message:"PR worker requires explicit prEnvironment and an exact same-PR HTTPS Railway origin"})}else{let g=new URL(e.apiOrigin);if(g.origin!==e.apiOrigin||g.username||g.password||g.protocol!=="https:"&&!(g.protocol==="http:"&&qn(g.origin))||!qn(g.origin)&&!mo(e.channel,g.origin))l.addIssue({code:"custom",message:"API origin must match channel (or loopback)"})}if(!Fe(e.workspaceRoot,e.stateDirectory))l.addIssue({code:"custom",message:"state and workspace must be disjoint"});let f=e.folders??[];if(new Set([e.workspaceRoot,...f]).size!==f.length+1||f.some((g)=>!Fe(g,e.stateDirectory)))l.addIssue({code:"custom",message:"folders must be distinct and disjoint from state"})});function m(e){return Po(e.stateDirectory,`headless-${e.channel==="pr"?e.prEnvironment:e.channel}`)}function Fe(e,l){if(zr(l,e))return!1;return!zr(e,l)||E(Po(Ao,Io(Xt(e),Xt(l))))}function zr(e,l){let f=Io(Xt(e),Xt(l));return f===""||f!==".."&&!f.startsWith(`..${Ao}`)&&!xo(f)}function te(e){let{proxy:l,userChrome:f,cloudSessions:g,localLogins:w,folders:S,...I}=e;return ui("sha256").update(JSON.stringify(I)).digest("hex")}var pi=4,_i=[2375,2376,9222,9229];function lr(e){let l=new Set(_i);for(let f of e){let g=new URL(f);l.add(Number(g.port||(["https:","wss:"].includes(g.protocol)?443:80)))}return l}function Jr(){throw new r("preview_unavailable","The live Hands preview binding is unavailable or stale.")}var mi=60000;function To(e){let l=new AbortController,f=new Map,g=(x)=>JSON.stringify([x.jobId,x.port]);function w(x){let M=e.authority.owner;if(l.signal.aborted||!e.isCurrent()||e.expiresAtMs<=Date.now()||x.organization_id!==M.organization_id||x.user_id!==M.user_id||x.device_id!==M.device_id)Jr()}function S(x){let M;try{M=e.environment.current()}catch{return null}return M.binding.target_generation===x.generation&&M.binding.target_fence_id===x.fenceId&&M.run_id===e.runId&&M.device_id===e.authority.owner.device_id&&M.root_id===e.authority.rootId?M:null}async function I(x,M,G){let F=await W(x,M,G);if(F!=="moved")return F;let T=await W(x,M,G);return T==="moved"?null:T}async function W(x,M,G){try{w(e.authority.owner);let F=e.identity();if(!F||G.aborted||x.expiresAtMs<=Date.now()||x.expiresAtMs>e.expiresAtMs)return null;let T=M.opened,re=T!==void 0&&F.generation>T.generation,J=S(F);if(re){if(J){if(J.revision<=T.revision||x.expiresAtMs>Date.parse(J.expires_at)||J.binding.target_revision!==T.attachmentRevision||J.binding.root_grant_revision!==T.grantRevision)return null;M.recoveringSinceMs=void 0}else if(Date.now()-(M.recoveringSinceMs??=Date.now())>mi)return null}else if(!J||x.expiresAtMs>Date.parse(J.expires_at)||T&&(F.generation!==T.generation||F.fenceId!==T.fenceId))return null;let z=await e.inspect(x.jobId,G),fe=e.identity(),ke=fe&&S(fe);w(e.authority.owner);let be=J&&{generation:F.generation,fenceId:F.fenceId,snapshotId:J.snapshot_id,revision:J.revision,attachmentRevision:J.binding.target_revision,grantRevision:J.binding.root_grant_revision},Oe=re?T:be;if(G.aborted||!fe)return null;if(fe.generation!==F.generation||fe.fenceId!==F.fenceId||ke?.snapshot_id!==J?.snapshot_id||ke?.revision!==J?.revision)return"moved";let $e=z.ok&&z.job.environmentSnapshotId!==void 0&&z.job.environmentRevision!==void 0?{snapshotId:z.job.environmentSnapshotId,revision:z.job.environmentRevision}:null;if(!z.ok||z.generation!==F.generation||!Oe||!$e)return null;if(($e.snapshotId!==Oe.snapshotId||$e.revision!==Oe.revision)&&(re||!e.environment.carried($e.snapshotId,$e.revision)))return null;if(!T&&F.generation===x.generation&&F.fenceId===x.fenceId)M.opened={...Oe,...$e};return{executorLaunchId:e.executorLaunchId,job:z.job,binding:{organizationId:e.authority.owner.organization_id,userId:e.authority.owner.user_id,deviceId:e.authority.owner.device_id,rootId:e.authority.rootId,runId:e.runId,attachmentRevision:Oe.attachmentRevision,grantRevision:Oe.grantRevision,generation:Oe.generation,fenceId:Oe.fenceId,jobId:z.job.jobId,port:x.port,expiresAtMs:x.expiresAtMs}}}catch{return null}}return{async open(x,M,G){w(M);let{binding:F,deviceRelayUrl:T}=st(x);if(G.aborted||F.expiresAtMs<=Date.now()||F.expiresAtMs>Date.now()+p.lifetimeMs||new URL(T).origin!==e.authority.relayOrigin)Jr();let re=g(F),J=f.get(re);if(J){if(!Ue(J.binding,F)||J.relay!==T)Jr();if(await J.opened,!await Ot(()=>J.port.check())||G.aborted||J.abort.signal.aborted)Jr();return{opened:!0,binding:F}}if(f.size>=pi)Jr();let z=new AbortController,fe={},ke=we({binding:F,deniedPorts:e.authority.deniedPorts,readCurrentJob:()=>I(F,fe,z.signal)}),be=()=>z.abort();if(G.addEventListener("abort",be,{once:!0}),l.signal.addEventListener("abort",be,{once:!0}),G.aborted||l.signal.aborted)be();let Oe=_e({binding:F,deviceRelayUrl:T,port:ke,signal:z.signal}),$e={binding:F,relay:T,abort:z,port:ke,opened:Oe};f.set(re,$e);let Ze=()=>{if(G.removeEventListener("abort",be),l.signal.removeEventListener("abort",be),f.get(re)===$e)f.delete(re)};try{if((await Oe).closed.then(Ze),G.removeEventListener("abort",be),w(M),z.signal.aborted||!await Ot(()=>ke.check()))Jr();return{opened:!0,binding:F}}catch{z.abort(),Ze(),Jr()}},async close(x,M){w(M);let{binding:G}=Zi(x),F=f.get(g(G));if(!F||!Ue(F.binding,G))Jr();return F.abort.abort(),await F.opened.then((T)=>T.closed,()=>{return}),{closed:!0,binding:G}},dispose(){l.abort();for(let x of f.values())x.abort.abort();f.clear()}}}import{WebSocket as xn}from"ws";var Do=(e)=>("data"in e)?e.data.length:e.bytes,Co=2*Je;function ar(e){throw new r(e,"The bound Hands terminal is unavailable or its outcome is unconfirmed.")}var mt=(e)=>!["starting","running"].includes(e.state);function ji(e,l,f=Date.now()){let g=["relay_url","session_id","expires_at","cols","rows","pty","workspace"];if(Object.keys(e).length!==g.length||Object.keys(e).some((M)=>!g.includes(M))||!ae(l)||!ae(e.session_id)||typeof e.expires_at!=="string"||typeof e.relay_url!=="string"||e.relay_url.length>4096||![e.cols,e.rows].every((M)=>Number.isSafeInteger(M)&&Number(M)>=1&&Number(M)<=Se))ar("invalid_pty_request");let w=e.pty;if(!w||typeof w!=="object"||Array.isArray(w))ar("invalid_pty_request");let S=w;if(Object.keys(S).length!==2||S.version!==1||!ce(S.jobId))ar("invalid_pty_request");let I;try{I=new URL(e.relay_url)}catch{return ar("invalid_pty_request")}if(!["ws:","wss:"].includes(I.protocol)||I.username||I.password||I.hash||I.protocol==="ws:"&&!["127.0.0.1","[::1]","localhost"].includes(I.hostname))ar("invalid_pty_request");let W=Date.parse(e.expires_at);if(!Number.isSafeInteger(W)||W<=f)ar("invalid_pty_request");return{workspace:H(e.workspace)??ar("invalid_pty_request"),session:{jobId:S.jobId,sessionId:e.session_id,operationId:l,relayUrl:I.href,cols:Number(e.cols),rows:Number(e.rows),leaseExpiresAtMs:Math.min(W,f+43200000)}}}async function Ho(e){let{session:l,binding:f}=e;if(f.assertCurrent(),e.signal.aborted||Date.now()>=l.leaseExpiresAtMs)ar("cancelled");let g=new xn(l.relayUrl,{followRedirects:!1,perMessageDeflate:!1,maxPayload:ne}),w=new AbortController,S=()=>{},I=()=>{w.abort(),S()};e.signal.addEventListener("abort",I,{once:!0});let W=setTimeout(I,Math.max(1,l.leaseExpiresAtMs-Date.now())),x=[],M=0,G=0,F=0,T=!1,re=!1,J=!1,z,fe,ke,be=(le)=>{ke=new r(le,"Bound terminal input was refused."),I()};g.on("error",()=>be("pty_relay_unavailable")),g.on("close",I),g.on("message",(le,he)=>{if(w.signal.aborted)return;if(!re){be("pty_not_ready");return}let xe=Array.isArray(le)?Buffer.concat(le):le instanceof ArrayBuffer?Buffer.from(le):le;if(xe.length===0)return;let Ve=x.at(-1),Le=he&&Ve!==void 0&&"data"in Ve&&Ve.data.length+xe.length<=ne;if(xe.length>ne||M+xe.length>Mn){be("pty_input_backpressure");return}if(Le)Ve.data=Buffer.concat([Ve.data,xe]);else if(he)x.push({data:Buffer.from(xe)});else try{let Be=JSON.parse(xe.toString("utf8"));if(Be&&Be.t==="close"&&Object.keys(Be).length===1){J=!0,I();return}if(!Be||Be.t!=="resize"||Object.keys(Be).length!==3||![Be.cols,Be.rows].every((Ee)=>Number.isSafeInteger(Ee)&&Ee>=1&&Ee<=Se))throw Error("invalid_control");x.push({cols:Be.cols,rows:Be.rows,bytes:xe.length})}catch{be("invalid_pty_control");return}M+=xe.length,S()});function Oe(le){return Bn(JSON.stringify({...f.scope,version:1,sessionId:l.sessionId,operationId:l.operationId,job:{...le,output:[],pty:le.pty?{...le.pty,output:[]}:void 0}}))}function $e(le){if(!le.ok)ar(le.error);let he=le.job;if(le.generation!==f.scope.generation||he.jobId!==l.jobId||!he.pty||he.leaseExpiresAtMs>l.leaseExpiresAtMs||he.process&&he.process.executorLaunchId!==f.scope.executorLaunchId||he.process&&fe&&(he.process.pid!==fe.pid||he.process.processGroupId!==fe.processGroupId)||he.state!=="starting"&&(he.environmentRevision!==f.environment.revision||he.environmentSnapshotId!==f.environment.snapshotId))ar("pty_binding_changed");if(Oe(he),he.process)fe??={...he.process};return he}async function Ze(le){f.assertCurrent();let he=await f.request(le,w.signal);if(f.assertCurrent(),w.signal.aborted)ar("cancelled");let xe=$e(he);if(xe.inputSequence!==G)ar("job_input_sequence");if(!mt(xe)&&xe.leaseExpiresAtMs<=Date.now())ar("pty_binding_changed");return xe}function ye(le){if(f.assertCurrent(),w.signal.aborted||g.readyState!==xn.OPEN||g.bufferedAmount+Buffer.byteLength(le)>Co)ar("pty_output_backpressure");g.send(le)}function ze(le){if(le.firstCursor>F+1)F=le.firstCursor-1;for(let he of le.pty.output){if(he.cursor<=F)continue;if(he.cursor!==F+1)ar("pty_output_gap");let xe=Buffer.from(he.dataBase64,"base64");if(g.bufferedAmount+xe.length>Co)return!1;ye(xe),F=he.cursor}if(F!==le.nextCursor)ar("pty_output_gap");return!0}async function Xe(le,he){let xe;try{await Promise.race([e.emit(le,he),new Promise((Ve,Le)=>{xe=setTimeout(()=>Le(new r("pty_event_unavailable","Terminal metadata delivery timed out.")),2000)})])}finally{clearTimeout(xe)}}async function Te(){let le=AbortSignal.timeout(Wt),he=f.request({jobId:l.jobId,action:"cancel",input:{}},le),xe,Ve=new Promise((Le,Be)=>{if(xe=()=>Be(new r("pty_cleanup_unconfirmed","Terminal cleanup acknowledgement was not observed within authority.")),le.addEventListener("abort",xe,{once:!0}),le.aborted)xe()});try{let Le=await Promise.race([he,Ve]);if(le.aborted)ar("pty_cleanup_unconfirmed");return $e(Le)}finally{le.removeEventListener("abort",xe)}}try{await new Promise((Le,Be)=>{let Ee=setTimeout(()=>{I(),Be(new r("pty_relay_unavailable","Terminal pairing timed out."))},5000),We=()=>{clearTimeout(Ee),Be(new r("cancelled","Terminal pairing was cancelled."))};if(w.signal.addEventListener("abort",We,{once:!0}),g.once("open",()=>{clearTimeout(Ee),w.signal.removeEventListener("abort",We),Le()}),w.signal.aborted)We()}),f.assertCurrent(),T=!0,z=await Ze({jobId:l.jobId,action:"start",input:{mode:"pty",cols:l.cols,rows:l.rows,leaseExpiresAtMs:l.leaseExpiresAtMs}});let le=Date.now()+5000;while(z.state==="starting"){if(Date.now()>=le)ar("pty_not_ready");await new Promise((Le)=>setTimeout(Le,25)),z=await Ze({jobId:l.jobId,action:"inspect",input:{after:F}})}if(z.state!=="running"||z.inputSequence!==0||z.leaseExpiresAtMs<=Date.now())ar("pty_not_ready");await Xe("pty.ready",Oe(z)),re=!0,ye(JSON.stringify({t:"open",cols:z.pty.cols,rows:z.pty.rows,receipt:Oe(z)}));let he=!1,xe=0,Ve=!1;while(!w.signal.aborted){let Le=z.firstCursor>F+1,Be=ze(z);if(mt(z)){if(Be)break}else if(Le)he=!0;else if(he&&Be&&Date.now()>=xe){he=!1,xe=Date.now()+1000;let{cols:We,rows:nr}=z.pty;for(let or of[{cols:We,rows:nr>1?nr-1:2},{cols:We,rows:nr}]){if(mt(z))break;let Pr=++G;if(z=await Ze({jobId:l.jobId,action:"resize",input:{sequence:Pr,...or}}),z.inputSequence!==Pr)ar("job_input_sequence")}continue}let Ee=mt(z)||Ve?void 0:x.shift();if(Ee){M-=Do(Ee);let We=++G;try{z=await Ze("data"in Ee?{jobId:l.jobId,action:"input",input:{sequence:We,dataBase64:Ee.data.toString("base64")}}:{jobId:l.jobId,action:"resize",input:{sequence:We,cols:Ee.cols,rows:Ee.rows}})}catch(nr){if(!(nr instanceof r)||nr.code!=="job_input_backpressure")throw nr;G-=1,x.unshift(Ee),M+=Do(Ee),Ve=!0;continue}if(z.inputSequence!==We)ar("job_input_sequence")}else if(await new Promise((We)=>{let nr=setTimeout(We,Ve||!Be?10:50);if(S=()=>{clearTimeout(nr),We()},w.signal.aborted||!Ve&&x.length)S()}),Ve=!1,S=()=>{},!w.signal.aborted&&Be)try{z=await Ze({jobId:l.jobId,action:"inspect",input:{after:F}})}catch(We){if(!J||!(We instanceof r)||We.code!=="cancelled")throw We}}}catch(le){ke??=le}finally{if(re=!1,x.length=0,clearTimeout(W),e.signal.removeEventListener("abort",I),I(),T&&(!z||!mt(z)))try{z=await Te()}catch{z=void 0}try{if(!z||!mt(z)||z.pty?.cleanup!=="confirmed")ar("pty_cleanup_unconfirmed");let le=Oe(z);if(g.readyState===xn.OPEN)await new Promise((he)=>{let xe=setTimeout(he,500);g.send(JSON.stringify({t:"exit",code:z.exitCode,receipt:le}),()=>{clearTimeout(xe),he()})});await Xe("pty.stopped",le)}catch(le){ke??=le}g.terminate()}if(ke)throw ke;if(e.signal.aborted)ar("cancelled");if(!z)ar("pty_cleanup_unconfirmed");return{receipt:Oe(z)}}import{createHash as hi,randomUUID as An}from"crypto";import{spawnSync as Wo}from"child_process";import{closeSync as No,constants as Pn,fstatSync as gi,fsyncSync as bi,lstatSync as Bt,mkdirSync as wi,mkdtempSync as Uo,openSync as Lo,readFileSync as yi,readdirSync as zo,realpathSync as Lt,rmSync as In,unlinkSync as vi}from"fs";import{createConnection as ki}from"net";import{dirname as Si,join as at,sep as Ei}from"path";import{tmpdir as Oi}from"os";var xr=new Map,Vr=new Map;function $r(e,l){return hi("sha256").update(JSON.stringify([e,l])).digest("hex")}function ht(e){try{wi(e,{mode:448})}catch(f){if(!(f instanceof Error&&("code"in f)&&f.code==="EEXIST"))throw f}let l=Bt(e);if(!l.isDirectory()||l.isSymbolicLink()||!A(l)||Lt(e)!==e)throw new r("hands_jobs_unavailable","Hands job state must be a private canonical directory.")}function xi(e){let l;try{l=Bt(e)}catch(f){if(f instanceof Error&&"code"in f&&f.code==="ENOENT")return!1;throw f}return!l.isDirectory()||l.isSymbolicLink()||zo(e).length>0}function ur(e){let l=$r(e.root,e.runId),f=e.previousRuntimeDirectories?.find((I)=>xi(at(I,"jobs",l.slice(0,16))))??e.runtimeDirectory;ht(f);let g=at(f,"jobs");ht(g);let w=at(g,l.slice(0,16));if(e.maxScopes!==void 0){let I=zo(g);if(!Number.isSafeInteger(e.maxScopes)||e.maxScopes<1||I.length>e.maxScopes||!I.includes(l.slice(0,16))&&I.length>=e.maxScopes)throw new r("process_journal_capacity","Managed process receipt capacity is full; preserve uncertain jobs and reconcile their existing receipts before starting more work.")}ht(w);let S=Uo(at(Fo(),"reason-j-"));try{return ht(S),{journalDirectory:w,scopeId:l,launchDirectory:S,socketPath:process.platform==="win32"?`\\\\.\\pipe\\reason-jobs-${An()}`:at(S,"control.sock"),disposeSocket:()=>In(S,{recursive:!0,force:!0})}}catch(I){throw In(S,{recursive:!0,force:!0}),I}}var Pi=60000,Ii=5000;function Di(e){if(process.platform==="win32")return Ni(e);let l=Wo("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:2000,env:{...process.env,LC_ALL:"C",LANG:"C"}}),f=l.status===0?/^\w{3} (\w{3}) +(\d{1,2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$/.exec(l.stdout.trim()):null,g=f?"JanFebMarAprMayJunJulAugSepOctNovDec".indexOf(f[1]):-1;if(!f||g<0||g%3!==0)return null;let w=new Date(Number(f[6]),g/3,Number(f[2]),Number(f[3]),Number(f[4]),Number(f[5])).getTime();return Number.isFinite(w)?w:null}function Ni(e){let l=Wo(C("powershell"),["-NoProfile","-NonInteractive","-Command",`(Get-Process -Id ${e}).StartTime.ToUniversalTime().ToString('o')`],{encoding:"utf8",timeout:5000,windowsHide:!0,env:De()}),f=l.status===0?Date.parse(l.stdout.trim()):Number.NaN;return Number.isFinite(f)?f:null}function $o(e,l={}){let f=at(e.journalDirectory,"owner.lock"),g;try{g=Lo(f,Pn.O_RDONLY|Pn.O_NOFOLLOW)}catch{return null}try{let w=gi(g);if(!w.isFile()||w.nlink!==1||!A(w)||w.size>4096)return null;let S=null;try{S=JSON.parse(yi(g,"utf8"))}catch{}let I;if(S===null){if((l.now??Date.now)()-w.mtimeMs<Pi)return null;I={reason:"never_written",executorLaunchId:null}}else{let{version:M,scopeId:G,pid:F,createdAtMs:T,executorLaunchId:re}=S;if(M!==1||G!==e.scopeId||typeof re!=="string"||typeof F!=="number"||!Number.isSafeInteger(F)||F<1||F===process.pid||typeof T!=="number"||!Number.isSafeInteger(T))return null;if(!(l.exists??((z)=>{try{return process.kill(z,0),!0}catch(fe){return!(fe instanceof Error&&("code"in fe)&&fe.code==="ESRCH")}}))(F))I={reason:"owner_exited",executorLaunchId:re};else{let z=(l.startedAtMs??Di)(F);if(z===null||z<=T+Ii)return null;I={reason:"pid_reused",executorLaunchId:re}}}let W=Bt(f);if(W.dev!==w.dev||W.ino!==w.ino)return null;vi(f);let x=Lo(e.journalDirectory,Pn.O_RDONLY);try{bi(x)}finally{No(x)}return I}catch{return null}finally{No(g)}}function Ko(e){let l={...e,workspace:e.workspace&&Object.freeze({...e.workspace}),previewAuthority:e.previewAuthority&&Object.freeze({...e.previewAuthority,owner:Object.freeze({...e.previewAuthority.owner}),deniedPorts:new Set(e.previewAuthority.deniedPorts)})},f=$r(l.root,l.runId);if(xr.has(f)||l.operationId!==void 0&&Vr.has(l.operationId))throw new r("hands_jobs_busy","The Session already has a live Hands job supervisor.");let g={binding:l,key:f,terminals:new Map};if(l.previewAuthority&&l.environment)g.previews=To({authority:l.previewAuthority,runId:l.runId,expiresAtMs:l.expiresAtMs,executorLaunchId:l.executorLaunchId,environment:l.environment,isCurrent:()=>xr.get(g.key)===g,identity:()=>{try{return gt(l)}catch{return null}},inspect:(w,S)=>{if(xr.get(g.key)!==g)throw new r("preview_unavailable","The Hands supervisor is no longer current.");return Go(l,{jobId:w,action:"inspect",input:{after:0}},S)}});if(xr.set(f,g),l.operationId!==void 0)Vr.set(l.operationId,g);return()=>{if(xr.get(g.key)===g)xr.delete(g.key);if(l.operationId!==void 0&&Vr.get(l.operationId)===g)Vr.delete(l.operationId);g.previews?.dispose();for(let w of g.terminals.values())w.abort()}}var Li=5000,Bi=20;async function Ui(e){let l=(w)=>{throw new r("hands_rebind_unavailable",w)};if(!N(e.operationId)||!N(e.runId)||!N(e.fenceId)||!U(e.targetGeneration))l("Reason sent an invalid Hands rebind.");let f=Vr.get(e.operationId);if(!f||f.binding.root!==e.root)return l("No live Hands supervisor owns this operation.");for(let w=Date.now()+Li;;){if(e.signal?.aborted)l("The Hands rebind was cancelled.");if(Vr.get(e.operationId)!==f)l("The Hands supervisor is no longer current.");let S=null;try{S=gt(f.binding)}catch{}if(S&&S.generation===e.targetGeneration&&S.fenceId===e.fenceId)break;if(S&&S.generation>e.targetGeneration||Date.now()>=w)l("The executor did not adopt this take.");await new Promise((I)=>setTimeout(I,Bi))}if(Vr.get(e.operationId)!==f||xr.get(f.key)!==f)l("The Hands supervisor is no longer current.");let g=$r(e.root,e.runId);if(f.key===g)return;if(xr.has(g))l("The taking run already has a live Hands job supervisor.");xr.delete(f.key);for(let w of f.terminals.values())w.abort();f.key=g,xr.set(g,f)}function nt(e){let l="operationId"in e?Vr.get(e.operationId):xr.get($r(e.root,e.runId)),f=l&&l.binding.root===e.root?l.binding:void 0;if(!f?.environment||f.expiresAtMs<=Date.now())throw new r("environment_unavailable","No live Hands supervisor owns this environment.");return f.environment.install(e.payload)}async function Hi(e){let l=xr.get($r(e.root,e.runId));if(!l?.previews||!e.owner)throw new r("preview_unavailable","No authenticated Hands supervisor owns this preview.");return l.previews.open(e.payload,e.owner,e.signal)}async function zi(e){let l=xr.get($r(e.root,e.runId));if(!l?.previews||!e.owner||e.signal.aborted)throw new r("preview_unavailable","No authenticated Hands supervisor owns this preview.");return l.previews.close(e.payload,e.owner)}async function qi(e){let l=$r(e.root,e.runId),f=xr.get(l),g=f?.binding,w=g?.runId,S=g?.previewAuthority,I=g?.environment,W=e.owner&&{...e.owner},x=e.authority&&{...e.authority},M=()=>{throw new r("pty_binding_unavailable","No current authenticated Hands scope owns this terminal.")};if(!f||!g||!S||!I||!W||!x||!g.workspace)return M();let G=Object.freeze({...g.workspace}),F=gt(g),T=I.current(),re=()=>{if(xr.get(l)!==f||W.organization_id!==S.owner.organization_id||W.user_id!==S.owner.user_id||W.device_id!==S.owner.device_id||e.deviceId!==S.owner.device_id||e.rootId!==S.rootId||O(e.workspace)!==O(G))M();let z=gt(g),fe=I.current();if(z.generation!==F.generation||z.fenceId!==F.fenceId||fe.run_id!==w||fe.device_id!==e.deviceId||fe.root_id!==e.rootId||fe.snapshot_id!==T.snapshot_id||fe.revision!==T.revision||fe.binding.target_generation!==F.generation||fe.binding.target_fence_id!==F.fenceId||x.device_id!==e.deviceId||x.binding!==fe.binding.kind||x.target_revision!==fe.binding.target_revision||x.root_grant_revision!==fe.binding.root_grant_revision||x.target_generation!==F.generation||x.target_fence_id!==F.fenceId)M()};if(re(),new URL(e.session.relayUrl).origin!==S.relayOrigin||f.terminals.has(e.session.jobId)||f.terminals.size>=4)return M();let J=new AbortController;f.terminals.set(e.session.jobId,J);try{return await Ho({session:{...e.session,leaseExpiresAtMs:Math.min(e.session.leaseExpiresAtMs,F.expiresAtMs,Date.parse(T.expires_at))},signal:AbortSignal.any([e.signal,J.signal]),emit:e.emit,binding:{assertCurrent:re,environment:{revision:T.revision,snapshotId:T.snapshot_id},scope:{runId:e.runId,deviceId:e.deviceId,rootId:e.rootId,workspace:G,binding:T.binding.kind,targetRevision:T.binding.target_revision,rootGrantRevision:T.binding.root_grant_revision,generation:F.generation,fenceId:F.fenceId,executorLaunchId:F.executorLaunchId},request:(z,fe)=>dr(F,Fr(JSON.stringify({...z,type:"job",version:2,generation:F.generation,id:An()})),fe)}})}finally{if(f.terminals.get(e.session.jobId)===J)f.terminals.delete(e.session.jobId)}}async function Wi(e){if(ce(e.payload.jobId))throw new r("pty_binding_required","PTY jobs require the bound terminal capability.");let l=xr.get($r(e.root,e.runId))?.binding;if(!l||l.expiresAtMs<=Date.now())throw new r("hands_jobs_unavailable","No live Hands supervisor owns this Session and root.");return Go(l,e.payload,e.signal)}var Mi=1e4,Fi=20,$i=ve/2,Yi=Ge/2,Xi=(e)=>e.output.reduce((l,f)=>l+f.text.length,0);async function Go(e,l,f){if(Object.keys(l).some((M)=>!["jobId","action","input","waitForExitMs"].includes(M)))throw new r("invalid_payload","Unexpected job control field.");let{waitForExitMs:g,...w}=l;if(g!==void 0&&(w.action!=="start"||typeof w.input!=="object"||w.input===null||!("script"in w.input)||typeof g!=="number"||!Number.isSafeInteger(g)||g<1||g>Mi))throw new r("invalid_payload","Only a script start may wait for its job, within its bound.");let S=(M)=>{let G=gt(e);return dr(G,Fr(JSON.stringify({...M,type:"job",version:2,generation:G.generation,id:An()})),f)},I=await S(w);if(g===void 0)return I;let W=Date.now()+g,x=I;while(x.ok&&["starting","running"].includes(x.job.state)&&x.job.output.length<$i&&Xi(x.job)<Yi&&!f.aborted&&Date.now()<W){if(await new Promise((M)=>setTimeout(M,Math.min(Fi,W-Date.now()))),f.aborted)break;try{let M=await S({jobId:w.jobId,action:"inspect",input:{after:0}});if(!M.ok)break;x=M}catch{break}}return x}function gt(e){if(e.expiresAtMs<=Date.now())throw new r("hands_jobs_unavailable","Hands authority expired.");let l=e.readIdentity?e.readIdentity():e;if(!l||!U(l.generation)||!N(l.fenceId)||l.generation<e.generation||l.generation===e.generation&&l.fenceId!==e.fenceId)throw new r("hands_jobs_unavailable","The live Hands fencing identity could not be verified.");return e.generation=l.generation,e.fenceId=l.fenceId,{...e}}function dr(e,l,f){if(f.aborted)return Promise.reject(new r("cancelled","Job control was cancelled."));return new Promise((g,w)=>{let S=ki(e.socketPath),I="",W=!1,x,M=(F,T)=>{if(W)return;if(W=!0,clearTimeout(x),f.removeEventListener("abort",G),S.destroy(),F)w(F);else g(T)},G=()=>M(new r("cancelled","Job control waiter cancelled; inspect before retrying mutations."));f.addEventListener("abort",G,{once:!0}),S.setEncoding("utf8"),x=setTimeout(()=>M(new r("hands_job_result_unknown","Job control timed out; inspect before retrying mutations.")),Math.min(1e4,Math.max(1,e.expiresAtMs-Date.now()))),S.on("error",()=>M(new r("hands_job_result_unknown","Hands job control connection failed."))),S.once("connect",()=>S.write(JSON.stringify({version:1,scopeId:e.scopeId,fenceId:e.fenceId,executorLaunchId:e.executorLaunchId,request:l})+`
2
+ import{Ut,j}from"./vm-hands-entry-lite-1f2cam25.js";import{ue,Ce,Z,Ae,de,er,Ye,X,O,H,Qr}from"./vm-hands-entry-lite-r7zs4ce2.js";import{mo,qn}from"./vm-hands-entry-lite-hw26gewc.js";import{ao,P,Ge,ve,Ke,ne,Je,Mn,Se,Wt,ae,U,N,ce,Fr,jr,Bn}from"./vm-hands-entry-lite-3vmhs921.js";import{Pe,oe,pe,Y,Re,q,Q}from"./vm-hands-entry-lite-tqc2ezda.js";import{Rt,br,ot,V,D,R,b}from"./vm-hands-entry-lite-499mywh7.js";import{Sr,Er,yn,ro,He,wn}from"./vm-hands-entry-lite-a3w8m8nb.js";import{K}from"./vm-hands-entry-lite-d9g1pzzx.js";import{Ri}from"./vm-hands-entry-lite-g9z467dk.js";import{p,Ue,Ot,st,Zi,_e,we}from"./vm-hands-entry-lite-dh8f2h2d.js";import{v,h,no}from"./vm-hands-entry-lite-t5q30ne0.js";import{E}from"./vm-hands-entry-lite-qyp2a4c3.js";import{Yt}from"./vm-hands-entry-lite-q25x232x.js";import{a,ie,Oo}from"./vm-hands-entry-lite-9sa1knn7.js";import{L,Ci,Ai,Mo,y,t,k,St,o,d,u,i,c,_,ee,s,n}from"./vm-hands-entry-lite-ba3qq0bs.js";import{Ti}from"./vm-hands-entry-lite-07vak0wy.js";import{Bo,se,Fo,C,De,Me,A}from"./vm-hands-entry-lite-8j7p91hr.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";var li=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function l(w){return e[w]??null}let f={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},g={nan:"NaN"};return(w)=>{switch(w.code){case"invalid_type":{let S=g[w.expected]??w.expected,I=Mo(w.input),W=g[I]??I;return`Invalid input: expected ${S}, received ${W}`}case"invalid_value":if(w.values.length===1)return`Invalid input: expected ${Ai(w.values[0])}`;return`Invalid option: expected one of ${Ci(w.values,"|")}`;case"too_big":{let S=w.inclusive?"<=":"<",I=l(w.origin);if(I)return`Too big: expected ${w.origin??"value"} to have ${S}${w.maximum.toString()} ${I.unit??"elements"}`;return`Too big: expected ${w.origin??"value"} to be ${S}${w.maximum.toString()}`}case"too_small":{let S=w.inclusive?">=":">",I=l(w.origin);if(I)return`Too small: expected ${w.origin} to have ${S}${w.minimum.toString()} ${I.unit}`;return`Too small: expected ${w.origin} to be ${S}${w.minimum.toString()}`}case"invalid_format":{let S=w;if(S.format==="starts_with")return`Invalid string: must start with "${S.prefix}"`;if(S.format==="ends_with")return`Invalid string: must end with "${S.suffix}"`;if(S.format==="includes")return`Invalid string: must include "${S.includes}"`;if(S.format==="regex")return`Invalid string: must match pattern ${S.pattern}`;return`Invalid ${f[S.format]??w.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${w.divisor}`;case"unrecognized_keys":return`Unrecognized key${w.keys.length>1?"s":""}: ${Ci(w.keys,", ")}`;case"invalid_key":return`Invalid key in ${w.origin}`;case"invalid_union":if(w.options&&Array.isArray(w.options)&&w.options.length>0)return`Invalid discriminator value. Expected ${w.options.map((I)=>`'${I}'`).join(" | ")}`;return"Invalid input";case"invalid_element":return`Invalid value in ${w.origin}`;default:return"Invalid input"}}};function En(){return{localeError:li()}}L(En());class _t extends Error{}function Ro(e){let l;try{l=new URL(e)}catch{throw new _t("The proxy must be a URL like https://proxy.example.com:3128.")}if(l.protocol!=="https:"&&l.protocol!=="http:")throw new _t("The proxy URL must use the https or http scheme.");if(!l.hostname)throw new _t("The proxy URL must name a host.");if(l.port!==""&&Number(l.port)<1)throw new _t("The proxy URL must use a port between 1 and 65535.");if(l.pathname!==""&&l.pathname!=="/"||l.search||l.hash)throw new _t("The proxy URL must not carry a path, query, or fragment.");return l.toString()}import{createHash as ui}from"crypto";import{isAbsolute as xo,join as Po,relative as Io,resolve as Xt,sep as Ao}from"path";var qt=t().min(1).refine(xo,"absolute path required"),On=c({version:n(1),apiOrigin:St(),channel:s(["staging","production"]),stateDirectory:qt,workspaceRoot:qt,lifetime:s(["persistent","ephemeral"]),executionMode:s(["confined","host"]).default("confined"),name:t().min(1).max(160).default("Reason headless worker"),slots:o().int().min(1).max(4).default(1),shutdownGraceMs:o().int().min(0).max(300000).default(30000),proxy:c({version:n(Ut),url:t().refine((e)=>{try{return Ro(e)===e}catch{return!1}},"invalid proxy URL"),caFile:qt.optional()}).optional(),userChrome:d().optional(),cloudSessions:n(!0).optional(),localLogins:d().optional(),folders:u(qt).min(1).max(31).optional()}),fi=/^https:\/\/[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.trycloudflare\.com$/,B=_("channel",[On,On.extend({channel:n("pr"),apiOrigin:t(),prEnvironment:t()}),On.extend({channel:n("local-qa"),apiOrigin:t()})]).superRefine((e,l)=>{if(e.channel==="local-qa"){if(!fi.test(e.apiOrigin))l.addIssue({code:"custom",message:"local QA worker requires an exact HTTPS trycloudflare.com quick-tunnel origin"})}else if(e.channel==="pr"){let g=e.prEnvironment,w=/^https:\/\/([a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)\.up\.railway\.app$/.exec(e.apiOrigin),S=w?.[1]?.match(/(?:^|-)pr-[0-9]+(?=-|$)/g)?.map((I)=>I.replace(/^-/,""));if(!g||/^pr-[1-9][0-9]*$/.exec(g)?.[0]!==g||w?.[0]!==e.apiOrigin||S?.length!==1||S[0]!==g)l.addIssue({code:"custom",message:"PR worker requires explicit prEnvironment and an exact same-PR HTTPS Railway origin"})}else{let g=new URL(e.apiOrigin);if(g.origin!==e.apiOrigin||g.username||g.password||g.protocol!=="https:"&&!(g.protocol==="http:"&&qn(g.origin))||!qn(g.origin)&&!mo(e.channel,g.origin))l.addIssue({code:"custom",message:"API origin must match channel (or loopback)"})}if(!Fe(e.workspaceRoot,e.stateDirectory))l.addIssue({code:"custom",message:"state and workspace must be disjoint"});let f=e.folders??[];if(new Set([e.workspaceRoot,...f]).size!==f.length+1||f.some((g)=>!Fe(g,e.stateDirectory)))l.addIssue({code:"custom",message:"folders must be distinct and disjoint from state"})});function m(e){return Po(e.stateDirectory,`headless-${e.channel==="pr"?e.prEnvironment:e.channel}`)}function Fe(e,l){if(zr(l,e))return!1;return!zr(e,l)||E(Po(Ao,Io(Xt(e),Xt(l))))}function zr(e,l){let f=Io(Xt(e),Xt(l));return f===""||f!==".."&&!f.startsWith(`..${Ao}`)&&!xo(f)}function te(e){let{proxy:l,userChrome:f,cloudSessions:g,localLogins:w,folders:S,...I}=e;return ui("sha256").update(JSON.stringify(I)).digest("hex")}var pi=4,_i=[2375,2376,9222,9229];function lr(e){let l=new Set(_i);for(let f of e){let g=new URL(f);l.add(Number(g.port||(["https:","wss:"].includes(g.protocol)?443:80)))}return l}function Jr(){throw new r("preview_unavailable","The live Hands preview binding is unavailable or stale.")}var mi=60000;function To(e){let l=new AbortController,f=new Map,g=(x)=>JSON.stringify([x.jobId,x.port]);function w(x){let M=e.authority.owner;if(l.signal.aborted||!e.isCurrent()||e.expiresAtMs<=Date.now()||x.organization_id!==M.organization_id||x.user_id!==M.user_id||x.device_id!==M.device_id)Jr()}function S(x){let M;try{M=e.environment.current()}catch{return null}return M.binding.target_generation===x.generation&&M.binding.target_fence_id===x.fenceId&&M.run_id===e.runId&&M.device_id===e.authority.owner.device_id&&M.root_id===e.authority.rootId?M:null}async function I(x,M,G){let F=await W(x,M,G);if(F!=="moved")return F;let T=await W(x,M,G);return T==="moved"?null:T}async function W(x,M,G){try{w(e.authority.owner);let F=e.identity();if(!F||G.aborted||x.expiresAtMs<=Date.now()||x.expiresAtMs>e.expiresAtMs)return null;let T=M.opened,re=T!==void 0&&F.generation>T.generation,J=S(F);if(re){if(J){if(J.revision<=T.revision||x.expiresAtMs>Date.parse(J.expires_at)||J.binding.target_revision!==T.attachmentRevision||J.binding.root_grant_revision!==T.grantRevision)return null;M.recoveringSinceMs=void 0}else if(Date.now()-(M.recoveringSinceMs??=Date.now())>mi)return null}else if(!J||x.expiresAtMs>Date.parse(J.expires_at)||T&&(F.generation!==T.generation||F.fenceId!==T.fenceId))return null;let z=await e.inspect(x.jobId,G),fe=e.identity(),ke=fe&&S(fe);w(e.authority.owner);let be=J&&{generation:F.generation,fenceId:F.fenceId,snapshotId:J.snapshot_id,revision:J.revision,attachmentRevision:J.binding.target_revision,grantRevision:J.binding.root_grant_revision},Oe=re?T:be;if(G.aborted||!fe)return null;if(fe.generation!==F.generation||fe.fenceId!==F.fenceId||ke?.snapshot_id!==J?.snapshot_id||ke?.revision!==J?.revision)return"moved";let $e=z.ok&&z.job.environmentSnapshotId!==void 0&&z.job.environmentRevision!==void 0?{snapshotId:z.job.environmentSnapshotId,revision:z.job.environmentRevision}:null;if(!z.ok||z.generation!==F.generation||!Oe||!$e)return null;if(($e.snapshotId!==Oe.snapshotId||$e.revision!==Oe.revision)&&(re||!e.environment.carried($e.snapshotId,$e.revision)))return null;if(!T&&F.generation===x.generation&&F.fenceId===x.fenceId)M.opened={...Oe,...$e};return{executorLaunchId:e.executorLaunchId,job:z.job,binding:{organizationId:e.authority.owner.organization_id,userId:e.authority.owner.user_id,deviceId:e.authority.owner.device_id,rootId:e.authority.rootId,runId:e.runId,attachmentRevision:Oe.attachmentRevision,grantRevision:Oe.grantRevision,generation:Oe.generation,fenceId:Oe.fenceId,jobId:z.job.jobId,port:x.port,expiresAtMs:x.expiresAtMs}}}catch{return null}}return{async open(x,M,G){w(M);let{binding:F,deviceRelayUrl:T}=st(x);if(G.aborted||F.expiresAtMs<=Date.now()||F.expiresAtMs>Date.now()+p.lifetimeMs||new URL(T).origin!==e.authority.relayOrigin)Jr();let re=g(F),J=f.get(re);if(J){if(!Ue(J.binding,F)||J.relay!==T)Jr();if(await J.opened,!await Ot(()=>J.port.check())||G.aborted||J.abort.signal.aborted)Jr();return{opened:!0,binding:F}}if(f.size>=pi)Jr();let z=new AbortController,fe={},ke=we({binding:F,deniedPorts:e.authority.deniedPorts,readCurrentJob:()=>I(F,fe,z.signal)}),be=()=>z.abort();if(G.addEventListener("abort",be,{once:!0}),l.signal.addEventListener("abort",be,{once:!0}),G.aborted||l.signal.aborted)be();let Oe=_e({binding:F,deviceRelayUrl:T,port:ke,signal:z.signal}),$e={binding:F,relay:T,abort:z,port:ke,opened:Oe};f.set(re,$e);let Ze=()=>{if(G.removeEventListener("abort",be),l.signal.removeEventListener("abort",be),f.get(re)===$e)f.delete(re)};try{if((await Oe).closed.then(Ze),G.removeEventListener("abort",be),w(M),z.signal.aborted||!await Ot(()=>ke.check()))Jr();return{opened:!0,binding:F}}catch{z.abort(),Ze(),Jr()}},async close(x,M){w(M);let{binding:G}=Zi(x),F=f.get(g(G));if(!F||!Ue(F.binding,G))Jr();return F.abort.abort(),await F.opened.then((T)=>T.closed,()=>{return}),{closed:!0,binding:G}},dispose(){l.abort();for(let x of f.values())x.abort.abort();f.clear()}}}import{WebSocket as xn}from"ws";var Do=(e)=>("data"in e)?e.data.length:e.bytes,Co=2*Je;function ar(e){throw new r(e,"The bound Hands terminal is unavailable or its outcome is unconfirmed.")}var mt=(e)=>!["starting","running"].includes(e.state);function ji(e,l,f=Date.now()){let g=["relay_url","session_id","expires_at","cols","rows","pty","workspace"];if(Object.keys(e).length!==g.length||Object.keys(e).some((M)=>!g.includes(M))||!ae(l)||!ae(e.session_id)||typeof e.expires_at!=="string"||typeof e.relay_url!=="string"||e.relay_url.length>4096||![e.cols,e.rows].every((M)=>Number.isSafeInteger(M)&&Number(M)>=1&&Number(M)<=Se))ar("invalid_pty_request");let w=e.pty;if(!w||typeof w!=="object"||Array.isArray(w))ar("invalid_pty_request");let S=w;if(Object.keys(S).length!==2||S.version!==1||!ce(S.jobId))ar("invalid_pty_request");let I;try{I=new URL(e.relay_url)}catch{return ar("invalid_pty_request")}if(!["ws:","wss:"].includes(I.protocol)||I.username||I.password||I.hash||I.protocol==="ws:"&&!["127.0.0.1","[::1]","localhost"].includes(I.hostname))ar("invalid_pty_request");let W=Date.parse(e.expires_at);if(!Number.isSafeInteger(W)||W<=f)ar("invalid_pty_request");return{workspace:H(e.workspace)??ar("invalid_pty_request"),session:{jobId:S.jobId,sessionId:e.session_id,operationId:l,relayUrl:I.href,cols:Number(e.cols),rows:Number(e.rows),leaseExpiresAtMs:Math.min(W,f+43200000)}}}async function Ho(e){let{session:l,binding:f}=e;if(f.assertCurrent(),e.signal.aborted||Date.now()>=l.leaseExpiresAtMs)ar("cancelled");let g=new xn(l.relayUrl,{followRedirects:!1,perMessageDeflate:!1,maxPayload:ne}),w=new AbortController,S=()=>{},I=()=>{w.abort(),S()};e.signal.addEventListener("abort",I,{once:!0});let W=setTimeout(I,Math.max(1,l.leaseExpiresAtMs-Date.now())),x=[],M=0,G=0,F=0,T=!1,re=!1,J=!1,z,fe,ke,be=(le)=>{ke=new r(le,"Bound terminal input was refused."),I()};g.on("error",()=>be("pty_relay_unavailable")),g.on("close",I),g.on("message",(le,he)=>{if(w.signal.aborted)return;if(!re){be("pty_not_ready");return}let xe=Array.isArray(le)?Buffer.concat(le):le instanceof ArrayBuffer?Buffer.from(le):le;if(xe.length===0)return;let Ve=x.at(-1),Le=he&&Ve!==void 0&&"data"in Ve&&Ve.data.length+xe.length<=ne;if(xe.length>ne||M+xe.length>Mn){be("pty_input_backpressure");return}if(Le)Ve.data=Buffer.concat([Ve.data,xe]);else if(he)x.push({data:Buffer.from(xe)});else try{let Be=JSON.parse(xe.toString("utf8"));if(Be&&Be.t==="close"&&Object.keys(Be).length===1){J=!0,I();return}if(!Be||Be.t!=="resize"||Object.keys(Be).length!==3||![Be.cols,Be.rows].every((Ee)=>Number.isSafeInteger(Ee)&&Ee>=1&&Ee<=Se))throw Error("invalid_control");x.push({cols:Be.cols,rows:Be.rows,bytes:xe.length})}catch{be("invalid_pty_control");return}M+=xe.length,S()});function Oe(le){return Bn(JSON.stringify({...f.scope,version:1,sessionId:l.sessionId,operationId:l.operationId,job:{...le,output:[],pty:le.pty?{...le.pty,output:[]}:void 0}}))}function $e(le){if(!le.ok)ar(le.error);let he=le.job;if(le.generation!==f.scope.generation||he.jobId!==l.jobId||!he.pty||he.leaseExpiresAtMs>l.leaseExpiresAtMs||he.process&&he.process.executorLaunchId!==f.scope.executorLaunchId||he.process&&fe&&(he.process.pid!==fe.pid||he.process.processGroupId!==fe.processGroupId)||he.state!=="starting"&&(he.environmentRevision!==f.environment.revision||he.environmentSnapshotId!==f.environment.snapshotId))ar("pty_binding_changed");if(Oe(he),he.process)fe??={...he.process};return he}async function Ze(le){f.assertCurrent();let he=await f.request(le,w.signal);if(f.assertCurrent(),w.signal.aborted)ar("cancelled");let xe=$e(he);if(xe.inputSequence!==G)ar("job_input_sequence");if(!mt(xe)&&xe.leaseExpiresAtMs<=Date.now())ar("pty_binding_changed");return xe}function ye(le){if(f.assertCurrent(),w.signal.aborted||g.readyState!==xn.OPEN||g.bufferedAmount+Buffer.byteLength(le)>Co)ar("pty_output_backpressure");g.send(le)}function ze(le){if(le.firstCursor>F+1)F=le.firstCursor-1;for(let he of le.pty.output){if(he.cursor<=F)continue;if(he.cursor!==F+1)ar("pty_output_gap");let xe=Buffer.from(he.dataBase64,"base64");if(g.bufferedAmount+xe.length>Co)return!1;ye(xe),F=he.cursor}if(F!==le.nextCursor)ar("pty_output_gap");return!0}async function Xe(le,he){let xe;try{await Promise.race([e.emit(le,he),new Promise((Ve,Le)=>{xe=setTimeout(()=>Le(new r("pty_event_unavailable","Terminal metadata delivery timed out.")),2000)})])}finally{clearTimeout(xe)}}async function Te(){let le=AbortSignal.timeout(Wt),he=f.request({jobId:l.jobId,action:"cancel",input:{}},le),xe,Ve=new Promise((Le,Be)=>{if(xe=()=>Be(new r("pty_cleanup_unconfirmed","Terminal cleanup acknowledgement was not observed within authority.")),le.addEventListener("abort",xe,{once:!0}),le.aborted)xe()});try{let Le=await Promise.race([he,Ve]);if(le.aborted)ar("pty_cleanup_unconfirmed");return $e(Le)}finally{le.removeEventListener("abort",xe)}}try{await new Promise((Le,Be)=>{let Ee=setTimeout(()=>{I(),Be(new r("pty_relay_unavailable","Terminal pairing timed out."))},5000),We=()=>{clearTimeout(Ee),Be(new r("cancelled","Terminal pairing was cancelled."))};if(w.signal.addEventListener("abort",We,{once:!0}),g.once("open",()=>{clearTimeout(Ee),w.signal.removeEventListener("abort",We),Le()}),w.signal.aborted)We()}),f.assertCurrent(),T=!0,z=await Ze({jobId:l.jobId,action:"start",input:{mode:"pty",cols:l.cols,rows:l.rows,leaseExpiresAtMs:l.leaseExpiresAtMs}});let le=Date.now()+5000;while(z.state==="starting"){if(Date.now()>=le)ar("pty_not_ready");await new Promise((Le)=>setTimeout(Le,25)),z=await Ze({jobId:l.jobId,action:"inspect",input:{after:F}})}if(z.state!=="running"||z.inputSequence!==0||z.leaseExpiresAtMs<=Date.now())ar("pty_not_ready");await Xe("pty.ready",Oe(z)),re=!0,ye(JSON.stringify({t:"open",cols:z.pty.cols,rows:z.pty.rows,receipt:Oe(z)}));let he=!1,xe=0,Ve=!1;while(!w.signal.aborted){let Le=z.firstCursor>F+1,Be=ze(z);if(mt(z)){if(Be)break}else if(Le)he=!0;else if(he&&Be&&Date.now()>=xe){he=!1,xe=Date.now()+1000;let{cols:We,rows:nr}=z.pty;for(let or of[{cols:We,rows:nr>1?nr-1:2},{cols:We,rows:nr}]){if(mt(z))break;let Pr=++G;if(z=await Ze({jobId:l.jobId,action:"resize",input:{sequence:Pr,...or}}),z.inputSequence!==Pr)ar("job_input_sequence")}continue}let Ee=mt(z)||Ve?void 0:x.shift();if(Ee){M-=Do(Ee);let We=++G;try{z=await Ze("data"in Ee?{jobId:l.jobId,action:"input",input:{sequence:We,dataBase64:Ee.data.toString("base64")}}:{jobId:l.jobId,action:"resize",input:{sequence:We,cols:Ee.cols,rows:Ee.rows}})}catch(nr){if(!(nr instanceof r)||nr.code!=="job_input_backpressure")throw nr;G-=1,x.unshift(Ee),M+=Do(Ee),Ve=!0;continue}if(z.inputSequence!==We)ar("job_input_sequence")}else if(await new Promise((We)=>{let nr=setTimeout(We,Ve||!Be?10:50);if(S=()=>{clearTimeout(nr),We()},w.signal.aborted||!Ve&&x.length)S()}),Ve=!1,S=()=>{},!w.signal.aborted&&Be)try{z=await Ze({jobId:l.jobId,action:"inspect",input:{after:F}})}catch(We){if(!J||!(We instanceof r)||We.code!=="cancelled")throw We}}}catch(le){ke??=le}finally{if(re=!1,x.length=0,clearTimeout(W),e.signal.removeEventListener("abort",I),I(),T&&(!z||!mt(z)))try{z=await Te()}catch{z=void 0}try{if(!z||!mt(z)||z.pty?.cleanup!=="confirmed")ar("pty_cleanup_unconfirmed");let le=Oe(z);if(g.readyState===xn.OPEN)await new Promise((he)=>{let xe=setTimeout(he,500);g.send(JSON.stringify({t:"exit",code:z.exitCode,receipt:le}),()=>{clearTimeout(xe),he()})});await Xe("pty.stopped",le)}catch(le){ke??=le}g.terminate()}if(ke)throw ke;if(e.signal.aborted)ar("cancelled");if(!z)ar("pty_cleanup_unconfirmed");return{receipt:Oe(z)}}import{createHash as hi,randomUUID as An}from"crypto";import{spawnSync as Wo}from"child_process";import{closeSync as No,constants as Pn,fstatSync as gi,fsyncSync as bi,lstatSync as Bt,mkdirSync as wi,mkdtempSync as Uo,openSync as Lo,readFileSync as yi,readdirSync as zo,realpathSync as Lt,rmSync as In,unlinkSync as vi}from"fs";import{createConnection as ki}from"net";import{dirname as Si,join as at,sep as Ei}from"path";import{tmpdir as Oi}from"os";var xr=new Map,Vr=new Map;function $r(e,l){return hi("sha256").update(JSON.stringify([e,l])).digest("hex")}function ht(e){try{wi(e,{mode:448})}catch(f){if(!(f instanceof Error&&("code"in f)&&f.code==="EEXIST"))throw f}let l=Bt(e);if(!l.isDirectory()||l.isSymbolicLink()||!A(l)||Lt(e)!==e)throw new r("hands_jobs_unavailable","Hands job state must be a private canonical directory.")}function xi(e){let l;try{l=Bt(e)}catch(f){if(f instanceof Error&&"code"in f&&f.code==="ENOENT")return!1;throw f}return!l.isDirectory()||l.isSymbolicLink()||zo(e).length>0}function ur(e){let l=$r(e.root,e.runId),f=e.previousRuntimeDirectories?.find((I)=>xi(at(I,"jobs",l.slice(0,16))))??e.runtimeDirectory;ht(f);let g=at(f,"jobs");ht(g);let w=at(g,l.slice(0,16));if(e.maxScopes!==void 0){let I=zo(g);if(!Number.isSafeInteger(e.maxScopes)||e.maxScopes<1||I.length>e.maxScopes||!I.includes(l.slice(0,16))&&I.length>=e.maxScopes)throw new r("process_journal_capacity","Managed process receipt capacity is full; preserve uncertain jobs and reconcile their existing receipts before starting more work.")}ht(w);let S=Uo(at(Fo(),"reason-j-"));try{return ht(S),{journalDirectory:w,scopeId:l,launchDirectory:S,socketPath:process.platform==="win32"?`\\\\.\\pipe\\reason-jobs-${An()}`:at(S,"control.sock"),disposeSocket:()=>In(S,{recursive:!0,force:!0})}}catch(I){throw In(S,{recursive:!0,force:!0}),I}}var Pi=60000,Ii=5000;function Di(e){if(process.platform==="win32")return Ni(e);let l=Wo("ps",["-o","lstart=","-p",String(e)],{encoding:"utf8",timeout:2000,env:{...process.env,LC_ALL:"C",LANG:"C"}}),f=l.status===0?/^\w{3} (\w{3}) +(\d{1,2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$/.exec(l.stdout.trim()):null,g=f?"JanFebMarAprMayJunJulAugSepOctNovDec".indexOf(f[1]):-1;if(!f||g<0||g%3!==0)return null;let w=new Date(Number(f[6]),g/3,Number(f[2]),Number(f[3]),Number(f[4]),Number(f[5])).getTime();return Number.isFinite(w)?w:null}function Ni(e){let l=Wo(C("powershell"),["-NoProfile","-NonInteractive","-Command",`(Get-Process -Id ${e}).StartTime.ToUniversalTime().ToString('o')`],{encoding:"utf8",timeout:5000,windowsHide:!0,env:De()}),f=l.status===0?Date.parse(l.stdout.trim()):Number.NaN;return Number.isFinite(f)?f:null}function $o(e,l={}){let f=at(e.journalDirectory,"owner.lock"),g;try{g=Lo(f,Pn.O_RDONLY|Pn.O_NOFOLLOW)}catch{return null}try{let w=gi(g);if(!w.isFile()||w.nlink!==1||!A(w)||w.size>4096)return null;let S=null;try{S=JSON.parse(yi(g,"utf8"))}catch{}let I;if(S===null){if((l.now??Date.now)()-w.mtimeMs<Pi)return null;I={reason:"never_written",executorLaunchId:null}}else{let{version:M,scopeId:G,pid:F,createdAtMs:T,executorLaunchId:re}=S;if(M!==1||G!==e.scopeId||typeof re!=="string"||typeof F!=="number"||!Number.isSafeInteger(F)||F<1||F===process.pid||typeof T!=="number"||!Number.isSafeInteger(T))return null;if(!(l.exists??((z)=>{try{return process.kill(z,0),!0}catch(fe){return!(fe instanceof Error&&("code"in fe)&&fe.code==="ESRCH")}}))(F))I={reason:"owner_exited",executorLaunchId:re};else{let z=(l.startedAtMs??Di)(F);if(z===null||z<=T+Ii)return null;I={reason:"pid_reused",executorLaunchId:re}}}let W=Bt(f);if(W.dev!==w.dev||W.ino!==w.ino)return null;vi(f);let x=Lo(e.journalDirectory,Pn.O_RDONLY);try{bi(x)}finally{No(x)}return I}catch{return null}finally{No(g)}}function Ko(e){let l={...e,workspace:e.workspace&&Object.freeze({...e.workspace}),previewAuthority:e.previewAuthority&&Object.freeze({...e.previewAuthority,owner:Object.freeze({...e.previewAuthority.owner}),deniedPorts:new Set(e.previewAuthority.deniedPorts)})},f=$r(l.root,l.runId);if(xr.has(f)||l.operationId!==void 0&&Vr.has(l.operationId))throw new r("hands_jobs_busy","The Session already has a live Hands job supervisor.");let g={binding:l,key:f,terminals:new Map};if(l.previewAuthority&&l.environment)g.previews=To({authority:l.previewAuthority,runId:l.runId,expiresAtMs:l.expiresAtMs,executorLaunchId:l.executorLaunchId,environment:l.environment,isCurrent:()=>xr.get(g.key)===g,identity:()=>{try{return gt(l)}catch{return null}},inspect:(w,S)=>{if(xr.get(g.key)!==g)throw new r("preview_unavailable","The Hands supervisor is no longer current.");return Go(l,{jobId:w,action:"inspect",input:{after:0}},S)}});if(xr.set(f,g),l.operationId!==void 0)Vr.set(l.operationId,g);return()=>{if(xr.get(g.key)===g)xr.delete(g.key);if(l.operationId!==void 0&&Vr.get(l.operationId)===g)Vr.delete(l.operationId);g.previews?.dispose();for(let w of g.terminals.values())w.abort()}}var Li=5000,Bi=20;async function Ui(e){let l=(w)=>{throw new r("hands_rebind_unavailable",w)};if(!N(e.operationId)||!N(e.runId)||!N(e.fenceId)||!U(e.targetGeneration))l("Reason sent an invalid Hands rebind.");let f=Vr.get(e.operationId);if(!f||f.binding.root!==e.root)return l("No live Hands supervisor owns this operation.");for(let w=Date.now()+Li;;){if(e.signal?.aborted)l("The Hands rebind was cancelled.");if(Vr.get(e.operationId)!==f)l("The Hands supervisor is no longer current.");let S=null;try{S=gt(f.binding)}catch{}if(S&&S.generation===e.targetGeneration&&S.fenceId===e.fenceId)break;if(S&&S.generation>e.targetGeneration||Date.now()>=w)l("The executor did not adopt this take.");await new Promise((I)=>setTimeout(I,Bi))}if(Vr.get(e.operationId)!==f||xr.get(f.key)!==f)l("The Hands supervisor is no longer current.");let g=$r(e.root,e.runId);if(f.key===g)return;if(xr.has(g))l("The taking run already has a live Hands job supervisor.");xr.delete(f.key);for(let w of f.terminals.values())w.abort();f.key=g,xr.set(g,f)}function nt(e){let l="operationId"in e?Vr.get(e.operationId):xr.get($r(e.root,e.runId)),f=l&&l.binding.root===e.root?l.binding:void 0;if(!f?.environment||f.expiresAtMs<=Date.now())throw new r("environment_unavailable","No live Hands supervisor owns this environment.");return f.environment.install(e.payload)}async function Hi(e){let l=xr.get($r(e.root,e.runId));if(!l?.previews||!e.owner)throw new r("preview_unavailable","No authenticated Hands supervisor owns this preview.");return l.previews.open(e.payload,e.owner,e.signal)}async function zi(e){let l=xr.get($r(e.root,e.runId));if(!l?.previews||!e.owner||e.signal.aborted)throw new r("preview_unavailable","No authenticated Hands supervisor owns this preview.");return l.previews.close(e.payload,e.owner)}async function qi(e){let l=$r(e.root,e.runId),f=xr.get(l),g=f?.binding,w=g?.runId,S=g?.previewAuthority,I=g?.environment,W=e.owner&&{...e.owner},x=e.authority&&{...e.authority},M=()=>{throw new r("pty_binding_unavailable","No current authenticated Hands scope owns this terminal.")};if(!f||!g||!S||!I||!W||!x||!g.workspace)return M();let G=Object.freeze({...g.workspace}),F=gt(g),T=I.current(),re=()=>{if(xr.get(l)!==f||W.organization_id!==S.owner.organization_id||W.user_id!==S.owner.user_id||W.device_id!==S.owner.device_id||e.deviceId!==S.owner.device_id||e.rootId!==S.rootId||O(e.workspace)!==O(G))M();let z=gt(g),fe=I.current();if(z.generation!==F.generation||z.fenceId!==F.fenceId||fe.run_id!==w||fe.device_id!==e.deviceId||fe.root_id!==e.rootId||fe.snapshot_id!==T.snapshot_id||fe.revision!==T.revision||fe.binding.target_generation!==F.generation||fe.binding.target_fence_id!==F.fenceId||x.device_id!==e.deviceId||x.binding!==fe.binding.kind||x.target_revision!==fe.binding.target_revision||x.root_grant_revision!==fe.binding.root_grant_revision||x.target_generation!==F.generation||x.target_fence_id!==F.fenceId)M()};if(re(),new URL(e.session.relayUrl).origin!==S.relayOrigin||f.terminals.has(e.session.jobId)||f.terminals.size>=4)return M();let J=new AbortController;f.terminals.set(e.session.jobId,J);try{return await Ho({session:{...e.session,leaseExpiresAtMs:Math.min(e.session.leaseExpiresAtMs,F.expiresAtMs,Date.parse(T.expires_at))},signal:AbortSignal.any([e.signal,J.signal]),emit:e.emit,binding:{assertCurrent:re,environment:{revision:T.revision,snapshotId:T.snapshot_id},scope:{runId:e.runId,deviceId:e.deviceId,rootId:e.rootId,workspace:G,binding:T.binding.kind,targetRevision:T.binding.target_revision,rootGrantRevision:T.binding.root_grant_revision,generation:F.generation,fenceId:F.fenceId,executorLaunchId:F.executorLaunchId},request:(z,fe)=>dr(F,Fr(JSON.stringify({...z,type:"job",version:2,generation:F.generation,id:An()})),fe)}})}finally{if(f.terminals.get(e.session.jobId)===J)f.terminals.delete(e.session.jobId)}}async function Wi(e){if(ce(e.payload.jobId))throw new r("pty_binding_required","PTY jobs require the bound terminal capability.");let l=xr.get($r(e.root,e.runId))?.binding;if(!l||l.expiresAtMs<=Date.now())throw new r("hands_jobs_unavailable","No live Hands supervisor owns this Session and root.");return Go(l,e.payload,e.signal)}var Mi=1e4,Fi=20,$i=ve/2,Yi=Ge/2,Xi=(e)=>e.output.reduce((l,f)=>l+f.text.length,0);async function Go(e,l,f){if(Object.keys(l).some((M)=>!["jobId","action","input","waitForExitMs"].includes(M)))throw new r("invalid_payload","Unexpected job control field.");let{waitForExitMs:g,...w}=l;if(g!==void 0&&(w.action!=="start"||typeof w.input!=="object"||w.input===null||!("script"in w.input)||typeof g!=="number"||!Number.isSafeInteger(g)||g<1||g>Mi))throw new r("invalid_payload","Only a script start may wait for its job, within its bound.");let S=(M)=>{let G=gt(e);return dr(G,Fr(JSON.stringify({...M,type:"job",version:2,generation:G.generation,id:An()})),f)},I=await S(w);if(g===void 0)return I;let W=Date.now()+g,x=I;while(x.ok&&["starting","running"].includes(x.job.state)&&x.job.output.length<$i&&Xi(x.job)<Yi&&!f.aborted&&Date.now()<W){if(await new Promise((M)=>setTimeout(M,Math.min(Fi,W-Date.now()))),f.aborted)break;try{let M=await S({jobId:w.jobId,action:"inspect",input:{after:0}});if(!M.ok)break;x=M}catch{break}}return x}function gt(e){if(e.expiresAtMs<=Date.now())throw new r("hands_jobs_unavailable","Hands authority expired.");let l=e.readIdentity?e.readIdentity():e;if(!l||!U(l.generation)||!N(l.fenceId)||l.generation<e.generation||l.generation===e.generation&&l.fenceId!==e.fenceId)throw new r("hands_jobs_unavailable","The live Hands fencing identity could not be verified.");return e.generation=l.generation,e.fenceId=l.fenceId,{...e}}function dr(e,l,f){if(f.aborted)return Promise.reject(new r("cancelled","Job control was cancelled."));return new Promise((g,w)=>{let S=ki(e.socketPath),I="",W=!1,x,M=(F,T)=>{if(W)return;if(W=!0,clearTimeout(x),f.removeEventListener("abort",G),S.destroy(),F)w(F);else g(T)},G=()=>M(new r("cancelled","Job control waiter cancelled; inspect before retrying mutations."));f.addEventListener("abort",G,{once:!0}),S.setEncoding("utf8"),x=setTimeout(()=>M(new r("hands_job_result_unknown","Job control timed out; inspect before retrying mutations.")),Math.min(1e4,Math.max(1,e.expiresAtMs-Date.now()))),S.on("error",()=>M(new r("hands_job_result_unknown","Hands job control connection failed."))),S.once("connect",()=>S.write(JSON.stringify({version:1,scopeId:e.scopeId,fenceId:e.fenceId,executorLaunchId:e.executorLaunchId,request:l})+`
3
3
  `)),S.on("data",(F)=>{if(I+=F,Buffer.byteLength(I)>Ke)M(new r("hands_job_result_unknown","Hands job result exceeded its bound."))}),S.once("end",()=>{if(Date.now()>=e.expiresAtMs){M(new r("hands_job_result_unknown","Hands authority expired before the result was acknowledged."));return}try{let F=jr(I.trim());if(F.id!==l.id||F.generation!==e.generation||F.ok&&F.job.jobId!==l.jobId)throw Error("identity");M(void 0,F)}catch{M(new r("hands_job_result_unknown","Hands job response identity or shape was invalid."))}}),S.once("close",()=>{if(!W)M(new r("hands_job_result_unknown","Hands job control closed before an acknowledged result."))})})}function jo(e){let l=Lt(e.root),f=e.authority,g=Date.parse(e.leaseUntil),w=()=>{if(e.signal.throwIfAborted(),!Number.isFinite(g)||g<=Date.now())throw Error("local_device_gh_lease_expired")};if(w(),f.readOnly&&f.generation===null)return{root:l,readOnly:!0,signal:e.signal,deadlineMs:g,assertCurrent:w};let S=$r(l,e.runId),I=xr.get(S),W=I?.binding;if(!W?.environment||!W.workspace||W.localGithubConfinement!==!0)throw Error("local_device_gh_confinement_unavailable");let x=W.environment.current(),M=()=>{w();let F=W.environment.current(),T=gt(W);if(xr.get(S)!==I||F.github_auth!=="local_gh"||F.run_id!==W.runId||f.runId!==e.runId||F.device_id!==f.deviceId||F.root_id!==f.rootId||String(F.binding.root_grant_revision)!==f.rootRevision||F.binding.target_generation!==f.generation||F.binding.target_fence_id!==f.fenceId||T.generation!==f.generation||T.fenceId!==f.fenceId||F.snapshot_id!==x.snapshot_id||F.revision!==x.revision)throw Error("local_device_gh_authority_changed")};M();let G=ie(l,W.workspace);return{root:G.boundary,signal:e.signal,deadlineMs:g,privateDirectory:Si(W.environment.path),repoPath:G.path,readOnly:f.readOnly,forbiddenSecretValues:Object.values(x.variables),secretNames:(F)=>Object.entries(x.variables).filter(([,T])=>T.trim()===F.trim()).map(([T])=>`variable ${T}`),assertCurrent:M}}async function Vi(e,l){let f=Pe.parse(e.request),g=oe.parse(e.authority);if(g.contributorRefresh&&f.kind==="read"&&g.readOnly)return l(jo(e));let w=Boolean(g.contributorRefresh);if(w&&(g.merge||f.kind!=="pr_mutation"||f.mutation.action!=="edit"||typeof f.mutation.body!=="string"||f.mutation.title!==void 0||f.mutation.base!==void 0||g.readOnly||g.runId!==e.runId||g.repoFullName!==f.repoFullName))throw Error("local_device_gh_contributor_refresh_authority_invalid");if(f.kind!=="pr_merge"&&!w){if(g.merge)throw Error("local_device_gh_merge_authority_invalid");return l(jo(e))}if(!w&&(!g.merge||g.readOnly||g.runId!==e.runId||g.repoFullName!==f.repoFullName||g.merge.source==="agent"&&(g.generation===null||g.fenceId===null)))throw Error("local_device_gh_merge_authority_invalid");let S=Lt(e.root),I=Bt(S),W=Date.parse(e.leaseUntil);if(!Number.isFinite(W)||W<=Date.now())throw Error("local_device_gh_lease_expired");let x=Lt(Oi());if(x===S||x.startsWith(S+Ei))throw Error("local_device_gh_private_scope_unavailable");let M=Uo(at(x,"reason-gh-merge-"));try{ht(M);let G=()=>{if(e.signal.throwIfAborted(),Date.now()>=W)throw Error("local_device_gh_lease_expired");let F=Bt(e.root);if(F.isSymbolicLink()||F.dev!==I.dev||F.ino!==I.ino||Lt(e.root)!==S)throw Error("local_device_gh_authority_changed");ht(M)};return G(),await l({root:S,readOnly:!1,privateDirectory:M,forbiddenSecretValues:[],signal:e.signal,deadlineMs:W,assertCurrent:G})}finally{In(M,{recursive:!0,force:!0})}}var qo=43200000;function bt(e){return Number.isSafeInteger(e)&&Math.abs(e)<=8640000000000000?e:null}function Jo(e){return e!==null&&typeof e==="object"&&!Array.isArray(e)}function Vo(e,l){return Object.keys(e).length===l.length&&l.every((f)=>Object.hasOwn(e,f))}function Gi(e){if(!Jo(e)||!Vo(e,["version","outcome","clock_source","validation_now_ms","expiry_ms","remaining_ms","maximum_lifetime_ms","cli_artifact"])||e.version!==1||e.maximum_lifetime_ms!==43200000||typeof e.outcome!=="string"||!["accepted","parse","noncanonical","expired","over_cap"].includes(e.outcome)||typeof e.clock_source!=="string"||!["date_now","injected"].includes(e.clock_source))return null;for(let g of["validation_now_ms","expiry_ms"]){let w=e[g];if(w!==null&&(typeof w!=="number"||bt(w)===null))return null}if(e.remaining_ms!==null&&(typeof e.remaining_ms!=="number"||!Number.isSafeInteger(e.remaining_ms)))return null;let l=typeof e.expiry_ms==="number"&&typeof e.validation_now_ms==="number"?e.expiry_ms-e.validation_now_ms:null;if(e.remaining_ms!==(l!==null&&Number.isSafeInteger(l)?l:null))return null;if(e.outcome==="parse"&&e.expiry_ms!==null)return null;if(e.outcome!=="parse"&&e.expiry_ms===null)return null;if(e.outcome==="expired"&&!(typeof l==="number"&&l<=0))return null;if(e.outcome==="over_cap"&&!(typeof l==="number"&&l>43200000))return null;if(e.outcome==="accepted"&&!(typeof l==="number"&&l>0&&l<=43200000))return null;let f=e.cli_artifact;if(!Jo(f)||!Vo(f,["kind","status","sha256","observed_at_ms"])||f.observed_at_ms!==null&&(typeof f.observed_at_ms!=="number"||bt(f.observed_at_ms)===null))return null;if(f.kind==="entrypoint_file"){if(f.status!=="observed"||typeof f.sha256!=="string"||!/^[a-f0-9]{64}$/.test(f.sha256)||f.observed_at_ms===null)return null}else if(f.kind!=="unavailable"||f.sha256!==null||typeof f.status!=="string"||!["unsupported_entrypoint","read_failed","file_changed","size_limit","time_limit"].includes(f.status))return null;return e}var Tn=c({kind:s(["workspace_source","mcp_control"]),target_revision:o().int().nonnegative(),root_grant_revision:o().int().positive()}),Yo=new RegExp(ot.tokenPattern),Qi=c({token_url:St().max(2048),request_token:t().min(1).max(8192).regex(Yo),aws_credentials_url:St().max(2048).nullable()});function Xo(e,l){let f=(g,w)=>{try{let S=new URL(g);return S.origin===new URL(l).origin&&S.pathname===w&&!S.username&&!S.password&&!S.search&&!S.hash}catch{return!1}};if(!Yo.test(e.request_token)||!f(e.token_url,ot.tokenPath)||e.aws_credentials_url!==null&&!f(e.aws_credentials_url,ot.awsPath))return null;return{REASON_OIDC_TOKEN_URL:e.token_url,REASON_OIDC_REQUEST_TOKEN:e.request_token,...e.aws_credentials_url!==null?{AWS_CONTAINER_CREDENTIALS_FULL_URI:e.aws_credentials_url,AWS_CONTAINER_AUTHORIZATION_TOKEN:e.request_token}:{}}}function Zo(e){return new TextEncoder().encode(e).byteLength}function ea(e){return Zo(JSON.stringify(e)+`
4
4
  `)}var pr=c({version:n(1),snapshot_id:k(),revision:o().int().positive(),run_id:t().min(1).max(160),device_id:k(),root_id:k(),binding:Tn.extend({target_generation:o().int().positive(),target_fence_id:k()}),expires_at:y.datetime({offset:!0}),variables:ee(t().max(128).regex(Rt),t().refine((e)=>!e.includes("\x00")&&Zo(e)<=V.valueBytes)).refine((e)=>Object.keys(e).length<=V.variables),github_auth:n("local_gh").optional(),git:c({base_url:St().max(2048),token:t().min(1).max(4096).regex(/^[A-Za-z0-9._~-]+$/),expires_at:y.datetime({offset:!0})}).nullable(),cloud_access:Qi.optional()}).refine((e)=>e.github_auth!=="local_gh"||e.git===null,"conflicting git authority").refine((e)=>ea(e)<=V.snapshotBytes,"snapshot too large");import{spawn as ra}from"child_process";import{basename as ta,isAbsolute as Eu}from"path";var na=0,Qo=120000,es=15000,oa=65536;function Dn(e=process.execPath,l=process.argv[1]){let f=ta(e),g=(f.startsWith("bun")||f.startsWith("node"))&&typeof l==="string"&&l.length>0;return{command:e,prefix:g?[l]:[]}}function Ki(e={}){let{command:l,prefix:f}=Dn(e.executablePath,e.sourceEntrypoint),g=e.spawnProcess??ra,w=e.now??Date.now,S=null,I=0,W=!1,x=(G)=>{try{G.kill("SIGKILL")}catch{}},M=()=>{if(W)return;if(S&&w()-I<Qo-es)return;if(S){let F=S;S=null,x(F)}let G;try{G=g(l,[...f,"__device","__hands-worker","--handoff-fd",String(na)],{cwd:"/",env:{PATH:process.env.PATH??"/usr/local/bin:/usr/bin:/bin"},shell:!1,stdio:["pipe","ignore","pipe"]})}catch{return}S=G,I=w(),G.on("error",()=>{if(S===G)S=null}),G.once("exit",(F,T)=>{if(S!==G)return;S=null,e.log?.("hands.worker_prespawn_exited",{exit_code:F,exit_signal:T})}),e.log?.("hands.worker_prespawned",{pid:G.pid??null})};return{arm:M,take(G){let F=S;if(!F||W)return null;let T=G.args.at(-1),re=G.options.env,J=G.options.cwd,z=[...f,"__device","__hands-worker","--config"];if(G.command!==l||G.args.length!==z.length+1||z.some((Oe,$e)=>G.args[$e]!==Oe)||typeof T!=="string"||!re||typeof J!=="string"||G.options.shell||JSON.stringify(G.options.stdio)!==JSON.stringify(["ignore","ignore","pipe"]))return null;S=null;let fe=F.stdin,ke={configPath:T,cwd:J,env:Object.fromEntries(Object.entries(re).filter((Oe)=>typeof Oe[1]==="string"))},be=JSON.stringify(ke);if(F.exitCode!==null||F.signalCode!==null||!fe||fe.destroyed||w()-I>=Qo-es||Buffer.byteLength(be,"utf8")>oa)return x(F),null;return fe.on("error",()=>{return}),fe.end(be),F.once("exit",()=>{M()}),e.log?.("hands.worker_prespawn_taken",{pid:F.pid??null}),F},adopt(G){G.once("exit",()=>{M()})},close(){if(W=!0,S)x(S);S=null}}}import{accessSync as la,constants as ua,statSync as fa}from"fs";import{homedir as pa,tmpdir as _a,userInfo as ma}from"os";import{delimiter as ha,win32 as ga}from"path";var sa=new Set(["ALL_PROXY","BUN_BE_BUN","BUN_OPTIONS","CURL_CA_BUNDLE","GIT_SSL_CAINFO","GRPC_DEFAULT_SSL_ROOTS_FILE_PATH","HTTPS_PROXY","HTTP_PROXY","NO_PROXY","NODE_EXTRA_CA_CERTS","NODE_OPTIONS","NODE_TLS_REJECT_UNAUTHORIZED","REQUESTS_CA_BUNDLE","SSLKEYLOGFILE","SSL_CERT_DIR","SSL_CERT_FILE","all_proxy","http_proxy","https_proxy","no_proxy"]);var ia=["BUN_CONFIG_","BUN_INSPECT","DYLD_","NODE_DEBUG"],aa=new Set(["BUN_INSTALL"]);var ca=/^--(?:max-old-space-size|max-semi-space-size|stack-size)=\d{1,9}$/;function da(e){return(e??"").split(/\s+/).filter(Boolean).every((l)=>ca.test(l.replaceAll("_","-")))}function rs(e){return Object.keys(e).filter((l)=>sa.has(l)&&!(l==="NODE_OPTIONS"&&da(e[l]))||ia.some((f)=>l.startsWith(f))||l.startsWith("BUN_")&&!aa.has(l)).sort()}var ba=new Set(["HOME","PATH","PWD","OLDPWD","SHLVL","_","TMPDIR","TMP","TEMP","SHELL","BASH_ENV","ENV","ZDOTDIR","PROMPT_COMMAND","IFS","CDPATH","GLOBIGNORE","SHELLOPTS","BASHOPTS","NODE_PATH"]),wa=/^(?:ARA_|REASON_|PI_|GIT_|GH_|GITHUB_|LD_|DYLD_|BUN_|BASH_FUNC_|SSH_)/,ya=/TOKEN|SECRET|PASSW|PASSPHRASE|CREDENTIAL|API_?KEY|ACCESS_?KEY|PRIVATE_?KEY|AUTH/i,va=/^[A-Za-z_][A-Za-z0-9_]*$/;function hr(e=process.env){let l=(w)=>{if(!(process.platform==="win32"?ga.isAbsolute(w):w.startsWith("/"))||/[\0\r\n]/.test(w)||w.length>32768)throw Error("invalid_host_execution_environment");return w};if(e.PATH!==void 0&&(/[\0\r\n]/.test(e.PATH)||e.PATH.length>32768))throw Error("invalid_host_execution_environment");let f=new Set(rs(e)),g=Object.fromEntries(Object.entries(e).filter((w)=>{let[S,I]=w;return typeof I==="string"&&I.length<=32768&&!I.includes("\x00")&&S.length<=128&&va.test(S)&&!f.has(S)&&!ba.has(S)&&!wa.test(S)&&!ya.test(S)}).sort(([w],[S])=>w.localeCompare(S)).slice(0,512));return{home:l(e.HOME||(process.platform==="win32"?e.USERPROFILE:void 0)||pa()),path:((w)=>process.platform==="win32"?wn(w):w)(Er(e.PATH??"").join(ha)||Sr),temporaryDirectory:l(e.TMPDIR||e.TMP||e.TEMP||_a()),variables:g}}function fr(e=process.env,l=()=>ma().shell){if(process.platform==="win32")return se();let f=(w)=>{if(!w||!/^\/[A-Za-z0-9._/-]*\/(?:bash|zsh)$/.test(w))return!1;try{return la(w,ua.X_OK),fa(w).isFile()}catch{return!1}};if(f(e.SHELL))return e.SHELL;let g;try{g=l()}catch{g=void 0}return f(g)?g:"/bin/zsh"}import{readdir as ka}from"fs/promises";var Sa=15000;function dn(e){let l=e instanceof Error&&"code"in e?e.code:null;return l==="EPERM"||l==="EACCES"}function pn(e){return new r("folder_access_denied",`macOS blocked Reason from opening ${e}. Allow Reason in System Settings \u203A Privacy & Security \u203A Files and Folders `+"(or Full Disk Access), then try again.")}async function ts(e,{timeoutMs:l=Sa,open:f=(g)=>ka(g)}={}){let g,w=new Promise((S)=>{g=setTimeout(()=>S("pending"),l)});try{if(await Promise.race([f(e).then(()=>"open"),w])==="pending")throw new r("folder_access_pending",`macOS is asking whether Reason may open ${e}. Answer the prompt on this Mac, then try again.`)}catch(S){if(dn(S))throw pn(e);if(S instanceof r)throw S}finally{clearTimeout(g)}}import{chmodSync as rc,closeSync as tc,constants as $n,fstatSync as nc,lstatSync as vs,openSync as oc,readSync as sc,realpathSync as Kn,unlinkSync as ic}from"fs";import{lookup as ac}from"dns/promises";import{createRequire as cc}from"module";import{request as dc}from"http";import{request as lc}from"https";import dt from"net";import{platform as Os}from"os";import{basename as uc,extname as fc,isAbsolute as ks,relative as Gn,resolve as vt,sep as Jn}from"path";var ns=String.raw`
5
5
  async (roots) => {
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- var Yt={name:"github-native-engineer-device-worker-production",version:"0.2.434",private:!0,type:"module",engines:{node:">=22",bun:">=1.3.0"},workspaces:["../../packages/runtime-distribution"],dependencies:{"@anthropic-ai/sandbox-runtime":"^0.0.73","@earendil-works/pi-tui":"1.0.0","@modelcontextprotocol/sdk":"^1.29.0","@reason/runtime-distribution":"workspace:*","playwright-core":"1.60.0",zod:"^4.4.3"},overrides:{"@hono/node-server":"^1.19.15","@earendil-works/pi-agent-core":"1.0.0","@earendil-works/pi-ai":"1.0.0","@earendil-works/pi-coding-agent":"1.0.0","@earendil-works/chord":"1.0.0","@earendil-works/pi-codemode":"1.0.0","@earendil-works/pi-mcp":"1.0.0","@earendil-works/pi-telemetry":"1.0.0","@earendil-works/pi-tui":"1.0.0","brace-expansion":"2.1.7",axios:"^1.20.0","basic-ftp":"^6.2.1","@grpc/grpc-js":"^1.14.5",browserslist:"^4.28.8","engine.io":"^6.6.7","fast-uri":"^3.1.8",hono:"^4.13.7","ip-address":"^10.7.1",nanoid:"^3.3.18",dompurify:"^3.4.17",postcss:"^8.5.23",qs:"^6.16.0","shell-quote":"^1.11.0","socket.io-parser":"^4.2.7",tmp:"^0.2.7",toml:"^4.2.0",undici:"^8.10.2",ws:"^8.21.0","js-yaml":"^4.3.2","@modelcontextprotocol/sdk":"^1.31.0","proxy-addr":"^2.0.8","source-map-js":"^1.2.2"}};
2
+ var Yt={name:"github-native-engineer-device-worker-production",version:"0.2.437",private:!0,type:"module",engines:{node:">=22",bun:">=1.3.0"},workspaces:["../../packages/runtime-distribution"],dependencies:{"@anthropic-ai/sandbox-runtime":"^0.0.73","@earendil-works/pi-tui":"1.0.0","@modelcontextprotocol/sdk":"^1.29.0","@reason/runtime-distribution":"workspace:*","playwright-core":"1.60.0",zod:"^4.4.3"},overrides:{"@hono/node-server":"^1.19.15","@earendil-works/pi-agent-core":"1.0.0","@earendil-works/pi-ai":"1.0.0","@earendil-works/pi-coding-agent":"1.0.0","@earendil-works/chord":"1.0.0","@earendil-works/pi-codemode":"1.0.0","@earendil-works/pi-mcp":"1.0.0","@earendil-works/pi-telemetry":"1.0.0","@earendil-works/pi-tui":"1.0.0","brace-expansion":"2.1.7",axios:"^1.20.0","basic-ftp":"^6.2.1","@grpc/grpc-js":"^1.14.5",browserslist:"^4.28.8","engine.io":"^6.6.7","fast-uri":"^3.1.8",hono:"^4.13.7","ip-address":"^10.7.1",nanoid:"^3.3.18",dompurify:"^3.4.17",postcss:"^8.5.23",qs:"^6.16.0","shell-quote":"^1.11.0","socket.io-parser":"^4.2.7",tmp:"^0.2.7",toml:"^4.2.0",undici:"^8.10.2",ws:"^8.21.0","js-yaml":"^4.3.2","@modelcontextprotocol/sdk":"^1.31.0","proxy-addr":"^2.0.8","source-map-js":"^1.2.2"}};
3
3
  export{Yt};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Yt}from"./vm-hands-entry-lite-q25x232x.js";var gt=Yt.version;export{gt};