@pentoshi/clai 3.6.0 → 3.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/dist/agent/compaction-summary.d.ts +17 -0
  2. package/dist/agent/compaction-summary.js +64 -0
  3. package/dist/agent/compaction-summary.js.map +1 -0
  4. package/dist/agent/confirm-port.d.ts +3 -1
  5. package/dist/agent/confirm-port.js +5 -1
  6. package/dist/agent/confirm-port.js.map +1 -1
  7. package/dist/agent/context-manager.js +45 -22
  8. package/dist/agent/context-manager.js.map +1 -1
  9. package/dist/agent/events.d.ts +6 -0
  10. package/dist/agent/evidence-governor.d.ts +37 -0
  11. package/dist/agent/evidence-governor.js +70 -0
  12. package/dist/agent/evidence-governor.js.map +1 -0
  13. package/dist/agent/loop-guard.d.ts +29 -11
  14. package/dist/agent/loop-guard.js +93 -39
  15. package/dist/agent/loop-guard.js.map +1 -1
  16. package/dist/agent/must-continue.d.ts +56 -0
  17. package/dist/agent/must-continue.js +240 -0
  18. package/dist/agent/must-continue.js.map +1 -0
  19. package/dist/agent/outcomes.d.ts +101 -0
  20. package/dist/agent/outcomes.js +359 -0
  21. package/dist/agent/outcomes.js.map +1 -0
  22. package/dist/agent/plan-decision.d.ts +33 -0
  23. package/dist/agent/plan-decision.js +104 -0
  24. package/dist/agent/plan-decision.js.map +1 -0
  25. package/dist/agent/plan-tool.d.ts +12 -0
  26. package/dist/agent/plan-tool.js +309 -104
  27. package/dist/agent/plan-tool.js.map +1 -1
  28. package/dist/agent/project-root.js +3 -0
  29. package/dist/agent/project-root.js.map +1 -1
  30. package/dist/agent/prompt-composer.d.ts +21 -0
  31. package/dist/agent/prompt-composer.js +46 -0
  32. package/dist/agent/prompt-composer.js.map +1 -0
  33. package/dist/agent/runner.d.ts +11 -1
  34. package/dist/agent/runner.js +1115 -965
  35. package/dist/agent/runner.js.map +1 -1
  36. package/dist/agent/scope-context.d.ts +3 -0
  37. package/dist/agent/scope-context.js +24 -0
  38. package/dist/agent/scope-context.js.map +1 -0
  39. package/dist/agent/scratch-write.d.ts +4 -0
  40. package/dist/agent/scratch-write.js +54 -0
  41. package/dist/agent/scratch-write.js.map +1 -0
  42. package/dist/agent/session-policy.d.ts +7 -0
  43. package/dist/agent/session-policy.js +61 -0
  44. package/dist/agent/session-policy.js.map +1 -1
  45. package/dist/agent/session-state.d.ts +41 -0
  46. package/dist/agent/session-state.js +107 -0
  47. package/dist/agent/session-state.js.map +1 -0
  48. package/dist/agent/step-budget.d.ts +14 -0
  49. package/dist/agent/step-budget.js +26 -0
  50. package/dist/agent/step-budget.js.map +1 -0
  51. package/dist/agent/task-analyzer.d.ts +12 -3
  52. package/dist/agent/task-analyzer.js +263 -23
  53. package/dist/agent/task-analyzer.js.map +1 -1
  54. package/dist/agent/task-evidence.d.ts +99 -29
  55. package/dist/agent/task-evidence.js +480 -91
  56. package/dist/agent/task-evidence.js.map +1 -1
  57. package/dist/agent/task-plan.d.ts +57 -0
  58. package/dist/agent/task-plan.js +147 -1
  59. package/dist/agent/task-plan.js.map +1 -1
  60. package/dist/agent/tool-call-parser.d.ts +4 -12
  61. package/dist/agent/tool-call-parser.js +34 -67
  62. package/dist/agent/tool-call-parser.js.map +1 -1
  63. package/dist/agent/tool-history.d.ts +7 -0
  64. package/dist/agent/tool-history.js +50 -0
  65. package/dist/agent/tool-history.js.map +1 -1
  66. package/dist/agent/tool-output-formatting.d.ts +13 -1
  67. package/dist/agent/tool-output-formatting.js +75 -22
  68. package/dist/agent/tool-output-formatting.js.map +1 -1
  69. package/dist/agent/turn-outcome.d.ts +11 -0
  70. package/dist/agent/turn-outcome.js +17 -0
  71. package/dist/agent/turn-outcome.js.map +1 -0
  72. package/dist/agent/turn-state.d.ts +11 -0
  73. package/dist/agent/turn-state.js +28 -0
  74. package/dist/agent/turn-state.js.map +1 -0
  75. package/dist/agent/workspace-orient.d.ts +11 -0
  76. package/dist/agent/workspace-orient.js +103 -12
  77. package/dist/agent/workspace-orient.js.map +1 -1
  78. package/dist/app/adapters/agent-event-adapter.d.ts +2 -13
  79. package/dist/app/adapters/agent-event-adapter.js +63 -25
  80. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  81. package/dist/app/adapters/current-agent-adapter.d.ts +0 -5
  82. package/dist/app/adapters/current-agent-adapter.js +4 -7
  83. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  84. package/dist/app/adapters/current-jobs-adapter.js +1 -0
  85. package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
  86. package/dist/app/adapters/current-terminal-adapter.d.ts +0 -7
  87. package/dist/app/adapters/current-terminal-adapter.js +0 -7
  88. package/dist/app/adapters/current-terminal-adapter.js.map +1 -1
  89. package/dist/app/adapters/current-updates-adapter.d.ts +0 -5
  90. package/dist/app/adapters/current-updates-adapter.js +0 -5
  91. package/dist/app/adapters/current-updates-adapter.js.map +1 -1
  92. package/dist/app/adapters/in-memory-clipboard-adapter.d.ts +0 -5
  93. package/dist/app/adapters/in-memory-clipboard-adapter.js +0 -5
  94. package/dist/app/adapters/in-memory-clipboard-adapter.js.map +1 -1
  95. package/dist/app/commands/command.d.ts +0 -5
  96. package/dist/app/commands/command.js.map +1 -1
  97. package/dist/app/commands/registry.d.ts +0 -14
  98. package/dist/app/commands/registry.js +0 -20
  99. package/dist/app/commands/registry.js.map +1 -1
  100. package/dist/app/controllers/disposable.d.ts +0 -5
  101. package/dist/app/controllers/disposable.js +0 -5
  102. package/dist/app/controllers/disposable.js.map +1 -1
  103. package/dist/app/controllers/job-controller.d.ts +1 -5
  104. package/dist/app/controllers/job-controller.js +0 -4
  105. package/dist/app/controllers/job-controller.js.map +1 -1
  106. package/dist/app/controllers/plan-controller.d.ts +5 -8
  107. package/dist/app/controllers/plan-controller.js +30 -12
  108. package/dist/app/controllers/plan-controller.js.map +1 -1
  109. package/dist/app/controllers/session-controller.d.ts +17 -32
  110. package/dist/app/controllers/session-controller.js +56 -35
  111. package/dist/app/controllers/session-controller.js.map +1 -1
  112. package/dist/app/controllers/turn-controller.d.ts +2 -6
  113. package/dist/app/controllers/turn-controller.js +8 -8
  114. package/dist/app/controllers/turn-controller.js.map +1 -1
  115. package/dist/app/events/app-event.d.ts +4 -7
  116. package/dist/app/events/app-event.js +0 -6
  117. package/dist/app/events/app-event.js.map +1 -1
  118. package/dist/app/events/event-buffer.d.ts +6 -17
  119. package/dist/app/events/event-buffer.js +27 -24
  120. package/dist/app/events/event-buffer.js.map +1 -1
  121. package/dist/app/events/sequencer.d.ts +0 -9
  122. package/dist/app/events/sequencer.js +0 -4
  123. package/dist/app/events/sequencer.js.map +1 -1
  124. package/dist/app/ports/agent-port.d.ts +13 -3
  125. package/dist/app/ports/clipboard-port.d.ts +0 -5
  126. package/dist/app/ports/confirm-port.d.ts +0 -7
  127. package/dist/app/ports/jobs-port.d.ts +2 -5
  128. package/dist/app/ports/persistence-port.d.ts +0 -4
  129. package/dist/app/ports/secret-port.d.ts +0 -5
  130. package/dist/app/ports/terminal-port.d.ts +0 -6
  131. package/dist/app/ports/updates-port.d.ts +0 -4
  132. package/dist/attachments/service.d.ts +29 -0
  133. package/dist/attachments/service.js +47 -0
  134. package/dist/attachments/service.js.map +1 -0
  135. package/dist/commands/providers.js +0 -3
  136. package/dist/commands/providers.js.map +1 -1
  137. package/dist/commands/search-providers.d.ts +0 -33
  138. package/dist/commands/search-providers.js +0 -33
  139. package/dist/commands/search-providers.js.map +1 -1
  140. package/dist/commands/update.js +1 -9
  141. package/dist/commands/update.js.map +1 -1
  142. package/dist/index.js +22 -42
  143. package/dist/index.js.map +1 -1
  144. package/dist/llm/adapters/ollama-tools.d.ts +0 -4
  145. package/dist/llm/adapters/ollama-tools.js +0 -4
  146. package/dist/llm/adapters/ollama-tools.js.map +1 -1
  147. package/dist/llm/capabilities.d.ts +10 -10
  148. package/dist/llm/capabilities.js +43 -17
  149. package/dist/llm/capabilities.js.map +1 -1
  150. package/dist/llm/groq.js +0 -6
  151. package/dist/llm/groq.js.map +1 -1
  152. package/dist/llm/http.d.ts +0 -17
  153. package/dist/llm/http.js +0 -45
  154. package/dist/llm/http.js.map +1 -1
  155. package/dist/llm/router.d.ts +0 -6
  156. package/dist/llm/router.js +0 -15
  157. package/dist/llm/router.js.map +1 -1
  158. package/dist/llm/tool-protocol.d.ts +0 -6
  159. package/dist/llm/tool-protocol.js +3 -7
  160. package/dist/llm/tool-protocol.js.map +1 -1
  161. package/dist/modes/agent.d.ts +2 -1
  162. package/dist/modes/agent.js +4 -2
  163. package/dist/modes/agent.js.map +1 -1
  164. package/dist/modes/ask.d.ts +0 -18
  165. package/dist/modes/ask.js +0 -49
  166. package/dist/modes/ask.js.map +1 -1
  167. package/dist/os/cwd.d.ts +0 -21
  168. package/dist/os/cwd.js +0 -24
  169. package/dist/os/cwd.js.map +1 -1
  170. package/dist/os/pkgmgr.js +0 -6
  171. package/dist/os/pkgmgr.js.map +1 -1
  172. package/dist/prompts/index.d.ts +6 -18
  173. package/dist/prompts/index.js +67 -293
  174. package/dist/prompts/index.js.map +1 -1
  175. package/dist/prompts/system.agent.md +242 -0
  176. package/dist/prompts/system.ask.md +56 -0
  177. package/dist/repl/prompt-line.js +0 -36
  178. package/dist/repl/prompt-line.js.map +1 -1
  179. package/dist/repl/slash-commands.d.ts +0 -9
  180. package/dist/repl/slash-commands.js +2 -23
  181. package/dist/repl/slash-commands.js.map +1 -1
  182. package/dist/repl.d.ts +5 -0
  183. package/dist/repl.js +169 -55
  184. package/dist/repl.js.map +1 -1
  185. package/dist/safety/classifier.js +17 -9
  186. package/dist/safety/classifier.js.map +1 -1
  187. package/dist/safety/engagement-policy.d.ts +46 -0
  188. package/dist/safety/engagement-policy.js +198 -0
  189. package/dist/safety/engagement-policy.js.map +1 -0
  190. package/dist/store/engagement.d.ts +115 -0
  191. package/dist/store/engagement.js +278 -0
  192. package/dist/store/engagement.js.map +1 -0
  193. package/dist/store/logs.d.ts +5 -0
  194. package/dist/store/logs.js +52 -2
  195. package/dist/store/logs.js.map +1 -1
  196. package/dist/store/plan.d.ts +57 -5
  197. package/dist/store/plan.js +182 -8
  198. package/dist/store/plan.js.map +1 -1
  199. package/dist/store/scope.d.ts +4 -1
  200. package/dist/store/scope.js +2 -2
  201. package/dist/store/scope.js.map +1 -1
  202. package/dist/tools/definitions.js +70 -1
  203. package/dist/tools/definitions.js.map +1 -1
  204. package/dist/tools/elevated-shell.d.ts +60 -0
  205. package/dist/tools/elevated-shell.js +233 -0
  206. package/dist/tools/elevated-shell.js.map +1 -0
  207. package/dist/tools/file-diff.d.ts +125 -0
  208. package/dist/tools/file-diff.js +495 -0
  209. package/dist/tools/file-diff.js.map +1 -0
  210. package/dist/tools/fs.d.ts +11 -13
  211. package/dist/tools/fs.js +269 -78
  212. package/dist/tools/fs.js.map +1 -1
  213. package/dist/tools/http.d.ts +15 -0
  214. package/dist/tools/http.js +202 -61
  215. package/dist/tools/http.js.map +1 -1
  216. package/dist/tools/jobs.d.ts +71 -10
  217. package/dist/tools/jobs.js +403 -124
  218. package/dist/tools/jobs.js.map +1 -1
  219. package/dist/tools/nmap-runner.d.ts +11 -0
  220. package/dist/tools/nmap-runner.js +115 -74
  221. package/dist/tools/nmap-runner.js.map +1 -1
  222. package/dist/tools/pentest-workflows.d.ts +8 -0
  223. package/dist/tools/pentest-workflows.js +71 -0
  224. package/dist/tools/pentest-workflows.js.map +1 -0
  225. package/dist/tools/registry.d.ts +9 -0
  226. package/dist/tools/registry.js +227 -56
  227. package/dist/tools/registry.js.map +1 -1
  228. package/dist/tools/shell.d.ts +3 -0
  229. package/dist/tools/shell.js +35 -13
  230. package/dist/tools/shell.js.map +1 -1
  231. package/dist/tools/tool-types.d.ts +11 -0
  232. package/dist/tui-v2/app/App.js +25 -39
  233. package/dist/tui-v2/app/App.js.map +1 -1
  234. package/dist/tui-v2/app/command-handlers.js +20 -1
  235. package/dist/tui-v2/app/command-handlers.js.map +1 -1
  236. package/dist/tui-v2/app/commands/picker-commands.js +3 -0
  237. package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
  238. package/dist/tui-v2/app/commands/session-commands.js +5 -0
  239. package/dist/tui-v2/app/commands/session-commands.js.map +1 -1
  240. package/dist/tui-v2/app/plan-lifecycle.d.ts +25 -3
  241. package/dist/tui-v2/app/plan-lifecycle.js +87 -24
  242. package/dist/tui-v2/app/plan-lifecycle.js.map +1 -1
  243. package/dist/tui-v2/bootstrap/patch-opentui-text.d.ts +6 -0
  244. package/dist/tui-v2/bootstrap/patch-opentui-text.js +53 -0
  245. package/dist/tui-v2/bootstrap/patch-opentui-text.js.map +1 -0
  246. package/dist/tui-v2/bootstrap/start-tui-v2.js +7 -0
  247. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  248. package/dist/tui-v2/components/jobs/jobs-panel.js +23 -14
  249. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  250. package/dist/tui-v2/components/modal/confirm-modal.d.ts +1 -1
  251. package/dist/tui-v2/components/modal/confirm-modal.js +18 -7
  252. package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
  253. package/dist/tui-v2/components/overlay/overlay-host.js +1 -1
  254. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  255. package/dist/tui-v2/components/pager/pager.d.ts +6 -0
  256. package/dist/tui-v2/components/pager/pager.js +313 -67
  257. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  258. package/dist/tui-v2/components/status/status-line.d.ts +9 -0
  259. package/dist/tui-v2/components/status/status-line.js +17 -3
  260. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  261. package/dist/tui-v2/components/transcript/assistant-message.js +1 -1
  262. package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
  263. package/dist/tui-v2/components/transcript/compacted-row.js +1 -1
  264. package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
  265. package/dist/tui-v2/components/transcript/tool-card.d.ts +9 -1
  266. package/dist/tui-v2/components/transcript/tool-card.js +114 -9
  267. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  268. package/dist/tui-v2/components/transcript/transcript-row.js +2 -2
  269. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  270. package/dist/tui-v2/composer/composer-editor.js +16 -0
  271. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  272. package/dist/tui-v2/controllers/overlay-controller.d.ts +16 -2
  273. package/dist/tui-v2/controllers/overlay-controller.js +92 -12
  274. package/dist/tui-v2/controllers/overlay-controller.js.map +1 -1
  275. package/dist/tui-v2/rendering/artifact-pager-source.d.ts +19 -0
  276. package/dist/tui-v2/rendering/artifact-pager-source.js +103 -0
  277. package/dist/tui-v2/rendering/artifact-pager-source.js.map +1 -0
  278. package/dist/tui-v2/rendering/file-diff-view.d.ts +63 -0
  279. package/dist/tui-v2/rendering/file-diff-view.js +263 -0
  280. package/dist/tui-v2/rendering/file-diff-view.js.map +1 -0
  281. package/dist/tui-v2/rendering/open-tool-output.d.ts +9 -1
  282. package/dist/tui-v2/rendering/open-tool-output.js +65 -12
  283. package/dist/tui-v2/rendering/open-tool-output.js.map +1 -1
  284. package/dist/tui-v2/rendering/pager-chrome.d.ts +12 -0
  285. package/dist/tui-v2/rendering/pager-chrome.js +56 -0
  286. package/dist/tui-v2/rendering/pager-chrome.js.map +1 -0
  287. package/dist/tui-v2/rendering/plan-view.js +1 -1
  288. package/dist/tui-v2/rendering/plan-view.js.map +1 -1
  289. package/dist/tui-v2/rendering/syntax-highlight.d.ts +37 -0
  290. package/dist/tui-v2/rendering/syntax-highlight.js +1303 -0
  291. package/dist/tui-v2/rendering/syntax-highlight.js.map +1 -0
  292. package/dist/tui-v2/rendering/theme.d.ts +28 -0
  293. package/dist/tui-v2/rendering/theme.js +28 -0
  294. package/dist/tui-v2/rendering/theme.js.map +1 -1
  295. package/dist/tui-v2/rendering/tool-presenter.d.ts +5 -0
  296. package/dist/tui-v2/rendering/tool-presenter.js +35 -3
  297. package/dist/tui-v2/rendering/tool-presenter.js.map +1 -1
  298. package/dist/tui-v2/state/transcript-hydrate.js +5 -0
  299. package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
  300. package/dist/tui-v2/state/transcript-reducer.js +12 -2
  301. package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
  302. package/dist/tui-v2/state/transcript-store.d.ts +7 -0
  303. package/dist/tui-v2/state/transcript-store.js +46 -0
  304. package/dist/tui-v2/state/transcript-store.js.map +1 -1
  305. package/dist/tui-v2/state/transcript-types.d.ts +12 -0
  306. package/dist/tui-v2/state/transcript-types.js +9 -0
  307. package/dist/tui-v2/state/transcript-types.js.map +1 -1
  308. package/dist/types.d.ts +17 -1
  309. package/dist/ui/mentions.d.ts +6 -0
  310. package/dist/ui/mentions.js +50 -12
  311. package/dist/ui/mentions.js.map +1 -1
  312. package/dist/ui/plan-pane.js +1 -1
  313. package/dist/ui/plan-pane.js.map +1 -1
  314. package/package.json +16 -11
