@reason-machines/cli-linux-arm64-musl 0.2.386 → 0.2.388

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 (80) hide show
  1. package/bin/ara +1 -1
  2. package/bin/vm-hands/api-9jsc2wk3.js +2 -0
  3. package/bin/vm-hands/api-credentials-jhaxk9e6.js +2 -0
  4. package/bin/vm-hands/{ask-relay-fxb9b6ge.js → ask-relay-rpekz0vc.js} +3 -3
  5. package/bin/vm-hands/connect-cli-xk4wx40j.js +2 -0
  6. package/bin/vm-hands/{custom-endpoint-device-bm94e9r0.js → custom-endpoint-device-baqm3872.js} +1 -1
  7. package/bin/vm-hands/{desktop-account-3tnm4z5w.js → desktop-account-374pyd2h.js} +1 -1
  8. package/bin/vm-hands/{device-workspace-0xsj5ykf.js → device-workspace-0kk5ef85.js} +1 -1
  9. package/bin/vm-hands/{hands-worker-source-azdrrhsz.js → hands-worker-source-mshf7c6v.js} +1 -1
  10. package/bin/vm-hands/{index-7f2kwwen.js → index-cvnymkkb.js} +1 -1
  11. package/bin/vm-hands/{install-receipt-3xyx3rdd.js → install-receipt-352cy8vj.js} +1 -1
  12. package/bin/vm-hands/local-automation-fqf1yxn8.js +2 -0
  13. package/bin/vm-hands/local-capabilities-0xqv6w37.js +2 -0
  14. package/bin/vm-hands/local-desktop-users-39d8h875.js +2 -0
  15. package/bin/vm-hands/{local-display-mac-9h6btvvq.js → local-display-mac-yt4tpb96.js} +1 -1
  16. package/bin/vm-hands/local-display-session-12q3s3p1.js +2 -0
  17. package/bin/vm-hands/local-pty-session-142rrpf9.js +2 -0
  18. package/bin/vm-hands/managed-runtime-wzk0q157.js +2 -0
  19. package/bin/vm-hands/{network-contract-dsw79qkc.js → network-contract-m55ndrgk.js} +1 -1
  20. package/bin/vm-hands/package-k4xz7vcr.js +2 -0
  21. package/bin/vm-hands/{permissions-xv4dv0j0.js → permissions-zajmtjzs.js} +1 -1
  22. package/bin/vm-hands/{reason-hands-protocol-7d7xj1h3.js → reason-hands-protocol-z95pxxbh.js} +1 -1
  23. package/bin/vm-hands/serve-service-d2q1pdxh.js +2 -0
  24. package/bin/vm-hands/{status-1c7xbcyf.js → status-x8g58cxm.js} +2 -2
  25. package/bin/vm-hands/{version-zf4rdc85.js → version-55234k7v.js} +1 -1
  26. package/bin/vm-hands/vm-hands-entry-lite-289qftes.js +3 -0
  27. package/bin/vm-hands/{vm-hands-entry-lite-f02906k8.js → vm-hands-entry-lite-30rnhzfj.js} +1 -1
  28. package/bin/vm-hands/{vm-hands-entry-lite-thvqx0hb.js → vm-hands-entry-lite-3vb4he21.js} +1 -1
  29. package/bin/vm-hands/{vm-hands-entry-lite-yc73v70k.js → vm-hands-entry-lite-6shgavn0.js} +1 -1
  30. package/bin/vm-hands/{vm-hands-entry-lite-wv2tz2kd.js → vm-hands-entry-lite-6tv7j3ej.js} +1 -1
  31. package/bin/vm-hands/{vm-hands-entry-lite-jcnrgmtk.js → vm-hands-entry-lite-9fc26f9c.js} +2 -2
  32. package/bin/vm-hands/{vm-hands-entry-lite-0syv8gn0.js → vm-hands-entry-lite-axe84b1n.js} +1 -1
  33. package/bin/vm-hands/{vm-hands-entry-lite-9cmfthkq.js → vm-hands-entry-lite-b1ygrkbq.js} +1 -1
  34. package/bin/vm-hands/{vm-hands-entry-lite-6s3sn3yw.js → vm-hands-entry-lite-d7cvwy3k.js} +1 -1
  35. package/bin/vm-hands/{vm-hands-entry-lite-zjfr0zh8.js → vm-hands-entry-lite-e05sgnwe.js} +1 -1
  36. package/bin/vm-hands/vm-hands-entry-lite-f89wk20p.js +3 -0
  37. package/bin/vm-hands/{vm-hands-entry-lite-51hmj6am.js → vm-hands-entry-lite-fw5ztpwn.js} +1 -1
  38. package/bin/vm-hands/{vm-hands-entry-lite-2t0vcvd8.js → vm-hands-entry-lite-grjkhbf2.js} +1 -1
  39. package/bin/vm-hands/{vm-hands-entry-lite-j9f7zprc.js → vm-hands-entry-lite-jjgqsan6.js} +2 -2
  40. package/bin/vm-hands/{vm-hands-entry-lite-xrthfx3q.js → vm-hands-entry-lite-jx3w1z5q.js} +1 -1
  41. package/bin/vm-hands/{vm-hands-entry-lite-ejm5er3h.js → vm-hands-entry-lite-kb981w39.js} +1 -1
  42. package/bin/vm-hands/{vm-hands-entry-lite-hnsm5t36.js → vm-hands-entry-lite-mbs7d7ye.js} +1 -1
  43. package/bin/vm-hands/{vm-hands-entry-lite-mn64e4pt.js → vm-hands-entry-lite-n25efwqt.js} +1 -1
  44. package/bin/vm-hands/{vm-hands-entry-lite-98y68ymk.js → vm-hands-entry-lite-nf0avf46.js} +1 -1
  45. package/bin/vm-hands/{vm-hands-entry-lite-9w5vs9zv.js → vm-hands-entry-lite-nr1narzb.js} +1 -1
  46. package/bin/vm-hands/{vm-hands-entry-lite-1gxktkpe.js → vm-hands-entry-lite-p6g561rq.js} +1 -1
  47. package/bin/vm-hands/{vm-hands-entry-lite-fp8rpxp5.js → vm-hands-entry-lite-r7czqrtj.js} +1 -1
  48. package/bin/vm-hands/{vm-hands-entry-lite-qef2ndkd.js → vm-hands-entry-lite-s7k376cz.js} +1 -1
  49. package/bin/vm-hands/{vm-hands-entry-lite-rd0ak4ye.js → vm-hands-entry-lite-sb7n76g7.js} +1 -1
  50. package/bin/vm-hands/{vm-hands-entry-lite-rpn0frzb.js → vm-hands-entry-lite-spccx392.js} +1 -1
  51. package/bin/vm-hands/{vm-hands-entry-lite-f5230h6t.js → vm-hands-entry-lite-stbfyev7.js} +1 -1
  52. package/bin/vm-hands/{vm-hands-entry-lite-ma3y08k0.js → vm-hands-entry-lite-sv8bb7jq.js} +34 -34
  53. package/bin/vm-hands/vm-hands-entry-lite-te0p47ak.js +3 -0
  54. package/bin/vm-hands/{vm-hands-entry-lite-5n4vsm6b.js → vm-hands-entry-lite-v2ptg6br.js} +1 -1
  55. package/bin/vm-hands/{vm-hands-entry-lite-e0gdt6r5.js → vm-hands-entry-lite-wzqzjd6f.js} +1 -1
  56. package/bin/vm-hands/{vm-hands-entry-lite-h8dbw0c7.js → vm-hands-entry-lite-y55f8dyw.js} +1 -1
  57. package/bin/vm-hands/{vm-hands-entry-lite-b1gx16ds.js → vm-hands-entry-lite-yzaz1e8r.js} +2 -2
  58. package/bin/vm-hands/{vm-hands-entry-lite-8fj07njx.js → vm-hands-entry-lite-zr8gf6nd.js} +1 -1
  59. package/bin/vm-hands/{vm-hands-entry-lite-qhjxnb9g.js → vm-hands-entry-lite-zs3jsffv.js} +1 -1
  60. package/bin/vm-hands/vm-hands-entry-lite.js +1 -1
  61. package/bin/vm-hands/{vm-hands-executor-je75qpxp.js → vm-hands-executor-j4q5snaz.js} +1 -1
  62. package/bin/vm-hands/vm-hands-op-runner-btwvjt4p.js +2 -0
  63. package/bin/vm-hands/{vm-hands-runtime-ytxe7vjz.js → vm-hands-runtime-gw2wdm13.js} +3 -3
  64. package/bin/vm-hands/worker-sandbox-r41yz175.js +2 -0
  65. package/package.json +1 -1
  66. package/bin/vm-hands/api-credentials-xppmbg0m.js +0 -2
  67. package/bin/vm-hands/api-xmpbsm6b.js +0 -2
  68. package/bin/vm-hands/connect-cli-hx4p6z0q.js +0 -2
  69. package/bin/vm-hands/local-automation-r8ppxrhf.js +0 -2
  70. package/bin/vm-hands/local-capabilities-qgt0dx66.js +0 -2
  71. package/bin/vm-hands/local-desktop-users-ajb81vjm.js +0 -2
  72. package/bin/vm-hands/local-display-session-kb0n7zqx.js +0 -2
  73. package/bin/vm-hands/local-pty-session-cjas515w.js +0 -2
  74. package/bin/vm-hands/managed-runtime-7zkkgfqn.js +0 -2
  75. package/bin/vm-hands/package-smk3nqjs.js +0 -2
  76. package/bin/vm-hands/serve-service-ae4jwaae.js +0 -2
  77. package/bin/vm-hands/vm-hands-entry-lite-dh5gwmyf.js +0 -3
  78. package/bin/vm-hands/vm-hands-entry-lite-r8qg3wp1.js +0 -3
  79. package/bin/vm-hands/vm-hands-op-runner-75kqmmrd.js +0 -2
  80. package/bin/vm-hands/worker-sandbox-tgqbmy6b.js +0 -2
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{s as wq}from"./vm-hands-entry-lite-thvqx0hb.js";import{Mb as Nq,qc as Aq,wb as jq,wc as Rq}from"./vm-hands-entry-lite-b1gx16ds.js";import"./vm-hands-entry-lite-qef2ndkd.js";import"./vm-hands-entry-lite-mn64e4pt.js";import"./vm-hands-entry-lite-h8dbw0c7.js";import"./vm-hands-entry-lite-5n4vsm6b.js";import"./vm-hands-entry-lite-xrthfx3q.js";import"./vm-hands-entry-lite-fb5dzy9x.js";import"./vm-hands-entry-lite-2e18tm6w.js";import"./vm-hands-entry-lite-ammr3xbc.js";import"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-6s3sn3yw.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-rd0ak4ye.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";import{spawn as gq}from"child_process";import{chmodSync as Sq,chownSync as Eq,existsSync as l,lstatSync as e,mkdirSync as r,mkdtempSync as yq,readdirSync as s,readFileSync as I,realpathSync as mq,rmdirSync as qq,rmSync as uq,writeFileSync as y}from"fs";import{join as L}from"path";import{readFileSync as Wq,readlinkSync as Gq}from"fs";import{relative as _q}from"path";var Jq=16;function Yq(X){return X.replace(/\\([0-7]{3})/g,($,W)=>String.fromCharCode(Number.parseInt(W,8)))}function hq(X){let $=[];for(let W of X.split(`
2
+ import{s as wq}from"./vm-hands-entry-lite-3vb4he21.js";import{Mb as Nq,qc as Aq,wb as jq,wc as Rq}from"./vm-hands-entry-lite-yzaz1e8r.js";import"./vm-hands-entry-lite-s7k376cz.js";import"./vm-hands-entry-lite-n25efwqt.js";import"./vm-hands-entry-lite-y55f8dyw.js";import"./vm-hands-entry-lite-v2ptg6br.js";import"./vm-hands-entry-lite-jx3w1z5q.js";import"./vm-hands-entry-lite-fb5dzy9x.js";import"./vm-hands-entry-lite-2e18tm6w.js";import"./vm-hands-entry-lite-ammr3xbc.js";import"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-d7cvwy3k.js";import"./vm-hands-entry-lite-e05sgnwe.js";import"./vm-hands-entry-lite-sb7n76g7.js";import"./vm-hands-entry-lite-te0p47ak.js";import"./vm-hands-entry-lite-f89wk20p.js";import"./vm-hands-entry-lite-stbfyev7.js";import"./vm-hands-entry-lite-fw5ztpwn.js";import"./vm-hands-entry-lite-grjkhbf2.js";import{spawn as gq}from"child_process";import{chmodSync as Sq,chownSync as Eq,existsSync as l,lstatSync as e,mkdirSync as r,mkdtempSync as yq,readdirSync as s,readFileSync as I,realpathSync as mq,rmdirSync as qq,rmSync as uq,writeFileSync as y}from"fs";import{join as L}from"path";import{readFileSync as Wq,readlinkSync as Gq}from"fs";import{relative as _q}from"path";var Jq=16;function Yq(X){return X.replace(/\\([0-7]{3})/g,($,W)=>String.fromCharCode(Number.parseInt(W,8)))}function hq(X){let $=[];for(let W of X.split(`
3
3
  `)){let q=W.split(" ");if(q.length<10||!/^\d+:\d+$/.test(q[2]))continue;$.push({device:q[2],root:Yq(q[3]),mountPoint:Yq(q[4])})}return $}function kq(X,$,W){let q=X.replace(/\/+$/,"")||"/",J=(F)=>q==="/"||F===q||F.startsWith(`${q}/`),G=(F)=>new Map(hq(F).filter((R)=>J(R.mountPoint)).map((R)=>[`${R.mountPoint}\x00${R.device}\x00${R.root}`,R.mountPoint])),Y=G($),A=G(W),j=(F)=>_q(q,F)||".",f=[...Y].filter(([F])=>!A.has(F)).map(([,F])=>j(F)),O=[...A].filter(([F])=>!Y.has(F)).map(([,F])=>j(F));return{missing:f,extra:O,referenceCount:Y.size,ownCount:A.size}}function Kq(X,$,W,q="/proc"){let J,G,Y=null;try{J=Wq(`${q}/1/mountinfo`,"utf8"),G=Wq(`${q}/self/mountinfo`,"utf8")}catch(R){let v=R&&typeof R==="object"&&"code"in R&&typeof R.code==="string"?R.code:"unreadable";$("vm_hands.mount_check_unavailable",{code:v});return}try{Y=Gq(`${q}/1/ns/mnt`)===Gq(`${q}/self/ns/mnt`)}catch{}let{missing:A,extra:j,referenceCount:f,ownCount:O}=kq(X,J,G),F={reference_count:f,own_count:O,missing_count:A.length,extra_count:j.length,same_namespace:Y};if(j.length)$("vm_hands.mount_extra",{...F,extra:j.slice(0,Jq)});if(A.length)throw $("vm_hands.mount_mismatch",{...F,missing:A.slice(0,Jq)}),W(`${A.length} mount(s) under the Session root are missing from vm-hands' namespace`)}var Pq="/sys/fs/cgroup/reason-payload",H="vm-hands",lq="/run/ara-srt/fallbacks.jsonl",E="/reason-person",Xq=5000,cq=1e4,Bq="__VM_HANDS_PROOF_DIR__",pq="__VM_HANDS_PROBE_NONCE__";class D extends Error{code;constructor(X,$){super($);this.code=X}}function aq(X,$){if(!/^[0-9a-f-]{36}$/i.test($))throw new D("vm_hands_bind_invalid","bad bind id");return L(X,H,`b-${$.toLowerCase()}`)}var tq=5000,Iq=(X)=>`'${X.replaceAll("'","'\\''")}'`;function JX(X){let $=X.cgroup??Pq,W=X.init.layout.payload_uid,q=X.log??(()=>{}),J=new Map,G=new Map,Y=0,A=()=>{try{let Z=I("/run/ara-srt/starts.jsonl","utf8"),z=Z.slice(Y>Z.length?0:Y).split(`
4
4
  `).filter(Boolean);Y=Z.length;let K=z.map((U)=>{try{return Number(JSON.parse(U).elapsed_ms)||0}catch{return 0}});if(K.length)q("vm_hands.srt_server_starts",{count:K.length,elapsed_ms:K.slice(0,8)})}catch{}},j=null,f=!1,O=X.srtCgroup??"/sys/fs/cgroup/reason-srt",F=()=>{j??=Uq()},R=0,v=()=>{try{let Z=I(lq,"utf8"),z=Z.slice(R>Z.length?0:R);R=Z.length;let K=z.split(`
5
5
  `).filter(Boolean).slice(0,1000);if(!K.length)return null;let U={},T=0;for(let N of K)try{let M=JSON.parse(N),B=typeof M.code==="string"&&/^[a-z_]{1,40}$/.test(M.code)?M.code:"other";if(U[B]=(U[B]??0)+1,typeof M.elapsed_ms==="number")T=Math.max(T,M.elapsed_ms)}catch{U.unparsed=(U.unparsed??0)+1}return q("vm_hands.srt_fallbacks",{count:K.length,codes:U,max_elapsed_ms:T}),{count:K.length,codes:U,max_elapsed_ms:T}}catch{return null}},P=!1,m=(Z,z,K)=>{if(P)throw Error("vm_hands_pool_held");return vq(Z,z,K)},i=(Z)=>(z,K,U)=>gq("/bin/sh",["-c",`echo $$ > ${Iq(L(Z,"cgroup.procs"))} || exit 125; exec "$@"`,"vm-hands-join",z,...K],U),vq=i(L($,H)),u=L($,H,"probe"),g=(Z)=>aq($,Z),bq=(Z)=>{let z=g(Z);try{r(z,{mode:493})}catch(K){if(!(K&&typeof K==="object"&&("code"in K)&&K.code==="EEXIST"))throw new D("vm_hands_bind_failed","bind cgroup")}return z},xq=(Z)=>{try{qq(g(Z))}catch{}},x=X.prespawn?Nq({spawnProcess:m,...X.relayDependencies?.sourceEntrypoint?{sourceEntrypoint:X.relayDependencies.sourceEntrypoint}:{},log:(Z,z)=>q(Z,z??{})}):null;x?.arm();let n=x?setInterval(()=>{x.arm()},tq):null;n?.unref?.();async function c(Z){let z=J.get(Z);if(J.delete(Z),!z)return;z.abort.abort(),await z.done}return{bindCgroup:g,async startExecutor(Z){if(F(),G.set(Z.bindId,Uq()),f=!0,!Z.claim)throw new D("vm_hands_bind_invalid","an executor needs the claim it serves");await c(Z.bindId);let{claim:z,bindId:K}=Z,U=bq(K),T=z.owner;if(!T||typeof T.device_id!=="string"||typeof z.root_id!=="string")throw new D("vm_hands_bind_invalid","claim without its owner Device or root");let N=new AbortController,M,B,V=new Promise((Q,w)=>{M=Q,B=w}),_,C=new Promise((Q)=>{_=Q}),S=Rq({headless:!0,hostExecution:!0,runtimeDirectory:X.runtimeDirectory,deviceIdentity:{deviceId:T.device_id,rootId:z.root_id,apiOrigin:X.apiOrigin},claimOwner:z.owner,root:X.root,runId:z.run_id,operationId:z.operation_id,attemptId:z.attempt_id,payload:Object.fromEntries(Object.entries(z.payload).filter(([Q])=>!Q.startsWith("vm_hands_"))),signal:N.signal,...Z.workspaceGrant?{workspaceGrant:Z.workspaceGrant}:{},emitEvent:async(Q,w)=>{if(Q==="hands.ready"){M(w);return}if(Q==="hands.started"||Q==="hands.stopped"||Q==="hands.failed")return;await X.forward(K,Q,w)}},{...X.relayDependencies,spawnWorker:(Q)=>i(U)(Q.command,Q.args,Q.options),...x?{takePrespawnedWorker:(Q)=>{let w=x.take(Q);if(!w?.pid)return w;try{return y(L(U,"cgroup.procs"),String(w.pid)),w}catch{try{w.kill("SIGKILL")}catch{}return null}},adoptSpawnedWorker:x.adopt}:{}}).then(()=>{_("executor_stopped")},(Q)=>{let w=Q&&typeof Q==="object"&&"code"in Q?String(Q.code):"executor_failed";B(new D(w,Q instanceof Error?Q.message:String(Q))),_(w)}).finally(()=>B(new D("vm_hands_executor_exited","executor ended before it was ready")));J.set(K,{abort:N,done:S,exited:C,operationId:z.operation_id,runId:z.run_id,expiresAtMs:Date.parse(String(z.payload.expires_at??""))||0});let h=await V,p=h.executor_launch_id;if(typeof p!=="string")throw new D("vm_hands_bind_failed","executor ready without a launch id");return{launchId:p,readyData:h,applied:{hands_confinement:typeof z.payload.hands_confinement==="string"?z.payload.hands_confinement:null,browser_egress:z.payload.browser_egress??null}}},takeSrtFallbacks:v,executorExited(Z){return J.get(Z)?.exited??new Promise(()=>{})},freezeBind(Z){let z=g(Z);if(l(L(z,"cgroup.freeze")))y(L(z,"cgroup.freeze"),"1")},async killAndVerifyPayload(Z){let z=new Set(Z?.keep??[]);if(z.size||Z?.own)return Hq(Z?.bindId??null,z,Z?.own===!0);P=!0;let K=Tq();try{await Mq();let U=Promise.all([...J.keys()].map((B)=>c(B).catch(()=>{return})));A();let T=Date.now()+Xq;await a($,T,"payload"),await U;let N=(f||X.srtWarmLate?.()===!0)&&l(L(O,"cgroup.events"));if(N)await a(O,T,"srt");let M=$q(W).filter((B)=>!b(B,E));if(j!==null){let B=Zq(j).filter((V)=>V!==process.pid&&!b(V,E));if(B.length)throw q("vm_hands.kill_strays",{strays:t(B)}),new D("vm_hands_kill_unverified",`${B.length} process(es) the run started survived it`);j=null}if(f=!1,N)X.onSrtReset?.();if(M.length)throw q("vm_hands.kill_survivors",{pids:M.slice(0,16)}),new D("vm_hands_kill_unverified",`${M.length} payload-uid process(es) outside the payload cgroup`);G.clear();for(let B of zq())try{qq(L($,H,B))}catch{}}finally{P=!1,K()}if(x)setTimeout(()=>{if(!J.size)x.arm()},100).unref?.()},async killProbe(){let Z=Date.now()+Xq;if(l(L(u,"cgroup.events"))){await a(u,Z,"probe");try{qq(u)}catch{}}let z=Qq(process.pid);if(z===null)throw new D("vm_hands_kill_unverified","agent start time unreadable");await dq($,z,Z);let K=(T)=>{let N=Qq(T);return N!==null&&N<=z},U=$q(W).filter((T)=>K(T)&&!b(T,E));if(U.length)throw q("vm_hands.kill_survivors",{pids:U.slice(0,16),at:"attest"}),new D("vm_hands_kill_unverified",`${U.length} payload-uid process(es) from before this agent`);if(j!==null){let T=[$,L($,H)].map((B)=>B.replace(/^\/sys\/fs\/cgroup/,"")),N=O.replace(/^\/sys\/fs\/cgroup/,""),M=Zq(j).filter((B)=>B!==process.pid&&!b(B,E)&&!b(B,"/reason-vm-hands")&&!b(B,N)&&!T.some((V)=>Lq(B,V)));if(M.length&&f)throw q("vm_hands.kill_strays",{strays:t(M),at:"attest"}),new D("vm_hands_kill_unverified",`${M.length} process(es) the run started survived it`);if(M.length)q("vm_hands.attest_concurrent",{processes:t(M),count:M.length});j=null}},async runProbe({nonce:Z,script:z}){if(F(),!z.includes(Bq))throw new D("vm_hands_probe_failed","probe names no proof directory");let K=X.proofParent??"/tmp/reason-vm-hands-proof";r(K,{mode:457,recursive:!0});let U=e(K);if(U.isSymbolicLink()||!U.isDirectory()||U.uid!==(process.getuid?.()??-1)||(U.mode&4095)!==457)throw new D("vm_hands_probe_failed","proof parent is not root's 0711 directory");let T=yq(L(K,"p-")),N=!1;try{if(!/^[A-Za-z0-9/._-]+$/.test(T)||!/^[A-Za-z0-9_-]{1,128}$/.test(Z))throw new D("vm_hands_probe_failed","proof directory path or nonce");Eq(T,W,W),Sq(T,448);let M=e(T).ino;try{r(u,{mode:493})}catch(C){if(!(C&&typeof C==="object"&&("code"in C)&&C.code==="EEXIST"))throw new D("vm_hands_probe_failed","probe cgroup")}let B=i(u)("/bin/bash",["-c",z.replaceAll(Bq,T).replaceAll(pq,Z)],{cwd:"/",env:{PATH:"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},stdio:["ignore","pipe","ignore"]}),V="";B.stdout?.on("data",(C)=>{if(V.length<16384)V+=C.toString("utf8").slice(0,16384-V.length)});let _=await new Promise((C)=>{let S=setTimeout(()=>{N=!0,B.kill("SIGKILL"),C(124)},cq);B.once("error",()=>{clearTimeout(S),C(127)}),B.once("close",(h)=>{clearTimeout(S),C(h??1)})});return q("vm_hands.probe",{nonce_len:Z.length,exit_code:_}),{exitCode:_,markers:V,proofDirInode:M}}finally{if(!N)uq(T,{recursive:!0,force:!0})}},restatLayout(){let{session_root:Z,alias:z}=X.init.layout,K="invalid";try{Aq(Z),K="0:0:755"}catch{}let U=!1,T=-1;try{let N=e(z);T=N.uid,U=K==="0:0:755"&&z===L(Z,"repo")&&!N.isSymbolicLink()&&N.isDirectory()&&mq(z)===z&&N.uid===W}catch{}return{root_mode:K,alias_ok:U,owner_uid:T}},verifyMounts(){Kq(X.init.layout.session_root,q,(Z)=>new D("vm_hands_mount_mismatch",Z))},installEnvironment(Z,z){let K=J.get(Z);if(!K)throw new D("environment_unavailable","no executor owns an environment");return jq({root:X.root,operationId:K.operationId,payload:z}).installed_revision},async stop(){if(n)clearInterval(n);x?.close(),await Promise.all([...J.keys()].map((Z)=>c(Z)))}};function zq(){try{return s(L($,H),{withFileTypes:!0}).filter((Z)=>Z.isDirectory()&&/^b-[0-9a-f-]{36}$/.test(Z.name)).map((Z)=>Z.name)}catch{return[]}}async function Hq(Z,z,K=!1){let U=new Set([...z].map((N)=>N.toLowerCase())),T=Tq();try{await Mq();let N=Date.now()+Xq,M=new Set(zq().filter((Q)=>!U.has(Q.slice(2))).map((Q)=>Q.slice(2)));if(Z)M.add(Z.toLowerCase());let B=null;for(let Q of M){let w=c(Q).catch(()=>{return}),o=G.get(Q);if(o!==void 0)B=B===null?o:Math.min(B,o);if(l(L(g(Q),"cgroup.events")))await a(g(Q),N,"bind");await w}let V=[...U].map((Q)=>g(Q).replace(/^\/sys\/fs\/cgroup/,"")),_=[$,L($,H)].map((Q)=>Q.replace(/^\/sys\/fs\/cgroup/,"")),C=O.replace(/^\/sys\/fs\/cgroup/,""),S=(Q)=>b(Q,E)||V.some((w)=>b(Q,w)),h=K?[]:$q(W).filter((Q)=>!S(Q));if(h.length)throw q("vm_hands.kill_survivors",{pids:h.slice(0,16),beside:U.size}),new D("vm_hands_kill_unverified",`${h.length} payload-uid process(es) outside a live bind`);let p=(Q)=>!S(Q)&&!b(Q,"/reason-vm-hands")&&!b(Q,C)&&!_.some((w)=>Lq(Q,w));if(B!==null){let Q=Zq(B).filter((w)=>w!==process.pid&&p(w));if(Q.length)throw q("vm_hands.kill_strays",{strays:t(Q),beside:U.size}),new D("vm_hands_kill_unverified",`${Q.length} process(es) the run started survived it`)}for(let Q of M)G.delete(Q),xq(Q)}finally{T()}}}function Qq(X,$="/proc"){try{let W=I(L($,String(X),"stat"),"utf8"),q=Number(W.slice(W.lastIndexOf(")")+2).split(" ")[19]);return Number.isFinite(q)?q:null}catch{return null}}function Cq(X,$="/proc"){try{let W=I(L($,String(X),"stat"),"utf8"),q=Number(W.slice(W.lastIndexOf(")")+2).split(" ")[1]);return Number.isFinite(q)?q:null}catch{return null}}async function dq(X,$,W){try{y(L(X,"cgroup.freeze"),"1")}catch(q){throw new D("vm_hands_kill_unverified",`payload cgroup.freeze: ${q instanceof Error?q.message:String(q)}`)}try{for(;;){let q=Oq(X).filter((G)=>fq(G,X)),J=new Set(q.filter((G)=>{let Y=Qq(G);return Y!==null&&Y<=$}));for(let G=!0;G;){G=!1;for(let Y of q){if(J.has(Y))continue;let A=Cq(Y);if(A!==null&&J.has(A))J.add(Y),G=!0}}if(J.size===0)return;if(Date.now()>W)throw new D("vm_hands_kill_unverified",`${J.size} previous-boot process(es) survived`);for(let G of J)try{process.kill(G,"SIGKILL")}catch{}await new Promise((G)=>setTimeout(G,10))}}finally{try{y(L(X,"cgroup.freeze"),"0")}catch{}}}function Lq(X,$,W="/proc"){try{return I(L(W,String(X),"cgroup"),"utf8").split(`
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{s as a,t as b,u as c}from"./vm-hands-entry-lite-3vb4he21.js";import"./vm-hands-entry-lite-fw5ztpwn.js";import"./vm-hands-entry-lite-grjkhbf2.js";export{b as spawnSessionPty,c as runVmHandsOpRunner,a as VM_HANDS_OP_RUNNER_PERSON_ARG};
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{xa as k,ya as m,za as l}from"./vm-hands-entry-lite-e0gdt6r5.js";import{Ie as u}from"./vm-hands-entry-lite-5n4vsm6b.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import{Kk as G}from"./vm-hands-entry-lite-2t0vcvd8.js";import{spawn as r}from"child_process";import{createHash as i}from"crypto";import{lstatSync as T,mkdirSync as s,readFileSync as t,statSync as e,writeFileSync as d}from"fs";var P="/run/reason-vm-hands",O="/run/reason-vm-hands/env",x="/home/runner/.reason/workspace",jj=/^https:\/\/[a-z0-9.-]+(?::\d{1,5})?$/,S="/sys/fs/cgroup/reason-srt",p="/usr/local/bin/ara-srt-exec",qj=65536,Jj=21600000;function Qj(Q,j="/run/ara-srt"){try{if((process.getuid?.()??-1)!==0)return;s(j,{recursive:!0,mode:448});let J=T(j);if(!J.isDirectory()||J.uid!==0||(J.mode&63)!==0){Q("srt_base_keyed_skipped",{reason:"socket_dir_unsafe"});return}d(`${j}/base-keyed`,`1
3
- `,{mode:420}),Q("srt_base_keyed",{})}catch{Q("srt_base_keyed_skipped",{reason:"error"})}}function R(Q,j){let J=(F)=>{return j("srt_warm_skipped",{reason:F}),Promise.resolve()};if(typeof Q.srt_base_settings!=="string")return J("no_settings");let Z=Buffer.from(Q.srt_base_settings,"base64");if(Z.length===0||Z.length>qj||Z.toString("base64")!==Q.srt_base_settings)return J("settings_invalid");try{let F=T(S);if(!F.isDirectory()||F.uid!==0||(F.mode&18)!==0)return J("cgroup_unsafe");for(let[H,g]of[[p,!1],["/usr/local/bin",!0]]){let Y=T(H);if((g?!Y.isDirectory():!Y.isFile())||Y.uid!==0||(Y.mode&18)!==0)return J("srt_exec_unsafe")}}catch{return J("cgroup_or_exec_missing")}if((process.getuid?.()??-1)!==0)return J("not_root");let X=performance.now(),z=i("sha256").update(Z).digest("hex"),W=`${P}/srt-base-settings.json`;try{d(W,Z,{mode:384,flag:"w"})}catch{return J("settings_write")}let M=r("/bin/sh",["-c",`echo $$ > ${S}/cgroup.procs || exit 125; exec "$@"`,"vm-hands-srt",p,"--settings",W,"--idle-ms",String(Jj),"--","/bin/true"],{cwd:"/",env:{PATH:"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},stdio:"ignore"});return new Promise((F)=>{M.once("error",()=>{j("srt_warm_failed",{reason:"spawn"}),F()}),M.once("close",(H)=>{j(H===0?"srt_warm_done":"srt_warm_failed",{exit_code:H,warm_ms:Math.round(performance.now()-X),settings_sha256:z}),F()})})}var y=3000;function Lj(Q){if(!Q||typeof Q!=="object"||Array.isArray(Q))return null;let j=Q,J=j.layout,Z=j.device_key,X=j.credential;return typeof j.workspace_id==="string"&&Number.isSafeInteger(j.instance_generation)&&typeof j.api_origin==="string"&&jj.test(j.api_origin)&&typeof j.manifest_digest==="string"&&!!X&&typeof X.key_id==="string"&&Number.isSafeInteger(X.expires_at_ms)&&typeof X.signature==="string"&&!!J&&typeof J.session_root==="string"&&typeof J.alias==="string"&&Number.isSafeInteger(J.payload_uid)&&typeof J.kind==="string"&&!!Z&&typeof Z.pkcs8==="string"&&typeof Z.spki==="string"?j:null}function v(Q){s(Q,{recursive:!0,mode:448});let j=e(Q);if(!j.isDirectory()||(j.mode&63)!==0||j.uid!==(process.getuid?.()??-1))throw Error(`vm_hands_runtime_directory_unsafe: ${Q}`)}async function Zj(Q){let[{CLI_VERSION:j},J,Z,X]=await Promise.all([import("./version-zf4rdc85.js"),import("./hands-worker-source-azdrrhsz.js"),import("./network-contract-dsw79qkc.js"),import("./device-workspace-0xsj5ykf.js")]),{REASON_HANDS_PROTOCOL_VERSION:z}=await import("./reason-hands-protocol-7d7xj1h3.js");return{reason_runtime_version:j,bridge_version:j,protocol_version:u,execution_eligible:!0,instance_generation:Q.instance_generation,capabilities:{supported_operations:["hands.connect"],hands_worker_artifact_sha256:J.REASON_HANDS_WORKER_ARTIFACT_SHA256,hands_worker_entrypoint:J.REASON_HANDS_WORKER_ENTRYPOINT,hands_slots:1,max_payload_bytes:Z.LOCAL_OPERATION_MAX_BYTES,max_result_bytes:Z.LOCAL_OPERATION_MAX_BYTES,operation_constraints:{"hands.connect":{ready:!0,execution_mode:"host",transport:"wss_relay",worker:"ara_hands",slots:1,session_group:Z.HANDS_SESSION_GROUP,worker_version:J.REASON_HANDS_WORKER_VERSION,protocol_version:z,worker_artifact_sha256:J.REASON_HANDS_WORKER_ARTIFACT_SHA256,worker_entrypoint:J.REASON_HANDS_WORKER_ENTRYPOINT,policy_mode:"full_access",policy_version:1,workspace_base:X.REASON_WORKSPACE_BASE,workspace_layout:X.SESSION_WORKSPACE_LAYOUT,browser_state:"optional_headless",desktop:!1,max_session_ms:43200000,environment_delivery:Z.HANDS_ENVIRONMENT_DELIVERY,[Z.HANDS_ENVIRONMENT_AT_CLAIM_KEY]:Z.HANDS_ENVIRONMENT_AT_CLAIM,[Z.HANDS_CLOUD_ACCESS_KEY]:Z.HANDS_CLOUD_ACCESS,[Z.HANDS_LARGE_ENVIRONMENT_KEY]:Z.HANDS_LARGE_ENVIRONMENT,[Z.HANDS_CONFINEMENT_KEY]:Z.HANDS_CONFINEMENT,[Z.HANDS_JOBS_USER_KEY]:Z.HANDS_JOBS_USER,vm_hands:"v1"}}}}}var V=["fs.read","fs.write","fs.export","fs.import","exec.run","exec.full","process.list","ports.list","pty.start","jobs.control","automation.call.v1"],$j=new Set(["pty.start","jobs.control"]);function Xj(Q,j){let J=j([{id:"vm-hands",label:"workspace",path:x,pathFingerprint:"0".repeat(64),permissions:{read:!0,write:!0,execute:!0,discover_environment:!0,expose_mcp:!1}}],{worker:{executionMode:"unsandboxed",readiness:Object.fromEntries(V.map((z)=>[z,!0]))}}),Z=Q.capabilities,X={...Z.operation_constraints};for(let z of V)X[z]={...J.operation_constraints?.[z]??{},ready:!0,execution_mode:J.operation_constraints?.[z]?.execution_mode??"host"};return{...Q,capabilities:{...Z,supported_operations:["hands.connect",...V],operation_constraints:X}}}function zj(Q){for(let j of t("/etc/passwd","utf8").split(`
4
- `)){let J=j.split(":");if(J.length>=4&&Number(J[2])===Q&&/^\d+$/.test(J[3]??"")&&Number(J[3])>0)return Number(J[3])}throw Error("vm_hands_payload_account_unavailable")}function Fj(Q,j){let J=j.owner;if(!J||typeof J.organization_id!=="string"||typeof J.device_id!=="string"||typeof j.root_id!=="string")return null;return{version:4,apiOrigin:Q.api_origin,orgId:J.organization_id,deviceId:J.device_id,devicePublicKey:"",displayName:"vm-hands",registeredAt:new Date(0).toISOString(),handsSlots:1,roots:[{id:j.root_id,label:"workspace",path:x,pathFingerprint:"0".repeat(64),permissions:{read:!0,write:!0,execute:!0,discover_environment:!0,expose_mcp:!1}}]}}async function Mj(Q,j){v(P),v(O),Qj(j);let J=R(Q,j),Z=!1,X=async()=>{if(!await Promise.race([J.then(()=>!0),new Promise(($)=>setTimeout(()=>$(!1),y).unref?.())]))Z=!0,j("srt_warm_late",{wait_ms:y})},[{configureDesktopAccount:z},{configureWorkerSandbox:W}]=await Promise.all([import("./desktop-account-3tnm4z5w.js"),import("./worker-sandbox-tgqbmy6b.js")]);W();try{z({value:String(Q.layout.payload_uid)})}catch{j("payload_account_unavailable"),await new Promise(()=>{setInterval(()=>{return},1073741824)})}let M=new AbortController;for(let q of["SIGTERM","SIGINT"])process.on(q,()=>M.abort());let F=new Map,H,g=new Promise((q)=>{H=q}),Y=g.then(()=>import("./vm-hands-executor-je75qpxp.js")).then(({createVmHandsExecutor:q})=>{let $=q({init:Q,root:x,runtimeDirectory:P,apiOrigin:Q.api_origin,prespawn:!0,onSrtReset:()=>{Z=!1,J=R(Q,j)},srtWarmLate:()=>Z,forward:(B,K,N)=>F.get(B)?.(K,N)??Promise.reject(Error("vm_hands_not_bound")),log:(B,K)=>j(B,K)});return j("executor_loaded"),$}),A=(q)=>async(...$)=>(await Y)[q](...$),C=null;Y.then((q)=>{C=($)=>q.executorExited($)});let L={startExecutor:async(...q)=>{return await X(),A("startExecutor")(...q)},killAndVerifyPayload:A("killAndVerifyPayload"),killProbe:A("killProbe"),runProbe:async(...q)=>{return await X(),A("runProbe")(...q)},restatLayout:()=>{throw Error("replaced below")},verifyMounts:()=>{throw Error("replaced below")},installEnvironment:()=>{throw Error("replaced below")},executorExited:(q)=>C?C(q):new Promise(()=>{}),takeSrtFallbacks:()=>null};Y.then((q)=>{L.restatLayout=()=>q.restatLayout(),L.verifyMounts=()=>q.verifyMounts(),L.installEnvironment=($,B)=>q.installEnvironment($,B),L.freezeBind=($)=>q.freezeBind($),L.takeSrtFallbacks=()=>q.takeSrtFallbacks?.()??null});let c=await k(Q),o=new m(Q,c,L,{envRoot:O}),h=Zj(Q),b=null,n=Promise.all([h,import("./local-capabilities-qgt0dx66.js")]).then(([q,$])=>{b=Xj(q,$.capabilityInventoryForRoots),j("device_ops_loaded")}).catch((q)=>j("device_ops_unavailable",{error:q instanceof Error?q.name:"error"})),f=g.then(()=>import("./vm-hands-executor-je75qpxp.js")).then(({createVmHandsOpRunners:q,vmHandsBindCgroup:$,VM_HANDS_PAYLOAD_CGROUP:B})=>q({payloadUid:Q.layout.payload_uid,payloadGid:zj(Q.layout.payload_uid),bindCgroup:(K)=>$(B,K),log:(K,N)=>j(K,N)})).catch(()=>null);f.then((q)=>q?.warm("person")),j("agent_ready"),await l({apiOrigin:Q.api_origin,agent:o,signal:M.signal,heartbeat:async()=>b??await h,executeOp:async({kind:q,claim:$,bindId:B,signal:K,emit:N})=>{let w=Fj(Q,$);if(!w)return{status:"failed",error_code:"vm_hands_bind_invalid"};let E={executionMode:"unsandboxed",runtimeDirectory:P,readiness:Object.fromEntries(V.map((U)=>[U,!0]))},_=(U)=>{let D=typeof U.kind==="string"?U.kind:"";if(D)N({kind:D,...U.data&&typeof U.data==="object"?{data:U.data}:{}})};if($.capability==="exec.full"&&q!=="person")return{status:"failed",error_code:"capability_not_granted"};if($.capability==="automation.call.v1"&&q!=="model")return{status:"failed",error_code:"capability_not_granted"};let a=$.capability==="pty.start"&&q==="person"&&!$.authority;if($j.has(String($.capability))&&!a){let{executeLocalOperation:U}=await import("./local-capabilities-qgt0dx66.js");return U(w,$,{worker:E,signal:K,emit:(D)=>_(D)})}let I=await f;if(!I)return{status:"failed",error_code:"vm_hands_payload_account_unavailable"};return I.run(q,{id:String($.attempt_id),claim:$,state:w,worker:E},_,K,B)},readyData:({launchId:q})=>({executor_launch_id:q}),log:(q,$)=>{if(q==="vm_hands.registered"||q==="vm_hands.reconnected")H();j(q,$)},onTurn:(q,$)=>{if($)F.set(q,$);else F.delete(q)}}),await(await Y).stop(),(await f)?.stop()}export{R as startBaseSrtServer,Mj as runVmHands,Lj as parseVmHandsInit,Zj as heartbeatBody,Qj as enableBaseKeyedSrt};
2
+ import{xa as k,ya as m,za as l}from"./vm-hands-entry-lite-wzqzjd6f.js";import{Ie as u}from"./vm-hands-entry-lite-v2ptg6br.js";import"./vm-hands-entry-lite-e05sgnwe.js";import{Lk as G}from"./vm-hands-entry-lite-grjkhbf2.js";import{spawn as r}from"child_process";import{createHash as i}from"crypto";import{lstatSync as T,mkdirSync as s,readFileSync as t,statSync as e,writeFileSync as d}from"fs";var P="/run/reason-vm-hands",O="/run/reason-vm-hands/env",x="/home/runner/.reason/workspace",jj=/^https:\/\/[a-z0-9.-]+(?::\d{1,5})?$/,S="/sys/fs/cgroup/reason-srt",p="/usr/local/bin/ara-srt-exec",qj=65536,Jj=21600000;function Qj(Q,j="/run/ara-srt"){try{if((process.getuid?.()??-1)!==0)return;s(j,{recursive:!0,mode:448});let J=T(j);if(!J.isDirectory()||J.uid!==0||(J.mode&63)!==0){Q("srt_base_keyed_skipped",{reason:"socket_dir_unsafe"});return}d(`${j}/base-keyed`,`1
3
+ `,{mode:420}),Q("srt_base_keyed",{})}catch{Q("srt_base_keyed_skipped",{reason:"error"})}}function R(Q,j){let J=(F)=>{return j("srt_warm_skipped",{reason:F}),Promise.resolve()};if(typeof Q.srt_base_settings!=="string")return J("no_settings");let Z=Buffer.from(Q.srt_base_settings,"base64");if(Z.length===0||Z.length>qj||Z.toString("base64")!==Q.srt_base_settings)return J("settings_invalid");try{let F=T(S);if(!F.isDirectory()||F.uid!==0||(F.mode&18)!==0)return J("cgroup_unsafe");for(let[H,g]of[[p,!1],["/usr/local/bin",!0]]){let Y=T(H);if((g?!Y.isDirectory():!Y.isFile())||Y.uid!==0||(Y.mode&18)!==0)return J("srt_exec_unsafe")}}catch{return J("cgroup_or_exec_missing")}if((process.getuid?.()??-1)!==0)return J("not_root");let X=performance.now(),z=i("sha256").update(Z).digest("hex"),W=`${P}/srt-base-settings.json`;try{d(W,Z,{mode:384,flag:"w"})}catch{return J("settings_write")}let M=r("/bin/sh",["-c",`echo $$ > ${S}/cgroup.procs || exit 125; exec "$@"`,"vm-hands-srt",p,"--settings",W,"--idle-ms",String(Jj),"--","/bin/true"],{cwd:"/",env:{PATH:"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},stdio:"ignore"});return new Promise((F)=>{M.once("error",()=>{j("srt_warm_failed",{reason:"spawn"}),F()}),M.once("close",(H)=>{j(H===0?"srt_warm_done":"srt_warm_failed",{exit_code:H,warm_ms:Math.round(performance.now()-X),settings_sha256:z}),F()})})}var y=3000;function Lj(Q){if(!Q||typeof Q!=="object"||Array.isArray(Q))return null;let j=Q,J=j.layout,Z=j.device_key,X=j.credential;return typeof j.workspace_id==="string"&&Number.isSafeInteger(j.instance_generation)&&typeof j.api_origin==="string"&&jj.test(j.api_origin)&&typeof j.manifest_digest==="string"&&!!X&&typeof X.key_id==="string"&&Number.isSafeInteger(X.expires_at_ms)&&typeof X.signature==="string"&&!!J&&typeof J.session_root==="string"&&typeof J.alias==="string"&&Number.isSafeInteger(J.payload_uid)&&typeof J.kind==="string"&&!!Z&&typeof Z.pkcs8==="string"&&typeof Z.spki==="string"?j:null}function v(Q){s(Q,{recursive:!0,mode:448});let j=e(Q);if(!j.isDirectory()||(j.mode&63)!==0||j.uid!==(process.getuid?.()??-1))throw Error(`vm_hands_runtime_directory_unsafe: ${Q}`)}async function Zj(Q){let[{CLI_VERSION:j},J,Z,X]=await Promise.all([import("./version-55234k7v.js"),import("./hands-worker-source-mshf7c6v.js"),import("./network-contract-m55ndrgk.js"),import("./device-workspace-0kk5ef85.js")]),{REASON_HANDS_PROTOCOL_VERSION:z}=await import("./reason-hands-protocol-z95pxxbh.js");return{reason_runtime_version:j,bridge_version:j,protocol_version:u,execution_eligible:!0,instance_generation:Q.instance_generation,capabilities:{supported_operations:["hands.connect"],hands_worker_artifact_sha256:J.REASON_HANDS_WORKER_ARTIFACT_SHA256,hands_worker_entrypoint:J.REASON_HANDS_WORKER_ENTRYPOINT,hands_slots:1,max_payload_bytes:Z.LOCAL_OPERATION_MAX_BYTES,max_result_bytes:Z.LOCAL_OPERATION_MAX_BYTES,operation_constraints:{"hands.connect":{ready:!0,execution_mode:"host",transport:"wss_relay",worker:"ara_hands",slots:1,session_group:Z.HANDS_SESSION_GROUP,worker_version:J.REASON_HANDS_WORKER_VERSION,protocol_version:z,worker_artifact_sha256:J.REASON_HANDS_WORKER_ARTIFACT_SHA256,worker_entrypoint:J.REASON_HANDS_WORKER_ENTRYPOINT,policy_mode:"full_access",policy_version:1,workspace_base:X.REASON_WORKSPACE_BASE,workspace_layout:X.SESSION_WORKSPACE_LAYOUT,browser_state:"optional_headless",desktop:!1,max_session_ms:43200000,environment_delivery:Z.HANDS_ENVIRONMENT_DELIVERY,[Z.HANDS_ENVIRONMENT_AT_CLAIM_KEY]:Z.HANDS_ENVIRONMENT_AT_CLAIM,[Z.HANDS_CLOUD_ACCESS_KEY]:Z.HANDS_CLOUD_ACCESS,[Z.HANDS_LARGE_ENVIRONMENT_KEY]:Z.HANDS_LARGE_ENVIRONMENT,[Z.HANDS_CONFINEMENT_KEY]:Z.HANDS_CONFINEMENT,[Z.HANDS_JOBS_USER_KEY]:Z.HANDS_JOBS_USER,vm_hands:"v1"}}}}}var V=["fs.read","fs.write","fs.export","fs.import","exec.run","exec.full","process.list","ports.list","pty.start","jobs.control","automation.call.v1"],$j=new Set(["pty.start","jobs.control"]);function Xj(Q,j){let J=j([{id:"vm-hands",label:"workspace",path:x,pathFingerprint:"0".repeat(64),permissions:{read:!0,write:!0,execute:!0,discover_environment:!0,expose_mcp:!1}}],{worker:{executionMode:"unsandboxed",readiness:Object.fromEntries(V.map((z)=>[z,!0]))}}),Z=Q.capabilities,X={...Z.operation_constraints};for(let z of V)X[z]={...J.operation_constraints?.[z]??{},ready:!0,execution_mode:J.operation_constraints?.[z]?.execution_mode??"host"};return{...Q,capabilities:{...Z,supported_operations:["hands.connect",...V],operation_constraints:X}}}function zj(Q){for(let j of t("/etc/passwd","utf8").split(`
4
+ `)){let J=j.split(":");if(J.length>=4&&Number(J[2])===Q&&/^\d+$/.test(J[3]??"")&&Number(J[3])>0)return Number(J[3])}throw Error("vm_hands_payload_account_unavailable")}function Fj(Q,j){let J=j.owner;if(!J||typeof J.organization_id!=="string"||typeof J.device_id!=="string"||typeof j.root_id!=="string")return null;return{version:4,apiOrigin:Q.api_origin,orgId:J.organization_id,deviceId:J.device_id,devicePublicKey:"",displayName:"vm-hands",registeredAt:new Date(0).toISOString(),handsSlots:1,roots:[{id:j.root_id,label:"workspace",path:x,pathFingerprint:"0".repeat(64),permissions:{read:!0,write:!0,execute:!0,discover_environment:!0,expose_mcp:!1}}]}}async function Mj(Q,j){v(P),v(O),Qj(j);let J=R(Q,j),Z=!1,X=async()=>{if(!await Promise.race([J.then(()=>!0),new Promise(($)=>setTimeout(()=>$(!1),y).unref?.())]))Z=!0,j("srt_warm_late",{wait_ms:y})},[{configureDesktopAccount:z},{configureWorkerSandbox:W}]=await Promise.all([import("./desktop-account-374pyd2h.js"),import("./worker-sandbox-r41yz175.js")]);W();try{z({value:String(Q.layout.payload_uid)})}catch{j("payload_account_unavailable"),await new Promise(()=>{setInterval(()=>{return},1073741824)})}let M=new AbortController;for(let q of["SIGTERM","SIGINT"])process.on(q,()=>M.abort());let F=new Map,H,g=new Promise((q)=>{H=q}),Y=g.then(()=>import("./vm-hands-executor-j4q5snaz.js")).then(({createVmHandsExecutor:q})=>{let $=q({init:Q,root:x,runtimeDirectory:P,apiOrigin:Q.api_origin,prespawn:!0,onSrtReset:()=>{Z=!1,J=R(Q,j)},srtWarmLate:()=>Z,forward:(B,K,N)=>F.get(B)?.(K,N)??Promise.reject(Error("vm_hands_not_bound")),log:(B,K)=>j(B,K)});return j("executor_loaded"),$}),A=(q)=>async(...$)=>(await Y)[q](...$),C=null;Y.then((q)=>{C=($)=>q.executorExited($)});let L={startExecutor:async(...q)=>{return await X(),A("startExecutor")(...q)},killAndVerifyPayload:A("killAndVerifyPayload"),killProbe:A("killProbe"),runProbe:async(...q)=>{return await X(),A("runProbe")(...q)},restatLayout:()=>{throw Error("replaced below")},verifyMounts:()=>{throw Error("replaced below")},installEnvironment:()=>{throw Error("replaced below")},executorExited:(q)=>C?C(q):new Promise(()=>{}),takeSrtFallbacks:()=>null};Y.then((q)=>{L.restatLayout=()=>q.restatLayout(),L.verifyMounts=()=>q.verifyMounts(),L.installEnvironment=($,B)=>q.installEnvironment($,B),L.freezeBind=($)=>q.freezeBind($),L.takeSrtFallbacks=()=>q.takeSrtFallbacks?.()??null});let c=await k(Q),o=new m(Q,c,L,{envRoot:O}),h=Zj(Q),b=null,n=Promise.all([h,import("./local-capabilities-0xqv6w37.js")]).then(([q,$])=>{b=Xj(q,$.capabilityInventoryForRoots),j("device_ops_loaded")}).catch((q)=>j("device_ops_unavailable",{error:q instanceof Error?q.name:"error"})),f=g.then(()=>import("./vm-hands-executor-j4q5snaz.js")).then(({createVmHandsOpRunners:q,vmHandsBindCgroup:$,VM_HANDS_PAYLOAD_CGROUP:B})=>q({payloadUid:Q.layout.payload_uid,payloadGid:zj(Q.layout.payload_uid),bindCgroup:(K)=>$(B,K),log:(K,N)=>j(K,N)})).catch(()=>null);f.then((q)=>q?.warm("person")),j("agent_ready"),await l({apiOrigin:Q.api_origin,agent:o,signal:M.signal,heartbeat:async()=>b??await h,executeOp:async({kind:q,claim:$,bindId:B,signal:K,emit:N})=>{let w=Fj(Q,$);if(!w)return{status:"failed",error_code:"vm_hands_bind_invalid"};let E={executionMode:"unsandboxed",runtimeDirectory:P,readiness:Object.fromEntries(V.map((U)=>[U,!0]))},_=(U)=>{let D=typeof U.kind==="string"?U.kind:"";if(D)N({kind:D,...U.data&&typeof U.data==="object"?{data:U.data}:{}})};if($.capability==="exec.full"&&q!=="person")return{status:"failed",error_code:"capability_not_granted"};if($.capability==="automation.call.v1"&&q!=="model")return{status:"failed",error_code:"capability_not_granted"};let a=$.capability==="pty.start"&&q==="person"&&!$.authority;if($j.has(String($.capability))&&!a){let{executeLocalOperation:U}=await import("./local-capabilities-0xqv6w37.js");return U(w,$,{worker:E,signal:K,emit:(D)=>_(D)})}let I=await f;if(!I)return{status:"failed",error_code:"vm_hands_payload_account_unavailable"};return I.run(q,{id:String($.attempt_id),claim:$,state:w,worker:E},_,K,B)},readyData:({launchId:q})=>({executor_launch_id:q}),log:(q,$)=>{if(q==="vm_hands.registered"||q==="vm_hands.reconnected")H();j(q,$)},onTurn:(q,$)=>{if($)F.set(q,$);else F.delete(q)}}),await(await Y).stop(),(await f)?.stop()}export{R as startBaseSrtServer,Mj as runVmHands,Lj as parseVmHandsInit,Zj as heartbeatBody,Qj as enableBaseKeyedSrt};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{r as a}from"./vm-hands-entry-lite-zr8gf6nd.js";import"./vm-hands-entry-lite-kb981w39.js";import"./vm-hands-entry-lite-s7k376cz.js";import"./vm-hands-entry-lite-g7h6wjqy.js";import"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-te0p47ak.js";import"./vm-hands-entry-lite-f89wk20p.js";import"./vm-hands-entry-lite-stbfyev7.js";import"./vm-hands-entry-lite-fw5ztpwn.js";import"./vm-hands-entry-lite-grjkhbf2.js";export{a as configureWorkerSandbox};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reason-machines/cli-linux-arm64-musl",
3
- "version": "0.2.386",
3
+ "version": "0.2.388",
4
4
  "description": "Reason CLI native binary for linux-arm64-musl",
5
5
  "os": [
6
6
  "linux"
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{v as a,w as b,x as c,y as d,z as e}from"./vm-hands-entry-lite-hnsm5t36.js";import"./vm-hands-entry-lite-f02906k8.js";import"./vm-hands-entry-lite-9cmfthkq.js";import"./vm-hands-entry-lite-rtt2w6c6.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{d as resolveApiCredentials,e as requireApiCredentials,b as explicitApiOrigin,c as environmentApiKey,a as apiOriginFromEnvironment};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{F as a,G as b,H as c,I as d,J as e,K as f}from"./vm-hands-entry-lite-f02906k8.js";import"./vm-hands-entry-lite-9cmfthkq.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{d as sessionPlace,c as sessionMachine,e as createMachineEnrollmentTicketWithToken,f as ReasonApi,b as REASONING_EFFORTS,a as ApiError};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{e as a,f as b,g as c,h as d,i as e,j as f,k as g,l as h,m as i,n as j,o as k,p as l,q as m}from"./vm-hands-entry-lite-jcnrgmtk.js";import"./vm-hands-entry-lite-8fj07njx.js";import"./vm-hands-entry-lite-hnsm5t36.js";import"./vm-hands-entry-lite-f02906k8.js";import"./vm-hands-entry-lite-qhjxnb9g.js";import"./vm-hands-entry-lite-9cmfthkq.js";import"./vm-hands-entry-lite-ma3y08k0.js";import"./vm-hands-entry-lite-b1gx16ds.js";import"./vm-hands-entry-lite-ejm5er3h.js";import"./vm-hands-entry-lite-qef2ndkd.js";import"./vm-hands-entry-lite-mn64e4pt.js";import"./vm-hands-entry-lite-rtt2w6c6.js";import"./vm-hands-entry-lite-h8dbw0c7.js";import"./vm-hands-entry-lite-g7h6wjqy.js";import"./vm-hands-entry-lite-rpn0frzb.js";import"./vm-hands-entry-lite-98y68ymk.js";import"./vm-hands-entry-lite-yc73v70k.js";import"./vm-hands-entry-lite-qnnfvm5r.js";import"./vm-hands-entry-lite-5n4vsm6b.js";import"./vm-hands-entry-lite-0syv8gn0.js";import"./vm-hands-entry-lite-dh5gwmyf.js";import"./vm-hands-entry-lite-xrthfx3q.js";import"./vm-hands-entry-lite-fb5dzy9x.js";import"./vm-hands-entry-lite-2e18tm6w.js";import"./vm-hands-entry-lite-ammr3xbc.js";import"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-j9f7zprc.js";import"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-wv2tz2kd.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-fp8rpxp5.js";import"./vm-hands-entry-lite-6s3sn3yw.js";import"./vm-hands-entry-lite-1gxktkpe.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-rd0ak4ye.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{g as runDisconnectCli,f as runConnectCli,m as restartConnectionWhenIdle,l as restartConnection,h as logoutConnection,k as connectionUsesUserChrome,i as connectionReport,j as connectionForBrowserExtension,c as connectionDirectory,d as computerDisconnected,e as addConnectionFolder,b as DISCONNECT_HELP,a as CONNECT_HELP};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Dd as a,Ed as b,Fd as c,Gd as d,Hd as e,Id as f,Jd as g,Kd as h,Ld as i,Md as j,Nd as k,Od as l}from"./vm-hands-entry-lite-98y68ymk.js";import"./vm-hands-entry-lite-yc73v70k.js";import"./vm-hands-entry-lite-qnnfvm5r.js";import"./vm-hands-entry-lite-5n4vsm6b.js";import"./vm-hands-entry-lite-0syv8gn0.js";import"./vm-hands-entry-lite-dh5gwmyf.js";import"./vm-hands-entry-lite-xrthfx3q.js";import"./vm-hands-entry-lite-fb5dzy9x.js";import"./vm-hands-entry-lite-2e18tm6w.js";import"./vm-hands-entry-lite-ammr3xbc.js";import"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-j9f7zprc.js";import"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-wv2tz2kd.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-fp8rpxp5.js";import"./vm-hands-entry-lite-6s3sn3yw.js";import"./vm-hands-entry-lite-1gxktkpe.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-rd0ak4ye.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{d as runRelayed,e as runMacComputerUse,l as runLocalAutomation,k as runAutomationCallLocally,b as parseAutomationPayload,g as localUserChromeProfiles,h as localUserChromeInstance,f as localUserChromeHost,j as localBrowserProfile,c as localAutomationAvailable,i as ensureLocalBrowser,a as AUTOMATION_CHUNK_BYTES};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{$a as m,Ra as c,Sa as d,Ta as e,Ua as f,Va as g,Wa as h,Xa as i,Ya as j,Za as k,_a as l,ab as n,bb as o,cb as p,db as q,eb as r,fb as s,gb as t,hb as u}from"./vm-hands-entry-lite-ma3y08k0.js";import"./vm-hands-entry-lite-b1gx16ds.js";import"./vm-hands-entry-lite-ejm5er3h.js";import"./vm-hands-entry-lite-qef2ndkd.js";import"./vm-hands-entry-lite-mn64e4pt.js";import"./vm-hands-entry-lite-rtt2w6c6.js";import"./vm-hands-entry-lite-h8dbw0c7.js";import"./vm-hands-entry-lite-g7h6wjqy.js";import"./vm-hands-entry-lite-rpn0frzb.js";import"./vm-hands-entry-lite-98y68ymk.js";import"./vm-hands-entry-lite-yc73v70k.js";import"./vm-hands-entry-lite-qnnfvm5r.js";import"./vm-hands-entry-lite-5n4vsm6b.js";import"./vm-hands-entry-lite-0syv8gn0.js";import"./vm-hands-entry-lite-dh5gwmyf.js";import"./vm-hands-entry-lite-xrthfx3q.js";import"./vm-hands-entry-lite-fb5dzy9x.js";import"./vm-hands-entry-lite-2e18tm6w.js";import"./vm-hands-entry-lite-ammr3xbc.js";import"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-j9f7zprc.js";import{Vi as b}from"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-wv2tz2kd.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-fp8rpxp5.js";import"./vm-hands-entry-lite-6s3sn3yw.js";import"./vm-hands-entry-lite-1gxktkpe.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-rd0ak4ye.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import{Ek as a}from"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{j as writeOpenFlags,g as spawnCaptured,f as sandboxProfile,e as safeEnvironment,k as runTransferCapability,i as runFileCapability,t as rebindLocalHandsControl,b as isProtectedLocalPath,u as executeLocalOperation,m as enrolledWorkspaceRootFingerprint,q as enrolledRootPaths,p as enrolledHomeContainedRootFingerprints,n as enrolledAccountRootPath,o as enrolledAccountRootFingerprint,s as deliverLocalHandsEnvironment,h as defaultLocalCommandRunner,d as confinedExecutionShell,r as capabilityInventoryForRoots,c as SHORT_REQUEST_CAPABILITIES,a as LocalCapabilityError,l as LOCAL_CAPABILITY_REGISTRY};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{jk as a,kk as b,lk as c,mk as d,nk as e,ok as f,pk as g}from"./vm-hands-entry-lite-rd0ak4ye.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{f as trackDesktopRun,c as releaseLocalDesktop,a as noteLocalDesktopUse,g as holdLocalDesktop,b as forgetLocalDesktopUse,e as DESKTOP_WAIT_MS,d as DESKTOP_IDLE_MS};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{eg as a,fg as b,gg as c,hg as d,ig as e,jg as f,kg as g,lg as h}from"./vm-hands-entry-lite-0syv8gn0.js";import"./vm-hands-entry-lite-dh5gwmyf.js";import"./vm-hands-entry-lite-xrthfx3q.js";import"./vm-hands-entry-lite-fb5dzy9x.js";import"./vm-hands-entry-lite-2e18tm6w.js";import"./vm-hands-entry-lite-ammr3xbc.js";import"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-j9f7zprc.js";import"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-wv2tz2kd.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-fp8rpxp5.js";import"./vm-hands-entry-lite-6s3sn3yw.js";import"./vm-hands-entry-lite-1gxktkpe.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-rd0ak4ye.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{h as runLocalDisplayStream,f as privateDirectory,c as parseDisplayStreamPayload,e as localDisplayReady,d as localDisplayAvailable,g as ensureLinuxDesktop,a as LOCAL_DISPLAY_MAX_SESSION_MS,b as LINUX_WORKER_DISPLAY};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{ng as a,og as b,pg as c,qg as d,rg as e,sg as f,tg as g,ug as h,vg as i,wg as j}from"./vm-hands-entry-lite-dh5gwmyf.js";import"./vm-hands-entry-lite-xrthfx3q.js";import"./vm-hands-entry-lite-2e18tm6w.js";import"./vm-hands-entry-lite-ammr3xbc.js";import"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-zjfr0zh8.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{j as runLocalPtySession,e as resolvePtyWorkingDirectory,g as ptyRuntimeSupported,d as parsePtyStartPayload,h as defaultSpawnPty,f as defaultLoginShell,i as defaultConnect,a as LOCAL_PTY_MAX_SESSION_MS,c as LOCAL_PTY_MAX_SESSIONS,b as LOCAL_PTY_MAX_BUFFERED_OUTPUT_BYTES};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{$ as D,L as n,M as o,N as p,O as q,P as r,Q as s,R as t,S as u,T as v,U as w,V as x,W as y,X as z,Y as A,Z as B,_ as C,aa as E,ba as F,ca as G,da as H,ea as I,fa as J,ga as K,ha as L,ia as M,ja as N,ka as O,la as P,ma as Q,na as R,oa as S,pa as T,qa as U,ra as V,sa as W,ta as X,ua as Y}from"./vm-hands-entry-lite-qhjxnb9g.js";import"./vm-hands-entry-lite-h8dbw0c7.js";import"./vm-hands-entry-lite-g7h6wjqy.js";import{$h as e,Xh as a,Yh as b,Zh as c,_h as d,ai as f,bi as g,ci as h,ei as i,fi as j,hi as k,ii as l,ji as m}from"./vm-hands-entry-lite-y2s2w174.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-wv2tz2kd.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-fp8rpxp5.js";import"./vm-hands-entry-lite-6s3sn3yw.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{E as verifyManagedRuntimeCodeSignatures,m as verifyManagedRuntimeArtifact,H as updateManagedRuntime,l as sha256Hex,Q as rollbackManagedRuntime,R as recoverManagedRuntimeActivation,V as recordManagedRuntimeLifecycle,U as readManagedRuntimeLifecycleEvents,j as parseAndVerifyManagedRuntimeManifest,k as parseAndVerifyLegacyManagedRuntimeManifest,z as managedRuntimeVersionPath,C as managedRuntimeTarget,K as managedRuntimePointerVersion,x as managedRuntimePaths,O as managedRuntimeExecutableVersion,A as managedRuntimeCredentialLibraryPath,h as managedRuntimeCredentialLibraryAssetName,g as managedRuntimeAssetName,y as legacyManagedRuntimePaths,N as isManagedRuntimeVersionExecutable,M as isManagedRuntimeExecutable,J as installManagedRuntimeLauncher,I as installManagedRuntimeArtifact,X as flushManagedRuntimeLifecycleEvents,F as fetchManagedRuntimeBytes,G as defaultManagedRuntimeHealthCheck,L as currentManagedRuntimeVersion,B as compareManagedRuntimeVersions,i as canonicalJson,Y as bootstrapManagedRuntime,D as assertManagedRuntimeSignatureEvidence,P as activateManagedRuntime,T as acquireManagedRuntimeLock,S as acquireManagedRuntimeDirectoryLock,W as acknowledgeManagedRuntimeLifecycleEvents,f as ManagedRuntimeError,v as MANAGED_RUNTIME_UPDATE_HEALTH_TIMEOUT_MS,e as MANAGED_RUNTIME_TARGETS,d as MANAGED_RUNTIME_MAX_MANIFEST_BYTES,p as MANAGED_RUNTIME_MAX_LIFECYCLE_EVENTS,q as MANAGED_RUNTIME_MAX_LIFECYCLE_BYTES,c as MANAGED_RUNTIME_MAX_ARTIFACT_BYTES,b as MANAGED_RUNTIME_MANIFEST_VERSION,r as MANAGED_RUNTIME_MANIFEST_URL,o as MANAGED_RUNTIME_LIFECYCLE_VERSION,w as MANAGED_RUNTIME_LIFECYCLE_EVENTS,n as MANAGED_RUNTIME_LAYOUT_VERSION,u as MANAGED_RUNTIME_HEALTH_TIMEOUT_MS,s as MANAGED_RUNTIME_FETCH_TIMEOUT_MS,t as MANAGED_RUNTIME_ARTIFACT_FETCH_TIMEOUT_MS,a as LEGACY_MANAGED_RUNTIME_MANIFEST_VERSION};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Aa as a}from"./vm-hands-entry-lite-9w5vs9zv.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export default a();
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{$d as l,Qd as a,Rd as b,Sd as c,Td as d,Ud as e,Vd as f,Wd as g,Xd as h,Yd as i,Zd as j,_d as k,ae as m,be as n,ce as o,de as p,ee as q,fe as r}from"./vm-hands-entry-lite-yc73v70k.js";import"./vm-hands-entry-lite-qnnfvm5r.js";import"./vm-hands-entry-lite-e2mjbqmr.js";import"./vm-hands-entry-lite-ma001vzh.js";import"./vm-hands-entry-lite-wv2tz2kd.js";import"./vm-hands-entry-lite-fyvgav60.js";import"./vm-hands-entry-lite-pk3q774c.js";import"./vm-hands-entry-lite-fp8rpxp5.js";import"./vm-hands-entry-lite-6s3sn3yw.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{g as workerServiceRetargetPending,f as workerServiceProgram,m as workerServiceProcessRunning,e as workerServiceLauncher,j as workerServiceDefinitions,n as workerServiceDefinitionCurrent,l as retireLegacyWorkerService,q as retargetWorkerServiceLogs,p as restartWorkerService,r as removeWorkerService,i as isConnectServiceLabel,k as installedWorkerService,o as installWorkerService,c as defaultWorkerServiceHost,h as connectServiceLabel,d as WorkerServiceError,a as WORKER_SERVICE_ENV,b as WORKER_IDENTITY_UNAVAILABLE_CODE};
@@ -1,3 +0,0 @@
1
- // @bun
2
- import{Mg as d}from"./vm-hands-entry-lite-xrthfx3q.js";import{Tg as P}from"./vm-hands-entry-lite-2e18tm6w.js";import{$g as i}from"./vm-hands-entry-lite-ammr3xbc.js";import{mj as s}from"./vm-hands-entry-lite-fyvgav60.js";import{zj as c}from"./vm-hands-entry-lite-pk3q774c.js";import{Ek as V}from"./vm-hands-entry-lite-51hmj6am.js";import{existsSync as A,realpathSync as p,statSync as t}from"fs";import{platform as f}from"os";import{isAbsolute as l,sep as e}from"path";import{existsSync as o}from"fs";import{createRequire as n}from"module";var E=Function("return ("+P+")")()(()=>n(import.meta.url)("bun:ffi"),o);function h(){return process.platform==="win32"&&typeof globalThis.Bun<"u"&&E.available()}function m(z=process.env){return E.defaultShell(z)}function w(z){return E.shellArgs(z)}function k(z){let H=E.spawn({...z,env:z.environment});return H.exited.then(()=>H.close()),{write:(Q)=>H.write(Q),resize:(Q,J)=>H.resize(Q,J),kill:()=>H.close(),exited:H.exited}}var zz=43200000,v=i,Hz=4,Jz=/^[A-Za-z0-9._:-]{1,160}$/,Qz=1000;function r(z){return Boolean(z)&&typeof z==="object"&&!Array.isArray(z)}function g(z,H){if(typeof z!=="number"||!Number.isFinite(z)||z<=0)return H;return Math.min(Qz,Math.max(1,Math.floor(z)))}function Vz(z,H=Date.now()){let Q=["relay_url","session_id","expires_at"],J=new Set([...Q,"cols","rows","cwd","workspace"]);if(!r(z)||Q.some((C)=>!(C in z))||Object.keys(z).some((C)=>!J.has(C)))throw new V("invalid_pty_request","Reason terminal request is malformed.");let{relay_url:N,session_id:Y,expires_at:R}=z;if(typeof N!=="string")throw new V("invalid_pty_request","Reason terminal relay URL is missing.");let K;try{K=new URL(N)}catch{throw new V("invalid_pty_request","Reason terminal relay URL is invalid.")}if(K.protocol!=="wss:"&&K.protocol!=="ws:"||K.username||K.password)throw new V("invalid_pty_request","Reason terminal relay URL is invalid.");if(typeof Y!=="string"||!Jz.test(Y))throw new V("invalid_pty_request","Reason terminal session identity is invalid.");let D=typeof R==="string"?Date.parse(R):Number.NaN;if(!Number.isFinite(D)||D<=H)throw new V("invalid_pty_request","Reason terminal session has already expired.");if(z.cwd!==void 0&&typeof z.cwd!=="string")throw new V("invalid_pty_request","Reason terminal working directory is invalid.");let j=z.workspace===void 0?void 0:c(z.workspace);if(j===null||j&&z.cwd!==void 0)throw new V("invalid_pty_request","Reason terminal workspace is invalid.");return{relay_url:N,session_id:Y,expires_at:new Date(Math.min(D,H+zz)).toISOString(),cols:g(z.cols,80),rows:g(z.rows,24),...z.cwd===void 0?{}:{cwd:z.cwd},...j?{workspace:j}:{}}}function Zz(z,H){if(f()==="win32")[z,H]=[z.toLowerCase(),H.toLowerCase()];return H===z||H.startsWith(z+e)}function y(z,H){if(H===void 0)return z;if(!l(H))throw new V("pty_cwd_invalid","Reason terminal working directory must be absolute.");let Q;try{Q=p(H)}catch{throw new V("pty_cwd_invalid","Reason terminal working directory does not exist.")}if(!Zz(z,Q))throw new V("pty_cwd_outside_root","Reason terminal working directory escapes the granted root.");if(!t(Q).isDirectory())throw new V("pty_cwd_invalid","Reason terminal working directory is not a directory.");return Q}function $z(z=process.env){if(f()==="win32")return m(z);let H=z.SHELL;if(H&&l(H)&&A(H))return H;for(let Q of f()==="darwin"?["/bin/zsh","/bin/bash","/bin/sh"]:["/bin/bash","/bin/sh"])if(A(Q))return Q;return"/bin/sh"}function jz(){let z=globalThis.Bun;if(!z)throw new V("pty_unavailable","Reason terminals require the Bun runtime.");return z.spawn}function Bz(){if(f()==="win32")return h();return typeof globalThis.Bun<"u"}var Gz=(z)=>{if(f()==="win32")try{return k({...z,file:z.shell,args:w(z.shell),environment:{...z.environment,TERM:"xterm-256color"}})}catch{throw new V("pty_unavailable","Reason could not allocate a pseudo-terminal.")}let H=jz()({cmd:[z.shell,"-i","-l"],cwd:z.cwd,env:{...z.environment,TERM:"xterm-256color"},terminal:{cols:z.cols,rows:z.rows,data:(J,N)=>{z.onData(N)}}}),Q=H.terminal;if(!Q){try{H.kill()}catch{}throw new V("pty_unavailable","Reason could not allocate a pseudo-terminal.")}return{write:(J)=>Q.write(J),resize:(J,N)=>Q.resize(J,N),kill:()=>{try{H.kill()}catch{}},exited:H.exited.then((J)=>typeof J==="number"?J:null,()=>null)}},Nz=(z,H)=>{return H===void 0?new WebSocket(z):new WebSocket(z,{proxy:H})},M=new Set;function Wz(z){if(M.size>=Hz||M.has(z))return null;M.add(z);let H=!1;return()=>{if(H)return;H=!0,M.delete(z)}}async function Iz(z,H={}){let Q=H.now??Date.now,J=Vz(z.payload,Q()),N=Wz(z.operationId);if(!N)throw new V("pty_slot_busy","This Reason Device already runs the maximum number of terminals.");let Y=Q(),R,K,D;try{let j=J.workspace?s(z.root,J.workspace):void 0;R=j?y(A(j.boundary)?p(j.boundary):j.boundary,j.path):y(z.root,J.cwd),K=H.environment??process.env,D=H.shellPath??$z(K)}catch(j){throw N(),j}return await new Promise((j,C)=>{let F=null,$=null,B=!1,I=!1,X=!1,U=null,_=0,x=0,O=[],S=0,T=null,G=(Z)=>{if(X)return;if(X=!0,T)clearTimeout(T);z.signal.removeEventListener("abort",b);try{F?.kill()}catch{}try{$?.close(1000,"pty_session_over")}catch{}if(N(),Z.kind==="rejected"){C(Z.error);return}let W={reason:Z.reason,exit_code:U,output_bytes:_,input_bytes:x,duration_ms:Math.max(0,Q()-Y)};z.emitEvent("pty.stopped",{...W}).catch(()=>{return}),j({...W})},b=()=>{let Z=z.signal.reason;G({kind:"rejected",error:Z instanceof V?Z:new V("cancelled","Reason closed the terminal session.")})};if(z.signal.aborted){b();return}z.signal.addEventListener("abort",b,{once:!0}),T=setTimeout(()=>G({kind:"resolved",reason:"session_expired"}),Math.max(1,Date.parse(J.expires_at)-Q()));let u=(Z)=>{if(_+=Z.byteLength,!B||!$){if(O.push(Z),S+=Z.byteLength,S>v)G({kind:"resolved",reason:"output_backpressure"});return}try{$.send(Z)}catch{G({kind:"resolved",reason:"relay_closed"});return}if($.bufferedAmount>v)G({kind:"resolved",reason:"output_backpressure"})};try{F=(H.spawnPty??Gz)({shell:D,args:["-i","-l"],cwd:R,cols:J.cols,rows:J.rows,environment:K,onData:(Z)=>{if(!X)u(Z)}})}catch(Z){G({kind:"rejected",error:Z instanceof V?Z:new V("pty_spawn_failed","Reason could not start the terminal shell.")});return}F.exited.then((Z)=>{if(X)return;if(U=Z,B&&$)try{$.send(JSON.stringify({t:"exit",code:Z}))}catch{}G({kind:"resolved",reason:"shell_exited"})});let a=(H.loadProxy??d)()?.url;try{$=(H.connect??Nz)(J.relay_url,a)}catch{G({kind:"rejected",error:new V("pty_relay_unavailable","Reason could not reach the terminal relay.")});return}$.binaryType="arraybuffer",$.onopen=()=>{if(X||!$)return;B=!0;try{$.send(JSON.stringify({t:"open",cols:J.cols,rows:J.rows}));for(let Z of O.splice(0))$.send(Z);S=0}catch{G({kind:"resolved",reason:"relay_closed"});return}I=!0,z.emitEvent("pty.ready",{session_id:J.session_id,cols:J.cols,rows:J.rows}).catch(()=>{return})},$.onmessage=(Z)=>{if(X||!F)return;let W=Z.data;if(typeof W==="string"){let L;try{L=JSON.parse(W)}catch{return}if(!r(L))return;if(L.t==="resize"){try{F.resize(g(L.cols,J.cols),g(L.rows,J.rows))}catch{}return}if(L.t==="close")G({kind:"resolved",reason:"client_closed"});return}let q=W instanceof ArrayBuffer?new Uint8Array(W):ArrayBuffer.isView(W)?new Uint8Array(W.buffer,W.byteOffset,W.byteLength):null;if(!q||q.byteLength===0)return;x+=q.byteLength;try{F.write(q)}catch{}},$.onclose=()=>{if(X)return;if(!I){G({kind:"rejected",error:new V("pty_relay_unavailable","Reason could not reach the terminal relay.")});return}G({kind:"resolved",reason:"relay_closed"})},$.onerror=()=>{if(X||I)return;G({kind:"rejected",error:new V("pty_relay_unavailable","Reason could not reach the terminal relay.")})}})}
3
- export{h as mg,zz as ng,v as og,Hz as pg,Vz as qg,y as rg,$z as sg,Bz as tg,Gz as ug,Nz as vg,Iz as wg};
@@ -1,3 +0,0 @@
1
- // @bun
2
- import{Dk as D}from"./vm-hands-entry-lite-f5230h6t.js";import{execFileSync as M}from"child_process";import{realpathSync as C,statSync as N}from"fs";import{tmpdir as U}from"os";import{createRequire as F}from"module";import{win32 as Z}from"path";var j=["/bin/bash","/usr/bin/bash"],I="Git Bash was not found. Install Git for Windows (https://git-scm.com/download/win), then run `reason connect`.";function k(K){try{return N(K).isFile()}catch{return!1}}var q=(K)=>[Z.join(K,"bin","bash.exe"),Z.join(K,"usr","bin","bash.exe")];function J(K,Q){let L=Z.normalize(K).toLowerCase(),Y=(Q.SystemRoot??Q.SYSTEMROOT??"C:\\Windows").toLowerCase();return L.startsWith(Z.join(Y,"system32").toLowerCase()+"\\")||L.startsWith(Z.join(Y,"sysnative").toLowerCase()+"\\")||L.includes("\\windowsapps\\")}function u(K=process.env,Q=k){let L=[];for(let Y of(K.PATH??K.Path??"").split(";"))if(Y&&Z.isAbsolute(Y))L.push(Z.join(Y,"git.exe"));for(let Y of[K.ProgramW6432,K.ProgramFiles,K["ProgramFiles(x86)"]])if(Y)L.push(Z.join(Y,"Git","cmd","git.exe"));if(K.LOCALAPPDATA)L.push(Z.join(K.LOCALAPPDATA,"Programs","Git","cmd","git.exe"));return L.find(Q)??null}var T;function S(K=process.platform){if(K!=="win32")return"git";return T??=u(),T}function O(K){let Q=process.platform==="win32"?u(K):"git";if(!Q)return null;try{return M(Q,["--exec-path"],{encoding:"utf8",timeout:5000,windowsHide:!0,stdio:["ignore","pipe","ignore"],env:K}).trim()||null}catch{return null}}function P(K=process.env,Q=O,L=k){let Y=[],H=Q(K);if(H)Y.push(...q(Z.resolve(H,"..","..","..")));for(let $ of[K.ProgramW6432,K.ProgramFiles,K["ProgramFiles(x86)"]])if($)Y.push(...q(Z.join($,"Git")));if(K.LOCALAPPDATA)Y.push(...q(Z.join(K.LOCALAPPDATA,"Programs","Git")));for(let $ of(K.PATH??K.Path??"").split(";"))if($&&Z.isAbsolute($))Y.push(Z.join($,"bash.exe"));return Y.find(($)=>!J($,K)&&L($))??null}var z;function G(K=process.platform){if(K!=="win32")return j.find(k)??null;return z??=P(),z}function y(K=process.platform){let Q=G(K);if(!Q)throw Error(K==="win32"?I:"bash_unavailable");return Q}function w(K=process.platform){return C(K==="win32"?U():"/tmp")}function X(K=process.platform,Q=process.env){if(K!=="win32")return"/usr/bin:/bin";let L=Q.SystemRoot??Q.SYSTEMROOT??"C:\\Windows";return[Z.join(L,"System32"),L,Z.join(L,"System32","Wbem"),Z.join(L,"System32","WindowsPowerShell","v1.0")].join(";")}function W(K,Q=process.platform){if(Q!=="win32"||/[\\/]/.test(K))return K;let L=/\.exe$/i.test(K)?K:`${K}.exe`,Y=X(Q).split(";");return Z.join(L.toLowerCase()==="powershell.exe"?Y[3]:Y[0],L)}function f(K=process.platform,Q=process.env){if(K!=="win32")return{PATH:X(K)};let L=Q.SystemRoot??Q.SYSTEMROOT??"C:\\Windows";return{PATH:X(K,Q),SystemRoot:L,WINDIR:L}}function h(K=process.platform){return K==="win32"?{windowsHide:!0}:{detached:!0}}var V;function A(){if(V===void 0)V=Function("require",`return ${D}(require)`)(F(import.meta.url));return V}function v(K,Q=process.platform){let L=K.pid;if(Q!=="win32"||L===void 0)return;let Y=A();if(Y?.track(L))K.once("close",()=>Y.release(L))}function c(K,Q="SIGTERM",L=process.platform){if(L!=="win32"){process.kill(-K,Q);return}if(Q===0){process.kill(K,0);return}if(A()?.terminate(K))return;M(W("taskkill",L),["/PID",String(K),"/T","/F"],{stdio:"ignore",timeout:1e4,windowsHide:!0})}function p(K,Q=63,L=process.platform){return L==="win32"||K.uid===process.getuid?.()&&(K.mode&Q)===0}var _=/^(?:con|prn|aux|nul|com[0-9\u00b9\u00b2\u00b3]|lpt[0-9\u00b9\u00b2\u00b3]|conin\$|conout\$)(?:\..*)?$|:|[. ]$/i;function l(K){return K!=="."&&K!==".."&&_.test(K)}
3
- export{I as qk,S as rk,G as sk,y as tk,w as uk,X as vk,W as wk,f as xk,h as yk,v as zk,c as Ak,p as Bk,l as Ck};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{s as a,t as b,u as c}from"./vm-hands-entry-lite-thvqx0hb.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{b as spawnSessionPty,c as runVmHandsOpRunner,a as VM_HANDS_OP_RUNNER_PERSON_ARG};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{r as a}from"./vm-hands-entry-lite-8fj07njx.js";import"./vm-hands-entry-lite-ejm5er3h.js";import"./vm-hands-entry-lite-qef2ndkd.js";import"./vm-hands-entry-lite-g7h6wjqy.js";import"./vm-hands-entry-lite-sex82vb1.js";import"./vm-hands-entry-lite-r8qg3wp1.js";import"./vm-hands-entry-lite-f5230h6t.js";import"./vm-hands-entry-lite-51hmj6am.js";import"./vm-hands-entry-lite-2t0vcvd8.js";export{a as configureWorkerSandbox};