@namzu/cli 36.2.0 → 36.3.1

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 (297) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/bin.js +1 -1
  3. package/dist/chunks/{acp-P22WRX3A.js → acp-CJ2TTGJD.js} +58 -34
  4. package/dist/chunks/acp-CJ2TTGJD.js.map +6 -0
  5. package/dist/chunks/{activity-command-OK463NV4.js → activity-command-MCYEK4Z4.js} +10 -10
  6. package/dist/chunks/{add-ML53TFN2.js → add-ZQ3YWP4F.js} +16 -16
  7. package/dist/chunks/{agent-3ST7Q6HZ.js → agent-UO62HZPI.js} +22 -22
  8. package/dist/chunks/agent-session-DU55LD4P.js +46 -0
  9. package/dist/chunks/{archive-WV2NBOHR.js → archive-VPREZOGC.js} +8 -8
  10. package/dist/chunks/{bin-main-FPJQMK33.js → bin-main-J5ULRXXN.js} +3 -3
  11. package/dist/chunks/{browser-JRWZ3PYX.js → browser-FZWYOIIJ.js} +6 -6
  12. package/dist/chunks/{chat-3IJFKDSN.js → chat-BGWKKQTT.js} +13 -13
  13. package/dist/chunks/{chunk-S7E42272.js → chunk-2BZOT2CT.js} +2 -2
  14. package/dist/chunks/{chunk-LIZPXS73.js → chunk-3F5DGROG.js} +2 -2
  15. package/dist/chunks/{chunk-KNNQHRZ4.js → chunk-46B7KRXY.js} +6 -6
  16. package/dist/chunks/{chunk-PT7TZNBV.js → chunk-52OVP5BG.js} +4 -4
  17. package/dist/chunks/{chunk-X2YRM3UE.js → chunk-56OUKG5W.js} +3 -3
  18. package/dist/chunks/{chunk-HJ42RG5U.js → chunk-5URT3ZM2.js} +4 -4
  19. package/dist/chunks/{chunk-GWOW3U2S.js → chunk-6TDJXZ5W.js} +4 -4
  20. package/dist/chunks/chunk-74KMYYM2.js +755 -0
  21. package/dist/chunks/chunk-74KMYYM2.js.map +6 -0
  22. package/dist/chunks/{chunk-43FBWINL.js → chunk-AEPAIDAA.js} +5 -5
  23. package/dist/chunks/{chunk-7WQV2FSF.js → chunk-AHYHR5DY.js} +3 -3
  24. package/dist/chunks/{chunk-XAKL7C7B.js → chunk-AP5KD43Y.js} +2 -2
  25. package/dist/chunks/{chunk-NRML7BIR.js → chunk-AS7UWXMN.js} +4 -4
  26. package/dist/chunks/{chunk-QQLB573I.js → chunk-BOV53LZO.js} +2 -2
  27. package/dist/chunks/{chunk-GPBUDMUF.js → chunk-BUCICQWG.js} +2 -2
  28. package/dist/chunks/{chunk-OS7IVIYH.js → chunk-CXSUA2PF.js} +242 -3
  29. package/dist/chunks/{chunk-OS7IVIYH.js.map → chunk-CXSUA2PF.js.map} +3 -3
  30. package/dist/chunks/{chunk-5PQVJBIO.js → chunk-CZVHXYGD.js} +6 -3
  31. package/dist/chunks/{chunk-5PQVJBIO.js.map → chunk-CZVHXYGD.js.map} +1 -1
  32. package/dist/chunks/{chunk-CFN7CUD3.js → chunk-DYUOXP5Q.js} +13 -13
  33. package/dist/chunks/{chunk-G5XTLTDR.js → chunk-E7HLYLD7.js} +3 -3
  34. package/dist/chunks/{chunk-ABD2DOO2.js → chunk-EKUJUPFA.js} +4 -4
  35. package/dist/chunks/{chunk-AABPCENY.js → chunk-F3YQ2CSZ.js} +4 -4
  36. package/dist/chunks/{chunk-2VXA7GZU.js → chunk-FU4GQ7K2.js} +2 -2
  37. package/dist/chunks/{chunk-VHKKPDL2.js → chunk-GQN64E36.js} +3 -3
  38. package/dist/chunks/{chunk-AL6ESCHD.js → chunk-GSHSAMZJ.js} +12 -12
  39. package/dist/chunks/{chunk-H7VJHF5S.js → chunk-H6MWKPHM.js} +1030 -264
  40. package/dist/chunks/chunk-H6MWKPHM.js.map +6 -0
  41. package/dist/chunks/{chunk-3OZ2OBGU.js → chunk-HKDPP2JF.js} +2 -2
  42. package/dist/chunks/{chunk-YZ675PG4.js → chunk-HSEJGSXE.js} +2 -2
  43. package/dist/chunks/{chunk-ZXWJ6G3J.js → chunk-I6CDUPVR.js} +2 -2
  44. package/dist/chunks/{chunk-27VZRJTG.js → chunk-IQBR45AU.js} +2 -2
  45. package/dist/chunks/{chunk-HIZ7F6BT.js → chunk-JCDTR2ZU.js} +4 -4
  46. package/dist/chunks/{chunk-53EZXXT4.js → chunk-KHF4IAIH.js} +27 -9
  47. package/dist/chunks/chunk-KHF4IAIH.js.map +6 -0
  48. package/dist/chunks/{chunk-ZNAH4EGP.js → chunk-KMHLON54.js} +2 -2
  49. package/dist/chunks/{chunk-CXLSM5SH.js → chunk-KOG2WB66.js} +4 -4
  50. package/dist/chunks/{chunk-AGHVC2IJ.js → chunk-LBH5WVXU.js} +2 -2
  51. package/dist/chunks/{chunk-NKEOCU52.js → chunk-LNQ6SCBF.js} +7 -7
  52. package/dist/chunks/{chunk-22P25PLK.js → chunk-LYDXPWAZ.js} +22 -4
  53. package/dist/chunks/{chunk-22P25PLK.js.map → chunk-LYDXPWAZ.js.map} +1 -1
  54. package/dist/chunks/{chunk-YEFJAE2B.js → chunk-M32YRERZ.js} +27 -26
  55. package/dist/chunks/{chunk-YEFJAE2B.js.map → chunk-M32YRERZ.js.map} +1 -1
  56. package/dist/chunks/{chunk-U5AWHJ7O.js → chunk-MBBFX64S.js} +2 -2
  57. package/dist/chunks/{chunk-PJ3UYK2K.js → chunk-MJO6CH5F.js} +3 -3
  58. package/dist/chunks/{chunk-AVIW5JJF.js → chunk-NATYSTPM.js} +2 -2
  59. package/dist/chunks/{chunk-KQOIPRZ5.js → chunk-QRT3N2K3.js} +2 -2
  60. package/dist/chunks/{chunk-DYBUCWAB.js → chunk-QXDKRJZ5.js} +3 -3
  61. package/dist/chunks/{chunk-EOO5AKO4.js → chunk-RBX6RVYO.js} +6 -6
  62. package/dist/chunks/{chunk-VSUHR44P.js → chunk-RM6HTBJK.js} +2 -2
  63. package/dist/chunks/{chunk-YLIKDPD6.js → chunk-S6DK2YOB.js} +9 -9
  64. package/dist/chunks/{chunk-WW4VKEBD.js → chunk-S6MZK4LD.js} +2 -2
  65. package/dist/chunks/{chunk-ZZ6Z2DO6.js → chunk-UFTNEQFN.js} +10 -10
  66. package/dist/chunks/{chunk-7OEK2NAO.js → chunk-UXGI3FE5.js} +8 -8
  67. package/dist/chunks/{chunk-ZKTLXAQK.js → chunk-V3ZLK3XQ.js} +3243 -1041
  68. package/dist/chunks/chunk-V3ZLK3XQ.js.map +6 -0
  69. package/dist/chunks/{chunk-WNMRETWS.js → chunk-VUOS5SQ3.js} +2 -2
  70. package/dist/chunks/{chunk-YTJO7G24.js → chunk-XCWZZZOW.js} +3 -3
  71. package/dist/chunks/{chunk-RPAHIOW6.js → chunk-YYQFUKI7.js} +3 -3
  72. package/dist/chunks/{chunk-5GARJ3CK.js → chunk-YYVDLVUM.js} +2 -2
  73. package/dist/chunks/{chunk-HQZSTYKY.js → chunk-ZB5ETOVE.js} +3 -3
  74. package/dist/chunks/{chunk-GFSD2D3M.js → chunk-ZG6NVROB.js} +2 -2
  75. package/dist/chunks/{chunk-MBGQS5YA.js → chunk-ZHBHRMCI.js} +4 -4
  76. package/dist/chunks/{cli-runtime-CQKITOHY.js → cli-runtime-NG23IVRM.js} +8 -8
  77. package/dist/chunks/{commands-UEPVSG33.js → commands-LQISMOPF.js} +5 -5
  78. package/dist/chunks/{crash-report-3GQ3SJML.js → crash-report-EYK56MJJ.js} +6 -6
  79. package/dist/chunks/{dist-YDFJ4YOH.js → dist-3AMBKAG4.js} +2 -2
  80. package/dist/chunks/{dist-SCEJQJFY.js → dist-AUDNCB3F.js} +2 -2
  81. package/dist/chunks/{dist-FFMNE5LK.js → dist-AZJ56DQJ.js} +2 -2
  82. package/dist/chunks/{dist-IPJVDPA3.js → dist-DWB5AYXB.js} +2 -2
  83. package/dist/chunks/{dist-VJ2UQYSX.js → dist-EDKLCZY4.js} +2 -2
  84. package/dist/chunks/{dist-Q37IZHCW.js → dist-PZXF5NU3.js} +2 -2
  85. package/dist/chunks/{dist-AMYVT2VT.js → dist-XT4V74YL.js} +2 -2
  86. package/dist/chunks/{doctor-YWK25HGQ.js → doctor-3EOUWDYB.js} +6 -6
  87. package/dist/chunks/{drain-5R73B66Y.js → drain-VKGTCFXC.js} +10 -10
  88. package/dist/chunks/{eval-GYPUHRIK.js → eval-VHWEJ4GG.js} +2 -2
  89. package/dist/chunks/{exec-AHAC6YBQ.js → exec-TBNI5CDH.js} +149 -41
  90. package/dist/chunks/exec-TBNI5CDH.js.map +6 -0
  91. package/dist/chunks/{home-GI6TRZAN.js → home-H4GTIYO5.js} +3 -3
  92. package/dist/chunks/{host-queries-MN57UTDU.js → host-queries-AIZVYFDQ.js} +13 -13
  93. package/dist/chunks/{lifecycle-7LD634AQ.js → lifecycle-UF7VDCOQ.js} +23 -23
  94. package/dist/chunks/{list-DSHTQRTP.js → list-JJZ7I5OF.js} +12 -12
  95. package/dist/chunks/{login-R5P2OAXZ.js → login-T2RKNHK2.js} +8 -8
  96. package/dist/chunks/{logs-SGPSXLBY.js → logs-J6D4SEDY.js} +4 -4
  97. package/dist/chunks/{mcp-MC6B34XH.js → mcp-WONRVJ26.js} +15 -15
  98. package/dist/chunks/{message-command-4MV2SVHP.js → message-command-BGQB2TFW.js} +29 -29
  99. package/dist/chunks/{operator-tools-GI63VOXH.js → operator-tools-H4MYC5PE.js} +11 -11
  100. package/dist/chunks/{output-schema-74VSN66J.js → output-schema-RFJUTQ2N.js} +3 -3
  101. package/dist/chunks/{pal-BWPYGQ4B.js → pal-AV7AD5MG.js} +11 -11
  102. package/dist/chunks/{providers-YV45XVWS.js → providers-BHF65IUG.js} +6 -6
  103. package/dist/chunks/{resident-OC2D5V5I.js → resident-YF3MIILM.js} +18 -18
  104. package/dist/chunks/{resume-command-DZBKOABY.js → resume-command-Y3NYDSI4.js} +4 -4
  105. package/dist/chunks/{schedule-GUD625PJ.js → schedule-6T2MNPKK.js} +8 -8
  106. package/dist/chunks/{service-67FZ3N75.js → service-2VASPD2V.js} +22 -22
  107. package/dist/chunks/session-step-LJ24HVLF.js +26 -0
  108. package/dist/chunks/{skills-DNNEKEOH.js → skills-K3JRZ3IR.js} +8 -8
  109. package/dist/chunks/{state-K7MMFNZC.js → state-QPSQI7U7.js} +2 -2
  110. package/dist/chunks/{store-2PDDGKYZ.js → store-7WZWQXKX.js} +6 -6
  111. package/dist/chunks/{store-NIBJFQOT.js → store-PSQKDEPY.js} +8 -8
  112. package/dist/chunks/{store-KYMOKW6X.js → store-Z3PS6LUZ.js} +4 -4
  113. package/dist/chunks/{tui-UY3ZLTMX.js → tui-GNG3YLGE.js} +2536 -1325
  114. package/dist/chunks/tui-GNG3YLGE.js.map +6 -0
  115. package/dist/chunks/{upgrade-2NO7NPPM.js → upgrade-C6QUXRLB.js} +3 -3
  116. package/dist/chunks/{worktree-ADQJ4AJ5.js → worktree-KLD2PAMU.js} +10 -10
  117. package/dist/cli.d.ts.map +1 -1
  118. package/dist/commands/acp-harness.d.ts.map +1 -1
  119. package/dist/commands/desktop-host-pr.d.ts +14 -0
  120. package/dist/commands/desktop-host-pr.d.ts.map +1 -0
  121. package/dist/commands/desktop-host.d.ts +3 -0
  122. package/dist/commands/desktop-host.d.ts.map +1 -1
  123. package/dist/commands/exec-json.d.ts.map +1 -1
  124. package/dist/commands/exec-workflows.d.ts +50 -0
  125. package/dist/commands/exec-workflows.d.ts.map +1 -0
  126. package/dist/commands/exec.d.ts.map +1 -1
  127. package/dist/config/load.d.ts.map +1 -1
  128. package/dist/config/schema.d.ts +13 -0
  129. package/dist/config/schema.d.ts.map +1 -1
  130. package/dist/index.js +9 -9
  131. package/dist/integrations/resident/runner-worker.js +16 -16
  132. package/dist/integrations/subagents/activity.d.ts +19 -0
  133. package/dist/integrations/subagents/activity.d.ts.map +1 -1
  134. package/dist/integrations/subagents/runtime.d.ts +52 -0
  135. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  136. package/dist/integrations/workflows/doctrine.d.ts +7 -0
  137. package/dist/integrations/workflows/doctrine.d.ts.map +1 -0
  138. package/dist/integrations/workflows/history.d.ts +13 -0
  139. package/dist/integrations/workflows/history.d.ts.map +1 -0
  140. package/dist/integrations/workflows/host.d.ts +59 -0
  141. package/dist/integrations/workflows/host.d.ts.map +1 -0
  142. package/dist/integrations/workflows/notice.d.ts +21 -0
  143. package/dist/integrations/workflows/notice.d.ts.map +1 -0
  144. package/dist/integrations/workflows/offering.d.ts +40 -0
  145. package/dist/integrations/workflows/offering.d.ts.map +1 -0
  146. package/dist/integrations/workflows/registry.d.ts +85 -0
  147. package/dist/integrations/workflows/registry.d.ts.map +1 -0
  148. package/dist/integrations/workflows/view.d.ts +97 -0
  149. package/dist/integrations/workflows/view.d.ts.map +1 -0
  150. package/dist/tui/AgentExplorer.d.ts +179 -32
  151. package/dist/tui/AgentExplorer.d.ts.map +1 -1
  152. package/dist/tui/App.d.ts.map +1 -1
  153. package/dist/tui/BackgroundJobsPanel.d.ts.map +1 -1
  154. package/dist/tui/BrandHeader.d.ts +3 -1
  155. package/dist/tui/BrandHeader.d.ts.map +1 -1
  156. package/dist/tui/Composer.d.ts +23 -1
  157. package/dist/tui/Composer.d.ts.map +1 -1
  158. package/dist/tui/ComposerFrame.d.ts +10 -3
  159. package/dist/tui/ComposerFrame.d.ts.map +1 -1
  160. package/dist/tui/LiveActivity.d.ts +4 -0
  161. package/dist/tui/LiveActivity.d.ts.map +1 -1
  162. package/dist/tui/PendingInputPanel.d.ts +14 -11
  163. package/dist/tui/PendingInputPanel.d.ts.map +1 -1
  164. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  165. package/dist/tui/StatusBar.d.ts +61 -36
  166. package/dist/tui/StatusBar.d.ts.map +1 -1
  167. package/dist/tui/Transcript.d.ts +14 -0
  168. package/dist/tui/Transcript.d.ts.map +1 -1
  169. package/dist/tui/agent-transcript-rows.d.ts +34 -12
  170. package/dist/tui/agent-transcript-rows.d.ts.map +1 -1
  171. package/dist/tui/agent.d.ts +49 -1
  172. package/dist/tui/agent.d.ts.map +1 -1
  173. package/dist/tui/job-exit-row.d.ts +19 -0
  174. package/dist/tui/job-exit-row.d.ts.map +1 -0
  175. package/dist/tui/permission-review.d.ts +26 -0
  176. package/dist/tui/permission-review.d.ts.map +1 -1
  177. package/dist/tui/pr-status.d.ts +112 -0
  178. package/dist/tui/pr-status.d.ts.map +1 -0
  179. package/dist/tui/shell-cell.d.ts +86 -0
  180. package/dist/tui/shell-cell.d.ts.map +1 -0
  181. package/dist/tui/shorten-path.d.ts +10 -0
  182. package/dist/tui/shorten-path.d.ts.map +1 -0
  183. package/dist/tui/slashCommands.d.ts +4 -0
  184. package/dist/tui/slashCommands.d.ts.map +1 -1
  185. package/dist/tui/theme.d.ts +6 -0
  186. package/dist/tui/theme.d.ts.map +1 -1
  187. package/dist/tui/tidy-tool-output.d.ts +5 -0
  188. package/dist/tui/tidy-tool-output.d.ts.map +1 -1
  189. package/dist/tui/types.d.ts +10 -1
  190. package/dist/tui/types.d.ts.map +1 -1
  191. package/dist/tui/use-pr-status.d.ts +15 -0
  192. package/dist/tui/use-pr-status.d.ts.map +1 -0
  193. package/dist/tui/workflow-runs.d.ts +42 -0
  194. package/dist/tui/workflow-runs.d.ts.map +1 -0
  195. package/package.json +7 -7
  196. package/dist/chunks/acp-P22WRX3A.js.map +0 -6
  197. package/dist/chunks/agent-session-C2HDOXK4.js +0 -46
  198. package/dist/chunks/chunk-53EZXXT4.js.map +0 -6
  199. package/dist/chunks/chunk-H7VJHF5S.js.map +0 -6
  200. package/dist/chunks/chunk-L6FMG3R6.js +0 -380
  201. package/dist/chunks/chunk-L6FMG3R6.js.map +0 -6
  202. package/dist/chunks/chunk-ZKTLXAQK.js.map +0 -6
  203. package/dist/chunks/exec-AHAC6YBQ.js.map +0 -6
  204. package/dist/chunks/session-step-YNMU75FQ.js +0 -26
  205. package/dist/chunks/tui-UY3ZLTMX.js.map +0 -6
  206. /package/dist/chunks/{activity-command-OK463NV4.js.map → activity-command-MCYEK4Z4.js.map} +0 -0
  207. /package/dist/chunks/{add-ML53TFN2.js.map → add-ZQ3YWP4F.js.map} +0 -0
  208. /package/dist/chunks/{agent-3ST7Q6HZ.js.map → agent-UO62HZPI.js.map} +0 -0
  209. /package/dist/chunks/{agent-session-C2HDOXK4.js.map → agent-session-DU55LD4P.js.map} +0 -0
  210. /package/dist/chunks/{archive-WV2NBOHR.js.map → archive-VPREZOGC.js.map} +0 -0
  211. /package/dist/chunks/{bin-main-FPJQMK33.js.map → bin-main-J5ULRXXN.js.map} +0 -0
  212. /package/dist/chunks/{browser-JRWZ3PYX.js.map → browser-FZWYOIIJ.js.map} +0 -0
  213. /package/dist/chunks/{chat-3IJFKDSN.js.map → chat-BGWKKQTT.js.map} +0 -0
  214. /package/dist/chunks/{chunk-S7E42272.js.map → chunk-2BZOT2CT.js.map} +0 -0
  215. /package/dist/chunks/{chunk-LIZPXS73.js.map → chunk-3F5DGROG.js.map} +0 -0
  216. /package/dist/chunks/{chunk-KNNQHRZ4.js.map → chunk-46B7KRXY.js.map} +0 -0
  217. /package/dist/chunks/{chunk-PT7TZNBV.js.map → chunk-52OVP5BG.js.map} +0 -0
  218. /package/dist/chunks/{chunk-X2YRM3UE.js.map → chunk-56OUKG5W.js.map} +0 -0
  219. /package/dist/chunks/{chunk-HJ42RG5U.js.map → chunk-5URT3ZM2.js.map} +0 -0
  220. /package/dist/chunks/{chunk-GWOW3U2S.js.map → chunk-6TDJXZ5W.js.map} +0 -0
  221. /package/dist/chunks/{chunk-43FBWINL.js.map → chunk-AEPAIDAA.js.map} +0 -0
  222. /package/dist/chunks/{chunk-7WQV2FSF.js.map → chunk-AHYHR5DY.js.map} +0 -0
  223. /package/dist/chunks/{chunk-XAKL7C7B.js.map → chunk-AP5KD43Y.js.map} +0 -0
  224. /package/dist/chunks/{chunk-NRML7BIR.js.map → chunk-AS7UWXMN.js.map} +0 -0
  225. /package/dist/chunks/{chunk-QQLB573I.js.map → chunk-BOV53LZO.js.map} +0 -0
  226. /package/dist/chunks/{chunk-GPBUDMUF.js.map → chunk-BUCICQWG.js.map} +0 -0
  227. /package/dist/chunks/{chunk-CFN7CUD3.js.map → chunk-DYUOXP5Q.js.map} +0 -0
  228. /package/dist/chunks/{chunk-G5XTLTDR.js.map → chunk-E7HLYLD7.js.map} +0 -0
  229. /package/dist/chunks/{chunk-ABD2DOO2.js.map → chunk-EKUJUPFA.js.map} +0 -0
  230. /package/dist/chunks/{chunk-AABPCENY.js.map → chunk-F3YQ2CSZ.js.map} +0 -0
  231. /package/dist/chunks/{chunk-2VXA7GZU.js.map → chunk-FU4GQ7K2.js.map} +0 -0
  232. /package/dist/chunks/{chunk-VHKKPDL2.js.map → chunk-GQN64E36.js.map} +0 -0
  233. /package/dist/chunks/{chunk-AL6ESCHD.js.map → chunk-GSHSAMZJ.js.map} +0 -0
  234. /package/dist/chunks/{chunk-3OZ2OBGU.js.map → chunk-HKDPP2JF.js.map} +0 -0
  235. /package/dist/chunks/{chunk-YZ675PG4.js.map → chunk-HSEJGSXE.js.map} +0 -0
  236. /package/dist/chunks/{chunk-ZXWJ6G3J.js.map → chunk-I6CDUPVR.js.map} +0 -0
  237. /package/dist/chunks/{chunk-27VZRJTG.js.map → chunk-IQBR45AU.js.map} +0 -0
  238. /package/dist/chunks/{chunk-HIZ7F6BT.js.map → chunk-JCDTR2ZU.js.map} +0 -0
  239. /package/dist/chunks/{chunk-ZNAH4EGP.js.map → chunk-KMHLON54.js.map} +0 -0
  240. /package/dist/chunks/{chunk-CXLSM5SH.js.map → chunk-KOG2WB66.js.map} +0 -0
  241. /package/dist/chunks/{chunk-AGHVC2IJ.js.map → chunk-LBH5WVXU.js.map} +0 -0
  242. /package/dist/chunks/{chunk-NKEOCU52.js.map → chunk-LNQ6SCBF.js.map} +0 -0
  243. /package/dist/chunks/{chunk-U5AWHJ7O.js.map → chunk-MBBFX64S.js.map} +0 -0
  244. /package/dist/chunks/{chunk-PJ3UYK2K.js.map → chunk-MJO6CH5F.js.map} +0 -0
  245. /package/dist/chunks/{chunk-AVIW5JJF.js.map → chunk-NATYSTPM.js.map} +0 -0
  246. /package/dist/chunks/{chunk-KQOIPRZ5.js.map → chunk-QRT3N2K3.js.map} +0 -0
  247. /package/dist/chunks/{chunk-DYBUCWAB.js.map → chunk-QXDKRJZ5.js.map} +0 -0
  248. /package/dist/chunks/{chunk-EOO5AKO4.js.map → chunk-RBX6RVYO.js.map} +0 -0
  249. /package/dist/chunks/{chunk-VSUHR44P.js.map → chunk-RM6HTBJK.js.map} +0 -0
  250. /package/dist/chunks/{chunk-YLIKDPD6.js.map → chunk-S6DK2YOB.js.map} +0 -0
  251. /package/dist/chunks/{chunk-WW4VKEBD.js.map → chunk-S6MZK4LD.js.map} +0 -0
  252. /package/dist/chunks/{chunk-ZZ6Z2DO6.js.map → chunk-UFTNEQFN.js.map} +0 -0
  253. /package/dist/chunks/{chunk-7OEK2NAO.js.map → chunk-UXGI3FE5.js.map} +0 -0
  254. /package/dist/chunks/{chunk-WNMRETWS.js.map → chunk-VUOS5SQ3.js.map} +0 -0
  255. /package/dist/chunks/{chunk-YTJO7G24.js.map → chunk-XCWZZZOW.js.map} +0 -0
  256. /package/dist/chunks/{chunk-RPAHIOW6.js.map → chunk-YYQFUKI7.js.map} +0 -0
  257. /package/dist/chunks/{chunk-5GARJ3CK.js.map → chunk-YYVDLVUM.js.map} +0 -0
  258. /package/dist/chunks/{chunk-HQZSTYKY.js.map → chunk-ZB5ETOVE.js.map} +0 -0
  259. /package/dist/chunks/{chunk-GFSD2D3M.js.map → chunk-ZG6NVROB.js.map} +0 -0
  260. /package/dist/chunks/{chunk-MBGQS5YA.js.map → chunk-ZHBHRMCI.js.map} +0 -0
  261. /package/dist/chunks/{cli-runtime-CQKITOHY.js.map → cli-runtime-NG23IVRM.js.map} +0 -0
  262. /package/dist/chunks/{commands-UEPVSG33.js.map → commands-LQISMOPF.js.map} +0 -0
  263. /package/dist/chunks/{crash-report-3GQ3SJML.js.map → crash-report-EYK56MJJ.js.map} +0 -0
  264. /package/dist/chunks/{dist-YDFJ4YOH.js.map → dist-3AMBKAG4.js.map} +0 -0
  265. /package/dist/chunks/{dist-SCEJQJFY.js.map → dist-AUDNCB3F.js.map} +0 -0
  266. /package/dist/chunks/{dist-FFMNE5LK.js.map → dist-AZJ56DQJ.js.map} +0 -0
  267. /package/dist/chunks/{dist-IPJVDPA3.js.map → dist-DWB5AYXB.js.map} +0 -0
  268. /package/dist/chunks/{dist-VJ2UQYSX.js.map → dist-EDKLCZY4.js.map} +0 -0
  269. /package/dist/chunks/{dist-Q37IZHCW.js.map → dist-PZXF5NU3.js.map} +0 -0
  270. /package/dist/chunks/{dist-AMYVT2VT.js.map → dist-XT4V74YL.js.map} +0 -0
  271. /package/dist/chunks/{doctor-YWK25HGQ.js.map → doctor-3EOUWDYB.js.map} +0 -0
  272. /package/dist/chunks/{drain-5R73B66Y.js.map → drain-VKGTCFXC.js.map} +0 -0
  273. /package/dist/chunks/{eval-GYPUHRIK.js.map → eval-VHWEJ4GG.js.map} +0 -0
  274. /package/dist/chunks/{home-GI6TRZAN.js.map → home-H4GTIYO5.js.map} +0 -0
  275. /package/dist/chunks/{host-queries-MN57UTDU.js.map → host-queries-AIZVYFDQ.js.map} +0 -0
  276. /package/dist/chunks/{lifecycle-7LD634AQ.js.map → lifecycle-UF7VDCOQ.js.map} +0 -0
  277. /package/dist/chunks/{list-DSHTQRTP.js.map → list-JJZ7I5OF.js.map} +0 -0
  278. /package/dist/chunks/{login-R5P2OAXZ.js.map → login-T2RKNHK2.js.map} +0 -0
  279. /package/dist/chunks/{logs-SGPSXLBY.js.map → logs-J6D4SEDY.js.map} +0 -0
  280. /package/dist/chunks/{mcp-MC6B34XH.js.map → mcp-WONRVJ26.js.map} +0 -0
  281. /package/dist/chunks/{message-command-4MV2SVHP.js.map → message-command-BGQB2TFW.js.map} +0 -0
  282. /package/dist/chunks/{operator-tools-GI63VOXH.js.map → operator-tools-H4MYC5PE.js.map} +0 -0
  283. /package/dist/chunks/{output-schema-74VSN66J.js.map → output-schema-RFJUTQ2N.js.map} +0 -0
  284. /package/dist/chunks/{pal-BWPYGQ4B.js.map → pal-AV7AD5MG.js.map} +0 -0
  285. /package/dist/chunks/{providers-YV45XVWS.js.map → providers-BHF65IUG.js.map} +0 -0
  286. /package/dist/chunks/{resident-OC2D5V5I.js.map → resident-YF3MIILM.js.map} +0 -0
  287. /package/dist/chunks/{resume-command-DZBKOABY.js.map → resume-command-Y3NYDSI4.js.map} +0 -0
  288. /package/dist/chunks/{schedule-GUD625PJ.js.map → schedule-6T2MNPKK.js.map} +0 -0
  289. /package/dist/chunks/{service-67FZ3N75.js.map → service-2VASPD2V.js.map} +0 -0
  290. /package/dist/chunks/{session-step-YNMU75FQ.js.map → session-step-LJ24HVLF.js.map} +0 -0
  291. /package/dist/chunks/{skills-DNNEKEOH.js.map → skills-K3JRZ3IR.js.map} +0 -0
  292. /package/dist/chunks/{state-K7MMFNZC.js.map → state-QPSQI7U7.js.map} +0 -0
  293. /package/dist/chunks/{store-2PDDGKYZ.js.map → store-7WZWQXKX.js.map} +0 -0
  294. /package/dist/chunks/{store-KYMOKW6X.js.map → store-PSQKDEPY.js.map} +0 -0
  295. /package/dist/chunks/{store-NIBJFQOT.js.map → store-Z3PS6LUZ.js.map} +0 -0
  296. /package/dist/chunks/{upgrade-2NO7NPPM.js.map → upgrade-C6QUXRLB.js.map} +0 -0
  297. /package/dist/chunks/{worktree-ADQJ4AJ5.js.map → worktree-KLD2PAMU.js.map} +0 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The `workflow` tool and the run registry it feeds, for one session.
