@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,563 +0,0 @@
1
- import { createHash, randomBytes } from "node:crypto";
2
- import { copyFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from "node:fs";
3
- import { homedir } from "node:os";
4
- import { dirname } from "node:path";
5
- import { classifyMcpCliInspection, getMcpCliInspectionPlan, } from "@alan-ai/agent-core";
6
- import { alanMcpConfigFilesForBackend, buildAlanMcpServers, mergeAlanMcpCodexToml, mergeAlanMcpJsonConfig, stripCodexAlanMcpSection, } from "@alan-ai/shared/agent";
7
- import { parse as parseToml } from "smol-toml";
8
- import { getDaemonCliEnvironment, resolveBackendRuntimeCommand, runCliVersionProbeAsync, } from "./cli-executable.js";
9
- const CONFIG_LOCK_STALE_MS = 30_000;
10
- const CONFIG_LOCK_WAIT_MS = 2_000;
11
- const CONFIG_LOCK_POLL_MS = 20;
12
- /** Successful CLI inspect results are reused so consecutive sends do not re-run
13
- * slow `cursor-agent mcp list` / `claude mcp list` probes on Electron main. */
14
- const MCP_INSPECT_CACHE_TTL_MS = 60_000;
15
- const mcpInspectCache = new Map();
16
- function compactProviderVersion(output) {
17
- const firstLine = output
18
- .split(/\r?\n/)
19
- .map((line) => line.trim())
20
- .find(Boolean);
21
- return firstLine?.slice(0, 120);
22
- }
23
- function mcpInspectCacheKey(backendKind, expectedUrl, home) {
24
- return `${backendKind}::${expectedUrl}::${home}`;
25
- }
26
- function providerLoadStatusForBackend(backendKind) {
27
- // Current CLI inspections parse human-readable display output. Even a clean
28
- // result proves only that the provider can see an Alan config entry, not that
29
- // it approved and loaded the tools for the upcoming prompt.
30
- return getMcpCliInspectionPlan(backendKind) ? "indeterminate" : "unsupported";
31
- }
32
- /** Test-only: clear the successful-inspect cache between cases. */
33
- export function __resetMcpInspectCache() {
34
- mcpInspectCache.clear();
35
- }
36
- export const inspectAlanMcpThroughProviderCli = async (backendKind, expectedUrl, home) => {
37
- const plan = getMcpCliInspectionPlan(backendKind);
38
- if (!plan)
39
- return { ok: true, verification: { method: "file" } };
40
- const cacheKey = mcpInspectCacheKey(backendKind, expectedUrl, home);
41
- const cached = mcpInspectCache.get(cacheKey);
42
- if (cached && cached.expiresAt > Date.now()) {
43
- return cached.result;
44
- }
45
- const env = {
46
- ...getDaemonCliEnvironment(),
47
- HOME: home,
48
- USERPROFILE: home,
49
- };
50
- const executable = resolveBackendRuntimeCommand(backendKind, env);
51
- const command = [plan.command, ...plan.args].join(" ");
52
- if (!executable) {
53
- const classification = classifyMcpCliInspection(plan, {
54
- status: null,
55
- stdout: "",
56
- stderr: "",
57
- error: new Error("provider CLI unavailable"),
58
- });
59
- return {
60
- ok: false,
61
- issue: classification.ok ? undefined : classification.issue,
62
- verification: { method: "cli", command },
63
- };
64
- }
65
- // Must stay async: desktop embeds this daemon in Electron main, and
66
- // `cursor-agent mcp list` / `claude mcp list` commonly take 3–5s (they probe
67
- // every configured MCP server). spawnSync freezes the whole Alan UI.
68
- const versionProbe = await runCliVersionProbeAsync(executable, env);
69
- if (versionProbe.error || versionProbe.status !== 0) {
70
- const classification = classifyMcpCliInspection(plan, {
71
- status: versionProbe.status,
72
- stdout: "",
73
- stderr: "",
74
- error: versionProbe.error ?? new Error("provider version unavailable"),
75
- });
76
- return {
77
- ok: false,
78
- issue: classification.ok ? undefined : classification.issue,
79
- verification: { method: "cli", command },
80
- };
81
- }
82
- const providerVersion = compactProviderVersion(versionProbe.stdout);
83
- // The MCP inspection command (`mcp list` / `mcp get alan`) is network-bound, not
84
- // a quick `--version`: cursor-agent/codex probe EVERY configured MCP server with
85
- // a live connection attempt. A user with several slow or unreachable third-party
86
- // servers (unrelated to Alan) can push it well past the 3s version-probe budget,
87
- // so give it a generous, env-tunable window.
88
- const inspectTimeoutMs = Number(process.env.ALAN_MCP_INSPECT_TIMEOUT_MS) || 20_000;
89
- const probe = await runCliVersionProbeAsync(executable, env, plan.args, inspectTimeoutMs);
90
- // A probe TIMEOUT is not proof the Alan tools are missing — it usually means an
91
- // UNRELATED MCP server was slow. Treating it as a hard failure kills a healthy
92
- // run whose Alan config is already written and verified at the file level. So on
93
- // a timeout (spawn killed by SIGTERM with a null exit code), fall back to the
94
- // file-level registration check instead of rejecting the run. A definitive
95
- // result (non-zero exit, or a clean list that omits Alan) still fails as before.
96
- const timedOut = probe.status === null &&
97
- (probe.signal === "SIGTERM" ||
98
- probe.error?.code === "ETIMEDOUT");
99
- if (timedOut) {
100
- // File-only verification: pass a no-op inspector so verifyAlanMcpRegistered
101
- // checks config presence + a usable Alan URL WITHOUT re-spawning the CLI
102
- // (which would just time out again on the same slow unrelated servers).
103
- const fileCheck = await verifyAlanMcpRegistered(backendKind, home, async () => ({
104
- ok: true,
105
- verification: { method: "file" },
106
- }));
107
- console.warn("[alan-agent] MCP CLI inspection timed out; falling back to file check", {
108
- backendKind,
109
- command,
110
- inspectTimeoutMs,
111
- fileOk: fileCheck.ok,
112
- });
113
- return {
114
- ok: fileCheck.ok,
115
- issue: fileCheck.ok
116
- ? undefined
117
- : {
118
- code: "provider_mcp_repair_required",
119
- command,
120
- message: `Alan tools could not be verified for ${plan.providerLabel}. Repair Alan tools, then retry.`,
121
- },
122
- verification: { method: "file", command, providerVersion },
123
- };
124
- }
125
- const classification = classifyMcpCliInspection(plan, {
126
- status: probe.status,
127
- stdout: probe.stdout,
128
- stderr: probe.stderr,
129
- error: probe.error,
130
- }, expectedUrl, providerVersion);
131
- const result = {
132
- ok: classification.ok,
133
- issue: classification.ok ? undefined : classification.issue,
134
- verification: { method: "cli", command, providerVersion },
135
- };
136
- if (result.ok) {
137
- mcpInspectCache.set(cacheKey, {
138
- expiresAt: Date.now() + MCP_INSPECT_CACHE_TTL_MS,
139
- result,
140
- });
141
- }
142
- return result;
143
- };
144
- async function waitForConfigLock(lockPath) {
145
- mkdirSync(dirname(lockPath), { recursive: true });
146
- const startedAt = Date.now();
147
- while (true) {
148
- try {
149
- mkdirSync(lockPath);
150
- return () => rmSync(lockPath, { recursive: true, force: true });
151
- }
152
- catch (error) {
153
- const code = error && typeof error === "object" && "code" in error ? error.code : undefined;
154
- if (code !== "EEXIST")
155
- throw error;
156
- try {
157
- if (Date.now() - statSync(lockPath).mtimeMs > CONFIG_LOCK_STALE_MS) {
158
- rmSync(lockPath, { recursive: true, force: true });
159
- continue;
160
- }
161
- }
162
- catch {
163
- continue;
164
- }
165
- if (Date.now() - startedAt >= CONFIG_LOCK_WAIT_MS) {
166
- throw new Error(`Alan could not safely update ${lockPath.slice(0, -".alan-lock".length)}`);
167
- }
168
- // Non-blocking async sleep — Atomics.wait stalls Electron main (desktop
169
- // embeds this daemon in-process) and was the other half of the beachball.
170
- await new Promise((resolve) => setTimeout(resolve, CONFIG_LOCK_POLL_MS));
171
- }
172
- }
173
- }
174
- function saveMalformedBackup(path, content) {
175
- const hash = createHash("sha256").update(content).digest("hex").slice(0, 12);
176
- const backupPath = `${path}.alan-backup-${hash}`;
177
- if (!existsSync(backupPath))
178
- copyFileSync(path, backupPath);
179
- return backupPath;
180
- }
181
- function parseJsonObject(path, content) {
182
- try {
183
- const parsed = JSON.parse(content);
184
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
185
- return parsed;
186
- }
187
- }
188
- catch {
189
- // Report one actionable error below after retaining an exact backup.
190
- }
191
- const backupPath = saveMalformedBackup(path, content);
192
- throw new Error(`Existing config is malformed; no changes were applied. Review the backup at ${backupPath}`);
193
- }
194
- function mergeJsonConfig(path, existingContent, desiredContent) {
195
- // A freshly-created provider config may exist as a zero-byte placeholder.
196
- // Treat whitespace-only content as an absent config so the first Alan MCP
197
- // registration can initialize it; non-empty malformed files still fail
198
- // closed and retain their reviewable backup.
199
- const normalizedExisting = existingContent?.trim() ? existingContent : null;
200
- if (normalizedExisting !== null) {
201
- // Validate + backup before merge (shared helper would otherwise throw without backup).
202
- parseJsonObject(path, normalizedExisting);
203
- }
204
- return mergeAlanMcpJsonConfig(normalizedExisting, desiredContent);
205
- }
206
- function assertValidExistingToml(path, content) {
207
- try {
208
- const parsed = parseToml(content);
209
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed))
210
- return;
211
- }
212
- catch {
213
- // Report one actionable error below after retaining an exact backup.
214
- }
215
- const backupPath = saveMalformedBackup(path, content);
216
- throw new Error(`Existing config is malformed; no changes were applied. Review the backup at ${backupPath}`);
217
- }
218
- function mergeCodexAlanSection(path, existingContent, desiredContent) {
219
- if (existingContent === null || existingContent.trim() === "")
220
- return desiredContent;
221
- assertValidExistingToml(path, existingContent);
222
- const merged = mergeAlanMcpCodexToml(existingContent, desiredContent);
223
- try {
224
- parseToml(merged);
225
- }
226
- catch {
227
- throw new Error(`Alan could not safely merge ${path}; no changes were applied`);
228
- }
229
- return merged;
230
- }
231
- function atomicWriteManagedConfig(path, content) {
232
- const pendingPath = `${path}.alan-pending-${process.pid}-${randomBytes(6).toString("hex")}`;
233
- try {
234
- writeFileSync(pendingPath, content, { encoding: "utf8", mode: 0o600, flag: "wx" });
235
- renameSync(pendingPath, path);
236
- }
237
- finally {
238
- rmSync(pendingPath, { force: true });
239
- }
240
- }
241
- /**
242
- * Ensure the Alan MCP server is registered in the config files the given CLI
243
- * backend reads, BEFORE the CLI is spawned. This is the sandbox agent's own
244
- * responsibility on every run — provision-time injection alone goes stale.
245
- * Current APIs provide a run-lifecycle broker reference; older APIs may still
246
- * provide direct headers, so this renderer intentionally supports both during
247
- * rollout.
248
- *
249
- * Files whose top-level JSON carries other CLI state (e.g. ~/.claude.json) are
250
- * merged on the MCP key rather than clobbered.
251
- */
252
- export async function ensureAlanMcpRegistered(backendKind, registration, home = homedir(), inspectCli = inspectAlanMcpThroughProviderCli) {
253
- try {
254
- const mcpServers = buildAlanMcpServers(registration);
255
- const files = alanMcpConfigFilesForBackend(backendKind, mcpServers, home);
256
- const paths = [];
257
- for (const file of files) {
258
- mkdirSync(dirname(file.path), { recursive: true });
259
- const releaseLock = await waitForConfigLock(`${file.path}.alan-lock`);
260
- try {
261
- const current = existsSync(file.path) ? readFileSync(file.path, "utf8") : null;
262
- const content = file.path.endsWith(".toml")
263
- ? mergeCodexAlanSection(file.path, current, file.content)
264
- : mergeJsonConfig(file.path, current, file.content);
265
- if (current !== content)
266
- atomicWriteManagedConfig(file.path, content);
267
- paths.push(file.path);
268
- }
269
- finally {
270
- releaseLock();
271
- }
272
- }
273
- // Read back the complete effective registration. A URL-only check can pass
274
- // with a missing or stale run-reference header, which leaves the provider
275
- // configured but unable to authenticate any Alan tool call.
276
- const fileOk = paths.length > 0 &&
277
- paths.every((p) => registrationsMatch(readAlanMcpRegistration(p), registration));
278
- if (!fileOk) {
279
- const issue = {
280
- code: "mcp_config_repair_required",
281
- message: "Alan tools configuration is missing or incompatible. Repair Alan tools, then retry.",
282
- };
283
- return { ok: false, paths, error: issue.message, issue };
284
- }
285
- if (inspectCli !== inspectAlanMcpThroughProviderCli) {
286
- const inspection = await inspectCli(backendKind, registration.url, home);
287
- if (!inspection.ok) {
288
- return {
289
- ok: false,
290
- paths,
291
- error: inspection.issue?.message ?? "Alan tools could not be verified",
292
- issue: inspection.issue,
293
- verification: inspection.verification,
294
- providerLoadStatus: providerLoadStatusForBackend(backendKind),
295
- };
296
- }
297
- return {
298
- ok: true,
299
- paths,
300
- verification: inspection.verification,
301
- providerLoadStatus: providerLoadStatusForBackend(backendKind),
302
- };
303
- }
304
- void Promise.resolve(inspectCli(backendKind, registration.url, home)).then((inspection) => {
305
- if (!inspection.ok) {
306
- console.warn("[alan-agent] Background MCP CLI inspection failed after file registration", {
307
- backendKind,
308
- error: inspection.issue?.message ?? "unknown",
309
- command: inspection.verification.command,
310
- });
311
- }
312
- }, (err) => {
313
- console.warn("[alan-agent] Background MCP CLI inspection errored", err);
314
- });
315
- return {
316
- ok: true,
317
- paths,
318
- verification: { method: "file" },
319
- providerLoadStatus: providerLoadStatusForBackend(backendKind),
320
- };
321
- }
322
- catch (err) {
323
- return { ok: false, paths: [], error: err instanceof Error ? err.message : String(err) };
324
- }
325
- }
326
- /**
327
- * When a run arrives WITHOUT per-run MCP config (older API), verify that the
328
- * provision-time registration actually exists for this backend so a missing
329
- * config surfaces as a loud warning instead of a silently toolless agent.
330
- */
331
- export async function verifyAlanMcpRegistered(backendKind, home = homedir(), inspectCli = inspectAlanMcpThroughProviderCli) {
332
- const files = alanMcpConfigFilesForBackend(backendKind, {}, home);
333
- const missing = files.map((f) => f.path).filter((p) => !existsSync(p));
334
- const presentEntries = files
335
- .map((file) => ({
336
- path: file.path,
337
- registration: existsSync(file.path) ? readAlanMcpRegistration(file.path) : null,
338
- }))
339
- .filter((entry) => existsSync(entry.path));
340
- let invalid = presentEntries
341
- .filter((entry) => !entry.registration || !hasUsableRegistrationCredential(entry.registration.headers))
342
- .map((entry) => entry.path);
343
- const registrationKeys = new Set(presentEntries.flatMap((entry) => entry.registration ? [registrationComparisonKey(entry.registration)] : []));
344
- if (registrationKeys.size > 1)
345
- invalid = presentEntries.map((entry) => entry.path);
346
- if (missing.length > 0 || invalid.length > 0) {
347
- const issue = {
348
- code: "mcp_config_repair_required",
349
- message: "Alan tools configuration is missing or incompatible. Repair Alan tools, then retry.",
350
- };
351
- return { ok: false, missing, invalid, error: issue.message, issue };
352
- }
353
- const expectedUrl = presentEntries.find((entry) => entry.registration)?.registration?.url;
354
- if (!expectedUrl) {
355
- const issue = {
356
- code: "mcp_config_repair_required",
357
- message: "Alan tools configuration is missing or incompatible. Repair Alan tools, then retry.",
358
- };
359
- return { ok: false, missing, invalid, error: issue.message, issue };
360
- }
361
- // Same hot-path rule as ensure: file presence + usable URL is enough to start.
362
- // Custom inspectors (tests / timeout fallback) still await CLI verification.
363
- if (inspectCli !== inspectAlanMcpThroughProviderCli) {
364
- const inspection = await inspectCli(backendKind, expectedUrl, home);
365
- return inspection.ok
366
- ? {
367
- ok: true,
368
- missing,
369
- invalid,
370
- verification: inspection.verification,
371
- providerLoadStatus: providerLoadStatusForBackend(backendKind),
372
- }
373
- : {
374
- ok: false,
375
- missing,
376
- invalid,
377
- error: inspection.issue?.message ?? "Alan tools could not be verified",
378
- issue: inspection.issue,
379
- verification: inspection.verification,
380
- providerLoadStatus: providerLoadStatusForBackend(backendKind),
381
- };
382
- }
383
- void Promise.resolve(inspectCli(backendKind, expectedUrl, home)).then((inspection) => {
384
- if (!inspection.ok) {
385
- console.warn("[alan-agent] Background MCP CLI inspection failed during verify", {
386
- backendKind,
387
- error: inspection.issue?.message ?? "unknown",
388
- command: inspection.verification.command,
389
- });
390
- }
391
- }, (err) => {
392
- console.warn("[alan-agent] Background MCP CLI inspection errored during verify", err);
393
- });
394
- return {
395
- ok: true,
396
- missing,
397
- invalid,
398
- verification: { method: "file" },
399
- providerLoadStatus: providerLoadStatusForBackend(backendKind),
400
- };
401
- }
402
- /** Remove the `alan` server key from a JSON CLI config, preserving every other
403
- * server and all unrelated top-level state. The server is nested under either
404
- * `mcpServers` (Claude/Cursor/Factory/Antigravity) or `mcp` (opencode). */
405
- function removeAlanFromJsonConfig(path, existingContent) {
406
- const config = parseJsonObject(path, existingContent);
407
- for (const containerKey of ["mcpServers", "mcp"]) {
408
- const container = config[containerKey];
409
- if (container && typeof container === "object" && !Array.isArray(container)) {
410
- delete container.alan;
411
- }
412
- }
413
- return JSON.stringify(config);
414
- }
415
- /**
416
- * Remove the per-run Alan MCP entry from the CLI config files a backend reads.
417
- * Symmetric counterpart to {@link ensureAlanMcpRegistered}: registration writes
418
- * a run-scoped `x-alan-run-reference` into shared config (e.g. `~/.claude.json`),
419
- * so once no run needs it the entry MUST be removed — otherwise the now-inactive
420
- * reference lingers and every later local CLI session fails to connect with
421
- * `401 Inactive MCP run reference`. Best-effort and never throws: a failure to
422
- * clean one file is logged via the returned `errors` and the next run's
423
- * registration overwrites the entry regardless.
424
- */
425
- export async function unregisterAlanMcp(backendKind, home = homedir()) {
426
- const removedPaths = [];
427
- const errors = [];
428
- // Server map is irrelevant for removal — we only need the per-backend paths.
429
- const files = alanMcpConfigFilesForBackend(backendKind, {}, home);
430
- for (const file of files) {
431
- if (!existsSync(file.path))
432
- continue;
433
- const releaseLock = await waitForConfigLock(`${file.path}.alan-lock`);
434
- try {
435
- const current = readFileSync(file.path, "utf8");
436
- let next;
437
- if (file.path.endsWith(".toml")) {
438
- const stripped = stripCodexAlanMcpSection(current);
439
- next = stripped ? `${stripped}\n` : "";
440
- }
441
- else {
442
- next = removeAlanFromJsonConfig(file.path, current);
443
- }
444
- if (next !== current) {
445
- atomicWriteManagedConfig(file.path, next);
446
- removedPaths.push(file.path);
447
- }
448
- }
449
- catch (err) {
450
- errors.push(err instanceof Error ? err.message : String(err));
451
- }
452
- finally {
453
- releaseLock();
454
- }
455
- }
456
- return { removedPaths, errors };
457
- }
458
- function isHttpUrl(value) {
459
- if (typeof value !== "string")
460
- return false;
461
- try {
462
- const url = new URL(value);
463
- return url.protocol === "http:" || url.protocol === "https:";
464
- }
465
- catch {
466
- return false;
467
- }
468
- }
469
- /**
470
- * Read a header table back out of a provider config.
471
- *
472
- * An absent table reads as `{}` rather than a parse failure, mirroring the
473
- * writers: `buildAlanMcpServers` omits the header key entirely when there are
474
- * no headers, so treating "absent" as malformed would make such a registration
475
- * fail the readback of the very file it just wrote correctly.
476
- */
477
- function readStringHeaders(value) {
478
- if (value === undefined)
479
- return {};
480
- if (!value || typeof value !== "object" || Array.isArray(value))
481
- return null;
482
- const entries = Object.entries(value);
483
- if (entries.some((entry) => typeof entry[1] !== "string"))
484
- return null;
485
- return Object.fromEntries(entries);
486
- }
487
- function normalizeHttpUrl(value) {
488
- if (!isHttpUrl(value))
489
- return null;
490
- return new URL(value).href;
491
- }
492
- function registrationComparisonKey(registration) {
493
- return JSON.stringify({
494
- url: normalizeHttpUrl(registration.url),
495
- headers: Object.entries(registration.headers).sort(([a], [b]) => a.localeCompare(b)),
496
- });
497
- }
498
- function registrationsMatch(actual, expected) {
499
- return (actual !== null && registrationComparisonKey(actual) === registrationComparisonKey(expected));
500
- }
501
- function hasUsableRegistrationCredential(headers) {
502
- const normalized = new Map(Object.entries(headers).map(([name, value]) => [name.toLowerCase(), value.trim()]));
503
- return Boolean(normalized.get("x-alan-run-reference") || normalized.get("authorization"));
504
- }
505
- /** Parse the complete effective Alan registration from a provider config file. */
506
- export function readAlanMcpRegistration(path) {
507
- const content = readFileSync(path, "utf8");
508
- if (path.endsWith(".toml")) {
509
- try {
510
- const parsed = parseToml(content);
511
- const servers = parsed.mcp_servers;
512
- if (!servers || typeof servers !== "object" || Array.isArray(servers))
513
- return null;
514
- const alan = servers.alan;
515
- if (!alan || typeof alan !== "object" || Array.isArray(alan))
516
- return null;
517
- const server = alan;
518
- const url = normalizeHttpUrl(server.url);
519
- const headers = readStringHeaders(server.http_headers);
520
- return url && headers ? { url, headers } : null;
521
- }
522
- catch {
523
- return null;
524
- }
525
- }
526
- try {
527
- const parsed = JSON.parse(content);
528
- const collectionKey = path.endsWith("/.config/opencode/opencode.json") ? "mcp" : "mcpServers";
529
- const collection = parsed?.[collectionKey];
530
- if (!collection || typeof collection !== "object" || Array.isArray(collection))
531
- return null;
532
- const alan = collection.alan;
533
- if (!alan || typeof alan !== "object" || Array.isArray(alan))
534
- return null;
535
- const server = alan;
536
- const headers = readStringHeaders(server.headers);
537
- if (!headers)
538
- return null;
539
- if (path.endsWith("/.config/opencode/opencode.json")) {
540
- const url = server.type === "remote" ? normalizeHttpUrl(server.url) : null;
541
- return url ? { url, headers } : null;
542
- }
543
- if (path.endsWith("/.factory/mcp.json")) {
544
- const url = server.type === "http" && server.disabled !== true ? normalizeHttpUrl(server.url) : null;
545
- return url ? { url, headers } : null;
546
- }
547
- if (path.endsWith("/.gemini/settings.json") ||
548
- path.endsWith("/antigravity-cli/settings.json")) {
549
- const url = normalizeHttpUrl(server.httpUrl);
550
- return url ? { url, headers } : null;
551
- }
552
- if (path.endsWith("/.gemini/config/mcp_config.json")) {
553
- const url = normalizeHttpUrl(server.serverUrl);
554
- return url ? { url, headers } : null;
555
- }
556
- const url = server.type === "http" ? normalizeHttpUrl(server.url) : null;
557
- return url ? { url, headers } : null;
558
- }
559
- catch {
560
- return null;
561
- }
562
- }
563
- //# sourceMappingURL=mcp-registration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-registration.js","sourceRoot":"","sources":["../src/mcp-registration.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { type RuntimeCapabilitiesPayload } from "./runtime-capabilities-sync.js";
2
- export interface RuntimeModelScanContext {
3
- refreshModels: () => Promise<void>;
4
- getCapabilities: () => RuntimeCapabilitiesPayload;
5
- getBaseMetadata: () => Promise<Record<string, unknown>>;
6
- publishCredentials?: {
7
- apiUrl: string;
8
- runtimeId: string;
9
- runtimeToken: string;
10
- };
11
- }
12
- export declare function runRuntimeModelScan(context: RuntimeModelScanContext, options?: {
13
- force?: boolean;
14
- }): Promise<void>;
15
- //# sourceMappingURL=model-scan-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-scan-runner.d.ts","sourceRoot":"","sources":["../src/model-scan-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,0BAA0B,EAEhC,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,0BAA0B,CAAC;IAClD,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAgDf"}
@@ -1,51 +0,0 @@
1
- import { buildModelsScanMetadata, getModelScanInFlight, publishRuntimeCapabilities, setModelScanInFlight, } from "./runtime-capabilities-sync.js";
2
- export async function runRuntimeModelScan(context, options) {
3
- if (!options?.force) {
4
- const inFlight = getModelScanInFlight();
5
- if (inFlight)
6
- return inFlight;
7
- }
8
- const scan = (async () => {
9
- const pendingMetadata = {
10
- ...(await context.getBaseMetadata()),
11
- ...buildModelsScanMetadata("pending"),
12
- };
13
- await publishRuntimeCapabilities({
14
- capabilities: context.getCapabilities(),
15
- metadata: pendingMetadata,
16
- ...context.publishCredentials,
17
- });
18
- try {
19
- await context.refreshModels();
20
- const completeMetadata = {
21
- ...(await context.getBaseMetadata()),
22
- ...buildModelsScanMetadata("complete"),
23
- };
24
- await publishRuntimeCapabilities({
25
- capabilities: context.getCapabilities(),
26
- metadata: completeMetadata,
27
- ...context.publishCredentials,
28
- });
29
- }
30
- catch (error) {
31
- const message = error instanceof Error ? error.message : String(error);
32
- const failedMetadata = {
33
- ...(await context.getBaseMetadata()),
34
- ...buildModelsScanMetadata("failed", message),
35
- };
36
- await publishRuntimeCapabilities({
37
- capabilities: context.getCapabilities(),
38
- metadata: failedMetadata,
39
- ...context.publishCredentials,
40
- });
41
- }
42
- })();
43
- setModelScanInFlight(scan);
44
- try {
45
- await scan;
46
- }
47
- finally {
48
- setModelScanInFlight(null);
49
- }
50
- }
51
- //# sourceMappingURL=model-scan-runner.js.map