@namzu/cli 39.0.0 → 39.2.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 (236) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/dist/bin.js +1 -1
  3. package/dist/chunks/{acp-NZITIX4C.js → acp-OOJ6EBDV.js} +35 -35
  4. package/dist/chunks/{activity-command-NKOTZ5FK.js → activity-command-H7YPFJXX.js} +11 -11
  5. package/dist/chunks/{add-AONYUNXG.js → add-E46I4MLS.js} +15 -15
  6. package/dist/chunks/{agent-YPKFE66C.js → agent-A3IFU43K.js} +26 -26
  7. package/dist/chunks/agent-session-V7NDZWPF.js +53 -0
  8. package/dist/chunks/{archive-SUE5OUZZ.js → archive-FWKUN3JD.js} +9 -9
  9. package/dist/chunks/{bin-main-55PUHGTA.js → bin-main-YOWKMTAT.js} +3 -3
  10. package/dist/chunks/{browser-HYPSUDAZ.js → browser-ZISCIIZG.js} +6 -6
  11. package/dist/chunks/{chat-6OULID33.js → chat-JNYLC4XC.js} +14 -14
  12. package/dist/chunks/{chunk-E3HCZYGN.js → chunk-2SPJH5HF.js} +3 -3
  13. package/dist/chunks/{chunk-ID334ALD.js → chunk-2ZRQG2PH.js} +28 -28
  14. package/dist/chunks/{chunk-DFA5OB46.js → chunk-52NW6KXV.js} +4 -4
  15. package/dist/chunks/{chunk-IAYIUJMI.js → chunk-5ED3H3C7.js} +2 -2
  16. package/dist/chunks/{chunk-OLOTFDTU.js → chunk-5WZ63LBF.js} +2 -2
  17. package/dist/chunks/{chunk-263WNQB4.js → chunk-5Y3XJ2QD.js} +9 -9
  18. package/dist/chunks/{chunk-FBNKKDIY.js → chunk-62GB6STC.js} +4 -4
  19. package/dist/chunks/{chunk-W27ZDC4R.js → chunk-65L26A6S.js} +4 -4
  20. package/dist/chunks/{chunk-2VMMTC2V.js → chunk-6E2F73CY.js} +2 -2
  21. package/dist/chunks/{chunk-RB36O3CE.js → chunk-7T6O6HZO.js} +2 -2
  22. package/dist/chunks/{chunk-EA6SWPO4.js → chunk-A2PPMNCN.js} +4 -4
  23. package/dist/chunks/{chunk-N3FI7O4U.js → chunk-AJMJHLWZ.js} +2 -2
  24. package/dist/chunks/{chunk-UBOPUGDN.js → chunk-ARILZQYC.js} +5 -5
  25. package/dist/chunks/{chunk-MCNEFI5Q.js → chunk-AWDFNOGP.js} +2 -2
  26. package/dist/chunks/{chunk-OXJEMOBQ.js → chunk-AZCFI7C6.js} +671 -149
  27. package/dist/chunks/chunk-AZCFI7C6.js.map +6 -0
  28. package/dist/chunks/{chunk-GU5YARBU.js → chunk-BD7DGINR.js} +4 -4
  29. package/dist/chunks/{chunk-EUU4TDTH.js → chunk-BTSYFCBK.js} +2 -2
  30. package/dist/chunks/{chunk-3JB5NDB4.js → chunk-BVUYBGWV.js} +6 -6
  31. package/dist/chunks/{chunk-5CGH647C.js → chunk-COI6QKBD.js} +5 -5
  32. package/dist/chunks/{chunk-TJTRVZFN.js → chunk-CWFDC3IX.js} +2 -2
  33. package/dist/chunks/{chunk-XJ4IUCH6.js → chunk-D24BFQ2R.js} +13 -13
  34. package/dist/chunks/{chunk-7YXHOSHD.js → chunk-D57LFZYV.js} +3 -3
  35. package/dist/chunks/{chunk-CL5TCY4F.js → chunk-DEYB7GQW.js} +2 -2
  36. package/dist/chunks/{chunk-AZ3YHVFA.js → chunk-DJCBJ4D2.js} +2 -2
  37. package/dist/chunks/{chunk-B2357ETN.js → chunk-DK6MIKJ5.js} +7 -7
  38. package/dist/chunks/{chunk-N72DH6D5.js → chunk-DQIPEDOM.js} +2 -2
  39. package/dist/chunks/{chunk-SBPCN24X.js → chunk-EWD65LWA.js} +2 -2
  40. package/dist/chunks/{chunk-NLKIBRXJ.js → chunk-FCM3BH55.js} +3 -3
  41. package/dist/chunks/{chunk-47TGPZWD.js → chunk-FEANPQH4.js} +3 -3
  42. package/dist/chunks/{chunk-HU35YAIZ.js → chunk-FZZU6FGO.js} +2 -2
  43. package/dist/chunks/{chunk-233DQVSC.js → chunk-J3JUC6J6.js} +6 -6
  44. package/dist/chunks/{chunk-UZCA37QE.js → chunk-JBI7VU5W.js} +2 -2
  45. package/dist/chunks/{chunk-Z7XA4Y43.js → chunk-JC37Z4C2.js} +3 -3
  46. package/dist/chunks/{chunk-4K2NRXHJ.js → chunk-JPWIGZJ4.js} +2 -2
  47. package/dist/chunks/{chunk-UIDLXA2K.js → chunk-K2WHGUA7.js} +2 -2
  48. package/dist/chunks/{chunk-7EASYULO.js → chunk-KG5YQMJ7.js} +8 -8
  49. package/dist/chunks/{chunk-UTMGJDC3.js → chunk-KVYTZCCO.js} +2 -2
  50. package/dist/chunks/{chunk-FQZFVLJB.js → chunk-KYEHKRUB.js} +4 -4
  51. package/dist/chunks/{chunk-II57E2QW.js → chunk-L4M6ZSF6.js} +4 -4
  52. package/dist/chunks/{chunk-UUUNXKL3.js → chunk-LNANLHGE.js} +3 -3
  53. package/dist/chunks/{chunk-CUOWARJI.js → chunk-MD7SYK6K.js} +2 -2
  54. package/dist/chunks/{chunk-YKEPC6NH.js → chunk-OIRKBC2L.js} +3 -3
  55. package/dist/chunks/{chunk-3OAGXDRM.js → chunk-P5GCOEET.js} +4 -4
  56. package/dist/chunks/{chunk-2WQFRVVQ.js → chunk-Q733LA67.js} +4 -4
  57. package/dist/chunks/{chunk-2KKF45DQ.js → chunk-QGU3QOXI.js} +2 -2
  58. package/dist/chunks/{chunk-QNF6COCY.js → chunk-RGCA3YZA.js} +2 -2
  59. package/dist/chunks/{chunk-RQBT4RVE.js → chunk-RKMGVFLZ.js} +657 -308
  60. package/dist/chunks/chunk-RKMGVFLZ.js.map +6 -0
  61. package/dist/chunks/{chunk-T75ITEN6.js → chunk-S7HFDW5W.js} +3 -3
  62. package/dist/chunks/{chunk-BEFTUDYP.js → chunk-SN4RRU3A.js} +7 -7
  63. package/dist/chunks/{chunk-SIK62TDI.js → chunk-TAWI7GF2.js} +2 -2
  64. package/dist/chunks/{chunk-CZEU2JYJ.js → chunk-TQ2PH66J.js} +3 -3
  65. package/dist/chunks/{chunk-LFVQSMJG.js → chunk-U4A4C4GE.js} +4 -4
  66. package/dist/chunks/{chunk-XEHLRJXR.js → chunk-UJ7NTALX.js} +12 -12
  67. package/dist/chunks/{chunk-HV77F4SF.js → chunk-VPDXH3ZZ.js} +3 -3
  68. package/dist/chunks/{chunk-HI2KXIGA.js → chunk-XJMHPZGJ.js} +3 -3
  69. package/dist/chunks/{chunk-74U3P65Q.js → chunk-XRLM7PL2.js} +12 -12
  70. package/dist/chunks/{chunk-P2Y4LUPJ.js → chunk-YN5PDLFB.js} +2 -2
  71. package/dist/chunks/{chunk-QO5JUKFG.js → chunk-ZGL3HYDE.js} +2 -2
  72. package/dist/chunks/{cli-runtime-G3FHYTCI.js → cli-runtime-KFHNZS4M.js} +10 -10
  73. package/dist/chunks/{commands-TIRZH2TK.js → commands-7FSE67S7.js} +5 -5
  74. package/dist/chunks/{crash-report-E4J7KQ32.js → crash-report-5S6I2H4P.js} +6 -6
  75. package/dist/chunks/{dist-CVDGKJEI.js → dist-2QEEO2BO.js} +2 -2
  76. package/dist/chunks/{dist-2U6NNEPY.js → dist-BMP4NVQA.js} +2 -2
  77. package/dist/chunks/{dist-QHKTYYMX.js → dist-EC2S5MA6.js} +2 -2
  78. package/dist/chunks/{dist-YX7Q3EJR.js → dist-KGS4QDJL.js} +2 -2
  79. package/dist/chunks/{dist-MKQZKCB4.js → dist-MLM3PBXB.js} +2 -2
  80. package/dist/chunks/{dist-2IUQEIEI.js → dist-VMJECBAZ.js} +2 -2
  81. package/dist/chunks/{dist-QCKKBLDW.js → dist-ZHD7MSXC.js} +2 -2
  82. package/dist/chunks/{doctor-ASXICRC5.js → doctor-P67RCEDL.js} +8 -8
  83. package/dist/chunks/{drain-CGS3KBU3.js → drain-GXTL5M2V.js} +10 -10
  84. package/dist/chunks/{eval-XWC3UCFI.js → eval-TGCAUXM6.js} +2 -2
  85. package/dist/chunks/{exec-FOUQBA6I.js → exec-KGTWE4LA.js} +25 -25
  86. package/dist/chunks/{home-76YLI2M6.js → home-PZO47UU7.js} +3 -3
  87. package/dist/chunks/{host-queries-ODUQHYBN.js → host-queries-QOFBCKMJ.js} +14 -14
  88. package/dist/chunks/{lifecycle-JN43XQSS.js → lifecycle-DPH2KOCH.js} +23 -23
  89. package/dist/chunks/{list-TC7TYJDR.js → list-ILFBHQS7.js} +11 -11
  90. package/dist/chunks/{login-CTC6CAM4.js → login-EUEB5HLK.js} +8 -8
  91. package/dist/chunks/{logs-2NGJFIQI.js → logs-F2II4CCT.js} +4 -4
  92. package/dist/chunks/{mcp-BPH7KWZ6.js → mcp-KPJ7KVE4.js} +16 -16
  93. package/dist/chunks/{message-command-A4XU7QQQ.js → message-command-I3J5NA35.js} +32 -32
  94. package/dist/chunks/{operator-tools-6RYAHVSL.js → operator-tools-2SI6AFFF.js} +12 -12
  95. package/dist/chunks/{output-schema-GSWZHKSI.js → output-schema-PJNYSOO5.js} +3 -3
  96. package/dist/chunks/{pal-4QXXG42H.js → pal-7ILZQGYB.js} +11 -11
  97. package/dist/chunks/{providers-6PIIF3WR.js → providers-MD4HAS6J.js} +6 -6
  98. package/dist/chunks/{resident-UP7W6MV6.js → resident-HVI3YGHH.js} +20 -20
  99. package/dist/chunks/resume-R2OYMKYY.js +22 -0
  100. package/dist/chunks/{resume-command-2RFT7AGW.js → resume-command-EVY3VMMM.js} +4 -4
  101. package/dist/chunks/{schedule-FZISVF6A.js → schedule-QCGOB5T2.js} +8 -8
  102. package/dist/chunks/{service-4WADXOUI.js → service-MVQA56RE.js} +22 -22
  103. package/dist/chunks/session-step-XAOTLL4U.js +29 -0
  104. package/dist/chunks/{skills-BJQGVQ23.js → skills-MTR3YGWW.js} +8 -8
  105. package/dist/chunks/{state-2KKVQPZ2.js → state-5GSLSGR2.js} +2 -2
  106. package/dist/chunks/{store-YFTJ24WU.js → store-P2I5OF2S.js} +4 -4
  107. package/dist/chunks/{store-LO4SSRYI.js → store-SQUUV4YQ.js} +9 -9
  108. package/dist/chunks/{store-TKJKR5NM.js → store-UMSGE2UE.js} +6 -6
  109. package/dist/chunks/{tui-HA3JIVON.js → tui-5EKXXN5S.js} +270 -88
  110. package/dist/chunks/{tui-HA3JIVON.js.map → tui-5EKXXN5S.js.map} +2 -2
  111. package/dist/chunks/{upgrade-3QLPPCII.js → upgrade-OZE2Z2OV.js} +2 -2
  112. package/dist/chunks/{worktree-3HYAYSGW.js → worktree-452AXJPV.js} +11 -11
  113. package/dist/index.js +12 -12
  114. package/dist/integrations/resident/runner-worker.js +18 -18
  115. package/dist/integrations/sessions/conversation-search.d.ts +10 -1
  116. package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
  117. package/dist/integrations/subagents/runtime.d.ts +3 -1
  118. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  119. package/dist/integrations/subagents/saved-agents.d.ts +7 -5
  120. package/dist/integrations/subagents/saved-agents.d.ts.map +1 -1
  121. package/dist/tui/App.d.ts.map +1 -1
  122. package/dist/tui/PermissionOverlay.d.ts +9 -2
  123. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  124. package/dist/tui/agent.d.ts.map +1 -1
  125. package/dist/tui/permission-review.d.ts +75 -18
  126. package/dist/tui/permission-review.d.ts.map +1 -1
  127. package/package.json +8 -8
  128. package/dist/chunks/agent-session-HFOLAFFL.js +0 -53
  129. package/dist/chunks/chunk-OXJEMOBQ.js.map +0 -6
  130. package/dist/chunks/chunk-RQBT4RVE.js.map +0 -6
  131. package/dist/chunks/resume-GJHTPMJS.js +0 -22
  132. package/dist/chunks/session-step-FX6B4TSE.js +0 -29
  133. /package/dist/chunks/{acp-NZITIX4C.js.map → acp-OOJ6EBDV.js.map} +0 -0
  134. /package/dist/chunks/{activity-command-NKOTZ5FK.js.map → activity-command-H7YPFJXX.js.map} +0 -0
  135. /package/dist/chunks/{add-AONYUNXG.js.map → add-E46I4MLS.js.map} +0 -0
  136. /package/dist/chunks/{agent-YPKFE66C.js.map → agent-A3IFU43K.js.map} +0 -0
  137. /package/dist/chunks/{agent-session-HFOLAFFL.js.map → agent-session-V7NDZWPF.js.map} +0 -0
  138. /package/dist/chunks/{archive-SUE5OUZZ.js.map → archive-FWKUN3JD.js.map} +0 -0
  139. /package/dist/chunks/{bin-main-55PUHGTA.js.map → bin-main-YOWKMTAT.js.map} +0 -0
  140. /package/dist/chunks/{browser-HYPSUDAZ.js.map → browser-ZISCIIZG.js.map} +0 -0
  141. /package/dist/chunks/{chat-6OULID33.js.map → chat-JNYLC4XC.js.map} +0 -0
  142. /package/dist/chunks/{chunk-E3HCZYGN.js.map → chunk-2SPJH5HF.js.map} +0 -0
  143. /package/dist/chunks/{chunk-ID334ALD.js.map → chunk-2ZRQG2PH.js.map} +0 -0
  144. /package/dist/chunks/{chunk-DFA5OB46.js.map → chunk-52NW6KXV.js.map} +0 -0
  145. /package/dist/chunks/{chunk-IAYIUJMI.js.map → chunk-5ED3H3C7.js.map} +0 -0
  146. /package/dist/chunks/{chunk-OLOTFDTU.js.map → chunk-5WZ63LBF.js.map} +0 -0
  147. /package/dist/chunks/{chunk-263WNQB4.js.map → chunk-5Y3XJ2QD.js.map} +0 -0
  148. /package/dist/chunks/{chunk-FBNKKDIY.js.map → chunk-62GB6STC.js.map} +0 -0
  149. /package/dist/chunks/{chunk-W27ZDC4R.js.map → chunk-65L26A6S.js.map} +0 -0
  150. /package/dist/chunks/{chunk-2VMMTC2V.js.map → chunk-6E2F73CY.js.map} +0 -0
  151. /package/dist/chunks/{chunk-RB36O3CE.js.map → chunk-7T6O6HZO.js.map} +0 -0
  152. /package/dist/chunks/{chunk-EA6SWPO4.js.map → chunk-A2PPMNCN.js.map} +0 -0
  153. /package/dist/chunks/{chunk-N3FI7O4U.js.map → chunk-AJMJHLWZ.js.map} +0 -0
  154. /package/dist/chunks/{chunk-UBOPUGDN.js.map → chunk-ARILZQYC.js.map} +0 -0
  155. /package/dist/chunks/{chunk-MCNEFI5Q.js.map → chunk-AWDFNOGP.js.map} +0 -0
  156. /package/dist/chunks/{chunk-GU5YARBU.js.map → chunk-BD7DGINR.js.map} +0 -0
  157. /package/dist/chunks/{chunk-EUU4TDTH.js.map → chunk-BTSYFCBK.js.map} +0 -0
  158. /package/dist/chunks/{chunk-3JB5NDB4.js.map → chunk-BVUYBGWV.js.map} +0 -0
  159. /package/dist/chunks/{chunk-5CGH647C.js.map → chunk-COI6QKBD.js.map} +0 -0
  160. /package/dist/chunks/{chunk-TJTRVZFN.js.map → chunk-CWFDC3IX.js.map} +0 -0
  161. /package/dist/chunks/{chunk-XJ4IUCH6.js.map → chunk-D24BFQ2R.js.map} +0 -0
  162. /package/dist/chunks/{chunk-7YXHOSHD.js.map → chunk-D57LFZYV.js.map} +0 -0
  163. /package/dist/chunks/{chunk-CL5TCY4F.js.map → chunk-DEYB7GQW.js.map} +0 -0
  164. /package/dist/chunks/{chunk-AZ3YHVFA.js.map → chunk-DJCBJ4D2.js.map} +0 -0
  165. /package/dist/chunks/{chunk-B2357ETN.js.map → chunk-DK6MIKJ5.js.map} +0 -0
  166. /package/dist/chunks/{chunk-N72DH6D5.js.map → chunk-DQIPEDOM.js.map} +0 -0
  167. /package/dist/chunks/{chunk-SBPCN24X.js.map → chunk-EWD65LWA.js.map} +0 -0
  168. /package/dist/chunks/{chunk-NLKIBRXJ.js.map → chunk-FCM3BH55.js.map} +0 -0
  169. /package/dist/chunks/{chunk-47TGPZWD.js.map → chunk-FEANPQH4.js.map} +0 -0
  170. /package/dist/chunks/{chunk-HU35YAIZ.js.map → chunk-FZZU6FGO.js.map} +0 -0
  171. /package/dist/chunks/{chunk-233DQVSC.js.map → chunk-J3JUC6J6.js.map} +0 -0
  172. /package/dist/chunks/{chunk-UZCA37QE.js.map → chunk-JBI7VU5W.js.map} +0 -0
  173. /package/dist/chunks/{chunk-Z7XA4Y43.js.map → chunk-JC37Z4C2.js.map} +0 -0
  174. /package/dist/chunks/{chunk-4K2NRXHJ.js.map → chunk-JPWIGZJ4.js.map} +0 -0
  175. /package/dist/chunks/{chunk-UIDLXA2K.js.map → chunk-K2WHGUA7.js.map} +0 -0
  176. /package/dist/chunks/{chunk-7EASYULO.js.map → chunk-KG5YQMJ7.js.map} +0 -0
  177. /package/dist/chunks/{chunk-UTMGJDC3.js.map → chunk-KVYTZCCO.js.map} +0 -0
  178. /package/dist/chunks/{chunk-FQZFVLJB.js.map → chunk-KYEHKRUB.js.map} +0 -0
  179. /package/dist/chunks/{chunk-II57E2QW.js.map → chunk-L4M6ZSF6.js.map} +0 -0
  180. /package/dist/chunks/{chunk-UUUNXKL3.js.map → chunk-LNANLHGE.js.map} +0 -0
  181. /package/dist/chunks/{chunk-CUOWARJI.js.map → chunk-MD7SYK6K.js.map} +0 -0
  182. /package/dist/chunks/{chunk-YKEPC6NH.js.map → chunk-OIRKBC2L.js.map} +0 -0
  183. /package/dist/chunks/{chunk-3OAGXDRM.js.map → chunk-P5GCOEET.js.map} +0 -0
  184. /package/dist/chunks/{chunk-2WQFRVVQ.js.map → chunk-Q733LA67.js.map} +0 -0
  185. /package/dist/chunks/{chunk-2KKF45DQ.js.map → chunk-QGU3QOXI.js.map} +0 -0
  186. /package/dist/chunks/{chunk-QNF6COCY.js.map → chunk-RGCA3YZA.js.map} +0 -0
  187. /package/dist/chunks/{chunk-T75ITEN6.js.map → chunk-S7HFDW5W.js.map} +0 -0
  188. /package/dist/chunks/{chunk-BEFTUDYP.js.map → chunk-SN4RRU3A.js.map} +0 -0
  189. /package/dist/chunks/{chunk-SIK62TDI.js.map → chunk-TAWI7GF2.js.map} +0 -0
  190. /package/dist/chunks/{chunk-CZEU2JYJ.js.map → chunk-TQ2PH66J.js.map} +0 -0
  191. /package/dist/chunks/{chunk-LFVQSMJG.js.map → chunk-U4A4C4GE.js.map} +0 -0
  192. /package/dist/chunks/{chunk-XEHLRJXR.js.map → chunk-UJ7NTALX.js.map} +0 -0
  193. /package/dist/chunks/{chunk-HV77F4SF.js.map → chunk-VPDXH3ZZ.js.map} +0 -0
  194. /package/dist/chunks/{chunk-HI2KXIGA.js.map → chunk-XJMHPZGJ.js.map} +0 -0
  195. /package/dist/chunks/{chunk-74U3P65Q.js.map → chunk-XRLM7PL2.js.map} +0 -0
  196. /package/dist/chunks/{chunk-P2Y4LUPJ.js.map → chunk-YN5PDLFB.js.map} +0 -0
  197. /package/dist/chunks/{chunk-QO5JUKFG.js.map → chunk-ZGL3HYDE.js.map} +0 -0
  198. /package/dist/chunks/{cli-runtime-G3FHYTCI.js.map → cli-runtime-KFHNZS4M.js.map} +0 -0
  199. /package/dist/chunks/{commands-TIRZH2TK.js.map → commands-7FSE67S7.js.map} +0 -0
  200. /package/dist/chunks/{crash-report-E4J7KQ32.js.map → crash-report-5S6I2H4P.js.map} +0 -0
  201. /package/dist/chunks/{dist-CVDGKJEI.js.map → dist-2QEEO2BO.js.map} +0 -0
  202. /package/dist/chunks/{dist-2U6NNEPY.js.map → dist-BMP4NVQA.js.map} +0 -0
  203. /package/dist/chunks/{dist-QHKTYYMX.js.map → dist-EC2S5MA6.js.map} +0 -0
  204. /package/dist/chunks/{dist-YX7Q3EJR.js.map → dist-KGS4QDJL.js.map} +0 -0
  205. /package/dist/chunks/{dist-MKQZKCB4.js.map → dist-MLM3PBXB.js.map} +0 -0
  206. /package/dist/chunks/{dist-2IUQEIEI.js.map → dist-VMJECBAZ.js.map} +0 -0
  207. /package/dist/chunks/{dist-QCKKBLDW.js.map → dist-ZHD7MSXC.js.map} +0 -0
  208. /package/dist/chunks/{doctor-ASXICRC5.js.map → doctor-P67RCEDL.js.map} +0 -0
  209. /package/dist/chunks/{drain-CGS3KBU3.js.map → drain-GXTL5M2V.js.map} +0 -0
  210. /package/dist/chunks/{eval-XWC3UCFI.js.map → eval-TGCAUXM6.js.map} +0 -0
  211. /package/dist/chunks/{exec-FOUQBA6I.js.map → exec-KGTWE4LA.js.map} +0 -0
  212. /package/dist/chunks/{home-76YLI2M6.js.map → home-PZO47UU7.js.map} +0 -0
  213. /package/dist/chunks/{host-queries-ODUQHYBN.js.map → host-queries-QOFBCKMJ.js.map} +0 -0
  214. /package/dist/chunks/{lifecycle-JN43XQSS.js.map → lifecycle-DPH2KOCH.js.map} +0 -0
  215. /package/dist/chunks/{list-TC7TYJDR.js.map → list-ILFBHQS7.js.map} +0 -0
  216. /package/dist/chunks/{login-CTC6CAM4.js.map → login-EUEB5HLK.js.map} +0 -0
  217. /package/dist/chunks/{logs-2NGJFIQI.js.map → logs-F2II4CCT.js.map} +0 -0
  218. /package/dist/chunks/{mcp-BPH7KWZ6.js.map → mcp-KPJ7KVE4.js.map} +0 -0
  219. /package/dist/chunks/{message-command-A4XU7QQQ.js.map → message-command-I3J5NA35.js.map} +0 -0
  220. /package/dist/chunks/{operator-tools-6RYAHVSL.js.map → operator-tools-2SI6AFFF.js.map} +0 -0
  221. /package/dist/chunks/{output-schema-GSWZHKSI.js.map → output-schema-PJNYSOO5.js.map} +0 -0
  222. /package/dist/chunks/{pal-4QXXG42H.js.map → pal-7ILZQGYB.js.map} +0 -0
  223. /package/dist/chunks/{providers-6PIIF3WR.js.map → providers-MD4HAS6J.js.map} +0 -0
  224. /package/dist/chunks/{resident-UP7W6MV6.js.map → resident-HVI3YGHH.js.map} +0 -0
  225. /package/dist/chunks/{resume-GJHTPMJS.js.map → resume-R2OYMKYY.js.map} +0 -0
  226. /package/dist/chunks/{resume-command-2RFT7AGW.js.map → resume-command-EVY3VMMM.js.map} +0 -0
  227. /package/dist/chunks/{schedule-FZISVF6A.js.map → schedule-QCGOB5T2.js.map} +0 -0
  228. /package/dist/chunks/{service-4WADXOUI.js.map → service-MVQA56RE.js.map} +0 -0
  229. /package/dist/chunks/{session-step-FX6B4TSE.js.map → session-step-XAOTLL4U.js.map} +0 -0
  230. /package/dist/chunks/{skills-BJQGVQ23.js.map → skills-MTR3YGWW.js.map} +0 -0
  231. /package/dist/chunks/{state-2KKVQPZ2.js.map → state-5GSLSGR2.js.map} +0 -0
  232. /package/dist/chunks/{store-LO4SSRYI.js.map → store-P2I5OF2S.js.map} +0 -0
  233. /package/dist/chunks/{store-TKJKR5NM.js.map → store-SQUUV4YQ.js.map} +0 -0
  234. /package/dist/chunks/{store-YFTJ24WU.js.map → store-UMSGE2UE.js.map} +0 -0
  235. /package/dist/chunks/{upgrade-3QLPPCII.js.map → upgrade-OZE2Z2OV.js.map} +0 -0
  236. /package/dist/chunks/{worktree-3HYAYSGW.js.map → worktree-452AXJPV.js.map} +0 -0
