@reason-machines/cli-linux-x64 0.2.559 → 0.2.561

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 (154) hide show
  1. package/bin/reason +2 -2
  2. package/bin/vm-hands/agent-network-kk36zca7.js +2 -0
  3. package/bin/vm-hands/api-credentials-mtfdk175.js +2 -0
  4. package/bin/vm-hands/api-w6w7vfp3.js +2 -0
  5. package/bin/vm-hands/ask-relay-xx0rzpch.js +5 -0
  6. package/bin/vm-hands/connect-cli-dmwph620.js +2 -0
  7. package/bin/vm-hands/credentials-s7ps7y6s.js +2 -0
  8. package/bin/vm-hands/custom-endpoint-device-3xnrp33e.js +2 -0
  9. package/bin/vm-hands/desktop-account-eg8thn79.js +2 -0
  10. package/bin/vm-hands/device-workspace-h5rsecq8.js +2 -0
  11. package/bin/vm-hands/{fsevents-fev1pxw2.js → fsevents-vxv56sp5.js} +1 -1
  12. package/bin/vm-hands/hands-worker-source-vk664w8p.js +2 -0
  13. package/bin/vm-hands/{index-j6wffzfd.js → index-03p9c17x.js} +106 -106
  14. package/bin/vm-hands/install-receipt-j04hdw1k.js +2 -0
  15. package/bin/vm-hands/local-automation-vvt9d9xb.js +2 -0
  16. package/bin/vm-hands/local-capabilities-pwv76ns5.js +2 -0
  17. package/bin/vm-hands/local-desktop-users-sq4trh07.js +2 -0
  18. package/bin/vm-hands/local-display-mac-yxcxvg2z.js +2 -0
  19. package/bin/vm-hands/local-display-session-axh9mfdk.js +2 -0
  20. package/bin/vm-hands/local-display-video-pxhztqk7.js +2 -0
  21. package/bin/vm-hands/local-managed-process-4mgqn7tg.js +2 -0
  22. package/bin/vm-hands/local-pty-session-edd8ttf9.js +2 -0
  23. package/bin/vm-hands/managed-runtime-pcagtyfz.js +2 -0
  24. package/bin/vm-hands/network-auto-update-wkzb91qz.js +3 -0
  25. package/bin/vm-hands/network-contract-8mxtma3w.js +2 -0
  26. package/bin/vm-hands/network-sign-in-61gmpmaa.js +3 -0
  27. package/bin/vm-hands/package-vwvzjtn0.js +2 -0
  28. package/bin/vm-hands/permissions-348prrcx.js +2 -0
  29. package/bin/vm-hands/reason-hands-protocol-1nkpw1v3.js +2 -0
  30. package/bin/vm-hands/serve-service-3dkyznay.js +2 -0
  31. package/bin/vm-hands/status-khqk4cjw.js +96 -0
  32. package/bin/vm-hands/version-c1hen0wn.js +2 -0
  33. package/bin/vm-hands/vm-hands-entry-lite-0wb1n769.js +9 -0
  34. package/bin/vm-hands/{vm-hands-entry-lite-506b6pcz.js → vm-hands-entry-lite-2dak7e1h.js} +5 -5
  35. package/bin/vm-hands/{vm-hands-entry-lite-a3p6xz53.js → vm-hands-entry-lite-2rgf8866.js} +2 -2
  36. package/bin/vm-hands/vm-hands-entry-lite-52qz0n30.js +7 -0
  37. package/bin/vm-hands/vm-hands-entry-lite-57ajjwmh.js +2 -0
  38. package/bin/vm-hands/vm-hands-entry-lite-5y4phfv1.js +4 -0
  39. package/bin/vm-hands/vm-hands-entry-lite-6jxshhps.js +9 -0
  40. package/bin/vm-hands/vm-hands-entry-lite-71ebge0c.js +42 -0
  41. package/bin/vm-hands/vm-hands-entry-lite-7pfhwxn5.js +2 -0
  42. package/bin/vm-hands/vm-hands-entry-lite-84mc1f7h.js +3 -0
  43. package/bin/vm-hands/vm-hands-entry-lite-8xv6c0rm.js +3 -0
  44. package/bin/vm-hands/vm-hands-entry-lite-9g52kxyj.js +3 -0
  45. package/bin/vm-hands/{vm-hands-entry-lite-8rmbdm6c.js → vm-hands-entry-lite-9yfmkd1f.js} +2 -2
  46. package/bin/vm-hands/vm-hands-entry-lite-a6ss0ges.js +3 -0
  47. package/bin/vm-hands/vm-hands-entry-lite-a7bf7xr7.js +5 -0
  48. package/bin/vm-hands/vm-hands-entry-lite-ab1pq3xg.js +3 -0
  49. package/bin/vm-hands/vm-hands-entry-lite-bj3w2ven.js +3 -0
  50. package/bin/vm-hands/{vm-hands-entry-lite-q1yvw4xz.js → vm-hands-entry-lite-e3fn8ys2.js} +2 -2
  51. package/bin/vm-hands/vm-hands-entry-lite-gxpw14jv.js +11 -0
  52. package/bin/vm-hands/vm-hands-entry-lite-h7nk2848.js +539 -0
  53. package/bin/vm-hands/vm-hands-entry-lite-hjjbjpd7.js +4 -0
  54. package/bin/vm-hands/vm-hands-entry-lite-hn9pq7zj.js +127 -0
  55. package/bin/vm-hands/vm-hands-entry-lite-hs6sdn60.js +3 -0
  56. package/bin/vm-hands/vm-hands-entry-lite-ht6hzkgj.js +3 -0
  57. package/bin/vm-hands/vm-hands-entry-lite-hxfxs7r9.js +3 -0
  58. package/bin/vm-hands/{vm-hands-entry-lite-2v4zh9ze.js → vm-hands-entry-lite-j10cw3d9.js} +9 -9
  59. package/bin/vm-hands/vm-hands-entry-lite-jgk5z8zc.js +10 -0
  60. package/bin/vm-hands/vm-hands-entry-lite-jpvmkce5.js +2 -0
  61. package/bin/vm-hands/vm-hands-entry-lite-k5ytpgzz.js +65 -0
  62. package/bin/vm-hands/{vm-hands-entry-lite-s85p7tqp.js → vm-hands-entry-lite-krpqqx12.js} +2 -2
  63. package/bin/vm-hands/vm-hands-entry-lite-m1we91g4.js +105 -0
  64. package/bin/vm-hands/{vm-hands-entry-lite-q2h781jg.js → vm-hands-entry-lite-ms99mzp0.js} +3 -3
  65. package/bin/vm-hands/vm-hands-entry-lite-nn6zcvmp.js +3 -0
  66. package/bin/vm-hands/{vm-hands-entry-lite-46pwqvpf.js → vm-hands-entry-lite-ptycjmkc.js} +2 -2
  67. package/bin/vm-hands/vm-hands-entry-lite-pxtycfdv.js +5 -0
  68. package/bin/vm-hands/vm-hands-entry-lite-q9djb28r.js +4 -0
  69. package/bin/vm-hands/vm-hands-entry-lite-q9s1e2y1.js +3 -0
  70. package/bin/vm-hands/{vm-hands-entry-lite-pzj5s203.js → vm-hands-entry-lite-qf990rxw.js} +2 -2
  71. package/bin/vm-hands/vm-hands-entry-lite-sy7dcccg.js +2 -0
  72. package/bin/vm-hands/vm-hands-entry-lite-tcmye5ny.js +3 -0
  73. package/bin/vm-hands/{vm-hands-entry-lite-1yv5qqew.js → vm-hands-entry-lite-v4hr9x9h.js} +45 -45
  74. package/bin/vm-hands/vm-hands-entry-lite-vdv4nm5f.js +3 -0
  75. package/bin/vm-hands/vm-hands-entry-lite-vkhacd00.js +452 -0
  76. package/bin/vm-hands/vm-hands-entry-lite-wcgm41jq.js +52 -0
  77. package/bin/vm-hands/vm-hands-entry-lite-weqam12f.js +6 -0
  78. package/bin/vm-hands/{vm-hands-entry-lite-jrce7v4r.js → vm-hands-entry-lite-xvccy3z4.js} +2 -2
  79. package/bin/vm-hands/vm-hands-entry-lite-y3nz20wb.js +345 -0
  80. package/bin/vm-hands/vm-hands-entry-lite-yvws5zpx.js +4 -0
  81. package/bin/vm-hands/{vm-hands-entry-lite-qd46yhvz.js → vm-hands-entry-lite-z0ht62s4.js} +3 -3
  82. package/bin/vm-hands/vm-hands-entry-lite-z213y4pj.js +150 -0
  83. package/bin/vm-hands/vm-hands-entry-lite-zawytz09.js +3 -0
  84. package/bin/vm-hands/{vm-hands-entry-lite-h2rq71rj.js → vm-hands-entry-lite-zh6ncdjn.js} +2 -2
  85. package/bin/vm-hands/vm-hands-entry-lite.js +2 -2
  86. package/bin/vm-hands/{vm-hands-executor-p2jvbq5w.js → vm-hands-executor-csdtg7kj.js} +8 -8
  87. package/bin/vm-hands/vm-hands-op-runner-z7tsd84c.js +2 -0
  88. package/bin/vm-hands/{vm-hands-runtime-889hfy4p.js → vm-hands-runtime-1qxf96z7.js} +3 -3
  89. package/bin/vm-hands/worker-preview-readiness-06tygyjs.js +2 -0
  90. package/bin/vm-hands/worker-sandbox-e1cpkzfz.js +2 -0
  91. package/package.json +1 -1
  92. package/bin/vm-hands/api-credentials-x30e4ezb.js +0 -2
  93. package/bin/vm-hands/api-y6v8wdsq.js +0 -2
  94. package/bin/vm-hands/connect-cli-32wrv6sw.js +0 -2
  95. package/bin/vm-hands/credentials-sbza33ac.js +0 -2
  96. package/bin/vm-hands/custom-endpoint-device-mydksbg8.js +0 -2
  97. package/bin/vm-hands/desktop-account-t0afsge2.js +0 -2
  98. package/bin/vm-hands/device-workspace-b534qy2c.js +0 -2
  99. package/bin/vm-hands/hands-worker-source-qj7s9dk5.js +0 -2
  100. package/bin/vm-hands/install-receipt-zv1bjbgh.js +0 -2
  101. package/bin/vm-hands/local-automation-pwwqrnt7.js +0 -2
  102. package/bin/vm-hands/local-capabilities-scnpxe96.js +0 -2
  103. package/bin/vm-hands/local-desktop-users-5scb9930.js +0 -2
  104. package/bin/vm-hands/local-display-mac-pft73te9.js +0 -2
  105. package/bin/vm-hands/local-display-session-9362hqsn.js +0 -2
  106. package/bin/vm-hands/local-display-video-dndhr5v1.js +0 -2
  107. package/bin/vm-hands/local-managed-process-zm639p1g.js +0 -2
  108. package/bin/vm-hands/local-pty-session-njd0tprg.js +0 -2
  109. package/bin/vm-hands/managed-runtime-cqkw2mtn.js +0 -2
  110. package/bin/vm-hands/network-contract-kx0hz3wt.js +0 -2
  111. package/bin/vm-hands/package-way7qesn.js +0 -2
  112. package/bin/vm-hands/permissions-jxycbgay.js +0 -2
  113. package/bin/vm-hands/reason-hands-protocol-g54rtrhd.js +0 -2
  114. package/bin/vm-hands/serve-service-byvya1ym.js +0 -2
  115. package/bin/vm-hands/status-f1k1qmck.js +0 -10
  116. package/bin/vm-hands/version-czwf27v3.js +0 -2
  117. package/bin/vm-hands/vm-hands-entry-lite-04x5xjt6.js +0 -5
  118. package/bin/vm-hands/vm-hands-entry-lite-07apxfh8.js +0 -42
  119. package/bin/vm-hands/vm-hands-entry-lite-0wsr8edk.js +0 -3
  120. package/bin/vm-hands/vm-hands-entry-lite-1tgxze8w.js +0 -3
  121. package/bin/vm-hands/vm-hands-entry-lite-2twtpxmp.js +0 -9
  122. package/bin/vm-hands/vm-hands-entry-lite-3gbf905c.js +0 -3
  123. package/bin/vm-hands/vm-hands-entry-lite-48rphbjm.js +0 -3
  124. package/bin/vm-hands/vm-hands-entry-lite-4anjdcth.js +0 -3
  125. package/bin/vm-hands/vm-hands-entry-lite-73f4cgkf.js +0 -3
  126. package/bin/vm-hands/vm-hands-entry-lite-8dfw96ym.js +0 -3
  127. package/bin/vm-hands/vm-hands-entry-lite-ak0hd94p.js +0 -7
  128. package/bin/vm-hands/vm-hands-entry-lite-bpamn7ny.js +0 -9
  129. package/bin/vm-hands/vm-hands-entry-lite-dgfx0rbn.js +0 -5
  130. package/bin/vm-hands/vm-hands-entry-lite-ecz6fzds.js +0 -126
  131. package/bin/vm-hands/vm-hands-entry-lite-frd7e74y.js +0 -5
  132. package/bin/vm-hands/vm-hands-entry-lite-fxzadxz4.js +0 -2
  133. package/bin/vm-hands/vm-hands-entry-lite-gje7xvy9.js +0 -6
  134. package/bin/vm-hands/vm-hands-entry-lite-h1qjggz0.js +0 -4
  135. package/bin/vm-hands/vm-hands-entry-lite-j3fw7x65.js +0 -14
  136. package/bin/vm-hands/vm-hands-entry-lite-jydpev8e.js +0 -452
  137. package/bin/vm-hands/vm-hands-entry-lite-k84zsash.js +0 -2
  138. package/bin/vm-hands/vm-hands-entry-lite-kf2jgke1.js +0 -150
  139. package/bin/vm-hands/vm-hands-entry-lite-m0gsez4t.js +0 -539
  140. package/bin/vm-hands/vm-hands-entry-lite-n7bd44rm.js +0 -2
  141. package/bin/vm-hands/vm-hands-entry-lite-p5ny1pw4.js +0 -4
  142. package/bin/vm-hands/vm-hands-entry-lite-qcktp8d9.js +0 -52
  143. package/bin/vm-hands/vm-hands-entry-lite-ravxhygk.js +0 -3
  144. package/bin/vm-hands/vm-hands-entry-lite-s0rx4fm8.js +0 -105
  145. package/bin/vm-hands/vm-hands-entry-lite-tyem93c1.js +0 -3
  146. package/bin/vm-hands/vm-hands-entry-lite-vj7xzb3y.js +0 -2
  147. package/bin/vm-hands/vm-hands-entry-lite-wghmyfba.js +0 -4
  148. package/bin/vm-hands/vm-hands-entry-lite-wzv13c8k.js +0 -65
  149. package/bin/vm-hands/vm-hands-entry-lite-yptpy066.js +0 -3
  150. package/bin/vm-hands/vm-hands-entry-lite-yretc2th.js +0 -3
  151. package/bin/vm-hands/vm-hands-entry-lite-zf0h0qjy.js +0 -2
  152. package/bin/vm-hands/vm-hands-op-runner-2bfbyj4e.js +0 -2
  153. package/bin/vm-hands/worker-preview-readiness-gy36ejp9.js +0 -2
  154. package/bin/vm-hands/worker-sandbox-f1tfb3y0.js +0 -2
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Zc,it,fc,bl,Qo,Oi,qe}from"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{Zc as FUTURE_DEVICE_CONSENT_SCOPE,bl as INSTALLER_WORKER_EXECUTABLES,it as installationReceiptPath,fc as installerLauncherNames,Oi as installerReasonAlias,Qo as installerReceiptLauncher,qe as loadInstallationReceipt};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{hr,To,Io,Do,wl,Oo}from"./vm-hands-entry-lite-2dak7e1h.js";import"./vm-hands-entry-lite-z213y4pj.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-hn9pq7zj.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-m1we91g4.js";import"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-wcgm41jq.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{Io as ensureLocalBrowser,hr as localAutomationAvailable,Do as localBrowserProfile,To as localUserChromeHost,wl as runAutomationCallLocally,Oo as runLocalAutomation};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Gr,Kr,lo,qn,Kc,Jc,Wn,uo,po,ho,Vn}from"./vm-hands-entry-lite-h7nk2848.js";import"./vm-hands-entry-lite-52qz0n30.js";import"./vm-hands-entry-lite-5y4phfv1.js";import"./vm-hands-entry-lite-vkhacd00.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-2dak7e1h.js";import"./vm-hands-entry-lite-z213y4pj.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-hn9pq7zj.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-m1we91g4.js";import"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-wcgm41jq.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";export{r as LocalCapabilityError,Gr as SHORT_REQUEST_CAPABILITIES,uo as capabilityInventoryForRoots,Kr as confinedExecutionShell,qn as defaultLocalCommandRunner,po as deliverLocalHandsEnvironment,Wn as enrolledRootPaths,Vn as executeLocalOperation,ho as rebindLocalHandsControl,Kc as runFileCapability,Jc as runTransferCapability,lo as spawnCaptured};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Br,kl,ua,da,pa}from"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{kl as forgetLocalDesktopUse,pa as holdLocalDesktop,Br as noteLocalDesktopUse,ua as releaseLocalDesktop,da as trackDesktopRun};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Xt,Er,is,os}from"./vm-hands-entry-lite-j10cw3d9.js";export{Xt as macScreenStatus,os as openMacInput,is as openMacWindowBounds,Er as requestMacScreenAccess};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{on,No,Te,Ft,sn}from"./vm-hands-entry-lite-z213y4pj.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-hn9pq7zj.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-wcgm41jq.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{Ft as ensureLinuxDesktop,on as localDisplayAvailable,No as localDisplayReady,Te as privateDirectory,sn as runLocalDisplayStream};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{qo,Wo,Vo,Go,Jt}from"./vm-hands-entry-lite-hn9pq7zj.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-wcgm41jq.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{qo as MAC_SCREEN,Wo as WINDOWS_SCREEN,Vo as createDisplayVideoLane,Jt as localDisplayVideoAvailable,Go as simulatorVideoFfmpeg};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{lr,Xn,go,Yn}from"./vm-hands-entry-lite-5y4phfv1.js";import"./vm-hands-entry-lite-vkhacd00.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{lr as ManagedProcessStoppedError,go as controlManagedDeviceProcess,Yn as retireManagedDeviceProcess,Xn as runManagedDeviceProcess};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{mi,an,gi,Yc,Lo,_i,$o}from"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{an as LOCAL_PTY_MAX_BUFFERED_OUTPUT_BYTES,gi as LOCAL_PTY_MAX_SESSIONS,mi as LOCAL_PTY_MAX_SESSION_MS,_i as defaultConnect,Yc as defaultLoginShell,Lo as ptyRuntimeSupported,$o as runLocalPtySession};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Vc,Nt,hl,Wr,fl,ml,Ye,gl,_l,ie,yl,N,Qi}from"./vm-hands-entry-lite-gxpw14jv.js";import"./vm-hands-entry-lite-yvws5zpx.js";import{mn,Ri}from"./vm-hands-entry-lite-vdv4nm5f.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{Vc as MANAGED_RUNTIME_MANIFEST_URL,mn as MANAGED_RUNTIME_MAX_MANIFEST_BYTES,ie as acquireManagedRuntimeDirectoryLock,yl as acquireManagedRuntimeLock,Ye as currentManagedRuntimeVersion,Wr as fetchManagedRuntimeBytes,Qi as flushManagedRuntimeLifecycleEvents,ml as installManagedRuntimeLauncher,gl as isManagedRuntimeVersionExecutable,hl as legacyManagedRuntimePaths,_l as managedRuntimeExecutableVersion,Nt as managedRuntimePaths,Ri as parseAndVerifyManagedRuntimeManifest,N as recordManagedRuntimeLifecycle,fl as updateManagedRuntime};
@@ -0,0 +1,3 @@
1
+ // @bun
2
+ import{P}from"./vm-hands-entry-lite-2rgf8866.js";import{w}from"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-krpqqx12.js";import"./vm-hands-entry-lite-9g52kxyj.js";import{it,qe}from"./vm-hands-entry-lite-sy7dcccg.js";import{us}from"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-gxpw14jv.js";import"./vm-hands-entry-lite-pxtycfdv.js";import"./vm-hands-entry-lite-hn9pq7zj.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-wcgm41jq.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-84mc1f7h.js";import"./vm-hands-entry-lite-a7bf7xr7.js";import"./vm-hands-entry-lite-ht6hzkgj.js";import"./vm-hands-entry-lite-7pfhwxn5.js";import"./vm-hands-entry-lite-m1we91g4.js";import"./vm-hands-entry-lite-vkhacd00.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-y3nz20wb.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-52qz0n30.js";import"./vm-hands-entry-lite-nn6zcvmp.js";import"./vm-hands-entry-lite-h7nk2848.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-5y4phfv1.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-z213y4pj.js";import"./vm-hands-entry-lite-2dak7e1h.js";import"./vm-hands-entry-lite-ms99mzp0.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-zawytz09.js";import{Me,Be}from"./vm-hands-entry-lite-8xv6c0rm.js";import{spawn as I}from"child_process";import{randomUUID as A}from"crypto";import{closeSync as M,existsSync as T,mkdirSync as y,openSync as N,readFileSync as U,renameSync as O,rmSync as V,writeFileSync as F}from"fs";import{homedir as u}from"os";import{dirname as p,join as h}from"path";var L=["curl","npm","bun","brew"];function x(e){return L.includes(e)}function v(e,n=process.env){let r=P(n,"REASON_INSTALL_METHOD");if(x(r))return r;let t=e.replaceAll("\\","/").toLowerCase();if(t.includes("/.bun/install/global/"))return"bun";if(t.includes("/node_modules/"))return"npm";if(t.includes("/cellar/")||t.includes("/homebrew/"))return"brew";return"curl"}var f=86400000,_=7200000,W=900000,q=900000,J=30000,B=3600000,j=43200000,G="network-update-check.json",K="automatic-updates-declined.json",H="network-update.log";function g(e,n){return p(it(e,n))}function S(e=process.env,n=u()){return T(h(g(e,n),K))}function R(e){if(!e||e.channel!=="production"||e.install_method!=="curl")return"no_receipt";return e.background_mode==="cli_only"?null:"background_updater"}function Y(e={}){let n=e.env??process.env,r=e.home??u(),t=e.executablePath??process.execPath;if(!(e.compiled??us(e.main)))return"source_checkout";if(w({env:n,executablePath:t})!=="production")return"not_production";if(v(t,n)!=="curl")return"package_manager";let o=e.receipt===void 0?qe(it(n,r)):e.receipt,s=R(o);if(s)return s;if(S(n,r))return"declined";return"eligible"}async function jt(e,n=process.env,r=u()){if(e.background_mode!=="cli_only")return"background_updater";if(S(n,r))return"declined";if(R(e)!==null)return"none";let{installedEngineVersion:t}=await import("./agent-network-kk36zca7.js");return t(r)===null?"none":"reason_network"}function X(e){try{let n=JSON.parse(U(e,"utf8"));return n?.schema_version===1&&typeof n.next_at==="string"&&Number.isFinite(Date.parse(n.next_at))?n:null}catch{return null}}function z(e,n){y(p(e),{recursive:!0,mode:448});let r=`${e}.${process.pid}.${A()}.tmp`;try{F(r,`${JSON.stringify(n)}
3
+ `,{mode:384,flag:"wx"}),O(r,e)}finally{V(r,{force:!0})}}function Q(e={}){let n=h(g(e.env??process.env,e.home??u()),G),r=(e.now??new Date).getTime(),t=()=>{let i=(e.random??Math.random)();return Number.isFinite(i)?Math.min(Math.max(i,0),1):0},o=(i)=>z(n,{schema_version:1,next_at:new Date(i).toISOString()}),s=X(n),c=s?Date.parse(s.next_at):NaN;if(!s||c>r+f+_)return o(r+Math.floor(t()*f)),!1;if(r<c)return!1;return o(r+f+Math.round((t()*2-1)*_)),!0}function Z(e,n={}){let r=n.platform??process.platform,t=n.kill??Be,o=(c)=>{try{t(e,c,r)}catch{}};if(o("SIGTERM"),r==="win32")return;setTimeout(()=>o("SIGKILL"),n.graceMs??J).unref?.()}function ee(e={}){let n=e.env??process.env,r=e.platform??process.platform,t=h(g(n,e.home??u()),H);y(p(t),{recursive:!0,mode:448});let o=N(t,"w",384);return new Promise((s)=>{let c=!1,i=(d)=>{if(c)return;c=!0,clearTimeout(a),s(d)},l=I(e.executablePath??process.execPath,["update","--quiet"],{env:n,stdio:["ignore",o,o],windowsHide:!0,...Me(r)});M(o);let a=setTimeout(()=>{if(l.pid)Z(l.pid,{platform:r,...e.killGraceMs===void 0?{}:{graceMs:e.killGraceMs},...e.kill?{kill:e.kill}:{}});i(124)},e.timeoutMs??q);a.unref?.(),l.once("error",()=>i(127)),l.once("exit",(d,m)=>i(m?128:d??1))})}function te(e,n){return new Promise((r)=>{if(n.aborted)return r();let t=setTimeout(r,e);n.addEventListener("abort",()=>{clearTimeout(t),r()},{once:!0})})}function ne(e,n=()=>new Date){let r=-1/0,t="";return(o)=>{let s=n().getTime();if(s-r<B||o===t&&s-r<j)return;r=s,t=o,e(o)}}async function Gt(e,n,r,t={}){let o=t.env??process.env,s=t.home??u(),c=t.sleep??te,i=t.now??(()=>new Date);if(o.REASON_NETWORK_NO_UPDATE||o.TINCAN_NO_UPDATE)return;let l=ne(n,i);try{let a=t.refreshEngine??(async(m)=>(await import("./agent-network-kk36zca7.js")).refreshEngine({home:s,env:o,beforeRestart:m})),d=()=>l("moved the network engine to this release's pin; its daemon restarts on it");if(await a(d)){d();return}}catch(a){l(`couldn't move the network engine to this release's pin: ${a instanceof Error?a.message:String(a)}`)}while(!e.aborted){try{if(Y({env:o,home:s,...t.executablePath?{executablePath:t.executablePath}:{},...t.compiled===void 0?{}:{compiled:t.compiled}})==="eligible"&&Q({env:o,home:s,now:i(),...t.random?{random:t.random}:{}})){let d=await(t.update??(()=>ee({env:o,home:s,...t.executablePath?{executablePath:t.executablePath}:{}})))();if(d===0)await r();else l(`reason update failed (exit ${d}); the next try is in about a day`)}}catch(a){l(`automatic update: ${a instanceof Error?a.message:String(a)}`)}await c(t.tickMs??W,e)}}export{jt as automaticUpdatesFor,Gt as keepNetworkComputerCurrent};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{er,Je,ps,hs,M,Ct,fs,$n,ms,Rr,gs,_s,ys,bs,vs,Ss,Es,ks,xs,Cs,As,Ps,Rs,Ts,Is,Ds,at,Le,At,xe,Os,Ns,Ls,pe,$s,Ms,Bs,Fs,js,Tr,Hs,Us,tr,Ir,zs,zi,qs,Ws,Vs,Mn,Gs,Ks,Js,Xs,Ys,Zs,Qs,ea,ta,ra}from"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";export{Hs as AUTOMATION_CLOUD_SESSIONS,Tr as AUTOMATION_USER_CHROME,As as HANDS_CLOUD_ACCESS,Ps as HANDS_CLOUD_ACCESS_KEY,at as HANDS_CONFINEMENT,Le as HANDS_CONFINEMENT_KEY,bs as HANDS_ENVIRONMENT_AT_CLAIM,vs as HANDS_ENVIRONMENT_AT_CLAIM_KEY,ms as HANDS_ENVIRONMENT_DELIVERY,Rr as HANDS_ENVIRONMENT_DELIVER_CONTROL,Rs as HANDS_HEADLESS_BROWSER,Ts as HANDS_HEADLESS_BROWSER_KEY,Os as HANDS_JOBS_USER,Ns as HANDS_JOBS_USER_KEY,Is as HANDS_LARGE_ENVIRONMENT,Ds as HANDS_LARGE_ENVIRONMENT_KEY,At as HANDS_MODEL_JOBS_EGRESS,xe as HANDS_MODEL_JOBS_EGRESS_KEY,ks as HANDS_REBIND,Cs as HANDS_REBIND_CONTROL,xs as HANDS_REBIND_KEY,$s as HANDS_SESSION_CAP_KEY,Ms as HANDS_SESSION_CAP_NONE,Ls as HANDS_SESSION_GROUP,pe as HANDS_SESSION_GROUP_KEY,Ss as HANDS_WORKSPACE_CHECK,Es as HANDS_WORKSPACE_CHECK_KEY,Fs as JOBS_START_WAIT,js as JOBS_START_WAIT_KEY,Je as LOCAL_OPERATION_MAX_BYTES,er as LOCAL_RUNTIME_PROTOCOL_VERSION,M as LOCAL_RUNTIME_ROUTES,$n as LOCAL_RUNTIME_SESSION_CLAIM_WAIT_MAX_MS,Ct as LOCAL_RUNTIME_SESSION_PATH,tr as LOCAL_RUNTIME_WORKER_STARTUP_MAX_MS,ps as RELAY_HOST_ALIAS_HEADER,hs as RELAY_HOST_ALIAS_VERSION,ys as VM_HANDS_UNBIND_UNVERIFIED_EVENT,gs as VM_HANDS_WORKSPACE_DEFERRED_KEY,_s as VM_HANDS_WORKSPACE_GRANT_CONTROL,Bs as WORKER_PREVIEW_CARRIED_JOBS,Us as WORKER_STARTUP_TIMING_STAGES,Ir as buildLocalRuntimeDeviceProofBytes,fs as localRuntimeSessionRoutable,Js as parseLocalRuntimeDisconnectResponse,Ws as parseLocalRuntimeEnrollmentResponse,zs as parseLocalRuntimeErrorEnvelope,Mn as parseLocalRuntimeFirstHeartbeat,Vs as parseLocalRuntimeHeartbeatResponse,Ks as parseLocalRuntimeIdentityResponse,Ys as parseLocalRuntimeLifecycleResponse,Xs as parseLocalRuntimeLocalSubscriptionResponse,Zs as parseLocalRuntimeOperationClaim,ra as parseLocalRuntimeOperationCompletionResponse,ta as parseLocalRuntimeOperationEnvironmentResponse,ea as parseLocalRuntimeOperationEventsResponse,Qs as parseLocalRuntimeOperationHeartbeatResponse,zi as parseLocalRuntimeProofChallenge,qs as parseLocalRuntimeRegistrationResponse,Gs as parseLocalRuntimeRootsSyncResponse};
@@ -0,0 +1,3 @@
1
+ // @bun
2
+ import"./vm-hands-entry-lite-84mc1f7h.js";import{Fe}from"./vm-hands-entry-lite-jgk5z8zc.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-9g52kxyj.js";import{ve}from"./vm-hands-entry-lite-a7bf7xr7.js";import"./vm-hands-entry-lite-krpqqx12.js";import{be}from"./vm-hands-entry-lite-ht6hzkgj.js";import{xr}from"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-7pfhwxn5.js";import"./vm-hands-entry-lite-sy7dcccg.js";import{ma,ga,_a,Ur,zr}from"./vm-hands-entry-lite-hjjbjpd7.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import{createHash as y}from"crypto";var _={start:"/network/auth/start",poll:"/network/auth/poll",key:"/network/auth/key",teams:"/v3/network/teams",leave:"/v3/network/teams/leave",proof:"/v3/network/proof"};async function I(r,e,t={}){let o=AbortSignal.timeout(t.timeoutMs??30000),i=await fetch(r,{method:"POST",redirect:"error",signal:t.signal?AbortSignal.any([t.signal,o]):o,headers:{"content-type":"application/json","user-agent":xr,...t.token?{authorization:`Bearer ${t.token}`}:{}},body:JSON.stringify(e)}),n=await i.json().catch(()=>({}));return{status:i.status,body:n&&typeof n==="object"?n:{}}}var d=(r)=>y("sha256").update(r).digest("hex");async function b(r,e,t,o,i=!1){let n={team_id:t.teamId,team_name:t.teamName,link:o,...i?{own_copy:!0}:{}},s=await I(`${r}${_.teams}`,n,{token:e}).catch(()=>null);return s!==null&&s.status>=200&&s.status<300}async function v(r,e,t,o,i={}){let n=zr(t);if(!n||!i.ownCopy&&e.registered===d(n.secret))return!0;let s=ma(i.home),a=ve(s)?await be({path:s}).catch(()=>null):null,c=(await r.team())?.name??e.team;if(a&&await b(a.apiOrigin,a.accessToken,{teamId:n.teamId,teamName:c},t,i.ownCopy)){if(!i.ownCopy&&e.registered!==d(n.secret))_a({...e,registered:d(n.secret)},i.home);return!0}return o?.stderr.write(T(`Your Reason account still lists ${Fe(c)}'s old link; signing in for this network refreshes it: reason network join '${t}'`)+`
3
+ `),!1}var S=300000,R=21600000;async function xe(r,e,t,o){let i=ga(t),n=o?await r.team():null;if(i&&(!o||i.team===n?.name)){let{url:l}=await r.link(),u=zr(l);if(!u||d(u.secret)===e.sent)return e;return await v(r,i,l,null,{ownCopy:!0,...t?{home:t}:{}})?{...e,sent:d(u.secret)}:e}if(!o||!n?.teamId||Ur(t)?.team===n.name)return e;let{url:s}=await r.link(),a=zr(s);if(!a||a.teamId!==n.teamId.toLowerCase())return e;let c=d(a.secret);if(c===e.sent||e.refused?.link===c&&Date.now()<e.refused.until)return e;if(await(async()=>{let l=await o.agentNetwork();if(l.team===n.name||l.link&&zr(l.link)?.teamId===a.teamId)return!1;return await o.registerNetworkTeam({team_id:a.teamId,team_name:n.name,link:s,own_copy:!0}),!0})().catch(()=>!1))return{sent:c,refused:null};let g=e.refused?.link===c?e.refused.tries+1:1;return{...e,refused:{link:c,tries:g,until:Date.now()+Math.min(R,S*2**Math.min(g-1,10))}}}var T=(r)=>process.stdout.isTTY?`\x1B[2m${r}\x1B[22m`:r;export{xe as sendTeamLink};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{oo}from"./vm-hands-entry-lite-e3fn8ys2.js";export default oo();
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Qc,bc,vl,el,Sl}from"./vm-hands-entry-lite-wcgm41jq.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{el as allowMacPermissions,vl as permissionsSummary,bc as readMacPermissions,Qc as reasonIdentity,Sl as runPermissionsCli};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{F,bi,vi,Mo,_r,Bo,Si,zt,gt,Fo,qt,pn,He,Wt,jo,_t,hn,Ei,fn,ki,Ho,rt,Ee,ce,nt,xi,Ci,Uo}from"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-9g52kxyj.js";export{ki as REASON_HANDS_CLOSE_CODES,qt as REASON_HANDS_JOB_CONTROL_MAX_FRAME_BYTES,Si as REASON_HANDS_JOB_MAX_INPUT_CHARS,zt as REASON_HANDS_JOB_MAX_OUTPUT_CHARS,gt as REASON_HANDS_JOB_MAX_OUTPUT_CHUNKS,Fo as REASON_HANDS_JOB_MAX_RECORDS,Bo as REASON_HANDS_MAX_ERROR_CHARS,bi as REASON_HANDS_MAX_FRAME_BYTES,vi as REASON_HANDS_MAX_INPUT_CHARS,_r as REASON_HANDS_MAX_OUTPUT_CHARS,Mo as REASON_HANDS_MAX_STRUCTURED_INPUT_CHARS,F as REASON_HANDS_PROTOCOL_VERSION,Ei as REASON_HANDS_PTY_ANCHOR_EXIT_MS,fn as REASON_HANDS_PTY_CLEANUP_RECEIPT_MS,hn as REASON_HANDS_PTY_CLEANUP_SWEEP_MS,_t as REASON_HANDS_PTY_MAX_DIMENSION,He as REASON_HANDS_PTY_MAX_INPUT_BYTES,Wt as REASON_HANDS_PTY_MAX_OUTPUT_BYTES,jo as REASON_HANDS_PTY_MAX_PENDING_INPUT_BYTES,pn as REASON_HANDS_PTY_PROTOCOL_VERSION,Ho as REASON_HANDS_WORKSPACE_BEFORE_MAX_OUTPUT_CHARS,Ee as isReasonHandsGeneration,nt as isReasonHandsPtyJobId,rt as isReasonHandsRequestId,ce as isReasonHandsUuid,xi as parseReasonHandsJobRequest,Ci as parseReasonHandsJobResult,Uo as parseReasonHandsPtyReceipt};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{ke,de,j,Ue,Jo,bn,Xo,ze,Ii,Di,Yo,vn,Ie,Zo,Sn}from"./vm-hands-entry-lite-m1we91g4.js";import"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-hs6sdn60.js";import"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-2rgf8866.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-bj3w2ven.js";import"./vm-hands-entry-lite-zawytz09.js";import"./vm-hands-entry-lite-9g52kxyj.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import"./vm-hands-entry-lite-krpqqx12.js";export{ke as WORKER_SERVICE_ENV,j as WorkerServiceError,bn as connectServiceLabel,de as defaultWorkerServiceHost,vn as installWorkerService,ze as installedWorkerService,Xo as isConnectServiceLabel,Sn as removeWorkerService,Ie as restartWorkerService,Zo as retargetWorkerServiceLogs,Ii as retireLegacyWorkerService,Yo as workerServiceDefinitionCurrent,Ue as workerServiceLauncher,Di as workerServiceProcessRunning,Jo as workerServiceRetargetPending};
@@ -0,0 +1,96 @@
1
+ // @bun
2
+ import"./vm-hands-entry-lite-84mc1f7h.js";import"./vm-hands-entry-lite-2rgf8866.js";import{w,We,_c}from"./vm-hands-entry-lite-q9s1e2y1.js";import"./vm-hands-entry-lite-9g52kxyj.js";import{Q}from"./vm-hands-entry-lite-a7bf7xr7.js";import"./vm-hands-entry-lite-krpqqx12.js";import{me}from"./vm-hands-entry-lite-ht6hzkgj.js";import{g}from"./vm-hands-entry-lite-bj3w2ven.js";import{ir}from"./vm-hands-entry-lite-7pfhwxn5.js";import{un,tt}from"./vm-hands-entry-lite-pxtycfdv.js";import{f,S,nr,Z,fe,Xi,Yi}from"./vm-hands-entry-lite-y3nz20wb.js";import"./vm-hands-entry-lite-71ebge0c.js";import"./vm-hands-entry-lite-57ajjwmh.js";import"./vm-hands-entry-lite-h7nk2848.js";import"./vm-hands-entry-lite-vkhacd00.js";import"./vm-hands-entry-lite-weqam12f.js";import"./vm-hands-entry-lite-52qz0n30.js";import"./vm-hands-entry-lite-nn6zcvmp.js";import"./vm-hands-entry-lite-hn9pq7zj.js";import"./vm-hands-entry-lite-j10cw3d9.js";import"./vm-hands-entry-lite-6jxshhps.js";import"./vm-hands-entry-lite-wcgm41jq.js";import"./vm-hands-entry-lite-q9djb28r.js";import"./vm-hands-entry-lite-gxpw14jv.js";import{qe}from"./vm-hands-entry-lite-sy7dcccg.js";import"./vm-hands-entry-lite-m1we91g4.js";import"./vm-hands-entry-lite-jpvmkce5.js";import"./vm-hands-entry-lite-v4hr9x9h.js";import"./vm-hands-entry-lite-zh6ncdjn.js";import"./vm-hands-entry-lite-5y4phfv1.js";import"./vm-hands-entry-lite-z0ht62s4.js";import"./vm-hands-entry-lite-hxfxs7r9.js";import"./vm-hands-entry-lite-z213y4pj.js";import"./vm-hands-entry-lite-2dak7e1h.js";import"./vm-hands-entry-lite-ms99mzp0.js";import"./vm-hands-entry-lite-0wb1n769.js";import"./vm-hands-entry-lite-yvws5zpx.js";import"./vm-hands-entry-lite-hs6sdn60.js";import{s}from"./vm-hands-entry-lite-zawytz09.js";import{t,o,d,n,c,i}from"./vm-hands-entry-lite-k5ytpgzz.js";import"./vm-hands-entry-lite-8xv6c0rm.js";import{createHash as Ye,randomBytes as Qe}from"crypto";import{readFileSync as Ze,realpathSync as ye,renameSync as en,unlinkSync as nn,writeFileSync as tn}from"fs";import{dirname as rn,join as we}from"path";import{spawnSync as xe}from"child_process";import{accessSync as $e,constants as Ue,existsSync as J,mkdirSync as Le,readFileSync as Te,renameSync as Ee,writeFileSync as Oe}from"fs";import{homedir as De}from"os";import{delimiter as Ne,dirname as Fe,join as D}from"path";import{existsSync as Me,readFileSync as Ae}from"fs";import{join as Pe}from"path";var Ie=`---
3
+ name: reason
4
+ description: Integrate software with Reason's public REST API using a scoped API key. Use for API clients, CI, service integrations, or cloud coding-session automation.
5
+ ---
6
+
7
+ # Reason API
8
+
9
+ Reason integrations use the public REST API. Public customer MCP is retired.
10
+
11
+ Base URL: \`https://api.reasonmachines.com/v3\`
12
+
13
+ - API quickstart: \`https://docs.reasonmachines.com/api-quickstart\`
14
+ - Endpoint reference: \`https://docs.reasonmachines.com/api-reference\`
15
+
16
+ ## Authentication and scope
17
+
18
+ 1. Create a least-privilege \`ara_\` key in Reason Settings \u2192 Developers (the Code
19
+ / API keys picker) and keep it only in the calling service or CI secret
20
+ manager. Never
21
+ put it in source, prompts, logs, generated files, or a repository
22
+ environment file. A new key from that picker includes the ordinary public
23
+ scopes for session, skill, repo, and org reads.
24
+ 2. Send it as \`Authorization: Bearer <api-key>\`. Call \`GET /v3/self\` first
25
+ to resolve the key's organization before reading or mutating resources.
26
+ 3. Request only the scopes needed by the integration. Treat secret values as
27
+ write-only and never expose them in API responses or diagnostics.
28
+ 4. Use the endpoint reference as the source of truth for request/response
29
+ shapes, pagination, and error handling. Do not recreate an old MCP client,
30
+ route, OAuth flow, or plugin configuration. Do not connect to the retired
31
+ public MCP transport.
32
+
33
+ ## Session automation
34
+
35
+ - Create and monitor sessions through the documented \`/v3/organizations/:orgId/
36
+ sessions\` endpoints. Return the session URL or identifier to the caller, then
37
+ poll or stream only as the API reference specifies.
38
+ - Omit \`hands_mode\` for adaptive lazy Hands, or set it to \`brain_only\` when
39
+ physical execution must remain permanently disabled for that Conversation.
40
+ - Keep API work idempotent where the endpoint supports it, and surface failed
41
+ mutations rather than retrying destructive operations blindly.
42
+ - Scope every request to the intended organization and repository. Do not infer
43
+ authority from a repository name or an untrusted task payload.
44
+ `;function V(e){return Pe(e,".agents","skills","ara","SKILL.md")}function re(e){let r=V(e);return Me(r)&&Ae(r,"utf8")===Ie}var Y=["codex","claude","cursor"],oe={codex:"Codex",claude:"Claude Code",cursor:"Cursor"};function je(e,r=process.env){let a=r.PATH??"",u=process.platform==="win32"?(r.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";"):[""];for(let l of a.split(Ne)){if(!l)continue;for(let m of u)try{return $e(D(l,`${e}${m}`),Ue.X_OK),!0}catch{}}return!1}function ze(){return{exists:je,run(e,r,a={}){let u=a.interactive===!0,l=xe(e,r,{encoding:"utf8",env:process.env,stdio:u?"inherit":"pipe"});return{status:l.status??1,stdout:u?"":l.stdout??"",stderr:u?l.error?.message??"":`${l.stderr??""}${l.error?`${l.error.message}
45
+ `:""}`}}}}function O(e){return`${e.stdout}
46
+ ${e.stderr}`}function A(e){return e.status===0}function E(e,r,a,u={}){let l=e.run(r,a,u);if(A(l))return l;let m=O(l).trim();throw Error(`${r} ${a.join(" ")} failed${m?`: ${m}`:` with exit code ${l.status}`}`)}function Be(e=process.env){return _c(w({env:e}))}function ee(e,r){return e.split(/\s+/).some((a)=>ae(a,r))}function H(e){return D(e,".cursor","mcp.json")}function se(e){if(!J(e))return{};try{let r=JSON.parse(Te(e,"utf8"));if(!r||typeof r!=="object"||Array.isArray(r))throw Error("top-level value must be an object");return r}catch(r){let a=r instanceof Error?r.message:String(r);throw Error(`Cursor MCP config at ${e} is invalid; refusing to overwrite it (${a})`)}}function He(e,r){Le(Fe(e),{recursive:!0,mode:448});let a=`${e}.ara-${process.pid}.tmp`;Oe(a,`${JSON.stringify(r,null,2)}
47
+ `,{mode:384}),Ee(a,e)}function ae(e,r){if(typeof e!=="string")return!1;if(e===r)return!0;try{let a=new URL(e);return["https://api.ara.so","https://api-staging.ara.so","https://api.reasonmachines.ai","https://staging-api.reasonmachines.ai","https://api.reasonmachines.com","https://staging-api.reasonmachines.com"].includes(a.origin)&&!a.username&&!a.password&&a.pathname==="/mcp/ara"&&!a.search&&!a.hash}catch{return!1}}function Je(e,r){let a=e.mcpServers?.ara;return Boolean(a&&typeof a==="object"&&!Array.isArray(a)&&ae(a.url,r))}class K{runner;home;mcpUrl;constructor(e=ze(),r=De(),a=Be()){this.runner=e;this.home=r;this.mcpUrl=a}isAvailable(e){if(e==="codex")return this.runner.exists("codex");if(e==="claude")return this.runner.exists("claude");return this.runner.exists("cursor")||J("/Applications/Cursor.app")||J(D(this.home,"Applications","Cursor.app"))||J(H(this.home))}availableClients(){return Y.filter((e)=>this.isAvailable(e))}installationPath(e){if(e==="cursor")return H(this.home);if(e==="codex")return D(this.home,".codex","plugins","cache","ara");return D(this.home,".claude","plugins","cache","ara")}sharedSkillStatus(){return{installed:re(this.home),path:V(this.home)}}status(e){let r=oe[e];if(!this.isAvailable(e))return{id:e,label:r,available:!1,installed:!1,connection:null,detail:"Client not detected",legacyInstallations:[]};if(e==="cursor"){let C=H(this.home),M=Je(se(C),this.mcpUrl);return{id:e,label:r,available:!0,installed:M,connection:M?"configured":null,detail:M?`Retired Reason MCP configuration in ${C}`:`No retired Reason MCP configuration in ${C}`,legacyInstallations:[]}}if(e==="codex"){let C=this.runner.run("codex",["plugin","list"]);if(!(A(C)&&O(C).includes("ara@ara")))return{id:e,label:r,available:!0,installed:!1,connection:null,detail:"No retired Reason plugin installed",legacyInstallations:[]};let x=this.runner.run("codex",["mcp","list"]),h=O(x).split(/\r?\n/).find((j)=>j.trimStart().startsWith("ara ")&&ee(j,this.mcpUrl)),W=A(x)&&Boolean(h),F=!A(x)?"error":h?.includes("Not logged in")?"not_logged_in":h?.includes("OAuth")?"oauth":h?"configured":"unknown";return{id:e,label:r,available:!0,installed:W,connection:F,detail:h?.trim()||"The retired Reason plugin is installed but has no verified retired MCP registration",legacyInstallations:[]}}let a=this.runner.run("claude",["plugin","list"]),u=O(a),l=A(a)&&u.includes("ara@ara"),m=A(a)&&u.includes("ara-handoff@ara");if(!l&&!m)return{id:e,label:r,available:!0,installed:!1,connection:null,detail:"No retired Reason plugin installed",legacyInstallations:[]};let R=this.runner.run("claude",["mcp","list"]),v=O(R),_=v.split(/\r?\n/).find((C)=>C.includes("plugin:ara:ara")&&ee(C,this.mcpUrl)),k=v.split(/\r?\n/).find((C)=>C.includes("plugin:ara-handoff:ara")&&ee(C,this.mcpUrl)),N=A(R)&&Boolean(_),b=A(R)&&k?["ara-handoff@ara"]:[],q=!A(R)?"error":_?.includes("Connected")?"connected":_?.includes("Failed")?"error":_?"configured":"unknown";return{id:e,label:r,available:!0,installed:N,connection:q,detail:_?.trim()||"The retired Reason plugin is installed but has no verified retired MCP registration",legacyInstallations:b}}statuses(){return Y.map((e)=>this.status(e))}logout(e){let r=this.status(e);if(!r.available||!r.installed)return`${r.label}: not connected`;if(e==="cursor")return this.uninstall("cursor").replace("removed retired Reason","signed out and removed retired Reason");if(e==="codex")return E(this.runner,"codex",["mcp","logout","ara"]),"Codex: signed out of Reason";return E(this.runner,"claude",["mcp","logout","plugin:ara:ara"]),"Claude Code: signed out of Reason"}uninstall(e){let r=this.status(e);if(!r.available||!r.installed)return`${r.label}: Reason is not installed`;if(e==="cursor"){let a=H(this.home),u=se(a),l={...u.mcpServers??{}};return delete l.ara,u.mcpServers=l,He(a,u),`Cursor: removed retired Reason MCP from ${a}`}if(e==="codex")return E(this.runner,"codex",["plugin","remove","ara@ara"]),"Codex: removed retired ara@ara";return E(this.runner,"claude",["plugin","uninstall","ara@ara","--scope","user"]),"Claude Code: removed retired ara@ara"}removeLegacyClaudePlugin(){if(!this.runner.exists("claude"))return"Claude Code: not installed";if(!this.status("claude").legacyInstallations.includes("ara-handoff@ara"))return"Claude Code: no legacy Reason plugin found";return E(this.runner,"claude",["plugin","uninstall","ara-handoff@ara","--scope","user"]),"Claude Code: removed obsolete ara-handoff@ara"}removeRetiredInstallations(){let e=[],r=[];for(let a of Y){let u;try{u=this.status(a)}catch(l){r.push(`${oe[a]}: ${l instanceof Error?l.message:String(l)}`);continue}if(u.installed){if(a!=="cursor")try{e.push(this.logout(a))}catch(l){r.push(`${u.label}: ${l instanceof Error?l.message:String(l)}`)}try{e.push(this.uninstall(a))}catch(l){r.push(`${u.label}: ${l instanceof Error?l.message:String(l)}`)}}if(a==="claude"&&u.legacyInstallations.includes("ara-handoff@ara"))try{e.push(this.removeLegacyClaudePlugin())}catch(l){r.push(`${u.label}: ${l instanceof Error?l.message:String(l)}`)}}if(e.length===0&&r.length===0)e.push("No retired Reason MCP configuration found.");return{messages:e,failures:r}}}function ie(e){return`claude mcp add --transport http reason ${e}`}function ce(e){return`codex mcp add reason --url ${e}
48
+ codex mcp login reason`}var Mn=ie("https://mcp.reasonmachines.com/mcp"),An=ce("https://mcp.reasonmachines.com/mcp"),Pn=`https://claude.ai/settings/connectors?add=custom&url=${encodeURIComponent("https://mcp.reasonmachines.com/mcp")}`,In=`https://cursor.com/install-mcp?name=reason&config=${encodeURIComponent(btoa(JSON.stringify({url:"https://mcp.reasonmachines.com/mcp"})))}`;var Ke="https://github.com/reason-machines/reason-plugins",En=`Connect a coding agent to Reason over MCP
49
+
50
+ Usage:
51
+ reason mcp Show how to connect Claude Code, Codex, or another MCP client
52
+ reason mcp uninstall Remove only this machine's registrations of the earlier, retired server
53
+
54
+ Plugins for Claude Code and Codex: ${Ke}
55
+ `;function le(e){if(!e.available)return"not detected";if(e.installed||e.legacyInstallations.length>0)return"retired configuration";return"not installed"}function Ge(e,r){let a=r.toLowerCase();if(e==="codex")return a.includes("codex");if(e==="claude")return a.includes("claude");return a.includes("cursor")}function ue(e,r){return(r.mcp_connections??[]).filter((u)=>Ge(e.id,u.client_name)).flatMap((u)=>u.last_used_at?[u.last_used_at]:[]).sort().at(-1)??null}function de(e,r=new Date){if(!e)return"never";let a=Date.parse(e);if(!Number.isFinite(a))return"never";let u=Math.max(0,Math.floor((r.getTime()-a)/1000));if(u<45)return"just now";let l=Math.floor(u/60);if(l<60)return`${l} ${l===1?"minute":"minutes"} ago`;let m=Math.floor(l/60);if(m<24)return`${m} ${m===1?"hour":"hours"} ago`;let R=Math.floor(m/24);return`${R} ${R===1?"day":"days"} ago`}function pe(e){let r=e.name?.trim(),a=e.email?.trim();if(r&&a)return`${r} (${a})`;return r||a||e.id||"Reason user"}function ge(e){let r=e.name?.trim(),a=e.slug?.trim();if(r&&a)return`${r} (${a})`;return r||a||e.id}var Ve=c(["granted","not_granted","unknown"]),he=n({status:Ve,checkedAt:o().finite(),executablePath:t().min(1)});var on=`Reason status
56
+
57
+ Usage:
58
+ reason status [--json]
59
+
60
+ Show the installed version, signed-in account and organization, this
61
+ computer's connection (\`reason connect\`) and the workspaces it serves, any
62
+ retired MCP configuration that can be cleaned up, and automatic updates.
63
+ `,sn=5000,an=300000,cn=n({version:i(1),key:t(),at:o(),self:n({principal_type:t(),user_id:t().optional(),user_name:t().nullish(),email:t().nullish(),org_id:t(),organization_name:t().nullish(),organization_slug:t().nullish(),mcp_connections:d(n({client_id:t(),client_name:t(),last_used_at:t().nullable()})).optional()})}),Re=(e)=>`${e.apiOrigin}
64
+ ${Ye("sha256").update(e.accessToken).digest("hex")}`;function ln(e,r,a){try{let u=cn.safeParse(JSON.parse(Ze(e,"utf8")));if(!u.success||u.data.key!==Re(r))return null;let l=a-u.data.at;return l>=0&&l<an?u.data.self:null}catch{return null}}function dn(e,r,a,u){let l=`${e}.${process.pid}.${Qe(6).toString("hex")}.tmp`;try{let m={version:1,key:Re(r),at:u,self:a};tn(l,`${JSON.stringify(m)}
65
+ `,{mode:384,flag:"wx"}),en(l,e)}catch{try{nn(l)}catch{}}}var pn=30000;function mn(e,r=Date.now(),a=null){let u=tt(e),l=(()=>{if(u?.state!=="connected"&&u?.state!=="starting")return!1;try{return process.kill(u.pid,0),!0}catch{return!1}})(),m=l&&u?.state==="connected",R=(k)=>m&&r-k>=0&&r-k<pn,v=he.safeParse(u?.fullDiskAccess),_=un(u,a,r);return{..._?{permission_recovery:_}:{},full_disk_access:v.success&&R(v.data.checkedAt)?v.data.status:"unknown",keep_awake:{enabled:nr(e)==="battery_and_ac",holding:u?.idleSleepHold===!0&&R(Date.parse(u.lastHeartbeatAt??""))},executable:l&&v.success?v.data.executablePath:null}}function gn(e=w()){if(process.platform!=="darwin")return null;let r=Z(we(fe(ye(s()),e),"worker.json"));return r?mn(f(r).daemon,Date.now(),S(r)):null}var fn={background_updater:"enabled",reason_network:"enabled, daily by Reason Network",declined:"disabled (installed with --background-mode cli_only)",none:"disabled"},Ce={connected:"connected",starting:"starting",reconnecting:"reconnecting",stopping:"stopping",not_running:"not running",removed:"removed from Reason (run `reason connect` to connect it again)"};async function it(e,r={}){let a=r.io??{stdout:process.stdout,stderr:process.stderr};if(e.includes("--help")||e.includes("-h"))return a.stdout.write(on),0;if(e.some((m)=>m!=="--json"))return a.stderr.write(`Usage: reason status [--json]
66
+ `),1;let u=new AbortController,l=setTimeout(()=>u.abort(Error("timed out reading the account")),sn);try{let m=r.now?.()??new Date,R=performance.now(),v=R,_=()=>{let p=performance.now(),P=Math.round(p-v);return v=p,P},k=null,N=(p)=>(k=p instanceof Error?p.message:String(p),null),b=await ir(r,u.signal).catch(N),q=_(),C=b?.credentialKind==="api_key",M=b&&!C?we(rn(Q(r.env??process.env)),"status-account.json"):null,x=b&&M&&e.includes("--json")?ln(M,b,m.getTime()):null,h=x??(b?await(r.getSelf??((p,P)=>new me(p).self(P)))(b,u.signal).catch(N):null);if(b&&h&&!x&&M)dn(M,b,h,m.getTime());let W=_(),F=r.manager??new K,j=e.includes("--json")?[]:F.statuses(),U=(r.loadReceipt??qe)(),z=U?await(r.automaticUpdates??(async(p)=>p.background_mode==="cli_only"?(await import("./network-auto-update-wkzb91qz.js")).automaticUpdatesFor(p,r.env??process.env,r.home):"background_updater"))(U).catch(()=>U.background_mode==="cli_only"?"none":"background_updater"):null,B=await(r.readConnection??(()=>Yi({channel:r.channel})))().catch(()=>null),I=null;try{if(B)I=(r.readConnectionMacState??(()=>gn(r.channel??w())))()}catch{}let y=B&&I?{...B,...I}:B,G=(()=>{try{return(r.readDisconnected??(()=>Xi(ye(s()),r.channel??w())))()}catch{return!1}})(),_e=_(),ne=h?{id:h.org_id,name:h.organization_name??null,slug:h.organization_slug??null}:null,T=h?{id:h.user_id??null,name:(C?h.service_user_name:h.user_name)??null,email:h.email??null,credential:C?"api_key":"login"}:null,X=r.channel??w(),L={version:g,channel:X,api_origin:b?.apiOrigin??We(X),account:T,account_error:k,organization:ne,mcp:j.map((p)=>({client:p.id,label:p.label,status:le(p),installed_at:p.installed?F.installationPath(p.id):null,last_used_at:h?ue(p,h):null})),connection:y,disconnected:G,installation:U&&z?{background_mode:U.background_mode,automatic_updates:z==="background_updater"||z==="reason_network",automatic_updates_by:z,future_device_consent:U.device_consent?.decision??"disabled"}:null,timings_ms:{process:Math.round(R),credentials:q,account:W,local:_e,total:Math.round(performance.now()-R)}};if(e.includes("--json"))return a.stdout.write(`${JSON.stringify(L,null,2)}
67
+ `),0;if(X==="staging")a.stdout.write(`Reason ${g} \xB7 channel: STAGING
68
+ `),a.stdout.write(`API: ${L.api_origin}
69
+ `);else a.stdout.write(`Reason ${g}
70
+ `);if(T)a.stdout.write(C?`Account: API key (REASON_API_KEY)${T.name?`: ${T.name}`:""}
71
+ `:`Account: ${pe(T)}
72
+ `),a.stdout.write(`Organization: ${ge(ne)}
73
+ `);else if(k)a.stdout.write(`Account: unavailable (${k})
74
+ `);else a.stdout.write(`Account: signed out
75
+ `),a.stdout.write(`Organization: none
76
+ `);if(a.stdout.write(`
77
+ This computer
78
+ `),!y)a.stdout.write(G?"Disconnected. Run `reason connect` to connect it again.\n":"Not connected. Run `reason connect` to run your Sessions here.\n");else{if(a.stdout.write(`Connection: ${Ce[y.state]} (${y.name})${G?", disconnected (run `reason connect` to connect it again)":""}
79
+ `),y.version)a.stdout.write(`Version: ${y.version}${y.version===g?"":` (${g} is installed; \`reason connect\` restarts it on that)`}
80
+ `);if(a.stdout.write(`Folder: ${y.folder}
81
+ `),a.stdout.write(`Sessions: ${y.sessions_running===null?"":`${y.sessions_running} running, `}${y.sessions_max===null?"every Session you start":y.sessions_max===1?"one at a time":`up to ${y.sessions_max} at once`}
82
+ `),I){let p=I,P=await(r.readPermissionsSummary??(async()=>{let{permissionsSummary:Se,readMacPermissions:ve,reasonIdentity:be}=await import("./permissions-348prrcx.js"),{macScreenStatus:ke}=await import("./local-display-mac-yxcxvg2z.js");return Se(await ve({identity:()=>be(),grants:ke,worker:async()=>p}))}))().catch(()=>null);if(P)a.stdout.write(`${P}
83
+ `);a.stdout.write(`Keep awake: ${I.keep_awake.enabled?"on":"off"}${I.keep_awake.holding?" (holding)":""}
84
+ `)}if(y.service)a.stdout.write(`Logs: ${y.service.logs}
85
+ `);for(let p of y.workspaces??[]){let P=p.state==="removed"?"removed from that workspace":p.blocked?"offline (this computer is outside that workspace's allowed networks)":p.device_id?Ce[p.state]:"connecting";a.stdout.write(`Also in workspace ${p.name??p.organization_id}${p.account?" (another Reason account's)":""}: ${P}
86
+ `)}if(y.workspaces_off==="sign_in")a.stdout.write("Other workspaces: off. This computer's sign-in is not one the Reason app or the setup command\n Reason shows you made for it (or that sign-in ended, or it is in use on another computer), so it is\n connected in one workspace only. Run the setup command from Reason here (it ends in --pair CODE);\n if this computer was connected before that, run `reason disconnect` and `reason connect` once.\n")}let te=L.mcp.filter((p)=>p.installed_at||p.status!=="not installed");if(te.length>0)a.stdout.write(`
87
+ Retired MCP configuration
88
+ `);for(let p of te)if(a.stdout.write(`${p.label}: ${p.status}
89
+ `),p.installed_at)a.stdout.write(` Installed: ${p.installed_at}
90
+ `),a.stdout.write(` Last used: ${de(p.last_used_at,m)}
91
+ `);if(L.mcp.some((p)=>p.status==="retired configuration"))a.stdout.write("Run `reason mcp uninstall` to remove only the retired Reason MCP registrations.\n");if(a.stdout.write(`
92
+ Background access
93
+ `),!L.installation)a.stdout.write(`Not managed by the Reason installer
94
+ `);else a.stdout.write(`Automatic updates: ${fn[L.installation.automatic_updates_by]}
95
+ `);return 0}catch(m){return a.stderr.write(`Reason status: ${m instanceof Error?m.message:String(m)}
96
+ `),1}finally{clearTimeout(l)}}export{gn as connectionMacState,it as runStatusCli};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{g,xr,Nc,El,us}from"./vm-hands-entry-lite-bj3w2ven.js";export{xr as CLI_USER_AGENT,g as CLI_VERSION,Nc as CLI_VERSION_PATTERN,El as compareCliVersions,us as isCompiledRelease};
@@ -0,0 +1,9 @@
1
+ // @bun
2
+ import{Rt,Tt}from"./vm-hands-entry-lite-8xv6c0rm.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{request as Ie}from"http";import{pipeline as We}from"stream";import{constants as ne,createBrotliCompress as Re,createGzip as Be}from"zlib";import{WebSocket as U}from"ws";import{randomBytes as Ee,timingSafeEqual as Ae}from"crypto";import{createServer as Te}from"net";var v={chunk:32768,upload:1048576,total:536870912,streams:16,queued:512,buffered:262144,relayBuffered:8388608,requestMs:30000,lifetimeMs:600000,authorizationMs:2000,window:8};function J(e){return e!==null&&typeof e==="object"&&!Array.isArray(e)}function L(e,t,n=Number.MAX_SAFE_INTEGER){return typeof e==="number"&&Number.isSafeInteger(e)&&e>=t&&e<=n}function fe(e){return typeof e==="string"&&/^[a-zA-Z0-9_-]{1,160}$/.test(e)}function we(e,t){let n=Buffer.from(e,"latin1");return Buffer.concat([Buffer.from([n.length]),n,t])}function C(e){if(!J(e)||Object.keys(e).length!==12||![e.organizationId,e.userId,e.runId,e.deviceId,e.rootId,e.jobId,e.fenceId].every(fe)||!L(e.attachmentRevision,0)||!L(e.grantRevision,1)||!L(e.generation,1)||!L(e.port,1024,65535)||!L(e.expiresAtMs,1))throw Error("preview_binding_invalid");return Object.freeze({...e})}function Mt(e,t){return Object.keys(e).every((n)=>e[n]===t[n])}function H(e){if(e.length>4096||!e.startsWith("/")||e.startsWith("//")||/[\\\x00-\x20\x7f#]/.test(e))throw Error("preview_path_invalid");let t=decodeURIComponent(e);if(t.startsWith("//")||/[\\\x00-\x1f\x7f]/.test(t))throw Error("preview_path_invalid");return e}function pe(e){return Array.isArray(e)&&e.length<=64&&e.every((t)=>Array.isArray(t)&&t.length===2&&typeof t[0]==="string"&&/^[a-zA-Z0-9-]{1,80}$/.test(t[0])&&typeof t[1]==="string"&&t[1].length<=4096&&!/[\x00-\x1f\x7f]/.test(t[1]))}function z(e,t=v.chunk){if(e.length>Math.ceil(t/3)*4||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e))throw Error("preview_data_invalid");let n=Buffer.from(e,"base64");if(n.length>t)throw Error("preview_data_too_large");return n}function me(e){if(Array.isArray(e))return Buffer.concat(e);if(typeof e==="string")return Buffer.from(e,"utf8");if(e instanceof ArrayBuffer)return Buffer.from(e);return e}function di(e){if(Buffer.byteLength(e)>v.upload*1.4+300000)throw Error("preview_frame_too_large");let t=JSON.parse(e);if(!J(t))throw Error("preview_frame_invalid");if(t.type==="hello")return{type:"hello",binding:C(t.binding),...L(t.messages,v.chunk,v.upload)?{messages:t.messages}:{},...L(t.window,1,v.window)?{window:t.window}:{},...t.bytes===!0?{bytes:!0}:{}};if(t.type==="refused"&&typeof t.reason==="string"&&/^[a-z_]{1,32}$/.test(t.reason))return{type:"refused",binding:C(t.binding),reason:t.reason};if(!fe(t.id))throw Error("preview_frame_invalid");if(t.type==="end"||t.type==="cancel"||t.type==="credit")return{type:t.type,id:t.id};if(t.type==="ws"&&typeof t.protocol==="string"&&/^[a-zA-Z0-9._-]{0,100}$/.test(t.protocol))return{type:"ws",id:t.id,protocol:t.protocol};if(t.type==="data"&&typeof t.data==="string"&&typeof t.binary==="boolean")return z(t.data,v.upload),{type:"data",id:t.id,data:t.data,binary:t.binary};if(t.type==="head"&&L(t.status,200,599)&&pe(t.headers))return{type:"head",id:t.id,status:t.status,headers:t.headers};if(t.type==="request"&&typeof t.method==="string"&&/^(GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS)$/.test(t.method)&&typeof t.path==="string"&&pe(t.headers)&&typeof t.body==="string"&&typeof t.upgrade==="boolean")return z(t.body,v.upload),{type:"request",id:t.id,method:t.method,path:H(t.path),headers:t.headers,body:t.body,upgrade:t.upgrade};throw Error("preview_frame_invalid")}function re(e){let t=[...e],n=new Set(t.filter(([o])=>o.toLowerCase()==="connection").flatMap(([,o])=>o.toLowerCase().split(",").map((i)=>i.trim()))),s=new Set(["authorization","proxy-authorization","cookie","set-cookie","host","origin","referer","connection","upgrade","keep-alive","transfer-encoding","te","trailer","content-length","forwarded","alt-svc","service-worker-allowed","clear-site-data","refresh"]);return t.filter(([o])=>!s.has(o.toLowerCase())&&!n.has(o.toLowerCase())&&!/^(x-forwarded-|x-ara-|sec-websocket-|access-control-)/i.test(o))}async function te(e){let t;try{return await Promise.race([Promise.resolve().then(e).then((n)=>n===!0||(n===!1?!1:void 0),()=>{return}),new Promise((n)=>{t=setTimeout(()=>n(void 0),v.authorizationMs)})])}finally{clearTimeout(t)}}async function en(e){return await te(e)===!0}function V(e,t){let n=new URL(e);if(n.username||n.password||n.search||n.hash||!(n.protocol==="wss:"||n.protocol==="ws:"&&["127.0.0.1","[::1]"].includes(n.hostname))||!new RegExp(`^/${t}/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]{32,}$`).test(n.pathname))throw Error("preview_relay_invalid");return n.href}function dr(e){if(!J(e)||Object.keys(e).length!==2||typeof e.deviceRelayUrl!=="string")throw Error("preview_open_invalid");return{binding:C(e.binding),deviceRelayUrl:V(e.deviceRelayUrl,"device")}}function Ya(e){if(!J(e)||Object.keys(e).length!==1||!("binding"in e))throw Error("preview_close_invalid");return{binding:C(e.binding)}}var ge="x-preview-connection";async function be(e,t){if(t.aborted)throw Error("preview_closed");let n=Ee(32).toString("base64url"),s=new Set,o=!1,i=Te((c)=>{if(o||t.aborted||s.size>=v.streams*2)return c.destroy();s.add(c);let d=new AbortController;c.once("close",()=>{s.delete(c),d.abort()}),c.on("error",()=>c.destroy()),c.setTimeout(2000,()=>c.destroy());let g=Buffer.alloc(0),w=(m)=>{g=Buffer.concat([g,m]);let f=g.indexOf(`\r
3
+ \r
4
+ `);if(f<0){if(g.length>16384)c.destroy();return}if(c.pause(),c.off("data",w),f>16384||g.length>v.upload+16384)return c.destroy();u(g,f).catch(()=>c.destroy())};c.on("data",w);async function u(m,f){let b=m.subarray(0,f).toString("latin1").split(`\r
5
+ `),_=/^(GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS) (\S+) HTTP\/1\.1$/.exec(b.shift()??"");if(!_)throw Error("preview_request_invalid");H(_[2]);let k=!1,O=0,T=[];for(let B of b){let S=/^([a-zA-Z0-9-]+):[ \t]*([^\x00-\x08\x0a-\x1f\x7f]*)$/.exec(B);if(!S)throw Error("preview_header_invalid");if(S[1].toLowerCase()===ge){O++;let N=Buffer.from(S[2].trim());k=N.length===n.length&&Ae(N,Buffer.from(n))}else if(S[1].toLowerCase()!=="host")T.push(B)}if(!k||O!==1||o||d.signal.aborted)throw Error("preview_connection_denied");let P=await e.connect(d.signal);if(o||d.signal.aborted)throw P.destroy(),Error("preview_closed");s.add(P),P.on("error",()=>c.destroy()),P.once("close",()=>{s.delete(P),c.destroy()}),c.once("close",()=>P.destroy()),c.setTimeout(0);let h=[`${_[1]} ${_[2]} HTTP/1.1`,`Host: 127.0.0.1:${P.remotePort}`,...T,"",""].join(`\r
6
+ `);P.write(Buffer.concat([Buffer.from(h,"latin1"),m.subarray(f+4)])),P.pipe(c),c.pipe(P),c.resume()}});await new Promise((c,d)=>{i.once("error",d),i.listen(0,"127.0.0.1",c)});let a=i.address();if(!a||typeof a==="string")throw i.close(),Error("preview_bind_failed");function l(){if(o)return;o=!0,t.removeEventListener("abort",l);for(let c of s)c.destroy();s.clear(),i.close()}if(t.addEventListener("abort",l,{once:!0}),t.aborted)l();return{port:a.port,headers:{[ge]:n},close:l}}var Le=60000,Ce=1e4,Ne=5000,$e=/^(?:text\/(?!event-stream)|application\/(?:(?:x-)?javascript|json|[a-z.+-]*\+json|xml|[a-z.+-]*\+xml|wasm)|image\/svg\+xml)/i;function Me(e,t,n,s){let o=(c)=>t.find(([d])=>d.toLowerCase()===c)?.[1],i=(c)=>s.find(([d])=>d.toLowerCase()===c)?.[1],a=Number(i("content-length")??Number.NaN);if(e!=="GET"||n!==200||o("range")!==void 0||i("content-encoding")!==void 0||!$e.test(i("content-type")??"")||/\bno-transform\b/i.test(i("cache-control")??"")||a<1024)return null;let l=(c)=>new RegExp(`(?:^|,)\\s*${c}\\s*(?:,|$|;\\s*q=(?:1|0?\\.0*[1-9]))`,"i").test(o("accept-encoding")??"");return l("br")?"br":l("gzip")?"gzip":null}function Oe(e,t){let n=e.filter(([s])=>s.toLowerCase()==="vary").map(([,s])=>s).join(", ");return[...e.filter(([s])=>!["vary","etag","content-md5"].includes(s.toLowerCase())),...e.filter(([s])=>s.toLowerCase()==="etag").map(([s,o])=>[s,o.startsWith("W/")?o:`W/${o}`]),["Content-Encoding",t],["Vary",n.split(",").some((s)=>/^\s*(?:accept-encoding|\*)\s*$/i.test(s))?n:n?`${n}, Accept-Encoding`:"Accept-Encoding"]]}async function Co(e){process.stderr.write(`${JSON.stringify({event:"worker_preview.open_refused",job_id:e.jobId,port:e.port,reason_code:e.reason})}
7
+ `);let t=e.binding,n;try{n=V(e.deviceRelayUrl,"device")}catch{return}if(!t)return;await new Promise((s)=>{let o=new U(n,{followRedirects:!1,perMessageDeflate:!1,maxPayload:4096}),i=setTimeout(()=>{o.terminate(),s()},v.authorizationMs*2);o.addEventListener("open",()=>{o.send(JSON.stringify({type:"refused",binding:t,reason:e.reason})),o.close(1000,`worker_refused_${e.reason}`)}),o.addEventListener("error",()=>{clearTimeout(i),s()}),o.addEventListener("close",()=>{clearTimeout(i),s()})})}async function Fe(e,t){let n=Date.now()+Ce,s;for(;;){if(!t())return"closed";let o=s??=e.refusal().finally(()=>{s=void 0}),i,a=await Promise.race([o.catch(()=>"port_unproved"),new Promise((l)=>{i=setTimeout(()=>l("port_check_timeout"),v.authorizationMs)})]).finally(()=>clearTimeout(i));if(a===null)return null;if(!["listener_unproved","port_check_timeout"].includes(a)||Date.now()+500>=n)return a;await new Promise((l)=>setTimeout(l,500))}}async function pt(e){let t=C(e.binding),n=()=>!e.signal.aborted&&Date.now()<t.expiresAtMs,s=t.expiresAtMs>Date.now()+v.lifetimeMs+Ne?"binding_mismatch":await Fe(e.port,n);if(s)throw await Co({deviceRelayUrl:e.deviceRelayUrl,binding:t,jobId:t.jobId,port:t.port,reason:s}),Error("preview_not_authorized",{cause:s});let o=V(e.deviceRelayUrl,"device"),i=await be(e.port,e.signal),a;try{a=new U(o,{followRedirects:!1,perMessageDeflate:!1,maxPayload:v.upload*1.4+300000})}catch(p){throw i.close(),p}let l=new Map,c=!1,d=!1,g=0,w=!1,u,m,f,b=new Promise((p)=>{f=p}),_,k,O=new Promise((p,y)=>{_=p,k=y}),T=!1,P=(p)=>{let y=Buffer.isBuffer(p)?p:JSON.stringify(p);if(g+=Buffer.byteLength(y),!n()||d||a.readyState!==U.OPEN)return h(n()?"relay_closed":"expired");if(a.bufferedAmount>v.relayBuffered)return h("relay_backlog");if(g>v.total)return h("quota");a.send(y)};function h(p="closed"){if(d)return;d=!0,clearInterval(N),clearTimeout(S),e.signal.removeEventListener("abort",B);for(let y of l.values())y.stop();l.clear(),i.close(),a.close(1000,`worker_${p}`),k(Error("preview_closed")),f()}let B=()=>h("aborted"),S=setTimeout(()=>h("pair_timeout"),v.requestMs),N=setInterval(async()=>{if(!n())return h(e.signal.aborted?"aborted":"expired");if(w)return;w=!0;try{let p=u??=Promise.resolve().then(()=>e.port.check()).finally(()=>{u=void 0}),y=await te(()=>p);if(y===!1)return h("port_refused");if(y){m=void 0;return}if(Date.now()-(m??=Date.now())>Le)return h("port_unknown");for(let E of l.values())E.stop()}finally{w=!1}},1000);if(e.signal.addEventListener("abort",B,{once:!0}),!n())h(e.signal.aborted?"aborted":"expired");a.addEventListener("open",()=>P({type:"hello",binding:t,messages:v.upload,window:v.window})),a.addEventListener("close",()=>h("relay_closed")),a.addEventListener("error",()=>h("relay_error")),a.addEventListener("message",(p)=>{try{if(!n()||d)return h(e.signal.aborted?"aborted":"expired");if(typeof p.data!=="string")throw Error("preview_frame_invalid");if(g+=Buffer.byteLength(p.data),g>v.total)return h("quota");let y=di(p.data);if(!c){if(y.type!=="hello"||!Mt(t,y.binding))return h("binding_mismatch");c=!0,T=y.bytes===!0,clearTimeout(S),_();return}if(y.type==="hello"||y.type==="refused")return h("invalid_frame");if(y.type==="request"){q(y).catch(()=>h("invalid_request"));return}let E=l.get(y.id);if(!E)return;if(y.type==="cancel"||y.type==="end")E.stop();else if(y.type==="credit"&&E.credit)E.credit();else if(y.type==="data"&&E.ws){if(E.ws.readyState!==U.OPEN||E.ws.bufferedAmount>v.buffered)return E.stop();let I=z(y.data,v.upload);E.ws.send(y.binary?I:I.toString("utf8"))}else h("invalid_frame")}catch{h("invalid_frame")}});async function q(p){if(l.has(p.id)||l.size>=v.streams)return h("stream_limit");if(!n())return h(e.signal.aborted?"aborted":"expired");let y=new AbortController,E,I,K,Q=0,R=(W=!1)=>{if(!l.delete(p.id))return;clearTimeout(E),y.abort(),I?.close(1000,"preview_closed"),K?.(),P({type:W?"end":"cancel",id:p.id})},ae={stop:()=>R(),credit:()=>{Q++,K?.()}};if(l.set(p.id,ae),E=setTimeout(R,v.requestMs),!await en(()=>e.port.check())||!n()||y.signal.aborted)return R();let de=H(p.path);if(p.upgrade){if(p.method!=="GET"||p.body)return R();let W=p.headers.find(([A])=>A.toLowerCase()==="sec-websocket-protocol")?.[1].split(",").map((A)=>A.trim());if(W?.some((A)=>!/^[a-zA-Z0-9._-]{1,100}$/.test(A))||(W?.length??0)>8)return R();I=new U(`ws://127.0.0.1:${i.port}${de}`,W,{headers:i.headers,followRedirects:!1,perMessageDeflate:!1,maxPayload:v.upload}),ae.ws=I,I.binaryType="arraybuffer",I.addEventListener("open",()=>{clearTimeout(E),P({type:"ws",id:p.id,protocol:I.protocol})}),I.addEventListener("message",(A)=>{let G=typeof A.data!=="string",M=me(A.data);if(M.length>v.upload)return R();P({type:"data",id:p.id,data:M.toString("base64"),binary:G})}),I.addEventListener("error",()=>R()),I.addEventListener("close",(A)=>R(A.wasClean));return}let xe=z(p.body,v.upload),ce=Ie({hostname:"127.0.0.1",port:i.port,path:de,method:p.method,headers:{...Object.fromEntries(re(p.headers)),...i.headers,connection:"close"},signal:y.signal,agent:!1,maxHeaderSize:16384},async(W)=>{try{let A=[];for(let F=0;F<W.rawHeaders.length;F+=2)A.push([W.rawHeaders[F],W.rawHeaders[F+1]]);let G=W.statusCode??502,M=Me(p.method,p.headers,G,A),ee=M==="br"?Re({flush:ne.BROTLI_OPERATION_FLUSH,params:{[ne.BROTLI_PARAM_QUALITY]:5}}):M==="gzip"?Be({level:6,flush:ne.Z_SYNC_FLUSH}):void 0;if(P({type:"head",id:p.id,status:G,headers:re(M?Oe(A,M):A)}),clearTimeout(E),ee)We(W,ee,()=>{});for await(let F of ee??W){let le=Buffer.from(F);for(let Z=0;Z<le.length;Z+=v.chunk){if(Q===0&&!y.signal.aborted)await new Promise((Se)=>{K=Se});if(K=void 0,y.signal.aborted)return;Q--;let ue=le.subarray(Z,Z+v.chunk);P(T?we(p.id,ue):{type:"data",id:p.id,data:ue.toString("base64"),binary:!0})}}R(!0)}catch{R()}});ce.on("error",()=>R()),ce.end(xe)}return await O,{close:h,closed:b}}import{execFile as ze}from"child_process";import{createRequire as He}from"module";import{win32 as X}from"path";var Ue=250,je=50,De=250,qe=4194304;function ye(e){let t=/^(?:\[([^\]]+)\]|([^:]+)):([0-9]{1,5})$/.exec(e??""),n=Number(t?.[3]);return t&&n<=65535?{address:t[1]??t[2],port:n}:null}function Ke(e){let t=[];for(let n of e.split(/\r?\n/)){let s=n.trim().split(/\s+/);if(s[0]!=="TCP"||s.length<5)continue;let o=ye(s[1]),i=ye(s[2]),a=Number(s.at(-1));if(!o||!i||!Number.isSafeInteger(a)||a<0)continue;t.push({pid:a,localAddress:o.address,localPort:o.port,remoteAddress:i.address,remotePort:i.port,listening:i.port===0})}return t}function Ge(e){if(e.localAddress==="0.0.0.0"||e.localAddress==="::")return`*:${e.localPort}`;return e.localAddress.includes(":")?`[${e.localAddress}]:${e.localPort}`:`${e.localAddress}:${e.localPort}`}var oe=(e)=>new Promise((t,n)=>ze(X.join(Rt("win32").split(";")[0],"NETSTAT.EXE"),["-ano"],{timeout:e,maxBuffer:qe,encoding:"utf8",windowsHide:!0,env:Tt()},(s,o)=>s?n(s):t(o)));function D(e){let t=X.normalize(e.startsWith("\\\\?\\")?e.slice(4):e);return t.length>3&&t.endsWith("\\")?t.slice(0,-1):t}function Ze(e,t){let n=e.toLowerCase(),s=t.toLowerCase();return s===n||s.startsWith(n.endsWith("\\")?n:`${n}\\`)}function Pe(e,t,n){let s=e.cwd(n),o=s?D(s):null;return o&&X.isAbsolute(o)&&Ze(t,o)?o:null}var j;function et(){if(j!==void 0)return j;if(j=null,process.platform!=="win32"||!["x64","arm64"].includes(process.arch))return null;let e;try{e=He(import.meta.url)("bun:ffi")}catch{return null}let{FFIType:t,ptr:n}=e,s,o;try{s=e.dlopen("kernel32.dll",{CreateToolhelp32Snapshot:{args:[t.u32,t.u32],returns:t.u64},Process32FirstW:{args:[t.u64,t.ptr],returns:t.i32},Process32NextW:{args:[t.u64,t.ptr],returns:t.i32},OpenProcess:{args:[t.u32,t.i32,t.u32],returns:t.u64},ReadProcessMemory:{args:[t.u64,t.u64,t.ptr,t.u64,t.ptr],returns:t.i32},CloseHandle:{args:[t.u64],returns:t.i32}}).symbols,o=e.dlopen("ntdll.dll",{NtQueryInformationProcess:{args:[t.u64,t.i32,t.ptr,t.u32,t.ptr],returns:t.i32}}).symbols}catch{return null}let i=0xFFFFFFFFFFFFFFFFn,a=2,l=1040,c=568,d=(g,w,u)=>{let m=Buffer.alloc(u);return s.ReadProcessMemory(g,w,n(m),u,null)?m:null};return j={processes(){let g=BigInt(s.CreateToolhelp32Snapshot(a,0));if(g===i)throw new r("process_inspection_failed","Reading this computer's processes did not complete.");try{let w=Buffer.alloc(c);w.writeUInt32LE(c,0);let u=n(w),m=[];for(let f=s.Process32FirstW(g,u);f;f=s.Process32NextW(g,u)){let b=w.toString("utf16le",44,c),_=b.slice(0,b.includes("\x00")?b.indexOf("\x00"):void 0),k=w.readUInt32LE(8);if(k>0)m.push({pid:k,parentPid:w.readUInt32LE(32),command:_.replace(/\.exe$/i,"")||null})}return m}finally{s.CloseHandle(g)}},cwd(g){let w=BigInt(s.OpenProcess(l,0,g));if(w===0n)return null;try{let u=Buffer.alloc(48);if(o.NtQueryInformationProcess(w,0,n(u),u.length,null)!==0)return null;let m=d(w,u.readBigUInt64LE(8)+0x20n,8)?.readBigUInt64LE(0),f=m?d(w,m+0x38n,16):null,b=f?.readUInt16LE(0)??0;if(!f||b===0||b%2!==0)return null;return d(w,f.readBigUInt64LE(8),b)?.toString("utf16le")??null}finally{s.CloseHandle(w)}}},j}function se(e){if(!e)throw new r("process_inspection_failed","Reading this computer's processes is unavailable.");return e}async function ve(e,t){let n;try{n=await e(t)}catch{throw new r("process_inspection_failed","Reading this computer's ports did not complete.")}return Ke(n)}async function Za(e,t=et()){let n=se(t),s=D(e),o=[];for(let i of n.processes()){if(o.length>=Ue)break;let a=Pe(n,s,i.pid);if(a)o.push({pid:i.pid,command:i.command,cwd:X.relative(s,a)||"."})}return{processes:o}}async function Qa(e,t=et(),n=oe){let s=se(t),o=D(e),i=(await ve(n,5000)).filter((d)=>d.listening&&d.pid>0).map((d)=>({pid:d.pid,port:d.localPort,address:Ge(d)})).sort((d,g)=>d.pid-g.pid||d.port-g.port||(d.address<g.address?-1:d.address>g.address?1:0)),a=[...new Set(i.map((d)=>d.pid))].slice(0,je),l=new Set(a.filter((d)=>Pe(s,o,d)!==null));if(l.size===0)return{ports:[]};let c=new Map(s.processes().map((d)=>[d.pid,d.command]));return{ports:i.filter((d)=>l.has(d.pid)).slice(0,De).map((d)=>({pid:d.pid,command:c.get(d.pid)??null,address:d.address}))}}function he(e,t){let n=new Set([t]);for(let s=!0;s;){s=!1;for(let o of e)if(!n.has(o.pid)&&n.has(o.parentPid)&&o.pid!==o.parentPid)n.add(o.pid),s=!0}return n}function Je(e,t,n,s){let o=(i)=>i==="127.0.0.1"||i==="::ffff:127.0.0.1"||i==="::1";return e.flatMap((i)=>{if(!t.has(i.pid)||i.localPort!==s)return[];let a=i.listening&&(o(i.localAddress)||["0.0.0.0","::"].includes(i.localAddress)),l=!i.listening&&o(i.localAddress)&&o(i.remoteAddress);if(!a&&!l)return[];let c=`${i.localAddress}:${i.localPort}>${i.remoteAddress}:${i.remotePort}`;return[{pid:i.pid,processGroupId:n,descriptor:String(i.pid),kernelId:c,state:a?"listen":"established",port:s,peerPort:a?null:i.remotePort,host:i.localAddress==="::1"?"::1":"127.0.0.1"}]})}async function _e(e,t,n=et(),s=oe){let o=se(n),i=he(o.processes(),e),a=await ve(s,1000),l=he(o.processes(),e);return Je(a,new Set([...i].filter((c)=>l.has(c))),e,t)}async function ec(e,t=et(),n=oe){if(!t||e.aborted)return!1;let s=t.processes().some((l)=>l.pid===process.pid),o=t.cwd(process.pid),i=o!==null&&D(o).toLowerCase()===D(process.cwd()).toLowerCase(),a=await n(5000).then((l)=>/^\s*TCP\s/m.test(l),()=>!1);return s&&i&&a&&!e.aborted}import{execFile as Ve}from"child_process";import{readFile as Xe,readdir as Ye,readlink as Qe}from"fs/promises";import{connect as er}from"net";import{setTimeout as rr}from"timers/promises";var tr={directory:Ye,text:(e)=>Xe(e,"utf8"),link:Qe};class ie extends Error{code;constructor(e="port_unproved"){super("preview_port_ownership_unproved");this.code=e}}var x=(e)=>new ie(e),Y="preview_listener_unproved",ke="00000000000000000000000001000000";async function nr(e,t,n=tr){let s=new Map;for(let a of["tcp","tcp6"]){let l=await n.text(`/proc/net/${a}`);if(l.length>4194304)throw x();for(let c of l.split(`
8
+ `).slice(1)){let d=c.trim().split(/\s+/);if(d.length<10||!["0A","01"].includes(d[3]))continue;let[g,w]=d[1].split(":"),[u,m]=d[2].split(":");if(Number.parseInt(w,16)!==t)continue;let f=(k)=>k==="0100007F"||k==="0000000000000000FFFF00000100007F"||k===ke,b=d[3]==="0A";if(!(f(g)||b&&/^0+$/.test(g??"")))continue;if(!b&&!f(u))continue;let _=d[9];if(!/^[1-9][0-9]*$/.test(_))continue;s.set(_,{kernelId:_,port:t,peerPort:b?null:Number.parseInt(m,16),state:b?"listen":"established",host:g===ke?"::1":"127.0.0.1"})}}let o=await n.directory("/proc");if(o.length>8192)throw x();let i=[];for(let a of o){if(!/^[1-9][0-9]*$/.test(a))continue;try{let l=await n.text(`/proc/${a}/stat`),c=l.slice(l.lastIndexOf(")")+2).trim().split(/\s+/);if(Number(c[2])!==e)continue;let d=await n.directory(`/proc/${a}/fd`);if(d.length>1024)throw x();let g=[];for(let m of d){if(!/^[0-9]+$/.test(m))continue;let f=await n.link(`/proc/${a}/fd/${m}`).catch(()=>""),b=/^socket:\[([0-9]+)\]$/.exec(f)?.[1],_=b?s.get(b):void 0;if(_)g.push({..._,pid:Number(a),processGroupId:e,descriptor:m})}let w=await n.text(`/proc/${a}/stat`),u=w.slice(w.lastIndexOf(")")+2).trim().split(/\s+/);if(c[19]===u[19]&&c[2]===u[2])i.push(...g)}catch(l){if(l instanceof Error&&l.message==="preview_port_ownership_unproved")throw l}}return i}function or(e,t,n){if(e.length>2097152)throw x();let s=0,o=0,i="",a="",l="",c="",d=[],g=()=>{if(s<1||o!==t||!/^\d+$/.test(i)||!/^0x[0-9a-f]+$/i.test(a))return;let w=c==="LISTEN"&&["*","127.0.0.1","[::ffff:127.0.0.1]","[::1]"].some((m)=>l===`${m}:${n}`),u=new RegExp(`^(?:127\\.0\\.0\\.1|\\[::ffff:127\\.0\\.0\\.1\\]|\\[::1\\]):${n}->(?:127\\.0\\.0\\.1|\\[::ffff:127\\.0\\.0\\.1\\]|\\[::1\\]):([0-9]+)$`).exec(l);if(w||c==="ESTABLISHED"&&u)d.push({pid:s,processGroupId:o,descriptor:i,kernelId:a,state:w?"listen":"established",port:n,peerPort:w?null:Number(u[1]),host:l.startsWith("[::1]:")?"::1":"127.0.0.1"})};for(let w of e.split(/[\0\n]/)){let u=w.slice(1);if(w[0]==="p")g(),s=Number(u),o=0,i=a=l=c="";else if(w[0]==="g")o=Number(u);else if(w[0]==="f")g(),i=u,a=l=c="";else if(w[0]==="d")a=u;else if(w[0]==="n")l=u;else if(w.startsWith("TST="))c=w.slice(4)}return g(),d}async function sr(e,t){if(process.platform==="linux")return nr(e,t);if(process.platform==="win32")return _e(e,t);if(process.platform!=="darwin")throw x();let n=await new Promise((s,o)=>Ve("/usr/sbin/lsof",["-nP","-a","-g",String(e),`-iTCP:${t}`,"-F0pgfdnT"],{timeout:1000,maxBuffer:2097152,encoding:"utf8",env:{PATH:"/usr/bin:/bin",LC_ALL:"C"}},(i,a)=>i?o(x()):s(a)));return or(n,e,t)}function ht(e,t={}){let n=C(e.binding),s=t.inspectSockets??sr,o=t.monotonicNow??(()=>performance.now());async function i(){let u=()=>{if(Date.now()>=n.expiresAtMs)throw x("binding_expired");if(e.deniedPorts.has(n.port))throw x("port_denied")};u();let m=await e.readCurrentJob(),f=m?.job,b=f?.process;if(u(),!m)throw x("server_stopped");if(!Mt(n,m.binding)||f?.jobId!==n.jobId)throw x("binding_changed");if(f.state!=="running"||f.finishedAtMs!==null||f.leaseExpiresAtMs<n.expiresAtMs)throw x("job_not_running");if(!b||b.pid<1||b.pid!==b.processGroupId||b.executorLaunchId!==m.executorLaunchId)throw x("process_unproved");return{pid:b.pid,launch:b.executorLaunchId,started:f.startedAtMs}}let a,l;async function c(){let u=await i(),m=await s(u.pid,n.port).catch(()=>{throw Error(Y)}),f=await i();if(u.pid!==f.pid||u.launch!==f.launch||u.started!==f.started)throw x("job_restarted");return m}async function d(u){for(;;){if(l&&l.startedAt>=u)return l.sockets;if(a&&a.startedAt>=u)return await a.sockets;if(a){await a.sockets.catch(()=>{});continue}let m={startedAt:o(),sockets:c()};a=m;try{let f=await m.sockets;if(!l||l.startedAt<=m.startedAt)l={startedAt:m.startedAt,sockets:f};return f}finally{if(a===m)a=void 0}}}async function g(u=()=>{},m=o()){u();let f=await d(m);if(u(),Date.now()>=n.expiresAtMs)throw x("binding_expired");if(!f.some((b)=>b.state==="listen"))throw Error(Y);return f}async function w(){try{return await g(()=>{},o()-1000),null}catch(u){if(u instanceof Error&&u.message===Y)return"listener_unproved";return u instanceof ie?u.code:"port_unproved"}}return{refusal:w,async check(){let u=await w();if(u==="listener_unproved")throw Error(Y);return u===null},async connect(u){if(u.aborted)throw x();let m=o()+2000,f=new AbortController,b=new Promise((h)=>f.signal.addEventListener("abort",()=>h(null),{once:!0})),_,k=()=>{f.abort(),_?.destroy()},O=setTimeout(k,2000);u.addEventListener("abort",k,{once:!0});let T=()=>{if(f.signal.aborted||u.aborted||o()>=m||_?.destroyed)throw k(),x()};async function P(h){T();let B=await Promise.race([h().then((S)=>({value:S})),b]);if(T(),!B)throw x();return B.value}try{let h=await P(()=>g(T,o()-1000));T();let B=h.some((p)=>p.state==="listen"&&p.host==="127.0.0.1")?"127.0.0.1":"::1",S=er({host:B,port:n.port,signal:u});_=S,S.once("close",k),await P(()=>new Promise((p,y)=>{S.once("connect",p),S.once("error",y)}));let N=S.localPort;if(!N)throw x();let q=o();while(!(await P(()=>g(T,q))).some((p)=>p.state==="established"&&p.peerPort===N))await P(()=>rr(Math.min(20,Math.max(1,m-o())),void 0,{signal:f.signal})),q=o();return T(),S}catch(h){throw k(),h}finally{clearTimeout(O),u.removeEventListener("abort",k),_?.off("close",k),f.abort()}}}}
9
+ export{v,Mt,di,en,dr,Ya,Co,pt,et,Za,Qa,ec,ht};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Je,wo,U,Xe,Jt,zr,x}from"./vm-hands-entry-lite-ecz6fzds.js";import{K}from"./vm-hands-entry-lite-wghmyfba.js";import{ft}from"./vm-hands-entry-lite-2v4zh9ze.js";import{gt}from"./vm-hands-entry-lite-2twtpxmp.js";import{qr}from"./vm-hands-entry-lite-j3fw7x65.js";import{Pt,Hi}from"./vm-hands-entry-lite-qd46yhvz.js";import{G,qe}from"./vm-hands-entry-lite-kf2jgke1.js";import{xe,Jn}from"./vm-hands-entry-lite-s0rx4fm8.js";import{St}from"./vm-hands-entry-lite-07apxfh8.js";import{a}from"./vm-hands-entry-lite-8dfw96ym.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{C}from"./vm-hands-entry-lite-tyem93c1.js";import{spawn as v,spawnSync as st}from"child_process";import{createHash as it,randomUUID as ge}from"crypto";import{closeSync as at,copyFileSync as ae,existsSync as D,fstatSync as ct,mkdirSync as ce,openSync as lt,readdirSync as L,readFileSync as X,readlinkSync as ut,renameSync as he,rmSync as dt,statSync as pt,writeFileSync as mt}from"fs";import{connect as ht}from"net";import{tmpdir as B,userInfo as _e}from"os";import{basename as le,delimiter as _t,dirname as q,join as f}from"path";var z=`import { spawn, execFileSync } from "node:child_process";
2
+ import{Gt,lc,le,Kt,yn,wn,T}from"./vm-hands-entry-lite-hn9pq7zj.js";import{ue}from"./vm-hands-entry-lite-q9djb28r.js";import{Er}from"./vm-hands-entry-lite-j10cw3d9.js";import{kr}from"./vm-hands-entry-lite-6jxshhps.js";import{Li}from"./vm-hands-entry-lite-wcgm41jq.js";import{Br,pa}from"./vm-hands-entry-lite-z0ht62s4.js";import{Te,Ft}from"./vm-hands-entry-lite-z213y4pj.js";import{de,Ue}from"./vm-hands-entry-lite-m1we91g4.js";import{Tr}from"./vm-hands-entry-lite-71ebge0c.js";import{s}from"./vm-hands-entry-lite-zawytz09.js";import{B}from"./vm-hands-entry-lite-8xv6c0rm.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{spawn as k,spawnSync as rt}from"child_process";import{createHash as nt,randomUUID as ge}from"crypto";import{closeSync as st,copyFileSync as ne,existsSync as M,fstatSync as it,mkdirSync as se,openSync as at,readdirSync as D,readFileSync as G,readlinkSync as ct,renameSync as he,rmSync as lt,statSync as ut,writeFileSync as dt}from"fs";import{connect as pt}from"net";import{tmpdir as L,userInfo as _e}from"os";import{basename as ie,delimiter as mt,dirname as U,join as f}from"path";var K=`import { spawn, execFileSync } from "node:child_process";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { readFileSync, readlinkSync, lstatSync, realpathSync, statSync, mkdtempSync, mkdirSync, chmodSync, writeFileSync, readdirSync, rmSync, openSync, readSync, closeSync, renameSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
@@ -950,7 +950,7 @@ if(process.env.REASON_CLOUD_GATEWAY_EXEC === "1") {
950
950
  process.stdout.write(JSON.stringify(cloudAutomationFailure(error))+"\\n");process.exitCode=1;
951
951
  }
952
952
  }
953
- `;import{spawn as Ce}from"child_process";import{lstatSync as V,readFileSync as Z,rmSync as Ne}from"fs";import{basename as Pe}from"path";var Me="__desktop-call",De="/usr/bin/setpriv",Le=27262976,Ue=8192,$e=2000;function W(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function Be(e){try{return JSON.parse(e)}catch{return null}}function We(){return[process.execPath,...Pe(process.execPath).startsWith("bun")&&process.argv[1]?[process.argv[1]]:[],Me]}function Fe(e){let o=(i)=>{try{return V(i).uid}catch{return null}},t=V("/tmp/.X11-unix",{throwIfNoEntry:!1});if(!t?.isDirectory()||t.uid!==0)return;let n=["/tmp/.X99-lock","/tmp/.X11-unix/X99"].filter((i)=>{let u=o(i);return u!==null&&u!==e.uid});if(!n.length)return;let s="";try{let i=Z("/tmp/.X99-lock","utf8").trim();if(/^\d+$/.test(i))s=Z(`/proc/${i}/comm`,"utf8").trim()}catch{}if(/^X/.test(s))return;for(let i of n)Ne(i,{force:!0})}function Bt(e,o,t,n={}){if(t.throwIfAborted(),(o.op==="display"||o.op==="automation")&&process.platform==="linux"&&process.getuid?.()===0)try{Fe(e)}catch{}let s=n.command??We();return new Promise((i,u)=>{let c=(n.spawnProcess??Ce)(De,[`--reuid=${e.uid}`,`--regid=${e.gid}`,"--clear-groups","--no-new-privs","--",...s],{cwd:e.home,detached:!0,stdio:["pipe","pipe","pipe"],env:{HOME:e.home,USER:e.username,LOGNAME:e.username,PATH:"/usr/local/bin:/usr/bin:/bin"}}),d=[],m=0,l="",p=null,g=!1,_,h=(y)=>{try{process.kill(-c.pid,y)}catch{c.kill(y)}},I=(y)=>{p??=y,h("SIGTERM"),_??=setTimeout(()=>h("SIGKILL"),$e)},S=()=>I(new r("cancelled","Reason cancelled the desktop operation."));t.addEventListener("abort",S,{once:!0});let w=(y)=>{if(g)return;g=!0,clearTimeout(_),t.removeEventListener("abort",S),y()};if(c.stdout.on("data",(y)=>{if(m+=y.byteLength,m>Le)I(new r("desktop_delegate_failed","Reason's desktop reply is too large."));else d.push(y)}),c.stderr.setEncoding("utf8").on("data",(y)=>{l=(l+y).slice(-Ue)}),c.stdin.on("error",()=>{}),c.once("error",()=>w(()=>u(p??new r("desktop_delegate_unavailable","Reason could not start its desktop as the desktop account.")))),c.once("close",(y,Ee)=>w(()=>{if(p)return u(p);let b=Be(Buffer.concat(d).toString("utf8"));if(W(b)&&b.ok===!0&&W(b.result))return i(b.result);let A=W(b)&&b.ok===!1&&typeof b.code==="string"&&typeof b.message==="string"?new r(b.code.slice(0,120),b.message.slice(0,2000)):null,J=`exited ${y??Ee}${A?"":" with no reply"}`,Y=l.trim().split(`
954
- `).at(-1)?.slice(-300)??"";if(!A||A.code==="desktop_delegate_failed")process.stderr.write(`Reason worker: desktop call ${J}${l?`: ${l.trim().slice(-500)}`:""}
955
- `);if(A)return u(A);u(new r("desktop_delegate_failed",`Reason's desktop operation failed (${J}${Y?`: ${Y}`:""}).`))})),t.aborted)S();c.stdin.end(JSON.stringify(o))})}async function Q(e,o,t,n={}){let s=await Bt(e,{op:"automation",call:o},t,n);if(!Number.isSafeInteger(s.code)||typeof s.stdout!=="string"||typeof s.stderr!=="string")throw new r("desktop_delegate_failed","Reason's desktop reply is malformed.");return{code:s.code,stdout:Buffer.from(s.stdout,"base64"),stderr:s.stderr}}import{execFile as He,spawn as Ge}from"child_process";import{closeSync as je,mkdirSync as Ke,openSync as Ye}from"fs";import{dirname as E,join as ze}from"path";import{promisify as Ve}from"util";var Ze=Ve(He),ee="x-apple.systempreferences:com.apple.preference.security",Qe={accessibility:`${ee}?Privacy_Accessibility`,screen:`${ee}?Privacy_ScreenCapture`},et=64,O=new Map;function T(e,o){let t=O.get(e);if(t?.has(o))return!1;if(!t){if(O.size>=et)O.delete(O.keys().next().value);t=new Set,O.set(e,t)}return t.add(o),!0}function tt(){let e=a(),o=Jn(xe(e),process.env),t=ze(e,".local","share","reason","desktop-install.log");Ke(E(t),{recursive:!0,mode:448});let n=Ye(t,"a",384);try{let s=Ge(o,["desktop","install"],{detached:!0,stdio:["ignore",n,n],env:{...process.env,REASON_DESKTOP_BACKGROUND:"1"}});s.on("error",()=>{return}),s.unref()}finally{je(n)}}var N={open:async(e,o)=>{await Ze("/usr/bin/open",e,{signal:o,timeout:1e4,maxBuffer:8192})},request:(e,o)=>ft(e,o),tile:qr,installDesktop:tt},te=!1;async function oe(e,o,t){try{await o.open(["-a","Google Chrome",e],t)}catch{t.throwIfAborted(),await o.open([e],t)}}async function ne(e,o,t,n){if(await t.open([Qe[o]],n).catch(()=>{}),e[0]&&!n.aborted)t.tile(E(E(E(e[0]))),o)}async function ot(e,o,t,n,s){for(let i of t){if(!T(e,`grant:${i}`))continue;s.throwIfAborted(),await n.request(o,i).catch(()=>null),await ne(o,i,n,s)}}var rt={name:"open_tab",description:"Open a web page in the user's own Chrome on this Mac. Reason cannot read, screenshot or click in that tab, and no tab_id is returned: browser control needs Reason's Chrome extension. An actual browser call opens its setup page.",inputSchema:{type:"object",properties:{url:{type:"string",description:"An http or https URL."}},required:["url"],additionalProperties:!1}};function re(e){return{code:0,stderr:"",stdout:Buffer.from(JSON.stringify({ok:!0,...e}))}}function nt(e){if(typeof e!=="string")return null;try{let o=new URL(e);return o.protocol==="https:"||o.protocol==="http:"?o.href:null}catch{return null}}async function se(e,o=N){let{call:t,runId:n,signal:s}=e;if(t.kind==="browser"){if(t.operation==="discover")return re({result:{tools:[rt]}});if(t.operation!=="call")throw new r("automation_browser_setup_required","Browser control is not set up on this Mac yet. Request a browser operation or connect Chrome from Reason to set it up.")}if(e.desktopMissing&&!te){te=!0;try{o.installDesktop()}catch{}}if(t.kind==="computer"){if(e.identity.length>0&&T(n,"grant:probe")){let c=await o.request(e.identity).catch(()=>null),d=c?[...c.accessibility?[]:["accessibility"],...c.screen?[]:["screen"]]:[];for(let m of d)T(n,`grant:${m}`);for(let m of d)await ne(e.identity,m,o,s)}throw new r("automation_computer_setup_required","Computer use is not set up on this Mac yet; Reason asked macOS for any missing permission.")}if(T(n,"page:chrome-extension"))await oe(wo,o,s).catch(()=>{});let i=t.arguments,u=t.operation==="call"&&t.tool==="open_tab"&&i&&typeof i==="object"&&!Array.isArray(i)?nt(i.url):null;if(!u)throw new r("automation_browser_setup_required","Browser control is not set up on this Mac yet; Reason opened its Chrome Web Store page. open_tab still opens pages.");return await oe(u,o,s),re({result:{content:[{type:"text",text:JSON.stringify({opened:u,browser:"the user's Chrome",controllable:!1,note:"Opened for the user to see. Reason cannot read or act in this tab until Reason's Chrome extension is added (its Chrome Web Store page is open)."})}]}})}async function ie(e,o=N){if(e.call.kind!=="computer"||e.call.operation!=="permission_status"||e.output.code!==0||e.identity.length===0)return e.output;let t;try{t=JSON.parse(e.output.stdout.toString("utf8"))}catch{return e.output}if(!t||typeof t!=="object"||Array.isArray(t))return e.output;let n=t.permissions;if(!n||typeof n!=="object")return e.output;let s=n,i=[...s.accessibility==="missing"?["accessibility"]:[],...s.screenRecording==="missing"?["screen"]:[]];if(i.length===0)return e.output;return await ot(e.runId,e.identity,i,o,e.signal),{...e.output,stdout:Buffer.from(JSON.stringify({...t,requested:i}))}}var j=172032,wt=18874368,yt=8192,bt=65536,xt=55000,kt=60000,vt=4,It=40000,Rt=/^[0-9a-f-]{36}$/,ue=z,At=ge();function P(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function M(){throw new r("invalid_automation_request","Reason automation request is malformed.")}function we(e){let o=Object.keys(e).sort().join(",");if(o==="call"||o==="browser,call"){let t=e.call,n=o==="browser,call";if(!P(t)||t.version!==1||t.kind!=="computer"&&t.kind!=="browser"||n&&(e.browser!==St||t.kind!=="browser")||JSON.stringify(t).length>bt)M();return{call:t,userChrome:n}}if(o==="offset,output_id"){if(typeof e.output_id!=="string"||!Rt.test(e.output_id)||!Number.isSafeInteger(e.offset)||e.offset<0)M();return{output_id:e.output_id,offset:e.offset}}return M()}function Pn(e=process.platform,o=x){if(e==="darwin")return!0;return(e==="linux"||e==="win32")&&o()?.features.computer===!0}var Ot="__computer-use";function Us(e=x){return e()?.userChrome??{code:"user_chrome_browser_use_missing"}}function ye(e,o,t,n){return new Promise((s)=>{let i=v(e,o,{env:t,stdio:"ignore",windowsHide:!0}),u=setTimeout(()=>{i.kill("SIGKILL"),s(-1)},n);i.once("error",()=>{clearTimeout(u),s(-1)}),i.once("exit",(c)=>{clearTimeout(u),s(c??-1)})})}function Et(e,o,t,n){return new Promise((s)=>{let i=v(e,o,{env:t,stdio:["ignore","pipe","ignore"],windowsHide:!0}),u="";i.stdout.setEncoding("utf8").on("data",(d)=>{u+=d});let c=setTimeout(()=>{i.kill("SIGKILL"),s(null)},n);i.once("error",()=>{clearTimeout(c),s(null)}),i.once("close",(d)=>{clearTimeout(c),s(d===0?u:null)})})}function Tt(e){return R(e)?f(B(),"open-browser-use"):"/tmp/open-browser-use"}function R(e){return e.platform==="win32-x64"||e.platform==="win32-arm64"}var Ct=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,Nt=33554432;function Mt(e,o){let t;try{t=e===null?null:JSON.parse(e)}catch{return null}let n=P(t)&&P(t.result)?t.result.metadata:null;if(!P(n)||n.extensionId!==o)return null;return typeof n.extensionInstanceId==="string"&&Ct.test(n.extensionInstanceId)?n.extensionInstanceId:null}async function be(e,o,t){let n=t.storages.map((c)=>{try{return L(c).filter((d)=>d.endsWith(".log")||d.endsWith(".ldb")).map((d)=>f(c,d))}catch{return[]}}),s;try{s=n.some((c)=>c.length>0)?L(t.socketDir).filter((c)=>c.endsWith(".sock")):[]}catch{return[]}let i=[];for(let c of s){let d=f(t.socketDir,c),m=Mt(await Et(e,["info","--socket",d,"--timeout","2s"],o,5000),t.extensionId);if(m)i.push({instance:m,socket:d})}let u=[];for(let[c,d]of(i.length>0?n:[]).entries())for(let m of d)try{if(pt(m).size>Nt)continue;let l=X(m),p=i.find((g)=>l.includes(g.instance));if(p){u.push({storage:t.storages[c],...p});break}}catch{}return u}async function Dt(e,o,t){return(await be(e,o,t))[0]?.instance??null}function Se(e,o,t){return Dt(e.nativeHost,o,{socketDir:Tt(e),extensionId:U,storages:[f(t,"browser-profile","Default","Local Extension Settings",U)]})}var de=/^(Default|Profile ([0-9]+))$/;async function Lt(e,o,t=a(),n=Jt){let s=f(t,"Library","Application Support","Google","Chrome"),i=[];try{i=L(s)}catch(l){if(l.code==="EPERM")throw new r("browser_use_chrome_access_denied","macOS blocked Reason from reading Chrome's profiles. Allow Full Disk Access for Reason on this Mac and try again.")}let u=(l)=>Number(de.exec(l)?.[2]??-1),c=i.filter((l)=>de.test(l)&&D(f(s,l,"Extensions",Je))).sort((l,p)=>u(l)-u(p)),d=(l)=>f(s,l,"Local Extension Settings",Je);return(await be(e,o,{socketDir:n,extensionId:Je,storages:c.map(d)})).map(({storage:l,instance:p,socket:g})=>({profile:c.find((_)=>d(_)===l),instance:p,socket:g}))}async function Ut(e,o,t=a(),n=Jt){let s=(await Lt(e,o,t,n))[0]?.instance;if(!s)throw new r("automation_user_chrome_not_connected","No Chrome profile on this Mac is connected to Reason. Open Chrome with the Reason extension, then try again.");return s}function pe(e){return new Promise((o)=>{let t=ht({path:e}),n=(s)=>{t.destroy(),o(s)};t.setTimeout(1000,()=>n(!1)),t.once("error",()=>n(!1)),t.once("connect",()=>n(!0))})}async function ke(e,o){let t=Date.now()+o;while(Date.now()<t){if(await e())return!0;await new Promise((n)=>setTimeout(n,200))}return!1}var F=new Map;function H(e,o){let t=F.get(e);if(!t)t=o().finally(()=>F.delete(e)),F.set(e,t);return t}async function $t(e,o){if(await pe(e))return;if(dt(e,{force:!0}),await ye("dbus-daemon",["--session",`--address=unix:path=${e}`,"--fork"],o,1e4)!==0||!await ke(()=>pe(e),5000))throw new r("automation_unavailable","Reason could not start the desktop session bus.")}async function me(e,o,t){let n=e.platform==="darwin-arm64"||R(e)?async()=>await Se(e,o,t)!==null:async()=>await ye(e.nativeHost,["info"],o,5000)===0;if(await n())return;let s=["--profile-directory=Default",`--load-extension=${e.extensionDir}`,"--no-first-run","--no-default-browser-check","--window-size=1280,800","about:blank"],i,u=null,c=0;if(e.platform==="darwin-arm64"){let l=f(t,"browser-profile");G(l);let p=f(l,"NativeMessagingHosts");ce(p,{recursive:!0,mode:448});let g=zr(e.platform).nativeHostManifests[0];ae(g,f(p,le(g)));let _=e.browser.slice(0,e.browser.indexOf(".app/")+4),h=s.filter((I)=>I!=="about:blank").concat("--no-startup-window","--use-mock-keychain");i=v("/usr/bin/open",["-g","-n","-a",_,"--args",`--user-data-dir=${l}`,...h],{env:o,stdio:"ignore"})}else if(R(e)){let l=f(t,"browser-profile");G(l),st(C("icacls"),[q(e.browser),"/grant","*S-1-15-2-1:(OI)(CI)(RX)","*S-1-15-2-2:(OI)(CI)(RX)"],{stdio:"ignore",windowsHide:!0,timeout:60000});let p=s.filter((g)=>g!=="about:blank").concat("--no-startup-window","--keep-alive-for-test");i=v(e.browser,[`--user-data-dir=${l}`,...p],{detached:!0,stdio:"ignore",env:o})}else{let l=f(o.HOME,".config","google-chrome"),p=f(l,"NativeMessagingHosts");ce(p,{recursive:!0,mode:448});let g=zr(e.platform).nativeHostManifests[0];ae(g,f(p,le(g)));let _=process.geteuid?.()===0?["--no-sandbox"]:[];u=f(t,"browser.log");let h=lt(u,"a",384);c=ct(h).size,i=v(e.browser,[`--user-data-dir=${l}`,...s,..._,"--force-renderer-accessibility"],{detached:!0,stdio:["ignore",h,h],env:{...o,ACCESSIBILITY_ENABLED:"1"}}),at(h)}let d=!1;i.once("error",()=>{d=!0}),i.once("exit",(l)=>{d||=l!==0}),i.unref();let m=!1;if(await ke(async()=>d||(m=await n()),It),!m){if(u&&X(u).subarray(c).toString("utf8").includes("No usable sandbox"))throw new r("automation_browser_sandbox_unavailable","Chromium found no usable sandbox on this machine. Run the worker as a non-root user with unprivileged user namespaces enabled, or in a container with seccomp unconfined.");throw new r("automation_browser_unavailable","Reason could not connect the desktop browser.")}}async function zs(e){await Re(e,!0)}function qs(e){return ve(e,Ie(e))}function ve(e,o){return e.platform==="darwin-arm64"||R(e)?f(o,"browser-profile"):f(o,"home",".config","google-chrome")}function Ie(e){let o=f(e.root,"automation");if(!D(o)||!qt(e.automation))return e.automation;if(!Wt(ve(e,o)))try{he(o,e.automation)}catch{}return D(o)?o:e.automation}function qt(e){try{return L(e).length===0}catch(o){return o.code==="ENOENT"}}function Wt(e){let o;try{o=ut(f(e,"SingletonLock"))}catch{return!1}let t=Number(o.slice(o.lastIndexOf("-")+1));if(!Number.isSafeInteger(t)||t<=0)return!0;try{return process.kill(t,0),!0}catch(n){return n.code==="EPERM"}}async function Re(e,o){Pt({root:e.root,automation:e.automation,extensionDir:e.extensionDir});let t=Ie(e);G(t);let n=_e().username,s={USER:n,LOGNAME:n,REASON_AUTOMATION_OCU:e.ocu,REASON_AUTOMATION_OBU:e.nativeHost};if(e.platform==="darwin-arm64"||R(e)){let l=R(e)?{...s,...Ft(),HOME:a()}:{...s,HOME:a(),PATH:`${q(e.node)}:/usr/bin:/bin:/usr/sbin:/sbin`,REASON_AUTOMATION_OCU:process.execPath,REASON_AUTOMATION_OCU_SUBCOMMAND:Ot};if(!o)return l;await H("browser",()=>me(e,l,t));let p=await Se(e,l,t);if(!p)throw new r("automation_browser_unavailable","Reason could not connect the desktop browser.");return{...l,REASON_AUTOMATION_OBU_INSTANCE:p,REASON_AUTOMATION_BACKGROUND_TABS:"1"}}let i=await qe(),u=f(t,"home"),c=f(t,"runtime");G(u),G(c);let d=f(t,"bus"),m={...s,HOME:u,PATH:`${q(e.node)}:/usr/bin:/bin`,DISPLAY:i.display,XAUTHORITY:i.xauthority,XDG_RUNTIME_DIR:c,DBUS_SESSION_BUS_ADDRESS:`unix:path=${d}`,...i.sound?{PULSE_SERVER:Xe(i.sound)}:{}};if(await H("bus",()=>$t(d,m)),o)await H("browser",()=>me(e,m,t));return m}function Ft(){let e=process.env.SystemRoot??"C:\\Windows",o=Object.fromEntries(["SystemDrive","USERPROFILE","LOCALAPPDATA","APPDATA","ProgramData","ProgramFiles","PATHEXT","ComSpec","USERNAME","USERDOMAIN","COMPUTERNAME","NUMBER_OF_PROCESSORS","PROCESSOR_ARCHITECTURE","PSModuleAnalysisCachePath"].flatMap((n)=>process.env[n]?[[n,process.env[n]]]:[])),t=f(e,"System32");return{...o,SystemRoot:e,windir:e,TEMP:B(),TMP:B(),PATH:[t,f(t,"WindowsPowerShell","v1.0"),e].join(_t)}}async function Ht(e,o,t){let n=_e().username,s={USER:n,LOGNAME:n,HOME:a(),PATH:`${q(e.node)}:/usr/bin:/bin:/usr/sbin:/sbin`,REASON_AUTOMATION_OBU:o,REASON_AUTOMATION_BACKGROUND_TABS:"1"},i=await Ut(o,s);return t.throwIfAborted(),{...s,REASON_AUTOMATION_OBU_INSTANCE:i}}function Gt(e){if(process.platform!=="win32")return["--input-type=module","--eval",e];let o=f(B(),`reason-automation-${it("sha256").update(e).digest("hex").slice(0,16)}.mjs`);if(!D(o)||X(o,"utf8")!==e){let t=`${o}.${process.pid}.tmp`;mt(t,e,{mode:384}),he(t,o)}return[o]}function Ae(e,o,t,n){if(typeof ue!=="string")return Promise.reject(new r("automation_unavailable","This Reason build has no automation runtime."));let s=ue;return new Promise((i,u)=>{let c=v(e,Gt(s),{env:{...o,REASON_CLOUD_GATEWAY_EXEC:"1",REASON_AUTOMATION_INLINE_RESULT:"1"},stdio:["pipe","pipe","pipe"],detached:process.platform!=="win32",windowsHide:!0}),d=[],m=0,l="",p=null,g=!1,_=(w)=>{if(p??=w,process.platform==="win32"&&c.pid){v(f(process.env.SystemRoot??"C:\\Windows","System32","taskkill.exe"),["/pid",String(c.pid),"/t","/f"],{stdio:"ignore",windowsHide:!0}).once("error",()=>c.kill("SIGKILL"));return}try{process.kill(-c.pid,"SIGKILL")}catch{c.kill("SIGKILL")}},h=(w)=>{if(g)return;g=!0,clearTimeout(I),n.removeEventListener("abort",S),w()},I=setTimeout(()=>_(new r("automation_timed_out","Reason automation did not finish in time.")),xt),S=()=>_(new r("cancelled","Reason cancelled the automation call."));if(n.addEventListener("abort",S,{once:!0}),c.stdout.on("data",(w)=>{if(m+=w.byteLength,m>wt)_(new r("automation_output_too_large","Reason automation output is too large."));else d.push(w)}),c.stderr.setEncoding("utf8").on("data",(w)=>{l=(l+w).slice(-yt)}),c.stdin.on("error",()=>{}),c.once("error",()=>h(()=>u(p??new r("automation_unavailable","Reason could not start the automation runtime.")))),c.once("close",(w)=>h(()=>{if(p)u(p);else i({code:w??1,stdout:Buffer.concat(d),stderr:l})})),n.aborted)S();c.stdin.end(t)})}var k=new Map;function jt(e,o,t){for(let[s,i]of k)if(i.expiresAt<=t)k.delete(s);while(k.size>=vt)k.delete(k.keys().next().value);let n=ge();return k.set(n,{runId:e,bytes:o,expiresAt:t+kt}),n}async function Oe(e,o,t,n={}){let s=await(n.environment??Re)(e,o.kind==="browser");return t.throwIfAborted(),await(n.runtime??Ae)(e.node,s,JSON.stringify(o),t)}async function Ws(e,o){let t=we({call:e});if(!("call"in t))M();let n=x();if(!n?.features.computer||t.call.kind==="browser"&&!n.features.browser)throw new r("automation_unavailable","Run `reason desktop install` on this machine to enable computer and browser use.");return await Oe(n,t.call,o)}function fe(e,o,t){let n=e.stdout.byteLength>j?jt(o,e.stdout,t):void 0;return{code:e.code,stderr:e.stderr,instance_id:At,output_bytes:e.stdout.byteLength,chunk:e.stdout.subarray(0,j).toString("base64"),...n?{output_id:n}:{}}}async function Rn(e,o={}){let t=we(e.payload),n=(o.now??Date.now)();if("output_id"in t){let h=k.get(t.output_id);if(!h||h.runId!==e.runId||h.expiresAt<=n||t.offset>h.bytes.byteLength)throw new r("automation_output_unavailable","Reason automation output expired.");return{chunk:h.bytes.subarray(t.offset,t.offset+j).toString("base64")}}let s=(o.components??x)(),i=(o.platform??process.platform)==="darwin",u=i?(o.macIdentity??gt)():[],c=o.macSetup??N,d=!s?.features.computer||t.call.kind==="browser"&&!t.userChrome&&!s.features.browser;if(i&&(d||u.length===0||t.call.kind==="browser"&&t.userChrome&&!e.userChrome))return fe(await se({runId:e.runId,call:t.call,identity:u,desktopMissing:d,signal:e.signal},c),e.runId,n);if(!s?.features.computer)throw new r("automation_unavailable","Run `reason desktop install` on this machine to enable computer and browser use.");let m=t.userChrome?e.userChrome:void 0;if(t.userChrome&&!m)throw new r("automation_user_chrome_unavailable","Your own Chrome is not enabled on this computer: run `reason desktop install` on this Mac (and `reason connect --user-chrome on` if you turned it off).");if(t.call.kind==="browser"&&!m&&!s.features.browser)throw new r("automation_browser_not_installed",!s.platform.startsWith("linux")?"Browser use is unavailable on this machine: re-run `reason desktop install`.":"Browser use is unavailable on this machine: install a non-snap Chromium at /usr/bin/chromium, then re-run `reason desktop install`.");e.signal.throwIfAborted();let l=t.call.kind==="browser"&&t.call.operation!=="record_start"&&t.call.operation!=="record_stop",p=await Hi(e.runId,e.signal,o.now,l?"call":"run"),g="account"in o?o.account??null:K(),_;try{if(m){let h=await(o.userChromeEnvironment??Ht)(s,m,e.signal);e.signal.throwIfAborted(),_=await(o.runtime??Ae)(s.node,h,JSON.stringify(t.call),e.signal)}else if(g)_=await(o.delegate??Q)(g,t.call,e.signal);else _=await Oe(s,t.call,e.signal,o)}finally{p()}if(i)_=await ie({runId:e.runId,call:t.call,identity:u,output:_,signal:e.signal},c);return fe(_,e.runId,n)}
956
- export{Bt,Pn,Us,zs,qs,Ws,Rn};
953
+ `;import{spawn as Ce}from"child_process";import{lstatSync as J,readFileSync as Y,rmSync as Ne}from"fs";import{basename as Pe}from"path";var Me="__desktop-call",De="/usr/bin/setpriv",Le=27262976,$e=8192,Be=2000;function q(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function qe(e){try{return JSON.parse(e)}catch{return null}}function We(){return[process.execPath,...Pe(process.execPath).startsWith("bun")&&process.argv[1]?[process.argv[1]]:[],Me]}function Fe(e){let o=(a)=>{try{return J(a).uid}catch{return null}},t=J("/tmp/.X11-unix",{throwIfNoEntry:!1});if(!t?.isDirectory()||t.uid!==0)return;let n=["/tmp/.X99-lock","/tmp/.X11-unix/X99"].filter((a)=>{let u=o(a);return u!==null&&u!==e.uid});if(!n.length)return;let i="";try{let a=Y("/tmp/.X99-lock","utf8").trim();if(/^\d+$/.test(a))i=Y(`/proc/${a}/comm`,"utf8").trim()}catch{}if(/^X/.test(i))return;for(let a of n)Ne(a,{force:!0})}function nn(e,o,t,n={}){if(t.throwIfAborted(),(o.op==="display"||o.op==="automation")&&process.platform==="linux"&&process.getuid?.()===0)try{Fe(e)}catch{}let i=n.command??We();return new Promise((a,u)=>{let c=(n.spawnProcess??Ce)(De,[`--reuid=${e.uid}`,`--regid=${e.gid}`,"--clear-groups","--no-new-privs","--",...i],{cwd:e.home,detached:!0,stdio:["pipe","pipe","pipe"],env:{HOME:e.home,USER:e.username,LOGNAME:e.username,PATH:"/usr/local/bin:/usr/bin:/bin"}}),d=[],m=0,l="",p=null,g=!1,_,h=(y)=>{try{process.kill(-c.pid,y)}catch{c.kill(y)}},v=(y)=>{p??=y,h("SIGTERM"),_??=setTimeout(()=>h("SIGKILL"),Be)},S=()=>v(new r("cancelled","Reason cancelled the desktop operation."));t.addEventListener("abort",S,{once:!0});let w=(y)=>{if(g)return;g=!0,clearTimeout(_),t.removeEventListener("abort",S),y()};if(c.stdout.on("data",(y)=>{if(m+=y.byteLength,m>Le)v(new r("desktop_delegate_failed","Reason's desktop reply is too large."));else d.push(y)}),c.stderr.setEncoding("utf8").on("data",(y)=>{l=(l+y).slice(-$e)}),c.stdin.on("error",()=>{}),c.once("error",()=>w(()=>u(p??new r("desktop_delegate_unavailable","Reason could not start its desktop as the desktop account.")))),c.once("close",(y,Oe)=>w(()=>{if(p)return u(p);let b=qe(Buffer.concat(d).toString("utf8"));if(q(b)&&b.ok===!0&&q(b.result))return a(b.result);let R=q(b)&&b.ok===!1&&typeof b.code==="string"&&typeof b.message==="string"?new r(b.code.slice(0,120),b.message.slice(0,2000)):null,j=`exited ${y??Oe}${R?"":" with no reply"}`,X=l.trim().split(`
954
+ `).at(-1)?.slice(-300)??"";if(!R||R.code==="desktop_delegate_failed")process.stderr.write(`Reason worker: desktop call ${j}${l?`: ${l.trim().slice(-500)}`:""}
955
+ `);if(R)return u(R);u(new r("desktop_delegate_failed",`Reason's desktop operation failed (${j}${X?`: ${X}`:""}).`))})),t.aborted)S();c.stdin.end(JSON.stringify(o))})}async function z(e,o,t,n={}){let i=await nn(e,{op:"automation",call:o},t,n);if(!Number.isSafeInteger(i.code)||typeof i.stdout!=="string"||typeof i.stderr!=="string")throw new r("desktop_delegate_failed","Reason's desktop reply is malformed.");return{code:i.code,stdout:Buffer.from(i.stdout,"base64"),stderr:i.stderr}}import{execFile as He,spawn as Ge}from"child_process";import{closeSync as je,mkdirSync as Xe,openSync as Ke}from"fs";import{dirname as O,join as Je}from"path";import{promisify as Ye}from"util";var ze=Ye(He),V="x-apple.systempreferences:com.apple.preference.security",Ve={accessibility:`${V}?Privacy_Accessibility`,screen:`${V}?Privacy_ScreenCapture`},Ze=64,A=new Map;function E(e,o){let t=A.get(e);if(t?.has(o))return!1;if(!t){if(A.size>=Ze)A.delete(A.keys().next().value);t=new Set,A.set(e,t)}return t.add(o),!0}function Qe(){let e=s(),o=Ue(de(e),process.env),t=Je(e,".local","share","reason","desktop-install.log");Xe(O(t),{recursive:!0,mode:448});let n=Ke(t,"a",384);try{let i=Ge(o,["desktop","install"],{detached:!0,stdio:["ignore",n,n],env:{...process.env,REASON_DESKTOP_BACKGROUND:"1"}});i.on("error",()=>{return}),i.unref()}finally{je(n)}}var C={open:async(e,o)=>{await ze("/usr/bin/open",e,{signal:o,timeout:1e4,maxBuffer:8192})},request:(e,o)=>Er(e,o),tile:Li,installDesktop:Qe},Z=!1;async function Q(e,o,t){try{await o.open(["-a","Google Chrome",e],t)}catch{t.throwIfAborted(),await o.open([e],t)}}async function te(e,o,t,n){if(await t.open([Ve[o]],n).catch(()=>{}),e[0]&&!n.aborted)t.tile(O(O(O(e[0]))),o)}async function et(e,o,t,n,i){for(let a of t){if(!E(e,`grant:${a}`))continue;i.throwIfAborted(),await n.request(o,a).catch(()=>null),await te(o,a,n,i)}}var tt={name:"open_tab",description:"Open a web page in the user's own Chrome on this Mac. Reason cannot read, screenshot or click in that tab, and no tab_id is returned: browser control needs Reason's Chrome extension. An actual browser call opens its setup page.",inputSchema:{type:"object",properties:{url:{type:"string",description:"An http or https URL."}},required:["url"],additionalProperties:!1}};function ee(e){return{code:0,stderr:"",stdout:Buffer.from(JSON.stringify({ok:!0,...e}))}}function ot(e){if(typeof e!=="string")return null;try{let o=new URL(e);return o.protocol==="https:"||o.protocol==="http:"?o.href:null}catch{return null}}async function oe(e,o=C){let{call:t,runId:n,signal:i}=e;if(t.kind==="browser"){if(t.operation==="discover")return ee({result:{tools:[tt]}});if(t.operation!=="call")throw new r("automation_browser_setup_required","Browser control is not set up on this Mac yet. Request a browser operation or connect Chrome from Reason to set it up.")}if(e.desktopMissing&&!Z){Z=!0;try{o.installDesktop()}catch{}}if(t.kind==="computer"){if(e.identity.length>0&&E(n,"grant:probe")){let c=await o.request(e.identity).catch(()=>null),d=c?[...c.accessibility?[]:["accessibility"],...c.screen?[]:["screen"]]:[];for(let m of d)E(n,`grant:${m}`);for(let m of d)await te(e.identity,m,o,i)}throw new r("automation_computer_setup_required","Computer use is not set up on this Mac yet; Reason asked macOS for any missing permission.")}if(E(n,"page:chrome-extension"))await Q(lc,o,i).catch(()=>{});let a=t.arguments,u=t.operation==="call"&&t.tool==="open_tab"&&a&&typeof a==="object"&&!Array.isArray(a)?ot(a.url):null;if(!u)throw new r("automation_browser_setup_required","Browser control is not set up on this Mac yet; Reason opened its Chrome Web Store page. open_tab still opens pages.");return await Q(u,o,i),ee({result:{content:[{type:"text",text:JSON.stringify({opened:u,browser:"the user's Chrome",controllable:!1,note:"Opened for the user to see. Reason cannot read or act in this tab until Reason's Chrome extension is added (its Chrome Web Store page is open)."})}]}})}async function re(e,o=C){if(e.call.kind!=="computer"||e.call.operation!=="permission_status"||e.output.code!==0||e.identity.length===0)return e.output;let t;try{t=JSON.parse(e.output.stdout.toString("utf8"))}catch{return e.output}if(!t||typeof t!=="object"||Array.isArray(t))return e.output;let n=t.permissions;if(!n||typeof n!=="object")return e.output;let i=n,a=[...i.accessibility==="missing"?["accessibility"]:[],...i.screenRecording==="missing"?["screen"]:[]];if(a.length===0)return e.output;return await et(e.runId,e.identity,a,o,e.signal),{...e.output,stdout:Buffer.from(JSON.stringify({...t,requested:a}))}}var H=172032,ft=18874368,gt=8192,ht=65536,_t=55000,wt=60000,yt=4,bt=40000,St=/^[0-9a-f-]{36}$/,ae=K,xt=ge();function N(e){return Boolean(e)&&typeof e==="object"&&!Array.isArray(e)}function P(){throw new r("invalid_automation_request","Reason automation request is malformed.")}function we(e){let o=Object.keys(e).sort().join(",");if(o==="call"||o==="browser,call"){let t=e.call,n=o==="browser,call";if(!N(t)||t.version!==1||t.kind!=="computer"&&t.kind!=="browser"||n&&(e.browser!==Tr||t.kind!=="browser")||JSON.stringify(t).length>ht)P();return{call:t,userChrome:n}}if(o==="offset,output_id"){if(typeof e.output_id!=="string"||!St.test(e.output_id)||!Number.isSafeInteger(e.offset)||e.offset<0)P();return{output_id:e.output_id,offset:e.offset}}return P()}function hr(e=process.platform,o=T){if(e==="darwin")return!0;return(e==="linux"||e==="win32")&&o()?.features.computer===!0}var kt="__computer-use";function To(e=T){return e()?.userChrome??{code:"user_chrome_browser_use_missing"}}function ye(e,o,t,n){return new Promise((i)=>{let a=k(e,o,{env:t,stdio:"ignore",windowsHide:!0}),u=setTimeout(()=>{a.kill("SIGKILL"),i(-1)},n);a.once("error",()=>{clearTimeout(u),i(-1)}),a.once("exit",(c)=>{clearTimeout(u),i(c??-1)})})}function vt(e,o,t,n){return new Promise((i)=>{let a=k(e,o,{env:t,stdio:["ignore","pipe","ignore"],windowsHide:!0}),u="";a.stdout.setEncoding("utf8").on("data",(d)=>{u+=d});let c=setTimeout(()=>{a.kill("SIGKILL"),i(null)},n);a.once("error",()=>{clearTimeout(c),i(null)}),a.once("close",(d)=>{clearTimeout(c),i(d===0?u:null)})})}function It(e){return I(e)?f(L(),"open-browser-use"):"/tmp/open-browser-use"}function I(e){return e.platform==="win32-x64"||e.platform==="win32-arm64"}var Rt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,At=33554432;function Ot(e,o){let t;try{t=e===null?null:JSON.parse(e)}catch{return null}let n=N(t)&&N(t.result)?t.result.metadata:null;if(!N(n)||n.extensionId!==o)return null;return typeof n.extensionInstanceId==="string"&&Rt.test(n.extensionInstanceId)?n.extensionInstanceId:null}async function be(e,o,t){let n=t.storages.map((c)=>{try{return D(c).filter((d)=>d.endsWith(".log")||d.endsWith(".ldb")).map((d)=>f(c,d))}catch{return[]}}),i;try{i=n.some((c)=>c.length>0)?D(t.socketDir).filter((c)=>c.endsWith(".sock")):[]}catch{return[]}let a=[];for(let c of i){let d=f(t.socketDir,c),m=Ot(await vt(e,["info","--socket",d,"--timeout","2s"],o,5000),t.extensionId);if(m)a.push({instance:m,socket:d})}let u=[];for(let[c,d]of(a.length>0?n:[]).entries())for(let m of d)try{if(ut(m).size>At)continue;let l=G(m),p=a.find((g)=>l.includes(g.instance));if(p){u.push({storage:t.storages[c],...p});break}}catch{}return u}async function Et(e,o,t){return(await be(e,o,t))[0]?.instance??null}function Se(e,o,t){return Et(e.nativeHost,o,{socketDir:It(e),extensionId:le,storages:[f(t,"browser-profile","Default","Local Extension Settings",le)]})}var ce=/^(Default|Profile ([0-9]+))$/;async function Tt(e,o,t=s(),n=yn){let i=f(t,"Library","Application Support","Google","Chrome"),a=[];try{a=D(i)}catch(l){if(l.code==="EPERM")throw new r("browser_use_chrome_access_denied","macOS blocked Reason from reading Chrome's profiles. Allow Full Disk Access for Reason on this Mac and try again.")}let u=(l)=>Number(ce.exec(l)?.[2]??-1),c=a.filter((l)=>ce.test(l)&&M(f(i,l,"Extensions",Gt))).sort((l,p)=>u(l)-u(p)),d=(l)=>f(i,l,"Local Extension Settings",Gt);return(await be(e,o,{socketDir:n,extensionId:Gt,storages:c.map(d)})).map(({storage:l,instance:p,socket:g})=>({profile:c.find((_)=>d(_)===l),instance:p,socket:g}))}async function Ct(e,o,t=s(),n=yn){let i=(await Tt(e,o,t,n))[0]?.instance;if(!i)throw new r("automation_user_chrome_not_connected","No Chrome profile on this Mac is connected to Reason. Open Chrome with the Reason extension, then try again.");return i}function pe(e){return new Promise((o)=>{let t=pt({path:e}),n=(i)=>{t.destroy(),o(i)};t.setTimeout(1000,()=>n(!1)),t.once("error",()=>n(!1)),t.once("connect",()=>n(!0))})}async function xe(e,o){let t=Date.now()+o;while(Date.now()<t){if(await e())return!0;await new Promise((n)=>setTimeout(n,200))}return!1}var W=new Map;function F(e,o){let t=W.get(e);if(!t)t=o().finally(()=>W.delete(e)),W.set(e,t);return t}async function Nt(e,o){if(await pe(e))return;if(lt(e,{force:!0}),await ye("dbus-daemon",["--session",`--address=unix:path=${e}`,"--fork"],o,1e4)!==0||!await xe(()=>pe(e),5000))throw new r("automation_unavailable","Reason could not start the desktop session bus.")}async function me(e,o,t){let n=e.platform==="darwin-arm64"||I(e)?async()=>await Se(e,o,t)!==null:async()=>await ye(e.nativeHost,["info"],o,5000)===0;if(await n())return;let i=["--profile-directory=Default",`--load-extension=${e.extensionDir}`,"--no-first-run","--no-default-browser-check","--window-size=1280,800","about:blank"],a,u=null,c=0;if(e.platform==="darwin-arm64"){let l=f(t,"browser-profile");Te(l);let p=f(l,"NativeMessagingHosts");se(p,{recursive:!0,mode:448});let g=wn(e.platform).nativeHostManifests[0];ne(g,f(p,ie(g)));let _=e.browser.slice(0,e.browser.indexOf(".app/")+4),h=i.filter((v)=>v!=="about:blank").concat("--no-startup-window","--use-mock-keychain");a=k("/usr/bin/open",["-g","-n","-a",_,"--args",`--user-data-dir=${l}`,...h],{env:o,stdio:"ignore"})}else if(I(e)){let l=f(t,"browser-profile");Te(l),rt(B("icacls"),[U(e.browser),"/grant","*S-1-15-2-1:(OI)(CI)(RX)","*S-1-15-2-2:(OI)(CI)(RX)"],{stdio:"ignore",windowsHide:!0,timeout:60000});let p=i.filter((g)=>g!=="about:blank").concat("--no-startup-window","--keep-alive-for-test");a=k(e.browser,[`--user-data-dir=${l}`,...p],{detached:!0,stdio:"ignore",env:o})}else{let l=f(o.HOME,".config","google-chrome"),p=f(l,"NativeMessagingHosts");se(p,{recursive:!0,mode:448});let g=wn(e.platform).nativeHostManifests[0];ne(g,f(p,ie(g)));let _=process.geteuid?.()===0?["--no-sandbox"]:[];u=f(t,"browser.log");let h=at(u,"a",384);c=it(h).size,a=k(e.browser,[`--user-data-dir=${l}`,...i,..._,"--force-renderer-accessibility"],{detached:!0,stdio:["ignore",h,h],env:{...o,ACCESSIBILITY_ENABLED:"1"}}),st(h)}let d=!1;a.once("error",()=>{d=!0}),a.once("exit",(l)=>{d||=l!==0}),a.unref();let m=!1;if(await xe(async()=>d||(m=await n()),bt),!m){if(u&&G(u).subarray(c).toString("utf8").includes("No usable sandbox"))throw new r("automation_browser_sandbox_unavailable","Chromium found no usable sandbox on this machine. Run the worker as a non-root user with unprivileged user namespaces enabled, or in a container with seccomp unconfined.");throw new r("automation_browser_unavailable","Reason could not connect the desktop browser.")}}async function Io(e){await Ie(e,!0)}function Do(e){return ke(e,ve(e))}function ke(e,o){return e.platform==="darwin-arm64"||I(e)?f(o,"browser-profile"):f(o,"home",".config","google-chrome")}function ve(e){let o=f(e.root,"automation");if(!M(o)||!Pt(e.automation))return e.automation;if(!Mt(ke(e,o)))try{he(o,e.automation)}catch{}return M(o)?o:e.automation}function Pt(e){try{return D(e).length===0}catch(o){return o.code==="ENOENT"}}function Mt(e){let o;try{o=ct(f(e,"SingletonLock"))}catch{return!1}let t=Number(o.slice(o.lastIndexOf("-")+1));if(!Number.isSafeInteger(t)||t<=0)return!0;try{return process.kill(t,0),!0}catch(n){return n.code==="EPERM"}}async function Ie(e,o){Br({root:e.root,automation:e.automation,extensionDir:e.extensionDir});let t=ve(e);Te(t);let n=_e().username,i={USER:n,LOGNAME:n,REASON_AUTOMATION_OCU:e.ocu,REASON_AUTOMATION_OBU:e.nativeHost};if(e.platform==="darwin-arm64"||I(e)){let l=I(e)?{...i,...Dt(),HOME:s()}:{...i,HOME:s(),PATH:`${U(e.node)}:/usr/bin:/bin:/usr/sbin:/sbin`,REASON_AUTOMATION_OCU:process.execPath,REASON_AUTOMATION_OCU_SUBCOMMAND:kt};if(!o)return l;await F("browser",()=>me(e,l,t));let p=await Se(e,l,t);if(!p)throw new r("automation_browser_unavailable","Reason could not connect the desktop browser.");return{...l,REASON_AUTOMATION_OBU_INSTANCE:p,REASON_AUTOMATION_BACKGROUND_TABS:"1"}}let a=await Ft(),u=f(t,"home"),c=f(t,"runtime");Te(u),Te(c);let d=f(t,"bus"),m={...i,HOME:u,PATH:`${U(e.node)}:/usr/bin:/bin`,DISPLAY:a.display,XAUTHORITY:a.xauthority,XDG_RUNTIME_DIR:c,DBUS_SESSION_BUS_ADDRESS:`unix:path=${d}`,...a.sound?{PULSE_SERVER:Kt(a.sound)}:{}};if(await F("bus",()=>Nt(d,m)),o)await F("browser",()=>me(e,m,t));return m}function Dt(){let e=process.env.SystemRoot??"C:\\Windows",o=Object.fromEntries(["SystemDrive","USERPROFILE","LOCALAPPDATA","APPDATA","ProgramData","ProgramFiles","PATHEXT","ComSpec","USERNAME","USERDOMAIN","COMPUTERNAME","NUMBER_OF_PROCESSORS","PROCESSOR_ARCHITECTURE","PSModuleAnalysisCachePath"].flatMap((n)=>process.env[n]?[[n,process.env[n]]]:[])),t=f(e,"System32");return{...o,SystemRoot:e,windir:e,TEMP:L(),TMP:L(),PATH:[t,f(t,"WindowsPowerShell","v1.0"),e].join(mt)}}async function Lt(e,o,t){let n=_e().username,i={USER:n,LOGNAME:n,HOME:s(),PATH:`${U(e.node)}:/usr/bin:/bin:/usr/sbin:/sbin`,REASON_AUTOMATION_OBU:o,REASON_AUTOMATION_BACKGROUND_TABS:"1"},a=await Ct(o,i);return t.throwIfAborted(),{...i,REASON_AUTOMATION_OBU_INSTANCE:a}}function Ut(e){if(process.platform!=="win32")return["--input-type=module","--eval",e];let o=f(L(),`reason-automation-${nt("sha256").update(e).digest("hex").slice(0,16)}.mjs`);if(!M(o)||G(o,"utf8")!==e){let t=`${o}.${process.pid}.tmp`;dt(t,e,{mode:384}),he(t,o)}return[o]}function Re(e,o,t,n){if(typeof ae!=="string")return Promise.reject(new r("automation_unavailable","This Reason build has no automation runtime."));let i=ae;return new Promise((a,u)=>{let c=k(e,Ut(i),{env:{...o,REASON_CLOUD_GATEWAY_EXEC:"1",REASON_AUTOMATION_INLINE_RESULT:"1"},stdio:["pipe","pipe","pipe"],detached:process.platform!=="win32",windowsHide:!0}),d=[],m=0,l="",p=null,g=!1,_=(w)=>{if(p??=w,process.platform==="win32"&&c.pid){k(f(process.env.SystemRoot??"C:\\Windows","System32","taskkill.exe"),["/pid",String(c.pid),"/t","/f"],{stdio:"ignore",windowsHide:!0}).once("error",()=>c.kill("SIGKILL"));return}try{process.kill(-c.pid,"SIGKILL")}catch{c.kill("SIGKILL")}},h=(w)=>{if(g)return;g=!0,clearTimeout(v),n.removeEventListener("abort",S),w()},v=setTimeout(()=>_(new r("automation_timed_out","Reason automation did not finish in time.")),_t),S=()=>_(new r("cancelled","Reason cancelled the automation call."));if(n.addEventListener("abort",S,{once:!0}),c.stdout.on("data",(w)=>{if(m+=w.byteLength,m>ft)_(new r("automation_output_too_large","Reason automation output is too large."));else d.push(w)}),c.stderr.setEncoding("utf8").on("data",(w)=>{l=(l+w).slice(-gt)}),c.stdin.on("error",()=>{}),c.once("error",()=>h(()=>u(p??new r("automation_unavailable","Reason could not start the automation runtime.")))),c.once("close",(w)=>h(()=>{if(p)u(p);else a({code:w??1,stdout:Buffer.concat(d),stderr:l})})),n.aborted)S();c.stdin.end(t)})}var x=new Map;function $t(e,o,t){for(let[i,a]of x)if(a.expiresAt<=t)x.delete(i);while(x.size>=yt)x.delete(x.keys().next().value);let n=ge();return x.set(n,{runId:e,bytes:o,expiresAt:t+wt}),n}async function Ae(e,o,t,n={}){let i=await(n.environment??Ie)(e,o.kind==="browser");return t.throwIfAborted(),await(n.runtime??Re)(e.node,i,JSON.stringify(o),t)}async function wl(e,o){let t=we({call:e});if(!("call"in t))P();let n=T();if(!n?.features.computer||t.call.kind==="browser"&&!n.features.browser)throw new r("automation_unavailable","Run `reason desktop install` on this machine to enable computer and browser use.");return await Ae(n,t.call,o)}function fe(e,o,t){let n=e.stdout.byteLength>H?$t(o,e.stdout,t):void 0;return{code:e.code,stderr:e.stderr,instance_id:xt,output_bytes:e.stdout.byteLength,chunk:e.stdout.subarray(0,H).toString("base64"),...n?{output_id:n}:{}}}async function Oo(e,o={}){let t=we(e.payload),n=(o.now??Date.now)();if("output_id"in t){let h=x.get(t.output_id);if(!h||h.runId!==e.runId||h.expiresAt<=n||t.offset>h.bytes.byteLength)throw new r("automation_output_unavailable","Reason automation output expired.");return{chunk:h.bytes.subarray(t.offset,t.offset+H).toString("base64")}}let i=(o.components??T)(),a=(o.platform??process.platform)==="darwin",u=a?(o.macIdentity??kr)():[],c=o.macSetup??C,d=!i?.features.computer||t.call.kind==="browser"&&!t.userChrome&&!i.features.browser;if(a&&(d||u.length===0||t.call.kind==="browser"&&t.userChrome&&!e.userChrome))return fe(await oe({runId:e.runId,call:t.call,identity:u,desktopMissing:d,signal:e.signal},c),e.runId,n);if(!i?.features.computer)throw new r("automation_unavailable","Run `reason desktop install` on this machine to enable computer and browser use.");let m=t.userChrome?e.userChrome:void 0;if(t.userChrome&&!m)throw new r("automation_user_chrome_unavailable","Your own Chrome is not enabled on this computer: run `reason desktop install` on this Mac (and `reason connect --user-chrome on` if you turned it off).");if(t.call.kind==="browser"&&!m&&!i.features.browser)throw new r("automation_browser_not_installed",!i.platform.startsWith("linux")?"Browser use is unavailable on this machine: re-run `reason desktop install`.":"Browser use is unavailable on this machine: install a non-snap Chromium at /usr/bin/chromium, then re-run `reason desktop install`.");e.signal.throwIfAborted();let l=t.call.kind==="browser"&&t.call.operation!=="record_start"&&t.call.operation!=="record_stop",p=await pa(e.runId,e.signal,o.now,l?"call":"run"),g="account"in o?o.account??null:ue(),_;try{if(m){let h=await(o.userChromeEnvironment??Lt)(i,m,e.signal);e.signal.throwIfAborted(),_=await(o.runtime??Re)(i.node,h,JSON.stringify(t.call),e.signal)}else if(g)_=await(o.delegate??z)(g,t.call,e.signal);else _=await Ae(i,t.call,e.signal,o)}finally{p()}if(a)_=await re({runId:e.runId,call:t.call,identity:u,output:_,signal:e.signal},c);return fe(_,e.runId,n)}
956
+ export{nn,hr,To,Io,Do,wl,Oo};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- var n={REASON_API_KEY:"ARA_API_KEY",REASON_API_URL:"ARA_API_URL",REASON_CLI_CHANNEL:"ARA_CLI_CHANNEL",REASON_CLI_LAUNCHER_PATH:"ARA_CLI_LAUNCHER_PATH",REASON_MANAGED_RUNTIME_ROOT:"ARA_MANAGED_RUNTIME_ROOT",REASON_INSTALL_ALIAS_PATH:"ARA_INSTALL_ALIAS_PATH",REASON_INSTALL_DIR:"ARA_INSTALL_DIR",REASON_INSTALL_METHOD:"ARA_INSTALL_METHOD",REASON_INSTALL_PINNED_VERSION:"ARA_INSTALL_PINNED_VERSION",REASON_INSTALL_UPGRADE:"ARA_INSTALL_UPGRADE"},t=Object.values(n),E=new Set;function R(e,A){let N=e[A];if(N?.trim())return N;let _=e[n[A]];if(_?.trim())E.add(n[A]);return _}
3
- export{R};
2
+ var e={REASON_API_KEY:"ARA_API_KEY",REASON_API_URL:"ARA_API_URL",REASON_CLI_CHANNEL:"ARA_CLI_CHANNEL",REASON_CLI_LAUNCHER_PATH:"ARA_CLI_LAUNCHER_PATH",REASON_MANAGED_RUNTIME_ROOT:"ARA_MANAGED_RUNTIME_ROOT",REASON_INSTALL_ALIAS_PATH:"ARA_INSTALL_ALIAS_PATH",REASON_INSTALL_DIR:"ARA_INSTALL_DIR",REASON_INSTALL_METHOD:"ARA_INSTALL_METHOD",REASON_INSTALL_PINNED_VERSION:"ARA_INSTALL_PINNED_VERSION",REASON_INSTALL_UPGRADE:"ARA_INSTALL_UPGRADE"},t=Object.values(e),E=new Set;function P(n,A){let N=n[A];if(N?.trim())return N;let _=n[e[A]];if(_?.trim())E.add(e[A]);return _}function xn(n,A){return{[n]:A,[e[n]]:A}}
3
+ export{P,xn};
@@ -0,0 +1,7 @@
1
+ // @bun
2
+ import{Bt}from"./vm-hands-entry-lite-weqam12f.js";import{rn}from"./vm-hands-entry-lite-tcmye5ny.js";import{Y,Xe,B}from"./vm-hands-entry-lite-8xv6c0rm.js";import{r}from"./vm-hands-entry-lite-qy9xg6em.js";import{spawn as k,spawnSync as N}from"child_process";import{existsSync as S,mkdtempSync as z,readFileSync as j,readdirSync as we,realpathSync as Se,rmSync as q,statSync as Q}from"fs";import{platform as W,tmpdir as V}from"os";import{dirname as A,join as u,win32 as x}from"path";import{fileURLToPath as be,pathToFileURL as F}from"url";var xe=["bwrap","socat","rg"],he=2000,I=20000,ye=3,O=4000,Pe=new Set([".git",".hg",".svn","node_modules"]),Ee=["runAsHostUid","sysrq-trigger"],Z=u(A(A(be(import.meta.url))),"packages","sandbox-runtime"),Re=u(Z,"src","index.ts"),ee=!1;function cr(){ee=!0}function ne(){return ee?u(A(Se(process.execPath)),"runtime","srt"):void 0}function Ae(){let e=u(ne()??Z,"vendor","srt-win");return u(e,process.arch,"srt-win.exe")}var ka="confined commands need the Windows sandbox: run `reason connect` and approve the Windows prompt.";function Jr(e=Ae()){let n=N(e,["status"],{encoding:"utf8",timeout:15000,windowsHide:!0});try{let o=JSON.parse(n.stdout??"");return n.status===0&&o.user?.user?.exists===!0&&o.user.cred_present===!0}catch{return!1}}function xa(e=Ae()){let n=N(e,["install"],{stdio:["ignore","ignore","ignore"],timeout:120000,windowsHide:!0});return n.status===0?"installed":n.status===10?"cancelled":"failed"}async function te(){let e=ne();if(e&&process.platform==="linux"&&!S(u(e,"vendor","seccomp",process.arch,"apply-seccomp")))throw Error("packaged_sandbox_runtime_vendor_missing");if(e&&process.platform==="win32"&&!S(Ae()))throw Error("packaged_sandbox_runtime_vendor_missing");if(e){let i=j(u(e,"sandbox-runtime.mjs"),"utf8");for(let s of Ee)if(!i.includes(s))throw Error(`packaged_sandbox_runtime_fork_missing:${s}`)}let t=(await import(e?F(u(e,"sandbox-runtime.mjs")).href:F(Re).href)).SandboxManager;if(!t||typeof t.initialize!=="function"||typeof t.wrapWithSandboxArgv!=="function")throw Error("sandbox-runtime does not expose the expected SandboxManager API.");return{SandboxManager:t}}function _e(e={}){if((e.platformName??W())!=="linux")return!1;let o=e.fileExists??S,t=e.readFile??((i)=>j(i,"utf8"));for(let i of["/.dockerenv","/run/.containerenv"])try{if(o(i))return!0}catch{}try{return/docker|containerd|kubepods|lxc|libpod/.test(t("/proc/1/cgroup"))}catch{return!1}}function re(e){return["/bin/true","/usr/bin/true"].find((n)=>e(n))??null}function Me(e,n){return e==="strict"?["--ro-bind","/","/","--unshare-pid","--unshare-user","--cap-drop","ALL","--proc","/proc","--",n]:["--ro-bind","/","/","--unshare-pid","--unshare-user","--bind","/proc","/proc","--",n]}function Ce(e,n){try{let o=N("bwrap",Me(e,n),{stdio:"ignore",timeout:he});return!o.error&&o.status===0}catch{return!1}}function ve(e){let n=e.platformName??W(),o=e.fileExists??S;if(n==="win32")return(e.bash??Y)()&&o(Ae())?m??"strict":null;if(n!=="linux")return null;let t=e.hasExecutable??rn;if(!xe.every((l)=>t(l)))return null;let i=re(o);if(!i)return null;let s=m??(e.containerized??_e({platformName:n})?"weak":"strict");return(e.probeNamespaces??((l)=>Ce(l,i)))(s)?s:null}var h=null,M=!1,p=null,U=null,H=null,m=null,y=null,_=null,P=null,C=[],b=new Map;function v(){throw g("sandbox_mode_conflict"),new r("sandbox_unavailable","Sandbox process policy conflicts with an existing probe or session. Restart the worker.")}function Ca(e){if(m!==null&&m!==e||M&&h!==null&&h!==e||y!==null&&y!==e)v();m=e}function g(e){if(!p)process.stderr.write(`Reason worker: confined commands are off (${e})
3
+ `);p=e}function Gn(e){if(p)return!1;if(!M){if(h=ve(e??{}),M=!0,h&&!e)ue()}return h!==null}function De(){return Gn()?h:null}var E=null,w=0;function D(e,n){if(p)throw new r("sandbox_unavailable","Confined execution is unavailable in this worker process.");if(m&&e.sandboxMode&&m!==e.sandboxMode)v();let o=m??e.sandboxMode??De();if(!o)throw new r("sandbox_unavailable","Confined command execution is unavailable on this operating system.");if(y&&y!==o)v();return y=o,E??=(async()=>{let{SandboxManager:t}=await(e.loadSandboxRuntime??te)();return await t.initialize(Ie(o,n)),t})().catch((t)=>{if(E=null,n)_=null,process.stderr.write(`Reason worker: the Windows sandbox did not start for this folder (${String(t).slice(0,500)})
4
+ `);else g(`initialize_failed: ${String(t)}`);throw t instanceof r?t:new r("sandbox_unavailable","The confined execution sandbox failed to start.")}),E.then((t)=>{if(p)throw new r("sandbox_unavailable","Confined execution became unavailable during sandbox initialization.");return t})}function T(){if(w-=1,w===0)for(let e of C.splice(0))e()}async function oe(e,n=!0,o,t){let i=t===void 0?1/0:Date.now()+t;await le();let s=ke();if(n)await s;let a=JSON.stringify(e),l=!1,c=()=>{if(!l)return;l=!1;let d=(b.get(a)??1)-1;if(d>0)b.set(a,d);else b.delete(a)};try{for(;;){if(o?.aborted)throw new r("cancelled","Operation was cancelled.");if(Date.now()>=i)return!1;if(P){await P;continue}let d=b.keys().next().value;if(_??=d??a,_===a&&(d===void 0||d===a))break;if(!l){l=!0,b.set(a,(b.get(a)??0)+1);continue}if(w===0&&d===a){ie();continue}await new Promise((f)=>{if(C.push(f),o?.addEventListener("abort",()=>f(),{once:!0}),i!==1/0)setTimeout(f,Math.max(0,i-Date.now())).unref?.()})}return w+=1,!0}finally{if(l&&w===0)for(let d of C.splice(0))d();c()}}function ie(){return P??=ce().finally(()=>{P=null}),P}function se(e,n,o=process.env){let t=o.USERPROFILE?x.resolve(o.USERPROFILE).toLowerCase():null,i=x.resolve(e).toLowerCase(),s=t!==null&&i.startsWith(`${t}\\`),a=n?ae(o).filter((l)=>l.toLowerCase()===i||l.toLowerCase().startsWith(`${i}\\`)):[];return{denyRead:[],allowRead:[e],allowWrite:n?[e]:[],denyWrite:n?a:s?[]:[e]}}function ae(e,n=process.execPath){let o=new Map;for(let t of[...(e.PATH??e.Path??"").split(";"),x.dirname(n)]){if(!t||!x.isAbsolute(t))continue;let i=x.resolve(t);if(!o.has(i.toLowerCase()))o.set(i.toLowerCase(),i)}return[...o.values()]}function Te(e=process.env,n=process.execPath){let o=[e.SystemRoot,e.ProgramFiles,e["ProgramFiles(x86)"],e.ProgramW6432,e.ProgramData,e.USERPROFILE].filter((t)=>!!t).map((t)=>x.resolve(t).toLowerCase());return ae(e,n).filter((t)=>{let i=t.toLowerCase();return!o.some((s)=>i===s||i.startsWith(`${s}\\`))})}var J=null,K=null;function le(e=Ae()){return K??=(async()=>{let n;try{n=JSON.parse((await de(e,["status"])).stdout).user?.user?.sid}catch{return null}if(typeof n!=="string"||!/^S-1-[0-9-]+$/.test(n))return null;if(!await new Promise((t)=>{let i=k(B("icacls"),[e,"/grant",`*${n}:(RX)`],{stdio:"ignore",windowsHide:!0,timeout:30000});i.on("error",()=>t(!1)),i.on("close",(s)=>t(s===0))}))process.stderr.write(`Reason worker: could not let the Windows sandbox user run srt-win.exe
5
+ `);return n})(),K}function de(e,n,o){return new Promise((t)=>{let i=k(e,n,{stdio:["pipe","pipe","ignore"],windowsHide:!0,timeout:120000}),s="";i.stdout?.setEncoding("utf8").on("data",(a)=>{s+=a}),i.on("error",()=>t({status:null,stdout:s})),i.on("close",(a)=>t({status:a,stdout:s})),i.stdin?.end(o??"")})}function ke(e=Ae()){return J??=(async()=>{let n=Te();if(n.length===0)return;let o=await le(e),t=o?await de(e,["acl","stamp","--holder-pid",String(process.ppid),"--sandbox-user-sid",o],JSON.stringify({denyRead:[],denyWrite:n})):null;if(!t||t.status!==0&&t.status!==2)g(`program_folder_deny_failed: ${t?`exit ${t.status}`:"no sandbox user"}`),process.stderr.write(`Reason worker: could not deny the Windows sandbox writes to PATH folders (${t?`exit ${t.status}`:"no sandbox user"}); confined commands are off
6
+ `)})(),J}var Ne=`h=$(mktemp -d) || exit 125; trap 'rm -rf "$h"' EXIT; mkdir -p "$h/AppData/Roaming" "$h/AppData/Local"; w=$(cygpath -w "$h"); export HOME="$h" USERPROFILE="$w" APPDATA="$w\\AppData\\Roaming" LOCALAPPDATA="$w\\AppData\\Local" TEMP="$w" TMP="$w"; `;async function ce(){let e=E;if(E=null,_=null,!e)return;try{await(await e).reset()}catch{}}async function ue(e={}){if(p)return!1;if(e.loadSandboxRuntime)return G(e.loadSandboxRuntime);if(!Gn())return!1;return U??=G(te),U}async function G(e){try{let{SandboxManager:n}=await e();if(process.platform==="win32"){if(!S(Ae()))g("dependencies_missing: srt-win.exe");return!p}let o=n.checkDependencies().errors;if(o.length>0)return g(`dependencies_missing: ${o.join(", ")}`),!1;return!p}catch(n){return g(`load_failed: ${String(n)}`),!1}}async function Aa(e={}){if(!e.loadSandboxRuntime&&!e.sandboxMode){if(!await ue())return!1;return H??=X({}),H}return X(e)}async function X(e){let n=process.platform==="win32",o=z(u(V(),"reason-device-probe-"));try{let t=n?se(o,!1):void 0;if(t)await oe(t,!1);let i;try{i=await We(await D(e,t),o)}catch{return!1}finally{if(n)T()}if(!i)g("confined_command_failed");if(w===0)await(n?ie():ce());return i}finally{q(o,{recursive:!0,force:!0})}}async function We(e,n){let o=process.platform==="win32",t=o?"true":re(S);if(!t)return!1;try{let{argv:i,env:s}=await e.wrapWithSandboxArgv(fe([t]),Kn(),{filesystem:o?pe([],n):me({root:n,allowWrite:!1,temporaryDirectory:n,protectedPaths:[]})},void 0,n),[a,...l]=i;if(!a)return!1;return await Le(a,l,n,o?{env:s}:{})}catch{return!1}finally{try{e.cleanupAfterCommand()}catch{}}}function Le(e,n,o,t={}){return new Promise((i)=>{let s=!1,a,l=(f)=>{if(s)return;s=!0,clearTimeout(a),i(f)},c;try{c=(t.spawnChild??k)(e,n,{cwd:o,env:t.env??{PATH:Bt,HOME:o,TMPDIR:o},stdio:"ignore",windowsHide:!0})}catch{l(!1);return}c.once("error",()=>l(!1));let d=(f,R)=>l(f===0&&R===null);if(c.once("exit",d),c.once("close",d),c.exitCode!==null||c.signalCode!==null)d(c.exitCode,c.signalCode);if(s)return;a=setTimeout(()=>{l(!1);try{c.kill("SIGKILL")}catch{}},Math.min(t.timeoutMs??I,I))})}function Kn(e=S,n=W()){if(n==="win32")return Xe("win32");return["/bin/bash","/bin/sh"].find((o)=>e(o))??"/bin/sh"}function fe(e){return e.map((n)=>`'${n.replaceAll("'","'\\''")}'`).join(" ")}function Fe(e,n,o=(t)=>we(t,{withFileTypes:!0}).filter((i)=>i.isDirectory()||i.isFile()).map((i)=>i.name)){let t=[],i=[{path:e,depth:0}],s=0;while(i.length>0&&s<O){let a=i.pop(),l;try{l=o(a.path)}catch{continue}for(let c of l){if(s+=1,s>O)break;let d=u(a.path,c);if(n(d)){t.push(d);continue}if(a.depth+1<ye&&!Pe.has(c))i.push({path:d,depth:a.depth+1})}}return t}function me(e){let n=u(e.root,".git"),o=[];try{if(Q(n).isDirectory())o=[u(n,"config"),u(n,"hooks")]}catch{}return{denyRead:["/home","/root","/tmp","/tmp/.X11-unix",...e.protectedPaths],allowRead:[e.root,e.temporaryDirectory],allowWrite:[...e.allowWrite?[e.root]:[],e.temporaryDirectory],denyWrite:[...e.protectedPaths,...o]}}function pe(e,n){let o=u(n,".git"),t=[];try{if(Q(o).isDirectory())t=[u(o,"config"),u(o,"hooks")]}catch{}return{denyRead:[...e],allowRead:[],allowWrite:[],denyWrite:[...e,...t]}}function Ie(e,n){if(n)return{network:{allowedDomains:[],deniedDomains:[]},filesystem:n,windows:{srtWin:{path:Ae()}}};return{network:{allowedDomains:[],deniedDomains:[]},filesystem:{denyRead:[],allowRead:[],allowWrite:[],denyWrite:[]},...e==="weak"?{enableWeakerNestedSandbox:!0}:{}}}function Pa(e){let n=e.createTemporaryDirectory??(()=>z(u(V(),"reason-device-"))),o=e.removeTemporaryDirectory??((t)=>q(t,{recursive:!0,force:!0}));return async(t,i,s)=>{let a=process.platform==="win32",l;if(a){let d=se(s.root,s.allowWrite);if(!await oe(d,!s.workerProbe,s.signal,s.timeoutMs))return{exitCode:null,signal:null,stdout:"",stderr:"",timedOut:!0,truncated:!1};try{l=await D(e,d)}catch(f){throw T(),f}}else l=await D(e),w+=1;let c;try{c=n();let d=Fe(s.root,e.isProtectedPath),f;try{f=await l.wrapWithSandboxArgv((a?Ne:"")+fe([t,...i]),e.shell??Kn(),{filesystem:a?pe(d,s.root):me({root:s.root,allowWrite:s.allowWrite,temporaryDirectory:c,protectedPaths:d})},s.signal,s.cwd)}catch(L){throw L instanceof r?L:new r("sandbox_unavailable","The confined execution sandbox could not wrap the command.")}let[R,...ge]=f.argv;if(!R)throw new r("sandbox_unavailable","The confined execution sandbox produced no command.");return await e.spawnCaptured(R,ge,{cwd:s.cwd,timeoutMs:s.timeoutMs,signal:s.signal,env:a?f.env:e.scrubEnvironment(s.root,c)})}finally{T();try{l.cleanupAfterCommand()}catch{}if(c!==void 0)o(c)}}}
7
+ export{cr,Ae,ka,Jr,xa,Ca,Gn,Aa,Kn,Pa};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{t,o,n,we,$e,c,i}from"./vm-hands-entry-lite-k5ytpgzz.js";var rr="inference.custom.v1",Dr=32768,Bn=67108864,qi=16384,Or=4194304,h=204800,Nr=2*Or+65536,na=600000,E=["content-type","anthropic-version","user-agent"],m=c(["openai-completions","openai-responses","anthropic-messages"]),f=new Set(E),C=$e(t(),t().max(2048)).refine((e)=>Object.keys(e).every((s)=>f.has(s))&&Object.values(e).every((s)=>!/[\r\n\0]/.test(s)),"Only non-secret custom endpoint request headers are permitted");function u(e){try{let s=new URL(e);return["http:","https:"].includes(s.protocol)&&!s.username&&!s.password&&!s.search&&!s.hash?s:null}catch{return null}}function Wi(e,s){let r=u(e.baseUrl),d=u(s.baseUrl),a=u(e.url);if(!r||!d||!a||e.method!=="POST"||s.execution!=="device")return!1;let l=(p)=>p.origin+p.pathname.replace(/\/+$/,"");if(l(r)!==l(d)||a.origin!==r.origin)return!1;let _=s.api==="openai-completions"?"/chat/completions":s.api==="openai-responses"?"/responses":"/v1/messages";return a.pathname===r.pathname.replace(/\/+$/,"")+_}var ia=n({baseUrl:t().max(2048),url:t().max(4096),method:i("POST"),body:t().refine((e)=>new TextEncoder().encode(e).byteLength<=Or).optional(),headers:C,credentialOrganizationId:t().uuid(),accountKey:t().min(1).max(256).optional()}).strict().refine((e)=>m.options.some((s)=>Wi(e,{baseUrl:e.baseUrl,api:s,execution:"device"})),"Invalid custom endpoint inference URL"),D=n({status:o().int().min(200).max(599),statusText:t().max(256).refine((e)=>!/[\r\n\0]/.test(e)),headers:$e(t(),t().max(4096)).refine((e)=>Object.keys(e).every((s)=>["content-type","retry-after","x-request-id","request-id"].includes(s))&&Object.values(e).every((s)=>!/[\r\n\0]/.test(s)))}).strict(),y=we([n({eof:i(!0)}).strict(),n({eof:i(!1),data:t().max(Math.ceil(Dr/3)*4).regex(/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/).refine((e)=>e.length>0&&e.length*3/4-(e.endsWith("==")?2:e.endsWith("=")?1:0)<=Dr)}).strict()]),x=n({bytes:o().int().min(0).max(Bn),chunks:o().int().min(0).max(qi)}).strict(),oa=n({apiKey:t().min(1).max(16384).refine((e)=>!/[\r\n\0]/.test(e)),api:m}).strict(),S=["custom_endpoint_host_not_found","custom_endpoint_connection_failed","custom_endpoint_tls_failed","custom_endpoint_request_too_large","custom_endpoint_device_update_required"];function Lr(e){return typeof e==="string"&&S.includes(e)}var O="Ollama listens only on 127.0.0.1 unless it is started with OLLAMA_HOST=0.0.0.0.",T={custom_endpoint_host_not_found:"Your computer couldn't resolve your model server's hostname. Check the hostname in the Base URL, and that this computer is on the network or tailnet that resolves it.",custom_endpoint_connection_failed:`Your computer's connection to your model server was refused or timed out. Check that the server is running and listening on the Base URL's address and port. ${O}`,custom_endpoint_tls_failed:"Your computer couldn't make a secure (TLS) connection to your model server. Check the server's https certificate, or use an http:// Base URL for a server on your computer or private network.",custom_endpoint_request_too_large:`This conversation is too long for your computer to send to your model server: the request is over ${Or/1024/1024} MB, the most it relays. Start a new session to continue, or choose another model.`,custom_endpoint_device_update_required:`Reason on your computer is too old to send this conversation to your model server: it relays requests of at most ${h/1024} KB. Update Reason on that computer (reason update), then send your message again.`,401:"Your model server refused the request (HTTP 401). Check the API key saved for it in Models.",403:"Your model server refused the request (HTTP 403). Ollama refuses requests addressed to a hostname other than localhost, such as a *.ts.net name from tailscale serve or funnel: restart it with OLLAMA_HOST=0.0.0.0, or use http://localhost:11434/v1 when it runs on the session's computer. For another server, check the API key and its access rules.",404:"Your model server answered HTTP 404 (not found). Check that the Base URL is the API root (for Ollama, http://localhost:11434/v1) and that each model ID is one the server lists."};var I=new Set(Object.values(T));export{rr,Dr,Bn,qi,Or,Nr,na,Wi,ia,oa,Lr};