@namzu/cli 36.4.0 → 36.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +1 -1
  3. package/dist/bin.js +1 -1
  4. package/dist/chunks/{acp-ERY7R2OY.js → acp-VF7NQ6JH.js} +31 -31
  5. package/dist/chunks/{activity-command-KJXWOIHO.js → activity-command-NKR6S6K6.js} +10 -10
  6. package/dist/chunks/{add-OQ2SSEQT.js → add-26SZOQLU.js} +16 -16
  7. package/dist/chunks/{agent-RZNIDLRL.js → agent-CHDTE6PN.js} +22 -22
  8. package/dist/chunks/agent-session-F5XU36CE.js +46 -0
  9. package/dist/chunks/{archive-LUOLQEUE.js → archive-LYS5QLIY.js} +8 -8
  10. package/dist/chunks/{bin-main-AYEHZYZV.js → bin-main-SXTF5LOX.js} +3 -3
  11. package/dist/chunks/{browser-3POB2OSK.js → browser-4VQULFC5.js} +6 -6
  12. package/dist/chunks/{chat-65V4NXAF.js → chat-AYQUXC4H.js} +13 -13
  13. package/dist/chunks/{chunk-RDFZIPD5.js → chunk-2EUHQ3UU.js} +2 -2
  14. package/dist/chunks/{chunk-5YWWQUJ5.js → chunk-2JVVUMXC.js} +83 -26
  15. package/dist/chunks/chunk-2JVVUMXC.js.map +6 -0
  16. package/dist/chunks/{chunk-CYYGWTKF.js → chunk-2LBM3V3N.js} +2 -2
  17. package/dist/chunks/{chunk-4JPJV4QO.js → chunk-2NUNK4JI.js} +4 -4
  18. package/dist/chunks/{chunk-4BCW647F.js → chunk-3APO4D7I.js} +3 -3
  19. package/dist/chunks/{chunk-5VB3X4UB.js → chunk-3Z24K6SK.js} +2 -2
  20. package/dist/chunks/{chunk-RSRL3R7C.js → chunk-4WM5CKTI.js} +4 -4
  21. package/dist/chunks/{chunk-GTJVK5TJ.js → chunk-5SVMKOEG.js} +2 -2
  22. package/dist/chunks/{chunk-BPWCZOTB.js → chunk-5X6ADRCM.js} +2 -2
  23. package/dist/chunks/{chunk-5ZRZZKPU.js → chunk-6XVYUSCD.js} +9 -12
  24. package/dist/chunks/chunk-6XVYUSCD.js.map +6 -0
  25. package/dist/chunks/{chunk-6RJSJGZF.js → chunk-77VH3G4M.js} +3 -3
  26. package/dist/chunks/{chunk-JRVKQITY.js → chunk-7QVXN3FK.js} +4 -4
  27. package/dist/chunks/{chunk-UH5LZDKB.js → chunk-AO3RYELY.js} +8 -8
  28. package/dist/chunks/{chunk-O5FRXERG.js → chunk-AY6EUCML.js} +2 -2
  29. package/dist/chunks/{chunk-XC2EJGYI.js → chunk-BN5A2MAB.js} +30 -26
  30. package/dist/chunks/chunk-BN5A2MAB.js.map +6 -0
  31. package/dist/chunks/{chunk-5EDECUGH.js → chunk-BUORNM3L.js} +10 -10
  32. package/dist/chunks/{chunk-NS7TSLQK.js → chunk-BVJQ5NVZ.js} +2 -2
  33. package/dist/chunks/{chunk-II72PLUA.js → chunk-DII3AAD5.js} +2 -2
  34. package/dist/chunks/{chunk-WIPSZYIM.js → chunk-DZEWXEUN.js} +4 -4
  35. package/dist/chunks/{chunk-QZSP4UWJ.js → chunk-EOPRQEHH.js} +13 -13
  36. package/dist/chunks/{chunk-LH4NC5YB.js → chunk-G2DJRAN7.js} +3 -3
  37. package/dist/chunks/{chunk-2DECDD7E.js → chunk-GGCPLAQF.js} +3 -3
  38. package/dist/chunks/{chunk-KDOMBH7Q.js → chunk-GKEBBQ3Z.js} +2 -2
  39. package/dist/chunks/{chunk-PAE4DIXR.js → chunk-GZHWOIKT.js} +2 -2
  40. package/dist/chunks/{chunk-WWTZUAII.js → chunk-HO4QVXVW.js} +2 -2
  41. package/dist/chunks/{chunk-RAKBF6PY.js → chunk-IKGTBMN2.js} +182 -45
  42. package/dist/chunks/chunk-IKGTBMN2.js.map +6 -0
  43. package/dist/chunks/{chunk-MGFWBSDV.js → chunk-KWYQCOJA.js} +2 -2
  44. package/dist/chunks/{chunk-ZJXRPK5W.js → chunk-LFHTKWQ5.js} +3 -3
  45. package/dist/chunks/{chunk-ZPCQBKVG.js → chunk-MIIWBGGM.js} +6 -6
  46. package/dist/chunks/{chunk-HZ5AGRNO.js → chunk-MMCTEOXA.js} +2 -2
  47. package/dist/chunks/{chunk-6T4UA6AV.js → chunk-ODSPUOYW.js} +7 -7
  48. package/dist/chunks/{chunk-MH3JD7CF.js → chunk-ODWFH233.js} +2 -2
  49. package/dist/chunks/{chunk-DHXMHWOW.js → chunk-OTG2DGSA.js} +21 -6
  50. package/dist/chunks/chunk-OTG2DGSA.js.map +6 -0
  51. package/dist/chunks/{chunk-3N3CDMDI.js → chunk-P7NKAQ6I.js} +4 -4
  52. package/dist/chunks/{chunk-IQKT222K.js → chunk-PH72277Q.js} +2 -2
  53. package/dist/chunks/{chunk-BXWH4UAN.js → chunk-PQOGAHD5.js} +5 -5
  54. package/dist/chunks/{chunk-ZORZAWSH.js → chunk-QMDN7FIB.js} +28 -6
  55. package/dist/chunks/{chunk-ZORZAWSH.js.map → chunk-QMDN7FIB.js.map} +1 -1
  56. package/dist/chunks/{chunk-WDIIFX5X.js → chunk-QQFWOGD2.js} +6 -6
  57. package/dist/chunks/{chunk-Q4AASGFT.js → chunk-RPRM4YIC.js} +3 -3
  58. package/dist/chunks/{chunk-4TZPG75O.js → chunk-SMUEQ5RA.js} +3 -3
  59. package/dist/chunks/{chunk-VSZX76G4.js → chunk-TC55VVWF.js} +9 -9
  60. package/dist/chunks/{chunk-KZJUG4HN.js → chunk-TUN5WPEN.js} +2 -2
  61. package/dist/chunks/{chunk-MUUBLY7G.js → chunk-UFPOA63T.js} +2 -2
  62. package/dist/chunks/{chunk-EX7TQFIQ.js → chunk-UVAY5ESO.js} +4 -4
  63. package/dist/chunks/{chunk-IGHTIUKD.js → chunk-V6WLAAXC.js} +2 -2
  64. package/dist/chunks/{chunk-6ZEROVY4.js → chunk-VE322URM.js} +3 -3
  65. package/dist/chunks/{chunk-COPHNRLH.js → chunk-VU7JHAR6.js} +12 -12
  66. package/dist/chunks/{chunk-UEDWEOYF.js → chunk-WFAZLQ5N.js} +4 -4
  67. package/dist/chunks/{chunk-FAPXHMTL.js → chunk-X6SYXGAY.js} +4 -4
  68. package/dist/chunks/{chunk-ZSPSXPRH.js → chunk-XQWG6PQN.js} +22 -4
  69. package/dist/chunks/{chunk-ZSPSXPRH.js.map → chunk-XQWG6PQN.js.map} +1 -1
  70. package/dist/chunks/{chunk-JHPCQLRT.js → chunk-YUIZ3I52.js} +3 -3
  71. package/dist/chunks/{chunk-TCHEQRJE.js → chunk-Z6GVIPO2.js} +4 -4
  72. package/dist/chunks/{chunk-K5JGJIJV.js → chunk-ZNAE3DVS.js} +3 -3
  73. package/dist/chunks/{chunk-MEWIPARY.js → chunk-ZU4YCZVG.js} +3 -3
  74. package/dist/chunks/{cli-runtime-Q2NCEXXY.js → cli-runtime-TQIXSGNJ.js} +8 -8
  75. package/dist/chunks/{commands-QY4JZ2D5.js → commands-YCYR4OO7.js} +5 -5
  76. package/dist/chunks/{crash-report-HIJHT4UR.js → crash-report-3STEQBVJ.js} +6 -6
  77. package/dist/chunks/{dist-YW5SKAUO.js → dist-FDUMWWP6.js} +3 -2
  78. package/dist/chunks/{dist-YW5SKAUO.js.map → dist-FDUMWWP6.js.map} +1 -1
  79. package/dist/chunks/{dist-AEKRLZ3M.js → dist-G2ZZ3OAU.js} +2 -2
  80. package/dist/chunks/{dist-BT2HNR4P.js → dist-H4O3BALK.js} +4 -2
  81. package/dist/chunks/{dist-BT2HNR4P.js.map → dist-H4O3BALK.js.map} +1 -1
  82. package/dist/chunks/{dist-M4QJEZ6W.js → dist-ITGC4C5H.js} +2 -2
  83. package/dist/chunks/{dist-X5AY7IYY.js → dist-LCPSN2KU.js} +4 -3
  84. package/dist/chunks/{dist-X5AY7IYY.js.map → dist-LCPSN2KU.js.map} +1 -1
  85. package/dist/chunks/{dist-YGBNYJXU.js → dist-XJYPRLMT.js} +5 -2
  86. package/dist/chunks/dist-XJYPRLMT.js.map +6 -0
  87. package/dist/chunks/{dist-WVLCXQIR.js → dist-Z33PLHVL.js} +4 -3
  88. package/dist/chunks/{dist-WVLCXQIR.js.map → dist-Z33PLHVL.js.map} +1 -1
  89. package/dist/chunks/{doctor-NSYFMZUT.js → doctor-YCV7KO72.js} +6 -6
  90. package/dist/chunks/{drain-KYJSJS32.js → drain-B6NE7ECX.js} +10 -10
  91. package/dist/chunks/{eval-TH3WQFI2.js → eval-HKVQPXKR.js} +2 -2
  92. package/dist/chunks/{exec-VOZ3VAVV.js → exec-MOJSMH4D.js} +22 -22
  93. package/dist/chunks/{home-RAOAISVY.js → home-XWVKZPVH.js} +3 -3
  94. package/dist/chunks/{host-queries-U4CWSBUK.js → host-queries-FZZJCBO7.js} +13 -13
  95. package/dist/chunks/{lifecycle-PXCABRZ5.js → lifecycle-4R4ZRWRI.js} +23 -23
  96. package/dist/chunks/{list-TIF25QTK.js → list-7V5HNSRV.js} +12 -12
  97. package/dist/chunks/{login-J42GU7EB.js → login-MSFPVB2R.js} +8 -8
  98. package/dist/chunks/{logs-BGBHTVT3.js → logs-EGCWVNBU.js} +4 -4
  99. package/dist/chunks/{mcp-WLA36KLN.js → mcp-DWCVUDXK.js} +15 -15
  100. package/dist/chunks/{message-command-KQ2ENU5G.js → message-command-K3GFQCZU.js} +29 -29
  101. package/dist/chunks/{operator-tools-4NS32VMF.js → operator-tools-JRMP2OHZ.js} +11 -11
  102. package/dist/chunks/{output-schema-VUNV5PSI.js → output-schema-XVJ3XUMN.js} +3 -3
  103. package/dist/chunks/{pal-JLYSYJZ4.js → pal-Y5K4PJF7.js} +11 -11
  104. package/dist/chunks/{providers-6S2OD65T.js → providers-MNU4KDEW.js} +6 -6
  105. package/dist/chunks/{resident-FWCWLKM2.js → resident-BI4VV6F4.js} +18 -18
  106. package/dist/chunks/{resume-command-R22OK5SL.js → resume-command-XBFDMRUK.js} +4 -4
  107. package/dist/chunks/{schedule-JP3VSIXA.js → schedule-XEU5OSKW.js} +8 -8
  108. package/dist/chunks/{service-R7SRZ22P.js → service-YOZ6GUL5.js} +22 -22
  109. package/dist/chunks/session-step-RLSIZ3S2.js +26 -0
  110. package/dist/chunks/{skills-MOVGIR6S.js → skills-ZKC4GGY6.js} +8 -8
  111. package/dist/chunks/{state-GVVLT2YD.js → state-RV3YXV6V.js} +2 -2
  112. package/dist/chunks/{store-WQ5PM4Z2.js → store-7X5FJMKH.js} +4 -4
  113. package/dist/chunks/{store-IAAJ4GWU.js → store-PJQ65VLY.js} +10 -8
  114. package/dist/chunks/{store-VVOUETR5.js → store-QLMY3B43.js} +6 -6
  115. package/dist/chunks/{tui-23RXXZL2.js → tui-FZJ37KG2.js} +166 -116
  116. package/dist/chunks/tui-FZJ37KG2.js.map +6 -0
  117. package/dist/chunks/{upgrade-2FXGSXCP.js → upgrade-KJRSVGA3.js} +2 -2
  118. package/dist/chunks/{worktree-FOHNJC3S.js → worktree-JLK5Z6DS.js} +10 -10
  119. package/dist/cli.d.ts.map +1 -1
  120. package/dist/index.js +9 -9
  121. package/dist/integrations/resident/runner-worker.js +16 -16
  122. package/dist/integrations/sessions/store.d.ts +10 -0
  123. package/dist/integrations/sessions/store.d.ts.map +1 -1
  124. package/dist/permissions/mode.d.ts +17 -2
  125. package/dist/permissions/mode.d.ts.map +1 -1
  126. package/dist/permissions/session-allow.d.ts +65 -0
  127. package/dist/permissions/session-allow.d.ts.map +1 -0
  128. package/dist/provider-retry.d.ts +21 -0
  129. package/dist/provider-retry.d.ts.map +1 -0
  130. package/dist/tui/App.d.ts.map +1 -1
  131. package/dist/tui/LiveActivity.d.ts +5 -4
  132. package/dist/tui/LiveActivity.d.ts.map +1 -1
  133. package/dist/tui/PermissionOverlay.d.ts +35 -16
  134. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  135. package/dist/tui/agent.d.ts +32 -18
  136. package/dist/tui/agent.d.ts.map +1 -1
  137. package/dist/tui/permission-review.d.ts +0 -16
  138. package/dist/tui/permission-review.d.ts.map +1 -1
  139. package/dist/tui/plain-interruption.d.ts +16 -4
  140. package/dist/tui/plain-interruption.d.ts.map +1 -1
  141. package/dist/tui/slashCommands.d.ts +0 -13
  142. package/dist/tui/slashCommands.d.ts.map +1 -1
  143. package/dist/tui/types.d.ts +2 -0
  144. package/dist/tui/types.d.ts.map +1 -1
  145. package/package.json +8 -8
  146. package/dist/chunks/agent-session-NATAL4BA.js +0 -46
  147. package/dist/chunks/chunk-5YWWQUJ5.js.map +0 -6
  148. package/dist/chunks/chunk-5ZRZZKPU.js.map +0 -6
  149. package/dist/chunks/chunk-DHXMHWOW.js.map +0 -6
  150. package/dist/chunks/chunk-RAKBF6PY.js.map +0 -6
  151. package/dist/chunks/chunk-XC2EJGYI.js.map +0 -6
  152. package/dist/chunks/dist-YGBNYJXU.js.map +0 -6
  153. package/dist/chunks/session-step-L4HQYX5J.js +0 -26
  154. package/dist/chunks/tui-23RXXZL2.js.map +0 -6
  155. /package/dist/chunks/{acp-ERY7R2OY.js.map → acp-VF7NQ6JH.js.map} +0 -0
  156. /package/dist/chunks/{activity-command-KJXWOIHO.js.map → activity-command-NKR6S6K6.js.map} +0 -0
  157. /package/dist/chunks/{add-OQ2SSEQT.js.map → add-26SZOQLU.js.map} +0 -0
  158. /package/dist/chunks/{agent-RZNIDLRL.js.map → agent-CHDTE6PN.js.map} +0 -0
  159. /package/dist/chunks/{agent-session-NATAL4BA.js.map → agent-session-F5XU36CE.js.map} +0 -0
  160. /package/dist/chunks/{archive-LUOLQEUE.js.map → archive-LYS5QLIY.js.map} +0 -0
  161. /package/dist/chunks/{bin-main-AYEHZYZV.js.map → bin-main-SXTF5LOX.js.map} +0 -0
  162. /package/dist/chunks/{browser-3POB2OSK.js.map → browser-4VQULFC5.js.map} +0 -0
  163. /package/dist/chunks/{chat-65V4NXAF.js.map → chat-AYQUXC4H.js.map} +0 -0
  164. /package/dist/chunks/{chunk-RDFZIPD5.js.map → chunk-2EUHQ3UU.js.map} +0 -0
  165. /package/dist/chunks/{chunk-CYYGWTKF.js.map → chunk-2LBM3V3N.js.map} +0 -0
  166. /package/dist/chunks/{chunk-4JPJV4QO.js.map → chunk-2NUNK4JI.js.map} +0 -0
  167. /package/dist/chunks/{chunk-4BCW647F.js.map → chunk-3APO4D7I.js.map} +0 -0
  168. /package/dist/chunks/{chunk-5VB3X4UB.js.map → chunk-3Z24K6SK.js.map} +0 -0
  169. /package/dist/chunks/{chunk-RSRL3R7C.js.map → chunk-4WM5CKTI.js.map} +0 -0
  170. /package/dist/chunks/{chunk-GTJVK5TJ.js.map → chunk-5SVMKOEG.js.map} +0 -0
  171. /package/dist/chunks/{chunk-BPWCZOTB.js.map → chunk-5X6ADRCM.js.map} +0 -0
  172. /package/dist/chunks/{chunk-6RJSJGZF.js.map → chunk-77VH3G4M.js.map} +0 -0
  173. /package/dist/chunks/{chunk-JRVKQITY.js.map → chunk-7QVXN3FK.js.map} +0 -0
  174. /package/dist/chunks/{chunk-UH5LZDKB.js.map → chunk-AO3RYELY.js.map} +0 -0
  175. /package/dist/chunks/{chunk-O5FRXERG.js.map → chunk-AY6EUCML.js.map} +0 -0
  176. /package/dist/chunks/{chunk-5EDECUGH.js.map → chunk-BUORNM3L.js.map} +0 -0
  177. /package/dist/chunks/{chunk-NS7TSLQK.js.map → chunk-BVJQ5NVZ.js.map} +0 -0
  178. /package/dist/chunks/{chunk-II72PLUA.js.map → chunk-DII3AAD5.js.map} +0 -0
  179. /package/dist/chunks/{chunk-WIPSZYIM.js.map → chunk-DZEWXEUN.js.map} +0 -0
  180. /package/dist/chunks/{chunk-QZSP4UWJ.js.map → chunk-EOPRQEHH.js.map} +0 -0
  181. /package/dist/chunks/{chunk-LH4NC5YB.js.map → chunk-G2DJRAN7.js.map} +0 -0
  182. /package/dist/chunks/{chunk-2DECDD7E.js.map → chunk-GGCPLAQF.js.map} +0 -0
  183. /package/dist/chunks/{chunk-KDOMBH7Q.js.map → chunk-GKEBBQ3Z.js.map} +0 -0
  184. /package/dist/chunks/{chunk-PAE4DIXR.js.map → chunk-GZHWOIKT.js.map} +0 -0
  185. /package/dist/chunks/{chunk-WWTZUAII.js.map → chunk-HO4QVXVW.js.map} +0 -0
  186. /package/dist/chunks/{chunk-MGFWBSDV.js.map → chunk-KWYQCOJA.js.map} +0 -0
  187. /package/dist/chunks/{chunk-ZJXRPK5W.js.map → chunk-LFHTKWQ5.js.map} +0 -0
  188. /package/dist/chunks/{chunk-ZPCQBKVG.js.map → chunk-MIIWBGGM.js.map} +0 -0
  189. /package/dist/chunks/{chunk-HZ5AGRNO.js.map → chunk-MMCTEOXA.js.map} +0 -0
  190. /package/dist/chunks/{chunk-6T4UA6AV.js.map → chunk-ODSPUOYW.js.map} +0 -0
  191. /package/dist/chunks/{chunk-MH3JD7CF.js.map → chunk-ODWFH233.js.map} +0 -0
  192. /package/dist/chunks/{chunk-3N3CDMDI.js.map → chunk-P7NKAQ6I.js.map} +0 -0
  193. /package/dist/chunks/{chunk-IQKT222K.js.map → chunk-PH72277Q.js.map} +0 -0
  194. /package/dist/chunks/{chunk-BXWH4UAN.js.map → chunk-PQOGAHD5.js.map} +0 -0
  195. /package/dist/chunks/{chunk-WDIIFX5X.js.map → chunk-QQFWOGD2.js.map} +0 -0
  196. /package/dist/chunks/{chunk-Q4AASGFT.js.map → chunk-RPRM4YIC.js.map} +0 -0
  197. /package/dist/chunks/{chunk-4TZPG75O.js.map → chunk-SMUEQ5RA.js.map} +0 -0
  198. /package/dist/chunks/{chunk-VSZX76G4.js.map → chunk-TC55VVWF.js.map} +0 -0
  199. /package/dist/chunks/{chunk-KZJUG4HN.js.map → chunk-TUN5WPEN.js.map} +0 -0
  200. /package/dist/chunks/{chunk-MUUBLY7G.js.map → chunk-UFPOA63T.js.map} +0 -0
  201. /package/dist/chunks/{chunk-EX7TQFIQ.js.map → chunk-UVAY5ESO.js.map} +0 -0
  202. /package/dist/chunks/{chunk-IGHTIUKD.js.map → chunk-V6WLAAXC.js.map} +0 -0
  203. /package/dist/chunks/{chunk-6ZEROVY4.js.map → chunk-VE322URM.js.map} +0 -0
  204. /package/dist/chunks/{chunk-COPHNRLH.js.map → chunk-VU7JHAR6.js.map} +0 -0
  205. /package/dist/chunks/{chunk-UEDWEOYF.js.map → chunk-WFAZLQ5N.js.map} +0 -0
  206. /package/dist/chunks/{chunk-FAPXHMTL.js.map → chunk-X6SYXGAY.js.map} +0 -0
  207. /package/dist/chunks/{chunk-JHPCQLRT.js.map → chunk-YUIZ3I52.js.map} +0 -0
  208. /package/dist/chunks/{chunk-TCHEQRJE.js.map → chunk-Z6GVIPO2.js.map} +0 -0
  209. /package/dist/chunks/{chunk-K5JGJIJV.js.map → chunk-ZNAE3DVS.js.map} +0 -0
  210. /package/dist/chunks/{chunk-MEWIPARY.js.map → chunk-ZU4YCZVG.js.map} +0 -0
  211. /package/dist/chunks/{cli-runtime-Q2NCEXXY.js.map → cli-runtime-TQIXSGNJ.js.map} +0 -0
  212. /package/dist/chunks/{commands-QY4JZ2D5.js.map → commands-YCYR4OO7.js.map} +0 -0
  213. /package/dist/chunks/{crash-report-HIJHT4UR.js.map → crash-report-3STEQBVJ.js.map} +0 -0
  214. /package/dist/chunks/{dist-AEKRLZ3M.js.map → dist-G2ZZ3OAU.js.map} +0 -0
  215. /package/dist/chunks/{dist-M4QJEZ6W.js.map → dist-ITGC4C5H.js.map} +0 -0
  216. /package/dist/chunks/{doctor-NSYFMZUT.js.map → doctor-YCV7KO72.js.map} +0 -0
  217. /package/dist/chunks/{drain-KYJSJS32.js.map → drain-B6NE7ECX.js.map} +0 -0
  218. /package/dist/chunks/{eval-TH3WQFI2.js.map → eval-HKVQPXKR.js.map} +0 -0
  219. /package/dist/chunks/{exec-VOZ3VAVV.js.map → exec-MOJSMH4D.js.map} +0 -0
  220. /package/dist/chunks/{home-RAOAISVY.js.map → home-XWVKZPVH.js.map} +0 -0
  221. /package/dist/chunks/{host-queries-U4CWSBUK.js.map → host-queries-FZZJCBO7.js.map} +0 -0
  222. /package/dist/chunks/{lifecycle-PXCABRZ5.js.map → lifecycle-4R4ZRWRI.js.map} +0 -0
  223. /package/dist/chunks/{list-TIF25QTK.js.map → list-7V5HNSRV.js.map} +0 -0
  224. /package/dist/chunks/{login-J42GU7EB.js.map → login-MSFPVB2R.js.map} +0 -0
  225. /package/dist/chunks/{logs-BGBHTVT3.js.map → logs-EGCWVNBU.js.map} +0 -0
  226. /package/dist/chunks/{mcp-WLA36KLN.js.map → mcp-DWCVUDXK.js.map} +0 -0
  227. /package/dist/chunks/{message-command-KQ2ENU5G.js.map → message-command-K3GFQCZU.js.map} +0 -0
  228. /package/dist/chunks/{operator-tools-4NS32VMF.js.map → operator-tools-JRMP2OHZ.js.map} +0 -0
  229. /package/dist/chunks/{output-schema-VUNV5PSI.js.map → output-schema-XVJ3XUMN.js.map} +0 -0
  230. /package/dist/chunks/{pal-JLYSYJZ4.js.map → pal-Y5K4PJF7.js.map} +0 -0
  231. /package/dist/chunks/{providers-6S2OD65T.js.map → providers-MNU4KDEW.js.map} +0 -0
  232. /package/dist/chunks/{resident-FWCWLKM2.js.map → resident-BI4VV6F4.js.map} +0 -0
  233. /package/dist/chunks/{resume-command-R22OK5SL.js.map → resume-command-XBFDMRUK.js.map} +0 -0
  234. /package/dist/chunks/{schedule-JP3VSIXA.js.map → schedule-XEU5OSKW.js.map} +0 -0
  235. /package/dist/chunks/{service-R7SRZ22P.js.map → service-YOZ6GUL5.js.map} +0 -0
  236. /package/dist/chunks/{session-step-L4HQYX5J.js.map → session-step-RLSIZ3S2.js.map} +0 -0
  237. /package/dist/chunks/{skills-MOVGIR6S.js.map → skills-ZKC4GGY6.js.map} +0 -0
  238. /package/dist/chunks/{state-GVVLT2YD.js.map → state-RV3YXV6V.js.map} +0 -0
  239. /package/dist/chunks/{store-IAAJ4GWU.js.map → store-7X5FJMKH.js.map} +0 -0
  240. /package/dist/chunks/{store-VVOUETR5.js.map → store-PJQ65VLY.js.map} +0 -0
  241. /package/dist/chunks/{store-WQ5PM4Z2.js.map → store-QLMY3B43.js.map} +0 -0
  242. /package/dist/chunks/{upgrade-2FXGSXCP.js.map → upgrade-KJRSVGA3.js.map} +0 -0
  243. /package/dist/chunks/{worktree-FOHNJC3S.js.map → worktree-JLK5Z6DS.js.map} +0 -0