@@ -2,21 +2,21 @@ import { createRequire as __namzuCreateRequire } from 'node:module';
2
2
  const require = __namzuCreateRequire(import.meta.url);
3
3
  import {
4
4
  reportCrash
5
- } from "./chunk-QNF6COCY.js";
5
+ } from "./chunk-RGCA3YZA.js";
6
6
  import {
7
7
  BYPASS_CONSENT_BODY,
8
8
  BYPASS_CONSENT_TITLE,
9
9
  acknowledgeBypass,
10
10
  hasAcknowledgedBypass
11
- } from "./chunk-HU35YAIZ.js";
11
+ } from "./chunk-FZZU6FGO.js";
12
12
  import {
13
13
  settleAnsweredPark
14
- } from "./chunk-B2357ETN.js";
14
+ } from "./chunk-DK6MIKJ5.js";
15
15
  import {
16
16
  DELIVERY_READ_LIMIT,
17
17
  readSourceDeliveryPage,
18
18
  takeSuppressedCount
19
- } from "./chunk-XEHLRJXR.js";
19
+ } from "./chunk-UJ7NTALX.js";
20
20
  import {
21
21
  callsCount
22
22
  } from "./chunk-E5VLANCO.js";
@@ -38,7 +38,7 @@ import {
38
38
  confirmationView,
39
39
  describeChanges,
40
40
  permissionsChanged
41
- } from "./chunk-UIDLXA2K.js";
41
+ } from "./chunk-K2WHGUA7.js";
42
42
  import {
43
43
  visibleScheduleMessage
44
44
  } from "./chunk-NADQQMMG.js";