3
+ *
4
+ * What starting an agent means is not decided here: `spawn` is the subagent
5
+ * runtime's own path (`launchWorkflowAgent`), so a workflow's agents keep the
6
+ * `Agent` tool's permission mode, rules, sandbox, tool roster and budget. This
7
+ * file adds no way around any of them.
8
+ */
9
+ import { type ToolDefinition, type TurnId, type WorkflowLimits } from '@namzu/sdk';
10
+ import type { SubagentRuntime } from '../subagents/runtime.js';
11
+ import { type WorkflowRunEnd, WorkflowRunRegistry } from './registry.js';
12
+ /** Longest script the tool takes, in characters. The review shows all of it. */
13
+ export declare const MAX_WORKFLOW_SCRIPT_CHARS = 262144;
14
+ /** Longest `args` JSON the tool takes, in characters. */
15
+ export declare const MAX_WORKFLOW_ARGS_CHARS = 65536;
16
+ /** `w` and eight characters of `0-9a-z`, like a background job's `b…`. */
17
+ export declare function createWorkflowRunId(isTaken?: (id: string) => boolean): string;
18
+ /** The registrations one run needs for as long as it lives. */
19
+ export interface WorkflowRunTurn {
20
+ /** A turn id the delegation path accepts for this run. */
21
+ readonly turnId: TurnId;
22
+ /** Free the registrations. Safe to call twice. */
23
+ release(): Promise<void>;
24
+ }
25
+ export interface WorkflowHostOptions {
26
+ readonly subagents: Pick<SubagentRuntime, 'launchWorkflowAgent'>;
27
+ /**
28
+ * `<session>/runs`: each run keeps its journal in `<runId>/workflow/`.
29
+ * Absent for a session that keeps nothing on disk (an ephemeral one).
30
+ */
31
+ readonly runsDirectory: (turnId: TurnId) => string | undefined;
32
+ /**
33
+ * Whether the turn may start a workflow, as a plain reason when it may not.
34
+ * Reviewed like a destructive call; with nobody to review, only a session
35
+ * set to run without asking may start one.
36
+ */
37
+ readonly refusal: (turnId: TurnId) => string | undefined;
38
+ /** Register the run with the delegation path under a turn id of its own. */
39
+ readonly openRunTurn: (originTurnId: TurnId, runId: string) => WorkflowRunTurn;
40
+ /** Limits the run is held to, from the turn that started it. */
41
+ readonly limitsFor?: (turnId: TurnId) => WorkflowLimits | undefined;
42
+ /** Called once when a run ends (the conversation line and the model's message). */
43
+ readonly onEnd?: (end: WorkflowRunEnd) => void;
44
+ readonly registry?: WorkflowRunRegistry;
45
+ }
46
+ export interface WorkflowHost {
47
+ readonly registry: WorkflowRunRegistry;
48
+ readonly tool: ToolDefinition;
49
+ }
50
+ interface WorkflowToolInput {
51
+ script: string;
52
+ args?: unknown;
53
+ description?: string;
54
+ }
55
+ /** What a call to the tool is for, in one line: the model's own summary, else the script's `meta.description`. */
56
+ export declare function describeWorkflowCall(input: Partial<WorkflowToolInput>): string;
57
+ export declare function createWorkflowHost(options: WorkflowHostOptions): WorkflowHost;
58
+ export {};
59
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../src/integrations/workflows/host.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAGN,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,cAAc,EAMnB,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAG9D,OAAO,EAAE,KAAK,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAExE,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,SAAU,CAAA;AAChD,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAI7C,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAqB,GAAG,MAAM,CAa1F;AAED,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,kDAAkD;IAClD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA;IAChE;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IAC9D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACxD,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,eAAe,CAAA;IAC9E,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAA;IACnE,mFAAmF;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CACvC;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAC7B;AAED,UAAU,iBAAiB;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAwCD,kHAAkH;AAClH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAa9E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CA0L7E"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The words about a workflow run: what the model is told, and the one line the
3
+ * person gets in the conversation. Pure, so the wording is tested without a
4
+ * session.
5
+ */
6
+ import { type WorkflowRunView } from './view.js';
7
+ /** Longest return value, in characters, that goes into the completion message. */
8
+ export declare const WORKFLOW_RESULT_CHAR_CAP = 8000;
9
+ export declare function formatDuration(ms: number): string;
10
+ /** Whether a `workflow` tool result is the launch receipt of a run going on in the background. */
11
+ export declare function isBackgroundLaunch(output: string): boolean;
12
+ /** What the model reads right after it started a run. Never shown to the person. */
13
+ export declare function launchedText(view: Pick<WorkflowRunView, 'runId' | 'name'>): string;
14
+ /**
15
+ * The single message the model gets when a run ends: status, the script's
16
+ * return value capped at {@link WORKFLOW_RESULT_CHAR_CAP}, the agents that
17
+ * failed and the usage. The return value comes from subagents that read
18
+ * files and the web, so it is wrapped as material, never as instructions.
19
+ */
20
+ export declare function completionNotice(view: WorkflowRunView): string;
21
+ //# sourceMappingURL=notice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notice.d.ts","sourceRoot":"","sources":["../../../src/integrations/workflows/notice.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,WAAW,CAAA;AAExE,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,OAAO,CAAA;AAK5C,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD;AAWD,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,CAMlF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA8C9D"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * When the `workflow` tool is in the model's tool list.
3
+ *
4
+ * A workflow is a lot of work started on one decision, so the tool is only
5
+ * offered when the operator asked for orchestration: hypermode is on, or the
6
+ * message says "workflow" (or the Turkish "iş akışı"), or it is the `/workflow`
7
+ * command. Everything else gets the `Agent` tool alone. Pure.
8
+ */
9
+ export declare const WORKFLOW_TOOL_NAME = "workflow";
10
+ /** The line under a workflow's launch row in the conversation. */
11
+ export declare const WORKFLOW_BACKGROUND_NOTE = "Running in the background (\u2193 to manage)";
12
+ /** Whether a message asks for a workflow in words. */
13
+ export declare function messageAsksForWorkflow(text: string): boolean;
14
+ export interface WorkflowOffering {
15
+ /** The session's hypermode. */
16
+ readonly hypermode: boolean;
17
+ /** The text of the operator's latest message. */
18
+ readonly userText: string;
19
+ }
20
+ export declare function workflowOffered(input: WorkflowOffering): boolean;
21
+ /**
22
+ * The `/workflow <task>` command, as the message the model receives: the
23
+ * operator's task, plus the words that make the request explicit.
24
+ */
25
+ export declare function workflowCommandPrompt(task: string): string;
26
+ /** The tool's description, as the model reads it. */
27
+ export declare const WORKFLOW_TOOL_DESCRIPTION: string;
28
+ /**
29
+ * Why a turn may not start a workflow, or `undefined` when it may.
30
+ *
31
+ * A workflow is reviewed before it starts, like a destructive call: someone
32
+ * has to approve the script. A session set to run tools without asking
33
+ * (`auto`, which is what "bypass permissions" is) has already decided that.
34
+ * Anything else with nobody to ask refuses, in words the model can pass on.
35
+ */
36
+ export declare function workflowRefusal(turn: {
37
+ readonly interactive: boolean;
38
+ readonly mode: string;
39
+ }): string | undefined;
40
+ //# sourceMappingURL=offering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offering.d.ts","sourceRoot":"","sources":["../../../src/integrations/workflows/offering.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,kBAAkB,aAAa,CAAA;AAE5C,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,iDAA4C,CAAA;AAMjF,sDAAsD;AACtD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM5D;AAED,MAAM,WAAW,gBAAgB;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAEhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,QAmB1B,CAAA;AAEZ;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,GAAG,SAAS,CAGrB"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * The workflow runs of one session: started in the background, observed by the
3
+ * terminal, stopped or trimmed by the operator.
4
+ *
5
+ * A run is `WorkflowRuntime.run()` left going after the tool call that started
6
+ * it returned. The registry folds its events into a {@link WorkflowRunView}
7
+ * (what the rail and the detail read), hands out the controls the runtime
8
+ * gave (`skipAgent`) and an abort, and says once when the run ends. It knows
9
+ * nothing about subagents: starting an agent is the `spawnAgent` the host
10
+ * passes in.
11
+ */
12
+ import type { WorkflowAgentRequest, WorkflowJournal, WorkflowLimits, WorkflowMeta, WorkflowRunResult, WorkflowSpawnAgent } from '@namzu/sdk';
13
+ import { WorkflowRuntime } from '@namzu/sdk';
14
+ import { type WorkflowRunView } from './view.js';
15
+ /** What the registry tells the host when a run ends. */
16
+ export interface WorkflowRunEnd {
17
+ readonly view: WorkflowRunView;
18
+ readonly result?: WorkflowRunResult;
19
+ }
20
+ export interface StartWorkflowRun {
21
+ readonly runId: string;
22
+ readonly meta: WorkflowMeta;
23
+ readonly script: string;
24
+ readonly args?: unknown;
25
+ readonly limits?: WorkflowLimits;
26
+ readonly journal?: WorkflowJournal;
27
+ /**
28
+ * Start one agent. `viewed` reports the agent's row in the monitor as soon
29
+ * as it exists; the registry records it on the run so the detail can open
30
+ * the agent's own transcript.
31
+ */
32
+ readonly spawn: (request: WorkflowAgentRequest, signal: AbortSignal, viewed: (viewId: string) => void) => ReturnType<WorkflowSpawnAgent>;
33
+ /**
34
+ * Called once, the first time the script asks for an agent (before it has
35
+ * started). A run that ends without this ever being called never started
36
+ * any work: the `workflow` tool answers for it inline.
37
+ */
38
+ readonly onFirstAgent?: () => void;
39
+ /** Called once, after the run has ended and its last view is stored. */
40
+ readonly onEnd?: (end: WorkflowRunEnd) => void | Promise<void>;
41
+ }
42
+ export declare class WorkflowRunRegistry {
43
+ private readonly runs;
44
+ private readonly listeners;
45
+ private readonly runtime;
46
+ private readonly now;
47
+ private notifyTimer;
48
+ private closed;
49
+ constructor(options?: {
50
+ readonly now?: () => number;
51
+ readonly runtime?: WorkflowRuntime;
52
+ });
53
+ list(): readonly WorkflowRunView[];
54
+ get(runId: string): WorkflowRunView | undefined;
55
+ subscribe(listener: () => void): () => void;
56
+ /** Runs that have not ended. */
57
+ running(): readonly WorkflowRunView[];
58
+ /** Begin a run. Returns at once; the run goes on in the background. */
59
+ start(input: StartWorkflowRun): WorkflowRunView;
60
+ /**
61
+ * Resolves once no run is going, or when `signal` aborts (whichever is first).
62
+ * A run's own limits bound the wait: the runtime stops one at its duration cap.
63
+ */
64
+ whenIdle(signal?: AbortSignal): Promise<void>;
65
+ /** Stop a run: queued agents never start, running ones are aborted. False when it is not running. */
66
+ stop(runId: string): boolean;
67
+ /** Skip one agent of a run. False when it is not running or already settled. */
68
+ skipAgent(runId: string, index: number): boolean;
69
+ /** Which run and agent a monitor row stands for, if any. */
70
+ agentOf(viewId: string): {
71
+ readonly runId: string;
72
+ readonly index: number;
73
+ } | undefined;
74
+ /**
75
+ * Forget one run that has ended, so nothing lists it. For a run the tool
76
+ * answered inline: it never became background work. False when the run is
77
+ * unknown or still going.
78
+ */
79
+ discard(runId: string): boolean;
80
+ /** Forget runs that have ended (a new conversation). Running ones are stopped first. */
81
+ reset(): void;
82
+ close(): void;
83
+ private notifySoon;
84
+ }
85
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/integrations/workflows/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACX,oBAAoB,EAGpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EACN,KAAK,eAAe,EAKpB,MAAM,WAAW,CAAA;AAElB,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,CACf,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,KAC5B,UAAU,CAAC,kBAAkB,CAAC,CAAA;IACnC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9D;AAUD,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,MAAM,CAAQ;gBAGrB,OAAO,GAAE;QACR,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;QAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAA;KAC7B;IAMP,IAAI,IAAI,SAAS,eAAe,EAAE;IAIlC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI/C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAK3C,gCAAgC;IAChC,OAAO,IAAI,SAAS,eAAe,EAAE;IAIrC,uEAAuE;IACvE,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe;IAqE/C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C,qGAAqG;IACrG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAO5B,gFAAgF;IAChF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAMhD,4DAA4D;IAC5D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAQvF;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQ/B,wFAAwF;IACxF,KAAK,IAAI,IAAI;IAMb,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,UAAU;CAelB"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * What the terminal knows about one workflow run, as plain data.
3
+ *
4
+ * A run is folded from the SDK's workflow events (and, for a run from an
5
+ * earlier process, from its journal), so the rail, the detail view and the
6
+ * `/workflows` list all read one shape and none of them runs the script.
7
+ * Pure: no timers, no I/O.
8
+ */
9
+ import type { WorkflowEvent, WorkflowJournalRecord, WorkflowPhaseMeta, WorkflowUsage } from '@namzu/sdk';
10
+ export type WorkflowRunStatus = 'running' | 'completed' | 'failed' | 'stopped';
11
+ export type WorkflowAgentStatus = 'queued' | 'running' | 'done' | 'failed' | 'skipped';
12
+ export interface WorkflowAgentView {
13
+ /** 1-based, in the order the script asked. */
14
+ readonly index: number;
15
+ readonly label: string;
16
+ readonly phaseIndex?: number;
17
+ readonly phaseTitle?: string;
18
+ readonly agentType?: string;
19
+ readonly model?: string;
20
+ readonly status: WorkflowAgentStatus;
21
+ readonly queuedAt: number;
22
+ readonly startedAt?: number;
23
+ readonly finishedAt?: number;
24
+ readonly tokens: number;
25
+ readonly toolCalls: number;
26
+ readonly lastTool?: string;
27
+ readonly promptPreview?: string;
28
+ readonly resultPreview?: string;
29
+ readonly error?: string;
30
+ /** The agent's own row in the subagent monitor, once it exists. */
31
+ readonly viewId?: string;
32
+ }
33
+ export interface WorkflowPhaseView {
34
+ /** 1-based first-seen order; declared titles come first. */
35
+ readonly index: number;
36
+ readonly title: string;
37
+ readonly detail?: string;
38
+ readonly declared: boolean;
39
+ }
40
+ export interface WorkflowRunView {
41
+ readonly runId: string;
42
+ /** The id the run's agents carry as their `workflowId` in the monitor. */
43
+ readonly workflowId: string;
44
+ /** The display group the cockpit and the rail use for this run. */
45
+ readonly groupId: string;
46
+ readonly name: string;
47
+ readonly description: string;
48
+ readonly status: WorkflowRunStatus;
49
+ readonly startedAt: number;
50
+ readonly endedAt?: number;
51
+ readonly phases: readonly WorkflowPhaseView[];
52
+ readonly agents: readonly WorkflowAgentView[];
53
+ /** The last few `log()` lines, newest last. */
54
+ readonly logs: readonly string[];
55
+ readonly error?: string;
56
+ readonly result?: unknown;
57
+ readonly usage?: WorkflowUsage;
58
+ }
59
+ /** The monitor's `workflowId` for a run's agents. */
60
+ export declare function workflowRunWorkflowId(runId: string): string;
61
+ /** The display group id for a run. */
62
+ export declare function workflowRunGroupId(runId: string): string;
63
+ /** Whether a monitor row belongs to a workflow run (as opposed to an `Agent` tool call). */
64
+ export declare function isWorkflowRunAgent(agent: {
65
+ readonly workflowId: string;
66
+ }): boolean;
67
+ export declare function initialRunView(input: {
68
+ readonly runId: string;
69
+ readonly name: string;
70
+ readonly description: string;
71
+ readonly phases: readonly WorkflowPhaseMeta[];
72
+ readonly at: number;
73
+ }): WorkflowRunView;
74
+ /** Fold one SDK event into the run. Events of another run are ignored. */
75
+ export declare function reduceRunView(view: WorkflowRunView, event: WorkflowEvent): WorkflowRunView;
76
+ /** Record which monitor row is an agent's own, so the detail can open its transcript. */
77
+ export declare function attachAgentView(view: WorkflowRunView, index: number, viewId: string): WorkflowRunView;
78
+ /** The run ended while agents were still listed as going (a crash or a stop): close them. */
79
+ export declare function closeOpenAgents(view: WorkflowRunView, at: number): WorkflowRunView;
80
+ export interface WorkflowAgentCounts {
81
+ readonly total: number;
82
+ /** Agents that completed. Skipped, failed and stopped ones are not counted here. */
83
+ readonly done: number;
84
+ /** Agents that are no longer going, however they ended. */
85
+ readonly settled: number;
86
+ readonly failed: number;
87
+ readonly running: number;
88
+ readonly queued: number;
89
+ }
90
+ export declare function countAgents(view: Pick<WorkflowRunView, 'agents'>): WorkflowAgentCounts;
91
+ export declare function runTokens(view: Pick<WorkflowRunView, 'agents'>): number;
92
+ /**
93
+ * Rebuild a run from its journal, for a run this process did not start. Lines
94
+ * that are not records are skipped; the result is whatever the file proves.
95
+ */
96
+ export declare function viewFromJournal(records: readonly WorkflowJournalRecord[]): WorkflowRunView | undefined;
97
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/integrations/workflows/view.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type SubagentActivity, type SubagentActivityStatus, type SubagentNarrationLine } from '../integrations/subagents/activity.js';
2
+ import { type WorkflowRunStatus, type WorkflowRunView } from '../integrations/workflows/view.js';
2
3
  import { formatCompactCount } from './units.js';
