@pentoshi/clai 4.12.0 → 4.13.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 (609) hide show
  1. package/CODE_OF_CONDUCT.md +132 -0
  2. package/CONTRIBUTING.md +101 -0
  3. package/PROVIDERS.md +149 -0
  4. package/README.md +217 -426
  5. package/SECURITY.md +33 -0
  6. package/dist/agent/compaction/summary-execution.js +19 -4
  7. package/dist/agent/compaction/summary-execution.js.map +1 -1
  8. package/dist/agent/compaction-summary.d.ts +5 -2
  9. package/dist/agent/compaction-summary.js +10 -4
  10. package/dist/agent/compaction-summary.js.map +1 -1
  11. package/dist/agent/confirm-port.d.ts +3 -5
  12. package/dist/agent/confirm-port.js +12 -6
  13. package/dist/agent/confirm-port.js.map +1 -1
  14. package/dist/agent/context/compact-with-summary.d.ts +1 -0
  15. package/dist/agent/context/compact-with-summary.js +36 -7
  16. package/dist/agent/context/compact-with-summary.js.map +1 -1
  17. package/dist/agent/context/compaction-recent-history.d.ts +12 -0
  18. package/dist/agent/context/compaction-recent-history.js +114 -0
  19. package/dist/agent/context/compaction-recent-history.js.map +1 -0
  20. package/dist/agent/context/latest-user-message.d.ts +2 -0
  21. package/dist/agent/context/latest-user-message.js +10 -0
  22. package/dist/agent/context/latest-user-message.js.map +1 -0
  23. package/dist/agent/context/user-credentials.d.ts +1 -0
  24. package/dist/agent/context/user-credentials.js +3 -0
  25. package/dist/agent/context/user-credentials.js.map +1 -1
  26. package/dist/agent/context-manager.js +6 -2
  27. package/dist/agent/context-manager.js.map +1 -1
  28. package/dist/agent/evidence/task-classification.js +2 -5
  29. package/dist/agent/evidence/task-classification.js.map +1 -1
  30. package/dist/agent/evidence/tool-budgets.js +4 -14
  31. package/dist/agent/evidence/tool-budgets.js.map +1 -1
  32. package/dist/agent/loop-guard.js +1 -5
  33. package/dist/agent/loop-guard.js.map +1 -1
  34. package/dist/agent/outcomes.js +9 -1
  35. package/dist/agent/outcomes.js.map +1 -1
  36. package/dist/agent/parser/arg-formatting.js +3 -16
  37. package/dist/agent/parser/arg-formatting.js.map +1 -1
  38. package/dist/agent/parser/bare-recognition.js +12 -6
  39. package/dist/agent/parser/bare-recognition.js.map +1 -1
  40. package/dist/agent/parser/xml-protocol.js +0 -2
  41. package/dist/agent/parser/xml-protocol.js.map +1 -1
  42. package/dist/agent/plan-implement-compact.js +2 -1
  43. package/dist/agent/plan-implement-compact.js.map +1 -1
  44. package/dist/agent/request-budget.d.ts +1 -0
  45. package/dist/agent/request-budget.js +6 -1
  46. package/dist/agent/request-budget.js.map +1 -1
  47. package/dist/agent/runner.js +2 -2
  48. package/dist/agent/runner.js.map +1 -1
  49. package/dist/agent/session-policy.d.ts +1 -0
  50. package/dist/agent/session-policy.js +1 -4
  51. package/dist/agent/session-policy.js.map +1 -1
  52. package/dist/agent/subagents/manager.d.ts +5 -1
  53. package/dist/agent/subagents/manager.js +96 -15
  54. package/dist/agent/subagents/manager.js.map +1 -1
  55. package/dist/agent/subagents/read-only-tools.js +44 -20
  56. package/dist/agent/subagents/read-only-tools.js.map +1 -1
  57. package/dist/agent/subagents/tools.d.ts +8 -1
  58. package/dist/agent/subagents/tools.js +21 -13
  59. package/dist/agent/subagents/tools.js.map +1 -1
  60. package/dist/agent/subagents/types.d.ts +8 -0
  61. package/dist/agent/subagents/worker.js +48 -7
  62. package/dist/agent/subagents/worker.js.map +1 -1
  63. package/dist/agent/task-evidence.js +2 -11
  64. package/dist/agent/task-evidence.js.map +1 -1
  65. package/dist/agent/tool-output-formatting.js +8 -2
  66. package/dist/agent/tool-output-formatting.js.map +1 -1
  67. package/dist/agent/turn/automatic-compaction-execution.js +1 -0
  68. package/dist/agent/turn/automatic-compaction-execution.js.map +1 -1
  69. package/dist/agent/turn/compaction-coordinator.js +4 -4
  70. package/dist/agent/turn/compaction-coordinator.js.map +1 -1
  71. package/dist/agent/turn/compaction-replay-selection.js +1 -0
  72. package/dist/agent/turn/compaction-replay-selection.js.map +1 -1
  73. package/dist/agent/turn/loop/run-rounds.js +11 -3
  74. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  75. package/dist/agent/turn/prompt-sections.js +4 -9
  76. package/dist/agent/turn/prompt-sections.js.map +1 -1
  77. package/dist/agent/turn/setup/turn-messages.js +2 -1
  78. package/dist/agent/turn/setup/turn-messages.js.map +1 -1
  79. package/dist/agent/turn/subagent-inbox.d.ts +5 -5
  80. package/dist/agent/turn/subagent-inbox.js +90 -11
  81. package/dist/agent/turn/subagent-inbox.js.map +1 -1
  82. package/dist/agent/turn/system-sections.d.ts +1 -0
  83. package/dist/agent/turn/system-sections.js +1 -1
  84. package/dist/agent/turn/system-sections.js.map +1 -1
  85. package/dist/agent/turn/task-autostart.js +2 -0
  86. package/dist/agent/turn/task-autostart.js.map +1 -1
  87. package/dist/agent/turn/tool-execution/authorization.js +3 -39
  88. package/dist/agent/turn/tool-execution/authorization.js.map +1 -1
  89. package/dist/agent/turn/tool-execution/single-tool.js +2 -4
  90. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
  91. package/dist/agent/turn/tool-result-recorder.js +5 -0
  92. package/dist/agent/turn/tool-result-recorder.js.map +1 -1
  93. package/dist/agent/turn/tool-routing.d.ts +1 -1
  94. package/dist/agent/turn/tool-routing.js +11 -11
  95. package/dist/agent/turn/tool-routing.js.map +1 -1
  96. package/dist/agent/workspace-orient.js +2 -2
  97. package/dist/agent/workspace-orient.js.map +1 -1
  98. package/dist/app/adapters/agent-event-adapter.js +5 -0
  99. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  100. package/dist/app/adapters/current-store-adapter.js +2 -2
  101. package/dist/app/adapters/current-store-adapter.js.map +1 -1
  102. package/dist/app/commands/catalog.js +9 -4
  103. package/dist/app/commands/catalog.js.map +1 -1
  104. package/dist/app/commands/registry.js +1 -1
  105. package/dist/app/commands/registry.js.map +1 -1
  106. package/dist/app/controllers/session-compact-helper.js +2 -1
  107. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  108. package/dist/app/controllers/session-controller.d.ts +8 -0
  109. package/dist/app/controllers/session-controller.js +66 -12
  110. package/dist/app/controllers/session-controller.js.map +1 -1
  111. package/dist/app/controllers/session-naming.d.ts +4 -5
  112. package/dist/app/controllers/session-naming.js +38 -80
  113. package/dist/app/controllers/session-naming.js.map +1 -1
  114. package/dist/app/controllers/session-prompt-history.d.ts +4 -0
  115. package/dist/app/controllers/session-prompt-history.js +33 -0
  116. package/dist/app/controllers/session-prompt-history.js.map +1 -0
  117. package/dist/app/controllers/session-prompt-queue.d.ts +1 -0
  118. package/dist/app/controllers/session-prompt-queue.js +1 -1
  119. package/dist/app/controllers/session-prompt-queue.js.map +1 -1
  120. package/dist/app/events/artifact-output.d.ts +1 -0
  121. package/dist/app/events/artifact-output.js +32 -0
  122. package/dist/app/events/artifact-output.js.map +1 -0
  123. package/dist/app/events/event-buffer.d.ts +13 -1
  124. package/dist/app/events/event-buffer.js +92 -4
  125. package/dist/app/events/event-buffer.js.map +1 -1
  126. package/dist/app/operation-review.d.ts +7 -0
  127. package/dist/app/operation-review.js +61 -0
  128. package/dist/app/operation-review.js.map +1 -0
  129. package/dist/app/ports/confirm-port.d.ts +1 -1
  130. package/dist/app/ports/persistence-port.d.ts +2 -1
  131. package/dist/app/ports/secret-port.d.ts +2 -0
  132. package/dist/classic/app/ClassicApp.js +34 -3
  133. package/dist/classic/app/ClassicApp.js.map +1 -1
  134. package/dist/classic/app/action-handlers.js +0 -2
  135. package/dist/classic/app/action-handlers.js.map +1 -1
  136. package/dist/classic/app/app-wiring.d.ts +1 -2
  137. package/dist/classic/app/app-wiring.js +1 -8
  138. package/dist/classic/app/app-wiring.js.map +1 -1
  139. package/dist/classic/app/use-feed.js +2 -1
  140. package/dist/classic/app/use-feed.js.map +1 -1
  141. package/dist/classic/app/wiring-interactions.d.ts +0 -2
  142. package/dist/classic/app/wiring-interactions.js +5 -13
  143. package/dist/classic/app/wiring-interactions.js.map +1 -1
  144. package/dist/classic/app/wiring-types.d.ts +2 -2
  145. package/dist/classic/blocks/batch-lines.js +10 -8
  146. package/dist/classic/blocks/batch-lines.js.map +1 -1
  147. package/dist/classic/blocks/block-context.d.ts +1 -0
  148. package/dist/classic/blocks/block-context.js.map +1 -1
  149. package/dist/classic/blocks/tool-lines.js +20 -39
  150. package/dist/classic/blocks/tool-lines.js.map +1 -1
  151. package/dist/classic/bootstrap/renderer-handle.d.ts +5 -1
  152. package/dist/classic/bootstrap/renderer-handle.js.map +1 -1
  153. package/dist/classic/bootstrap/start-classic.js +12 -12
  154. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  155. package/dist/classic/chrome/context-limit-editor.d.ts +7 -0
  156. package/dist/classic/chrome/context-limit-editor.js +5 -0
  157. package/dist/classic/chrome/context-limit-editor.js.map +1 -1
  158. package/dist/classic/chrome/status-rows.d.ts +4 -0
  159. package/dist/classic/chrome/status-rows.js +11 -0
  160. package/dist/classic/chrome/status-rows.js.map +1 -1
  161. package/dist/classic/feed/feed-blocks.d.ts +1 -1
  162. package/dist/classic/feed/feed-blocks.js +13 -6
  163. package/dist/classic/feed/feed-blocks.js.map +1 -1
  164. package/dist/classic/panels/confirm-panel.js +9 -3
  165. package/dist/classic/panels/confirm-panel.js.map +1 -1
  166. package/dist/classic/panels/keys-panel.js +12 -3
  167. package/dist/classic/panels/keys-panel.js.map +1 -1
  168. package/dist/classic/panels/pager-panel.js +0 -6
  169. package/dist/classic/panels/pager-panel.js.map +1 -1
  170. package/dist/classic/panels/pager-source-controller.d.ts +34 -0
  171. package/dist/classic/panels/pager-source-controller.js +209 -0
  172. package/dist/classic/panels/pager-source-controller.js.map +1 -0
  173. package/dist/classic/panels/panel-controller.d.ts +1 -5
  174. package/dist/classic/panels/panel-controller.js +44 -92
  175. package/dist/classic/panels/panel-controller.js.map +1 -1
  176. package/dist/classic/panels/panel-effect.d.ts +2 -4
  177. package/dist/classic/panels/panel-effect.js.map +1 -1
  178. package/dist/classic/panels/panel-effects.js +3 -6
  179. package/dist/classic/panels/panel-effects.js.map +1 -1
  180. package/dist/classic/panels/panel-types.d.ts +0 -2
  181. package/dist/classic/panels/picker-panel.js +1 -1
  182. package/dist/classic/panels/picker-panel.js.map +1 -1
  183. package/dist/classic/panels/secret-panel.d.ts +1 -0
  184. package/dist/classic/panels/secret-panel.js +8 -1
  185. package/dist/classic/panels/secret-panel.js.map +1 -1
  186. package/dist/commands/providers.d.ts +1 -0
  187. package/dist/commands/providers.js +1 -0
  188. package/dist/commands/providers.js.map +1 -1
  189. package/dist/commands/qoder.d.ts +8 -0
  190. package/dist/commands/qoder.js +85 -0
  191. package/dist/commands/qoder.js.map +1 -0
  192. package/dist/commands/update/installers.js +1 -0
  193. package/dist/commands/update/installers.js.map +1 -1
  194. package/dist/index.js +31 -15
  195. package/dist/index.js.map +1 -1
  196. package/dist/llm/capability/state.d.ts +1 -1
  197. package/dist/llm/capability/tool-dialect.js +1 -0
  198. package/dist/llm/capability/tool-dialect.js.map +1 -1
  199. package/dist/llm/capability/vision-patterns.js +1 -0
  200. package/dist/llm/capability/vision-patterns.js.map +1 -1
  201. package/dist/llm/catalog-facts.js +15 -8
  202. package/dist/llm/catalog-facts.js.map +1 -1
  203. package/dist/llm/codex-auth.d.ts +2 -0
  204. package/dist/llm/codex-auth.js +30 -0
  205. package/dist/llm/codex-auth.js.map +1 -1
  206. package/dist/llm/codex-config.js +18 -14
  207. package/dist/llm/codex-config.js.map +1 -1
  208. package/dist/llm/codex-models.d.ts +0 -1
  209. package/dist/llm/codex-models.js +0 -1
  210. package/dist/llm/codex-models.js.map +1 -1
  211. package/dist/llm/context-windows.js +2 -3
  212. package/dist/llm/context-windows.js.map +1 -1
  213. package/dist/llm/freebuff-run.d.ts +3 -0
  214. package/dist/llm/freebuff-run.js +9 -1
  215. package/dist/llm/freebuff-run.js.map +1 -1
  216. package/dist/llm/freebuff-session-api.d.ts +3 -1
  217. package/dist/llm/freebuff-session-api.js +14 -1
  218. package/dist/llm/freebuff-session-api.js.map +1 -1
  219. package/dist/llm/freebuff-session.d.ts +2 -0
  220. package/dist/llm/freebuff-session.js +61 -28
  221. package/dist/llm/freebuff-session.js.map +1 -1
  222. package/dist/llm/freebuff-wire.d.ts +3 -0
  223. package/dist/llm/freebuff-wire.js +82 -0
  224. package/dist/llm/freebuff-wire.js.map +1 -0
  225. package/dist/llm/freebuff.js +61 -117
  226. package/dist/llm/freebuff.js.map +1 -1
  227. package/dist/llm/provider-identity.js +5 -0
  228. package/dist/llm/provider-identity.js.map +1 -1
  229. package/dist/llm/provider-info-text.js +25 -0
  230. package/dist/llm/provider-info-text.js.map +1 -1
  231. package/dist/llm/provider-profile-layers.js +1 -1
  232. package/dist/llm/provider-profile-layers.js.map +1 -1
  233. package/dist/llm/qoder/qoder-accounts.d.ts +9 -0
  234. package/dist/llm/qoder/qoder-accounts.js +53 -0
  235. package/dist/llm/qoder/qoder-accounts.js.map +1 -0
  236. package/dist/llm/qoder/qoder-auth.d.ts +59 -0
  237. package/dist/llm/qoder/qoder-auth.js +203 -0
  238. package/dist/llm/qoder/qoder-auth.js.map +1 -0
  239. package/dist/llm/qoder/qoder-credential.d.ts +31 -0
  240. package/dist/llm/qoder/qoder-credential.js +82 -0
  241. package/dist/llm/qoder/qoder-credential.js.map +1 -0
  242. package/dist/llm/qoder/qoder-login.d.ts +28 -0
  243. package/dist/llm/qoder/qoder-login.js +153 -0
  244. package/dist/llm/qoder/qoder-login.js.map +1 -0
  245. package/dist/llm/qoder/qoder-refresh.d.ts +4 -0
  246. package/dist/llm/qoder/qoder-refresh.js +165 -0
  247. package/dist/llm/qoder/qoder-refresh.js.map +1 -0
  248. package/dist/llm/qoder/qoder-signer.d.ts +66 -0
  249. package/dist/llm/qoder/qoder-signer.js +119 -0
  250. package/dist/llm/qoder/qoder-signer.js.map +1 -0
  251. package/dist/llm/qoder/qoder.d.ts +20 -0
  252. package/dist/llm/qoder/qoder.js +441 -0
  253. package/dist/llm/qoder/qoder.js.map +1 -0
  254. package/dist/llm/qoder/signer-glue.generated.d.ts +1 -0
  255. package/dist/llm/qoder/signer-glue.generated.js +4 -0
  256. package/dist/llm/qoder/signer-glue.generated.js.map +1 -0
  257. package/dist/llm/qoder/signer-wasm.generated.d.ts +3 -0
  258. package/dist/llm/qoder/signer-wasm.generated.js +6 -0
  259. package/dist/llm/qoder/signer-wasm.generated.js.map +1 -0
  260. package/dist/llm/reasoning-capability.js +1 -0
  261. package/dist/llm/reasoning-capability.js.map +1 -1
  262. package/dist/llm/reasoning-controls.js +1 -3
  263. package/dist/llm/reasoning-controls.js.map +1 -1
  264. package/dist/llm/reasoning-errors.js +3 -1
  265. package/dist/llm/reasoning-errors.js.map +1 -1
  266. package/dist/llm/request-plan.js +18 -12
  267. package/dist/llm/request-plan.js.map +1 -1
  268. package/dist/llm/routing/attempt-complete.js +11 -4
  269. package/dist/llm/routing/attempt-complete.js.map +1 -1
  270. package/dist/llm/routing/attempt-request.d.ts +2 -1
  271. package/dist/llm/routing/attempt-request.js +37 -0
  272. package/dist/llm/routing/attempt-request.js.map +1 -1
  273. package/dist/llm/routing/attempt-stream.js +12 -4
  274. package/dist/llm/routing/attempt-stream.js.map +1 -1
  275. package/dist/llm/routing/provider-selection.js +3 -0
  276. package/dist/llm/routing/provider-selection.js.map +1 -1
  277. package/dist/llm/tool-protocol.js +6 -0
  278. package/dist/llm/tool-protocol.js.map +1 -1
  279. package/dist/llm/wire/chat-body.js +17 -0
  280. package/dist/llm/wire/chat-body.js.map +1 -1
  281. package/dist/llm/wire/reasoning-payload.d.ts +1 -1
  282. package/dist/llm/wire/reasoning-payload.js +6 -0
  283. package/dist/llm/wire/reasoning-payload.js.map +1 -1
  284. package/dist/modes/ask.js +26 -10
  285. package/dist/modes/ask.js.map +1 -1
  286. package/dist/noninteractive/readline-prompts.d.ts +2 -1
  287. package/dist/noninteractive/readline-prompts.js +34 -1
  288. package/dist/noninteractive/readline-prompts.js.map +1 -1
  289. package/dist/noninteractive/stdio-confirm-port.js +18 -6
  290. package/dist/noninteractive/stdio-confirm-port.js.map +1 -1
  291. package/dist/noninteractive/stream-blocks.d.ts +2 -4
  292. package/dist/noninteractive/stream-blocks.js +5 -5
  293. package/dist/noninteractive/stream-blocks.js.map +1 -1
  294. package/dist/noninteractive/stream-renderer.js +1 -1
  295. package/dist/noninteractive/stream-renderer.js.map +1 -1
  296. package/dist/prompts/embedded.js +2 -2
  297. package/dist/prompts/embedded.js.map +1 -1
  298. package/dist/prompts/index.d.ts +3 -1
  299. package/dist/prompts/index.js +27 -10
  300. package/dist/prompts/index.js.map +1 -1
  301. package/dist/prompts/system.agent.md +16 -16
  302. package/dist/prompts/system.ask.md +5 -3
  303. package/dist/safety/filesystem-permissions.d.ts +4 -0
  304. package/dist/safety/filesystem-permissions.js +113 -0
  305. package/dist/safety/filesystem-permissions.js.map +1 -0
  306. package/dist/safety/permission-mode.d.ts +5 -0
  307. package/dist/safety/permission-mode.js +22 -0
  308. package/dist/safety/permission-mode.js.map +1 -0
  309. package/dist/safety/shell-command-words.d.ts +11 -0
  310. package/dist/safety/shell-command-words.js +193 -0
  311. package/dist/safety/shell-command-words.js.map +1 -0
  312. package/dist/safety/shell-filesystem-effects.d.ts +14 -0
  313. package/dist/safety/shell-filesystem-effects.js +178 -0
  314. package/dist/safety/shell-filesystem-effects.js.map +1 -0
  315. package/dist/safety/shell-permission-words.d.ts +16 -0
  316. package/dist/safety/shell-permission-words.js +102 -0
  317. package/dist/safety/shell-permission-words.js.map +1 -0
  318. package/dist/safety/tool-classification.js +1 -15
  319. package/dist/safety/tool-classification.js.map +1 -1
  320. package/dist/session-runtime/binding.js +4 -1
  321. package/dist/session-runtime/binding.js.map +1 -1
  322. package/dist/session-runtime/client.js +111 -7
  323. package/dist/session-runtime/client.js.map +1 -1
  324. package/dist/session-runtime/discovery.d.ts +1 -1
  325. package/dist/session-runtime/discovery.js +2 -2
  326. package/dist/session-runtime/discovery.js.map +1 -1
  327. package/dist/session-runtime/host.d.ts +10 -2
  328. package/dist/session-runtime/host.js +206 -83
  329. package/dist/session-runtime/host.js.map +1 -1
  330. package/dist/session-runtime/input-commands.d.ts +2 -0
  331. package/dist/session-runtime/input-commands.js +11 -0
  332. package/dist/session-runtime/input-commands.js.map +1 -0
  333. package/dist/session-runtime/input-stream.d.ts +15 -0
  334. package/dist/session-runtime/input-stream.js +128 -0
  335. package/dist/session-runtime/input-stream.js.map +1 -0
  336. package/dist/session-runtime/types.d.ts +9 -0
  337. package/dist/store/config/endpoints.d.ts +2 -1
  338. package/dist/store/config/endpoints.js +4 -1
  339. package/dist/store/config/endpoints.js.map +1 -1
  340. package/dist/store/config.js +1 -0
  341. package/dist/store/config.js.map +1 -1
  342. package/dist/store/history/freshness.d.ts +9 -0
  343. package/dist/store/history/freshness.js +29 -0
  344. package/dist/store/history/freshness.js.map +1 -0
  345. package/dist/store/history/jsonl-backend.js +2 -16
  346. package/dist/store/history/jsonl-backend.js.map +1 -1
  347. package/dist/store/history/lifecycle.js +6 -2
  348. package/dist/store/history/lifecycle.js.map +1 -1
  349. package/dist/store/history/recovery.d.ts +1 -3
  350. package/dist/store/history/recovery.js +72 -111
  351. package/dist/store/history/recovery.js.map +1 -1
  352. package/dist/store/history/session-queries.js +5 -5
  353. package/dist/store/history/session-queries.js.map +1 -1
  354. package/dist/store/history-index.d.ts +5 -0
  355. package/dist/store/history-index.js +41 -9
  356. package/dist/store/history-index.js.map +1 -1
  357. package/dist/store/history.d.ts +7 -2
  358. package/dist/store/history.js +13 -7
  359. package/dist/store/history.js.map +1 -1
  360. package/dist/store/rtk-usage.d.ts +2 -0
  361. package/dist/store/rtk-usage.js +44 -0
  362. package/dist/store/rtk-usage.js.map +1 -0
  363. package/dist/store/session-model.js +0 -1
  364. package/dist/store/session-model.js.map +1 -1
  365. package/dist/store/session-prompts-format.d.ts +2 -0
  366. package/dist/store/session-prompts-format.js +29 -0
  367. package/dist/store/session-prompts-format.js.map +1 -0
  368. package/dist/store/session-prompts.d.ts +40 -0
  369. package/dist/store/session-prompts.js +213 -0
  370. package/dist/store/session-prompts.js.map +1 -0
  371. package/dist/store/subagents.d.ts +5 -1
  372. package/dist/store/subagents.js +67 -6
  373. package/dist/store/subagents.js.map +1 -1
  374. package/dist/tools/call-normalization.js +0 -3
  375. package/dist/tools/call-normalization.js.map +1 -1
  376. package/dist/tools/command-intent.d.ts +0 -1
  377. package/dist/tools/command-intent.js +3 -10
  378. package/dist/tools/command-intent.js.map +1 -1
  379. package/dist/tools/definitions/aggregate.js +0 -4
  380. package/dist/tools/definitions/aggregate.js.map +1 -1
  381. package/dist/tools/definitions/define.js +0 -3
  382. package/dist/tools/definitions/define.js.map +1 -1
  383. package/dist/tools/definitions/files.js +3 -111
  384. package/dist/tools/definitions/files.js.map +1 -1
  385. package/dist/tools/definitions/fs-read.d.ts +3 -0
  386. package/dist/tools/definitions/fs-read.js +43 -0
  387. package/dist/tools/definitions/fs-read.js.map +1 -0
  388. package/dist/tools/definitions/selection.js +0 -45
  389. package/dist/tools/definitions/selection.js.map +1 -1
  390. package/dist/tools/definitions/shell.js +6 -3
  391. package/dist/tools/definitions/shell.js.map +1 -1
  392. package/dist/tools/elevated-shell.d.ts +1 -0
  393. package/dist/tools/elevated-shell.js +2 -0
  394. package/dist/tools/elevated-shell.js.map +1 -1
  395. package/dist/tools/fs/read-budget.d.ts +8 -0
  396. package/dist/tools/fs/read-budget.js +30 -0
  397. package/dist/tools/fs/read-budget.js.map +1 -0
  398. package/dist/tools/fs/read-input.d.ts +16 -0
  399. package/dist/tools/fs/read-input.js +73 -0
  400. package/dist/tools/fs/read-input.js.map +1 -0
  401. package/dist/tools/fs/read-many.d.ts +6 -0
  402. package/dist/tools/fs/read-many.js +50 -0
  403. package/dist/tools/fs/read-many.js.map +1 -0
  404. package/dist/tools/fs/read-sections.d.ts +11 -0
  405. package/dist/tools/fs/read-sections.js +71 -0
  406. package/dist/tools/fs/read-sections.js.map +1 -0
  407. package/dist/tools/fs/read-window.d.ts +1 -1
  408. package/dist/tools/fs/read-window.js +57 -25
  409. package/dist/tools/fs/read-window.js.map +1 -1
  410. package/dist/tools/fs/read.d.ts +0 -4
  411. package/dist/tools/fs/read.js +34 -17
  412. package/dist/tools/fs/read.js.map +1 -1
  413. package/dist/tools/fs.d.ts +3 -2
  414. package/dist/tools/fs.js +23 -5
  415. package/dist/tools/fs.js.map +1 -1
  416. package/dist/tools/handlers/files-1.js +11 -35
  417. package/dist/tools/handlers/files-1.js.map +1 -1
  418. package/dist/tools/handlers/files-2.js.map +1 -1
  419. package/dist/tools/handlers/shell-1.js +26 -35
  420. package/dist/tools/handlers/shell-1.js.map +1 -1
  421. package/dist/tools/interactive-session-tools.js +1 -0
  422. package/dist/tools/interactive-session-tools.js.map +1 -1
  423. package/dist/tools/jobs/types.d.ts +4 -1
  424. package/dist/tools/jobs.js +9 -1
  425. package/dist/tools/jobs.js.map +1 -1
  426. package/dist/tools/read-only-shell.d.ts +2 -0
  427. package/dist/tools/read-only-shell.js +65 -0
  428. package/dist/tools/read-only-shell.js.map +1 -0
  429. package/dist/tools/registry.js +0 -9
  430. package/dist/tools/registry.js.map +1 -1
  431. package/dist/tools/retired-tools.js +1 -1
  432. package/dist/tools/retired-tools.js.map +1 -1
  433. package/dist/tools/rtk/rewrite.d.ts +3 -2
  434. package/dist/tools/rtk/rewrite.js +4 -5
  435. package/dist/tools/rtk/rewrite.js.map +1 -1
  436. package/dist/tools/shell/exec-attempt.js +1 -0
  437. package/dist/tools/shell/exec-attempt.js.map +1 -1
  438. package/dist/tools/shell/internals.d.ts +1 -1
  439. package/dist/tools/shell/internals.js +2 -1
  440. package/dist/tools/shell/internals.js.map +1 -1
  441. package/dist/tools/shell/spawn-argv.js +1 -1
  442. package/dist/tools/shell/spawn-argv.js.map +1 -1
  443. package/dist/tools/shell/timeout.d.ts +1 -0
  444. package/dist/tools/shell/timeout.js +2 -0
  445. package/dist/tools/shell/timeout.js.map +1 -0
  446. package/dist/tools/shell.d.ts +1 -0
  447. package/dist/tools/shell.js.map +1 -1
  448. package/dist/tools/sudo-session.d.ts +4 -5
  449. package/dist/tools/sudo-session.js +1 -0
  450. package/dist/tools/sudo-session.js.map +1 -1
  451. package/dist/tools/tool-types.d.ts +2 -4
  452. package/dist/tui-v2/app/App.js +5 -1
  453. package/dist/tui-v2/app/App.js.map +1 -1
  454. package/dist/tui-v2/bootstrap/start-tui-v2.js +0 -2
  455. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  456. package/dist/tui-v2/components/jobs/subagents-panel.js +14 -2
  457. package/dist/tui-v2/components/jobs/subagents-panel.js.map +1 -1
  458. package/dist/tui-v2/components/modal/confirm-modal.js +6 -2
  459. package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
  460. package/dist/tui-v2/components/modal/keys-modal.js +42 -6
  461. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
  462. package/dist/tui-v2/components/modal/secret-modal.d.ts +8 -0
  463. package/dist/tui-v2/components/modal/secret-modal.js +27 -18
  464. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  465. package/dist/tui-v2/components/overlay/overlay-host.js +14 -3
  466. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  467. package/dist/tui-v2/components/pager/pager.js +43 -61
  468. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  469. package/dist/tui-v2/components/picker/picker.js +17 -3
  470. package/dist/tui-v2/components/picker/picker.js.map +1 -1
  471. package/dist/tui-v2/components/transcript/intro-card.js +2 -1
  472. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  473. package/dist/tui-v2/components/transcript/tool-card.js +21 -19
  474. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  475. package/dist/tui-v2/components/transcript/transcript-view.js +24 -21
  476. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  477. package/dist/tui-v2/components/transcript/use-transcript-selection.d.ts +1 -0
  478. package/dist/tui-v2/components/transcript/use-transcript-selection.js +12 -1
  479. package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
  480. package/dist/tui-v2/composer/composer-editor.js +1 -1
  481. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  482. package/dist/types.d.ts +17 -2
  483. package/dist/types.js +1 -0
  484. package/dist/types.js.map +1 -1
  485. package/dist/ui/mentions/expand.js +1 -1
  486. package/dist/ui-core/actions/action-id.d.ts +1 -1
  487. package/dist/ui-core/actions/action-id.js +0 -2
  488. package/dist/ui-core/actions/action-id.js.map +1 -1
  489. package/dist/ui-core/actions/format-shortcuts.js +0 -2
  490. package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
  491. package/dist/ui-core/actions/keymap.js +0 -6
  492. package/dist/ui-core/actions/keymap.js.map +1 -1
  493. package/dist/ui-core/bootstrap/composition-root.d.ts +0 -3
  494. package/dist/ui-core/bootstrap/composition-root.js +0 -8
  495. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  496. package/dist/ui-core/bootstrap/overlay-ports.js +14 -5
  497. package/dist/ui-core/bootstrap/overlay-ports.js.map +1 -1
  498. package/dist/ui-core/bootstrap/session-resume.d.ts +5 -0
  499. package/dist/ui-core/bootstrap/session-resume.js +13 -35
  500. package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
  501. package/dist/ui-core/commands/command-handlers.js +5 -2
  502. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  503. package/dist/ui-core/commands/config-commands.js +5 -1
  504. package/dist/ui-core/commands/config-commands.js.map +1 -1
  505. package/dist/ui-core/commands/key-commands.js +50 -30
  506. package/dist/ui-core/commands/key-commands.js.map +1 -1
  507. package/dist/ui-core/commands/keys/auth-picker.d.ts +3 -0
  508. package/dist/ui-core/commands/keys/auth-picker.js +29 -0
  509. package/dist/ui-core/commands/keys/auth-picker.js.map +1 -0
  510. package/dist/ui-core/commands/keys/qoder.d.ts +4 -0
  511. package/dist/ui-core/commands/keys/qoder.js +194 -0
  512. package/dist/ui-core/commands/keys/qoder.js.map +1 -0
  513. package/dist/ui-core/commands/picker-commands.js +19 -1
  514. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  515. package/dist/ui-core/commands/pickers/output-pager.js +19 -8
  516. package/dist/ui-core/commands/pickers/output-pager.js.map +1 -1
  517. package/dist/ui-core/commands/pickers/search-reasoning.js +3 -4
  518. package/dist/ui-core/commands/pickers/search-reasoning.js.map +1 -1
  519. package/dist/ui-core/commands/prompt-commands.d.ts +2 -0
  520. package/dist/ui-core/commands/prompt-commands.js +10 -0
  521. package/dist/ui-core/commands/prompt-commands.js.map +1 -0
  522. package/dist/ui-core/commands/rtk-commands.js +35 -16
  523. package/dist/ui-core/commands/rtk-commands.js.map +1 -1
  524. package/dist/ui-core/commands/session-commands.js +22 -7
  525. package/dist/ui-core/commands/session-commands.js.map +1 -1
  526. package/dist/ui-core/commands/subagent-commands.js +5 -4
  527. package/dist/ui-core/commands/subagent-commands.js.map +1 -1
  528. package/dist/ui-core/composer/composer-meta.js +2 -5
  529. package/dist/ui-core/composer/composer-meta.js.map +1 -1
  530. package/dist/ui-core/controllers/overlay-controller.d.ts +13 -0
  531. package/dist/ui-core/controllers/overlay-controller.js +33 -6
  532. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  533. package/dist/ui-core/rendering/batch-sections.d.ts +1 -1
  534. package/dist/ui-core/rendering/batch-sections.js +18 -4
  535. package/dist/ui-core/rendering/batch-sections.js.map +1 -1
  536. package/dist/ui-core/rendering/duration.d.ts +2 -0
  537. package/dist/ui-core/rendering/duration.js +9 -1
  538. package/dist/ui-core/rendering/duration.js.map +1 -1
  539. package/dist/ui-core/rendering/intro-header.js +5 -6
  540. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  541. package/dist/ui-core/rendering/open-tool-output.js +4 -1
  542. package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
  543. package/dist/ui-core/rendering/pager-source.js +3 -0
  544. package/dist/ui-core/rendering/pager-source.js.map +1 -1
  545. package/dist/ui-core/rendering/pager-text.js +3 -0
  546. package/dist/ui-core/rendering/pager-text.js.map +1 -1
  547. package/dist/ui-core/rendering/pager-view-policy.js +4 -2
  548. package/dist/ui-core/rendering/pager-view-policy.js.map +1 -1
  549. package/dist/ui-core/rendering/session-prompts-pager-source.d.ts +3 -0
  550. package/dist/ui-core/rendering/session-prompts-pager-source.js +40 -0
  551. package/dist/ui-core/rendering/session-prompts-pager-source.js.map +1 -0
  552. package/dist/ui-core/rendering/subagent-source.d.ts +4 -3
  553. package/dist/ui-core/rendering/subagent-source.js +79 -7
  554. package/dist/ui-core/rendering/subagent-source.js.map +1 -1
  555. package/dist/ui-core/rendering/text-width.d.ts +1 -0
  556. package/dist/ui-core/rendering/text-width.js +31 -0
  557. package/dist/ui-core/rendering/text-width.js.map +1 -1
  558. package/dist/ui-core/rendering/tool-presenter.d.ts +9 -4
  559. package/dist/ui-core/rendering/tool-presenter.js +43 -91
  560. package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
  561. package/dist/ui-core/rendering/usage-pager-source.js +6 -2
  562. package/dist/ui-core/rendering/usage-pager-source.js.map +1 -1
  563. package/dist/ui-core/state/transcript-store.js +7 -2
  564. package/dist/ui-core/state/transcript-store.js.map +1 -1
  565. package/dist/ui-core/state/transcript-types.d.ts +1 -1
  566. package/dist/ui-core/state/transcript-types.js +4 -2
  567. package/dist/ui-core/state/transcript-types.js.map +1 -1
  568. package/dist/version.generated.d.ts +2 -2
  569. package/dist/version.generated.js +2 -2
  570. package/package.json +6 -2
  571. package/dist/agent/turn/pentest-tools.d.ts +0 -3
  572. package/dist/agent/turn/pentest-tools.js +0 -17
  573. package/dist/agent/turn/pentest-tools.js.map +0 -1
  574. package/dist/classic/bootstrap/suspend-port.d.ts +0 -14
  575. package/dist/classic/bootstrap/suspend-port.js +0 -29
  576. package/dist/classic/bootstrap/suspend-port.js.map +0 -1
  577. package/dist/tools/capabilities.d.ts +0 -12
  578. package/dist/tools/capabilities.js +0 -225
  579. package/dist/tools/capabilities.js.map +0 -1
  580. package/dist/tools/definitions/network.d.ts +0 -2
  581. package/dist/tools/definitions/network.js +0 -17
  582. package/dist/tools/definitions/network.js.map +0 -1
  583. package/dist/tools/definitions/orchestration.d.ts +0 -2
  584. package/dist/tools/definitions/orchestration.js +0 -27
  585. package/dist/tools/definitions/orchestration.js.map +0 -1
  586. package/dist/tools/fs/search.d.ts +0 -32
  587. package/dist/tools/fs/search.js +0 -427
  588. package/dist/tools/fs/search.js.map +0 -1
  589. package/dist/tools/handlers/network-3.d.ts +0 -2
  590. package/dist/tools/handlers/network-3.js +0 -13
  591. package/dist/tools/handlers/network-3.js.map +0 -1
  592. package/dist/tools/handlers/orchestration-2.d.ts +0 -2
  593. package/dist/tools/handlers/orchestration-2.js +0 -16
  594. package/dist/tools/handlers/orchestration-2.js.map +0 -1
  595. package/dist/tools/net-ping-sweep.d.ts +0 -18
  596. package/dist/tools/net-ping-sweep.js +0 -274
  597. package/dist/tools/net-ping-sweep.js.map +0 -1
  598. package/dist/tools/wordlists.d.ts +0 -6
  599. package/dist/tools/wordlists.js +0 -390
  600. package/dist/tools/wordlists.js.map +0 -1
  601. package/dist/tui-v2/bootstrap/pager-export.d.ts +0 -7
  602. package/dist/tui-v2/bootstrap/pager-export.js +0 -19
  603. package/dist/tui-v2/bootstrap/pager-export.js.map +0 -1
  604. package/dist/ui-core/ports/pager-export-port.d.ts +0 -16
  605. package/dist/ui-core/ports/pager-export-port.js +0 -68
  606. package/dist/ui-core/ports/pager-export-port.js.map +0 -1
  607. package/dist/ui-core/rendering/fs-search-summary.d.ts +0 -11
  608. package/dist/ui-core/rendering/fs-search-summary.js +0 -65
  609. package/dist/ui-core/rendering/fs-search-summary.js.map +0 -1
