@agimon-ai/doompi-runner 0.0.1-alpha.69 → 0.0.1-alpha.70

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 (1282) hide show
  1. package/README.md +9 -1
  2. package/dist/ansi-scrub.cjs +1 -0
  3. package/dist/ansi-scrub.d.cts +2 -0
  4. package/dist/ansi-scrub.d.mts +2 -0
  5. package/dist/ansi-scrub.mjs +1 -0
  6. package/dist/api-contracts.cjs +1 -0
  7. package/dist/api-contracts.d.cts +2 -0
  8. package/dist/api-contracts.d.mts +2 -0
  9. package/dist/api-contracts.mjs +1 -0
  10. package/dist/bash-render.cjs +1 -0
  11. package/dist/bash-render.d.cts +2 -0
  12. package/dist/bash-render.d.mts +2 -0
  13. package/dist/bash-render.mjs +1 -0
  14. package/dist/bash-run-service.cjs +1 -0
  15. package/dist/bash-run-service.d.cts +3 -0
  16. package/dist/bash-run-service.d.mts +3 -0
  17. package/dist/bash-run-service.mjs +1 -0
  18. package/dist/bash-schema.cjs +1 -0
  19. package/dist/bash-schema.d.cts +3 -0
  20. package/dist/bash-schema.d.mts +3 -0
  21. package/dist/bash-schema.mjs +1 -0
  22. package/dist/bash-tool.cjs +1 -0
  23. package/dist/bash-tool.d.cts +4 -0
  24. package/dist/bash-tool.d.mts +4 -0
  25. package/dist/bash-tool.mjs +1 -0
  26. package/dist/bin/cli.cjs +3 -3
  27. package/dist/bin/cli.cjs.map +1 -1
  28. package/dist/bin/cli.d.cts.map +1 -1
  29. package/dist/bin/cli.d.mts.map +1 -1
  30. package/dist/bin/cli.mjs +3 -3
  31. package/dist/bin/cli.mjs.map +1 -1
  32. package/dist/bin/logSink.cjs +1 -1
  33. package/dist/bin/logSink.cjs.map +1 -1
  34. package/dist/bin/logSink.d.cts.map +1 -1
  35. package/dist/bin/logSink.d.mts.map +1 -1
  36. package/dist/bin/logSink.mjs +1 -1
  37. package/dist/bin/logSink.mjs.map +1 -1
  38. package/dist/bin/runnerHost.cjs +1 -1
  39. package/dist/bin/runnerHost.cjs.map +1 -1
  40. package/dist/bin/runnerHost.d.cts.map +1 -1
  41. package/dist/bin/runnerHost.d.mts.map +1 -1
  42. package/dist/bin/runnerHost.mjs +1 -1
  43. package/dist/bin/runnerHost.mjs.map +1 -1
  44. package/dist/cli-app.cjs +1 -0
  45. package/dist/cli-app.d.cts +2 -0
  46. package/dist/cli-app.d.mts +2 -0
  47. package/dist/cli-app.mjs +1 -0
  48. package/dist/clock.cjs +1 -0
  49. package/dist/clock.d.cts +3 -0
  50. package/dist/clock.d.mts +3 -0
  51. package/dist/clock.mjs +1 -0
  52. package/dist/compaction.cjs +1 -1
  53. package/dist/compaction.d.cts +2 -2
  54. package/dist/compaction.d.mts +2 -2
  55. package/dist/compaction.mjs +1 -1
  56. package/dist/config.cjs +1 -1
  57. package/dist/config.d.cts +2 -1
  58. package/dist/config.d.mts +2 -1
  59. package/dist/config.mjs +1 -1
  60. package/dist/constants/ansiScrub.cjs +2 -0
  61. package/dist/constants/ansiScrub.cjs.map +1 -0
  62. package/dist/constants/ansiScrub.mjs +2 -0
  63. package/dist/constants/ansiScrub.mjs.map +1 -0
  64. package/dist/constants/bashRender.cjs +2 -0
  65. package/dist/constants/bashRender.cjs.map +1 -0
  66. package/dist/constants/bashRender.mjs +2 -0
  67. package/dist/constants/bashRender.mjs.map +1 -0
  68. package/dist/constants/bashResult.cjs +2 -0
  69. package/dist/constants/bashResult.cjs.map +1 -0
  70. package/dist/constants/bashResult.mjs +2 -0
  71. package/dist/constants/bashResult.mjs.map +1 -0
  72. package/dist/constants/bashRunService.cjs +2 -0
  73. package/dist/constants/bashRunService.cjs.map +1 -0
  74. package/dist/constants/bashRunService.mjs +2 -0
  75. package/dist/constants/bashRunService.mjs.map +1 -0
  76. package/dist/constants/bashTool.cjs +2 -0
  77. package/dist/constants/bashTool.cjs.map +1 -0
  78. package/dist/constants/bashTool.d.cts +5 -0
  79. package/dist/constants/bashTool.d.cts.map +1 -0
  80. package/dist/constants/bashTool.d.mts +5 -0
  81. package/dist/constants/bashTool.d.mts.map +1 -0
  82. package/dist/constants/bashTool.mjs +2 -0
  83. package/dist/constants/bashTool.mjs.map +1 -0
  84. package/dist/constants/cliApp.cjs +2 -0
  85. package/dist/constants/cliApp.cjs.map +1 -0
  86. package/dist/constants/cliApp.mjs +2 -0
  87. package/dist/constants/cliApp.mjs.map +1 -0
  88. package/dist/constants/compaction.cjs +2 -0
  89. package/dist/constants/compaction.cjs.map +1 -0
  90. package/dist/constants/compaction.mjs +2 -0
  91. package/dist/constants/compaction.mjs.map +1 -0
  92. package/dist/constants/format.cjs +2 -0
  93. package/dist/constants/format.cjs.map +1 -0
  94. package/dist/constants/format.d.cts +5 -0
  95. package/dist/constants/format.d.cts.map +1 -0
  96. package/dist/constants/format.d.mts +5 -0
  97. package/dist/constants/format.d.mts.map +1 -0
  98. package/dist/constants/format.mjs +2 -0
  99. package/dist/constants/format.mjs.map +1 -0
  100. package/dist/constants/headless.cjs +2 -0
  101. package/dist/constants/headless.cjs.map +1 -0
  102. package/dist/constants/headless.mjs +2 -0
  103. package/dist/constants/headless.mjs.map +1 -0
  104. package/dist/constants/launcher.cjs +2 -0
  105. package/dist/constants/launcher.cjs.map +1 -0
  106. package/dist/constants/launcher.mjs +2 -0
  107. package/dist/constants/launcher.mjs.map +1 -0
  108. package/dist/constants/lifeline.cjs +2 -0
  109. package/dist/constants/lifeline.cjs.map +1 -0
  110. package/dist/constants/lifeline.mjs +2 -0
  111. package/dist/constants/lifeline.mjs.map +1 -0
  112. package/dist/constants/logReader.cjs +2 -0
  113. package/dist/constants/logReader.cjs.map +1 -0
  114. package/dist/constants/logReader.mjs +2 -0
  115. package/dist/constants/logReader.mjs.map +1 -0
  116. package/dist/constants/ptyHost.cjs +2 -0
  117. package/dist/constants/ptyHost.cjs.map +1 -0
  118. package/dist/constants/ptyHost.mjs +2 -0
  119. package/dist/constants/ptyHost.mjs.map +1 -0
  120. package/dist/constants/reconcile.cjs +2 -0
  121. package/dist/constants/reconcile.cjs.map +1 -0
  122. package/dist/constants/reconcile.mjs +2 -0
  123. package/dist/constants/reconcile.mjs.map +1 -0
  124. package/dist/constants/rmuxBackend.cjs +2 -0
  125. package/dist/constants/rmuxBackend.cjs.map +1 -0
  126. package/dist/constants/rmuxBackend.mjs +2 -0
  127. package/dist/constants/rmuxBackend.mjs.map +1 -0
  128. package/dist/constants/rtkProcessor.cjs +2 -0
  129. package/dist/constants/rtkProcessor.cjs.map +1 -0
  130. package/dist/constants/rtkProcessor.d.cts +4 -0
  131. package/dist/constants/rtkProcessor.d.cts.map +1 -0
  132. package/dist/constants/rtkProcessor.d.mts +4 -0
  133. package/dist/constants/rtkProcessor.d.mts.map +1 -0
  134. package/dist/constants/rtkProcessor.mjs +2 -0
  135. package/dist/constants/rtkProcessor.mjs.map +1 -0
  136. package/dist/constants/runnerConfig.cjs +2 -0
  137. package/dist/constants/runnerConfig.cjs.map +1 -0
  138. package/dist/constants/runnerConfig.d.cts +25 -0
  139. package/dist/constants/runnerConfig.d.cts.map +1 -0
  140. package/dist/constants/runnerConfig.d.mts +25 -0
  141. package/dist/constants/runnerConfig.d.mts.map +1 -0
  142. package/dist/constants/runnerConfig.mjs +2 -0
  143. package/dist/constants/runnerConfig.mjs.map +1 -0
  144. package/dist/constants/runnerLogApi.cjs +2 -0
  145. package/dist/constants/runnerLogApi.cjs.map +1 -0
  146. package/dist/constants/runnerLogApi.mjs +2 -0
  147. package/dist/constants/runnerLogApi.mjs.map +1 -0
  148. package/dist/constants/runnerNamer.cjs +2 -0
  149. package/dist/constants/runnerNamer.cjs.map +1 -0
  150. package/dist/constants/runnerNamer.mjs +2 -0
  151. package/dist/constants/runnerNamer.mjs.map +1 -0
  152. package/dist/constants/runnerPaths.cjs +2 -0
  153. package/dist/constants/runnerPaths.cjs.map +1 -0
  154. package/dist/constants/runnerPaths.mjs +2 -0
  155. package/dist/constants/runnerPaths.mjs.map +1 -0
  156. package/dist/constants/runnerRegistry.cjs +2 -0
  157. package/dist/constants/runnerRegistry.cjs.map +1 -0
  158. package/dist/constants/runnerRegistry.mjs +2 -0
  159. package/dist/constants/runnerRegistry.mjs.map +1 -0
  160. package/dist/constants/runnerRuntime.cjs +2 -0
  161. package/dist/constants/runnerRuntime.cjs.map +1 -0
  162. package/dist/constants/runnerRuntime.mjs +2 -0
  163. package/dist/constants/runnerRuntime.mjs.map +1 -0
  164. package/dist/constants/runnerSettings.cjs +2 -0
  165. package/dist/constants/runnerSettings.cjs.map +1 -0
  166. package/dist/constants/runnerSettings.mjs +2 -0
  167. package/dist/constants/runnerSettings.mjs.map +1 -0
  168. package/dist/constants/runnerSpace.cjs +2 -0
  169. package/dist/constants/runnerSpace.cjs.map +1 -0
  170. package/dist/constants/runnerSpace.mjs +2 -0
  171. package/dist/constants/runnerSpace.mjs.map +1 -0
  172. package/dist/constants/runners.cjs +2 -0
  173. package/dist/constants/runners.cjs.map +1 -0
  174. package/dist/constants/runners.mjs +2 -0
  175. package/dist/constants/runners.mjs.map +1 -0
  176. package/dist/constants/runnersCommand.cjs +2 -0
  177. package/dist/constants/runnersCommand.cjs.map +1 -0
  178. package/dist/constants/runnersCommand.mjs +2 -0
  179. package/dist/constants/runnersCommand.mjs.map +1 -0
  180. package/dist/constants/session.cjs +2 -0
  181. package/dist/constants/session.cjs.map +1 -0
  182. package/dist/constants/session.d.cts +4 -0
  183. package/dist/constants/session.d.cts.map +1 -0
  184. package/dist/constants/session.d.mts +4 -0
  185. package/dist/constants/session.d.mts.map +1 -0
  186. package/dist/constants/session.mjs +2 -0
  187. package/dist/constants/session.mjs.map +1 -0
  188. package/dist/constants/spawner.cjs +2 -0
  189. package/dist/constants/spawner.cjs.map +1 -0
  190. package/dist/constants/spawner.mjs +2 -0
  191. package/dist/constants/spawner.mjs.map +1 -0
  192. package/dist/constants/tmuxBackend.cjs +2 -0
  193. package/dist/constants/tmuxBackend.cjs.map +1 -0
  194. package/dist/constants/tmuxBackend.mjs +2 -0
  195. package/dist/constants/tmuxBackend.mjs.map +1 -0
  196. package/dist/constants/tokenEstimate.cjs +2 -0
  197. package/dist/constants/tokenEstimate.cjs.map +1 -0
  198. package/dist/constants/tokenEstimate.mjs +2 -0
  199. package/dist/constants/tokenEstimate.mjs.map +1 -0
  200. package/dist/constants/webRunnerLog.cjs +2 -0
  201. package/dist/constants/webRunnerLog.cjs.map +1 -0
  202. package/dist/constants/webRunnerLog.mjs +2 -0
  203. package/dist/constants/webRunnerLog.mjs.map +1 -0
  204. package/dist/constants/webRunnerRuns.cjs +2 -0
  205. package/dist/constants/webRunnerRuns.cjs.map +1 -0
  206. package/dist/constants/webRunnerRuns.mjs +2 -0
  207. package/dist/constants/webRunnerRuns.mjs.map +1 -0
  208. package/dist/constants/webRunners.cjs.map +1 -0
  209. package/dist/constants/webRunners.mjs.map +1 -0
  210. package/dist/controllers/cliApp.cjs +6 -0
  211. package/dist/controllers/cliApp.cjs.map +1 -0
  212. package/dist/controllers/cliApp.d.cts +18 -0
  213. package/dist/controllers/cliApp.d.cts.map +1 -0
  214. package/dist/controllers/cliApp.d.mts +18 -0
  215. package/dist/controllers/cliApp.d.mts.map +1 -0
  216. package/dist/controllers/cliApp.mjs +6 -0
  217. package/dist/controllers/cliApp.mjs.map +1 -0
  218. package/dist/controllers/headless.cjs +2 -0
  219. package/dist/controllers/headless.cjs.map +1 -0
  220. package/dist/controllers/headless.d.cts +10 -0
  221. package/dist/controllers/headless.d.cts.map +1 -0
  222. package/dist/controllers/headless.d.mts +10 -0
  223. package/dist/controllers/headless.d.mts.map +1 -0
  224. package/dist/controllers/headless.mjs +2 -0
  225. package/dist/controllers/headless.mjs.map +1 -0
  226. package/dist/controllers/runnerLogApi.cjs +2 -0
  227. package/dist/controllers/runnerLogApi.cjs.map +1 -0
  228. package/dist/controllers/runnerLogApi.mjs +2 -0
  229. package/dist/controllers/runnerLogApi.mjs.map +1 -0
  230. package/dist/extensions/pi.cjs +2 -1
  231. package/dist/extensions/pi.cjs.map +1 -0
  232. package/dist/extensions/pi.d.cts +5 -2
  233. package/dist/extensions/pi.d.cts.map +1 -0
  234. package/dist/extensions/pi.d.mts +5 -2
  235. package/dist/extensions/pi.d.mts.map +1 -0
  236. package/dist/extensions/pi.mjs +2 -1
  237. package/dist/extensions/pi.mjs.map +1 -0
  238. package/dist/extensions/server.cjs +2 -0
  239. package/dist/extensions/server.cjs.map +1 -0
  240. package/dist/extensions/server.d.cts +5 -0
  241. package/dist/extensions/server.d.cts.map +1 -0
  242. package/dist/extensions/server.d.mts +5 -0
  243. package/dist/extensions/server.d.mts.map +1 -0
  244. package/dist/extensions/server.mjs +2 -0
  245. package/dist/extensions/server.mjs.map +1 -0
  246. package/dist/index.cjs +1 -1
  247. package/dist/index.d.cts +8 -6
  248. package/dist/index.d.mts +8 -6
  249. package/dist/index.mjs +1 -1
  250. package/dist/launcher.cjs +1 -0
  251. package/dist/launcher.d.cts +3 -0
  252. package/dist/launcher.d.mts +3 -0
  253. package/dist/launcher.mjs +1 -0
  254. package/dist/lifeline.cjs +1 -0
  255. package/dist/lifeline.d.cts +4 -0
  256. package/dist/lifeline.d.mts +4 -0
  257. package/dist/lifeline.mjs +1 -0
  258. package/dist/log-file.cjs +1 -0
  259. package/dist/log-file.d.cts +3 -0
  260. package/dist/log-file.d.mts +3 -0
  261. package/dist/log-file.mjs +1 -0
  262. package/dist/log-reader.cjs +1 -0
  263. package/dist/log-reader.d.cts +3 -0
  264. package/dist/log-reader.d.mts +3 -0
  265. package/dist/log-reader.mjs +1 -0
  266. package/dist/models/runnerSettings.cjs +2 -0
  267. package/dist/models/runnerSettings.cjs.map +1 -0
  268. package/dist/models/runnerSettings.mjs +2 -0
  269. package/dist/models/runnerSettings.mjs.map +1 -0
  270. package/dist/process-control.cjs +1 -0
  271. package/dist/process-control.d.cts +3 -0
  272. package/dist/process-control.d.mts +3 -0
  273. package/dist/process-control.mjs +1 -0
  274. package/dist/pty-host.cjs +1 -0
  275. package/dist/pty-host.d.cts +3 -0
  276. package/dist/pty-host.d.mts +3 -0
  277. package/dist/pty-host.mjs +1 -0
  278. package/dist/pty-spawner.cjs +1 -0
  279. package/dist/pty-spawner.d.cts +3 -0
  280. package/dist/pty-spawner.d.mts +3 -0
  281. package/dist/pty-spawner.mjs +1 -0
  282. package/dist/reconcile.cjs +1 -1
  283. package/dist/reconcile.d.cts +1 -1
  284. package/dist/reconcile.d.mts +1 -1
  285. package/dist/reconcile.mjs +1 -1
  286. package/dist/response-envelope.cjs +1 -0
  287. package/dist/response-envelope.d.cts +4 -0
  288. package/dist/response-envelope.d.mts +4 -0
  289. package/dist/response-envelope.mjs +1 -0
  290. package/dist/rmux-backend.cjs +1 -0
  291. package/dist/rmux-backend.d.cts +3 -0
  292. package/dist/rmux-backend.d.mts +3 -0
  293. package/dist/rmux-backend.mjs +1 -0
  294. package/dist/rtk-processor.cjs +1 -0
  295. package/dist/rtk-processor.d.cts +4 -0
  296. package/dist/rtk-processor.d.mts +4 -0
  297. package/dist/rtk-processor.mjs +1 -0
  298. package/dist/runner-dependencies.cjs +1 -0
  299. package/dist/runner-dependencies.d.cts +2 -0
  300. package/dist/runner-dependencies.d.mts +2 -0
  301. package/dist/runner-dependencies.mjs +1 -0
  302. package/dist/runner-format.cjs +1 -0
  303. package/dist/runner-format.d.cts +3 -0
  304. package/dist/runner-format.d.mts +3 -0
  305. package/dist/runner-format.mjs +1 -0
  306. package/dist/runner-namer.cjs +1 -0
  307. package/dist/runner-namer.d.cts +3 -0
  308. package/dist/runner-namer.d.mts +3 -0
  309. package/dist/runner-namer.mjs +1 -0
  310. package/dist/runner-paths.cjs +1 -0
  311. package/dist/runner-paths.d.cts +3 -0
  312. package/dist/runner-paths.d.mts +3 -0
  313. package/dist/runner-paths.mjs +1 -0
  314. package/dist/runner-registry.cjs +1 -0
  315. package/dist/runner-registry.d.cts +3 -0
  316. package/dist/runner-registry.d.mts +3 -0
  317. package/dist/runner-registry.mjs +1 -0
  318. package/dist/runner-space.cjs +1 -0
  319. package/dist/runner-space.d.cts +2 -0
  320. package/dist/runner-space.d.mts +2 -0
  321. package/dist/runner-space.mjs +1 -0
  322. package/dist/schemas/apiContracts.cjs +2 -0
  323. package/dist/schemas/apiContracts.cjs.map +1 -0
  324. package/dist/schemas/apiContracts.d.cts +53 -0
  325. package/dist/schemas/apiContracts.d.cts.map +1 -0
  326. package/dist/schemas/apiContracts.d.mts +53 -0
  327. package/dist/schemas/apiContracts.d.mts.map +1 -0
  328. package/dist/schemas/apiContracts.mjs +2 -0
  329. package/dist/schemas/apiContracts.mjs.map +1 -0
  330. package/dist/schemas/bashTool.cjs +2 -0
  331. package/dist/schemas/bashTool.cjs.map +1 -0
  332. package/dist/schemas/bashTool.d.cts +19 -0
  333. package/dist/schemas/bashTool.d.cts.map +1 -0
  334. package/dist/schemas/bashTool.d.mts +19 -0
  335. package/dist/schemas/bashTool.d.mts.map +1 -0
  336. package/dist/schemas/bashTool.mjs +2 -0
  337. package/dist/schemas/bashTool.mjs.map +1 -0
  338. package/dist/services/ansiScrub/index.cjs +5 -0
  339. package/dist/services/ansiScrub/index.cjs.map +1 -0
  340. package/dist/services/ansiScrub/index.d.cts +26 -0
  341. package/dist/services/ansiScrub/index.d.cts.map +1 -0
  342. package/dist/services/ansiScrub/index.d.mts +26 -0
  343. package/dist/services/ansiScrub/index.d.mts.map +1 -0
  344. package/dist/services/ansiScrub/index.mjs +5 -0
  345. package/dist/services/ansiScrub/index.mjs.map +1 -0
  346. package/dist/services/bashResult/index.cjs +15 -0
  347. package/dist/services/bashResult/index.cjs.map +1 -0
  348. package/dist/services/bashResult/index.d.cts +47 -0
  349. package/dist/services/bashResult/index.d.cts.map +1 -0
  350. package/dist/services/bashResult/index.d.mts +47 -0
  351. package/dist/services/bashResult/index.d.mts.map +1 -0
  352. package/dist/services/bashResult/index.mjs +15 -0
  353. package/dist/services/bashResult/index.mjs.map +1 -0
  354. package/dist/services/bashRunService/index.cjs +2 -0
  355. package/dist/services/bashRunService/index.cjs.map +1 -0
  356. package/dist/services/bashRunService/index.d.cts +31 -0
  357. package/dist/services/bashRunService/index.d.cts.map +1 -0
  358. package/dist/services/bashRunService/index.d.mts +31 -0
  359. package/dist/services/bashRunService/index.d.mts.map +1 -0
  360. package/dist/services/bashRunService/index.mjs +2 -0
  361. package/dist/services/bashRunService/index.mjs.map +1 -0
  362. package/dist/services/clock/index.cjs +2 -0
  363. package/dist/services/clock/index.cjs.map +1 -0
  364. package/dist/services/clock/index.d.cts +9 -0
  365. package/dist/services/clock/index.d.cts.map +1 -0
  366. package/dist/services/clock/index.d.mts +9 -0
  367. package/dist/services/clock/index.d.mts.map +1 -0
  368. package/dist/services/clock/index.mjs +2 -0
  369. package/dist/services/clock/index.mjs.map +1 -0
  370. package/dist/services/compaction/index.cjs +4 -0
  371. package/dist/services/compaction/index.cjs.map +1 -0
  372. package/dist/services/compaction/index.d.cts +13 -0
  373. package/dist/services/compaction/index.d.cts.map +1 -0
  374. package/dist/services/compaction/index.d.mts +13 -0
  375. package/dist/services/compaction/index.d.mts.map +1 -0
  376. package/dist/services/compaction/index.mjs +4 -0
  377. package/dist/services/compaction/index.mjs.map +1 -0
  378. package/dist/services/launcher/index.cjs +2 -0
  379. package/dist/services/launcher/index.cjs.map +1 -0
  380. package/dist/services/launcher/index.d.cts +27 -0
  381. package/dist/services/launcher/index.d.cts.map +1 -0
  382. package/dist/services/launcher/index.d.mts +27 -0
  383. package/dist/services/launcher/index.d.mts.map +1 -0
  384. package/dist/services/launcher/index.mjs +2 -0
  385. package/dist/services/launcher/index.mjs.map +1 -0
  386. package/dist/services/lifeline/client.cjs +2 -0
  387. package/dist/services/lifeline/client.cjs.map +1 -0
  388. package/dist/services/lifeline/client.d.cts +22 -0
  389. package/dist/services/lifeline/client.d.cts.map +1 -0
  390. package/dist/services/lifeline/client.d.mts +22 -0
  391. package/dist/services/lifeline/client.d.mts.map +1 -0
  392. package/dist/services/lifeline/client.mjs.map +1 -0
  393. package/dist/services/lifeline/index.cjs +2 -0
  394. package/dist/services/lifeline/index.cjs.map +1 -0
  395. package/dist/services/lifeline/index.d.cts +19 -0
  396. package/dist/services/lifeline/index.d.cts.map +1 -0
  397. package/dist/services/lifeline/index.d.mts +19 -0
  398. package/dist/services/lifeline/index.d.mts.map +1 -0
  399. package/dist/services/lifeline/index.mjs +2 -0
  400. package/dist/services/lifeline/index.mjs.map +1 -0
  401. package/dist/services/logFile/index.cjs +2 -0
  402. package/dist/services/logFile/index.cjs.map +1 -0
  403. package/dist/services/logFile/index.d.cts +10 -0
  404. package/dist/services/logFile/index.d.cts.map +1 -0
  405. package/dist/services/logFile/index.d.mts +10 -0
  406. package/dist/services/logFile/index.d.mts.map +1 -0
  407. package/dist/services/logFile/index.mjs +2 -0
  408. package/dist/services/logFile/index.mjs.map +1 -0
  409. package/dist/services/logReader/index.cjs +10 -0
  410. package/dist/services/logReader/index.cjs.map +1 -0
  411. package/dist/services/logReader/index.d.cts +23 -0
  412. package/dist/services/logReader/index.d.cts.map +1 -0
  413. package/dist/services/logReader/index.d.mts +23 -0
  414. package/dist/services/logReader/index.d.mts.map +1 -0
  415. package/dist/services/logReader/index.mjs +10 -0
  416. package/dist/services/logReader/index.mjs.map +1 -0
  417. package/dist/services/logTail/index.cjs +3 -0
  418. package/dist/services/logTail/index.cjs.map +1 -0
  419. package/dist/services/logTail/index.mjs +3 -0
  420. package/dist/services/logTail/index.mjs.map +1 -0
  421. package/dist/services/processControl/index.cjs +2 -0
  422. package/dist/services/processControl/index.cjs.map +1 -0
  423. package/dist/services/processControl/index.d.cts +9 -0
  424. package/dist/services/processControl/index.d.cts.map +1 -0
  425. package/dist/services/processControl/index.d.mts +9 -0
  426. package/dist/services/processControl/index.d.mts.map +1 -0
  427. package/dist/services/processControl/index.mjs +2 -0
  428. package/dist/services/processControl/index.mjs.map +1 -0
  429. package/dist/services/ptyBackendChain/index.cjs +2 -0
  430. package/dist/services/ptyBackendChain/index.cjs.map +1 -0
  431. package/dist/services/ptyBackendChain/index.mjs +2 -0
  432. package/dist/services/ptyBackendChain/index.mjs.map +1 -0
  433. package/dist/services/ptyHost/index.cjs +5 -0
  434. package/dist/services/ptyHost/index.cjs.map +1 -0
  435. package/dist/services/ptyHost/index.d.cts +22 -0
  436. package/dist/services/ptyHost/index.d.cts.map +1 -0
  437. package/dist/services/ptyHost/index.d.mts +22 -0
  438. package/dist/services/ptyHost/index.d.mts.map +1 -0
  439. package/dist/services/ptyHost/index.mjs +5 -0
  440. package/dist/services/ptyHost/index.mjs.map +1 -0
  441. package/dist/services/ptySpawner/index.cjs +2 -0
  442. package/dist/services/ptySpawner/index.cjs.map +1 -0
  443. package/dist/services/ptySpawner/index.d.cts +13 -0
  444. package/dist/services/ptySpawner/index.d.cts.map +1 -0
  445. package/dist/services/ptySpawner/index.d.mts +13 -0
  446. package/dist/services/ptySpawner/index.d.mts.map +1 -0
  447. package/dist/services/ptySpawner/index.mjs +2 -0
  448. package/dist/services/ptySpawner/index.mjs.map +1 -0
  449. package/dist/services/reconcile/index.cjs +2 -0
  450. package/dist/services/reconcile/index.cjs.map +1 -0
  451. package/dist/services/reconcile/index.d.cts +31 -0
  452. package/dist/services/reconcile/index.d.cts.map +1 -0
  453. package/dist/services/reconcile/index.d.mts +31 -0
  454. package/dist/services/reconcile/index.d.mts.map +1 -0
  455. package/dist/services/reconcile/index.mjs +2 -0
  456. package/dist/services/reconcile/index.mjs.map +1 -0
  457. package/dist/services/rmuxBackend/index.cjs +2 -0
  458. package/dist/services/rmuxBackend/index.cjs.map +1 -0
  459. package/dist/services/rmuxBackend/index.d.cts +39 -0
  460. package/dist/services/rmuxBackend/index.d.cts.map +1 -0
  461. package/dist/services/rmuxBackend/index.d.mts +39 -0
  462. package/dist/services/rmuxBackend/index.d.mts.map +1 -0
  463. package/dist/services/rmuxBackend/index.mjs +2 -0
  464. package/dist/services/rmuxBackend/index.mjs.map +1 -0
  465. package/dist/services/rtkProcessor/index.cjs +2 -0
  466. package/dist/services/rtkProcessor/index.cjs.map +1 -0
  467. package/dist/services/rtkProcessor/index.d.cts +27 -0
  468. package/dist/services/rtkProcessor/index.d.cts.map +1 -0
  469. package/dist/services/rtkProcessor/index.d.mts +27 -0
  470. package/dist/services/rtkProcessor/index.d.mts.map +1 -0
  471. package/dist/services/rtkProcessor/index.mjs +2 -0
  472. package/dist/services/rtkProcessor/index.mjs.map +1 -0
  473. package/dist/services/runnerConfig/index.cjs +2 -0
  474. package/dist/services/runnerConfig/index.cjs.map +1 -0
  475. package/dist/services/runnerConfig/index.d.cts +30 -0
  476. package/dist/services/runnerConfig/index.d.cts.map +1 -0
  477. package/dist/services/runnerConfig/index.d.mts +30 -0
  478. package/dist/services/runnerConfig/index.d.mts.map +1 -0
  479. package/dist/services/runnerConfig/index.mjs +2 -0
  480. package/dist/services/runnerConfig/index.mjs.map +1 -0
  481. package/dist/services/runnerDependencies/index.cjs +2 -0
  482. package/dist/services/runnerDependencies/index.cjs.map +1 -0
  483. package/dist/services/runnerDependencies/index.d.cts +18 -0
  484. package/dist/services/runnerDependencies/index.d.cts.map +1 -0
  485. package/dist/services/runnerDependencies/index.d.mts +18 -0
  486. package/dist/services/runnerDependencies/index.d.mts.map +1 -0
  487. package/dist/services/runnerDependencies/index.mjs +2 -0
  488. package/dist/services/runnerDependencies/index.mjs.map +1 -0
  489. package/dist/services/runnerDependencies/type.d.cts +40 -0
  490. package/dist/services/runnerDependencies/type.d.cts.map +1 -0
  491. package/dist/services/runnerDependencies/type.d.mts +40 -0
  492. package/dist/services/runnerDependencies/type.d.mts.map +1 -0
  493. package/dist/services/runnerNamer/index.cjs +2 -0
  494. package/dist/services/runnerNamer/index.cjs.map +1 -0
  495. package/dist/services/runnerNamer/index.d.cts +10 -0
  496. package/dist/services/runnerNamer/index.d.cts.map +1 -0
  497. package/dist/services/runnerNamer/index.d.mts +10 -0
  498. package/dist/services/runnerNamer/index.d.mts.map +1 -0
  499. package/dist/services/runnerNamer/index.mjs +2 -0
  500. package/dist/services/runnerNamer/index.mjs.map +1 -0
  501. package/dist/services/runnerNamer/type.d.cts +11 -0
  502. package/dist/services/runnerNamer/type.d.cts.map +1 -0
  503. package/dist/services/runnerNamer/type.d.mts +11 -0
  504. package/dist/services/runnerNamer/type.d.mts.map +1 -0
  505. package/dist/services/runnerPaths/index.cjs +2 -0
  506. package/dist/services/runnerPaths/index.cjs.map +1 -0
  507. package/dist/services/runnerPaths/index.d.cts +46 -0
  508. package/dist/services/runnerPaths/index.d.cts.map +1 -0
  509. package/dist/services/runnerPaths/index.d.mts +46 -0
  510. package/dist/services/runnerPaths/index.d.mts.map +1 -0
  511. package/dist/services/runnerPaths/index.mjs +2 -0
  512. package/dist/services/runnerPaths/index.mjs.map +1 -0
  513. package/dist/services/runnerPaths/type.d.cts +43 -0
  514. package/dist/services/runnerPaths/type.d.cts.map +1 -0
  515. package/dist/services/runnerPaths/type.d.mts +43 -0
  516. package/dist/services/runnerPaths/type.d.mts.map +1 -0
  517. package/dist/services/runnerRecord/index.cjs +2 -0
  518. package/dist/services/runnerRecord/index.cjs.map +1 -0
  519. package/dist/services/runnerRecord/index.mjs +2 -0
  520. package/dist/services/runnerRecord/index.mjs.map +1 -0
  521. package/dist/services/runnerRegistry/index.cjs +2 -0
  522. package/dist/services/runnerRegistry/index.cjs.map +1 -0
  523. package/dist/services/runnerRegistry/index.d.cts +35 -0
  524. package/dist/services/runnerRegistry/index.d.cts.map +1 -0
  525. package/dist/services/runnerRegistry/index.d.mts +35 -0
  526. package/dist/services/runnerRegistry/index.d.mts.map +1 -0
  527. package/dist/services/runnerRegistry/index.mjs +2 -0
  528. package/dist/services/runnerRegistry/index.mjs.map +1 -0
  529. package/dist/services/runnerResult/index.cjs +2 -0
  530. package/dist/services/runnerResult/index.cjs.map +1 -0
  531. package/dist/services/runnerResult/index.d.cts +6 -0
  532. package/dist/services/runnerResult/index.d.cts.map +1 -0
  533. package/dist/services/runnerResult/index.d.mts +6 -0
  534. package/dist/services/runnerResult/index.d.mts.map +1 -0
  535. package/dist/services/runnerResult/index.mjs +2 -0
  536. package/dist/services/runnerResult/index.mjs.map +1 -0
  537. package/dist/services/runnerServerRuntime/index.cjs +2 -0
  538. package/dist/services/runnerServerRuntime/index.cjs.map +1 -0
  539. package/dist/services/runnerServerRuntime/index.mjs +2 -0
  540. package/dist/services/runnerServerRuntime/index.mjs.map +1 -0
  541. package/dist/services/runnerSettings/index.cjs +2 -0
  542. package/dist/services/runnerSettings/index.cjs.map +1 -0
  543. package/dist/services/runnerSettings/index.mjs +2 -0
  544. package/dist/services/runnerSettings/index.mjs.map +1 -0
  545. package/dist/services/runnerSupervisor/index.cjs +2 -0
  546. package/dist/services/runnerSupervisor/index.cjs.map +1 -0
  547. package/dist/services/runnerSupervisor/index.mjs +2 -0
  548. package/dist/services/runnerSupervisor/index.mjs.map +1 -0
  549. package/dist/services/runnersChannel/index.cjs +2 -0
  550. package/dist/services/runnersChannel/index.cjs.map +1 -0
  551. package/dist/services/runnersChannel/index.mjs +2 -0
  552. package/dist/services/runnersChannel/index.mjs.map +1 -0
  553. package/dist/services/runnersCommand/index.cjs +2 -0
  554. package/dist/services/runnersCommand/index.cjs.map +1 -0
  555. package/dist/services/runnersCommand/index.mjs +2 -0
  556. package/dist/services/runnersCommand/index.mjs.map +1 -0
  557. package/dist/services/session/index.cjs +2 -0
  558. package/dist/services/session/index.cjs.map +1 -0
  559. package/dist/services/session/index.d.cts +8 -0
  560. package/dist/services/session/index.d.cts.map +1 -0
  561. package/dist/services/session/index.d.mts +8 -0
  562. package/dist/services/session/index.d.mts.map +1 -0
  563. package/dist/services/session/index.mjs +2 -0
  564. package/dist/services/session/index.mjs.map +1 -0
  565. package/dist/services/spawner/index.cjs +2 -0
  566. package/dist/services/spawner/index.cjs.map +1 -0
  567. package/dist/services/spawner/index.d.cts +8 -0
  568. package/dist/services/spawner/index.d.cts.map +1 -0
  569. package/dist/services/spawner/index.d.mts +8 -0
  570. package/dist/services/spawner/index.d.mts.map +1 -0
  571. package/dist/services/spawner/index.mjs +2 -0
  572. package/dist/services/spawner/index.mjs.map +1 -0
  573. package/dist/services/tmuxBackend/TmuxClient.cjs.map +1 -0
  574. package/dist/services/tmuxBackend/TmuxClient.mjs.map +1 -0
  575. package/dist/services/tmuxBackend/index.cjs +2 -0
  576. package/dist/services/tmuxBackend/index.cjs.map +1 -0
  577. package/dist/services/tmuxBackend/index.mjs +2 -0
  578. package/dist/services/tmuxBackend/index.mjs.map +1 -0
  579. package/dist/services/tokenEstimate/index.cjs +2 -0
  580. package/dist/services/tokenEstimate/index.cjs.map +1 -0
  581. package/dist/services/tokenEstimate/index.mjs +2 -0
  582. package/dist/services/tokenEstimate/index.mjs.map +1 -0
  583. package/dist/services/webRunnerRuns/index.cjs +2 -0
  584. package/dist/services/webRunnerRuns/index.cjs.map +1 -0
  585. package/dist/services/webRunnerRuns/index.mjs +2 -0
  586. package/dist/services/webRunnerRuns/index.mjs.map +1 -0
  587. package/dist/session.cjs +1 -1
  588. package/dist/session.d.cts +2 -1
  589. package/dist/session.d.mts +2 -1
  590. package/dist/session.mjs +1 -1
  591. package/dist/spawner.cjs +1 -0
  592. package/dist/spawner.d.cts +3 -0
  593. package/dist/spawner.d.mts +3 -0
  594. package/dist/spawner.mjs +1 -0
  595. package/dist/tools/bashTool.cjs +3 -0
  596. package/dist/tools/bashTool.cjs.map +1 -0
  597. package/dist/tools/bashTool.d.cts +15 -0
  598. package/dist/tools/bashTool.d.cts.map +1 -0
  599. package/dist/tools/bashTool.d.mts +15 -0
  600. package/dist/tools/bashTool.d.mts.map +1 -0
  601. package/dist/tools/bashTool.mjs +3 -0
  602. package/dist/tools/bashTool.mjs.map +1 -0
  603. package/dist/tui/bashRender.cjs +5 -1
  604. package/dist/tui/bashRender.cjs.map +1 -0
  605. package/dist/tui/bashRender.d.cts +52 -2
  606. package/dist/tui/bashRender.d.cts.map +1 -0
  607. package/dist/tui/bashRender.d.mts +52 -2
  608. package/dist/tui/bashRender.d.mts.map +1 -0
  609. package/dist/tui/bashRender.mjs +5 -1
  610. package/dist/tui/bashRender.mjs.map +1 -0
  611. package/dist/tui/format.cjs +2 -1
  612. package/dist/tui/format.cjs.map +1 -0
  613. package/dist/tui/format.d.cts +21 -2
  614. package/dist/tui/format.d.cts.map +1 -0
  615. package/dist/tui/format.d.mts +21 -2
  616. package/dist/tui/format.d.mts.map +1 -0
  617. package/dist/tui/format.mjs +2 -1
  618. package/dist/tui/format.mjs.map +1 -0
  619. package/dist/tui/runnerRuntime.cjs +3 -0
  620. package/dist/tui/runnerRuntime.cjs.map +1 -0
  621. package/dist/tui/runnerRuntime.mjs +3 -0
  622. package/dist/tui/runnerRuntime.mjs.map +1 -0
  623. package/dist/tui/runnerSpace.cjs +6 -1
  624. package/dist/tui/runnerSpace.cjs.map +1 -0
  625. package/dist/tui/runnerSpace.d.cts +50 -2
  626. package/dist/tui/runnerSpace.d.cts.map +1 -0
  627. package/dist/tui/runnerSpace.d.mts +50 -2
  628. package/dist/tui/runnerSpace.d.mts.map +1 -0
  629. package/dist/tui/runnerSpace.mjs +6 -1
  630. package/dist/tui/runnerSpace.mjs.map +1 -0
  631. package/dist/types/bashResult.d.cts +48 -0
  632. package/dist/types/bashResult.d.cts.map +1 -0
  633. package/dist/types/bashResult.d.mts +48 -0
  634. package/dist/types/bashResult.d.mts.map +1 -0
  635. package/dist/types/bashRunService.d.cts.map +1 -0
  636. package/dist/types/bashRunService.d.mts.map +1 -0
  637. package/dist/types/bashTool.d.cts +15 -0
  638. package/dist/types/bashTool.d.cts.map +1 -0
  639. package/dist/types/bashTool.d.mts +15 -0
  640. package/dist/types/bashTool.d.mts.map +1 -0
  641. package/dist/types/clock.d.cts.map +1 -0
  642. package/dist/types/clock.d.mts.map +1 -0
  643. package/dist/types/launcher.d.cts.map +1 -0
  644. package/dist/types/launcher.d.mts.map +1 -0
  645. package/dist/types/lifeline.d.cts.map +1 -0
  646. package/dist/types/lifeline.d.mts.map +1 -0
  647. package/dist/types/logFile.d.cts.map +1 -0
  648. package/dist/types/logFile.d.mts.map +1 -0
  649. package/dist/types/logReader.d.cts.map +1 -0
  650. package/dist/types/logReader.d.mts.map +1 -0
  651. package/dist/types/processControl.d.cts.map +1 -0
  652. package/dist/types/processControl.d.mts.map +1 -0
  653. package/dist/types/ptyHost.d.cts.map +1 -0
  654. package/dist/types/ptyHost.d.mts.map +1 -0
  655. package/dist/types/ptySpawner.d.cts.map +1 -0
  656. package/dist/types/ptySpawner.d.mts.map +1 -0
  657. package/dist/types/rmuxBackend.d.cts.map +1 -0
  658. package/dist/types/rmuxBackend.d.mts.map +1 -0
  659. package/dist/types/rtkProcessor.cjs.map +1 -0
  660. package/dist/types/rtkProcessor.d.cts.map +1 -0
  661. package/dist/types/rtkProcessor.d.mts.map +1 -0
  662. package/dist/types/rtkProcessor.mjs.map +1 -0
  663. package/dist/types/runnerRegistry.d.cts.map +1 -0
  664. package/dist/types/runnerRegistry.d.mts.map +1 -0
  665. package/dist/types/runnerSettings.d.cts.map +1 -0
  666. package/dist/types/runnerSettings.d.mts.map +1 -0
  667. package/dist/types/spawner.d.cts.map +1 -0
  668. package/dist/types/spawner.d.mts.map +1 -0
  669. package/dist/types/webRunnerLog.cjs +2 -0
  670. package/dist/types/webRunnerLog.cjs.map +1 -0
  671. package/dist/types/webRunnerLog.mjs +2 -0
  672. package/dist/types/webRunnerLog.mjs.map +1 -0
  673. package/dist/types.d.cts +2 -2
  674. package/dist/types.d.mts +2 -2
  675. package/package.json +154 -232
  676. package/src/constants/ansiScrub.ts +2 -0
  677. package/src/constants/bashRender.ts +7 -0
  678. package/src/constants/bashResult.ts +9 -0
  679. package/src/constants/bashRunService.ts +6 -0
  680. package/src/constants/bashTool.ts +4 -0
  681. package/src/constants/cliApp.ts +5 -0
  682. package/src/constants/compaction.ts +2 -0
  683. package/src/constants/format.ts +2 -0
  684. package/src/constants/headless.ts +1 -0
  685. package/src/constants/launcher.ts +5 -0
  686. package/src/constants/lifeline.ts +4 -0
  687. package/src/constants/logReader.ts +2 -0
  688. package/src/constants/logTail.ts +1 -0
  689. package/src/constants/processControl.ts +1 -0
  690. package/src/constants/ptyHost.ts +7 -0
  691. package/src/constants/reconcile.ts +1 -0
  692. package/src/constants/rmuxBackend.ts +12 -0
  693. package/src/constants/rtkProcessor.ts +9 -0
  694. package/src/constants/runnerConfig.ts +22 -0
  695. package/src/constants/runnerLogApi.ts +12 -0
  696. package/src/constants/runnerNamer.ts +3 -0
  697. package/src/constants/runnerPaths.ts +15 -0
  698. package/src/constants/runnerRegistry.ts +8 -0
  699. package/src/constants/runnerRuntime.ts +15 -0
  700. package/src/constants/runnerSettings.ts +8 -0
  701. package/src/constants/runnerSpace.ts +8 -0
  702. package/src/constants/runnerWidget.ts +2 -0
  703. package/src/constants/runners.ts +4 -0
  704. package/src/constants/runnersCommand.ts +6 -0
  705. package/src/constants/session.ts +1 -0
  706. package/src/constants/spawner.ts +1 -0
  707. package/src/constants/tmuxBackend.ts +11 -0
  708. package/src/constants/tokenEstimate.ts +9 -0
  709. package/src/constants/webRunnerLog.ts +5 -0
  710. package/src/constants/webRunnerRuns.ts +1 -0
  711. package/src/constants/webRunners.ts +1 -0
  712. package/src/extensions/web.ts +35 -0
  713. package/src/types/logReader.ts +41 -0
  714. package/src/types/runnerRegistry.ts +85 -0
  715. package/src/types/webRunnerLog.ts +6 -10
  716. package/src/types/webRunners.ts +1 -3
  717. package/src/web/api/logApi.ts +3 -2
  718. package/src/web/api/screenApi.ts +3 -6
  719. package/src/web/components/BashToolMessage.tsx +5 -4
  720. package/src/web/components/LaunchRunnerDialog.tsx +4 -3
  721. package/src/web/components/RunnerLogPanel.tsx +7 -6
  722. package/src/web/components/RunnerShellPanel.tsx +5 -4
  723. package/src/web/components/RunnersActivitySection.tsx +8 -7
  724. package/src/web/components/RunnersPanel.tsx +10 -9
  725. package/src/web/hooks/runnerTail.ts +2 -1
  726. package/src/web/lib/format.ts +1 -1
  727. package/src/web/stores/runnersStore.ts +5 -3
  728. package/src/web/tsconfig.json +1 -1
  729. package/dist/cli/cliApp.cjs +0 -1
  730. package/dist/cli/cliApp.d.cts +0 -2
  731. package/dist/cli/cliApp.d.mts +0 -2
  732. package/dist/cli/cliApp.mjs +0 -1
  733. package/dist/container/index.cjs +0 -1
  734. package/dist/container/index.d.cts +0 -2
  735. package/dist/container/index.d.mts +0 -2
  736. package/dist/container/index.mjs +0 -1
  737. package/dist/services/AnsiScrub/ansiScrub.cjs +0 -1
  738. package/dist/services/AnsiScrub/ansiScrub.d.cts +0 -2
  739. package/dist/services/AnsiScrub/ansiScrub.d.mts +0 -2
  740. package/dist/services/AnsiScrub/ansiScrub.mjs +0 -1
  741. package/dist/services/AnsiScrub/index.cjs +0 -1
  742. package/dist/services/AnsiScrub/index.d.cts +0 -2
  743. package/dist/services/AnsiScrub/index.d.mts +0 -2
  744. package/dist/services/AnsiScrub/index.mjs +0 -1
  745. package/dist/services/BashRunService/BashRunService.cjs +0 -1
  746. package/dist/services/BashRunService/BashRunService.d.cts +0 -2
  747. package/dist/services/BashRunService/BashRunService.d.mts +0 -2
  748. package/dist/services/BashRunService/BashRunService.mjs +0 -1
  749. package/dist/services/BashRunService/index.cjs +0 -1
  750. package/dist/services/BashRunService/index.d.cts +0 -3
  751. package/dist/services/BashRunService/index.d.mts +0 -3
  752. package/dist/services/BashRunService/index.mjs +0 -1
  753. package/dist/services/Clock/SystemClock.cjs +0 -1
  754. package/dist/services/Clock/SystemClock.d.cts +0 -2
  755. package/dist/services/Clock/SystemClock.d.mts +0 -2
  756. package/dist/services/Clock/SystemClock.mjs +0 -1
  757. package/dist/services/Clock/index.cjs +0 -1
  758. package/dist/services/Clock/index.d.cts +0 -3
  759. package/dist/services/Clock/index.d.mts +0 -3
  760. package/dist/services/Clock/index.mjs +0 -1
  761. package/dist/services/Launcher/Launcher.cjs +0 -1
  762. package/dist/services/Launcher/Launcher.d.cts +0 -2
  763. package/dist/services/Launcher/Launcher.d.mts +0 -2
  764. package/dist/services/Launcher/Launcher.mjs +0 -1
  765. package/dist/services/Launcher/index.cjs +0 -1
  766. package/dist/services/Launcher/index.d.cts +0 -3
  767. package/dist/services/Launcher/index.d.mts +0 -3
  768. package/dist/services/Launcher/index.mjs +0 -1
  769. package/dist/services/Lifeline/NodeLifeline.cjs +0 -1
  770. package/dist/services/Lifeline/NodeLifeline.d.cts +0 -2
  771. package/dist/services/Lifeline/NodeLifeline.d.mts +0 -2
  772. package/dist/services/Lifeline/NodeLifeline.mjs +0 -1
  773. package/dist/services/Lifeline/client.cjs +0 -1
  774. package/dist/services/Lifeline/client.d.cts +0 -2
  775. package/dist/services/Lifeline/client.d.mts +0 -2
  776. package/dist/services/Lifeline/client.mjs +0 -1
  777. package/dist/services/Lifeline/index.cjs +0 -1
  778. package/dist/services/Lifeline/index.d.cts +0 -4
  779. package/dist/services/Lifeline/index.d.mts +0 -4
  780. package/dist/services/Lifeline/index.mjs +0 -1
  781. package/dist/services/LogFile/LogFile.cjs +0 -1
  782. package/dist/services/LogFile/LogFile.d.cts +0 -2
  783. package/dist/services/LogFile/LogFile.d.mts +0 -2
  784. package/dist/services/LogFile/LogFile.mjs +0 -1
  785. package/dist/services/LogFile/index.cjs +0 -1
  786. package/dist/services/LogFile/index.d.cts +0 -3
  787. package/dist/services/LogFile/index.d.mts +0 -3
  788. package/dist/services/LogFile/index.mjs +0 -1
  789. package/dist/services/LogReader/LogReader.cjs +0 -1
  790. package/dist/services/LogReader/LogReader.d.cts +0 -2
  791. package/dist/services/LogReader/LogReader.d.mts +0 -2
  792. package/dist/services/LogReader/LogReader.mjs +0 -1
  793. package/dist/services/LogReader/index.cjs +0 -1
  794. package/dist/services/LogReader/index.d.cts +0 -3
  795. package/dist/services/LogReader/index.d.mts +0 -3
  796. package/dist/services/LogReader/index.mjs +0 -1
  797. package/dist/services/ProcessControl/NodeProcessControl.cjs +0 -1
  798. package/dist/services/ProcessControl/NodeProcessControl.d.cts +0 -2
  799. package/dist/services/ProcessControl/NodeProcessControl.d.mts +0 -2
  800. package/dist/services/ProcessControl/NodeProcessControl.mjs +0 -1
  801. package/dist/services/ProcessControl/index.cjs +0 -1
  802. package/dist/services/ProcessControl/index.d.cts +0 -3
  803. package/dist/services/ProcessControl/index.d.mts +0 -3
  804. package/dist/services/ProcessControl/index.mjs +0 -1
  805. package/dist/services/PtyHost/PtyHost.cjs +0 -1
  806. package/dist/services/PtyHost/PtyHost.d.cts +0 -2
  807. package/dist/services/PtyHost/PtyHost.d.mts +0 -2
  808. package/dist/services/PtyHost/PtyHost.mjs +0 -1
  809. package/dist/services/PtyHost/index.cjs +0 -1
  810. package/dist/services/PtyHost/index.d.cts +0 -3
  811. package/dist/services/PtyHost/index.d.mts +0 -3
  812. package/dist/services/PtyHost/index.mjs +0 -1
  813. package/dist/services/PtySpawner/NodePtySpawner.cjs +0 -1
  814. package/dist/services/PtySpawner/NodePtySpawner.d.cts +0 -2
  815. package/dist/services/PtySpawner/NodePtySpawner.d.mts +0 -2
  816. package/dist/services/PtySpawner/NodePtySpawner.mjs +0 -1
  817. package/dist/services/PtySpawner/index.cjs +0 -1
  818. package/dist/services/PtySpawner/index.d.cts +0 -3
  819. package/dist/services/PtySpawner/index.d.mts +0 -3
  820. package/dist/services/PtySpawner/index.mjs +0 -1
  821. package/dist/services/RmuxBackend/RmuxBackend.cjs +0 -1
  822. package/dist/services/RmuxBackend/RmuxBackend.d.cts +0 -2
  823. package/dist/services/RmuxBackend/RmuxBackend.d.mts +0 -2
  824. package/dist/services/RmuxBackend/RmuxBackend.mjs +0 -1
  825. package/dist/services/RmuxBackend/index.cjs +0 -1
  826. package/dist/services/RmuxBackend/index.d.cts +0 -3
  827. package/dist/services/RmuxBackend/index.d.mts +0 -3
  828. package/dist/services/RmuxBackend/index.mjs +0 -1
  829. package/dist/services/RtkProcessor/RtkProcessor.cjs +0 -1
  830. package/dist/services/RtkProcessor/RtkProcessor.d.cts +0 -2
  831. package/dist/services/RtkProcessor/RtkProcessor.d.mts +0 -2
  832. package/dist/services/RtkProcessor/RtkProcessor.mjs +0 -1
  833. package/dist/services/RtkProcessor/index.cjs +0 -1
  834. package/dist/services/RtkProcessor/index.d.cts +0 -3
  835. package/dist/services/RtkProcessor/index.d.mts +0 -3
  836. package/dist/services/RtkProcessor/index.mjs +0 -1
  837. package/dist/services/RunnerNamer/RunnerNamer.cjs +0 -1
  838. package/dist/services/RunnerNamer/RunnerNamer.d.cts +0 -2
  839. package/dist/services/RunnerNamer/RunnerNamer.d.mts +0 -2
  840. package/dist/services/RunnerNamer/RunnerNamer.mjs +0 -1
  841. package/dist/services/RunnerNamer/index.cjs +0 -1
  842. package/dist/services/RunnerNamer/index.d.cts +0 -3
  843. package/dist/services/RunnerNamer/index.d.mts +0 -3
  844. package/dist/services/RunnerNamer/index.mjs +0 -1
  845. package/dist/services/RunnerPaths/RunnerPaths.cjs +0 -1
  846. package/dist/services/RunnerPaths/RunnerPaths.d.cts +0 -2
  847. package/dist/services/RunnerPaths/RunnerPaths.d.mts +0 -2
  848. package/dist/services/RunnerPaths/RunnerPaths.mjs +0 -1
  849. package/dist/services/RunnerPaths/index.cjs +0 -1
  850. package/dist/services/RunnerPaths/index.d.cts +0 -3
  851. package/dist/services/RunnerPaths/index.d.mts +0 -3
  852. package/dist/services/RunnerPaths/index.mjs +0 -1
  853. package/dist/services/RunnerRegistry/RunnerRegistry.cjs +0 -1
  854. package/dist/services/RunnerRegistry/RunnerRegistry.d.cts +0 -2
  855. package/dist/services/RunnerRegistry/RunnerRegistry.d.mts +0 -2
  856. package/dist/services/RunnerRegistry/RunnerRegistry.mjs +0 -1
  857. package/dist/services/RunnerRegistry/index.cjs +0 -1
  858. package/dist/services/RunnerRegistry/index.d.cts +0 -3
  859. package/dist/services/RunnerRegistry/index.d.mts +0 -3
  860. package/dist/services/RunnerRegistry/index.mjs +0 -1
  861. package/dist/services/Spawner/NodeSpawner.cjs +0 -1
  862. package/dist/services/Spawner/NodeSpawner.d.cts +0 -2
  863. package/dist/services/Spawner/NodeSpawner.d.mts +0 -2
  864. package/dist/services/Spawner/NodeSpawner.mjs +0 -1
  865. package/dist/services/Spawner/index.cjs +0 -1
  866. package/dist/services/Spawner/index.d.cts +0 -3
  867. package/dist/services/Spawner/index.d.mts +0 -3
  868. package/dist/services/Spawner/index.mjs +0 -1
  869. package/dist/sessionApi.cjs +0 -1
  870. package/dist/sessionApi.d.cts +0 -2
  871. package/dist/sessionApi.d.mts +0 -2
  872. package/dist/sessionApi.mjs +0 -1
  873. package/dist/src/adapters/BashRunService/BashRunService.cjs +0 -2
  874. package/dist/src/adapters/BashRunService/BashRunService.cjs.map +0 -1
  875. package/dist/src/adapters/BashRunService/BashRunService.d.cts +0 -31
  876. package/dist/src/adapters/BashRunService/BashRunService.d.cts.map +0 -1
  877. package/dist/src/adapters/BashRunService/BashRunService.d.mts +0 -31
  878. package/dist/src/adapters/BashRunService/BashRunService.d.mts.map +0 -1
  879. package/dist/src/adapters/BashRunService/BashRunService.mjs +0 -2
  880. package/dist/src/adapters/BashRunService/BashRunService.mjs.map +0 -1
  881. package/dist/src/adapters/Clock/SystemClock.cjs +0 -2
  882. package/dist/src/adapters/Clock/SystemClock.cjs.map +0 -1
  883. package/dist/src/adapters/Clock/SystemClock.d.cts +0 -9
  884. package/dist/src/adapters/Clock/SystemClock.d.cts.map +0 -1
  885. package/dist/src/adapters/Clock/SystemClock.d.mts +0 -9
  886. package/dist/src/adapters/Clock/SystemClock.d.mts.map +0 -1
  887. package/dist/src/adapters/Clock/SystemClock.mjs +0 -2
  888. package/dist/src/adapters/Clock/SystemClock.mjs.map +0 -1
  889. package/dist/src/adapters/Launcher/Launcher.cjs +0 -2
  890. package/dist/src/adapters/Launcher/Launcher.cjs.map +0 -1
  891. package/dist/src/adapters/Launcher/Launcher.d.cts +0 -20
  892. package/dist/src/adapters/Launcher/Launcher.d.cts.map +0 -1
  893. package/dist/src/adapters/Launcher/Launcher.d.mts +0 -20
  894. package/dist/src/adapters/Launcher/Launcher.d.mts.map +0 -1
  895. package/dist/src/adapters/Launcher/Launcher.mjs +0 -2
  896. package/dist/src/adapters/Launcher/Launcher.mjs.map +0 -1
  897. package/dist/src/adapters/Lifeline/NodeLifeline.cjs +0 -2
  898. package/dist/src/adapters/Lifeline/NodeLifeline.cjs.map +0 -1
  899. package/dist/src/adapters/Lifeline/NodeLifeline.d.cts +0 -18
  900. package/dist/src/adapters/Lifeline/NodeLifeline.d.cts.map +0 -1
  901. package/dist/src/adapters/Lifeline/NodeLifeline.d.mts +0 -18
  902. package/dist/src/adapters/Lifeline/NodeLifeline.d.mts.map +0 -1
  903. package/dist/src/adapters/Lifeline/NodeLifeline.mjs +0 -2
  904. package/dist/src/adapters/Lifeline/NodeLifeline.mjs.map +0 -1
  905. package/dist/src/adapters/Lifeline/client.cjs +0 -2
  906. package/dist/src/adapters/Lifeline/client.cjs.map +0 -1
  907. package/dist/src/adapters/Lifeline/client.d.cts +0 -22
  908. package/dist/src/adapters/Lifeline/client.d.cts.map +0 -1
  909. package/dist/src/adapters/Lifeline/client.d.mts +0 -22
  910. package/dist/src/adapters/Lifeline/client.d.mts.map +0 -1
  911. package/dist/src/adapters/Lifeline/client.mjs.map +0 -1
  912. package/dist/src/adapters/LogFile/LogFile.cjs +0 -2
  913. package/dist/src/adapters/LogFile/LogFile.cjs.map +0 -1
  914. package/dist/src/adapters/LogFile/LogFile.d.cts +0 -10
  915. package/dist/src/adapters/LogFile/LogFile.d.cts.map +0 -1
  916. package/dist/src/adapters/LogFile/LogFile.d.mts +0 -10
  917. package/dist/src/adapters/LogFile/LogFile.d.mts.map +0 -1
  918. package/dist/src/adapters/LogFile/LogFile.mjs +0 -2
  919. package/dist/src/adapters/LogFile/LogFile.mjs.map +0 -1
  920. package/dist/src/adapters/LogReader/LogReader.cjs +0 -8
  921. package/dist/src/adapters/LogReader/LogReader.cjs.map +0 -1
  922. package/dist/src/adapters/LogReader/LogReader.d.cts +0 -12
  923. package/dist/src/adapters/LogReader/LogReader.d.cts.map +0 -1
  924. package/dist/src/adapters/LogReader/LogReader.d.mts +0 -12
  925. package/dist/src/adapters/LogReader/LogReader.d.mts.map +0 -1
  926. package/dist/src/adapters/LogReader/LogReader.mjs +0 -8
  927. package/dist/src/adapters/LogReader/LogReader.mjs.map +0 -1
  928. package/dist/src/adapters/LogTail/LogTail.cjs +0 -3
  929. package/dist/src/adapters/LogTail/LogTail.cjs.map +0 -1
  930. package/dist/src/adapters/LogTail/LogTail.mjs +0 -3
  931. package/dist/src/adapters/LogTail/LogTail.mjs.map +0 -1
  932. package/dist/src/adapters/ProcessControl/NodeProcessControl.cjs +0 -2
  933. package/dist/src/adapters/ProcessControl/NodeProcessControl.cjs.map +0 -1
  934. package/dist/src/adapters/ProcessControl/NodeProcessControl.d.cts +0 -9
  935. package/dist/src/adapters/ProcessControl/NodeProcessControl.d.cts.map +0 -1
  936. package/dist/src/adapters/ProcessControl/NodeProcessControl.d.mts +0 -9
  937. package/dist/src/adapters/ProcessControl/NodeProcessControl.d.mts.map +0 -1
  938. package/dist/src/adapters/ProcessControl/NodeProcessControl.mjs +0 -2
  939. package/dist/src/adapters/ProcessControl/NodeProcessControl.mjs.map +0 -1
  940. package/dist/src/adapters/PtyBackendChain/PtyBackendChain.cjs +0 -2
  941. package/dist/src/adapters/PtyBackendChain/PtyBackendChain.cjs.map +0 -1
  942. package/dist/src/adapters/PtyBackendChain/PtyBackendChain.mjs +0 -2
  943. package/dist/src/adapters/PtyBackendChain/PtyBackendChain.mjs.map +0 -1
  944. package/dist/src/adapters/PtyHost/PtyHost.cjs +0 -5
  945. package/dist/src/adapters/PtyHost/PtyHost.cjs.map +0 -1
  946. package/dist/src/adapters/PtyHost/PtyHost.d.cts +0 -22
  947. package/dist/src/adapters/PtyHost/PtyHost.d.cts.map +0 -1
  948. package/dist/src/adapters/PtyHost/PtyHost.d.mts +0 -22
  949. package/dist/src/adapters/PtyHost/PtyHost.d.mts.map +0 -1
  950. package/dist/src/adapters/PtyHost/PtyHost.mjs +0 -5
  951. package/dist/src/adapters/PtyHost/PtyHost.mjs.map +0 -1
  952. package/dist/src/adapters/PtySpawner/NodePtySpawner.cjs +0 -2
  953. package/dist/src/adapters/PtySpawner/NodePtySpawner.cjs.map +0 -1
  954. package/dist/src/adapters/PtySpawner/NodePtySpawner.d.cts +0 -13
  955. package/dist/src/adapters/PtySpawner/NodePtySpawner.d.cts.map +0 -1
  956. package/dist/src/adapters/PtySpawner/NodePtySpawner.d.mts +0 -13
  957. package/dist/src/adapters/PtySpawner/NodePtySpawner.d.mts.map +0 -1
  958. package/dist/src/adapters/PtySpawner/NodePtySpawner.mjs +0 -2
  959. package/dist/src/adapters/PtySpawner/NodePtySpawner.mjs.map +0 -1
  960. package/dist/src/adapters/RmuxBackend/RmuxBackend.cjs +0 -2
  961. package/dist/src/adapters/RmuxBackend/RmuxBackend.cjs.map +0 -1
  962. package/dist/src/adapters/RmuxBackend/RmuxBackend.d.cts +0 -39
  963. package/dist/src/adapters/RmuxBackend/RmuxBackend.d.cts.map +0 -1
  964. package/dist/src/adapters/RmuxBackend/RmuxBackend.d.mts +0 -39
  965. package/dist/src/adapters/RmuxBackend/RmuxBackend.d.mts.map +0 -1
  966. package/dist/src/adapters/RmuxBackend/RmuxBackend.mjs +0 -2
  967. package/dist/src/adapters/RmuxBackend/RmuxBackend.mjs.map +0 -1
  968. package/dist/src/adapters/RtkProcessor/RtkProcessor.cjs +0 -2
  969. package/dist/src/adapters/RtkProcessor/RtkProcessor.cjs.map +0 -1
  970. package/dist/src/adapters/RtkProcessor/RtkProcessor.d.cts +0 -28
  971. package/dist/src/adapters/RtkProcessor/RtkProcessor.d.cts.map +0 -1
  972. package/dist/src/adapters/RtkProcessor/RtkProcessor.d.mts +0 -28
  973. package/dist/src/adapters/RtkProcessor/RtkProcessor.d.mts.map +0 -1
  974. package/dist/src/adapters/RtkProcessor/RtkProcessor.mjs +0 -2
  975. package/dist/src/adapters/RtkProcessor/RtkProcessor.mjs.map +0 -1
  976. package/dist/src/adapters/RunnerPaths.cjs +0 -2
  977. package/dist/src/adapters/RunnerPaths.cjs.map +0 -1
  978. package/dist/src/adapters/RunnerPaths.d.cts +0 -46
  979. package/dist/src/adapters/RunnerPaths.d.cts.map +0 -1
  980. package/dist/src/adapters/RunnerPaths.d.mts +0 -46
  981. package/dist/src/adapters/RunnerPaths.d.mts.map +0 -1
  982. package/dist/src/adapters/RunnerPaths.mjs +0 -2
  983. package/dist/src/adapters/RunnerPaths.mjs.map +0 -1
  984. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.cjs +0 -2
  985. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.cjs.map +0 -1
  986. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.d.cts +0 -34
  987. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.d.cts.map +0 -1
  988. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.d.mts +0 -34
  989. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.d.mts.map +0 -1
  990. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.mjs +0 -2
  991. package/dist/src/adapters/RunnerRegistry/RunnerRegistry.mjs.map +0 -1
  992. package/dist/src/adapters/RunnerSettings/RunnerSettingsLoader.cjs +0 -2
  993. package/dist/src/adapters/RunnerSettings/RunnerSettingsLoader.cjs.map +0 -1
  994. package/dist/src/adapters/RunnerSettings/RunnerSettingsLoader.mjs +0 -2
  995. package/dist/src/adapters/RunnerSettings/RunnerSettingsLoader.mjs.map +0 -1
  996. package/dist/src/adapters/Spawner/NodeSpawner.cjs +0 -2
  997. package/dist/src/adapters/Spawner/NodeSpawner.cjs.map +0 -1
  998. package/dist/src/adapters/Spawner/NodeSpawner.d.cts +0 -8
  999. package/dist/src/adapters/Spawner/NodeSpawner.d.cts.map +0 -1
  1000. package/dist/src/adapters/Spawner/NodeSpawner.d.mts +0 -8
  1001. package/dist/src/adapters/Spawner/NodeSpawner.d.mts.map +0 -1
  1002. package/dist/src/adapters/Spawner/NodeSpawner.mjs +0 -2
  1003. package/dist/src/adapters/Spawner/NodeSpawner.mjs.map +0 -1
  1004. package/dist/src/adapters/TmuxBackend/TmuxBackend.cjs +0 -2
  1005. package/dist/src/adapters/TmuxBackend/TmuxBackend.cjs.map +0 -1
  1006. package/dist/src/adapters/TmuxBackend/TmuxBackend.mjs +0 -2
  1007. package/dist/src/adapters/TmuxBackend/TmuxBackend.mjs.map +0 -1
  1008. package/dist/src/adapters/TmuxBackend/TmuxClient.cjs.map +0 -1
  1009. package/dist/src/adapters/TmuxBackend/TmuxClient.mjs.map +0 -1
  1010. package/dist/src/adapters/pi/extension.cjs +0 -3
  1011. package/dist/src/adapters/pi/extension.cjs.map +0 -1
  1012. package/dist/src/adapters/pi/extension.d.cts +0 -8
  1013. package/dist/src/adapters/pi/extension.d.cts.map +0 -1
  1014. package/dist/src/adapters/pi/extension.d.mts +0 -8
  1015. package/dist/src/adapters/pi/extension.d.mts.map +0 -1
  1016. package/dist/src/adapters/pi/extension.mjs +0 -3
  1017. package/dist/src/adapters/pi/extension.mjs.map +0 -1
  1018. package/dist/src/adapters/runnerLogApi.cjs +0 -2
  1019. package/dist/src/adapters/runnerLogApi.cjs.map +0 -1
  1020. package/dist/src/adapters/runnerLogApi.d.cts +0 -37
  1021. package/dist/src/adapters/runnerLogApi.d.cts.map +0 -1
  1022. package/dist/src/adapters/runnerLogApi.d.mts +0 -37
  1023. package/dist/src/adapters/runnerLogApi.d.mts.map +0 -1
  1024. package/dist/src/adapters/runnerLogApi.mjs +0 -2
  1025. package/dist/src/adapters/runnerLogApi.mjs.map +0 -1
  1026. package/dist/src/adapters/webRunnerWatcher.cjs +0 -2
  1027. package/dist/src/adapters/webRunnerWatcher.cjs.map +0 -1
  1028. package/dist/src/adapters/webRunnerWatcher.d.cts +0 -38
  1029. package/dist/src/adapters/webRunnerWatcher.d.cts.map +0 -1
  1030. package/dist/src/adapters/webRunnerWatcher.d.mts +0 -38
  1031. package/dist/src/adapters/webRunnerWatcher.d.mts.map +0 -1
  1032. package/dist/src/adapters/webRunnerWatcher.mjs +0 -2
  1033. package/dist/src/adapters/webRunnerWatcher.mjs.map +0 -1
  1034. package/dist/src/adapters/webRunnersChannel.cjs +0 -2
  1035. package/dist/src/adapters/webRunnersChannel.cjs.map +0 -1
  1036. package/dist/src/adapters/webRunnersChannel.d.cts +0 -14
  1037. package/dist/src/adapters/webRunnersChannel.d.cts.map +0 -1
  1038. package/dist/src/adapters/webRunnersChannel.d.mts +0 -14
  1039. package/dist/src/adapters/webRunnersChannel.d.mts.map +0 -1
  1040. package/dist/src/adapters/webRunnersChannel.mjs +0 -2
  1041. package/dist/src/adapters/webRunnersChannel.mjs.map +0 -1
  1042. package/dist/src/commands/bash/bashTool.cjs +0 -6
  1043. package/dist/src/commands/bash/bashTool.cjs.map +0 -1
  1044. package/dist/src/commands/bash/bashTool.d.cts +0 -23
  1045. package/dist/src/commands/bash/bashTool.d.cts.map +0 -1
  1046. package/dist/src/commands/bash/bashTool.d.mts +0 -23
  1047. package/dist/src/commands/bash/bashTool.d.mts.map +0 -1
  1048. package/dist/src/commands/bash/bashTool.mjs +0 -6
  1049. package/dist/src/commands/bash/bashTool.mjs.map +0 -1
  1050. package/dist/src/commands/bash/responseEnvelope.cjs +0 -14
  1051. package/dist/src/commands/bash/responseEnvelope.cjs.map +0 -1
  1052. package/dist/src/commands/bash/responseEnvelope.d.cts +0 -93
  1053. package/dist/src/commands/bash/responseEnvelope.d.cts.map +0 -1
  1054. package/dist/src/commands/bash/responseEnvelope.d.mts +0 -93
  1055. package/dist/src/commands/bash/responseEnvelope.d.mts.map +0 -1
  1056. package/dist/src/commands/bash/responseEnvelope.mjs +0 -14
  1057. package/dist/src/commands/bash/responseEnvelope.mjs.map +0 -1
  1058. package/dist/src/commands/cli/cliApp.cjs +0 -6
  1059. package/dist/src/commands/cli/cliApp.cjs.map +0 -1
  1060. package/dist/src/commands/cli/cliApp.d.cts +0 -18
  1061. package/dist/src/commands/cli/cliApp.d.cts.map +0 -1
  1062. package/dist/src/commands/cli/cliApp.d.mts +0 -18
  1063. package/dist/src/commands/cli/cliApp.d.mts.map +0 -1
  1064. package/dist/src/commands/cli/cliApp.mjs +0 -6
  1065. package/dist/src/commands/cli/cliApp.mjs.map +0 -1
  1066. package/dist/src/container/index.cjs +0 -2
  1067. package/dist/src/container/index.cjs.map +0 -1
  1068. package/dist/src/container/index.d.cts +0 -16
  1069. package/dist/src/container/index.d.cts.map +0 -1
  1070. package/dist/src/container/index.d.mts +0 -16
  1071. package/dist/src/container/index.d.mts.map +0 -1
  1072. package/dist/src/container/index.mjs +0 -2
  1073. package/dist/src/container/index.mjs.map +0 -1
  1074. package/dist/src/container/types.d.cts +0 -39
  1075. package/dist/src/container/types.d.cts.map +0 -1
  1076. package/dist/src/container/types.d.mts +0 -39
  1077. package/dist/src/container/types.d.mts.map +0 -1
  1078. package/dist/src/schemas/bashTool.cjs +0 -2
  1079. package/dist/src/schemas/bashTool.cjs.map +0 -1
  1080. package/dist/src/schemas/bashTool.d.cts +0 -21
  1081. package/dist/src/schemas/bashTool.d.cts.map +0 -1
  1082. package/dist/src/schemas/bashTool.d.mts +0 -21
  1083. package/dist/src/schemas/bashTool.d.mts.map +0 -1
  1084. package/dist/src/schemas/bashTool.mjs +0 -2
  1085. package/dist/src/schemas/bashTool.mjs.map +0 -1
  1086. package/dist/src/schemas/runnerSpec.cjs +0 -2
  1087. package/dist/src/schemas/runnerSpec.cjs.map +0 -1
  1088. package/dist/src/schemas/runnerSpec.mjs +0 -2
  1089. package/dist/src/schemas/runnerSpec.mjs.map +0 -1
  1090. package/dist/src/services/AnsiScrub/ansiScrub.cjs +0 -5
  1091. package/dist/src/services/AnsiScrub/ansiScrub.cjs.map +0 -1
  1092. package/dist/src/services/AnsiScrub/ansiScrub.d.cts +0 -33
  1093. package/dist/src/services/AnsiScrub/ansiScrub.d.cts.map +0 -1
  1094. package/dist/src/services/AnsiScrub/ansiScrub.d.mts +0 -33
  1095. package/dist/src/services/AnsiScrub/ansiScrub.d.mts.map +0 -1
  1096. package/dist/src/services/AnsiScrub/ansiScrub.mjs +0 -5
  1097. package/dist/src/services/AnsiScrub/ansiScrub.mjs.map +0 -1
  1098. package/dist/src/services/RunnerNamer/RunnerNamer.cjs +0 -2
  1099. package/dist/src/services/RunnerNamer/RunnerNamer.cjs.map +0 -1
  1100. package/dist/src/services/RunnerNamer/RunnerNamer.d.cts +0 -10
  1101. package/dist/src/services/RunnerNamer/RunnerNamer.d.cts.map +0 -1
  1102. package/dist/src/services/RunnerNamer/RunnerNamer.d.mts +0 -10
  1103. package/dist/src/services/RunnerNamer/RunnerNamer.d.mts.map +0 -1
  1104. package/dist/src/services/RunnerNamer/RunnerNamer.mjs +0 -2
  1105. package/dist/src/services/RunnerNamer/RunnerNamer.mjs.map +0 -1
  1106. package/dist/src/services/RunnerNamer/types.d.cts +0 -11
  1107. package/dist/src/services/RunnerNamer/types.d.cts.map +0 -1
  1108. package/dist/src/services/RunnerNamer/types.d.mts +0 -11
  1109. package/dist/src/services/RunnerNamer/types.d.mts.map +0 -1
  1110. package/dist/src/services/RunnerPaths/types.d.cts +0 -43
  1111. package/dist/src/services/RunnerPaths/types.d.cts.map +0 -1
  1112. package/dist/src/services/RunnerPaths/types.d.mts +0 -43
  1113. package/dist/src/services/RunnerPaths/types.d.mts.map +0 -1
  1114. package/dist/src/services/TokenEstimate/tokenEstimate.cjs +0 -2
  1115. package/dist/src/services/TokenEstimate/tokenEstimate.cjs.map +0 -1
  1116. package/dist/src/services/TokenEstimate/tokenEstimate.mjs +0 -2
  1117. package/dist/src/services/TokenEstimate/tokenEstimate.mjs.map +0 -1
  1118. package/dist/src/services/runs/compaction.cjs +0 -4
  1119. package/dist/src/services/runs/compaction.cjs.map +0 -1
  1120. package/dist/src/services/runs/compaction.d.cts +0 -12
  1121. package/dist/src/services/runs/compaction.d.cts.map +0 -1
  1122. package/dist/src/services/runs/compaction.d.mts +0 -12
  1123. package/dist/src/services/runs/compaction.d.mts.map +0 -1
  1124. package/dist/src/services/runs/compaction.mjs +0 -4
  1125. package/dist/src/services/runs/compaction.mjs.map +0 -1
  1126. package/dist/src/services/runs/reconcile.cjs +0 -2
  1127. package/dist/src/services/runs/reconcile.cjs.map +0 -1
  1128. package/dist/src/services/runs/reconcile.d.cts +0 -31
  1129. package/dist/src/services/runs/reconcile.d.cts.map +0 -1
  1130. package/dist/src/services/runs/reconcile.d.mts +0 -31
  1131. package/dist/src/services/runs/reconcile.d.mts.map +0 -1
  1132. package/dist/src/services/runs/reconcile.mjs +0 -2
  1133. package/dist/src/services/runs/reconcile.mjs.map +0 -1
  1134. package/dist/src/services/runs/runnerRecord.cjs +0 -2
  1135. package/dist/src/services/runs/runnerRecord.cjs.map +0 -1
  1136. package/dist/src/services/runs/runnerRecord.mjs +0 -2
  1137. package/dist/src/services/runs/runnerRecord.mjs.map +0 -1
  1138. package/dist/src/services/runs/runnersCommand.cjs +0 -2
  1139. package/dist/src/services/runs/runnersCommand.cjs.map +0 -1
  1140. package/dist/src/services/runs/runnersCommand.mjs +0 -2
  1141. package/dist/src/services/runs/runnersCommand.mjs.map +0 -1
  1142. package/dist/src/services/runs/session.cjs +0 -2
  1143. package/dist/src/services/runs/session.cjs.map +0 -1
  1144. package/dist/src/services/runs/session.d.cts +0 -9
  1145. package/dist/src/services/runs/session.d.cts.map +0 -1
  1146. package/dist/src/services/runs/session.d.mts +0 -9
  1147. package/dist/src/services/runs/session.d.mts.map +0 -1
  1148. package/dist/src/services/runs/session.mjs +0 -2
  1149. package/dist/src/services/runs/session.mjs.map +0 -1
  1150. package/dist/src/services/webRunnerRuns.cjs +0 -2
  1151. package/dist/src/services/webRunnerRuns.cjs.map +0 -1
  1152. package/dist/src/services/webRunnerRuns.mjs +0 -2
  1153. package/dist/src/services/webRunnerRuns.mjs.map +0 -1
  1154. package/dist/src/tui/bashRender.cjs +0 -5
  1155. package/dist/src/tui/bashRender.cjs.map +0 -1
  1156. package/dist/src/tui/bashRender.d.cts +0 -50
  1157. package/dist/src/tui/bashRender.d.cts.map +0 -1
  1158. package/dist/src/tui/bashRender.d.mts +0 -50
  1159. package/dist/src/tui/bashRender.d.mts.map +0 -1
  1160. package/dist/src/tui/bashRender.mjs +0 -5
  1161. package/dist/src/tui/bashRender.mjs.map +0 -1
  1162. package/dist/src/tui/format.cjs +0 -2
  1163. package/dist/src/tui/format.cjs.map +0 -1
  1164. package/dist/src/tui/format.d.cts +0 -23
  1165. package/dist/src/tui/format.d.cts.map +0 -1
  1166. package/dist/src/tui/format.d.mts +0 -23
  1167. package/dist/src/tui/format.d.mts.map +0 -1
  1168. package/dist/src/tui/format.mjs +0 -2
  1169. package/dist/src/tui/format.mjs.map +0 -1
  1170. package/dist/src/tui/runnerSpace.cjs +0 -6
  1171. package/dist/src/tui/runnerSpace.cjs.map +0 -1
  1172. package/dist/src/tui/runnerSpace.d.cts +0 -49
  1173. package/dist/src/tui/runnerSpace.d.cts.map +0 -1
  1174. package/dist/src/tui/runnerSpace.d.mts +0 -49
  1175. package/dist/src/tui/runnerSpace.d.mts.map +0 -1
  1176. package/dist/src/tui/runnerSpace.mjs +0 -6
  1177. package/dist/src/tui/runnerSpace.mjs.map +0 -1
  1178. package/dist/src/types/bashRunService.d.cts.map +0 -1
  1179. package/dist/src/types/bashRunService.d.mts.map +0 -1
  1180. package/dist/src/types/clock.d.cts.map +0 -1
  1181. package/dist/src/types/clock.d.mts.map +0 -1
  1182. package/dist/src/types/config.cjs +0 -2
  1183. package/dist/src/types/config.cjs.map +0 -1
  1184. package/dist/src/types/config.d.cts +0 -84
  1185. package/dist/src/types/config.d.cts.map +0 -1
  1186. package/dist/src/types/config.d.mts +0 -84
  1187. package/dist/src/types/config.d.mts.map +0 -1
  1188. package/dist/src/types/config.mjs +0 -2
  1189. package/dist/src/types/config.mjs.map +0 -1
  1190. package/dist/src/types/launcher.d.cts.map +0 -1
  1191. package/dist/src/types/launcher.d.mts.map +0 -1
  1192. package/dist/src/types/lifeline.d.cts.map +0 -1
  1193. package/dist/src/types/lifeline.d.mts.map +0 -1
  1194. package/dist/src/types/logFile.d.cts.map +0 -1
  1195. package/dist/src/types/logFile.d.mts.map +0 -1
  1196. package/dist/src/types/logReader.d.cts.map +0 -1
  1197. package/dist/src/types/logReader.d.mts.map +0 -1
  1198. package/dist/src/types/logTail.d.cts +0 -27
  1199. package/dist/src/types/logTail.d.cts.map +0 -1
  1200. package/dist/src/types/logTail.d.mts +0 -27
  1201. package/dist/src/types/logTail.d.mts.map +0 -1
  1202. package/dist/src/types/processControl.d.cts.map +0 -1
  1203. package/dist/src/types/processControl.d.mts.map +0 -1
  1204. package/dist/src/types/ptyHost.d.cts.map +0 -1
  1205. package/dist/src/types/ptyHost.d.mts.map +0 -1
  1206. package/dist/src/types/ptySpawner.d.cts.map +0 -1
  1207. package/dist/src/types/ptySpawner.d.mts.map +0 -1
  1208. package/dist/src/types/rmuxBackend.d.cts.map +0 -1
  1209. package/dist/src/types/rmuxBackend.d.mts.map +0 -1
  1210. package/dist/src/types/rtkProcessor.cjs.map +0 -1
  1211. package/dist/src/types/rtkProcessor.d.cts.map +0 -1
  1212. package/dist/src/types/rtkProcessor.d.mts.map +0 -1
  1213. package/dist/src/types/rtkProcessor.mjs.map +0 -1
  1214. package/dist/src/types/runnerRegistry.d.cts.map +0 -1
  1215. package/dist/src/types/runnerRegistry.d.mts.map +0 -1
  1216. package/dist/src/types/runnerSettings.d.cts.map +0 -1
  1217. package/dist/src/types/runnerSettings.d.mts.map +0 -1
  1218. package/dist/src/types/spawner.d.cts.map +0 -1
  1219. package/dist/src/types/spawner.d.mts.map +0 -1
  1220. package/dist/src/types/webRunnerLog.cjs +0 -2
  1221. package/dist/src/types/webRunnerLog.cjs.map +0 -1
  1222. package/dist/src/types/webRunnerLog.mjs +0 -2
  1223. package/dist/src/types/webRunnerLog.mjs.map +0 -1
  1224. package/dist/src/types/webRunners.cjs.map +0 -1
  1225. package/dist/src/types/webRunners.d.cts +0 -37
  1226. package/dist/src/types/webRunners.d.cts.map +0 -1
  1227. package/dist/src/types/webRunners.d.mts +0 -37
  1228. package/dist/src/types/webRunners.d.mts.map +0 -1
  1229. package/dist/src/types/webRunners.mjs.map +0 -1
  1230. package/dist/tool/bashTool.cjs +0 -1
  1231. package/dist/tool/bashTool.d.cts +0 -2
  1232. package/dist/tool/bashTool.d.mts +0 -2
  1233. package/dist/tool/bashTool.mjs +0 -1
  1234. package/dist/tool/responseEnvelope.cjs +0 -1
  1235. package/dist/tool/responseEnvelope.d.cts +0 -2
  1236. package/dist/tool/responseEnvelope.d.mts +0 -2
  1237. package/dist/tool/responseEnvelope.mjs +0 -1
  1238. package/dist/tool/schema.cjs +0 -1
  1239. package/dist/tool/schema.d.cts +0 -2
  1240. package/dist/tool/schema.d.mts +0 -2
  1241. package/dist/tool/schema.mjs +0 -1
  1242. package/dist/webHub.cjs +0 -1
  1243. package/dist/webHub.d.cts +0 -2
  1244. package/dist/webHub.d.mts +0 -2
  1245. package/dist/webHub.mjs +0 -1
  1246. package/src/exports/webClient.ts +0 -1
  1247. package/src/web/index.ts +0 -32
  1248. /package/dist/{src/types → constants}/webRunners.cjs +0 -0
  1249. /package/dist/{src/types → constants}/webRunners.mjs +0 -0
  1250. /package/dist/{src/adapters/Lifeline → services/lifeline}/client.mjs +0 -0
  1251. /package/dist/{src/adapters/TmuxBackend → services/tmuxBackend}/TmuxClient.cjs +0 -0
  1252. /package/dist/{src/adapters/TmuxBackend → services/tmuxBackend}/TmuxClient.mjs +0 -0
  1253. /package/dist/{src/types → types}/bashRunService.d.cts +0 -0
  1254. /package/dist/{src/types → types}/bashRunService.d.mts +0 -0
  1255. /package/dist/{src/types → types}/clock.d.cts +0 -0
  1256. /package/dist/{src/types → types}/clock.d.mts +0 -0
  1257. /package/dist/{src/types → types}/launcher.d.cts +0 -0
  1258. /package/dist/{src/types → types}/launcher.d.mts +0 -0
  1259. /package/dist/{src/types → types}/lifeline.d.cts +0 -0
  1260. /package/dist/{src/types → types}/lifeline.d.mts +0 -0
  1261. /package/dist/{src/types → types}/logFile.d.cts +0 -0
  1262. /package/dist/{src/types → types}/logFile.d.mts +0 -0
  1263. /package/dist/{src/types → types}/logReader.d.cts +0 -0
  1264. /package/dist/{src/types → types}/logReader.d.mts +0 -0
  1265. /package/dist/{src/types → types}/processControl.d.cts +0 -0
  1266. /package/dist/{src/types → types}/processControl.d.mts +0 -0
  1267. /package/dist/{src/types → types}/ptyHost.d.cts +0 -0
  1268. /package/dist/{src/types → types}/ptyHost.d.mts +0 -0
  1269. /package/dist/{src/types → types}/ptySpawner.d.cts +0 -0
  1270. /package/dist/{src/types → types}/ptySpawner.d.mts +0 -0
  1271. /package/dist/{src/types → types}/rmuxBackend.d.cts +0 -0
  1272. /package/dist/{src/types → types}/rmuxBackend.d.mts +0 -0
  1273. /package/dist/{src/types → types}/rtkProcessor.cjs +0 -0
  1274. /package/dist/{src/types → types}/rtkProcessor.d.cts +0 -0
  1275. /package/dist/{src/types → types}/rtkProcessor.d.mts +0 -0
  1276. /package/dist/{src/types → types}/rtkProcessor.mjs +0 -0
  1277. /package/dist/{src/types → types}/runnerRegistry.d.cts +0 -0
  1278. /package/dist/{src/types → types}/runnerRegistry.d.mts +0 -0
  1279. /package/dist/{src/types → types}/runnerSettings.d.cts +0 -0
  1280. /package/dist/{src/types → types}/runnerSettings.d.mts +0 -0
  1281. /package/dist/{src/types → types}/spawner.d.cts +0 -0
  1282. /package/dist/{src/types → types}/spawner.d.mts +0 -0