@@ -2,26 +2,26 @@ import { createRequire as __namzuCreateRequire } from 'node:module';
2
2
  const require = __namzuCreateRequire(import.meta.url);
3
3
  import {
4
4
  reportCrash
5
- } from "./chunk-GTJVK5TJ.js";
5
+ } from "./chunk-5SVMKOEG.js";
6
6
  import {
7
7
  changesBlock,
8
8
  changesSinceConfirmed,
9
9
  confirmationView,
10
10
  describeChanges,
11
11
  permissionsChanged
12
- } from "./chunk-MGFWBSDV.js";
12
+ } from "./chunk-KWYQCOJA.js";
13
13
  import {
14
14
  visibleScheduleMessage
15
15
  } from "./chunk-NADQQMMG.js";
16
16
  import {
17
17
  settleAnsweredPark
18
- } from "./chunk-6T4UA6AV.js";
18
+ } from "./chunk-ODSPUOYW.js";
19
19
  import "./chunk-GWQEMJFS.js";
20
20
  import {
21
21
  DELIVERY_READ_LIMIT,
22
22
  readSourceDeliveryPage,
23
23
  takeSuppressedCount
24
- } from "./chunk-COPHNRLH.js";
24
+ } from "./chunk-VU7JHAR6.js";
25
25
  import {
26
26
  DEFAULT_MAX_ITERATIONS,
27
27
  DEFAULT_TIMEOUT_MS,
@@ -34,7 +34,7 @@ import {
34
34
  runsPerDay,
35
35
  scriptShellUnavailableReason,
36
36
  verifyScheduledScript
37
- } from "./chunk-4JPJV4QO.js";
37
+ } from "./chunk-2NUNK4JI.js";
38
38
  import {
39
39
  callsCount
40
40
  } from "./chunk-E5VLANCO.js";