@@ -3,6 +3,8 @@ import { redactSecrets } from "../../llm/provider.js";
3
3
  import { hasReasoningMarker } from "../../llm/reasoning-marker.js";
4
4
  import { ACTIVE_SKILLS_PREFIX } from "../../skills/catalog.js";
5
5
  import { compactionSourcePrefixEnd } from "./compaction-source-prefix.js";
6
+ import { latestUserMessage } from "./latest-user-message.js";
7
+ import { compactionRecencyAnchors, hasCompletedConversationTurn, recentUserPrompts, renderRecentUserPrompts, } from "./compaction-recent-history.js";
6
8
  import { stripThinking } from "../../ui/thinking.js";
7
9
  import { buildCompactionChunkPrompt, buildCompactionReducePrompt, buildCompactionUserPrompt, buildDirectCompactionPrompt, chunkTranscriptForCompaction, COMPACTION_CHUNK_CHAR_BUDGET, COMPACTION_MAP_MAX_COMPLETION_TOKENS, COMPACTION_MAX_COMPLETION_TOKENS, COMPACTION_SYSTEM_PROMPT, looksLikeIncompleteCompactionSummary, looksLikeTranscriptReplay, normalizeCompactionSummary, } from "../compaction-summary.js";
8
10
  import { DURABLE_ENVELOPE_PREFIX, isDurableEnvelopeContent } from "../durable-envelope.js";