package/README.md CHANGED
@@ -208,7 +208,7 @@ metadata. RMUX is dual-licensed under MIT or Apache-2.0. RTK v0.45.0 is licensed
208
208
 
209
209
  ```ts
210
210
  import {
211
- createRunnerContainer,
211
+ createRunnerDependencies,
212
212
  DEFAULT_BG_THRESHOLD_MS,
213
213
  DEFAULT_LOG_MAX_BYTES,
214
214
  DEFAULT_LOG_TTL_MS,
@@ -234,3 +234,11 @@ Maintained by [Agimon](https://agimon.ai/about).
234
234
  ## License
235
235
 
236
236
  MIT
237
+
238
+ ## Extension lifecycle and source layout
239
+
240
+ `extensions/pi.ts` assembles the Runner UI runtime and native Bash tool declaration. `onStart` resolves the lazy service graph, subscribes to registry updates, and starts retention/status polling. `onStop` awaits initialization and pending operations, stops owned processes, closes PTYs and the registry, and releases telemetry. Partial startup closes an already opened registry.
241
+
242
+ The Pi UI orchestration is in `tui/runnerRuntime.ts`; process and filesystem implementations live in `services/<name>/`. Controllers implement HTTP, CLI, and server command handling. `extensions/server.ts` composes the per-session supervision activity with those controllers. Model state, constants, and schemas have dedicated roots. The browser declaration lives directly in `extensions/web.ts`.
243
+
244
+ Public capabilities use flat kebab-case subpaths such as `runner-dependencies`, `rmux-backend`, `runner-paths`, `bash-tool`, and `response-envelope`. Flat `src/exports/` files only forward these capabilities. Executable `bin/*` paths remain unchanged. The former nested service aliases and container entry are removed.
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/ansiScrub/index.cjs");exports.collapseCarriageReturns=e.collapseCarriageReturns,exports.scrubTerminalOutput=e.scrubTerminalOutput,exports.scrubTerminalOutputToPlainText=e.scrubTerminalOutputToPlainText,exports.stripAnsi=e.stripAnsi,exports.stripAnsiKeepingColour=e.stripAnsiKeepingColour;
@@ -0,0 +1,2 @@
1
+ import { collapseCarriageReturns, scrubTerminalOutput, scrubTerminalOutputToPlainText, stripAnsi, stripAnsiKeepingColour } from "./services/ansiScrub/index.cjs";
2
+ export { collapseCarriageReturns, scrubTerminalOutput, scrubTerminalOutputToPlainText, stripAnsi, stripAnsiKeepingColour };
@@ -0,0 +1,2 @@
1
+ import { collapseCarriageReturns, scrubTerminalOutput, scrubTerminalOutputToPlainText, stripAnsi, stripAnsiKeepingColour } from "./services/ansiScrub/index.mjs";
2
+ export { collapseCarriageReturns, scrubTerminalOutput, scrubTerminalOutputToPlainText, stripAnsi, stripAnsiKeepingColour };
@@ -0,0 +1 @@
1
+ import{collapseCarriageReturns as e,scrubTerminalOutput as t,scrubTerminalOutputToPlainText as n,stripAnsi as r,stripAnsiKeepingColour as i}from"./services/ansiScrub/index.mjs";export{e as collapseCarriageReturns,t as scrubTerminalOutput,n as scrubTerminalOutputToPlainText,r as stripAnsi,i as stripAnsiKeepingColour};
@@ -0,0 +1 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./schemas/apiContracts.cjs");exports.apiContracts=e.apiContracts,exports.default=e.apiContracts;
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./schemas/apiContracts.cjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./schemas/apiContracts.mjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1 @@
1
+ import{apiContracts as e}from"./schemas/apiContracts.mjs";export{e as apiContracts,e as default};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./tui/bashRender.cjs");exports.abbreviateHome=e.abbreviateHome,exports.collapseCommand=e.collapseCommand,exports.formatBashCommand=e.formatBashCommand,exports.formatBashFlags=e.formatBashFlags,exports.formatResultSummary=e.formatResultSummary,exports.renderBashCall=e.renderBashCall,exports.renderBashResult=e.renderBashResult,exports.truncateMiddle=e.truncateMiddle;
@@ -0,0 +1,2 @@
1
+ import { BashResultDetails, Highlighter, abbreviateHome, collapseCommand, formatBashCommand, formatBashFlags, formatResultSummary, renderBashCall, renderBashResult, truncateMiddle } from "./tui/bashRender.cjs";
2
+ export { BashResultDetails, Highlighter, abbreviateHome, collapseCommand, formatBashCommand, formatBashFlags, formatResultSummary, renderBashCall, renderBashResult, truncateMiddle };
@@ -0,0 +1,2 @@
1
+ import { BashResultDetails, Highlighter, abbreviateHome, collapseCommand, formatBashCommand, formatBashFlags, formatResultSummary, renderBashCall, renderBashResult, truncateMiddle } from "./tui/bashRender.mjs";
2
+ export { BashResultDetails, Highlighter, abbreviateHome, collapseCommand, formatBashCommand, formatBashFlags, formatResultSummary, renderBashCall, renderBashResult, truncateMiddle };
@@ -0,0 +1 @@
1
+ import{abbreviateHome as e,collapseCommand as t,formatBashCommand as n,formatBashFlags as r,formatResultSummary as i,renderBashCall as a,renderBashResult as o,truncateMiddle as s}from"./tui/bashRender.mjs";export{e as abbreviateHome,t as collapseCommand,n as formatBashCommand,r as formatBashFlags,i as formatResultSummary,a as renderBashCall,o as renderBashResult,s as truncateMiddle};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/bashRunService/index.cjs");exports.BashRunService=e.BashRunService;
@@ -0,0 +1,3 @@
1
+ import { BashRunRequest, BashRunResult, CompletedRun, FailedRun, IBashRunService, PromotedRun } from "./types/bashRunService.cjs";
2
+ import { BashRunService } from "./services/bashRunService/index.cjs";
3
+ export { type BashRunRequest, type BashRunResult, BashRunService, type CompletedRun, type FailedRun, type IBashRunService, type PromotedRun };
@@ -0,0 +1,3 @@
1
+ import { BashRunRequest, BashRunResult, CompletedRun, FailedRun, IBashRunService, PromotedRun } from "./types/bashRunService.mjs";
2
+ import { BashRunService } from "./services/bashRunService/index.mjs";
3
+ export { type BashRunRequest, type BashRunResult, BashRunService, type CompletedRun, type FailedRun, type IBashRunService, type PromotedRun };
@@ -0,0 +1 @@
1
+ import{BashRunService as e}from"./services/bashRunService/index.mjs";export{e as BashRunService};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./constants/bashTool.cjs"),t=require("./schemas/bashTool.cjs");exports.BASH_TOOL_LABEL=e.BASH_TOOL_LABEL,exports.BASH_TOOL_NAME=e.BASH_TOOL_NAME,exports.BashParamsSchema=t.BashParamsSchema;
@@ -0,0 +1,3 @@
1
+ import { BashParams, BashParamsSchema } from "./schemas/bashTool.cjs";
2
+ import { BASH_TOOL_LABEL, BASH_TOOL_NAME } from "./constants/bashTool.cjs";
3
+ export { BASH_TOOL_LABEL, BASH_TOOL_NAME, BashParams, BashParamsSchema };
@@ -0,0 +1,3 @@
1
+ import { BashParams, BashParamsSchema } from "./schemas/bashTool.mjs";
2
+ import { BASH_TOOL_LABEL, BASH_TOOL_NAME } from "./constants/bashTool.mjs";
3
+ export { BASH_TOOL_LABEL, BASH_TOOL_NAME, BashParams, BashParamsSchema };
@@ -0,0 +1 @@
1
+ import{BASH_TOOL_LABEL as e,BASH_TOOL_NAME as t}from"./constants/bashTool.mjs";import{BashParamsSchema as n}from"./schemas/bashTool.mjs";export{e as BASH_TOOL_LABEL,t as BASH_TOOL_NAME,n as BashParamsSchema};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/runnerResult/index.cjs"),t=require("./tools/bashTool.cjs");exports.BASH_PROMPT_SNIPPET=t.BASH_PROMPT_SNIPPET,exports.bashPromptGuidelines=t.bashPromptGuidelines,exports.createBashTool=t.createBashTool,exports.formatRunResult=e.formatRunnerResult;
@@ -0,0 +1,4 @@
1
+ import { formatRunnerResult } from "./services/runnerResult/index.cjs";
2
+ import { BashToolDependencies, BashToolRenderers } from "./types/bashTool.cjs";
3
+ import { BASH_PROMPT_SNIPPET, bashPromptGuidelines, createBashTool } from "./tools/bashTool.cjs";
4
+ export { BASH_PROMPT_SNIPPET, type BashToolDependencies, type BashToolRenderers, bashPromptGuidelines, createBashTool, formatRunnerResult as formatRunResult };
@@ -0,0 +1,4 @@
1
+ import { formatRunnerResult } from "./services/runnerResult/index.mjs";
2
+ import { BashToolDependencies, BashToolRenderers } from "./types/bashTool.mjs";
3
+ import { BASH_PROMPT_SNIPPET, bashPromptGuidelines, createBashTool } from "./tools/bashTool.mjs";
4
+ export { BASH_PROMPT_SNIPPET, type BashToolDependencies, type BashToolRenderers, bashPromptGuidelines, createBashTool, formatRunnerResult as formatRunResult };
@@ -0,0 +1 @@
1
+ import{formatRunnerResult as e}from"./services/runnerResult/index.mjs";import{BASH_PROMPT_SNIPPET as t,bashPromptGuidelines as n,createBashTool as r}from"./tools/bashTool.mjs";export{t as BASH_PROMPT_SNIPPET,n as bashPromptGuidelines,r as createBashTool,e as formatRunResult};
package/dist/bin/cli.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../src/container/index.cjs"),t=require("../src/commands/cli/cliApp.cjs");let n=require("node:url"),r=require("@agimon-ai/doompi-telemetry");async function i(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(t));return Buffer.concat(e).toString(`utf8`)}async function a(n=process.argv.slice(2)){let a=Date.now(),o=(0,r.createDoomTelemetry)({serviceName:`doom-runner-cli`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),s=e.createRunnerContainer(),c=s.runnerRegistry,l=0,u=0;try{let e=await t.runCli(n,{registry:c,launcher:s.launcher,rmuxBackend:s.rmuxBackend,logReader:s.logReader,env:process.env,stdout:e=>{let t=e.endsWith(`
3
- `)?e:`${e}\n`;l+=Buffer.byteLength(t,`utf8`),process.stdout.write(t)},stderr:e=>{let t=e.endsWith(`
4
- `)?e:`${e}\n`;u+=Buffer.byteLength(t,`utf8`),process.stderr.write(t)},readStdin:i});return await o.recordEvent(`doom_runner.cli_finished`,{outcome:e===0?`completed`:`failed`,"runner.exit_code":e,duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":l,"runner.stderr_bytes":u}),e}catch(e){throw await o.recordError(`doom_runner.cli_failed`,e,{duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":l,"runner.stderr_bytes":u}),e}finally{c.close(),await o.shutdown()}}process.argv[1]&&require("url").pathToFileURL(__filename).href===(0,n.pathToFileURL)(process.argv[1]).href&&a().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}),exports.main=a;
2
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../services/runnerDependencies/index.cjs"),t=require("../controllers/cliApp.cjs");let n=require("node:url"),r=require("@agimon-ai/doompi-telemetry");async function i(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(t));return Buffer.concat(e).toString(`utf8`)}async function a(n=process.argv.slice(2)){let a=Date.now(),o=Object.freeze({...process.env}),s=(0,r.createDoomTelemetry)({serviceName:`doom-runner-cli`,packageName:`@agimon-ai/doompi-runner`,env:o,enableLogs:!0,enableTraces:!0}),c=e.createRunnerDependencies({environment:o}),l=c.runnerRegistry,u=0,d=0;try{let e=await t.runCli(n,{registry:l,launcher:c.launcher,rmuxBackend:c.rmuxBackend,logReader:c.logReader,env:o,stdout:e=>{let t=e.endsWith(`
3
+ `)?e:`${e}\n`;u+=Buffer.byteLength(t,`utf8`),process.stdout.write(t)},stderr:e=>{let t=e.endsWith(`
4
+ `)?e:`${e}\n`;d+=Buffer.byteLength(t,`utf8`),process.stderr.write(t)},readStdin:i});return await s.recordEvent(`doom_runner.cli_finished`,{outcome:e===0?`completed`:`failed`,"runner.exit_code":e,duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":u,"runner.stderr_bytes":d}),e}catch(e){throw await s.recordError(`doom_runner.cli_failed`,e,{duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":u,"runner.stderr_bytes":d}),e}finally{l.close(),await s.shutdown()}}process.argv[1]&&require("url").pathToFileURL(__filename).href===(0,n.pathToFileURL)(process.argv[1]).href&&a().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}),exports.main=a;
5
5
  //# sourceMappingURL=cli.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.cjs","names":["createDoomTelemetry","createRunnerContainer","runCli","pathToFileURL"],"sources":["../../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { pathToFileURL } from 'node:url';\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\nimport { runCli } from '../commands/cli/cliApp.ts';\nimport { createRunnerContainer } from '../container/index.ts';\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n return Buffer.concat(chunks).toString('utf8');\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-cli',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const container = createRunnerContainer();\n const registry = container.runnerRegistry;\n let stdoutBytes = 0;\n let stderrBytes = 0;\n try {\n const exitCode = await runCli(argv, {\n registry,\n launcher: container.launcher,\n rmuxBackend: container.rmuxBackend,\n logReader: container.logReader,\n env: process.env,\n stdout: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stdoutBytes += Buffer.byteLength(output, 'utf8');\n process.stdout.write(output);\n },\n stderr: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stderrBytes += Buffer.byteLength(output, 'utf8');\n process.stderr.write(output);\n },\n readStdin,\n });\n await telemetry.recordEvent('doom_runner.cli_finished', {\n outcome: exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError('doom_runner.cli_failed', error, {\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n throw error;\n } finally {\n registry.close();\n await telemetry.shutdown();\n }\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";gOAOA,eAAe,GAA6B,CAC1C,IAAM,EAAmB,CAAC,EAC1B,UAAW,IAAM,KAAS,QAAQ,MAAO,EAAO,KAAK,OAAO,SAAS,CAAK,EAAI,EAAQ,OAAO,KAAK,CAAK,CAAC,EACxG,OAAO,OAAO,OAAO,CAAM,CAAC,CAAC,SAAS,MAAM,CAC9C,CAEA,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAM,EAAY,KAAK,IAAI,EACrB,GAAA,EAAYA,EAAAA,oBAAAA,CAAoB,CACpC,YAAa,kBACb,YAAa,2BACb,IAAK,QAAQ,IACb,WAAY,GACZ,aAAc,EAChB,CAAC,EACK,EAAYC,EAAAA,sBAAsB,EAClC,EAAW,EAAU,eACvB,EAAc,EACd,EAAc,EAClB,GAAI,CACF,IAAM,EAAW,MAAMC,EAAAA,OAAO,EAAM,CAClC,WACA,SAAU,EAAU,SACpB,YAAa,EAAU,YACvB,UAAW,EAAU,UACrB,IAAK,QAAQ,IACb,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,WACF,CAAC,EASD,OARA,MAAM,EAAU,YAAY,2BAA4B,CACtD,QAAS,IAAa,EAAI,YAAc,SACxC,mBAAoB,EACpB,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACM,CACT,OAAS,EAAO,CAOd,MANA,MAAM,EAAU,YAAY,yBAA0B,EAAO,CAC3D,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACK,CACR,QAAU,CACR,EAAS,MAAM,EACf,MAAM,EAAU,SAAS,CAC3B,CACF,CAEI,QAAQ,KAAK,IAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,QAAA,EAA0BC,EAAAA,cAAAA,CAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAS,CACR,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,QAAQ,OAAO,MAAM,GAAG,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAAE,GAAG,EAClF,QAAQ,SAAW,CACrB,CACF"}
1
+ {"version":3,"file":"cli.cjs","names":["createDoomTelemetry","createRunnerDependencies","runCli","pathToFileURL"],"sources":["../../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { pathToFileURL } from 'node:url';\n\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\n\nimport { runCli } from '../controllers/cliApp';\nimport { createRunnerDependencies } from '../services/runnerDependencies';\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n return Buffer.concat(chunks).toString('utf8');\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const environment = Object.freeze({ ...process.env });\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-cli',\n packageName: '@agimon-ai/doompi-runner',\n env: environment,\n enableLogs: true,\n enableTraces: true,\n });\n const container = createRunnerDependencies({ environment });\n const registry = container.runnerRegistry;\n let stdoutBytes = 0;\n let stderrBytes = 0;\n try {\n const exitCode = await runCli(argv, {\n registry,\n launcher: container.launcher,\n rmuxBackend: container.rmuxBackend,\n logReader: container.logReader,\n env: environment,\n stdout: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stdoutBytes += Buffer.byteLength(output, 'utf8');\n process.stdout.write(output);\n },\n stderr: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stderrBytes += Buffer.byteLength(output, 'utf8');\n process.stderr.write(output);\n },\n readStdin,\n });\n await telemetry.recordEvent('doom_runner.cli_finished', {\n outcome: exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError('doom_runner.cli_failed', error, {\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n throw error;\n } finally {\n registry.close();\n await telemetry.shutdown();\n }\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";yOASA,eAAe,GAA6B,CAC1C,IAAM,EAAmB,CAAC,EAC1B,UAAW,IAAM,KAAS,QAAQ,MAAO,EAAO,KAAK,OAAO,SAAS,CAAK,EAAI,EAAQ,OAAO,KAAK,CAAK,CAAC,EACxG,OAAO,OAAO,OAAO,CAAM,CAAC,CAAC,SAAS,MAAM,CAC9C,CAEA,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAM,EAAY,KAAK,IAAI,EACrB,EAAc,OAAO,OAAO,CAAE,GAAG,QAAQ,GAAI,CAAC,EAC9C,GAAA,EAAYA,EAAAA,oBAAAA,CAAoB,CACpC,YAAa,kBACb,YAAa,2BACb,IAAK,EACL,WAAY,GACZ,aAAc,EAChB,CAAC,EACK,EAAYC,EAAAA,yBAAyB,CAAE,aAAY,CAAC,EACpD,EAAW,EAAU,eACvB,EAAc,EACd,EAAc,EAClB,GAAI,CACF,IAAM,EAAW,MAAMC,EAAAA,OAAO,EAAM,CAClC,WACA,SAAU,EAAU,SACpB,YAAa,EAAU,YACvB,UAAW,EAAU,UACrB,IAAK,EACL,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,WACF,CAAC,EASD,OARA,MAAM,EAAU,YAAY,2BAA4B,CACtD,QAAS,IAAa,EAAI,YAAc,SACxC,mBAAoB,EACpB,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACM,CACT,OAAS,EAAO,CAOd,MANA,MAAM,EAAU,YAAY,yBAA0B,EAAO,CAC3D,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACK,CACR,QAAU,CACR,EAAS,MAAM,EACf,MAAM,EAAU,SAAS,CAC3B,CACF,CAEI,QAAQ,KAAK,IAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,QAAA,EAA0BC,EAAAA,cAAAA,CAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAS,CACR,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,QAAQ,OAAO,MAAM,GAAG,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAAE,GAAG,EAClF,QAAQ,SAAW,CACrB,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.cts","names":[],"sources":["../../src/bin/cli.ts"],"mappings":";wBAasB,KAAK,2BAAkD"}
1
+ {"version":3,"file":"cli.d.cts","names":[],"sources":["../../src/bin/cli.ts"],"mappings":";wBAesB,KAAK,2BAAkD"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.mts","names":[],"sources":["../../src/bin/cli.ts"],"mappings":";wBAasB,KAAK,2BAAkD"}
1
+ {"version":3,"file":"cli.d.mts","names":[],"sources":["../../src/bin/cli.ts"],"mappings":";wBAesB,KAAK,2BAAkD"}
package/dist/bin/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{createRunnerContainer as e}from"../src/container/index.mjs";import{runCli as t}from"../src/commands/cli/cliApp.mjs";import{pathToFileURL as n}from"node:url";import{createDoomTelemetry as r}from"@agimon-ai/doompi-telemetry";async function i(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(t));return Buffer.concat(e).toString(`utf8`)}async function a(n=process.argv.slice(2)){let a=Date.now(),o=r({serviceName:`doom-runner-cli`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),s=e(),c=s.runnerRegistry,l=0,u=0;try{let e=await t(n,{registry:c,launcher:s.launcher,rmuxBackend:s.rmuxBackend,logReader:s.logReader,env:process.env,stdout:e=>{let t=e.endsWith(`
3
- `)?e:`${e}\n`;l+=Buffer.byteLength(t,`utf8`),process.stdout.write(t)},stderr:e=>{let t=e.endsWith(`
4
- `)?e:`${e}\n`;u+=Buffer.byteLength(t,`utf8`),process.stderr.write(t)},readStdin:i});return await o.recordEvent(`doom_runner.cli_finished`,{outcome:e===0?`completed`:`failed`,"runner.exit_code":e,duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":l,"runner.stderr_bytes":u}),e}catch(e){throw await o.recordError(`doom_runner.cli_failed`,e,{duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":l,"runner.stderr_bytes":u}),e}finally{c.close(),await o.shutdown()}}process.argv[1]&&import.meta.url===n(process.argv[1]).href&&a().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1});export{a as main};
2
+ import{createRunnerDependencies as e}from"../services/runnerDependencies/index.mjs";import{runCli as t}from"../controllers/cliApp.mjs";import{pathToFileURL as n}from"node:url";import{createDoomTelemetry as r}from"@agimon-ai/doompi-telemetry";async function i(){let e=[];for await(let t of process.stdin)e.push(Buffer.isBuffer(t)?t:Buffer.from(t));return Buffer.concat(e).toString(`utf8`)}async function a(n=process.argv.slice(2)){let a=Date.now(),o=Object.freeze({...process.env}),s=r({serviceName:`doom-runner-cli`,packageName:`@agimon-ai/doompi-runner`,env:o,enableLogs:!0,enableTraces:!0}),c=e({environment:o}),l=c.runnerRegistry,u=0,d=0;try{let e=await t(n,{registry:l,launcher:c.launcher,rmuxBackend:c.rmuxBackend,logReader:c.logReader,env:o,stdout:e=>{let t=e.endsWith(`
3
+ `)?e:`${e}\n`;u+=Buffer.byteLength(t,`utf8`),process.stdout.write(t)},stderr:e=>{let t=e.endsWith(`
4
+ `)?e:`${e}\n`;d+=Buffer.byteLength(t,`utf8`),process.stderr.write(t)},readStdin:i});return await s.recordEvent(`doom_runner.cli_finished`,{outcome:e===0?`completed`:`failed`,"runner.exit_code":e,duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":u,"runner.stderr_bytes":d}),e}catch(e){throw await s.recordError(`doom_runner.cli_failed`,e,{duration_ms:Date.now()-a,"runner.argument_count":n.length,"runner.stdout_bytes":u,"runner.stderr_bytes":d}),e}finally{l.close(),await s.shutdown()}}process.argv[1]&&import.meta.url===n(process.argv[1]).href&&a().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1});export{a as main};
5
5
  //# sourceMappingURL=cli.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","names":[],"sources":["../../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { pathToFileURL } from 'node:url';\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\nimport { runCli } from '../commands/cli/cliApp.ts';\nimport { createRunnerContainer } from '../container/index.ts';\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n return Buffer.concat(chunks).toString('utf8');\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-cli',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const container = createRunnerContainer();\n const registry = container.runnerRegistry;\n let stdoutBytes = 0;\n let stderrBytes = 0;\n try {\n const exitCode = await runCli(argv, {\n registry,\n launcher: container.launcher,\n rmuxBackend: container.rmuxBackend,\n logReader: container.logReader,\n env: process.env,\n stdout: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stdoutBytes += Buffer.byteLength(output, 'utf8');\n process.stdout.write(output);\n },\n stderr: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stderrBytes += Buffer.byteLength(output, 'utf8');\n process.stderr.write(output);\n },\n readStdin,\n });\n await telemetry.recordEvent('doom_runner.cli_finished', {\n outcome: exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError('doom_runner.cli_failed', error, {\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n throw error;\n } finally {\n registry.close();\n await telemetry.shutdown();\n }\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";sOAOA,eAAe,GAA6B,CAC1C,IAAM,EAAmB,CAAC,EAC1B,UAAW,IAAM,KAAS,QAAQ,MAAO,EAAO,KAAK,OAAO,SAAS,CAAK,EAAI,EAAQ,OAAO,KAAK,CAAK,CAAC,EACxG,OAAO,OAAO,OAAO,CAAM,CAAC,CAAC,SAAS,MAAM,CAC9C,CAEA,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAM,EAAY,KAAK,IAAI,EACrB,EAAY,EAAoB,CACpC,YAAa,kBACb,YAAa,2BACb,IAAK,QAAQ,IACb,WAAY,GACZ,aAAc,EAChB,CAAC,EACK,EAAY,EAAsB,EAClC,EAAW,EAAU,eACvB,EAAc,EACd,EAAc,EAClB,GAAI,CACF,IAAM,EAAW,MAAM,EAAO,EAAM,CAClC,WACA,SAAU,EAAU,SACpB,YAAa,EAAU,YACvB,UAAW,EAAU,UACrB,IAAK,QAAQ,IACb,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,WACF,CAAC,EASD,OARA,MAAM,EAAU,YAAY,2BAA4B,CACtD,QAAS,IAAa,EAAI,YAAc,SACxC,mBAAoB,EACpB,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACM,CACT,OAAS,EAAO,CAOd,MANA,MAAM,EAAU,YAAY,yBAA0B,EAAO,CAC3D,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACK,CACR,QAAU,CACR,EAAS,MAAM,EACf,MAAM,EAAU,SAAS,CAC3B,CACF,CAEI,QAAQ,KAAK,IAAM,YAAY,MAAQ,EAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAS,CACR,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,QAAQ,OAAO,MAAM,GAAG,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAAE,GAAG,EAClF,QAAQ,SAAW,CACrB,CACF"}
1
+ {"version":3,"file":"cli.mjs","names":[],"sources":["../../src/bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { pathToFileURL } from 'node:url';\n\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\n\nimport { runCli } from '../controllers/cliApp';\nimport { createRunnerDependencies } from '../services/runnerDependencies';\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n return Buffer.concat(chunks).toString('utf8');\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const environment = Object.freeze({ ...process.env });\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-cli',\n packageName: '@agimon-ai/doompi-runner',\n env: environment,\n enableLogs: true,\n enableTraces: true,\n });\n const container = createRunnerDependencies({ environment });\n const registry = container.runnerRegistry;\n let stdoutBytes = 0;\n let stderrBytes = 0;\n try {\n const exitCode = await runCli(argv, {\n registry,\n launcher: container.launcher,\n rmuxBackend: container.rmuxBackend,\n logReader: container.logReader,\n env: environment,\n stdout: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stdoutBytes += Buffer.byteLength(output, 'utf8');\n process.stdout.write(output);\n },\n stderr: (text) => {\n const output = text.endsWith('\\n') ? text : `${text}\\n`;\n stderrBytes += Buffer.byteLength(output, 'utf8');\n process.stderr.write(output);\n },\n readStdin,\n });\n await telemetry.recordEvent('doom_runner.cli_finished', {\n outcome: exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError('doom_runner.cli_failed', error, {\n duration_ms: Date.now() - startedAt,\n 'runner.argument_count': argv.length,\n 'runner.stdout_bytes': stdoutBytes,\n 'runner.stderr_bytes': stderrBytes,\n });\n throw error;\n } finally {\n registry.close();\n await telemetry.shutdown();\n }\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";kPASA,eAAe,GAA6B,CAC1C,IAAM,EAAmB,CAAC,EAC1B,UAAW,IAAM,KAAS,QAAQ,MAAO,EAAO,KAAK,OAAO,SAAS,CAAK,EAAI,EAAQ,OAAO,KAAK,CAAK,CAAC,EACxG,OAAO,OAAO,OAAO,CAAM,CAAC,CAAC,SAAS,MAAM,CAC9C,CAEA,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAM,EAAY,KAAK,IAAI,EACrB,EAAc,OAAO,OAAO,CAAE,GAAG,QAAQ,GAAI,CAAC,EAC9C,EAAY,EAAoB,CACpC,YAAa,kBACb,YAAa,2BACb,IAAK,EACL,WAAY,GACZ,aAAc,EAChB,CAAC,EACK,EAAY,EAAyB,CAAE,aAAY,CAAC,EACpD,EAAW,EAAU,eACvB,EAAc,EACd,EAAc,EAClB,GAAI,CACF,IAAM,EAAW,MAAM,EAAO,EAAM,CAClC,WACA,SAAU,EAAU,SACpB,YAAa,EAAU,YACvB,UAAW,EAAU,UACrB,IAAK,EACL,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,OAAS,GAAS,CAChB,IAAM,EAAS,EAAK,SAAS;CAAI,EAAI,EAAO,GAAG,EAAK,IACpD,GAAe,OAAO,WAAW,EAAQ,MAAM,EAC/C,QAAQ,OAAO,MAAM,CAAM,CAC7B,EACA,WACF,CAAC,EASD,OARA,MAAM,EAAU,YAAY,2BAA4B,CACtD,QAAS,IAAa,EAAI,YAAc,SACxC,mBAAoB,EACpB,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACM,CACT,OAAS,EAAO,CAOd,MANA,MAAM,EAAU,YAAY,yBAA0B,EAAO,CAC3D,YAAa,KAAK,IAAI,EAAI,EAC1B,wBAAyB,EAAK,OAC9B,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACK,CACR,QAAU,CACR,EAAS,MAAM,EACf,MAAM,EAAU,SAAS,CAC3B,CACF,CAEI,QAAQ,KAAK,IAAM,YAAY,MAAQ,EAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAS,CACR,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,QAAQ,OAAO,MAAM,GAAG,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAAE,GAAG,EAClF,QAAQ,SAAW,CACrB,CACF"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../src/services/AnsiScrub/ansiScrub.cjs");let n=require("node:fs");n=e.__toESM(n,1);let r=require("node:url"),i=require("@agimon-ai/doompi-telemetry");async function a(e=process.argv.slice(2)){let r=Date.now(),a=(0,i.createDoomTelemetry)({serviceName:`doom-runner-log-sink`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[l,u,d,f,p]=e;try{if(!l||!u||!d||!f)throw Error(`logSink requires log, rotated log, max bytes, and completion paths`)}catch(e){throw await a.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-r}),await a.shutdown(),e}let m,h;try{m=n.default.openSync(l,`a`),h=n.default.statSync(l).size}catch(e){throw await a.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-r}),await a.shutdown(),e}let g=0,_=Number.parseInt(d,10),v=p===void 0||p===``?void 0:o(p),y=v===void 0?0:s(p);try{process.stdin.setEncoding(`utf8`);for await(let e of process.stdin){let r=String(e);if(v!==void 0){let e=Buffer.from(r,`utf8`);y+e.byteLength>_&&(n.default.ftruncateSync(v,0),y=0),n.default.writeSync(v,e),y+=e.byteLength}let i=t.scrubTerminalOutput(r);if(!i)continue;let a=Buffer.from(i,`utf8`);n.default.writeSync(m,a),h+=a.byteLength,g+=1}return n.default.closeSync(m),v!==void 0&&n.default.closeSync(v),c(f),await a.recordEvent(`doom_runner.file_sink_finished`,{outcome:`completed`,"runner.chunk_count":g,"runner.bytes_written":h,duration_ms:Date.now()-r}),0}catch(e){throw await a.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-r}),e}finally{await a.shutdown()}}function o(e){return n.default.openSync(e,`w`)}function s(e){try{return n.default.statSync(e).size}catch{return 0}}function c(e){let t=`${e}.${process.pid}.tmp`;n.default.writeFileSync(t,``,{mode:384}),n.default.renameSync(t,e)}process.argv[1]&&require("url").pathToFileURL(__filename).href===(0,r.pathToFileURL)(process.argv[1]).href&&a().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}),exports.main=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../services/ansiScrub/index.cjs");let n=require("node:fs");n=e.__toESM(n,1);let r=require("node:url"),i=require("@agimon-ai/doompi-telemetry");async function a(e=process.argv.slice(2)){let r=Date.now(),a=(0,i.createDoomTelemetry)({serviceName:`doom-runner-log-sink`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[l,u,d,f,p]=e;try{if(!l||!u||!d||!f)throw Error(`logSink requires log, rotated log, max bytes, and completion paths`)}catch(e){throw await a.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-r}),await a.shutdown(),e}let m,h;try{m=n.default.openSync(l,`a`),h=n.default.statSync(l).size}catch(e){throw await a.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-r}),await a.shutdown(),e}let g=0,_=Number.parseInt(d,10),v=p===void 0||p===``?void 0:o(p),y=v===void 0?0:s(p);try{process.stdin.setEncoding(`utf8`);for await(let e of process.stdin){let r=String(e);if(v!==void 0){let e=Buffer.from(r,`utf8`);y+e.byteLength>_&&(n.default.ftruncateSync(v,0),y=0),n.default.writeSync(v,e),y+=e.byteLength}let i=t.scrubTerminalOutput(r);if(!i)continue;let a=Buffer.from(i,`utf8`);n.default.writeSync(m,a),h+=a.byteLength,g+=1}return n.default.closeSync(m),v!==void 0&&n.default.closeSync(v),c(f),await a.recordEvent(`doom_runner.file_sink_finished`,{outcome:`completed`,"runner.chunk_count":g,"runner.bytes_written":h,duration_ms:Date.now()-r}),0}catch(e){throw await a.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-r}),e}finally{await a.shutdown()}}function o(e){return n.default.openSync(e,`w`)}function s(e){try{return n.default.statSync(e).size}catch{return 0}}function c(e){let t=`${e}.${process.pid}.tmp`;n.default.writeFileSync(t,``,{mode:384}),n.default.renameSync(t,e)}process.argv[1]&&require("url").pathToFileURL(__filename).href===(0,r.pathToFileURL)(process.argv[1]).href&&a().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}),exports.main=a;
2
2
  //# sourceMappingURL=logSink.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logSink.cjs","names":["createDoomTelemetry","fs","scrubTerminalOutput","pathToFileURL"],"sources":["../../src/bin/logSink.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { pathToFileURL } from 'node:url';\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\nimport { scrubTerminalOutput } from '../services/AnsiScrub/ansiScrub';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-log-sink',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [logPath, rotatedPath, maxBytesRaw, donePath, rawPath] = argv;\n try {\n // Keep the legacy argument shape for the published executable subpath. The\n // scrubbed log is append-only, so the former rotation path is unused; the\n // ceiling now bounds the raw copy, which only interactive runs ask for.\n if (!logPath || !rotatedPath || !maxBytesRaw || !donePath) {\n throw new Error('logSink requires log, rotated log, max bytes, and completion paths');\n }\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n\n let handle: number;\n let written: number;\n try {\n handle = fs.openSync(logPath, 'a');\n written = fs.statSync(logPath).size;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let chunks = 0;\n // The pane's bytes before anything is taken out of them. Scrubbing exists so\n // the log stays worth grepping, and it is exactly what makes the log useless\n // to a terminal, so an attached view needs its own faithful copy.\n const rawCeiling = Number.parseInt(maxBytesRaw, 10);\n const raw = rawPath === undefined || rawPath === '' ? undefined : openRaw(rawPath);\n let rawWritten = raw === undefined ? 0 : rawSize(rawPath as string);\n try {\n process.stdin.setEncoding('utf8');\n for await (const chunk of process.stdin) {\n const source = String(chunk);\n if (raw !== undefined) {\n const rawBytes = Buffer.from(source, 'utf8');\n // A terminal that scrolls all day must not fill the disk. Past the\n // ceiling the copy starts over: a reader attaching later wants the\n // recent screen, and no part of this is the record of the run.\n if (rawWritten + rawBytes.byteLength > rawCeiling) {\n fs.ftruncateSync(raw, 0);\n rawWritten = 0;\n }\n fs.writeSync(raw, rawBytes);\n rawWritten += rawBytes.byteLength;\n }\n const text = scrubTerminalOutput(source);\n if (!text) continue;\n const bytes = Buffer.from(text, 'utf8');\n fs.writeSync(handle, bytes);\n written += bytes.byteLength;\n chunks += 1;\n }\n fs.closeSync(handle);\n if (raw !== undefined) fs.closeSync(raw);\n writeDone(donePath);\n await telemetry.recordEvent('doom_runner.file_sink_finished', {\n outcome: 'completed',\n 'runner.chunk_count': chunks,\n 'runner.bytes_written': written,\n duration_ms: Date.now() - startedAt,\n });\n return 0;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n await telemetry.shutdown();\n }\n}\n\n/** Truncating rather than appending: a stale pane from a previous run is not this one's. */\nfunction openRaw(target: string): number {\n return fs.openSync(target, 'w');\n}\n\nfunction rawSize(target: string): number {\n try {\n return fs.statSync(target).size;\n } catch {\n return 0;\n }\n}\n\nfunction writeDone(target: string): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, '', { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"logSink.cjs","names":["createDoomTelemetry","fs","scrubTerminalOutput","pathToFileURL"],"sources":["../../src/bin/logSink.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { pathToFileURL } from 'node:url';\n\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\n\nimport { scrubTerminalOutput } from '../services/ansiScrub';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-log-sink',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [logPath, rotatedPath, maxBytesRaw, donePath, rawPath] = argv;\n try {\n // Keep the legacy argument shape for the published executable subpath. The\n // scrubbed log is append-only, so the former rotation path is unused; the\n // ceiling now bounds the raw copy, which only interactive runs ask for.\n if (!logPath || !rotatedPath || !maxBytesRaw || !donePath) {\n throw new Error('logSink requires log, rotated log, max bytes, and completion paths');\n }\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n\n let handle: number;\n let written: number;\n try {\n handle = fs.openSync(logPath, 'a');\n written = fs.statSync(logPath).size;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let chunks = 0;\n // The pane's bytes before anything is taken out of them. Scrubbing exists so\n // the log stays worth grepping, and it is exactly what makes the log useless\n // to a terminal, so an attached view needs its own faithful copy.\n const rawCeiling = Number.parseInt(maxBytesRaw, 10);\n const raw = rawPath === undefined || rawPath === '' ? undefined : openRaw(rawPath);\n let rawWritten = raw === undefined ? 0 : rawSize(rawPath as string);\n try {\n process.stdin.setEncoding('utf8');\n for await (const chunk of process.stdin) {\n const source = String(chunk);\n if (raw !== undefined) {\n const rawBytes = Buffer.from(source, 'utf8');\n // A terminal that scrolls all day must not fill the disk. Past the\n // ceiling the copy starts over: a reader attaching later wants the\n // recent screen, and no part of this is the record of the run.\n if (rawWritten + rawBytes.byteLength > rawCeiling) {\n fs.ftruncateSync(raw, 0);\n rawWritten = 0;\n }\n fs.writeSync(raw, rawBytes);\n rawWritten += rawBytes.byteLength;\n }\n const text = scrubTerminalOutput(source);\n if (!text) continue;\n const bytes = Buffer.from(text, 'utf8');\n fs.writeSync(handle, bytes);\n written += bytes.byteLength;\n chunks += 1;\n }\n fs.closeSync(handle);\n if (raw !== undefined) fs.closeSync(raw);\n writeDone(donePath);\n await telemetry.recordEvent('doom_runner.file_sink_finished', {\n outcome: 'completed',\n 'runner.chunk_count': chunks,\n 'runner.bytes_written': written,\n duration_ms: Date.now() - startedAt,\n });\n return 0;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n await telemetry.shutdown();\n }\n}\n\n/** Truncating rather than appending: a stale pane from a previous run is not this one's. */\nfunction openRaw(target: string): number {\n return fs.openSync(target, 'w');\n}\n\nfunction rawSize(target: string): number {\n try {\n return fs.statSync(target).size;\n } catch {\n return 0;\n }\n}\n\nfunction writeDone(target: string): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, '', { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logSink.d.cts","names":[],"sources":["../../src/bin/logSink.ts"],"mappings":";wBAKsB,KAAK,2BAAkD"}
1
+ {"version":3,"file":"logSink.d.cts","names":[],"sources":["../../src/bin/logSink.ts"],"mappings":";wBAOsB,KAAK,2BAAkD"}
@@ -1 +1 @@
1
- {"version":3,"file":"logSink.d.mts","names":[],"sources":["../../src/bin/logSink.ts"],"mappings":";wBAKsB,KAAK,2BAAkD"}
1
+ {"version":3,"file":"logSink.d.mts","names":[],"sources":["../../src/bin/logSink.ts"],"mappings":";wBAOsB,KAAK,2BAAkD"}
@@ -1,2 +1,2 @@
1
- import{scrubTerminalOutput as e}from"../src/services/AnsiScrub/ansiScrub.mjs";import t from"node:fs";import{pathToFileURL as n}from"node:url";import{createDoomTelemetry as r}from"@agimon-ai/doompi-telemetry";async function i(n=process.argv.slice(2)){let i=Date.now(),c=r({serviceName:`doom-runner-log-sink`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[l,u,d,f,p]=n;try{if(!l||!u||!d||!f)throw Error(`logSink requires log, rotated log, max bytes, and completion paths`)}catch(e){throw await c.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-i}),await c.shutdown(),e}let m,h;try{m=t.openSync(l,`a`),h=t.statSync(l).size}catch(e){throw await c.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-i}),await c.shutdown(),e}let g=0,_=Number.parseInt(d,10),v=p===void 0||p===``?void 0:a(p),y=v===void 0?0:o(p);try{process.stdin.setEncoding(`utf8`);for await(let n of process.stdin){let r=String(n);if(v!==void 0){let e=Buffer.from(r,`utf8`);y+e.byteLength>_&&(t.ftruncateSync(v,0),y=0),t.writeSync(v,e),y+=e.byteLength}let i=e(r);if(!i)continue;let a=Buffer.from(i,`utf8`);t.writeSync(m,a),h+=a.byteLength,g+=1}return t.closeSync(m),v!==void 0&&t.closeSync(v),s(f),await c.recordEvent(`doom_runner.file_sink_finished`,{outcome:`completed`,"runner.chunk_count":g,"runner.bytes_written":h,duration_ms:Date.now()-i}),0}catch(e){throw await c.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-i}),e}finally{await c.shutdown()}}function a(e){return t.openSync(e,`w`)}function o(e){try{return t.statSync(e).size}catch{return 0}}function s(e){let n=`${e}.${process.pid}.tmp`;t.writeFileSync(n,``,{mode:384}),t.renameSync(n,e)}process.argv[1]&&import.meta.url===n(process.argv[1]).href&&i().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1});export{i as main};
1
+ import{scrubTerminalOutput as e}from"../services/ansiScrub/index.mjs";import t from"node:fs";import{pathToFileURL as n}from"node:url";import{createDoomTelemetry as r}from"@agimon-ai/doompi-telemetry";async function i(n=process.argv.slice(2)){let i=Date.now(),c=r({serviceName:`doom-runner-log-sink`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[l,u,d,f,p]=n;try{if(!l||!u||!d||!f)throw Error(`logSink requires log, rotated log, max bytes, and completion paths`)}catch(e){throw await c.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-i}),await c.shutdown(),e}let m,h;try{m=t.openSync(l,`a`),h=t.statSync(l).size}catch(e){throw await c.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-i}),await c.shutdown(),e}let g=0,_=Number.parseInt(d,10),v=p===void 0||p===``?void 0:a(p),y=v===void 0?0:o(p);try{process.stdin.setEncoding(`utf8`);for await(let n of process.stdin){let r=String(n);if(v!==void 0){let e=Buffer.from(r,`utf8`);y+e.byteLength>_&&(t.ftruncateSync(v,0),y=0),t.writeSync(v,e),y+=e.byteLength}let i=e(r);if(!i)continue;let a=Buffer.from(i,`utf8`);t.writeSync(m,a),h+=a.byteLength,g+=1}return t.closeSync(m),v!==void 0&&t.closeSync(v),s(f),await c.recordEvent(`doom_runner.file_sink_finished`,{outcome:`completed`,"runner.chunk_count":g,"runner.bytes_written":h,duration_ms:Date.now()-i}),0}catch(e){throw await c.recordError(`doom_runner.file_sink_failed`,e,{duration_ms:Date.now()-i}),e}finally{await c.shutdown()}}function a(e){return t.openSync(e,`w`)}function o(e){try{return t.statSync(e).size}catch{return 0}}function s(e){let n=`${e}.${process.pid}.tmp`;t.writeFileSync(n,``,{mode:384}),t.renameSync(n,e)}process.argv[1]&&import.meta.url===n(process.argv[1]).href&&i().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1});export{i as main};
2
2
  //# sourceMappingURL=logSink.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logSink.mjs","names":[],"sources":["../../src/bin/logSink.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { pathToFileURL } from 'node:url';\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\nimport { scrubTerminalOutput } from '../services/AnsiScrub/ansiScrub';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-log-sink',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [logPath, rotatedPath, maxBytesRaw, donePath, rawPath] = argv;\n try {\n // Keep the legacy argument shape for the published executable subpath. The\n // scrubbed log is append-only, so the former rotation path is unused; the\n // ceiling now bounds the raw copy, which only interactive runs ask for.\n if (!logPath || !rotatedPath || !maxBytesRaw || !donePath) {\n throw new Error('logSink requires log, rotated log, max bytes, and completion paths');\n }\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n\n let handle: number;\n let written: number;\n try {\n handle = fs.openSync(logPath, 'a');\n written = fs.statSync(logPath).size;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let chunks = 0;\n // The pane's bytes before anything is taken out of them. Scrubbing exists so\n // the log stays worth grepping, and it is exactly what makes the log useless\n // to a terminal, so an attached view needs its own faithful copy.\n const rawCeiling = Number.parseInt(maxBytesRaw, 10);\n const raw = rawPath === undefined || rawPath === '' ? undefined : openRaw(rawPath);\n let rawWritten = raw === undefined ? 0 : rawSize(rawPath as string);\n try {\n process.stdin.setEncoding('utf8');\n for await (const chunk of process.stdin) {\n const source = String(chunk);\n if (raw !== undefined) {\n const rawBytes = Buffer.from(source, 'utf8');\n // A terminal that scrolls all day must not fill the disk. Past the\n // ceiling the copy starts over: a reader attaching later wants the\n // recent screen, and no part of this is the record of the run.\n if (rawWritten + rawBytes.byteLength > rawCeiling) {\n fs.ftruncateSync(raw, 0);\n rawWritten = 0;\n }\n fs.writeSync(raw, rawBytes);\n rawWritten += rawBytes.byteLength;\n }\n const text = scrubTerminalOutput(source);\n if (!text) continue;\n const bytes = Buffer.from(text, 'utf8');\n fs.writeSync(handle, bytes);\n written += bytes.byteLength;\n chunks += 1;\n }\n fs.closeSync(handle);\n if (raw !== undefined) fs.closeSync(raw);\n writeDone(donePath);\n await telemetry.recordEvent('doom_runner.file_sink_finished', {\n outcome: 'completed',\n 'runner.chunk_count': chunks,\n 'runner.bytes_written': written,\n duration_ms: Date.now() - startedAt,\n });\n return 0;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n await telemetry.shutdown();\n }\n}\n\n/** Truncating rather than appending: a stale pane from a previous run is not this one's. */\nfunction openRaw(target: string): number {\n return fs.openSync(target, 'w');\n}\n\nfunction rawSize(target: string): number {\n try {\n return fs.statSync(target).size;\n } catch {\n return 0;\n }\n}\n\nfunction writeDone(target: string): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, '', { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"gNAKA,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAM,EAAY,KAAK,IAAI,EACrB,EAAY,EAAoB,CACpC,YAAa,uBACb,YAAa,2BACb,IAAK,QAAQ,IACb,WAAY,GACZ,aAAc,EAChB,CAAC,EACK,CAAC,EAAS,EAAa,EAAa,EAAU,GAAW,EAC/D,GAAI,CAIF,GAAI,CAAC,GAAW,CAAC,GAAe,CAAC,GAAe,CAAC,EAC/C,MAAU,MAAM,oEAAoE,CAExF,OAAS,EAAO,CAGd,MAFA,MAAM,EAAU,YAAY,+BAAgC,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EAC1G,MAAM,EAAU,SAAS,EACnB,CACR,CAEA,IAAI,EACA,EACJ,GAAI,CACF,EAAS,EAAG,SAAS,EAAS,GAAG,EACjC,EAAU,EAAG,SAAS,CAAO,CAAC,CAAC,IACjC,OAAS,EAAO,CAGd,MAFA,MAAM,EAAU,YAAY,+BAAgC,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EAC1G,MAAM,EAAU,SAAS,EACnB,CACR,CACA,IAAI,EAAS,EAIP,EAAa,OAAO,SAAS,EAAa,EAAE,EAC5C,EAAM,IAAY,IAAA,IAAa,IAAY,GAAK,IAAA,GAAY,EAAQ,CAAO,EAC7E,EAAa,IAAQ,IAAA,GAAY,EAAI,EAAQ,CAAiB,EAClE,GAAI,CACF,QAAQ,MAAM,YAAY,MAAM,EAChC,UAAW,IAAM,KAAS,QAAQ,MAAO,CACvC,IAAM,EAAS,OAAO,CAAK,EAC3B,GAAI,IAAQ,IAAA,GAAW,CACrB,IAAM,EAAW,OAAO,KAAK,EAAQ,MAAM,EAIvC,EAAa,EAAS,WAAa,IACrC,EAAG,cAAc,EAAK,CAAC,EACvB,EAAa,GAEf,EAAG,UAAU,EAAK,CAAQ,EAC1B,GAAc,EAAS,UACzB,CACA,IAAM,EAAO,EAAoB,CAAM,EACvC,GAAI,CAAC,EAAM,SACX,IAAM,EAAQ,OAAO,KAAK,EAAM,MAAM,EACtC,EAAG,UAAU,EAAQ,CAAK,EAC1B,GAAW,EAAM,WACjB,GAAU,CACZ,CAUA,OATA,EAAG,UAAU,CAAM,EACf,IAAQ,IAAA,IAAW,EAAG,UAAU,CAAG,EACvC,EAAU,CAAQ,EAClB,MAAM,EAAU,YAAY,iCAAkC,CAC5D,QAAS,YACT,qBAAsB,EACtB,uBAAwB,EACxB,YAAa,KAAK,IAAI,EAAI,CAC5B,CAAC,EACM,CACT,OAAS,EAAO,CAEd,MADA,MAAM,EAAU,YAAY,+BAAgC,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EACpG,CACR,QAAU,CACR,MAAM,EAAU,SAAS,CAC3B,CACF,CAGA,SAAS,EAAQ,EAAwB,CACvC,OAAO,EAAG,SAAS,EAAQ,GAAG,CAChC,CAEA,SAAS,EAAQ,EAAwB,CACvC,GAAI,CACF,OAAO,EAAG,SAAS,CAAM,CAAC,CAAC,IAC7B,MAAQ,CACN,MAAO,EACT,CACF,CAEA,SAAS,EAAU,EAAsB,CACvC,IAAM,EAAY,GAAG,EAAO,GAAG,QAAQ,IAAI,MAC3C,EAAG,cAAc,EAAW,GAAI,CAAE,KAAM,GAAM,CAAC,EAC/C,EAAG,WAAW,EAAW,CAAM,CACjC,CAEI,QAAQ,KAAK,IAAM,YAAY,MAAQ,EAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAS,CACR,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,QAAQ,OAAO,MAAM,GAAG,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAAE,GAAG,EAClF,QAAQ,SAAW,CACrB,CACF"}