@@ -1 +1 @@
1
- {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/repl/slash-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAQxD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACtD,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC1D;QACE,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,yFAAyF;KAC5F;IACD;QACE,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,4BAA4B;KAC1C;IACD,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAC3F,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACpF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC9D;QACE,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,OAAO,EAAE,kBAAkB;QAC3B,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,0DAA0D;KACxE;IACD;QACE,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,6CAA6C;QACpD,WAAW,EAAE,uDAAuD;KACrE;IACD;QACE,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,6CAA6C;QACpD,WAAW,EAAE,qBAAqB;KACnC;IACD,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;IACnD;QACE,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,6DAA6D;KAC3E;IACD;QACE,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,oDAAoD;KAClE;IACD,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAClE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC7D,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC7E;QACE,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,+CAA+C;KAC7D;IACD;QACE,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,wBAAwB;KACtC;IACD,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;IACtE,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACzD;QACE,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,oDAAoD;KAClE;IACD;QACE,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,8CAA8C;KAC5D;IACD;QACE,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,iEAAiE;KACpE;IACD,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,6BAA6B,EAAE;IACnE,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,6BAA6B,EAAE;IACnE;QACE,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,6CAA6C;KAC3D;IACD;QACE,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,mDAAmD;KACjE;IACD;QACE,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,sDAAsD;KACpE;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,oEAAoE;QAC3E,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,wDAAwD;KACtE;IACD,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACxD;QACE,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,2CAA2C;KACzD;IACD,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;IACzC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE;IACpD,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE;CACnD,CAAC;AAEF,sDAAsD;AACtD,oDAAoD;AACpD,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD,IAAI,EAAE;QACJ,oBAAoB;QACpB,qBAAqB;QACrB,8BAA8B;QAC9B,gBAAgB;QAChB,yBAAyB;QACzB,sBAAsB;QACtB,2CAA2C;QAC3C,oBAAoB;QACpB,eAAe;KAChB;IACD,MAAM,EAAE;QACN,kBAAkB;QAClB,wBAAwB;QACxB,wBAAwB;QACxB,uBAAuB;QACvB,sBAAsB;QACtB,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,kBAAkB;QAClB,uBAAuB;KACxB;IACD,UAAU,EAAE;QACV,wCAAwC;QACxC,iCAAiC;QACjC,yBAAyB;QACzB,uBAAuB;QACvB,uCAAuC;QACvC,4BAA4B;QAC5B,qCAAqC;QACrC,uBAAuB;QACvB,sBAAsB;QACtB,6BAA6B;QAC7B,yBAAyB;KAC1B;IACD,MAAM,EAAE;QACN,SAAS;QACT,aAAa;QACb,SAAS;QACT,aAAa;QACb,cAAc;QACd,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,oBAAoB;QACpB,qBAAqB;QACrB,OAAO;QACP,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,QAAQ;KACT;IACD,SAAS,EAAE;QACT,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;QACnB,0BAA0B;QAC1B,yBAAyB;KAC1B;IACD,MAAM,EAAE,oBAAoB;IAC5B,MAAM,EAAE;QACN,cAAc;QACd,aAAa;QACb,aAAa;QACb,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,YAAY;QACZ,WAAW;QACX,UAAU;QACV,cAAc;KACf;IACD,WAAW,EAAE;QACX,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,SAAS;QACT,SAAS;KACV;IACD,MAAM,EAAE;QACN,WAAW;QACX,cAAc;QACd,sBAAsB;KACvB;IACD,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE;QACN,mBAAmB;QACnB,gBAAgB;QAChB,oBAAoB;QACpB,eAAe;QACf,oBAAoB;QACpB,8EAA8E;QAC9E,WAAW;QACX,eAAe;QACf,kBAAkB;QAClB,sBAAsB;QACtB,0BAA0B;QAC1B,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,YAAY;QACZ,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,YAAY;KACb;IACD,YAAY,EAAE;QACZ,cAAc;QACd,aAAa;QACb,eAAe;QACf,cAAc;QACd,eAAe;KAChB;CACF,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kEAAkE;AAClE,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAC3D,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,6DAA6D;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,0EAA0E;IAC1E,+DAA+D;IAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACtC,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,sDAAsD;IACtD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,0EAA0E;IAC1E,wEAAwE;IACxE,0DAA0D;IAC1D,OAAO,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAqB;IACrD,OAAO,OAAO,CAAC,KAAK;QAClB,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;QACvC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,2EAA2E;IAC3E,2EAA2E;IAC3E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC/B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACtC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACpE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/repl/slash-commands.ts"],"names":[],"mappings":"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"}
package/dist/repl.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Mode, ProviderId } from "./types.js";
2
+ import { type SessionPolicy } from "./modes/agent.js";
2
3
  export { slashCommands, knownModels, getKnownModels, inferProviderForModel, looksLikeSlashCommand, getSlashCommandSuggestions, isKnownSlashCommand, type SlashCommand, } from "./repl/slash-commands.js";