@@ -55,25 +55,25 @@ import {
55
55
  runsPerDay,
56
56
  scriptShellUnavailableReason,
57
57
  verifyScheduledScript
58
- } from "./chunk-2WQFRVVQ.js";
58
+ } from "./chunk-Q733LA67.js";
59
59
  import {
60
60
  allowsCommands,
61
61
  compileJobPolicy,
62
62
  compileScriptCheckPolicy,
63
63
  isPresetName
64
- } from "./chunk-EA6SWPO4.js";
65
- import "./chunk-SIK62TDI.js";
64
+ } from "./chunk-A2PPMNCN.js";
65
+ import "./chunk-TAWI7GF2.js";
66
66
  import {
67
67
  formatResumeShellCommand,
68
68
  parkedRunWords,
69
69
  resumeCommand
70
- } from "./chunk-P2Y4LUPJ.js";
70
+ } from "./chunk-YN5PDLFB.js";
71
71
  import {
72
72
  appendHistory,
73
73
  nextFireOf,
74
74
  readHistory,
75
75
  readState
76
- } from "./chunk-OLOTFDTU.js";
76
+ } from "./chunk-5WZ63LBF.js";
77
77
  import {
78
78
  TURN_LIMIT_FIELDS,
79
79
  baseBranchReviewPrompt,
@@ -90,7 +90,7 @@ import {
90
90
  reviewPrompt,
91
91
  runSlash,
92
92
  turnLimitCommands
93
- } from "./chunk-3JB5NDB4.js";
93
+ } from "./chunk-BVUYBGWV.js";
94
94
  import {
95
95
  capChoiceLines,
96
96
  choiceDisplayText,
@@ -103,11 +103,11 @@ import {
103
103
  } from "./chunk-M3TJHQF7.js";
104
104
  import {
105
105
  handleTerminationSignals
106
- } from "./chunk-SBPCN24X.js";
106
+ } from "./chunk-EWD65LWA.js";
107
107
  import "./chunk-TBIX6JRE.js";
