@agimon-ai/po-runner 0.0.0-alpha.0

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 (322) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +257 -0
  3. package/dist/ansiScrub-CsqTSaVT.mjs +71 -0
  4. package/dist/ansiScrub-CsqTSaVT.mjs.map +1 -0
  5. package/dist/ansiScrub-D5gpHDch.cjs +100 -0
  6. package/dist/ansiScrub-D5gpHDch.cjs.map +1 -0
  7. package/dist/ansiScrub.cjs +7 -0
  8. package/dist/ansiScrub.d.mts +26 -0
  9. package/dist/ansiScrub.d.mts.map +1 -0
  10. package/dist/ansiScrub.mjs +2 -0
  11. package/dist/apiContracts.cjs +162 -0
  12. package/dist/apiContracts.cjs.map +1 -0
  13. package/dist/apiContracts.d.mts +53 -0
  14. package/dist/apiContracts.d.mts.map +1 -0
  15. package/dist/apiContracts.mjs +157 -0
  16. package/dist/apiContracts.mjs.map +1 -0
  17. package/dist/bashResult-DNgtahGR.cjs +629 -0
  18. package/dist/bashResult-DNgtahGR.cjs.map +1 -0
  19. package/dist/bashResult-DcrRaBLv.d.mts +49 -0
  20. package/dist/bashResult-DcrRaBLv.d.mts.map +1 -0
  21. package/dist/bashResult-bIVSzoj-.mjs +546 -0
  22. package/dist/bashResult-bIVSzoj-.mjs.map +1 -0
  23. package/dist/bashRunService-CJ02XaAq.mjs +440 -0
  24. package/dist/bashRunService-CJ02XaAq.mjs.map +1 -0
  25. package/dist/bashRunService-Ci0cGdYO.d.mts +71 -0
  26. package/dist/bashRunService-Ci0cGdYO.d.mts.map +1 -0
  27. package/dist/bashRunService-DyqxOSlx.cjs +445 -0
  28. package/dist/bashRunService-DyqxOSlx.cjs.map +1 -0
  29. package/dist/bashRunService.cjs +3 -0
  30. package/dist/bashRunService.d.mts +36 -0
  31. package/dist/bashRunService.d.mts.map +1 -0
  32. package/dist/bashRunService.mjs +2 -0
  33. package/dist/bashSchema.cjs +5 -0
  34. package/dist/bashSchema.d.mts +7 -0
  35. package/dist/bashSchema.d.mts.map +1 -0
  36. package/dist/bashSchema.mjs +2 -0
  37. package/dist/bashTool-B1EwZLo_.d.mts +20 -0
  38. package/dist/bashTool-B1EwZLo_.d.mts.map +1 -0
  39. package/dist/bashTool-C-k7fmyh.mjs +24 -0
  40. package/dist/bashTool-C-k7fmyh.mjs.map +1 -0
  41. package/dist/bashTool-CdgtqVFD.cjs +41 -0
  42. package/dist/bashTool-CdgtqVFD.cjs.map +1 -0
  43. package/dist/bashTool.cjs +13 -0
  44. package/dist/bashTool.cjs.map +1 -0
  45. package/dist/bashTool.d.mts +8 -0
  46. package/dist/bashTool.d.mts.map +1 -0
  47. package/dist/bashTool.mjs +11 -0
  48. package/dist/bashTool.mjs.map +1 -0
  49. package/dist/bin/cli.cjs +78 -0
  50. package/dist/bin/cli.cjs.map +1 -0
  51. package/dist/bin/cli.d.mts +4 -0
  52. package/dist/bin/cli.d.mts.map +1 -0
  53. package/dist/bin/cli.mjs +77 -0
  54. package/dist/bin/cli.mjs.map +1 -0
  55. package/dist/bin/logSink.cjs +102 -0
  56. package/dist/bin/logSink.cjs.map +1 -0
  57. package/dist/bin/logSink.d.mts +4 -0
  58. package/dist/bin/logSink.d.mts.map +1 -0
  59. package/dist/bin/logSink.mjs +99 -0
  60. package/dist/bin/logSink.mjs.map +1 -0
  61. package/dist/bin/runnerHost.cjs +131 -0
  62. package/dist/bin/runnerHost.cjs.map +1 -0
  63. package/dist/bin/runnerHost.d.mts +4 -0
  64. package/dist/bin/runnerHost.d.mts.map +1 -0
  65. package/dist/bin/runnerHost.mjs +127 -0
  66. package/dist/bin/runnerHost.mjs.map +1 -0
  67. package/dist/cliApp-Dj9nwaOv.cjs +244 -0
  68. package/dist/cliApp-Dj9nwaOv.cjs.map +1 -0
  69. package/dist/cliApp-v8Z3rMCi.mjs +237 -0
  70. package/dist/cliApp-v8Z3rMCi.mjs.map +1 -0
  71. package/dist/cliApp.cjs +3 -0
  72. package/dist/cliApp.d.mts +18 -0
  73. package/dist/cliApp.d.mts.map +1 -0
  74. package/dist/cliApp.mjs +2 -0
  75. package/dist/clock-Cv2pddgo.mjs +16 -0
  76. package/dist/clock-Cv2pddgo.mjs.map +1 -0
  77. package/dist/clock-euJkweLq.d.mts +11 -0
  78. package/dist/clock-euJkweLq.d.mts.map +1 -0
  79. package/dist/clock-jqnLWziT.cjs +21 -0
  80. package/dist/clock-jqnLWziT.cjs.map +1 -0
  81. package/dist/clock.cjs +3 -0
  82. package/dist/clock.d.mts +10 -0
  83. package/dist/clock.d.mts.map +1 -0
  84. package/dist/clock.mjs +2 -0
  85. package/dist/compaction-4QSUsBxq.cjs +40 -0
  86. package/dist/compaction-4QSUsBxq.cjs.map +1 -0
  87. package/dist/compaction-DCw80VZj.mjs +29 -0
  88. package/dist/compaction-DCw80VZj.mjs.map +1 -0
  89. package/dist/compaction.cjs +4 -0
  90. package/dist/compaction.d.mts +10 -0
  91. package/dist/compaction.d.mts.map +1 -0
  92. package/dist/compaction.mjs +2 -0
  93. package/dist/config.cjs +41 -0
  94. package/dist/config.d.mts +2 -0
  95. package/dist/config.mjs +2 -0
  96. package/dist/extensions/mcp-ui.mjs +23 -0
  97. package/dist/extensions/mcp-ui.mjs.map +1 -0
  98. package/dist/extensions/mcp.cjs +142 -0
  99. package/dist/extensions/mcp.cjs.map +1 -0
  100. package/dist/extensions/mcp.d.mts +5 -0
  101. package/dist/extensions/mcp.d.mts.map +1 -0
  102. package/dist/extensions/mcp.mjs +114 -0
  103. package/dist/extensions/mcp.mjs.map +1 -0
  104. package/dist/extensions/server.cjs +1156 -0
  105. package/dist/extensions/server.cjs.map +1 -0
  106. package/dist/extensions/server.d.mts +5 -0
  107. package/dist/extensions/server.d.mts.map +1 -0
  108. package/dist/extensions/server.mjs +1146 -0
  109. package/dist/extensions/server.mjs.map +1 -0
  110. package/dist/extensions/web.mjs +1785 -0
  111. package/dist/extensions/web.mjs.map +1 -0
  112. package/dist/headless-BGYfIlNk.mjs +169 -0
  113. package/dist/headless-BGYfIlNk.mjs.map +1 -0
  114. package/dist/headless-CHUsBGhg.cjs +180 -0
  115. package/dist/headless-CHUsBGhg.cjs.map +1 -0
  116. package/dist/index-BZL7keVW.d.mts +31 -0
  117. package/dist/index-BZL7keVW.d.mts.map +1 -0
  118. package/dist/index-BwB_jTI9.d.mts +12 -0
  119. package/dist/index-BwB_jTI9.d.mts.map +1 -0
  120. package/dist/index-D9-IXax4.d.mts +43 -0
  121. package/dist/index-D9-IXax4.d.mts.map +1 -0
  122. package/dist/index-DBz0DxnL.d.mts +39 -0
  123. package/dist/index-DBz0DxnL.d.mts.map +1 -0
  124. package/dist/index-DM7yJpMs.d.mts +25 -0
  125. package/dist/index-DM7yJpMs.d.mts.map +1 -0
  126. package/dist/index-Dhi8asLH.d.mts +22 -0
  127. package/dist/index-Dhi8asLH.d.mts.map +1 -0
  128. package/dist/index.cjs +19 -0
  129. package/dist/index.d.mts +7 -0
  130. package/dist/index.mjs +6 -0
  131. package/dist/launcher-BDm6-DiQ.mjs +150 -0
  132. package/dist/launcher-BDm6-DiQ.mjs.map +1 -0
  133. package/dist/launcher-BG5t9nvG.d.mts +39 -0
  134. package/dist/launcher-BG5t9nvG.d.mts.map +1 -0
  135. package/dist/launcher-SlyE8R3b.cjs +157 -0
  136. package/dist/launcher-SlyE8R3b.cjs.map +1 -0
  137. package/dist/launcher.cjs +3 -0
  138. package/dist/launcher.d.mts +33 -0
  139. package/dist/launcher.d.mts.map +1 -0
  140. package/dist/launcher.mjs +2 -0
  141. package/dist/lifeline-BZaQA0rm.mjs +88 -0
  142. package/dist/lifeline-BZaQA0rm.mjs.map +1 -0
  143. package/dist/lifeline-BuV_erib.cjs +98 -0
  144. package/dist/lifeline-BuV_erib.cjs.map +1 -0
  145. package/dist/lifeline-eJdZV0nN.d.mts +19 -0
  146. package/dist/lifeline-eJdZV0nN.d.mts.map +1 -0
  147. package/dist/lifeline.cjs +6 -0
  148. package/dist/lifeline.d.mts +21 -0
  149. package/dist/lifeline.d.mts.map +1 -0
  150. package/dist/lifeline.mjs +3 -0
  151. package/dist/logFile-C7oQ_v-g.d.mts +16 -0
  152. package/dist/logFile-C7oQ_v-g.d.mts.map +1 -0
  153. package/dist/logFile-CNvepZh0.cjs +67 -0
  154. package/dist/logFile-CNvepZh0.cjs.map +1 -0
  155. package/dist/logFile-KKPbkC-a.mjs +60 -0
  156. package/dist/logFile-KKPbkC-a.mjs.map +1 -0
  157. package/dist/logFile.cjs +3 -0
  158. package/dist/logFile.d.mts +11 -0
  159. package/dist/logFile.d.mts.map +1 -0
  160. package/dist/logFile.mjs +2 -0
  161. package/dist/logReader-B6J7L7Ua.cjs +282 -0
  162. package/dist/logReader-B6J7L7Ua.cjs.map +1 -0
  163. package/dist/logReader-MdW9ffvV.d.mts +43 -0
  164. package/dist/logReader-MdW9ffvV.d.mts.map +1 -0
  165. package/dist/logReader-UfbDbwQl.mjs +257 -0
  166. package/dist/logReader-UfbDbwQl.mjs.map +1 -0
  167. package/dist/logReader.cjs +4 -0
  168. package/dist/logReader.d.mts +3 -0
  169. package/dist/logReader.mjs +2 -0
  170. package/dist/processControl-BAOa3oo_.d.mts +14 -0
  171. package/dist/processControl-BAOa3oo_.d.mts.map +1 -0
  172. package/dist/processControl-DApTpV16.mjs +26 -0
  173. package/dist/processControl-DApTpV16.mjs.map +1 -0
  174. package/dist/processControl-DNJ1WZ9N.cjs +31 -0
  175. package/dist/processControl-DNJ1WZ9N.cjs.map +1 -0
  176. package/dist/processControl.cjs +3 -0
  177. package/dist/processControl.d.mts +10 -0
  178. package/dist/processControl.d.mts.map +1 -0
  179. package/dist/processControl.mjs +2 -0
  180. package/dist/ptyHost-DWWtRrGn.d.mts +38 -0
  181. package/dist/ptyHost-DWWtRrGn.d.mts.map +1 -0
  182. package/dist/ptyHost-DlQtTB8F.mjs +150 -0
  183. package/dist/ptyHost-DlQtTB8F.mjs.map +1 -0
  184. package/dist/ptyHost-MI2Z6WTG.cjs +157 -0
  185. package/dist/ptyHost-MI2Z6WTG.cjs.map +1 -0
  186. package/dist/ptyHost.cjs +3 -0
  187. package/dist/ptyHost.d.mts +26 -0
  188. package/dist/ptyHost.d.mts.map +1 -0
  189. package/dist/ptyHost.mjs +2 -0
  190. package/dist/ptySpawner-B6GsueZd.d.mts +28 -0
  191. package/dist/ptySpawner-B6GsueZd.d.mts.map +1 -0
  192. package/dist/ptySpawner-DEi1KOnd.mjs +17 -0
  193. package/dist/ptySpawner-DEi1KOnd.mjs.map +1 -0
  194. package/dist/ptySpawner-ijw0g5_T.cjs +22 -0
  195. package/dist/ptySpawner-ijw0g5_T.cjs.map +1 -0
  196. package/dist/ptySpawner.cjs +3 -0
  197. package/dist/ptySpawner.d.mts +14 -0
  198. package/dist/ptySpawner.d.mts.map +1 -0
  199. package/dist/ptySpawner.mjs +2 -0
  200. package/dist/reconcile-BugwYFbV.cjs +133 -0
  201. package/dist/reconcile-BugwYFbV.cjs.map +1 -0
  202. package/dist/reconcile-DMeNSxwn.mjs +114 -0
  203. package/dist/reconcile-DMeNSxwn.mjs.map +1 -0
  204. package/dist/reconcile.cjs +5 -0
  205. package/dist/reconcile.d.mts +36 -0
  206. package/dist/reconcile.d.mts.map +1 -0
  207. package/dist/reconcile.mjs +2 -0
  208. package/dist/responseEnvelope.cjs +19 -0
  209. package/dist/responseEnvelope.d.mts +50 -0
  210. package/dist/responseEnvelope.d.mts.map +1 -0
  211. package/dist/responseEnvelope.mjs +3 -0
  212. package/dist/rmuxBackend-CaEWooWn.d.mts +36 -0
  213. package/dist/rmuxBackend-CaEWooWn.d.mts.map +1 -0
  214. package/dist/rmuxBackend-DfyQwJrc.mjs +509 -0
  215. package/dist/rmuxBackend-DfyQwJrc.mjs.map +1 -0
  216. package/dist/rmuxBackend-DlxgqRZ1.cjs +523 -0
  217. package/dist/rmuxBackend-DlxgqRZ1.cjs.map +1 -0
  218. package/dist/rmuxBackend.cjs +4 -0
  219. package/dist/rmuxBackend.d.mts +3 -0
  220. package/dist/rmuxBackend.mjs +2 -0
  221. package/dist/rolldown-runtime-VH7oDXx4.cjs +28 -0
  222. package/dist/rtkProcessor-B4_urXQr.mjs +10 -0
  223. package/dist/rtkProcessor-B4_urXQr.mjs.map +1 -0
  224. package/dist/rtkProcessor-B9KPdyzr.mjs +309 -0
  225. package/dist/rtkProcessor-B9KPdyzr.mjs.map +1 -0
  226. package/dist/rtkProcessor-Bc4L4o_8.cjs +335 -0
  227. package/dist/rtkProcessor-Bc4L4o_8.cjs.map +1 -0
  228. package/dist/rtkProcessor-CVZvNhkJ.d.mts +35 -0
  229. package/dist/rtkProcessor-CVZvNhkJ.d.mts.map +1 -0
  230. package/dist/rtkProcessor-CsrCPyTQ.cjs +33 -0
  231. package/dist/rtkProcessor-CsrCPyTQ.cjs.map +1 -0
  232. package/dist/rtkProcessor.cjs +11 -0
  233. package/dist/rtkProcessor.d.mts +7 -0
  234. package/dist/rtkProcessor.d.mts.map +1 -0
  235. package/dist/rtkProcessor.mjs +3 -0
  236. package/dist/runnerConfig-BQBlVAXn.mjs +134 -0
  237. package/dist/runnerConfig-BQBlVAXn.mjs.map +1 -0
  238. package/dist/runnerConfig-BjtulXBI.d.mts +57 -0
  239. package/dist/runnerConfig-BjtulXBI.d.mts.map +1 -0
  240. package/dist/runnerConfig-D2tGq5ZM.cjs +367 -0
  241. package/dist/runnerConfig-D2tGq5ZM.cjs.map +1 -0
  242. package/dist/runnerDependencies-DruByBGS.mjs +647 -0
  243. package/dist/runnerDependencies-DruByBGS.mjs.map +1 -0
  244. package/dist/runnerDependencies-KMZigIxB.cjs +667 -0
  245. package/dist/runnerDependencies-KMZigIxB.cjs.map +1 -0
  246. package/dist/runnerDependencies.cjs +3 -0
  247. package/dist/runnerDependencies.d.mts +2 -0
  248. package/dist/runnerDependencies.mjs +2 -0
  249. package/dist/runnerNamer-B8FH7n2v.mjs +44 -0
  250. package/dist/runnerNamer-B8FH7n2v.mjs.map +1 -0
  251. package/dist/runnerNamer-we1XVYfM.cjs +49 -0
  252. package/dist/runnerNamer-we1XVYfM.cjs.map +1 -0
  253. package/dist/runnerNamer.cjs +3 -0
  254. package/dist/runnerNamer.d.mts +11 -0
  255. package/dist/runnerNamer.d.mts.map +1 -0
  256. package/dist/runnerNamer.mjs +2 -0
  257. package/dist/runnerPaths-BTEuzxw0.cjs +471 -0
  258. package/dist/runnerPaths-BTEuzxw0.cjs.map +1 -0
  259. package/dist/runnerPaths-B_dAAeco.mjs +451 -0
  260. package/dist/runnerPaths-B_dAAeco.mjs.map +1 -0
  261. package/dist/runnerPaths.cjs +3 -0
  262. package/dist/runnerPaths.d.mts +50 -0
  263. package/dist/runnerPaths.d.mts.map +1 -0
  264. package/dist/runnerPaths.mjs +2 -0
  265. package/dist/runnerRegistry-BmkZTJHi.cjs +371 -0
  266. package/dist/runnerRegistry-BmkZTJHi.cjs.map +1 -0
  267. package/dist/runnerRegistry-CeOHEjBv.mjs +339 -0
  268. package/dist/runnerRegistry-CeOHEjBv.mjs.map +1 -0
  269. package/dist/runnerRegistry-CtJiD02R.d.mts +88 -0
  270. package/dist/runnerRegistry-CtJiD02R.d.mts.map +1 -0
  271. package/dist/runnerRegistry.cjs +4 -0
  272. package/dist/runnerRegistry.d.mts +3 -0
  273. package/dist/runnerRegistry.mjs +2 -0
  274. package/dist/runnerSettings-DiV1lvzx.d.mts +34 -0
  275. package/dist/runnerSettings-DiV1lvzx.d.mts.map +1 -0
  276. package/dist/services/lifeline/client.cjs +52 -0
  277. package/dist/services/lifeline/client.cjs.map +1 -0
  278. package/dist/services/lifeline/client.d.mts +22 -0
  279. package/dist/services/lifeline/client.d.mts.map +1 -0
  280. package/dist/services/lifeline/client.mjs +48 -0
  281. package/dist/services/lifeline/client.mjs.map +1 -0
  282. package/dist/services/runnerSupervisor/index.cjs +207 -0
  283. package/dist/services/runnerSupervisor/index.cjs.map +1 -0
  284. package/dist/services/runnerSupervisor/index.d.mts +71 -0
  285. package/dist/services/runnerSupervisor/index.d.mts.map +1 -0
  286. package/dist/services/runnerSupervisor/index.mjs +195 -0
  287. package/dist/services/runnerSupervisor/index.mjs.map +1 -0
  288. package/dist/session-BC43uEyG.cjs +29 -0
  289. package/dist/session-BC43uEyG.cjs.map +1 -0
  290. package/dist/session-Chsb_Nh2.mjs +18 -0
  291. package/dist/session-Chsb_Nh2.mjs.map +1 -0
  292. package/dist/session-DE2Acesp.mjs +6 -0
  293. package/dist/session-DE2Acesp.mjs.map +1 -0
  294. package/dist/session-SfIPtdZO.cjs +11 -0
  295. package/dist/session-SfIPtdZO.cjs.map +1 -0
  296. package/dist/session.cjs +6 -0
  297. package/dist/session.d.mts +11 -0
  298. package/dist/session.d.mts.map +1 -0
  299. package/dist/session.mjs +3 -0
  300. package/dist/spawner-BxFsINXP.cjs +68 -0
  301. package/dist/spawner-BxFsINXP.cjs.map +1 -0
  302. package/dist/spawner-CdrN_HNk.d.mts +35 -0
  303. package/dist/spawner-CdrN_HNk.d.mts.map +1 -0
  304. package/dist/spawner-LoVsn55-.mjs +63 -0
  305. package/dist/spawner-LoVsn55-.mjs.map +1 -0
  306. package/dist/spawner.cjs +3 -0
  307. package/dist/spawner.d.mts +9 -0
  308. package/dist/spawner.d.mts.map +1 -0
  309. package/dist/spawner.mjs +2 -0
  310. package/dist/type-BXM03qSw.d.mts +44 -0
  311. package/dist/type-BXM03qSw.d.mts.map +1 -0
  312. package/dist/type-C31e1gla.d.mts +43 -0
  313. package/dist/type-C31e1gla.d.mts.map +1 -0
  314. package/dist/type-vWQNTahw.d.mts +12 -0
  315. package/dist/type-vWQNTahw.d.mts.map +1 -0
  316. package/dist/types.cjs +0 -0
  317. package/dist/types.d.mts +3 -0
  318. package/dist/types.mjs +1 -0
  319. package/llms.txt +9 -0
  320. package/package.json +303 -0
  321. package/skills/doom-runner/SKILL.md +78 -0
  322. package/src/prompts/po-use-runner/SKILL.md +47 -0