@@ -39,11 +41,21 @@ export async function compactMessagesWithSummary(messages, summarize, options =
39
41
  const beforeTokens = estimateMessagesTokens(messages);
40
42
  const isForced = options.budgetTokens === 0;
41
43
  let keepRecent = Math.max(2, options.keepRecent ?? DEFAULT_KEEP_RECENT);
44
+ const completedTurn = options.preserveActiveTurn !== true &&
45
+ hasCompletedConversationTurn(messages);
46
+ const recentPrompts = recentUserPrompts(messages);
47
+ const recencyAnchors = compactionRecencyAnchors(messages);
42
48
  const firstMessage = messages[0];
43
49
  const preserveSystemHead = firstMessage?.role === "system" &&
44
50
  !isCompactionMemoryMessage(firstMessage);
45
51
  const start = preserveSystemHead ? 1 : 0;
46
- let tailStart = Math.max(start, messages.length - keepRecent);
52
+ let recentEnd = messages.length;
53
+ while (recentEnd > start && messages[recentEnd - 1]?.role === "system") {
54
+ recentEnd -= 1;
55
+ }
56
+ let tailStart = completedTurn
57
+ ? messages.length
58
+ : Math.max(start, recentEnd - keepRecent);
47
59
  tailStart = expandKeepStartForToolPairs(messages, tailStart);
48
60
  let older = messages.slice(start, tailStart);
49
61
  if (older.length === 0 && isForced && messages.length >= start + 2) {
@@ -129,6 +141,7 @@ export async function compactMessagesWithSummary(messages, summarize, options =
129
141
  .filter(Boolean)
130
142
  .join("\n\n---\n\n");
131
143
  const directPrompt = buildDirectCompactionPrompt({
144
+ messages,
132
145
  ...(options.durableEnvelope?.trim()
133
146
  ? { durableState: options.durableEnvelope.trim() }
134
147
  : {}),
@@ -149,6 +162,7 @@ export async function compactMessagesWithSummary(messages, summarize, options =
149
162
  directInputTokens <= singlePassInputBudget));
150
163
  const serializedPrompt = buildCompactionUserPrompt({
151
164
  messageTranscript: "",
165
+ recencyAnchors,
152
166
  ...(durableState ? { durableState } : {}),
153
167
  ...(options.purpose ? { purpose: options.purpose } : {}),
154
168
  });
@@ -228,6 +242,7 @@ export async function compactMessagesWithSummary(messages, summarize, options =
228
242
  messageTranscript: visualCoversOlderHistory ? "" : messageTranscript,
229
243
  durableState: durableState || undefined,
230
244
  purpose: options.purpose,
245
+ recencyAnchors,
231
246
  }), { phase: "single" });
232
247
  }
233
248
  else if (options.singleAdmission) {
@@ -282,6 +297,7 @@ export async function compactMessagesWithSummary(messages, summarize, options =
282
297
  messageTranscript: sliceTranscript,
283
298
  durableState: durableState || undefined,
284
299
  purpose: options.purpose,
300
+ recencyAnchors,
285
301
  }), { phase: "single" });