3
4
  /**
4
5
  * Shown at the head of a transcript rebuilt from saved evidence.
@@ -42,48 +43,147 @@ export interface AgentNarrationBandProps {
42
43
  * (`research/conversation-evidence/narration-band-cli.mjs`).
43
44
  */
44
45
  export declare function AgentNarrationBand({ lines }: AgentNarrationBandProps): import("react/jsx-runtime").JSX.Element | null;
46
+ /** Rows of agents the rail shows at once; the rest sit behind `↓ N more`. */
47
+ export declare const AGENT_RAIL_WINDOW = 5;
48
+ /** How long a finished agent stays on the rail before it leaves. */
49
+ export declare const AGENT_RAIL_FINISHED_LINGER_MS = 30000;
50
+ /**
51
+ * The agents the rail lists: everything running, plus whatever finished less
52
+ * than {@link AGENT_RAIL_FINISHED_LINGER_MS} ago, oldest launch first.
53
+ *
54
+ * Saved children (`replayed`) never appear — they ended in another process,
55
+ * and the rail says what is moving now; the cockpit still lists them. An
56
+ * agent the operator already cleared with `x` stays off the rail.
57
+ */
58
+ export declare function railAgents(agents: readonly SubagentActivity[], now: number, dismissed?: ReadonlySet<string>): readonly SubagentActivity[];
59
+ /**
60
+ * Milliseconds until the next finished agent leaves the rail, or undefined
61
+ * when none is waiting to leave. App sleeps exactly this long instead of
62
+ * ticking, so an idle session re-renders nothing.
63
+ */
64
+ export declare function railNextEviction(agents: readonly SubagentActivity[], now: number, runs?: readonly WorkflowRunView[]): number | undefined;
65
+ /** Whether `x` stops this agent (it is running) or only clears it (it has finished). */
66
+ export declare function railActionFor(agent: SubagentActivity): 'stop' | 'clear';
67
+ /**
68
+ * The right-hand block of an agent row: how long it has run and what it has
69
+ * spent. A queued agent says so instead of showing a clock that has not
70
+ * started.
71
+ */
72
+ export declare function railStatusText(agent: SubagentActivity, now: number): string;
73
+ /** What a workflow row shows about how the group ended; `running` until every member has settled. */
74
+ export type RailWorkflowStatus = 'running' | 'completed' | 'failed' | 'stopped';
75
+ /**
76
+ * One row of the rail: the agents that share an explicit `workflow` label,
77
+ * seen as a single piece of work. Derived from the agents alone — the kernel
78
+ * has no workflow object, only the display label each child carries.
79
+ */
80
+ export interface RailWorkflow {
81
+ /** The group id the cockpit also uses, so a row opens its own workflow. */
82
+ readonly id: string;
83
+ /** Keyboard-focus id of the row; never collides with an agent's view id. */
84
+ readonly focusId: string;
85
+ readonly name: string;
86
+ readonly startedAt: number;
87
+ /** When the last member settled; undefined while any member is still going. */
88
+ readonly endedAt?: number;
89
+ readonly done: number;
90
+ readonly total: number;
91
+ /** Summed spend of the members that reported usage; undefined when none has. */
92
+ readonly tokens?: number;
93
+ readonly failed: number;
94
+ readonly status: RailWorkflowStatus;
95
+ readonly agents: readonly SubagentActivity[];
96
+ /** The `workflow` tool's run this row stands for; absent for a group of labelled `Agent` calls. */
97
+ readonly runId?: string;
98
+ }
99
+ /**
100
+ * The workflows the rail lists: a group of agents the model gave one explicit
101
+ * `workflow` label, running or finished less than
102
+ * {@link AGENT_RAIL_FINISHED_LINGER_MS} ago, oldest first. Unlabelled batches
103
+ * are only agents, and saved (`replayed`) children belong to another process.
104
+ * A workflow the operator already cleared with `x` stays off the rail.
105
+ */
106
+ export declare function railWorkflows(agents: readonly SubagentActivity[], now: number, dismissed?: ReadonlySet<string>, runs?: readonly WorkflowRunView[]): readonly RailWorkflow[];
107
+ /** One run's rail row, from the run itself: queued agents count, and a run with no agent yet still has a row. */
108
+ export declare function runRailWorkflow(run: WorkflowRunView, agents: readonly SubagentActivity[]): RailWorkflow;
109
+ /**
110
+ * Every labelled workflow whose members have all settled, however long ago:
111
+ * what a closing line reports. The rail's 30 second lifetime does not apply.
112
+ */
113
+ export declare function settledWorkflows(agents: readonly SubagentActivity[]): readonly RailWorkflow[];
114
+ /** Whether `x` stops this workflow (something is still going) or only clears the finished row. */
115
+ export declare function railWorkflowActionFor(workflow: RailWorkflow): 'stop' | 'clear';
116
+ /** `▰▰▰▱▱▱`: filled cells are the share of agents settled, rounded down. */
117
+ export declare function railProgressBar(done: number, total: number, width: number): [string, string];
118
+ /** One way to draw a row's right-hand block: a bar width and the text after it. */
119
+ export interface WorkflowRowVariant {
120
+ readonly barWidth: number;
121
+ readonly text: string;
122
+ }
123
+ /**
124
+ * The right-hand block of a workflow row, widest first. Words go before
125
+ * numbers as the row narrows: the counter, then the elapsed time, then the
126
+ * word `tokens`, then the bar shrinks from 20 to 12 to 8 cells and finally
127
+ * stands alone. The caller takes the first one that fits.
128
+ */
129
+ export declare function workflowRowVariants(workflow: RailWorkflow, now: number): readonly WorkflowRowVariant[];
130
+ /**
131
+ * Picks how a workflow row is laid out in `columns` cells: the first variant
132
+ * of {@link workflowRowVariants} that leaves the name at least
133
+ * `min(8, nameWidth)` cells, with the name squeezed into whatever is left.
134
+ */
135
+ export declare function layoutWorkflowRow(workflow: RailWorkflow, now: number, columns: number, nameWidth: number): {
136
+ readonly variant: WorkflowRowVariant;
137
+ readonly nameWidth: number;
138
+ };
45
139
  export interface AgentTaskPanelProps {
140
+ /** Already filtered to what the rail shows — see {@link railAgents}. */
46
141
  readonly agents: readonly SubagentActivity[];
142
+ /** One row each below the agents — see {@link railWorkflows}. */
143
+ readonly workflows?: readonly RailWorkflow[];
47
144
  readonly terminalRows: number;
48
145
  readonly terminalColumns: number;
49
146
  /**
50
- * Draw the header line only. Used while a review owns the screen: the
51
- * operator still sees that the work they already approved is moving,
147
+ * One row only (`main` and a count). Used while a review owns the screen:
148
+ * the operator still sees that the work they already approved is moving,
52
149
  * without the rows competing with the question being asked.
53
150
  */
54
151
  readonly compact?: boolean;
152
+ /**
153
+ * The highlighted row while the rail has the keyboard: 0 is `main`, 1 the
154
+ * first agent, then the workflow rows after the last agent. Undefined
155
+ * means the rail is not focused.
156
+ */
157
+ readonly selectedIndex?: number;
158
+ /** The agent whose transcript is on screen; undefined or null means `main`. */
159
+ readonly viewingId?: string | null;
160
+ /** Clock for tests; the panel otherwise ticks once a second. */
161
+ readonly now?: number;
55
162
  }