1
+ {"version":3,"file":"logSink.mjs","names":[],"sources":["../../src/bin/logSink.ts"],"sourcesContent":["import fs from 'node:fs';\nimport { pathToFileURL } from 'node:url';\n\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\n\nimport { scrubTerminalOutput } from '../services/ansiScrub';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-log-sink',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [logPath, rotatedPath, maxBytesRaw, donePath, rawPath] = argv;\n try {\n // Keep the legacy argument shape for the published executable subpath. The\n // scrubbed log is append-only, so the former rotation path is unused; the\n // ceiling now bounds the raw copy, which only interactive runs ask for.\n if (!logPath || !rotatedPath || !maxBytesRaw || !donePath) {\n throw new Error('logSink requires log, rotated log, max bytes, and completion paths');\n }\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n\n let handle: number;\n let written: number;\n try {\n handle = fs.openSync(logPath, 'a');\n written = fs.statSync(logPath).size;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let chunks = 0;\n // The pane's bytes before anything is taken out of them. Scrubbing exists so\n // the log stays worth grepping, and it is exactly what makes the log useless\n // to a terminal, so an attached view needs its own faithful copy.\n const rawCeiling = Number.parseInt(maxBytesRaw, 10);\n const raw = rawPath === undefined || rawPath === '' ? undefined : openRaw(rawPath);\n let rawWritten = raw === undefined ? 0 : rawSize(rawPath as string);\n try {\n process.stdin.setEncoding('utf8');\n for await (const chunk of process.stdin) {\n const source = String(chunk);\n if (raw !== undefined) {\n const rawBytes = Buffer.from(source, 'utf8');\n // A terminal that scrolls all day must not fill the disk. Past the\n // ceiling the copy starts over: a reader attaching later wants the\n // recent screen, and no part of this is the record of the run.\n if (rawWritten + rawBytes.byteLength > rawCeiling) {\n fs.ftruncateSync(raw, 0);\n rawWritten = 0;\n }\n fs.writeSync(raw, rawBytes);\n rawWritten += rawBytes.byteLength;\n }\n const text = scrubTerminalOutput(source);\n if (!text) continue;\n const bytes = Buffer.from(text, 'utf8');\n fs.writeSync(handle, bytes);\n written += bytes.byteLength;\n chunks += 1;\n }\n fs.closeSync(handle);\n if (raw !== undefined) fs.closeSync(raw);\n writeDone(donePath);\n await telemetry.recordEvent('doom_runner.file_sink_finished', {\n outcome: 'completed',\n 'runner.chunk_count': chunks,\n 'runner.bytes_written': written,\n duration_ms: Date.now() - startedAt,\n });\n return 0;\n } catch (error) {\n await telemetry.recordError('doom_runner.file_sink_failed', error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n await telemetry.shutdown();\n }\n}\n\n/** Truncating rather than appending: a stale pane from a previous run is not this one's. */\nfunction openRaw(target: string): number {\n return fs.openSync(target, 'w');\n}\n\nfunction rawSize(target: string): number {\n try {\n return fs.statSync(target).size;\n } catch {\n return 0;\n }\n}\n\nfunction writeDone(target: string): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, '', { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"wMAOA,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAM,EAAY,KAAK,IAAI,EACrB,EAAY,EAAoB,CACpC,YAAa,uBACb,YAAa,2BACb,IAAK,QAAQ,IACb,WAAY,GACZ,aAAc,EAChB,CAAC,EACK,CAAC,EAAS,EAAa,EAAa,EAAU,GAAW,EAC/D,GAAI,CAIF,GAAI,CAAC,GAAW,CAAC,GAAe,CAAC,GAAe,CAAC,EAC/C,MAAU,MAAM,oEAAoE,CAExF,OAAS,EAAO,CAGd,MAFA,MAAM,EAAU,YAAY,+BAAgC,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EAC1G,MAAM,EAAU,SAAS,EACnB,CACR,CAEA,IAAI,EACA,EACJ,GAAI,CACF,EAAS,EAAG,SAAS,EAAS,GAAG,EACjC,EAAU,EAAG,SAAS,CAAO,CAAC,CAAC,IACjC,OAAS,EAAO,CAGd,MAFA,MAAM,EAAU,YAAY,+BAAgC,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EAC1G,MAAM,EAAU,SAAS,EACnB,CACR,CACA,IAAI,EAAS,EAIP,EAAa,OAAO,SAAS,EAAa,EAAE,EAC5C,EAAM,IAAY,IAAA,IAAa,IAAY,GAAK,IAAA,GAAY,EAAQ,CAAO,EAC7E,EAAa,IAAQ,IAAA,GAAY,EAAI,EAAQ,CAAiB,EAClE,GAAI,CACF,QAAQ,MAAM,YAAY,MAAM,EAChC,UAAW,IAAM,KAAS,QAAQ,MAAO,CACvC,IAAM,EAAS,OAAO,CAAK,EAC3B,GAAI,IAAQ,IAAA,GAAW,CACrB,IAAM,EAAW,OAAO,KAAK,EAAQ,MAAM,EAIvC,EAAa,EAAS,WAAa,IACrC,EAAG,cAAc,EAAK,CAAC,EACvB,EAAa,GAEf,EAAG,UAAU,EAAK,CAAQ,EAC1B,GAAc,EAAS,UACzB,CACA,IAAM,EAAO,EAAoB,CAAM,EACvC,GAAI,CAAC,EAAM,SACX,IAAM,EAAQ,OAAO,KAAK,EAAM,MAAM,EACtC,EAAG,UAAU,EAAQ,CAAK,EAC1B,GAAW,EAAM,WACjB,GAAU,CACZ,CAUA,OATA,EAAG,UAAU,CAAM,EACf,IAAQ,IAAA,IAAW,EAAG,UAAU,CAAG,EACvC,EAAU,CAAQ,EAClB,MAAM,EAAU,YAAY,iCAAkC,CAC5D,QAAS,YACT,qBAAsB,EACtB,uBAAwB,EACxB,YAAa,KAAK,IAAI,EAAI,CAC5B,CAAC,EACM,CACT,OAAS,EAAO,CAEd,MADA,MAAM,EAAU,YAAY,+BAAgC,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EACpG,CACR,QAAU,CACR,MAAM,EAAU,SAAS,CAC3B,CACF,CAGA,SAAS,EAAQ,EAAwB,CACvC,OAAO,EAAG,SAAS,EAAQ,GAAG,CAChC,CAEA,SAAS,EAAQ,EAAwB,CACvC,GAAI,CACF,OAAO,EAAG,SAAS,CAAM,CAAC,CAAC,IAC7B,MAAQ,CACN,MAAO,EACT,CACF,CAEA,SAAS,EAAU,EAAsB,CACvC,IAAM,EAAY,GAAG,EAAO,GAAG,QAAQ,IAAI,MAC3C,EAAG,cAAc,EAAW,GAAI,CAAE,KAAM,GAAM,CAAC,EAC/C,EAAG,WAAW,EAAW,CAAM,CACjC,CAEI,QAAQ,KAAK,IAAM,YAAY,MAAQ,EAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAS,CACR,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,QAAQ,OAAO,MAAM,GAAG,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAAE,GAAG,EAClF,QAAQ,SAAW,CACrB,CACF"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../src/adapters/Lifeline/client.cjs");let n=require("node:fs");n=e.__toESM(n,1);let r=require("node:url"),i=require("node:os");i=e.__toESM(i,1);let a=require("node:child_process"),o=require("@agimon-ai/doompi-telemetry");const s=`doom_runner.host_failed`,c=`invalid runner command spec`;async function l(e=process.argv.slice(2)){let n=Date.now(),r=(0,o.createDoomTelemetry)({serviceName:`doom-runner-host`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[c,l,p]=e,m;try{if(!c||!l||!p)throw Error(`runnerHost requires spec, gate, and exit paths`);m=u(c),await d(l)}catch(e){throw await r.recordError(s,e,{duration_ms:Date.now()-n}),await r.shutdown(),e}let h,g=null,_,v=e=>{if(h?.pid)try{process.kill(-h.pid,e)}catch{h.kill(e)}},y=e=>{g=e,v(e),_??=setTimeout(()=>v(`SIGKILL`),2e3)};for(let e of[`SIGTERM`,`SIGINT`,`SIGHUP`])process.once(e,()=>y(e));h=(0,a.spawn)(m.command,{cwd:m.cwd,env:m.env,shell:`/bin/bash`,stdio:`inherit`,detached:!0}),g&&y(g);let b=t.watchOwner(()=>y(`SIGTERM`),m.env[t.LIFELINE_ENV]);try{let e=await new Promise((e,t)=>{h?.once(`error`,t),h?.once(`exit`,(t,n)=>e({code:t,signal:n??g}))});f(p,e);let t=e.code===null?e.signal?128+i.default.constants.signals[e.signal]:1:e.code;return await r.recordEvent(`doom_runner.host_finished`,{outcome:e.signal||g?`signaled`:t===0?`completed`:`failed`,"runner.exit_code":t,...e.signal||g?{"runner.signal":e.signal??g??``}:{},duration_ms:Date.now()-n}),t}catch(e){throw await r.recordError(s,e,{duration_ms:Date.now()-n}),e}finally{b(),_&&clearTimeout(_),await r.shutdown()}}function u(e){let t=JSON.parse(n.default.readFileSync(e,`utf8`));if(typeof t!=`object`||!t)throw Error(c);let r=t;if(typeof r.command!=`string`||typeof r.cwd!=`string`||!r.env)throw Error(c);return{command:r.command,cwd:r.cwd,env:r.env}}async function d(e){for(;!n.default.existsSync(e);)await new Promise(e=>setTimeout(e,10))}function f(e,t){let r=`${e}.${process.pid}.tmp`;n.default.writeFileSync(r,`${JSON.stringify(t)}\n`,{mode:384}),n.default.renameSync(r,e)}process.argv[1]&&require("url").pathToFileURL(__filename).href===(0,r.pathToFileURL)(process.argv[1]).href&&l().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}),exports.main=l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("../services/lifeline/client.cjs");let n=require("node:fs");n=e.__toESM(n,1);let r=require("node:url"),i=require("node:child_process"),a=require("node:os");a=e.__toESM(a,1);let o=require("@agimon-ai/doompi-telemetry");const s=`doom_runner.host_failed`,c=`invalid runner command spec`;async function l(e=process.argv.slice(2)){let n=Date.now(),r=(0,o.createDoomTelemetry)({serviceName:`doom-runner-host`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[c,l,p]=e,m;try{if(!c||!l||!p)throw Error(`runnerHost requires spec, gate, and exit paths`);m=u(c),await d(l)}catch(e){throw await r.recordError(s,e,{duration_ms:Date.now()-n}),await r.shutdown(),e}let h,g=null,_,v=e=>{if(h?.pid)try{process.kill(-h.pid,e)}catch{h.kill(e)}},y=e=>{g=e,v(e),_??=setTimeout(()=>v(`SIGKILL`),2e3)};for(let e of[`SIGTERM`,`SIGINT`,`SIGHUP`])process.once(e,()=>y(e));h=(0,i.spawn)(m.command,{cwd:m.cwd,env:m.env,shell:`/bin/bash`,stdio:`inherit`,detached:!0}),g&&y(g);let b=t.watchOwner(()=>y(`SIGTERM`),m.env[t.LIFELINE_ENV]);try{let e=await new Promise((e,t)=>{h?.once(`error`,t),h?.once(`exit`,(t,n)=>e({code:t,signal:n??g}))});f(p,e);let t=e.code===null?e.signal?128+a.default.constants.signals[e.signal]:1:e.code;return await r.recordEvent(`doom_runner.host_finished`,{outcome:e.signal||g?`signaled`:t===0?`completed`:`failed`,"runner.exit_code":t,...e.signal||g?{"runner.signal":e.signal??g??``}:{},duration_ms:Date.now()-n}),t}catch(e){throw await r.recordError(s,e,{duration_ms:Date.now()-n}),e}finally{b(),_&&clearTimeout(_),await r.shutdown()}}function u(e){let t=JSON.parse(n.default.readFileSync(e,`utf8`));if(typeof t!=`object`||!t)throw Error(c);let r=t;if(typeof r.command!=`string`||typeof r.cwd!=`string`||!r.env)throw Error(c);return{command:r.command,cwd:r.cwd,env:r.env}}async function d(e){for(;!n.default.existsSync(e);)await new Promise(e=>setTimeout(e,10))}function f(e,t){let r=`${e}.${process.pid}.tmp`;n.default.writeFileSync(r,`${JSON.stringify(t)}\n`,{mode:384}),n.default.renameSync(r,e)}process.argv[1]&&require("url").pathToFileURL(__filename).href===(0,r.pathToFileURL)(process.argv[1]).href&&l().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1}),exports.main=l;
2
2
  //# sourceMappingURL=runnerHost.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runnerHost.cjs","names":["createDoomTelemetry","spawn","watchOwner","LIFELINE_ENV","os","fs","pathToFileURL"],"sources":["../../src/bin/runnerHost.ts"],"sourcesContent":["import { type ChildProcess, spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport { pathToFileURL } from 'node:url';\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\nimport { LIFELINE_ENV, watchOwner } from '../adapters/Lifeline/client.ts';\n\ninterface CommandSpec {\n command: string;\n cwd: string;\n env: Record<string, string>;\n}\n\nconst POLL_MS = 10;\nconst FORWARDED_SIGNAL_GRACE_MS = 2_000;\nconst HOST_FAILED_EVENT = 'doom_runner.host_failed';\nconst INVALID_COMMAND_SPEC_ERROR = 'invalid runner command spec';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-host',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [specPath, gatePath, exitPath] = argv;\n let spec: CommandSpec;\n try {\n if (!specPath || !gatePath || !exitPath) throw new Error('runnerHost requires spec, gate, and exit paths');\n spec = readSpec(specPath);\n await waitForGate(gatePath);\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let child: ChildProcess | undefined;\n let forwardedSignal: NodeJS.Signals | null = null;\n let escalationTimer: NodeJS.Timeout | undefined;\n const signalChild = (signal: NodeJS.Signals): void => {\n if (!child?.pid) return;\n try {\n process.kill(-child.pid, signal);\n } catch {\n child.kill(signal);\n }\n };\n const forward = (signal: NodeJS.Signals): void => {\n forwardedSignal = signal;\n signalChild(signal);\n escalationTimer ??= setTimeout(() => signalChild('SIGKILL'), FORWARDED_SIGNAL_GRACE_MS);\n };\n const signals: NodeJS.Signals[] = ['SIGTERM', 'SIGINT', 'SIGHUP'];\n for (const signal of signals) process.once(signal, () => forward(signal));\n\n child = spawn(spec.command, {\n cwd: spec.cwd,\n env: spec.env,\n shell: '/bin/bash',\n stdio: 'inherit',\n detached: true,\n });\n if (forwardedSignal) forward(forwardedSignal);\n\n // This process supervises the command for its whole life, so it is also the\n // right place to notice an owner that died without stopping it.\n //\n // The lifeline comes from the spec rather than this process's environment: an\n // rmux server outlives the session that started it, so its own environment can\n // still name a previous session's socket.\n const detachLifeline = watchOwner(() => forward('SIGTERM'), spec.env[LIFELINE_ENV]);\n\n try {\n const result = await new Promise<{ code: number | null; signal: NodeJS.Signals | null }>((resolve, reject) => {\n child?.once('error', reject);\n child?.once('exit', (code, signal) => resolve({ code, signal: signal ?? forwardedSignal }));\n });\n writeAtomic(exitPath, result);\n const exitCode = result.code !== null ? result.code : result.signal ? 128 + os.constants.signals[result.signal] : 1;\n await telemetry.recordEvent('doom_runner.host_finished', {\n outcome: result.signal || forwardedSignal ? 'signaled' : exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n ...(result.signal || forwardedSignal ? { 'runner.signal': result.signal ?? forwardedSignal ?? '' } : {}),\n duration_ms: Date.now() - startedAt,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n detachLifeline();\n if (escalationTimer) clearTimeout(escalationTimer);\n await telemetry.shutdown();\n }\n}\n\nfunction readSpec(target: string): CommandSpec {\n const value: unknown = JSON.parse(fs.readFileSync(target, 'utf8'));\n if (typeof value !== 'object' || value === null) throw new Error(INVALID_COMMAND_SPEC_ERROR);\n const spec = value as Partial<CommandSpec>;\n if (typeof spec.command !== 'string' || typeof spec.cwd !== 'string' || !spec.env) {\n throw new Error(INVALID_COMMAND_SPEC_ERROR);\n }\n return { command: spec.command, cwd: spec.cwd, env: spec.env };\n}\n\nasync function waitForGate(target: string): Promise<void> {\n while (!fs.existsSync(target)) await new Promise((resolve) => setTimeout(resolve, POLL_MS));\n}\n\nfunction writeAtomic(target: string, value: unknown): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, `${JSON.stringify(value)}\\n`, { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"gWAaA,MAEM,EAAoB,0BACpB,EAA6B,8BAEnC,eAAsB,EAAK,EAA0B,QAAQ,KAAK,MAAM,CAAC,EAAoB,CAC3F,IAAM,EAAY,KAAK,IAAI,EACrB,GAAA,EAAYA,EAAAA,oBAAAA,CAAoB,CACpC,YAAa,mBACb,YAAa,2BACb,IAAK,QAAQ,IACb,WAAY,GACZ,aAAc,EAChB,CAAC,EACK,CAAC,EAAU,EAAU,GAAY,EACnC,EACJ,GAAI,CACF,GAAI,CAAC,GAAY,CAAC,GAAY,CAAC,EAAU,MAAU,MAAM,gDAAgD,EACzG,EAAO,EAAS,CAAQ,EACxB,MAAM,EAAY,CAAQ,CAC5B,OAAS,EAAO,CAGd,MAFA,MAAM,EAAU,YAAY,EAAmB,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EAC7F,MAAM,EAAU,SAAS,EACnB,CACR,CACA,IAAI,EACA,EAAyC,KACzC,EACE,EAAe,GAAiC,CAC/C,MAAO,IACZ,GAAI,CACF,QAAQ,KAAK,CAAC,EAAM,IAAK,CAAM,CACjC,MAAQ,CACN,EAAM,KAAK,CAAM,CACnB,CACF,EACM,EAAW,GAAiC,CAChD,EAAkB,EAClB,EAAY,CAAM,EAClB,IAAoB,eAAiB,EAAY,SAAS,EAAG,GAAyB,CACxF,EAEA,IAAK,IAAM,IAAU,CADc,UAAW,SAAU,QAC7B,EAAG,QAAQ,KAAK,MAAc,EAAQ,CAAM,CAAC,EAExE,GAAA,EAAQC,EAAAA,MAAAA,CAAM,EAAK,QAAS,CAC1B,IAAK,EAAK,IACV,IAAK,EAAK,IACV,MAAO,YACP,MAAO,UACP,SAAU,EACZ,CAAC,EACG,GAAiB,EAAQ,CAAe,EAQ5C,IAAM,EAAiBC,EAAAA,eAAiB,EAAQ,SAAS,EAAG,EAAK,IAAIC,EAAAA,aAAa,EAElF,GAAI,CACF,IAAM,EAAS,MAAM,IAAI,SAAiE,EAAS,IAAW,CAC5G,GAAO,KAAK,QAAS,CAAM,EAC3B,GAAO,KAAK,QAAS,EAAM,IAAW,EAAQ,CAAE,OAAM,OAAQ,GAAU,CAAgB,CAAC,CAAC,CAC5F,CAAC,EACD,EAAY,EAAU,CAAM,EAC5B,IAAM,EAAW,EAAO,OAAS,KAAqB,EAAO,OAAS,IAAMC,EAAAA,QAAG,UAAU,QAAQ,EAAO,QAAU,EAA1E,EAAO,KAO/C,OANA,MAAM,EAAU,YAAY,4BAA6B,CACvD,QAAS,EAAO,QAAU,EAAkB,WAAa,IAAa,EAAI,YAAc,SACxF,mBAAoB,EACpB,GAAI,EAAO,QAAU,EAAkB,CAAE,gBAAiB,EAAO,QAAU,GAAmB,EAAG,EAAI,CAAC,EACtG,YAAa,KAAK,IAAI,EAAI,CAC5B,CAAC,EACM,CACT,OAAS,EAAO,CAEd,MADA,MAAM,EAAU,YAAY,EAAmB,EAAO,CAAE,YAAa,KAAK,IAAI,EAAI,CAAU,CAAC,EACvF,CACR,QAAU,CACR,EAAe,EACX,GAAiB,aAAa,CAAe,EACjD,MAAM,EAAU,SAAS,CAC3B,CACF,CAEA,SAAS,EAAS,EAA6B,CAC7C,IAAM,EAAiB,KAAK,MAAMC,EAAAA,QAAG,aAAa,EAAQ,MAAM,CAAC,EACjE,GAAI,OAAO,GAAU,WAAY,EAAgB,MAAU,MAAM,CAA0B,EAC3F,IAAM,EAAO,EACb,GAAI,OAAO,EAAK,SAAY,UAAY,OAAO,EAAK,KAAQ,UAAY,CAAC,EAAK,IAC5E,MAAU,MAAM,CAA0B,EAE5C,MAAO,CAAE,QAAS,EAAK,QAAS,IAAK,EAAK,IAAK,IAAK,EAAK,GAAI,CAC/D,CAEA,eAAe,EAAY,EAA+B,CACxD,KAAO,CAACA,EAAAA,QAAG,WAAW,CAAM,GAAG,MAAM,IAAI,QAAS,GAAY,WAAW,EAAS,EAAO,CAAC,CAC5F,CAEA,SAAS,EAAY,EAAgB,EAAsB,CACzD,IAAM,EAAY,GAAG,EAAO,GAAG,QAAQ,IAAI,MAC3C,EAAA,QAAG,cAAc,EAAW,GAAG,KAAK,UAAU,CAAK,EAAE,IAAK,CAAE,KAAM,GAAM,CAAC,EACzE,EAAA,QAAG,WAAW,EAAW,CAAM,CACjC,CAEI,QAAQ,KAAK,IAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,QAAA,EAA0BC,EAAAA,cAAAA,CAAc,QAAQ,KAAK,EAAE,CAAC,CAAC,MACxE,EAAK,CAAC,CAAC,KACJ,GAAS,CACR,QAAQ,SAAW,CACrB,EACC,GAAmB,CAClB,QAAQ,OAAO,MAAM,GAAG,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,EAAE,GAAG,EAClF,QAAQ,SAAW,CACrB,CACF"}
1
+ {"version":3,"file":"runnerHost.cjs","names":["createDoomTelemetry","spawn","watchOwner","LIFELINE_ENV","os","fs","pathToFileURL"],"sources":["../../src/bin/runnerHost.ts"],"sourcesContent":["import { type ChildProcess, spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport { pathToFileURL } from 'node:url';\n\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\n\nimport { LIFELINE_ENV, watchOwner } from '../services/lifeline/client';\n\ninterface CommandSpec {\n command: string;\n cwd: string;\n env: Record<string, string>;\n}\n\nconst POLL_MS = 10;\nconst FORWARDED_SIGNAL_GRACE_MS = 2_000;\nconst HOST_FAILED_EVENT = 'doom_runner.host_failed';\nconst INVALID_COMMAND_SPEC_ERROR = 'invalid runner command spec';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-host',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [specPath, gatePath, exitPath] = argv;\n let spec: CommandSpec;\n try {\n if (!specPath || !gatePath || !exitPath) throw new Error('runnerHost requires spec, gate, and exit paths');\n spec = readSpec(specPath);\n await waitForGate(gatePath);\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let child: ChildProcess | undefined;\n let forwardedSignal: NodeJS.Signals | null = null;\n let escalationTimer: NodeJS.Timeout | undefined;\n const signalChild = (signal: NodeJS.Signals): void => {\n if (!child?.pid) return;\n try {\n process.kill(-child.pid, signal);\n } catch {\n child.kill(signal);\n }\n };\n const forward = (signal: NodeJS.Signals): void => {\n forwardedSignal = signal;\n signalChild(signal);\n escalationTimer ??= setTimeout(() => signalChild('SIGKILL'), FORWARDED_SIGNAL_GRACE_MS);\n };\n const signals: NodeJS.Signals[] = ['SIGTERM', 'SIGINT', 'SIGHUP'];\n for (const signal of signals) process.once(signal, () => forward(signal));\n\n child = spawn(spec.command, {\n cwd: spec.cwd,\n env: spec.env,\n shell: '/bin/bash',\n stdio: 'inherit',\n detached: true,\n });\n if (forwardedSignal) forward(forwardedSignal);\n\n // This process supervises the command for its whole life, so it is also the\n // right place to notice an owner that died without stopping it.\n //\n // The lifeline comes from the spec rather than this process's environment: an\n // rmux server outlives the session that started it, so its own environment can\n // still name a previous session's socket.\n const detachLifeline = watchOwner(() => forward('SIGTERM'), spec.env[LIFELINE_ENV]);\n\n try {\n const result = await new Promise<{ code: number | null; signal: NodeJS.Signals | null }>((resolve, reject) => {\n child?.once('error', reject);\n child?.once('exit', (code, signal) => resolve({ code, signal: signal ?? forwardedSignal }));\n });\n writeAtomic(exitPath, result);\n const exitCode = result.code !== null ? result.code : result.signal ? 128 + os.constants.signals[result.signal] : 1;\n await telemetry.recordEvent('doom_runner.host_finished', {\n outcome: result.signal || forwardedSignal ? 'signaled' : exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n ...(result.signal || forwardedSignal ? { 'runner.signal': result.signal ?? forwardedSignal ?? '' } : {}),\n duration_ms: Date.now() - startedAt,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n detachLifeline();\n if (escalationTimer) clearTimeout(escalationTimer);\n await telemetry.shutdown();\n }\n}\n\nfunction readSpec(target: string): CommandSpec {\n const value: unknown = JSON.parse(fs.readFileSync(target, 'utf8'));\n if (typeof value !== 'object' || value === null) throw new Error(INVALID_COMMAND_SPEC_ERROR);\n const spec = value as Partial<CommandSpec>;\n if (typeof spec.command !== 'string' || typeof spec.cwd !== 'string' || !spec.env) {\n throw new Error(INVALID_COMMAND_SPEC_ERROR);\n }\n return { command: spec.command, cwd: spec.cwd, env: spec.env };\n}\n\nasync function waitForGate(target: string): Promise<void> {\n while (!fs.existsSync(target)) await new Promise((resolve) => setTimeout(resolve, POLL_MS));\n}\n\nfunction writeAtomic(target: string, value: unknown): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, `${JSON.stringify(value)}\\n`, { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runnerHost.d.cts","names":[],"sources":["../../src/bin/runnerHost.ts"],"mappings":";wBAkBsB,KAAK,2BAAkD"}
1
+ {"version":3,"file":"runnerHost.d.cts","names":[],"sources":["../../src/bin/runnerHost.ts"],"mappings":";wBAoBsB,KAAK,2BAAkD"}
@@ -1 +1 @@
1
- {"version":3,"file":"runnerHost.d.mts","names":[],"sources":["../../src/bin/runnerHost.ts"],"mappings":";wBAkBsB,KAAK,2BAAkD"}
1
+ {"version":3,"file":"runnerHost.d.mts","names":[],"sources":["../../src/bin/runnerHost.ts"],"mappings":";wBAoBsB,KAAK,2BAAkD"}
@@ -1,2 +1,2 @@
1
- import{LIFELINE_ENV as e,watchOwner as t}from"../src/adapters/Lifeline/client.mjs";import n from"node:fs";import{pathToFileURL as r}from"node:url";import i from"node:os";import{spawn as a}from"node:child_process";import{createDoomTelemetry as o}from"@agimon-ai/doompi-telemetry";const s=`doom_runner.host_failed`,c=`invalid runner command spec`;async function l(n=process.argv.slice(2)){let r=Date.now(),c=o({serviceName:`doom-runner-host`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[l,p,m]=n,h;try{if(!l||!p||!m)throw Error(`runnerHost requires spec, gate, and exit paths`);h=u(l),await d(p)}catch(e){throw await c.recordError(s,e,{duration_ms:Date.now()-r}),await c.shutdown(),e}let g,_=null,v,y=e=>{if(g?.pid)try{process.kill(-g.pid,e)}catch{g.kill(e)}},b=e=>{_=e,y(e),v??=setTimeout(()=>y(`SIGKILL`),2e3)};for(let e of[`SIGTERM`,`SIGINT`,`SIGHUP`])process.once(e,()=>b(e));g=a(h.command,{cwd:h.cwd,env:h.env,shell:`/bin/bash`,stdio:`inherit`,detached:!0}),_&&b(_);let x=t(()=>b(`SIGTERM`),h.env[e]);try{let e=await new Promise((e,t)=>{g?.once(`error`,t),g?.once(`exit`,(t,n)=>e({code:t,signal:n??_}))});f(m,e);let t=e.code===null?e.signal?128+i.constants.signals[e.signal]:1:e.code;return await c.recordEvent(`doom_runner.host_finished`,{outcome:e.signal||_?`signaled`:t===0?`completed`:`failed`,"runner.exit_code":t,...e.signal||_?{"runner.signal":e.signal??_??``}:{},duration_ms:Date.now()-r}),t}catch(e){throw await c.recordError(s,e,{duration_ms:Date.now()-r}),e}finally{x(),v&&clearTimeout(v),await c.shutdown()}}function u(e){let t=JSON.parse(n.readFileSync(e,`utf8`));if(typeof t!=`object`||!t)throw Error(c);let r=t;if(typeof r.command!=`string`||typeof r.cwd!=`string`||!r.env)throw Error(c);return{command:r.command,cwd:r.cwd,env:r.env}}async function d(e){for(;!n.existsSync(e);)await new Promise(e=>setTimeout(e,10))}function f(e,t){let r=`${e}.${process.pid}.tmp`;n.writeFileSync(r,`${JSON.stringify(t)}\n`,{mode:384}),n.renameSync(r,e)}process.argv[1]&&import.meta.url===r(process.argv[1]).href&&l().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1});export{l as main};
1
+ import{LIFELINE_ENV as e,watchOwner as t}from"../services/lifeline/client.mjs";import n from"node:fs";import{pathToFileURL as r}from"node:url";import{spawn as i}from"node:child_process";import a from"node:os";import{createDoomTelemetry as o}from"@agimon-ai/doompi-telemetry";const s=`doom_runner.host_failed`,c=`invalid runner command spec`;async function l(n=process.argv.slice(2)){let r=Date.now(),c=o({serviceName:`doom-runner-host`,packageName:`@agimon-ai/doompi-runner`,env:process.env,enableLogs:!0,enableTraces:!0}),[l,p,m]=n,h;try{if(!l||!p||!m)throw Error(`runnerHost requires spec, gate, and exit paths`);h=u(l),await d(p)}catch(e){throw await c.recordError(s,e,{duration_ms:Date.now()-r}),await c.shutdown(),e}let g,_=null,v,y=e=>{if(g?.pid)try{process.kill(-g.pid,e)}catch{g.kill(e)}},b=e=>{_=e,y(e),v??=setTimeout(()=>y(`SIGKILL`),2e3)};for(let e of[`SIGTERM`,`SIGINT`,`SIGHUP`])process.once(e,()=>b(e));g=i(h.command,{cwd:h.cwd,env:h.env,shell:`/bin/bash`,stdio:`inherit`,detached:!0}),_&&b(_);let x=t(()=>b(`SIGTERM`),h.env[e]);try{let e=await new Promise((e,t)=>{g?.once(`error`,t),g?.once(`exit`,(t,n)=>e({code:t,signal:n??_}))});f(m,e);let t=e.code===null?e.signal?128+a.constants.signals[e.signal]:1:e.code;return await c.recordEvent(`doom_runner.host_finished`,{outcome:e.signal||_?`signaled`:t===0?`completed`:`failed`,"runner.exit_code":t,...e.signal||_?{"runner.signal":e.signal??_??``}:{},duration_ms:Date.now()-r}),t}catch(e){throw await c.recordError(s,e,{duration_ms:Date.now()-r}),e}finally{x(),v&&clearTimeout(v),await c.shutdown()}}function u(e){let t=JSON.parse(n.readFileSync(e,`utf8`));if(typeof t!=`object`||!t)throw Error(c);let r=t;if(typeof r.command!=`string`||typeof r.cwd!=`string`||!r.env)throw Error(c);return{command:r.command,cwd:r.cwd,env:r.env}}async function d(e){for(;!n.existsSync(e);)await new Promise(e=>setTimeout(e,10))}function f(e,t){let r=`${e}.${process.pid}.tmp`;n.writeFileSync(r,`${JSON.stringify(t)}\n`,{mode:384}),n.renameSync(r,e)}process.argv[1]&&import.meta.url===r(process.argv[1]).href&&l().then(e=>{process.exitCode=e},e=>{process.stderr.write(`${e instanceof Error?e.message:String(e)}\n`),process.exitCode=1});export{l as main};
2
2
  //# sourceMappingURL=runnerHost.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"runnerHost.mjs","names":[],"sources":["../../src/bin/runnerHost.ts"],"sourcesContent":["import { type ChildProcess, spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport { pathToFileURL } from 'node:url';\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\nimport { LIFELINE_ENV, watchOwner } from '../adapters/Lifeline/client.ts';\n\ninterface CommandSpec {\n command: string;\n cwd: string;\n env: Record<string, string>;\n}\n\nconst POLL_MS = 10;\nconst FORWARDED_SIGNAL_GRACE_MS = 2_000;\nconst HOST_FAILED_EVENT = 'doom_runner.host_failed';\nconst INVALID_COMMAND_SPEC_ERROR = 'invalid runner command spec';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-host',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [specPath, gatePath, exitPath] = argv;\n let spec: CommandSpec;\n try {\n if (!specPath || !gatePath || !exitPath) throw new Error('runnerHost requires spec, gate, and exit paths');\n spec = readSpec(specPath);\n await waitForGate(gatePath);\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let child: ChildProcess | undefined;\n let forwardedSignal: NodeJS.Signals | null = null;\n let escalationTimer: NodeJS.Timeout | undefined;\n const signalChild = (signal: NodeJS.Signals): void => {\n if (!child?.pid) return;\n try {\n process.kill(-child.pid, signal);\n } catch {\n child.kill(signal);\n }\n };\n const forward = (signal: NodeJS.Signals): void => {\n forwardedSignal = signal;\n signalChild(signal);\n escalationTimer ??= setTimeout(() => signalChild('SIGKILL'), FORWARDED_SIGNAL_GRACE_MS);\n };\n const signals: NodeJS.Signals[] = ['SIGTERM', 'SIGINT', 'SIGHUP'];\n for (const signal of signals) process.once(signal, () => forward(signal));\n\n child = spawn(spec.command, {\n cwd: spec.cwd,\n env: spec.env,\n shell: '/bin/bash',\n stdio: 'inherit',\n detached: true,\n });\n if (forwardedSignal) forward(forwardedSignal);\n\n // This process supervises the command for its whole life, so it is also the\n // right place to notice an owner that died without stopping it.\n //\n // The lifeline comes from the spec rather than this process's environment: an\n // rmux server outlives the session that started it, so its own environment can\n // still name a previous session's socket.\n const detachLifeline = watchOwner(() => forward('SIGTERM'), spec.env[LIFELINE_ENV]);\n\n try {\n const result = await new Promise<{ code: number | null; signal: NodeJS.Signals | null }>((resolve, reject) => {\n child?.once('error', reject);\n child?.once('exit', (code, signal) => resolve({ code, signal: signal ?? forwardedSignal }));\n });\n writeAtomic(exitPath, result);\n const exitCode = result.code !== null ? result.code : result.signal ? 128 + os.constants.signals[result.signal] : 1;\n await telemetry.recordEvent('doom_runner.host_finished', {\n outcome: result.signal || forwardedSignal ? 'signaled' : exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n ...(result.signal || forwardedSignal ? { 'runner.signal': result.signal ?? forwardedSignal ?? '' } : {}),\n duration_ms: Date.now() - startedAt,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n detachLifeline();\n if (escalationTimer) clearTimeout(escalationTimer);\n await telemetry.shutdown();\n }\n}\n\nfunction readSpec(target: string): CommandSpec {\n const value: unknown = JSON.parse(fs.readFileSync(target, 'utf8'));\n if (typeof value !== 'object' || value === null) throw new Error(INVALID_COMMAND_SPEC_ERROR);\n const spec = value as Partial<CommandSpec>;\n if (typeof spec.command !== 'string' || typeof spec.cwd !== 'string' || !spec.env) {\n throw new Error(INVALID_COMMAND_SPEC_ERROR);\n }\n return { command: spec.command, cwd: spec.cwd, env: spec.env };\n}\n\nasync function waitForGate(target: string): Promise<void> {\n while (!fs.existsSync(target)) await new Promise((resolve) => setTimeout(resolve, POLL_MS));\n}\n\nfunction writeAtomic(target: string, value: unknown): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, `${JSON.stringify(value)}\\n`, { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"runnerHost.mjs","names":[],"sources":["../../src/bin/runnerHost.ts"],"sourcesContent":["import { type ChildProcess, spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport os from 'node:os';\nimport { pathToFileURL } from 'node:url';\n\nimport { createDoomTelemetry } from '@agimon-ai/doompi-telemetry';\n\nimport { LIFELINE_ENV, watchOwner } from '../services/lifeline/client';\n\ninterface CommandSpec {\n command: string;\n cwd: string;\n env: Record<string, string>;\n}\n\nconst POLL_MS = 10;\nconst FORWARDED_SIGNAL_GRACE_MS = 2_000;\nconst HOST_FAILED_EVENT = 'doom_runner.host_failed';\nconst INVALID_COMMAND_SPEC_ERROR = 'invalid runner command spec';\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n const startedAt = Date.now();\n const telemetry = createDoomTelemetry({\n serviceName: 'doom-runner-host',\n packageName: '@agimon-ai/doompi-runner',\n env: process.env,\n enableLogs: true,\n enableTraces: true,\n });\n const [specPath, gatePath, exitPath] = argv;\n let spec: CommandSpec;\n try {\n if (!specPath || !gatePath || !exitPath) throw new Error('runnerHost requires spec, gate, and exit paths');\n spec = readSpec(specPath);\n await waitForGate(gatePath);\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n await telemetry.shutdown();\n throw error;\n }\n let child: ChildProcess | undefined;\n let forwardedSignal: NodeJS.Signals | null = null;\n let escalationTimer: NodeJS.Timeout | undefined;\n const signalChild = (signal: NodeJS.Signals): void => {\n if (!child?.pid) return;\n try {\n process.kill(-child.pid, signal);\n } catch {\n child.kill(signal);\n }\n };\n const forward = (signal: NodeJS.Signals): void => {\n forwardedSignal = signal;\n signalChild(signal);\n escalationTimer ??= setTimeout(() => signalChild('SIGKILL'), FORWARDED_SIGNAL_GRACE_MS);\n };\n const signals: NodeJS.Signals[] = ['SIGTERM', 'SIGINT', 'SIGHUP'];\n for (const signal of signals) process.once(signal, () => forward(signal));\n\n child = spawn(spec.command, {\n cwd: spec.cwd,\n env: spec.env,\n shell: '/bin/bash',\n stdio: 'inherit',\n detached: true,\n });\n if (forwardedSignal) forward(forwardedSignal);\n\n // This process supervises the command for its whole life, so it is also the\n // right place to notice an owner that died without stopping it.\n //\n // The lifeline comes from the spec rather than this process's environment: an\n // rmux server outlives the session that started it, so its own environment can\n // still name a previous session's socket.\n const detachLifeline = watchOwner(() => forward('SIGTERM'), spec.env[LIFELINE_ENV]);\n\n try {\n const result = await new Promise<{ code: number | null; signal: NodeJS.Signals | null }>((resolve, reject) => {\n child?.once('error', reject);\n child?.once('exit', (code, signal) => resolve({ code, signal: signal ?? forwardedSignal }));\n });\n writeAtomic(exitPath, result);\n const exitCode = result.code !== null ? result.code : result.signal ? 128 + os.constants.signals[result.signal] : 1;\n await telemetry.recordEvent('doom_runner.host_finished', {\n outcome: result.signal || forwardedSignal ? 'signaled' : exitCode === 0 ? 'completed' : 'failed',\n 'runner.exit_code': exitCode,\n ...(result.signal || forwardedSignal ? { 'runner.signal': result.signal ?? forwardedSignal ?? '' } : {}),\n duration_ms: Date.now() - startedAt,\n });\n return exitCode;\n } catch (error) {\n await telemetry.recordError(HOST_FAILED_EVENT, error, { duration_ms: Date.now() - startedAt });\n throw error;\n } finally {\n detachLifeline();\n if (escalationTimer) clearTimeout(escalationTimer);\n await telemetry.shutdown();\n }\n}\n\nfunction readSpec(target: string): CommandSpec {\n const value: unknown = JSON.parse(fs.readFileSync(target, 'utf8'));\n if (typeof value !== 'object' || value === null) throw new Error(INVALID_COMMAND_SPEC_ERROR);\n const spec = value as Partial<CommandSpec>;\n if (typeof spec.command !== 'string' || typeof spec.cwd !== 'string' || !spec.env) {\n throw new Error(INVALID_COMMAND_SPEC_ERROR);\n }\n return { command: spec.command, cwd: spec.cwd, env: spec.env };\n}\n\nasync function waitForGate(target: string): Promise<void> {\n while (!fs.existsSync(target)) await new Promise((resolve) => setTimeout(resolve, POLL_MS));\n}\n\nfunction writeAtomic(target: string, value: unknown): void {\n const temporary = `${target}.${process.pid}.tmp`;\n fs.writeFileSync(temporary, `${JSON.stringify(value)}\\n`, { mode: 0o600 });\n fs.renameSync(temporary, target);\n}\n\nif (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {\n main().then(\n (code) => {\n process.exitCode = code;\n },\n (error: unknown) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./controllers/cliApp.cjs");exports.runCli=e.runCli;
@@ -0,0 +1,2 @@
1
+ import { CliDependencies, runCli } from "./controllers/cliApp.cjs";
2
+ export { CliDependencies, runCli };
@@ -0,0 +1,2 @@
1
+ import { CliDependencies, runCli } from "./controllers/cliApp.mjs";
2
+ export { CliDependencies, runCli };
@@ -0,0 +1 @@
1
+ import{runCli as e}from"./controllers/cliApp.mjs";export{e as runCli};
package/dist/clock.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/clock/index.cjs");exports.SystemClock=e.SystemClock;
@@ -0,0 +1,3 @@
1
+ import { IClock } from "./types/clock.cjs";
2
+ import { SystemClock } from "./services/clock/index.cjs";
3
+ export { type IClock, SystemClock };
@@ -0,0 +1,3 @@
1
+ import { IClock } from "./types/clock.mjs";
2
+ import { SystemClock } from "./services/clock/index.mjs";
3
+ export { type IClock, SystemClock };
package/dist/clock.mjs ADDED
@@ -0,0 +1 @@
1
+ import{SystemClock as e}from"./services/clock/index.mjs";export{e as SystemClock};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/services/runs/compaction.cjs");exports.activeRunnerRecovery=e.activeRunnerRecovery,exports.appendActiveRunnersToSummary=e.appendActiveRunnersToSummary,exports.registerRunnerCompactionRecovery=e.registerRunnerCompactionRecovery;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./services/compaction/index.cjs");exports.activeRunnerRecovery=e.activeRunnerRecovery,exports.appendActiveRunnersToSummary=e.appendActiveRunnersToSummary,exports.createRunnerCompactionRecovery=e.createRunnerCompactionRecovery;
@@ -1,2 +1,2 @@
1
- import { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, registerRunnerCompactionRecovery } from "./src/services/runs/compaction.cjs";
2
- export { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, registerRunnerCompactionRecovery };
1
+ import { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, createRunnerCompactionRecovery } from "./services/compaction/index.cjs";
2
+ export { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, createRunnerCompactionRecovery };
@@ -1,2 +1,2 @@
1
- import { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, registerRunnerCompactionRecovery } from "./src/services/runs/compaction.mjs";
2
- export { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, registerRunnerCompactionRecovery };
1
+ import { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, createRunnerCompactionRecovery } from "./services/compaction/index.mjs";
2
+ export { RunnerCompactionDependencies, activeRunnerRecovery, appendActiveRunnersToSummary, createRunnerCompactionRecovery };
@@ -1 +1 @@
1
- import{activeRunnerRecovery as e,appendActiveRunnersToSummary as t,registerRunnerCompactionRecovery as n}from"./src/services/runs/compaction.mjs";export{e as activeRunnerRecovery,t as appendActiveRunnersToSummary,n as registerRunnerCompactionRecovery};
1
+ import{activeRunnerRecovery as e,appendActiveRunnersToSummary as t,createRunnerCompactionRecovery as n}from"./services/compaction/index.mjs";export{e as activeRunnerRecovery,t as appendActiveRunnersToSummary,n as createRunnerCompactionRecovery};
package/dist/config.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/types/config.cjs");exports.BG_THRESHOLD_MS_ENV=e.BG_THRESHOLD_MS_ENV,exports.DEFAULT_BG_THRESHOLD_MS=e.DEFAULT_BG_THRESHOLD_MS,exports.DEFAULT_ERROR_BUDGET_RATIO=e.DEFAULT_ERROR_BUDGET_RATIO,exports.DEFAULT_ERROR_MAX_ENTRIES=e.DEFAULT_ERROR_MAX_ENTRIES,exports.DEFAULT_ERROR_MAX_VARIANTS_JOINED=e.DEFAULT_ERROR_MAX_VARIANTS_JOINED,exports.DEFAULT_HEAD_RATIO=e.DEFAULT_HEAD_RATIO,exports.DEFAULT_LOG_MAX_BYTES=e.DEFAULT_LOG_MAX_BYTES,exports.DEFAULT_LOG_TTL_MS=e.DEFAULT_LOG_TTL_MS,exports.DEFAULT_MAX_COMPLETED_RUNNERS=e.DEFAULT_MAX_COMPLETED_RUNNERS,exports.DEFAULT_RESULT_MAX_BYTES=e.DEFAULT_RESULT_MAX_BYTES,exports.DEFAULT_RESULT_MAX_LINES=e.DEFAULT_RESULT_MAX_LINES,exports.DEFAULT_RESULT_MAX_TOKENS=e.DEFAULT_RESULT_MAX_TOKENS,exports.DEFAULT_SUCCESS_RESULT_MAX_BYTES=e.DEFAULT_SUCCESS_RESULT_MAX_BYTES,exports.DEFAULT_SUCCESS_RESULT_MAX_TOKENS=e.DEFAULT_SUCCESS_RESULT_MAX_TOKENS,exports.LOG_DIR_ENV=e.LOG_DIR_ENV,exports.LOG_MAX_BYTES_ENV=e.LOG_MAX_BYTES_ENV,exports.LOG_TTL_MS_ENV=e.LOG_TTL_MS_ENV,exports.MAX_COMPLETED_RUNNERS_ENV=e.MAX_COMPLETED_RUNNERS_ENV,exports.RESULT_MAX_BYTES_ENV=e.RESULT_MAX_BYTES_ENV,exports.RESULT_MAX_TOKENS_ENV=e.RESULT_MAX_TOKENS_ENV,exports.SUCCESS_RESULT_MAX_BYTES_ENV=e.SUCCESS_RESULT_MAX_BYTES_ENV,exports.SUCCESS_RESULT_MAX_TOKENS_ENV=e.SUCCESS_RESULT_MAX_TOKENS_ENV,exports.getBackgroundThresholdMs=e.getBackgroundThresholdMs,exports.getErrorBudgetRatio=e.getErrorBudgetRatio,exports.getErrorMaxEntries=e.getErrorMaxEntries,exports.getErrorMaxVariantsJoined=e.getErrorMaxVariantsJoined,exports.getErrorPatterns=e.getErrorPatterns,exports.getHeadRatio=e.getHeadRatio,exports.getLogMaxBytes=e.getLogMaxBytes,exports.getLogTtlMs=e.getLogTtlMs,exports.getMaxCompletedRunners=e.getMaxCompletedRunners,exports.getResultMaxBytes=e.getResultMaxBytes,exports.getResultMaxLines=e.getResultMaxLines,exports.getResultMaxTokens=e.getResultMaxTokens,exports.getRunnerSettings=e.getRunnerSettings,exports.getSuccessResultMaxBytes=e.getSuccessResultMaxBytes,exports.getSuccessResultMaxTokens=e.getSuccessResultMaxTokens,exports.setRunnerSettings=e.setRunnerSettings;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./constants/runnerConfig.cjs"),t=require("./services/runnerConfig/index.cjs");exports.BG_THRESHOLD_MS_ENV=e.BG_THRESHOLD_MS_ENV,exports.DEFAULT_BG_THRESHOLD_MS=e.DEFAULT_BG_THRESHOLD_MS,exports.DEFAULT_ERROR_BUDGET_RATIO=e.DEFAULT_ERROR_BUDGET_RATIO,exports.DEFAULT_ERROR_MAX_ENTRIES=e.DEFAULT_ERROR_MAX_ENTRIES,exports.DEFAULT_ERROR_MAX_VARIANTS_JOINED=e.DEFAULT_ERROR_MAX_VARIANTS_JOINED,exports.DEFAULT_HEAD_RATIO=e.DEFAULT_HEAD_RATIO,exports.DEFAULT_LOG_MAX_BYTES=e.DEFAULT_LOG_MAX_BYTES,exports.DEFAULT_LOG_TTL_MS=e.DEFAULT_LOG_TTL_MS,exports.DEFAULT_MAX_COMPLETED_RUNNERS=e.DEFAULT_MAX_COMPLETED_RUNNERS,exports.DEFAULT_RESULT_MAX_BYTES=e.DEFAULT_RESULT_MAX_BYTES,exports.DEFAULT_RESULT_MAX_LINES=e.DEFAULT_RESULT_MAX_LINES,exports.DEFAULT_RESULT_MAX_TOKENS=e.DEFAULT_RESULT_MAX_TOKENS,exports.DEFAULT_SUCCESS_RESULT_MAX_BYTES=e.DEFAULT_SUCCESS_RESULT_MAX_BYTES,exports.DEFAULT_SUCCESS_RESULT_MAX_TOKENS=e.DEFAULT_SUCCESS_RESULT_MAX_TOKENS,exports.LOG_DIR_ENV=e.LOG_DIR_ENV,exports.LOG_MAX_BYTES_ENV=e.LOG_MAX_BYTES_ENV,exports.LOG_TTL_MS_ENV=e.LOG_TTL_MS_ENV,exports.MAX_COMPLETED_RUNNERS_ENV=e.MAX_COMPLETED_RUNNERS_ENV,exports.RESULT_MAX_BYTES_ENV=e.RESULT_MAX_BYTES_ENV,exports.RESULT_MAX_TOKENS_ENV=e.RESULT_MAX_TOKENS_ENV,exports.SUCCESS_RESULT_MAX_BYTES_ENV=e.SUCCESS_RESULT_MAX_BYTES_ENV,exports.SUCCESS_RESULT_MAX_TOKENS_ENV=e.SUCCESS_RESULT_MAX_TOKENS_ENV,exports.getBackgroundThresholdMs=t.getBackgroundThresholdMs,exports.getErrorBudgetRatio=t.getErrorBudgetRatio,exports.getErrorMaxEntries=t.getErrorMaxEntries,exports.getErrorMaxVariantsJoined=t.getErrorMaxVariantsJoined,exports.getErrorPatterns=t.getErrorPatterns,exports.getHeadRatio=t.getHeadRatio,exports.getLogMaxBytes=t.getLogMaxBytes,exports.getLogTtlMs=t.getLogTtlMs,exports.getMaxCompletedRunners=t.getMaxCompletedRunners,exports.getResultMaxBytes=t.getResultMaxBytes,exports.getResultMaxLines=t.getResultMaxLines,exports.getResultMaxTokens=t.getResultMaxTokens,exports.getRunnerSettings=t.getRunnerSettings,exports.getSuccessResultMaxBytes=t.getSuccessResultMaxBytes,exports.getSuccessResultMaxTokens=t.getSuccessResultMaxTokens,exports.setRunnerSettings=t.setRunnerSettings;
package/dist/config.d.cts CHANGED
@@ -1,2 +1,3 @@
1
- import { BG_THRESHOLD_MS_ENV, DEFAULT_BG_THRESHOLD_MS, DEFAULT_ERROR_BUDGET_RATIO, DEFAULT_ERROR_MAX_ENTRIES, DEFAULT_ERROR_MAX_VARIANTS_JOINED, DEFAULT_HEAD_RATIO, DEFAULT_LOG_MAX_BYTES, DEFAULT_LOG_TTL_MS, DEFAULT_MAX_COMPLETED_RUNNERS, DEFAULT_RESULT_MAX_BYTES, DEFAULT_RESULT_MAX_LINES, DEFAULT_RESULT_MAX_TOKENS, DEFAULT_SUCCESS_RESULT_MAX_BYTES, DEFAULT_SUCCESS_RESULT_MAX_TOKENS, LOG_DIR_ENV, LOG_MAX_BYTES_ENV, LOG_TTL_MS_ENV, MAX_COMPLETED_RUNNERS_ENV, RESULT_MAX_BYTES_ENV, RESULT_MAX_TOKENS_ENV, SUCCESS_RESULT_MAX_BYTES_ENV, SUCCESS_RESULT_MAX_TOKENS_ENV, getBackgroundThresholdMs, getErrorBudgetRatio, getErrorMaxEntries, getErrorMaxVariantsJoined, getErrorPatterns, getHeadRatio, getLogMaxBytes, getLogTtlMs, getMaxCompletedRunners, getResultMaxBytes, getResultMaxLines, getResultMaxTokens, getRunnerSettings, getSuccessResultMaxBytes, getSuccessResultMaxTokens, setRunnerSettings } from "./src/types/config.cjs";
1
+ import { getBackgroundThresholdMs, getErrorBudgetRatio, getErrorMaxEntries, getErrorMaxVariantsJoined, getErrorPatterns, getHeadRatio, getLogMaxBytes, getLogTtlMs, getMaxCompletedRunners, getResultMaxBytes, getResultMaxLines, getResultMaxTokens, getRunnerSettings, getSuccessResultMaxBytes, getSuccessResultMaxTokens, setRunnerSettings } from "./services/runnerConfig/index.cjs";
2
+ import { BG_THRESHOLD_MS_ENV, DEFAULT_BG_THRESHOLD_MS, DEFAULT_ERROR_BUDGET_RATIO, DEFAULT_ERROR_MAX_ENTRIES, DEFAULT_ERROR_MAX_VARIANTS_JOINED, DEFAULT_HEAD_RATIO, DEFAULT_LOG_MAX_BYTES, DEFAULT_LOG_TTL_MS, DEFAULT_MAX_COMPLETED_RUNNERS, DEFAULT_RESULT_MAX_BYTES, DEFAULT_RESULT_MAX_LINES, DEFAULT_RESULT_MAX_TOKENS, DEFAULT_SUCCESS_RESULT_MAX_BYTES, DEFAULT_SUCCESS_RESULT_MAX_TOKENS, LOG_DIR_ENV, LOG_MAX_BYTES_ENV, LOG_TTL_MS_ENV, MAX_COMPLETED_RUNNERS_ENV, RESULT_MAX_BYTES_ENV, RESULT_MAX_TOKENS_ENV, SUCCESS_RESULT_MAX_BYTES_ENV, SUCCESS_RESULT_MAX_TOKENS_ENV } from "./constants/runnerConfig.cjs";
2
3
  export { BG_THRESHOLD_MS_ENV, DEFAULT_BG_THRESHOLD_MS, DEFAULT_ERROR_BUDGET_RATIO, DEFAULT_ERROR_MAX_ENTRIES, DEFAULT_ERROR_MAX_VARIANTS_JOINED, DEFAULT_HEAD_RATIO, DEFAULT_LOG_MAX_BYTES, DEFAULT_LOG_TTL_MS, DEFAULT_MAX_COMPLETED_RUNNERS, DEFAULT_RESULT_MAX_BYTES, DEFAULT_RESULT_MAX_LINES, DEFAULT_RESULT_MAX_TOKENS, DEFAULT_SUCCESS_RESULT_MAX_BYTES, DEFAULT_SUCCESS_RESULT_MAX_TOKENS, LOG_DIR_ENV, LOG_MAX_BYTES_ENV, LOG_TTL_MS_ENV, MAX_COMPLETED_RUNNERS_ENV, RESULT_MAX_BYTES_ENV, RESULT_MAX_TOKENS_ENV, SUCCESS_RESULT_MAX_BYTES_ENV, SUCCESS_RESULT_MAX_TOKENS_ENV, getBackgroundThresholdMs, getErrorBudgetRatio, getErrorMaxEntries, getErrorMaxVariantsJoined, getErrorPatterns, getHeadRatio, getLogMaxBytes, getLogTtlMs, getMaxCompletedRunners, getResultMaxBytes, getResultMaxLines, getResultMaxTokens, getRunnerSettings, getSuccessResultMaxBytes, getSuccessResultMaxTokens, setRunnerSettings };