286
302
  }
287
303
  else {
@@ -303,6 +319,7 @@ export async function compactMessagesWithSummary(messages, summarize, options =
303
319
  partials,
304
320
  ...(durableState ? { durableState } : {}),
305
321
  ...(options.purpose ? { purpose: options.purpose } : {}),
322
+ recencyAnchors,
306
323
  }), { phase: "reduce", total: chunks.length });
307
324
  }
308
325
  const rawSummary = redactSecrets(modelSummary.trim());
@@ -317,7 +334,11 @@ export async function compactMessagesWithSummary(messages, summarize, options =
317
334
  throw new Error("compaction failed: model returned an incomplete summary — retry /compact or switch model");
318
335
  }
319
336
  const head = preserveSystemHead ? [messages[0]] : [];
337
+ const protectedUser = completedTurn ? undefined : latestUserMessage(messages);
320
338
  let rawTail = [...retainedMiddle, ...messages.slice(tailStart)];
339
+ if (protectedUser && !rawTail.includes(protectedUser)) {
340
+ rawTail.unshift(protectedUser);
341
+ }
321
342
  if (options.durableEnvelope?.trim()) {
322
343
  rawTail = rawTail.filter((message) => !(message.role === "system" && isDurableEnvelopeContent(message.content)));
323
344
  }