108
108
  import {
109
109
  setUserConfigValue
110
- } from "./chunk-Z7XA4Y43.js";
110
+ } from "./chunk-JC37Z4C2.js";
111
111
  import {
112
112
  describeAllCredentialsLogout,
113
113
  describeCodexDeviceLoginStart,
@@ -129,14 +129,14 @@ import {
129
129
  sectionHeading,
130
130
  withAutoChoice,
131
131
  writeConversationExport
132
- } from "./chunk-HI2KXIGA.js";
132
+ } from "./chunk-XJMHPZGJ.js";
133
133
  import {
134
134
  tuiPalDefinition,
135
135
  tuiPalEnvironment,
136
136
  tuiPalOwner,
137
137
  tuiPalPreferences
138
- } from "./chunk-5CGH647C.js";
139
- import "./chunk-7EASYULO.js";
138
+ } from "./chunk-COI6QKBD.js";
139
+ import "./chunk-KG5YQMJ7.js";
140
140
  import {
141
141
  COMPACTED_HINT,
142
142
  COMPACTING_LABEL,
@@ -196,17 +196,17 @@ import {
196
196
  webLiveStatus,
197
197
  webSettledLine,
198
198
  withDebugDetail
199
- } from "./chunk-OXJEMOBQ.js";
199
+ } from "./chunk-AZCFI7C6.js";
200
200
  import {
201
201
  describePlainInterruption,
202
202
  describeProviderWait,
203
203
  describeProviderWaitClock
204
- } from "./chunk-NLKIBRXJ.js";
204
+ } from "./chunk-FCM3BH55.js";
205
205
  import {
206
206
  openManagedWorktrees,
207
207
  worktreeOpenHint
208
- } from "./chunk-LFVQSMJG.js";
209
- import "./chunk-YKEPC6NH.js";
208
+ } from "./chunk-U4A4C4GE.js";
209
+ import "./chunk-OIRKBC2L.js";
210
210
  import {
211
211
  theme
212
212
  } from "./chunk-CDYUGK7F.js";
