@aiden-ade/sandbox-agent 0.1.60 → 0.1.62

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 (342) hide show
  1. package/dist/index.cjs +465 -342
  2. package/package.json +1 -1
  3. package/dist/__tests__/binding-switch-git.test.d.ts +0 -2
  4. package/dist/__tests__/binding-switch-git.test.d.ts.map +0 -1
  5. package/dist/__tests__/binding-switch-git.test.js +0 -610
  6. package/dist/__tests__/binding-switch-git.test.js.map +0 -1
  7. package/dist/__tests__/cli-ensure-install.test.d.ts +0 -2
  8. package/dist/__tests__/cli-ensure-install.test.d.ts.map +0 -1
  9. package/dist/__tests__/cli-ensure-install.test.js +0 -109
  10. package/dist/__tests__/cli-ensure-install.test.js.map +0 -1
  11. package/dist/__tests__/cli-executable.test.d.ts +0 -2
  12. package/dist/__tests__/cli-executable.test.d.ts.map +0 -1
  13. package/dist/__tests__/cli-executable.test.js +0 -129
  14. package/dist/__tests__/cli-executable.test.js.map +0 -1
  15. package/dist/__tests__/cli-help.test.d.ts +0 -2
  16. package/dist/__tests__/cli-help.test.d.ts.map +0 -1
  17. package/dist/__tests__/cli-help.test.js +0 -34
  18. package/dist/__tests__/cli-help.test.js.map +0 -1
  19. package/dist/__tests__/computer-readiness.test.d.ts +0 -2
  20. package/dist/__tests__/computer-readiness.test.d.ts.map +0 -1
  21. package/dist/__tests__/computer-readiness.test.js +0 -63
  22. package/dist/__tests__/computer-readiness.test.js.map +0 -1
  23. package/dist/__tests__/core-agent-workflow-context.test.d.ts +0 -2
  24. package/dist/__tests__/core-agent-workflow-context.test.d.ts.map +0 -1
  25. package/dist/__tests__/core-agent-workflow-context.test.js +0 -139
  26. package/dist/__tests__/core-agent-workflow-context.test.js.map +0 -1
  27. package/dist/__tests__/daemon-reconcile-ask.test.d.ts +0 -2
  28. package/dist/__tests__/daemon-reconcile-ask.test.d.ts.map +0 -1
  29. package/dist/__tests__/daemon-reconcile-ask.test.js +0 -86
  30. package/dist/__tests__/daemon-reconcile-ask.test.js.map +0 -1
  31. package/dist/__tests__/daemon-socket.integration.test.d.ts +0 -2
  32. package/dist/__tests__/daemon-socket.integration.test.d.ts.map +0 -1
  33. package/dist/__tests__/daemon-socket.integration.test.js +0 -450
  34. package/dist/__tests__/daemon-socket.integration.test.js.map +0 -1
  35. package/dist/__tests__/daemon.test.d.ts +0 -2
  36. package/dist/__tests__/daemon.test.d.ts.map +0 -1
  37. package/dist/__tests__/daemon.test.js +0 -3975
  38. package/dist/__tests__/daemon.test.js.map +0 -1
  39. package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts +0 -2
  40. package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts.map +0 -1
  41. package/dist/__tests__/ensure-shared-checkout-branch.test.js +0 -129
  42. package/dist/__tests__/ensure-shared-checkout-branch.test.js.map +0 -1
  43. package/dist/__tests__/event-outbox-persist-failure.test.d.ts +0 -2
  44. package/dist/__tests__/event-outbox-persist-failure.test.d.ts.map +0 -1
  45. package/dist/__tests__/event-outbox-persist-failure.test.js +0 -84
  46. package/dist/__tests__/event-outbox-persist-failure.test.js.map +0 -1
  47. package/dist/__tests__/event-outbox.test.d.ts +0 -2
  48. package/dist/__tests__/event-outbox.test.d.ts.map +0 -1
  49. package/dist/__tests__/event-outbox.test.js +0 -256
  50. package/dist/__tests__/event-outbox.test.js.map +0 -1
  51. package/dist/__tests__/fake-provider-cli.test.d.ts +0 -2
  52. package/dist/__tests__/fake-provider-cli.test.d.ts.map +0 -1
  53. package/dist/__tests__/fake-provider-cli.test.js +0 -46
  54. package/dist/__tests__/fake-provider-cli.test.js.map +0 -1
  55. package/dist/__tests__/generated-images.test.d.ts +0 -2
  56. package/dist/__tests__/generated-images.test.d.ts.map +0 -1
  57. package/dist/__tests__/generated-images.test.js +0 -132
  58. package/dist/__tests__/generated-images.test.js.map +0 -1
  59. package/dist/__tests__/lifecycle-logger.test.d.ts +0 -2
  60. package/dist/__tests__/lifecycle-logger.test.d.ts.map +0 -1
  61. package/dist/__tests__/lifecycle-logger.test.js +0 -49
  62. package/dist/__tests__/lifecycle-logger.test.js.map +0 -1
  63. package/dist/__tests__/local-skill-scan.test.d.ts +0 -2
  64. package/dist/__tests__/local-skill-scan.test.d.ts.map +0 -1
  65. package/dist/__tests__/local-skill-scan.test.js +0 -91
  66. package/dist/__tests__/local-skill-scan.test.js.map +0 -1
  67. package/dist/__tests__/local-workspace-migration.test.d.ts +0 -2
  68. package/dist/__tests__/local-workspace-migration.test.d.ts.map +0 -1
  69. package/dist/__tests__/local-workspace-migration.test.js +0 -195
  70. package/dist/__tests__/local-workspace-migration.test.js.map +0 -1
  71. package/dist/__tests__/mcp-inspect-timeout.test.d.ts +0 -2
  72. package/dist/__tests__/mcp-inspect-timeout.test.d.ts.map +0 -1
  73. package/dist/__tests__/mcp-inspect-timeout.test.js +0 -97
  74. package/dist/__tests__/mcp-inspect-timeout.test.js.map +0 -1
  75. package/dist/__tests__/mcp-readiness.test.d.ts +0 -2
  76. package/dist/__tests__/mcp-readiness.test.d.ts.map +0 -1
  77. package/dist/__tests__/mcp-readiness.test.js +0 -267
  78. package/dist/__tests__/mcp-readiness.test.js.map +0 -1
  79. package/dist/__tests__/mcp-registration-cli.test.d.ts +0 -2
  80. package/dist/__tests__/mcp-registration-cli.test.d.ts.map +0 -1
  81. package/dist/__tests__/mcp-registration-cli.test.js +0 -71
  82. package/dist/__tests__/mcp-registration-cli.test.js.map +0 -1
  83. package/dist/__tests__/mcp-registration.test.d.ts +0 -2
  84. package/dist/__tests__/mcp-registration.test.d.ts.map +0 -1
  85. package/dist/__tests__/mcp-registration.test.js +0 -426
  86. package/dist/__tests__/mcp-registration.test.js.map +0 -1
  87. package/dist/__tests__/model-scan-runner.test.d.ts +0 -2
  88. package/dist/__tests__/model-scan-runner.test.d.ts.map +0 -1
  89. package/dist/__tests__/model-scan-runner.test.js +0 -67
  90. package/dist/__tests__/model-scan-runner.test.js.map +0 -1
  91. package/dist/__tests__/network-diagnostics.test.d.ts +0 -2
  92. package/dist/__tests__/network-diagnostics.test.d.ts.map +0 -1
  93. package/dist/__tests__/network-diagnostics.test.js +0 -26
  94. package/dist/__tests__/network-diagnostics.test.js.map +0 -1
  95. package/dist/__tests__/observable-map.test.d.ts +0 -2
  96. package/dist/__tests__/observable-map.test.d.ts.map +0 -1
  97. package/dist/__tests__/observable-map.test.js +0 -54
  98. package/dist/__tests__/observable-map.test.js.map +0 -1
  99. package/dist/__tests__/provider-auth-preflight.test.d.ts +0 -2
  100. package/dist/__tests__/provider-auth-preflight.test.d.ts.map +0 -1
  101. package/dist/__tests__/provider-auth-preflight.test.js +0 -123
  102. package/dist/__tests__/provider-auth-preflight.test.js.map +0 -1
  103. package/dist/__tests__/provider-model-discovery.test.d.ts +0 -2
  104. package/dist/__tests__/provider-model-discovery.test.d.ts.map +0 -1
  105. package/dist/__tests__/provider-model-discovery.test.js +0 -472
  106. package/dist/__tests__/provider-model-discovery.test.js.map +0 -1
  107. package/dist/__tests__/remove-worktrees-if-clean.test.d.ts +0 -2
  108. package/dist/__tests__/remove-worktrees-if-clean.test.d.ts.map +0 -1
  109. package/dist/__tests__/remove-worktrees-if-clean.test.js +0 -221
  110. package/dist/__tests__/remove-worktrees-if-clean.test.js.map +0 -1
  111. package/dist/__tests__/resume-fallback-env.test.d.ts +0 -2
  112. package/dist/__tests__/resume-fallback-env.test.d.ts.map +0 -1
  113. package/dist/__tests__/resume-fallback-env.test.js +0 -28
  114. package/dist/__tests__/resume-fallback-env.test.js.map +0 -1
  115. package/dist/__tests__/run-journal.test.d.ts +0 -2
  116. package/dist/__tests__/run-journal.test.d.ts.map +0 -1
  117. package/dist/__tests__/run-journal.test.js +0 -121
  118. package/dist/__tests__/run-journal.test.js.map +0 -1
  119. package/dist/__tests__/run-start-gate.test.d.ts +0 -2
  120. package/dist/__tests__/run-start-gate.test.d.ts.map +0 -1
  121. package/dist/__tests__/run-start-gate.test.js +0 -29
  122. package/dist/__tests__/run-start-gate.test.js.map +0 -1
  123. package/dist/__tests__/runtime-capabilities-sync.test.d.ts +0 -2
  124. package/dist/__tests__/runtime-capabilities-sync.test.d.ts.map +0 -1
  125. package/dist/__tests__/runtime-capabilities-sync.test.js +0 -66
  126. package/dist/__tests__/runtime-capabilities-sync.test.js.map +0 -1
  127. package/dist/__tests__/runtime-config.test.d.ts +0 -2
  128. package/dist/__tests__/runtime-config.test.d.ts.map +0 -1
  129. package/dist/__tests__/runtime-config.test.js +0 -102
  130. package/dist/__tests__/runtime-config.test.js.map +0 -1
  131. package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts +0 -2
  132. package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts.map +0 -1
  133. package/dist/__tests__/runtime-presenter-heartbeat.test.js +0 -159
  134. package/dist/__tests__/runtime-presenter-heartbeat.test.js.map +0 -1
  135. package/dist/__tests__/sandbox-outbox.test.d.ts +0 -2
  136. package/dist/__tests__/sandbox-outbox.test.d.ts.map +0 -1
  137. package/dist/__tests__/sandbox-outbox.test.js +0 -214
  138. package/dist/__tests__/sandbox-outbox.test.js.map +0 -1
  139. package/dist/__tests__/sandbox-workflow-context.test.d.ts +0 -2
  140. package/dist/__tests__/sandbox-workflow-context.test.d.ts.map +0 -1
  141. package/dist/__tests__/sandbox-workflow-context.test.js +0 -396
  142. package/dist/__tests__/sandbox-workflow-context.test.js.map +0 -1
  143. package/dist/__tests__/service-manager.test.d.ts +0 -2
  144. package/dist/__tests__/service-manager.test.d.ts.map +0 -1
  145. package/dist/__tests__/service-manager.test.js +0 -50
  146. package/dist/__tests__/service-manager.test.js.map +0 -1
  147. package/dist/__tests__/sleep-inhibitor.test.d.ts +0 -2
  148. package/dist/__tests__/sleep-inhibitor.test.d.ts.map +0 -1
  149. package/dist/__tests__/sleep-inhibitor.test.js +0 -236
  150. package/dist/__tests__/sleep-inhibitor.test.js.map +0 -1
  151. package/dist/__tests__/status-local-workspace.test.d.ts +0 -2
  152. package/dist/__tests__/status-local-workspace.test.d.ts.map +0 -1
  153. package/dist/__tests__/status-local-workspace.test.js +0 -121
  154. package/dist/__tests__/status-local-workspace.test.js.map +0 -1
  155. package/dist/__tests__/suspension-detector.test.d.ts +0 -2
  156. package/dist/__tests__/suspension-detector.test.d.ts.map +0 -1
  157. package/dist/__tests__/suspension-detector.test.js +0 -112
  158. package/dist/__tests__/suspension-detector.test.js.map +0 -1
  159. package/dist/__tests__/web-presenter-parent-events.test.d.ts +0 -2
  160. package/dist/__tests__/web-presenter-parent-events.test.d.ts.map +0 -1
  161. package/dist/__tests__/web-presenter-parent-events.test.js +0 -130
  162. package/dist/__tests__/web-presenter-parent-events.test.js.map +0 -1
  163. package/dist/__tests__/workspace-relocation.test.d.ts +0 -2
  164. package/dist/__tests__/workspace-relocation.test.d.ts.map +0 -1
  165. package/dist/__tests__/workspace-relocation.test.js +0 -66
  166. package/dist/__tests__/workspace-relocation.test.js.map +0 -1
  167. package/dist/__tests__/workspace-run-lease.test.d.ts +0 -2
  168. package/dist/__tests__/workspace-run-lease.test.d.ts.map +0 -1
  169. package/dist/__tests__/workspace-run-lease.test.js +0 -230
  170. package/dist/__tests__/workspace-run-lease.test.js.map +0 -1
  171. package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts +0 -2
  172. package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts.map +0 -1
  173. package/dist/__tests__/ws-client-heartbeat-volatile.test.js +0 -61
  174. package/dist/__tests__/ws-client-heartbeat-volatile.test.js.map +0 -1
  175. package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts +0 -2
  176. package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts.map +0 -1
  177. package/dist/__tests__/ws-client-heartbeat.integration.test.js +0 -109
  178. package/dist/__tests__/ws-client-heartbeat.integration.test.js.map +0 -1
  179. package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts +0 -2
  180. package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts.map +0 -1
  181. package/dist/__tests__/ws-client-user-message-ack.integration.test.js +0 -167
  182. package/dist/__tests__/ws-client-user-message-ack.integration.test.js.map +0 -1
  183. package/dist/aiden-system-prompt.d.ts +0 -6
  184. package/dist/aiden-system-prompt.d.ts.map +0 -1
  185. package/dist/aiden-system-prompt.js +0 -6
  186. package/dist/aiden-system-prompt.js.map +0 -1
  187. package/dist/binding-switch-git.d.ts +0 -26
  188. package/dist/binding-switch-git.d.ts.map +0 -1
  189. package/dist/binding-switch-git.js +0 -973
  190. package/dist/binding-switch-git.js.map +0 -1
  191. package/dist/cli-ensure-install.d.ts +0 -39
  192. package/dist/cli-ensure-install.d.ts.map +0 -1
  193. package/dist/cli-ensure-install.js +0 -133
  194. package/dist/cli-ensure-install.js.map +0 -1
  195. package/dist/cli-executable.d.ts +0 -97
  196. package/dist/cli-executable.d.ts.map +0 -1
  197. package/dist/cli-executable.js +0 -432
  198. package/dist/cli-executable.js.map +0 -1
  199. package/dist/cli-help.d.ts +0 -7
  200. package/dist/cli-help.d.ts.map +0 -1
  201. package/dist/cli-help.js +0 -49
  202. package/dist/cli-help.js.map +0 -1
  203. package/dist/computer-readiness.d.ts +0 -42
  204. package/dist/computer-readiness.d.ts.map +0 -1
  205. package/dist/computer-readiness.js +0 -191
  206. package/dist/computer-readiness.js.map +0 -1
  207. package/dist/core-agent.d.ts +0 -47
  208. package/dist/core-agent.d.ts.map +0 -1
  209. package/dist/core-agent.js +0 -364
  210. package/dist/core-agent.js.map +0 -1
  211. package/dist/daemon.d.ts +0 -392
  212. package/dist/daemon.d.ts.map +0 -1
  213. package/dist/daemon.js +0 -4711
  214. package/dist/daemon.js.map +0 -1
  215. package/dist/event-outbox.d.ts +0 -83
  216. package/dist/event-outbox.d.ts.map +0 -1
  217. package/dist/event-outbox.js +0 -440
  218. package/dist/event-outbox.js.map +0 -1
  219. package/dist/fake-provider-cli.d.ts +0 -13
  220. package/dist/fake-provider-cli.d.ts.map +0 -1
  221. package/dist/fake-provider-cli.js +0 -53
  222. package/dist/fake-provider-cli.js.map +0 -1
  223. package/dist/generated-images.d.ts +0 -2
  224. package/dist/generated-images.d.ts.map +0 -1
  225. package/dist/generated-images.js +0 -2
  226. package/dist/generated-images.js.map +0 -1
  227. package/dist/index.d.ts +0 -6
  228. package/dist/index.d.ts.map +0 -1
  229. package/dist/index.js +0 -209
  230. package/dist/index.js.map +0 -1
  231. package/dist/lifecycle-logger.d.ts +0 -25
  232. package/dist/lifecycle-logger.d.ts.map +0 -1
  233. package/dist/lifecycle-logger.js +0 -73
  234. package/dist/lifecycle-logger.js.map +0 -1
  235. package/dist/local-skill-scan.d.ts +0 -21
  236. package/dist/local-skill-scan.d.ts.map +0 -1
  237. package/dist/local-skill-scan.js +0 -109
  238. package/dist/local-skill-scan.js.map +0 -1
  239. package/dist/local-workspace-migration.d.ts +0 -68
  240. package/dist/local-workspace-migration.d.ts.map +0 -1
  241. package/dist/local-workspace-migration.js +0 -157
  242. package/dist/local-workspace-migration.js.map +0 -1
  243. package/dist/mcp-readiness.d.ts +0 -59
  244. package/dist/mcp-readiness.d.ts.map +0 -1
  245. package/dist/mcp-readiness.js +0 -202
  246. package/dist/mcp-readiness.js.map +0 -1
  247. package/dist/mcp-registration.d.ts +0 -75
  248. package/dist/mcp-registration.d.ts.map +0 -1
  249. package/dist/mcp-registration.js +0 -563
  250. package/dist/mcp-registration.js.map +0 -1
  251. package/dist/model-scan-runner.d.ts +0 -15
  252. package/dist/model-scan-runner.d.ts.map +0 -1
  253. package/dist/model-scan-runner.js +0 -51
  254. package/dist/model-scan-runner.js.map +0 -1
  255. package/dist/network-diagnostics.d.ts +0 -8
  256. package/dist/network-diagnostics.d.ts.map +0 -1
  257. package/dist/network-diagnostics.js +0 -56
  258. package/dist/network-diagnostics.js.map +0 -1
  259. package/dist/observable-map.d.ts +0 -25
  260. package/dist/observable-map.d.ts.map +0 -1
  261. package/dist/observable-map.js +0 -42
  262. package/dist/observable-map.js.map +0 -1
  263. package/dist/provider-auth-preflight.d.ts +0 -22
  264. package/dist/provider-auth-preflight.d.ts.map +0 -1
  265. package/dist/provider-auth-preflight.js +0 -110
  266. package/dist/provider-auth-preflight.js.map +0 -1
  267. package/dist/provider-model-discovery.d.ts +0 -38
  268. package/dist/provider-model-discovery.d.ts.map +0 -1
  269. package/dist/provider-model-discovery.js +0 -519
  270. package/dist/provider-model-discovery.js.map +0 -1
  271. package/dist/resume-fallback-env.d.ts +0 -20
  272. package/dist/resume-fallback-env.d.ts.map +0 -1
  273. package/dist/resume-fallback-env.js +0 -30
  274. package/dist/resume-fallback-env.js.map +0 -1
  275. package/dist/run-journal.d.ts +0 -53
  276. package/dist/run-journal.d.ts.map +0 -1
  277. package/dist/run-journal.js +0 -193
  278. package/dist/run-journal.js.map +0 -1
  279. package/dist/run-start-gate.d.ts +0 -9
  280. package/dist/run-start-gate.d.ts.map +0 -1
  281. package/dist/run-start-gate.js +0 -24
  282. package/dist/run-start-gate.js.map +0 -1
  283. package/dist/runtime-backends.d.ts +0 -2
  284. package/dist/runtime-backends.d.ts.map +0 -1
  285. package/dist/runtime-backends.js +0 -2
  286. package/dist/runtime-backends.js.map +0 -1
  287. package/dist/runtime-capabilities-sync.d.ts +0 -33
  288. package/dist/runtime-capabilities-sync.d.ts.map +0 -1
  289. package/dist/runtime-capabilities-sync.js +0 -56
  290. package/dist/runtime-capabilities-sync.js.map +0 -1
  291. package/dist/runtime-config.d.ts +0 -24
  292. package/dist/runtime-config.d.ts.map +0 -1
  293. package/dist/runtime-config.js +0 -124
  294. package/dist/runtime-config.js.map +0 -1
  295. package/dist/sandbox-outbox.d.ts +0 -122
  296. package/dist/sandbox-outbox.d.ts.map +0 -1
  297. package/dist/sandbox-outbox.js +0 -180
  298. package/dist/sandbox-outbox.js.map +0 -1
  299. package/dist/sandbox.d.ts +0 -44
  300. package/dist/sandbox.d.ts.map +0 -1
  301. package/dist/sandbox.js +0 -438
  302. package/dist/sandbox.js.map +0 -1
  303. package/dist/service-manager.d.ts +0 -28
  304. package/dist/service-manager.d.ts.map +0 -1
  305. package/dist/service-manager.js +0 -259
  306. package/dist/service-manager.js.map +0 -1
  307. package/dist/sleep-inhibitor.d.ts +0 -111
  308. package/dist/sleep-inhibitor.d.ts.map +0 -1
  309. package/dist/sleep-inhibitor.js +0 -412
  310. package/dist/sleep-inhibitor.js.map +0 -1
  311. package/dist/suspension-detector.d.ts +0 -48
  312. package/dist/suspension-detector.d.ts.map +0 -1
  313. package/dist/suspension-detector.js +0 -89
  314. package/dist/suspension-detector.js.map +0 -1
  315. package/dist/types.d.ts +0 -6
  316. package/dist/types.d.ts.map +0 -1
  317. package/dist/types.js +0 -6
  318. package/dist/types.js.map +0 -1
  319. package/dist/updater.d.ts +0 -15
  320. package/dist/updater.d.ts.map +0 -1
  321. package/dist/updater.js +0 -50
  322. package/dist/updater.js.map +0 -1
  323. package/dist/version.d.ts +0 -2
  324. package/dist/version.d.ts.map +0 -1
  325. package/dist/version.js +0 -2
  326. package/dist/version.js.map +0 -1
  327. package/dist/web-presenter.d.ts +0 -55
  328. package/dist/web-presenter.d.ts.map +0 -1
  329. package/dist/web-presenter.js +0 -265
  330. package/dist/web-presenter.js.map +0 -1
  331. package/dist/workspace-relocation.d.ts +0 -22
  332. package/dist/workspace-relocation.d.ts.map +0 -1
  333. package/dist/workspace-relocation.js +0 -90
  334. package/dist/workspace-relocation.js.map +0 -1
  335. package/dist/workspace-run-lease.d.ts +0 -97
  336. package/dist/workspace-run-lease.d.ts.map +0 -1
  337. package/dist/workspace-run-lease.js +0 -241
  338. package/dist/workspace-run-lease.js.map +0 -1
  339. package/dist/ws-client.d.ts +0 -194
  340. package/dist/ws-client.d.ts.map +0 -1
  341. package/dist/ws-client.js +0 -282
  342. package/dist/ws-client.js.map +0 -1