@@ -0,0 +1,667 @@
1
+ const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
2
+ const require_bashRunService = require("./bashRunService-DyqxOSlx.cjs");
3
+ const require_runnerConfig = require("./runnerConfig-D2tGq5ZM.cjs");
4
+ const require_logReader = require("./logReader-B6J7L7Ua.cjs");
5
+ const require_clock = require("./clock-jqnLWziT.cjs");
6
+ const require_rmuxBackend = require("./rmuxBackend-DlxgqRZ1.cjs");
7
+ const require_services_runnerSupervisor_index = require("./services/runnerSupervisor/index.cjs");
8
+ const require_rtkProcessor = require("./rtkProcessor-Bc4L4o_8.cjs");
9
+ const require_launcher = require("./launcher-SlyE8R3b.cjs");
10
+ const require_lifeline = require("./lifeline-BuV_erib.cjs");
11
+ const require_logFile = require("./logFile-CNvepZh0.cjs");
12
+ const require_processControl = require("./processControl-DNJ1WZ9N.cjs");
13
+ const require_ptyHost = require("./ptyHost-MI2Z6WTG.cjs");
14
+ const require_ptySpawner = require("./ptySpawner-ijw0g5_T.cjs");
15
+ const require_runnerNamer = require("./runnerNamer-we1XVYfM.cjs");
16
+ const require_runnerPaths = require("./runnerPaths-BTEuzxw0.cjs");
17
+ const require_runnerRegistry = require("./runnerRegistry-BmkZTJHi.cjs");
18
+ const require_spawner = require("./spawner-BxFsINXP.cjs");
19
+ let node_crypto = require("node:crypto");
20
+ let node_fs = require("node:fs");
21
+ node_fs = require_rolldown_runtime.__toESM(node_fs, 1);
22
+ let node_path = require("node:path");
23
+ node_path = require_rolldown_runtime.__toESM(node_path, 1);
24
+ let node_child_process = require("node:child_process");
25
+ let _agimon_ai_po_core_packageApi = require("@agimon-ai/po-core/packageApi");
26
+ //#region src/constants/tmuxBackend.ts
27
+ const LOG_DRAIN_TIMEOUT_MS = 2e3;
28
+ const PANE_STATE_FORMAT = "#{pane_dead}:#{pane_dead_status}:#{session_name}";
29
+ const SESSION_PREFIX = "doom-tmux-";
30
+ const OWNED_TARGET_PATTERN = /^doom-tmux-[A-Za-z0-9_-]+$/;
31
+ const SOCKET_PREFIX = "doom-tmux-";
32
+ const NON_INTERACTIVE_ENV = {
33
+ NO_COLOR: "1",
34
+ CI: "1"
35
+ };
36
+ //#endregion
37
+ //#region src/services/ptyBackendChain/index.ts
38
+ /**
39
+ * Presents the available PTY backends as one, preferring RMUX.
40
+ *
41
+ * A launch takes the first backend that accepts it, so a host without a
42
+ * compatible RMUX binary still gets panes rather than falling through to the
43
+ * plain subprocess launcher. Every later call routes on the target's prefix
44
+ * instead of asking each backend in turn: a backend cannot tell "this session
45
+ * is gone" from "this session was never mine", and guessing would let one
46
+ * report success for the other's run.
47
+ */
48
+ var PtyBackendChain = class {
49
+ rmux;
50
+ tmux;
51
+ constructor(rmux, tmux) {
52
+ this.rmux = rmux;
53
+ this.tmux = tmux;
54
+ }
55
+ async launch(request) {
56
+ return await this.rmux.launch(request) ?? await this.tmux.launch(request);
57
+ }
58
+ watch(id, target, sessionId) {
59
+ return this.owner(target).watch(id, target, sessionId);
60
+ }
61
+ stop(target, expectedPid) {
62
+ return this.owner(target).stop(target, expectedPid);
63
+ }
64
+ input(target, text) {
65
+ return this.owner(target).input(target, text);
66
+ }
67
+ capture(target) {
68
+ return this.owner(target).capture(target);
69
+ }
70
+ /** Both backends persist terminal evidence at the same path, so either answers. */
71
+ readOutcome(id, sessionId) {
72
+ return this.rmux.readOutcome(id, sessionId) ?? this.tmux.readOutcome(id, sessionId);
73
+ }
74
+ get(name) {
75
+ return this.rmux.get(name) ?? this.tmux.get(name);
76
+ }
77
+ owner(target) {
78
+ return target.startsWith("doom-tmux-") ? this.tmux : this.rmux;
79
+ }
80
+ };
81
+ //#endregion
82
+ //#region src/services/tmuxBackend/TmuxClient.ts
83
+ const TMUX_BINARY = "tmux";
84
+ const SOCKET_OPTION = "-L";
85
+ /** Long enough for a loaded server, short enough that a hung tmux is not fatal. */
86
+ const COMMAND_TIMEOUT_MS = 1e4;
87
+ const MAX_OUTPUT_BYTES = 4194304;
88
+ var TmuxClient = class {
89
+ socket;
90
+ binary;
91
+ constructor(socket, binary = TMUX_BINARY) {
92
+ this.socket = socket;
93
+ this.binary = binary;
94
+ }
95
+ run(args) {
96
+ return new Promise((resolve, reject) => {
97
+ (0, node_child_process.execFile)(this.binary, [
98
+ SOCKET_OPTION,
99
+ this.socket,
100
+ ...args
101
+ ], {
102
+ timeout: COMMAND_TIMEOUT_MS,
103
+ maxBuffer: MAX_OUTPUT_BYTES,
104
+ encoding: "utf8"
105
+ }, (error, stdout, stderr) => {
106
+ const code = error?.code;
107
+ if (error && typeof code !== "number") {
108
+ reject(error);
109
+ return;
110
+ }
111
+ resolve({
112
+ returnCode: typeof code === "number" ? code : 0,
113
+ stdout,
114
+ stderr
115
+ });
116
+ });
117
+ });
118
+ }
119
+ async format(target, format) {
120
+ const result = await this.run([
121
+ "display-message",
122
+ "-p",
123
+ "-t",
124
+ target,
125
+ "-F",
126
+ format
127
+ ]).catch(() => void 0);
128
+ if (!result || result.returnCode !== 0) return void 0;
129
+ return result.stdout.replace(/\n$/, "");
130
+ }
131
+ async sessionMissing(target) {
132
+ const result = await this.run([
133
+ "has-session",
134
+ "-t",
135
+ target
136
+ ]).catch(() => void 0);
137
+ return !result || result.returnCode !== 0;
138
+ }
139
+ };
140
+ //#endregion
141
+ //#region src/services/tmuxBackend/index.ts
142
+ /** Pane liveness, its exit status, and whether the session still exists, in one read. */
143
+ /** Distinct from the RMUX prefix so a target names the backend that owns it. */
144
+ /**
145
+ * Supervises runs in tmux panes, for hosts with no compatible RMUX binary.
146
+ *
147
+ * The pane runs the same runnerHost supervisor as the RMUX backend, so exit
148
+ * metadata, log rotation, and lifeline handling are shared rather than
149
+ * reimplemented: only the multiplexer differs. Kept beside the RMUX backend
150
+ * rather than folded into it because that path has no unit coverage to
151
+ * refactor against.
152
+ */
153
+ var TmuxBackend = class {
154
+ paths;
155
+ createClient;
156
+ env;
157
+ settings;
158
+ clientPromise;
159
+ runs = /* @__PURE__ */ new Map();
160
+ completions = /* @__PURE__ */ new Map();
161
+ constructor(paths, createClient = (socket) => new TmuxClient(socket), env = process.env, settings) {
162
+ this.paths = paths;
163
+ this.createClient = createClient;
164
+ this.env = env;
165
+ this.settings = settings;
166
+ }
167
+ async launch(request) {
168
+ const tmux = await this.client();
169
+ if (!tmux) return void 0;
170
+ this.paths.ensureDirectories();
171
+ const target = `${SESSION_PREFIX}${request.id}`;
172
+ const logPath = this.paths.logPathFor(request.id);
173
+ const aux = this.auxPaths(request.id, request.sessionId);
174
+ let created = false;
175
+ let released = false;
176
+ try {
177
+ this.prepareFiles(request, logPath, aux);
178
+ const supervisor = require_services_runnerSupervisor_index.shellJoin([
179
+ process.execPath,
180
+ require_services_runnerSupervisor_index.runtimeEntry("runnerHost"),
181
+ aux.spec,
182
+ aux.gate,
183
+ aux.exit
184
+ ]);
185
+ await this.checked(tmux, [
186
+ "new-session",
187
+ "-d",
188
+ "-s",
189
+ target,
190
+ "-c",
191
+ request.cwd,
192
+ supervisor
193
+ ]);
194
+ created = true;
195
+ await this.checked(tmux, [
196
+ "set-option",
197
+ "-t",
198
+ target,
199
+ "remain-on-exit",
200
+ "on"
201
+ ]);
202
+ await this.checked(tmux, [
203
+ "pipe-pane",
204
+ "-t",
205
+ target,
206
+ this.logPipeCommand(logPath, aux.logDone, request)
207
+ ]);
208
+ const pid = await panePid(tmux, target);
209
+ node_fs.default.writeFileSync(aux.gate, "", { mode: 384 });
210
+ released = true;
211
+ let buffering = true;
212
+ const completion = this.monitor(tmux, target, aux);
213
+ this.trackCompletion(target, completion);
214
+ const handle = {
215
+ id: request.id,
216
+ name: request.name,
217
+ pid,
218
+ logPath,
219
+ backend: "tmux",
220
+ backendTarget: target,
221
+ output: () => buffering ? readTail(logPath, require_runnerConfig.getResultMaxBytes(this.env, this.settings) * 2) : "",
222
+ completion: () => completion,
223
+ detach: () => {
224
+ buffering = false;
225
+ },
226
+ stop: () => this.stop(target, pid)
227
+ };
228
+ if (request.interactive) this.runs.set(request.name, this.interactiveRun(handle, tmux, target, completion));
229
+ completion.finally(() => this.runs.delete(request.name)).catch((error) => process.emitWarning(`tmux completion failed for ${target}: ${errorMessage(error)}`));
230
+ return handle;
231
+ } catch (error) {
232
+ if (released) throw error;
233
+ if (created) await killSession(tmux, target);
234
+ require_services_runnerSupervisor_index.cleanupSupervisorFiles(aux);
235
+ process.emitWarning(request.interactive ? `tmux launch unavailable for interactive runner: ${errorMessage(error)}` : `tmux launch unavailable, using supervised subprocess: ${errorMessage(error)}`);
236
+ return;
237
+ }
238
+ }
239
+ async stop(target, expectedPid) {
240
+ if (!OWNED_TARGET_PATTERN.test(target) || !Number.isInteger(expectedPid) || expectedPid <= 0) return false;
241
+ const tmux = await this.client();
242
+ if (!tmux) return false;
243
+ try {
244
+ if (await tmux.sessionMissing(target)) return true;
245
+ const pid = await panePid(tmux, target);
246
+ if (pid !== expectedPid) return false;
247
+ const signalled = signalPane(pid, target);
248
+ if (signalled === "gone") return true;
249
+ if (signalled === "failed") return false;
250
+ if (await waitForPaneStop(tmux, target, 3e3)) return true;
251
+ if (await tmux.sessionMissing(target)) return true;
252
+ if (await panePid(tmux, target).catch(() => void 0) !== expectedPid) return false;
253
+ return killSession(tmux, target);
254
+ } catch (error) {
255
+ process.emitWarning(`Could not stop tmux target ${target}: ${errorMessage(error)}`);
256
+ return false;
257
+ }
258
+ }
259
+ async watch(id, target, sessionId) {
260
+ const tmux = await this.client();
261
+ if (!tmux) return void 0;
262
+ if (await tmux.sessionMissing(target)) return void 0;
263
+ const completion = this.monitor(tmux, target, this.auxPaths(id, sessionId));
264
+ this.trackCompletion(target, completion);
265
+ return completion;
266
+ }
267
+ async input(target, text) {
268
+ const tmux = await this.client();
269
+ if (!tmux) return false;
270
+ return (await tmux.run([
271
+ "send-keys",
272
+ "-t",
273
+ target,
274
+ "-l",
275
+ text
276
+ ]).catch((error) => {
277
+ process.emitWarning(`Could not send input to tmux target ${target}: ${errorMessage(error)}`);
278
+ }))?.returnCode === 0;
279
+ }
280
+ async capture(target) {
281
+ const tmux = await this.client();
282
+ if (!tmux) return void 0;
283
+ const result = await tmux.run([
284
+ "capture-pane",
285
+ "-p",
286
+ "-t",
287
+ target
288
+ ]).catch((error) => {
289
+ process.emitWarning(`Could not capture tmux target ${target}: ${errorMessage(error)}`);
290
+ });
291
+ return result?.returnCode === 0 ? result.stdout : void 0;
292
+ }
293
+ get(name) {
294
+ return this.runs.get(name);
295
+ }
296
+ readOutcome(id, sessionId) {
297
+ return require_services_runnerSupervisor_index.readExitMetadata(this.auxPaths(id, sessionId).exit);
298
+ }
299
+ trackCompletion(target, completion) {
300
+ this.completions.set(target, completion);
301
+ completion.finally(() => this.completions.delete(target)).catch((error) => process.emitWarning(`tmux monitor failed for ${target}: ${errorMessage(error)}`));
302
+ }
303
+ client() {
304
+ this.clientPromise ??= this.resolveClient();
305
+ return this.clientPromise;
306
+ }
307
+ async resolveClient() {
308
+ const client = this.createClient(socketName(this.paths.repositoryPath()));
309
+ try {
310
+ const version = await client.run(["-V"]);
311
+ if (version.returnCode !== 0) throw new Error(version.stderr.trim() || "tmux reported no version");
312
+ return client;
313
+ } catch (error) {
314
+ process.emitWarning(`tmux is unavailable: ${errorMessage(error)}`);
315
+ return;
316
+ }
317
+ }
318
+ async checked(tmux, args) {
319
+ const result = await tmux.run(args);
320
+ if (result.returnCode !== 0) throw new Error(`tmux ${args[0] ?? ""} failed: ${result.stderr.trim() || `exit ${result.returnCode}`}`);
321
+ }
322
+ prepareFiles(request, logPath, aux) {
323
+ require_services_runnerSupervisor_index.cleanupSupervisorFiles(aux);
324
+ node_fs.default.writeFileSync(logPath, "", { mode: 384 });
325
+ const env = environment(request.sessionId, request.interactive, this.env);
326
+ const spec = {
327
+ command: request.command,
328
+ cwd: request.cwd,
329
+ env
330
+ };
331
+ require_services_runnerSupervisor_index.writeCommandSpec(aux.spec, spec);
332
+ }
333
+ auxPaths(id, sessionId) {
334
+ return require_services_runnerSupervisor_index.supervisorPaths(this.paths.stateDirectory(sessionId), id);
335
+ }
336
+ /**
337
+ * The sink the pane pipes into.
338
+ *
339
+ * An interactive run also asks for a raw copy: the scrubbed log it writes
340
+ * beside it has had cursor movement taken out, which is what a terminal
341
+ * needs most. Only interactive runs pay for it, because only they can be
342
+ * attached to.
343
+ */
344
+ logPipeCommand(logPath, donePath, request) {
345
+ const id = node_path.default.basename(logPath, ".log");
346
+ return require_services_runnerSupervisor_index.shellJoin([
347
+ process.execPath,
348
+ require_services_runnerSupervisor_index.runtimeEntry("logSink"),
349
+ logPath,
350
+ this.paths.rotatedLogPathFor(id),
351
+ String(require_runnerConfig.getLogMaxBytes(this.env)),
352
+ donePath,
353
+ ...request.interactive ? [this.paths.rawLogPathFor(id)] : []
354
+ ]);
355
+ }
356
+ async monitor(tmux, target, aux) {
357
+ try {
358
+ const paneCode = await waitForRunEnd(tmux, target, aux.exit);
359
+ await waitForLogDrain(tmux, target, aux.logDone);
360
+ return require_services_runnerSupervisor_index.readExitMetadata(aux.exit) ?? {
361
+ code: paneCode,
362
+ signal: null
363
+ };
364
+ } finally {
365
+ if (!await tmux.sessionMissing(target).catch(() => false)) await killSession(tmux, target);
366
+ require_services_runnerSupervisor_index.cleanupSupervisorFiles(aux);
367
+ }
368
+ }
369
+ interactiveRun(handle, tmux, target, completion) {
370
+ let screen = "";
371
+ let active = true;
372
+ const handlers = /* @__PURE__ */ new Set();
373
+ const refresh = async () => {
374
+ while (active) {
375
+ const captured = await tmux.run([
376
+ "capture-pane",
377
+ "-p",
378
+ "-t",
379
+ target
380
+ ]).catch((error) => {
381
+ process.emitWarning(`Could not capture tmux screen for ${handle.name}: ${errorMessage(error)}`);
382
+ });
383
+ const next = captured?.returnCode === 0 ? captured.stdout : screen;
384
+ if (next !== screen) {
385
+ screen = next;
386
+ for (const handler of handlers) handler(next);
387
+ }
388
+ await delay(100);
389
+ }
390
+ };
391
+ refresh();
392
+ completion.finally(() => {
393
+ active = false;
394
+ }).catch((error) => process.emitWarning(`tmux interactive completion failed for ${handle.name}: ${errorMessage(error)}`));
395
+ return {
396
+ ...handle,
397
+ write: (text) => {
398
+ tmux.run([
399
+ "send-keys",
400
+ "-t",
401
+ target,
402
+ "-l",
403
+ text
404
+ ]).catch((error) => process.emitWarning(errorMessage(error)));
405
+ },
406
+ screen: () => screen,
407
+ onData: (handler) => {
408
+ handlers.add(handler);
409
+ return () => handlers.delete(handler);
410
+ },
411
+ resize: (cols, rows) => {
412
+ tmux.run([
413
+ "resize-window",
414
+ "-t",
415
+ target,
416
+ "-x",
417
+ String(cols),
418
+ "-y",
419
+ String(rows)
420
+ ]).catch((error) => process.emitWarning(errorMessage(error)));
421
+ }
422
+ };
423
+ }
424
+ };
425
+ function socketName(repositoryPath) {
426
+ const hash = (0, node_crypto.createHash)("sha256").update(repositoryPath).digest("hex").slice(0, 12);
427
+ return `${SOCKET_PREFIX}${hash}`;
428
+ }
429
+ function environment(sessionId, interactive, env) {
430
+ const values = {
431
+ ...env,
432
+ ...interactive ? {} : {
433
+ ...NON_INTERACTIVE_ENV,
434
+ ...require_runnerConfig.noninteractiveEnvironment(env)
435
+ },
436
+ ...require_services_runnerSupervisor_index.NO_TERMINAL_INPUT_ENV,
437
+ PI_SESSION_ID: sessionId
438
+ };
439
+ if (!interactive) delete values["FORCE_COLOR"];
440
+ return Object.fromEntries(Object.entries(values).filter((entry) => entry[1] !== void 0));
441
+ }
442
+ async function killSession(tmux, target) {
443
+ return (await tmux.run([
444
+ "kill-session",
445
+ "-t",
446
+ target
447
+ ]).catch((error) => {
448
+ process.emitWarning(`Could not close tmux target ${target}: ${errorMessage(error)}`);
449
+ }))?.returnCode === 0;
450
+ }
451
+ async function panePid(tmux, target) {
452
+ const message = await tmux.format(target, "#{pane_pid}");
453
+ const pid = Number(message);
454
+ if (!Number.isInteger(pid) || pid <= 0) throw new Error(`tmux did not report a pane pid for ${target}`);
455
+ return pid;
456
+ }
457
+ /**
458
+ * Waits for the run to end, preferring the supervisor's own record of it.
459
+ *
460
+ * The sidecar is written before the pane can end and outlives the server the
461
+ * pane's exit takes down, so asking tmux is the fallback for a supervisor that
462
+ * died without recording anything.
463
+ */
464
+ async function waitForRunEnd(tmux, target, exitPath) {
465
+ for (;;) {
466
+ if (node_fs.default.existsSync(exitPath)) return null;
467
+ const state = await readPaneExit(tmux, target);
468
+ if (state.exited) return state.code;
469
+ await delay(100);
470
+ }
471
+ }
472
+ async function waitForLogDrain(tmux, target, donePath) {
473
+ const deadline = Date.now() + LOG_DRAIN_TIMEOUT_MS;
474
+ while (Date.now() < deadline) {
475
+ if (node_fs.default.existsSync(donePath)) return;
476
+ if (await tmux.sessionMissing(target)) return;
477
+ await delay(25);
478
+ }
479
+ }
480
+ async function waitForPaneStop(tmux, target, timeoutMs) {
481
+ const deadline = Date.now() + timeoutMs;
482
+ while (Date.now() < deadline) {
483
+ if ((await readPaneExit(tmux, target)).exited) return true;
484
+ await delay(100);
485
+ }
486
+ return false;
487
+ }
488
+ /** One formatted read answers both questions this poll asks. */
489
+ async function readPaneExit(tmux, target) {
490
+ const message = await tmux.format(target, PANE_STATE_FORMAT);
491
+ if (message === void 0) return {
492
+ exited: true,
493
+ code: null
494
+ };
495
+ const [dead, status, ...rest] = message.trim().split(":");
496
+ if (rest.join(":") === "") return {
497
+ exited: true,
498
+ code: null
499
+ };
500
+ if (dead === "1" || dead === "true") {
501
+ const code = Number(status);
502
+ return {
503
+ exited: true,
504
+ code: Number.isInteger(code) ? code : null
505
+ };
506
+ }
507
+ return {
508
+ exited: false,
509
+ code: null
510
+ };
511
+ }
512
+ function signalPane(pid, target) {
513
+ try {
514
+ process.kill(pid, "SIGTERM");
515
+ return "signalled";
516
+ } catch (error) {
517
+ if (error.code === "ESRCH") return "gone";
518
+ process.emitWarning(`Could not signal tmux target ${target}: ${errorMessage(error)}`);
519
+ return "failed";
520
+ }
521
+ }
522
+ function readTail(target, maxBytes) {
523
+ let handle;
524
+ try {
525
+ const size = node_fs.default.statSync(target).size;
526
+ const bytes = Math.min(size, maxBytes);
527
+ const buffer = Buffer.alloc(bytes);
528
+ handle = node_fs.default.openSync(target, "r");
529
+ node_fs.default.readSync(handle, buffer, 0, bytes, size - bytes);
530
+ return buffer.toString("utf8");
531
+ } catch (error) {
532
+ if (error.code !== "ENOENT") process.emitWarning(`Could not read tmux log ${target}: ${errorMessage(error)}`);
533
+ return "";
534
+ } finally {
535
+ if (handle !== void 0) node_fs.default.closeSync(handle);
536
+ }
537
+ }
538
+ function delay(ms) {
539
+ return new Promise((resolve) => {
540
+ setTimeout(resolve, ms).unref?.();
541
+ });
542
+ }
543
+ function errorMessage(error) {
544
+ return error instanceof Error ? error.message : String(error);
545
+ }
546
+ //#endregion
547
+ //#region src/services/runnerDependencies/index.ts
548
+ /** Build once on first access, then hand back the same instance. */
549
+ function memoize(build) {
550
+ let value;
551
+ let built = false;
552
+ return () => {
553
+ if (!built) {
554
+ value = build();
555
+ built = true;
556
+ }
557
+ return value;
558
+ };
559
+ }
560
+ /**
561
+ * Builds the extension's service graph.
562
+ *
563
+ * A factory rather than a module-level singleton: the extension owns one graph
564
+ * per session, and tests get a fresh one they can substitute ports on through
565
+ * `overrides` without leaking state between cases.
566
+ *
567
+ * Every slot resolves lazily and memoizes, which keeps the previous container's
568
+ * behaviour: nothing is constructed until it is asked for, so opening the SQLite
569
+ * process registry stays deferred until something actually needs a runner.
570
+ */
571
+ function createRunnerDependencies(overrides) {
572
+ const settings = overrides.settings === void 0 ? void 0 : Object.freeze({
573
+ ...overrides.settings,
574
+ ...overrides.settings?.errorPatterns ? { errorPatterns: Object.freeze([...overrides.settings.errorPatterns]) } : {}
575
+ });
576
+ const environment = { ...overrides.environment };
577
+ const cwd = overrides.cwd ?? process.cwd();
578
+ const clock = memoize(() => overrides.clock ?? new require_clock.SystemClock());
579
+ const spawner = memoize(() => overrides.spawner ?? new require_spawner.NodeSpawner());
580
+ const processControl = memoize(() => overrides.processControl ?? new require_processControl.NodeProcessControl());
581
+ const ptySpawner = memoize(() => overrides.ptySpawner ?? new require_ptySpawner.NodePtySpawner());
582
+ const paths = memoize(() => overrides.paths ?? new require_runnerPaths.RunnerPaths(cwd, environment));
583
+ const lifeline = memoize(() => overrides.lifeline ?? new require_lifeline.NodeLifeline(paths()));
584
+ const processRegistry = memoize(() => overrides.processRegistry ?? require_runnerRegistry.createDefaultProcessRegistry(environment));
585
+ const runnerRegistry = memoize(() => overrides.runnerRegistry ?? new require_runnerRegistry.RunnerRegistry(paths(), processControl(), processRegistry(), environment));
586
+ const namer = memoize(() => overrides.namer ?? new require_runnerNamer.RunnerNamer(runnerRegistry()));
587
+ const logFile = memoize(() => overrides.logFile ?? new require_logFile.LogFile(paths()));
588
+ const logReader = memoize(() => overrides.logReader ?? new require_logReader.LogReader());
589
+ const launcher = memoize(() => overrides.launcher ?? new require_launcher.Launcher(spawner(), processControl(), logFile(), clock(), paths(), lifeline(), environment, settings));
590
+ const rmuxBackend = memoize(() => overrides.rmuxBackend ?? new PtyBackendChain(new require_rmuxBackend.RmuxBackend(paths(), environment, settings), new TmuxBackend(paths(), void 0, environment, settings)));
591
+ const rtkProcessor = memoize(() => overrides.rtkProcessor ?? new require_rtkProcessor.RtkProcessor(void 0, void 0, environment, settings));
592
+ const ptyHost = memoize(() => overrides.ptyHost ?? new require_ptyHost.PtyHost(ptySpawner(), logFile(), processControl(), clock(), environment, settings));
593
+ const bashRunService = memoize(() => overrides.bashRunService ?? new require_bashRunService.BashRunService(launcher(), rmuxBackend(), namer(), runnerRegistry(), clock(), rtkProcessor(), cwd, environment, overrides.executionBudget ?? (0, _agimon_ai_po_core_packageApi.sharedExecutionBudget)(environment)));
594
+ return {
595
+ settings,
596
+ environment,
597
+ get clock() {
598
+ return clock();
599
+ },
600
+ get spawner() {
601
+ return spawner();
602
+ },
603
+ get processControl() {
604
+ return processControl();
605
+ },
606
+ get ptySpawner() {
607
+ return ptySpawner();
608
+ },
609
+ get paths() {
610
+ return paths();
611
+ },
612
+ get lifeline() {
613
+ return lifeline();
614
+ },
615
+ get processRegistry() {
616
+ return processRegistry();
617
+ },
618
+ get runnerRegistry() {
619
+ return runnerRegistry();
620
+ },
621
+ get namer() {
622
+ return namer();
623
+ },
624
+ get logFile() {
625
+ return logFile();
626
+ },
627
+ get logReader() {
628
+ return logReader();
629
+ },
630
+ get launcher() {
631
+ return launcher();
632
+ },
633
+ get rmuxBackend() {
634
+ return rmuxBackend();
635
+ },
636
+ get rtkProcessor() {
637
+ return rtkProcessor();
638
+ },
639
+ get ptyHost() {
640
+ return ptyHost();
641
+ },
642
+ get bashRunService() {
643
+ return bashRunService();
644
+ }
645
+ };
646
+ }
647
+ //#endregion
648
+ Object.defineProperty(exports, "PtyBackendChain", {
649
+ enumerable: true,
650
+ get: function() {
651
+ return PtyBackendChain;
652
+ }
653
+ });
654
+ Object.defineProperty(exports, "TmuxBackend", {
655
+ enumerable: true,
656
+ get: function() {
657
+ return TmuxBackend;
658
+ }
659
+ });
660
+ Object.defineProperty(exports, "createRunnerDependencies", {
661
+ enumerable: true,
662
+ get: function() {
663
+ return createRunnerDependencies;
664
+ }
665
+ });
666
+
667
+ //# sourceMappingURL=runnerDependencies-KMZigIxB.cjs.map