@agimon-ai/doompi-runner 0.0.1-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 (417) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.cjs +1 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.mjs +1 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.cjs +1 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.mjs +1 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateParam.cjs +1 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateParam.mjs +1 -0
  9. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  10. package/dist/bin/cli.cjs +5 -0
  11. package/dist/bin/cli.cjs.map +1 -0
  12. package/dist/bin/cli.d.cts +5 -0
  13. package/dist/bin/cli.d.cts.map +1 -0
  14. package/dist/bin/cli.d.mts +5 -0
  15. package/dist/bin/cli.d.mts.map +1 -0
  16. package/dist/bin/cli.mjs +5 -0
  17. package/dist/bin/cli.mjs.map +1 -0
  18. package/dist/bin/logSink.cjs +2 -0
  19. package/dist/bin/logSink.cjs.map +1 -0
  20. package/dist/bin/logSink.d.cts +5 -0
  21. package/dist/bin/logSink.d.cts.map +1 -0
  22. package/dist/bin/logSink.d.mts +5 -0
  23. package/dist/bin/logSink.d.mts.map +1 -0
  24. package/dist/bin/logSink.mjs +2 -0
  25. package/dist/bin/logSink.mjs.map +1 -0
  26. package/dist/bin/runnerHost.cjs +2 -0
  27. package/dist/bin/runnerHost.cjs.map +1 -0
  28. package/dist/bin/runnerHost.d.cts +5 -0
  29. package/dist/bin/runnerHost.d.cts.map +1 -0
  30. package/dist/bin/runnerHost.d.mts +5 -0
  31. package/dist/bin/runnerHost.d.mts.map +1 -0
  32. package/dist/bin/runnerHost.mjs +2 -0
  33. package/dist/bin/runnerHost.mjs.map +1 -0
  34. package/dist/cli/cliApp.cjs +6 -0
  35. package/dist/cli/cliApp.cjs.map +1 -0
  36. package/dist/cli/cliApp.d.cts +23 -0
  37. package/dist/cli/cliApp.d.cts.map +1 -0
  38. package/dist/cli/cliApp.d.mts +23 -0
  39. package/dist/cli/cliApp.d.mts.map +1 -0
  40. package/dist/cli/cliApp.mjs +6 -0
  41. package/dist/cli/cliApp.mjs.map +1 -0
  42. package/dist/compaction.cjs +4 -0
  43. package/dist/compaction.cjs.map +1 -0
  44. package/dist/compaction.d.cts +14 -0
  45. package/dist/compaction.d.cts.map +1 -0
  46. package/dist/compaction.d.mts +14 -0
  47. package/dist/compaction.d.mts.map +1 -0
  48. package/dist/compaction.mjs +4 -0
  49. package/dist/compaction.mjs.map +1 -0
  50. package/dist/config.cjs +2 -0
  51. package/dist/config.cjs.map +1 -0
  52. package/dist/config.d.cts +32 -0
  53. package/dist/config.d.cts.map +1 -0
  54. package/dist/config.d.mts +32 -0
  55. package/dist/config.d.mts.map +1 -0
  56. package/dist/config.mjs +2 -0
  57. package/dist/config.mjs.map +1 -0
  58. package/dist/container/index.cjs +2 -0
  59. package/dist/container/index.cjs.map +1 -0
  60. package/dist/container/index.d.cts +14 -0
  61. package/dist/container/index.d.cts.map +1 -0
  62. package/dist/container/index.d.mts +14 -0
  63. package/dist/container/index.d.mts.map +1 -0
  64. package/dist/container/index.mjs +2 -0
  65. package/dist/container/index.mjs.map +1 -0
  66. package/dist/extension.cjs +3 -0
  67. package/dist/extension.cjs.map +1 -0
  68. package/dist/extension.d.cts +10 -0
  69. package/dist/extension.d.cts.map +1 -0
  70. package/dist/extension.d.mts +10 -0
  71. package/dist/extension.d.mts.map +1 -0
  72. package/dist/extension.mjs +3 -0
  73. package/dist/extension.mjs.map +1 -0
  74. package/dist/extensions/pi.cjs +2 -0
  75. package/dist/extensions/pi.cjs.map +1 -0
  76. package/dist/extensions/pi.d.cts +2 -0
  77. package/dist/extensions/pi.d.mts +2 -0
  78. package/dist/extensions/pi.mjs +2 -0
  79. package/dist/extensions/pi.mjs.map +1 -0
  80. package/dist/index.cjs +1 -0
  81. package/dist/index.d.cts +7 -0
  82. package/dist/index.d.mts +7 -0
  83. package/dist/index.mjs +1 -0
  84. package/dist/ptyProvider.cjs +2 -0
  85. package/dist/ptyProvider.cjs.map +1 -0
  86. package/dist/ptyProvider.d.cts +13 -0
  87. package/dist/ptyProvider.d.cts.map +1 -0
  88. package/dist/ptyProvider.d.mts +13 -0
  89. package/dist/ptyProvider.d.mts.map +1 -0
  90. package/dist/ptyProvider.mjs +2 -0
  91. package/dist/ptyProvider.mjs.map +1 -0
  92. package/dist/reconcile.cjs +2 -0
  93. package/dist/reconcile.cjs.map +1 -0
  94. package/dist/reconcile.d.cts +37 -0
  95. package/dist/reconcile.d.cts.map +1 -0
  96. package/dist/reconcile.d.mts +37 -0
  97. package/dist/reconcile.d.mts.map +1 -0
  98. package/dist/reconcile.mjs +2 -0
  99. package/dist/reconcile.mjs.map +1 -0
  100. package/dist/runnerSpec.cjs +2 -0
  101. package/dist/runnerSpec.cjs.map +1 -0
  102. package/dist/runnerSpec.d.cts +50 -0
  103. package/dist/runnerSpec.d.cts.map +1 -0
  104. package/dist/runnerSpec.d.mts +50 -0
  105. package/dist/runnerSpec.d.mts.map +1 -0
  106. package/dist/runnerSpec.mjs +2 -0
  107. package/dist/runnerSpec.mjs.map +1 -0
  108. package/dist/services/AnsiScrub/ansiScrub.cjs +5 -0
  109. package/dist/services/AnsiScrub/ansiScrub.cjs.map +1 -0
  110. package/dist/services/AnsiScrub/ansiScrub.d.cts +34 -0
  111. package/dist/services/AnsiScrub/ansiScrub.d.cts.map +1 -0
  112. package/dist/services/AnsiScrub/ansiScrub.d.mts +34 -0
  113. package/dist/services/AnsiScrub/ansiScrub.d.mts.map +1 -0
  114. package/dist/services/AnsiScrub/ansiScrub.mjs +5 -0
  115. package/dist/services/AnsiScrub/ansiScrub.mjs.map +1 -0
  116. package/dist/services/AnsiScrub/index.cjs +1 -0
  117. package/dist/services/AnsiScrub/index.d.cts +2 -0
  118. package/dist/services/AnsiScrub/index.d.mts +2 -0
  119. package/dist/services/AnsiScrub/index.mjs +1 -0
  120. package/dist/services/BashRunService/BashRunService.cjs +2 -0
  121. package/dist/services/BashRunService/BashRunService.cjs.map +1 -0
  122. package/dist/services/BashRunService/BashRunService.d.cts +38 -0
  123. package/dist/services/BashRunService/BashRunService.d.cts.map +1 -0
  124. package/dist/services/BashRunService/BashRunService.d.mts +38 -0
  125. package/dist/services/BashRunService/BashRunService.d.mts.map +1 -0
  126. package/dist/services/BashRunService/BashRunService.mjs +2 -0
  127. package/dist/services/BashRunService/BashRunService.mjs.map +1 -0
  128. package/dist/services/BashRunService/index.cjs +1 -0
  129. package/dist/services/BashRunService/index.d.cts +3 -0
  130. package/dist/services/BashRunService/index.d.mts +3 -0
  131. package/dist/services/BashRunService/index.mjs +1 -0
  132. package/dist/services/BashRunService/types.d.cts +62 -0
  133. package/dist/services/BashRunService/types.d.cts.map +1 -0
  134. package/dist/services/BashRunService/types.d.mts +62 -0
  135. package/dist/services/BashRunService/types.d.mts.map +1 -0
  136. package/dist/services/Clock/SystemClock.cjs +2 -0
  137. package/dist/services/Clock/SystemClock.cjs.map +1 -0
  138. package/dist/services/Clock/SystemClock.d.cts +11 -0
  139. package/dist/services/Clock/SystemClock.d.cts.map +1 -0
  140. package/dist/services/Clock/SystemClock.d.mts +11 -0
  141. package/dist/services/Clock/SystemClock.d.mts.map +1 -0
  142. package/dist/services/Clock/SystemClock.mjs +2 -0
  143. package/dist/services/Clock/SystemClock.mjs.map +1 -0
  144. package/dist/services/Clock/index.cjs +1 -0
  145. package/dist/services/Clock/index.d.cts +3 -0
  146. package/dist/services/Clock/index.d.mts +3 -0
  147. package/dist/services/Clock/index.mjs +1 -0
  148. package/dist/services/Clock/types.d.cts +11 -0
  149. package/dist/services/Clock/types.d.cts.map +1 -0
  150. package/dist/services/Clock/types.d.mts +11 -0
  151. package/dist/services/Clock/types.d.mts.map +1 -0
  152. package/dist/services/Launcher/Launcher.cjs +2 -0
  153. package/dist/services/Launcher/Launcher.cjs.map +1 -0
  154. package/dist/services/Launcher/Launcher.d.cts +27 -0
  155. package/dist/services/Launcher/Launcher.d.cts.map +1 -0
  156. package/dist/services/Launcher/Launcher.d.mts +27 -0
  157. package/dist/services/Launcher/Launcher.d.mts.map +1 -0
  158. package/dist/services/Launcher/Launcher.mjs +2 -0
  159. package/dist/services/Launcher/Launcher.mjs.map +1 -0
  160. package/dist/services/Launcher/index.cjs +1 -0
  161. package/dist/services/Launcher/index.d.cts +3 -0
  162. package/dist/services/Launcher/index.d.mts +3 -0
  163. package/dist/services/Launcher/index.mjs +1 -0
  164. package/dist/services/Launcher/types.d.cts +40 -0
  165. package/dist/services/Launcher/types.d.cts.map +1 -0
  166. package/dist/services/Launcher/types.d.mts +40 -0
  167. package/dist/services/Launcher/types.d.mts.map +1 -0
  168. package/dist/services/Lifeline/NodeLifeline.cjs +2 -0
  169. package/dist/services/Lifeline/NodeLifeline.cjs.map +1 -0
  170. package/dist/services/Lifeline/NodeLifeline.d.cts +21 -0
  171. package/dist/services/Lifeline/NodeLifeline.d.cts.map +1 -0
  172. package/dist/services/Lifeline/NodeLifeline.d.mts +21 -0
  173. package/dist/services/Lifeline/NodeLifeline.d.mts.map +1 -0
  174. package/dist/services/Lifeline/NodeLifeline.mjs +2 -0
  175. package/dist/services/Lifeline/NodeLifeline.mjs.map +1 -0
  176. package/dist/services/Lifeline/client.cjs +2 -0
  177. package/dist/services/Lifeline/client.cjs.map +1 -0
  178. package/dist/services/Lifeline/client.d.cts +23 -0
  179. package/dist/services/Lifeline/client.d.cts.map +1 -0
  180. package/dist/services/Lifeline/client.d.mts +23 -0
  181. package/dist/services/Lifeline/client.d.mts.map +1 -0
  182. package/dist/services/Lifeline/client.mjs +2 -0
  183. package/dist/services/Lifeline/client.mjs.map +1 -0
  184. package/dist/services/Lifeline/index.cjs +1 -0
  185. package/dist/services/Lifeline/index.d.cts +4 -0
  186. package/dist/services/Lifeline/index.d.mts +4 -0
  187. package/dist/services/Lifeline/index.mjs +1 -0
  188. package/dist/services/Lifeline/types.d.cts +19 -0
  189. package/dist/services/Lifeline/types.d.cts.map +1 -0
  190. package/dist/services/Lifeline/types.d.mts +19 -0
  191. package/dist/services/Lifeline/types.d.mts.map +1 -0
  192. package/dist/services/LogFile/LogFile.cjs +2 -0
  193. package/dist/services/LogFile/LogFile.cjs.map +1 -0
  194. package/dist/services/LogFile/LogFile.d.cts +13 -0
  195. package/dist/services/LogFile/LogFile.d.cts.map +1 -0
  196. package/dist/services/LogFile/LogFile.d.mts +13 -0
  197. package/dist/services/LogFile/LogFile.d.mts.map +1 -0
  198. package/dist/services/LogFile/LogFile.mjs +2 -0
  199. package/dist/services/LogFile/LogFile.mjs.map +1 -0
  200. package/dist/services/LogFile/index.cjs +1 -0
  201. package/dist/services/LogFile/index.d.cts +3 -0
  202. package/dist/services/LogFile/index.d.mts +3 -0
  203. package/dist/services/LogFile/index.mjs +1 -0
  204. package/dist/services/LogFile/types.d.cts +16 -0
  205. package/dist/services/LogFile/types.d.cts.map +1 -0
  206. package/dist/services/LogFile/types.d.mts +16 -0
  207. package/dist/services/LogFile/types.d.mts.map +1 -0
  208. package/dist/services/LogReader/LogReader.cjs +10 -0
  209. package/dist/services/LogReader/LogReader.cjs.map +1 -0
  210. package/dist/services/LogReader/LogReader.d.cts +14 -0
  211. package/dist/services/LogReader/LogReader.d.cts.map +1 -0
  212. package/dist/services/LogReader/LogReader.d.mts +14 -0
  213. package/dist/services/LogReader/LogReader.d.mts.map +1 -0
  214. package/dist/services/LogReader/LogReader.mjs +10 -0
  215. package/dist/services/LogReader/LogReader.mjs.map +1 -0
  216. package/dist/services/LogReader/index.cjs +1 -0
  217. package/dist/services/LogReader/index.d.cts +3 -0
  218. package/dist/services/LogReader/index.d.mts +3 -0
  219. package/dist/services/LogReader/index.mjs +1 -0
  220. package/dist/services/LogReader/types.d.cts +27 -0
  221. package/dist/services/LogReader/types.d.cts.map +1 -0
  222. package/dist/services/LogReader/types.d.mts +27 -0
  223. package/dist/services/LogReader/types.d.mts.map +1 -0
  224. package/dist/services/ProcessControl/NodeProcessControl.cjs +2 -0
  225. package/dist/services/ProcessControl/NodeProcessControl.cjs.map +1 -0
  226. package/dist/services/ProcessControl/NodeProcessControl.d.cts +11 -0
  227. package/dist/services/ProcessControl/NodeProcessControl.d.cts.map +1 -0
  228. package/dist/services/ProcessControl/NodeProcessControl.d.mts +11 -0
  229. package/dist/services/ProcessControl/NodeProcessControl.d.mts.map +1 -0
  230. package/dist/services/ProcessControl/NodeProcessControl.mjs +2 -0
  231. package/dist/services/ProcessControl/NodeProcessControl.mjs.map +1 -0
  232. package/dist/services/ProcessControl/index.cjs +1 -0
  233. package/dist/services/ProcessControl/index.d.cts +3 -0
  234. package/dist/services/ProcessControl/index.d.mts +3 -0
  235. package/dist/services/ProcessControl/index.mjs +1 -0
  236. package/dist/services/ProcessControl/types.d.cts +14 -0
  237. package/dist/services/ProcessControl/types.d.cts.map +1 -0
  238. package/dist/services/ProcessControl/types.d.mts +14 -0
  239. package/dist/services/ProcessControl/types.d.mts.map +1 -0
  240. package/dist/services/PtyHost/PtyHost.cjs +5 -0
  241. package/dist/services/PtyHost/PtyHost.cjs.map +1 -0
  242. package/dist/services/PtyHost/PtyHost.d.cts +28 -0
  243. package/dist/services/PtyHost/PtyHost.d.cts.map +1 -0
  244. package/dist/services/PtyHost/PtyHost.d.mts +28 -0
  245. package/dist/services/PtyHost/PtyHost.d.mts.map +1 -0
  246. package/dist/services/PtyHost/PtyHost.mjs +5 -0
  247. package/dist/services/PtyHost/PtyHost.mjs.map +1 -0
  248. package/dist/services/PtyHost/index.cjs +1 -0
  249. package/dist/services/PtyHost/index.d.cts +3 -0
  250. package/dist/services/PtyHost/index.d.mts +3 -0
  251. package/dist/services/PtyHost/index.mjs +1 -0
  252. package/dist/services/PtyHost/types.d.cts +39 -0
  253. package/dist/services/PtyHost/types.d.cts.map +1 -0
  254. package/dist/services/PtyHost/types.d.mts +39 -0
  255. package/dist/services/PtyHost/types.d.mts.map +1 -0
  256. package/dist/services/PtySpawner/NodePtySpawner.cjs +2 -0
  257. package/dist/services/PtySpawner/NodePtySpawner.cjs.map +1 -0
  258. package/dist/services/PtySpawner/NodePtySpawner.d.cts +18 -0
  259. package/dist/services/PtySpawner/NodePtySpawner.d.cts.map +1 -0
  260. package/dist/services/PtySpawner/NodePtySpawner.d.mts +18 -0
  261. package/dist/services/PtySpawner/NodePtySpawner.d.mts.map +1 -0
  262. package/dist/services/PtySpawner/NodePtySpawner.mjs +2 -0
  263. package/dist/services/PtySpawner/NodePtySpawner.mjs.map +1 -0
  264. package/dist/services/PtySpawner/index.cjs +1 -0
  265. package/dist/services/PtySpawner/index.d.cts +3 -0
  266. package/dist/services/PtySpawner/index.d.mts +3 -0
  267. package/dist/services/PtySpawner/index.mjs +1 -0
  268. package/dist/services/PtySpawner/types.d.cts +28 -0
  269. package/dist/services/PtySpawner/types.d.cts.map +1 -0
  270. package/dist/services/PtySpawner/types.d.mts +28 -0
  271. package/dist/services/PtySpawner/types.d.mts.map +1 -0
  272. package/dist/services/RmuxBackend/RmuxBackend.cjs +2 -0
  273. package/dist/services/RmuxBackend/RmuxBackend.cjs.map +1 -0
  274. package/dist/services/RmuxBackend/RmuxBackend.d.cts +36 -0
  275. package/dist/services/RmuxBackend/RmuxBackend.d.cts.map +1 -0
  276. package/dist/services/RmuxBackend/RmuxBackend.d.mts +36 -0
  277. package/dist/services/RmuxBackend/RmuxBackend.d.mts.map +1 -0
  278. package/dist/services/RmuxBackend/RmuxBackend.mjs +2 -0
  279. package/dist/services/RmuxBackend/RmuxBackend.mjs.map +1 -0
  280. package/dist/services/RmuxBackend/index.cjs +1 -0
  281. package/dist/services/RmuxBackend/index.d.cts +3 -0
  282. package/dist/services/RmuxBackend/index.d.mts +3 -0
  283. package/dist/services/RmuxBackend/index.mjs +1 -0
  284. package/dist/services/RmuxBackend/types.d.cts +29 -0
  285. package/dist/services/RmuxBackend/types.d.cts.map +1 -0
  286. package/dist/services/RmuxBackend/types.d.mts +29 -0
  287. package/dist/services/RmuxBackend/types.d.mts.map +1 -0
  288. package/dist/services/RunnerNamer/RunnerNamer.cjs +2 -0
  289. package/dist/services/RunnerNamer/RunnerNamer.cjs.map +1 -0
  290. package/dist/services/RunnerNamer/RunnerNamer.d.cts +13 -0
  291. package/dist/services/RunnerNamer/RunnerNamer.d.cts.map +1 -0
  292. package/dist/services/RunnerNamer/RunnerNamer.d.mts +13 -0
  293. package/dist/services/RunnerNamer/RunnerNamer.d.mts.map +1 -0
  294. package/dist/services/RunnerNamer/RunnerNamer.mjs +2 -0
  295. package/dist/services/RunnerNamer/RunnerNamer.mjs.map +1 -0
  296. package/dist/services/RunnerNamer/index.cjs +1 -0
  297. package/dist/services/RunnerNamer/index.d.cts +3 -0
  298. package/dist/services/RunnerNamer/index.d.mts +3 -0
  299. package/dist/services/RunnerNamer/index.mjs +1 -0
  300. package/dist/services/RunnerNamer/types.d.cts +12 -0
  301. package/dist/services/RunnerNamer/types.d.cts.map +1 -0
  302. package/dist/services/RunnerNamer/types.d.mts +12 -0
  303. package/dist/services/RunnerNamer/types.d.mts.map +1 -0
  304. package/dist/services/RunnerPaths/RunnerPaths.cjs +2 -0
  305. package/dist/services/RunnerPaths/RunnerPaths.cjs.map +1 -0
  306. package/dist/services/RunnerPaths/RunnerPaths.d.cts +31 -0
  307. package/dist/services/RunnerPaths/RunnerPaths.d.cts.map +1 -0
  308. package/dist/services/RunnerPaths/RunnerPaths.d.mts +31 -0
  309. package/dist/services/RunnerPaths/RunnerPaths.d.mts.map +1 -0
  310. package/dist/services/RunnerPaths/RunnerPaths.mjs +2 -0
  311. package/dist/services/RunnerPaths/RunnerPaths.mjs.map +1 -0
  312. package/dist/services/RunnerPaths/index.cjs +1 -0
  313. package/dist/services/RunnerPaths/index.d.cts +3 -0
  314. package/dist/services/RunnerPaths/index.d.mts +3 -0
  315. package/dist/services/RunnerPaths/index.mjs +1 -0
  316. package/dist/services/RunnerPaths/types.d.cts +33 -0
  317. package/dist/services/RunnerPaths/types.d.cts.map +1 -0
  318. package/dist/services/RunnerPaths/types.d.mts +33 -0
  319. package/dist/services/RunnerPaths/types.d.mts.map +1 -0
  320. package/dist/services/RunnerRegistry/RunnerRegistry.cjs +2 -0
  321. package/dist/services/RunnerRegistry/RunnerRegistry.cjs.map +1 -0
  322. package/dist/services/RunnerRegistry/RunnerRegistry.d.cts +40 -0
  323. package/dist/services/RunnerRegistry/RunnerRegistry.d.cts.map +1 -0
  324. package/dist/services/RunnerRegistry/RunnerRegistry.d.mts +40 -0
  325. package/dist/services/RunnerRegistry/RunnerRegistry.d.mts.map +1 -0
  326. package/dist/services/RunnerRegistry/RunnerRegistry.mjs +2 -0
  327. package/dist/services/RunnerRegistry/RunnerRegistry.mjs.map +1 -0
  328. package/dist/services/RunnerRegistry/index.cjs +1 -0
  329. package/dist/services/RunnerRegistry/index.d.cts +3 -0
  330. package/dist/services/RunnerRegistry/index.d.mts +3 -0
  331. package/dist/services/RunnerRegistry/index.mjs +1 -0
  332. package/dist/services/RunnerRegistry/types.d.cts +98 -0
  333. package/dist/services/RunnerRegistry/types.d.cts.map +1 -0
  334. package/dist/services/RunnerRegistry/types.d.mts +98 -0
  335. package/dist/services/RunnerRegistry/types.d.mts.map +1 -0
  336. package/dist/services/Spawner/NodeSpawner.cjs +2 -0
  337. package/dist/services/Spawner/NodeSpawner.cjs.map +1 -0
  338. package/dist/services/Spawner/NodeSpawner.d.cts +10 -0
  339. package/dist/services/Spawner/NodeSpawner.d.cts.map +1 -0
  340. package/dist/services/Spawner/NodeSpawner.d.mts +10 -0
  341. package/dist/services/Spawner/NodeSpawner.d.mts.map +1 -0
  342. package/dist/services/Spawner/NodeSpawner.mjs +2 -0
  343. package/dist/services/Spawner/NodeSpawner.mjs.map +1 -0
  344. package/dist/services/Spawner/index.cjs +1 -0
  345. package/dist/services/Spawner/index.d.cts +3 -0
  346. package/dist/services/Spawner/index.d.mts +3 -0
  347. package/dist/services/Spawner/index.mjs +1 -0
  348. package/dist/services/Spawner/types.d.cts +31 -0
  349. package/dist/services/Spawner/types.d.cts.map +1 -0
  350. package/dist/services/Spawner/types.d.mts +31 -0
  351. package/dist/services/Spawner/types.d.mts.map +1 -0
  352. package/dist/session.cjs +2 -0
  353. package/dist/session.cjs.map +1 -0
  354. package/dist/session.d.cts +10 -0
  355. package/dist/session.d.cts.map +1 -0
  356. package/dist/session.d.mts +10 -0
  357. package/dist/session.d.mts.map +1 -0
  358. package/dist/session.mjs +2 -0
  359. package/dist/session.mjs.map +1 -0
  360. package/dist/tool/bashTool.cjs +7 -0
  361. package/dist/tool/bashTool.cjs.map +1 -0
  362. package/dist/tool/bashTool.d.cts +25 -0
  363. package/dist/tool/bashTool.d.cts.map +1 -0
  364. package/dist/tool/bashTool.d.mts +25 -0
  365. package/dist/tool/bashTool.d.mts.map +1 -0
  366. package/dist/tool/bashTool.mjs +7 -0
  367. package/dist/tool/bashTool.mjs.map +1 -0
  368. package/dist/tool/responseEnvelope.cjs +10 -0
  369. package/dist/tool/responseEnvelope.cjs.map +1 -0
  370. package/dist/tool/responseEnvelope.d.cts +45 -0
  371. package/dist/tool/responseEnvelope.d.cts.map +1 -0
  372. package/dist/tool/responseEnvelope.d.mts +45 -0
  373. package/dist/tool/responseEnvelope.d.mts.map +1 -0
  374. package/dist/tool/responseEnvelope.mjs +10 -0
  375. package/dist/tool/responseEnvelope.mjs.map +1 -0
  376. package/dist/tool/schema.cjs +2 -0
  377. package/dist/tool/schema.cjs.map +1 -0
  378. package/dist/tool/schema.d.cts +25 -0
  379. package/dist/tool/schema.d.cts.map +1 -0
  380. package/dist/tool/schema.d.mts +25 -0
  381. package/dist/tool/schema.d.mts.map +1 -0
  382. package/dist/tool/schema.mjs +2 -0
  383. package/dist/tool/schema.mjs.map +1 -0
  384. package/dist/tui/bashRender.cjs +8 -0
  385. package/dist/tui/bashRender.cjs.map +1 -0
  386. package/dist/tui/bashRender.d.cts +51 -0
  387. package/dist/tui/bashRender.d.cts.map +1 -0
  388. package/dist/tui/bashRender.d.mts +51 -0
  389. package/dist/tui/bashRender.d.mts.map +1 -0
  390. package/dist/tui/bashRender.mjs +8 -0
  391. package/dist/tui/bashRender.mjs.map +1 -0
  392. package/dist/tui/format.cjs +2 -0
  393. package/dist/tui/format.cjs.map +1 -0
  394. package/dist/tui/format.d.cts +25 -0
  395. package/dist/tui/format.d.cts.map +1 -0
  396. package/dist/tui/format.d.mts +25 -0
  397. package/dist/tui/format.d.mts.map +1 -0
  398. package/dist/tui/format.mjs +2 -0
  399. package/dist/tui/format.mjs.map +1 -0
  400. package/dist/tui/runnerSpace.cjs +6 -0
  401. package/dist/tui/runnerSpace.cjs.map +1 -0
  402. package/dist/tui/runnerSpace.d.cts +52 -0
  403. package/dist/tui/runnerSpace.d.cts.map +1 -0
  404. package/dist/tui/runnerSpace.d.mts +52 -0
  405. package/dist/tui/runnerSpace.d.mts.map +1 -0
  406. package/dist/tui/runnerSpace.mjs +6 -0
  407. package/dist/tui/runnerSpace.mjs.map +1 -0
  408. package/dist/types.cjs +2 -0
  409. package/dist/types.cjs.map +1 -0
  410. package/dist/types.d.cts +28 -0
  411. package/dist/types.d.cts.map +1 -0
  412. package/dist/types.d.mts +28 -0
  413. package/dist/types.d.mts.map +1 -0
  414. package/dist/types.mjs +2 -0
  415. package/dist/types.mjs.map +1 -0
  416. package/package.json +335 -0
  417. package/skills/doom-runner/SKILL.md +69 -0