@@ -1,432 +0,0 @@
1
- import { execSync, spawn, spawnSync } from "node:child_process";
2
- import { accessSync, constants, existsSync } from "node:fs";
3
- import { homedir, platform } from "node:os";
4
- import { join } from "node:path";
5
- const PROVIDER_CLI_COMMANDS = {
6
- claude_cli: { provider: "claude_cli", command: "claude", envVars: ["ALAN_CLAUDE_PATH"] },
7
- codex_app_server: {
8
- provider: "codex_app_server",
9
- command: "codex",
10
- envVars: ["ALAN_CODEX_PATH"],
11
- },
12
- copilot_cli: { provider: "copilot_cli", command: "copilot", envVars: ["ALAN_COPILOT_PATH"] },
13
- cursor_agent_cli: {
14
- provider: "cursor_agent_cli",
15
- command: "cursor-agent",
16
- envVars: ["ALAN_CURSOR_AGENT_PATH"],
17
- },
18
- antigravity_cli: {
19
- provider: "antigravity_cli",
20
- command: "agy",
21
- envVars: ["ALAN_ANTIGRAVITY_PATH"],
22
- },
23
- kimi_cli: { provider: "kimi_cli", command: "kimi-cli", envVars: ["ALAN_KIMI_PATH"] },
24
- grok_cli: { provider: "grok_cli", command: "grok", envVars: ["ALAN_GROK_PATH"] },
25
- opencode_cli: { provider: "opencode_cli", command: "opencode", envVars: ["ALAN_OPENCODE_PATH"] },
26
- droid_cli: { provider: "droid_cli", command: "droid", envVars: ["ALAN_DROID_PATH"] },
27
- supatest_cli: { provider: "supatest_cli", command: "supatest", envVars: ["ALAN_SUPATEST_PATH"] },
28
- };
29
- export const DISCOVERABLE_PROVIDER_KINDS = Object.keys(PROVIDER_CLI_COMMANDS);
30
- const PROVIDER_ALIASES = {
31
- agy: "antigravity_cli",
32
- antigravity: "antigravity_cli",
33
- antigravity_cli: "antigravity_cli",
34
- codex: "codex_app_server",
35
- };
36
- const BACKEND_CLI_COMMANDS = {
37
- claude_cli: "claude",
38
- codex: "codex",
39
- codex_app_server: "codex",
40
- copilot_cli: "copilot",
41
- cursor_agent_cli: "cursor-agent",
42
- agy: "agy",
43
- antigravity: "agy",
44
- antigravity_cli: "agy",
45
- kimi_cli: "kimi-cli",
46
- grok_cli: "grok",
47
- opencode_cli: "opencode",
48
- opencode_serve: "opencode",
49
- droid_cli: "droid",
50
- supatest_cli: "supatest",
51
- };
52
- const CLI_COMMAND_ALIASES = {
53
- "kimi-cli": ["kimi"],
54
- grok: ["grok-build"],
55
- };
56
- const resolvedCliCache = new Map();
57
- /**
58
- * Negative resolutions expire quickly. Fresh sandboxes install provider CLIs
59
- * DEFERRED (~40-90s after the daemon starts), so an early probe (startup
60
- * provider/model discovery) that misses must not poison the cache for the
61
- * daemon's lifetime — a permanent null here made every later run fail with
62
- * "CLI command not found" even after the binary landed on disk.
63
- */
64
- const NEGATIVE_RESOLUTION_TTL_MS = 15_000;
65
- const negativeResolutionExpiry = new Map();
66
- let cachedLoginShellEnv = null;
67
- function parseEnvOutput(output) {
68
- const loginEnv = {};
69
- for (const line of output.split("\n")) {
70
- if (!line.trim())
71
- continue;
72
- const eqIdx = line.indexOf("=");
73
- if (eqIdx <= 0)
74
- continue;
75
- const key = line.slice(0, eqIdx);
76
- if (/\s/.test(key))
77
- continue;
78
- loginEnv[key] = line.slice(eqIdx + 1);
79
- }
80
- if (!loginEnv.HOME)
81
- loginEnv.HOME = process.env.HOME ?? homedir();
82
- if (!loginEnv.SHELL)
83
- loginEnv.SHELL = process.env.SHELL ?? "/bin/zsh";
84
- return loginEnv;
85
- }
86
- /**
87
- * Load the user's login-shell environment (nvm/fnm/volta paths, etc.).
88
- * Electron and other GUI parents often launch the daemon with a sparse PATH.
89
- */
90
- function loadLoginShellEnvironment() {
91
- if (cachedLoginShellEnv)
92
- return cachedLoginShellEnv;
93
- if (platform() === "win32") {
94
- cachedLoginShellEnv = process.env;
95
- return cachedLoginShellEnv;
96
- }
97
- try {
98
- const shell = (process.env.SHELL || "/bin/bash").replace(/'/g, "'\\''");
99
- const envOutput = execSync(`'${shell}' -ilc 'env'`, {
100
- encoding: "utf8",
101
- stdio: ["pipe", "pipe", "pipe"],
102
- timeout: 5000,
103
- });
104
- cachedLoginShellEnv = parseEnvOutput(envOutput);
105
- }
106
- catch {
107
- cachedLoginShellEnv = process.env;
108
- }
109
- return cachedLoginShellEnv;
110
- }
111
- export function clearLoginShellEnvironmentCache() {
112
- cachedLoginShellEnv = null;
113
- resolvedCliCache.clear();
114
- negativeResolutionExpiry.clear();
115
- }
116
- export function getDaemonCliEnvironment() {
117
- const base = platform() === "win32" ? process.env : loadLoginShellEnvironment();
118
- return augmentCliPath(base);
119
- }
120
- function cacheResolvedCli(command, resolvedPath) {
121
- resolvedCliCache.set(command, resolvedPath);
122
- if (resolvedPath === null) {
123
- negativeResolutionExpiry.set(command, Date.now() + NEGATIVE_RESOLUTION_TTL_MS);
124
- }
125
- else {
126
- negativeResolutionExpiry.delete(command);
127
- }
128
- }
129
- function getCachedResolvedCli(command) {
130
- const cached = resolvedCliCache.get(command);
131
- if (cached === null) {
132
- const expiresAt = negativeResolutionExpiry.get(command);
133
- if (expiresAt === undefined || Date.now() >= expiresAt) {
134
- // Expired (or legacy) negative entry — force a fresh on-disk lookup.
135
- resolvedCliCache.delete(command);
136
- negativeResolutionExpiry.delete(command);
137
- return undefined;
138
- }
139
- }
140
- return cached;
141
- }
142
- function resolveViaWhere(command, env) {
143
- if (platform() !== "win32")
144
- return null;
145
- const whereExe = join(env.SystemRoot ?? process.env.SystemRoot ?? "C:\\Windows", "System32", "where.exe");
146
- if (!existsSync(whereExe))
147
- return null;
148
- const result = spawnSync(whereExe, [command], {
149
- encoding: "utf8",
150
- env,
151
- windowsHide: true,
152
- timeout: 3000,
153
- });
154
- if (result.error || result.status !== 0)
155
- return null;
156
- for (const line of result.stdout.split(/\r?\n/)) {
157
- const trimmed = line.trim();
158
- if (!trimmed)
159
- continue;
160
- if (isRunnableFile(trimmed))
161
- return trimmed;
162
- }
163
- return null;
164
- }
165
- export function runCliVersionProbe(executable, env, args = ["--version"], timeoutMs = 3000) {
166
- const isWin = platform() === "win32";
167
- if (isWin && /\.(cmd|bat)$/i.test(executable)) {
168
- const comSpec = env.ComSpec ?? process.env.ComSpec ?? "cmd.exe";
169
- return spawnSync(comSpec, ["/d", "/s", "/c", executable, ...args], {
170
- encoding: "utf8",
171
- timeout: timeoutMs,
172
- env,
173
- windowsHide: true,
174
- });
175
- }
176
- const useShell = isWin && !/[\\/]/.test(executable);
177
- return spawnSync(executable, args, {
178
- encoding: "utf8",
179
- timeout: timeoutMs,
180
- env,
181
- shell: useShell,
182
- windowsHide: isWin ? true : undefined,
183
- });
184
- }
185
- export function runCliProbeAsync(executable, env, args = ["--version"], timeoutMs = 3000, spawnOptions) {
186
- return new Promise((resolve) => {
187
- const isWin = platform() === "win32";
188
- let command = executable;
189
- let commandArgs = args;
190
- if (isWin && /\.(cmd|bat)$/i.test(executable)) {
191
- command = env.ComSpec ?? process.env.ComSpec ?? "cmd.exe";
192
- commandArgs = ["/d", "/s", "/c", executable, ...args];
193
- }
194
- const useShell = isWin && command === executable && !/[\\/]/.test(executable);
195
- const closeStdin = spawnOptions?.closeStdin === true;
196
- let child;
197
- try {
198
- child = spawn(command, commandArgs, {
199
- env,
200
- shell: useShell,
201
- windowsHide: isWin ? true : undefined,
202
- timeout: timeoutMs,
203
- stdio: closeStdin ? ["pipe", "pipe", "pipe"] : undefined,
204
- });
205
- }
206
- catch (error) {
207
- resolve({ status: null, stdout: "", stderr: "", error: error });
208
- return;
209
- }
210
- if (closeStdin) {
211
- child.stdin?.end();
212
- }
213
- let stdout = "";
214
- let stderr = "";
215
- child.stdout?.setEncoding("utf8").on("data", (chunk) => {
216
- stdout += chunk;
217
- });
218
- child.stderr?.setEncoding("utf8").on("data", (chunk) => {
219
- stderr += chunk;
220
- });
221
- child.once("error", (error) => resolve({ status: null, stdout, stderr, error }));
222
- child.once("close", (status, signal) => resolve({ status, stdout, stderr, signal: signal ?? null }));
223
- });
224
- }
225
- export function runCliVersionProbeAsync(executable, env, args = ["--version"], timeoutMs = 3000) {
226
- return runCliProbeAsync(executable, env, args, timeoutMs);
227
- }
228
- function pathSeparator() {
229
- return platform() === "win32" ? ";" : ":";
230
- }
231
- function splitPath(pathValue) {
232
- if (!pathValue)
233
- return [];
234
- return pathValue.split(pathSeparator()).filter(Boolean);
235
- }
236
- function isRunnableFile(path) {
237
- if (!existsSync(path))
238
- return false;
239
- if (platform() === "win32")
240
- return true;
241
- try {
242
- accessSync(path, constants.X_OK);
243
- return true;
244
- }
245
- catch {
246
- return false;
247
- }
248
- }
249
- function windowsCommandCandidates(command, pathExt) {
250
- const trimmed = command.trim();
251
- if (!trimmed)
252
- return [];
253
- const hasExtension = /\.[a-z0-9]+$/i.test(trimmed);
254
- if (hasExtension)
255
- return [trimmed];
256
- const extensions = pathExt
257
- .split(";")
258
- .map((ext) => ext.trim())
259
- .filter(Boolean);
260
- return [trimmed, ...extensions.map((ext) => `${trimmed}${ext}`)];
261
- }
262
- export function augmentCliPath(env) {
263
- const home = env.HOME || env.USERPROFILE || homedir();
264
- const isWin = platform() === "win32";
265
- const extraPaths = isWin
266
- ? [
267
- join(home, "AppData", "Roaming", "npm"),
268
- join(home, "AppData", "Local", "Programs", "Microsoft", "WindowsApps"),
269
- join(home, ".local", "bin"),
270
- "C:\\Program Files\\nodejs",
271
- "C:\\Program Files\\Git\\cmd",
272
- ]
273
- : [
274
- join(home, ".local", "bin"),
275
- join(home, ".local", "node", "bin"),
276
- join(home, ".bun", "bin"),
277
- join(home, ".cargo", "bin"),
278
- "/opt/homebrew/bin",
279
- "/usr/local/bin",
280
- ];
281
- const basePath = env.PATH ?? "";
282
- const existing = new Set(splitPath(basePath));
283
- const missing = extraPaths.filter((dir) => !existing.has(dir));
284
- if (missing.length === 0)
285
- return env;
286
- return {
287
- ...env,
288
- PATH: missing.length > 0
289
- ? `${missing.join(pathSeparator())}${pathSeparator()}${basePath}`
290
- : basePath,
291
- };
292
- }
293
- export function resolveCliExecutable(command, env = getDaemonCliEnvironment()) {
294
- const trimmed = command.trim();
295
- if (!trimmed)
296
- return null;
297
- const cached = getCachedResolvedCli(trimmed);
298
- if (cached === null)
299
- return null;
300
- if (cached && isRunnableFile(cached))
301
- return cached;
302
- if ((trimmed.includes("/") || trimmed.includes("\\")) && isRunnableFile(trimmed)) {
303
- cacheResolvedCli(trimmed, trimmed);
304
- return trimmed;
305
- }
306
- const enriched = augmentCliPath(env);
307
- const home = enriched.HOME || enriched.USERPROFILE || homedir();
308
- const isWin = platform() === "win32";
309
- const pathExt = enriched.PATHEXT ?? (isWin ? ".EXE;.CMD;.BAT;.COM" : "");
310
- const commandNames = [trimmed, ...(CLI_COMMAND_ALIASES[trimmed] ?? [])];
311
- const names = commandNames.flatMap((name) => isWin ? windowsCommandCandidates(name, pathExt) : [name]);
312
- const candidates = [];
313
- for (const name of names) {
314
- if (name.includes("/") || name.includes("\\")) {
315
- candidates.push(name);
316
- continue;
317
- }
318
- for (const dir of splitPath(enriched.PATH)) {
319
- candidates.push(join(dir, name));
320
- }
321
- candidates.push(join(home, ".local", "bin", name), join(home, ".local", "node", "bin", name));
322
- if (!isWin) {
323
- candidates.push(join("/opt/homebrew/bin", name), join("/usr/local/bin", name));
324
- }
325
- else {
326
- candidates.push(join(home, "AppData", "Roaming", "npm", name));
327
- }
328
- }
329
- const seen = new Set();
330
- for (const candidate of candidates) {
331
- if (seen.has(candidate))
332
- continue;
333
- seen.add(candidate);
334
- if (isRunnableFile(candidate)) {
335
- cacheResolvedCli(trimmed, candidate);
336
- return candidate;
337
- }
338
- }
339
- const viaWhere = resolveViaWhere(trimmed, enriched);
340
- if (viaWhere) {
341
- cacheResolvedCli(trimmed, viaWhere);
342
- return viaWhere;
343
- }
344
- cacheResolvedCli(trimmed, null);
345
- return null;
346
- }
347
- function normalizeDiscoverableProvider(provider) {
348
- const alias = PROVIDER_ALIASES[provider];
349
- if (alias)
350
- return alias;
351
- if (provider in PROVIDER_CLI_COMMANDS) {
352
- return provider;
353
- }
354
- return null;
355
- }
356
- export function resolveProviderCliCommand(provider, env = getDaemonCliEnvironment()) {
357
- const normalized = normalizeDiscoverableProvider(provider);
358
- if (!normalized)
359
- return null;
360
- const spec = PROVIDER_CLI_COMMANDS[normalized];
361
- const override = spec.envVars
362
- .map((name) => process.env[name]?.trim() || env[name]?.trim())
363
- .find(Boolean);
364
- if (override) {
365
- const resolved = resolveCliExecutable(override, env) ?? (isRunnableFile(override) ? override : null);
366
- if (resolved)
367
- cacheResolvedCli(spec.command, resolved);
368
- return resolved;
369
- }
370
- const resolved = resolveCliExecutable(spec.command, env);
371
- if (resolved)
372
- cacheResolvedCli(spec.command, resolved);
373
- return resolved;
374
- }
375
- export function resolveBackendRuntimeCommand(backendKind, env = getDaemonCliEnvironment()) {
376
- if (!backendKind)
377
- return undefined;
378
- const command = BACKEND_CLI_COMMANDS[backendKind];
379
- if (!command)
380
- return undefined;
381
- const cached = getCachedResolvedCli(command);
382
- if (cached === null)
383
- return undefined;
384
- if (cached && isRunnableFile(cached))
385
- return cached;
386
- const spec = Object.values(PROVIDER_CLI_COMMANDS).find((entry) => entry.command === command);
387
- const envOverride = spec
388
- ? spec.envVars.map((name) => env[name]?.trim()).find(Boolean)
389
- : undefined;
390
- const resolved = resolveCliExecutable(envOverride?.trim() || command, env);
391
- cacheResolvedCli(command, resolved);
392
- return resolved ?? undefined;
393
- }
394
- /**
395
- * Drop a command's cached resolution so the next resolve re-discovers it from
396
- * disk. `resolveCliExecutable` already re-checks the cached path with
397
- * `isRunnableFile`, so this is for the case a cached path passes that check yet
398
- * still fails to spawn (e.g. a stale shim, or the file vanished between the
399
- * check and the spawn).
400
- */
401
- export function invalidateResolvedCli(command) {
402
- const trimmed = command.trim();
403
- if (trimmed) {
404
- resolvedCliCache.delete(trimmed);
405
- negativeResolutionExpiry.delete(trimmed);
406
- }
407
- }
408
- /**
409
- * Force a fresh resolution of a backend's CLI executable, discarding any cached
410
- * path first. Invoked when a spawn of the previously-resolved path fails ENOENT
411
- * (the CLI was moved/reinstalled after the daemon cached it) so the run can
412
- * retry once against the current on-disk location instead of failing outright.
413
- */
414
- export function revalidateBackendRuntimeCommand(backendKind, env = getDaemonCliEnvironment()) {
415
- if (!backendKind)
416
- return undefined;
417
- const command = BACKEND_CLI_COMMANDS[backendKind];
418
- if (!command)
419
- return undefined;
420
- // Drop both the bare-command cache entry and any env-override key so the
421
- // re-resolution below cannot return the same stale hit (or a poisoned,
422
- // still-unexpired negative entry).
423
- invalidateResolvedCli(command);
424
- const spec = Object.values(PROVIDER_CLI_COMMANDS).find((entry) => entry.command === command);
425
- const envOverride = spec
426
- ? spec.envVars.map((name) => env[name]?.trim()).find(Boolean)
427
- : undefined;
428
- if (envOverride)
429
- invalidateResolvedCli(envOverride);
430
- return resolveBackendRuntimeCommand(backendKind, env);
431
- }
432
- //# sourceMappingURL=cli-executable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-executable.js","sourceRoot":"","sources":["../src/cli-executable.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export declare const HELP_TEXT = "Alan agent CLI\n\nUsage:\n alan-agent <command> [options]\n\nCommands:\n setup Register this computer with a setup token from Alan\n login Register this computer through browser authorization\n daemon Start the durable runtime daemon\n service Install, uninstall, or inspect the per-user daemon service\n stop Stop the local daemon (or active runs only via the local API /stop)\n recover Redial and safely restart a stuck local daemon connection\n status Show local runtime configuration without secrets\n doctor Check local CLI capabilities\n scan-models Probe installed agent CLIs and print discovered models\n logout Remove local runtime configuration\n token Rotate or revoke the configured runtime token\n run-session Internal: run one ephemeral sandbox/session from ALAN_* env vars\n\nCommon flows:\n alan-agent login\n alan-agent login --cancel\n alan-agent setup --setup-token <token>\n alan-agent setup --setup-token <token> --scope user\n alan-agent service install\n alan-agent stop\n\nLocal development:\n alan-agent login --profile local\n alan-agent setup --profile local --setup-token <token>\n";
2
- export declare function hasRunSessionEnv(env: NodeJS.ProcessEnv): boolean;
3
- export declare function resolveCommand(args: string[], env: NodeJS.ProcessEnv): {
4
- command: string;
5
- commandArgs: string[];
6
- };
7
- //# sourceMappingURL=cli-help.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,oqCA8BrB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAQhE;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAS5C"}
package/dist/cli-help.js DELETED
@@ -1,49 +0,0 @@
1
- export const HELP_TEXT = `Alan agent CLI
2
-
3
- Usage:
4
- alan-agent <command> [options]
5
-
6
- Commands:
7
- setup Register this computer with a setup token from Alan
8
- login Register this computer through browser authorization
9
- daemon Start the durable runtime daemon
10
- service Install, uninstall, or inspect the per-user daemon service
11
- stop Stop the local daemon (or active runs only via the local API /stop)
12
- recover Redial and safely restart a stuck local daemon connection
13
- status Show local runtime configuration without secrets
14
- doctor Check local CLI capabilities
15
- scan-models Probe installed agent CLIs and print discovered models
16
- logout Remove local runtime configuration
17
- token Rotate or revoke the configured runtime token
18
- run-session Internal: run one ephemeral sandbox/session from ALAN_* env vars
19
-
20
- Common flows:
21
- alan-agent login
22
- alan-agent login --cancel
23
- alan-agent setup --setup-token <token>
24
- alan-agent setup --setup-token <token> --scope user
25
- alan-agent service install
26
- alan-agent stop
27
-
28
- Local development:
29
- alan-agent login --profile local
30
- alan-agent setup --profile local --setup-token <token>
31
- `;
32
- export function hasRunSessionEnv(env) {
33
- return Boolean(env.ALAN_WS_URL &&
34
- env.ALAN_SESSION_ID &&
35
- env.ALAN_TASK_ID &&
36
- env.ALAN_SESSION_TOKEN &&
37
- env.ALAN_TASK !== undefined);
38
- }
39
- export function resolveCommand(args, env) {
40
- const [command, ...commandArgs] = args;
41
- if (!command) {
42
- return { command: hasRunSessionEnv(env) ? "run-session" : "help", commandArgs: [] };
43
- }
44
- if (command === "help" || command === "--help" || command === "-h") {
45
- return { command: "help", commandArgs };
46
- }
47
- return { command, commandArgs };
48
- }
49
- //# sourceMappingURL=cli-help.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BxB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,GAAsB;IACrD,OAAO,OAAO,CACZ,GAAG,CAAC,WAAW;QACb,GAAG,CAAC,eAAe;QACnB,GAAG,CAAC,YAAY;QAChB,GAAG,CAAC,kBAAkB;QACtB,GAAG,CAAC,SAAS,KAAK,SAAS,CAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAc,EACd,GAAsB;IAEtB,MAAM,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC"}
@@ -1,42 +0,0 @@
1
- import type { AgentEndpointProfile, ComputerReadinessCheck, RuntimeDaemonUiActionDescriptor } from "@alan-ai/shared/runtime-runner-status";
2
- export interface BuildComputerReadinessInput {
3
- nowMs?: number;
4
- runtimeId: string;
5
- endpointProfile: AgentEndpointProfile;
6
- configPath: string;
7
- configEndpointProfile?: AgentEndpointProfile | "custom";
8
- /** Set when the stored config's endpoint URLs contradict its claimed profile (daemon self-healed at startup). */
9
- endpointMismatchDetail?: string | null;
10
- connected: boolean;
11
- localApiHealthy: boolean;
12
- runtimeAuthValid: boolean;
13
- workspacePath?: string | null;
14
- providerAvailable?: boolean;
15
- protocolCompatible?: boolean;
16
- }
17
- export type WorkspaceReadinessCode = "workspace_missing" | "workspace_permission_denied" | "workspace_volume_unavailable";
18
- export interface WorkspaceReadinessResult {
19
- ready: boolean;
20
- code?: WorkspaceReadinessCode;
21
- message: string;
22
- action: RuntimeDaemonUiActionDescriptor | null;
23
- }
24
- export declare class WorkspaceAccessTracker {
25
- private readonly inspect;
26
- private issue;
27
- constructor(inspect?: (path: string) => WorkspaceReadinessResult);
28
- track(path: string, readiness: WorkspaceReadinessResult): void;
29
- recheck(): WorkspaceReadinessResult | null;
30
- recoveryPath(): string | null;
31
- currentReadiness(): WorkspaceReadinessResult | null;
32
- }
33
- export interface WorkspaceFsProbe {
34
- stat(path: string): {
35
- isDirectory(): boolean;
36
- };
37
- access(path: string, mode: number): void;
38
- exists(path: string): boolean;
39
- }
40
- export declare function inspectWorkspaceReadiness(workspacePath: string | null | undefined, probe?: WorkspaceFsProbe): WorkspaceReadinessResult;
41
- export declare function buildComputerReadiness(input: BuildComputerReadinessInput): ComputerReadinessCheck[];
42
- //# sourceMappingURL=computer-readiness.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computer-readiness.d.ts","sourceRoot":"","sources":["../src/computer-readiness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,uCAAuC,CAAC;AAG/C,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,oBAAoB,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,oBAAoB,GAAG,QAAQ,CAAC;IACxD,iHAAiH;IACjH,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,sBAAsB,GAC9B,mBAAmB,GACnB,6BAA6B,GAC7B,8BAA8B,CAAC;AAEnC,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAChD;AAED,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO,CAAC,KAAK,CAAsE;gBAGhE,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,wBACX;IAGnC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,GAAG,IAAI;IAQ9D,OAAO,IAAI,wBAAwB,GAAG,IAAI;IAW1C,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,gBAAgB,IAAI,wBAAwB,GAAG,IAAI;CAGpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,WAAW,IAAI,OAAO,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AA2DD,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,KAAK,GAAE,gBAA0C,GAChD,wBAAwB,CA8B1B;AAsBD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,EAAE,CAuH1B"}