@@ -336,17 +357,23 @@ export async function compactMessagesWithSummary(messages, summarize, options =
336
357
  const memoryPrefix = compactionMemoryPrefixForPurpose(options.purpose);
337
358
  const memoryMsg = {
338
359
  role: "system",
339
- content: `${memoryPrefix}\n\n${summary}`,
360
+ content: [memoryPrefix, summary, renderRecentUserPrompts(recentPrompts, protectedUser)]
361
+ .filter(Boolean).join("\n\n"),
362
+ compaction: {
363
+ recentUserPrompts: recentPrompts
364
+ .filter((prompt) => !prompt.message || !rawTail.includes(prompt.message))
365
+ .map(({ content, truncated }) => ({ content, ...(truncated ? { truncated } : {}) })),
366
+ },
340
367
  };
341
368
  const envelopeMsg = options.durableEnvelope?.trim()
342
369
  ? { role: "system", content: options.durableEnvelope.trim() }
343
370
  : undefined;
344
- let compacted = buildLeanCompact(compactHead, memoryMsg, rawTail, TAIL_SOFT_TIERS[0], envelopeMsg);
371
+ let compacted = buildLeanCompact(compactHead, memoryMsg, rawTail, TAIL_SOFT_TIERS[0], envelopeMsg, protectedUser);
345
372
  for (let i = 1; i < TAIL_SOFT_TIERS.length; i += 1) {
346
373
  if (estimateMessagesTokens(compacted) <= POST_COMPACT_SOFT_UPPER_BAND_TOKENS) {
347
374
  break;
348
375
  }
349
- compacted = buildLeanCompact(compactHead, memoryMsg, rawTail, TAIL_SOFT_TIERS[i], envelopeMsg);
376
+ compacted = buildLeanCompact(compactHead, memoryMsg, rawTail, TAIL_SOFT_TIERS[i], envelopeMsg, protectedUser);
350
377
  }
351
378
  collapseOversizedToolHistory(compacted);
352
379
  if (hasOrphanToolMessages(compacted)) {
@@ -363,12 +390,12 @@ export async function compactMessagesWithSummary(messages, summarize, options =
363
390
  strategy,
364
391
  };
365
392
  }
366
- function buildLeanCompact(head, memoryMsg, rawTail, preferMax, envelopeMsg) {
393
+ function buildLeanCompact(head, memoryMsg, rawTail, preferMax, envelopeMsg, protectedUser) {
367
394
  return [
368
395
  ...head,
369
396
  memoryMsg,
370
397
  ...(envelopeMsg ? [envelopeMsg] : []),
371
- ...leanTailMessages(rawTail, preferMax),
398
+ ...leanTailMessages(rawTail, preferMax, protectedUser),
372
399
  ];
373
400
  }
374
401
  function isReinjectedSystem(content) {
@@ -395,7 +422,7 @@ function preferTrimContent(text, preferMax) {
395
422
  return text.slice(0, preferMax);
396
423
  return `${text.slice(0, half)}\n…(trimmed oversized dump in compact tail; full may be on disk)…\n${text.slice(-half)}`;
397
424
  }
398
- function leanTailMessages(tail, preferMax) {
425
+ function leanTailMessages(tail, preferMax, protectedUser) {
399
426
  return tail
400
427
  .filter((msg) => {
401
428
  if (msg.role === "system" && isStaleDurableSystem(msg.content)) {
@@ -406,6 +433,8 @@ function leanTailMessages(tail, preferMax) {
406
433
  return true;
407
434
  })
408
435
  .map((msg) => {
436
+ if (msg === protectedUser)
437
+ return msg;
409
438
  if (msg.role === "tool") {
410
439
  return { ...msg, content: preferTrimContent(msg.content, preferMax.tool) };
411
440
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compact-with-summary.js","sourceRoot":"","sources":["../../../src/agent/context/compact-with-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact-with-summary.js","sourceRoot":"","sources":["../../../src/agent/context/compact-with-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type ChatMessage, type CompactedUserPrompt } from "../../types.js";
2
+ export declare const RECENT_USER_PROMPT_COUNT = 3;
3
+ export declare const RECENT_USER_PROMPT_CHAR_BUDGET = 8000;
4
+ export declare const RECENT_USER_PROMPTS_HEADING = "## Last 3 user prompts";
5
+ export interface RecentUserPrompt extends CompactedUserPrompt {
6
+ readonly message?: ChatMessage | undefined;
7
+ }
8
+ export declare function withoutRecentUserPrompts(summary: string): string;
9
+ export declare function recentUserPrompts(messages: readonly ChatMessage[]): RecentUserPrompt[];
10
+ export declare function hasCompletedConversationTurn(messages: readonly ChatMessage[]): boolean;
11
+ export declare function renderRecentUserPrompts(prompts: readonly RecentUserPrompt[], activeUser?: ChatMessage | undefined): string;
12
+ export declare function compactionRecencyAnchors(messages: readonly ChatMessage[]): string;
@@ -0,0 +1,114 @@
1
+ import { redactSecrets } from "../../llm/provider.js";
2
+ import { isInternalChatMessage } from "../../types.js";
3
+ import { stripThinking } from "../../ui/thinking.js";
4
+ import { parseCanonicalTextToolCalls } from "../tool-history-projection.js";
5
+ import { redactUserCredentialsFromMemory } from "./user-credentials.js";
6
+ export const RECENT_USER_PROMPT_COUNT = 3;
7
+ export const RECENT_USER_PROMPT_CHAR_BUDGET = 8_000;
8
+ export const RECENT_USER_PROMPTS_HEADING = "## Last 3 user prompts";
9
+ export function withoutRecentUserPrompts(summary) {
10
+ const text = summary.trim();
11
+ if (text.startsWith(RECENT_USER_PROMPTS_HEADING))
12
+ return "";
13
+ const section = text.indexOf(`\n\n${RECENT_USER_PROMPTS_HEADING}`);
14
+ return section < 0 ? text : text.slice(0, section).trim();
15
+ }
16
+ function excerpt(content, budget) {
17
+ if (content.length <= budget)
18
+ return content;
19
+ const marker = "\n[… middle omitted for length …]\n";
20
+ const head = Math.floor((budget - marker.length) / 2);
21
+ return `${content.slice(0, head)}${marker}${content.slice(-(budget - marker.length - head))}`;
22
+ }
23
+ function memoryText(content) {
24
+ return redactSecrets(redactUserCredentialsFromMemory(content));
25
+ }
26
+ export function recentUserPrompts(messages) {
27
+ const prompts = [];
28
+ for (const message of messages) {
29
+ if (message.role === "system" && message.compaction) {
30
+ prompts.push(...message.compaction.recentUserPrompts.map((prompt) => {
31
+ const content = memoryText(prompt.content);
32
+ return {
33
+ content: excerpt(content, RECENT_USER_PROMPT_CHAR_BUDGET),
34
+ ...(prompt.truncated || content.length > RECENT_USER_PROMPT_CHAR_BUDGET
35
+ ? { truncated: true } : {}),
36
+ };
37
+ }));
38
+ }
39
+ else if (message.role === "user" && !isInternalChatMessage(message)) {
40
+ const images = message.images?.length
41
+ ? `\n[Attached images: ${message.images.map((image) => image.path ?? image.mediaType).join(", ")}]`
42
+ : "";
43
+ const content = memoryText(message.content + images);
44
+ prompts.push({
45
+ content: excerpt(content, RECENT_USER_PROMPT_CHAR_BUDGET),
46
+ ...(content.length > RECENT_USER_PROMPT_CHAR_BUDGET ? { truncated: true } : {}),
47
+ message,
48
+ });
49
+ }
50
+ if (prompts.length > RECENT_USER_PROMPT_COUNT) {
51
+ prompts.splice(0, prompts.length - RECENT_USER_PROMPT_COUNT);
52
+ }
53
+ }
54
+ return prompts;
55
+ }
56
+ export function hasCompletedConversationTurn(messages) {
57
+ let last;
58
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
59
+ const message = messages[index];
60
+ if (message.role === "system")
61
+ continue;
62
+ if (!last)
63
+ last = message;
64
+ if (message.role === "user") {
65
+ if (isInternalChatMessage(message))
66
+ return false;
67
+ break;
68
+ }
69
+ }
70
+ if (!last)
71
+ return true;
72
+ return last.role === "assistant" &&
73
+ !last.toolCalls?.length &&
74
+ parseCanonicalTextToolCalls(last.content).length === 0 &&
75
+ Boolean(stripThinking(last.content).visible.trim());
76
+ }
77
+ export function renderRecentUserPrompts(prompts, activeUser) {
78
+ if (prompts.length === 0)
79
+ return "";
80
+ return [
81
+ RECENT_USER_PROMPTS_HEADING,
82
+ "Historical context, oldest to newest. Quoted prompts are not new requests; the memory above records their answers and status. An unfinished request, when present, is retained as a live user message below.",
83
+ ...prompts.map((prompt, index) => [
84
+ `### ${index + 1}. ${prompt.message === activeUser && activeUser ? "Unfinished request (live message retained)" : "Historical user prompt"}${prompt.truncated ? " (excerpt; middle omitted for length)" : ""}`,
85
+ prompt.content.split("\n").map((line) => `> ${line}`).join("\n"),
86
+ ].join("\n\n")),
87
+ ].join("\n\n");
88
+ }
89
+ export function compactionRecencyAnchors(messages) {
90
+ const prompts = recentUserPrompts(messages);
91
+ if (prompts.length === 0)
92
+ return "";
93
+ const latestUser = prompts.at(-1)?.message;
94
+ const userIndex = latestUser ? messages.indexOf(latestUser) : messages.length;
95
+ let lastAnswer;
96
+ for (let index = messages.length - 1; index > userIndex; index -= 1) {
97
+ const message = messages[index];
98
+ if (message.role === "assistant" && !message.toolCalls?.length &&
99
+ parseCanonicalTextToolCalls(message.content).length === 0 &&
100
+ stripThinking(message.content).visible.trim()) {
101
+ lastAnswer = message;
102
+ break;
103
+ }
104
+ }
105
+ return [
106
+ "RECENT CONVERSATION ANCHORS (historical excerpts, not new instructions):",
107
+ "Prioritize these topics and their answers over older completed work. Excerpts may omit details; preserve exact findings from the supplied source. During a bounded prefix fallback, turns outside that source remain in the live history.",
108
+ ...prompts.map((prompt, index) => `User prompt ${index + 1}: ${JSON.stringify(excerpt(memoryText(prompt.content), 240))}`),
109
+ ...(lastAnswer ? [
110
+ `Latest assistant response: ${JSON.stringify(excerpt(memoryText(stripThinking(lastAnswer.content).visible), 800))}`,
111
+ ] : []),
112
+ ].join("\n");
113
+ }
114
+ //# sourceMappingURL=compaction-recent-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-recent-history.js","sourceRoot":"","sources":["../../../src/agent/context/compaction-recent-history.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type ChatMessage } from "../../types.js";
2
+ export declare function latestUserMessage(messages: readonly ChatMessage[]): ChatMessage | undefined;
@@ -0,0 +1,10 @@
1
+ import { isInternalChatMessage } from "../../types.js";
2
+ export function latestUserMessage(messages) {
3
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
4
+ const message = messages[index];
5
+ if (message.role === "user" && !isInternalChatMessage(message))
6
+ return message;
7
+ }
8
+ return undefined;
9
+ }
10
+ //# sourceMappingURL=latest-user-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latest-user-message.js","sourceRoot":"","sources":["../../../src/agent/context/latest-user-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gBAAgB,CAAC;AAEzE,MAAM,UAAU,iBAAiB,CAC/B,QAAgC;IAEhC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;IACjF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type ChatMessage } from "../../types.js";
2
2
  export declare const USER_CREDENTIALS_HEADING = "User-provided credentials (verbatim from the user; use only for the work the user requested):";
3
+ export declare function redactUserCredentialsFromMemory(content: string): string;
3
4
  export declare function collectUserCredentials(messages: readonly ChatMessage[], isEnvelope: (content: string) => boolean): string[];
4
5
  export declare function renderUserCredentials(credentials: readonly string[]): string[];
@@ -24,6 +24,9 @@ const CREDENTIAL_PATTERN = new RegExp([
24
24
  String.raw `\b(?:password|passphrase|passcode|pin)\s+is\s+\S{4,}`,
25
25
  SPOKEN_SECRET,
26
26
  ].join("|"), "gi");
27
+ export function redactUserCredentialsFromMemory(content) {
28
+ return content.replace(new RegExp(CREDENTIAL_PATTERN.source, "gi"), "[redacted user credential]");
29
+ }
27
30
  const IDENTITY_LINE = new RegExp(String.raw `^(?:user(?:name)?|login|e-?mail|account(?:[\s_-]?(?:id|name))?|host(?:name)?|url|endpoint|base[\s_-]?url|tenant|project(?:[\s_-]?id)?|region|client[\s_-]?id|org(?:anization)?(?:[\s_-]?id)?|database|db(?:[\s_-]?name)?|port)\s*[:=]\s*\S`, "i");
28
31
  const windowsAround = (line) => [...line.matchAll(CREDENTIAL_PATTERN)].map((match) => {
29
32
  const start = Math.max(0, match.index - CONTEXT_CHARS);
@@ -1 +1 @@
1
- {"version":3,"file":"user-credentials.js","sourceRoot":"","sources":["../../../src/agent/context/user-credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-credentials.js","sourceRoot":"","sources":["../../../src/agent/context/user-credentials.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { stripThinking } from "../ui/thinking.js";
2
2
  import { hasReasoningMarker, stripReasoningMarkers, } from "../llm/reasoning-marker.js";
3
3
  import { expandKeepStartForToolPairs, hasOrphanToolMessages, projectToolHistory, } from "./tool-history.js";
4
4
  import { isResponderResultLedgerMessage } from "./responder-context.js";
5
+ import { latestUserMessage } from "./context/latest-user-message.js";
6
+ import { withoutRecentUserPrompts } from "./context/compaction-recent-history.js";
5
7
  import { estimateImageTokens, estimateMessagesTokens, estimateTextTokens as estimateTokens, } from "./request-accounting.js";
6
8
  import { DEFAULT_KEEP_RECENT, MECHANICAL_MEMORY_PREFIX, isCompactionMemoryMessage } from "./context/compact-with-summary.js";
7
9
  export { COMPACTION_MEMORY_PREFIX, PLAN_IMPLEMENT_MEMORY_PREFIX, POST_COMPACT_SOFT_UPPER_BAND_TOKENS, compactMessagesWithSummary, compactionMemoryPrefixForPurpose } from "./context/compact-with-summary.js";
@@ -76,7 +78,9 @@ export function compactMessages(messages, options = {}) {
76
78
  }
77
79
  }
78
80
  const preservedLedger = ledger && !head.includes(ledger) && !tail.includes(ledger) ? [ledger] : [];
79
- return [...head, memo, ...preservedLedger, ...tail];
81
+ const latestUser = latestUserMessage(messages);
82
+ const preservedUser = latestUser && !tail.includes(latestUser) ? [latestUser] : [];
83
+ return [...head, memo, ...preservedUser, ...preservedLedger, ...tail];
80
84
  }
81
85
  export function shouldApplyAutoCompact(input) {
82
86
  if (!input.summarized)
@@ -85,7 +89,7 @@ export function shouldApplyAutoCompact(input) {
85
89
  return false;
86
90
  if (hasOrphanToolMessages([...input.afterMessages]))
87
91
  return false;
88
- const body = input.summaryBody.trim();
92
+ const body = withoutRecentUserPrompts(input.summaryBody);
89
93
  if (!body)
90
94
  return false;
91
95
  if (input.beforeTokens >= AUTO_COMPACT_STUB_BEFORE_TOKENS &&
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,IAAI,cAAc,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAkB,mBAAmB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC7I,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,0BAA0B,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAC9M,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,cAAc,EAAE,CAAC;AAEvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAEtD,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,SAAS,oBAAoB,CAAC,OAAoB;IAChD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IACjD,IACE,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAC9C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IACvD,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,QAAuB,EACvB,UAA0B,EAAE;IAE5B,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;IAC1E,IAAI,QAAQ,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,IAAI,MAAM;QAAE,OAAO,QAAQ,CAAC;IAEhE,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IACE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ;QAC9B,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACvC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC9D,SAAS,GAAG,2BAA2B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;YAC/C,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CACV,sBAAsB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAgB;QACxB,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,GAAG,wBAAwB,oHAAoH;YAC/I,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KACrB,CAAC;IAEF,IAAI,MAA+B,CAAC;IACpC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7D,IAAI,8BAA8B,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GACnB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAMtC;IACC,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,qBAAqB,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IACE,KAAK,CAAC,YAAY,IAAI,+BAA+B;QACrD,IAAI,CAAC,MAAM,GAAG,2BAA2B,EACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,QAAgB;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
@@ -68,10 +68,7 @@ export function toolFitsTaskClass(toolName, taskTitle, opts) {
68
68
  const s = opts?.signals;
69
69
  switch (cls) {
70
70
  case "explore":
71
- return (toolName === "tool.check" ||
72
- toolName === "fs.list" ||
73
- toolName === "fs.read" ||
74
- toolName === "fs.search" ||
71
+ return (toolName === "fs.read" ||
75
72
  toolName === "shell.exec");
76
73
  case "scaffold":
77
74
  return (Boolean(s?.scaffoldOk) ||
@@ -97,7 +94,7 @@ export function toolFitsTaskClass(toolName, taskTitle, opts) {
97
94
  toolName === "web.fetch");
98
95
  case "recon":
99
96
  return (Boolean(s?.remoteReconOk) ||
100
- /^(dns\.lookup|whois\.lookup|http\.fetch|web\.fetch|net\.scan|pentest\.recon|net\.pingSweep|net\.context|tool\.batch)$/.test(toolName));
97
+ /^(dns\.lookup|whois\.lookup|http\.fetch|web\.fetch|net\.scan|pentest\.recon|net\.context|tool\.batch)$/.test(toolName));
101
98
  case "exploit":
102
99
  return Boolean(s?.remoteActiveTestOk) || isEvidenceWorkTool(toolName);
103
100
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"task-classification.js","sourceRoot":"","sources":["../../../src/agent/evidence/task-classification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-classification.js","sourceRoot":"","sources":["../../../src/agent/evidence/task-classification.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_SHELL_TIMEOUT_MS } from "../../tools/shell/timeout.js";
1
2
  export function isScaffoldCreateCommand(cmd) {
2
3
  return /\b(?:npm\s+create|npm\s+init|yarn\s+create|pnpm\s+create|bun\s+create|npx\s+(?:--yes\s+)?create-[\w-]+|create-vite|create-next-app|create-react-app|cargo\s+new|cargo\s+init|go\s+mod\s+init|poetry\s+new|django-admin\s+startproject|rails\s+new|composer\s+create-project|mix\s+new|flutter\s+create|dotnet\s+new)\b/i.test(cmd);
3
4
  }
@@ -48,23 +49,12 @@ function requestedToolTimeoutMs(call) {
48
49
  requested = parsed;
49
50
  }
50
51
  if (requested !== undefined) {
51
- let ms = Math.floor(requested);
52
- const cmd = typeof call.args.command === "string" ? call.args.command : "";
53
- const isLongRunning = isLongRunningTestOrBuildCommand(cmd) || isLongQuietInstallOrScaffoldCommand(cmd);
54
- if (isLongRunning && ms > 0 && ms < 1000) {
55
- ms = ms * 1000;
56
- }
57
- return Math.max(MIN_TOOL_TIMEOUT_MS, Math.min(MAX_TOOL_TIMEOUT_MS, ms));
58
- }
59
- const cmd = typeof call.args.command === "string" ? call.args.command : "";
60
- if (call.name === "shell.exec" && isLongQuietInstallOrScaffoldCommand(cmd)) {
61
- return 15 * 60_000;
62
- }
63
- if (call.name === "shell.exec" && isLongRunningTestOrBuildCommand(cmd)) {
64
- return 120_000;
52
+ return Math.max(MIN_TOOL_TIMEOUT_MS, Math.min(MAX_TOOL_TIMEOUT_MS, Math.floor(requested)));
65
53
  }
66
54
  if (call.name.startsWith("mcp."))
67
55
  return 60_000;
56
+ if (call.name === "shell.exec")
57
+ return DEFAULT_SHELL_TIMEOUT_MS;
68
58
  return DEFAULT_TOOL_TIMEOUT_MS;
69
59
  }
70
60
  const OUTER_STALL_SETTLE_MARGIN_MS = 2_500;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-budgets.js","sourceRoot":"","sources":["../../../src/agent/evidence/tool-budgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-budgets.js","sourceRoot":"","sources":["../../../src/agent/evidence/tool-budgets.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,6 @@ const READ_ONLY_TOOLS = new Set([
8
8
  "http.fetch",
9
9
  "web.search",
10
10
  "fs.read",
11
- "fs.list",
12
- "fs.search",
13
- "tool.check",
14
- "wordlist.find",
15
11
  "image.ocr",
16
12
  "pdf.read",
17
13
  ]);
@@ -480,7 +476,7 @@ export class LoopGuard {
480
476
  if (paths.length === 0)
481
477
  return;
482
478
  for (const sig of [...this.signatureCount.keys()]) {
483
- if (!sig.startsWith("fs.read::") && !sig.startsWith("fs.list::"))
479
+ if (!sig.startsWith("fs.read::"))
484
480
  continue;
485
481
  if (paths.some((p) => p.length > 1 && sig.includes(p))) {
486
482
  this.signatureCount.delete(sig);