package/package.json ADDED
@@ -0,0 +1,335 @@
1
+ {
2
+ "name": "@agimon-ai/doompi-runner",
3
+ "version": "0.0.1-alpha.0",
4
+ "description": "Pi bash tool replacement with background process supervision",
5
+ "homepage": "https://agimon.ai",
6
+ "license": "MIT",
7
+ "author": "Vuong Ngo",
8
+ "bin": {
9
+ "doom-runner": "./dist/bin/cli.mjs"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "skills"
14
+ ],
15
+ "type": "module",
16
+ "main": "./dist/index.cjs",
17
+ "types": "./dist/index.d.mts",
18
+ "jsnext:main": "./dist/index.mjs",
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.mts",
22
+ "import": "./dist/index.mjs",
23
+ "require": "./dist/index.cjs"
24
+ },
25
+ "./bin/cli": {
26
+ "types": "./dist/bin/cli.d.mts",
27
+ "import": "./dist/bin/cli.mjs",
28
+ "require": "./dist/bin/cli.cjs"
29
+ },
30
+ "./bin/logSink": {
31
+ "types": "./dist/bin/logSink.d.mts",
32
+ "import": "./dist/bin/logSink.mjs",
33
+ "require": "./dist/bin/logSink.cjs"
34
+ },
35
+ "./bin/runnerHost": {
36
+ "types": "./dist/bin/runnerHost.d.mts",
37
+ "import": "./dist/bin/runnerHost.mjs",
38
+ "require": "./dist/bin/runnerHost.cjs"
39
+ },
40
+ "./cli/cliApp": {
41
+ "types": "./dist/cli/cliApp.d.mts",
42
+ "import": "./dist/cli/cliApp.mjs",
43
+ "require": "./dist/cli/cliApp.cjs"
44
+ },
45
+ "./compaction": {
46
+ "types": "./dist/compaction.d.mts",
47
+ "import": "./dist/compaction.mjs",
48
+ "require": "./dist/compaction.cjs"
49
+ },
50
+ "./config": {
51
+ "types": "./dist/config.d.mts",
52
+ "import": "./dist/config.mjs",
53
+ "require": "./dist/config.cjs"
54
+ },
55
+ "./container": {
56
+ "types": "./dist/container/index.d.mts",
57
+ "import": "./dist/container/index.mjs",
58
+ "require": "./dist/container/index.cjs"
59
+ },
60
+ "./extension": {
61
+ "types": "./dist/extension.d.mts",
62
+ "import": "./dist/extension.mjs",
63
+ "require": "./dist/extension.cjs"
64
+ },
65
+ "./extensions/pi": {
66
+ "types": "./dist/extensions/pi.d.mts",
67
+ "import": "./dist/extensions/pi.mjs",
68
+ "require": "./dist/extensions/pi.cjs"
69
+ },
70
+ "./ptyProvider": {
71
+ "types": "./dist/ptyProvider.d.mts",
72
+ "import": "./dist/ptyProvider.mjs",
73
+ "require": "./dist/ptyProvider.cjs"
74
+ },
75
+ "./reconcile": {
76
+ "types": "./dist/reconcile.d.mts",
77
+ "import": "./dist/reconcile.mjs",
78
+ "require": "./dist/reconcile.cjs"
79
+ },
80
+ "./services/AnsiScrub": {
81
+ "types": "./dist/services/AnsiScrub/index.d.mts",
82
+ "import": "./dist/services/AnsiScrub/index.mjs",
83
+ "require": "./dist/services/AnsiScrub/index.cjs"
84
+ },
85
+ "./services/AnsiScrub/ansiScrub": {
86
+ "types": "./dist/services/AnsiScrub/ansiScrub.d.mts",
87
+ "import": "./dist/services/AnsiScrub/ansiScrub.mjs",
88
+ "require": "./dist/services/AnsiScrub/ansiScrub.cjs"
89
+ },
90
+ "./services/BashRunService": {
91
+ "types": "./dist/services/BashRunService/index.d.mts",
92
+ "import": "./dist/services/BashRunService/index.mjs",
93
+ "require": "./dist/services/BashRunService/index.cjs"
94
+ },
95
+ "./services/BashRunService/BashRunService": {
96
+ "types": "./dist/services/BashRunService/BashRunService.d.mts",
97
+ "import": "./dist/services/BashRunService/BashRunService.mjs",
98
+ "require": "./dist/services/BashRunService/BashRunService.cjs"
99
+ },
100
+ "./services/Clock": {
101
+ "types": "./dist/services/Clock/index.d.mts",
102
+ "import": "./dist/services/Clock/index.mjs",
103
+ "require": "./dist/services/Clock/index.cjs"
104
+ },
105
+ "./services/Clock/SystemClock": {
106
+ "types": "./dist/services/Clock/SystemClock.d.mts",
107
+ "import": "./dist/services/Clock/SystemClock.mjs",
108
+ "require": "./dist/services/Clock/SystemClock.cjs"
109
+ },
110
+ "./services/Launcher": {
111
+ "types": "./dist/services/Launcher/index.d.mts",
112
+ "import": "./dist/services/Launcher/index.mjs",
113
+ "require": "./dist/services/Launcher/index.cjs"
114
+ },
115
+ "./services/Launcher/Launcher": {
116
+ "types": "./dist/services/Launcher/Launcher.d.mts",
117
+ "import": "./dist/services/Launcher/Launcher.mjs",
118
+ "require": "./dist/services/Launcher/Launcher.cjs"
119
+ },
120
+ "./services/Lifeline": {
121
+ "types": "./dist/services/Lifeline/index.d.mts",
122
+ "import": "./dist/services/Lifeline/index.mjs",
123
+ "require": "./dist/services/Lifeline/index.cjs"
124
+ },
125
+ "./services/Lifeline/NodeLifeline": {
126
+ "types": "./dist/services/Lifeline/NodeLifeline.d.mts",
127
+ "import": "./dist/services/Lifeline/NodeLifeline.mjs",
128
+ "require": "./dist/services/Lifeline/NodeLifeline.cjs"
129
+ },
130
+ "./services/Lifeline/watchdog": {
131
+ "types": "./dist/services/Lifeline/client.d.mts",
132
+ "import": "./dist/services/Lifeline/client.mjs",
133
+ "require": "./dist/services/Lifeline/client.cjs"
134
+ },
135
+ "./services/LogFile": {
136
+ "types": "./dist/services/LogFile/index.d.mts",
137
+ "import": "./dist/services/LogFile/index.mjs",
138
+ "require": "./dist/services/LogFile/index.cjs"
139
+ },
140
+ "./services/LogFile/LogFile": {
141
+ "types": "./dist/services/LogFile/LogFile.d.mts",
142
+ "import": "./dist/services/LogFile/LogFile.mjs",
143
+ "require": "./dist/services/LogFile/LogFile.cjs"
144
+ },
145
+ "./services/LogReader": {
146
+ "types": "./dist/services/LogReader/index.d.mts",
147
+ "import": "./dist/services/LogReader/index.mjs",
148
+ "require": "./dist/services/LogReader/index.cjs"
149
+ },
150
+ "./services/LogReader/LogReader": {
151
+ "types": "./dist/services/LogReader/LogReader.d.mts",
152
+ "import": "./dist/services/LogReader/LogReader.mjs",
153
+ "require": "./dist/services/LogReader/LogReader.cjs"
154
+ },
155
+ "./services/ProcessControl": {
156
+ "types": "./dist/services/ProcessControl/index.d.mts",
157
+ "import": "./dist/services/ProcessControl/index.mjs",
158
+ "require": "./dist/services/ProcessControl/index.cjs"
159
+ },
160
+ "./services/ProcessControl/NodeProcessControl": {
161
+ "types": "./dist/services/ProcessControl/NodeProcessControl.d.mts",
162
+ "import": "./dist/services/ProcessControl/NodeProcessControl.mjs",
163
+ "require": "./dist/services/ProcessControl/NodeProcessControl.cjs"
164
+ },
165
+ "./services/PtyHost": {
166
+ "types": "./dist/services/PtyHost/index.d.mts",
167
+ "import": "./dist/services/PtyHost/index.mjs",
168
+ "require": "./dist/services/PtyHost/index.cjs"
169
+ },
170
+ "./services/PtyHost/PtyHost": {
171
+ "types": "./dist/services/PtyHost/PtyHost.d.mts",
172
+ "import": "./dist/services/PtyHost/PtyHost.mjs",
173
+ "require": "./dist/services/PtyHost/PtyHost.cjs"
174
+ },
175
+ "./services/PtySpawner": {
176
+ "types": "./dist/services/PtySpawner/index.d.mts",
177
+ "import": "./dist/services/PtySpawner/index.mjs",
178
+ "require": "./dist/services/PtySpawner/index.cjs"
179
+ },
180
+ "./services/PtySpawner/NodePtySpawner": {
181
+ "types": "./dist/services/PtySpawner/NodePtySpawner.d.mts",
182
+ "import": "./dist/services/PtySpawner/NodePtySpawner.mjs",
183
+ "require": "./dist/services/PtySpawner/NodePtySpawner.cjs"
184
+ },
185
+ "./services/RmuxBackend": {
186
+ "types": "./dist/services/RmuxBackend/index.d.mts",
187
+ "import": "./dist/services/RmuxBackend/index.mjs",
188
+ "require": "./dist/services/RmuxBackend/index.cjs"
189
+ },
190
+ "./services/RmuxBackend/RmuxBackend": {
191
+ "types": "./dist/services/RmuxBackend/RmuxBackend.d.mts",
192
+ "import": "./dist/services/RmuxBackend/RmuxBackend.mjs",
193
+ "require": "./dist/services/RmuxBackend/RmuxBackend.cjs"
194
+ },
195
+ "./services/RunnerNamer": {
196
+ "types": "./dist/services/RunnerNamer/index.d.mts",
197
+ "import": "./dist/services/RunnerNamer/index.mjs",
198
+ "require": "./dist/services/RunnerNamer/index.cjs"
199
+ },
200
+ "./services/RunnerNamer/RunnerNamer": {
201
+ "types": "./dist/services/RunnerNamer/RunnerNamer.d.mts",
202
+ "import": "./dist/services/RunnerNamer/RunnerNamer.mjs",
203
+ "require": "./dist/services/RunnerNamer/RunnerNamer.cjs"
204
+ },
205
+ "./services/RunnerPaths": {
206
+ "types": "./dist/services/RunnerPaths/index.d.mts",
207
+ "import": "./dist/services/RunnerPaths/index.mjs",
208
+ "require": "./dist/services/RunnerPaths/index.cjs"
209
+ },
210
+ "./services/RunnerPaths/RunnerPaths": {
211
+ "types": "./dist/services/RunnerPaths/RunnerPaths.d.mts",
212
+ "import": "./dist/services/RunnerPaths/RunnerPaths.mjs",
213
+ "require": "./dist/services/RunnerPaths/RunnerPaths.cjs"
214
+ },
215
+ "./services/RunnerRegistry": {
216
+ "types": "./dist/services/RunnerRegistry/index.d.mts",
217
+ "import": "./dist/services/RunnerRegistry/index.mjs",
218
+ "require": "./dist/services/RunnerRegistry/index.cjs"
219
+ },
220
+ "./services/RunnerRegistry/RunnerRegistry": {
221
+ "types": "./dist/services/RunnerRegistry/RunnerRegistry.d.mts",
222
+ "import": "./dist/services/RunnerRegistry/RunnerRegistry.mjs",
223
+ "require": "./dist/services/RunnerRegistry/RunnerRegistry.cjs"
224
+ },
225
+ "./services/Spawner": {
226
+ "types": "./dist/services/Spawner/index.d.mts",
227
+ "import": "./dist/services/Spawner/index.mjs",
228
+ "require": "./dist/services/Spawner/index.cjs"
229
+ },
230
+ "./services/Spawner/NodeSpawner": {
231
+ "types": "./dist/services/Spawner/NodeSpawner.d.mts",
232
+ "import": "./dist/services/Spawner/NodeSpawner.mjs",
233
+ "require": "./dist/services/Spawner/NodeSpawner.cjs"
234
+ },
235
+ "./session": {
236
+ "types": "./dist/session.d.mts",
237
+ "import": "./dist/session.mjs",
238
+ "require": "./dist/session.cjs"
239
+ },
240
+ "./tool/bashTool": {
241
+ "types": "./dist/tool/bashTool.d.mts",
242
+ "import": "./dist/tool/bashTool.mjs",
243
+ "require": "./dist/tool/bashTool.cjs"
244
+ },
245
+ "./tool/responseEnvelope": {
246
+ "types": "./dist/tool/responseEnvelope.d.mts",
247
+ "import": "./dist/tool/responseEnvelope.mjs",
248
+ "require": "./dist/tool/responseEnvelope.cjs"
249
+ },
250
+ "./tool/schema": {
251
+ "types": "./dist/tool/schema.d.mts",
252
+ "import": "./dist/tool/schema.mjs",
253
+ "require": "./dist/tool/schema.cjs"
254
+ },
255
+ "./tui/bashRender": {
256
+ "types": "./dist/tui/bashRender.d.mts",
257
+ "import": "./dist/tui/bashRender.mjs",
258
+ "require": "./dist/tui/bashRender.cjs"
259
+ },
260
+ "./tui/format": {
261
+ "types": "./dist/tui/format.d.mts",
262
+ "import": "./dist/tui/format.mjs",
263
+ "require": "./dist/tui/format.cjs"
264
+ },
265
+ "./tui/runnerSpace": {
266
+ "types": "./dist/tui/runnerSpace.d.mts",
267
+ "import": "./dist/tui/runnerSpace.mjs",
268
+ "require": "./dist/tui/runnerSpace.cjs"
269
+ },
270
+ "./types": {
271
+ "types": "./dist/types.d.mts",
272
+ "import": "./dist/types.mjs",
273
+ "require": "./dist/types.cjs"
274
+ },
275
+ "./package.json": "./package.json"
276
+ },
277
+ "publishConfig": {
278
+ "access": "public",
279
+ "registry": "https://registry.npmjs.org/"
280
+ },
281
+ "dependencies": {
282
+ "@rmux/sdk": "0.6.5",
283
+ "@xterm/headless": "6.0.0",
284
+ "inversify": "8.2.1",
285
+ "node-pty": "1.1.0",
286
+ "reflect-metadata": "0.2.2",
287
+ "typebox": "1.1.38",
288
+ "@agimon-ai/doompi-telemetry": "0.0.1-alpha.0",
289
+ "@agimon-ai/foundation-process-registry": "0.28.9",
290
+ "@agimon-ai/doompi-extension-contracts": "0.0.1-alpha.0",
291
+ "@agimon-ai/doompi-ui": "0.0.1-alpha.0"
292
+ },
293
+ "devDependencies": {
294
+ "@earendil-works/pi-coding-agent": "0.84.1",
295
+ "@earendil-works/pi-tui": "0.84.1",
296
+ "@types/node": "26.1.1",
297
+ "@vitest/coverage-v8": "4.1.10",
298
+ "tsdown": "0.22.14",
299
+ "typescript": "6.0.3",
300
+ "vitest": "4.1.10"
301
+ },
302
+ "peerDependencies": {
303
+ "@earendil-works/pi-coding-agent": "0.84.1",
304
+ "@earendil-works/pi-tui": "0.84.1"
305
+ },
306
+ "peerDependenciesMeta": {
307
+ "@earendil-works/pi-coding-agent": {
308
+ "optional": true
309
+ },
310
+ "@earendil-works/pi-tui": {
311
+ "optional": true
312
+ }
313
+ },
314
+ "optionalDependencies": {
315
+ "@agimon-ai/doompi-runner-rmux-linux-arm64": "0.0.1-alpha.0",
316
+ "@agimon-ai/doompi-runner-rmux-darwin-arm64": "0.0.1-alpha.0",
317
+ "@agimon-ai/doompi-runner-rmux-linux-x64": "0.0.1-alpha.0",
318
+ "@agimon-ai/doompi-runner-rmux-darwin-x64": "0.0.1-alpha.0"
319
+ },
320
+ "engines": {
321
+ "node": ">=22.19.0"
322
+ },
323
+ "pi": {
324
+ "extensions": [
325
+ "./dist/extensions/pi.mjs"
326
+ ]
327
+ },
328
+ "scripts": {
329
+ "build": "tsdown",
330
+ "test": "vitest --run",
331
+ "typecheck": "tsc --noEmit",
332
+ "lint": "oxlint . && oxfmt . --check",
333
+ "fixcode": "oxlint . --fix && oxfmt ."
334
+ }
335
+ }
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: doom-runner
3
+ description: 'Manage long-running commands started by bash: dev servers, watchers, builds, tails, and anything that prompts for input. Trigger when a command needs to outlive the current turn, when bash output was truncated, or when a background process needs to be inspected, followed, given input, or stopped.'
4
+ ---
5
+
6
+ # doom-runner
7
+
8
+ `bash` supervises what it starts. A command that outlives the background
9
+ threshold keeps running instead of blocking the turn. Use the `doom-runner`
10
+ CLI to manage it without adding another model tool.
11
+
12
+ ## Backgrounding
13
+
14
+ - A command still running after 60 seconds (`DOOM_RUNNER_BG_THRESHOLD_MS`) is
15
+ moved to the background automatically. You get its unique ID and streaming
16
+ log path.
17
+ - Pass `background: true` for commands you already know will not finish: dev
18
+ servers, watchers, `tail -f`. Waiting out the threshold first wastes a turn.
19
+ - Pass `interactive: true` when the command will prompt for confirmation or
20
+ input. It runs under a terminal and backgrounds immediately. Answer it with
21
+ `doom-runner input <id> --text <text> --enter`, or use Runner Space.
22
+ - Pass `timeout` (seconds) when you want a command killed rather than
23
+ supervised. A timeout above the threshold has no effect: the command is
24
+ promoted first.
25
+ - Pass `name` to choose the runner name. A name already in use gets a numbered
26
+ suffix.
27
+
28
+ ## CLI
29
+
30
+ Run the CLI directly, without starting it through another supervised runner.
31
+ It inherits `PI_SESSION_ID` from the active Pi session and only accesses that
32
+ session's runners. A manual shell without `PI_SESSION_ID` fails closed.
33
+
34
+ Use the unique runner ID returned by `bash`:
35
+
36
+ | Command | Purpose |
37
+ | -------------------------------------------------- | ---------------------------------------------- |
38
+ | `doom-runner list [--all]` | List active runners, or include completed ones |
39
+ | `doom-runner status <id>` | Show command, state, backend, and log path |
40
+ | `doom-runner logs <id> [--lines N] [--follow]` | Read or stream the saved log |
41
+ | `doom-runner stop <id> [--reason <text>]` | Stop one runner and keep its log |
42
+ | `doom-runner stop-all [--reason <text>]` | Stop active runners owned by this Pi session |
43
+ | `doom-runner input <id> [--text <text>] [--enter]` | Send input to an interactive RMUX runner |
44
+
45
+ ## Rules
46
+
47
+ - **Read the log, do not re-run the command.** When output is truncated, the
48
+ full text is already on disk. Use `doom-runner logs <id>` or standard file
49
+ search tools against the reported path.
50
+ - **Read the truncation notice before reading the file.** It states the real
51
+ file size and line count, so you do not read past the end.
52
+ - **CLI access is session-scoped.** `list`, direct ID commands, and `stop-all`
53
+ only access runners owned by the inherited Pi session.
54
+ - **`input` needs `interactive: true`.** A normal runner does not expose stdin.
55
+ - **Stop what you no longer need.** Everything still running is stopped when
56
+ the session ends, but a forgotten dev server holds a port until then.
57
+ - **Do not poll.** Check a runner when you have a reason to, not on a loop.
58
+
59
+ ## Where things live
60
+
61
+ Run metadata and logs sit under
62
+ `$PI_CODING_AGENT_DIR/doom-runner/<session-id>/{runs,logs}`. Without an
63
+ override, `$PI_CODING_AGENT_DIR` defaults to `~/.pi/agent`. Completed metadata
64
+ and logs remain readable for seven days. Logs rotate once at 5MB.
65
+
66
+ RMUX is bundled for supported macOS and Linux platforms. doom-runner falls back
67
+ to a system RMUX, then to its native launcher if needed.
68
+
69
+ `SPC r r` opens Runner Space. Escape returns from logs or an attached terminal.