@reason-machines/cli-linux-arm64-musl 0.2.367 → 0.2.368

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 (89) hide show
  1. package/bin/ara +1 -1
  2. package/bin/vm-hands/api-credentials-ke2v1y5k.js +2 -0
  3. package/bin/vm-hands/api-ewpnfn05.js +2 -0
  4. package/bin/vm-hands/{ask-relay-99s9r5qx.js → ask-relay-y5v8wyxy.js} +3 -3
  5. package/bin/vm-hands/connect-cli-nm7at96x.js +2 -0
  6. package/bin/vm-hands/{custom-endpoint-device-rzf5q89e.js → custom-endpoint-device-wmcf39x6.js} +1 -1
  7. package/bin/vm-hands/desktop-account-cppm1dhr.js +2 -0
  8. package/bin/vm-hands/{device-workspace-4zmq6vnb.js → device-workspace-05nkwrpp.js} +1 -1
  9. package/bin/vm-hands/{hands-worker-source-s2p9t76m.js → hands-worker-source-5wv1djgv.js} +1 -1
  10. package/bin/vm-hands/{index-s2jxdd91.js → index-kf4q2kw5.js} +1 -1
  11. package/bin/vm-hands/{install-receipt-z3jw7v66.js → install-receipt-vaytv1sf.js} +1 -1
  12. package/bin/vm-hands/local-automation-v5awrbbd.js +2 -0
  13. package/bin/vm-hands/local-capabilities-wxmrcn9w.js +2 -0
  14. package/bin/vm-hands/local-desktop-users-ejwwkfer.js +2 -0
  15. package/bin/vm-hands/local-display-mac-x0eq4rzq.js +2 -0
  16. package/bin/vm-hands/local-display-session-ezjk5ykh.js +2 -0
  17. package/bin/vm-hands/local-pty-session-pzg7bk32.js +2 -0
  18. package/bin/vm-hands/{managed-runtime-8yf32zv3.js → managed-runtime-tp3070ba.js} +1 -1
  19. package/bin/vm-hands/{network-contract-mtrzq59w.js → network-contract-zez17y8t.js} +1 -1
  20. package/bin/vm-hands/package-gxv23nam.js +2 -0
  21. package/bin/vm-hands/permissions-bc9v5k73.js +2 -0
  22. package/bin/vm-hands/{reason-hands-protocol-b8c4s9jx.js → reason-hands-protocol-dase3v7x.js} +1 -1
  23. package/bin/vm-hands/serve-service-ad0yqe2n.js +2 -0
  24. package/bin/vm-hands/{status-gwe4v7q7.js → status-gstpmc50.js} +2 -2
  25. package/bin/vm-hands/version-vn3a7967.js +2 -0
  26. package/bin/vm-hands/{vm-hands-entry-lite-qdb917g9.js → vm-hands-entry-lite-1gk31757.js} +2 -2
  27. package/bin/vm-hands/{vm-hands-entry-lite-0csqb5x1.js → vm-hands-entry-lite-2c88t2at.js} +2 -2
  28. package/bin/vm-hands/{vm-hands-entry-lite-4p6v05yh.js → vm-hands-entry-lite-2fyemnas.js} +2 -2
  29. package/bin/vm-hands/{vm-hands-entry-lite-d12rwjw1.js → vm-hands-entry-lite-2w18ysma.js} +1 -1
  30. package/bin/vm-hands/{vm-hands-entry-lite-1yn5vrs6.js → vm-hands-entry-lite-4nkcn8sy.js} +37 -37
  31. package/bin/vm-hands/{vm-hands-entry-lite-pp4mnye8.js → vm-hands-entry-lite-4s4qrm5m.js} +2 -2
  32. package/bin/vm-hands/{vm-hands-entry-lite-peqmq6j6.js → vm-hands-entry-lite-5zmn6a7p.js} +1 -1
  33. package/bin/vm-hands/{vm-hands-entry-lite-1c1rxx8v.js → vm-hands-entry-lite-7fx4xtf6.js} +1 -1
  34. package/bin/vm-hands/{vm-hands-entry-lite-10sgx6g1.js → vm-hands-entry-lite-8sddhaka.js} +1 -1
  35. package/bin/vm-hands/{vm-hands-entry-lite-0rwpp6hr.js → vm-hands-entry-lite-9fr904x2.js} +2 -2
  36. package/bin/vm-hands/{vm-hands-entry-lite-jmfb6mqq.js → vm-hands-entry-lite-b775ysr4.js} +1 -1
  37. package/bin/vm-hands/{vm-hands-entry-lite-zg9a3kv5.js → vm-hands-entry-lite-bt6esncn.js} +1 -1
  38. package/bin/vm-hands/{vm-hands-entry-lite-0q46m8na.js → vm-hands-entry-lite-d7y6aah1.js} +1 -1
  39. package/bin/vm-hands/{vm-hands-entry-lite-5jbnm3bm.js → vm-hands-entry-lite-db4z7ekz.js} +1 -1
  40. package/bin/vm-hands/{vm-hands-entry-lite-3ydgst12.js → vm-hands-entry-lite-dm52srp5.js} +2 -2
  41. package/bin/vm-hands/{vm-hands-entry-lite-khnx8tzk.js → vm-hands-entry-lite-dq1fdx0j.js} +1 -1
  42. package/bin/vm-hands/{vm-hands-entry-lite-6gtpyxz7.js → vm-hands-entry-lite-e8skq97c.js} +2 -2
  43. package/bin/vm-hands/{vm-hands-entry-lite-21856esq.js → vm-hands-entry-lite-ew42tvvz.js} +2 -2
  44. package/bin/vm-hands/{vm-hands-entry-lite-7cqmn2f8.js → vm-hands-entry-lite-fp51jz5j.js} +2 -2
  45. package/bin/vm-hands/{vm-hands-entry-lite-44f1pr87.js → vm-hands-entry-lite-g576hpce.js} +1 -1
  46. package/bin/vm-hands/{vm-hands-entry-lite-wry37am5.js → vm-hands-entry-lite-g9rvf5qk.js} +1 -1
  47. package/bin/vm-hands/{vm-hands-entry-lite-thskh018.js → vm-hands-entry-lite-gzyps3ev.js} +2 -2
  48. package/bin/vm-hands/{vm-hands-entry-lite-wej1p1ry.js → vm-hands-entry-lite-hh24bq0d.js} +1 -1
  49. package/bin/vm-hands/{vm-hands-entry-lite-cgh7q3ss.js → vm-hands-entry-lite-kxajkxmr.js} +2 -2
  50. package/bin/vm-hands/{vm-hands-entry-lite-gxjxx1r2.js → vm-hands-entry-lite-mcv6pse6.js} +1 -1
  51. package/bin/vm-hands/{vm-hands-entry-lite-59napxaf.js → vm-hands-entry-lite-me398z5a.js} +2 -2
  52. package/bin/vm-hands/{vm-hands-entry-lite-q01t7ykc.js → vm-hands-entry-lite-ngytzkx1.js} +2 -2
  53. package/bin/vm-hands/{vm-hands-entry-lite-je3n2wnb.js → vm-hands-entry-lite-nhfd61cx.js} +1 -1
  54. package/bin/vm-hands/{vm-hands-entry-lite-wmd391jw.js → vm-hands-entry-lite-pasmdmkj.js} +2 -2
  55. package/bin/vm-hands/{vm-hands-entry-lite-xy8xmzjw.js → vm-hands-entry-lite-pt633d84.js} +1 -1
  56. package/bin/vm-hands/vm-hands-entry-lite-q9gjfqev.js +52 -0
  57. package/bin/vm-hands/{vm-hands-entry-lite-f4gvypnx.js → vm-hands-entry-lite-rjwk6sfj.js} +1 -1
  58. package/bin/vm-hands/{vm-hands-entry-lite-5cmafbnh.js → vm-hands-entry-lite-s65swswr.js} +2 -2
  59. package/bin/vm-hands/{vm-hands-entry-lite-smhq7c4x.js → vm-hands-entry-lite-sfsgeynk.js} +1 -1
  60. package/bin/vm-hands/{vm-hands-entry-lite-ht2k3g94.js → vm-hands-entry-lite-vygp7vq8.js} +2 -2
  61. package/bin/vm-hands/{vm-hands-entry-lite-6hcx1k08.js → vm-hands-entry-lite-w4swepp1.js} +2 -2
  62. package/bin/vm-hands/{vm-hands-entry-lite-c4mk1cwv.js → vm-hands-entry-lite-w81kt3sf.js} +1 -1
  63. package/bin/vm-hands/{vm-hands-entry-lite-dyyhxg5m.js → vm-hands-entry-lite-x9pmwqjd.js} +2 -2
  64. package/bin/vm-hands/{vm-hands-entry-lite-d2pbd9ky.js → vm-hands-entry-lite-y3wncwjd.js} +1 -1
  65. package/bin/vm-hands/{vm-hands-entry-lite-mq8bw5c9.js → vm-hands-entry-lite-y9wkxydj.js} +2 -2
  66. package/bin/vm-hands/{vm-hands-entry-lite-p30699xy.js → vm-hands-entry-lite-zmf1terc.js} +2 -2
  67. package/bin/vm-hands/vm-hands-entry-lite.js +1 -1
  68. package/bin/vm-hands/{vm-hands-executor-frexe1jn.js → vm-hands-executor-n24f7xm4.js} +1 -1
  69. package/bin/vm-hands/vm-hands-op-runner-gep65pf2.js +2 -0
  70. package/bin/vm-hands/{vm-hands-runtime-90my200c.js → vm-hands-runtime-9y7gd6hx.js} +3 -3
  71. package/bin/vm-hands/worker-sandbox-e4kvy715.js +2 -0
  72. package/package.json +1 -1
  73. package/bin/vm-hands/api-credentials-5phwd017.js +0 -2
  74. package/bin/vm-hands/api-v98h8tbt.js +0 -2
  75. package/bin/vm-hands/connect-cli-9ef3cz0p.js +0 -2
  76. package/bin/vm-hands/desktop-account-2dtsbtf1.js +0 -2
  77. package/bin/vm-hands/local-automation-kykn3t5n.js +0 -2
  78. package/bin/vm-hands/local-capabilities-emphypye.js +0 -2
  79. package/bin/vm-hands/local-desktop-users-4nz6kmyw.js +0 -2
  80. package/bin/vm-hands/local-display-mac-v9ev5jg4.js +0 -2
  81. package/bin/vm-hands/local-display-session-bgmnyfdn.js +0 -2
  82. package/bin/vm-hands/local-pty-session-c394saph.js +0 -2
  83. package/bin/vm-hands/package-08dpakav.js +0 -2
  84. package/bin/vm-hands/permissions-b8k7me17.js +0 -2
  85. package/bin/vm-hands/serve-service-mqkz53dh.js +0 -2
  86. package/bin/vm-hands/version-bgxwc0n4.js +0 -2
  87. package/bin/vm-hands/vm-hands-entry-lite-4zg490k6.js +0 -37
  88. package/bin/vm-hands/vm-hands-op-runner-aekwp51s.js +0 -2
  89. package/bin/vm-hands/worker-sandbox-bjwykp0q.js +0 -2
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import"./vm-hands-entry-lite-xy8xmzjw.js";import"./vm-hands-entry-lite-4p6v05yh.js";import"./vm-hands-entry-lite-p30699xy.js";import{dk as A}from"./vm-hands-entry-lite-1c1rxx8v.js";import{readFileSync as J}from"fs";var G=performance.now();delete process.env.BUN_BE_BUN;var q=(j,b={})=>console.log(JSON.stringify({stage:j,ms:Math.round(performance.now()),...b}));async function K(){if(process.argv.includes("--vm-hands-op-runner")){let{runVmHandsOpRunner:D}=await import("./vm-hands-op-runner-aekwp51s.js");await D();return}q("parsed",{t0:Math.round(G)});let j="";try{j=J(3,"utf8")}catch{}q("fd3_read",{bytes:j.length});let b=null;if(j.trim())try{b=JSON.parse(j)}catch{b=null}if(!b||typeof b!=="object"||Array.isArray(b))q(j.trim()?"identity_invalid":"identity_free"),await new Promise(()=>{setInterval(()=>{return},1073741824)});let{parseVmHandsInit:B,runVmHands:C}=await import("./vm-hands-runtime-90my200c.js"),z=B(b);if(!z)q("identity_invalid"),await new Promise(()=>{setInterval(()=>{return},1073741824)});await C(z,q),process.exit(0)}K();
2
+ import"./vm-hands-entry-lite-pt633d84.js";import"./vm-hands-entry-lite-2fyemnas.js";import"./vm-hands-entry-lite-zmf1terc.js";import{fk as A}from"./vm-hands-entry-lite-7fx4xtf6.js";import{readFileSync as J}from"fs";var G=performance.now();delete process.env.BUN_BE_BUN;var q=(j,b={})=>console.log(JSON.stringify({stage:j,ms:Math.round(performance.now()),...b}));async function K(){if(process.argv.includes("--vm-hands-op-runner")){let{runVmHandsOpRunner:D}=await import("./vm-hands-op-runner-gep65pf2.js");await D();return}q("parsed",{t0:Math.round(G)});let j="";try{j=J(3,"utf8")}catch{}q("fd3_read",{bytes:j.length});let b=null;if(j.trim())try{b=JSON.parse(j)}catch{b=null}if(!b||typeof b!=="object"||Array.isArray(b))q(j.trim()?"identity_invalid":"identity_free"),await new Promise(()=>{setInterval(()=>{return},1073741824)});let{parseVmHandsInit:B,runVmHands:C}=await import("./vm-hands-runtime-9y7gd6hx.js"),z=B(b);if(!z)q("identity_invalid"),await new Promise(()=>{setInterval(()=>{return},1073741824)});await C(z,q),process.exit(0)}K();
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{s as Mq}from"./vm-hands-entry-lite-d12rwjw1.js";import{Lb as Uq,pc as Fq,rb as Lq,tc as Tq}from"./vm-hands-entry-lite-cgh7q3ss.js";import"./vm-hands-entry-lite-gxjxx1r2.js";import"./vm-hands-entry-lite-khnx8tzk.js";import"./vm-hands-entry-lite-f4gvypnx.js";import"./vm-hands-entry-lite-4p6v05yh.js";import"./vm-hands-entry-lite-ht2k3g94.js";import"./vm-hands-entry-lite-mq8bw5c9.js";import"./vm-hands-entry-lite-3ydgst12.js";import"./vm-hands-entry-lite-44f1pr87.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-q01t7ykc.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.js";import{spawn as Iq}from"child_process";import{chmodSync as vq,chownSync as Oq,existsSync as l,lstatSync as o,mkdirSync as e,mkdtempSync as bq,readdirSync as s,readFileSync as A,realpathSync as hq,rmdirSync as r,rmSync as xq,writeFileSync as E}from"fs";import{join as U}from"path";var wq="/sys/fs/cgroup/reason-payload",_="vm-hands",Vq="/run/ara-srt/fallbacks.jsonl",y="/reason-person",qq=5000,_q=1e4,zq="__VM_HANDS_PROOF_DIR__",Hq="__VM_HANDS_PROBE_NONCE__";class T extends Error{code;constructor(q,z){super(z);this.code=q}}function gq(q,z){if(!/^[0-9a-f-]{36}$/i.test(z))throw new T("vm_hands_bind_invalid","bad bind id");return U(q,_,`b-${z.toLowerCase()}`)}var kq=5000,Rq=(q)=>`'${q.replaceAll("'","'\\''")}'`;function iq(q){let z=q.cgroup??wq,J=q.init.layout.payload_uid,X=q.log??(()=>{}),G=new Map,W=new Map,B=0,P=()=>{try{let Z=A("/run/ara-srt/starts.jsonl","utf8"),Q=Z.slice(B>Z.length?0:B).split(`
2
+ import{s as Mq}from"./vm-hands-entry-lite-2w18ysma.js";import{Lb as Uq,pc as Fq,rb as Lq,tc as Tq}from"./vm-hands-entry-lite-kxajkxmr.js";import"./vm-hands-entry-lite-mcv6pse6.js";import"./vm-hands-entry-lite-dq1fdx0j.js";import"./vm-hands-entry-lite-2fyemnas.js";import"./vm-hands-entry-lite-vygp7vq8.js";import"./vm-hands-entry-lite-y9wkxydj.js";import"./vm-hands-entry-lite-dm52srp5.js";import"./vm-hands-entry-lite-g576hpce.js";import"./vm-hands-entry-lite-gzyps3ev.js";import"./vm-hands-entry-lite-5zmn6a7p.js";import"./vm-hands-entry-lite-rjwk6sfj.js";import"./vm-hands-entry-lite-9fr904x2.js";import"./vm-hands-entry-lite-db4z7ekz.js";import"./vm-hands-entry-lite-me398z5a.js";import"./vm-hands-entry-lite-zmf1terc.js";import"./vm-hands-entry-lite-ngytzkx1.js";import"./vm-hands-entry-lite-y3wncwjd.js";import"./vm-hands-entry-lite-7fx4xtf6.js";import{spawn as Iq}from"child_process";import{chmodSync as vq,chownSync as Oq,existsSync as l,lstatSync as o,mkdirSync as e,mkdtempSync as bq,readdirSync as s,readFileSync as A,realpathSync as hq,rmdirSync as r,rmSync as xq,writeFileSync as E}from"fs";import{join as U}from"path";var wq="/sys/fs/cgroup/reason-payload",_="vm-hands",Vq="/run/ara-srt/fallbacks.jsonl",y="/reason-person",qq=5000,_q=1e4,zq="__VM_HANDS_PROOF_DIR__",Hq="__VM_HANDS_PROBE_NONCE__";class T extends Error{code;constructor(q,z){super(z);this.code=q}}function gq(q,z){if(!/^[0-9a-f-]{36}$/i.test(z))throw new T("vm_hands_bind_invalid","bad bind id");return U(q,_,`b-${z.toLowerCase()}`)}var kq=5000,Rq=(q)=>`'${q.replaceAll("'","'\\''")}'`;function iq(q){let z=q.cgroup??wq,J=q.init.layout.payload_uid,X=q.log??(()=>{}),G=new Map,W=new Map,B=0,P=()=>{try{let Z=A("/run/ara-srt/starts.jsonl","utf8"),Q=Z.slice(B>Z.length?0:B).split(`
3
3
  `).filter(Boolean);B=Z.length;let Y=Q.map((L)=>{try{return Number(JSON.parse(L).elapsed_ms)||0}catch{return 0}});if(Y.length)X("vm_hands.srt_server_starts",{count:Y.length,elapsed_ms:Y.slice(0,8)})}catch{}},D=null,H=!1,O=q.srtCgroup??"/sys/fs/cgroup/reason-srt",C=()=>{D??=Gq()},b=0,h=()=>{try{let Z=A(Vq,"utf8"),Q=Z.slice(b>Z.length?0:b);b=Z.length;let Y=Q.split(`
4
4
  `).filter(Boolean).slice(0,1000);if(!Y.length)return null;let L={},F=0;for(let M of Y)try{let R=JSON.parse(M),K=typeof R.code==="string"&&/^[a-z_]{1,40}$/.test(R.code)?R.code:"other";if(L[K]=(L[K]??0)+1,typeof R.elapsed_ms==="number")F=Math.max(F,R.elapsed_ms)}catch{L.unparsed=(L.unparsed??0)+1}return X("vm_hands.srt_fallbacks",{count:Y.length,codes:L,max_elapsed_ms:F}),{count:Y.length,codes:L,max_elapsed_ms:F}}catch{return null}},f=!1,m=(Z,Q,Y)=>{if(f)throw Error("vm_hands_pool_held");return Nq(Z,Q,Y)},d=(Z)=>(Q,Y,L)=>Iq("/bin/sh",["-c",`echo $$ > ${Rq(U(Z,"cgroup.procs"))} || exit 125; exec "$@"`,"vm-hands-join",Q,...Y],L),Nq=d(U(z,_)),u=U(z,_,"probe"),S=(Z)=>gq(z,Z),Aq=(Z)=>{let Q=S(Z);try{e(Q,{mode:493})}catch(Y){if(!(Y&&typeof Y==="object"&&("code"in Y)&&Y.code==="EEXIST"))throw new T("vm_hands_bind_failed","bind cgroup")}return Q},Pq=(Z)=>{try{r(S(Z))}catch{}},x=q.prespawn?Uq({spawnProcess:m,...q.relayDependencies?.sourceEntrypoint?{sourceEntrypoint:q.relayDependencies.sourceEntrypoint}:{},log:(Z,Q)=>X(Z,Q??{})}):null;x?.arm();let i=x?setInterval(()=>{x.arm()},kq):null;i?.unref?.();async function c(Z){let Q=G.get(Z);if(G.delete(Z),!Q)return;Q.abort.abort(),await Q.done}return{bindCgroup:S,async startExecutor(Z){if(C(),W.set(Z.bindId,Gq()),H=!0,!Z.claim)throw new T("vm_hands_bind_invalid","an executor needs the claim it serves");await c(Z.bindId);let{claim:Q,bindId:Y}=Z,L=Aq(Y),F=Q.owner;if(!F||typeof F.device_id!=="string"||typeof Q.root_id!=="string")throw new T("vm_hands_bind_invalid","claim without its owner Device or root");let M=new AbortController,R,K,j=new Promise(($,w)=>{R=$,K=w}),I,N=new Promise(($)=>{I=$}),V=Tq({headless:!0,hostExecution:!0,runtimeDirectory:q.runtimeDirectory,deviceIdentity:{deviceId:F.device_id,rootId:Q.root_id,apiOrigin:q.apiOrigin},claimOwner:Q.owner,root:q.root,runId:Q.run_id,operationId:Q.operation_id,attemptId:Q.attempt_id,payload:Object.fromEntries(Object.entries(Q.payload).filter(([$])=>!$.startsWith("vm_hands_"))),signal:M.signal,emitEvent:async($,w)=>{if($==="hands.ready"){R(w);return}if($==="hands.started"||$==="hands.stopped"||$==="hands.failed")return;await q.forward(Y,$,w)}},{...q.relayDependencies,spawnWorker:($)=>d(L)($.command,$.args,$.options),...x?{takePrespawnedWorker:($)=>{let w=x.take($);if(!w?.pid)return w;try{return E(U(L,"cgroup.procs"),String(w.pid)),w}catch{try{w.kill("SIGKILL")}catch{}return null}},adoptSpawnedWorker:x.adopt}:{}}).then(()=>{I("executor_stopped")},($)=>{let w=$&&typeof $==="object"&&"code"in $?String($.code):"executor_failed";K(new T(w,$ instanceof Error?$.message:String($))),I(w)}).finally(()=>K(new T("vm_hands_executor_exited","executor ended before it was ready")));G.set(Y,{abort:M,done:V,exited:N,operationId:Q.operation_id,runId:Q.run_id,expiresAtMs:Date.parse(String(Q.payload.expires_at??""))||0});let g=await j,a=g.executor_launch_id;if(typeof a!=="string")throw new T("vm_hands_bind_failed","executor ready without a launch id");return{launchId:a,readyData:g,applied:{hands_confinement:typeof Q.payload.hands_confinement==="string"?Q.payload.hands_confinement:null,browser_egress:Q.payload.browser_egress??null}}},takeSrtFallbacks:h,executorExited(Z){return G.get(Z)?.exited??new Promise(()=>{})},freezeBind(Z){let Q=S(Z);if(l(U(Q,"cgroup.freeze")))E(U(Q,"cgroup.freeze"),"1")},async killAndVerifyPayload(Z){let Q=new Set(Z?.keep??[]);if(Q.size||Z?.own)return Cq(Z?.bindId??null,Q,Z?.own===!0);f=!0;let Y=Yq();try{await Bq();let L=Promise.all([...G.keys()].map((K)=>c(K).catch(()=>{return})));P();let F=Date.now()+qq;await p(z,F,"payload"),await L;let M=(H||q.srtWarmLate?.()===!0)&&l(U(O,"cgroup.events"));if(M)await p(O,F,"srt");let R=Zq(J).filter((K)=>!v(K,y));if(D!==null){let K=Xq(D).filter((j)=>j!==process.pid&&!v(j,y));if(K.length)throw X("vm_hands.kill_strays",{strays:K.slice(0,16).map((j)=>{let I="?",N="?";try{I=A(`/proc/${j}/comm`,"utf8").trim().slice(0,32)}catch{}try{N=(A(`/proc/${j}/cgroup`,"utf8").split(`
5
5
  `).find((V)=>V.startsWith("0::"))??"").slice(3,80)}catch{}return{pid:j,comm:I,cgroup:N}})}),new T("vm_hands_kill_unverified",`${K.length} process(es) the run started survived it`);D=null}if(H=!1,M)q.onSrtReset?.();if(R.length)throw X("vm_hands.kill_survivors",{pids:R.slice(0,16)}),new T("vm_hands_kill_unverified",`${R.length} payload-uid process(es) outside the payload cgroup`);W.clear();for(let K of Qq())try{r(U(z,_,K))}catch{}}finally{f=!1,Y()}if(x)setTimeout(()=>{if(!G.size)x.arm()},100).unref?.()},async killProbe(){let Z=Date.now()+qq;if(l(U(u,"cgroup.events"))){await p(u,Z,"probe");try{r(u)}catch{}}let Q=$q(process.pid);if(Q===null)throw new T("vm_hands_kill_unverified","agent start time unreadable");await yq(z,Q,Z);let Y=(F)=>{let M=$q(F);return M!==null&&M<=Q},L=Zq(J).filter((F)=>Y(F)&&!v(F,y));if(L.length)throw X("vm_hands.kill_survivors",{pids:L.slice(0,16),at:"attest"}),new T("vm_hands_kill_unverified",`${L.length} payload-uid process(es) from before this agent`);if(D!==null){let F=[z,U(z,_)].map((K)=>K.replace(/^\/sys\/fs\/cgroup/,"")),M=O.replace(/^\/sys\/fs\/cgroup/,""),R=Xq(D).filter((K)=>K!==process.pid&&!v(K,y)&&!v(K,"/reason-vm-hands")&&!v(K,M)&&!F.some((j)=>Wq(K,j)));if(R.length)throw X("vm_hands.kill_strays",{strays:R.slice(0,16).map((K)=>({pid:K})),at:"attest"}),new T("vm_hands_kill_unverified",`${R.length} process(es) the probe started survived it`);D=null}},async runProbe({nonce:Z,script:Q}){if(C(),!Q.includes(zq))throw new T("vm_hands_probe_failed","probe names no proof directory");let Y=q.proofParent??"/tmp/reason-vm-hands-proof";e(Y,{mode:457,recursive:!0});let L=o(Y);if(L.isSymbolicLink()||!L.isDirectory()||L.uid!==(process.getuid?.()??-1)||(L.mode&4095)!==457)throw new T("vm_hands_probe_failed","proof parent is not root's 0711 directory");let F=bq(U(Y,"p-")),M=!1;try{if(!/^[A-Za-z0-9/._-]+$/.test(F)||!/^[A-Za-z0-9_-]{1,128}$/.test(Z))throw new T("vm_hands_probe_failed","proof directory path or nonce");Oq(F,J,J),vq(F,448);let R=o(F).ino;try{e(u,{mode:493})}catch(N){if(!(N&&typeof N==="object"&&("code"in N)&&N.code==="EEXIST"))throw new T("vm_hands_probe_failed","probe cgroup")}let K=d(u)("/bin/bash",["-c",Q.replaceAll(zq,F).replaceAll(Hq,Z)],{cwd:"/",env:{PATH:"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},stdio:["ignore","pipe","ignore"]}),j="";K.stdout?.on("data",(N)=>{if(j.length<16384)j+=N.toString("utf8").slice(0,16384-j.length)});let I=await new Promise((N)=>{let V=setTimeout(()=>{M=!0,K.kill("SIGKILL"),N(124)},_q);K.once("error",()=>{clearTimeout(V),N(127)}),K.once("close",(g)=>{clearTimeout(V),N(g??1)})});return X("vm_hands.probe",{nonce_len:Z.length,exit_code:I}),{exitCode:I,markers:j,proofDirInode:R}}finally{if(!M)xq(F,{recursive:!0,force:!0})}},restatLayout(){let{session_root:Z,alias:Q}=q.init.layout,Y="invalid";try{Fq(Z),Y="0:0:755"}catch{}let L=!1,F=-1;try{let M=o(Q);F=M.uid,L=Y==="0:0:755"&&Q===U(Z,"repo")&&!M.isSymbolicLink()&&M.isDirectory()&&hq(Q)===Q&&M.uid===J}catch{}return{root_mode:Y,alias_ok:L,owner_uid:F}},installEnvironment(Z,Q){let Y=G.get(Z);if(!Y)throw new T("environment_unavailable","no executor owns an environment");return Lq({root:q.root,operationId:Y.operationId,payload:Q}).installed_revision},async stop(){if(i)clearInterval(i);x?.close(),await Promise.all([...G.keys()].map((Z)=>c(Z)))}};function Qq(){try{return s(U(z,_),{withFileTypes:!0}).filter((Z)=>Z.isDirectory()&&/^b-[0-9a-f-]{36}$/.test(Z.name)).map((Z)=>Z.name)}catch{return[]}}async function Cq(Z,Q,Y=!1){let L=new Set([...Q].map((M)=>M.toLowerCase())),F=Yq();try{await Bq();let M=Date.now()+qq,R=new Set(Qq().filter(($)=>!L.has($.slice(2))).map(($)=>$.slice(2)));if(Z)R.add(Z.toLowerCase());let K=null;for(let $ of R){let w=c($).catch(()=>{return}),n=W.get($);if(n!==void 0)K=K===null?n:Math.min(K,n);if(l(U(S($),"cgroup.events")))await p(S($),M,"bind");await w}let j=[...L].map(($)=>S($).replace(/^\/sys\/fs\/cgroup/,"")),I=[z,U(z,_)].map(($)=>$.replace(/^\/sys\/fs\/cgroup/,"")),N=O.replace(/^\/sys\/fs\/cgroup/,""),V=($)=>v($,y)||j.some((w)=>v($,w)),g=Y?[]:Zq(J).filter(($)=>!V($));if(g.length)throw X("vm_hands.kill_survivors",{pids:g.slice(0,16),beside:L.size}),new T("vm_hands_kill_unverified",`${g.length} payload-uid process(es) outside a live bind`);let a=($)=>!V($)&&!v($,"/reason-vm-hands")&&!v($,N)&&!I.some((w)=>Wq($,w));if(K!==null){let $=Xq(K).filter((w)=>w!==process.pid&&a(w));if($.length)throw X("vm_hands.kill_strays",{strays:$.slice(0,16).map((w)=>({pid:w})),beside:L.size}),new T("vm_hands_kill_unverified",`${$.length} process(es) the run started survived it`)}for(let $ of R)W.delete($),Pq($)}finally{F()}}}function $q(q,z="/proc"){try{let J=A(U(z,String(q),"stat"),"utf8"),X=Number(J.slice(J.lastIndexOf(")")+2).split(" ")[19]);return Number.isFinite(X)?X:null}catch{return null}}function Sq(q,z="/proc"){try{let J=A(U(z,String(q),"stat"),"utf8"),X=Number(J.slice(J.lastIndexOf(")")+2).split(" ")[1]);return Number.isFinite(X)?X:null}catch{return null}}async function yq(q,z,J){try{E(U(q,"cgroup.freeze"),"1")}catch(X){throw new T("vm_hands_kill_unverified",`payload cgroup.freeze: ${X instanceof Error?X.message:String(X)}`)}try{for(;;){let X=Dq(q).filter((W)=>fq(W,q)),G=new Set(X.filter((W)=>{let B=$q(W);return B!==null&&B<=z}));for(let W=!0;W;){W=!1;for(let B of X){if(G.has(B))continue;let P=Sq(B);if(P!==null&&G.has(P))G.add(B),W=!0}}if(G.size===0)return;if(Date.now()>J)throw new T("vm_hands_kill_unverified",`${G.size} previous-boot process(es) survived`);for(let W of G)try{process.kill(W,"SIGKILL")}catch{}await new Promise((W)=>setTimeout(W,10))}}finally{try{E(U(q,"cgroup.freeze"),"0")}catch{}}}function Wq(q,z,J="/proc"){try{return A(U(J,String(q),"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-2w18ysma.js";import"./vm-hands-entry-lite-y3wncwjd.js";import"./vm-hands-entry-lite-7fx4xtf6.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-xy8xmzjw.js";import{Ae as v}from"./vm-hands-entry-lite-4p6v05yh.js";import"./vm-hands-entry-lite-p30699xy.js";import{dk as G}from"./vm-hands-entry-lite-1c1rxx8v.js";import{spawn as a}from"child_process";import{createHash as t}from"crypto";import{lstatSync as w,mkdirSync as s,readFileSync as i,statSync as e,writeFileSync as d}from"fs";var P="/run/reason-vm-hands",O="/run/reason-vm-hands/env",T="/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=w(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=w(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=w(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=t("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 L=a("/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)=>{L.once("error",()=>{j("srt_warm_failed",{reason:"spawn"}),F()}),L.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 u=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 y(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-bgxwc0n4.js"),import("./hands-worker-source-s2p9t76m.js"),import("./network-contract-mtrzq59w.js"),import("./device-workspace-4zmq6vnb.js")]),{REASON_HANDS_PROTOCOL_VERSION:z}=await import("./reason-hands-protocol-b8c4s9jx.js");return{reason_runtime_version:j,bridge_version:j,protocol_version:v,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:T,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 i("/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:T,pathFingerprint:"0".repeat(64),permissions:{read:!0,write:!0,execute:!0,discover_environment:!0,expose_mcp:!1}}]}}async function Mj(Q,j){y(P),y(O),Qj(j);let J=R(Q,j),Z=!1,X=async()=>{if(!await Promise.race([J.then(()=>!0),new Promise(($)=>setTimeout(()=>$(!1),u).unref?.())]))Z=!0,j("srt_warm_late",{wait_ms:u})},[{configureDesktopAccount:z},{configureWorkerSandbox:W}]=await Promise.all([import("./desktop-account-2dtsbtf1.js"),import("./worker-sandbox-bjwykp0q.js")]);W();try{z({value:String(Q.layout.payload_uid)})}catch{j("payload_account_unavailable"),await new Promise(()=>{setInterval(()=>{return},1073741824)})}let L=new AbortController;for(let q of["SIGTERM","SIGINT"])process.on(q,()=>L.abort());let F=new Map,H,g=new Promise((q)=>{H=q}),Y=g.then(()=>import("./vm-hands-executor-frexe1jn.js")).then(({createVmHandsExecutor:q})=>{let $=q({init:Q,root:T,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 M={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")},installEnvironment:()=>{throw Error("replaced below")},executorExited:(q)=>C?C(q):new Promise(()=>{}),takeSrtFallbacks:()=>null};Y.then((q)=>{M.restatLayout=()=>q.restatLayout(),M.installEnvironment=($,B)=>q.installEnvironment($,B),M.freezeBind=($)=>q.freezeBind($),M.takeSrtFallbacks=()=>q.takeSrtFallbacks?.()??null});let c=await k(Q),o=new m(Q,c,M,{envRoot:O}),h=Zj(Q),b=null,n=Promise.all([h,import("./local-capabilities-emphypye.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-frexe1jn.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:L.signal,heartbeat:async()=>b??await h,executeOp:async({kind:q,claim:$,bindId:B,signal:K,emit:N})=>{let x=Fj(Q,$);if(!x)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 r=$.capability==="pty.start"&&q==="person"&&!$.authority;if($j.has(String($.capability))&&!r){let{executeLocalOperation:U}=await import("./local-capabilities-emphypye.js");return U(x,$,{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:x,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-pt633d84.js";import{ve as v}from"./vm-hands-entry-lite-2fyemnas.js";import"./vm-hands-entry-lite-zmf1terc.js";import{fk as G}from"./vm-hands-entry-lite-7fx4xtf6.js";import{spawn as a}from"child_process";import{createHash as t}from"crypto";import{lstatSync as w,mkdirSync as s,readFileSync as i,statSync as e,writeFileSync as d}from"fs";var P="/run/reason-vm-hands",O="/run/reason-vm-hands/env",T="/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=w(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=w(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=w(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=t("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 L=a("/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)=>{L.once("error",()=>{j("srt_warm_failed",{reason:"spawn"}),F()}),L.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 u=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 y(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-vn3a7967.js"),import("./hands-worker-source-5wv1djgv.js"),import("./network-contract-zez17y8t.js"),import("./device-workspace-05nkwrpp.js")]),{REASON_HANDS_PROTOCOL_VERSION:z}=await import("./reason-hands-protocol-dase3v7x.js");return{reason_runtime_version:j,bridge_version:j,protocol_version:v,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:T,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 i("/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:T,pathFingerprint:"0".repeat(64),permissions:{read:!0,write:!0,execute:!0,discover_environment:!0,expose_mcp:!1}}]}}async function Mj(Q,j){y(P),y(O),Qj(j);let J=R(Q,j),Z=!1,X=async()=>{if(!await Promise.race([J.then(()=>!0),new Promise(($)=>setTimeout(()=>$(!1),u).unref?.())]))Z=!0,j("srt_warm_late",{wait_ms:u})},[{configureDesktopAccount:z},{configureWorkerSandbox:W}]=await Promise.all([import("./desktop-account-cppm1dhr.js"),import("./worker-sandbox-e4kvy715.js")]);W();try{z({value:String(Q.layout.payload_uid)})}catch{j("payload_account_unavailable"),await new Promise(()=>{setInterval(()=>{return},1073741824)})}let L=new AbortController;for(let q of["SIGTERM","SIGINT"])process.on(q,()=>L.abort());let F=new Map,H,g=new Promise((q)=>{H=q}),Y=g.then(()=>import("./vm-hands-executor-n24f7xm4.js")).then(({createVmHandsExecutor:q})=>{let $=q({init:Q,root:T,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 M={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")},installEnvironment:()=>{throw Error("replaced below")},executorExited:(q)=>C?C(q):new Promise(()=>{}),takeSrtFallbacks:()=>null};Y.then((q)=>{M.restatLayout=()=>q.restatLayout(),M.installEnvironment=($,B)=>q.installEnvironment($,B),M.freezeBind=($)=>q.freezeBind($),M.takeSrtFallbacks=()=>q.takeSrtFallbacks?.()??null});let c=await k(Q),o=new m(Q,c,M,{envRoot:O}),h=Zj(Q),b=null,n=Promise.all([h,import("./local-capabilities-wxmrcn9w.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-n24f7xm4.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:L.signal,heartbeat:async()=>b??await h,executeOp:async({kind:q,claim:$,bindId:B,signal:K,emit:N})=>{let x=Fj(Q,$);if(!x)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 r=$.capability==="pty.start"&&q==="person"&&!$.authority;if($j.has(String($.capability))&&!r){let{executeLocalOperation:U}=await import("./local-capabilities-wxmrcn9w.js");return U(x,$,{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:x,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-d7y6aah1.js";import"./vm-hands-entry-lite-b775ysr4.js";import"./vm-hands-entry-lite-mcv6pse6.js";import"./vm-hands-entry-lite-hh24bq0d.js";import"./vm-hands-entry-lite-rjwk6sfj.js";import"./vm-hands-entry-lite-y3wncwjd.js";import"./vm-hands-entry-lite-7fx4xtf6.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.367",
3
+ "version": "0.2.368",
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-zg9a3kv5.js";import"./vm-hands-entry-lite-10sgx6g1.js";import"./vm-hands-entry-lite-smhq7c4x.js";import"./vm-hands-entry-lite-wry37am5.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-1c1rxx8v.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-10sgx6g1.js";import"./vm-hands-entry-lite-smhq7c4x.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-1c1rxx8v.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-wmd391jw.js";import"./vm-hands-entry-lite-0q46m8na.js";import"./vm-hands-entry-lite-zg9a3kv5.js";import"./vm-hands-entry-lite-10sgx6g1.js";import"./vm-hands-entry-lite-c4mk1cwv.js";import"./vm-hands-entry-lite-smhq7c4x.js";import"./vm-hands-entry-lite-1yn5vrs6.js";import"./vm-hands-entry-lite-cgh7q3ss.js";import"./vm-hands-entry-lite-jmfb6mqq.js";import"./vm-hands-entry-lite-gxjxx1r2.js";import"./vm-hands-entry-lite-khnx8tzk.js";import"./vm-hands-entry-lite-f4gvypnx.js";import"./vm-hands-entry-lite-wry37am5.js";import"./vm-hands-entry-lite-wej1p1ry.js";import"./vm-hands-entry-lite-0csqb5x1.js";import"./vm-hands-entry-lite-qdb917g9.js";import"./vm-hands-entry-lite-pp4mnye8.js";import"./vm-hands-entry-lite-6hcx1k08.js";import"./vm-hands-entry-lite-4p6v05yh.js";import"./vm-hands-entry-lite-7cqmn2f8.js";import"./vm-hands-entry-lite-dyyhxg5m.js";import"./vm-hands-entry-lite-ht2k3g94.js";import"./vm-hands-entry-lite-mq8bw5c9.js";import"./vm-hands-entry-lite-3ydgst12.js";import"./vm-hands-entry-lite-44f1pr87.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-4zg490k6.js";import"./vm-hands-entry-lite-5cmafbnh.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-21856esq.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-6gtpyxz7.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-q01t7ykc.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.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{Dg as a,Eg as b,Fg as c,Gg as d,Hg as e}from"./vm-hands-entry-lite-mq8bw5c9.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-1c1rxx8v.js";export{b as passwdAccount,e as desktopHome,d as desktopAccount,c as configureDesktopAccount,a as DESKTOP_USER_ENV};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ad as e,Bd as f,Cd as g,Dd as h,Ed as i,Fd as j,Gd as k,Hd as l,wd as a,xd as b,yd as c,zd as d}from"./vm-hands-entry-lite-qdb917g9.js";import"./vm-hands-entry-lite-pp4mnye8.js";import"./vm-hands-entry-lite-6hcx1k08.js";import"./vm-hands-entry-lite-4p6v05yh.js";import"./vm-hands-entry-lite-7cqmn2f8.js";import"./vm-hands-entry-lite-dyyhxg5m.js";import"./vm-hands-entry-lite-ht2k3g94.js";import"./vm-hands-entry-lite-mq8bw5c9.js";import"./vm-hands-entry-lite-3ydgst12.js";import"./vm-hands-entry-lite-44f1pr87.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-4zg490k6.js";import"./vm-hands-entry-lite-5cmafbnh.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-21856esq.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-6gtpyxz7.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-q01t7ykc.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.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}from"./vm-hands-entry-lite-1yn5vrs6.js";import"./vm-hands-entry-lite-cgh7q3ss.js";import"./vm-hands-entry-lite-jmfb6mqq.js";import"./vm-hands-entry-lite-gxjxx1r2.js";import"./vm-hands-entry-lite-khnx8tzk.js";import{Wc as b}from"./vm-hands-entry-lite-f4gvypnx.js";import"./vm-hands-entry-lite-wry37am5.js";import"./vm-hands-entry-lite-wej1p1ry.js";import"./vm-hands-entry-lite-0csqb5x1.js";import"./vm-hands-entry-lite-qdb917g9.js";import"./vm-hands-entry-lite-pp4mnye8.js";import"./vm-hands-entry-lite-6hcx1k08.js";import"./vm-hands-entry-lite-4p6v05yh.js";import"./vm-hands-entry-lite-7cqmn2f8.js";import"./vm-hands-entry-lite-dyyhxg5m.js";import"./vm-hands-entry-lite-ht2k3g94.js";import"./vm-hands-entry-lite-mq8bw5c9.js";import"./vm-hands-entry-lite-3ydgst12.js";import"./vm-hands-entry-lite-44f1pr87.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-4zg490k6.js";import"./vm-hands-entry-lite-5cmafbnh.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-21856esq.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-6gtpyxz7.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-q01t7ykc.js";import{Zj as a}from"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.js";export{g as spawnCaptured,f as sandboxProfile,e as safeEnvironment,j as runTransferCapability,i as runFileCapability,s as rebindLocalHandsControl,b as isProtectedLocalPath,t as executeLocalOperation,l as enrolledWorkspaceRootFingerprint,p as enrolledRootPaths,o as enrolledHomeContainedRootFingerprints,m as enrolledAccountRootPath,n as enrolledAccountRootFingerprint,r as deliverLocalHandsEnvironment,h as defaultLocalCommandRunner,d as confinedExecutionShell,q as capabilityInventoryForRoots,c as SHORT_REQUEST_CAPABILITIES,a as LocalCapabilityError,k as LOCAL_CAPABILITY_REGISTRY};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Sj as a,Tj as b,Uj as c,Vj as d,Wj as e,Xj as f,Yj as g}from"./vm-hands-entry-lite-q01t7ykc.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.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{Kj as a,Lj as b,Mj as c,Nj as d,Oj as e,Pj as f,Qj as g}from"./vm-hands-entry-lite-6gtpyxz7.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.js";export{c as requestMacScreenAccess,d as parseMacWindowBounds,a as parseMacScreenStatus,e as openMacWindowBounds,g as openMacInput,b as macScreenStatus,f as MacInputTranslator};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{$f as f,Wf as a,Xf as b,Yf as c,Zf as d,_f as e,ag as g,bg as h}from"./vm-hands-entry-lite-7cqmn2f8.js";import"./vm-hands-entry-lite-dyyhxg5m.js";import"./vm-hands-entry-lite-ht2k3g94.js";import"./vm-hands-entry-lite-mq8bw5c9.js";import"./vm-hands-entry-lite-3ydgst12.js";import"./vm-hands-entry-lite-44f1pr87.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-4zg490k6.js";import"./vm-hands-entry-lite-5cmafbnh.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-21856esq.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-6gtpyxz7.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-q01t7ykc.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.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{cg as a,dg as b,eg as c,fg as d,gg as e,hg as f,ig as g,jg as h,kg as i,lg as j}from"./vm-hands-entry-lite-dyyhxg5m.js";import"./vm-hands-entry-lite-ht2k3g94.js";import"./vm-hands-entry-lite-3ydgst12.js";import"./vm-hands-entry-lite-44f1pr87.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-p30699xy.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.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{Aa as a}from"./vm-hands-entry-lite-je3n2wnb.js";import"./vm-hands-entry-lite-1c1rxx8v.js";export default a();
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Ai as h,Bi as i,Ci as j,ti as a,ui as b,vi as c,wi as d,xi as e,yi as f,zi as g}from"./vm-hands-entry-lite-4zg490k6.js";import"./vm-hands-entry-lite-5cmafbnh.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-21856esq.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-6gtpyxz7.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.js";export{j as runPermissionsCli,d as reasonIdentity,e as readMacPermissions,f as permissionsSummary,i as parsePermissionsArgs,c as fullDiskAccessTarget,g as formatMacPermissions,h as allowMacPermissions,a as PERMISSIONS_HELP,b as MAC_PERMISSION_IDS};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{Id as a,Jd as b,Kd as c,Ld as d,Md as e,Nd as f,Od as g,Pd as h,Qd as i,Rd as j,Sd as k,Td as l,Ud as m,Vd as n,Wd as o,Xd as p,Yd as q,Zd as r}from"./vm-hands-entry-lite-pp4mnye8.js";import"./vm-hands-entry-lite-6hcx1k08.js";import"./vm-hands-entry-lite-thskh018.js";import"./vm-hands-entry-lite-peqmq6j6.js";import"./vm-hands-entry-lite-5cmafbnh.js";import"./vm-hands-entry-lite-0rwpp6hr.js";import"./vm-hands-entry-lite-5jbnm3bm.js";import"./vm-hands-entry-lite-21856esq.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-1c1rxx8v.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,2 +0,0 @@
1
- // @bun
2
- import{sj as a,tj as b,uj as c,vj as d}from"./vm-hands-entry-lite-21856esq.js";import"./vm-hands-entry-lite-59napxaf.js";import"./vm-hands-entry-lite-1c1rxx8v.js";export{c as compareCliVersions,d as cliAndAgentVersion,b as CLI_VERSION_PATTERN,a as CLI_VERSION};
@@ -1,37 +0,0 @@
1
- // @bun
2
- import{Fi as v,Ii as _,Ki as w,Oi as S,Pi as x}from"./vm-hands-entry-lite-5cmafbnh.js";import{Ui as I}from"./vm-hands-entry-lite-0rwpp6hr.js";import{sj as O}from"./vm-hands-entry-lite-21856esq.js";import{Lj as L,Mj as T}from"./vm-hands-entry-lite-6gtpyxz7.js";import{dk as G}from"./vm-hands-entry-lite-1c1rxx8v.js";import{spawnSync as l}from"child_process";import{dirname as B}from"path";import{spawn as y}from"child_process";import{accessSync as c,constants as g}from"fs";import{basename as h,join as m}from"path";var j=null;function U(q){if(j===q)j=null;if(q.exitCode===null&&q.signalCode===null)q.kill("SIGTERM")}var C=(q,z)=>{if(j)U(j);let J=m(q,v);try{c(J,g.X_OK)}catch{return()=>{}}let F;try{F=y(J,["--app",q,"--name",h(q,".app"),"--permission",z==="screen"?"screen_recording":"accessibility"],{detached:!0,stdio:"ignore"})}catch{return()=>{}}return F.on("error",()=>{if(j===F)j=null}),F.once("exit",()=>{if(j===F)j=null}),F.unref(),j=F,()=>U(F)};var M=`Reason permissions
3
-
4
- Usage:
5
- reason permissions [--json]
6
- reason permissions allow [screen|accessibility|disk]
7
-
8
- The macOS privacy permissions of this computer's Reason worker:
9
- screen Screen & System Audio Recording: desktop video, computer-use screenshots
10
- accessibility Accessibility: computer-use clicks and typing, desktop input
11
- disk Full Disk Access (recommended): Sessions in Desktop, Documents,
12
- Downloads, iCloud Drive and Mail
13
-
14
- allow asks for each missing one, or the one named. macOS cannot ask for Full
15
- Disk Access: allow disk opens its pane, shows the file to add in Finder and
16
- waits until the worker has it.
17
- `,D="x-apple.systempreferences:com.apple.preference.security",a="curl -fsSL https://reasonmachines.com/install.sh | bash",d=180000,n=2000,E=["screen","accessibility","disk"],N={screen:{label:"Screen & System Audio Recording",purpose:"desktop video, computer-use screenshots",level:"required",pane:`${D}?Privacy_ScreenCapture`},accessibility:{label:"Accessibility",purpose:"computer-use clicks and typing, desktop input",level:"required",pane:`${D}?Privacy_Accessibility`},disk:{label:"Full Disk Access",purpose:"Sessions in Desktop, Documents, Downloads, iCloud Drive and Mail",level:"recommended",pane:`${D}?Privacy_AllFiles`}};function k(q){return q.executable}function p(q,z){if(q==="computer_use_identity_missing")return`Reason's background identity is not installed (${q}); reinstall Reason: ${a}`;if(q==="computer_use_identity_outdated")return`Reason's background identity is outdated (${w(z)??"unknown"}; this CLI is ${O}) (${q}); \`reason update\` installs this release's`;return`Reason's background identity cannot run computer use for this CLI (${q}); run the installed \`reason\``}function s(q=I()){let z=S(q);if(z.length>0)return{state:"ready",path:B(B(B(z[0]))),prefix:z};let J=x(z,q)??"computer_use_identity_unavailable";return{state:J,path:_(q),detail:p(J,q)}}function u(){return{identity:()=>s(),grants:(q)=>L(q),request:(q,z)=>T(q,z),worker:async()=>(await import("./status-gwe4v7q7.js")).connectionMacState(),open:(q)=>{l("/usr/bin/open",q,{stdio:"ignore",timeout:1e4})},tile:C,restartConnection:async()=>(await import("./connect-cli-9ef3cz0p.js")).restartConnection(),sleep:(q)=>new Promise((z)=>setTimeout(z,q)),now:()=>Date.now()}}function P(q,z,J){if(q.state!=="ready"||!z)return"unknown";return z[J]?"granted":"missing"}async function b(q){let z=q.identity(),J=z.state==="ready"?await q.grants(z.prefix):null,F=await q.worker(),X=F?k(F):null,Q=!X||F?.full_disk_access==="unknown"?"unknown":F?.full_disk_access==="granted"?"granted":"missing",$=(K,H,Z)=>{let{label:R,purpose:W,level:V}=N[K];return{id:K,label:R,purpose:W,level:V,state:H,holder:Z}};return{identity:{state:z.state,path:z.path,detail:z.state==="ready"?null:z.detail},worker_detail:X?null:"Full Disk Access is read from this computer's running worker; `reason connect` starts it.",permissions:[$("screen",P(z,J,"screen"),z.path),$("accessibility",P(z,J,"accessibility"),z.path),$("disk",Q,X)]}}function Rq(q){let z=q.identity.state==="ready"?null:q.identity.state,J=q.permissions.filter((Q)=>Q.state==="granted").length,F=[...z?[z]:[],...q.permissions.filter((Q)=>Q.state!=="granted"&&!(z&&Q.id!=="disk")).map((Q)=>`${Q.label} ${Q.state}`)],X=!z&&q.permissions.some((Q)=>Q.state==="missing");return`Permissions: ${J} of ${q.permissions.length}${F.length>0?` (${F.join(", ")})`:""}`+(X?" \u2014 reason permissions allow":F.length>0?" \u2014 reason permissions":"")}function t(q){let z=[];if(q.identity.detail)z.push(q.identity.detail);z.push(`Reason: ${q.identity.path}`);let J=q.permissions.find((F)=>F.id==="disk");z.push(J?.holder?`Worker: ${J.holder}`:`Worker: ${q.worker_detail}`),z.push("");for(let F of q.permissions){let X=`${F.label}${F.level==="recommended"?" (recommended)":""}`;z.push(` ${F.id.padEnd(13)} ${F.state.padEnd(7)} ${X}: ${F.purpose}`)}if(q.permissions.some((F)=>F.state==="missing"))z.push("","Allow the missing ones: reason permissions allow");return`${z.join(`
18
- `)}
19
- `}async function A(q,z){let J=z.now()+d;for(;;){if(await q())return!0;if(z.now()>=J)return!1;await z.sleep(n)}}async function o(q,z){let J=z.host??u(),{io:F}=z,X=await b(J),Q=X.permissions.filter((Z)=>q.includes(Z.id)&&Z.state!=="granted");if(Q.length===0)return F.stdout.write(`Reason permissions: ${q.map((Z)=>N[Z].label).join(", ")} already allowed.
20
- `),0;let $=!1,K=!1,H=J.identity();for(let Z of Q){let{label:R,pane:W}=N[Z.id];if(Z.id!=="disk"){if(H.state!=="ready"){if(!$)F.stderr.write(`Reason permissions: ${H.detail}
21
- `);$=!0;continue}let Y=Z.id;await J.request(H.prefix,Y),J.open([W]);let f=J.tile(H.path,Y);if(F.stdout.write(`Allow Reason in System Settings > Privacy & Security > ${R}.
22
- `),!z.wait)continue;if(F.stdout.write(`Waiting for it (Ctrl-C to stop)\u2026
23
- `),await A(async()=>(await J.grants(H.prefix))?.[Y]===!0,J).finally(f))F.stdout.write(`${R}: granted.
24
- `),K=!0;else F.stderr.write(`${R} is not allowed yet; turn on Reason there, then run \`reason permissions\`.
25
- `),$=!0;continue}let V=k(await J.worker()??{executable:null});if(!V){F.stderr.write(`Reason permissions: ${X.worker_detail} Then run \`reason permissions allow disk\`.
26
- `),$=!0;continue}if(J.open([W]),J.open(["-R",V]),F.stdout.write(`Full Disk Access: click + and choose ${V} (shown in Finder), or drag it into the list.
27
- `),!z.wait)continue;if(F.stdout.write(`Waiting for the worker to report it (Ctrl-C to stop)\u2026
28
- `),await A(async()=>(await J.worker())?.full_disk_access==="granted",J))F.stdout.write(`Full Disk Access: granted.
29
- `);else F.stderr.write("Full Disk Access is not reported yet. If you allowed it, `reason connect` restarts the worker with it.\n"),$=!0}if(K)try{if(await J.restartConnection())F.stdout.write(`This computer's Reason connection restarted to use them.
30
- `)}catch(Z){F.stderr.write(`This computer's Reason connection uses them after it restarts (\`reason connect\`): ${Z instanceof Error?Z.message:String(Z)}
31
- `)}return $?1:0}function i(q){if(q.some((F)=>["--help","-h","help"].includes(F)))return{command:"help"};let[z,...J]=q;if(z===void 0||z==="--json")return q.length<=1?{command:"list",json:z==="--json"}:{error:`Unknown option: ${q[1]}`};if(z!=="allow")return{error:`Unknown permissions command: ${z}`};if(J.length>1)return{error:`Unknown option: ${J[1]}`};if(J.length===0)return{command:"allow",ids:[...E]};if(!E.includes(J[0]))return{error:`allow expects ${E.join(", ")}.`};return{command:"allow",ids:[J[0]]}}async function Vq(q,z={}){let J=z.io??{stdout:process.stdout,stderr:process.stderr},F=i(q);if("error"in F)return J.stderr.write(`${F.error}
32
-
33
- ${M}`),1;if(F.command==="help")return J.stdout.write(M),0;let X=z.platform??process.platform;if(X!=="darwin")return J.stdout.write(F.command==="list"&&F.json?`${JSON.stringify({platform:X,applicable:!1})}
34
- `:`Reason permissions: macOS privacy permissions do not apply on this computer.
35
- `),0;let Q=z.host??u();if(F.command==="allow")return o(F.ids,{io:J,wait:!0,host:Q});let $=await b(Q);return J.stdout.write(F.json?`${JSON.stringify({platform:X,applicable:!0,...$},null,2)}
36
- `:t($)),0}
37
- export{C as si,M as ti,E as ui,k as vi,s as wi,b as xi,Rq as yi,t as zi,o as Ai,i as Bi,Vq as Ci};
@@ -1,2 +0,0 @@
1
- // @bun
2
- import{s as a,t as b,u as c}from"./vm-hands-entry-lite-d12rwjw1.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.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-0q46m8na.js";import"./vm-hands-entry-lite-jmfb6mqq.js";import"./vm-hands-entry-lite-gxjxx1r2.js";import"./vm-hands-entry-lite-f4gvypnx.js";import"./vm-hands-entry-lite-wej1p1ry.js";import"./vm-hands-entry-lite-d2pbd9ky.js";import"./vm-hands-entry-lite-1c1rxx8v.js";export{a as configureWorkerSandbox};