@sma1lboy/rove 0.9.250 → 0.9.251

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 (171) hide show
  1. package/dist/cli/chunk-032g0ahy.js +3 -0
  2. package/dist/cli/{chunk-h86p4zzr.js → chunk-094cgrcc.js} +1 -1
  3. package/dist/cli/{chunk-5bfern2b.js → chunk-11wyec8z.js} +1 -1
  4. package/dist/cli/{chunk-kxaqge09.js → chunk-14f459aa.js} +1 -1
  5. package/dist/cli/{chunk-8gmxg77t.js → chunk-1exaxwyv.js} +1 -1
  6. package/dist/cli/{chunk-mptaj95j.js → chunk-1tebqkdv.js} +1 -1
  7. package/dist/cli/{chunk-h9cg0j3a.js → chunk-21ek142k.js} +1 -1
  8. package/dist/cli/{chunk-9q1m5qz0.js → chunk-28wjmb9f.js} +1 -1
  9. package/dist/cli/chunk-29kvfqeh.js +23 -0
  10. package/dist/cli/chunk-2dpr8gps.js +2 -0
  11. package/dist/cli/{chunk-mn6qth54.js → chunk-2g2w5vvn.js} +1 -1
  12. package/dist/cli/{chunk-7xttx9m1.js → chunk-2pen6b1t.js} +1 -1
  13. package/dist/cli/{chunk-a82ec09z.js → chunk-2wd4744g.js} +1 -1
  14. package/dist/cli/chunk-3msnqacf.js +2 -0
  15. package/dist/cli/{chunk-wtdj8n93.js → chunk-4rx3nhvq.js} +1 -1
  16. package/dist/cli/{chunk-2vgc5cyj.js → chunk-4z01vg3t.js} +1 -1
  17. package/dist/cli/{chunk-y2bga5cw.js → chunk-5456ttpr.js} +3 -3
  18. package/dist/cli/{chunk-f7zjggfv.js → chunk-568q390y.js} +2 -2
  19. package/dist/cli/chunk-5q08srg6.js +2 -0
  20. package/dist/cli/chunk-5r71q63g.js +2 -0
  21. package/dist/cli/chunk-6ahc8w4p.js +87 -0
  22. package/dist/cli/{chunk-3c58659p.js → chunk-6f01fsje.js} +1 -1
  23. package/dist/cli/{chunk-rvqse0aa.js → chunk-6h0n4b5t.js} +2 -2
  24. package/dist/cli/chunk-6rrzq5et.js +3 -0
  25. package/dist/cli/chunk-719avf77.js +2 -0
  26. package/dist/cli/chunk-76n3d9x3.js +2 -0
  27. package/dist/cli/{chunk-jh11snb1.js → chunk-7j00hbq5.js} +1 -1
  28. package/dist/cli/{chunk-8n19nb0s.js → chunk-7vv6160d.js} +1 -1
  29. package/dist/cli/{chunk-gc77ewk2.js → chunk-7z9yfnjd.js} +1 -1
  30. package/dist/cli/{chunk-4xns5j33.js → chunk-84bmcqyz.js} +1 -1
  31. package/dist/cli/{chunk-hm6qe86k.js → chunk-86chrjqr.js} +1 -1
  32. package/dist/cli/{chunk-kqc0kym1.js → chunk-88czbfqx.js} +1 -1
  33. package/dist/cli/{chunk-r07zjer5.js → chunk-8ezc1ban.js} +2 -2
  34. package/dist/cli/{chunk-ntrwd6ks.js → chunk-8ja7jrhc.js} +2 -2
  35. package/dist/cli/chunk-8s0mz115.js +52 -0
  36. package/dist/cli/{chunk-rjxj5tf4.js → chunk-8sbbzs5g.js} +1 -1
  37. package/dist/cli/{chunk-rtdr5bm8.js → chunk-8spmjwwz.js} +1 -1
  38. package/dist/cli/{chunk-wqfp8d9w.js → chunk-91sykzqq.js} +2 -2
  39. package/dist/cli/{chunk-jk8knad0.js → chunk-963er0h4.js} +3 -3
  40. package/dist/cli/{chunk-y7mg74jx.js → chunk-964z8ccb.js} +1 -1
  41. package/dist/cli/chunk-9h940gnr.js +2 -0
  42. package/dist/cli/{chunk-z0ewb9k9.js → chunk-9v568ape.js} +1 -1
  43. package/dist/cli/{chunk-tbrkck2f.js → chunk-9xtg2k54.js} +1 -1
  44. package/dist/cli/{chunk-xv8fhxxm.js → chunk-a7m7w6d1.js} +1 -1
  45. package/dist/cli/{chunk-3pdg2afa.js → chunk-apfzdw7g.js} +2 -2
  46. package/dist/cli/{chunk-fxqp6zt5.js → chunk-ayr5dpgc.js} +1 -1
  47. package/dist/cli/{chunk-j3c4kygc.js → chunk-bvqwgrar.js} +1 -1
  48. package/dist/cli/{chunk-ktzbg4jg.js → chunk-cb1dg7nz.js} +1 -1
  49. package/dist/cli/{chunk-nhakrm1f.js → chunk-cmp64q4j.js} +1 -1
  50. package/dist/cli/chunk-cp5jp5mq.js +3 -0
  51. package/dist/cli/{chunk-78xjh4gg.js → chunk-crdyt04z.js} +1 -1
  52. package/dist/cli/chunk-d99385f2.js +22 -0
  53. package/dist/cli/chunk-daw4mxq3.js +2 -0
  54. package/dist/cli/{chunk-wtb8cycx.js → chunk-dcjxtwdb.js} +1 -1
  55. package/dist/cli/{chunk-78kh1fet.js → chunk-dgbcpkr2.js} +1 -1
  56. package/dist/cli/{chunk-easxds8p.js → chunk-e003wm6d.js} +2 -2
  57. package/dist/cli/{chunk-2mrwdd50.js → chunk-e1xvz3sv.js} +1 -1
  58. package/dist/cli/chunk-f7rmd4zk.js +6 -0
  59. package/dist/cli/{chunk-7mq1ascs.js → chunk-fktvtdkb.js} +1 -1
  60. package/dist/cli/{chunk-2r696a8v.js → chunk-fsdh66fa.js} +1 -1
  61. package/dist/cli/{chunk-06d596z0.js → chunk-g5rr5fpn.js} +1 -1
  62. package/dist/cli/chunk-g872swb8.js +82 -0
  63. package/dist/cli/{chunk-t8v9rpdx.js → chunk-g8wrdp7n.js} +1 -1
  64. package/dist/cli/{chunk-fxm1cmp9.js → chunk-ga5f2pyc.js} +1 -1
  65. package/dist/cli/{chunk-ce16ecse.js → chunk-gaf6n1ea.js} +1 -1
  66. package/dist/cli/{chunk-53cyns0f.js → chunk-gp991c3v.js} +1 -1
  67. package/dist/cli/chunk-h9kzwj14.js +2 -0
  68. package/dist/cli/{chunk-yjs6d5w1.js → chunk-jfnr89qj.js} +1 -1
  69. package/dist/cli/{chunk-d5xc67hp.js → chunk-jrdwedn2.js} +1 -1
  70. package/dist/cli/{chunk-wnwzj8am.js → chunk-k9spgfmx.js} +1 -1
  71. package/dist/cli/{chunk-41r8zj46.js → chunk-kb3zvtkj.js} +1 -1
  72. package/dist/cli/{chunk-vb2tzcde.js → chunk-m4wy9ja5.js} +1 -1
  73. package/dist/cli/chunk-md094j05.js +3 -0
  74. package/dist/cli/{chunk-09y4jh6p.js → chunk-mdnrrj16.js} +1 -1
  75. package/dist/cli/{chunk-whbm14qr.js → chunk-meyfwc50.js} +1 -1
  76. package/dist/cli/{chunk-wkt6h5cf.js → chunk-mf7fb92r.js} +1 -1
  77. package/dist/cli/chunk-mnm9n2vr.js +2 -0
  78. package/dist/cli/chunk-mnpewdhd.js +17 -0
  79. package/dist/cli/chunk-mq06xpqr.js +3 -0
  80. package/dist/cli/{chunk-93r6tgf1.js → chunk-mre9g9vq.js} +1 -1
  81. package/dist/cli/{chunk-c01899mr.js → chunk-mv0hp5cv.js} +1 -1
  82. package/dist/cli/{chunk-21xgqgmv.js → chunk-n52x0ehz.js} +1 -1
  83. package/dist/cli/{chunk-g8fjjbnj.js → chunk-ncrr0fa3.js} +1 -1
  84. package/dist/cli/{chunk-k39sf30b.js → chunk-nep425b6.js} +1 -1
  85. package/dist/cli/{chunk-pe6wnsww.js → chunk-nj53wrzz.js} +1 -1
  86. package/dist/cli/{chunk-ap3r73bm.js → chunk-nsqsvgry.js} +3 -3
  87. package/dist/cli/{chunk-p83wf4zw.js → chunk-nxe45n7k.js} +2 -2
  88. package/dist/cli/{chunk-38s9e8dh.js → chunk-ny12rama.js} +1 -1
  89. package/dist/cli/{chunk-q8q22wq3.js → chunk-p2jeq98m.js} +1 -1
  90. package/dist/cli/chunk-q3xt0mqt.js +3 -0
  91. package/dist/cli/{chunk-7s67c0kw.js → chunk-q5bhq11t.js} +1 -1
  92. package/dist/cli/chunk-q6qhk171.js +2 -0
  93. package/dist/cli/{chunk-9aydqazr.js → chunk-q854fweb.js} +1 -1
  94. package/dist/cli/chunk-qft75bkm.js +2 -0
  95. package/dist/cli/{chunk-p18ehv9y.js → chunk-qstjfseh.js} +1 -1
  96. package/dist/cli/chunk-qxzrdfh7.js +11 -0
  97. package/dist/cli/{chunk-bvqazrbz.js → chunk-qyfmfpjg.js} +1 -1
  98. package/dist/cli/{chunk-gcxcq22q.js → chunk-r0etyq15.js} +1 -1
  99. package/dist/cli/{chunk-hbn1t161.js → chunk-r2c5nbcq.js} +1 -1
  100. package/dist/cli/chunk-r7tbzgt7.js +2 -0
  101. package/dist/cli/{chunk-s57vy3k3.js → chunk-ra40m849.js} +1 -1
  102. package/dist/cli/chunk-regtterm.js +9 -0
  103. package/dist/cli/{chunk-pvm3fc44.js → chunk-rf0jrh3q.js} +1 -1
  104. package/dist/cli/chunk-rhq87p4r.js +2 -0
  105. package/dist/cli/chunk-rkgnrfga.js +2 -0
  106. package/dist/cli/chunk-rqpwy31f.js +2 -0
  107. package/dist/cli/{chunk-8mfpv3fh.js → chunk-rt4tg426.js} +1 -1
  108. package/dist/cli/{chunk-n5dea05t.js → chunk-s2t9acrv.js} +1 -1
  109. package/dist/cli/{chunk-fz17c524.js → chunk-s5a5dyab.js} +1 -1
  110. package/dist/cli/{chunk-8gqkrbyr.js → chunk-s5k3g5ra.js} +1 -1
  111. package/dist/cli/{chunk-des00203.js → chunk-sgegp9x9.js} +1 -1
  112. package/dist/cli/chunk-sqp33pwr.js +2 -0
  113. package/dist/cli/chunk-t33z2kdv.js +3 -0
  114. package/dist/cli/{chunk-fvmee0tr.js → chunk-t71nxngb.js} +1 -1
  115. package/dist/cli/{chunk-ng12dprz.js → chunk-tntdcyra.js} +1 -1
  116. package/dist/cli/{chunk-4nt1gnwq.js → chunk-v312167r.js} +1 -1
  117. package/dist/cli/{chunk-j4cqwqnc.js → chunk-v6d6kvmk.js} +1 -1
  118. package/dist/cli/chunk-vd8qqev9.js +4 -0
  119. package/dist/cli/{chunk-vej49hnt.js → chunk-vgknea9y.js} +2 -2
  120. package/dist/cli/chunk-vwg79maj.js +20 -0
  121. package/dist/cli/{chunk-99n8qsw9.js → chunk-w4cpkhzj.js} +1 -1
  122. package/dist/cli/{chunk-3dey6b3r.js → chunk-w7yg0bbz.js} +1 -1
  123. package/dist/cli/{chunk-85q2tgmg.js → chunk-ws6yep7z.js} +1 -1
  124. package/dist/cli/{chunk-9jsm6h5y.js → chunk-x0rvg54z.js} +1 -1
  125. package/dist/cli/{chunk-enq6vwz5.js → chunk-x7cv6deh.js} +1 -1
  126. package/dist/cli/{chunk-qb1agm2c.js → chunk-y1cb8pj5.js} +1 -1
  127. package/dist/cli/{chunk-cbjh43yc.js → chunk-y5dk90tw.js} +1 -1
  128. package/dist/cli/{chunk-zfvg4w3t.js → chunk-yjyjg7sk.js} +1 -1
  129. package/dist/cli/{chunk-0gz3an4p.js → chunk-yknavm97.js} +1 -1
  130. package/dist/cli/{chunk-hhvvcwjq.js → chunk-zcadc92x.js} +1 -1
  131. package/dist/cli/{chunk-3hcsvyeq.js → chunk-zcwgmz5p.js} +1 -1
  132. package/dist/cli/chunk-zk5qkkb1.js +3 -0
  133. package/dist/cli/index.js +9 -9
  134. package/dist/cli/pty-host-node.mjs +10 -2
  135. package/dist/cli/rove-run.js +1 -1
  136. package/dist/cli/rove.js +1 -1
  137. package/dist/web/assets/{index-BYv91-Cs.css → index-BZjPWX0N.css} +1 -1
  138. package/dist/web/assets/index-DHlgMx7L.js +109 -0
  139. package/dist/web/index.html +2 -2
  140. package/package.json +4 -4
  141. package/dist/cli/chunk-191gy3f0.js +0 -2
  142. package/dist/cli/chunk-2kshjtcs.js +0 -2
  143. package/dist/cli/chunk-5fft208x.js +0 -2
  144. package/dist/cli/chunk-66r43sfd.js +0 -3
  145. package/dist/cli/chunk-6axpatfy.js +0 -2
  146. package/dist/cli/chunk-79hrybcd.js +0 -2
  147. package/dist/cli/chunk-7q43tysm.js +0 -3
  148. package/dist/cli/chunk-86tw1190.js +0 -4
  149. package/dist/cli/chunk-8kx2k2s8.js +0 -52
  150. package/dist/cli/chunk-8m5crcy5.js +0 -82
  151. package/dist/cli/chunk-8pna13mr.js +0 -2
  152. package/dist/cli/chunk-9853bbb9.js +0 -18
  153. package/dist/cli/chunk-asy33vdy.js +0 -2
  154. package/dist/cli/chunk-cmss5e88.js +0 -3
  155. package/dist/cli/chunk-e8d5951a.js +0 -2
  156. package/dist/cli/chunk-fe7kwz48.js +0 -3
  157. package/dist/cli/chunk-g4k86vkr.js +0 -2
  158. package/dist/cli/chunk-gcdm2jke.js +0 -2
  159. package/dist/cli/chunk-gpb49qs3.js +0 -3
  160. package/dist/cli/chunk-hzfq0sst.js +0 -2
  161. package/dist/cli/chunk-kecy2zcc.js +0 -9
  162. package/dist/cli/chunk-knfnbv60.js +0 -17
  163. package/dist/cli/chunk-m3sq1vgk.js +0 -40
  164. package/dist/cli/chunk-pkk9j80z.js +0 -7
  165. package/dist/cli/chunk-vt6ghz8y.js +0 -2
  166. package/dist/cli/chunk-vt7bc8d6.js +0 -87
  167. package/dist/cli/chunk-w594v1n8.js +0 -2
  168. package/dist/cli/chunk-x8fd9y51.js +0 -3
  169. package/dist/cli/chunk-zh30b87y.js +0 -9
  170. package/dist/cli/chunk-zwq8cb8p.js +0 -2
  171. package/dist/web/assets/index-DaovU92T.js +0 -109
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{describeRepoInitSources,missingDependenciesCoda,resolveEngineLaunchInit,resolveRepoInit}from"./chunk-gcxcq22q.js";import"./chunk-hpay0ax8.js";import"./chunk-catrr0z3.js";import"./chunk-h9cg0j3a.js";import"./chunk-40dgv828.js";import"./chunk-3342qzve.js";import"./chunk-7q43tysm.js";import"./chunk-mw0ysrpd.js";import"./chunk-a7kq09ke.js";import"./chunk-prqeddy7.js";import"./chunk-zt7wfnva.js";import"./chunk-yt15y085.js";import"./chunk-pn5ygqn6.js";import"./chunk-npwzmmv9.js";import"./chunk-b39sdtt0.js";import"./chunk-nc46gddg.js";import"./chunk-wqfp8d9w.js";export{resolveRepoInit,resolveEngineLaunchInit,missingDependenciesCoda,describeRepoInitSources};
2
+ import{describeRepoInitSources,missingDependenciesCoda,resolveEngineLaunchInit,resolveRepoInit}from"./chunk-r0etyq15.js";import"./chunk-hpay0ax8.js";import"./chunk-catrr0z3.js";import"./chunk-21ek142k.js";import"./chunk-40dgv828.js";import"./chunk-3342qzve.js";import"./chunk-zk5qkkb1.js";import"./chunk-mw0ysrpd.js";import"./chunk-a7kq09ke.js";import"./chunk-prqeddy7.js";import"./chunk-zt7wfnva.js";import"./chunk-yt15y085.js";import"./chunk-pn5ygqn6.js";import"./chunk-npwzmmv9.js";import"./chunk-b39sdtt0.js";import"./chunk-nc46gddg.js";import"./chunk-91sykzqq.js";export{resolveRepoInit,resolveEngineLaunchInit,missingDependenciesCoda,describeRepoInitSources};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{ensureForwards}from"./chunk-9jsm6h5y.js";import{dedupeMachines,listMachines,localDaemonSocketPath}from"./chunk-9aydqazr.js";import{ApiError}from"./chunk-f7zjggfv.js";import"./chunk-7q43tysm.js";import"./chunk-mw0ysrpd.js";import"./chunk-a7kq09ke.js";import"./chunk-prqeddy7.js";import"./chunk-zt7wfnva.js";import"./chunk-yt15y085.js";import{RoveDaemonClient}from"./chunk-fz17c524.js";import"./chunk-x8fd9y51.js";import"./chunk-hq9tbzqa.js";import"./chunk-pn5ygqn6.js";import"./chunk-npwzmmv9.js";import"./chunk-b39sdtt0.js";import"./chunk-nc46gddg.js";import"./chunk-wqfp8d9w.js";function remoteTaskUnsupported(taskId,machineId){return new ApiError(`task ${taskId} lives on machine "${machineId}". Rove can list it, but acting on a remote task is not supported yet.`,"NOT_YET_SUPPORTED_REMOTE",{taskId,machineId,hint:`run the command on ${machineId} itself; remote writes arrive in a later release`,nextCommandArgs:["machine","list"]})}async function machineTasks(entry){let socketPath=localDaemonSocketPath(entry.alias),direct=await tasksOf(socketPath);if(direct)return direct;if(!entry.sockets)return null;return await ensureForwards({alias:entry.alias,config:entry,remoteDaemonSocket:entry.sockets.daemon,remotePtySocket:entry.sockets.pty})?await tasksOf(socketPath):null}async function tasksOf(socketPath){let client=new RoveDaemonClient(socketPath);try{return await client.request("hello",{}),(await client.request("task.list")).tasks??[]}catch{return null}finally{client.close()}}async function mergeTaskList(local){let machines=dedupeMachines(listMachines());if(machines.length===0)return local;let tasks=(local.tasks??[]).map((task)=>({...task,origin:{machineId:"local",hostLabel:"local"}}));for(let entry of machines){let remote=await machineTasks(entry);if(!remote)continue;let hostLabel=entry.alias;for(let task of remote)tasks.push({...task,origin:{machineId:entry.alias,hostLabel}})}return{tasks}}async function assertLocalTask(taskId){if(!taskId)return;let machines=dedupeMachines(listMachines());if(machines.length===0)return;for(let entry of machines){let remote=await machineTasks(entry);if(!remote)continue;if(remote.some((task)=>task.id===taskId))throw remoteTaskUnsupported(taskId,entry.alias)}}export{mergeTaskList,assertLocalTask};
2
+ import{ensureForwards}from"./chunk-x0rvg54z.js";import{dedupeMachines,listMachines,localDaemonSocketPath}from"./chunk-q854fweb.js";import{ApiError}from"./chunk-568q390y.js";import"./chunk-zk5qkkb1.js";import"./chunk-mw0ysrpd.js";import"./chunk-a7kq09ke.js";import"./chunk-prqeddy7.js";import"./chunk-zt7wfnva.js";import"./chunk-yt15y085.js";import{RoveDaemonClient}from"./chunk-s5a5dyab.js";import"./chunk-md094j05.js";import"./chunk-hq9tbzqa.js";import"./chunk-pn5ygqn6.js";import"./chunk-npwzmmv9.js";import"./chunk-b39sdtt0.js";import"./chunk-nc46gddg.js";import"./chunk-91sykzqq.js";function remoteTaskUnsupported(taskId,machineId){return new ApiError(`task ${taskId} lives on machine "${machineId}". Rove can list it, but acting on a remote task is not supported yet.`,"NOT_YET_SUPPORTED_REMOTE",{taskId,machineId,hint:`run the command on ${machineId} itself; remote writes arrive in a later release`,nextCommandArgs:["machine","list"]})}async function machineTasks(entry){let socketPath=localDaemonSocketPath(entry.alias),direct=await tasksOf(socketPath);if(direct)return direct;if(!entry.sockets)return null;return await ensureForwards({alias:entry.alias,config:entry,remoteDaemonSocket:entry.sockets.daemon,remotePtySocket:entry.sockets.pty})?await tasksOf(socketPath):null}async function tasksOf(socketPath){let client=new RoveDaemonClient(socketPath);try{return await client.request("hello",{}),(await client.request("task.list")).tasks??[]}catch{return null}finally{client.close()}}async function mergeTaskList(local){let machines=dedupeMachines(listMachines());if(machines.length===0)return local;let tasks=(local.tasks??[]).map((task)=>({...task,origin:{machineId:"local",hostLabel:"local"}}));for(let entry of machines){let remote=await machineTasks(entry);if(!remote)continue;let hostLabel=entry.alias;for(let task of remote)tasks.push({...task,origin:{machineId:entry.alias,hostLabel}})}return{tasks}}async function assertLocalTask(taskId){if(!taskId)return;let machines=dedupeMachines(listMachines());if(machines.length===0)return;for(let entry of machines){let remote=await machineTasks(entry);if(!remote)continue;if(remote.some((task)=>task.id===taskId))throw remoteTaskUnsupported(taskId,entry.alias)}}export{mergeTaskList,assertLocalTask};
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{interactiveEngineCommand,listPresetIds}from"./chunk-93r6tgf1.js";import{engineEntry}from"./chunk-7xttx9m1.js";import{installedEngineIds}from"./chunk-99n8qsw9.js";import{spawnSync}from"child_process";import{statSync}from"fs";import path from"path";function whichOnPath(bin){let bunWhich=globalThis.Bun?.which;if(bunWhich)return bunWhich(bin);let out=spawnSync(process.platform==="win32"?"where":"which",[bin],{encoding:"utf8"});if(out.status!==0)return null;return out.stdout.split(`
2
+ import{interactiveEngineCommand,listPresetIds}from"./chunk-mre9g9vq.js";import{engineEntry}from"./chunk-2pen6b1t.js";import{installedEngineIds}from"./chunk-w4cpkhzj.js";import{spawnSync}from"child_process";import{statSync}from"fs";import path from"path";function whichOnPath(bin){let bunWhich=globalThis.Bun?.which;if(bunWhich)return bunWhich(bin);let out=spawnSync(process.platform==="win32"?"where":"which",[bin],{encoding:"utf8"});if(out.status!==0)return null;return out.stdout.split(`
3
3
  `).map((l)=>l.trim()).find(Boolean)??null}var defaultDeps={which:whichOnPath,command:(vendor)=>interactiveEngineCommand(vendor)};function probeLaunchBinary(argv,which){let bin=argv[0]?.trim();if(!bin)return{found:!1,error:"no launch command"};if(bin.includes(path.sep)||bin.startsWith(".")){try{if(statSync(bin).isFile())return{found:!0,path:bin}}catch{}return{found:!1,error:`not found at ${bin}`}}let found=which(bin);return found?{found:!0,path:found}:{found:!1,error:"not found on PATH"}}async function detectEngineStatus(vendor,over={}){let deps={...defaultDeps,...over},detector=engineEntry(vendor).detectAccount;if(!detector)return{vendor,binary:probeLaunchBinary(deps.command(vendor),deps.which),account:null};let status=await detector(deps.accountDeps),binary=status.binary.found?status.binary:probeLaunchBinary(deps.command(vendor),deps.which);return{vendor,binary,account:status.account,accountError:status.accountError}}function detectEngineStatuses(vendors,over={}){return Promise.all(vendors.map((v)=>detectEngineStatus(v,over)))}function describeAccount(account){if(account===null)return"login not detectable";switch(account.kind){case"oauth":return"email"in account?`logged in (${account.email}${account.organization?`, ${account.organization}`:""})`:"logged in";case"chatgpt":return`logged in (${account.email}${account.plan?`, ${account.plan}`:""})`;case"apikey":return"API key";case"token":return`token (${account.source})`;default:return"no account"}}function engineUsable(status){return status.binary.found&&status.account?.kind!=="none"}async function probeableEngineIds(){return[...new Set([...listPresetIds(),...await installedEngineIds()])]}function summarizeEngines(statuses){let usable=[],signedOut=[];for(let status of statuses)if(engineUsable(status))usable.push(status.vendor);else if(status.binary.found)signedOut.push(status.vendor);return{usable,signedOut}}
4
4
  export{detectEngineStatus,detectEngineStatuses,describeAccount,probeableEngineIds,summarizeEngines};