@agimon-ai/po-runner 0.0.0-alpha.2 → 0.0.0-alpha.21

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 (238) hide show
  1. package/LICENSE +149 -21
  2. package/README.md +17 -17
  3. package/dist/ansiScrub.mjs +1 -2
  4. package/dist/apiContracts.cjs +1 -1
  5. package/dist/apiContracts.cjs.map +1 -1
  6. package/dist/apiContracts.mjs +1 -1
  7. package/dist/apiContracts.mjs.map +1 -1
  8. package/dist/{bashResult-bIVSzoj-.mjs → bashResult-BqDa7sbC.mjs} +10 -9
  9. package/dist/bashResult-BqDa7sbC.mjs.map +1 -0
  10. package/dist/{bashResult-DNgtahGR.cjs → bashResult-C2iKhHpD.cjs} +10 -9
  11. package/dist/bashResult-C2iKhHpD.cjs.map +1 -0
  12. package/dist/{bashRunService-CJ02XaAq.mjs → bashRunService-Cl3pYccr.mjs} +2 -2
  13. package/dist/bashRunService-Cl3pYccr.mjs.map +1 -0
  14. package/dist/{bashRunService-DyqxOSlx.cjs → bashRunService-DjOH5kye.cjs} +2 -2
  15. package/dist/bashRunService-DjOH5kye.cjs.map +1 -0
  16. package/dist/bashRunService.cjs +1 -1
  17. package/dist/bashRunService.d.mts +3 -3
  18. package/dist/bashRunService.mjs +1 -2
  19. package/dist/bashSchema.cjs +1 -1
  20. package/dist/bashSchema.mjs +1 -2
  21. package/dist/{bashTool-C-k7fmyh.mjs → bashTool-BvC3YOgG.mjs} +2 -2
  22. package/dist/{bashTool-C-k7fmyh.mjs.map → bashTool-BvC3YOgG.mjs.map} +1 -1
  23. package/dist/{bashTool-CdgtqVFD.cjs → bashTool-euL6zMDl.cjs} +2 -2
  24. package/dist/{bashTool-CdgtqVFD.cjs.map → bashTool-euL6zMDl.cjs.map} +1 -1
  25. package/dist/bashTool.cjs +3 -3
  26. package/dist/bashTool.d.mts +1 -1
  27. package/dist/bashTool.mjs +3 -3
  28. package/dist/bin/cli.cjs +6 -6
  29. package/dist/bin/cli.cjs.map +1 -1
  30. package/dist/bin/cli.mjs +7 -7
  31. package/dist/bin/cli.mjs.map +1 -1
  32. package/dist/bin/logSink.cjs +6 -6
  33. package/dist/bin/logSink.cjs.map +1 -1
  34. package/dist/bin/logSink.mjs +7 -7
  35. package/dist/bin/logSink.mjs.map +1 -1
  36. package/dist/bin/runnerHost.cjs +4 -4
  37. package/dist/bin/runnerHost.cjs.map +1 -1
  38. package/dist/bin/runnerHost.mjs +5 -5
  39. package/dist/bin/runnerHost.mjs.map +1 -1
  40. package/dist/{cliApp-Dj9nwaOv.cjs → cliApp-T8Fx_-1j.cjs} +6 -6
  41. package/dist/cliApp-T8Fx_-1j.cjs.map +1 -0
  42. package/dist/{cliApp-v8Z3rMCi.mjs → cliApp-q97eVh4E.mjs} +6 -6
  43. package/dist/cliApp-q97eVh4E.mjs.map +1 -0
  44. package/dist/cliApp.cjs +1 -1
  45. package/dist/cliApp.d.mts +1 -1
  46. package/dist/cliApp.mjs +1 -2
  47. package/dist/clock.mjs +1 -2
  48. package/dist/{compaction-4QSUsBxq.cjs → compaction-Cduebib_.cjs} +3 -3
  49. package/dist/compaction-Cduebib_.cjs.map +1 -0
  50. package/dist/{compaction-DCw80VZj.mjs → compaction-nNlE6e5I.mjs} +3 -3
  51. package/dist/compaction-nNlE6e5I.mjs.map +1 -0
  52. package/dist/compaction.cjs +1 -1
  53. package/dist/compaction.d.mts +1 -1
  54. package/dist/compaction.mjs +1 -2
  55. package/dist/config.cjs +1 -1
  56. package/dist/config.d.mts +1 -1
  57. package/dist/config.mjs +1 -2
  58. package/dist/extensions/mcp-ui.mjs.map +1 -1
  59. package/dist/extensions/mcp.cjs +8 -7
  60. package/dist/extensions/mcp.cjs.map +1 -1
  61. package/dist/extensions/mcp.d.mts +1 -1
  62. package/dist/extensions/mcp.mjs +7 -6
  63. package/dist/extensions/mcp.mjs.map +1 -1
  64. package/dist/extensions/native.mjs +1 -1
  65. package/dist/extensions/native.mjs.map +1 -1
  66. package/dist/extensions/server.cjs +233 -119
  67. package/dist/extensions/server.cjs.map +1 -1
  68. package/dist/extensions/server.d.mts +2 -2
  69. package/dist/extensions/server.d.mts.map +1 -1
  70. package/dist/extensions/server.mjs +233 -119
  71. package/dist/extensions/server.mjs.map +1 -1
  72. package/dist/extensions/web.mjs +88 -62
  73. package/dist/extensions/web.mjs.map +1 -1
  74. package/dist/{headless-BGYfIlNk.mjs → headless-DOlCixyf.mjs} +5 -5
  75. package/dist/headless-DOlCixyf.mjs.map +1 -0
  76. package/dist/{headless-CHUsBGhg.cjs → headless-Dko_yBiy.cjs} +5 -5
  77. package/dist/headless-Dko_yBiy.cjs.map +1 -0
  78. package/dist/{index-Dhi8asLH.d.mts → index--xF7DvsE.d.mts} +4 -4
  79. package/dist/{index-Dhi8asLH.d.mts.map → index--xF7DvsE.d.mts.map} +1 -1
  80. package/dist/{index-BZL7keVW.d.mts → index-BCCF1sGD.d.mts} +2 -2
  81. package/dist/{index-BZL7keVW.d.mts.map → index-BCCF1sGD.d.mts.map} +1 -1
  82. package/dist/{index-BwB_jTI9.d.mts → index-BzeXJk6V.d.mts} +5 -5
  83. package/dist/index-BzeXJk6V.d.mts.map +1 -0
  84. package/dist/{index-D9-IXax4.d.mts → index-C-IC35d9.d.mts} +2 -2
  85. package/dist/{index-D9-IXax4.d.mts.map → index-C-IC35d9.d.mts.map} +1 -1
  86. package/dist/{index-DBz0DxnL.d.mts → index-CzCF_OP9.d.mts} +3 -4
  87. package/dist/index-CzCF_OP9.d.mts.map +1 -0
  88. package/dist/index.cjs +5 -5
  89. package/dist/index.d.mts +5 -5
  90. package/dist/index.mjs +5 -5
  91. package/dist/{launcher-BDm6-DiQ.mjs → launcher-CCYsFBM9.mjs} +3 -3
  92. package/dist/{launcher-BDm6-DiQ.mjs.map → launcher-CCYsFBM9.mjs.map} +1 -1
  93. package/dist/{launcher-SlyE8R3b.cjs → launcher-ZgDdyXpq.cjs} +8 -2
  94. package/dist/{launcher-SlyE8R3b.cjs.map → launcher-ZgDdyXpq.cjs.map} +1 -1
  95. package/dist/launcher.cjs +1 -1
  96. package/dist/launcher.d.mts +1 -1
  97. package/dist/launcher.mjs +1 -2
  98. package/dist/{lifeline-BZaQA0rm.mjs → lifeline-Bm-bHIjS.mjs} +6 -6
  99. package/dist/lifeline-Bm-bHIjS.mjs.map +1 -0
  100. package/dist/{lifeline-BuV_erib.cjs → lifeline-m7laIzIP.cjs} +6 -6
  101. package/dist/lifeline-m7laIzIP.cjs.map +1 -0
  102. package/dist/lifeline.cjs +1 -1
  103. package/dist/lifeline.d.mts +1 -1
  104. package/dist/lifeline.mjs +1 -1
  105. package/dist/{logFile-CNvepZh0.cjs → logFile-CnPKtxPy.cjs} +2 -2
  106. package/dist/{logFile-CNvepZh0.cjs.map → logFile-CnPKtxPy.cjs.map} +1 -1
  107. package/dist/{logFile-KKPbkC-a.mjs → logFile-XcDHBwu1.mjs} +2 -2
  108. package/dist/{logFile-KKPbkC-a.mjs.map → logFile-XcDHBwu1.mjs.map} +1 -1
  109. package/dist/logFile.cjs +1 -1
  110. package/dist/logFile.d.mts +1 -1
  111. package/dist/logFile.mjs +1 -2
  112. package/dist/{logReader-B6J7L7Ua.cjs → logReader-DHCK2BEr.cjs} +4 -4
  113. package/dist/{logReader-B6J7L7Ua.cjs.map → logReader-DHCK2BEr.cjs.map} +1 -1
  114. package/dist/{logReader-UfbDbwQl.mjs → logReader-mq9uVurh.mjs} +4 -4
  115. package/dist/{logReader-UfbDbwQl.mjs.map → logReader-mq9uVurh.mjs.map} +1 -1
  116. package/dist/logReader.cjs +1 -1
  117. package/dist/logReader.mjs +1 -2
  118. package/dist/processControl.mjs +1 -2
  119. package/dist/{ptyHost-DlQtTB8F.mjs → ptyHost-CwbLLr90.mjs} +2 -2
  120. package/dist/{ptyHost-DlQtTB8F.mjs.map → ptyHost-CwbLLr90.mjs.map} +1 -1
  121. package/dist/{ptyHost-MI2Z6WTG.cjs → ptyHost-D35hNmtd.cjs} +2 -2
  122. package/dist/{ptyHost-MI2Z6WTG.cjs.map → ptyHost-D35hNmtd.cjs.map} +1 -1
  123. package/dist/ptyHost.cjs +1 -1
  124. package/dist/ptyHost.mjs +1 -2
  125. package/dist/{ptySpawner-DEi1KOnd.mjs → ptySpawner-C375NJnj.mjs} +2 -2
  126. package/dist/ptySpawner-C375NJnj.mjs.map +1 -0
  127. package/dist/{ptySpawner-ijw0g5_T.cjs → ptySpawner-C39IzbRo.cjs} +2 -2
  128. package/dist/ptySpawner-C39IzbRo.cjs.map +1 -0
  129. package/dist/ptySpawner.cjs +1 -1
  130. package/dist/ptySpawner.d.mts +1 -1
  131. package/dist/ptySpawner.mjs +1 -2
  132. package/dist/{reconcile-DMeNSxwn.mjs → reconcile-5cZ11jSD.cjs} +12 -42
  133. package/dist/reconcile-5cZ11jSD.cjs.map +1 -0
  134. package/dist/{reconcile-BugwYFbV.cjs → reconcile-wNYQJZF-.mjs} +2 -62
  135. package/dist/reconcile-wNYQJZF-.mjs.map +1 -0
  136. package/dist/reconcile.cjs +1 -2
  137. package/dist/reconcile.d.mts +2 -9
  138. package/dist/reconcile.d.mts.map +1 -1
  139. package/dist/reconcile.mjs +1 -2
  140. package/dist/responseEnvelope.cjs +2 -2
  141. package/dist/responseEnvelope.d.mts +3 -3
  142. package/dist/responseEnvelope.mjs +2 -2
  143. package/dist/{rmuxBackend-DlxgqRZ1.cjs → rmuxBackend-Dh0CYVAL.cjs} +5 -5
  144. package/dist/rmuxBackend-Dh0CYVAL.cjs.map +1 -0
  145. package/dist/{rmuxBackend-DfyQwJrc.mjs → rmuxBackend-rjrVTG6K.mjs} +4 -4
  146. package/dist/rmuxBackend-rjrVTG6K.mjs.map +1 -0
  147. package/dist/rmuxBackend.cjs +1 -1
  148. package/dist/rmuxBackend.d.mts +1 -1
  149. package/dist/rmuxBackend.mjs +1 -2
  150. package/dist/{rtkProcessor-Bc4L4o_8.cjs → rtkProcessor-DSGbM-Cm.cjs} +4 -4
  151. package/dist/rtkProcessor-DSGbM-Cm.cjs.map +1 -0
  152. package/dist/{rtkProcessor-B9KPdyzr.mjs → rtkProcessor-Iw9gP5Xp.mjs} +3 -3
  153. package/dist/rtkProcessor-Iw9gP5Xp.mjs.map +1 -0
  154. package/dist/rtkProcessor.cjs +1 -1
  155. package/dist/rtkProcessor.d.mts +1 -1
  156. package/dist/rtkProcessor.mjs +1 -1
  157. package/dist/{runnerConfig-D2tGq5ZM.cjs → runnerConfig-BoLMinlx.cjs} +11 -11
  158. package/dist/runnerConfig-BoLMinlx.cjs.map +1 -0
  159. package/dist/{runnerConfig-BjtulXBI.d.mts → runnerConfig-DuWL6TJx.d.mts} +10 -10
  160. package/dist/{runnerConfig-BjtulXBI.d.mts.map → runnerConfig-DuWL6TJx.d.mts.map} +1 -1
  161. package/dist/{runnerConfig-BQBlVAXn.mjs → runnerConfig-XXMq4VQA.mjs} +11 -11
  162. package/dist/runnerConfig-XXMq4VQA.mjs.map +1 -0
  163. package/dist/{runnerDependencies-DruByBGS.mjs → runnerDependencies-7h_cxOva.mjs} +17 -17
  164. package/dist/runnerDependencies-7h_cxOva.mjs.map +1 -0
  165. package/dist/{runnerDependencies-KMZigIxB.cjs → runnerDependencies-DSun3xO-.cjs} +17 -17
  166. package/dist/runnerDependencies-DSun3xO-.cjs.map +1 -0
  167. package/dist/runnerDependencies.cjs +1 -1
  168. package/dist/runnerDependencies.d.mts +1 -1
  169. package/dist/runnerDependencies.mjs +1 -2
  170. package/dist/runnerNamer.d.mts +1 -1
  171. package/dist/runnerNamer.mjs +1 -2
  172. package/dist/{runnerPaths-BTEuzxw0.cjs → runnerPaths-B41rMOY6.cjs} +20 -38
  173. package/dist/runnerPaths-B41rMOY6.cjs.map +1 -0
  174. package/dist/{runnerPaths-B_dAAeco.mjs → runnerPaths-Dibbvyx_.mjs} +20 -38
  175. package/dist/runnerPaths-Dibbvyx_.mjs.map +1 -0
  176. package/dist/runnerPaths.cjs +1 -1
  177. package/dist/runnerPaths.d.mts +5 -7
  178. package/dist/runnerPaths.d.mts.map +1 -1
  179. package/dist/runnerPaths.mjs +1 -2
  180. package/dist/{runnerRegistry-CeOHEjBv.mjs → runnerRegistry-BgaR5O86.mjs} +12 -11
  181. package/dist/runnerRegistry-BgaR5O86.mjs.map +1 -0
  182. package/dist/{runnerRegistry-CtJiD02R.d.mts → runnerRegistry-V-Ocaf4N.d.mts} +1 -3
  183. package/dist/{runnerRegistry-CtJiD02R.d.mts.map → runnerRegistry-V-Ocaf4N.d.mts.map} +1 -1
  184. package/dist/{runnerRegistry-BmkZTJHi.cjs → runnerRegistry-dQYlMSpQ.cjs} +23 -10
  185. package/dist/runnerRegistry-dQYlMSpQ.cjs.map +1 -0
  186. package/dist/runnerRegistry.cjs +1 -1
  187. package/dist/runnerRegistry.d.mts +2 -2
  188. package/dist/runnerRegistry.mjs +1 -2
  189. package/dist/services/lifeline/client.cjs +2 -2
  190. package/dist/services/lifeline/client.cjs.map +1 -1
  191. package/dist/services/lifeline/client.d.mts +1 -1
  192. package/dist/services/lifeline/client.mjs +2 -2
  193. package/dist/services/lifeline/client.mjs.map +1 -1
  194. package/dist/{session-Chsb_Nh2.mjs → session-BKYnH4R6.mjs} +2 -2
  195. package/dist/{session-Chsb_Nh2.mjs.map → session-BKYnH4R6.mjs.map} +1 -1
  196. package/dist/{session-BC43uEyG.cjs → session-BvqzhXZY.cjs} +2 -2
  197. package/dist/{session-BC43uEyG.cjs.map → session-BvqzhXZY.cjs.map} +1 -1
  198. package/dist/session.cjs +1 -1
  199. package/dist/session.mjs +1 -1
  200. package/dist/spawner.mjs +1 -2
  201. package/dist/{type-C31e1gla.d.mts → type-Do0YxwVQ.d.mts} +4 -4
  202. package/dist/{type-C31e1gla.d.mts.map → type-Do0YxwVQ.d.mts.map} +1 -1
  203. package/dist/{type-BXM03qSw.d.mts → type-DwMZoINK.d.mts} +8 -8
  204. package/dist/{type-BXM03qSw.d.mts.map → type-DwMZoINK.d.mts.map} +1 -1
  205. package/dist/types.d.mts +1 -1
  206. package/package.json +31 -34
  207. package/skills/{doom-runner → po-runner}/SKILL.md +15 -15
  208. package/src/prompts/po-use-runner/SKILL.md +11 -11
  209. package/dist/bashResult-DNgtahGR.cjs.map +0 -1
  210. package/dist/bashResult-bIVSzoj-.mjs.map +0 -1
  211. package/dist/bashRunService-CJ02XaAq.mjs.map +0 -1
  212. package/dist/bashRunService-DyqxOSlx.cjs.map +0 -1
  213. package/dist/cliApp-Dj9nwaOv.cjs.map +0 -1
  214. package/dist/cliApp-v8Z3rMCi.mjs.map +0 -1
  215. package/dist/compaction-4QSUsBxq.cjs.map +0 -1
  216. package/dist/compaction-DCw80VZj.mjs.map +0 -1
  217. package/dist/headless-BGYfIlNk.mjs.map +0 -1
  218. package/dist/headless-CHUsBGhg.cjs.map +0 -1
  219. package/dist/index-BwB_jTI9.d.mts.map +0 -1
  220. package/dist/index-DBz0DxnL.d.mts.map +0 -1
  221. package/dist/lifeline-BZaQA0rm.mjs.map +0 -1
  222. package/dist/lifeline-BuV_erib.cjs.map +0 -1
  223. package/dist/ptySpawner-DEi1KOnd.mjs.map +0 -1
  224. package/dist/ptySpawner-ijw0g5_T.cjs.map +0 -1
  225. package/dist/reconcile-BugwYFbV.cjs.map +0 -1
  226. package/dist/reconcile-DMeNSxwn.mjs.map +0 -1
  227. package/dist/rmuxBackend-DfyQwJrc.mjs.map +0 -1
  228. package/dist/rmuxBackend-DlxgqRZ1.cjs.map +0 -1
  229. package/dist/rtkProcessor-B9KPdyzr.mjs.map +0 -1
  230. package/dist/rtkProcessor-Bc4L4o_8.cjs.map +0 -1
  231. package/dist/runnerConfig-BQBlVAXn.mjs.map +0 -1
  232. package/dist/runnerConfig-D2tGq5ZM.cjs.map +0 -1
  233. package/dist/runnerDependencies-DruByBGS.mjs.map +0 -1
  234. package/dist/runnerDependencies-KMZigIxB.cjs.map +0 -1
  235. package/dist/runnerPaths-BTEuzxw0.cjs.map +0 -1
  236. package/dist/runnerPaths-B_dAAeco.mjs.map +0 -1
  237. package/dist/runnerRegistry-BmkZTJHi.cjs.map +0 -1
  238. package/dist/runnerRegistry-CeOHEjBv.mjs.map +0 -1
