@aiden-ade/sandbox-agent 0.1.87 → 0.1.88

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/__tests__/binding-switch-git.test.d.ts +2 -0
  2. package/dist/__tests__/binding-switch-git.test.d.ts.map +1 -0
  3. package/dist/__tests__/binding-switch-git.test.js +610 -0
  4. package/dist/__tests__/binding-switch-git.test.js.map +1 -0
  5. package/dist/__tests__/cli-ensure-install.test.d.ts +2 -0
  6. package/dist/__tests__/cli-ensure-install.test.d.ts.map +1 -0
  7. package/dist/__tests__/cli-ensure-install.test.js +109 -0
  8. package/dist/__tests__/cli-ensure-install.test.js.map +1 -0
  9. package/dist/__tests__/cli-executable.test.d.ts +2 -0
  10. package/dist/__tests__/cli-executable.test.d.ts.map +1 -0
  11. package/dist/__tests__/cli-executable.test.js +129 -0
  12. package/dist/__tests__/cli-executable.test.js.map +1 -0
  13. package/dist/__tests__/cli-help.test.d.ts +2 -0
  14. package/dist/__tests__/cli-help.test.d.ts.map +1 -0
  15. package/dist/__tests__/cli-help.test.js +34 -0
  16. package/dist/__tests__/cli-help.test.js.map +1 -0
  17. package/dist/__tests__/computer-readiness.test.d.ts +2 -0
  18. package/dist/__tests__/computer-readiness.test.d.ts.map +1 -0
  19. package/dist/__tests__/computer-readiness.test.js +63 -0
  20. package/dist/__tests__/computer-readiness.test.js.map +1 -0
  21. package/dist/__tests__/core-agent-workflow-context.test.d.ts +2 -0
  22. package/dist/__tests__/core-agent-workflow-context.test.d.ts.map +1 -0
  23. package/dist/__tests__/core-agent-workflow-context.test.js +139 -0
  24. package/dist/__tests__/core-agent-workflow-context.test.js.map +1 -0
  25. package/dist/__tests__/daemon-reconcile-ask.test.d.ts +2 -0
  26. package/dist/__tests__/daemon-reconcile-ask.test.d.ts.map +1 -0
  27. package/dist/__tests__/daemon-reconcile-ask.test.js +86 -0
  28. package/dist/__tests__/daemon-reconcile-ask.test.js.map +1 -0
  29. package/dist/__tests__/daemon-socket.integration.test.d.ts +2 -0
  30. package/dist/__tests__/daemon-socket.integration.test.d.ts.map +1 -0
  31. package/dist/__tests__/daemon-socket.integration.test.js +450 -0
  32. package/dist/__tests__/daemon-socket.integration.test.js.map +1 -0
  33. package/dist/__tests__/daemon.test.d.ts +2 -0
  34. package/dist/__tests__/daemon.test.d.ts.map +1 -0
  35. package/dist/__tests__/daemon.test.js +3975 -0
  36. package/dist/__tests__/daemon.test.js.map +1 -0
  37. package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts +2 -0
  38. package/dist/__tests__/ensure-shared-checkout-branch.test.d.ts.map +1 -0
  39. package/dist/__tests__/ensure-shared-checkout-branch.test.js +129 -0
  40. package/dist/__tests__/ensure-shared-checkout-branch.test.js.map +1 -0
  41. package/dist/__tests__/event-outbox-persist-failure.test.d.ts +2 -0
  42. package/dist/__tests__/event-outbox-persist-failure.test.d.ts.map +1 -0
  43. package/dist/__tests__/event-outbox-persist-failure.test.js +84 -0
  44. package/dist/__tests__/event-outbox-persist-failure.test.js.map +1 -0
  45. package/dist/__tests__/event-outbox.test.d.ts +2 -0
  46. package/dist/__tests__/event-outbox.test.d.ts.map +1 -0
  47. package/dist/__tests__/event-outbox.test.js +256 -0
  48. package/dist/__tests__/event-outbox.test.js.map +1 -0
  49. package/dist/__tests__/fake-provider-cli.test.d.ts +2 -0
  50. package/dist/__tests__/fake-provider-cli.test.d.ts.map +1 -0
  51. package/dist/__tests__/fake-provider-cli.test.js +46 -0
  52. package/dist/__tests__/fake-provider-cli.test.js.map +1 -0
  53. package/dist/__tests__/generated-images.test.d.ts +2 -0
  54. package/dist/__tests__/generated-images.test.d.ts.map +1 -0
  55. package/dist/__tests__/generated-images.test.js +132 -0
  56. package/dist/__tests__/generated-images.test.js.map +1 -0
  57. package/dist/__tests__/lifecycle-logger.test.d.ts +2 -0
  58. package/dist/__tests__/lifecycle-logger.test.d.ts.map +1 -0
  59. package/dist/__tests__/lifecycle-logger.test.js +49 -0
  60. package/dist/__tests__/lifecycle-logger.test.js.map +1 -0
  61. package/dist/__tests__/local-skill-scan.test.d.ts +2 -0
  62. package/dist/__tests__/local-skill-scan.test.d.ts.map +1 -0
  63. package/dist/__tests__/local-skill-scan.test.js +91 -0
  64. package/dist/__tests__/local-skill-scan.test.js.map +1 -0
  65. package/dist/__tests__/local-workspace-migration.test.d.ts +2 -0
  66. package/dist/__tests__/local-workspace-migration.test.d.ts.map +1 -0
  67. package/dist/__tests__/local-workspace-migration.test.js +195 -0
  68. package/dist/__tests__/local-workspace-migration.test.js.map +1 -0
  69. package/dist/__tests__/mcp-inspect-timeout.test.d.ts +2 -0
  70. package/dist/__tests__/mcp-inspect-timeout.test.d.ts.map +1 -0
  71. package/dist/__tests__/mcp-inspect-timeout.test.js +97 -0
  72. package/dist/__tests__/mcp-inspect-timeout.test.js.map +1 -0
  73. package/dist/__tests__/mcp-readiness.test.d.ts +2 -0
  74. package/dist/__tests__/mcp-readiness.test.d.ts.map +1 -0
  75. package/dist/__tests__/mcp-readiness.test.js +267 -0
  76. package/dist/__tests__/mcp-readiness.test.js.map +1 -0
  77. package/dist/__tests__/mcp-registration-cli.test.d.ts +2 -0
  78. package/dist/__tests__/mcp-registration-cli.test.d.ts.map +1 -0
  79. package/dist/__tests__/mcp-registration-cli.test.js +71 -0
  80. package/dist/__tests__/mcp-registration-cli.test.js.map +1 -0
  81. package/dist/__tests__/mcp-registration.test.d.ts +2 -0
  82. package/dist/__tests__/mcp-registration.test.d.ts.map +1 -0
  83. package/dist/__tests__/mcp-registration.test.js +426 -0
  84. package/dist/__tests__/mcp-registration.test.js.map +1 -0
  85. package/dist/__tests__/model-scan-runner.test.d.ts +2 -0
  86. package/dist/__tests__/model-scan-runner.test.d.ts.map +1 -0
  87. package/dist/__tests__/model-scan-runner.test.js +67 -0
  88. package/dist/__tests__/model-scan-runner.test.js.map +1 -0
  89. package/dist/__tests__/network-diagnostics.test.d.ts +2 -0
  90. package/dist/__tests__/network-diagnostics.test.d.ts.map +1 -0
  91. package/dist/__tests__/network-diagnostics.test.js +26 -0
  92. package/dist/__tests__/network-diagnostics.test.js.map +1 -0
  93. package/dist/__tests__/observable-map.test.d.ts +2 -0
  94. package/dist/__tests__/observable-map.test.d.ts.map +1 -0
  95. package/dist/__tests__/observable-map.test.js +54 -0
  96. package/dist/__tests__/observable-map.test.js.map +1 -0
  97. package/dist/__tests__/provider-auth-preflight.test.d.ts +2 -0
  98. package/dist/__tests__/provider-auth-preflight.test.d.ts.map +1 -0
  99. package/dist/__tests__/provider-auth-preflight.test.js +123 -0
  100. package/dist/__tests__/provider-auth-preflight.test.js.map +1 -0
  101. package/dist/__tests__/provider-model-discovery.test.d.ts +2 -0
  102. package/dist/__tests__/provider-model-discovery.test.d.ts.map +1 -0
  103. package/dist/__tests__/provider-model-discovery.test.js +472 -0
  104. package/dist/__tests__/provider-model-discovery.test.js.map +1 -0
  105. package/dist/__tests__/remove-worktrees-if-clean.test.d.ts +2 -0
  106. package/dist/__tests__/remove-worktrees-if-clean.test.d.ts.map +1 -0
  107. package/dist/__tests__/remove-worktrees-if-clean.test.js +221 -0
  108. package/dist/__tests__/remove-worktrees-if-clean.test.js.map +1 -0
  109. package/dist/__tests__/resume-fallback-env.test.d.ts +2 -0
  110. package/dist/__tests__/resume-fallback-env.test.d.ts.map +1 -0
  111. package/dist/__tests__/resume-fallback-env.test.js +28 -0
  112. package/dist/__tests__/resume-fallback-env.test.js.map +1 -0
  113. package/dist/__tests__/run-journal.test.d.ts +2 -0
  114. package/dist/__tests__/run-journal.test.d.ts.map +1 -0
  115. package/dist/__tests__/run-journal.test.js +121 -0
  116. package/dist/__tests__/run-journal.test.js.map +1 -0
  117. package/dist/__tests__/run-start-gate.test.d.ts +2 -0
  118. package/dist/__tests__/run-start-gate.test.d.ts.map +1 -0
  119. package/dist/__tests__/run-start-gate.test.js +29 -0
  120. package/dist/__tests__/run-start-gate.test.js.map +1 -0
  121. package/dist/__tests__/runtime-capabilities-sync.test.d.ts +2 -0
  122. package/dist/__tests__/runtime-capabilities-sync.test.d.ts.map +1 -0
  123. package/dist/__tests__/runtime-capabilities-sync.test.js +66 -0
  124. package/dist/__tests__/runtime-capabilities-sync.test.js.map +1 -0
  125. package/dist/__tests__/runtime-config.test.d.ts +2 -0
  126. package/dist/__tests__/runtime-config.test.d.ts.map +1 -0
  127. package/dist/__tests__/runtime-config.test.js +102 -0
  128. package/dist/__tests__/runtime-config.test.js.map +1 -0
  129. package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts +2 -0
  130. package/dist/__tests__/runtime-presenter-heartbeat.test.d.ts.map +1 -0
  131. package/dist/__tests__/runtime-presenter-heartbeat.test.js +159 -0
  132. package/dist/__tests__/runtime-presenter-heartbeat.test.js.map +1 -0
  133. package/dist/__tests__/sandbox-outbox.test.d.ts +2 -0
  134. package/dist/__tests__/sandbox-outbox.test.d.ts.map +1 -0
  135. package/dist/__tests__/sandbox-outbox.test.js +214 -0
  136. package/dist/__tests__/sandbox-outbox.test.js.map +1 -0
  137. package/dist/__tests__/sandbox-workflow-context.test.d.ts +2 -0
  138. package/dist/__tests__/sandbox-workflow-context.test.d.ts.map +1 -0
  139. package/dist/__tests__/sandbox-workflow-context.test.js +396 -0
  140. package/dist/__tests__/sandbox-workflow-context.test.js.map +1 -0
  141. package/dist/__tests__/service-manager.test.d.ts +2 -0
  142. package/dist/__tests__/service-manager.test.d.ts.map +1 -0
  143. package/dist/__tests__/service-manager.test.js +50 -0
  144. package/dist/__tests__/service-manager.test.js.map +1 -0
  145. package/dist/__tests__/sleep-inhibitor.test.d.ts +2 -0
  146. package/dist/__tests__/sleep-inhibitor.test.d.ts.map +1 -0
  147. package/dist/__tests__/sleep-inhibitor.test.js +236 -0
  148. package/dist/__tests__/sleep-inhibitor.test.js.map +1 -0
  149. package/dist/__tests__/status-local-workspace.test.d.ts +2 -0
  150. package/dist/__tests__/status-local-workspace.test.d.ts.map +1 -0
  151. package/dist/__tests__/status-local-workspace.test.js +121 -0
  152. package/dist/__tests__/status-local-workspace.test.js.map +1 -0
  153. package/dist/__tests__/suspension-detector.test.d.ts +2 -0
  154. package/dist/__tests__/suspension-detector.test.d.ts.map +1 -0
  155. package/dist/__tests__/suspension-detector.test.js +112 -0
  156. package/dist/__tests__/suspension-detector.test.js.map +1 -0
  157. package/dist/__tests__/web-presenter-parent-events.test.d.ts +2 -0
  158. package/dist/__tests__/web-presenter-parent-events.test.d.ts.map +1 -0
  159. package/dist/__tests__/web-presenter-parent-events.test.js +130 -0
  160. package/dist/__tests__/web-presenter-parent-events.test.js.map +1 -0
  161. package/dist/__tests__/workspace-relocation.test.d.ts +2 -0
  162. package/dist/__tests__/workspace-relocation.test.d.ts.map +1 -0
  163. package/dist/__tests__/workspace-relocation.test.js +66 -0
  164. package/dist/__tests__/workspace-relocation.test.js.map +1 -0
  165. package/dist/__tests__/workspace-run-lease.test.d.ts +2 -0
  166. package/dist/__tests__/workspace-run-lease.test.d.ts.map +1 -0
  167. package/dist/__tests__/workspace-run-lease.test.js +230 -0
  168. package/dist/__tests__/workspace-run-lease.test.js.map +1 -0
  169. package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts +2 -0
  170. package/dist/__tests__/ws-client-heartbeat-volatile.test.d.ts.map +1 -0
  171. package/dist/__tests__/ws-client-heartbeat-volatile.test.js +61 -0
  172. package/dist/__tests__/ws-client-heartbeat-volatile.test.js.map +1 -0
  173. package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts +2 -0
  174. package/dist/__tests__/ws-client-heartbeat.integration.test.d.ts.map +1 -0
  175. package/dist/__tests__/ws-client-heartbeat.integration.test.js +109 -0
  176. package/dist/__tests__/ws-client-heartbeat.integration.test.js.map +1 -0
  177. package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts +2 -0
  178. package/dist/__tests__/ws-client-user-message-ack.integration.test.d.ts.map +1 -0
  179. package/dist/__tests__/ws-client-user-message-ack.integration.test.js +167 -0
  180. package/dist/__tests__/ws-client-user-message-ack.integration.test.js.map +1 -0
  181. package/dist/aiden-system-prompt.d.ts +6 -0
  182. package/dist/aiden-system-prompt.d.ts.map +1 -0
  183. package/dist/aiden-system-prompt.js +6 -0
  184. package/dist/aiden-system-prompt.js.map +1 -0
  185. package/dist/binding-switch-git.d.ts +26 -0
  186. package/dist/binding-switch-git.d.ts.map +1 -0
  187. package/dist/binding-switch-git.js +973 -0
  188. package/dist/binding-switch-git.js.map +1 -0
  189. package/dist/cli-ensure-install.d.ts +39 -0
  190. package/dist/cli-ensure-install.d.ts.map +1 -0
  191. package/dist/cli-ensure-install.js +133 -0
  192. package/dist/cli-ensure-install.js.map +1 -0
  193. package/dist/cli-executable.d.ts +97 -0
  194. package/dist/cli-executable.d.ts.map +1 -0
  195. package/dist/cli-executable.js +432 -0
  196. package/dist/cli-executable.js.map +1 -0
  197. package/dist/cli-help.d.ts +7 -0
  198. package/dist/cli-help.d.ts.map +1 -0
  199. package/dist/cli-help.js +49 -0
  200. package/dist/cli-help.js.map +1 -0
  201. package/dist/computer-readiness.d.ts +42 -0
  202. package/dist/computer-readiness.d.ts.map +1 -0
  203. package/dist/computer-readiness.js +191 -0
  204. package/dist/computer-readiness.js.map +1 -0
  205. package/dist/core-agent.d.ts +47 -0
  206. package/dist/core-agent.d.ts.map +1 -0
  207. package/dist/core-agent.js +364 -0
  208. package/dist/core-agent.js.map +1 -0
  209. package/dist/daemon.d.ts +392 -0
  210. package/dist/daemon.d.ts.map +1 -0
  211. package/dist/daemon.js +4711 -0
  212. package/dist/daemon.js.map +1 -0
  213. package/dist/event-outbox.d.ts +83 -0
  214. package/dist/event-outbox.d.ts.map +1 -0
  215. package/dist/event-outbox.js +440 -0
  216. package/dist/event-outbox.js.map +1 -0
  217. package/dist/fake-provider-cli.d.ts +13 -0
  218. package/dist/fake-provider-cli.d.ts.map +1 -0
  219. package/dist/fake-provider-cli.js +53 -0
  220. package/dist/fake-provider-cli.js.map +1 -0
  221. package/dist/generated-images.d.ts +2 -0
  222. package/dist/generated-images.d.ts.map +1 -0
  223. package/dist/generated-images.js +2 -0
  224. package/dist/generated-images.js.map +1 -0
  225. package/dist/index.cjs +69 -160
  226. package/dist/index.d.ts +6 -0
  227. package/dist/index.d.ts.map +1 -0
  228. package/dist/index.js +209 -0
  229. package/dist/index.js.map +1 -0
  230. package/dist/lifecycle-logger.d.ts +25 -0
  231. package/dist/lifecycle-logger.d.ts.map +1 -0
  232. package/dist/lifecycle-logger.js +73 -0
  233. package/dist/lifecycle-logger.js.map +1 -0
  234. package/dist/local-skill-scan.d.ts +21 -0
  235. package/dist/local-skill-scan.d.ts.map +1 -0
  236. package/dist/local-skill-scan.js +109 -0
  237. package/dist/local-skill-scan.js.map +1 -0
  238. package/dist/local-workspace-migration.d.ts +68 -0
  239. package/dist/local-workspace-migration.d.ts.map +1 -0
  240. package/dist/local-workspace-migration.js +157 -0
  241. package/dist/local-workspace-migration.js.map +1 -0
  242. package/dist/mcp-readiness.d.ts +59 -0
  243. package/dist/mcp-readiness.d.ts.map +1 -0
  244. package/dist/mcp-readiness.js +202 -0
  245. package/dist/mcp-readiness.js.map +1 -0
  246. package/dist/mcp-registration.d.ts +75 -0
  247. package/dist/mcp-registration.d.ts.map +1 -0
  248. package/dist/mcp-registration.js +563 -0
  249. package/dist/mcp-registration.js.map +1 -0
  250. package/dist/model-scan-runner.d.ts +15 -0
  251. package/dist/model-scan-runner.d.ts.map +1 -0
  252. package/dist/model-scan-runner.js +51 -0
  253. package/dist/model-scan-runner.js.map +1 -0
  254. package/dist/network-diagnostics.d.ts +8 -0
  255. package/dist/network-diagnostics.d.ts.map +1 -0
  256. package/dist/network-diagnostics.js +56 -0
  257. package/dist/network-diagnostics.js.map +1 -0
  258. package/dist/observable-map.d.ts +25 -0
  259. package/dist/observable-map.d.ts.map +1 -0
  260. package/dist/observable-map.js +42 -0
  261. package/dist/observable-map.js.map +1 -0
  262. package/dist/provider-auth-preflight.d.ts +22 -0
  263. package/dist/provider-auth-preflight.d.ts.map +1 -0
  264. package/dist/provider-auth-preflight.js +110 -0
  265. package/dist/provider-auth-preflight.js.map +1 -0
  266. package/dist/provider-model-discovery.d.ts +38 -0
  267. package/dist/provider-model-discovery.d.ts.map +1 -0
  268. package/dist/provider-model-discovery.js +519 -0
  269. package/dist/provider-model-discovery.js.map +1 -0
  270. package/dist/resume-fallback-env.d.ts +20 -0
  271. package/dist/resume-fallback-env.d.ts.map +1 -0
  272. package/dist/resume-fallback-env.js +30 -0
  273. package/dist/resume-fallback-env.js.map +1 -0
  274. package/dist/run-journal.d.ts +53 -0
  275. package/dist/run-journal.d.ts.map +1 -0
  276. package/dist/run-journal.js +193 -0
  277. package/dist/run-journal.js.map +1 -0
  278. package/dist/run-start-gate.d.ts +9 -0
  279. package/dist/run-start-gate.d.ts.map +1 -0
  280. package/dist/run-start-gate.js +24 -0
  281. package/dist/run-start-gate.js.map +1 -0
  282. package/dist/runtime-backends.d.ts +2 -0
  283. package/dist/runtime-backends.d.ts.map +1 -0
  284. package/dist/runtime-backends.js +2 -0
  285. package/dist/runtime-backends.js.map +1 -0
  286. package/dist/runtime-capabilities-sync.d.ts +33 -0
  287. package/dist/runtime-capabilities-sync.d.ts.map +1 -0
  288. package/dist/runtime-capabilities-sync.js +56 -0
  289. package/dist/runtime-capabilities-sync.js.map +1 -0
  290. package/dist/runtime-config.d.ts +24 -0
  291. package/dist/runtime-config.d.ts.map +1 -0
  292. package/dist/runtime-config.js +124 -0
  293. package/dist/runtime-config.js.map +1 -0
  294. package/dist/sandbox-outbox.d.ts +122 -0
  295. package/dist/sandbox-outbox.d.ts.map +1 -0
  296. package/dist/sandbox-outbox.js +180 -0
  297. package/dist/sandbox-outbox.js.map +1 -0
  298. package/dist/sandbox.d.ts +44 -0
  299. package/dist/sandbox.d.ts.map +1 -0
  300. package/dist/sandbox.js +438 -0
  301. package/dist/sandbox.js.map +1 -0
  302. package/dist/service-manager.d.ts +28 -0
  303. package/dist/service-manager.d.ts.map +1 -0
  304. package/dist/service-manager.js +259 -0
  305. package/dist/service-manager.js.map +1 -0
  306. package/dist/sleep-inhibitor.d.ts +111 -0
  307. package/dist/sleep-inhibitor.d.ts.map +1 -0
  308. package/dist/sleep-inhibitor.js +412 -0
  309. package/dist/sleep-inhibitor.js.map +1 -0
  310. package/dist/suspension-detector.d.ts +48 -0
  311. package/dist/suspension-detector.d.ts.map +1 -0
  312. package/dist/suspension-detector.js +89 -0
  313. package/dist/suspension-detector.js.map +1 -0
  314. package/dist/types.d.ts +6 -0
  315. package/dist/types.d.ts.map +1 -0
  316. package/dist/types.js +6 -0
  317. package/dist/types.js.map +1 -0
  318. package/dist/updater.d.ts +15 -0
  319. package/dist/updater.d.ts.map +1 -0
  320. package/dist/updater.js +50 -0
  321. package/dist/updater.js.map +1 -0
  322. package/dist/version.d.ts +2 -0
  323. package/dist/version.d.ts.map +1 -0
  324. package/dist/version.js +2 -0
  325. package/dist/version.js.map +1 -0
  326. package/dist/web-presenter.d.ts +55 -0
  327. package/dist/web-presenter.d.ts.map +1 -0
  328. package/dist/web-presenter.js +265 -0
  329. package/dist/web-presenter.js.map +1 -0
  330. package/dist/workspace-relocation.d.ts +22 -0
  331. package/dist/workspace-relocation.d.ts.map +1 -0
  332. package/dist/workspace-relocation.js +90 -0
  333. package/dist/workspace-relocation.js.map +1 -0
  334. package/dist/workspace-run-lease.d.ts +97 -0
  335. package/dist/workspace-run-lease.d.ts.map +1 -0
  336. package/dist/workspace-run-lease.js +241 -0
  337. package/dist/workspace-run-lease.js.map +1 -0
  338. package/dist/ws-client.d.ts +194 -0
  339. package/dist/ws-client.d.ts.map +1 -0
  340. package/dist/ws-client.js +282 -0
  341. package/dist/ws-client.js.map +1 -0
  342. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -3404,7 +3404,7 @@ var require_websocket = __commonJS({
3404
3404
  var http2 = require("http");
3405
3405
  var net = require("net");
3406
3406
  var tls = require("tls");
3407
- var { randomBytes: randomBytes13, createHash: createHash18 } = require("crypto");
3407
+ var { randomBytes: randomBytes13, createHash: createHash17 } = require("crypto");
3408
3408
  var { Duplex, Readable: Readable2 } = require("stream");
3409
3409
  var { URL: URL2 } = require("url");
3410
3410
  var PerMessageDeflate = require_permessage_deflate();
@@ -4061,7 +4061,7 @@ var require_websocket = __commonJS({
4061
4061
  abortHandshake(websocket, socket, "Invalid Upgrade header");
4062
4062
  return;
4063
4063
  }
4064
- const digest = createHash18("sha1").update(key + GUID).digest("base64");
4064
+ const digest = createHash17("sha1").update(key + GUID).digest("base64");
4065
4065
  if (res.headers["sec-websocket-accept"] !== digest) {
4066
4066
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
4067
4067
  return;
@@ -4428,7 +4428,7 @@ var require_websocket_server = __commonJS({
4428
4428
  var EventEmitter = require("events");
4429
4429
  var http2 = require("http");
4430
4430
  var { Duplex } = require("stream");
4431
- var { createHash: createHash18 } = require("crypto");
4431
+ var { createHash: createHash17 } = require("crypto");
4432
4432
  var extension = require_extension();
4433
4433
  var PerMessageDeflate = require_permessage_deflate();
4434
4434
  var subprotocol = require_subprotocol();
@@ -4725,7 +4725,7 @@ var require_websocket_server = __commonJS({
4725
4725
  );
4726
4726
  }
4727
4727
  if (this._state > RUNNING) return abortHandshake(socket, 503);
4728
- const digest = createHash18("sha1").update(key + GUID).digest("base64");
4728
+ const digest = createHash17("sha1").update(key + GUID).digest("base64");
4729
4729
  const headers = [
4730
4730
  "HTTP/1.1 101 Switching Protocols",
4731
4731
  "Upgrade: websocket",
@@ -15447,7 +15447,7 @@ function describeError(error61) {
15447
15447
  }
15448
15448
 
15449
15449
  // src/version.ts
15450
- var AGENT_VERSION = "0.1.87";
15450
+ var AGENT_VERSION = "0.1.88";
15451
15451
 
15452
15452
  // src/daemon-worktree.ts
15453
15453
  var import_node_child_process3 = require("child_process");
@@ -47731,8 +47731,6 @@ var MAX_INTERMEDIATE_EVENTS_PER_RUN = 200;
47731
47731
  var MAX_ENCRYPTED_OUTBOX_BYTES = 64 * 1024 * 1024;
47732
47732
  var ACK_TIMEOUT_MS = 1e4;
47733
47733
  var RETRY_DELAY_MS = 1e3;
47734
- var CONDENSATION_NOTICE = "Some detailed output was condensed while this computer was offline; the run result is preserved.";
47735
- var CONDENSATION_GAP = "\u2026";
47736
47734
  var TERMINAL_EVENT_TYPES = /* @__PURE__ */ new Set([
47737
47735
  "agent_run_finished",
47738
47736
  "query_complete",
@@ -47753,59 +47751,6 @@ function isTerminal(event) {
47753
47751
  function isBackgroundHeartbeat(event) {
47754
47752
  return event.type === "activity" && event.status === "background_work";
47755
47753
  }
47756
- function truncateUtf8(value2, maxBytes) {
47757
- const encoded = Buffer.from(value2, "utf8");
47758
- if (encoded.length <= maxBytes) return value2;
47759
- return `${encoded.subarray(0, maxBytes).toString("utf8").replace(/\uFFFD$/u, "")}\u2026`;
47760
- }
47761
- function terminalFingerprint(event) {
47762
- return (0, import_node_crypto4.createHash)("sha256").update(JSON.stringify(event)).digest("hex").slice(0, 16);
47763
- }
47764
- function condenseTerminalEvent(event) {
47765
- const fingerprint = terminalFingerprint(event);
47766
- const note = ` [Offline terminal detail condensed; fingerprint ${fingerprint}.]`;
47767
- if (event.type === "session_error") {
47768
- return {
47769
- type: "session_error",
47770
- error: `${truncateUtf8(event.error, 512)}${note}`
47771
- };
47772
- }
47773
- if (event.type === "session_complete" && !event.result) return event;
47774
- if (event.type !== "query_complete" && event.type !== "agent_run_finished" && event.type !== "complete" && event.type !== "session_complete") {
47775
- return event;
47776
- }
47777
- const result = event.result;
47778
- if (!result) return event;
47779
- const compactResult = {
47780
- success: result.success,
47781
- summary: `${truncateUtf8(result.summary ?? "", 512)}${note}`,
47782
- filesModified: (result.filesModified ?? []).slice(0, 4).map((file2) => truncateUtf8(file2, 128)),
47783
- planFilesCreated: (result.planFilesCreated ?? []).slice(0, 2).map((file2) => truncateUtf8(file2, 128)),
47784
- iterations: result.iterations,
47785
- ...result.error ? { error: truncateUtf8(result.error, 512) } : {},
47786
- ...result.providerSessionId ? { providerSessionId: truncateUtf8(result.providerSessionId, 256) } : {},
47787
- ...result.runtimeSessionId ? { runtimeSessionId: truncateUtf8(result.runtimeSessionId, 256) } : {},
47788
- ...result.backendKind ? { backendKind: result.backendKind } : {},
47789
- ...result.supportTier ? { supportTier: result.supportTier } : {},
47790
- ...result.usage ? { usage: result.usage } : {},
47791
- ...result.problem ? { problem: result.problem } : {}
47792
- };
47793
- if (event.type === "agent_run_finished") {
47794
- return {
47795
- type: "agent_run_finished",
47796
- result: compactResult,
47797
- ...event.failureDomain ? { failureDomain: event.failureDomain } : {},
47798
- ...event.causeProblemId ? { causeProblemId: event.causeProblemId } : {}
47799
- };
47800
- }
47801
- if (event.type === "query_complete") {
47802
- return { type: "query_complete", result: compactResult, ts: event.ts };
47803
- }
47804
- if (event.type === "session_complete") {
47805
- return { type: "session_complete", result: compactResult, ts: event.ts };
47806
- }
47807
- return { type: "complete", result: compactResult };
47808
- }
47809
47754
  function parentToolUseIdOf(event) {
47810
47755
  if ((event.type === "text" || event.type === "thinking") && typeof event.parentToolUseId === "string") {
47811
47756
  return event.parentToolUseId;
@@ -47873,6 +47818,7 @@ var EncryptedEventOutbox = class {
47873
47818
  this.journalDir = eventJournalDir(this.path);
47874
47819
  this.maxEncryptedBytes = options.maxEncryptedBytes ?? MAX_ENCRYPTED_OUTBOX_BYTES;
47875
47820
  this.maxIntermediateEventsPerRun = options.maxIntermediateEventsPerRun ?? MAX_INTERMEDIATE_EVENTS_PER_RUN;
47821
+ this.deliveryIntervalMs = options.deliveryIntervalMs ?? 0;
47876
47822
  this.ordinaryBatchMs = options.ordinaryBatchMs ?? EVENT_JOURNAL_ORDINARY_BATCH_MS;
47877
47823
  if (!Number.isSafeInteger(this.maxEncryptedBytes) || this.maxEncryptedBytes <= 0) {
47878
47824
  throw new Error("event outbox maxEncryptedBytes must be a positive integer");
@@ -47880,6 +47826,9 @@ var EncryptedEventOutbox = class {
47880
47826
  if (!Number.isSafeInteger(this.maxIntermediateEventsPerRun) || this.maxIntermediateEventsPerRun < 0) {
47881
47827
  throw new Error("event outbox maxIntermediateEventsPerRun must be a non-negative integer");
47882
47828
  }
47829
+ if (!Number.isSafeInteger(this.deliveryIntervalMs) || this.deliveryIntervalMs < 0) {
47830
+ throw new Error("event outbox deliveryIntervalMs must be a non-negative integer");
47831
+ }
47883
47832
  const pendingLegacy = [];
47884
47833
  const recovered = recoverEventJournal({
47885
47834
  legacyPath: this.path,
@@ -47953,7 +47902,7 @@ var EncryptedEventOutbox = class {
47953
47902
  importedLegacySnapshot: recovered.importedLegacySnapshot
47954
47903
  };
47955
47904
  this.hydrateFromSegments(segmentsForHydrate);
47956
- this.enforceCaps();
47905
+ this.enforceRetentionPolicy();
47957
47906
  this.persistAckState();
47958
47907
  }
47959
47908
  entries = [];
@@ -47964,6 +47913,8 @@ var EncryptedEventOutbox = class {
47964
47913
  inFlightEventId = null;
47965
47914
  ackTimer = null;
47966
47915
  retryTimer = null;
47916
+ deliveryTimer = null;
47917
+ lastDeliveryAtMs = 0;
47967
47918
  acknowledgementWaiters = /* @__PURE__ */ new Map();
47968
47919
  persistFailureLogged = false;
47969
47920
  compactionState = "idle";
@@ -47974,7 +47925,9 @@ var EncryptedEventOutbox = class {
47974
47925
  key;
47975
47926
  maxEncryptedBytes;
47976
47927
  maxIntermediateEventsPerRun;
47928
+ deliveryIntervalMs;
47977
47929
  ordinaryBatchMs;
47930
+ highWaterMarkLogged = false;
47978
47931
  pendingBytes = 0;
47979
47932
  cachedSegmentBytes = 0;
47980
47933
  cachedSegmentCount = 0;
@@ -48067,7 +48020,7 @@ var EncryptedEventOutbox = class {
48067
48020
  last.createdAtMs = Date.now();
48068
48021
  this.pendingBytes += estimateEntryBytes(last);
48069
48022
  this.rewriteQueued(last);
48070
- this.enforceCaps(runId);
48023
+ this.enforceRetentionPolicy(runId, false);
48071
48024
  return last.eventId;
48072
48025
  }
48073
48026
  const entry = {
@@ -48079,7 +48032,7 @@ var EncryptedEventOutbox = class {
48079
48032
  sequence: this.nextSequence(runId)
48080
48033
  };
48081
48034
  this.appendEntry(entry, isTerminal(event));
48082
- this.enforceCaps(runId);
48035
+ this.enforceRetentionPolicy(runId, isBackgroundHeartbeat(event));
48083
48036
  return entry.eventId;
48084
48037
  }
48085
48038
  /**
@@ -48110,7 +48063,7 @@ var EncryptedEventOutbox = class {
48110
48063
  explicitSource: true
48111
48064
  };
48112
48065
  this.appendEntry(entry, true);
48113
- this.enforceCaps(runId);
48066
+ this.enforceRetentionPolicy(runId, false);
48114
48067
  return eventId;
48115
48068
  }
48116
48069
  hasTerminalEvent(runId) {
@@ -48131,7 +48084,7 @@ var EncryptedEventOutbox = class {
48131
48084
  return min;
48132
48085
  }, null);
48133
48086
  const persistFailure = this.writer.getPersistFailure();
48134
- const overloaded = this.cachedSegmentBytes > this.maxEncryptedBytes || this.writer.depth() > 2e3;
48087
+ const overloaded = this.pendingBytes > this.maxEncryptedBytes || this.writer.depth() > 2e3;
48135
48088
  const degraded = persistFailure !== null || this.compactionState === "failed" || this.lastRecover.quarantinedSegments.length > 0;
48136
48089
  return {
48137
48090
  writerDepth: this.writer.depth(),
@@ -48155,13 +48108,21 @@ var EncryptedEventOutbox = class {
48155
48108
  disconnect() {
48156
48109
  this.clearAckTimer();
48157
48110
  this.clearRetryTimer();
48111
+ this.clearDeliveryTimer();
48158
48112
  this.inFlightEventId = null;
48159
48113
  }
48160
48114
  flush(socket) {
48161
48115
  if (!socket.connected || this.inFlightEventId || this.entries.length === 0) return;
48116
+ const deliveryDelayMs = this.lastDeliveryAtMs + this.deliveryIntervalMs - Date.now();
48117
+ if (deliveryDelayMs > 0) {
48118
+ this.scheduleDelivery(socket, deliveryDelayMs);
48119
+ return;
48120
+ }
48121
+ this.clearDeliveryTimer();
48162
48122
  const entry = this.pickDeliveryEntry();
48163
48123
  if (!entry) return;
48164
48124
  this.inFlightEventId = entry.eventId;
48125
+ this.lastDeliveryAtMs = Date.now();
48165
48126
  this.transmittedEventIds.add(entry.eventId);
48166
48127
  let settled = false;
48167
48128
  const settle = (result) => {
@@ -48223,119 +48184,59 @@ var EncryptedEventOutbox = class {
48223
48184
  if (removed) this.pendingBytes -= estimateEntryBytes(removed);
48224
48185
  this.writer.removeQueued(eventId);
48225
48186
  }
48226
- isDroppable(entry) {
48227
- return entry.eventId !== this.inFlightEventId && !entry.explicitSource && entry.kind !== "condensation_marker" && !isTerminal(entry.event);
48187
+ isDroppableHeartbeat(entry) {
48188
+ return entry.eventId !== this.inFlightEventId && !entry.explicitSource && entry.kind !== "condensation_marker" && isBackgroundHeartbeat(entry.event);
48228
48189
  }
48229
- pickDropCandidate(matches) {
48230
- const heartbeat = this.entries.find(
48231
- (entry) => matches(entry) && this.isDroppable(entry) && isBackgroundHeartbeat(entry.event)
48232
- );
48233
- if (heartbeat) return heartbeat;
48234
- return this.entries.find((entry) => matches(entry) && this.isDroppable(entry));
48235
- }
48236
- ensureCondensationMarker(runId, conversationId) {
48237
- if (this.entries.some((entry) => entry.runId === runId && entry.kind === "condensation_marker")) {
48238
- return;
48239
- }
48240
- const runEntry = this.entries.find((entry) => entry.runId === runId);
48241
- const markerConversationId = runEntry?.conversationId ?? conversationId;
48242
- if (!markerConversationId) return;
48243
- const alreadyNotified = this.condensedRunIds.has(runId);
48244
- const marker = {
48245
- eventId: (0, import_node_crypto4.randomUUID)(),
48246
- conversationId: markerConversationId,
48247
- runId,
48248
- event: {
48249
- type: "text",
48250
- text: alreadyNotified ? CONDENSATION_GAP : CONDENSATION_NOTICE,
48251
- ts: Date.now()
48252
- },
48253
- createdAtMs: Date.now(),
48254
- sequence: this.nextSequence(runId),
48255
- kind: "condensation_marker"
48256
- };
48257
- const insertAt = this.entries.findIndex(
48258
- (entry) => entry.runId === runId && entry.eventId !== this.inFlightEventId
48259
- );
48260
- let spliceAt = insertAt === -1 ? this.entries.length : insertAt;
48261
- if (insertAt !== -1 && this.entries[insertAt]?.event.type === "start") {
48262
- spliceAt = insertAt + 1;
48263
- }
48264
- this.entries.splice(spliceAt, 0, marker);
48265
- this.pendingBytes += estimateEntryBytes(marker);
48266
- this.trackRun(runId);
48267
- this.writer.enqueue(this.toRecord(marker), true);
48190
+ pickHeartbeatDropCandidate(matches) {
48191
+ return this.entries.find((entry) => matches(entry) && this.isDroppableHeartbeat(entry));
48268
48192
  }
48269
48193
  dropEntry(entry) {
48270
48194
  this.removeEntry(entry.eventId);
48271
48195
  this.acknowledgedEventIds.add(entry.eventId);
48272
48196
  }
48273
- enforceCaps(preferredRunId) {
48274
- const lossCountByRunId = /* @__PURE__ */ new Map();
48275
- const lossConversationByRunId = /* @__PURE__ */ new Map();
48276
- const terminalCondensedRunIds = /* @__PURE__ */ new Set();
48277
- const runIds = preferredRunId ? [preferredRunId] : [...new Set(this.entries.map((entry) => entry.runId))];
48197
+ enforceRetentionPolicy(preferredRunId, pruneRunHeartbeats = true) {
48198
+ const droppedHeartbeatsByRunId = /* @__PURE__ */ new Map();
48199
+ const runIds = pruneRunHeartbeats ? preferredRunId ? [preferredRunId] : [...new Set(this.entries.map((entry) => entry.runId))] : [];
48278
48200
  for (const runId of runIds) {
48279
- while (this.entries.filter((entry) => entry.runId === runId && this.isDroppable(entry)).length > this.maxIntermediateEventsPerRun) {
48280
- const drop = this.pickDropCandidate((entry) => entry.runId === runId);
48281
- if (!drop) break;
48282
- this.dropEntry(drop);
48283
- lossCountByRunId.set(runId, (lossCountByRunId.get(runId) ?? 0) + 1);
48284
- lossConversationByRunId.set(runId, drop.conversationId);
48285
- }
48286
- }
48287
- while (this.pendingBytes > this.maxEncryptedBytes) {
48288
- const drop = this.pickDropCandidate(() => true);
48289
- if (drop) {
48290
- this.dropEntry(drop);
48291
- lossCountByRunId.set(drop.runId, (lossCountByRunId.get(drop.runId) ?? 0) + 1);
48292
- lossConversationByRunId.set(drop.runId, drop.conversationId);
48293
- continue;
48294
- }
48295
- const terminal = this.entries.find(
48296
- (entry) => entry.eventId !== this.inFlightEventId && !entry.explicitSource && isTerminal(entry.event) && !entry.terminalCondensed
48201
+ const heartbeats = this.entries.filter(
48202
+ (entry) => entry.runId === runId && this.isDroppableHeartbeat(entry)
48297
48203
  );
48298
- if (!terminal) break;
48299
- this.pendingBytes -= estimateEntryBytes(terminal);
48300
- terminal.event = condenseTerminalEvent(terminal.event);
48301
- terminal.terminalCondensed = true;
48302
- this.pendingBytes += estimateEntryBytes(terminal);
48303
- if (this.writer.hasQueued(terminal.eventId)) {
48304
- this.rewriteQueued(terminal);
48305
- } else {
48306
- this.writer.enqueue(this.toRecord(terminal), true);
48204
+ const excessHeartbeats = heartbeats.slice(
48205
+ 0,
48206
+ Math.max(0, heartbeats.length - this.maxIntermediateEventsPerRun)
48207
+ );
48208
+ for (const drop of excessHeartbeats) {
48209
+ this.dropEntry(drop);
48210
+ droppedHeartbeatsByRunId.set(runId, (droppedHeartbeatsByRunId.get(runId) ?? 0) + 1);
48307
48211
  }
48308
- terminalCondensedRunIds.add(terminal.runId);
48309
- }
48310
- for (const runId of /* @__PURE__ */ new Set([...lossCountByRunId.keys(), ...terminalCondensedRunIds])) {
48311
- this.ensureCondensationMarker(runId, lossConversationByRunId.get(runId));
48312
48212
  }
48313
48213
  while (this.pendingBytes > this.maxEncryptedBytes) {
48314
- const drop = this.pickDropCandidate(() => true);
48214
+ const drop = this.pickHeartbeatDropCandidate(() => true);
48315
48215
  if (!drop) break;
48316
48216
  this.dropEntry(drop);
48317
- lossCountByRunId.set(drop.runId, (lossCountByRunId.get(drop.runId) ?? 0) + 1);
48318
- lossConversationByRunId.set(drop.runId, drop.conversationId);
48319
- this.ensureCondensationMarker(drop.runId, drop.conversationId);
48320
- }
48321
- for (const [runId, count] of lossCountByRunId) {
48322
- this.pushLog(
48323
- `event_outbox_quota run=${runId} dropped_nonessential=${count} max_encrypted_bytes=${this.maxEncryptedBytes}`
48324
- );
48217
+ droppedHeartbeatsByRunId.set(drop.runId, (droppedHeartbeatsByRunId.get(drop.runId) ?? 0) + 1);
48325
48218
  }
48326
- for (const runId of terminalCondensedRunIds) {
48219
+ for (const [runId, count] of droppedHeartbeatsByRunId) {
48327
48220
  this.pushLog(
48328
- `event_outbox_terminal_condensed run=${runId} max_encrypted_bytes=${this.maxEncryptedBytes}`
48221
+ `event_outbox_heartbeat_pruned run=${runId} count=${count} max_encrypted_bytes=${this.maxEncryptedBytes}`
48329
48222
  );
48330
48223
  }
48331
- if (this.pendingBytes > this.maxEncryptedBytes) {
48224
+ if (this.pendingBytes > this.maxEncryptedBytes && !this.highWaterMarkLogged) {
48225
+ this.highWaterMarkLogged = true;
48332
48226
  this.pushLog(
48333
- `event_outbox_terminal_reserve_exceeded bytes=${this.pendingBytes} max_encrypted_bytes=${this.maxEncryptedBytes}`
48227
+ `event_outbox_high_watermark bytes=${this.pendingBytes} pending_entries=${this.entries.length} max_encrypted_bytes=${this.maxEncryptedBytes}`
48334
48228
  );
48335
48229
  }
48336
- if (lossCountByRunId.size > 0 || terminalCondensedRunIds.size > 0) {
48337
- this.persistAckState();
48338
- }
48230
+ if (this.pendingBytes <= this.maxEncryptedBytes) this.highWaterMarkLogged = false;
48231
+ if (droppedHeartbeatsByRunId.size > 0) this.persistAckState();
48232
+ }
48233
+ scheduleDelivery(socket, delayMs) {
48234
+ if (this.deliveryTimer) return;
48235
+ this.deliveryTimer = setTimeout(() => {
48236
+ this.deliveryTimer = null;
48237
+ this.flush(socket);
48238
+ }, delayMs);
48239
+ this.deliveryTimer.unref?.();
48339
48240
  }
48340
48241
  persistAckState() {
48341
48242
  try {
@@ -48401,6 +48302,10 @@ var EncryptedEventOutbox = class {
48401
48302
  if (this.retryTimer) clearTimeout(this.retryTimer);
48402
48303
  this.retryTimer = null;
48403
48304
  }
48305
+ clearDeliveryTimer() {
48306
+ if (this.deliveryTimer) clearTimeout(this.deliveryTimer);
48307
+ this.deliveryTimer = null;
48308
+ }
48404
48309
  };
48405
48310
 
48406
48311
  // src/provider-auth-preflight.ts
@@ -79212,7 +79117,11 @@ async function startDaemon(args) {
79212
79117
  eventOutbox = new EncryptedEventOutbox(
79213
79118
  `${configPath}.event-outbox.enc`,
79214
79119
  eventSpoolKey,
79215
- pushLog
79120
+ pushLog,
79121
+ // Keep replay below the legacy runtime-socket ceiling during rolling
79122
+ // upgrades. Stable acknowledgements still make the stream eventually
79123
+ // consistent; pacing only trades catch-up latency for connection health.
79124
+ { deliveryIntervalMs: 50 }
79216
79125
  );
79217
79126
  nativeHookInbox = new EncryptedNativeHookInbox(nativeHookInboxPath(configPath), eventSpoolKey, {
79218
79127
  recoverClaims: true,
@@ -95651,7 +95560,7 @@ var SandboxEventDispatcher = class {
95651
95560
  get active() {
95652
95561
  return this.outbox !== void 0 && this.outboxSocket !== void 0;
95653
95562
  }
95654
- /** Set the run id used to bucket per-run caps / terminal condensation. */
95563
+ /** Set the run id used for fair replay and per-run heartbeat pruning. */
95655
95564
  setRunId(runId) {
95656
95565
  this.currentRunId = runId;
95657
95566
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Alan Sandbox Agent
3
+ * Runs inside E2B sandbox, connects to WS server, executes CoreAgent.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/dist/index.js ADDED
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Alan Sandbox Agent
3
+ * Runs inside E2B sandbox, connects to WS server, executes CoreAgent.
4
+ */
5
+ import { spawnSync } from "node:child_process";
6
+ import { getDaemonCliEnvironment } from "./cli-executable.js";
7
+ import { HELP_TEXT, resolveCommand } from "./cli-help.js";
8
+ import { loginWithDeviceCode, logoutDaemon, printDoctor, printScanModels, printStatus, recoverDaemonConnection, revokeRuntimeToken, rotateRuntimeToken, runDaemon, setupDaemon, stopDaemon, } from "./daemon.js";
9
+ import { AgentLifecycleLogger, lifecycleContextFromEnv } from "./lifecycle-logger.js";
10
+ import { decodeResumeFallbackContext, RESUME_FALLBACK_CONTEXT_ENV } from "./resume-fallback-env.js";
11
+ import { runSandbox } from "./sandbox.js";
12
+ import { installDaemonService, printDaemonServiceStatus, uninstallDaemonService, } from "./service-manager.js";
13
+ import { AGENT_VERSION } from "./version.js";
14
+ /**
15
+ * Report the commit identity this session will actually use.
16
+ *
17
+ * Two independent carriers have to agree: the GIT_AUTHOR / GIT_COMMITTER env
18
+ * injected on this process, and the sandbox's git config. Neither is verified
19
+ * anywhere else — a mismatch or a missing pair previously surfaced only as a
20
+ * mis-attributed commit, discovered after the fact. `getDaemonCliEnvironment()`
21
+ * is the same env the CLI child receives, so this reads what the CLI will read.
22
+ */
23
+ function logEffectiveGitIdentity(lifecycle, projectPath) {
24
+ const readConfig = (key) => {
25
+ try {
26
+ const result = spawnSync("git", ["config", "--get", key], {
27
+ cwd: projectPath,
28
+ env: getDaemonCliEnvironment(),
29
+ encoding: "utf8",
30
+ timeout: 5000,
31
+ });
32
+ const value = result.status === 0 ? result.stdout.trim() : "";
33
+ return value || null;
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ };
39
+ const envName = process.env.GIT_AUTHOR_NAME || null;
40
+ const envEmail = process.env.GIT_AUTHOR_EMAIL || null;
41
+ const configName = readConfig("user.name");
42
+ const configEmail = readConfig("user.email");
43
+ const payload = {
44
+ projectPath,
45
+ envAuthorName: envName,
46
+ envAuthorEmail: envEmail,
47
+ configUserName: configName,
48
+ configUserEmail: configEmail,
49
+ };
50
+ if (!envEmail && !configEmail) {
51
+ lifecycle.error("sandbox_agent_git_identity_missing", payload);
52
+ return;
53
+ }
54
+ if (envEmail && configEmail && envEmail !== configEmail) {
55
+ lifecycle.error("sandbox_agent_git_identity_mismatch", payload);
56
+ return;
57
+ }
58
+ lifecycle.info("sandbox_agent_git_identity", payload);
59
+ }
60
+ async function runSessionFromEnv() {
61
+ const wsUrl = process.env.ALAN_WS_URL;
62
+ const sessionId = process.env.ALAN_SESSION_ID;
63
+ const taskId = process.env.ALAN_TASK_ID;
64
+ const sessionToken = process.env.ALAN_SESSION_TOKEN;
65
+ const task = process.env.ALAN_TASK;
66
+ const teamId = process.env.ALAN_TEAM_ID || undefined;
67
+ const projectPath = process.env.ALAN_PROJECT_PATH || "/home/user/workspace";
68
+ const backendKind = process.env.ALAN_BACKEND_KIND || "codex_app_server";
69
+ const agentId = process.env.ALAN_AGENT_ID || undefined;
70
+ const agentPrompt = process.env.ALAN_AGENT_PROMPT || undefined;
71
+ const mode = process.env.ALAN_MODE || "agent";
72
+ const model = process.env.ALAN_MODEL;
73
+ const contextWindow = process.env.ALAN_CONTEXT_WINDOW || undefined;
74
+ const effortLevel = process.env.ALAN_EFFORT_LEVEL || undefined;
75
+ const providerSessionId = process.env.ALAN_PROVIDER_SESSION_ID || undefined;
76
+ // Compact recent-transcript for the resume-triggered first turn. Base64 so the
77
+ // multi-line block survives every provider env-injection path (E2B real env map
78
+ // and Daytona `su -c` shell interpolation) unmangled — mirrors ALAN_ENV_FILE_B64.
79
+ const resumeFallbackContext = decodeResumeFallbackContext(process.env[RESUME_FALLBACK_CONTEXT_ENV]);
80
+ const workflowId = process.env.ALAN_WORKFLOW_ID || undefined;
81
+ const workflowExecutionId = process.env.ALAN_WORKFLOW_EXECUTION_ID || undefined;
82
+ const sandboxId = process.env.ALAN_SANDBOX_ID || undefined;
83
+ const provider = process.env.ALAN_SANDBOX_PROVIDER || undefined;
84
+ const runId = process.env.ALAN_RUN_ID || undefined;
85
+ const lifecycle = new AgentLifecycleLogger(lifecycleContextFromEnv(process.env));
86
+ if (!wsUrl || !sessionId || !taskId || !sessionToken || task == null) {
87
+ lifecycle.error("sandbox_agent_bootstrap_missing_env", {
88
+ hasWsUrl: Boolean(wsUrl),
89
+ hasConversationId: Boolean(sessionId),
90
+ hasTaskId: Boolean(taskId),
91
+ hasSessionToken: Boolean(sessionToken),
92
+ hasTask: task != null,
93
+ });
94
+ throw new Error("run-session is an internal Alan sandbox/session command and must be launched by Alan with session env vars. " +
95
+ "Missing required env vars: ALAN_WS_URL, ALAN_SESSION_ID, ALAN_TASK_ID, ALAN_SESSION_TOKEN, ALAN_TASK");
96
+ }
97
+ lifecycle.info("sandbox_agent_process_start", {
98
+ sessionId,
99
+ projectPath,
100
+ agentId,
101
+ mode,
102
+ model,
103
+ });
104
+ logEffectiveGitIdentity(lifecycle, projectPath);
105
+ await runSandbox({
106
+ wsUrl,
107
+ sessionId,
108
+ taskId,
109
+ sessionToken,
110
+ task,
111
+ teamId,
112
+ projectPath,
113
+ backendKind,
114
+ agentId,
115
+ agentPrompt,
116
+ mode,
117
+ model,
118
+ contextWindow,
119
+ effortLevel,
120
+ providerSessionId,
121
+ resumeFallbackContext,
122
+ workflowId,
123
+ workflowExecutionId,
124
+ sandboxId,
125
+ provider,
126
+ runId,
127
+ lifecycle,
128
+ maxIterations: 50,
129
+ });
130
+ }
131
+ async function main() {
132
+ if (process.argv.includes("--version")) {
133
+ process.stdout.write(`${AGENT_VERSION}\n`);
134
+ return;
135
+ }
136
+ const { command, commandArgs } = resolveCommand(process.argv.slice(2), process.env);
137
+ if (command === "help") {
138
+ process.stdout.write(HELP_TEXT);
139
+ return;
140
+ }
141
+ if (command === "setup") {
142
+ await setupDaemon(commandArgs);
143
+ return;
144
+ }
145
+ if (command === "login") {
146
+ await loginWithDeviceCode(commandArgs);
147
+ return;
148
+ }
149
+ if (command === "daemon") {
150
+ await runDaemon(commandArgs);
151
+ return;
152
+ }
153
+ if (command === "service" && commandArgs[0] === "install") {
154
+ installDaemonService(commandArgs.slice(1));
155
+ return;
156
+ }
157
+ if (command === "service" && commandArgs[0] === "uninstall") {
158
+ uninstallDaemonService(commandArgs.slice(1));
159
+ return;
160
+ }
161
+ if (command === "service" && commandArgs[0] === "status") {
162
+ printDaemonServiceStatus(commandArgs.slice(1));
163
+ return;
164
+ }
165
+ if (command === "stop") {
166
+ await stopDaemon(commandArgs);
167
+ return;
168
+ }
169
+ if (command === "recover") {
170
+ await recoverDaemonConnection(commandArgs);
171
+ return;
172
+ }
173
+ if (command === "status") {
174
+ await printStatus();
175
+ return;
176
+ }
177
+ if (command === "doctor") {
178
+ await printDoctor(commandArgs);
179
+ return;
180
+ }
181
+ if (command === "scan-models") {
182
+ await printScanModels(commandArgs);
183
+ return;
184
+ }
185
+ if (command === "token" && commandArgs[0] === "rotate") {
186
+ await rotateRuntimeToken(commandArgs.slice(1));
187
+ return;
188
+ }
189
+ if (command === "token" && commandArgs[0] === "revoke") {
190
+ await revokeRuntimeToken(commandArgs.slice(1));
191
+ return;
192
+ }
193
+ if (command === "logout") {
194
+ await logoutDaemon();
195
+ return;
196
+ }
197
+ if (command === "run-session") {
198
+ await runSessionFromEnv();
199
+ return;
200
+ }
201
+ throw new Error(`Unknown command: ${command}\n\n${HELP_TEXT}`);
202
+ }
203
+ main().catch((error) => {
204
+ new AgentLifecycleLogger(lifecycleContextFromEnv(process.env)).error("sandbox_agent_fatal", {
205
+ error: error instanceof Error ? error : new Error(String(error)),
206
+ });
207
+ process.exit(1);
208
+ });
209
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface AgentLifecycleContext {
2
+ taskId?: string;
3
+ conversationId?: string;
4
+ runId?: string;
5
+ sandboxId?: string;
6
+ provider?: string;
7
+ backendKind?: string;
8
+ agentVersion?: string;
9
+ }
10
+ export type AgentLifecycleLevel = "debug" | "info" | "warn" | "error";
11
+ type AgentLifecycleFields = Record<string, unknown>;
12
+ export declare class AgentLifecycleLogger {
13
+ private context;
14
+ constructor(context?: AgentLifecycleContext);
15
+ setContext(context: AgentLifecycleContext): void;
16
+ child(context: AgentLifecycleContext): AgentLifecycleLogger;
17
+ debug(event: string, fields?: AgentLifecycleFields): void;
18
+ info(event: string, fields?: AgentLifecycleFields): void;
19
+ warn(event: string, fields?: AgentLifecycleFields): void;
20
+ error(event: string, fields?: AgentLifecycleFields): void;
21
+ private log;
22
+ }
23
+ export declare function lifecycleContextFromEnv(env: NodeJS.ProcessEnv): AgentLifecycleContext;
24
+ export {};
25
+ //# sourceMappingURL=lifecycle-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-logger.d.ts","sourceRoot":"","sources":["../src/lifecycle-logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,GAAE,qBAA0B;IAI/C,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAIhD,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB;IAI3D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI5D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,IAAI;IAI7D,OAAO,CAAC,GAAG;CAWZ;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,qBAAqB,CAUrF"}