package/dist/config.d.mts CHANGED
@@ -1,2 +1,3 @@
1
- import { BG_THRESHOLD_MS_ENV, DEFAULT_BG_THRESHOLD_MS, DEFAULT_ERROR_BUDGET_RATIO, DEFAULT_ERROR_MAX_ENTRIES, DEFAULT_ERROR_MAX_VARIANTS_JOINED, DEFAULT_HEAD_RATIO, DEFAULT_LOG_MAX_BYTES, DEFAULT_LOG_TTL_MS, DEFAULT_MAX_COMPLETED_RUNNERS, DEFAULT_RESULT_MAX_BYTES, DEFAULT_RESULT_MAX_LINES, DEFAULT_RESULT_MAX_TOKENS, DEFAULT_SUCCESS_RESULT_MAX_BYTES, DEFAULT_SUCCESS_RESULT_MAX_TOKENS, LOG_DIR_ENV, LOG_MAX_BYTES_ENV, LOG_TTL_MS_ENV, MAX_COMPLETED_RUNNERS_ENV, RESULT_MAX_BYTES_ENV, RESULT_MAX_TOKENS_ENV, SUCCESS_RESULT_MAX_BYTES_ENV, SUCCESS_RESULT_MAX_TOKENS_ENV, getBackgroundThresholdMs, getErrorBudgetRatio, getErrorMaxEntries, getErrorMaxVariantsJoined, getErrorPatterns, getHeadRatio, getLogMaxBytes, getLogTtlMs, getMaxCompletedRunners, getResultMaxBytes, getResultMaxLines, getResultMaxTokens, getRunnerSettings, getSuccessResultMaxBytes, getSuccessResultMaxTokens, setRunnerSettings } from "./src/types/config.mjs";
1
+ import { getBackgroundThresholdMs, getErrorBudgetRatio, getErrorMaxEntries, getErrorMaxVariantsJoined, getErrorPatterns, getHeadRatio, getLogMaxBytes, getLogTtlMs, getMaxCompletedRunners, getResultMaxBytes, getResultMaxLines, getResultMaxTokens, getRunnerSettings, getSuccessResultMaxBytes, getSuccessResultMaxTokens, setRunnerSettings } from "./services/runnerConfig/index.mjs";
2
+ import { BG_THRESHOLD_MS_ENV, DEFAULT_BG_THRESHOLD_MS, DEFAULT_ERROR_BUDGET_RATIO, DEFAULT_ERROR_MAX_ENTRIES, DEFAULT_ERROR_MAX_VARIANTS_JOINED, DEFAULT_HEAD_RATIO, DEFAULT_LOG_MAX_BYTES, DEFAULT_LOG_TTL_MS, DEFAULT_MAX_COMPLETED_RUNNERS, DEFAULT_RESULT_MAX_BYTES, DEFAULT_RESULT_MAX_LINES, DEFAULT_RESULT_MAX_TOKENS, DEFAULT_SUCCESS_RESULT_MAX_BYTES, DEFAULT_SUCCESS_RESULT_MAX_TOKENS, LOG_DIR_ENV, LOG_MAX_BYTES_ENV, LOG_TTL_MS_ENV, MAX_COMPLETED_RUNNERS_ENV, RESULT_MAX_BYTES_ENV, RESULT_MAX_TOKENS_ENV, SUCCESS_RESULT_MAX_BYTES_ENV, SUCCESS_RESULT_MAX_TOKENS_ENV } from "./constants/runnerConfig.mjs";
2
3
  export { BG_THRESHOLD_MS_ENV, DEFAULT_BG_THRESHOLD_MS, DEFAULT_ERROR_BUDGET_RATIO, DEFAULT_ERROR_MAX_ENTRIES, DEFAULT_ERROR_MAX_VARIANTS_JOINED, DEFAULT_HEAD_RATIO, DEFAULT_LOG_MAX_BYTES, DEFAULT_LOG_TTL_MS, DEFAULT_MAX_COMPLETED_RUNNERS, DEFAULT_RESULT_MAX_BYTES, DEFAULT_RESULT_MAX_LINES, DEFAULT_RESULT_MAX_TOKENS, DEFAULT_SUCCESS_RESULT_MAX_BYTES, DEFAULT_SUCCESS_RESULT_MAX_TOKENS, LOG_DIR_ENV, LOG_MAX_BYTES_ENV, LOG_TTL_MS_ENV, MAX_COMPLETED_RUNNERS_ENV, RESULT_MAX_BYTES_ENV, RESULT_MAX_TOKENS_ENV, SUCCESS_RESULT_MAX_BYTES_ENV, SUCCESS_RESULT_MAX_TOKENS_ENV, getBackgroundThresholdMs, getErrorBudgetRatio, getErrorMaxEntries, getErrorMaxVariantsJoined, getErrorPatterns, getHeadRatio, getLogMaxBytes, getLogTtlMs, getMaxCompletedRunners, getResultMaxBytes, getResultMaxLines, getResultMaxTokens, getRunnerSettings, getSuccessResultMaxBytes, getSuccessResultMaxTokens, setRunnerSettings };
