@namzu/cli 37.2.0 → 38.0.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 (314) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +2 -2
  3. package/dist/analysis-host.js +293 -10
  4. package/dist/analysis-host.js.map +2 -2
  5. package/dist/bin.js +1 -1
  6. package/dist/chunks/{acp-WRUFVVVS.js → acp-WH4EFAFK.js} +79 -56
  7. package/dist/chunks/acp-WH4EFAFK.js.map +6 -0
  8. package/dist/chunks/{activity-command-7GP4PLBD.js → activity-command-RM6YEJJE.js} +14 -14
  9. package/dist/chunks/{add-KNRDMCME.js → add-JUN463VT.js} +23 -22
  10. package/dist/chunks/add-JUN463VT.js.map +6 -0
  11. package/dist/chunks/{agent-LZDDK3NN.js → agent-UNGHD2P3.js} +27 -26
  12. package/dist/chunks/agent-session-FG4XT6SX.js +52 -0
  13. package/dist/chunks/{archive-PNHAJS2H.js → archive-IAT6HD7B.js} +9 -9
  14. package/dist/chunks/{bin-main-Y2J7CPYI.js → bin-main-B5GXM64T.js} +6 -5
  15. package/dist/chunks/bin-main-B5GXM64T.js.map +6 -0
  16. package/dist/chunks/{browser-RVLLK6CN.js → browser-4P3N4ZQL.js} +6 -6
  17. package/dist/chunks/{chat-YF3TI43Y.js → chat-4Q3PPOMP.js} +15 -14
  18. package/dist/chunks/chat-4Q3PPOMP.js.map +6 -0
  19. package/dist/chunks/{chunk-TQGYYDLF.js → chunk-25P24RKO.js} +5 -5
  20. package/dist/chunks/chunk-25P24RKO.js.map +6 -0
  21. package/dist/chunks/{chunk-REBTUQC6.js → chunk-2HZIBPEM.js} +21 -14
  22. package/dist/chunks/chunk-2HZIBPEM.js.map +6 -0
  23. package/dist/chunks/{chunk-MULW7FFH.js → chunk-2WMXW2HX.js} +4 -4
  24. package/dist/chunks/chunk-356N4VBU.js +134 -0
  25. package/dist/chunks/chunk-356N4VBU.js.map +6 -0
  26. package/dist/chunks/{chunk-KSLX3NGM.js → chunk-3CEDA5YH.js} +117 -3
  27. package/dist/chunks/chunk-3CEDA5YH.js.map +6 -0
  28. package/dist/chunks/{chunk-DRXG4OLL.js → chunk-466ECWQB.js} +4 -4
  29. package/dist/chunks/{chunk-2TDWK353.js → chunk-47W5PCU5.js} +12 -12
  30. package/dist/chunks/{chunk-PSLRTJU5.js → chunk-4DQ5TVCH.js} +12 -12
  31. package/dist/chunks/{chunk-A5GALFIC.js → chunk-6HPZCB5F.js} +2 -2
  32. package/dist/chunks/{chunk-VCUPZJDO.js → chunk-6PMO2KA2.js} +2 -2
  33. package/dist/chunks/{chunk-LO5DFG6H.js → chunk-735YHXE3.js} +2 -2
  34. package/dist/chunks/{devtools-LBE4PAQN.js → chunk-7AZTWFS7.js} +12 -84
  35. package/dist/chunks/{devtools-LBE4PAQN.js.map → chunk-7AZTWFS7.js.map} +2 -2
  36. package/dist/chunks/{chunk-O6X4O7VQ.js → chunk-7PBYGA76.js} +3 -3
  37. package/dist/chunks/{chunk-DS2PIOVD.js → chunk-7XBUFSLG.js} +3 -3
  38. package/dist/chunks/{chunk-72TESSG2.js → chunk-AQM2Q6XZ.js} +53 -11
  39. package/dist/chunks/chunk-AQM2Q6XZ.js.map +6 -0
  40. package/dist/chunks/{chunk-GEB3OP2H.js → chunk-BKBXEXIL.js} +355 -168
  41. package/dist/chunks/chunk-BKBXEXIL.js.map +6 -0
  42. package/dist/chunks/{chunk-5YERJLR7.js → chunk-BQRKMDDF.js} +4 -4
  43. package/dist/chunks/{chunk-GYM3FUBH.js → chunk-D5HL6QDV.js} +2 -2
  44. package/dist/chunks/{chunk-ERY3CYIM.js → chunk-G2ZBMR22.js} +4 -4
  45. package/dist/chunks/{chunk-5NHKC3NO.js → chunk-G6ETOUUR.js} +6 -6
  46. package/dist/chunks/{chunk-HJBZYFCC.js → chunk-GAYGCGIY.js} +6 -6
  47. package/dist/chunks/chunk-GK4HLIQQ.js +63 -0
  48. package/dist/chunks/chunk-GK4HLIQQ.js.map +6 -0
  49. package/dist/chunks/{chunk-UARWI3TA.js → chunk-GW7O5N42.js} +2 -2
  50. package/dist/chunks/{chunk-YX2ZK34T.js → chunk-HA37WH7H.js} +18 -18
  51. package/dist/chunks/{chunk-4H4YDNND.js → chunk-HCQUBJTS.js} +74 -49
  52. package/dist/chunks/chunk-HCQUBJTS.js.map +6 -0
  53. package/dist/chunks/{chunk-N2CP3FIQ.js → chunk-HVJXMGCJ.js} +4 -4
  54. package/dist/chunks/{chunk-HFFINVNN.js → chunk-JL3LUBAN.js} +3 -3
  55. package/dist/chunks/{chunk-NYRBM7PR.js → chunk-K5J7ATQR.js} +10 -10
  56. package/dist/chunks/{chunk-HFUBLJE5.js → chunk-KOOSFKHR.js} +2 -2
  57. package/dist/chunks/{chunk-77AX2GEP.js → chunk-LA7SHC2B.js} +43609 -41864
  58. package/dist/chunks/chunk-LA7SHC2B.js.map +6 -0
  59. package/dist/chunks/{chunk-7WKQQOKK.js → chunk-M6CYVSNV.js} +287 -31
  60. package/dist/chunks/chunk-M6CYVSNV.js.map +6 -0
  61. package/dist/chunks/{chunk-YDD74UVE.js → chunk-MJG4FQ27.js} +4 -4
  62. package/dist/chunks/{chunk-SMAN2IR4.js → chunk-MRJCV6EH.js} +2 -2
  63. package/dist/chunks/{chunk-37FCG7VX.js → chunk-N5L7HGNL.js} +2 -2
  64. package/dist/chunks/{chunk-T5GKAQHN.js → chunk-ORHVELT4.js} +2 -2
  65. package/dist/chunks/{chunk-HLHYVGQE.js → chunk-PKIH55PX.js} +13 -13
  66. package/dist/chunks/{chunk-4GIDESAM.js → chunk-PWFLM6BJ.js} +4 -4
  67. package/dist/chunks/{chunk-M46XYX7O.js → chunk-QKSBBKKC.js} +3 -3
  68. package/dist/chunks/{chunk-DW23UIKM.js → chunk-RU3AE4JE.js} +2 -2
  69. package/dist/chunks/{chunk-M2SQW7DK.js → chunk-S5KTYKQH.js} +3 -3
  70. package/dist/chunks/{chunk-M2SQW7DK.js.map → chunk-S5KTYKQH.js.map} +1 -1
  71. package/dist/chunks/{chunk-KK73BCYK.js → chunk-SZUOO7A2.js} +5 -5
  72. package/dist/chunks/{chunk-POEIV6AQ.js → chunk-TFA5ZAGJ.js} +2 -2
  73. package/dist/chunks/{chunk-QWCASGYH.js → chunk-TZLYJWSW.js} +4 -4
  74. package/dist/chunks/{chunk-XHJMDBRV.js → chunk-U6EH3UCL.js} +2 -2
  75. package/dist/chunks/{chunk-ABHX2QBJ.js → chunk-UKOMZND2.js} +4 -4
  76. package/dist/chunks/{chunk-ND6ZNIUM.js → chunk-UW42IRA4.js} +5 -5
  77. package/dist/chunks/{chunk-MF45FNH3.js → chunk-UZ7ONUMS.js} +3 -3
  78. package/dist/chunks/{chunk-MUG3SBGU.js → chunk-V5WCUTSO.js} +3 -3
  79. package/dist/chunks/{chunk-HFMDSVBA.js → chunk-VHZ3I7L4.js} +5 -5
  80. package/dist/chunks/{chunk-VIDT6RAV.js → chunk-VK2BAABY.js} +7 -7
  81. package/dist/chunks/{chunk-VONRWBC6.js → chunk-VKZKDPKS.js} +2 -2
  82. package/dist/chunks/{chunk-HS3TPTJ3.js → chunk-VUQE34X4.js} +2 -2
  83. package/dist/chunks/{chunk-XBRRTAXP.js → chunk-WCC5ABWX.js} +2 -2
  84. package/dist/chunks/chunk-WMEZTDLT.js +17 -0
  85. package/dist/chunks/chunk-WMEZTDLT.js.map +6 -0
  86. package/dist/chunks/{chunk-R7HI2NMR.js → chunk-XDA57K4Q.js} +2 -2
  87. package/dist/chunks/{chunk-UI3MX7CC.js → chunk-XHBZBISL.js} +3 -3
  88. package/dist/chunks/{chunk-34IZ6DMB.js → chunk-YMSXUKHE.js} +2 -2
  89. package/dist/chunks/{chunk-E6RPYGJP.js → chunk-YXFS44LU.js} +3 -3
  90. package/dist/chunks/chunk-Z7J6WN6G.js +86 -0
  91. package/dist/chunks/chunk-Z7J6WN6G.js.map +6 -0
  92. package/dist/chunks/{chunk-V6NJWYMP.js → chunk-ZDAUAJ4L.js} +2 -2
  93. package/dist/chunks/{chunk-HRRQSXVP.js → chunk-ZGODF5RM.js} +20 -14
  94. package/dist/chunks/chunk-ZGODF5RM.js.map +6 -0
  95. package/dist/chunks/{cli-runtime-6MW2CSZV.js → cli-runtime-HEQVJMIJ.js} +50 -9
  96. package/dist/chunks/cli-runtime-HEQVJMIJ.js.map +6 -0
  97. package/dist/chunks/{commands-FHJCPYZK.js → commands-6KNKGAYK.js} +5 -5
  98. package/dist/chunks/{crash-report-M5Q3DQCN.js → crash-report-4ZIUEO2T.js} +7 -7
  99. package/dist/chunks/devtools-V6SF7RES.js +93 -0
  100. package/dist/chunks/devtools-V6SF7RES.js.map +6 -0
  101. package/dist/chunks/{dist-JSQDWJJ7.js → dist-52AQ2S3B.js} +2 -2
  102. package/dist/chunks/{dist-4OQCWTIT.js → dist-6N7EBKOP.js} +2 -2
  103. package/dist/chunks/{dist-KGLSBIES.js → dist-ADL22Y3L.js} +1631 -208
  104. package/dist/chunks/dist-ADL22Y3L.js.map +6 -0
  105. package/dist/chunks/{dist-37DNQCWH.js → dist-DDOLI4FC.js} +2 -2
  106. package/dist/chunks/{dist-XB6XFRHI.js → dist-EXJEMH6E.js} +2 -2
  107. package/dist/chunks/{dist-PRV7KU6K.js → dist-KUY5YJQU.js} +2 -2
  108. package/dist/chunks/{dist-33WLKROX.js → dist-LJF7HG5B.js} +2 -2
  109. package/dist/chunks/{dist-RUF7G2EJ.js → dist-W2RL2YQU.js} +2 -2
  110. package/dist/chunks/{doctor-UHW2CT5G.js → doctor-BSYUHWBV.js} +8 -8
  111. package/dist/chunks/{drain-WW3OCWON.js → drain-ANNH6M4M.js} +11 -10
  112. package/dist/chunks/drain-ANNH6M4M.js.map +6 -0
  113. package/dist/chunks/{eval-7W7MY7MI.js → eval-FOOSHOQH.js} +2 -2
  114. package/dist/chunks/{exec-D3HAVGO3.js → exec-66BTZSXT.js} +60 -32
  115. package/dist/chunks/exec-66BTZSXT.js.map +6 -0
  116. package/dist/chunks/{home-OOMHTBCU.js → home-F3JAP7EK.js} +3 -3
  117. package/dist/chunks/{host-queries-LLRW35KQ.js → host-queries-DAZODJGM.js} +14 -14
  118. package/dist/chunks/{lifecycle-X3WP7K6J.js → lifecycle-4K6UYXHW.js} +27 -26
  119. package/dist/chunks/{list-YNC6NTUS.js → list-5P46GOYS.js} +16 -15
  120. package/dist/chunks/list-5P46GOYS.js.map +6 -0
  121. package/dist/chunks/{login-J2W3FTAI.js → login-3NTMRWH5.js} +8 -8
  122. package/dist/chunks/{logs-FBCRI5GX.js → logs-TOENBRPG.js} +4 -4
  123. package/dist/chunks/{mcp-S6HNWBTQ.js → mcp-R7AB2UAO.js} +23 -22
  124. package/dist/chunks/mcp-R7AB2UAO.js.map +6 -0
  125. package/dist/chunks/{message-command-4SLCM27I.js → message-command-G5CGLKBG.js} +40 -39
  126. package/dist/chunks/message-command-G5CGLKBG.js.map +6 -0
  127. package/dist/chunks/{operator-tools-PLCPLKHA.js → operator-tools-FQ6ITKE6.js} +12 -12
  128. package/dist/chunks/{output-schema-35UX32FC.js → output-schema-SKFZ25BQ.js} +3 -3
  129. package/dist/chunks/{pal-5BVWB3W7.js → pal-TNQSB2GK.js} +14 -14
  130. package/dist/chunks/{providers-7VVPQLKS.js → providers-HZYMMU6E.js} +6 -6
  131. package/dist/chunks/{resident-FUJTNNQU.js → resident-YDO5N5JH.js} +31 -28
  132. package/dist/chunks/resident-YDO5N5JH.js.map +6 -0
  133. package/dist/chunks/resume-OJYZ6YER.js +22 -0
  134. package/dist/chunks/{resume-command-LDVO5KIP.js → resume-command-5KZPLTK7.js} +4 -4
  135. package/dist/chunks/{schedule-NV5NQSKS.js → schedule-6XIBAC7U.js} +8 -8
  136. package/dist/chunks/{service-OZEMWADJ.js → service-2LFLAXAG.js} +28 -27
  137. package/dist/chunks/service-2LFLAXAG.js.map +6 -0
  138. package/dist/chunks/session-step-3PJBN33Y.js +29 -0
  139. package/dist/chunks/{skills-A7XMDZPV.js → skills-JOY3NTBC.js} +8 -8
  140. package/dist/chunks/{state-ZOLHKFZD.js → state-QQ2YFP4G.js} +2 -2
  141. package/dist/chunks/{store-ASOIXVEH.js → store-47KUDP7H.js} +9 -9
  142. package/dist/chunks/{store-AG3KCS6R.js → store-CLZKGKXL.js} +4 -4
  143. package/dist/chunks/{store-WZES4TNW.js → store-WC3TVOLU.js} +6 -6
  144. package/dist/chunks/{tui-H7MVCBHH.js → tui-2M6OGQUI.js} +228 -112
  145. package/dist/chunks/tui-2M6OGQUI.js.map +6 -0
  146. package/dist/chunks/{upgrade-G2R3EBLE.js → upgrade-ZZYBXJXO.js} +2 -2
  147. package/dist/chunks/{worktree-YIQTRMAT.js → worktree-7C3EZZ7D.js} +11 -11
  148. package/dist/chunks/wrapper-XHVFM6KS.js +34 -0
  149. package/dist/chunks/wrapper-XHVFM6KS.js.map +6 -0
  150. package/dist/cli-runtime.d.ts +4 -0
  151. package/dist/cli-runtime.d.ts.map +1 -1
  152. package/dist/cli.d.ts.map +1 -1
  153. package/dist/commands/acp.d.ts +1 -1
  154. package/dist/commands/acp.d.ts.map +1 -1
  155. package/dist/commands/desktop-host.d.ts.map +1 -1
  156. package/dist/commands/exec-flags.d.ts +1 -1
  157. package/dist/commands/exec-flags.d.ts.map +1 -1
  158. package/dist/commands/exec-json.d.ts.map +1 -1
  159. package/dist/commands/exec.d.ts.map +1 -1
  160. package/dist/commands/resident-flags.d.ts.map +1 -1
  161. package/dist/config/load.d.ts.map +1 -1
  162. package/dist/config/schema.d.ts +9 -0
  163. package/dist/config/schema.d.ts.map +1 -1
  164. package/dist/index.js +25 -24
  165. package/dist/integrations/harness/codex-adapter.d.ts.map +1 -1
  166. package/dist/integrations/monitors/web-access-hint.d.ts +8 -0
  167. package/dist/integrations/monitors/web-access-hint.d.ts.map +1 -0
  168. package/dist/integrations/resident/runner-worker.js +20 -18
  169. package/dist/integrations/resident/runner-worker.js.map +1 -1
  170. package/dist/integrations/resident/session-step.d.ts.map +1 -1
  171. package/dist/integrations/workflows/offering.d.ts +1 -1
  172. package/dist/pals/actions.d.ts.map +1 -1
  173. package/dist/permissions/auto-classifier.d.ts +74 -0
  174. package/dist/permissions/auto-classifier.d.ts.map +1 -0
  175. package/dist/permissions/consent-prompt.d.ts +11 -0
  176. package/dist/permissions/consent-prompt.d.ts.map +1 -0
  177. package/dist/permissions/consent.d.ts +9 -0
  178. package/dist/permissions/consent.d.ts.map +1 -0
  179. package/dist/permissions/launch.d.ts +59 -0
  180. package/dist/permissions/launch.d.ts.map +1 -0
  181. package/dist/permissions/live-mode.d.ts +5 -4
  182. package/dist/permissions/live-mode.d.ts.map +1 -1
  183. package/dist/permissions/mode-names.d.ts +2 -1
  184. package/dist/permissions/mode-names.d.ts.map +1 -1
  185. package/dist/permissions/mode.d.ts +59 -19
  186. package/dist/permissions/mode.d.ts.map +1 -1
  187. package/dist/permissions/rules.d.ts.map +1 -1
  188. package/dist/permissions/settings.d.ts +81 -0
  189. package/dist/permissions/settings.d.ts.map +1 -0
  190. package/dist/tui/App.d.ts +160 -1
  191. package/dist/tui/App.d.ts.map +1 -1
  192. package/dist/tui/BrandHeader.d.ts.map +1 -1
  193. package/dist/tui/StatusBar.d.ts +6 -0
  194. package/dist/tui/StatusBar.d.ts.map +1 -1
  195. package/dist/tui/agent.d.ts +52 -3
  196. package/dist/tui/agent.d.ts.map +1 -1
  197. package/dist/tui/mentions.d.ts +6 -0
  198. package/dist/tui/mentions.d.ts.map +1 -1
  199. package/dist/tui/slashCommands.d.ts +1 -1
  200. package/dist/tui/slashCommands.d.ts.map +1 -1
  201. package/dist/tui/status-line/payload.d.ts.map +1 -1
  202. package/dist/tui/types.d.ts +13 -2
  203. package/dist/tui/types.d.ts.map +1 -1
  204. package/package.json +9 -9
  205. package/dist/chunks/acp-WRUFVVVS.js.map +0 -6
  206. package/dist/chunks/add-KNRDMCME.js.map +0 -6
  207. package/dist/chunks/agent-session-2XPAWSJU.js +0 -51
  208. package/dist/chunks/bin-main-Y2J7CPYI.js.map +0 -6
  209. package/dist/chunks/chat-YF3TI43Y.js.map +0 -6
  210. package/dist/chunks/chunk-4H4YDNND.js.map +0 -6
  211. package/dist/chunks/chunk-72TESSG2.js.map +0 -6
  212. package/dist/chunks/chunk-77AX2GEP.js.map +0 -6
  213. package/dist/chunks/chunk-7WKQQOKK.js.map +0 -6
  214. package/dist/chunks/chunk-GEB3OP2H.js.map +0 -6
  215. package/dist/chunks/chunk-HRRQSXVP.js.map +0 -6
  216. package/dist/chunks/chunk-KSLX3NGM.js.map +0 -6
  217. package/dist/chunks/chunk-N3YMYKEU.js +0 -84
  218. package/dist/chunks/chunk-N3YMYKEU.js.map +0 -6
  219. package/dist/chunks/chunk-REBTUQC6.js.map +0 -6
  220. package/dist/chunks/chunk-TQGYYDLF.js.map +0 -6
  221. package/dist/chunks/cli-runtime-6MW2CSZV.js.map +0 -6
  222. package/dist/chunks/dist-KGLSBIES.js.map +0 -6
  223. package/dist/chunks/drain-WW3OCWON.js.map +0 -6
  224. package/dist/chunks/exec-D3HAVGO3.js.map +0 -6
  225. package/dist/chunks/list-YNC6NTUS.js.map +0 -6
  226. package/dist/chunks/mcp-S6HNWBTQ.js.map +0 -6
  227. package/dist/chunks/message-command-4SLCM27I.js.map +0 -6
  228. package/dist/chunks/resident-FUJTNNQU.js.map +0 -6
  229. package/dist/chunks/resume-AJ6LESHD.js +0 -22
  230. package/dist/chunks/service-OZEMWADJ.js.map +0 -6
  231. package/dist/chunks/session-step-RZEULQKO.js +0 -27
  232. package/dist/chunks/tui-H7MVCBHH.js.map +0 -6
  233. /package/dist/chunks/{activity-command-7GP4PLBD.js.map → activity-command-RM6YEJJE.js.map} +0 -0
  234. /package/dist/chunks/{agent-LZDDK3NN.js.map → agent-UNGHD2P3.js.map} +0 -0
  235. /package/dist/chunks/{agent-session-2XPAWSJU.js.map → agent-session-FG4XT6SX.js.map} +0 -0
  236. /package/dist/chunks/{archive-PNHAJS2H.js.map → archive-IAT6HD7B.js.map} +0 -0
  237. /package/dist/chunks/{browser-RVLLK6CN.js.map → browser-4P3N4ZQL.js.map} +0 -0
  238. /package/dist/chunks/{chunk-MULW7FFH.js.map → chunk-2WMXW2HX.js.map} +0 -0
  239. /package/dist/chunks/{chunk-DRXG4OLL.js.map → chunk-466ECWQB.js.map} +0 -0
  240. /package/dist/chunks/{chunk-2TDWK353.js.map → chunk-47W5PCU5.js.map} +0 -0
  241. /package/dist/chunks/{chunk-PSLRTJU5.js.map → chunk-4DQ5TVCH.js.map} +0 -0
  242. /package/dist/chunks/{chunk-A5GALFIC.js.map → chunk-6HPZCB5F.js.map} +0 -0
  243. /package/dist/chunks/{chunk-VCUPZJDO.js.map → chunk-6PMO2KA2.js.map} +0 -0
  244. /package/dist/chunks/{chunk-LO5DFG6H.js.map → chunk-735YHXE3.js.map} +0 -0
  245. /package/dist/chunks/{chunk-O6X4O7VQ.js.map → chunk-7PBYGA76.js.map} +0 -0
  246. /package/dist/chunks/{chunk-DS2PIOVD.js.map → chunk-7XBUFSLG.js.map} +0 -0
  247. /package/dist/chunks/{chunk-5YERJLR7.js.map → chunk-BQRKMDDF.js.map} +0 -0
  248. /package/dist/chunks/{chunk-GYM3FUBH.js.map → chunk-D5HL6QDV.js.map} +0 -0
  249. /package/dist/chunks/{chunk-ERY3CYIM.js.map → chunk-G2ZBMR22.js.map} +0 -0
  250. /package/dist/chunks/{chunk-5NHKC3NO.js.map → chunk-G6ETOUUR.js.map} +0 -0
  251. /package/dist/chunks/{chunk-HJBZYFCC.js.map → chunk-GAYGCGIY.js.map} +0 -0
  252. /package/dist/chunks/{chunk-UARWI3TA.js.map → chunk-GW7O5N42.js.map} +0 -0
  253. /package/dist/chunks/{chunk-YX2ZK34T.js.map → chunk-HA37WH7H.js.map} +0 -0
  254. /package/dist/chunks/{chunk-N2CP3FIQ.js.map → chunk-HVJXMGCJ.js.map} +0 -0
  255. /package/dist/chunks/{chunk-HFFINVNN.js.map → chunk-JL3LUBAN.js.map} +0 -0
  256. /package/dist/chunks/{chunk-NYRBM7PR.js.map → chunk-K5J7ATQR.js.map} +0 -0
  257. /package/dist/chunks/{chunk-HFUBLJE5.js.map → chunk-KOOSFKHR.js.map} +0 -0
  258. /package/dist/chunks/{chunk-YDD74UVE.js.map → chunk-MJG4FQ27.js.map} +0 -0
  259. /package/dist/chunks/{chunk-SMAN2IR4.js.map → chunk-MRJCV6EH.js.map} +0 -0
  260. /package/dist/chunks/{chunk-37FCG7VX.js.map → chunk-N5L7HGNL.js.map} +0 -0
  261. /package/dist/chunks/{chunk-T5GKAQHN.js.map → chunk-ORHVELT4.js.map} +0 -0
  262. /package/dist/chunks/{chunk-HLHYVGQE.js.map → chunk-PKIH55PX.js.map} +0 -0
  263. /package/dist/chunks/{chunk-4GIDESAM.js.map → chunk-PWFLM6BJ.js.map} +0 -0
  264. /package/dist/chunks/{chunk-M46XYX7O.js.map → chunk-QKSBBKKC.js.map} +0 -0
  265. /package/dist/chunks/{chunk-DW23UIKM.js.map → chunk-RU3AE4JE.js.map} +0 -0
  266. /package/dist/chunks/{chunk-KK73BCYK.js.map → chunk-SZUOO7A2.js.map} +0 -0
  267. /package/dist/chunks/{chunk-POEIV6AQ.js.map → chunk-TFA5ZAGJ.js.map} +0 -0
  268. /package/dist/chunks/{chunk-QWCASGYH.js.map → chunk-TZLYJWSW.js.map} +0 -0
  269. /package/dist/chunks/{chunk-XHJMDBRV.js.map → chunk-U6EH3UCL.js.map} +0 -0
  270. /package/dist/chunks/{chunk-ABHX2QBJ.js.map → chunk-UKOMZND2.js.map} +0 -0
  271. /package/dist/chunks/{chunk-ND6ZNIUM.js.map → chunk-UW42IRA4.js.map} +0 -0
  272. /package/dist/chunks/{chunk-MF45FNH3.js.map → chunk-UZ7ONUMS.js.map} +0 -0
  273. /package/dist/chunks/{chunk-MUG3SBGU.js.map → chunk-V5WCUTSO.js.map} +0 -0
  274. /package/dist/chunks/{chunk-HFMDSVBA.js.map → chunk-VHZ3I7L4.js.map} +0 -0
  275. /package/dist/chunks/{chunk-VIDT6RAV.js.map → chunk-VK2BAABY.js.map} +0 -0
  276. /package/dist/chunks/{chunk-VONRWBC6.js.map → chunk-VKZKDPKS.js.map} +0 -0
  277. /package/dist/chunks/{chunk-HS3TPTJ3.js.map → chunk-VUQE34X4.js.map} +0 -0
  278. /package/dist/chunks/{chunk-XBRRTAXP.js.map → chunk-WCC5ABWX.js.map} +0 -0
  279. /package/dist/chunks/{chunk-R7HI2NMR.js.map → chunk-XDA57K4Q.js.map} +0 -0
  280. /package/dist/chunks/{chunk-UI3MX7CC.js.map → chunk-XHBZBISL.js.map} +0 -0
  281. /package/dist/chunks/{chunk-34IZ6DMB.js.map → chunk-YMSXUKHE.js.map} +0 -0
  282. /package/dist/chunks/{chunk-E6RPYGJP.js.map → chunk-YXFS44LU.js.map} +0 -0
  283. /package/dist/chunks/{chunk-V6NJWYMP.js.map → chunk-ZDAUAJ4L.js.map} +0 -0
  284. /package/dist/chunks/{commands-FHJCPYZK.js.map → commands-6KNKGAYK.js.map} +0 -0
  285. /package/dist/chunks/{crash-report-M5Q3DQCN.js.map → crash-report-4ZIUEO2T.js.map} +0 -0
  286. /package/dist/chunks/{dist-JSQDWJJ7.js.map → dist-52AQ2S3B.js.map} +0 -0
  287. /package/dist/chunks/{dist-4OQCWTIT.js.map → dist-6N7EBKOP.js.map} +0 -0
  288. /package/dist/chunks/{dist-37DNQCWH.js.map → dist-DDOLI4FC.js.map} +0 -0
  289. /package/dist/chunks/{dist-XB6XFRHI.js.map → dist-EXJEMH6E.js.map} +0 -0
  290. /package/dist/chunks/{dist-PRV7KU6K.js.map → dist-KUY5YJQU.js.map} +0 -0
  291. /package/dist/chunks/{dist-33WLKROX.js.map → dist-LJF7HG5B.js.map} +0 -0
  292. /package/dist/chunks/{dist-RUF7G2EJ.js.map → dist-W2RL2YQU.js.map} +0 -0
  293. /package/dist/chunks/{doctor-UHW2CT5G.js.map → doctor-BSYUHWBV.js.map} +0 -0
  294. /package/dist/chunks/{eval-7W7MY7MI.js.map → eval-FOOSHOQH.js.map} +0 -0
  295. /package/dist/chunks/{home-OOMHTBCU.js.map → home-F3JAP7EK.js.map} +0 -0
  296. /package/dist/chunks/{host-queries-LLRW35KQ.js.map → host-queries-DAZODJGM.js.map} +0 -0
  297. /package/dist/chunks/{lifecycle-X3WP7K6J.js.map → lifecycle-4K6UYXHW.js.map} +0 -0
  298. /package/dist/chunks/{login-J2W3FTAI.js.map → login-3NTMRWH5.js.map} +0 -0
  299. /package/dist/chunks/{logs-FBCRI5GX.js.map → logs-TOENBRPG.js.map} +0 -0
  300. /package/dist/chunks/{operator-tools-PLCPLKHA.js.map → operator-tools-FQ6ITKE6.js.map} +0 -0
  301. /package/dist/chunks/{output-schema-35UX32FC.js.map → output-schema-SKFZ25BQ.js.map} +0 -0
  302. /package/dist/chunks/{pal-5BVWB3W7.js.map → pal-TNQSB2GK.js.map} +0 -0
  303. /package/dist/chunks/{providers-7VVPQLKS.js.map → providers-HZYMMU6E.js.map} +0 -0
  304. /package/dist/chunks/{resume-AJ6LESHD.js.map → resume-OJYZ6YER.js.map} +0 -0
  305. /package/dist/chunks/{resume-command-LDVO5KIP.js.map → resume-command-5KZPLTK7.js.map} +0 -0
  306. /package/dist/chunks/{schedule-NV5NQSKS.js.map → schedule-6XIBAC7U.js.map} +0 -0
  307. /package/dist/chunks/{session-step-RZEULQKO.js.map → session-step-3PJBN33Y.js.map} +0 -0
  308. /package/dist/chunks/{skills-A7XMDZPV.js.map → skills-JOY3NTBC.js.map} +0 -0
  309. /package/dist/chunks/{state-ZOLHKFZD.js.map → state-QQ2YFP4G.js.map} +0 -0
  310. /package/dist/chunks/{store-AG3KCS6R.js.map → store-47KUDP7H.js.map} +0 -0
  311. /package/dist/chunks/{store-ASOIXVEH.js.map → store-CLZKGKXL.js.map} +0 -0
  312. /package/dist/chunks/{store-WZES4TNW.js.map → store-WC3TVOLU.js.map} +0 -0
  313. /package/dist/chunks/{upgrade-G2R3EBLE.js.map → upgrade-ZZYBXJXO.js.map} +0 -0
  314. /package/dist/chunks/{worktree-YIQTRMAT.js.map → worktree-7C3EZZ7D.js.map} +0 -0