@@ -230,17 +230,17 @@ import {
230
230
  resolveTurnGuards,
231
231
  runTokens,
232
232
  settledElapsed
233
- } from "./chunk-HV77F4SF.js";
234
- import "./chunk-W27ZDC4R.js";
233
+ } from "./chunk-VPDXH3ZZ.js";
234
+ import "./chunk-65L26A6S.js";
235
235
  import {
236
236
  openInBrowser
237
- } from "./chunk-EUU4TDTH.js";
237
+ } from "./chunk-BTSYFCBK.js";
238
238
  import "./chunk-NUGPLXVK.js";
239
239
  import {
240
240
  beginCodexDeviceLogin,
241
241
  beginSubscriptionLogin,
242
242
  parsePastedInput
243
- } from "./chunk-DFA5OB46.js";
243
+ } from "./chunk-52NW6KXV.js";
244
244
  import {
245
245
  NO_SKILLS_FOUND,
246
246
  composeSkillsPrompt,
@@ -248,13 +248,13 @@ import {
248
248
  loadSkillBody,
249
249
  renderSkillRoster,
250
250
  skillTierLabel
251
- } from "./chunk-7YXHOSHD.js";
252
- import "./chunk-T75ITEN6.js";
253
- import "./chunk-233DQVSC.js";
251
+ } from "./chunk-D57LFZYV.js";
252
+ import "./chunk-S7HFDW5W.js";
253
+ import "./chunk-J3JUC6J6.js";
254
254
  import {
255
255
  claimPalConversation,
256
256
  listPalConversations
257
- } from "./chunk-II57E2QW.js";
257
+ } from "./chunk-L4M6ZSF6.js";
258
258
  import "./chunk-ZWA2JRJV.js";
259
259
  import {
260
260
  pinTrustedProjectPath,
@@ -275,11 +275,11 @@ import {
275
275
  loadConfigWithProvenance,
276
276
  readPermissionLayers,
277
277
  resolveComposerTriggers
278
- } from "./chunk-GU5YARBU.js";
278
+ } from "./chunk-BD7DGINR.js";
279
279
  import "./chunk-KONYGNG6.js";
280
280
  import {
281
281
  formatConfigSource
282
- } from "./chunk-2KKF45DQ.js";
282
+ } from "./chunk-QGU3QOXI.js";
283
283
  import {
284
284
  displayPath,
285
285
  formatSize,
@@ -308,7 +308,7 @@ import {
308
308
  writeJsonAtomic
309
309
  } from "./chunk-OEW7CJKK.js";
310
310
  import "./chunk-HE7WUOX2.js";
311
- import "./chunk-N3FI7O4U.js";
311
+ import "./chunk-AJMJHLWZ.js";
312
312
  import {
313
313
  EXIT_INTERNAL_ERROR
314
314
  } from "./chunk-Y7B67G22.js";
@@ -326,7 +326,7 @@ import {
326
326
  primaryProvider,
327
327
  signedInSubscriptionProviders,
328
328
  writePreferences
329
- } from "./chunk-XJ4IUCH6.js";
329
+ } from "./chunk-D24BFQ2R.js";
330
330
  import {
331
331
  ALL_PROVIDER_IDS,
332
332
  PROVIDER_REGISTRY,
@@ -336,21 +336,21 @@ import {
336
336
  } from "./chunk-6LLJQ3KY.js";
337
337
  import {
338
338
  applyProviderFlags
339
- } from "./chunk-UUUNXKL3.js";
339
+ } from "./chunk-LNANLHGE.js";
340
340
  import "./chunk-XEUQN4JC.js";
341
341
  import {
342
342
  PAUSED_TURN_LINES,
343
343
  currentTimeLine,
344
344
  describeTurnStop,
345
345
  handoffContinuationNote
346
- } from "./chunk-QO5JUKFG.js";
346
+ } from "./chunk-ZGL3HYDE.js";
347
347
  import {
348
348
  autoAvailable,
349
349
  nextCycleMode,
350
350
  permissionModeDescription,
351
351
  permissionModeLabel,
352
352
  permissionModeName
353
- } from "./chunk-2VMMTC2V.js";
353
+ } from "./chunk-6E2F73CY.js";
354
354
  import {
355
355
  terminalDisplayText
356
356
  } from "./chunk-EEDZOGV4.js";
@@ -376,25 +376,25 @@ import {
376
376
  titlesOf,
377
377
  typedTextOf,
378
378
  unarchiveConversation
379
- } from "./chunk-UBOPUGDN.js";
379
+ } from "./chunk-ARILZQYC.js";
380
380
  import "./chunk-H6B6AROX.js";
381
- import "./chunk-CL5TCY4F.js";
382
- import "./chunk-FBNKKDIY.js";
381
+ import "./chunk-DEYB7GQW.js";
382
+ import "./chunk-62GB6STC.js";
383
383
  import {
384
384
  isTrusted,
385
385
  trustDir
386
- } from "./chunk-UTMGJDC3.js";
386
+ } from "./chunk-KVYTZCCO.js";
387
387
  import "./chunk-LXB3S4IC.js";
388
- import "./chunk-CZEU2JYJ.js";
388
+ import "./chunk-TQ2PH66J.js";
389
389
  import "./chunk-WMEZTDLT.js";
390
390
  import {
391
391
  contextLogging,
392
392
  installCliLogging
393
- } from "./chunk-CUOWARJI.js";
393
+ } from "./chunk-MD7SYK6K.js";
394
394
  import "./chunk-OH6TB27S.js";
395
395
  import "./chunk-IE5XIE4W.js";
396
396
  import "./chunk-B73OIFL6.js";
397
- import "./chunk-4K2NRXHJ.js";
397
+ import "./chunk-JPWIGZJ4.js";
398
398
  import "./chunk-JORONMD3.js";