@@ -43,22 +43,22 @@ import {
43
43
  compileJobPolicy,
44
44
  compileScriptCheckPolicy,
45
45
  isPresetName
46
- } from "./chunk-UEDWEOYF.js";
46
+ } from "./chunk-WFAZLQ5N.js";
47
47
  import {
48
48
  formatResumeShellCommand,
49
49
  parkedRunWords,
50
50
  resumeCommand
51
- } from "./chunk-NS7TSLQK.js";
51
+ } from "./chunk-BVJQ5NVZ.js";
52
52
  import {
53
53
  appendHistory,
54
54
  nextFireOf,
55
55
  readHistory,
56
56
  readState
57
- } from "./chunk-BPWCZOTB.js";
58
- import "./chunk-II72PLUA.js";
57
+ } from "./chunk-5X6ADRCM.js";
58
+ import "./chunk-DII3AAD5.js";
59
59
  import {
60
60
  setUserConfigValue
61
- } from "./chunk-Q4AASGFT.js";
61
+ } from "./chunk-RPRM4YIC.js";
62
62
  import {
63
63
  callEndpoint,
64
64
  readEndpoint
@@ -94,10 +94,10 @@ import {
94
94
  turnLimitCommands,
95
95
  wrapBalancedText,
96
96
  wrapChoiceText
97
- } from "./chunk-5ZRZZKPU.js";
97
+ } from "./chunk-6XVYUSCD.js";
98
98
  import {
99
99
  handleTerminationSignals
100
- } from "./chunk-HZ5AGRNO.js";
100
+ } from "./chunk-MMCTEOXA.js";
101
101
  import "./chunk-TBIX6JRE.js";