@@ -179,7 +179,7 @@ const COMMAND_ROWS = 3;
179
179
  const INTERACTIVE_FIELD_ID = "runner-launch-interactive-field";
180
180
  function FieldLabel({ children }) {
181
181
  return /* @__PURE__ */ jsx("span", {
182
- className: "text-base font-medium text-doom-text",
182
+ className: "text-base font-medium text-po-text",
183
183
  children
184
184
  });
185
185
  }
@@ -264,28 +264,28 @@ function LaunchRunnerDialog({ sessionId, sendSessionFrame, defaultCwd, onClose }
264
264
  onCheckedChange: (checked) => setInteractive(checked === true)
265
265
  }), /* @__PURE__ */ jsx("label", {
266
266
  htmlFor: INTERACTIVE_FIELD_ID,
267
- className: "text-base text-doom-dim",
267
+ className: "text-base text-po-dim",
268
268
  children: "needs a terminal, for a command that prompts (requires rmux or tmux)"
269
269
  })]
270
270
  }),
271
271
  /* @__PURE__ */ jsxs("div", {
272
- className: "flex flex-col gap-1 rounded-md border border-doom-border bg-doom-deep px-3 py-2",
272
+ className: "flex flex-col gap-1 rounded-md border border-po-border bg-po-deep px-3 py-2",
273
273
  children: [/* @__PURE__ */ jsx(FieldLabel, { children: "Sent to the session" }), /* @__PURE__ */ jsx("pre", {
274
274
  "data-testid": "runner-launch-line",
275
- className: "whitespace-pre-wrap break-words font-mono text-sm text-doom-green",
275
+ className: "whitespace-pre-wrap break-words font-mono text-sm text-po-green",
276
276
  children: line
277
277
  })]
278
278
  }),
