@namzu/cli 35.0.0 → 36.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 (1304) hide show
  1. package/CHANGELOG.md +756 -0
  2. package/README.md +160 -394
  3. package/assets/pal-blender-mcp.py +123 -0
  4. package/assets/pal-godot-mcp-pin.json +135 -0
  5. package/assets/pal-godot-mcp.cjs +418 -0
  6. package/dist/bin-main.d.ts +3 -0
  7. package/dist/bin-main.d.ts.map +1 -0
  8. package/dist/bin.d.ts +2 -1
  9. package/dist/bin.d.ts.map +1 -1
  10. package/dist/bin.js +85 -23
  11. package/dist/bin.js.map +6 -1
  12. package/dist/boot-narrative.d.ts +16 -0
  13. package/dist/boot-narrative.d.ts.map +1 -0
  14. package/dist/checkpoints/manifest.d.ts +107 -0
  15. package/dist/checkpoints/manifest.d.ts.map +1 -0
  16. package/dist/checkpoints/store.d.ts +280 -40
  17. package/dist/checkpoints/store.d.ts.map +1 -1
  18. package/dist/checkpoints/undo-plan.d.ts +83 -0
  19. package/dist/checkpoints/undo-plan.d.ts.map +1 -0
  20. package/dist/checkpoints/wrap.d.ts +4 -0
  21. package/dist/checkpoints/wrap.d.ts.map +1 -1
  22. package/dist/chunks/acp-BOSEA4R3.js +13448 -0
  23. package/dist/chunks/acp-BOSEA4R3.js.map +6 -0
  24. package/dist/chunks/activity-command-ACS7KL3C.js +262 -0
  25. package/dist/chunks/activity-command-ACS7KL3C.js.map +6 -0
  26. package/dist/chunks/add-DLS54YKS.js +712 -0
  27. package/dist/chunks/add-DLS54YKS.js.map +6 -0
  28. package/dist/chunks/agent-GV3DWYQC.js +87 -0
  29. package/dist/chunks/agent-GV3DWYQC.js.map +6 -0
  30. package/dist/chunks/agent-session-7VE6GJJH.js +46 -0
  31. package/dist/chunks/agent-session-7VE6GJJH.js.map +6 -0
  32. package/dist/chunks/archive-6ZENIEBP.js +84 -0
  33. package/dist/chunks/archive-6ZENIEBP.js.map +6 -0
  34. package/dist/chunks/bin-main-NFFT5ZIU.js +126 -0
  35. package/dist/chunks/bin-main-NFFT5ZIU.js.map +6 -0
  36. package/dist/chunks/browser-VT2U6NG2.js +31 -0
  37. package/dist/chunks/browser-VT2U6NG2.js.map +6 -0
  38. package/dist/chunks/chat-UNYVLDFL.js +101 -0
  39. package/dist/chunks/chat-UNYVLDFL.js.map +6 -0
  40. package/dist/chunks/chunk-2IL6OG3X.js +311 -0
  41. package/dist/chunks/chunk-2IL6OG3X.js.map +6 -0
  42. package/dist/chunks/chunk-2RBYHHLM.js +319 -0
  43. package/dist/chunks/chunk-2RBYHHLM.js.map +6 -0
  44. package/dist/chunks/chunk-42ZK2AH4.js +71 -0
  45. package/dist/chunks/chunk-42ZK2AH4.js.map +6 -0
  46. package/dist/chunks/chunk-5PQVJBIO.js +168 -0
  47. package/dist/chunks/chunk-5PQVJBIO.js.map +6 -0
  48. package/dist/chunks/chunk-6CPT2ZBS.js +75 -0
  49. package/dist/chunks/chunk-6CPT2ZBS.js.map +6 -0
  50. package/dist/chunks/chunk-6LLJQ3KY.js +225 -0
  51. package/dist/chunks/chunk-6LLJQ3KY.js.map +6 -0
  52. package/dist/chunks/chunk-6YFJDVGA.js +161 -0
  53. package/dist/chunks/chunk-6YFJDVGA.js.map +6 -0
  54. package/dist/chunks/chunk-6YG7D7U4.js +159 -0
  55. package/dist/chunks/chunk-6YG7D7U4.js.map +6 -0
  56. package/dist/chunks/chunk-6ZPODOJN.js +828 -0
  57. package/dist/chunks/chunk-6ZPODOJN.js.map +6 -0
  58. package/dist/chunks/chunk-76FLAFCG.js +51 -0
  59. package/dist/chunks/chunk-76FLAFCG.js.map +6 -0
  60. package/dist/chunks/chunk-7HCPD673.js +25326 -0
  61. package/dist/chunks/chunk-7HCPD673.js.map +6 -0
  62. package/dist/chunks/chunk-7KWGR2YA.js +257 -0
  63. package/dist/chunks/chunk-7KWGR2YA.js.map +6 -0
  64. package/dist/chunks/chunk-A22MBIYU.js +42 -0
  65. package/dist/chunks/chunk-A22MBIYU.js.map +6 -0
  66. package/dist/chunks/chunk-AHIDYIRB.js +329 -0
  67. package/dist/chunks/chunk-AHIDYIRB.js.map +6 -0
  68. package/dist/chunks/chunk-AK2U3N2A.js +31 -0
  69. package/dist/chunks/chunk-AK2U3N2A.js.map +6 -0
  70. package/dist/chunks/chunk-AKKRZTPB.js +283 -0
  71. package/dist/chunks/chunk-AKKRZTPB.js.map +6 -0
  72. package/dist/chunks/chunk-BCZR2B3Y.js +97 -0
  73. package/dist/chunks/chunk-BCZR2B3Y.js.map +6 -0
  74. package/dist/chunks/chunk-CHIEVVQ2.js +32 -0
  75. package/dist/chunks/chunk-CHIEVVQ2.js.map +6 -0
  76. package/dist/chunks/chunk-D67YBUO3.js +110 -0
  77. package/dist/chunks/chunk-D67YBUO3.js.map +6 -0
  78. package/dist/chunks/chunk-DIHEHK7K.js +765 -0
  79. package/dist/chunks/chunk-DIHEHK7K.js.map +6 -0
  80. package/dist/chunks/chunk-E5VLANCO.js +101 -0
  81. package/dist/chunks/chunk-E5VLANCO.js.map +6 -0
  82. package/dist/chunks/chunk-EEDZOGV4.js +47 -0
  83. package/dist/chunks/chunk-EEDZOGV4.js.map +6 -0
  84. package/dist/chunks/chunk-ENGNEELC.js +271 -0
  85. package/dist/chunks/chunk-ENGNEELC.js.map +6 -0
  86. package/dist/chunks/chunk-EVY4MVRE.js +74 -0
  87. package/dist/chunks/chunk-EVY4MVRE.js.map +6 -0
  88. package/dist/chunks/chunk-FJNDNNNQ.js +115 -0
  89. package/dist/chunks/chunk-FJNDNNNQ.js.map +6 -0
  90. package/dist/chunks/chunk-FOFGMP7O.js +20 -0
  91. package/dist/chunks/chunk-FOFGMP7O.js.map +6 -0
  92. package/dist/chunks/chunk-FTMTO72X.js +95 -0
  93. package/dist/chunks/chunk-FTMTO72X.js.map +6 -0
  94. package/dist/chunks/chunk-GIXSS6KW.js +2228 -0
  95. package/dist/chunks/chunk-GIXSS6KW.js.map +6 -0
  96. package/dist/chunks/chunk-GNBMKISG.js +19 -0
  97. package/dist/chunks/chunk-GNBMKISG.js.map +6 -0
  98. package/dist/chunks/chunk-GWQEMJFS.js +28 -0
  99. package/dist/chunks/chunk-GWQEMJFS.js.map +6 -0
  100. package/dist/chunks/chunk-H6B6AROX.js +151 -0
  101. package/dist/chunks/chunk-H6B6AROX.js.map +6 -0
  102. package/dist/chunks/chunk-HE7WUOX2.js +26 -0
  103. package/dist/chunks/chunk-HE7WUOX2.js.map +6 -0
  104. package/dist/chunks/chunk-HZBKWL42.js +303 -0
  105. package/dist/chunks/chunk-HZBKWL42.js.map +6 -0
  106. package/dist/chunks/chunk-I7HQR6ET.js +75 -0
  107. package/dist/chunks/chunk-I7HQR6ET.js.map +6 -0
  108. package/dist/chunks/chunk-IJEB77SH.js +648 -0
  109. package/dist/chunks/chunk-IJEB77SH.js.map +6 -0
  110. package/dist/chunks/chunk-JNPDWME5.js +675 -0
  111. package/dist/chunks/chunk-JNPDWME5.js.map +6 -0
  112. package/dist/chunks/chunk-JORONMD3.js +18 -0
  113. package/dist/chunks/chunk-JORONMD3.js.map +6 -0
  114. package/dist/chunks/chunk-JV3LONAU.js +76 -0
  115. package/dist/chunks/chunk-JV3LONAU.js.map +6 -0
  116. package/dist/chunks/chunk-K5HARZ7G.js +82516 -0
  117. package/dist/chunks/chunk-K5HARZ7G.js.map +6 -0
  118. package/dist/chunks/chunk-KONYGNG6.js +7661 -0
  119. package/dist/chunks/chunk-KONYGNG6.js.map +6 -0
  120. package/dist/chunks/chunk-LXB3S4IC.js +19 -0
  121. package/dist/chunks/chunk-LXB3S4IC.js.map +6 -0
  122. package/dist/chunks/chunk-M3IAMIBJ.js +661 -0
  123. package/dist/chunks/chunk-M3IAMIBJ.js.map +6 -0
  124. package/dist/chunks/chunk-MH6KUKVV.js +1142 -0
  125. package/dist/chunks/chunk-MH6KUKVV.js.map +6 -0
  126. package/dist/chunks/chunk-MS3IYQ72.js +1479 -0
  127. package/dist/chunks/chunk-MS3IYQ72.js.map +6 -0
  128. package/dist/chunks/chunk-MZP6SH3M.js +3497 -0
  129. package/dist/chunks/chunk-MZP6SH3M.js.map +6 -0
  130. package/dist/chunks/chunk-N3ZEXVSS.js +76 -0
  131. package/dist/chunks/chunk-N3ZEXVSS.js.map +6 -0
  132. package/dist/chunks/chunk-N6SR54VC.js +207 -0
  133. package/dist/chunks/chunk-N6SR54VC.js.map +6 -0
  134. package/dist/chunks/chunk-NADQQMMG.js +46 -0
  135. package/dist/chunks/chunk-NADQQMMG.js.map +6 -0
  136. package/dist/chunks/chunk-NBH52WHS.js +247 -0
  137. package/dist/chunks/chunk-NBH52WHS.js.map +6 -0
  138. package/dist/chunks/chunk-NICLKFBG.js +109 -0
  139. package/dist/chunks/chunk-NICLKFBG.js.map +6 -0
  140. package/dist/chunks/chunk-NIPHHZ5G.js +283 -0
  141. package/dist/chunks/chunk-NIPHHZ5G.js.map +6 -0
  142. package/dist/chunks/chunk-NQT244I2.js +517 -0
  143. package/dist/chunks/chunk-NQT244I2.js.map +6 -0
  144. package/dist/chunks/chunk-NUGPLXVK.js +228 -0
  145. package/dist/chunks/chunk-NUGPLXVK.js.map +6 -0
  146. package/dist/chunks/chunk-OEW7CJKK.js +140 -0
  147. package/dist/chunks/chunk-OEW7CJKK.js.map +6 -0
  148. package/dist/chunks/chunk-OH6TB27S.js +111 -0
  149. package/dist/chunks/chunk-OH6TB27S.js.map +6 -0
  150. package/dist/chunks/chunk-OWH6QQY2.js +1858 -0
  151. package/dist/chunks/chunk-OWH6QQY2.js.map +6 -0
  152. package/dist/chunks/chunk-OWXJOD4H.js +773 -0
  153. package/dist/chunks/chunk-OWXJOD4H.js.map +6 -0
  154. package/dist/chunks/chunk-PT537V7B.js +787 -0
  155. package/dist/chunks/chunk-PT537V7B.js.map +6 -0
  156. package/dist/chunks/chunk-QEQZFG2X.js +106 -0
  157. package/dist/chunks/chunk-QEQZFG2X.js.map +6 -0
  158. package/dist/chunks/chunk-QL4O4UGZ.js +245 -0
  159. package/dist/chunks/chunk-QL4O4UGZ.js.map +6 -0
  160. package/dist/chunks/chunk-QL54XCF4.js +73 -0
  161. package/dist/chunks/chunk-QL54XCF4.js.map +6 -0
  162. package/dist/chunks/chunk-SB6UD3ED.js +1355 -0
  163. package/dist/chunks/chunk-SB6UD3ED.js.map +6 -0
  164. package/dist/chunks/chunk-SGGRGKGV.js +34 -0
  165. package/dist/chunks/chunk-SGGRGKGV.js.map +6 -0
  166. package/dist/chunks/chunk-SKKWMMFP.js +474 -0
  167. package/dist/chunks/chunk-SKKWMMFP.js.map +6 -0
  168. package/dist/chunks/chunk-SMIDV4KH.js +171 -0
  169. package/dist/chunks/chunk-SMIDV4KH.js.map +6 -0
  170. package/dist/chunks/chunk-T2VUTAHB.js +46 -0
  171. package/dist/chunks/chunk-T2VUTAHB.js.map +6 -0
  172. package/dist/chunks/chunk-T4SB6AAF.js +134 -0
  173. package/dist/chunks/chunk-T4SB6AAF.js.map +6 -0
  174. package/dist/chunks/chunk-TBIX6JRE.js +24 -0
  175. package/dist/chunks/chunk-TBIX6JRE.js.map +6 -0
  176. package/dist/chunks/chunk-THNCQJ33.js +11265 -0
  177. package/dist/chunks/chunk-THNCQJ33.js.map +6 -0
  178. package/dist/chunks/chunk-U56QFYGA.js +818 -0
  179. package/dist/chunks/chunk-U56QFYGA.js.map +6 -0
  180. package/dist/chunks/chunk-U6GZ7EW4.js +106 -0
  181. package/dist/chunks/chunk-U6GZ7EW4.js.map +6 -0
  182. package/dist/chunks/chunk-UDDSFIMB.js +1373 -0
  183. package/dist/chunks/chunk-UDDSFIMB.js.map +6 -0
  184. package/dist/chunks/chunk-UFHNXZL2.js +399 -0
  185. package/dist/chunks/chunk-UFHNXZL2.js.map +6 -0
  186. package/dist/chunks/chunk-US5ZFPAU.js +400 -0
  187. package/dist/chunks/chunk-US5ZFPAU.js.map +6 -0
  188. package/dist/chunks/chunk-VRL2WNQN.js +7534 -0
  189. package/dist/chunks/chunk-VRL2WNQN.js.map +6 -0
  190. package/dist/chunks/chunk-W3UQMRYA.js +380 -0
  191. package/dist/chunks/chunk-W3UQMRYA.js.map +6 -0
  192. package/dist/chunks/chunk-W5KGCUP3.js +11111 -0
  193. package/dist/chunks/chunk-W5KGCUP3.js.map +6 -0
  194. package/dist/chunks/chunk-WHODOMXA.js +132 -0
  195. package/dist/chunks/chunk-WHODOMXA.js.map +6 -0
  196. package/dist/chunks/chunk-WT6TFCPV.js +154 -0
  197. package/dist/chunks/chunk-WT6TFCPV.js.map +6 -0
  198. package/dist/chunks/chunk-WY2WUTFR.js +164 -0
  199. package/dist/chunks/chunk-WY2WUTFR.js.map +6 -0
  200. package/dist/chunks/chunk-XEUQN4JC.js +54 -0
  201. package/dist/chunks/chunk-XEUQN4JC.js.map +6 -0
  202. package/dist/chunks/chunk-Y7B67G22.js +26 -0
  203. package/dist/chunks/chunk-Y7B67G22.js.map +6 -0
  204. package/dist/chunks/chunk-YEMJX2DS.js +69 -0
  205. package/dist/chunks/chunk-YEMJX2DS.js.map +6 -0
  206. package/dist/chunks/chunk-YKLKHDZU.js +2953 -0
  207. package/dist/chunks/chunk-YKLKHDZU.js.map +6 -0
  208. package/dist/chunks/chunk-YQEWD2EN.js +127 -0
  209. package/dist/chunks/chunk-YQEWD2EN.js.map +6 -0
  210. package/dist/chunks/chunk-YYQJIECC.js +1439 -0
  211. package/dist/chunks/chunk-YYQJIECC.js.map +6 -0
  212. package/dist/chunks/chunk-ZKVZNOUS.js +106 -0
  213. package/dist/chunks/chunk-ZKVZNOUS.js.map +6 -0
  214. package/dist/chunks/chunk-ZPR4IMRT.js +36 -0
  215. package/dist/chunks/chunk-ZPR4IMRT.js.map +6 -0
  216. package/dist/chunks/chunk-ZWA2JRJV.js +45 -0
  217. package/dist/chunks/chunk-ZWA2JRJV.js.map +6 -0
  218. package/dist/chunks/cli-runtime-F4MBZ2UQ.js +129 -0
  219. package/dist/chunks/cli-runtime-F4MBZ2UQ.js.map +6 -0
  220. package/dist/chunks/commands-GMQGFTIY.js +21 -0
  221. package/dist/chunks/commands-GMQGFTIY.js.map +6 -0
  222. package/dist/chunks/computer-GXDY4H35.js +493 -0
  223. package/dist/chunks/computer-GXDY4H35.js.map +6 -0
  224. package/dist/chunks/crash-report-STOHSORG.js +21 -0
  225. package/dist/chunks/crash-report-STOHSORG.js.map +6 -0
  226. package/dist/chunks/devtools-LBE4PAQN.js +3851 -0
  227. package/dist/chunks/devtools-LBE4PAQN.js.map +6 -0
  228. package/dist/chunks/dist-3AF2X4S5.js +1339 -0
  229. package/dist/chunks/dist-3AF2X4S5.js.map +6 -0
  230. package/dist/chunks/dist-AZIMHV2B.js +514 -0
  231. package/dist/chunks/dist-AZIMHV2B.js.map +6 -0
  232. package/dist/chunks/dist-BGYRQ5BC.js +555 -0
  233. package/dist/chunks/dist-BGYRQ5BC.js.map +6 -0
  234. package/dist/chunks/dist-OTTZ7WVD.js +1415 -0
  235. package/dist/chunks/dist-OTTZ7WVD.js.map +6 -0
  236. package/dist/chunks/dist-R3I3ATSG.js +1018 -0
  237. package/dist/chunks/dist-R3I3ATSG.js.map +6 -0
  238. package/dist/chunks/dist-TXEKDBQO.js +40642 -0
  239. package/dist/chunks/dist-TXEKDBQO.js.map +6 -0
  240. package/dist/chunks/dist-XTWYQHHN.js +520 -0
  241. package/dist/chunks/dist-XTWYQHHN.js.map +6 -0
  242. package/dist/chunks/doctor-VXSB4Y4P.js +28 -0
  243. package/dist/chunks/doctor-VXSB4Y4P.js.map +6 -0
  244. package/dist/chunks/drain-DXVICQBR.js +471 -0
  245. package/dist/chunks/drain-DXVICQBR.js.map +6 -0
  246. package/dist/chunks/endpoint-M2DDENPP.js +15 -0
  247. package/dist/chunks/endpoint-M2DDENPP.js.map +6 -0
  248. package/dist/chunks/eval-BMJQXDKA.js +187 -0
  249. package/dist/chunks/eval-BMJQXDKA.js.map +6 -0
  250. package/dist/chunks/exec-3T5ESZPH.js +1284 -0
  251. package/dist/chunks/exec-3T5ESZPH.js.map +6 -0
  252. package/dist/chunks/home-ILHA7B6Z.js +16 -0
  253. package/dist/chunks/home-ILHA7B6Z.js.map +6 -0
  254. package/dist/chunks/host-queries-QCMWDZGS.js +152 -0
  255. package/dist/chunks/host-queries-QCMWDZGS.js.map +6 -0
  256. package/dist/chunks/lib-KXZZJJG2.js +2657 -0
  257. package/dist/chunks/lib-KXZZJJG2.js.map +6 -0
  258. package/dist/chunks/lifecycle-CB23VJI7.js +63 -0
  259. package/dist/chunks/lifecycle-CB23VJI7.js.map +6 -0
  260. package/dist/chunks/list-N6WXZBMD.js +293 -0
  261. package/dist/chunks/list-N6WXZBMD.js.map +6 -0
  262. package/dist/chunks/login-26NCG6EQ.js +29 -0
  263. package/dist/chunks/login-26NCG6EQ.js.map +6 -0
  264. package/dist/chunks/logs-V7SNM7LA.js +116 -0
  265. package/dist/chunks/logs-V7SNM7LA.js.map +6 -0
  266. package/dist/chunks/mcp-BTHCU5ZC.js +763 -0
  267. package/dist/chunks/mcp-BTHCU5ZC.js.map +6 -0
  268. package/dist/chunks/message-command-HMIOR52C.js +170 -0
  269. package/dist/chunks/message-command-HMIOR52C.js.map +6 -0
  270. package/dist/chunks/node-QB2FA2ZB.js +916 -0
  271. package/dist/chunks/node-QB2FA2ZB.js.map +6 -0
  272. package/dist/chunks/operator-tools-7LMWOHSN.js +115 -0
  273. package/dist/chunks/operator-tools-7LMWOHSN.js.map +6 -0
  274. package/dist/chunks/output-schema-XCONYVZ7.js +11 -0
  275. package/dist/chunks/output-schema-XCONYVZ7.js.map +6 -0
  276. package/dist/chunks/pal-YEUKHA6F.js +200 -0
  277. package/dist/chunks/pal-YEUKHA6F.js.map +6 -0
  278. package/dist/chunks/paths-DXYFKIJU.js +10 -0
  279. package/dist/chunks/paths-DXYFKIJU.js.map +6 -0
  280. package/dist/chunks/pica-WNHDDIFX.js +1736 -0
  281. package/dist/chunks/pica-WNHDDIFX.js.map +6 -0
  282. package/dist/chunks/providers-EI3FAKYB.js +160 -0
  283. package/dist/chunks/providers-EI3FAKYB.js.map +6 -0
  284. package/dist/chunks/resident-5ZY6OG6B.js +1314 -0
  285. package/dist/chunks/resident-5ZY6OG6B.js.map +6 -0
  286. package/dist/chunks/resume-command-ONYRZIIA.js +22 -0
  287. package/dist/chunks/resume-command-ONYRZIIA.js.map +6 -0
  288. package/dist/chunks/schedule-6JPEO4NR.js +143 -0
  289. package/dist/chunks/schedule-6JPEO4NR.js.map +6 -0
  290. package/dist/chunks/serve-S7UWNIR3.js +21 -0
  291. package/dist/chunks/serve-S7UWNIR3.js.map +6 -0
  292. package/dist/chunks/service-WSW3M6K5.js +1633 -0
  293. package/dist/chunks/service-WSW3M6K5.js.map +6 -0
  294. package/dist/chunks/session-step-2VZM3CCA.js +26 -0
  295. package/dist/chunks/session-step-2VZM3CCA.js.map +6 -0
  296. package/dist/chunks/skills-KAZJYGX5.js +282 -0
  297. package/dist/chunks/skills-KAZJYGX5.js.map +6 -0
  298. package/dist/chunks/state-263OUKQA.js +717 -0
  299. package/dist/chunks/state-263OUKQA.js.map +6 -0
  300. package/dist/chunks/store-3XLCJ7EL.js +42 -0
  301. package/dist/chunks/store-3XLCJ7EL.js.map +6 -0
  302. package/dist/chunks/store-KN65QI2M.js +82 -0
  303. package/dist/chunks/store-KN65QI2M.js.map +6 -0
  304. package/dist/chunks/store-X3TESBIN.js +34 -0
  305. package/dist/chunks/store-X3TESBIN.js.map +6 -0
  306. package/dist/chunks/tui-5MU7JBXX.js +56703 -0
  307. package/dist/chunks/tui-5MU7JBXX.js.map +6 -0
  308. package/dist/chunks/upgrade-BYM4MWBC.js +315 -0
  309. package/dist/chunks/upgrade-BYM4MWBC.js.map +6 -0
  310. package/dist/chunks/webapi-6HUHZUAH.js +2715 -0
  311. package/dist/chunks/webapi-6HUHZUAH.js.map +6 -0
  312. package/dist/chunks/worktree-K3ZIPXRM.js +116 -0
  313. package/dist/chunks/worktree-K3ZIPXRM.js.map +6 -0
  314. package/dist/cli-runtime.d.ts +19 -0
  315. package/dist/cli-runtime.d.ts.map +1 -0
  316. package/dist/cli.d.ts +0 -15
  317. package/dist/cli.d.ts.map +1 -1
  318. package/dist/commands/acp-harness.d.ts +64 -0
  319. package/dist/commands/acp-harness.d.ts.map +1 -0
  320. package/dist/commands/acp-provider-retry.d.ts +27 -0
  321. package/dist/commands/acp-provider-retry.d.ts.map +1 -0
  322. package/dist/commands/acp.d.ts +134 -3
  323. package/dist/commands/acp.d.ts.map +1 -1
  324. package/dist/commands/computer.d.ts +3 -0
  325. package/dist/commands/computer.d.ts.map +1 -0
  326. package/dist/commands/desktop-host-changes.d.ts +65 -0
  327. package/dist/commands/desktop-host-changes.d.ts.map +1 -0
  328. package/dist/commands/desktop-host-header.d.ts +30 -0
  329. package/dist/commands/desktop-host-header.d.ts.map +1 -0
  330. package/dist/commands/desktop-host.d.ts +354 -0
  331. package/dist/commands/desktop-host.d.ts.map +1 -0
  332. package/dist/commands/desktop-model-catalogue.d.ts +25 -0
  333. package/dist/commands/desktop-model-catalogue.d.ts.map +1 -0
  334. package/dist/commands/effort-levels.d.ts +3 -0
  335. package/dist/commands/effort-levels.d.ts.map +1 -0
  336. package/dist/commands/exec-flags.d.ts +4 -0
  337. package/dist/commands/exec-flags.d.ts.map +1 -1
  338. package/dist/commands/exec.d.ts.map +1 -1
  339. package/dist/commands/lazy.d.ts +20 -0
  340. package/dist/commands/lazy.d.ts.map +1 -0
  341. package/dist/commands/manifest.d.ts +33 -0
  342. package/dist/commands/manifest.d.ts.map +1 -0
  343. package/dist/commands/pal.d.ts +5 -0
  344. package/dist/commands/pal.d.ts.map +1 -0
  345. package/dist/commands/permission-preview.d.ts +38 -0
  346. package/dist/commands/permission-preview.d.ts.map +1 -0
  347. package/dist/commands/registry.d.ts +10 -0
  348. package/dist/commands/registry.d.ts.map +1 -1
  349. package/dist/commands/serve.d.ts +1 -12
  350. package/dist/commands/serve.d.ts.map +1 -1
  351. package/dist/commands/stdin.d.ts.map +1 -1
  352. package/dist/commands/upgrade.d.ts +14 -0
  353. package/dist/commands/upgrade.d.ts.map +1 -1
  354. package/dist/compile-cache-enable.d.ts +2 -0
  355. package/dist/compile-cache-enable.d.ts.map +1 -0
  356. package/dist/compile-cache.d.ts +53 -0
  357. package/dist/compile-cache.d.ts.map +1 -0
  358. package/dist/computer/bundle.d.ts +18 -0
  359. package/dist/computer/bundle.d.ts.map +1 -0
  360. package/dist/computer/run.d.ts +26 -0
  361. package/dist/computer/run.d.ts.map +1 -0
  362. package/dist/computer/sentences.d.ts +30 -0
  363. package/dist/computer/sentences.d.ts.map +1 -0
  364. package/dist/config/load.d.ts +10 -1
  365. package/dist/config/load.d.ts.map +1 -1
  366. package/dist/context/capabilities.d.ts +25 -2
  367. package/dist/context/capabilities.d.ts.map +1 -1
  368. package/dist/context/runtime-message.d.ts.map +1 -1
  369. package/dist/crash-report.d.ts +22 -0
  370. package/dist/crash-report.d.ts.map +1 -0
  371. package/dist/debug-requested.d.ts +7 -0
  372. package/dist/debug-requested.d.ts.map +1 -0
  373. package/dist/doctor/checks/credentials.d.ts.map +1 -1
  374. package/dist/exit-codes.d.ts +9 -1
  375. package/dist/exit-codes.d.ts.map +1 -1
  376. package/dist/index.js +105 -17
  377. package/dist/index.js.map +6 -1
  378. package/dist/integrations/harness/claude-adapter.d.ts +20 -0
  379. package/dist/integrations/harness/claude-adapter.d.ts.map +1 -0
  380. package/dist/integrations/harness/claude-protocol.d.ts +67 -0
  381. package/dist/integrations/harness/claude-protocol.d.ts.map +1 -0
  382. package/dist/integrations/harness/codex-adapter.d.ts +80 -0
  383. package/dist/integrations/harness/codex-adapter.d.ts.map +1 -0
  384. package/dist/integrations/harness/codex-protocol.d.ts +22 -0
  385. package/dist/integrations/harness/codex-protocol.d.ts.map +1 -0
  386. package/dist/integrations/harness/model-cache.d.ts +16 -0
  387. package/dist/integrations/harness/model-cache.d.ts.map +1 -0
  388. package/dist/integrations/harness/native-executable.d.ts +8 -0
  389. package/dist/integrations/harness/native-executable.d.ts.map +1 -0
  390. package/dist/integrations/harness/process.d.ts +25 -0
  391. package/dist/integrations/harness/process.d.ts.map +1 -0
  392. package/dist/integrations/peers/runtime.d.ts +64 -0
  393. package/dist/integrations/peers/runtime.d.ts.map +1 -0
  394. package/dist/integrations/plugins/inventory.d.ts +27 -0
  395. package/dist/integrations/plugins/inventory.d.ts.map +1 -0
  396. package/dist/integrations/providers/composer-settings.d.ts +33 -0
  397. package/dist/integrations/providers/composer-settings.d.ts.map +1 -0
  398. package/dist/integrations/providers/connections.d.ts +37 -0
  399. package/dist/integrations/providers/connections.d.ts.map +1 -0
  400. package/dist/integrations/providers/credential-store.d.ts +35 -0
  401. package/dist/integrations/providers/credential-store.d.ts.map +1 -1
  402. package/dist/integrations/providers/discover.d.ts +27 -1
  403. package/dist/integrations/providers/discover.d.ts.map +1 -1
  404. package/dist/integrations/providers/index.d.ts +2 -2
  405. package/dist/integrations/providers/index.d.ts.map +1 -1
  406. package/dist/integrations/providers/picker-operation.d.ts +6 -0
  407. package/dist/integrations/providers/picker-operation.d.ts.map +1 -0
  408. package/dist/integrations/providers/setup.d.ts +16 -1
  409. package/dist/integrations/providers/setup.d.ts.map +1 -1
  410. package/dist/integrations/resident/runner-worker.js +190 -161
  411. package/dist/integrations/resident/runner-worker.js.map +6 -1
  412. package/dist/integrations/sessions/display-title.d.ts +8 -0
  413. package/dist/integrations/sessions/display-title.d.ts.map +1 -1
  414. package/dist/integrations/sessions/store.d.ts +23 -9
  415. package/dist/integrations/sessions/store.d.ts.map +1 -1
  416. package/dist/integrations/sessions/task-context.d.ts +1 -1
  417. package/dist/integrations/sessions/task-context.d.ts.map +1 -1
  418. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
  419. package/dist/integrations/subagents/activity.d.ts +9 -6
  420. package/dist/integrations/subagents/activity.d.ts.map +1 -1
  421. package/dist/integrations/subagents/operator-journal.d.ts +20 -0
  422. package/dist/integrations/subagents/operator-journal.d.ts.map +1 -0
  423. package/dist/integrations/subagents/runtime.d.ts +11 -0
  424. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  425. package/dist/integrations/trust/store.d.ts +14 -0
  426. package/dist/integrations/trust/store.d.ts.map +1 -1
  427. package/dist/integrations/web/search.d.ts +1 -1
  428. package/dist/pals/actions.d.ts +57 -0
  429. package/dist/pals/actions.d.ts.map +1 -0
  430. package/dist/pals/activity-command.d.ts +3 -0
  431. package/dist/pals/activity-command.d.ts.map +1 -0
  432. package/dist/pals/activity.d.ts +18 -0
  433. package/dist/pals/activity.d.ts.map +1 -0
  434. package/dist/pals/agent-session.d.ts +19 -0
  435. package/dist/pals/agent-session.d.ts.map +1 -0
  436. package/dist/pals/channel-actions.d.ts +5 -0
  437. package/dist/pals/channel-actions.d.ts.map +1 -0
  438. package/dist/pals/channel-local.d.ts +7 -0
  439. package/dist/pals/channel-local.d.ts.map +1 -0
  440. package/dist/pals/channel.d.ts +20 -0
  441. package/dist/pals/channel.d.ts.map +1 -0
  442. package/dist/pals/chat.d.ts +6 -0
  443. package/dist/pals/chat.d.ts.map +1 -0
  444. package/dist/pals/communication.d.ts +47 -0
  445. package/dist/pals/communication.d.ts.map +1 -0
  446. package/dist/pals/conversations.d.ts +26 -0
  447. package/dist/pals/conversations.d.ts.map +1 -0
  448. package/dist/pals/desktop-communication.d.ts +111 -0
  449. package/dist/pals/desktop-communication.d.ts.map +1 -0
  450. package/dist/pals/dispatch.d.ts +13 -0
  451. package/dist/pals/dispatch.d.ts.map +1 -0
  452. package/dist/pals/environment.d.ts +103 -0
  453. package/dist/pals/environment.d.ts.map +1 -0
  454. package/dist/pals/guest-mcp-transport.d.ts +28 -0
  455. package/dist/pals/guest-mcp-transport.d.ts.map +1 -0
  456. package/dist/pals/guest-mcp.d.ts +22 -0
  457. package/dist/pals/guest-mcp.d.ts.map +1 -0
  458. package/dist/pals/inbox-start.d.ts +35 -0
  459. package/dist/pals/inbox-start.d.ts.map +1 -0
  460. package/dist/pals/message-command.d.ts +3 -0
  461. package/dist/pals/message-command.d.ts.map +1 -0
  462. package/dist/pals/operator-tools.d.ts +23 -0
  463. package/dist/pals/operator-tools.d.ts.map +1 -0
  464. package/dist/pals/public-transcript.d.ts +4 -0
  465. package/dist/pals/public-transcript.d.ts.map +1 -0
  466. package/dist/pals/review.d.ts +16 -0
  467. package/dist/pals/review.d.ts.map +1 -0
  468. package/dist/pals/store.d.ts +16 -0
  469. package/dist/pals/store.d.ts.map +1 -0
  470. package/dist/pals/tui-session.d.ts +11 -0
  471. package/dist/pals/tui-session.d.ts.map +1 -0
  472. package/dist/permissions/mode-names.d.ts +2 -0
  473. package/dist/permissions/mode-names.d.ts.map +1 -0
  474. package/dist/resume-invocation.d.ts +1 -1
  475. package/dist/resume-invocation.d.ts.map +1 -1
  476. package/dist/resume-shell.d.ts +8 -0
  477. package/dist/resume-shell.d.ts.map +1 -0
  478. package/dist/schedule/build.d.ts +12 -3
  479. package/dist/schedule/build.d.ts.map +1 -1
  480. package/dist/schedule/commands/add.d.ts +1 -1
  481. package/dist/schedule/commands/add.d.ts.map +1 -1
  482. package/dist/schedule/commands/lifecycle.d.ts.map +1 -1
  483. package/dist/schedule/commands/list.d.ts +3 -1
  484. package/dist/schedule/commands/list.d.ts.map +1 -1
  485. package/dist/schedule/daemon/daemon.d.ts +2 -0
  486. package/dist/schedule/daemon/daemon.d.ts.map +1 -1
  487. package/dist/schedule/delivery.d.ts +66 -0
  488. package/dist/schedule/delivery.d.ts.map +1 -0
  489. package/dist/schedule/fire/fire.d.ts +1 -1
  490. package/dist/schedule/fire/fire.d.ts.map +1 -1
  491. package/dist/schedule/fire/run-script.d.ts +2 -2
  492. package/dist/schedule/fire/run-script.d.ts.map +1 -1
  493. package/dist/schedule/fire/script-report.d.ts +31 -0
  494. package/dist/schedule/fire/script-report.d.ts.map +1 -0
  495. package/dist/schedule/floor.d.ts +1 -1
  496. package/dist/schedule/floor.d.ts.map +1 -1
  497. package/dist/schedule/folder.d.ts +6 -0
  498. package/dist/schedule/folder.d.ts.map +1 -1
  499. package/dist/schedule/resume-command.d.ts +3 -3
  500. package/dist/schedule/resume-command.d.ts.map +1 -1
  501. package/dist/schedule/store/history.d.ts.map +1 -1
  502. package/dist/schedule/store/jobs.d.ts +6 -6
  503. package/dist/schedule/store/jobs.d.ts.map +1 -1
  504. package/dist/schedule/store/script-state.d.ts +31 -0
  505. package/dist/schedule/store/script-state.d.ts.map +1 -0
  506. package/dist/schedule/store/state.d.ts +4 -2
  507. package/dist/schedule/store/state.d.ts.map +1 -1
  508. package/dist/schedule/types.d.ts +61 -16
  509. package/dist/schedule/types.d.ts.map +1 -1
  510. package/dist/skills/store.d.ts.map +1 -1
  511. package/dist/terminal/host.d.ts +22 -0
  512. package/dist/terminal/host.d.ts.map +1 -0
  513. package/dist/terminal/manager.d.ts +124 -0
  514. package/dist/terminal/manager.d.ts.map +1 -0
  515. package/dist/terminal/protocol.d.ts +162 -0
  516. package/dist/terminal/protocol.d.ts.map +1 -0
  517. package/dist/terminal/pty.d.ts +85 -0
  518. package/dist/terminal/pty.d.ts.map +1 -0
  519. package/dist/terminal/ring.d.ts +23 -0
  520. package/dist/terminal/ring.d.ts.map +1 -0
  521. package/dist/terminal/screen.d.ts +31 -0
  522. package/dist/terminal/screen.d.ts.map +1 -0
  523. package/dist/termination-state.d.ts +19 -0
  524. package/dist/termination-state.d.ts.map +1 -0
  525. package/dist/termination.d.ts +2 -9
  526. package/dist/termination.d.ts.map +1 -1
  527. package/dist/tui/AgentExplorer.d.ts +4 -1
  528. package/dist/tui/AgentExplorer.d.ts.map +1 -1
  529. package/dist/tui/App.d.ts.map +1 -1
  530. package/dist/tui/BackgroundJobsPanel.d.ts.map +1 -1
  531. package/dist/tui/BrandHeader.d.ts.map +1 -1
  532. package/dist/tui/ChildComposer.d.ts +22 -0
  533. package/dist/tui/ChildComposer.d.ts.map +1 -0
  534. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  535. package/dist/tui/Composer.d.ts +19 -3
  536. package/dist/tui/Composer.d.ts.map +1 -1
  537. package/dist/tui/ComposerFrame.d.ts.map +1 -1
  538. package/dist/tui/CopyPicker.d.ts.map +1 -1
  539. package/dist/tui/EditPromptPicker.d.ts.map +1 -1
  540. package/dist/tui/EffortSlider.d.ts.map +1 -1
  541. package/dist/tui/LiveActivity.d.ts +7 -1
  542. package/dist/tui/LiveActivity.d.ts.map +1 -1
  543. package/dist/tui/Markdown.d.ts.map +1 -1
  544. package/dist/tui/PendingInputPanel.d.ts.map +1 -1
  545. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  546. package/dist/tui/Picker.d.ts.map +1 -1
  547. package/dist/tui/ProviderSetup.d.ts.map +1 -1
  548. package/dist/tui/ResumePicker.d.ts.map +1 -1
  549. package/dist/tui/SaveSkillOverlay.d.ts.map +1 -1
  550. package/dist/tui/ScheduleReviewOverlay.d.ts +1 -1
  551. package/dist/tui/ScheduleReviewOverlay.d.ts.map +1 -1
  552. package/dist/tui/StatusBar.d.ts +7 -1
  553. package/dist/tui/StatusBar.d.ts.map +1 -1
  554. package/dist/tui/StatusPanel.d.ts.map +1 -1
  555. package/dist/tui/TextPrompt.d.ts.map +1 -1
  556. package/dist/tui/ToolOutputViewer.d.ts.map +1 -1
  557. package/dist/tui/Transcript.d.ts.map +1 -1
  558. package/dist/tui/TrustPrompt.d.ts +8 -0
  559. package/dist/tui/TrustPrompt.d.ts.map +1 -1
  560. package/dist/tui/agent.d.ts +125 -3
  561. package/dist/tui/agent.d.ts.map +1 -1
  562. package/dist/tui/browser-notices.d.ts.map +1 -1
  563. package/dist/tui/capability-notice.d.ts +38 -0
  564. package/dist/tui/capability-notice.d.ts.map +1 -0
  565. package/dist/tui/console-input.d.ts +31 -0
  566. package/dist/tui/console-input.d.ts.map +1 -0
  567. package/dist/tui/conversation-evidence-view.d.ts.map +1 -1
  568. package/dist/tui/credential-entry.d.ts.map +1 -1
  569. package/dist/tui/exit-summary.d.ts +9 -1
  570. package/dist/tui/exit-summary.d.ts.map +1 -1
  571. package/dist/tui/external-editor.d.ts.map +1 -1
  572. package/dist/tui/index.d.ts.map +1 -1
  573. package/dist/tui/key-hints.d.ts +51 -0
  574. package/dist/tui/key-hints.d.ts.map +1 -0
  575. package/dist/tui/launch-settings.d.ts +34 -0
  576. package/dist/tui/launch-settings.d.ts.map +1 -0
  577. package/dist/tui/log-pane.d.ts.map +1 -1
  578. package/dist/tui/model-choices.d.ts +39 -1
  579. package/dist/tui/model-choices.d.ts.map +1 -1
  580. package/dist/tui/model-search.d.ts +4 -1
  581. package/dist/tui/model-search.d.ts.map +1 -1
  582. package/dist/tui/output-size-watch.d.ts +32 -0
  583. package/dist/tui/output-size-watch.d.ts.map +1 -0
  584. package/dist/tui/permission-review.d.ts.map +1 -1
  585. package/dist/tui/person-terms.d.ts +58 -0
  586. package/dist/tui/person-terms.d.ts.map +1 -0
  587. package/dist/tui/plain-failure.d.ts +27 -0
  588. package/dist/tui/plain-failure.d.ts.map +1 -0
  589. package/dist/tui/plain-interruption.d.ts +46 -0
  590. package/dist/tui/plain-interruption.d.ts.map +1 -0
  591. package/dist/tui/provider-list.d.ts.map +1 -1
  592. package/dist/tui/render-mode.d.ts +19 -0
  593. package/dist/tui/render-mode.d.ts.map +1 -0
  594. package/dist/tui/schedule/host-commands.d.ts +2 -9
  595. package/dist/tui/schedule/host-commands.d.ts.map +1 -1
  596. package/dist/tui/schedule/integration.d.ts +8 -0
  597. package/dist/tui/schedule/integration.d.ts.map +1 -1
  598. package/dist/tui/schedule/source-deliveries.d.ts +37 -0
  599. package/dist/tui/schedule/source-deliveries.d.ts.map +1 -0
  600. package/dist/tui/schedule/startup.d.ts.map +1 -1
  601. package/dist/tui/schedule/tool-host.d.ts +3 -1
  602. package/dist/tui/schedule/tool-host.d.ts.map +1 -1
  603. package/dist/tui/setup-text.d.ts +14 -0
  604. package/dist/tui/setup-text.d.ts.map +1 -0
  605. package/dist/tui/shell-escape.d.ts.map +1 -1
  606. package/dist/tui/skills/suggest-setting.d.ts.map +1 -1
  607. package/dist/tui/slashCommands.d.ts +4 -1
  608. package/dist/tui/slashCommands.d.ts.map +1 -1
  609. package/dist/tui/terminal-choice-text.d.ts +7 -0
  610. package/dist/tui/terminal-choice-text.d.ts.map +1 -1
  611. package/dist/tui/tidy-tool-output.d.ts +83 -0
  612. package/dist/tui/tidy-tool-output.d.ts.map +1 -0
  613. package/dist/tui/tool-presentation.d.ts +6 -0
  614. package/dist/tui/tool-presentation.d.ts.map +1 -0
  615. package/dist/tui/triggers/copy.d.ts.map +1 -1
  616. package/dist/tui/triggers/setting.d.ts.map +1 -1
  617. package/dist/tui/turn-interruption.d.ts +1 -1
  618. package/dist/tui/turn-interruption.d.ts.map +1 -1
  619. package/dist/tui/turn-limits-settings.d.ts +4 -4
  620. package/dist/tui/turn-limits-settings.d.ts.map +1 -1
  621. package/dist/tui/types.d.ts +10 -0
  622. package/dist/tui/types.d.ts.map +1 -1
  623. package/dist/tui/web-activity.d.ts +3 -2
  624. package/dist/tui/web-activity.d.ts.map +1 -1
  625. package/dist/tui/zen-free-refusal.d.ts +17 -0
  626. package/dist/tui/zen-free-refusal.d.ts.map +1 -0
  627. package/dist/usage-error.d.ts +15 -0
  628. package/dist/usage-error.d.ts.map +1 -0
  629. package/dist/warning-filter.d.ts +30 -0
  630. package/dist/warning-filter.d.ts.map +1 -0
  631. package/package.json +21 -10
  632. package/skills/schedule-task/SKILL.md +74 -20
  633. package/dist/browser/commands.js +0 -365
  634. package/dist/browser/commands.js.map +0 -1
  635. package/dist/browser/control.js +0 -140
  636. package/dist/browser/control.js.map +0 -1
  637. package/dist/browser/describe.js +0 -27
  638. package/dist/browser/describe.js.map +0 -1
  639. package/dist/checkpoints/store.js +0 -192
  640. package/dist/checkpoints/store.js.map +0 -1
  641. package/dist/checkpoints/wrap.js +0 -37
  642. package/dist/checkpoints/wrap.js.map +0 -1
  643. package/dist/cli.js +0 -602
  644. package/dist/cli.js.map +0 -1
  645. package/dist/commands/acp.js +0 -388
  646. package/dist/commands/acp.js.map +0 -1
  647. package/dist/commands/archive.js +0 -65
  648. package/dist/commands/archive.js.map +0 -1
  649. package/dist/commands/browser.js +0 -16
  650. package/dist/commands/browser.js.map +0 -1
  651. package/dist/commands/doctor.js +0 -267
  652. package/dist/commands/doctor.js.map +0 -1
  653. package/dist/commands/drain.js +0 -498
  654. package/dist/commands/drain.js.map +0 -1
  655. package/dist/commands/eval.js +0 -237
  656. package/dist/commands/eval.js.map +0 -1
  657. package/dist/commands/exec-flags.js +0 -334
  658. package/dist/commands/exec-flags.js.map +0 -1
  659. package/dist/commands/exec-json.js +0 -497
  660. package/dist/commands/exec-json.js.map +0 -1
  661. package/dist/commands/exec.js +0 -688
  662. package/dist/commands/exec.js.map +0 -1
  663. package/dist/commands/host-queries.js +0 -156
  664. package/dist/commands/host-queries.js.map +0 -1
  665. package/dist/commands/login.js +0 -315
  666. package/dist/commands/login.js.map +0 -1
  667. package/dist/commands/mcp-oauth-login.js +0 -213
  668. package/dist/commands/mcp-oauth-login.js.map +0 -1
  669. package/dist/commands/mcp.js +0 -461
  670. package/dist/commands/mcp.js.map +0 -1
  671. package/dist/commands/prior-messages.js +0 -329
  672. package/dist/commands/prior-messages.js.map +0 -1
  673. package/dist/commands/provider-wait.js +0 -65
  674. package/dist/commands/provider-wait.js.map +0 -1
  675. package/dist/commands/registry.js +0 -40
  676. package/dist/commands/registry.js.map +0 -1
  677. package/dist/commands/resident-flags.js +0 -193
  678. package/dist/commands/resident-flags.js.map +0 -1
  679. package/dist/commands/resident-learning.js +0 -293
  680. package/dist/commands/resident-learning.js.map +0 -1
  681. package/dist/commands/resident.js +0 -419
  682. package/dist/commands/resident.js.map +0 -1
  683. package/dist/commands/resume.js +0 -109
  684. package/dist/commands/resume.js.map +0 -1
  685. package/dist/commands/schedule.js +0 -131
  686. package/dist/commands/schedule.js.map +0 -1
  687. package/dist/commands/serve.js +0 -21
  688. package/dist/commands/serve.js.map +0 -1
  689. package/dist/commands/skills.js +0 -178
  690. package/dist/commands/skills.js.map +0 -1
  691. package/dist/commands/state.js +0 -110
  692. package/dist/commands/state.js.map +0 -1
  693. package/dist/commands/stdin.js +0 -69
  694. package/dist/commands/stdin.js.map +0 -1
  695. package/dist/commands/types.js +0 -2
  696. package/dist/commands/types.js.map +0 -1
  697. package/dist/commands/upgrade-progress.js +0 -54
  698. package/dist/commands/upgrade-progress.js.map +0 -1
  699. package/dist/commands/upgrade.js +0 -232
  700. package/dist/commands/upgrade.js.map +0 -1
  701. package/dist/commands/worktree.js +0 -86
  702. package/dist/commands/worktree.js.map +0 -1
  703. package/dist/config/composer-triggers.js +0 -80
  704. package/dist/config/composer-triggers.js.map +0 -1
  705. package/dist/config/debug.js +0 -126
  706. package/dist/config/debug.js.map +0 -1
  707. package/dist/config/load.js +0 -1208
  708. package/dist/config/load.js.map +0 -1
  709. package/dist/config/schema.js +0 -13
  710. package/dist/config/schema.js.map +0 -1
  711. package/dist/config/tool-result-screens.js +0 -104
  712. package/dist/config/tool-result-screens.js.map +0 -1
  713. package/dist/config/trusted-project-context.js +0 -28
  714. package/dist/config/trusted-project-context.js.map +0 -1
  715. package/dist/config/turn-guards.js +0 -46
  716. package/dist/config/turn-guards.js.map +0 -1
  717. package/dist/config/user-config.js +0 -118
  718. package/dist/config/user-config.js.map +0 -1
  719. package/dist/context/capabilities.js +0 -164
  720. package/dist/context/capabilities.js.map +0 -1
  721. package/dist/context/directories.js +0 -69
  722. package/dist/context/directories.js.map +0 -1
  723. package/dist/context/doctrine.js +0 -24
  724. package/dist/context/doctrine.js.map +0 -1
  725. package/dist/context/environment.js +0 -255
  726. package/dist/context/environment.js.map +0 -1
  727. package/dist/context/project-path.js +0 -16
  728. package/dist/context/project-path.js.map +0 -1
  729. package/dist/context/project-tracker.js +0 -217
  730. package/dist/context/project-tracker.js.map +0 -1
  731. package/dist/context/project.js +0 -256
  732. package/dist/context/project.js.map +0 -1
  733. package/dist/context/runtime-message.js +0 -30
  734. package/dist/context/runtime-message.js.map +0 -1
  735. package/dist/context/sandbox.js +0 -114
  736. package/dist/context/sandbox.js.map +0 -1
  737. package/dist/context/turn-snapshot.js +0 -122
  738. package/dist/context/turn-snapshot.js.map +0 -1
  739. package/dist/doctor/checks/browser.js +0 -63
  740. package/dist/doctor/checks/browser.js.map +0 -1
  741. package/dist/doctor/checks/chain.js +0 -211
  742. package/dist/doctor/checks/chain.js.map +0 -1
  743. package/dist/doctor/checks/credentials.js +0 -98
  744. package/dist/doctor/checks/credentials.js.map +0 -1
  745. package/dist/doctor/checks/index.js +0 -72
  746. package/dist/doctor/checks/index.js.map +0 -1
  747. package/dist/doctor/checks/invariants.js +0 -79
  748. package/dist/doctor/checks/invariants.js.map +0 -1
  749. package/dist/doctor/checks/logging.js +0 -69
  750. package/dist/doctor/checks/logging.js.map +0 -1
  751. package/dist/doctor/checks/providers.js +0 -30
  752. package/dist/doctor/checks/providers.js.map +0 -1
  753. package/dist/doctor/checks/runtime.js +0 -40
  754. package/dist/doctor/checks/runtime.js.map +0 -1
  755. package/dist/doctor/checks/sandbox.js +0 -76
  756. package/dist/doctor/checks/sandbox.js.map +0 -1
  757. package/dist/doctor/checks/scheduler.js +0 -74
  758. package/dist/doctor/checks/scheduler.js.map +0 -1
  759. package/dist/doctor/checks/session-export.js +0 -62
  760. package/dist/doctor/checks/session-export.js.map +0 -1
  761. package/dist/doctor/checks/telemetry.js +0 -58
  762. package/dist/doctor/checks/telemetry.js.map +0 -1
  763. package/dist/doctor/checks/vault.js +0 -67
  764. package/dist/doctor/checks/vault.js.map +0 -1
  765. package/dist/doctor/index.js +0 -3
  766. package/dist/doctor/index.js.map +0 -1
  767. package/dist/doctor/registry.js +0 -230
  768. package/dist/doctor/registry.js.map +0 -1
  769. package/dist/exit-codes.js +0 -62
  770. package/dist/exit-codes.js.map +0 -1
  771. package/dist/installation.js +0 -48
  772. package/dist/installation.js.map +0 -1
  773. package/dist/integrations/clipboard/image.js +0 -119
  774. package/dist/integrations/clipboard/image.js.map +0 -1
  775. package/dist/integrations/clipboard/text.js +0 -43
  776. package/dist/integrations/clipboard/text.js.map +0 -1
  777. package/dist/integrations/files/attachment-store.js +0 -86
  778. package/dist/integrations/files/attachment-store.js.map +0 -1
  779. package/dist/integrations/mcp/oauth-store.js +0 -549
  780. package/dist/integrations/mcp/oauth-store.js.map +0 -1
  781. package/dist/integrations/mcp/servers.js +0 -611
  782. package/dist/integrations/mcp/servers.js.map +0 -1
  783. package/dist/integrations/mcp/user-config.js +0 -92
  784. package/dist/integrations/mcp/user-config.js.map +0 -1
  785. package/dist/integrations/notifications/desktop/freedesktop.js +0 -33
  786. package/dist/integrations/notifications/desktop/freedesktop.js.map +0 -1
  787. package/dist/integrations/notifications/desktop/macos.js +0 -17
  788. package/dist/integrations/notifications/desktop/macos.js.map +0 -1
  789. package/dist/integrations/notifications/desktop/sanitize.js +0 -49
  790. package/dist/integrations/notifications/desktop/sanitize.js.map +0 -1
  791. package/dist/integrations/notifications/desktop/throttle.js +0 -39
  792. package/dist/integrations/notifications/desktop/throttle.js.map +0 -1
  793. package/dist/integrations/notifications/desktop/windows-toast.js +0 -56
  794. package/dist/integrations/notifications/desktop/windows-toast.js.map +0 -1
  795. package/dist/integrations/notifications/desktop.js +0 -199
  796. package/dist/integrations/notifications/desktop.js.map +0 -1
  797. package/dist/integrations/notifications/terminal.js +0 -46
  798. package/dist/integrations/notifications/terminal.js.map +0 -1
  799. package/dist/integrations/npm-invocation.js +0 -23
  800. package/dist/integrations/npm-invocation.js.map +0 -1
  801. package/dist/integrations/plugins/runtime.js +0 -189
  802. package/dist/integrations/plugins/runtime.js.map +0 -1
  803. package/dist/integrations/plugins/settings.js +0 -106
  804. package/dist/integrations/plugins/settings.js.map +0 -1
  805. package/dist/integrations/providers/access.js +0 -23
  806. package/dist/integrations/providers/access.js.map +0 -1
  807. package/dist/integrations/providers/chain-capabilities.js +0 -211
  808. package/dist/integrations/providers/chain-capabilities.js.map +0 -1
  809. package/dist/integrations/providers/codex-device-login.js +0 -195
  810. package/dist/integrations/providers/codex-device-login.js.map +0 -1
  811. package/dist/integrations/providers/codex-oauth.js +0 -95
  812. package/dist/integrations/providers/codex-oauth.js.map +0 -1
  813. package/dist/integrations/providers/credential-provider.js +0 -74
  814. package/dist/integrations/providers/credential-provider.js.map +0 -1
  815. package/dist/integrations/providers/credential-store.js +0 -657
  816. package/dist/integrations/providers/credential-store.js.map +0 -1
  817. package/dist/integrations/providers/current-credential.js +0 -45
  818. package/dist/integrations/providers/current-credential.js.map +0 -1
  819. package/dist/integrations/providers/discover.js +0 -313
  820. package/dist/integrations/providers/discover.js.map +0 -1
  821. package/dist/integrations/providers/gemini-credentials.js +0 -148
  822. package/dist/integrations/providers/gemini-credentials.js.map +0 -1
  823. package/dist/integrations/providers/harness-credentials.js +0 -344
  824. package/dist/integrations/providers/harness-credentials.js.map +0 -1
  825. package/dist/integrations/providers/identity.js +0 -64
  826. package/dist/integrations/providers/identity.js.map +0 -1
  827. package/dist/integrations/providers/index.js +0 -14
  828. package/dist/integrations/providers/index.js.map +0 -1
  829. package/dist/integrations/providers/keychain.js +0 -78
  830. package/dist/integrations/providers/keychain.js.map +0 -1
  831. package/dist/integrations/providers/model-reasoning.js +0 -51
  832. package/dist/integrations/providers/model-reasoning.js.map +0 -1
  833. package/dist/integrations/providers/oauth.js +0 -302
  834. package/dist/integrations/providers/oauth.js.map +0 -1
  835. package/dist/integrations/providers/preferences.js +0 -287
  836. package/dist/integrations/providers/preferences.js.map +0 -1
  837. package/dist/integrations/providers/register.js +0 -154
  838. package/dist/integrations/providers/register.js.map +0 -1
  839. package/dist/integrations/providers/registry.js +0 -289
  840. package/dist/integrations/providers/registry.js.map +0 -1
  841. package/dist/integrations/providers/setup.js +0 -158
  842. package/dist/integrations/providers/setup.js.map +0 -1
  843. package/dist/integrations/providers/subscription-login.js +0 -328
  844. package/dist/integrations/providers/subscription-login.js.map +0 -1
  845. package/dist/integrations/providers/zen-catalogue.js +0 -196
  846. package/dist/integrations/providers/zen-catalogue.js.map +0 -1
  847. package/dist/integrations/resident/foreground.js +0 -95
  848. package/dist/integrations/resident/foreground.js.map +0 -1
  849. package/dist/integrations/resident/inspection.js +0 -282
  850. package/dist/integrations/resident/inspection.js.map +0 -1
  851. package/dist/integrations/resident/learning-sources.js +0 -79
  852. package/dist/integrations/resident/learning-sources.js.map +0 -1
  853. package/dist/integrations/resident/learning-storage.js +0 -55
  854. package/dist/integrations/resident/learning-storage.js.map +0 -1
  855. package/dist/integrations/resident/lifecycle-errors.js +0 -15
  856. package/dist/integrations/resident/lifecycle-errors.js.map +0 -1
  857. package/dist/integrations/resident/owned-runner.js +0 -91
  858. package/dist/integrations/resident/owned-runner.js.map +0 -1
  859. package/dist/integrations/resident/runner-control.js +0 -238
  860. package/dist/integrations/resident/runner-control.js.map +0 -1
  861. package/dist/integrations/resident/runner-launch.js +0 -142
  862. package/dist/integrations/resident/runner-launch.js.map +0 -1
  863. package/dist/integrations/resident/runner-store.js +0 -284
  864. package/dist/integrations/resident/runner-store.js.map +0 -1
  865. package/dist/integrations/resident/session-log-reads.js +0 -125
  866. package/dist/integrations/resident/session-log-reads.js.map +0 -1
  867. package/dist/integrations/resident/session-step.js +0 -476
  868. package/dist/integrations/resident/session-step.js.map +0 -1
  869. package/dist/integrations/resident/storage.js +0 -183
  870. package/dist/integrations/resident/storage.js.map +0 -1
  871. package/dist/integrations/resident/tool-evidence.js +0 -123
  872. package/dist/integrations/resident/tool-evidence.js.map +0 -1
  873. package/dist/integrations/resident/verification.js +0 -109
  874. package/dist/integrations/resident/verification.js.map +0 -1
  875. package/dist/integrations/sessions/checkpoint-view.js +0 -48
  876. package/dist/integrations/sessions/checkpoint-view.js.map +0 -1
  877. package/dist/integrations/sessions/context-inventory.js +0 -44
  878. package/dist/integrations/sessions/context-inventory.js.map +0 -1
  879. package/dist/integrations/sessions/conversation-search.js +0 -572
  880. package/dist/integrations/sessions/conversation-search.js.map +0 -1
  881. package/dist/integrations/sessions/display-title.js +0 -5
  882. package/dist/integrations/sessions/display-title.js.map +0 -1
  883. package/dist/integrations/sessions/evidence-page-validation.js +0 -74
  884. package/dist/integrations/sessions/evidence-page-validation.js.map +0 -1
  885. package/dist/integrations/sessions/evidence-recall.js +0 -117
  886. package/dist/integrations/sessions/evidence-recall.js.map +0 -1
  887. package/dist/integrations/sessions/store.js +0 -780
  888. package/dist/integrations/sessions/store.js.map +0 -1
  889. package/dist/integrations/sessions/task-context.js +0 -96
  890. package/dist/integrations/sessions/task-context.js.map +0 -1
  891. package/dist/integrations/sessions/transcript-export.js +0 -342
  892. package/dist/integrations/sessions/transcript-export.js.map +0 -1
  893. package/dist/integrations/state/home.js +0 -17
  894. package/dist/integrations/state/home.js.map +0 -1
  895. package/dist/integrations/state/identity.js +0 -49
  896. package/dist/integrations/state/identity.js.map +0 -1
  897. package/dist/integrations/state/immutable-json.js +0 -38
  898. package/dist/integrations/state/immutable-json.js.map +0 -1
  899. package/dist/integrations/state/private-directory.js +0 -43
  900. package/dist/integrations/state/private-directory.js.map +0 -1
  901. package/dist/integrations/state/project.js +0 -13
  902. package/dist/integrations/state/project.js.map +0 -1
  903. package/dist/integrations/state/report.js +0 -626
  904. package/dist/integrations/state/report.js.map +0 -1
  905. package/dist/integrations/state/retention.js +0 -18
  906. package/dist/integrations/state/retention.js.map +0 -1
  907. package/dist/integrations/subagents/NamzuCliAgent.js +0 -9
  908. package/dist/integrations/subagents/NamzuCliAgent.js.map +0 -1
  909. package/dist/integrations/subagents/activity.js +0 -759
  910. package/dist/integrations/subagents/activity.js.map +0 -1
  911. package/dist/integrations/subagents/batches.js +0 -172
  912. package/dist/integrations/subagents/batches.js.map +0 -1
  913. package/dist/integrations/subagents/definitions.js +0 -26
  914. package/dist/integrations/subagents/definitions.js.map +0 -1
  915. package/dist/integrations/subagents/model-effort.js +0 -12
  916. package/dist/integrations/subagents/model-effort.js.map +0 -1
  917. package/dist/integrations/subagents/parent.js +0 -47
  918. package/dist/integrations/subagents/parent.js.map +0 -1
  919. package/dist/integrations/subagents/policy.js +0 -3
  920. package/dist/integrations/subagents/policy.js.map +0 -1
  921. package/dist/integrations/subagents/replay.js +0 -295
  922. package/dist/integrations/subagents/replay.js.map +0 -1
  923. package/dist/integrations/subagents/runtime.js +0 -1317
  924. package/dist/integrations/subagents/runtime.js.map +0 -1
  925. package/dist/integrations/subagents/saved-agents.js +0 -102
  926. package/dist/integrations/subagents/saved-agents.js.map +0 -1
  927. package/dist/integrations/subagents/slash.js +0 -45
  928. package/dist/integrations/subagents/slash.js.map +0 -1
  929. package/dist/integrations/subagents/worktree-driver.js +0 -72
  930. package/dist/integrations/subagents/worktree-driver.js.map +0 -1
  931. package/dist/integrations/telemetry/session-export.js +0 -119
  932. package/dist/integrations/telemetry/session-export.js.map +0 -1
  933. package/dist/integrations/trust/store.js +0 -73
  934. package/dist/integrations/trust/store.js.map +0 -1
  935. package/dist/integrations/updates.js +0 -115
  936. package/dist/integrations/updates.js.map +0 -1
  937. package/dist/integrations/web/exa-search.js +0 -154
  938. package/dist/integrations/web/exa-search.js.map +0 -1
  939. package/dist/integrations/web/open-url.js +0 -73
  940. package/dist/integrations/web/open-url.js.map +0 -1
  941. package/dist/integrations/web/search.js +0 -68
  942. package/dist/integrations/web/search.js.map +0 -1
  943. package/dist/integrations/worktrees/managed.js +0 -231
  944. package/dist/integrations/worktrees/managed.js.map +0 -1
  945. package/dist/logging.js +0 -115
  946. package/dist/logging.js.map +0 -1
  947. package/dist/memory/io.js +0 -177
  948. package/dist/memory/io.js.map +0 -1
  949. package/dist/memory/presentation.js +0 -76
  950. package/dist/memory/presentation.js.map +0 -1
  951. package/dist/memory/store.js +0 -180
  952. package/dist/memory/store.js.map +0 -1
  953. package/dist/memory/typed.js +0 -336
  954. package/dist/memory/typed.js.map +0 -1
  955. package/dist/output/formatter.js +0 -16
  956. package/dist/output/formatter.js.map +0 -1
  957. package/dist/output/index.js +0 -22
  958. package/dist/output/index.js.map +0 -1
  959. package/dist/output/json.js +0 -51
  960. package/dist/output/json.js.map +0 -1
  961. package/dist/output/text.js +0 -50
  962. package/dist/output/text.js.map +0 -1
  963. package/dist/output/yaml.js +0 -26
  964. package/dist/output/yaml.js.map +0 -1
  965. package/dist/output-schema.js +0 -18
  966. package/dist/output-schema.js.map +0 -1
  967. package/dist/permissions/browser-sites.js +0 -270
  968. package/dist/permissions/browser-sites.js.map +0 -1
  969. package/dist/permissions/canonical-project.js +0 -13
  970. package/dist/permissions/canonical-project.js.map +0 -1
  971. package/dist/permissions/checks.js +0 -128
  972. package/dist/permissions/checks.js.map +0 -1
  973. package/dist/permissions/headless-trust.js +0 -86
  974. package/dist/permissions/headless-trust.js.map +0 -1
  975. package/dist/permissions/live-mode.js +0 -62
  976. package/dist/permissions/live-mode.js.map +0 -1
  977. package/dist/permissions/mode.js +0 -65
  978. package/dist/permissions/mode.js.map +0 -1
  979. package/dist/permissions/rules.js +0 -358
  980. package/dist/permissions/rules.js.map +0 -1
  981. package/dist/release-notes.js +0 -64
  982. package/dist/release-notes.js.map +0 -1
  983. package/dist/resume-invocation.js +0 -24
  984. package/dist/resume-invocation.js.map +0 -1
  985. package/dist/schedule/build.js +0 -374
  986. package/dist/schedule/build.js.map +0 -1
  987. package/dist/schedule/changes.js +0 -78
  988. package/dist/schedule/changes.js.map +0 -1
  989. package/dist/schedule/commands/add.js +0 -603
  990. package/dist/schedule/commands/add.js.map +0 -1
  991. package/dist/schedule/commands/args.js +0 -80
  992. package/dist/schedule/commands/args.js.map +0 -1
  993. package/dist/schedule/commands/confirm-prompt.js +0 -21
  994. package/dist/schedule/commands/confirm-prompt.js.map +0 -1
  995. package/dist/schedule/commands/lifecycle.js +0 -586
  996. package/dist/schedule/commands/lifecycle.js.map +0 -1
  997. package/dist/schedule/commands/list.js +0 -260
  998. package/dist/schedule/commands/list.js.map +0 -1
  999. package/dist/schedule/commands/logs.js +0 -106
  1000. package/dist/schedule/commands/logs.js.map +0 -1
  1001. package/dist/schedule/commands/service.js +0 -458
  1002. package/dist/schedule/commands/service.js.map +0 -1
  1003. package/dist/schedule/daemon/daemon.js +0 -1265
  1004. package/dist/schedule/daemon/daemon.js.map +0 -1
  1005. package/dist/schedule/daemon/endpoint.js +0 -158
  1006. package/dist/schedule/daemon/endpoint.js.map +0 -1
  1007. package/dist/schedule/daemon/exit.js +0 -8
  1008. package/dist/schedule/daemon/exit.js.map +0 -1
  1009. package/dist/schedule/daemon/log.js +0 -53
  1010. package/dist/schedule/daemon/log.js.map +0 -1
  1011. package/dist/schedule/daemon/notify.js +0 -158
  1012. package/dist/schedule/daemon/notify.js.map +0 -1
  1013. package/dist/schedule/daemon/retention.js +0 -46
  1014. package/dist/schedule/daemon/retention.js.map +0 -1
  1015. package/dist/schedule/daemon/sessions.js +0 -52
  1016. package/dist/schedule/daemon/sessions.js.map +0 -1
  1017. package/dist/schedule/env.js +0 -106
  1018. package/dist/schedule/env.js.map +0 -1
  1019. package/dist/schedule/fire/browser-preflight.js +0 -73
  1020. package/dist/schedule/fire/browser-preflight.js.map +0 -1
  1021. package/dist/schedule/fire/calls.js +0 -114
  1022. package/dist/schedule/fire/calls.js.map +0 -1
  1023. package/dist/schedule/fire/fire.js +0 -681
  1024. package/dist/schedule/fire/fire.js.map +0 -1
  1025. package/dist/schedule/fire/result.js +0 -19
  1026. package/dist/schedule/fire/result.js.map +0 -1
  1027. package/dist/schedule/fire/run-script.js +0 -81
  1028. package/dist/schedule/fire/run-script.js.map +0 -1
  1029. package/dist/schedule/fire/unattended-note.js +0 -51
  1030. package/dist/schedule/fire/unattended-note.js.map +0 -1
  1031. package/dist/schedule/fire/wake-gate.js +0 -90
  1032. package/dist/schedule/fire/wake-gate.js.map +0 -1
  1033. package/dist/schedule/floor.js +0 -1561
  1034. package/dist/schedule/floor.js.map +0 -1
  1035. package/dist/schedule/folder.js +0 -84
  1036. package/dist/schedule/folder.js.map +0 -1
  1037. package/dist/schedule/paths.js +0 -53
  1038. package/dist/schedule/paths.js.map +0 -1
  1039. package/dist/schedule/policy.js +0 -414
  1040. package/dist/schedule/policy.js.map +0 -1
  1041. package/dist/schedule/resume-command.js +0 -72
  1042. package/dist/schedule/resume-command.js.map +0 -1
  1043. package/dist/schedule/script-check.js +0 -146
  1044. package/dist/schedule/script-check.js.map +0 -1
  1045. package/dist/schedule/script-shell.js +0 -5
  1046. package/dist/schedule/script-shell.js.map +0 -1
  1047. package/dist/schedule/service/detect.js +0 -29
  1048. package/dist/schedule/service/detect.js.map +0 -1
  1049. package/dist/schedule/service/index.js +0 -361
  1050. package/dist/schedule/service/index.js.map +0 -1
  1051. package/dist/schedule/service/launchd.js +0 -84
  1052. package/dist/schedule/service/launchd.js.map +0 -1
  1053. package/dist/schedule/service/manifest.js +0 -16
  1054. package/dist/schedule/service/manifest.js.map +0 -1
  1055. package/dist/schedule/service/names.js +0 -22
  1056. package/dist/schedule/service/names.js.map +0 -1
  1057. package/dist/schedule/service/quote.js +0 -64
  1058. package/dist/schedule/service/quote.js.map +0 -1
  1059. package/dist/schedule/service/runner.js +0 -31
  1060. package/dist/schedule/service/runner.js.map +0 -1
  1061. package/dist/schedule/service/systemd.js +0 -96
  1062. package/dist/schedule/service/systemd.js.map +0 -1
  1063. package/dist/schedule/service/windows-task.js +0 -199
  1064. package/dist/schedule/service/windows-task.js.map +0 -1
  1065. package/dist/schedule/service/wsl.js +0 -121
  1066. package/dist/schedule/service/wsl.js.map +0 -1
  1067. package/dist/schedule/store/atomic.js +0 -138
  1068. package/dist/schedule/store/atomic.js.map +0 -1
  1069. package/dist/schedule/store/claims.js +0 -57
  1070. package/dist/schedule/store/claims.js.map +0 -1
  1071. package/dist/schedule/store/digest.js +0 -139
  1072. package/dist/schedule/store/digest.js.map +0 -1
  1073. package/dist/schedule/store/history.js +0 -117
  1074. package/dist/schedule/store/history.js.map +0 -1
  1075. package/dist/schedule/store/jobs.js +0 -277
  1076. package/dist/schedule/store/jobs.js.map +0 -1
  1077. package/dist/schedule/store/state.js +0 -38
  1078. package/dist/schedule/store/state.js.map +0 -1
  1079. package/dist/schedule/types.js +0 -33
  1080. package/dist/schedule/types.js.map +0 -1
  1081. package/dist/schedule/visible-source.js +0 -59
  1082. package/dist/schedule/visible-source.js.map +0 -1
  1083. package/dist/skills/audit.js +0 -75
  1084. package/dist/skills/audit.js.map +0 -1
  1085. package/dist/skills/catalog.js +0 -226
  1086. package/dist/skills/catalog.js.map +0 -1
  1087. package/dist/skills/directory.js +0 -51
  1088. package/dist/skills/directory.js.map +0 -1
  1089. package/dist/skills/save.js +0 -344
  1090. package/dist/skills/save.js.map +0 -1
  1091. package/dist/skills/store.js +0 -351
  1092. package/dist/skills/store.js.map +0 -1
  1093. package/dist/termination.js +0 -143
  1094. package/dist/termination.js.map +0 -1
  1095. package/dist/test-support/toolset.js +0 -27
  1096. package/dist/test-support/toolset.js.map +0 -1
  1097. package/dist/tui/AgentExplorer.js +0 -789
  1098. package/dist/tui/AgentExplorer.js.map +0 -1
  1099. package/dist/tui/App.js +0 -8499
  1100. package/dist/tui/App.js.map +0 -1
  1101. package/dist/tui/BackgroundJobsPanel.js +0 -129
  1102. package/dist/tui/BackgroundJobsPanel.js.map +0 -1
  1103. package/dist/tui/BrandHeader.js +0 -14
  1104. package/dist/tui/BrandHeader.js.map +0 -1
  1105. package/dist/tui/Checklist.js +0 -90
  1106. package/dist/tui/Checklist.js.map +0 -1
  1107. package/dist/tui/ChoicePicker.js +0 -64
  1108. package/dist/tui/ChoicePicker.js.map +0 -1
  1109. package/dist/tui/Composer.js +0 -939
  1110. package/dist/tui/Composer.js.map +0 -1
  1111. package/dist/tui/ComposerFrame.js +0 -79
  1112. package/dist/tui/ComposerFrame.js.map +0 -1
  1113. package/dist/tui/CopyPicker.js +0 -19
  1114. package/dist/tui/CopyPicker.js.map +0 -1
  1115. package/dist/tui/EditPromptPicker.js +0 -17
  1116. package/dist/tui/EditPromptPicker.js.map +0 -1
  1117. package/dist/tui/EffortSlider.js +0 -134
  1118. package/dist/tui/EffortSlider.js.map +0 -1
  1119. package/dist/tui/LiveActivity.js +0 -89
  1120. package/dist/tui/LiveActivity.js.map +0 -1
  1121. package/dist/tui/Markdown.js +0 -137
  1122. package/dist/tui/Markdown.js.map +0 -1
  1123. package/dist/tui/PendingInputPanel.js +0 -108
  1124. package/dist/tui/PendingInputPanel.js.map +0 -1
  1125. package/dist/tui/PermissionOverlay.js +0 -278
  1126. package/dist/tui/PermissionOverlay.js.map +0 -1
  1127. package/dist/tui/Picker.js +0 -1310
  1128. package/dist/tui/Picker.js.map +0 -1
  1129. package/dist/tui/ProviderSetup.js +0 -125
  1130. package/dist/tui/ProviderSetup.js.map +0 -1
  1131. package/dist/tui/ResumePicker.js +0 -34
  1132. package/dist/tui/ResumePicker.js.map +0 -1
  1133. package/dist/tui/SaveSkillOverlay.js +0 -118
  1134. package/dist/tui/SaveSkillOverlay.js.map +0 -1
  1135. package/dist/tui/ScheduleReviewOverlay.js +0 -166
  1136. package/dist/tui/ScheduleReviewOverlay.js.map +0 -1
  1137. package/dist/tui/StatusBar.js +0 -182
  1138. package/dist/tui/StatusBar.js.map +0 -1
  1139. package/dist/tui/StatusPanel.js +0 -11
  1140. package/dist/tui/StatusPanel.js.map +0 -1
  1141. package/dist/tui/TaskList.js +0 -43
  1142. package/dist/tui/TaskList.js.map +0 -1
  1143. package/dist/tui/TextPrompt.js +0 -185
  1144. package/dist/tui/TextPrompt.js.map +0 -1
  1145. package/dist/tui/ToolOutputViewer.js +0 -39
  1146. package/dist/tui/ToolOutputViewer.js.map +0 -1
  1147. package/dist/tui/Transcript.js +0 -235
  1148. package/dist/tui/Transcript.js.map +0 -1
  1149. package/dist/tui/TrustPrompt.js +0 -13
  1150. package/dist/tui/TrustPrompt.js.map +0 -1
  1151. package/dist/tui/ViewportBound.js +0 -55
  1152. package/dist/tui/ViewportBound.js.map +0 -1
  1153. package/dist/tui/agent-transcript-rows.js +0 -115
  1154. package/dist/tui/agent-transcript-rows.js.map +0 -1
  1155. package/dist/tui/agent.js +0 -4301
  1156. package/dist/tui/agent.js.map +0 -1
  1157. package/dist/tui/browser-notices.js +0 -107
  1158. package/dist/tui/browser-notices.js.map +0 -1
  1159. package/dist/tui/choice-selection.js +0 -38
  1160. package/dist/tui/choice-selection.js.map +0 -1
  1161. package/dist/tui/compact-transcript.js +0 -46
  1162. package/dist/tui/compact-transcript.js.map +0 -1
  1163. package/dist/tui/consent-timing.js +0 -48
  1164. package/dist/tui/consent-timing.js.map +0 -1
  1165. package/dist/tui/conversation-evidence-view.js +0 -96
  1166. package/dist/tui/conversation-evidence-view.js.map +0 -1
  1167. package/dist/tui/conversation-history.js +0 -33
  1168. package/dist/tui/conversation-history.js.map +0 -1
  1169. package/dist/tui/copy-targets.js +0 -189
  1170. package/dist/tui/copy-targets.js.map +0 -1
  1171. package/dist/tui/credential-entry.js +0 -134
  1172. package/dist/tui/credential-entry.js.map +0 -1
  1173. package/dist/tui/edit-prompts.js +0 -35
  1174. package/dist/tui/edit-prompts.js.map +0 -1
  1175. package/dist/tui/exit-summary.js +0 -30
  1176. package/dist/tui/exit-summary.js.map +0 -1
  1177. package/dist/tui/external-editor.js +0 -169
  1178. package/dist/tui/external-editor.js.map +0 -1
  1179. package/dist/tui/hypermode.js +0 -58
  1180. package/dist/tui/hypermode.js.map +0 -1
  1181. package/dist/tui/index.js +0 -81
  1182. package/dist/tui/index.js.map +0 -1
  1183. package/dist/tui/live-window.js +0 -281
  1184. package/dist/tui/live-window.js.map +0 -1
  1185. package/dist/tui/log-pane.js +0 -100
  1186. package/dist/tui/log-pane.js.map +0 -1
  1187. package/dist/tui/login-prompt.js +0 -105
  1188. package/dist/tui/login-prompt.js.map +0 -1
  1189. package/dist/tui/logo.js +0 -9
  1190. package/dist/tui/logo.js.map +0 -1
  1191. package/dist/tui/markdown-block-cache.js +0 -76
  1192. package/dist/tui/markdown-block-cache.js.map +0 -1
  1193. package/dist/tui/markdown-table.js +0 -175
  1194. package/dist/tui/markdown-table.js.map +0 -1
  1195. package/dist/tui/markdown-wrap.js +0 -189
  1196. package/dist/tui/markdown-wrap.js.map +0 -1
  1197. package/dist/tui/markdownParser.js +0 -237
  1198. package/dist/tui/markdownParser.js.map +0 -1
  1199. package/dist/tui/mentions.js +0 -150
  1200. package/dist/tui/mentions.js.map +0 -1
  1201. package/dist/tui/model-catalogue-view.js +0 -75
  1202. package/dist/tui/model-catalogue-view.js.map +0 -1
  1203. package/dist/tui/model-choices.js +0 -157
  1204. package/dist/tui/model-choices.js.map +0 -1
  1205. package/dist/tui/model-search.js +0 -28
  1206. package/dist/tui/model-search.js.map +0 -1
  1207. package/dist/tui/model-selection-intent.js +0 -96
  1208. package/dist/tui/model-selection-intent.js.map +0 -1
  1209. package/dist/tui/model-switch-tool.js +0 -74
  1210. package/dist/tui/model-switch-tool.js.map +0 -1
  1211. package/dist/tui/model-switch.js +0 -106
  1212. package/dist/tui/model-switch.js.map +0 -1
  1213. package/dist/tui/notices.js +0 -27
  1214. package/dist/tui/notices.js.map +0 -1
  1215. package/dist/tui/open-browser.js +0 -147
  1216. package/dist/tui/open-browser.js.map +0 -1
  1217. package/dist/tui/permission-review.js +0 -858
  1218. package/dist/tui/permission-review.js.map +0 -1
  1219. package/dist/tui/plugin-view.js +0 -59
  1220. package/dist/tui/plugin-view.js.map +0 -1
  1221. package/dist/tui/provider-list.js +0 -327
  1222. package/dist/tui/provider-list.js.map +0 -1
  1223. package/dist/tui/provider-selection.js +0 -16
  1224. package/dist/tui/provider-selection.js.map +0 -1
  1225. package/dist/tui/schedule/host-commands.js +0 -428
  1226. package/dist/tui/schedule/host-commands.js.map +0 -1
  1227. package/dist/tui/schedule/integration.js +0 -150
  1228. package/dist/tui/schedule/integration.js.map +0 -1
  1229. package/dist/tui/schedule/loop-host.js +0 -153
  1230. package/dist/tui/schedule/loop-host.js.map +0 -1
  1231. package/dist/tui/schedule/resume.js +0 -333
  1232. package/dist/tui/schedule/resume.js.map +0 -1
  1233. package/dist/tui/schedule/startup.js +0 -121
  1234. package/dist/tui/schedule/startup.js.map +0 -1
  1235. package/dist/tui/schedule/tool-host.js +0 -619
  1236. package/dist/tui/schedule/tool-host.js.map +0 -1
  1237. package/dist/tui/selection-window.js +0 -37
  1238. package/dist/tui/selection-window.js.map +0 -1
  1239. package/dist/tui/shell-escape.js +0 -110
  1240. package/dist/tui/shell-escape.js.map +0 -1
  1241. package/dist/tui/skills/learning.js +0 -131
  1242. package/dist/tui/skills/learning.js.map +0 -1
  1243. package/dist/tui/skills/suggest-setting.js +0 -55
  1244. package/dist/tui/skills/suggest-setting.js.map +0 -1
  1245. package/dist/tui/skills/suggestion-ledger.js +0 -52
  1246. package/dist/tui/skills/suggestion-ledger.js.map +0 -1
  1247. package/dist/tui/slashCommands.js +0 -1588
  1248. package/dist/tui/slashCommands.js.map +0 -1
  1249. package/dist/tui/status-card.js +0 -30
  1250. package/dist/tui/status-card.js.map +0 -1
  1251. package/dist/tui/status-panel-layout.js +0 -42
  1252. package/dist/tui/status-panel-layout.js.map +0 -1
  1253. package/dist/tui/stream-blocks.js +0 -187
  1254. package/dist/tui/stream-blocks.js.map +0 -1
  1255. package/dist/tui/task-activity.js +0 -157
  1256. package/dist/tui/task-activity.js.map +0 -1
  1257. package/dist/tui/terminal-choice-text.js +0 -118
  1258. package/dist/tui/terminal-choice-text.js.map +0 -1
  1259. package/dist/tui/terminal-display.js +0 -65
  1260. package/dist/tui/terminal-display.js.map +0 -1
  1261. package/dist/tui/terminal-hyperlinks.js +0 -70
  1262. package/dist/tui/terminal-hyperlinks.js.map +0 -1
  1263. package/dist/tui/theme.js +0 -34
  1264. package/dist/tui/theme.js.map +0 -1
  1265. package/dist/tui/triggers/analyze.js +0 -221
  1266. package/dist/tui/triggers/analyze.js.map +0 -1
  1267. package/dist/tui/triggers/context-text.js +0 -44
  1268. package/dist/tui/triggers/context-text.js.map +0 -1
  1269. package/dist/tui/triggers/copy.js +0 -163
  1270. package/dist/tui/triggers/copy.js.map +0 -1
  1271. package/dist/tui/triggers/detect.js +0 -295
  1272. package/dist/tui/triggers/detect.js.map +0 -1
  1273. package/dist/tui/triggers/fold.js +0 -44
  1274. package/dist/tui/triggers/fold.js.map +0 -1
  1275. package/dist/tui/triggers/pattern.js +0 -243
  1276. package/dist/tui/triggers/pattern.js.map +0 -1
  1277. package/dist/tui/triggers/provenance.js +0 -98
  1278. package/dist/tui/triggers/provenance.js.map +0 -1
  1279. package/dist/tui/triggers/registry.js +0 -164
  1280. package/dist/tui/triggers/registry.js.map +0 -1
  1281. package/dist/tui/triggers/setting.js +0 -61
  1282. package/dist/tui/triggers/setting.js.map +0 -1
  1283. package/dist/tui/triggers/verbs.js +0 -140
  1284. package/dist/tui/triggers/verbs.js.map +0 -1
  1285. package/dist/tui/turn-interruption.js +0 -160
  1286. package/dist/tui/turn-interruption.js.map +0 -1
  1287. package/dist/tui/turn-limits-settings.js +0 -88
  1288. package/dist/tui/turn-limits-settings.js.map +0 -1
  1289. package/dist/tui/types.js +0 -7
  1290. package/dist/tui/types.js.map +0 -1
  1291. package/dist/tui/units.js +0 -20
  1292. package/dist/tui/units.js.map +0 -1
  1293. package/dist/tui/use-selection-index.js +0 -13
  1294. package/dist/tui/use-selection-index.js.map +0 -1
  1295. package/dist/tui/web-activity.js +0 -105
  1296. package/dist/tui/web-activity.js.map +0 -1
  1297. package/dist/tui/workspace-diff.js +0 -101
  1298. package/dist/tui/workspace-diff.js.map +0 -1
  1299. package/dist/tui/workspace-review.js +0 -67
  1300. package/dist/tui/workspace-review.js.map +0 -1
  1301. package/dist/user-commands/store.js +0 -235
  1302. package/dist/user-commands/store.js.map +0 -1
  1303. package/dist/version.js +0 -23
  1304. package/dist/version.js.map +0 -1