102
102
  import {
103
103
  describeAllCredentialsLogout,
@@ -123,20 +123,20 @@ import {
123
123
  withAutoChoice,
124
124
  withDebugDetail,
125
125
  writeConversationExport
126
- } from "./chunk-JHPCQLRT.js";
126
+ } from "./chunk-YUIZ3I52.js";
127
127
  import {
128
128
  tuiPalDefinition,
129
129
  tuiPalEnvironment,
130
130
  tuiPalOwner,
131
131
  tuiPalPreferences
132
- } from "./chunk-BXWH4UAN.js";
133
- import "./chunk-MEWIPARY.js";
134
- import "./chunk-UH5LZDKB.js";
135
- import "./chunk-WDIIFX5X.js";
132
+ } from "./chunk-PQOGAHD5.js";
133
+ import "./chunk-ZU4YCZVG.js";
134
+ import "./chunk-AO3RYELY.js";
135
+ import "./chunk-QQFWOGD2.js";
136
136
  import {
137
137
  claimPalConversation,
138
138
  listPalConversations
139
- } from "./chunk-FAPXHMTL.js";
139
+ } from "./chunk-X6SYXGAY.js";
140
140
  import {
141
141
  DEFAULT_AGENT_PHASE,
142
142
  DEFAULT_AGENT_WORKFLOW,
@@ -144,11 +144,13 @@ import {
144
144
  NOT_SHOWN_LINE,
145
145
  NO_BATCHES_MESSAGE,
146
146
  StartupRefusal,
147
+ allowsForBatch,
147
148
  appendMemoryWithStatus,
148
149
  assistantTranscriptTexts,
149
150
  combineBatches,
150
151
  createAgentSession,
151
152
  declinedLine,
153
+ describeAllows,
152
154
  describeProviderModels,
153
155
  explainFailure,
154
156
  formatCompactCount,
@@ -171,20 +173,21 @@ import {
171
173
  webCallTitle,
172
174
  webLiveStatus,
173
175
  webSettledLine
174
- } from "./chunk-RAKBF6PY.js";
176
+ } from "./chunk-IKGTBMN2.js";
175
177
  import {
176
178
  openManagedWorktrees,
177
179
  worktreeOpenHint
178
- } from "./chunk-WIPSZYIM.js";
180
+ } from "./chunk-DZEWXEUN.js";
179
181
  import {
180
182
  describePlainInterruption,
181
- describeProviderWait
182
- } from "./chunk-ZORZAWSH.js";
183
+ describeProviderWait,
184
+ describeProviderWaitClock
185
+ } from "./chunk-QMDN7FIB.js";
183
186
  import {
184
187
  describeBrowserStatus
185
188
  } from "./chunk-WHODOMXA.js";