56
163
  /**
57
- * Compact, automatic view of every cohort that still owns live work.
164
+ * The agents rail: a `main` row, then one row per running or recently
165
+ * finished sub-agent, drawn under the footer line.
58
166
  *
59
- * This is intentionally not a modal: the composer remains mounted directly
60
- * above it and the operator can keep typing while children run. Completed
61
- * siblings remain until their last live sibling settles, then the whole
62
- * cohort leaves this projection together.
167
+ * ```
168
+ * ● main
169
+ * ○ general-purpose Mine the UI reference 12s · ↓ 3.2k tokens
170
+ * ```
63
171
  *
64
- * Drawn as a borderless tree aligned with the transcript's own gutter — a
65
- * header line, then one `├`/`└` branch per agent with its latest activity on
66
- * a `⎿` line beneath it — rather than as a boxed panel: the rows are the
67
- * turn's live work, not chrome around it.
68
- */
69
- export declare function AgentTaskPanel({ agents, terminalRows, terminalColumns, compact, }: AgentTaskPanelProps): import("react/jsx-runtime").JSX.Element;
70
- /**
71
- * Whether each running agent gets its own `⎿ activity` line. On a short
72
- * terminal the activity stays inline after the elapsed time instead, so the
73
- * rail keeps one row per agent where rows are scarcest.
74
- */
75
- export declare function agentTaskPanelShowsActivity(terminalRows: number | undefined): boolean;
76
- /**
77
- * Agents the compact panel may show without crowding the composer/footer.
78
- * An agent costs two rows where activity lines are drawn and one elsewhere,
79
- * so the budget in ROWS stays what it was when every agent took one.
172
+ * `●` marks the transcript on screen, `○` the others; an agent's bullet turns
173
+ * green or red only once it has finished. Not a modal: the composer stays
174
+ * mounted above and keeps taking input until the operator presses ↓ on an
175
+ * empty composer to move into the rail.
80
176
  */