279
279
  problems.length > 0 ? /* @__PURE__ */ jsx("p", {
280
280
  "data-testid": "runner-launch-problem",
281
- className: "text-base text-doom-red",
281
+ className: "text-base text-po-red",
282
282
  children: problems.join(" ")
283
283
  }) : null,
284
284
  /* @__PURE__ */ jsxs(DialogFooter, {
285
285
  className: "flex-wrap sm:flex-nowrap",
286
286
  children: [
287
287
  /* @__PURE__ */ jsx("span", {
288
- className: "w-full text-sm text-doom-dim sm:w-auto",
288
+ className: "w-full text-sm text-po-dim sm:w-auto",
289
289
  children: "it appears above once the runtime starts it"
290
290
  }),
291
291
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1" }),
@@ -557,10 +557,10 @@ function MetaRow({ label, value }) {
557
557
  return /* @__PURE__ */ jsxs("span", {
558
558
  className: "flex min-w-0 gap-2.5",
559
559
  children: [/* @__PURE__ */ jsx("span", {
560
- className: "w-14 shrink-0 text-base text-doom-dim",
560
+ className: "w-14 shrink-0 text-base text-po-dim",
561
561
  children: label
562
562
  }), /* @__PURE__ */ jsx("span", {
563
- className: "min-w-0 flex-1 break-all font-mono text-sm text-doom-dim",
563
+ className: "min-w-0 flex-1 break-all font-mono text-sm text-po-dim",
564
564
  children: value
565
565
  })]
566
566
  });
@@ -580,17 +580,17 @@ function LogRow({ number, line, matched }) {
580
580
  className: "flex min-w-0 gap-2",
581
581
  children: [
582
582
  number === void 0 ? null : /* @__PURE__ */ jsx("span", {
583
- className: "w-12 shrink-0 select-none text-right text-xs leading-relaxed text-doom-faint",
583
+ className: "w-12 shrink-0 select-none text-right text-xs leading-relaxed text-po-faint",
584
584
  children: number
585
585
  }),
586
586
  /* @__PURE__ */ jsx("span", {
587
587
  "aria-hidden": true,
588
- className: `w-4 shrink-0 select-none text-xs leading-relaxed ${matched ? "text-doom-yellow" : "text-doom-faint"}`,
588
+ className: `w-4 shrink-0 select-none text-xs leading-relaxed ${matched ? "text-po-yellow" : "text-po-faint"}`,
589
589
  children: matched ? ">>" : ""
590
590
  }),
591
591
  /* @__PURE__ */ jsx(AnsiLine, {
592
592
  line,
593
- className: `min-w-0 flex-1 whitespace-pre-wrap break-words font-mono text-xs leading-relaxed ${matched ? "text-doom-text" : "text-doom-dim"}`
593
+ className: `min-w-0 flex-1 whitespace-pre-wrap break-words font-mono text-xs leading-relaxed ${matched ? "text-po-text" : "text-po-dim"}`
594
594
  })
595
595
  ]
596
596
  });
@@ -711,11 +711,11 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
711
711
  className: "flex min-h-0 flex-1 flex-col",
712
712
  children: [
713
713
  /* @__PURE__ */ jsxs("div", {
714
- className: "flex min-h-11 shrink-0 flex-wrap items-center gap-2 border-b border-doom-border-soft px-3 py-2 sm:h-11 sm:flex-nowrap sm:gap-2.5 sm:px-[26px] sm:py-0",
714
+ className: "flex min-h-11 shrink-0 flex-wrap items-center gap-2 border-b border-po-border-soft px-3 py-2 sm:h-11 sm:flex-nowrap sm:gap-2.5 sm:px-[26px] sm:py-0",
715
715
  children: [
716
716
  /* @__PURE__ */ jsx("span", {
717
717
  "data-testid": "runner-log-name",
718
- className: "shrink-0 truncate text-base font-semibold text-doom-hi",
718
+ className: "shrink-0 truncate text-base font-semibold text-po-hi",
719
719
  children: run?.name ?? runId
720
720
  }),
721
721
  /* @__PURE__ */ jsx(StatusBadge, {
@@ -724,14 +724,14 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
724
724
  children: badge.label
725
725
  }),
726
726
  run ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
727
- className: "shrink-0 text-sm text-doom-dim",
727
+ className: "shrink-0 text-sm text-po-dim",
728
728
  children: elapsed
729
729
  }), /* @__PURE__ */ jsx("span", {
730
- className: "shrink-0 text-sm text-doom-dim",
730
+ className: "shrink-0 text-sm text-po-dim",
731
731
  children: `pid ${String(run.pid)} · ${run.backend}${run.interactive ? " · tty" : ""}`
732
732
  })] }) : /* @__PURE__ */ jsx("span", {
733
733
  "data-testid": "runner-log-gone",
734
- className: "text-sm text-doom-dim",
734
+ className: "text-sm text-po-dim",
735
735
  children: "no longer listed; its log stays readable"
736
736
  }),
737
737
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1" }),
@@ -748,7 +748,7 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
748
748
  ]
749
749
  }),