186
- import "./chunk-TCHEQRJE.js";
187
- import "./chunk-6ZEROVY4.js";
189
+ import "./chunk-Z6GVIPO2.js";
190
+ import "./chunk-VE322URM.js";
188
191
  import {
189
192
  SAVE_SKILL_TOOL_NAME,
190
193
  SKILL_CREATOR_SKILL,
@@ -200,15 +203,15 @@ import {
200
203
  newSkillPrompt,
201
204
  resolveTurnGuards,
202
205
  runTokens
203
- } from "./chunk-ZJXRPK5W.js";
206
+ } from "./chunk-LFHTKWQ5.js";
204
207
  import {
205
208
  openInBrowser
206
- } from "./chunk-IGHTIUKD.js";
209
+ } from "./chunk-V6WLAAXC.js";
207
210
  import {
208
211
  beginCodexDeviceLogin,
209
212
  beginSubscriptionLogin,
210
213
  parsePastedInput
211
- } from "./chunk-3N3CDMDI.js";
214
+ } from "./chunk-P7NKAQ6I.js";
212
215
  import {
213
216
  NO_SKILLS_FOUND,
214
217
  composeSkillsPrompt,
@@ -216,7 +219,7 @@ import {
216
219
  loadSkillBody,
217
220
  renderSkillRoster,
218
221
  skillTierLabel
219
- } from "./chunk-4TZPG75O.js";
222
+ } from "./chunk-SMUEQ5RA.js";
220
223
  import "./chunk-ZWA2JRJV.js";
221
224
  import "./chunk-NUGPLXVK.js";
222
225
  import {
@@ -246,11 +249,11 @@ import {
246
249
  loadConfigWithProvenance,
247
250
  readPermissionLayers,
248
251
  resolveComposerTriggers
249
- } from "./chunk-RSRL3R7C.js";
252
+ } from "./chunk-4WM5CKTI.js";
250
253
  import "./chunk-KONYGNG6.js";
251
254
  import {
252
255
  formatConfigSource
253
- } from "./chunk-KDOMBH7Q.js";
256
+ } from "./chunk-GKEBBQ3Z.js";
254
257
  import "./chunk-HE7WUOX2.js";
255
258
  import {
256
259
  pinTrustedProjectPath,
@@ -259,7 +262,7 @@ import {
259
262
  import {
260
263
  debugRequested
261
264
  } from "./chunk-GNBMKISG.js";
262
- import "./chunk-MUUBLY7G.js";
265
+ import "./chunk-UFPOA63T.js";
263
266
  import {
264
267
  displayPath,
265
268
  formatSize,
@@ -283,7 +286,7 @@ import {
283
286
  primaryProvider,
284
287
  signedInSubscriptionProviders,
285
288
  writePreferences
286
- } from "./chunk-QZSP4UWJ.js";
289
+ } from "./chunk-EOPRQEHH.js";
287
290
  import {
288
291
  ALL_PROVIDER_IDS,
289
292
  PROVIDER_REGISTRY,
@@ -296,27 +299,28 @@ import {
296
299
  } from "./chunk-Y7B67G22.js";
297
300
  import {
298
301
  applyProviderFlags
299
- } from "./chunk-LH4NC5YB.js";
302
+ } from "./chunk-G2DJRAN7.js";
300
303
  import "./chunk-XEUQN4JC.js";
301
- import "./chunk-K5JGJIJV.js";
304
+ import "./chunk-ZNAE3DVS.js";
302
305
  import {
303
306
  PAUSED_TURN_LINES,
304
307
  currentTimeLine,
305
308
  describeTurnStop,
306
309
  handoffContinuationNote
307
- } from "./chunk-RDFZIPD5.js";
310
+ } from "./chunk-2EUHQ3UU.js";
308
311
  import {
309
312
  contextLogging,
310
313
  installCliLogging
311
- } from "./chunk-KZJUG4HN.js";
314
+ } from "./chunk-TUN5WPEN.js";
312
315
  import {
313
316
  terminalDisplayText
314
317
  } from "./chunk-EEDZOGV4.js";
315
318
  import {
316
- effectivePermissionMode,
319
+ bypassAvailableAtLaunch,
320
+ nextCycleMode,
317
321
  permissionModeDescription,
318
322
  permissionModeLabel
319
- } from "./chunk-DHXMHWOW.js";
323
+ } from "./chunk-OTG2DGSA.js";
320
324
  import "./chunk-LXB3S4IC.js";
321
325
  import "./chunk-OH6TB27S.js";
322
326
  import "./chunk-U3JIZFOS.js";
@@ -325,6 +329,7 @@ import {
325
329
  ConversationIndexRefreshError,
326
330
  activeConversationTurn,
327
331
  archiveConversation,
332
+ closableProviderPause,
328
333
  displayConversationTitle,
329
334
  forkConversation,
330
335
  forkConversationBeforeUser,
@@ -338,14 +343,14 @@ import {
338
343
  startConversation,
339
344
  titleOf,
340
345
  unarchiveConversation
341
- } from "./chunk-ZSPSXPRH.js";
346
+ } from "./chunk-XQWG6PQN.js";
342
347
  import "./chunk-H6B6AROX.js";
343
- import "./chunk-PAE4DIXR.js";
344
- import "./chunk-JRVKQITY.js";
348
+ import "./chunk-GZHWOIKT.js";
349
+ import "./chunk-7QVXN3FK.js";
345
350
  import {
346
351
  isTrusted,
347
352
  trustDir
348
- } from "./chunk-CYYGWTKF.js";
353
+ } from "./chunk-2LBM3V3N.js";
349
354
  import "./chunk-JORONMD3.js";