81
- export declare function agentTaskPanelPageSize(terminalRows: number | undefined): number;
177
+ export declare function AgentTaskPanel({ agents, workflows, terminalColumns, compact, selectedIndex, viewingId, now: nowOverride, }: AgentTaskPanelProps): import("react/jsx-runtime").JSX.Element;
82
178
  /**
83
- * Live cohorts plus their already-settled siblings. Terminal cohorts are
84
- * retained by the monitor for explicit history but never reappear here.
179
+ * Whether the rail draws its `main` row: only beside at least one agent row,
180
+ * or while an agent's transcript is the one on screen (so the way back to the
181
+ * conversation is visible). A rail with nothing but workflow rows has no
182
+ * `main`; `compact` is the one-row form and always keeps it.
85
183
  */
86
- export declare function activeSubagentCohorts(agents: readonly SubagentActivity[]): readonly SubagentActivity[];
184
+ export declare function railShowsMain(agentCount: number, viewingId?: string | null, compact?: boolean): boolean;
185
+ /** The key line shown under the rail while it has the keyboard. */
186
+ export declare function railHint(selected: SubagentActivity | RailWorkflow | undefined, columns: number): string;
87
187
  export type AgentCockpitFocus = 'workflows' | 'phases' | 'agents';
88
188
  export interface AgentWorkflow {
89
189
  readonly id: string;
@@ -92,6 +192,10 @@ export interface AgentWorkflow {
92
192
  readonly status: SubagentActivityStatus;
93
193
  readonly phases: readonly AgentPhase[];
94
194
  readonly agents: readonly SubagentActivity[];
195
+ /** The `workflow` tool's run, when this is one: its agents are scripted, not model-launched. */
196
+ readonly runId?: string;
197
+ readonly description?: string;
198
+ readonly runStatus?: WorkflowRunStatus;
95
199
  }
96
200
  export interface AgentPhase {
97
201
  readonly id: string;
@@ -108,6 +212,8 @@ export interface AgentPhase {
108
212
  }
109
213
  export interface AgentCockpitProps {
110
214
  readonly agents: readonly SubagentActivity[];
215
+ /** The `workflow` tool's runs, for the phases they declared that nothing has started in yet. */
216
+ readonly runs?: readonly WorkflowRunView[];
111
217
  readonly selectedPhaseId: string;
112
218
  readonly selectedId: string;
113
219
  readonly focus: AgentCockpitFocus;
@@ -118,13 +224,52 @@ export interface AgentCockpitProps {
118
224
  * Live workflow projection. App owns input; this component renders only the
119
225
  * bounded scheduler state it receives and never invents orchestration state.
120
226
  */
121
- export declare function AgentCockpit({ agents, selectedPhaseId, selectedId, focus, terminalRows, terminalColumns, }: AgentCockpitProps): import("react/jsx-runtime").JSX.Element;
227
+ export declare function AgentCockpit({ agents, runs, selectedPhaseId, selectedId, focus, terminalRows, terminalColumns, }: AgentCockpitProps): import("react/jsx-runtime").JSX.Element | null;
228
+ /** Title of a group the model gave no `phase` label: one group, named for what it holds. */
229
+ export declare const UNLABELLED_PHASE_TITLE = "Agents";
230
+ /** The words a phase is listed under: the model's label verbatim, `Agents` when it gave none. */
231
+ export declare function phaseTitle(phase: Pick<AgentPhase, 'name'>): string;
232
+ export type PhaseOutcome = 'not-started' | 'running' | 'done' | 'failed';
233
+ /**
234
+ * How a phase stands, from its agents alone: `done` once every agent has
235
+ * settled cleanly, `failed` once every agent has settled and any failed or
236
+ * was stopped, `running` otherwise. Only a workflow run declares phases ahead
237
+ * of their agents, so only a run's phase is ever `not-started`.
238
+ */
239
+ export declare function phaseOutcome(phase: Pick<AgentPhase, 'agents'>): PhaseOutcome;
240
+ /** The phase list's `done/total`: settled agents over every agent seen in it. */
241
+ export declare function phaseCount(phase: Pick<AgentPhase, 'agents'>): string;
242
+ /**
243
+ * Whether opening a workflow starts at its list of phases. A workflow the
244
+ * model labelled always does (its agents are only reachable through it); the
245
+ * unlabelled default group keeps jumping straight to its agents when it has
246
+ * a single group.
247
+ */
248
+ export declare function cockpitEntryFocus(workflow: AgentWorkflow): 'phases' | 'agents';
249
+ /** Rows one list level can show; shared with the key handler so paging matches the screen. */
250
+ export declare function workflowDetailPageSize(terminalRows: number): number;
251
+ interface WorkflowDetailProps {
252
+ readonly workflow: AgentWorkflow;
253
+ readonly phases: readonly AgentPhase[];
254
+ readonly selectedPhaseIndex: number;
255
+ readonly selectedAgentIndex: number;
256
+ readonly level: 1 | 2;
257
+ readonly terminalRows: number;
258
+ readonly terminalColumns: number;
259
+ readonly now: number;
260
+ }
261
+ /**
262
+ * The detail of one workflow, as the reference's dialog shows it: a header
263
+ * with the workflow's name and totals, then ONE list at a time. Level 1 is
264
+ * the phases, in order; level 2 is the agents of the selected phase.
265
+ */
266
+ export declare function WorkflowDetail({ workflow, phases, selectedPhaseIndex, selectedAgentIndex, level, terminalRows, terminalColumns, now, }: WorkflowDetailProps): import("react/jsx-runtime").JSX.Element;
122
267
  export declare function agentCockpitIsWide(terminalColumns: number): boolean;
123
268
  /** Group retained work before exposing phases. Labels do not create execution dependencies. */
124
- export declare function agentWorkflows(agents: readonly SubagentActivity[]): readonly AgentWorkflow[];
269
+ export declare function agentWorkflows(agents: readonly SubagentActivity[], runs?: readonly WorkflowRunView[]): readonly AgentWorkflow[];
125
270
  export declare function agentWorkflowPageSize(terminalRows: number): number;
126
271
  export declare function agentPhases(agents: readonly SubagentActivity[]): readonly AgentPhase[];
127
- export declare function agentPhasePageSize(terminalRows: number, wide?: boolean): number;
272
+ export declare function agentPhasePageSize(terminalRows: number, _wide?: boolean): number;
128
273
  export interface AgentTranscriptProps {
129
274
  readonly agent: SubagentActivity;
130
275
  /** Number of physical display rows skipped backward from the live tail. */
@@ -134,10 +279,12 @@ export interface AgentTranscriptProps {
134
279
  /** Reserve more of a short terminal for the child's message editor. */
135
280
  readonly compact?: boolean;
136
281
  readonly navigationHint?: string;
282
+ /** What Esc does here: `agents` returns to the cockpit list, `back` to the rail. */
283
+ readonly escapeTo?: 'agents' | 'back';
137
284
  }
138
285
  /** Child screen; leave two parent footer rows and one terminal cursor row free. */
139
- export declare function AgentTranscript({ agent, tailOffset, terminalRows, terminalColumns, compact, navigationHint, }: AgentTranscriptProps): import("react/jsx-runtime").JSX.Element;
140
- export declare function agentPickerPageSize(terminalRows: number, wide?: boolean): number;
286
+ export declare function AgentTranscript({ agent, tailOffset, terminalRows, terminalColumns, compact, navigationHint, escapeTo, }: AgentTranscriptProps): import("react/jsx-runtime").JSX.Element;
287
+ export declare function agentPickerPageSize(terminalRows: number, _wide?: boolean): number;
141
288
  export declare function agentTranscriptPageSize(terminalRows: number, reservedRows?: number): number;
142
289
  export declare function maxAgentTranscriptTailOffset(agent: SubagentActivity, terminalRows: number, terminalColumns: number): number;
143
290
  export declare function agentTranscriptPage(agent: SubagentActivity, tailOffset: number, terminalRows: number, terminalColumns: number): {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentExplorer.d.ts","sourceRoot":"","sources":["../../src/tui/AgentExplorer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentExplorer.d.ts","sourceRoot":"","sources":["../../src/tui/AgentExplorer.tsx"],"names":[],"mappings":"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"}