@@ -1,939 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text, useInput, usePaste, useWindowSize } from 'ink';
3
- import { useCallback, useEffect, useRef, useState } from 'react';
4
- import { readClipboardImage } from '../integrations/clipboard/image.js';
5
- import { activeFileMention, matchMentionableFiles } from './mentions.js';
6
- import { parseModelSelectionIntent } from './model-selection-intent.js';
7
- import { matchSlashCommands } from './slashCommands.js';
8
- import { terminalDisplayText } from './terminal-display.js';
9
- import { theme } from './theme.js';
10
- import { tagRow } from './triggers/copy.js';
11
- import { EMPTY_DETECTION, detectTriggers, } from './triggers/detect.js';
12
- import { applyEdit, diffEdit, overrideMap, replaceAll, shiftOverrides, } from './triggers/provenance.js';
13
- const MIN_SUGGESTIONS = 6;
14
- const MAX_SUGGESTIONS = 12;
15
- const SUGGESTION_FURNITURE_ROWS = 12;
16
- // A bracketed paste longer than this (with no newline) is held as a chip rather than typed in.
17
- const PASTE_THRESHOLD = 80;
18
- // A recalled or branch-restored prompt can be much larger than anything the
19
- // operator typed one key at a time. Keep the exact source in state, but never
20
- // hand an unbounded string to Ink's wrapping engine. The bounded view follows
21
- // the real cursor rather than assuming every edit happens at the end.
22
- const COMPOSER_DISPLAY_CODE_UNITS = 2048;
23
- const COMPOSER_DISPLAY_LINES = 8;
24
- const graphemeSegmenter = new Intl.Segmenter(undefined, {
25
- granularity: 'grapheme',
26
- });
27
- /**
28
- * `source[from, to)` cut at trigger words, each piece made terminal-safe on
29
- * its own. Escaping after cutting, never before, is what keeps the highlight
30
- * on the right cells: `terminalDisplayText` turns one unsafe code point into
31
- * several characters, and offsets into the source would miss them.
32
- */
33
- function displaySegments(source, from, to, styled) {
34
- const segments = [];
35
- let at = from;
36
- for (const span of styled) {
37
- const start = Math.max(from, span.start);
38
- const end = Math.min(to, span.end);
39
- if (end <= start || start < at)
40
- continue;
41
- if (start > at)
42
- segments.push({ text: terminalDisplayText(source.slice(at, start)) });
43
- segments.push({ text: terminalDisplayText(source.slice(start, end)), style: span.style });
44
- at = end;
45
- }
46
- if (to > at)
47
- segments.push({ text: terminalDisplayText(source.slice(at, to)) });
48
- return segments;
49
- }
50
- function renderSegments(segments) {
51
- return segments.map((segment, index) => segment.style ? (_jsx(Text
52
- // biome-ignore lint/suspicious/noArrayIndexKey: segments of one draft, in order.
53
- , { color: segment.style === 'armed' ? theme.accent.trigger : theme.status.warn, bold: segment.style === 'armed', underline: segment.style === 'armed', children: segment.text }, index)) : (segment.text));
54
- }
55
- /**
56
- * Visible rows in a completion menu for this terminal height.
57
- *
58
- * Each option is budgeted as two rows because a description may wrap. The
59
- * composer, borders, footer and status area retain twelve rows before the
60
- * menu grows. A short/unknown terminal keeps the established six-row window;
61
- * a tall terminal uses the space it actually has, capped so the menu never
62
- * takes over the whole conversation view.
63
- */
64
- export function suggestionWindowSize(rows) {
65
- if (rows === undefined || !Number.isFinite(rows))
66
- return MIN_SUGGESTIONS;
67
- return Math.min(MAX_SUGGESTIONS, Math.max(MIN_SUGGESTIONS, Math.floor((rows - SUGGESTION_FURNITURE_ROWS) / 2)));
68
- }
69
- function graphemeBoundaries(source) {
70
- const boundaries = [0];
71
- for (const segment of graphemeSegmenter.segment(source)) {
72
- const end = segment.index + segment.segment.length;
73
- if (end > (boundaries[boundaries.length - 1] ?? -1))
74
- boundaries.push(end);
75
- }
76
- return boundaries;
77
- }
78
- function previousGraphemeBoundary(source, cursor) {
79
- let previous = 0;
80
- for (const boundary of graphemeBoundaries(source)) {
81
- if (boundary >= cursor)
82
- break;
83
- previous = boundary;
84
- }
85
- return previous;
86
- }
87
- function nextGraphemeBoundary(source, cursor) {
88
- for (const boundary of graphemeBoundaries(source)) {
89
- if (boundary > cursor)
90
- return boundary;
91
- }
92
- return source.length;
93
- }
94
- function lineStart(source, cursor) {
95
- return cursor <= 0 ? 0 : source.lastIndexOf('\n', cursor - 1) + 1;
96
- }
97
- function lineEnd(source, cursor) {
98
- const newline = source.indexOf('\n', cursor);
99
- return newline < 0 ? source.length : newline;
100
- }
101
- function graphemeColumn(source, start, cursor) {
102
- let column = 0;
103
- for (const _segment of graphemeSegmenter.segment(source.slice(start, cursor)))
104
- column += 1;
105
- return column;
106
- }
107
- function cursorAtGraphemeColumn(source, start, end, column) {
108
- let current = 0;
109
- for (const segment of graphemeSegmenter.segment(source.slice(start, end))) {
110
- if (current === column)
111
- return start + segment.index;
112
- current += 1;
113
- }
114
- return end;
115
- }
116
- function verticalCursor(source, cursor, direction, preferredColumn) {
117
- const currentStart = lineStart(source, cursor);
118
- const currentEnd = lineEnd(source, cursor);
119
- const column = preferredColumn ?? graphemeColumn(source, currentStart, cursor);
120
- if (direction === -1) {
121
- if (currentStart === 0)
122
- return null;
123
- const previousEnd = currentStart - 1;
124
- const previousStart = lineStart(source, previousEnd);
125
- return {
126
- cursor: cursorAtGraphemeColumn(source, previousStart, previousEnd, column),
127
- column,
128
- };
129
- }
130
- if (currentEnd === source.length)
131
- return null;
132
- const nextStart = currentEnd + 1;
133
- return {
134
- cursor: cursorAtGraphemeColumn(source, nextStart, lineEnd(source, nextStart), column),
135
- column,
136
- };
137
- }
138
- function composerDisplayValue(source, cursor) {
139
- let start = Math.max(0, cursor - Math.floor(COMPOSER_DISPLAY_CODE_UNITS / 2));
140
- let end = Math.min(source.length, start + COMPOSER_DISPLAY_CODE_UNITS);
141
- if (end === source.length)
142
- start = Math.max(0, end - COMPOSER_DISPLAY_CODE_UNITS);
143
- if (cursor > end) {
144
- end = cursor;
145
- start = Math.max(0, end - COMPOSER_DISPLAY_CODE_UNITS);
146
- }
147
- let afterBreaks = 0;
148
- for (let index = cursor; index < end; index += 1) {
149
- if (source.charCodeAt(index) !== 0x0a)
150
- continue;
151
- afterBreaks += 1;
152
- if (afterBreaks === Math.min(3, COMPOSER_DISPLAY_LINES - 1)) {
153
- end = index;
154
- break;
155
- }
156
- }
157
- let beforeBreaks = 0;
158
- const beforeBudget = COMPOSER_DISPLAY_LINES - afterBreaks;
159
- for (let index = cursor - 1; index >= start; index -= 1) {
160
- if (source.charCodeAt(index) !== 0x0a)
161
- continue;
162
- beforeBreaks += 1;
163
- if (beforeBreaks === beforeBudget) {
164
- start = index + 1;
165
- break;
166
- }
167
- }
168
- // Only the view is rounded to complete grapheme boundaries. The exact source
169
- // remains untouched even when the cap lands inside a combining sequence.
170
- const boundaries = graphemeBoundaries(source);
171
- start = boundaries.find((boundary) => boundary >= start) ?? source.length;
172
- end = [...boundaries].reverse().find((boundary) => boundary <= end) ?? 0;
173
- return {
174
- before: terminalDisplayText(source.slice(start, cursor)),
175
- after: terminalDisplayText(source.slice(cursor, end)),
176
- leadingEllipsis: start > 0,
177
- trailingEllipsis: end < source.length,
178
- start,
179
- end,
180
- };
181
- }
182
- /**
183
- * Terminal Ctrl+W / Unix word-rubout semantics.
184
- *
185
- * Punctuation is part of the word: `hello-world` disappears as one unit. The
186
- * boundary is whitespace, matching the reference composer and the shell habit
187
- * operators already bring to this key.
188
- */
189
- export function deletePreviousWord(source) {
190
- return deletePreviousWordAt(source, source.length).value;
191
- }
192
- function previousWordBoundary(source, cursor) {
193
- let start = cursor;
194
- while (start > 0) {
195
- const previous = previousGraphemeBoundary(source, start);
196
- if (!/\s/u.test(source.slice(previous, start)))
197
- break;
198
- start = previous;
199
- }
200
- while (start > 0) {
201
- const previous = previousGraphemeBoundary(source, start);
202
- if (/\s/u.test(source.slice(previous, start)))
203
- break;
204
- start = previous;
205
- }
206
- return start;
207
- }
208
- function nextWordBoundary(source, cursor) {
209
- let end = cursor;
210
- while (end < source.length) {
211
- const next = nextGraphemeBoundary(source, end);
212
- if (!/\s/u.test(source.slice(end, next)))
213
- break;
214
- end = next;
215
- }
216
- while (end < source.length) {
217
- const next = nextGraphemeBoundary(source, end);
218
- if (/\s/u.test(source.slice(end, next)))
219
- break;
220
- end = next;
221
- }
222
- return end;
223
- }
224
- function deletePreviousWordAt(source, cursor) {
225
- const start = previousWordBoundary(source, cursor);
226
- return {
227
- value: source.slice(0, start) + source.slice(cursor),
228
- cursor: start,
229
- };
230
- }
231
- function deleteNextWordAt(source, cursor) {
232
- const end = nextWordBoundary(source, cursor);
233
- return { value: source.slice(0, cursor) + source.slice(end), cursor };
234
- }
235
- export function Composer({ disabled = false, reasoningEffortLevels, onSubmit, history, userCommands = [], builtins, mentionCandidates = [], hidden = false, escapeInterrupts = false, onNotice, onStepReasoningEffort, onExternalEdit, onEditPrevious, draftToRestore = null, onDraftRestored, onDraftPresenceChange, onOpenAgentPanel, onRecallQueued, onCycleMode, triggers, turnActive = false, }) {
236
- const terminal = useWindowSize();
237
- const [value, setValueState] = useState('');
238
- const valueRef = useRef('');
239
- const [cursor, setCursorState] = useState(0);
240
- const cursorRef = useRef(0);
241
- const [, setHistoryIndexState] = useState(-1);
242
- const historyIndexRef = useRef(-1);
243
- const historyDraftRef = useRef(null);
244
- // Characters of the draft not typed here, and Alt+W decisions. Refs, so
245
- // submit reads what the last key left; `triggerVersion` re-renders when
246
- // only an Alt+W decision changed.
247
- const spansRef = useRef([]);
248
- const overridesRef = useRef([]);
249
- const [triggerVersion, setTriggerVersion] = useState(0);
250
- const [historySearch, setHistorySearchState] = useState(null);
251
- const historySearchRef = useRef(null);
252
- const verticalColumnRef = useRef(null);
253
- const killBufferRef = useRef('');
254
- const [selected, setSelected] = useState(0);
255
- const selectedRef = useRef(0);
256
- // Large pastes are held as attachments (shown as chips) instead of being
257
- // dumped into the input, then folded into the message on submit.
258
- const [pastes, setPastes] = useState([]);
259
- const pastesRef = useRef([]);
260
- const replacePastes = useCallback((next) => {
261
- const resolved = typeof next === 'function' ? next(pastesRef.current) : next;
262
- pastesRef.current = resolved;
263
- setPastes(resolved);
264
- }, []);
265
- // Pasted images and restored durable attachments, shown as chips and sent
266
- // back in the exact SDK union on submit.
267
- const [attachments, setAttachments] = useState([]);
268
- const attachmentsRef = useRef([]);
269
- const replaceAttachments = useCallback((next) => {
270
- const resolved = typeof next === 'function' ? next(attachmentsRef.current) : next;
271
- attachmentsRef.current = resolved;
272
- setAttachments(resolved);
273
- }, []);
274
- const [editPreviousArmed, setEditPreviousArmed] = useState(false);
275
- const restoredTokenRef = useRef(null);
276
- const draftPresenceRef = useRef(false);
277
- useEffect(() => {
278
- const hasDraft = value.trim().length > 0 ||
279
- pastes.some((paste) => paste.trim().length > 0) ||
280
- attachments.length > 0;
281
- if (hasDraft === draftPresenceRef.current)
282
- return;
283
- draftPresenceRef.current = hasDraft;
284
- onDraftPresenceChange?.(hasDraft);
285
- }, [attachments.length, onDraftPresenceChange, pastes, value]);
286
- // Keep the complete match set. The six-row limit belongs to the rendered
287
- // window, not to navigation: slicing here made every later command
288
- // unreachable no matter how many times the operator pressed Down.
289
- const commandSuggestions = matchSlashCommands(value, userCommands, builtins);
290
- const activeMention = activeFileMention(value, cursor);
291
- const fileSuggestions = activeMention
292
- ? matchMentionableFiles(activeMention.query, mentionCandidates)
293
- : [];
294
- const suggestionKind = commandSuggestions.length > 0 ? 'command' : fileSuggestions.length > 0 ? 'file' : null;
295
- const suggestionCount = suggestionKind === 'command' ? commandSuggestions.length : fileSuggestions.length;
296
- const suggestionWindow = suggestionWindowSize(terminal.rows);
297
- const selIdx = Math.min(selected, Math.max(0, suggestionCount - 1));
298
- const suggestionStart = Math.min(Math.max(0, selIdx - suggestionWindow + 1), Math.max(0, suggestionCount - suggestionWindow));
299
- const visibleCommandSuggestions = commandSuggestions.slice(suggestionStart, suggestionStart + suggestionWindow);
300
- const visibleFileSuggestions = fileSuggestions.slice(suggestionStart, suggestionStart + suggestionWindow);
301
- const displayValue = composerDisplayValue(value, cursor);
302
- const commandColumnWidth = Math.min(24, Math.max(10, ...visibleCommandSuggestions.map((command) => command.name.length + 4)));
303
- /**
304
- * Replace the whole draft. `spans` says which characters were not typed
305
- * here; absent, the whole text counts as `origin`. Alt+W decisions belong
306
- * to the text they were made on and go with it.
307
- */
308
- const setBuffer = useCallback((nextValue, nextCursor = nextValue.length, origin = 'recalled', spans) => {
309
- valueRef.current = nextValue;
310
- cursorRef.current = nextCursor;
311
- spansRef.current = spans ?? replaceAll(nextValue.length, origin);
312
- overridesRef.current = [];
313
- setValueState(nextValue);
314
- setCursorState(nextCursor);
315
- }, []);
316
- const setHistoryIndex = useCallback((next) => {
317
- historyIndexRef.current = next;
318
- setHistoryIndexState(next);
319
- }, []);
320
- const setHistorySearch = useCallback((next) => {
321
- historySearchRef.current = next;
322
- setHistorySearchState(next);
323
- }, []);
324
- const setSelectedIndex = useCallback((next) => {
325
- const resolved = typeof next === 'function' ? next(selectedRef.current) : next;
326
- selectedRef.current = resolved;
327
- setSelected(resolved);
328
- }, []);
329
- /** The triggers `draft` names, read with this draft's provenance and Alt+W decisions. */
330
- const detect = (draft) => triggers
331
- ? detectTriggers(draft, triggers.registry, triggers.context, {
332
- nonTyped: spansRef.current,
333
- overrides: overrideMap(overridesRef.current),
334
- suggest: triggers.suggest,
335
- })
336
- : EMPTY_DETECTION;
337
- const setOverride = (hit, state) => {
338
- const others = overridesRef.current.filter((override) => !(override.id === hit.id && override.start === hit.start));
339
- overridesRef.current =
340
- state === null ? others : [...others, { id: hit.id, start: hit.start, end: hit.end, state }];
341
- setTriggerVersion((version) => version + 1);
342
- };
343
- /** Alt+W: the trigger nearest the cursor changes state. */
344
- const toggleNearestTrigger = () => {
345
- const cursor = cursorRef.current;
346
- const distance = (hit) => cursor < hit.start ? hit.start - cursor : cursor > hit.end ? cursor - hit.end : 0;
347
- const nearest = [...detect(valueRef.current).hits].sort((a, b) => distance(a) - distance(b))[0];
348
- if (!nearest)
349
- return;
350
- const decided = overridesRef.current.some((override) => override.id === nearest.id && override.start === nearest.start);
351
- if (decided)
352
- setOverride(nearest, null);
353
- else if (nearest.state === 'suggested')
354
- setOverride(nearest, 'armed');
355
- else
356
- setOverride(nearest, 'dropped');
357
- };
358
- /**
359
- * One edit of the draft, by the operator (`typed`) or not. The characters
360
- * it inserts are remembered as typed or not, and the draft's other spans
361
- * and Alt+W decisions move with it.
362
- */
363
- const editBuffer = useCallback((nextValue, nextCursor = nextValue.length, origin = 'typed') => {
364
- verticalColumnRef.current = null;
365
- historyDraftRef.current = null;
366
- setHistorySearch(null);
367
- setHistoryIndex(-1);
368
- const edit = diffEdit(valueRef.current, nextValue, cursorRef.current);
369
- const spans = applyEdit(spansRef.current, edit, origin);
370
- const overrides = shiftOverrides(overridesRef.current, edit);
371
- setBuffer(nextValue, nextCursor, origin, spans);
372
- overridesRef.current = overrides;
373
- }, [setBuffer, setHistoryIndex, setHistorySearch]);
374
- const reset = useCallback(() => {
375
- verticalColumnRef.current = null;
376
- historyDraftRef.current = null;
377
- setHistorySearch(null);
378
- setBuffer('', 0, 'typed');
379
- setHistoryIndex(-1);
380
- setSelectedIndex(0);
381
- replacePastes([]);
382
- replaceAttachments([]);
383
- setEditPreviousArmed(false);
384
- }, [replaceAttachments, replacePastes, setBuffer, setHistoryIndex, setHistorySearch, setSelectedIndex]);
385
- /** Restore synchronously when Alt+Up is pressed, before the next typed key. */
386
- const restoreDraft = useCallback((draft) => {
387
- setBuffer(draft.text, draft.text.length, 'restored');
388
- if (triggers && draft.triggers?.length) {
389
- const selected = new Set(draft.triggers);
390
- const hits = detectTriggers(draft.text, triggers.registry, triggers.context, {
391
- nonTyped: spansRef.current,
392
- suggest: true,
393
- }).hits;
394
- overridesRef.current = hits
395
- .filter((hit) => selected.has(hit.id))
396
- .map((hit) => ({ id: hit.id, start: hit.start, end: hit.end, state: 'armed' }));
397
- setTriggerVersion((version) => version + 1);
398
- }
399
- setHistoryIndex(-1);
400
- setSelectedIndex(0);
401
- verticalColumnRef.current = null;
402
- historyDraftRef.current = null;
403
- setHistorySearch(null);
404
- replacePastes([]);
405
- replaceAttachments(draft.attachments ? [...draft.attachments] : []);
406
- setEditPreviousArmed(false);
407
- }, [replaceAttachments, replacePastes, setBuffer, setHistoryIndex, setHistorySearch, setSelectedIndex, triggers]);
408
- useEffect(() => {
409
- if (!draftToRestore || restoredTokenRef.current === draftToRestore.token)
410
- return;
411
- restoredTokenRef.current = draftToRestore.token;
412
- restoreDraft(draftToRestore);
413
- onDraftRestored?.(draftToRestore.token);
414
- }, [draftToRestore, onDraftRestored, restoreDraft]);
415
- // Bracketed paste is one event even when the terminal splits its bytes.
416
- // Its newlines are content, never Enter/shortcut events.
417
- usePaste((text) => {
418
- if (disabled || hidden)
419
- return;
420
- const normalized = text.replace(/\r\n?/g, '\n');
421
- if (normalized.length === 0)
422
- return;
423
- if (normalized.includes('\n') || normalized.length > PASTE_THRESHOLD) {
424
- replacePastes((previous) => [...previous, normalized]);
425
- return;
426
- }
427
- const position = cursorRef.current;
428
- setSelectedIndex(0);
429
- editBuffer(valueRef.current.slice(0, position) + normalized + valueRef.current.slice(position), position + normalized.length, 'pasted');
430
- }, { isActive: !disabled && !hidden });
431
- useInput((input, key) => {
432
- // Hidden means the screen belongs to something else, so a keypress
433
- // aimed at that must not also land here.
434
- if (disabled || hidden)
435
- return;
436
- const liveCommandSuggestions = matchSlashCommands(valueRef.current, userCommands, builtins);
437
- const liveMention = activeFileMention(valueRef.current, cursorRef.current);
438
- const liveFileSuggestions = liveMention
439
- ? matchMentionableFiles(liveMention.query, mentionCandidates)
440
- : [];
441
- const liveSuggestionKind = liveCommandSuggestions.length > 0
442
- ? 'command'
443
- : liveFileSuggestions.length > 0
444
- ? 'file'
445
- : null;
446
- const liveSuggestionCount = liveSuggestionKind === 'command'
447
- ? liveCommandSuggestions.length
448
- : liveFileSuggestions.length;
449
- const hasLiveSuggestions = liveSuggestionKind !== null;
450
- const liveSelection = Math.min(selectedRef.current, Math.max(0, liveSuggestionCount - 1));
451
- const acceptSuggestion = () => {
452
- if (liveSuggestionKind === 'command') {
453
- const completed = `/${liveCommandSuggestions[liveSelection]?.name ?? ''} `;
454
- editBuffer(completed, completed.length, 'completion');
455
- setSelectedIndex(0);
456
- return true;
457
- }
458
- if (liveSuggestionKind === 'file' && liveMention) {
459
- const path = liveFileSuggestions[liveSelection];
460
- if (!path)
461
- return false;
462
- const replacement = `@${path} `;
463
- editBuffer(valueRef.current.slice(0, liveMention.start) +
464
- replacement +
465
- valueRef.current.slice(liveMention.end), liveMention.start + replacement.length, 'completion');
466
- setSelectedIndex(0);
467
- return true;
468
- }
469
- return false;
470
- };
471
- if (key.meta && key.upArrow && onRecallQueued) {
472
- if (valueRef.current.length > 0 || pastesRef.current.length > 0 || attachmentsRef.current.length > 0) {
473
- onNotice?.('Send or clear the current draft before recalling a queued message.');
474
- return;
475
- }
476
- const recalled = onRecallQueued();
477
- if (recalled)
478
- restoreDraft(recalled);
479
- return;
480
- }
481
- if (!hasLiveSuggestions &&
482
- onStepReasoningEffort &&
483
- ((key.shift && key.downArrow) || (key.meta && input === ','))) {
484
- onStepReasoningEffort('lower');
485
- return;
486
- }
487
- if (!hasLiveSuggestions &&
488
- onStepReasoningEffort &&
489
- ((key.shift && key.upArrow) || (key.meta && input === '.'))) {
490
- onStepReasoningEffort('raise');
491
- return;
492
- }
493
- if (!key.escape && editPreviousArmed)
494
- setEditPreviousArmed(false);
495
- const submit = (mode) => {
496
- const message = [valueRef.current, ...pastesRef.current]
497
- .map((s) => s.trim())
498
- .filter(Boolean)
499
- .join('\n\n');
500
- const currentAttachments = attachmentsRef.current;
501
- if (message.length === 0 && currentAttachments.length === 0)
502
- return false;
503
- const submittedAttachments = currentAttachments.length > 0 ? currentAttachments : undefined;
504
- // Read again from what the last key left, not from the last render.
505
- const detection = detect(valueRef.current);
506
- // The message is the draft trimmed: offsets move by what the trim took.
507
- const lead = valueRef.current.length - valueRef.current.trimStart().length;
508
- const armed = detection.hits
509
- .filter((hit) => hit.state === 'armed')
510
- .map((hit) => ({ id: hit.id, start: hit.start - lead, end: hit.end - lead }));
511
- onSubmit(message, submittedAttachments, mode, {
512
- source: 'composer',
513
- triggers: armed,
514
- onlyTriggers: armed.length > 0 && detection.onlyTriggers && pastesRef.current.length === 0 && currentAttachments.length === 0,
515
- });
516
- reset();
517
- return true;
518
- };
519
- if ((key.return && (key.shift || key.meta)) || input === '\n') {
520
- const position = cursorRef.current;
521
- editBuffer(valueRef.current.slice(0, position) + '\n' + valueRef.current.slice(position), position + 1);
522
- return;
523
- }
524
- if (key.ctrl && (input === 'r' || input === 's')) {
525
- verticalColumnRef.current = null;
526
- const browsedHistoryDraft = historyDraftRef.current;
527
- historyDraftRef.current = null;
528
- setHistoryIndex(-1);
529
- let search = historySearchRef.current;
530
- if (!search) {
531
- const query = valueRef.current;
532
- const normalizedQuery = query.toLowerCase();
533
- search = {
534
- draft: browsedHistoryDraft ?? {
535
- value: query,
536
- cursor: cursorRef.current,
537
- spans: spansRef.current,
538
- },
539
- query,
540
- matches: [...history]
541
- .reverse()
542
- .filter((entry) => entry.toLowerCase().includes(normalizedQuery)),
543
- position: -1,
544
- };
545
- }
546
- const position = input === 'r'
547
- ? Math.min(search.position + 1, search.matches.length - 1)
548
- : Math.max(search.position - 1, -1);
549
- const next = { ...search, position };
550
- setHistorySearch(next);
551
- if (position < 0)
552
- setBuffer(next.draft.value, next.draft.cursor, 'typed', next.draft.spans);
553
- else
554
- setBuffer(next.matches[position] ?? next.draft.value, undefined, 'recalled');
555
- return;
556
- }
557
- if (key.return) {
558
- if (liveSuggestionKind === 'command') {
559
- // Run the highlighted command.
560
- onSubmit(`/${liveCommandSuggestions[liveSelection]?.name ?? ''}`, undefined, 'submit', {
561
- source: 'composer-dropdown',
562
- });
563
- reset();
564
- return;
565
- }
566
- if (acceptSuggestion())
567
- return;
568
- submit('submit');
569
- return;
570
- }
571
- if (key.tab && key.shift) {
572
- // Shift+Tab cycles the permission mode. Before the plain-Tab
573
- // branch below, which would otherwise queue the draft.
574
- onCycleMode?.();
575
- return;
576
- }
577
- if (key.tab) {
578
- if (acceptSuggestion())
579
- return;
580
- submit('queue');
581
- return;
582
- }
583
- if (key.escape) {
584
- // A running turn owns Esc. App aborts it on this same keypress,
585
- // and clearing the draft too would punish the operator for
586
- // following the hint the status bar is showing them.
587
- if (escapeInterrupts)
588
- return;
589
- const activeSearch = historySearchRef.current;
590
- if (activeSearch) {
591
- setBuffer(activeSearch.draft.value, activeSearch.draft.cursor, 'typed', activeSearch.draft.spans);
592
- setHistorySearch(null);
593
- return;
594
- }
595
- const empty = valueRef.current.length === 0 && pastesRef.current.length === 0 && attachmentsRef.current.length === 0;
596
- if (empty && onEditPrevious) {
597
- if (editPreviousArmed) {
598
- setEditPreviousArmed(false);
599
- onEditPrevious();
600
- }
601
- else
602
- setEditPreviousArmed(true);
603
- return;
604
- }
605
- reset();
606
- return;
607
- }
608
- if (key.backspace && (key.meta || key.ctrl)) {
609
- const source = valueRef.current;
610
- const position = cursorRef.current;
611
- const start = previousWordBoundary(source, position);
612
- if (start < position)
613
- killBufferRef.current = source.slice(start, position);
614
- const result = deletePreviousWordAt(valueRef.current, cursorRef.current);
615
- editBuffer(result.value, result.cursor);
616
- return;
617
- }
618
- if (key.backspace) {
619
- // Backspace on an empty line removes the last durable attachment first,
620
- // then pasted text.
621
- if (valueRef.current.length === 0 && attachmentsRef.current.length > 0) {
622
- replaceAttachments((p) => p.slice(0, -1));
623
- return;
624
- }
625
- if (valueRef.current.length === 0 && pastesRef.current.length > 0) {
626
- replacePastes((p) => p.slice(0, -1));
627
- return;
628
- }
629
- const position = cursorRef.current;
630
- // Right after an armed keyword, Backspace drops the trigger first
631
- // and deletes nothing; the next Backspace deletes as usual.
632
- const keyword = detect(valueRef.current).hits.find((hit) => hit.state === 'armed' && hit.id === 'hypermode' && hit.end === position);
633
- if (keyword && keyword.end - keyword.start === 'hypermode'.length) {
634
- setOverride(keyword, 'dropped');
635
- return;
636
- }
637
- const previous = previousGraphemeBoundary(valueRef.current, position);
638
- editBuffer(valueRef.current.slice(0, previous) + valueRef.current.slice(position), previous);
639
- return;
640
- }
641
- if (key.delete || (key.ctrl && input === 'd')) {
642
- const position = cursorRef.current;
643
- const next = nextGraphemeBoundary(valueRef.current, position);
644
- editBuffer(valueRef.current.slice(0, position) + valueRef.current.slice(next), position);
645
- return;
646
- }
647
- if ((key.leftArrow && (key.meta || key.ctrl)) || (key.meta && input === 'b')) {
648
- verticalColumnRef.current = null;
649
- const previous = previousWordBoundary(valueRef.current, cursorRef.current);
650
- cursorRef.current = previous;
651
- setCursorState(previous);
652
- return;
653
- }
654
- if ((key.rightArrow && (key.meta || key.ctrl)) || (key.meta && input === 'f')) {
655
- verticalColumnRef.current = null;
656
- const next = nextWordBoundary(valueRef.current, cursorRef.current);
657
- cursorRef.current = next;
658
- setCursorState(next);
659
- return;
660
- }
661
- if (key.leftArrow || (key.ctrl && input === 'b')) {
662
- verticalColumnRef.current = null;
663
- const previous = previousGraphemeBoundary(valueRef.current, cursorRef.current);
664
- cursorRef.current = previous;
665
- setCursorState(previous);
666
- return;
667
- }
668
- if (key.rightArrow || (key.ctrl && input === 'f')) {
669
- verticalColumnRef.current = null;
670
- const next = nextGraphemeBoundary(valueRef.current, cursorRef.current);
671
- cursorRef.current = next;
672
- setCursorState(next);
673
- return;
674
- }
675
- if (hasLiveSuggestions && (key.home || key.end || key.pageUp || key.pageDown)) {
676
- if (key.home)
677
- setSelectedIndex(0);
678
- else if (key.end)
679
- setSelectedIndex(liveSuggestionCount - 1);
680
- else if (key.pageUp)
681
- setSelectedIndex((index) => Math.max(0, index - suggestionWindow));
682
- else
683
- setSelectedIndex((index) => Math.min(liveSuggestionCount - 1, index + suggestionWindow));
684
- return;
685
- }
686
- if (key.home || (key.ctrl && input === 'a')) {
687
- verticalColumnRef.current = null;
688
- const start = lineStart(valueRef.current, cursorRef.current);
689
- cursorRef.current = start;
690
- setCursorState(start);
691
- return;
692
- }
693
- if (key.end || (key.ctrl && input === 'e')) {
694
- verticalColumnRef.current = null;
695
- const end = lineEnd(valueRef.current, cursorRef.current);
696
- cursorRef.current = end;
697
- setCursorState(end);
698
- return;
699
- }
700
- if (key.upArrow || (key.ctrl && input === 'p')) {
701
- if (hasLiveSuggestions) {
702
- setSelectedIndex((i) => Math.max(0, i - 1));
703
- return;
704
- }
705
- const vertical = verticalCursor(valueRef.current, cursorRef.current, -1, verticalColumnRef.current ?? undefined);
706
- if (vertical) {
707
- verticalColumnRef.current = vertical.column;
708
- cursorRef.current = vertical.cursor;
709
- setCursorState(vertical.cursor);
710
- return;
711
- }
712
- verticalColumnRef.current = null;
713
- if (history.length === 0)
714
- return;
715
- if (historyIndexRef.current < 0) {
716
- historyDraftRef.current = {
717
- value: valueRef.current,
718
- cursor: cursorRef.current,
719
- spans: spansRef.current,
720
- };
721
- }
722
- const next = Math.min(historyIndexRef.current + 1, history.length - 1);
723
- setHistoryIndex(next);
724
- setBuffer(history[history.length - 1 - next] ?? '', undefined, 'recalled');
725
- return;
726
- }
727
- if (key.downArrow || (key.ctrl && input === 'n')) {
728
- if (hasLiveSuggestions) {
729
- setSelectedIndex((i) => Math.min(liveSuggestionCount - 1, i + 1));
730
- return;
731
- }
732
- const vertical = verticalCursor(valueRef.current, cursorRef.current, 1, verticalColumnRef.current ?? undefined);
733
- if (vertical) {
734
- verticalColumnRef.current = vertical.column;
735
- cursorRef.current = vertical.cursor;
736
- setCursorState(vertical.cursor);
737
- return;
738
- }
739
- verticalColumnRef.current = null;
740
- if (historyIndexRef.current < 0) {
741
- if (valueRef.current.length === 0 && pastesRef.current.length === 0 && attachmentsRef.current.length === 0) {
742
- onOpenAgentPanel?.();
743
- }
744
- return;
745
- }
746
- if (historyIndexRef.current === 0) {
747
- const draft = historyDraftRef.current;
748
- historyDraftRef.current = null;
749
- setHistoryIndex(-1);
750
- setBuffer(draft?.value ?? '', draft?.cursor ?? 0, 'typed', draft?.spans ?? []);
751
- return;
752
- }
753
- const next = historyIndexRef.current - 1;
754
- setHistoryIndex(next);
755
- setBuffer(history[history.length - 1 - next] ?? '', undefined, 'recalled');
756
- return;
757
- }
758
- if (key.ctrl && input === 'g') {
759
- if (!onExternalEdit) {
760
- onNotice?.('External editor support is unavailable in this terminal.');
761
- return;
762
- }
763
- const seed = [valueRef.current, ...pastesRef.current]
764
- .map((part) => part.trim())
765
- .filter(Boolean)
766
- .join('\n\n');
767
- void onExternalEdit(seed)
768
- .then((edited) => {
769
- const cleaned = edited.trimEnd();
770
- replacePastes([]);
771
- setHistoryIndex(-1);
772
- setHistorySearch(null);
773
- setSelectedIndex(0);
774
- historyDraftRef.current = null;
775
- verticalColumnRef.current = null;
776
- setBuffer(cleaned, cleaned.length, 'editor');
777
- })
778
- .catch((error) => {
779
- onNotice?.(`Cannot open external editor: ${error instanceof Error ? error.message : String(error)}`);
780
- });
781
- return;
782
- }
783
- // Ctrl+V / Alt+V: pull an image off the clipboard and hold it as an attachment.
784
- //
785
- // Every outcome says something. The status bar advertises this key, so
786
- // a press that produces no chip and no words is indistinguishable from
787
- // a key that was never wired up — and the operator's next move differs
788
- // per reason: copy an image, install a tool, or stop pressing it.
789
- if ((key.ctrl || key.meta) && input === 'v') {
790
- const read = readClipboardImage();
791
- if (read.kind === 'image') {
792
- replaceAttachments((p) => [...p, read.image]);
793
- }
794
- else if (read.kind === 'empty') {
795
- onNotice?.('No image on the clipboard. Copy one, then press Ctrl+V.');
796
- }
797
- else {
798
- onNotice?.(`Cannot read images from the clipboard here — ${read.detail}.`);
799
- }
800
- return;
801
- }
802
- if (key.ctrl && input === 'w') {
803
- const source = valueRef.current;
804
- const position = cursorRef.current;
805
- const start = previousWordBoundary(source, position);
806
- if (start < position)
807
- killBufferRef.current = source.slice(start, position);
808
- const result = deletePreviousWordAt(valueRef.current, cursorRef.current);
809
- editBuffer(result.value, result.cursor);
810
- return;
811
- }
812
- if (key.ctrl && input === 'u') {
813
- const position = cursorRef.current;
814
- const start = lineStart(valueRef.current, position);
815
- if (start < position)
816
- killBufferRef.current = valueRef.current.slice(start, position);
817
- editBuffer(valueRef.current.slice(0, start) + valueRef.current.slice(position), start);
818
- return;
819
- }
820
- if (key.ctrl && input === 'k') {
821
- const position = cursorRef.current;
822
- const end = lineEnd(valueRef.current, position);
823
- if (position < end)
824
- killBufferRef.current = valueRef.current.slice(position, end);
825
- editBuffer(valueRef.current.slice(0, position) + valueRef.current.slice(end), position);
826
- return;
827
- }
828
- if (key.meta && input === 'd') {
829
- const source = valueRef.current;
830
- const position = cursorRef.current;
831
- const end = nextWordBoundary(source, position);
832
- if (position < end)
833
- killBufferRef.current = source.slice(position, end);
834
- const result = deleteNextWordAt(valueRef.current, cursorRef.current);
835
- editBuffer(result.value, result.cursor);
836
- return;
837
- }
838
- if (key.ctrl && input === 'y') {
839
- const killed = killBufferRef.current;
840
- if (killed.length === 0)
841
- return;
842
- const position = cursorRef.current;
843
- editBuffer(valueRef.current.slice(0, position) + killed + valueRef.current.slice(position), position + killed.length, 'yank');
844
- return;
845
- }
846
- // Alt+W: drop the trigger nearest the cursor, or bring one back, or
847
- // arm one the row only suggested.
848
- if (key.meta && input === 'w') {
849
- toggleNearestTrigger();
850
- return;
851
- }
852
- if (key.ctrl || key.meta)
853
- return;
854
- if (input.length === 0)
855
- return;
856
- // A multi-line chunk arriving in one keypress is a paste — hold it as
857
- // an attachment chip instead of flooding the input. A long chunk on
858
- // ONE line is not: it is what typing looks like when keystrokes queue
859
- // up behind a busy render and arrive in a single read. Held as a chip
860
- // it was joined back to the typed text with a paragraph break, which
861
- // split the word it landed in two ("subag" / "ents") in the message
862
- // the model received. A real paste reaches `usePaste` above, where a
863
- // long one is still a chip.
864
- if (input.includes('\n')) {
865
- replacePastes((p) => [...p, input]);
866
- return;
867
- }
868
- setSelectedIndex(0);
869
- const position = cursorRef.current;
870
- // One grapheme is a key. More in one chunk is queued keys or a paste
871
- // without bracketed-paste markers; nothing here can tell which, so it
872
- // does not count as typed.
873
- let graphemes = 0;
874
- for (const _ of graphemeSegmenter.segment(input))
875
- if (++graphemes > 1)
876
- break;
877
- editBuffer(valueRef.current.slice(0, position) + input + valueRef.current.slice(position), position + input.length, graphemes > 1 ? 'burst' : 'typed');
878
- },
879
- // A text prompt hides the composer without disabling it. Keep this
880
- // listener attached across that transition: Ink installs it in an
881
- // effect after painting, so reattaching on unhide can lose the first key.
882
- // The guard above ignores keys while another prompt owns the screen.
883
- { isActive: !disabled });
884
- // After every hook, so the component keeps its state while it is off screen.
885
- // This is the whole fix: React preserves a mounted component's state, and
886
- // preserving it is what an unmounting ternary could not do.
887
- if (hidden)
888
- return null;
889
- const modelIntent = !attachments.length && !pastes.length ? parseModelSelectionIntent(value) : undefined;
890
- const effortIntent = !attachments.length && !pastes.length
891
- ? /^\/effort\s+([a-z]+)$/.exec(value.trim())?.[1]
892
- : undefined;
893
- const effortAvailable = effortIntent === 'default' ||
894
- (effortIntent !== undefined && reasoningEffortLevels?.includes(effortIntent));
895
- void triggerVersion;
896
- const detection = !modelIntent && !effortIntent && !disabled ? detect(value) : EMPTY_DETECTION;
897
- const triggerRow = triggers
898
- ? tagRow(detection, {
899
- columns: Math.max(1, (terminal.columns ?? 80) - 4),
900
- turnActive,
901
- highestEffort: triggers.highestEffort,
902
- hypermodeEffort: triggers.hypermodeEffort,
903
- standaloneAllowed: pastes.length === 0 && attachments.length === 0,
904
- })
905
- : null;
906
- const styledSpans = detection.hits.flatMap((hit) => hit.state === 'armed' || hit.state === 'unavailable'
907
- ? [{ start: hit.start, end: hit.end, style: hit.state }]
908
- : []);
909
- const beforeSegments = displaySegments(value, displayValue.start, cursor, styledSpans);
910
- const afterSegments = displaySegments(value, cursor, displayValue.end, styledSpans);
911
- const promptGlyph = disabled ? '…' : '›';
912
- const showPlaceholder = !disabled && value.length === 0 && !editPreviousArmed;
913
- const historySearchQuery = historySearch
914
- ? composerDisplayValue(historySearch.query, historySearch.query.length)
915
- : null;
916
- return (_jsxs(Box, { flexDirection: "column", children: [effortIntent ? (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: effortAvailable ? theme.accent.tool : theme.status.warn, children: ["Effort: ", effortIntent, " \u00B7 ", effortAvailable ? 'requested' : 'unavailable for this model'] }) })) : null, modelIntent ? (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: theme.accent.tool, children: ["Model: ", modelIntent.query, " \u00B7 requested"] }) })) : null, triggerRow ? (_jsx(Box, { paddingX: 1, children: _jsx(Text, { color: detection.hits.some((hit) => hit.state === 'armed')
917
- ? theme.accent.trigger
918
- : theme.text.muted, wrap: "truncate-end", children: triggerRow }) })) : null, pastes.length > 0 || attachments.length > 0 ? (_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingBottom: 1, children: [attachments.map((attachment, i) => (_jsxs(Text, { color: theme.accent.tool, children: ["\u2398 ", attachmentLabel(attachment, i)] }, `attachment-${i}`))), pastes.map((p, i) => (_jsxs(Text, { color: theme.text.secondary, children: ["\u2398 Pasted text #", i + 1, " \u00B7 ", Array.from(p).length, " chars"] }, `paste-${i}`)))] })) : null, _jsxs(Box, { paddingX: 1, children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: disabled ? theme.text.muted : theme.accent.user, bold: true, children: promptGlyph }) }), _jsx(Box, { flexGrow: 1, children: showPlaceholder ? (_jsx(Text, { color: theme.text.muted, children: "Type a message\u2026 (/help for commands)" })) : editPreviousArmed ? (_jsx(Text, { color: theme.text.muted, children: "Press Esc again to edit a previous prompt" })) : (_jsxs(Text, { color: disabled ? theme.text.muted : theme.text.primary, wrap: "wrap", children: [displayValue.leadingEllipsis ? '… ' : '', renderSegments(beforeSegments), disabled ? null : _jsx(Text, { color: theme.border.focus, children: "\u258F" }), renderSegments(afterSegments), displayValue.trailingEllipsis ? ' …' : ''] })) })] }), historySearch && historySearchQuery ? (_jsx(Box, { paddingX: 1, paddingTop: 1, children: _jsxs(Text, { color: theme.text.muted, children: ["history \u201C", historySearchQuery.leadingEllipsis ? '… ' : '', historySearchQuery.before, "\u201D \u00B7", ' ', historySearch.position < 0
919
- ? `draft · ${historySearch.matches.length} match${historySearch.matches.length === 1 ? '' : 'es'}`
920
- : `${historySearch.position + 1}/${historySearch.matches.length}`, ' ', "\u00B7 Ctrl+R older \u00B7 Ctrl+S newer \u00B7 Esc restore"] }) })) : null, suggestionKind === 'command' ? (_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingTop: 1, width: "100%", children: [visibleCommandSuggestions.map((cmd, i) => {
921
- const absoluteIndex = suggestionStart + i;
922
- return (_jsxs(Box, { width: "100%", flexDirection: "row", children: [_jsx(Box, { width: commandColumnWidth, flexShrink: 0, children: _jsxs(Text, { color: absoluteIndex === selIdx ? theme.accent.user : theme.text.secondary, bold: absoluteIndex === selIdx, children: [absoluteIndex === selIdx ? '› ' : ' ', "/", cmd.name] }) }), _jsx(Box, { flexGrow: 1, minWidth: 0, children: _jsx(Text, { color: theme.text.muted, wrap: "wrap", children: cmd.description }) })] }, cmd.name));
923
- }), _jsxs(Text, { color: theme.text.muted, children: [selIdx + 1, "/", commandSuggestions.length, " \u00B7 \u2191\u2193 navigate \u00B7 PgUp/PgDn jump \u00B7 Enter run \u00B7 Tab complete"] })] })) : suggestionKind === 'file' ? (_jsxs(Box, { flexDirection: "column", paddingX: 1, paddingTop: 1, width: "100%", children: [visibleFileSuggestions.map((path, i) => {
924
- const absoluteIndex = suggestionStart + i;
925
- return (_jsxs(Text, { color: absoluteIndex === selIdx ? theme.accent.user : theme.text.secondary, bold: absoluteIndex === selIdx, children: [absoluteIndex === selIdx ? '› ' : ' ', "@", path] }, path));
926
- }), _jsxs(Text, { color: theme.text.muted, children: [selIdx + 1, "/", fileSuggestions.length, " \u00B7 \u2191\u2193 navigate \u00B7 PgUp/PgDn jump \u00B7 Enter/Tab insert"] })] })) : null] }));
927
- }
928
- function attachmentLabel(attachment, index) {
929
- if (attachment.type === 'stored') {
930
- const kind = attachment.kind === 'image' ? 'Image' : 'Document';
931
- return `${kind} #${index + 1}${attachment.name ? ` — ${attachment.name}` : ''} (stored)`;
932
- }
933
- const size = `${Math.round((attachment.data.length * 3) / 4 / 1024)} KB`;
934
- if (attachment.type === 'document') {
935
- return `Document #${index + 1}${attachment.name ? ` — ${attachment.name}` : ''} (${size})`;
936
- }
937
- return `Image #${index + 1} (${size})`;
938
- }
939
- //# sourceMappingURL=Composer.js.map