350
355
  import {
351
356
  clearAllStoredCredentials,
@@ -359,9 +364,10 @@ import {
359
364
  readStoredSubscriptionCredential,
360
365
  restrictToOwner,
361
366
  writeStoredGeminiApiKey
362
- } from "./chunk-O5FRXERG.js";
363
- import "./chunk-IQKT222K.js";
367
+ } from "./chunk-AY6EUCML.js";
368
+ import "./chunk-PH72277Q.js";
364
369
  import {
370
+ ACCEPT_EDITS_TOOLS,
365
371
  DECLINED_TOOL_CALL_FEEDBACK,
366
372
  DEFAULT_MAX_GOAL_ROUNDS,
367
373
  DiskMessageFeedbackStore,
@@ -415,7 +421,7 @@ import {
415
421
  validateTimeZone,
416
422
  wrapUntrusted,
417
423
  writePeerRecord
418
- } from "./chunk-5YWWQUJ5.js";
424
+ } from "./chunk-2JVVUMXC.js";
419
425
  import {
420
426
  __commonJS,
421
427
  __export,
@@ -35616,12 +35622,6 @@ function permissionReviewPageRows(terminalRows) {
35616
35622
  return Math.min(24, Math.max(PERMISSION_REVIEW_PAGE_ROWS, rows - 18));
35617
35623
  }
35618
35624
  __name(permissionReviewPageRows, "permissionReviewPageRows");
35619
- function releasedByApproveAll(toolCalls) {
35620
- return !toolCalls.some(
35621
- (call) => call.escalation?.sandboxEscape === true || (call.escalation?.outsidePaths?.length ?? 0) > 0
35622
- );
35623
- }
35624
- __name(releasedByApproveAll, "releasedByApproveAll");
35625
35625
  function permissionReviewRefusal(reason) {
35626
35626
  return reason === "too_large" ? `Refused: the complete tool batch exceeds the ${MAX_PERMISSION_REVIEW_BYTES}-byte interactive review limit. Split it into smaller calls or add an explicit allow rule after reviewing the operation another way.` : "Refused: this tool batch contains input the interactive permission protocol cannot represent exactly. Use JSON-compatible input or add an explicit allow rule after reviewing the operation another way.";
35627
35627
  }
@@ -37231,6 +37231,15 @@ __name(shellToneColor, "shellToneColor");
37231
37231
 
37232
37232
  // src/tui/LiveActivity.tsx
37233
37233
  var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
37234
+ function useSecondTick(active) {
37235
+ const [, setTick] = (0, import_react36.useState)(0);
37236
+ (0, import_react36.useEffect)(() => {
37237
+ if (!active) return;
37238
+ const timer = setInterval(() => setTick((n) => n + 1), 1e3);
37239
+ return () => clearInterval(timer);
37240
+ }, [active]);
37241
+ }
37242
+ __name(useSecondTick, "useSecondTick");
37234
37243
  var MAX_VISIBLE_TOOLS = 3;
37235
37244
  function LiveActivity({
37236
37245
  compact = false,
@@ -37260,6 +37269,7 @@ function LiveActivity({
37260
37269
  pausedRef.current.total += Date.now() - pausedRef.current.since;
37261
37270
  pausedRef.current.since = null;
37262
37271
  }
37272
+ useSecondTick(waitNotice !== null);
37263
37273
  const { frame: tick } = useAnimation({
37264
37274
  isActive: active && motion && !waitingForYou,
37265
37275
  interval: 120
@@ -37287,9 +37297,15 @@ function LiveActivity({
37287
37297
  const waiting = waitingLine(activeTools);
37288
37298
  const visibleTools = waiting ? [] : activeTools.slice(0, MAX_VISIBLE_TOOLS);
37289
37299
  const hiddenTools = waiting ? 0 : activeTools.length - visibleTools.length;
37290
- const noticeRow = waitNotice ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Text, { color: theme.status.warn, children: [
37291
- "\u23F3 ",
37292
- terminalDisplayText(waitNotice)
37300
+ const noticeRow = waitNotice ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Text, { wrap: "truncate-end", children: [
37301
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Text, { color: theme.status.error, children: [
37302
+ "\u25CF ",
37303
+ terminalDisplayText(waitNotice.what)
37304
+ ] }),
37305
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Text, { color: theme.text.muted, children: [
37306
+ " \xB7 ",
37307
+ describeProviderWaitClock(waitNotice, now)
37308
+ ] })
37293
37309
  ] }) }) : null;
37294
37310
  const waitingRow = waiting ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
37295
37311
  "\u273B ",
@@ -42031,13 +42047,13 @@ function permissionEscalationNotes(toolCalls) {
42031
42047
  const notes = [];
42032
42048
  if (toolCalls.some((call) => call.escalation?.sandboxEscape === true)) {
42033
42049
  notes.push(
42034
- 'Runs OUTSIDE the sandbox, on this machine. Asked every time; "allow all" never covers it.'
42050
+ "Runs OUTSIDE the sandbox, on this machine. Asked every time; no earlier answer covers it."
42035
42051
  );
42036
42052
  }
42037
42053
  const outside = toolCalls.flatMap((call) => call.escalation?.outsidePaths ?? []);
42038
42054
  if (outside.length > 0) {
42039
42055
  notes.push(
42040
- `Outside the working directory: ${outside.join(", ")}. Asked every time; "allow all" never covers it.`
42056
+ `Outside the working directory: ${outside.join(", ")}. Asked every time; no earlier answer covers it.`
42041
42057
  );
42042
42058
  }
42043
42059
  return notes;
@@ -42053,20 +42069,29 @@ function permissionAnswers(toolCalls, options = {}) {
42053
42069
  const agents = workflow || toolCalls.length > 0 && toolCalls.every((call) => call.name === "Agent");
42054
42070
  const approve = workflow ? "Start this workflow" : agents ? toolCalls.length === 1 ? "Start this agent" : `Start these ${toolCalls.length} agents` : "Yes";
42055
42071
  const reject = agents ? "Do not start" : "No, and tell namzu what to do differently (esc)";
42056
- if (options.batchOnly) {
42057
- return [
42058
- { label: approve, kind: "approve" },
42059
- { label: reject, kind: "reject" }
42060
- ];
42061
- }
42062
- const approveAll = agents ? "Start and allow all tools for this conversation" : toolCalls.some((call) => call.escalation?.sandboxEscape === true) ? "Yes, and allow other tools for this conversation (not sandbox escapes)" : toolCalls.some((call) => (call.escalation?.outsidePaths?.length ?? 0) > 0) ? "Yes, and allow other tools for this conversation (not paths outside it)" : "Yes, allow all tools for this conversation";
42072
+ const extra = options.batchOnly ? void 0 : extraAnswer(toolCalls, options);
42063
42073
  return [
42064
42074
  { label: approve, kind: "approve" },
42065
- { label: approveAll, kind: "approve-all" },
42075
+ ...extra ? [extra] : [],
42066
42076
  { label: reject, kind: "reject" }
42067
42077
  ];
42068
42078
  }
42069
42079
  __name(permissionAnswers, "permissionAnswers");
42080
+ function extraAnswer(toolCalls, options) {
42081
+ if (options.mode === "prompt" && toolCalls.length > 0 && toolCalls.every(
42082
+ (call) => ACCEPT_EDITS_TOOLS.has(call.name) && call.escalation === void 0 && call.isDestructive !== true && call.requiresApproval !== true && call.authorization?.explicitReview !== true
42083
+ ))
42084
+ return { label: "Yes, and switch to accept edits for this session", kind: "approve-edits" };
42085
+ if (options.commandArguments === void 0) return void 0;
42086
+ const allows = allowsForBatch(toolCalls, options.commandArguments);
42087
+ if (!allows) return void 0;
42088
+ return {
42089
+ label: `Yes, and don't ask again for ${describeAllows(allows)} this session`,
42090
+ kind: "approve-rule",
42091
+ allows
42092
+ };
42093
+ }
42094
+ __name(extraAnswer, "extraAnswer");
42070
42095
  function permissionChoices(toolCalls, options = {}) {
42071
42096
  return permissionAnswers(toolCalls, options).map((answer) => answer.label);
42072
42097
  }
@@ -42097,6 +42122,8 @@ function PermissionOverlay({
42097
42122
  columns,
42098
42123
  rows: terminalRows,
42099
42124
  batchOnly = false,
42125
+ mode,
42126
+ commandArguments,
42100
42127
  siteNotes = [],
42101
42128
  screenConsent
42102
42129
  }) {
@@ -42114,7 +42141,12 @@ function PermissionOverlay({
42114
42141
  const last = Math.min(rows.length, offset + pageRows);
42115
42142
  const destructive = toolCalls.some((call) => call.isDestructive);
42116
42143
  const sharing = screenConsent !== void 0;
42117
- const choices2 = permissionChoices(toolCalls, { batchOnly, screenConsent: sharing });
42144
+ const choices2 = permissionChoices(toolCalls, {
42145
+ batchOnly,
42146
+ screenConsent: sharing,
42147
+ ...mode ? { mode } : {},
42148
+ ...commandArguments ? { commandArguments } : {}
42149
+ });
42118
42150
  const escalationNotes = permissionEscalationNotes(toolCalls);
42119
42151
  const sharingNotes = sharing ? screenConsentNotes(screenConsent.provider) : [];
42120
42152
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
@@ -42168,8 +42200,8 @@ function PermissionOverlay({
42168
42200
  { text: "\u2191\u2193 select", rank: 5 },
42169
42201
  { text: "enter confirm", short: "enter ok", rank: 5 },
42170
42202
  {
42171
- text: `${batchOnly || sharing ? "y / n" : "y / a / n"} answer`,
42172
- short: batchOnly || sharing ? "y / n" : "y / a / n",
42203
+ text: "y / n answer",
42204
+ short: "y / n",
42173
42205
  rank: 5
42174
42206
  },
42175
42207
  { text: "esc decline", short: "esc no", rank: 5 },
@@ -49786,6 +49818,12 @@ function App2({
49786
49818
  launchPermissionMode ?? (ctx.skipPermissions === true || ctx.palId ? "auto" : "prompt")
49787
49819
  );
49788
49820
  const permissionModeRef = (0, import_react49.useRef)(permissionMode);
49821
+ const bypassAvailableRef = (0, import_react49.useRef)(
49822
+ bypassAvailableAtLaunch({
49823
+ launchMode: permissionMode,
49824
+ allowDangerouslySkipPermissions: ctx.allowDangerouslySkipPermissions === true
49825
+ })
49826
+ );
49789
49827
  const permissionModeSourceRef = (0, import_react49.useRef)(
49790
49828
  launchPermissionMode ? "launch-flag" : ctx.skipPermissions === true ? "launch-bypass" : "default"
49791
49829
  );
@@ -51079,15 +51117,8 @@ ${blocks.join("\n\n")}`;
51079
51117
  pushMessage("system", "Choose a model before changing permissions.");
51080
51118
  return;
51081
51119
  }
51082
- if (!session.resetApprovalLatch) {
51083
- pushMessage(
51084
- "system",
51085
- "Permissions cannot be changed in this conversation. Start a new conversation and try again."
51086
- );
51087
- return;
51088
- }
51089
- session.resetApprovalLatch();
51090
51120
  permissionModeRef.current = mode;
51121
+ if (mode === "auto" && announce) bypassAvailableRef.current = true;
51091
51122
  permissionModeSourceRef.current = "session";
51092
51123
  setPermissionModeState(mode);
51093
51124
  void session.setPermissionMode?.(mode);
@@ -51432,8 +51463,7 @@ ${blocks.join("\n\n")}`;
51432
51463
  }, [hasUnsettledTurn, pushMessage, state]);
51433
51464
  const cyclePermissionMode = (0, import_react49.useCallback)(() => {
51434
51465
  const current = permissionModeRef.current;
51435
- const next = current === "prompt" ? "accept-edits" : current === "accept-edits" ? "plan" : "prompt";
51436
- applyPermissionMode(next, false);
51466
+ applyPermissionMode(nextCycleMode(current, bypassAvailableRef.current), false);
51437
51467
  }, [applyPermissionMode]);
51438
51468
  const runConversationExport = (0, import_react49.useCallback)(
51439
51469
  (destination) => {
@@ -51785,11 +51815,7 @@ ${blocks.join("\n\n")}`;
51785
51815
  }
51786
51816
  if (picker.kind === "permission-mode") {
51787
51817
  if (value === "more") {
51788
- const child = permissionPicker(
51789
- permissionModeRef.current,
51790
- session?.approvalLatched() ?? false,
51791
- true
51792
- );
51818
+ const child = permissionPicker(permissionModeRef.current, true);
51793
51819
  setSelectedChoice(
51794
51820
  Math.max(
51795
51821
  0,
@@ -52732,7 +52758,6 @@ ${blocks.join("\n\n")}`;
52732
52758
  // reporting a posture the operator has already changed. The
52733
52759
  // function keeps that impossible by construction rather than by a
52734
52760
  // coincidence three lines away.
52735
- approvalLatched: /* @__PURE__ */ __name(() => session?.approvalLatched() ?? false, "approvalLatched"),
52736
52761
  neverPrompted: /* @__PURE__ */ __name(() => session?.promptExemptTools() ?? [], "neverPrompted")
52737
52762
  },
52738
52763
  instructionFiles: session?.instructionFiles ?? [],
@@ -52953,6 +52978,12 @@ ${blocks.join("\n\n")}`;
52953
52978
  pushMessage("system", explainFailure(err, "Could not list archived conversations."));
52954
52979
  }
52955
52980
  }, [ensureSessions, hasUnsettledTurn, pushMessage, state]);
52981
+ const permissionAnswerOptions = /* @__PURE__ */ __name((pending) => ({
52982
+ batchOnly: pending.batchOnly === true,
52983
+ screenConsent: pending.screenConsent === true,
52984
+ mode: permissionModeRef.current,
52985
+ ...session?.allowForSession && session.commandArguments ? { commandArguments: session.commandArguments } : {}
52986
+ }), "permissionAnswerOptions");
52956
52987
  const resolvePermission = (0, import_react49.useCallback)(
52957
52988
  (decision) => {
52958
52989
  const resolve6 = permissionResolveRef.current;
@@ -52966,15 +52997,6 @@ ${blocks.join("\n\n")}`;
52966
52997
  setState("thinking");
52967
52998
  resolve6(decision);
52968
52999
  }
52969
- if (decision.kind === "approve-all") {
52970
- const kept = [];
52971
- for (const pending of permissionQueueRef.current.splice(0)) {
52972
- if (pending.permission.screenConsent !== true && releasedByApproveAll(pending.permission.toolCalls))
52973
- pending.resolve(decision);
52974
- else kept.push(pending);
52975
- }
52976
- permissionQueueRef.current.push(...kept);
52977
- }
52978
53000
  const next = permissionQueueRef.current.shift();
52979
53001
  setQueuedPermissionCount(permissionQueueRef.current.length);
52980
53002
  if (next) {
@@ -53813,6 +53835,17 @@ ${blocks.join("\n\n")}`;
53813
53835
  const notice = describeProviderWait(event, scheduleLiveRef.current?.model?.provider);
53814
53836
  providerWaitNoticeRef.current = notice;
53815
53837
  setProviderWaitNotice(notice);
53838
+ if (event.restart) {
53839
+ if (st.releaseTimer) clearTimeout(st.releaseTimer);
53840
+ st.releaseTimer = void 0;
53841
+ st.pending = "";
53842
+ st.text = st.text.slice(0, st.messageTextStart ?? st.text.length);
53843
+ st.streamedChars = 0;
53844
+ setTurnTokens(st.reportedOutputTokens ?? 0);
53845
+ const abandoned = st.assistantId;
53846
+ st.assistantId = null;
53847
+ if (abandoned) setMessages((prev) => prev.filter((m) => m.id !== abandoned));
53848
+ }
53816
53849
  } else if (providerWaitNoticeRef.current !== null) {
53817
53850
  providerWaitNoticeRef.current = null;
53818
53851
  setProviderWaitNotice(null);
@@ -53889,6 +53922,9 @@ ${blocks.join("\n\n")}`;
53889
53922
  }
53890
53923
  st.releasedAt ??= Date.now();
53891
53924
  setThinking(null);
53925
+ if (st.messageTextStart === void 0 || st.assistantId === null && !st.pending) {
53926
+ st.messageTextStart = st.text.length;
53927
+ }
53892
53928
  st.text += event.text;
53893
53929
  st.pending = (st.pending ?? "") + event.text;
53894
53930
  const { ready, rest } = splitCompleteBlocks(st.pending);
@@ -54451,6 +54487,19 @@ ${jobLines.map(([, line]) => `- ${line}`).join("\n")}`] : []
54451
54487
  } : prompt.kind === "peer" ? { type: "runtime-context", kind: "peer-message" } : prompt.kind === "notice" ? { type: "runtime-context", kind: noticeKind } : void 0
54452
54488
  );
54453
54489
  const priorForSdk = [...historyBeforeTurn, userMessage];
54490
+ const closeStoppedReply = /* @__PURE__ */ __name(async () => {
54491
+ const sessions = sessionsRef.current;
54492
+ const scope = scopeRef.current;
54493
+ if (!sessions || !scope || !conversationMaterializedRef.current || !session?.abandonTurn)
54494
+ return;
54495
+ const stopped = await closableProviderPause(sessions, scope.sessionId);
54496
+ if (!stopped) return;
54497
+ await session.abandonTurn(
54498
+ stopped.turnId,
54499
+ "The operator went on with a new message instead of retrying."
54500
+ );
54501
+ setHandoffPark(null);
54502
+ }, "closeStoppedReply");
54454
54503
  const turnId = generateTurnId();
54455
54504
  const requestedTriggers = prompt.kind === "human" ? prompt.triggers ?? [] : [];
54456
54505
  const triggerContext = triggerContextNow();
@@ -54693,6 +54742,7 @@ ${jobLines.map(([, line]) => `- ${line}`).join("\n")}`] : []
54693
54742
  workflowNoticeSnapshot = new Map(workflowNoticesRef.current);
54694
54743
  childMessageSnapshot = new Map(childMessagesRef.current);
54695
54744
  const operatorShellSnapshot = drainOperatorShell();
54745
+ await closeStoppedReply();
54696
54746
  for await (const event of session.send(priorForSdk, {
54697
54747
  signal: ac.signal,
54698
54748
  turnId,
@@ -54700,6 +54750,8 @@ ${jobLines.map(([, line]) => `- ${line}`).join("\n")}`] : []
54700
54750
  // The TUI never resumes a turn whose process is gone; the next
54701
54751
  // prompt closes it. A paused turn is never closed this way.
54702
54752
  abandonInterrupted: true,
54753
+ // A redrawing screen can take back a reply a dropped connection cut short.
54754
+ restartableOutput: true,
54703
54755
  permissionMode: turnPermissionMode,
54704
54756
  // Read at every decision: the operator may change the mode
54705
54757
  // while this turn runs, and the change governs what follows.
@@ -55496,7 +55548,7 @@ Available: ${agentIds.join(", ")}` : "\nNo agents are configured."}`
55496
55548
  {
55497
55549
  name: "permissions",
55498
55550
  label: "Permissions",
55499
- description: `${permissionModeLabel(effectivePermissionMode(permissionModeRef.current, session?.approvalLatched() ?? false))} \xB7 this conversation.`
55551
+ description: `${permissionModeLabel(permissionModeRef.current)} \xB7 this conversation.`
55500
55552
  },
55501
55553
  {
55502
55554
  name: "config limits",
@@ -55709,14 +55761,11 @@ Available: ${agentIds.join(", ")}` : "\nNo agents are configured."}`
55709
55761
  pushMessage("system", "Choose a model before changing permissions.");
55710
55762
  return;
55711
55763
  }
55712
- if (state !== "idle" || abortRef.current !== null || hasUnsettledTurn() || queuedRef.current.length > 0 || permissionResolveRef.current !== null || compactingRef.current || !session.resetApprovalLatch) {
55713
- pushMessage(
55714
- "system",
55715
- !session.resetApprovalLatch ? "Permissions cannot be changed in this conversation. Start a new conversation and try again." : "Finish or stop the current work before changing permissions."
55716
- );
55764
+ if (state !== "idle" || abortRef.current !== null || hasUnsettledTurn() || queuedRef.current.length > 0 || permissionResolveRef.current !== null || compactingRef.current) {
55765
+ pushMessage("system", "Finish or stop the current work before changing permissions.");
55717
55766
  return;
55718
55767
  }
55719
- const picker = permissionPicker(permissionModeRef.current, session.approvalLatched());
55768
+ const picker = permissionPicker(permissionModeRef.current);
55720
55769
  setSelectedChoice(
55721
55770
  Math.max(
55722
55771
  0,
@@ -56996,10 +57045,7 @@ ${lines.join("\n")}`);
56996
57045
  }
56997
57046
  if (permission && (key.upArrow || key.downArrow)) {
56998
57047
  const current = permissionChoiceRef.current;
56999
- const last = permissionAnswers(permission.toolCalls, {
57000
- batchOnly: permission.batchOnly === true,
57001
- screenConsent: permission.screenConsent === true
57002
- }).length - 1;
57048
+ const last = permissionAnswers(permission.toolCalls, permissionAnswerOptions(permission)).length - 1;
57003
57049
  const next = key.upArrow ? Math.max(0, current - 1) : Math.min(last, current + 1);
57004
57050
  setPermissionChoice(next);
57005
57051
  return;
@@ -57026,14 +57072,19 @@ ${lines.join("\n")}`);
57026
57072
  return;
57027
57073
  }
57028
57074
  if (!approvalIsDeliberate(permissionOpenedAtRef.current, Date.now())) return;
57029
- const answers = permissionAnswers(permission?.toolCalls ?? [], {
57030
- batchOnly: permission?.batchOnly === true,
57031
- screenConsent: permission?.screenConsent === true
57032
- });
57075
+ const answers = permission ? permissionAnswers(permission.toolCalls, permissionAnswerOptions(permission)) : [];
57033
57076
  const numbered = /^[1-9]$/.test(ch) ? Number(ch) - 1 : null;
57034
57077
  const chosen = key.return ? permissionChoiceRef.current : numbered;
57035
- const kind = ch === "y" ? "approve" : ch === "a" ? answers.some((answer) => answer.kind === "approve-all") ? "approve-all" : void 0 : chosen !== null ? answers[chosen]?.kind : void 0;
57036
- if (kind) resolvePermission(kind === "reject" ? { kind, declined: {} } : { kind });
57078
+ const answer = ch === "y" ? answers[0] : chosen !== null ? answers[chosen] : void 0;
57079
+ if (!answer) return;
57080
+ if (answer.kind === "reject") {
57081
+ resolvePermission({ kind: "reject", declined: {} });
57082
+ return;
57083
+ }
57084
+ if (answer.kind === "approve-edits") applyPermissionMode("accept-edits", false);
57085
+ else if (answer.kind === "approve-rule" && answer.allows)
57086
+ session?.allowForSession?.(answer.allows);
57087
+ resolvePermission({ kind: "approve" });
57037
57088
  return;
57038
57089
  }
57039
57090
  const shellView = jobSurfaceRef.current;
@@ -57663,10 +57714,7 @@ ${lines.join("\n")}`);
57663
57714
  const permissionSource = reviewSource(permission, scopeRef.current?.sessionId);
57664
57715
  const permissionOwner = permissionSource ? subagents.find((agent) => agent.sessionId === permissionSource) : void 0;
57665
57716
  const permissionSourceLabel = permissionSource ? permissionOwner ? `Agent: ${permissionOwner.description}` : "Agent: another agent" : void 0;
57666
- const displayedPermissionMode = effectivePermissionMode(
57667
- permissionMode,
57668
- session?.approvalLatched() ?? false
57669
- );
57717
+ const displayedPermissionMode = permissionMode;
57670
57718
  const highestEffort = highestReasoningEffort(session?.reasoningEffortLevels);
57671
57719
  const hypermodeLevel = hypermodeEffort(session?.reasoningEffortLevels);
57672
57720
  const composerTriggers = composerTriggersOn ? {
@@ -57815,6 +57863,8 @@ ${lines.join("\n")}`);
57815
57863
  columns: terminal.columns,
57816
57864
  rows: terminal.rows,
57817
57865
  batchOnly: permission.batchOnly === true,
57866
+ mode: permissionMode,
57867
+ ...session?.allowForSession && session.commandArguments ? { commandArguments: session.commandArguments } : {},
57818
57868
  siteNotes: permission.siteNotes,
57819
57869
  ...permission.screenConsent === true ? { screenConsent: { provider: session?.providerSummary ?? null } } : {}
57820
57870
  }
@@ -58192,8 +58242,8 @@ function pluginActionPicker(owner, name) {
58192
58242
  };
58193
58243
  }
58194
58244
  __name(pluginActionPicker, "pluginActionPicker");
58195
- function permissionPicker(mode, approvedAll, more = false) {
58196
- const current = effectivePermissionMode(mode, approvedAll);
58245
+ function permissionPicker(mode, more = false) {
58246
+ const current = mode;
58197
58247
  const values = more ? ["auto", "strict", "rules"] : ["prompt", "accept-edits", "plan", "more"];
58198
58248
  return {
58199
58249
  kind: "permission-mode",
@@ -58606,4 +58656,4 @@ react/cjs/react-jsx-runtime.development.js:
58606
58656
  * LICENSE file in the root directory of this source tree.
58607
58657
  *)
58608
58658
  */
58609
- //# sourceMappingURL=tui-23RXXZL2.js.map
58659
+ //# sourceMappingURL=tui-FZJ37KG2.js.map