@@ -0,0 +1,74 @@
1
+ import { type AutoReviewClassifier, type LLMProvider, type Logger, type ResumeHandler, type SessionId, type TokenUsage, type TurnId, createAutoReviewClassifier } from '@namzu/sdk';
2
+ import type { AutoModeSettings } from './settings.js';
3
+ /**
4
+ * The auto mode's classifier as this application builds it.
5
+ *
6
+ * The kernel owns the mechanism (`createAutoReviewClassifier`); this decides
7
+ * three things it leaves to the host: which model answers, how a model is
8
+ * reached for the session in hand, and who pays for the passes.
9
+ *
10
+ * ## The model
11
+ *
12
+ * `permissions.autoMode.model` names it. Left out, the session's own model
13
+ * answers: a check that is cheaper than the work it guards is a check that is
14
+ * easy to talk round, so quality is the default. `smallModel` as the value
15
+ * means the side model, for an operator who would rather spend less. Anything
16
+ * else is read like `smallModel` itself (`provider/model`, or a bare model of
17
+ * the session's provider).
18
+ *
19
+ * ## Failing closed
20
+ *
21
+ * A model that cannot be reached, a provider with no credential on this
22
+ * machine, a name nobody knows: each blocks the call it was asked about, in
23
+ * the kernel's own words (`cause: 'unavailable'`). Nothing here turns "could
24
+ * not check" into "go ahead".
25
+ */
26
+ /** The reserved word for the side model in `permissions.autoMode.model`. */
27
+ export declare const SMALL_MODEL_KEYWORD = "smallModel";
28
+ export interface ClassifierTarget {
29
+ readonly providerId: string;
30
+ readonly model: string;
31
+ }
32
+ export interface SessionClassifierDeps {
33
+ readonly settings?: AutoModeSettings | undefined;
34
+ /** The provider and model the conversation runs on right now. */
35
+ readonly active: () => ClassifierTarget;
36
+ readonly isKnownProvider: (providerId: string) => boolean;
37
+ /** A provider client for `target`; rejects when the machine has no credential for it. */
38
+ readonly providerFor: (sessionId: SessionId, target: ClassifierTarget) => Promise<LLMProvider>;
39
+ /** The side model's route, when it is wanted. Absent: `smallModel` cannot be honoured. */
40
+ readonly smallRoute?: (sessionId: SessionId, signal: AbortSignal) => Promise<ClassifierTarget>;
41
+ readonly log?: Logger | undefined;
42
+ /** Counts what a pass cost against the turn it belongs to. */
43
+ readonly charge?: (input: {
44
+ readonly sessionId: SessionId;
45
+ readonly turnId: TurnId;
46
+ readonly usage: TokenUsage;
47
+ readonly stage: 1 | 2;
48
+ }) => void;
49
+ /** Overrides for tests (limits, retry sleep and the like). */
50
+ readonly classifierOptions?: Partial<Parameters<typeof createAutoReviewClassifier>[0]>;
51
+ }
52
+ /**
53
+ * Runs a review handler inside the scope the classifier reads its session and
54
+ * turn from. The kernel passes the classifier the call and the transcript, not
55
+ * the turn that asked, and a pass has to be charged to a turn.
56
+ */
57
+ export declare function withClassifierScope(handler: ResumeHandler): ResumeHandler;
58
+ /** Why the classifier cannot be used with these settings, or undefined when it can. */
59
+ export declare function classifierUnavailableReason(opts: {
60
+ readonly settings?: AutoModeSettings | undefined;
61
+ readonly disabled?: boolean | undefined;
62
+ readonly active: ClassifierTarget;
63
+ readonly isKnownProvider: (providerId: string) => boolean;
64
+ /** Whether this machine holds a credential for the provider. */
65
+ readonly hasCredential: (providerId: string) => boolean;
66
+ readonly hasSmallModel: boolean;
67
+ }): string | undefined;
68
+ /**
69
+ * One classifier for the session. The model it asks is settled on each review,
70
+ * so a model switch mid-session is followed; the block counters belong to the
71
+ * model in use, and start again when it changes.
72
+ */
73
+ export declare function createSessionClassifier(deps: SessionClassifierDeps): AutoReviewClassifier;
74
+ //# sourceMappingURL=auto-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-classifier.d.ts","sourceRoot":"","sources":["../../src/permissions/auto-classifier.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,oBAAoB,EAGzB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,MAAM,EACX,0BAA0B,EAC1B,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAE/C,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAChD,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,gBAAgB,CAAA;IACvC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAA;IACzD,yFAAyF;IACzF,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9F,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC9F,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;QAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;QAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;KACrB,KAAK,IAAI,CAAA;IACV,8DAA8D;IAC9D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CACtF;AAUD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAKzE;AAED,uFAAuF;AACvF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IACjD,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAA;IACzD,gEAAgE;IAChE,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAA;IACvD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAC/B,GAAG,MAAM,GAAG,SAAS,CAYrB;AAUD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,CAkEzF"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Asks once, on the terminal, before the screen opens, whether bypass mode
3
+ * may start. Only an explicit yes counts; an empty line, end of input and
4
+ * anything else decline, so a script that happens to reach it never says yes
5
+ * by accident.
6
+ */
7
+ export declare function askBypassConsent(io?: {
8
+ readonly input?: NodeJS.ReadableStream;
9
+ readonly output?: NodeJS.WritableStream;
10
+ }): Promise<boolean>;
11
+ //# sourceMappingURL=consent-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-prompt.d.ts","sourceRoot":"","sources":["../../src/permissions/consent-prompt.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACrC,EAAE,GAAE;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;CAClC,GACJ,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
@@ -0,0 +1,9 @@
1
+ export declare function acknowledgementsPath(home?: string): string;
2
+ /** Whether the person has already accepted what bypass mode does. */
3
+ export declare function hasAcknowledgedBypass(home?: string): boolean;
4
+ /** Record the acknowledgement (idempotent). A failure to write is reported, not hidden. */
5
+ export declare function acknowledgeBypass(home?: string, now?: () => Date): void;
6
+ /** The words of the question, shared by the launch prompt and the in-terminal one. */
7
+ export declare const BYPASS_CONSENT_TITLE = "Run without asking?";
8
+ export declare const BYPASS_CONSENT_BODY = "In bypass mode Namzu runs commands and edits files anywhere you can, without asking, including outside this folder. It still stops for removing a home or top-level folder, leaving a sandbox, rules that say deny or ask, and a short list of destructive commands. Only use it in a folder and on a machine you trust.";
9
+ //# sourceMappingURL=consent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/permissions/consent.ts"],"names":[],"mappings":"AAwBA,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAcD,qEAAqE;AACrE,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,IAAI,CAczF;AAED,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AACzD,eAAO,MAAM,mBAAmB,6TAC2R,CAAA"}
@@ -0,0 +1,59 @@
1
+ import { type PermissionMode } from './mode.js';
2
+ import type { PermissionSettings } from './settings.js';
3
+ /**
4
+ * How a launch settles its permission mode, and what it may not start in.
5
+ *
6
+ * One function for every entry point (the terminal, `exec`, `exec --json`, a
7
+ * resident step) so the answer to "may this process run without asking?" is
8
+ * the same wherever the question is put.
9
+ */
10
+ export interface LaunchEnvironment {
11
+ /** Whether the process runs as the superuser. */
12
+ readonly root: boolean;
13
+ /** Whether it runs inside a container or a sandbox that already bounds it. */
14
+ readonly sandboxed: boolean;
15
+ }
16
+ /** Whether a container or sandbox already bounds this process. */
17
+ export declare function detectSandbox(env?: NodeJS.ProcessEnv): boolean;
18
+ export declare function detectLaunchEnvironment(env?: NodeJS.ProcessEnv): LaunchEnvironment;
19
+ /**
20
+ * Why a process may not start in `mode`, in words for the person who typed the
21
+ * flag, or undefined when it may.
22
+ *
23
+ * Bypass is refused as the superuser outside a sandbox: with no account
24
+ * boundary and no container, "run everything" is the whole machine. This is a
25
+ * decision about the process, not about a rule, so no setting lifts it.
26
+ */
27
+ export declare function launchRefusal(mode: PermissionMode, options?: {
28
+ readonly settings?: PermissionSettings | undefined;
29
+ readonly environment?: LaunchEnvironment | undefined;
30
+ }): string | undefined;
31
+ export interface LaunchPlan {
32
+ /** The mode the session starts in. */
33
+ readonly mode: PermissionMode;
34
+ /** Why: the flag, the bypass alias, the configured default, or nothing. */
35
+ readonly source: 'launch-flag' | 'launch-bypass' | 'config-default' | 'default';
36
+ /** Whether Shift+Tab and `/permissions` may reach bypass in this session. */
37
+ readonly bypassAvailable: boolean;
38
+ }
39
+ /**
40
+ * The terminal's starting mode from the command line and the configuration.
41
+ *
42
+ * A `--permission-mode` names the mode outright and wins over the aliases. The
43
+ * aliases (`--yolo`, `--dangerously-skip-permissions`) mean bypass. With
44
+ * neither, the configured `permissions.defaultMode` applies, and a default that
45
+ * the settings switched off falls back to `prompt` rather than refusing to
46
+ * start: nobody typed it on this launch.
47
+ */
48
+ export declare function planLaunchMode(opts: {
49
+ readonly permissionModeFlag?: string | undefined;
50
+ readonly skipPermissions?: boolean | undefined;
51
+ readonly allowBypassFlag?: boolean | undefined;
52
+ readonly settings?: PermissionSettings | undefined;
53
+ readonly environment?: LaunchEnvironment | undefined;
54
+ }): {
55
+ readonly plan: LaunchPlan;
56
+ } | {
57
+ readonly error: string;
58
+ };
59
+ //# sourceMappingURL=launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/permissions/launch.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,cAAc,EAInB,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD;;;;;;GAMG;AAEH,MAAM,WAAW,iBAAiB;IACjC,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC3B;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAG3E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,iBAAiB,CAK/F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE;IACR,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAC/C,GACJ,MAAM,GAAG,SAAS,CAcpB;AAED,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,SAAS,CAAA;IAC/E,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAA;CACpD,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA2C7D"}
@@ -1,4 +1,4 @@
1
- import type { ResumeHandler, SessionApprovalPolicy } from '@namzu/sdk';
1
+ import { type ResumeHandler, type SessionApprovalPolicy } from '@namzu/sdk';
2
2
  import { type PermissionMode } from './mode.js';
