@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":"task-analyzer.js","sourceRoot":"","sources":["../../src/agent/task-analyzer.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,UAAU,GACd,8UAA8U,CAAC;AAEjV;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAChD,4DAA4D;IAC5D,MAAM,UAAU,GAAmB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QACxD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,IAAI,CAAC;YACV,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,KAAK,IAAI,EAAE;gBACX,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,CAAC;IAClB,OAAO;QACL,UAAU;QACV,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1B,mBAAmB,EAAE,KAAK;QAC1B,kBAAkB,EAAE,KAAK;QACzB,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,EAAE;KACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"task-analyzer.js","sourceRoot":"","sources":["../../src/agent/task-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAgBhD,MAAM,UAAU,GACd,mVAAmV,CAAC;AAEtV,MAAM,QAAQ,GACZ,oFAAoF,CAAC;AAEvF,MAAM,MAAM,GACV,+FAA+F,CAAC;AAElG,MAAM,MAAM,GACV,6GAA6G,CAAC;AAEhH,MAAM,WAAW,GACf,yHAAyH,CAAC;AAE5H,MAAM,UAAU,GACd,gHAAgH,CAAC;AAEnH,MAAM,QAAQ,GACZ,uGAAuG,CAAC;AAE1G,MAAM,KAAK,GACT,yFAAyF,CAAC;AAE5F;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,WAAW,GACf,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC;QACnE,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,IACE,0NAA0N,CAAC,IAAI,CAAC,IAAI,CAAC,EACrO,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,2GAA2G,CAAC,IAAI,CAAC,IAAI,CAAC,EACtH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,IAAI,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC;QAClE,IAAI,oDAAoD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtE,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,2CAA2C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,IAAI,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,uCAAuC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpF,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,iEAAiE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvE,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAc,EACd,QAAkB,EAClB,KAAa;IAEb,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,IACE,gFAAgF,CAAC,IAAI,CACnF,MAAM,CACP,EACD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC1D,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IAC7D,OAAO,KAAK,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CACpB,MAAc,EACd,UAA0B,EAC1B,QAAkB;IAElB,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,IACE,8EAA8E,CAAC,IAAI,CACjF,MAAM,CACP,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,QAAkB;IAC1D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9E,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzF,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzB,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,OAAO;QAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACpD,IAAI,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,QAAkB;IACnD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,cAAc,CAAC,6BAA6B,EAAE,eAAe,EAAE;gBAC7D,QAAQ,EAAE,oCAAoC;gBAC9C,eAAe,EAAE,gCAAgC;aAClD,CAAC;YACF,cAAc,CAAC,oBAAoB,EAAE,OAAO,EAAE;gBAC5C,QAAQ,EAAE,aAAa;gBACvB,eAAe,EAAE,oCAAoC;aACtD,CAAC;YACF,cAAc,CAAC,yBAAyB,EAAE,UAAU,EAAE;gBACpD,eAAe,EAAE,uCAAuC;aACzD,CAAC;YACF,cAAc,CAAC,sBAAsB,EAAE,OAAO,EAAE;gBAC9C,eAAe,EAAE,gCAAgC;aAClD,CAAC;SACH,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,cAAc,CAAC,+BAA+B,EAAE,YAAY,EAAE;gBAC5D,QAAQ,EAAE,mBAAmB;aAC9B,CAAC;YACF,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE;gBAC/C,QAAQ,EAAE,aAAa;aACxB,CAAC;YACF,cAAc,CAAC,6BAA6B,EAAE,YAAY,EAAE;gBAC1D,QAAQ,EAAE,oBAAoB;aAC/B,CAAC;YACF,cAAc,CAAC,mCAAmC,EAAE,OAAO,EAAE;gBAC3D,QAAQ,EAAE,0BAA0B;aACrC,CAAC;SACH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,cAAc,CAAC,6BAA6B,EAAE,OAAO,CAAC;YACtD,cAAc,CAAC,qBAAqB,EAAE,YAAY,EAAE;gBAClD,QAAQ,EAAE,qBAAqB;aAChC,CAAC;YACF,cAAc,CAAC,mBAAmB,EAAE,YAAY,EAAE;gBAChD,QAAQ,EAAE,SAAS;aACpB,CAAC;YACF,cAAc,CAAC,sBAAsB,EAAE,OAAO,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACrC,OAAO;YACL,cAAc,CAAC,uBAAuB,EAAE,mBAAmB,EAAE;gBAC3D,QAAQ,EAAE,aAAa;aACxB,CAAC;YACF,cAAc,CAAC,qBAAqB,EAAE,mBAAmB,EAAE;gBACzD,QAAQ,EAAE,eAAe;aAC1B,CAAC;YACF,cAAc,CAAC,oBAAoB,EAAE,OAAO,CAAC;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,QAAkB;IACrD,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,sEAAsE,CAAC;IAChF,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,OAAO,+GAA+G,CAAC;IACzH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,0DAA0D,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,4DAA4D,CAAC;IACtE,CAAC;IACD,OAAO,mDAAmD,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACxB,mBAAmB,EAAE,KAAK;YAC1B,kBAAkB,EAAE,IAAI;YACxB,WAAW,EAAE,CAAC,UAAU,CAAC;YACzB,QAAQ,EACN,wIAAwI;YAC1I,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,cAAc,GAClB,UAAU,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEpF,OAAO;QACL,UAAU;QACV,UAAU;QACV,QAAQ;QACR,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACxB,mBAAmB,EACjB,QAAQ,KAAK,mBAAmB;YAChC,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC;QACpE,kBAAkB,EAChB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACrB,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC;QACpE,WAAW;QACX,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;QACrC,cAAc;KACf,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,sBAAsB,CAAC,QAAsB;IAC3D,MAAM,KAAK,GACT,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,GAAG,CAAC;IACV,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU;QAClC,CAAC,CAAC,0IAA0I;QAC5I,CAAC,CAAC,qBAAqB,CAAC;IAC1B,OAAO,CACL,2BAA2B,QAAQ,CAAC,QAAQ,eAAe,QAAQ,CAAC,UAAU,KAAK,QAAQ,KAAK;QAChG,iBAAiB,KAAK,gBAAgB,QAAQ,CAAC,QAAQ,EAAE,CAC1D,CAAC;AACJ,CAAC"}
@@ -1,26 +1,100 @@
1
1
  import type { ToolCall } from "../types.js";