package/dist/config.mjs CHANGED
@@ -1 +1 @@
1
- import{BG_THRESHOLD_MS_ENV as e,DEFAULT_BG_THRESHOLD_MS as t,DEFAULT_ERROR_BUDGET_RATIO as n,DEFAULT_ERROR_MAX_ENTRIES as r,DEFAULT_ERROR_MAX_VARIANTS_JOINED as i,DEFAULT_HEAD_RATIO as a,DEFAULT_LOG_MAX_BYTES as o,DEFAULT_LOG_TTL_MS as s,DEFAULT_MAX_COMPLETED_RUNNERS as c,DEFAULT_RESULT_MAX_BYTES as l,DEFAULT_RESULT_MAX_LINES as u,DEFAULT_RESULT_MAX_TOKENS as d,DEFAULT_SUCCESS_RESULT_MAX_BYTES as f,DEFAULT_SUCCESS_RESULT_MAX_TOKENS as p,LOG_DIR_ENV as m,LOG_MAX_BYTES_ENV as h,LOG_TTL_MS_ENV as g,MAX_COMPLETED_RUNNERS_ENV as _,RESULT_MAX_BYTES_ENV as v,RESULT_MAX_TOKENS_ENV as y,SUCCESS_RESULT_MAX_BYTES_ENV as b,SUCCESS_RESULT_MAX_TOKENS_ENV as x,getBackgroundThresholdMs as S,getErrorBudgetRatio as C,getErrorMaxEntries as w,getErrorMaxVariantsJoined as T,getErrorPatterns as E,getHeadRatio as D,getLogMaxBytes as O,getLogTtlMs as k,getMaxCompletedRunners as A,getResultMaxBytes as j,getResultMaxLines as M,getResultMaxTokens as N,getRunnerSettings as P,getSuccessResultMaxBytes as F,getSuccessResultMaxTokens as I,setRunnerSettings as L}from"./src/types/config.mjs";export{e as BG_THRESHOLD_MS_ENV,t as DEFAULT_BG_THRESHOLD_MS,n as DEFAULT_ERROR_BUDGET_RATIO,r as DEFAULT_ERROR_MAX_ENTRIES,i as DEFAULT_ERROR_MAX_VARIANTS_JOINED,a as DEFAULT_HEAD_RATIO,o as DEFAULT_LOG_MAX_BYTES,s as DEFAULT_LOG_TTL_MS,c as DEFAULT_MAX_COMPLETED_RUNNERS,l as DEFAULT_RESULT_MAX_BYTES,u as DEFAULT_RESULT_MAX_LINES,d as DEFAULT_RESULT_MAX_TOKENS,f as DEFAULT_SUCCESS_RESULT_MAX_BYTES,p as DEFAULT_SUCCESS_RESULT_MAX_TOKENS,m as LOG_DIR_ENV,h as LOG_MAX_BYTES_ENV,g as LOG_TTL_MS_ENV,_ as MAX_COMPLETED_RUNNERS_ENV,v as RESULT_MAX_BYTES_ENV,y as RESULT_MAX_TOKENS_ENV,b as SUCCESS_RESULT_MAX_BYTES_ENV,x as SUCCESS_RESULT_MAX_TOKENS_ENV,S as getBackgroundThresholdMs,C as getErrorBudgetRatio,w as getErrorMaxEntries,T as getErrorMaxVariantsJoined,E as getErrorPatterns,D as getHeadRatio,O as getLogMaxBytes,k as getLogTtlMs,A as getMaxCompletedRunners,j as getResultMaxBytes,M as getResultMaxLines,N as getResultMaxTokens,P as getRunnerSettings,F as getSuccessResultMaxBytes,I as getSuccessResultMaxTokens,L as setRunnerSettings};
1
+ import{BG_THRESHOLD_MS_ENV as e,DEFAULT_BG_THRESHOLD_MS as t,DEFAULT_ERROR_BUDGET_RATIO as n,DEFAULT_ERROR_MAX_ENTRIES as r,DEFAULT_ERROR_MAX_VARIANTS_JOINED as i,DEFAULT_HEAD_RATIO as a,DEFAULT_LOG_MAX_BYTES as o,DEFAULT_LOG_TTL_MS as s,DEFAULT_MAX_COMPLETED_RUNNERS as c,DEFAULT_RESULT_MAX_BYTES as l,DEFAULT_RESULT_MAX_LINES as u,DEFAULT_RESULT_MAX_TOKENS as d,DEFAULT_SUCCESS_RESULT_MAX_BYTES as f,DEFAULT_SUCCESS_RESULT_MAX_TOKENS as p,LOG_DIR_ENV as m,LOG_MAX_BYTES_ENV as h,LOG_TTL_MS_ENV as g,MAX_COMPLETED_RUNNERS_ENV as _,RESULT_MAX_BYTES_ENV as v,RESULT_MAX_TOKENS_ENV as y,SUCCESS_RESULT_MAX_BYTES_ENV as b,SUCCESS_RESULT_MAX_TOKENS_ENV as x}from"./constants/runnerConfig.mjs";import{getBackgroundThresholdMs as S,getErrorBudgetRatio as C,getErrorMaxEntries as w,getErrorMaxVariantsJoined as T,getErrorPatterns as E,getHeadRatio as D,getLogMaxBytes as O,getLogTtlMs as k,getMaxCompletedRunners as A,getResultMaxBytes as j,getResultMaxLines as M,getResultMaxTokens as N,getRunnerSettings as P,getSuccessResultMaxBytes as F,getSuccessResultMaxTokens as I,setRunnerSettings as L}from"./services/runnerConfig/index.mjs";export{e as BG_THRESHOLD_MS_ENV,t as DEFAULT_BG_THRESHOLD_MS,n as DEFAULT_ERROR_BUDGET_RATIO,r as DEFAULT_ERROR_MAX_ENTRIES,i as DEFAULT_ERROR_MAX_VARIANTS_JOINED,a as DEFAULT_HEAD_RATIO,o as DEFAULT_LOG_MAX_BYTES,s as DEFAULT_LOG_TTL_MS,c as DEFAULT_MAX_COMPLETED_RUNNERS,l as DEFAULT_RESULT_MAX_BYTES,u as DEFAULT_RESULT_MAX_LINES,d as DEFAULT_RESULT_MAX_TOKENS,f as DEFAULT_SUCCESS_RESULT_MAX_BYTES,p as DEFAULT_SUCCESS_RESULT_MAX_TOKENS,m as LOG_DIR_ENV,h as LOG_MAX_BYTES_ENV,g as LOG_TTL_MS_ENV,_ as MAX_COMPLETED_RUNNERS_ENV,v as RESULT_MAX_BYTES_ENV,y as RESULT_MAX_TOKENS_ENV,b as SUCCESS_RESULT_MAX_BYTES_ENV,x as SUCCESS_RESULT_MAX_TOKENS_ENV,S as getBackgroundThresholdMs,C as getErrorBudgetRatio,w as getErrorMaxEntries,T as getErrorMaxVariantsJoined,E as getErrorPatterns,D as getHeadRatio,O as getLogMaxBytes,k as getLogTtlMs,A as getMaxCompletedRunners,j as getResultMaxBytes,M as getResultMaxLines,N as getResultMaxTokens,P as getRunnerSettings,F as getSuccessResultMaxBytes,I as getSuccessResultMaxTokens,L as setRunnerSettings};
@@ -0,0 +1,2 @@
1
+ const e=/[\u0007\u0008]/g;exports.CONTROL_PATTERN=e;
2
+ //# sourceMappingURL=ansiScrub.cjs.map