3
4
  export { renderSlashCommandMenu, renderFileMentionMenu, } from "./repl/prompt-line.js";
4
5
  export interface ReplOptions {
@@ -7,4 +8,8 @@ export interface ReplOptions {
7
8
  model?: string | undefined;
8
9
  noHistory?: boolean | undefined;
9
10
  }
11
+ /** Reset process-global project routing and rotate/adopt classic session identity together. */
12
+ export declare function resetClassicSessionContext(state: {
13
+ session: SessionPolicy;
14
+ }, sessionId?: string): void;
10
15
  export declare function startRepl(options?: ReplOptions): Promise<void>;
package/dist/repl.js CHANGED
@@ -3,12 +3,14 @@ import { stdin as input, stdout as output } from "node:process";
3
3
  import chalk from "chalk";
4
4
  import { confirm } from "@inquirer/prompts";
5
5
  import { runAskStream } from "./modes/ask.js";
6
+ import { resolveTurnInput, shouldRunImageOcr } from "./attachments/service.js";
6
7
  import { runAgent, createSessionPolicy, } from "./modes/agent.js";
7
8
  import { attachClassicRenderer } from "./agent/classic-renderer.js";
9
+ import { clearActiveProjectRoot } from "./agent/project-root.js";
8
10
  import { providerSwitcher, printProviderKeys, setKeyPicker, unsetKeyPicker, } from "./commands/providers.js";
9
11
  import { printSearchProviderKeys, useSearchProvider, } from "./commands/search-providers.js";
10
12
  import { getConfig, getProviderModel, setDefaultMode, setProviderModel, setThinking, updateConfig, } from "./store/config.js";
11
- import { listSessions, saveSession, upsertSession, clearAllHistory, getSession, } from "./store/history.js";
13
+ import { listSessions, upsertSession, clearAllHistory, getSession, } from "./store/history.js";
12
14
  import { assertProvider, defaultModels, getProviderInfoText } from "./llm/provider.js";
13
15
  import { getProvider, providerAuth } from "./llm/router.js";
14
16
  import { clearTextOnlyModels } from "./llm/tool-protocol.js";
@@ -18,15 +20,16 @@ import { renderIntroCard } from "./ui/intro-card.js";
18
20
  import { clearThinking, createThinkingStreamParser, getLastThinking, rememberThinkingFromText, renderAllThinking, renderThinkingSummary, renderThinkingToggleMessage, } from "./ui/thinking.js";
19
21
  import { createMarkdownStreamWriter, renderMarkdown } from "./ui/markdown.js";
20
22
  import { startThinkingSpinner } from "./ui/spinner.js";
21
- import { modelSupportsThinking, modelSupportsVision, preferredVisionModel, } from "./llm/capabilities.js";
23
+ import { modelSupportsThinking, modelSupportsVision, } from "./llm/capabilities.js";
22
24
  import { clearViewports, getLastViewport, getViewport, isPagerActive, listViewports, openPager, openViewportPager, toggleViewport, } from "./ui/output-pane.js";
23
25
  import { loadPlan, savePlan, deletePlan } from "./store/plan.js";
24
26
  import { renderPlanDocument, renderPlanChecklist } from "./ui/plan-pane.js";
25
27
  import { safeCwd, cwdIsBroken, recoverCwd } from "./os/cwd.js";
26
28
  import { compactMessages, estimateMessagesTokens, } from "./agent/context-manager.js";
27
29
  import { isCtrlC, isCtrlO, isCtrlP, isCtrlT, isEscape } from "./ui/keys.js";
28
- import { expandMentions, loadImageAttachments, imageAttachmentPaths, } from "./ui/mentions.js";
30
+ import { imageAttachmentPaths, } from "./ui/mentions.js";
29
31
  import { imageOcr } from "./tools/image.js";
32
+ import { handleDraftPlanDecision, IMPLEMENT_DIRECTIVE, } from "./agent/plan-decision.js";
30
33
  import { readPromptLine, stripAnsi, isPrintableSequence, } from "./repl/prompt-line.js";
31
34
  import { slashCommands, knownModels, looksLikeSlashCommand, slashCommandLabel, } from "./repl/slash-commands.js";
32
35
  // Re-exported so existing imports of these names from "./repl.js" keep
@@ -34,6 +37,11 @@ import { slashCommands, knownModels, looksLikeSlashCommand, slashCommandLabel, }
34
37
  // editor now live in their own modules under "./repl/".
35
38
  export { slashCommands, knownModels, getKnownModels, inferProviderForModel, looksLikeSlashCommand, getSlashCommandSuggestions, isKnownSlashCommand, } from "./repl/slash-commands.js";
36
39
  export { renderSlashCommandMenu, renderFileMentionMenu, } from "./repl/prompt-line.js";
40
+ /** Reset process-global project routing and rotate/adopt classic session identity together. */
41
+ export function resetClassicSessionContext(state, sessionId) {
42
+ clearActiveProjectRoot();
43
+ state.session = createSessionPolicy(sessionId);
44
+ }
37
45
  function splitCommand(line) {
38
46
  return (line
39
47
  .match(/(?:[^\s"]+|"[^"]*")+/g)
@@ -584,11 +592,8 @@ async function offerAgentSwitch(info, state, requestModel, images) {
584
592
  * that same row instead of minting a fresh, unnamed duplicate.
585
593
  */
586
594
  async function persistSession(state, name) {
587
- if (state.historyId) {
588
- await upsertSession(state.historyId, state.messages, name);
589
- return;
590
- }
591
- const record = await saveSession(state.messages, name);
595
+ const id = state.historyId ?? state.session.sessionId;
596
+ const record = await upsertSession(id, state.messages, name);
592
597
  state.historyId = record.id;
593
598
  }
594
599
  async function handleSlash(line, state) {
@@ -789,6 +794,7 @@ async function handleSlash(line, state) {
789
794
  console.log(chalk.dim(" current session saved"));
790
795
  }
791
796
  }
797
+ resetClassicSessionContext(state);
792
798
  state.messages.length = 0;
793
799
  state.resumedMessageCount = 0;
794
800
  state.historyId = undefined;
@@ -833,6 +839,7 @@ async function handleSlash(line, state) {
833
839
  console.log(chalk.dim(" cancelled"));
834
840
  return true;
835
841
  }
842
+ clearActiveProjectRoot();
836
843
  // Load the selected session
837
844
  const session = await getSession(selectedId);
838
845
  if (!session) {
@@ -845,6 +852,7 @@ async function handleSlash(line, state) {
845
852
  await persistSession(state);
846
853
  }
847
854
  }
855
+ resetClassicSessionContext(state, session.id);
848
856
  // Replay messages
849
857
  console.log(chalk.dim(`\n ── resuming session ──\n`));
850
858
  for (const msg of session.messages) {
@@ -872,7 +880,7 @@ async function handleSlash(line, state) {
872
880
  console.log(chalk.dim(` saved session ${state.historyId}`));
873
881
  return true;
874
882
  }
875
- const record = await saveSession(state.messages, name);
883
+ const record = await upsertSession(state.session.sessionId, state.messages, name);
876
884
  state.historyId = record.id;
877
885
  console.log(chalk.dim(` saved session ${record.id}`));
878
886
  return true;
@@ -950,20 +958,38 @@ async function handleSlash(line, state) {
950
958
  return true;
951
959
  }
952
960
  case "/plan": {
953
- const plan = await loadPlan(state.session.sessionId).catch(() => undefined);
954
- if (!plan) {
955
- console.log(chalk.dim(' no plan yet — ask clai to plan a multi-step task (e.g. "build a react blog app")'));
961
+ const sub = (args[0] ?? "").toLowerCase();
962
+ if (!sub || sub === "mode" || sub === "on" || sub === "enter") {
963
+ state.mode = "plan";
964
+ setDefaultMode("plan");
965
+ console.log(renderModeSwitch("plan"));
966
+ console.log(chalk.dim(" plan mode on — describe the multi-step task you want to plan.\n"));
956
967
  return true;
957
968
  }
958
- if (process.stdout.isTTY && input.isTTY) {
959
- await openPager({
960
- title: `plan · ${plan.goal}`,
961
- body: renderPlanDocument(plan),
962
- });
969
+ if (sub === "off" || sub === "agent") {
970
+ state.mode = "agent";
971
+ setDefaultMode("agent");
972
+ console.log(renderModeSwitch("agent"));
973
+ return true;
963
974
  }
964
- else {
965
- console.log(renderPlanDocument(plan));
975
+ if (sub === "view" || sub === "show") {
976
+ const plan = await loadPlan(state.session.sessionId).catch(() => undefined);
977
+ if (!plan) {
978
+ console.log(chalk.dim(" no active plan to view"));
979
+ return true;
980
+ }
981
+ if (process.stdout.isTTY && input.isTTY) {
982
+ await openPager({
983
+ title: `plan · ${plan.goal}`,
984
+ body: renderPlanDocument(plan),
985
+ });
986
+ }
987
+ else {
988
+ console.log(renderPlanDocument(plan));
989
+ }
990
+ return true;
966
991
  }
992
+ console.log(chalk.dim(" usage: /plan [view|off]"));
967
993
  return true;
968
994
  }
969
995
  case "/discard": {
@@ -1478,15 +1504,12 @@ export async function startRepl(options = {}) {
1478
1504
  console.log(chalk.cyan(" ✦ plan approved — clai will now execute it\n"));
1479
1505
  console.log(renderPlanChecklist(plan) + "\n");
1480
1506
  implementApproved = true;
1481
- effectiveLine =
1482
- "I approve the plan. Execute it now in STRICT ORDER. Task 1 (explore) is ALREADY COMPLETE from the planning phase — " +
1483
- "do NOT re-list or re-read the directory. Start with the FIRST pending task that still needs implementation work. " +
1484
- "For each task: call task.update {taskId, state:'in_progress'} → do the real work → VERIFY it succeeded → " +
1485
- "call task.update {taskId, state:'done'}, then move to the NEXT task. " +
1486
- "If a tool call FAILS, mark the task 'failed', fix the problem, and retry. Do NOT mark a task done when it failed. " +
1487
- "Build the project for real with fs.writeMany (create all files in as few calls as possible). " +
1488
- "Do NOT call web.search — you already know everything needed. " +
1489
- "Run real commands (installs, servers, verification) — do not claim anything ran without a successful tool call.";
1507
+ if (state.mode === "plan") {
1508
+ state.mode = "agent";
1509
+ setDefaultMode("agent");
1510
+ console.log(renderModeSwitch("agent"));
1511
+ }
1512
+ effectiveLine = IMPLEMENT_DIRECTIVE;
1490
1513
  }
1491
1514
  // Continuation detection
1492
1515
  // When the user types "continue" after the agent paused at a step limit,
@@ -1531,37 +1554,36 @@ export async function startRepl(options = {}) {
1531
1554
  // Expand @file mentions and drag-and-dropped paths into real context.
1532
1555
  // The user-visible `line` stays readable in history; the model gets
1533
1556
  // the line plus an appended block of file contents / path notes.
1534
- let requestModel = state.model;
1535
- let visionCapable = modelSupportsVision(state.provider, requestModel);
1536
- let expansion = expandMentions(effectiveLine, safeCwd(), visionCapable);
1537
- const hasImageAttachment = expansion.attachments.some((att) => att.kind === "image");
1538
- if (hasImageAttachment && !visionCapable) {
1539
- const fallbackVisionModel = preferredVisionModel(state.provider, requestModel);
1540
- if (fallbackVisionModel && fallbackVisionModel !== requestModel) {
1541
- const previousModel = requestModel;
1542
- requestModel = fallbackVisionModel;
1543
- visionCapable = true;
1544
- expansion = expandMentions(effectiveLine, safeCwd(), true);
1545
- console.log(chalk.dim(" ↳ vision model: ") +
1546
- chalk.dim(`${requestModel} (auto for image; ${previousModel} can't view images)`));
1547
- }
1557
+ const resolvedInput = resolveTurnInput({
1558
+ prompt: effectiveLine,
1559
+ mode: state.mode,
1560
+ provider: state.provider,
1561
+ model: state.model,
1562
+ baseDir: safeCwd(),
1563
+ });
1564
+ const requestModel = resolvedInput.model;
1565
+ const visionCapable = modelSupportsVision(state.provider, requestModel);
1566
+ const expansion = { attachments: resolvedInput.attachments };
1567
+ const images = [...resolvedInput.images];
1568
+ if (resolvedInput.fallbackReason) {
1569
+ console.log(chalk.dim(` ↳ ${resolvedInput.fallbackReason}`));
1548
1570
  }
1549
- const images = visionCapable
1550
- ? loadImageAttachments(effectiveLine, safeCwd())
1551
- : [];
1571
+ const hasImageAttachment = expansion.attachments.some((att) => att.kind === "image");
1552
1572
  const sentImagePaths = new Set(images.map((img) => img.path).filter((p) => Boolean(p)));
1553
- // OCR grounding: extract text from any attached image locally and
1554
- // append it. This is the safety net for the case the user hit — a
1555
- // provider that accepts image bytes but silently ignores them, so the
1556
- // model otherwise hallucinates from the filename. Cheap, best-effort,
1557
- // and additive (vision models still get the real bytes).
1558
- const ocrGrounding = hasImageAttachment
1573
+ // Vision is authoritative for visual analysis. OCR is opt-in when the
1574
+ // selected model cannot see the image and the user specifically asks
1575
+ // for text extraction; it is never treated as layout/color evidence.
1576
+ const shouldOcr = shouldRunImageOcr({
1577
+ hasImage: hasImageAttachment,
1578
+ visionCapable,
1579
+ prompt: effectiveLine,
1580
+ });
1581
+ const ocrGrounding = shouldOcr
1559
1582
  ? await buildImageOcrGrounding(effectiveLine, safeCwd())
1560
1583
  : "";
1561
- const contextParts = [expansion.contextBlock, ocrGrounding].filter((part) => part.length > 0);
1562
- const modelInput = contextParts.length > 0
1563
- ? `${effectiveLine}\n\n${contextParts.join("\n\n")}`
1564
- : effectiveLine;
1584
+ const modelInput = ocrGrounding
1585
+ ? `${resolvedInput.prompt}\n\n${ocrGrounding}`
1586
+ : resolvedInput.prompt;
1565
1587
  if (expansion.attachments.length > 0) {
1566
1588
  for (const att of expansion.attachments) {
1567
1589
  const tag = att.kind === "text"
@@ -1612,6 +1634,7 @@ export async function startRepl(options = {}) {
1612
1634
  signal,
1613
1635
  session: state.session,
1614
1636
  images,
1637
+ mode: state.mode === "plan" ? "plan" : "agent",
1615
1638
  onEvent: classicRenderer.onEvent,
1616
1639
  }));
1617
1640
  }
@@ -1626,6 +1649,97 @@ export async function startRepl(options = {}) {
1626
1649
  role: "assistant",
1627
1650
  content: assistantContent,
1628
1651
  });
1652
+ // After plan mode (or any draft plan), offer Accept / Discard / View / Suggest.
1653
+ if (state.mode === "plan" || !state.session.planApproved.value) {
1654
+ const draft = await loadPlan(state.session.sessionId).catch(() => undefined);
1655
+ if (draft && draft.status === "draft") {
1656
+ input.pause();
1657
+ if (input.isTTY)
1658
+ input.setRawMode(false);
1659
+ try {
1660
+ const decision = await handleDraftPlanDecision({
1661
+ plan: draft,
1662
+ sessionId: state.session.sessionId,
1663
+ planApproved: state.session.planApproved,
1664
+ setModeAgent: () => {
1665
+ state.mode = "agent";
1666
+ setDefaultMode("agent");
1667
+ console.log(renderModeSwitch("agent"));
1668
+ },
1669
+ });
1670
+ if (decision.action === "implement") {
1671
+ const classicRenderer = attachClassicRenderer();
1672
+ const followUp = await withAbortableInput(async (signal) => runAgent(decision.line, {
1673
+ provider: state.provider,
1674
+ model: requestModel,
1675
+ history: state.messages,
1676
+ signal,
1677
+ session: state.session,
1678
+ mode: "agent",
1679
+ onEvent: classicRenderer.onEvent,
1680
+ }));
1681
+ console.log();
1682
+ state.messages.push({ role: "user", content: decision.line }, { role: "assistant", content: followUp });
1683
+ }
1684
+ else if (decision.action === "suggest") {
1685
+ state.mode = "plan";
1686
+ setDefaultMode("plan");
1687
+ const classicRenderer = attachClassicRenderer();
1688
+ const revision = await withAbortableInput(async (signal) => runAgent(decision.line, {
1689
+ provider: state.provider,
1690
+ model: requestModel,
1691
+ history: state.messages,
1692
+ signal,
1693
+ session: state.session,
1694
+ mode: "plan",
1695
+ onEvent: classicRenderer.onEvent,
1696
+ }));
1697
+ console.log();
1698
+ state.messages.push({ role: "user", content: decision.line }, { role: "assistant", content: revision });
1699
+ // Re-prompt if a new draft exists
1700
+ const revised = await loadPlan(state.session.sessionId).catch(() => undefined);
1701
+ if (revised && revised.status === "draft") {
1702
+ const again = await handleDraftPlanDecision({
1703
+ plan: revised,
1704
+ sessionId: state.session.sessionId,
1705
+ planApproved: state.session.planApproved,
1706
+ setModeAgent: () => {
1707
+ state.mode = "agent";
1708
+ setDefaultMode("agent");
1709
+ console.log(renderModeSwitch("agent"));
1710
+ },
1711
+ });
1712
+ if (again.action === "implement") {
1713
+ const classicRenderer2 = attachClassicRenderer();
1714
+ const followUp2 = await withAbortableInput(async (signal) => runAgent(again.line, {
1715
+ provider: state.provider,
1716
+ model: requestModel,
1717
+ history: state.messages,
1718
+ signal,
1719
+ session: state.session,
1720
+ mode: "agent",
1721
+ onEvent: classicRenderer2.onEvent,
1722
+ }));
1723
+ console.log();
1724
+ state.messages.push({ role: "user", content: again.line }, { role: "assistant", content: followUp2 });
1725
+ }
1726
+ else if (again.action === "suggest") {
1727
+ // Leave feedback in chat; next turn continues plan mode
1728
+ state.messages.push({
1729
+ role: "user",
1730
+ content: again.line,
1731
+ });
1732
+ }
1733
+ }
1734
+ }
1735
+ }
1736
+ finally {
1737
+ if (input.isTTY)
1738
+ input.setRawMode(true);
1739
+ input.resume();
1740
+ }
1741
+ }
1742
+ }
1629
1743
  }
1630
1744
  catch (error) {
1631
1745
  if (error instanceof AbortRunError) {