3
3
  /**
4
4
  * A turn's permission mode, changeable while the turn runs.
@@ -54,9 +54,10 @@ export interface LiveModeControl {
54
54
  /**
55
55
  * Whether the kernel must send a batch to `handler` even when a rule allows
56
56
  * every call in it, or a grant from earlier in the turn covers it
57
- * (`reviewAllowedCalls`). True only in plan mode, the one mode stricter than
58
- * the rules: it refuses a change a rule would let through. Read per batch,
59
- * so entering plan mode mid-turn reaches the next batch.
57
+ * (`reviewAllowedCalls`). True in plan mode, the one mode stricter than
58
+ * the rules (it refuses a change a rule would let through), and in the
59
+ * classifier mode, which looks at a call an allow rule is too wide to vouch
60
+ * for. Read per batch, so entering either mid-turn reaches the next batch.
60
61
  */
61
62
  reviewAllowedCalls(): boolean;
62
63
  /** Receive the turn's approval-policy box (`onApprovalPolicy`). */
@@ -1 +1 @@
1
- {"version":3,"file":"live-mode.d.ts","sourceRoot":"","sources":["../../src/permissions/live-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEtE,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,WAAW,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,WAAW,eAAe;IAC/B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,cAAc,CAAA;IACpC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,aAAa,CAAA;CAC5D;AAED,MAAM,WAAW,eAAe;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;IACpC,mDAAmD;IACnD,OAAO,IAAI,cAAc,CAAA;IACzB;;;;;;OAMG;IACH,kBAAkB,IAAI,OAAO,CAAA;IAC7B,mEAAmE;IACnE,MAAM,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACxC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,KAAK,GAAG,eAAe,GAC3B,MAAM,CASR;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAsD/E"}
1
+ {"version":3,"file":"live-mode.d.ts","sourceRoot":"","sources":["../../src/permissions/live-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAA2B,MAAM,YAAY,CAAA;AAEpG,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,WAAW,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,WAAW,eAAe;IAC/B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,cAAc,CAAA;IACpC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,aAAa,CAAA;CAC5D;AAED,MAAM,WAAW,eAAe;IAC/B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;IACpC,mDAAmD;IACnD,OAAO,IAAI,cAAc,CAAA;IACzB;;;;;;;OAOG;IACH,kBAAkB,IAAI,OAAO,CAAA;IAC7B,mEAAmE;IACnE,MAAM,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACxC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,KAAK,GAAG,eAAe,GAC3B,MAAM,CASR;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAwD/E"}
@@ -1,2 +1,3 @@
1
- export declare const PERMISSION_MODE_NAMES: readonly ["prompt", "accept-edits", "auto", "strict", "plan"];
1
+ export declare const PERMISSION_MODE_NAMES: readonly ["prompt", "accept-edits", "plan", "bypass", "auto", "strict"];
2
+ export type PermissionModeName = (typeof PERMISSION_MODE_NAMES)[number];
2
3
  //# sourceMappingURL=mode-names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode-names.d.ts","sourceRoot":"","sources":["../../src/permissions/mode-names.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,qBAAqB,+DAMQ,CAAA"}
1
+ {"version":3,"file":"mode-names.d.ts","sourceRoot":"","sources":["../../src/permissions/mode-names.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,qBAAqB,yEAOxB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { type ReviewMode } from '@namzu/sdk';
2
+ import { type PermissionModeName } from './mode-names.js';
2
3
  /**
3
4
  * How a turn resolves the calls no rule decided.
4
5
  *
@@ -27,40 +28,79 @@ import { type ReviewMode } from '@namzu/sdk';
27
28
  * floor sits above both and no mode reaches it either.
28
29
  */
29
30
  export type PermissionMode = ReviewMode;
31
+ /**
32
+ * The kernel modes a person can choose, in the order the picker lists them.
33
+ *
34
+ * The CLI works in the kernel's mode names inside and the CLI's own words at
35
+ * the edge (`permissionModeFromName`, `permissionModeName`): the word `auto`
36
+ * means the classifier to a person and `classify` to the kernel, while the
37
+ * kernel's `auto` stays what an unattended run uses. The kernel's `auto` is
38
+ * not in this list because nobody picks it.
39
+ */
30
40
  export declare const PERMISSION_MODES: readonly PermissionMode[];
41
+ /** The mode a typed name means, or undefined for a word that is not one. */
42
+ export declare function permissionModeFromName(name: unknown): PermissionMode | undefined;
43
+ /** Whether a typed word names a mode a person can choose. */
44
+ export declare function isPermissionModeName(value: unknown): value is PermissionModeName;
45
+ /** The word a person uses for a kernel mode. The kernel's `auto` is the unattended default. */
46
+ export declare function permissionModeName(mode: PermissionMode): string;
31
47
  export { ACCEPT_EDITS_TOOLS, PLAN_MODE_REFUSAL } from '@namzu/sdk';
48
+ /** Whether a value is a kernel review mode (what the wire between Desktop and the CLI carries). */
32
49
  export declare const isPermissionMode: (value: unknown) => value is PermissionMode;
33
50
  export declare function permissionModeLabel(mode: PermissionMode): string;
34
51
  /**
35
- * The mode Shift+Tab moves to. The reference's cycle (`c4t`) runs default,
36
- * accept edits, plan, then bypass when the session may use it, then back to
37
- * default; `auto` is that bypass stop here and is reached only when
38
- * `bypassAvailable`. `auto` and `strict` go back to `prompt`.
52
+ * What Shift+Tab can reach in this session: the two modes that stop asking are
53
+ * opt-in, so each is a door that is open or shut, not a mode in a list.
54
+ */
55
+ export interface ModeAvailability {
56
+ readonly bypass: boolean;
57
+ readonly auto: boolean;
58
+ }
59
+ /** The cycle with every stop on it. */
60
+ export declare const FULL_AVAILABILITY: ModeAvailability;
61
+ /**
62
+ * The mode Shift+Tab moves to. The reference's cycle runs default, accept
63
+ * edits, plan, then bypass and auto when the session may use them, then back
64
+ * to default. `strict` is not on it, and neither is the kernel's unattended
65
+ * `auto`: leaving either goes back to `prompt`.
39
66
  */
40
- export declare function nextCycleMode(current: PermissionMode, bypassAvailable: boolean): PermissionMode;
67
+ export declare function nextCycleMode(current: PermissionMode, available: ModeAvailability): PermissionMode;
41
68
  /**
42
- * Whether Shift+Tab may land on `auto`: the session was launched in it
43
- * (`--dangerously-skip-permissions`, `--yolo`, `--permission-mode auto`),
44
- * or asked for it with `--allow-dangerously-skip-permissions`. Choosing
45
- * `auto` by name in `/permissions` grants it for the rest of the session.
69
+ * Whether bypass may be entered in this session.
70
+ *
71
+ * A flag that names it (`--yolo`, `--dangerously-skip-permissions`,
72
+ * `--allow-dangerously-skip-permissions`, `--permission-mode bypass`) or the
73
+ * operator's own `permissions.defaultMode: bypass` opens the door; the
74
+ * `permissions.disableBypassMode` setting shuts it for good. The loader has
75
+ * already dropped a project file's `defaultMode: bypass`, so what arrives here
76
+ * is trusted.
46
77
  */
47
- export declare function bypassAvailableAtLaunch(opts: {
48
- readonly launchMode: PermissionMode;
49
- readonly allowDangerouslySkipPermissions?: boolean;
78
+ export declare function bypassAvailable(opts: {
79
+ readonly flagged: boolean;
80
+ readonly defaultMode?: PermissionModeName | undefined;
81
+ readonly disabled?: boolean | undefined;
82
+ }): boolean;
83
+ /** Whether auto may be entered: on unless switched off, and only with a model to ask. */
84
+ export declare function autoAvailable(opts: {
85
+ readonly disabled?: boolean | undefined;
86
+ readonly classifierUsable: boolean;
50
87
  }): boolean;
51
88
  /** The behavior shown by both the permission selector and the session report. */
52
89
  export declare function permissionModeDescription(mode: PermissionMode): string;
90
+ /** The reason a typed name is not a mode, naming the ones that are. */
91
+ export declare function unknownPermissionModeMessage(flag: string): string;
53
92
  /**
54
93
  * The mode for a turn, from the flag, the bypass alias, and whether anyone is
55
94
  * there to answer.
56
95
  *
57
- * `--yolo` / `--dangerously-skip-permissions` map to `auto`. They were accepted
58
- * and documented as doing nothing, which was true and unsatisfying; now they
59
- * say the same thing the mode vocabulary says, and in the TUI they do what
60
- * their name has always implied. Neither reaches a `deny` rule or the
61
- * dangerous-pattern floor, so the name still overstates what it can do —
62
- * deliberately, because it should read as more dangerous than it is rather than
63
- * less.
96
+ * `--yolo` and `--dangerously-skip-permissions` mean `bypass`. A rule that
97
+ * denies, a rule that asks, the dangerous-pattern floor and the few things no
98
+ * mode may approve in advance still hold; everything else runs without a
99
+ * question, including a path outside the folder and a program the line does
100
+ * not name.
101
+ *
102
+ * With nobody to ask and no flag the kernel's unattended `auto` applies: it
103
+ * approves routine calls and refuses whatever would have been a question.
64
104
  */
65
105
  export declare function resolvePermissionMode(opts: {
66
106
  readonly flag?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/permissions/mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAgB,MAAM,YAAY,CAAA;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,CAAA;AAEvC,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAAiB,CAAA;AAEvE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAElE,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,cAA6B,CAAA;AAEzF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAahE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,GAAG,cAAc,CAY/F;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC7C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IACnC,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,CAAA;CAClD,GAAG,OAAO,CAEV;AAED,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAatE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC7B,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAa/C"}
1
+ {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/permissions/mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,YAAY,CAAA;AAE1D,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,CAAA;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAOrD,CAAA;AAWD,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAIhF;AAED,6DAA6D;AAC7D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAS/D;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAElE,mGAAmG;AACnG,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,cAA6B,CAAA;AAEzF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAiBhE;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACtB;AAED,uCAAuC;AACvC,eAAO,MAAM,iBAAiB,EAAE,gBAA+C,CAAA;AAE/E;;;;;GAKG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,gBAAgB,GACzB,cAAc,CAehB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACvC,GAAG,OAAO,CAGV;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,IAAI,EAAE;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;CAClC,GAAG,OAAO,CAEV;AAED,iFAAiF;AACjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAiBtE;AAED,uEAAuE;AACvE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC7B,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAU/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/permissions/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGN,KAAK,iBAAiB,EACtB,KAAK,MAAM,EAIX,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,KAAK,sBAAsB,EAA0B,MAAM,aAAa,CAAA;AAEjF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAIvD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAE1F,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;AAExE,uEAAuE;AACvE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,CAEjG;AAID,qFAAqF;AACrF,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,GAAG,GAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAe,GACrC,IAAI,CAWN;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC5C;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAClD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,OAAO,GAAG,MAAe,GACjC,MAAM,CASR;AA+CD,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,MAAM,CAAC,EAAE,sBAAsB,GAC7B,mBAAmB,CAsJrB;AAwCD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAE,GAChD,iBAAiB,CASnB;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CACxD,GAAG,SAAS,iBAAiB,EAAE,CAG/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAE,EAClD,MAAM,CAAC,EAAE,sBAAsB,GAC7B,mBAAmB,CAiDrB"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/permissions/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGN,KAAK,iBAAiB,EACtB,KAAK,MAAM,EAIX,MAAM,YAAY,CAAA;AAInB,OAAO,EAAE,KAAK,sBAAsB,EAA0B,MAAM,aAAa,CAAA;AAEjF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAIvD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAE1F,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;AAExE,uEAAuE;AACvE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,CAEjG;AAID,qFAAqF;AACrF,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,GAAG,GAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAe,GACrC,IAAI,CAWN;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC5C;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAClD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,OAAO,GAAG,MAAe,GACjC,MAAM,CASR;AA+CD,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,MAAM,CAAC,EAAE,sBAAsB,GAC7B,mBAAmB,CAwJrB;AAwCD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAE,GAChD,iBAAiB,CASnB;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CACxD,GAAG,SAAS,iBAAiB,EAAE,CAG/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAC,EAAE,EAClD,MAAM,CAAC,EAAE,sBAAsB,GAC7B,mBAAmB,CAiDrB"}
@@ -0,0 +1,81 @@
1
+ import type { PermissionModeName } from './mode-names.js';
2
+ /**
3
+ * The settings that live beside the tool rules in the `permissions` table.
4
+ *
5
+ * A key of that table is a tool name, and its value an effect. These four are
6
+ * not tools; they say which mode a session starts in, whether the two
7
+ * no-prompt modes may be reached at all, and how the auto mode's classifier is
8
+ * tuned. They are lifted out of the table when a config is loaded, so the rule
9
+ * compiler never sees them, and the authority of the file they came from decides
10
+ * which of them count.
11
+ *
12
+ * ## Who may say what
13
+ *
14
+ * A mode that stops asking is the operator's choice, never a repository's. A
15
+ * project file that could write `defaultMode: bypass` would make every clone of
16
+ * it a session that runs everything the moment someone opens it. So:
17
+ *
18
+ * - `defaultMode` of `bypass` or `auto` is honoured from the user's file and the
19
+ * managed file only. A project may still pick a stricter default.
20
+ * - `disableBypassMode` and `disableAutoMode` can only close a door, so every
21
+ * file may write them, and a `true` in one file is not undone by another.
22
+ * - `autoMode` names a model that receives the conversation and the rules that
23
+ * steer the classifier, so it is the operator's alone, like `routing`.
24
+ */
25
+ /** The settings, after the layers have been combined. */
26
+ export interface PermissionSettings {
27
+ /** The mode a session starts in when the command line names none. */
28
+ readonly defaultMode?: PermissionModeName;
29
+ /** No session may enter bypass, whatever flag was given. */
30
+ readonly disableBypassMode?: boolean;
31
+ /** No session may enter auto. */
32
+ readonly disableAutoMode?: boolean;
33
+ readonly autoMode?: AutoModeSettings;
34
+ /**
35
+ * What was written and not honoured, one plain sentence each, so a person
36
+ * who put a setting in the wrong file is told rather than left to wonder.
37
+ */
38
+ readonly ignored?: readonly string[];
39
+ }
40
+ /** How the auto mode's classifier is steered. Every list accepts the `"$defaults"` entry. */
41
+ export interface AutoModeSettings {
42
+ /**
43
+ * The classifier's model: `provider:model`, a bare model of the session's
44
+ * provider, or `smallModel` for the side model. Absent: the session's own model.
45
+ */
46
+ readonly model?: string;
47
+ readonly allow?: readonly string[];
48
+ readonly softDeny?: readonly string[];
49
+ readonly hardDeny?: readonly string[];
50
+ readonly environment?: readonly string[];
51
+ }
52
+ /** The keys of the `permissions` table that are settings and not tool names. */
53
+ export declare const PERMISSION_SETTING_KEYS: readonly string[];
54
+ export declare function isPermissionSettingKey(key: string): boolean;
55
+ /**
56
+ * What is wrong with the settings in one `permissions` table, or undefined.
57
+ * The loader raises it as a config error so a typo is said at start-up.
58
+ */
59
+ export declare function permissionSettingsProblem(table: Readonly<Record<string, unknown>>): {
60
+ readonly path: readonly string[];
61
+ readonly message: string;
62
+ } | undefined;
63
+ /** Whether a file speaks with the operator's authority or the workspace's. */
64
+ export type SettingsAuthority = 'operator' | 'workspace';
65
+ /**
66
+ * Takes the settings out of one layer's `permissions` table.
67
+ *
68
+ * `rules` is the table without them; `settings` is what the layer's authority
69
+ * lets stand; `ignored` says what it does not.
70
+ */
71
+ export declare function splitPermissionsTable<T>(table: Readonly<Record<string, T>>, authority: SettingsAuthority, where: string): {
72
+ rules: Record<string, T>;
73
+ settings: PermissionSettings;
74
+ };
75
+ /**
76
+ * Combines the layers' settings, lowest precedence first. A later default
77
+ * replaces an earlier one; a `true` that closes a mode stays; the classifier
78
+ * settings of a later layer replace those of an earlier one key by key.
79
+ */
80
+ export declare function mergePermissionSettings(base: PermissionSettings | undefined, next: PermissionSettings): PermissionSettings;
81
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/permissions/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IAClC,qEAAqE;IACrE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;IACzC,4DAA4D;IAC5D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,iCAAiC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAKpD,CAAA;AAKD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D;AAKD;;;GAGG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAwC5E;AAED,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,CAAA;AAExD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACtC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAClC,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAA;CAAE,CAsC5D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,kBAAkB,GAAG,SAAS,EACpC,IAAI,EAAE,kBAAkB,GACtB,kBAAkB,CAYpB"}
package/dist/tui/App.d.ts CHANGED
@@ -1,6 +1,13 @@
1
- import { type Message } from '@namzu/sdk';
1
+ import { type Message, type ReasoningEffort, type SessionId } from '@namzu/sdk';
2
+ import { type SubscriptionProviderId } from '../integrations/providers/index.js';
3
+ import type { Batch } from '../integrations/subagents/batches.js';
4
+ import { type ModeAvailability, type PermissionMode } from '../permissions/mode.js';
5
+ import { type ChoicePickerOption } from './ChoicePicker.js';
6
+ import { type AgentSession } from './agent.js';
2
7
  import type { TuiExitSummary } from './exit-summary.js';
8
+ import { type CommandPickerEntry } from './slashCommands.js';
3
9
  import type { TranscriptMessage, TuiContext } from './types.js';
10
+ import { type ReviewCommit } from './workspace-review.js';
4
11
  export interface AppProps {
5
12
  readonly ctx: TuiContext;
6
13
  readonly onExitSummary?: (summary: TuiExitSummary) => void;
@@ -20,9 +27,161 @@ export type ExternalEditorAdapter = (request: {
20
27
  readonly cwd: string;
21
28
  readonly signal: AbortSignal;
22
29
  }) => Promise<string>;
30
+ type ReviewPreset = 'base-branch' | 'uncommitted' | 'commit' | 'custom';
31
+ type PluginChoiceState = ({
32
+ readonly kind: 'plugin';
33
+ } | {
34
+ readonly kind: 'plugin-action';
35
+ }) & {
36
+ readonly title: string;
37
+ readonly notice?: string;
38
+ readonly owner: AgentSession;
39
+ readonly pluginName?: string;
40
+ readonly busy?: boolean;
41
+ readonly values: readonly string[];
42
+ readonly options: readonly ChoicePickerOption[];
43
+ };
44
+ type ChoicePickerState = {
45
+ readonly back?: ChoicePickerState;
46
+ readonly request?: object;
47
+ } & (PluginChoiceState | {
48
+ readonly kind: 'resume-goal';
49
+ readonly title: string;
50
+ readonly notice: string;
51
+ readonly sessionId: string;
52
+ readonly values: readonly ('resume' | 'later')[];
53
+ readonly options: readonly ChoicePickerOption[];
54
+ } | {
55
+ /**
56
+ * A question the model put to the operator. `values` are option ids
57
+ * plus `FREE_TEXT_ANSWER` when the model allowed an answer in the
58
+ * operator's own words; the resolver lives in a ref, like a
59
+ * permission's, because a picker is state and a promise is not.
60
+ */
61
+ readonly kind: 'user-question';
62
+ readonly title: string;
63
+ readonly notice?: string;
64
+ readonly values: readonly string[];
65
+ readonly options: readonly ChoicePickerOption[];
66
+ } | {
67
+ readonly kind: 'command';
68
+ readonly title: string;
69
+ readonly notice?: string;
70
+ readonly values: readonly CommandPickerEntry[];
71
+ readonly options: readonly ChoicePickerOption[];
72
+ readonly windowSize: number;
73
+ } | {
74
+ /**
75
+ * `/agents batches`. `values` holds `'loading'` alone while the index
76
+ * read is still in flight — its lone option carries a `disabledReason`,
77
+ * so Enter cannot select it — and is replaced with the resolved rows
78
+ * once it settles; never a mix of the two.
79
+ */
80
+ readonly kind: 'agent-batches';
81
+ readonly title: string;
82
+ readonly notice?: string;
83
+ readonly values: readonly (Batch | 'loading')[];
84
+ readonly options: readonly ChoicePickerOption[];
85
+ } | {
86
+ /** `/workflows`: the runs of this conversation; `values` are their run ids. */
87
+ readonly kind: 'workflow-runs';
88
+ readonly title: string;
89
+ readonly notice?: string;
90
+ readonly values: readonly string[];
91
+ readonly options: readonly ChoicePickerOption[];
92
+ } | {
93
+ readonly kind: 'archive-conversation';
94
+ readonly title: string;
95
+ readonly notice?: string;
96
+ readonly values: readonly ('cancel' | 'archive')[];
97
+ readonly options: readonly ChoicePickerOption[];
98
+ } | {
99
+ readonly kind: 'export-destination';
100
+ readonly title: string;
101
+ readonly notice?: string;
102
+ readonly values: readonly ('clipboard' | 'file')[];
103
+ readonly options: readonly ChoicePickerOption[];
104
+ } | {
105
+ readonly kind: 'permission-mode';
106
+ readonly title: string;
107
+ readonly notice?: string;
108
+ readonly values: readonly (PermissionMode | 'more' | 'rules')[];
109
+ readonly options: readonly ChoicePickerOption[];
110
+ } | {
111
+ /** The first switch into bypass: asked once, then remembered. */
112
+ readonly kind: 'bypass-consent';
113
+ readonly title: string;
114
+ readonly notice?: string;
115
+ /** Whether the switch was asked for by name (and so gets a reply line). */
116
+ readonly announce: boolean;
117
+ readonly values: readonly ('decline' | 'accept')[];
118
+ readonly options: readonly ChoicePickerOption[];
119
+ } | {
120
+ readonly kind: 'reasoning-effort';
121
+ readonly title: string;
122
+ readonly notice?: string;
123
+ /** The published model whose paused queue this follow-up may configure. */
124
+ readonly selectedSession?: AgentSession;
125
+ /** The last entry is the hypermode row, below a rule; never a `ReasoningEffort`. */
126
+ readonly values: readonly (ReasoningEffort | undefined | 'hypermode')[];
127
+ readonly options: readonly ChoicePickerOption[];
128
+ } | {
129
+ /**
130
+ * A command that acts on the conversation, typed while an agent is
131
+ * viewed: asks once, then runs it against the conversation.
132
+ */
133
+ readonly kind: 'agent-view-command';
134
+ readonly title: string;
135
+ readonly notice?: string;
136
+ readonly line: string;
137
+ readonly values: readonly ('cancel' | 'run')[];
138
+ readonly options: readonly ChoicePickerOption[];
139
+ } | {
140
+ readonly kind: 'feedback-rating';
141
+ readonly title: string;
142
+ readonly notice?: string;
143
+ readonly messageId: string;
144
+ readonly sessionId: SessionId;
145
+ readonly values: readonly ('good' | 'bad')[];
146
+ readonly options: readonly ChoicePickerOption[];
147
+ } | {
148
+ readonly kind: 'skill';
149
+ readonly title: string;
150
+ readonly notice?: string;
151
+ readonly values: readonly string[];
152
+ readonly options: readonly ChoicePickerOption[];
153
+ } | {
154
+ readonly kind: 'credential-logout';
155
+ readonly title: string;
156
+ readonly notice?: string;
157
+ readonly values: readonly (SubscriptionProviderId | 'google')[];
158
+ readonly options: readonly ChoicePickerOption[];
159
+ } | {
160
+ readonly kind: 'review-preset';
161
+ readonly title: string;
162
+ readonly notice?: string;
163
+ readonly values: readonly ReviewPreset[];
164
+ readonly options: readonly ChoicePickerOption[];
165
+ } | {
166
+ readonly kind: 'review-branch';
167
+ readonly title: string;
168
+ readonly notice?: string;
169
+ readonly values: readonly string[];
170
+ readonly options: readonly ChoicePickerOption[];
171
+ } | {
172
+ readonly kind: 'review-commit';
173
+ readonly title: string;
174
+ readonly notice?: string;
175
+ readonly values: readonly ReviewCommit[];
176
+ readonly options: readonly ChoicePickerOption[];
177
+ });
23
178
  /** Exact operator-authored prompts that belong in terminal input history. */
24
179
  export declare function promptHistoryFromConversation(messages: readonly Message[]): readonly string[];
25
180
  /** Build the transcript projection of exact model-visible history. */
26
181
  export declare function projectConversation(messages: readonly Message[], nextId: () => string, readableUserTexts?: readonly string[]): readonly TranscriptMessage[];
27
182
  export declare function App({ ctx: initialCtx, onExitSummary, externalEditor, terminationExit, }: AppProps): import("react/jsx-runtime").JSX.Element;
183
+ export declare function permissionPicker(mode: PermissionMode, more?: boolean, availability?: ModeAvailability): Extract<ChoicePickerState, {
184
+ kind: 'permission-mode';
185
+ }>;
186
+ export {};
28
187
  //# sourceMappingURL=App.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAWN,KAAK,OAAO,EAsBZ,MAAM,YAAY,CAAA;AAqQnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AA8JvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAc/D,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;IAC1D,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAA;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAA;CAC3D;AASD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC5B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAsVrB,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,MAAM,EAAE,CAM7F;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,EAAE,MAAM,MAAM,EACpB,iBAAiB,GAAE,SAAS,MAAM,EAAO,GACvC,SAAS,iBAAiB,EAAE,CAyE9B;AA6KD,wBAAgB,GAAG,CAAC,EACnB,GAAG,EAAE,UAAU,EACf,aAAa,EACb,cAAsC,EACtC,eAAe,GACf,EAAE,QAAQ,2CAkwXV"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}