2
- /**
3
- * Tracks successful non-meta tool work under the currently open plan task.
4
- * Models (esp. GPT-OSS) must not mark done or jump ahead without real
5
- * evidence from tool results this task has already received.
6
- */
7
- export interface TaskWorkLedger {
2
+ import type { TaskEvidence } from "../store/plan.js";
3
+ /** Successful non-meta work under the open plan task (typed evidence for done). */
4
+ export type TaskClass = "explore" | "scaffold" | "install" | "implement" | "verify" | "recon" | "exploit" | "report" | "generic";
5
+ export interface TaskWorkLedger extends TaskEvidence {
8
6
  taskId: string;
9
- /** Successful work tools since this task became in_progress. */
10
- successWorkCount: number;
11
- lastOkTool?: string | undefined;
7
+ }
8
+ /** Rehydrate the live task ledger from durable plan evidence after a resume. */
9
+ export declare function ledgerFromTaskEvidence(taskId: string, evidence?: TaskEvidence | undefined): TaskWorkLedger;
10
+ /** Store only serializable evidence on the plan; the task id is already its key. */
11
+ export declare function taskEvidenceFromLedger(ledger: TaskWorkLedger): TaskEvidence;
12
+ /** Optional signals recorded from a successful tool call. */
13
+ export interface TaskWorkSignals {
14
+ sourceWrite?: boolean;
15
+ featureWrite?: boolean;
16
+ installOk?: boolean;
17
+ scaffoldOk?: boolean;
18
+ devServerStart?: boolean;
19
+ localHttpProbeOk?: boolean;
20
+ serverReady?: boolean;
21
+ portListening?: boolean;
22
+ remoteReconOk?: boolean;
23
+ remoteActiveTestOk?: boolean;
12
24
  }
13
25
  export declare function isMetaPlanTool(name: string): boolean;
14
26
  /** Tools that count as real work/verify evidence for the open task. */
15
27
  export declare function isEvidenceWorkTool(name: string): boolean;
16
- export declare function recordTaskWorkSuccess(ledger: TaskWorkLedger | null, taskId: string | undefined, toolName: string): TaskWorkLedger | null;
28
+ export declare function isPentestPlanKind(kind: string | undefined): boolean;
29
+ export declare function classifyTaskTitle(title: string, opts?: {
30
+ planKind?: string | undefined;
31
+ }): TaskClass;
32
+ /** Successful work observed this turn without a credited open task. */
33
+ export interface LooseWorkReceipt {
34
+ readonly toolName: string;
35
+ readonly signals?: TaskWorkSignals | undefined;
36
+ }
37
+ /**
38
+ * Whether a successful tool can satisfy a task of the given class.
39
+ * Used to retroactively credit preflight work (tool.check before in_progress).
40
+ */
41
+ export declare function toolFitsTaskClass(toolName: string, taskTitle: string, opts?: {
42
+ planKind?: string | undefined;
43
+ signals?: TaskWorkSignals | undefined;
44
+ }): boolean;
45
+ /**
46
+ * Fold turn-level loose successes into a task ledger so preflight work
47
+ * (tool.check / fs.list before in_progress) can satisfy explore/check tasks.
48
+ */
49
+ export declare function absorbLooseWorkIntoLedger(ledger: TaskWorkLedger | null, taskId: string, taskTitle: string, loose: readonly LooseWorkReceipt[], opts?: {
50
+ planKind?: string | undefined;
51
+ }): TaskWorkLedger | null;
52
+ export declare function recordTaskWorkSuccess(ledger: TaskWorkLedger | null, taskId: string | undefined, toolName: string, signals?: TaskWorkSignals): TaskWorkLedger | null;
17
53
  export declare function openTaskLedger(taskId: string): TaskWorkLedger;
18
- export declare function canMarkTaskDone(ledger: TaskWorkLedger | null, taskId: string): {
54
+ export interface CanMarkTaskDoneOpts {
55
+ taskTitle?: string | undefined;
56
+ /** User asked for a product feature app (todo/blog/…). */
57
+ featureAppRequired?: boolean | undefined;
58
+ /** Session-level flag: feature write observed any time this turn. */
59
+ sessionFeatureSeen?: boolean | undefined;
60
+ /** A real project root was discovered, so a scaffold checkpoint is already satisfied. */
61
+ existingProject?: boolean | undefined;
62
+ /** An earlier plan task already proved the local server is ready and running. */
63
+ runtimeVerified?: boolean | undefined;
64
+ /** Plan kind: coding | pentest | general — selects domain gates. */
65
+ planKind?: string | undefined;
66
+ /** Any plan task already has successful remote recon/active test evidence. */
67
+ remoteWorkVerified?: boolean | undefined;
68
+ }
69
+ /** Local app runtime is proven by any strong independent signal. */
70
+ export declare function hasLocalRuntimeProof(evidence?: Pick<TaskEvidence, "sawDevServerStart" | "sawLocalHttpProbeOk" | "sawServerReady" | "sawPortListening"> | null): boolean;
71
+ export declare function hasRemoteWorkProof(evidence?: Pick<TaskEvidence, "sawRemoteReconOk" | "sawRemoteActiveTestOk"> | null): boolean;
72
+ /** Dev-server job log shows ready + local URL. */
73
+ export declare function isServerReadyOutput(output: string): boolean;
74
+ /** lsof/ss (or similar) shows a process LISTENing on a local port. */
75
+ export declare function isPortListeningOutput(command: string, output: string): boolean;
76
+ /**
77
+ * Leave/keep-running observational tasks may inherit already-proven runtime.
78
+ * "for user to test" must NOT block inheritance (prior brittle exclusion of "test").
79
+ */
80
+ export declare function isRuntimeObservationTask(title: string): boolean;
81
+ /** Report / residual documentation that can inherit prior remote evidence. */
82
+ export declare function isRemoteObservationTask(title: string): boolean;
83
+ /**
84
+ * Typed evidence gate: base rule is ≥1 successful work tool; implement/install/verify
85
+ * (and pentest recon) require stronger signals when classified. Existing project and
86
+ * already-proven runtime/remote facts satisfy corresponding observational tasks.
87
+ */
88
+ export declare function canMarkTaskDone(ledger: TaskWorkLedger | null, taskId: string, opts?: CanMarkTaskDoneOpts): {
19
89
  ok: true;
20
90
  } | {
21
91
  ok: false;
22
92
  reason: string;
23
93
  };
94
+ /** True when a tool call is remote recon (not local app tooling). */
95
+ export declare function isRemoteReconToolCall(call: ToolCall): boolean;
96
+ /** Active/offensive test (not passive recon). */
97
+ export declare function isRemoteActiveTestCall(call: ToolCall): boolean;
24
98
  /** One-shot scaffolders — must NEVER be treated as "start the dev server". Stack-agnostic. */
25
99
  export declare function isScaffoldCreateCommand(cmd: string): boolean;
26
100
  /**
@@ -28,12 +102,17 @@ export declare function isScaffoldCreateCommand(cmd: string): boolean;
28
102
  * npm create which merely contain the word "vite".
29
103
  */
30
104
  export declare function isDevServerCall(call: ToolCall): boolean;
31
- /** Preflight / inspect tools allowed before the model opens a task. */
105
+ /** Inspect tools allowed without opening a plan task. */
32
106
  export declare function isPlanPreflightTool(name: string): boolean;
107
+ /** Read-only recon tools that may run without an in_progress task on pentest plans. */
108
+ export declare function isReadOnlyReconTool(name: string): boolean;
33
109
  /**
34
- * Tools allowed on a coding BUILD turn before plan.create exists.
35
- * Explore + optional web research + plan — no scaffold/write/install freestyle.
110
+ * Tools whose failure must NOT cancel later siblings in the same model turn.
111
+ * Plan bookkeeping failures (task.update done-gate, etc.) and independent
112
+ * recon lookups should never wipe a whole batch of http.fetch / dns calls.
36
113
  */
114
+ export declare function isBatchSoftFailTool(name: string): boolean;
115
+ /** Tools allowed on a coding build turn before plan.create exists. */
37
116
  export declare function isBuildPrePlanAllowedTool(name: string): boolean;
38
117
  /**
39
118
  * Commands that legitimately sit quiet for minutes (npm install, create-next-app).
@@ -59,15 +138,6 @@ export declare function codingBuildRequiresPlan(prompt: string, opts?: {
59
138
  export declare function looksLikeInstallTaskTitle(title: string): boolean;
60
139
  export declare function looksLikeScaffoldTaskTitle(title: string): boolean;
61
140
  export declare function isPackageInstallCommand(cmd: string): boolean;
62
- /**
63
- * Soft scope check: refuse run/verify tools while the open task is only
64
- * scaffold / implement / install.
65
- * When `planTaskTitles` is provided, install is only blocked on implement
66
- * tasks if the plan actually has a dedicated install task (otherwise allow).
67
- */
68
- export declare function workOutOfScopeForTask(taskTitle: string, call: ToolCall, opts?: {
69
- planTaskTitles?: string[];
70
- }): string | undefined;
71
141
  /**
72
142
  * Choose which pending plan task should own this tool call (auto-start).
73
143
  * Prevents npm install from being attributed to "localStorage" / style tasks.
@@ -75,7 +145,7 @@ export declare function workOutOfScopeForTask(taskTitle: string, call: ToolCall,
75
145
  export declare function pickPendingTaskForToolCall<T extends {
76
146
  id: string;
77
147
  title: string;
78
- }>(pending: T[], call: ToolCall, allTitles?: string[]): T | undefined;
148
+ }>(pending: T[], call: ToolCall, _allTitles?: string[]): T | undefined;
79
149
  /**
80
150
  * User asked for a product feature app (todo, blog, …), not "just scaffold framework X".
81
151
  * Stack-agnostic: detects intent, not a particular framework.
@@ -84,15 +154,15 @@ export declare function userAskedForFeatureApp(prompt: string): boolean;
84
154
  /** Paths that look like application source (not lockfiles / build output). */
85
155
  export declare function isAppSourcePath(path: string): boolean;
86
156
  export declare function extractWritePathsFromCall(call: ToolCall): string[];
157
+ /** Default framework starter / marketing copy — not the product feature. */
158
+ export declare function looksLikeStarterBoilerplate(content: string): boolean;
159
+ /** Content that looks like real product UI/logic for common feature apps. */
160
+ export declare function looksLikeFeatureProductCode(content: string): boolean;
87
161
  /**
88
162
  * True when a successful tool call implements product feature code (not only scaffold).
163
+ * Starter boilerplate alone does not count.
89
164
  */
90
165
  export declare function isFeatureImplementationCall(call: ToolCall): boolean;
91
- /**
92
- * Soft block: don't start the local server until the product feature exists.
93
- * Returns a message when the open work is still scaffold-only for a feature ask.
94
- */
95
- export declare function incompleteFeatureBeforeServerMessage(userPrompt: string, sawFeatureImpl: boolean, call: ToolCall): string | undefined;
96
166
  /**
97
167
  * User said work belongs on the Desktop (or similar). Returns absolute path.
98
168
  */