750
750
  run ? /* @__PURE__ */ jsxs("div", {
751
- className: "flex shrink-0 flex-col gap-1.5 border-b border-doom-border-soft px-3 py-2.5 sm:px-[26px]",
751
+ className: "flex shrink-0 flex-col gap-1.5 border-b border-po-border-soft px-3 py-2.5 sm:px-[26px]",
752
752
  children: [/* @__PURE__ */ jsx(MetaRow, {
753
753
  label: "command",
754
754
  value: run.command
@@ -758,11 +758,11 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
758
758
  })]
759
759
  }) : null,
760
760
  /* @__PURE__ */ jsxs("div", {
761
- className: "flex min-h-10 shrink-0 flex-wrap items-center gap-2 border-b border-doom-border-soft px-3 py-2 sm:h-10 sm:flex-nowrap sm:gap-2.5 sm:px-[26px] sm:py-0",
761
+ className: "flex min-h-10 shrink-0 flex-wrap items-center gap-2 border-b border-po-border-soft px-3 py-2 sm:h-10 sm:flex-nowrap sm:gap-2.5 sm:px-[26px] sm:py-0",
762
762
  children: [
763
763
  /* @__PURE__ */ jsxs("span", {
764
764
  className: "relative flex min-w-0 flex-1 items-center sm:w-[300px] sm:flex-none",
765
- children: [/* @__PURE__ */ jsx(SearchIcon, { className: "pointer-events-none absolute left-2.5 h-3 w-3 text-doom-faint" }), /* @__PURE__ */ jsx(Input, {
765
+ children: [/* @__PURE__ */ jsx(SearchIcon, { className: "pointer-events-none absolute left-2.5 h-3 w-3 text-po-faint" }), /* @__PURE__ */ jsx(Input, {
766
766
  size: "sm",
767
767
  "data-testid": "runner-log-search",
768
768
  value: typed,
@@ -794,7 +794,7 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
794
794
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1" }),
795
795
  /* @__PURE__ */ jsxs("span", {
796
796
  "data-testid": "runner-log-stats",
797
- className: "min-w-0 basis-full truncate text-sm text-doom-dim sm:basis-auto",
797
+ className: "min-w-0 basis-full truncate text-sm text-po-dim sm:basis-auto",
798
798
  children: [slice === void 0 ? "reading…" : filtering ? `${String(slice.lineCount)} matching of ${slice.totalLines.toLocaleString("en-US")} lines` : `${live ? "tailing" : "showing"} last ${String(view.lines.length)} of ${slice.totalLines.toLocaleString("en-US")} lines`, view.hidden > 0 ? ` · ${view.hidden.toLocaleString("en-US")} older hidden` : ""]
799
799
  }),
800
800
  /* @__PURE__ */ jsx(Button, {
@@ -816,20 +816,20 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
816
816
  ref: body,
817
817
  onScroll,
818
818
  "data-testid": "runner-log-body",
819
- className: "h-full overflow-auto bg-doom-deep px-3 py-3 sm:px-[26px]",
819
+ className: "h-full overflow-auto bg-po-deep px-3 py-3 sm:px-[26px]",
820
820
  children: [error !== void 0 ? /* @__PURE__ */ jsx("p", {
821
821
  "data-testid": "runner-log-error",
822
- className: "text-base text-doom-red",
822
+ className: "text-base text-po-red",
823
823
  children: error
824
824
  }) : slice === void 0 ? /* @__PURE__ */ jsx("p", {
825
825
  "data-testid": "runner-log-reading",
826
- className: "text-sm text-doom-dim",
826
+ className: "text-sm text-po-dim",
827
827
  children: "reading…"
828
828
  }) : slice.exists === false ? /* @__PURE__ */ jsx("p", {
829
- className: "text-sm text-doom-dim",
829
+ className: "text-sm text-po-dim",
830
830
  children: "this runner has not written a log yet"
831
831
  }) : view.lines.length === 0 ? /* @__PURE__ */ jsx("p", {
832
- className: "text-sm text-doom-dim",
832
+ className: "text-sm text-po-dim",
833
833
  children: filtering ? "nothing matched" : "the log is empty"
834
834
  }) : view.lines.map((line, index) => {
835
835
  const number = numbers[index];
@@ -838,7 +838,7 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
838
838
  return /* @__PURE__ */ jsxs(Fragment, { children: [gap ? /* @__PURE__ */ jsx("div", {
839
839
  "data-testid": "runner-log-gap",
840
840
  "aria-hidden": true,
841
- className: "select-none py-0.5 pl-12 text-xs leading-relaxed text-doom-faint",
841
+ className: "select-none py-0.5 pl-12 text-xs leading-relaxed text-po-faint",
842
842
  children: "⋯"
843
843
  }) : null, /* @__PURE__ */ jsx(LogRow, {
844
844
  number,
@@ -860,13 +860,13 @@ function RunnerLogPanel({ sessionId, runId, sendSessionFrame }) {
860
860
  }) : null]
861
861
  }),
862
862
  /* @__PURE__ */ jsxs("div", {
863
- className: "flex h-8 shrink-0 items-center gap-2.5 border-t border-doom-border-soft px-3 sm:px-[26px]",
863
+ className: "flex h-8 shrink-0 items-center gap-2.5 border-t border-po-border-soft px-3 sm:px-[26px]",
864
864
  children: [/* @__PURE__ */ jsx("span", {
865
865
  "data-testid": "runner-log-path",
866
- className: "min-w-0 flex-1 truncate font-mono text-sm text-doom-dim",
866
+ className: "min-w-0 flex-1 truncate font-mono text-sm text-po-dim",
867
867
  children: run?.logPath ?? slice?.path ?? ""
868
868
  }), slice !== void 0 ? /* @__PURE__ */ jsx("span", {
869
- className: "shrink-0 text-sm text-doom-dim",
869
+ className: "shrink-0 text-sm text-po-dim",
870
870
  children: formatSize$1(slice.fileSize)
871
871
  }) : null]
872
872
  })
@@ -1026,11 +1026,11 @@ function RunnerShellPanel({ sessionId, runId }) {
1026
1026
  className: "flex min-h-0 flex-1 flex-col",
1027
1027
  children: [
1028
1028
  /* @__PURE__ */ jsxs("div", {
1029
- className: "flex min-h-11 shrink-0 items-center gap-2.5 border-b border-doom-border-soft px-3 sm:h-11 sm:px-[26px]",
1029
+ className: "flex min-h-11 shrink-0 items-center gap-2.5 border-b border-po-border-soft px-3 sm:h-11 sm:px-[26px]",
1030
1030
  children: [
1031
1031
  /* @__PURE__ */ jsx("span", {
1032
1032
  "data-testid": "runner-shell-name",
1033
- className: "shrink-0 truncate text-base font-semibold text-doom-hi",
1033
+ className: "shrink-0 truncate text-base font-semibold text-po-hi",
1034
1034
  children: run?.name ?? runId
1035
1035
  }),
1036
1036
  /* @__PURE__ */ jsx(StatusBadge, {
@@ -1041,7 +1041,7 @@ function RunnerShellPanel({ sessionId, runId }) {
1041
1041
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1" }),
1042
1042
  lost ? /* @__PURE__ */ jsx("span", {
1043
1043
  "data-testid": "runner-shell-lost",
1044
- className: "shrink-0 text-base text-doom-red",
1044
+ className: "shrink-0 text-base text-po-red",
1045
1045
  children: "the connection to this pane dropped"
1046
1046
  }) : null,
1047
1047
  live ? /* @__PURE__ */ jsx(Button, {
@@ -1056,7 +1056,7 @@ function RunnerShellPanel({ sessionId, runId }) {
1056
1056
  ]
1057
1057
  }),
1058
1058
  /* @__PURE__ */ jsxs("div", {
1059
- className: "relative min-h-0 flex-1 overflow-hidden bg-doom-deep px-3 py-2 sm:px-[26px]",
1059
+ className: "relative min-h-0 flex-1 overflow-hidden bg-po-deep px-3 py-2 sm:px-[26px]",
1060
1060
  children: [/* @__PURE__ */ jsx(TerminalView, {
1061
1061
  ref: terminal,
1062
1062
  "data-testid": "runner-shell-terminal",
@@ -1064,14 +1064,14 @@ function RunnerShellPanel({ sessionId, runId }) {
1064
1064
  onReady: () => setReady(true)
1065
1065
  }), ready ? null : /* @__PURE__ */ jsx("p", {
1066
1066
  "data-testid": "runner-shell-reading",
1067
- className: "text-sm text-doom-dim",
1067
+ className: "text-sm text-po-dim",
1068
1068
  children: "attaching…"
1069
1069
  })]
1070
1070
  }),
1071
1071
  /* @__PURE__ */ jsx("div", {
1072
- className: "flex h-8 shrink-0 items-center border-t border-doom-border-soft px-3 sm:px-[26px]",
1072
+ className: "flex h-8 shrink-0 items-center border-t border-po-border-soft px-3 sm:px-[26px]",
1073
1073
  children: /* @__PURE__ */ jsx("span", {
1074
- className: "min-w-0 flex-1 truncate text-sm text-doom-dim",
1074
+ className: "min-w-0 flex-1 truncate text-sm text-po-dim",
1075
1075
  children: live ? "typing goes straight to the runner" : "this runner is no longer accepting input"
1076
1076
  })
1077
1077
  })
@@ -1175,7 +1175,7 @@ function runnersTab() {
1175
1175
  *
1176
1176
  * Running runners only, the same rule the rail follows. A finished run leaves
1177
1177
  * the moment it exits, because this answers "what is happening"; its log stays
1178
- * readable from its own tab, and `doom-runner list` is where history lives.
1178
+ * readable from its own tab, and `po-runner list` is where history lives.
1179
1179
  */
1180
1180
  function RunnersPanel({ sessionId, sendSessionFrame, openTransientTab }) {
1181
1181
  const session = useStore(runners.store, (state) => runners.select(state, sessionId));
@@ -1213,15 +1213,15 @@ function RunnersPanel({ sessionId, sendSessionFrame, openTransientTab }) {
1213
1213
  className: "flex min-h-0 flex-1 flex-col overflow-auto",
1214
1214
  children: [
1215
1215
  /* @__PURE__ */ jsxs("div", {
1216
- className: "flex min-h-11 shrink-0 items-center gap-2.5 border-b border-doom-border-soft px-3 sm:h-11 sm:px-[26px]",
1216
+ className: "flex min-h-11 shrink-0 items-center gap-2.5 border-b border-po-border-soft px-3 sm:h-11 sm:px-[26px]",
1217
1217
  children: [
1218
1218
  /* @__PURE__ */ jsx("span", {
1219
- className: "text-lg font-semibold text-doom-hi",
1219
+ className: "text-lg font-semibold text-po-hi",
1220
1220
  children: "runners"
1221
1221
  }),
1222
1222
  /* @__PURE__ */ jsx("span", {
1223
1223
  "data-testid": "runners-panel-count",
1224
- className: "text-sm text-doom-dim",
1224
+ className: "text-sm text-po-dim",
1225
1225
  children: running.length === 0 ? "nothing running" : `${String(running.length)} running`
1226
1226
  }),
1227
1227
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1" }),
@@ -1233,7 +1233,7 @@ function RunnersPanel({ sessionId, sendSessionFrame, openTransientTab }) {
1233
1233
  "data-testid": "runners-panel-launch",
1234
1234
  title: "launch a runner",
1235
1235
  "aria-label": "launch a runner",
1236
- className: "text-doom-faint hover:text-doom-hi",
1236
+ className: "text-po-faint hover:text-po-hi",
1237
1237
  children: /* @__PURE__ */ jsx(PlusIcon, { className: "h-3 w-3" })
1238
1238
  })
1239
1239
  }), /* @__PURE__ */ jsxs(DropdownMenuContent, {
@@ -1293,7 +1293,7 @@ function RunnerCard({ run, now, stopRequested, sessionId, sendSessionFrame, open
1293
1293
  const tail = useRunnerTail(sessionId, run.id, run.state === "running");
1294
1294
  return /* @__PURE__ */ jsxs("div", {
1295
1295
  "data-testid": `runners-card-${run.id}`,
1296
- className: "flex min-w-0 flex-col gap-1.5 rounded-md border border-doom-border-soft bg-doom-panel p-2.5",
1296
+ className: "flex min-w-0 flex-col gap-1.5 rounded-md border border-po-border-soft bg-po-panel p-2.5",
1297
1297
  children: [
1298
1298
  /* @__PURE__ */ jsxs("div", {
1299
1299
  className: "flex min-w-0 items-center gap-1.5",
@@ -1303,27 +1303,27 @@ function RunnerCard({ run, now, stopRequested, sessionId, sendSessionFrame, open
1303
1303
  pulse: true
1304
1304
  }),
1305
1305
  /* @__PURE__ */ jsx("span", {
1306
- className: "min-w-0 flex-1 truncate text-base font-semibold text-doom-hi",
1306
+ className: "min-w-0 flex-1 truncate text-base font-semibold text-po-hi",
1307
1307
  children: run.name
1308
1308
  }),
1309
1309
  /* @__PURE__ */ jsxs("span", {
1310
- className: "shrink-0 text-sm text-doom-dim",
1310
+ className: "shrink-0 text-sm text-po-dim",
1311
1311
  children: [formatRunnerUptime(run.startedAt, now), run.interactive ? " · tty" : ""]
1312
1312
  })
1313
1313
  ]
1314
1314
  }),
1315
1315
  /* @__PURE__ */ jsx("span", {
1316
- className: "min-w-0 break-all font-mono text-sm leading-normal text-doom-dim",
1316
+ className: "min-w-0 break-all font-mono text-sm leading-normal text-po-dim",
1317
1317
  children: run.command
1318
1318
  }),
1319
1319
  /* @__PURE__ */ jsx("span", {
1320
- className: "min-w-0 truncate font-mono text-sm text-doom-dim",
1320
+ className: "min-w-0 truncate font-mono text-sm text-po-dim",
1321
1321
  children: run.cwd
1322
1322
  }),
1323
1323
  /* @__PURE__ */ jsx("span", {
1324
1324
  "data-testid": `runners-card-detail-${run.id}`,
1325
1325
  "data-detail": tail === void 0 ? "command" : "tail",
1326
- className: "min-w-0 truncate text-sm text-doom-dim",
1326
+ className: "min-w-0 truncate text-sm text-po-dim",
1327
1327
  children: tail ?? "…"
1328
1328
  }),
1329
1329
  /* @__PURE__ */ jsxs("div", {
@@ -1368,7 +1368,7 @@ function RunnerCard({ run, now, stopRequested, sessionId, sendSessionFrame, open
1368
1368
  var runners_web_default = defineActivityGroup({
1369
1369
  keys: "r l",
1370
1370
  icon: PlayCircleIcon,
1371
- statusKey: "doom-runner-runners",
1371
+ statusKey: "po-runner-runners",
1372
1372
  activeSource: runnerActivitySource,
1373
1373
  transientTab: runnersTab,
1374
1374
  order: 20
@@ -1386,7 +1386,7 @@ const TICK_MS = 1e4;
1386
1386
  * Only running runners are listed. A finished one leaves the moment it exits,
1387
1387
  * because the dock answers "what is happening", and a rail that keeps ten
1388
1388
  * completed playwright calls around buries the one command still working. The
1389
- * runtime keeps every record; `doom-runner list` and the run's own log tab are
1389
+ * runtime keeps every record; `po-runner list` and the run's own log tab are
1390
1390
  * where a finished run is read.
1391
1391
  */
1392
1392
  function RunnersActivitySection({ sessionId, sendSessionFrame, openTransientTab }) {
@@ -1401,13 +1401,13 @@ function RunnersActivitySection({ sessionId, sendSessionFrame, openTransientTab
1401
1401
  className: "flex flex-wrap items-center gap-x-4 gap-y-1",
1402
1402
  children: [/* @__PURE__ */ jsx("p", {
1403
1403
  "data-testid": "activity-summary-runners",
1404
- className: "text-sm text-doom-dim",
1404
+ className: "text-sm text-po-dim",
1405
1405
  children: "Idle"
1406
1406
  }), sessionId === null ? null : /* @__PURE__ */ jsxs(Button, {
1407
1407
  variant: "link",
1408
1408
  size: "sm",
1409
1409
  "data-testid": "activity-runner-launch",
1410
- className: "h-auto gap-1 px-0 text-doom-green",
1410
+ className: "h-auto gap-1 px-0 text-po-green",
1411
1411
  onClick: () => openTransientTab(runnersTab()),
1412
1412
  children: ["Launch a runner", /* @__PURE__ */ jsx(ArrowRightIcon, {
1413
1413
  "aria-hidden": true,
@@ -1445,7 +1445,7 @@ function RunnerRow({ run, now, stopRequested, sessionId, sendSessionFrame, openT
1445
1445
  if (sessionId === null) return;
1446
1446
  openTransientTab(runnerLogTab(run));
1447
1447
  },
1448
- className: "min-w-0 gap-0.5 rounded-md px-1 py-1 hover:bg-doom-panel",
1448
+ className: "min-w-0 gap-0.5 rounded-md px-1 py-1 hover:bg-po-panel",
1449
1449
  children: [/* @__PURE__ */ jsxs("span", {
1450
1450
  className: "flex min-w-0 items-center gap-1.5",
1451
1451
  children: [
@@ -1454,11 +1454,11 @@ function RunnerRow({ run, now, stopRequested, sessionId, sendSessionFrame, openT
1454
1454
  pulse: true
1455
1455
  }),
1456
1456
  /* @__PURE__ */ jsx("span", {
1457
- className: "min-w-0 flex-1 truncate text-left text-base font-semibold text-doom-hi",
1457
+ className: "min-w-0 flex-1 truncate text-left text-base font-semibold text-po-hi",
1458
1458
  children: run.name
1459
1459
  }),
1460
1460
  /* @__PURE__ */ jsxs("span", {
1461
- className: "shrink-0 text-sm text-doom-dim",
1461
+ className: "shrink-0 text-sm text-po-dim",
1462
1462
  children: [formatRunnerUptime(run.startedAt, now), run.interactive ? " · tty" : ""]
1463
1463
  }),
1464
1464
  sessionId !== null ? /* @__PURE__ */ jsx(Button, {
@@ -1490,7 +1490,7 @@ function RunnerRow({ run, now, stopRequested, sessionId, sendSessionFrame, openT
1490
1490
  }), /* @__PURE__ */ jsx("span", {
1491
1491
  "data-testid": `activity-runner-detail-${run.id}`,
1492
1492
  "data-detail": tail === void 0 ? "command" : "tail",
1493
- className: "truncate pl-3 text-left text-sm text-doom-dim",
1493
+ className: "truncate pl-3 text-left text-sm text-po-dim",
1494
1494
  children: tail ?? run.command
1495
1495
  })]
1496
1496
  });
@@ -1671,8 +1671,9 @@ function BashToolMessage({ sessionId, args, result, output, running, isError, se
1671
1671
  const command = formatBashCommand(rawCommand);
1672
1672
  const flags = formatBashFlags(args);
1673
1673
  const stoppable = sessionId !== null && runnerId !== void 0 && run !== void 0 && run.exit === void 0;
1674
+ const background = runnerId === void 0 ? void 0 : backgroundOutcome(run);
1674
1675
  return /* @__PURE__ */ jsx(MessageItem, {
1675
- tone: toolTone({
1676
+ tone: background?.tone ?? toolTone({
1676
1677
  running,
1677
1678
  isError
1678
1679
  }),
@@ -1687,15 +1688,16 @@ function BashToolMessage({ sessionId, args, result, output, running, isError, se
1687
1688
  });
1688
1689
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(MessageItemHeader, {
1689
1690
  title: "bash",
1691
+ ...background ? { badge: background.badge } : {},
1690
1692
  children: [
1691
1693
  /* @__PURE__ */ jsxs("span", {
1692
1694
  "data-testid": "tool-call-bash",
1693
1695
  className: "flex min-w-0 flex-1 items-center gap-2",
1694
1696
  children: [/* @__PURE__ */ jsx("span", {
1695
- className: "min-w-0 flex-1 truncate font-mono text-doom-text",
1697
+ className: "min-w-0 flex-1 truncate font-mono text-po-text",
1696
1698
  children: command
1697
1699
  }), flags.length > 0 ? /* @__PURE__ */ jsxs("span", {
1698
- className: "hidden shrink-0 text-doom-dim sm:inline",
1700
+ className: "hidden shrink-0 text-po-dim sm:inline",
1699
1701
  children: ["· ", flags.join(" · ")]
1700
1702
  }) : null]
1701
1703
  }),
@@ -1734,12 +1736,12 @@ function BashToolMessage({ sessionId, args, result, output, running, isError, se
1734
1736
  "data-testid": "tool-result-bash-command",
1735
1737
  grammar: "shell",
1736
1738
  text: rawCommand,
1737
- className: "max-h-40 overflow-auto text-doom-text"
1739
+ className: "max-h-40 overflow-auto text-po-text"
1738
1740
  }) : null,
1739
1741
  view.lines.length > 0 ? /* @__PURE__ */ jsx(AnsiText, {
1740
1742
  "data-testid": "tool-result-bash-output",
1741
1743
  text: view.lines.join("\n"),
1742
- className: "max-h-96 overflow-auto whitespace-pre-wrap break-words [overflow-wrap:anywhere] border-doom-border-soft border-t pt-2 font-mono text-doom-dim"
1744
+ className: "max-h-96 overflow-auto whitespace-pre-wrap break-words [overflow-wrap:anywhere] border-po-border-soft border-t pt-2 font-mono text-po-dim"
1743
1745
  }) : null,
1744
1746
  view.status ? /* @__PURE__ */ jsx(MessageItemStatus, {
1745
1747
  "data-testid": "tool-result-bash-status",
@@ -1753,9 +1755,9 @@ function BashToolMessage({ sessionId, args, result, output, running, isError, se
1753
1755
  }) : null,
1754
1756
  details.logPath !== void 0 ? /* @__PURE__ */ jsxs("span", {
1755
1757
  "data-testid": "tool-result-bash-log",
1756
- className: "min-w-0 break-all text-doom-dim",
1758
+ className: "min-w-0 break-all text-po-dim",
1757
1759
  children: ["full log · ", /* @__PURE__ */ jsx("span", {
1758
- className: "text-doom-dim",
1760
+ className: "text-po-dim",
1759
1761
  children: details.logPath
1760
1762
  })]
1761
1763
  }) : null
@@ -1764,6 +1766,30 @@ function BashToolMessage({ sessionId, args, result, output, running, isError, se
1764
1766
  }
1765
1767
  });
1766
1768
  }
1769
+ function backgroundOutcome(run) {
1770
+ if (run === void 0) return {
1771
+ tone: "info",
1772
+ badge: "In background"
1773
+ };
1774
+ if (run.exit === void 0) return {
1775
+ tone: "running",
1776
+ badge: "In background"
1777
+ };
1778
+ const { reason, code } = run.exit;
1779
+ const exit = code === null ? "" : ` · exit ${code}`;
1780
+ if (reason === "completed") return {
1781
+ tone: "ok",
1782
+ badge: `Completed${exit}`
1783
+ };
1784
+ if (reason === "stopped") return {
1785
+ tone: "neutral",
1786
+ badge: "Stopped"
1787
+ };
1788
+ return {
1789
+ tone: "error",
1790
+ badge: `Failed${exit}`
1791
+ };
1792
+ }
1767
1793
  //#endregion
1768
1794
  //#region src/extensions/workspaces/sessions/(frontend)/tool/bash.web.tsx
1769
1795
  var bash_web_default = defineToolRenderer({ message: BashToolMessage });