@namzu/cli 35.0.0 → 36.1.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 (1309) hide show
  1. package/CHANGELOG.md +764 -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-5CWS2GLJ.js +13448 -0
  23. package/dist/chunks/acp-5CWS2GLJ.js.map +6 -0
  24. package/dist/chunks/activity-command-HK7YJTXV.js +262 -0
  25. package/dist/chunks/activity-command-HK7YJTXV.js.map +6 -0
  26. package/dist/chunks/add-ULH5DUNX.js +712 -0
  27. package/dist/chunks/add-ULH5DUNX.js.map +6 -0
  28. package/dist/chunks/agent-UEK2U3RE.js +87 -0
  29. package/dist/chunks/agent-UEK2U3RE.js.map +6 -0
  30. package/dist/chunks/agent-session-V7JRTODS.js +46 -0
  31. package/dist/chunks/agent-session-V7JRTODS.js.map +6 -0
  32. package/dist/chunks/archive-C4A3HPLF.js +84 -0
  33. package/dist/chunks/archive-C4A3HPLF.js.map +6 -0
  34. package/dist/chunks/bin-main-EEJHRDIC.js +126 -0
  35. package/dist/chunks/bin-main-EEJHRDIC.js.map +6 -0
  36. package/dist/chunks/browser-CRX4HM4C.js +31 -0
  37. package/dist/chunks/browser-CRX4HM4C.js.map +6 -0
  38. package/dist/chunks/chat-FVBATC4E.js +101 -0
  39. package/dist/chunks/chat-FVBATC4E.js.map +6 -0
  40. package/dist/chunks/chunk-2A37JQKY.js +1355 -0
  41. package/dist/chunks/chunk-2A37JQKY.js.map +6 -0
  42. package/dist/chunks/chunk-2NJ2XUXJ.js +283 -0
  43. package/dist/chunks/chunk-2NJ2XUXJ.js.map +6 -0
  44. package/dist/chunks/chunk-4HAE7PYX.js +74 -0
  45. package/dist/chunks/chunk-4HAE7PYX.js.map +6 -0
  46. package/dist/chunks/chunk-5GRV6P5C.js +69 -0
  47. package/dist/chunks/chunk-5GRV6P5C.js.map +6 -0
  48. package/dist/chunks/chunk-5PQVJBIO.js +168 -0
  49. package/dist/chunks/chunk-5PQVJBIO.js.map +6 -0
  50. package/dist/chunks/chunk-62I7HLAP.js +1142 -0
  51. package/dist/chunks/chunk-62I7HLAP.js.map +6 -0
  52. package/dist/chunks/chunk-63CGV3XY.js +161 -0
  53. package/dist/chunks/chunk-63CGV3XY.js.map +6 -0
  54. package/dist/chunks/chunk-6LLJQ3KY.js +225 -0
  55. package/dist/chunks/chunk-6LLJQ3KY.js.map +6 -0
  56. package/dist/chunks/chunk-6YG7D7U4.js +159 -0
  57. package/dist/chunks/chunk-6YG7D7U4.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-7WJOQ6EA.js +106 -0
  61. package/dist/chunks/chunk-7WJOQ6EA.js.map +6 -0
  62. package/dist/chunks/chunk-A22MBIYU.js +42 -0
  63. package/dist/chunks/chunk-A22MBIYU.js.map +6 -0
  64. package/dist/chunks/chunk-A5DWGNGR.js +73 -0
  65. package/dist/chunks/chunk-A5DWGNGR.js.map +6 -0
  66. package/dist/chunks/chunk-A5UXODFL.js +76 -0
  67. package/dist/chunks/chunk-A5UXODFL.js.map +6 -0
  68. package/dist/chunks/chunk-AHIDYIRB.js +329 -0
  69. package/dist/chunks/chunk-AHIDYIRB.js.map +6 -0
  70. package/dist/chunks/chunk-AIY4PCDR.js +164 -0
  71. package/dist/chunks/chunk-AIY4PCDR.js.map +6 -0
  72. package/dist/chunks/chunk-AK2U3N2A.js +31 -0
  73. package/dist/chunks/chunk-AK2U3N2A.js.map +6 -0
  74. package/dist/chunks/chunk-AN7FO7NS.js +247 -0
  75. package/dist/chunks/chunk-AN7FO7NS.js.map +6 -0
  76. package/dist/chunks/chunk-AXIGFKJF.js +34 -0
  77. package/dist/chunks/chunk-AXIGFKJF.js.map +6 -0
  78. package/dist/chunks/chunk-C5WBEO3X.js +46 -0
  79. package/dist/chunks/chunk-C5WBEO3X.js.map +6 -0
  80. package/dist/chunks/chunk-C5XYHYMX.js +675 -0
  81. package/dist/chunks/chunk-C5XYHYMX.js.map +6 -0
  82. package/dist/chunks/chunk-CG65NUSJ.js +115 -0
  83. package/dist/chunks/chunk-CG65NUSJ.js.map +6 -0
  84. package/dist/chunks/chunk-CHIEVVQ2.js +32 -0
  85. package/dist/chunks/chunk-CHIEVVQ2.js.map +6 -0
  86. package/dist/chunks/chunk-E5VLANCO.js +101 -0
  87. package/dist/chunks/chunk-E5VLANCO.js.map +6 -0
  88. package/dist/chunks/chunk-EBOHVFOB.js +648 -0
  89. package/dist/chunks/chunk-EBOHVFOB.js.map +6 -0
  90. package/dist/chunks/chunk-EEDZOGV4.js +47 -0
  91. package/dist/chunks/chunk-EEDZOGV4.js.map +6 -0
  92. package/dist/chunks/chunk-EIYM6TY7.js +1479 -0
  93. package/dist/chunks/chunk-EIYM6TY7.js.map +6 -0
  94. package/dist/chunks/chunk-EWKJGHRO.js +82559 -0
  95. package/dist/chunks/chunk-EWKJGHRO.js.map +6 -0
  96. package/dist/chunks/chunk-EY7UNVER.js +311 -0
  97. package/dist/chunks/chunk-EY7UNVER.js.map +6 -0
  98. package/dist/chunks/chunk-FTMTO72X.js +95 -0
  99. package/dist/chunks/chunk-FTMTO72X.js.map +6 -0
  100. package/dist/chunks/chunk-FXS3AG6B.js +25326 -0
  101. package/dist/chunks/chunk-FXS3AG6B.js.map +6 -0
  102. package/dist/chunks/chunk-GIXSS6KW.js +2228 -0
  103. package/dist/chunks/chunk-GIXSS6KW.js.map +6 -0
  104. package/dist/chunks/chunk-GMCOZ3CU.js +245 -0
  105. package/dist/chunks/chunk-GMCOZ3CU.js.map +6 -0
  106. package/dist/chunks/chunk-GNBMKISG.js +19 -0
  107. package/dist/chunks/chunk-GNBMKISG.js.map +6 -0
  108. package/dist/chunks/chunk-GWQEMJFS.js +28 -0
  109. package/dist/chunks/chunk-GWQEMJFS.js.map +6 -0
  110. package/dist/chunks/chunk-H6B6AROX.js +151 -0
  111. package/dist/chunks/chunk-H6B6AROX.js.map +6 -0
  112. package/dist/chunks/chunk-HBBB2CAC.js +75 -0
  113. package/dist/chunks/chunk-HBBB2CAC.js.map +6 -0
  114. package/dist/chunks/chunk-HE7WUOX2.js +26 -0
  115. package/dist/chunks/chunk-HE7WUOX2.js.map +6 -0
  116. package/dist/chunks/chunk-HFJHHCTY.js +303 -0
  117. package/dist/chunks/chunk-HFJHHCTY.js.map +6 -0
  118. package/dist/chunks/chunk-HPMWYIBY.js +773 -0
  119. package/dist/chunks/chunk-HPMWYIBY.js.map +6 -0
  120. package/dist/chunks/chunk-HQM2WSQT.js +106 -0
  121. package/dist/chunks/chunk-HQM2WSQT.js.map +6 -0
  122. package/dist/chunks/chunk-ITZK4B66.js +787 -0
  123. package/dist/chunks/chunk-ITZK4B66.js.map +6 -0
  124. package/dist/chunks/chunk-J72CRUNX.js +154 -0
  125. package/dist/chunks/chunk-J72CRUNX.js.map +6 -0
  126. package/dist/chunks/chunk-JORONMD3.js +18 -0
  127. package/dist/chunks/chunk-JORONMD3.js.map +6 -0
  128. package/dist/chunks/chunk-JPPC4LJF.js +271 -0
  129. package/dist/chunks/chunk-JPPC4LJF.js.map +6 -0
  130. package/dist/chunks/chunk-JV3LONAU.js +76 -0
  131. package/dist/chunks/chunk-JV3LONAU.js.map +6 -0
  132. package/dist/chunks/chunk-K76WV7TN.js +71 -0
  133. package/dist/chunks/chunk-K76WV7TN.js.map +6 -0
  134. package/dist/chunks/chunk-KCWUQRZV.js +828 -0
  135. package/dist/chunks/chunk-KCWUQRZV.js.map +6 -0
  136. package/dist/chunks/chunk-KONYGNG6.js +7661 -0
  137. package/dist/chunks/chunk-KONYGNG6.js.map +6 -0
  138. package/dist/chunks/chunk-KU3W6IHV.js +109 -0
  139. package/dist/chunks/chunk-KU3W6IHV.js.map +6 -0
  140. package/dist/chunks/chunk-LQMHASKR.js +171 -0
  141. package/dist/chunks/chunk-LQMHASKR.js.map +6 -0
  142. package/dist/chunks/chunk-LXB3S4IC.js +19 -0
  143. package/dist/chunks/chunk-LXB3S4IC.js.map +6 -0
  144. package/dist/chunks/chunk-MZP6SH3M.js +3497 -0
  145. package/dist/chunks/chunk-MZP6SH3M.js.map +6 -0
  146. package/dist/chunks/chunk-N5IF64K3.js +1858 -0
  147. package/dist/chunks/chunk-N5IF64K3.js.map +6 -0
  148. package/dist/chunks/chunk-NADQQMMG.js +46 -0
  149. package/dist/chunks/chunk-NADQQMMG.js.map +6 -0
  150. package/dist/chunks/chunk-NQY5P2EB.js +20 -0
  151. package/dist/chunks/chunk-NQY5P2EB.js.map +6 -0
  152. package/dist/chunks/chunk-NUGPLXVK.js +228 -0
  153. package/dist/chunks/chunk-NUGPLXVK.js.map +6 -0
  154. package/dist/chunks/chunk-O7DBCVNY.js +110 -0
  155. package/dist/chunks/chunk-O7DBCVNY.js.map +6 -0
  156. package/dist/chunks/chunk-OEW7CJKK.js +140 -0
  157. package/dist/chunks/chunk-OEW7CJKK.js.map +6 -0
  158. package/dist/chunks/chunk-OH6TB27S.js +111 -0
  159. package/dist/chunks/chunk-OH6TB27S.js.map +6 -0
  160. package/dist/chunks/chunk-OLPOM3DR.js +127 -0
  161. package/dist/chunks/chunk-OLPOM3DR.js.map +6 -0
  162. package/dist/chunks/chunk-PYG7DZ2D.js +380 -0
  163. package/dist/chunks/chunk-PYG7DZ2D.js.map +6 -0
  164. package/dist/chunks/chunk-Q24K7536.js +661 -0
  165. package/dist/chunks/chunk-Q24K7536.js.map +6 -0
  166. package/dist/chunks/chunk-Q5YM2GCX.js +283 -0
  167. package/dist/chunks/chunk-Q5YM2GCX.js.map +6 -0
  168. package/dist/chunks/chunk-R7DCDBRN.js +106 -0
  169. package/dist/chunks/chunk-R7DCDBRN.js.map +6 -0
  170. package/dist/chunks/chunk-RC6X3ZY6.js +1439 -0
  171. package/dist/chunks/chunk-RC6X3ZY6.js.map +6 -0
  172. package/dist/chunks/chunk-SGS435PR.js +11111 -0
  173. package/dist/chunks/chunk-SGS435PR.js.map +6 -0
  174. package/dist/chunks/chunk-SKKWMMFP.js +474 -0
  175. package/dist/chunks/chunk-SKKWMMFP.js.map +6 -0
  176. package/dist/chunks/chunk-SRU3MDHZ.js +75 -0
  177. package/dist/chunks/chunk-SRU3MDHZ.js.map +6 -0
  178. package/dist/chunks/chunk-TBIX6JRE.js +24 -0
  179. package/dist/chunks/chunk-TBIX6JRE.js.map +6 -0
  180. package/dist/chunks/chunk-THNCQJ33.js +11265 -0
  181. package/dist/chunks/chunk-THNCQJ33.js.map +6 -0
  182. package/dist/chunks/chunk-THZXXVHM.js +2953 -0
  183. package/dist/chunks/chunk-THZXXVHM.js.map +6 -0
  184. package/dist/chunks/chunk-TIGWWAJI.js +765 -0
  185. package/dist/chunks/chunk-TIGWWAJI.js.map +6 -0
  186. package/dist/chunks/chunk-UDBEU2FR.js +97 -0
  187. package/dist/chunks/chunk-UDBEU2FR.js.map +6 -0
  188. package/dist/chunks/chunk-UOOQPODR.js +257 -0
  189. package/dist/chunks/chunk-UOOQPODR.js.map +6 -0
  190. package/dist/chunks/chunk-US5ZFPAU.js +400 -0
  191. package/dist/chunks/chunk-US5ZFPAU.js.map +6 -0
  192. package/dist/chunks/chunk-UWWGSDZ5.js +134 -0
  193. package/dist/chunks/chunk-UWWGSDZ5.js.map +6 -0
  194. package/dist/chunks/chunk-UXVYJWN5.js +1373 -0
  195. package/dist/chunks/chunk-UXVYJWN5.js.map +6 -0
  196. package/dist/chunks/chunk-V7TQR6AR.js +818 -0
  197. package/dist/chunks/chunk-V7TQR6AR.js.map +6 -0
  198. package/dist/chunks/chunk-VRL2WNQN.js +7534 -0
  199. package/dist/chunks/chunk-VRL2WNQN.js.map +6 -0
  200. package/dist/chunks/chunk-WATMFOHB.js +319 -0
  201. package/dist/chunks/chunk-WATMFOHB.js.map +6 -0
  202. package/dist/chunks/chunk-WHODOMXA.js +132 -0
  203. package/dist/chunks/chunk-WHODOMXA.js.map +6 -0
  204. package/dist/chunks/chunk-WM2JEUGV.js +207 -0
  205. package/dist/chunks/chunk-WM2JEUGV.js.map +6 -0
  206. package/dist/chunks/chunk-XEUQN4JC.js +54 -0
  207. package/dist/chunks/chunk-XEUQN4JC.js.map +6 -0
  208. package/dist/chunks/chunk-XHOD3RDN.js +517 -0
  209. package/dist/chunks/chunk-XHOD3RDN.js.map +6 -0
  210. package/dist/chunks/chunk-Y7B67G22.js +26 -0
  211. package/dist/chunks/chunk-Y7B67G22.js.map +6 -0
  212. package/dist/chunks/chunk-ZKEWE6K4.js +399 -0
  213. package/dist/chunks/chunk-ZKEWE6K4.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-7YAOEJGS.js +129 -0
  219. package/dist/chunks/cli-runtime-7YAOEJGS.js.map +6 -0
  220. package/dist/chunks/commands-QPVRB3RK.js +21 -0
  221. package/dist/chunks/commands-QPVRB3RK.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-S3BTEPYR.js +21 -0
  225. package/dist/chunks/crash-report-S3BTEPYR.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-3GJFRS2X.js +520 -0
  229. package/dist/chunks/dist-3GJFRS2X.js.map +6 -0
  230. package/dist/chunks/dist-BFC7XUCT.js +555 -0
  231. package/dist/chunks/dist-BFC7XUCT.js.map +6 -0
  232. package/dist/chunks/dist-ERN5DRKK.js +1415 -0
  233. package/dist/chunks/dist-ERN5DRKK.js.map +6 -0
  234. package/dist/chunks/dist-EY3OJBQH.js +1339 -0
  235. package/dist/chunks/dist-EY3OJBQH.js.map +6 -0
  236. package/dist/chunks/dist-G42HPNIE.js +514 -0
  237. package/dist/chunks/dist-G42HPNIE.js.map +6 -0
  238. package/dist/chunks/dist-SKRHHPUR.js +1018 -0
  239. package/dist/chunks/dist-SKRHHPUR.js.map +6 -0
  240. package/dist/chunks/dist-Z47L7ZAJ.js +40654 -0
  241. package/dist/chunks/dist-Z47L7ZAJ.js.map +6 -0
  242. package/dist/chunks/doctor-IE3PLXZK.js +28 -0
  243. package/dist/chunks/doctor-IE3PLXZK.js.map +6 -0
  244. package/dist/chunks/drain-ESXUKOE6.js +471 -0
  245. package/dist/chunks/drain-ESXUKOE6.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-53UONRWR.js +187 -0
  249. package/dist/chunks/eval-53UONRWR.js.map +6 -0
  250. package/dist/chunks/exec-COV235L5.js +1284 -0
  251. package/dist/chunks/exec-COV235L5.js.map +6 -0
  252. package/dist/chunks/home-QS7RBP34.js +16 -0
  253. package/dist/chunks/home-QS7RBP34.js.map +6 -0
  254. package/dist/chunks/host-queries-LDEBHKBX.js +152 -0
  255. package/dist/chunks/host-queries-LDEBHKBX.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-6NF6NJNV.js +63 -0
  259. package/dist/chunks/lifecycle-6NF6NJNV.js.map +6 -0
  260. package/dist/chunks/list-DQZU7NEF.js +293 -0
  261. package/dist/chunks/list-DQZU7NEF.js.map +6 -0
  262. package/dist/chunks/login-IQGNP5XY.js +29 -0
  263. package/dist/chunks/login-IQGNP5XY.js.map +6 -0
  264. package/dist/chunks/logs-KSG7SFAB.js +116 -0
  265. package/dist/chunks/logs-KSG7SFAB.js.map +6 -0
  266. package/dist/chunks/mcp-WFXKXGNM.js +763 -0
  267. package/dist/chunks/mcp-WFXKXGNM.js.map +6 -0
  268. package/dist/chunks/message-command-O7ZH4I4C.js +170 -0
  269. package/dist/chunks/message-command-O7ZH4I4C.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-LTPV3CH5.js +115 -0
  273. package/dist/chunks/operator-tools-LTPV3CH5.js.map +6 -0
  274. package/dist/chunks/output-schema-UM3P5AOR.js +11 -0
  275. package/dist/chunks/output-schema-UM3P5AOR.js.map +6 -0
  276. package/dist/chunks/pal-GBYJHBP3.js +200 -0
  277. package/dist/chunks/pal-GBYJHBP3.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-J42J2PDA.js +160 -0
  283. package/dist/chunks/providers-J42J2PDA.js.map +6 -0
  284. package/dist/chunks/resident-7D6IM5LP.js +1314 -0
  285. package/dist/chunks/resident-7D6IM5LP.js.map +6 -0
  286. package/dist/chunks/resume-command-XZWGUXRK.js +22 -0
  287. package/dist/chunks/resume-command-XZWGUXRK.js.map +6 -0
  288. package/dist/chunks/schedule-JLIOF3MS.js +143 -0
  289. package/dist/chunks/schedule-JLIOF3MS.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-YBU5VTKQ.js +1633 -0
  293. package/dist/chunks/service-YBU5VTKQ.js.map +6 -0
  294. package/dist/chunks/session-step-2HJSIJNN.js +26 -0
  295. package/dist/chunks/session-step-2HJSIJNN.js.map +6 -0
  296. package/dist/chunks/skills-HV2MOBEW.js +282 -0
  297. package/dist/chunks/skills-HV2MOBEW.js.map +6 -0
  298. package/dist/chunks/state-6HV3D3O4.js +717 -0
  299. package/dist/chunks/state-6HV3D3O4.js.map +6 -0
  300. package/dist/chunks/store-6J2MUGON.js +82 -0
  301. package/dist/chunks/store-6J2MUGON.js.map +6 -0
  302. package/dist/chunks/store-GDP2EW27.js +34 -0
  303. package/dist/chunks/store-GDP2EW27.js.map +6 -0
  304. package/dist/chunks/store-VXNKMMNW.js +42 -0
  305. package/dist/chunks/store-VXNKMMNW.js.map +6 -0
  306. package/dist/chunks/tui-DDWX2WYH.js +56903 -0
  307. package/dist/chunks/tui-DDWX2WYH.js.map +6 -0
  308. package/dist/chunks/upgrade-MC5JB7DK.js +315 -0
  309. package/dist/chunks/upgrade-MC5JB7DK.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-6YPRX6SU.js +116 -0
  313. package/dist/chunks/worktree-6YPRX6SU.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 +21 -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 +3 -0
  558. package/dist/tui/Transcript.d.ts.map +1 -1
  559. package/dist/tui/TranscriptScrollView.d.ts +23 -0
  560. package/dist/tui/TranscriptScrollView.d.ts.map +1 -0
  561. package/dist/tui/TrustPrompt.d.ts +8 -0
  562. package/dist/tui/TrustPrompt.d.ts.map +1 -1
  563. package/dist/tui/agent.d.ts +125 -3
  564. package/dist/tui/agent.d.ts.map +1 -1
  565. package/dist/tui/browser-notices.d.ts.map +1 -1
  566. package/dist/tui/capability-notice.d.ts +38 -0
  567. package/dist/tui/capability-notice.d.ts.map +1 -0
  568. package/dist/tui/console-input.d.ts +31 -0
  569. package/dist/tui/console-input.d.ts.map +1 -0
  570. package/dist/tui/conversation-evidence-view.d.ts.map +1 -1
  571. package/dist/tui/credential-entry.d.ts.map +1 -1
  572. package/dist/tui/exit-summary.d.ts +9 -1
  573. package/dist/tui/exit-summary.d.ts.map +1 -1
  574. package/dist/tui/external-editor.d.ts.map +1 -1
  575. package/dist/tui/index.d.ts.map +1 -1
  576. package/dist/tui/key-hints.d.ts +51 -0
  577. package/dist/tui/key-hints.d.ts.map +1 -0
  578. package/dist/tui/launch-settings.d.ts +34 -0
  579. package/dist/tui/launch-settings.d.ts.map +1 -0
  580. package/dist/tui/log-pane.d.ts.map +1 -1
  581. package/dist/tui/model-choices.d.ts +39 -1
  582. package/dist/tui/model-choices.d.ts.map +1 -1
  583. package/dist/tui/model-search.d.ts +4 -1
  584. package/dist/tui/model-search.d.ts.map +1 -1
  585. package/dist/tui/output-size-watch.d.ts +32 -0
  586. package/dist/tui/output-size-watch.d.ts.map +1 -0
  587. package/dist/tui/permission-review.d.ts.map +1 -1
  588. package/dist/tui/person-terms.d.ts +58 -0
  589. package/dist/tui/person-terms.d.ts.map +1 -0
  590. package/dist/tui/plain-failure.d.ts +27 -0
  591. package/dist/tui/plain-failure.d.ts.map +1 -0
  592. package/dist/tui/plain-interruption.d.ts +46 -0
  593. package/dist/tui/plain-interruption.d.ts.map +1 -0
  594. package/dist/tui/provider-list.d.ts.map +1 -1
  595. package/dist/tui/render-mode.d.ts +19 -0
  596. package/dist/tui/render-mode.d.ts.map +1 -0
  597. package/dist/tui/schedule/host-commands.d.ts +2 -9
  598. package/dist/tui/schedule/host-commands.d.ts.map +1 -1
  599. package/dist/tui/schedule/integration.d.ts +8 -0
  600. package/dist/tui/schedule/integration.d.ts.map +1 -1
  601. package/dist/tui/schedule/source-deliveries.d.ts +37 -0
  602. package/dist/tui/schedule/source-deliveries.d.ts.map +1 -0
  603. package/dist/tui/schedule/startup.d.ts.map +1 -1
  604. package/dist/tui/schedule/tool-host.d.ts +3 -1
  605. package/dist/tui/schedule/tool-host.d.ts.map +1 -1
  606. package/dist/tui/setup-text.d.ts +14 -0
  607. package/dist/tui/setup-text.d.ts.map +1 -0
  608. package/dist/tui/shell-escape.d.ts.map +1 -1
  609. package/dist/tui/skills/suggest-setting.d.ts.map +1 -1
  610. package/dist/tui/slashCommands.d.ts +4 -1
  611. package/dist/tui/slashCommands.d.ts.map +1 -1
  612. package/dist/tui/terminal-choice-text.d.ts +7 -0
  613. package/dist/tui/terminal-choice-text.d.ts.map +1 -1
  614. package/dist/tui/tidy-tool-output.d.ts +83 -0
  615. package/dist/tui/tidy-tool-output.d.ts.map +1 -0
  616. package/dist/tui/tool-presentation.d.ts +6 -0
  617. package/dist/tui/tool-presentation.d.ts.map +1 -0
  618. package/dist/tui/transcript-scroll.d.ts +73 -0
  619. package/dist/tui/transcript-scroll.d.ts.map +1 -0
  620. package/dist/tui/triggers/copy.d.ts.map +1 -1
  621. package/dist/tui/triggers/setting.d.ts.map +1 -1
  622. package/dist/tui/turn-interruption.d.ts +1 -1
  623. package/dist/tui/turn-interruption.d.ts.map +1 -1
  624. package/dist/tui/turn-limits-settings.d.ts +4 -4
  625. package/dist/tui/turn-limits-settings.d.ts.map +1 -1
  626. package/dist/tui/types.d.ts +10 -0
  627. package/dist/tui/types.d.ts.map +1 -1
  628. package/dist/tui/web-activity.d.ts +3 -2
  629. package/dist/tui/web-activity.d.ts.map +1 -1
  630. package/dist/tui/zen-free-refusal.d.ts +17 -0
  631. package/dist/tui/zen-free-refusal.d.ts.map +1 -0
  632. package/dist/usage-error.d.ts +15 -0
  633. package/dist/usage-error.d.ts.map +1 -0
  634. package/dist/warning-filter.d.ts +30 -0
  635. package/dist/warning-filter.d.ts.map +1 -0
  636. package/package.json +21 -10
  637. package/skills/schedule-task/SKILL.md +74 -20
  638. package/dist/browser/commands.js +0 -365
  639. package/dist/browser/commands.js.map +0 -1
  640. package/dist/browser/control.js +0 -140
  641. package/dist/browser/control.js.map +0 -1
  642. package/dist/browser/describe.js +0 -27
  643. package/dist/browser/describe.js.map +0 -1
  644. package/dist/checkpoints/store.js +0 -192
  645. package/dist/checkpoints/store.js.map +0 -1
  646. package/dist/checkpoints/wrap.js +0 -37
  647. package/dist/checkpoints/wrap.js.map +0 -1
  648. package/dist/cli.js +0 -602
  649. package/dist/cli.js.map +0 -1
  650. package/dist/commands/acp.js +0 -388
  651. package/dist/commands/acp.js.map +0 -1
  652. package/dist/commands/archive.js +0 -65
  653. package/dist/commands/archive.js.map +0 -1
  654. package/dist/commands/browser.js +0 -16
  655. package/dist/commands/browser.js.map +0 -1
  656. package/dist/commands/doctor.js +0 -267
  657. package/dist/commands/doctor.js.map +0 -1
  658. package/dist/commands/drain.js +0 -498
  659. package/dist/commands/drain.js.map +0 -1
  660. package/dist/commands/eval.js +0 -237
  661. package/dist/commands/eval.js.map +0 -1
  662. package/dist/commands/exec-flags.js +0 -334
  663. package/dist/commands/exec-flags.js.map +0 -1
  664. package/dist/commands/exec-json.js +0 -497
  665. package/dist/commands/exec-json.js.map +0 -1
  666. package/dist/commands/exec.js +0 -688
  667. package/dist/commands/exec.js.map +0 -1
  668. package/dist/commands/host-queries.js +0 -156
  669. package/dist/commands/host-queries.js.map +0 -1
  670. package/dist/commands/login.js +0 -315
  671. package/dist/commands/login.js.map +0 -1
  672. package/dist/commands/mcp-oauth-login.js +0 -213
  673. package/dist/commands/mcp-oauth-login.js.map +0 -1
  674. package/dist/commands/mcp.js +0 -461
  675. package/dist/commands/mcp.js.map +0 -1
  676. package/dist/commands/prior-messages.js +0 -329
  677. package/dist/commands/prior-messages.js.map +0 -1
  678. package/dist/commands/provider-wait.js +0 -65
  679. package/dist/commands/provider-wait.js.map +0 -1
  680. package/dist/commands/registry.js +0 -40
  681. package/dist/commands/registry.js.map +0 -1
  682. package/dist/commands/resident-flags.js +0 -193
  683. package/dist/commands/resident-flags.js.map +0 -1
  684. package/dist/commands/resident-learning.js +0 -293
  685. package/dist/commands/resident-learning.js.map +0 -1
  686. package/dist/commands/resident.js +0 -419
  687. package/dist/commands/resident.js.map +0 -1
  688. package/dist/commands/resume.js +0 -109
  689. package/dist/commands/resume.js.map +0 -1
  690. package/dist/commands/schedule.js +0 -131
  691. package/dist/commands/schedule.js.map +0 -1
  692. package/dist/commands/serve.js +0 -21
  693. package/dist/commands/serve.js.map +0 -1
  694. package/dist/commands/skills.js +0 -178
  695. package/dist/commands/skills.js.map +0 -1
  696. package/dist/commands/state.js +0 -110
  697. package/dist/commands/state.js.map +0 -1
  698. package/dist/commands/stdin.js +0 -69
  699. package/dist/commands/stdin.js.map +0 -1
  700. package/dist/commands/types.js +0 -2
  701. package/dist/commands/types.js.map +0 -1
  702. package/dist/commands/upgrade-progress.js +0 -54
  703. package/dist/commands/upgrade-progress.js.map +0 -1
  704. package/dist/commands/upgrade.js +0 -232
  705. package/dist/commands/upgrade.js.map +0 -1
  706. package/dist/commands/worktree.js +0 -86
  707. package/dist/commands/worktree.js.map +0 -1
  708. package/dist/config/composer-triggers.js +0 -80
  709. package/dist/config/composer-triggers.js.map +0 -1
  710. package/dist/config/debug.js +0 -126
  711. package/dist/config/debug.js.map +0 -1
  712. package/dist/config/load.js +0 -1208
  713. package/dist/config/load.js.map +0 -1
  714. package/dist/config/schema.js +0 -13
  715. package/dist/config/schema.js.map +0 -1
  716. package/dist/config/tool-result-screens.js +0 -104
  717. package/dist/config/tool-result-screens.js.map +0 -1
  718. package/dist/config/trusted-project-context.js +0 -28
  719. package/dist/config/trusted-project-context.js.map +0 -1
  720. package/dist/config/turn-guards.js +0 -46
  721. package/dist/config/turn-guards.js.map +0 -1
  722. package/dist/config/user-config.js +0 -118
  723. package/dist/config/user-config.js.map +0 -1
  724. package/dist/context/capabilities.js +0 -164
  725. package/dist/context/capabilities.js.map +0 -1
  726. package/dist/context/directories.js +0 -69
  727. package/dist/context/directories.js.map +0 -1
  728. package/dist/context/doctrine.js +0 -24
  729. package/dist/context/doctrine.js.map +0 -1
  730. package/dist/context/environment.js +0 -255
  731. package/dist/context/environment.js.map +0 -1
  732. package/dist/context/project-path.js +0 -16
  733. package/dist/context/project-path.js.map +0 -1
  734. package/dist/context/project-tracker.js +0 -217
  735. package/dist/context/project-tracker.js.map +0 -1
  736. package/dist/context/project.js +0 -256
  737. package/dist/context/project.js.map +0 -1
  738. package/dist/context/runtime-message.js +0 -30
  739. package/dist/context/runtime-message.js.map +0 -1
  740. package/dist/context/sandbox.js +0 -114
  741. package/dist/context/sandbox.js.map +0 -1
  742. package/dist/context/turn-snapshot.js +0 -122
  743. package/dist/context/turn-snapshot.js.map +0 -1
  744. package/dist/doctor/checks/browser.js +0 -63
  745. package/dist/doctor/checks/browser.js.map +0 -1
  746. package/dist/doctor/checks/chain.js +0 -211
  747. package/dist/doctor/checks/chain.js.map +0 -1
  748. package/dist/doctor/checks/credentials.js +0 -98
  749. package/dist/doctor/checks/credentials.js.map +0 -1
  750. package/dist/doctor/checks/index.js +0 -72
  751. package/dist/doctor/checks/index.js.map +0 -1
  752. package/dist/doctor/checks/invariants.js +0 -79
  753. package/dist/doctor/checks/invariants.js.map +0 -1
  754. package/dist/doctor/checks/logging.js +0 -69
  755. package/dist/doctor/checks/logging.js.map +0 -1
  756. package/dist/doctor/checks/providers.js +0 -30
  757. package/dist/doctor/checks/providers.js.map +0 -1
  758. package/dist/doctor/checks/runtime.js +0 -40
  759. package/dist/doctor/checks/runtime.js.map +0 -1
  760. package/dist/doctor/checks/sandbox.js +0 -76
  761. package/dist/doctor/checks/sandbox.js.map +0 -1
  762. package/dist/doctor/checks/scheduler.js +0 -74
  763. package/dist/doctor/checks/scheduler.js.map +0 -1
  764. package/dist/doctor/checks/session-export.js +0 -62
  765. package/dist/doctor/checks/session-export.js.map +0 -1
  766. package/dist/doctor/checks/telemetry.js +0 -58
  767. package/dist/doctor/checks/telemetry.js.map +0 -1
  768. package/dist/doctor/checks/vault.js +0 -67
  769. package/dist/doctor/checks/vault.js.map +0 -1
  770. package/dist/doctor/index.js +0 -3
  771. package/dist/doctor/index.js.map +0 -1
  772. package/dist/doctor/registry.js +0 -230
  773. package/dist/doctor/registry.js.map +0 -1
  774. package/dist/exit-codes.js +0 -62
  775. package/dist/exit-codes.js.map +0 -1
  776. package/dist/installation.js +0 -48
  777. package/dist/installation.js.map +0 -1
  778. package/dist/integrations/clipboard/image.js +0 -119
  779. package/dist/integrations/clipboard/image.js.map +0 -1
  780. package/dist/integrations/clipboard/text.js +0 -43
  781. package/dist/integrations/clipboard/text.js.map +0 -1
  782. package/dist/integrations/files/attachment-store.js +0 -86
  783. package/dist/integrations/files/attachment-store.js.map +0 -1
  784. package/dist/integrations/mcp/oauth-store.js +0 -549
  785. package/dist/integrations/mcp/oauth-store.js.map +0 -1
  786. package/dist/integrations/mcp/servers.js +0 -611
  787. package/dist/integrations/mcp/servers.js.map +0 -1
  788. package/dist/integrations/mcp/user-config.js +0 -92
  789. package/dist/integrations/mcp/user-config.js.map +0 -1
  790. package/dist/integrations/notifications/desktop/freedesktop.js +0 -33
  791. package/dist/integrations/notifications/desktop/freedesktop.js.map +0 -1
  792. package/dist/integrations/notifications/desktop/macos.js +0 -17
  793. package/dist/integrations/notifications/desktop/macos.js.map +0 -1
  794. package/dist/integrations/notifications/desktop/sanitize.js +0 -49
  795. package/dist/integrations/notifications/desktop/sanitize.js.map +0 -1
  796. package/dist/integrations/notifications/desktop/throttle.js +0 -39
  797. package/dist/integrations/notifications/desktop/throttle.js.map +0 -1
  798. package/dist/integrations/notifications/desktop/windows-toast.js +0 -56
  799. package/dist/integrations/notifications/desktop/windows-toast.js.map +0 -1
  800. package/dist/integrations/notifications/desktop.js +0 -199
  801. package/dist/integrations/notifications/desktop.js.map +0 -1
  802. package/dist/integrations/notifications/terminal.js +0 -46
  803. package/dist/integrations/notifications/terminal.js.map +0 -1
  804. package/dist/integrations/npm-invocation.js +0 -23
  805. package/dist/integrations/npm-invocation.js.map +0 -1
  806. package/dist/integrations/plugins/runtime.js +0 -189
  807. package/dist/integrations/plugins/runtime.js.map +0 -1
  808. package/dist/integrations/plugins/settings.js +0 -106
  809. package/dist/integrations/plugins/settings.js.map +0 -1
  810. package/dist/integrations/providers/access.js +0 -23
  811. package/dist/integrations/providers/access.js.map +0 -1
  812. package/dist/integrations/providers/chain-capabilities.js +0 -211
  813. package/dist/integrations/providers/chain-capabilities.js.map +0 -1
  814. package/dist/integrations/providers/codex-device-login.js +0 -195
  815. package/dist/integrations/providers/codex-device-login.js.map +0 -1
  816. package/dist/integrations/providers/codex-oauth.js +0 -95
  817. package/dist/integrations/providers/codex-oauth.js.map +0 -1
  818. package/dist/integrations/providers/credential-provider.js +0 -74
  819. package/dist/integrations/providers/credential-provider.js.map +0 -1
  820. package/dist/integrations/providers/credential-store.js +0 -657
  821. package/dist/integrations/providers/credential-store.js.map +0 -1
  822. package/dist/integrations/providers/current-credential.js +0 -45
  823. package/dist/integrations/providers/current-credential.js.map +0 -1
  824. package/dist/integrations/providers/discover.js +0 -313
  825. package/dist/integrations/providers/discover.js.map +0 -1
  826. package/dist/integrations/providers/gemini-credentials.js +0 -148
  827. package/dist/integrations/providers/gemini-credentials.js.map +0 -1
  828. package/dist/integrations/providers/harness-credentials.js +0 -344
  829. package/dist/integrations/providers/harness-credentials.js.map +0 -1
  830. package/dist/integrations/providers/identity.js +0 -64
  831. package/dist/integrations/providers/identity.js.map +0 -1
  832. package/dist/integrations/providers/index.js +0 -14
  833. package/dist/integrations/providers/index.js.map +0 -1
  834. package/dist/integrations/providers/keychain.js +0 -78
  835. package/dist/integrations/providers/keychain.js.map +0 -1
  836. package/dist/integrations/providers/model-reasoning.js +0 -51
  837. package/dist/integrations/providers/model-reasoning.js.map +0 -1
  838. package/dist/integrations/providers/oauth.js +0 -302
  839. package/dist/integrations/providers/oauth.js.map +0 -1
  840. package/dist/integrations/providers/preferences.js +0 -287
  841. package/dist/integrations/providers/preferences.js.map +0 -1
  842. package/dist/integrations/providers/register.js +0 -154
  843. package/dist/integrations/providers/register.js.map +0 -1
  844. package/dist/integrations/providers/registry.js +0 -289
  845. package/dist/integrations/providers/registry.js.map +0 -1
  846. package/dist/integrations/providers/setup.js +0 -158
  847. package/dist/integrations/providers/setup.js.map +0 -1
  848. package/dist/integrations/providers/subscription-login.js +0 -328
  849. package/dist/integrations/providers/subscription-login.js.map +0 -1
  850. package/dist/integrations/providers/zen-catalogue.js +0 -196
  851. package/dist/integrations/providers/zen-catalogue.js.map +0 -1
  852. package/dist/integrations/resident/foreground.js +0 -95
  853. package/dist/integrations/resident/foreground.js.map +0 -1
  854. package/dist/integrations/resident/inspection.js +0 -282
  855. package/dist/integrations/resident/inspection.js.map +0 -1
  856. package/dist/integrations/resident/learning-sources.js +0 -79
  857. package/dist/integrations/resident/learning-sources.js.map +0 -1
  858. package/dist/integrations/resident/learning-storage.js +0 -55
  859. package/dist/integrations/resident/learning-storage.js.map +0 -1
  860. package/dist/integrations/resident/lifecycle-errors.js +0 -15
  861. package/dist/integrations/resident/lifecycle-errors.js.map +0 -1
  862. package/dist/integrations/resident/owned-runner.js +0 -91
  863. package/dist/integrations/resident/owned-runner.js.map +0 -1
  864. package/dist/integrations/resident/runner-control.js +0 -238
  865. package/dist/integrations/resident/runner-control.js.map +0 -1
  866. package/dist/integrations/resident/runner-launch.js +0 -142
  867. package/dist/integrations/resident/runner-launch.js.map +0 -1
  868. package/dist/integrations/resident/runner-store.js +0 -284
  869. package/dist/integrations/resident/runner-store.js.map +0 -1
  870. package/dist/integrations/resident/session-log-reads.js +0 -125
  871. package/dist/integrations/resident/session-log-reads.js.map +0 -1
  872. package/dist/integrations/resident/session-step.js +0 -476
  873. package/dist/integrations/resident/session-step.js.map +0 -1
  874. package/dist/integrations/resident/storage.js +0 -183
  875. package/dist/integrations/resident/storage.js.map +0 -1
  876. package/dist/integrations/resident/tool-evidence.js +0 -123
  877. package/dist/integrations/resident/tool-evidence.js.map +0 -1
  878. package/dist/integrations/resident/verification.js +0 -109
  879. package/dist/integrations/resident/verification.js.map +0 -1
  880. package/dist/integrations/sessions/checkpoint-view.js +0 -48
  881. package/dist/integrations/sessions/checkpoint-view.js.map +0 -1
  882. package/dist/integrations/sessions/context-inventory.js +0 -44
  883. package/dist/integrations/sessions/context-inventory.js.map +0 -1
  884. package/dist/integrations/sessions/conversation-search.js +0 -572
  885. package/dist/integrations/sessions/conversation-search.js.map +0 -1
  886. package/dist/integrations/sessions/display-title.js +0 -5
  887. package/dist/integrations/sessions/display-title.js.map +0 -1
  888. package/dist/integrations/sessions/evidence-page-validation.js +0 -74
  889. package/dist/integrations/sessions/evidence-page-validation.js.map +0 -1
  890. package/dist/integrations/sessions/evidence-recall.js +0 -117
  891. package/dist/integrations/sessions/evidence-recall.js.map +0 -1
  892. package/dist/integrations/sessions/store.js +0 -780
  893. package/dist/integrations/sessions/store.js.map +0 -1
  894. package/dist/integrations/sessions/task-context.js +0 -96
  895. package/dist/integrations/sessions/task-context.js.map +0 -1
  896. package/dist/integrations/sessions/transcript-export.js +0 -342
  897. package/dist/integrations/sessions/transcript-export.js.map +0 -1
  898. package/dist/integrations/state/home.js +0 -17
  899. package/dist/integrations/state/home.js.map +0 -1
  900. package/dist/integrations/state/identity.js +0 -49
  901. package/dist/integrations/state/identity.js.map +0 -1
  902. package/dist/integrations/state/immutable-json.js +0 -38
  903. package/dist/integrations/state/immutable-json.js.map +0 -1
  904. package/dist/integrations/state/private-directory.js +0 -43
  905. package/dist/integrations/state/private-directory.js.map +0 -1
  906. package/dist/integrations/state/project.js +0 -13
  907. package/dist/integrations/state/project.js.map +0 -1
  908. package/dist/integrations/state/report.js +0 -626
  909. package/dist/integrations/state/report.js.map +0 -1
  910. package/dist/integrations/state/retention.js +0 -18
  911. package/dist/integrations/state/retention.js.map +0 -1
  912. package/dist/integrations/subagents/NamzuCliAgent.js +0 -9
  913. package/dist/integrations/subagents/NamzuCliAgent.js.map +0 -1
  914. package/dist/integrations/subagents/activity.js +0 -759
  915. package/dist/integrations/subagents/activity.js.map +0 -1
  916. package/dist/integrations/subagents/batches.js +0 -172
  917. package/dist/integrations/subagents/batches.js.map +0 -1
  918. package/dist/integrations/subagents/definitions.js +0 -26
  919. package/dist/integrations/subagents/definitions.js.map +0 -1
  920. package/dist/integrations/subagents/model-effort.js +0 -12
  921. package/dist/integrations/subagents/model-effort.js.map +0 -1
  922. package/dist/integrations/subagents/parent.js +0 -47
  923. package/dist/integrations/subagents/parent.js.map +0 -1
  924. package/dist/integrations/subagents/policy.js +0 -3
  925. package/dist/integrations/subagents/policy.js.map +0 -1
  926. package/dist/integrations/subagents/replay.js +0 -295
  927. package/dist/integrations/subagents/replay.js.map +0 -1
  928. package/dist/integrations/subagents/runtime.js +0 -1317
  929. package/dist/integrations/subagents/runtime.js.map +0 -1
  930. package/dist/integrations/subagents/saved-agents.js +0 -102
  931. package/dist/integrations/subagents/saved-agents.js.map +0 -1
  932. package/dist/integrations/subagents/slash.js +0 -45
  933. package/dist/integrations/subagents/slash.js.map +0 -1
  934. package/dist/integrations/subagents/worktree-driver.js +0 -72
  935. package/dist/integrations/subagents/worktree-driver.js.map +0 -1
  936. package/dist/integrations/telemetry/session-export.js +0 -119
  937. package/dist/integrations/telemetry/session-export.js.map +0 -1
  938. package/dist/integrations/trust/store.js +0 -73
  939. package/dist/integrations/trust/store.js.map +0 -1
  940. package/dist/integrations/updates.js +0 -115
  941. package/dist/integrations/updates.js.map +0 -1
  942. package/dist/integrations/web/exa-search.js +0 -154
  943. package/dist/integrations/web/exa-search.js.map +0 -1
  944. package/dist/integrations/web/open-url.js +0 -73
  945. package/dist/integrations/web/open-url.js.map +0 -1
  946. package/dist/integrations/web/search.js +0 -68
  947. package/dist/integrations/web/search.js.map +0 -1
  948. package/dist/integrations/worktrees/managed.js +0 -231
  949. package/dist/integrations/worktrees/managed.js.map +0 -1
  950. package/dist/logging.js +0 -115
  951. package/dist/logging.js.map +0 -1
  952. package/dist/memory/io.js +0 -177
  953. package/dist/memory/io.js.map +0 -1
  954. package/dist/memory/presentation.js +0 -76
  955. package/dist/memory/presentation.js.map +0 -1
  956. package/dist/memory/store.js +0 -180
  957. package/dist/memory/store.js.map +0 -1
  958. package/dist/memory/typed.js +0 -336
  959. package/dist/memory/typed.js.map +0 -1
  960. package/dist/output/formatter.js +0 -16
  961. package/dist/output/formatter.js.map +0 -1
  962. package/dist/output/index.js +0 -22
  963. package/dist/output/index.js.map +0 -1
  964. package/dist/output/json.js +0 -51
  965. package/dist/output/json.js.map +0 -1
  966. package/dist/output/text.js +0 -50
  967. package/dist/output/text.js.map +0 -1
  968. package/dist/output/yaml.js +0 -26
  969. package/dist/output/yaml.js.map +0 -1
  970. package/dist/output-schema.js +0 -18
  971. package/dist/output-schema.js.map +0 -1
  972. package/dist/permissions/browser-sites.js +0 -270
  973. package/dist/permissions/browser-sites.js.map +0 -1
  974. package/dist/permissions/canonical-project.js +0 -13
  975. package/dist/permissions/canonical-project.js.map +0 -1
  976. package/dist/permissions/checks.js +0 -128
  977. package/dist/permissions/checks.js.map +0 -1
  978. package/dist/permissions/headless-trust.js +0 -86
  979. package/dist/permissions/headless-trust.js.map +0 -1
  980. package/dist/permissions/live-mode.js +0 -62
  981. package/dist/permissions/live-mode.js.map +0 -1
  982. package/dist/permissions/mode.js +0 -65
  983. package/dist/permissions/mode.js.map +0 -1
  984. package/dist/permissions/rules.js +0 -358
  985. package/dist/permissions/rules.js.map +0 -1
  986. package/dist/release-notes.js +0 -64
  987. package/dist/release-notes.js.map +0 -1
  988. package/dist/resume-invocation.js +0 -24
  989. package/dist/resume-invocation.js.map +0 -1
  990. package/dist/schedule/build.js +0 -374
  991. package/dist/schedule/build.js.map +0 -1
  992. package/dist/schedule/changes.js +0 -78
  993. package/dist/schedule/changes.js.map +0 -1
  994. package/dist/schedule/commands/add.js +0 -603
  995. package/dist/schedule/commands/add.js.map +0 -1
  996. package/dist/schedule/commands/args.js +0 -80
  997. package/dist/schedule/commands/args.js.map +0 -1
  998. package/dist/schedule/commands/confirm-prompt.js +0 -21
  999. package/dist/schedule/commands/confirm-prompt.js.map +0 -1
  1000. package/dist/schedule/commands/lifecycle.js +0 -586
  1001. package/dist/schedule/commands/lifecycle.js.map +0 -1
  1002. package/dist/schedule/commands/list.js +0 -260
  1003. package/dist/schedule/commands/list.js.map +0 -1
  1004. package/dist/schedule/commands/logs.js +0 -106
  1005. package/dist/schedule/commands/logs.js.map +0 -1
  1006. package/dist/schedule/commands/service.js +0 -458
  1007. package/dist/schedule/commands/service.js.map +0 -1
  1008. package/dist/schedule/daemon/daemon.js +0 -1265
  1009. package/dist/schedule/daemon/daemon.js.map +0 -1
  1010. package/dist/schedule/daemon/endpoint.js +0 -158
  1011. package/dist/schedule/daemon/endpoint.js.map +0 -1
  1012. package/dist/schedule/daemon/exit.js +0 -8
  1013. package/dist/schedule/daemon/exit.js.map +0 -1
  1014. package/dist/schedule/daemon/log.js +0 -53
  1015. package/dist/schedule/daemon/log.js.map +0 -1
  1016. package/dist/schedule/daemon/notify.js +0 -158
  1017. package/dist/schedule/daemon/notify.js.map +0 -1
  1018. package/dist/schedule/daemon/retention.js +0 -46
  1019. package/dist/schedule/daemon/retention.js.map +0 -1
  1020. package/dist/schedule/daemon/sessions.js +0 -52
  1021. package/dist/schedule/daemon/sessions.js.map +0 -1
  1022. package/dist/schedule/env.js +0 -106
  1023. package/dist/schedule/env.js.map +0 -1
  1024. package/dist/schedule/fire/browser-preflight.js +0 -73
  1025. package/dist/schedule/fire/browser-preflight.js.map +0 -1
  1026. package/dist/schedule/fire/calls.js +0 -114
  1027. package/dist/schedule/fire/calls.js.map +0 -1
  1028. package/dist/schedule/fire/fire.js +0 -681
  1029. package/dist/schedule/fire/fire.js.map +0 -1
  1030. package/dist/schedule/fire/result.js +0 -19
  1031. package/dist/schedule/fire/result.js.map +0 -1
  1032. package/dist/schedule/fire/run-script.js +0 -81
  1033. package/dist/schedule/fire/run-script.js.map +0 -1
  1034. package/dist/schedule/fire/unattended-note.js +0 -51
  1035. package/dist/schedule/fire/unattended-note.js.map +0 -1
  1036. package/dist/schedule/fire/wake-gate.js +0 -90
  1037. package/dist/schedule/fire/wake-gate.js.map +0 -1
  1038. package/dist/schedule/floor.js +0 -1561
  1039. package/dist/schedule/floor.js.map +0 -1
  1040. package/dist/schedule/folder.js +0 -84
  1041. package/dist/schedule/folder.js.map +0 -1
  1042. package/dist/schedule/paths.js +0 -53
  1043. package/dist/schedule/paths.js.map +0 -1
  1044. package/dist/schedule/policy.js +0 -414
  1045. package/dist/schedule/policy.js.map +0 -1
  1046. package/dist/schedule/resume-command.js +0 -72
  1047. package/dist/schedule/resume-command.js.map +0 -1
  1048. package/dist/schedule/script-check.js +0 -146
  1049. package/dist/schedule/script-check.js.map +0 -1
  1050. package/dist/schedule/script-shell.js +0 -5
  1051. package/dist/schedule/script-shell.js.map +0 -1
  1052. package/dist/schedule/service/detect.js +0 -29
  1053. package/dist/schedule/service/detect.js.map +0 -1
  1054. package/dist/schedule/service/index.js +0 -361
  1055. package/dist/schedule/service/index.js.map +0 -1
  1056. package/dist/schedule/service/launchd.js +0 -84
  1057. package/dist/schedule/service/launchd.js.map +0 -1
  1058. package/dist/schedule/service/manifest.js +0 -16
  1059. package/dist/schedule/service/manifest.js.map +0 -1
  1060. package/dist/schedule/service/names.js +0 -22
  1061. package/dist/schedule/service/names.js.map +0 -1
  1062. package/dist/schedule/service/quote.js +0 -64
  1063. package/dist/schedule/service/quote.js.map +0 -1
  1064. package/dist/schedule/service/runner.js +0 -31
  1065. package/dist/schedule/service/runner.js.map +0 -1
  1066. package/dist/schedule/service/systemd.js +0 -96
  1067. package/dist/schedule/service/systemd.js.map +0 -1
  1068. package/dist/schedule/service/windows-task.js +0 -199
  1069. package/dist/schedule/service/windows-task.js.map +0 -1
  1070. package/dist/schedule/service/wsl.js +0 -121
  1071. package/dist/schedule/service/wsl.js.map +0 -1
  1072. package/dist/schedule/store/atomic.js +0 -138
  1073. package/dist/schedule/store/atomic.js.map +0 -1
  1074. package/dist/schedule/store/claims.js +0 -57
  1075. package/dist/schedule/store/claims.js.map +0 -1
  1076. package/dist/schedule/store/digest.js +0 -139
  1077. package/dist/schedule/store/digest.js.map +0 -1
  1078. package/dist/schedule/store/history.js +0 -117
  1079. package/dist/schedule/store/history.js.map +0 -1
  1080. package/dist/schedule/store/jobs.js +0 -277
  1081. package/dist/schedule/store/jobs.js.map +0 -1
  1082. package/dist/schedule/store/state.js +0 -38
  1083. package/dist/schedule/store/state.js.map +0 -1
  1084. package/dist/schedule/types.js +0 -33
  1085. package/dist/schedule/types.js.map +0 -1
  1086. package/dist/schedule/visible-source.js +0 -59
  1087. package/dist/schedule/visible-source.js.map +0 -1
  1088. package/dist/skills/audit.js +0 -75
  1089. package/dist/skills/audit.js.map +0 -1
  1090. package/dist/skills/catalog.js +0 -226
  1091. package/dist/skills/catalog.js.map +0 -1
  1092. package/dist/skills/directory.js +0 -51
  1093. package/dist/skills/directory.js.map +0 -1
  1094. package/dist/skills/save.js +0 -344
  1095. package/dist/skills/save.js.map +0 -1
  1096. package/dist/skills/store.js +0 -351
  1097. package/dist/skills/store.js.map +0 -1
  1098. package/dist/termination.js +0 -143
  1099. package/dist/termination.js.map +0 -1
  1100. package/dist/test-support/toolset.js +0 -27
  1101. package/dist/test-support/toolset.js.map +0 -1
  1102. package/dist/tui/AgentExplorer.js +0 -789
  1103. package/dist/tui/AgentExplorer.js.map +0 -1
  1104. package/dist/tui/App.js +0 -8499
  1105. package/dist/tui/App.js.map +0 -1
  1106. package/dist/tui/BackgroundJobsPanel.js +0 -129
  1107. package/dist/tui/BackgroundJobsPanel.js.map +0 -1
  1108. package/dist/tui/BrandHeader.js +0 -14
  1109. package/dist/tui/BrandHeader.js.map +0 -1
  1110. package/dist/tui/Checklist.js +0 -90
  1111. package/dist/tui/Checklist.js.map +0 -1
  1112. package/dist/tui/ChoicePicker.js +0 -64
  1113. package/dist/tui/ChoicePicker.js.map +0 -1
  1114. package/dist/tui/Composer.js +0 -939
  1115. package/dist/tui/Composer.js.map +0 -1
  1116. package/dist/tui/ComposerFrame.js +0 -79
  1117. package/dist/tui/ComposerFrame.js.map +0 -1
  1118. package/dist/tui/CopyPicker.js +0 -19
  1119. package/dist/tui/CopyPicker.js.map +0 -1
  1120. package/dist/tui/EditPromptPicker.js +0 -17
  1121. package/dist/tui/EditPromptPicker.js.map +0 -1
  1122. package/dist/tui/EffortSlider.js +0 -134
  1123. package/dist/tui/EffortSlider.js.map +0 -1
  1124. package/dist/tui/LiveActivity.js +0 -89
  1125. package/dist/tui/LiveActivity.js.map +0 -1
  1126. package/dist/tui/Markdown.js +0 -137
  1127. package/dist/tui/Markdown.js.map +0 -1
  1128. package/dist/tui/PendingInputPanel.js +0 -108
  1129. package/dist/tui/PendingInputPanel.js.map +0 -1
  1130. package/dist/tui/PermissionOverlay.js +0 -278
  1131. package/dist/tui/PermissionOverlay.js.map +0 -1
  1132. package/dist/tui/Picker.js +0 -1310
  1133. package/dist/tui/Picker.js.map +0 -1
  1134. package/dist/tui/ProviderSetup.js +0 -125
  1135. package/dist/tui/ProviderSetup.js.map +0 -1
  1136. package/dist/tui/ResumePicker.js +0 -34
  1137. package/dist/tui/ResumePicker.js.map +0 -1
  1138. package/dist/tui/SaveSkillOverlay.js +0 -118
  1139. package/dist/tui/SaveSkillOverlay.js.map +0 -1
  1140. package/dist/tui/ScheduleReviewOverlay.js +0 -166
  1141. package/dist/tui/ScheduleReviewOverlay.js.map +0 -1
  1142. package/dist/tui/StatusBar.js +0 -182
  1143. package/dist/tui/StatusBar.js.map +0 -1
  1144. package/dist/tui/StatusPanel.js +0 -11
  1145. package/dist/tui/StatusPanel.js.map +0 -1
  1146. package/dist/tui/TaskList.js +0 -43
  1147. package/dist/tui/TaskList.js.map +0 -1
  1148. package/dist/tui/TextPrompt.js +0 -185
  1149. package/dist/tui/TextPrompt.js.map +0 -1
  1150. package/dist/tui/ToolOutputViewer.js +0 -39
  1151. package/dist/tui/ToolOutputViewer.js.map +0 -1
  1152. package/dist/tui/Transcript.js +0 -235
  1153. package/dist/tui/Transcript.js.map +0 -1
  1154. package/dist/tui/TrustPrompt.js +0 -13
  1155. package/dist/tui/TrustPrompt.js.map +0 -1
  1156. package/dist/tui/ViewportBound.js +0 -55
  1157. package/dist/tui/ViewportBound.js.map +0 -1
  1158. package/dist/tui/agent-transcript-rows.js +0 -115
  1159. package/dist/tui/agent-transcript-rows.js.map +0 -1
  1160. package/dist/tui/agent.js +0 -4301
  1161. package/dist/tui/agent.js.map +0 -1
  1162. package/dist/tui/browser-notices.js +0 -107
  1163. package/dist/tui/browser-notices.js.map +0 -1
  1164. package/dist/tui/choice-selection.js +0 -38
  1165. package/dist/tui/choice-selection.js.map +0 -1
  1166. package/dist/tui/compact-transcript.js +0 -46
  1167. package/dist/tui/compact-transcript.js.map +0 -1
  1168. package/dist/tui/consent-timing.js +0 -48
  1169. package/dist/tui/consent-timing.js.map +0 -1
  1170. package/dist/tui/conversation-evidence-view.js +0 -96
  1171. package/dist/tui/conversation-evidence-view.js.map +0 -1
  1172. package/dist/tui/conversation-history.js +0 -33
  1173. package/dist/tui/conversation-history.js.map +0 -1
  1174. package/dist/tui/copy-targets.js +0 -189
  1175. package/dist/tui/copy-targets.js.map +0 -1
  1176. package/dist/tui/credential-entry.js +0 -134
  1177. package/dist/tui/credential-entry.js.map +0 -1
  1178. package/dist/tui/edit-prompts.js +0 -35
  1179. package/dist/tui/edit-prompts.js.map +0 -1
  1180. package/dist/tui/exit-summary.js +0 -30
  1181. package/dist/tui/exit-summary.js.map +0 -1
  1182. package/dist/tui/external-editor.js +0 -169
  1183. package/dist/tui/external-editor.js.map +0 -1
  1184. package/dist/tui/hypermode.js +0 -58
  1185. package/dist/tui/hypermode.js.map +0 -1
  1186. package/dist/tui/index.js +0 -81
  1187. package/dist/tui/index.js.map +0 -1
  1188. package/dist/tui/live-window.js +0 -281
  1189. package/dist/tui/live-window.js.map +0 -1
  1190. package/dist/tui/log-pane.js +0 -100
  1191. package/dist/tui/log-pane.js.map +0 -1
  1192. package/dist/tui/login-prompt.js +0 -105
  1193. package/dist/tui/login-prompt.js.map +0 -1
  1194. package/dist/tui/logo.js +0 -9
  1195. package/dist/tui/logo.js.map +0 -1
  1196. package/dist/tui/markdown-block-cache.js +0 -76
  1197. package/dist/tui/markdown-block-cache.js.map +0 -1
  1198. package/dist/tui/markdown-table.js +0 -175
  1199. package/dist/tui/markdown-table.js.map +0 -1
  1200. package/dist/tui/markdown-wrap.js +0 -189
  1201. package/dist/tui/markdown-wrap.js.map +0 -1
  1202. package/dist/tui/markdownParser.js +0 -237
  1203. package/dist/tui/markdownParser.js.map +0 -1
  1204. package/dist/tui/mentions.js +0 -150
  1205. package/dist/tui/mentions.js.map +0 -1
  1206. package/dist/tui/model-catalogue-view.js +0 -75
  1207. package/dist/tui/model-catalogue-view.js.map +0 -1
  1208. package/dist/tui/model-choices.js +0 -157
  1209. package/dist/tui/model-choices.js.map +0 -1
  1210. package/dist/tui/model-search.js +0 -28
  1211. package/dist/tui/model-search.js.map +0 -1
  1212. package/dist/tui/model-selection-intent.js +0 -96
  1213. package/dist/tui/model-selection-intent.js.map +0 -1
  1214. package/dist/tui/model-switch-tool.js +0 -74
  1215. package/dist/tui/model-switch-tool.js.map +0 -1
  1216. package/dist/tui/model-switch.js +0 -106
  1217. package/dist/tui/model-switch.js.map +0 -1
  1218. package/dist/tui/notices.js +0 -27
  1219. package/dist/tui/notices.js.map +0 -1
  1220. package/dist/tui/open-browser.js +0 -147
  1221. package/dist/tui/open-browser.js.map +0 -1
  1222. package/dist/tui/permission-review.js +0 -858
  1223. package/dist/tui/permission-review.js.map +0 -1
  1224. package/dist/tui/plugin-view.js +0 -59
  1225. package/dist/tui/plugin-view.js.map +0 -1
  1226. package/dist/tui/provider-list.js +0 -327
  1227. package/dist/tui/provider-list.js.map +0 -1
  1228. package/dist/tui/provider-selection.js +0 -16
  1229. package/dist/tui/provider-selection.js.map +0 -1
  1230. package/dist/tui/schedule/host-commands.js +0 -428
  1231. package/dist/tui/schedule/host-commands.js.map +0 -1
  1232. package/dist/tui/schedule/integration.js +0 -150
  1233. package/dist/tui/schedule/integration.js.map +0 -1
  1234. package/dist/tui/schedule/loop-host.js +0 -153
  1235. package/dist/tui/schedule/loop-host.js.map +0 -1
  1236. package/dist/tui/schedule/resume.js +0 -333
  1237. package/dist/tui/schedule/resume.js.map +0 -1
  1238. package/dist/tui/schedule/startup.js +0 -121
  1239. package/dist/tui/schedule/startup.js.map +0 -1
  1240. package/dist/tui/schedule/tool-host.js +0 -619
  1241. package/dist/tui/schedule/tool-host.js.map +0 -1
  1242. package/dist/tui/selection-window.js +0 -37
  1243. package/dist/tui/selection-window.js.map +0 -1
  1244. package/dist/tui/shell-escape.js +0 -110
  1245. package/dist/tui/shell-escape.js.map +0 -1
  1246. package/dist/tui/skills/learning.js +0 -131
  1247. package/dist/tui/skills/learning.js.map +0 -1
  1248. package/dist/tui/skills/suggest-setting.js +0 -55
  1249. package/dist/tui/skills/suggest-setting.js.map +0 -1
  1250. package/dist/tui/skills/suggestion-ledger.js +0 -52
  1251. package/dist/tui/skills/suggestion-ledger.js.map +0 -1
  1252. package/dist/tui/slashCommands.js +0 -1588
  1253. package/dist/tui/slashCommands.js.map +0 -1
  1254. package/dist/tui/status-card.js +0 -30
  1255. package/dist/tui/status-card.js.map +0 -1
  1256. package/dist/tui/status-panel-layout.js +0 -42
  1257. package/dist/tui/status-panel-layout.js.map +0 -1
  1258. package/dist/tui/stream-blocks.js +0 -187
  1259. package/dist/tui/stream-blocks.js.map +0 -1
  1260. package/dist/tui/task-activity.js +0 -157
  1261. package/dist/tui/task-activity.js.map +0 -1
  1262. package/dist/tui/terminal-choice-text.js +0 -118
  1263. package/dist/tui/terminal-choice-text.js.map +0 -1
  1264. package/dist/tui/terminal-display.js +0 -65
  1265. package/dist/tui/terminal-display.js.map +0 -1
  1266. package/dist/tui/terminal-hyperlinks.js +0 -70
  1267. package/dist/tui/terminal-hyperlinks.js.map +0 -1
  1268. package/dist/tui/theme.js +0 -34
  1269. package/dist/tui/theme.js.map +0 -1
  1270. package/dist/tui/triggers/analyze.js +0 -221
  1271. package/dist/tui/triggers/analyze.js.map +0 -1
  1272. package/dist/tui/triggers/context-text.js +0 -44
  1273. package/dist/tui/triggers/context-text.js.map +0 -1
  1274. package/dist/tui/triggers/copy.js +0 -163
  1275. package/dist/tui/triggers/copy.js.map +0 -1
  1276. package/dist/tui/triggers/detect.js +0 -295
  1277. package/dist/tui/triggers/detect.js.map +0 -1
  1278. package/dist/tui/triggers/fold.js +0 -44
  1279. package/dist/tui/triggers/fold.js.map +0 -1
  1280. package/dist/tui/triggers/pattern.js +0 -243
  1281. package/dist/tui/triggers/pattern.js.map +0 -1
  1282. package/dist/tui/triggers/provenance.js +0 -98
  1283. package/dist/tui/triggers/provenance.js.map +0 -1
  1284. package/dist/tui/triggers/registry.js +0 -164
  1285. package/dist/tui/triggers/registry.js.map +0 -1
  1286. package/dist/tui/triggers/setting.js +0 -61
  1287. package/dist/tui/triggers/setting.js.map +0 -1
  1288. package/dist/tui/triggers/verbs.js +0 -140
  1289. package/dist/tui/triggers/verbs.js.map +0 -1
  1290. package/dist/tui/turn-interruption.js +0 -160
  1291. package/dist/tui/turn-interruption.js.map +0 -1
  1292. package/dist/tui/turn-limits-settings.js +0 -88
  1293. package/dist/tui/turn-limits-settings.js.map +0 -1
  1294. package/dist/tui/types.js +0 -7
  1295. package/dist/tui/types.js.map +0 -1
  1296. package/dist/tui/units.js +0 -20
  1297. package/dist/tui/units.js.map +0 -1
  1298. package/dist/tui/use-selection-index.js +0 -13
  1299. package/dist/tui/use-selection-index.js.map +0 -1
  1300. package/dist/tui/web-activity.js +0 -105
  1301. package/dist/tui/web-activity.js.map +0 -1
  1302. package/dist/tui/workspace-diff.js +0 -101
  1303. package/dist/tui/workspace-diff.js.map +0 -1
  1304. package/dist/tui/workspace-review.js +0 -67
  1305. package/dist/tui/workspace-review.js.map +0 -1
  1306. package/dist/user-commands/store.js +0 -235
  1307. package/dist/user-commands/store.js.map +0 -1
  1308. package/dist/version.js +0 -23
  1309. 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