399
399
  import {
400
400
  clearAllStoredCredentials,
@@ -408,10 +408,10 @@ import {
408
408
  readStoredSubscriptionCredential,
409
409
  restrictToOwner,
410
410
  writeStoredGeminiApiKey
411
- } from "./chunk-MCNEFI5Q.js";
411
+ } from "./chunk-AWDFNOGP.js";
412
412
  import {
413
413
  namzuHomePath
414
- } from "./chunk-AZ3YHVFA.js";
414
+ } from "./chunk-DJCBJ4D2.js";
415
415
  import {
416
416
  ACCEPT_EDITS_TOOLS,
417
417
  DECLINED_TOOL_CALL_FEEDBACK,
@@ -470,7 +470,7 @@ import {
470
470
  validateTimeZone,
471
471
  wrapUntrusted,
472
472
  writePeerRecord
473
- } from "./chunk-RQBT4RVE.js";
473
+ } from "./chunk-RKMGVFLZ.js";
474
474
  import {
475
475
  __commonJS,
476
476
  __export,
@@ -35660,47 +35660,135 @@ function buildPeerTools(current) {
35660
35660
  __name(buildPeerTools, "buildPeerTools");
35661
35661
 
35662
35662
  // src/tui/permission-review.ts
35663
- var MAX_PERMISSION_REVIEW_BYTES = 8e3;
35663
+ import { createHash as createHash2 } from "node:crypto";
35664
+ var MAX_REVIEW_VALUE_CHARS = 2e5;
35665
+ var REVIEW_ALLOCATION_BYTES = 1024 * 1024;
35664
35666
  var MAX_WORKFLOW_REVIEW_BYTES = 640 * 1024;
35665
- function permissionReviewLimit(calls) {
35666
- return calls.length > 0 && calls.every((call) => call.name === "workflow") ? MAX_WORKFLOW_REVIEW_BYTES : MAX_PERMISSION_REVIEW_BYTES;
35667
+ function permissionReviewLimits(calls) {
35668
+ return calls.length > 0 && calls.every((call) => call.name === "workflow") ? { valueChars: MAX_WORKFLOW_REVIEW_BYTES, totalBytes: MAX_WORKFLOW_REVIEW_BYTES } : { valueChars: MAX_REVIEW_VALUE_CHARS, totalBytes: REVIEW_ALLOCATION_BYTES };
35667
35669
  }
35668
- __name(permissionReviewLimit, "permissionReviewLimit");
35670
+ __name(permissionReviewLimits, "permissionReviewLimits");
35669
35671
  var PERMISSION_REVIEW_PAGE_ROWS = 6;
35670
35672
  function permissionReviewPageRows(terminalRows) {
35671
35673
  const rows = terminalRows ?? 24;
35672
35674
  return Math.min(24, Math.max(PERMISSION_REVIEW_PAGE_ROWS, rows - 18));
35673
35675
  }
35674
35676
  __name(permissionReviewPageRows, "permissionReviewPageRows");
35675
- function permissionReviewRefusal(reason) {
35676
- 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.";
35677
+ function permissionReviewRefusal(_reason) {
35678
+ return "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.";
35677
35679
  }
35678
35680
  __name(permissionReviewRefusal, "permissionReviewRefusal");
35679
- var ReviewLimitError = class extends Error {
35680
- static {
35681
- __name(this, "ReviewLimitError");
35682
- }
35683
- };
35681
+ var WITHHELD_NOTICE = "Too large to show in full. Approving runs it once and is not remembered.";
35682
+ var LONG_INPUT_NOTICE = "Long input. Approving runs it once and is not remembered.";
35683
+ var WITHHELD_MARK = "too large to show";
35684
+ var LONG_INPUT_MARK = "long input";
35685
+ function withheldNotice(withheld, total) {
35686
+ if (total <= 1) return withheld[0]?.omitted === false ? LONG_INPUT_NOTICE : WITHHELD_NOTICE;
35687
+ return `${withheld.length} of ${total} calls ${withheld.length === 1 ? "is" : "are"} marked below. Approving runs the batch once and is not remembered.`;
35688
+ }
35689
+ __name(withheldNotice, "withheldNotice");
35690
+ function roughCount(value) {
35691
+ if (value < 1e3) return String(value);
35692
+ if (value < 1e6) return `${Number((value / 1e3).toFixed(1))}k`;
35693
+ return `${Number((value / 1e6).toFixed(1))}M`;
35694
+ }
35695
+ __name(roughCount, "roughCount");
35696
+ function withheldPlaceholder(characters) {
35697
+ return `[${characters < 1e3 ? "" : "about "}${roughCount(characters)} characters not shown]`;
35698
+ }
35699
+ __name(withheldPlaceholder, "withheldPlaceholder");
35700
+ var LONG_INPUT_UNITS = 2e3;
35701
+ var LONG_INPUT_ELEMENTS = 1e4;
35702
+ var LONG_INPUT_DEPTH = 64;
35703
+ function isLongInput(input) {
35704
+ let units = 0;
35705
+ let elements = 0;
35706
+ const walk = /* @__PURE__ */ __name((value, depth) => {
35707
+ if (units > LONG_INPUT_UNITS || elements > LONG_INPUT_ELEMENTS) return true;
35708
+ if (typeof value === "string") {
35709
+ units += value.length + 2;
35710
+ return units > LONG_INPUT_UNITS;
35711
+ }
35712
+ if (typeof value !== "object" || value === null) {
35713
+ units += String(value).length;
35714
+ return units > LONG_INPUT_UNITS;
35715
+ }
35716
+ if (depth >= LONG_INPUT_DEPTH) return true;
35717
+ const entries = Array.isArray(value) ? value.map((item, index) => [String(index), item]) : Object.entries(value);
35718
+ elements += entries.length;
35719
+ units += 2 + Math.max(0, entries.length - 1);
35720
+ for (const [key, item] of entries) {
35721
+ if (!Array.isArray(value)) units += key.length + 3;
35722
+ if (walk(item, depth + 1)) return true;
35723
+ }
35724
+ return units > LONG_INPUT_UNITS || elements > LONG_INPUT_ELEMENTS;
35725
+ }, "walk");
35726
+ return walk(input, 0);
35727
+ }
35728
+ __name(isLongInput, "isLongInput");
35684
35729
  var ReviewShapeError = class extends Error {
35685
35730
  static {
35686
35731
  __name(this, "ReviewShapeError");
35687
35732
  }
35688
35733
  };
35689
- function buildPermissionReview(calls, maxBytes = permissionReviewLimit(calls)) {
35690
- if (!Number.isSafeInteger(maxBytes) || maxBytes < 1) {
35734
+ function buildPermissionReview(calls, limits = permissionReviewLimits(
35735
+ calls
35736
+ )) {
35737
+ if (!Number.isSafeInteger(limits.valueChars) || limits.valueChars < 1 || !Number.isSafeInteger(limits.totalBytes) || limits.totalBytes < 1) {
35691
35738
  return { ok: false, reason: "unrepresentable" };
35692
35739
  }
35693
35740
  const chunks = [];
35694
35741
  let bytes = 0;
35695
35742
  const active = /* @__PURE__ */ new WeakSet();
35743
+ const hash = createHash2("sha256");
35744
+ const withheldChars = /* @__PURE__ */ new Map();
35745
+ const omittedCalls = /* @__PURE__ */ new Set();
35746
+ let currentCall = 0;
35747
+ let silent = false;
35696
35748
  const append = /* @__PURE__ */ __name((chunk) => {
35749
+ hash.update(chunk);
35750
+ if (silent) return;
35697
35751
  bytes += Buffer.byteLength(chunk, "utf8");
35698
- if (bytes > maxBytes) throw new ReviewLimitError();
35699
35752
  chunks.push(chunk);
35700
35753
  }, "append");
35701
- const appendString = /* @__PURE__ */ __name((value) => {
35702
- if (Buffer.byteLength(value, "utf8") > maxBytes - bytes) throw new ReviewLimitError();
35754
+ const withhold = /* @__PURE__ */ __name((characters, digestOf) => {
35755
+ if (silent) {
35756
+ if (digestOf !== void 0) hash.update(createHash2("sha256").update(digestOf).digest("hex"));
35757
+ return;
35758
+ }
35759
+ withheldChars.set(currentCall, (withheldChars.get(currentCall) ?? 0) + characters);
35760
+ omittedCalls.add(currentCall);
35761
+ const placeholder = JSON.stringify(withheldPlaceholder(characters));
35762
+ bytes += Buffer.byteLength(placeholder, "utf8");
35763
+ chunks.push(placeholder);
35764
+ hash.update(
35765
+ `<withheld ${characters} ${digestOf === void 0 ? "" : createHash2("sha256").update(digestOf).digest("hex")}>`
35766
+ );
35767
+ }, "withhold");
35768
+ const exhausted = /* @__PURE__ */ __name(() => !silent && bytes >= limits.totalBytes, "exhausted");
35769
+ const appendKey = /* @__PURE__ */ __name((value) => {
35770
+ if (value.length > limits.valueChars) throw new ReviewShapeError();
35703
35771
  append(JSON.stringify(value));
35772
+ }, "appendKey");
35773
+ const appendString = /* @__PURE__ */ __name((value) => {
35774
+ if (silent) {
35775
+ withhold(value.length, value);
35776
+ return;
35777
+ }
35778
+ if (value.length > limits.valueChars) {
35779
+ withhold(value.length, value);
35780
+ return;
35781
+ }
35782
+ if (Buffer.byteLength(value, "utf8") > limits.totalBytes - bytes) {
35783
+ withhold(value.length, value);
35784
+ return;
35785
+ }
35786
+ const escaped = JSON.stringify(value);
35787
+ if (Buffer.byteLength(escaped, "utf8") > limits.totalBytes - bytes) {
35788
+ withhold(value.length, value);
35789
+ return;
35790
+ }
35791
+ append(escaped);
35704
35792
  }, "appendString");
35705
35793
  const write = /* @__PURE__ */ __name((value, indent) => {
35706
35794
  if (value === null) {
@@ -35735,14 +35823,26 @@ function buildPermissionReview(calls, maxBytes = permissionReviewLimit(calls)) {
35735
35823
  (name) => name !== "length" && (!/^(0|[1-9]\d*)$/.test(name) || Number(name) >= value.length)
35736
35824
  ))
35737
35825
  throw new ReviewShapeError();
35738
- append("[");
35739
- if (value.length > 0) append("\n");
35740
35826
  for (let index = 0; index < value.length; index += 1) {
35741
35827
  const descriptor = descriptors2[String(index)];
35742
35828
  if (!descriptor || !("value" in descriptor) || !descriptor.enumerable)
35743
35829
  throw new ReviewShapeError();
35830
+ }
35831
+ append("[");
35832
+ if (value.length > 0) append("\n");
35833
+ for (let index = 0; index < value.length; index += 1) {
35744
35834
  append(" ".repeat(indent + 2));
35745
- write(descriptor.value, indent + 2);
35835
+ if (exhausted()) {
35836
+ silent = true;
35837
+ for (let rest = index; rest < value.length; rest += 1) {
35838
+ write(descriptors2[String(rest)].value, indent + 2);
35839
+ }
35840
+ silent = false;
35841
+ withhold(value.length - index);
35842
+ append("\n");
35843
+ break;
35844
+ }
35845
+ write(descriptors2[String(index)].value, indent + 2);
35746
35846
  append(index === value.length - 1 ? "\n" : ",\n");
35747
35847
  }
35748
35848
  if (value.length > 0) append(" ".repeat(indent));
@@ -35766,7 +35866,21 @@ function buildPermissionReview(calls, maxBytes = permissionReviewLimit(calls)) {
35766
35866
  const descriptor = descriptors[key];
35767
35867
  if (!descriptor || !("value" in descriptor)) throw new ReviewShapeError();
35768
35868
  append(" ".repeat(indent + 2));
35769
- appendString(key);
35869
+ if (exhausted()) {
35870
+ silent = true;
35871
+ for (let rest = index; rest < entries.length; rest += 1) {
35872
+ const restKey = entries[rest];
35873
+ hash.update(restKey);
35874
+ write(descriptors[restKey].value, indent + 2);
35875
+ }
35876
+ silent = false;
35877
+ appendKey("...");
35878
+ append(": ");
35879
+ withhold(entries.length - index);
35880
+ append("\n");
35881
+ break;
35882
+ }
35883
+ appendKey(key);
35770
35884
  append(": ");
35771
35885
  write(descriptor.value, indent + 2);
35772
35886
  append(index === entries.length - 1 ? "\n" : ",\n");
@@ -35796,21 +35910,48 @@ function buildPermissionReview(calls, maxBytes = permissionReviewLimit(calls)) {
35796
35910
  isDestructive: isDestructive.value
35797
35911
  };
35798
35912
  });
35799
- write(
35800
- {
35801
- calls: exactCalls
35802
- },
35803
- 0
35804
- );
35805
- return { ok: true, text: chunks.join(""), bytes };
35806
- } catch (error) {
35913
+ append("{\n");
35914
+ append(' "calls": [');
35915
+ if (exactCalls.length > 0) append("\n");
35916
+ for (let index = 0; index < exactCalls.length; index += 1) {
35917
+ currentCall = index;
35918
+ append(" ");
35919
+ write(exactCalls[index], 4);
35920
+ append(index === exactCalls.length - 1 ? "\n" : ",\n");
35921
+ }
35922
+ if (exactCalls.length > 0) append(" ");
35923
+ append("]\n");
35924
+ append("}");
35925
+ for (let index = 0; index < exactCalls.length; index += 1) {
35926
+ const call = exactCalls[index];
35927
+ if (!withheldChars.has(index) && !FORMATTED_TOOLS.has(call.name) && isLongInput(call.input)) {
35928
+ withheldChars.set(index, 0);
35929
+ }
35930
+ }
35931
+ const withheld = [...withheldChars.entries()].sort((a, b) => a[0] - b[0]).map(([index, characters]) => ({
35932
+ index,
35933
+ name: exactCalls[index].name,
35934
+ characters,
35935
+ omitted: omittedCalls.has(index)
35936
+ }));
35807
35937
  return {
35808
- ok: false,
35809
- reason: error instanceof ReviewLimitError ? "too_large" : "unrepresentable"
35938
+ ok: true,
35939
+ text: chunks.join(""),
35940
+ bytes,
35941
+ withheld,
35942
+ envelopeHash: hash.digest("hex")
35810
35943
  };
35944
+ } catch {
35945
+ return { ok: false, reason: "unrepresentable" };
35811
35946
  }
35812
35947
  }
35813
35948
  __name(buildPermissionReview, "buildPermissionReview");
35949
+ function withheldMark(context, index) {
35950
+ const call = context.withheld?.find((item) => item.index === index);
35951
+ if (!call) return "";
35952
+ return ` \xB7 ${call.omitted ? WITHHELD_MARK : LONG_INPUT_MARK}`;
35953
+ }
35954
+ __name(withheldMark, "withheldMark");
35814
35955
  function buildPermissionSummary(review, context = {}) {
35815
35956
  let parsed;
35816
35957
  try {
@@ -35846,11 +35987,11 @@ function buildPermissionSummary(review, context = {}) {
35846
35987
  const compactText = complete && calls.length > 0 && calls.every((call) => call.name === "Agent" && call.readable.label !== void 0) ? compactAgentPlan(calls) : void 0;
35847
35988
  if (complete && calls.length > 1 && calls.every((call) => call.name === "Agent" && call.readable.label !== void 0)) {
35848
35989
  const overview = calls.map(
35849
- (call, index) => `${index + 1}. ${call.readable.label}${call.isDestructive ? " \xB7 destructive" : ""}`
35990
+ (call, index) => `${index + 1}. ${call.readable.label}${call.isDestructive ? " \xB7 destructive" : ""}${withheldMark(context, index)}`
35850
35991
  );
35851
35992
  const details = calls.map(
35852
35993
  (call, index) => [
35853
- `${index + 1}. ${call.readable.label}${call.isDestructive ? " \xB7 destructive" : ""}`,
35994
+ `${index + 1}. ${call.readable.label}${call.isDestructive ? " \xB7 destructive" : ""}${withheldMark(context, index)}`,
35854
35995
  ...call.readable.lines.map((line) => ` ${line}`)
35855
35996
  ].join("\n")
35856
35997
  );
@@ -35865,14 +36006,14 @@ function buildPermissionSummary(review, context = {}) {
35865
36006
  ...compactText !== void 0 ? { compactText } : {},
35866
36007
  text: calls.map(
35867
36008
  (call, index) => [
35868
- `${index + 1}. ${call.name}${call.isDestructive ? " \xB7 destructive" : ""}`,
36009
+ `${index + 1}. ${call.name}${call.isDestructive ? " \xB7 destructive" : ""}${withheldMark(context, index)}`,
35869
36010
  ...call.readable.lines.map((line) => ` ${line}`)
35870
36011
  ].join("\n")
35871
36012
  ).join("\n\n"),
35872
36013
  ...complete && expanded ? {
35873
36014
  expandedText: calls.map(
35874
36015
  (call, index) => [
35875
- `${index + 1}. ${call.name}${call.isDestructive ? " \xB7 destructive" : ""}`,
36016
+ `${index + 1}. ${call.name}${call.isDestructive ? " \xB7 destructive" : ""}${withheldMark(context, index)}`,
35876
36017
  ...(call.readable.expandedLines ?? call.readable.lines).map((line) => ` ${line}`)
35877
36018
  ].join("\n")
35878
36019
  ).join("\n\n")
@@ -42841,7 +42982,7 @@ function permissionAnswers(toolCalls, options = {}) {
42841
42982
  const agents = workflow || toolCalls.length > 0 && toolCalls.every((call) => call.name === "Agent");
42842
42983
  const approve = workflow ? "Start this workflow" : agents ? toolCalls.length === 1 ? "Start this agent" : `Start these ${toolCalls.length} agents` : "Yes";
42843
42984
  const reject = agents ? "Do not start" : "No, and tell Namzu what to do differently (esc)";
42844
- const extra = options.batchOnly ? void 0 : extraAnswer(toolCalls, options);
42985
+ const extra = options.batchOnly || options.withheld ? void 0 : extraAnswer(toolCalls, options);
42845
42986
  return [
42846
42987
  { label: approve, kind: "approve" },
42847
42988
  ...extra ? [extra] : [],
@@ -42898,7 +43039,8 @@ function PermissionOverlay({
42898
43039
  commandArguments,
42899
43040
  rememberWhere,
42900
43041
  siteNotes = [],
42901
- screenConsent
43042
+ screenConsent,
43043
+ withheld = []
42902
43044
  }) {
42903
43045
  const pageRows = Math.max(1, permissionReviewPageRows(terminalRows) - (sourceLabel2 ? 1 : 0));
42904
43046
  const single2 = toolCalls.length === 1;
@@ -42917,6 +43059,7 @@ function PermissionOverlay({
42917
43059
  const choices2 = permissionChoices(toolCalls, {
42918
43060
  batchOnly,
42919
43061
  screenConsent: sharing,
43062
+ withheld: withheld.length > 0,
42920
43063
  ...mode ? { mode } : {},
42921
43064
  ...commandArguments ? { commandArguments } : {},
42922
43065
  ...rememberWhere ? { rememberWhere } : {}
@@ -42944,6 +43087,7 @@ function PermissionOverlay({
42944
43087
  sourceLabel2 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: terminalDisplayText(sourceLabel2) }) : null,
42945
43088
  sharingNotes.map((note) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.primary, children: terminalDisplayText(note) }, note)),
42946
43089
  escalationNotes.map((note) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.status.error, children: terminalDisplayText(note) }, note)),
43090
+ withheld.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.muted, children: terminalDisplayText(withheldNotice(withheld, toolCalls.length)) }) : null,
42947
43091
  siteNotes.map((note) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.secondary, children: terminalDisplayText(note) }, note)),
42948
43092
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { flexDirection: "column", paddingLeft: 2, children: visibleRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: rowColor2(row.text, detailsOpen), children: row.continuation ? `\u21B3 ${row.text}` : row.text }) }, row.index)) }),
42949
43093
  paged ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Text, { color: theme.text.muted, children: [
@@ -42970,7 +43114,9 @@ function PermissionOverlay({
42970
43114
  ] }),
42971
43115
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Text, { color: theme.text.muted, children: fitHints(
42972
43116
  [
42973
- { text: "\u2191\u2193 select", rank: 5 },
43117
+ // The arrow keys are the first of the answer keys to go: enter and y / n
43118
+ // still answer, and the list shows which row is selected.
43119
+ { text: "\u2191\u2193 select", rank: 4 },
42974
43120
  { text: "enter confirm", rank: 5 },
42975
43121
  {
42976
43122
  text: "y / n answer",
@@ -42987,7 +43133,9 @@ function PermissionOverlay({
42987
43133
  {
42988
43134
  text: `d ${scriptView ? detailsOpen ? "collapse" : "script" : detailsOpen ? "readable" : compact ? "instructions" : "view input"}`,
42989
43135
  short: `d ${scriptView ? detailsOpen ? "collapse" : "script" : detailsOpen ? "readable" : compact ? "full" : "input"}`,
42990
- rank: scriptView ? 5 : 3
43136
+ // The only way to the exact input: it outranks the stop hint,
43137
+ // whose key works without being shown.
43138
+ rank: 5
42991
43139
  }
42992
43140
  ],
42993
43141
  boxedHintWidth(columns)
@@ -53501,6 +53649,7 @@ ${blocks.join("\n\n")}`;
53501
53649
  }, []);
53502
53650
  const permissionResolveRef = (0, import_react52.useRef)(null);
53503
53651
  const permissionQueueRef = (0, import_react52.useRef)([]);
53652
+ const permissionShownRef = (0, import_react52.useRef)(null);
53504
53653
  const [queuedPermissionCount, setQueuedPermissionCount] = (0, import_react52.useState)(0);
53505
53654
  (0, import_react52.useEffect)(
53506
53655
  () => () => {
@@ -56404,6 +56553,7 @@ ${blocks.join("\n\n")}`;
56404
56553
  const permissionAnswerOptions = /* @__PURE__ */ __name((pending) => ({
56405
56554
  batchOnly: pending.batchOnly === true,
56406
56555
  screenConsent: pending.screenConsent === true,
56556
+ withheld: pending.withheld.length > 0,
56407
56557
  mode: permissionModeRef.current,
56408
56558
  ...session?.allowForSession && session.commandArguments ? {
56409
56559
  commandArguments: session.commandArguments,
@@ -56411,8 +56561,19 @@ ${blocks.join("\n\n")}`;
56411
56561
  } : {}
56412
56562
  }), "permissionAnswerOptions");
56413
56563
  const resolvePermission = (0, import_react52.useCallback)(
56414
- (decision) => {
56564
+ (requested) => {
56415
56565
  const resolve9 = permissionResolveRef.current;
56566
+ const shown = permissionShownRef.current;
56567
+ permissionShownRef.current = null;
56568
+ let decision = requested;
56569
+ if (requested.kind === "approve" && shown) {
56570
+ const again = buildPermissionReview(shown.source.toolCalls);
56571
+ if (!again.ok || again.envelopeHash !== shown.envelopeHash)
56572
+ decision = {
56573
+ kind: "reject",
56574
+ feedback: "Refused: the tool input changed after it was shown for approval."
56575
+ };
56576
+ }
56416
56577
  permissionResolveRef.current = null;
56417
56578
  permissionOpenedAtRef.current = null;
56418
56579
  setPermissionReviewOffset(0);
@@ -56429,6 +56590,7 @@ ${blocks.join("\n\n")}`;
56429
56590
  permissionResolveRef.current = next.resolve;
56430
56591
  permissionOpenedAtRef.current = Date.now();
56431
56592
  setPermissionDetailsOpen(!next.permission.summary.complete);
56593
+ permissionShownRef.current = next.permission;
56432
56594
  setPermission(next.permission);
56433
56595
  setState("awaiting-permission");
56434
56596
  }
@@ -57215,13 +57377,22 @@ ${blocks.join("\n\n")}`;
57215
57377
  const summary2 = buildPermissionSummary(review.text, {
57216
57378
  describeUiRef: /* @__PURE__ */ __name((ref) => reviewSessionRef.current?.describeComputerUseRef?.(ref), "describeUiRef"),
57217
57379
  fileExists: /* @__PURE__ */ __name((path) => existsSync2(resolve7(ctxRef.current.cwd, path)), "fileExists"),
57218
- workflowLimits: resolveWorkflowLimits(ctxRef.current.workflow)
57380
+ workflowLimits: resolveWorkflowLimits(ctxRef.current.workflow),
57381
+ withheld: review.withheld
57219
57382
  });
57220
57383
  const siteNotes = browserSiteNotes(req.toolCalls, browserControlRef.current?.status());
57221
57384
  return new Promise((resolve9) => {
57222
57385
  if (permissionResolveRef.current) {
57223
57386
  permissionQueueRef.current.push({
57224
- permission: { ...req, review: review.text, summary: summary2, siteNotes },
57387
+ permission: {
57388
+ ...req,
57389
+ review: review.text,
57390
+ summary: summary2,
57391
+ siteNotes,
57392
+ withheld: review.withheld,
57393
+ source: req,
57394
+ envelopeHash: review.envelopeHash
57395
+ },
57225
57396
  resolve: resolve9
57226
57397
  });
57227
57398
  setQueuedPermissionCount(permissionQueueRef.current.length);
@@ -57231,7 +57402,17 @@ ${blocks.join("\n\n")}`;
57231
57402
  permissionOpenedAtRef.current = Date.now();
57232
57403
  setPermissionReviewOffset(0);
57233
57404
  setPermissionDetailsOpen(!summary2.complete);
57234
- setPermission({ ...req, review: review.text, summary: summary2, siteNotes });
57405
+ const shown = {
57406
+ ...req,
57407
+ review: review.text,
57408
+ summary: summary2,
57409
+ siteNotes,
57410
+ withheld: review.withheld,
57411
+ source: req,
57412
+ envelopeHash: review.envelopeHash
57413
+ };
57414
+ permissionShownRef.current = shown;
57415
+ setPermission(shown);
57235
57416
  setState("awaiting-permission");
57236
57417
  announceApproval();
57237
57418
  });
@@ -61528,6 +61709,7 @@ ${lines.join("\n")}`);
61528
61709
  rememberWhere: displayPath(ctx.cwd, 28)
61529
61710
  } : {},
61530
61711
  siteNotes: permission.siteNotes,
61712
+ withheld: permission.withheld,
61531
61713
  ...permission.screenConsent === true ? {
61532
61714
  screenConsent: {
61533
61715
  provider: session?.providerSummary ?? null
@@ -62450,4 +62632,4 @@ react/cjs/react-jsx-runtime.development.js:
62450
62632
  * LICENSE file in the root directory of this source tree.
62451
62633
  *)
62452
62634
  */
62453
- //# sourceMappingURL=tui-HA3JIVON.js.map
62635
+ //# sourceMappingURL=tui-5EKXXN5S.js.map