@pentoshi/clai 4.11.29 → 4.12.1

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 (387) hide show
  1. package/README.md +49 -10
  2. package/dist/agent/compaction/summary-execution.js +19 -3
  3. package/dist/agent/compaction/summary-execution.js.map +1 -1
  4. package/dist/agent/confirm-port.d.ts +3 -5
  5. package/dist/agent/confirm-port.js +12 -6
  6. package/dist/agent/confirm-port.js.map +1 -1
  7. package/dist/agent/context/compact-with-summary.js +12 -5
  8. package/dist/agent/context/compact-with-summary.js.map +1 -1
  9. package/dist/agent/context/latest-user-message.d.ts +2 -0
  10. package/dist/agent/context/latest-user-message.js +10 -0
  11. package/dist/agent/context/latest-user-message.js.map +1 -0
  12. package/dist/agent/context/user-credentials.js +36 -7
  13. package/dist/agent/context/user-credentials.js.map +1 -1
  14. package/dist/agent/context-manager.js +4 -1
  15. package/dist/agent/context-manager.js.map +1 -1
  16. package/dist/agent/durable-envelope.d.ts +6 -0
  17. package/dist/agent/durable-envelope.js +50 -11
  18. package/dist/agent/durable-envelope.js.map +1 -1
  19. package/dist/agent/evidence/tool-budgets.js +4 -14
  20. package/dist/agent/evidence/tool-budgets.js.map +1 -1
  21. package/dist/agent/responder-context.d.ts +8 -0
  22. package/dist/agent/responder-context.js +35 -2
  23. package/dist/agent/responder-context.js.map +1 -1
  24. package/dist/agent/subagents/manager.d.ts +1 -1
  25. package/dist/agent/subagents/manager.js +7 -6
  26. package/dist/agent/subagents/manager.js.map +1 -1
  27. package/dist/agent/subagents/types.d.ts +1 -0
  28. package/dist/agent/tool-history.d.ts +2 -2
  29. package/dist/agent/tool-history.js +2 -1
  30. package/dist/agent/tool-history.js.map +1 -1
  31. package/dist/agent/turn/compaction-durable-envelope.d.ts +2 -1
  32. package/dist/agent/turn/compaction-durable-envelope.js +22 -11
  33. package/dist/agent/turn/compaction-durable-envelope.js.map +1 -1
  34. package/dist/agent/turn/history-writer.d.ts +1 -1
  35. package/dist/agent/turn/history-writer.js +1 -0
  36. package/dist/agent/turn/history-writer.js.map +1 -1
  37. package/dist/agent/turn/loop/completion-interpretation.d.ts +1 -1
  38. package/dist/agent/turn/loop/deps.d.ts +1 -1
  39. package/dist/agent/turn/loop/run-rounds.js +1 -1
  40. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  41. package/dist/agent/turn/responder-read-tool.d.ts +1 -0
  42. package/dist/agent/turn/responder-read-tool.js +13 -6
  43. package/dist/agent/turn/responder-read-tool.js.map +1 -1
  44. package/dist/agent/turn/tool-execution/authorization.js +3 -39
  45. package/dist/agent/turn/tool-execution/authorization.js.map +1 -1
  46. package/dist/agent/turn/tool-execution/single-tool.js +1 -1
  47. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
  48. package/dist/app/commands/catalog.js +18 -3
  49. package/dist/app/commands/catalog.js.map +1 -1
  50. package/dist/app/controllers/session-compact-helper.js +1 -1
  51. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  52. package/dist/app/controllers/session-controller.d.ts +3 -1
  53. package/dist/app/controllers/session-controller.js +25 -12
  54. package/dist/app/controllers/session-controller.js.map +1 -1
  55. package/dist/app/controllers/session-usage-ledger.d.ts +5 -1
  56. package/dist/app/controllers/session-usage-ledger.js +19 -5
  57. package/dist/app/controllers/session-usage-ledger.js.map +1 -1
  58. package/dist/app/controllers/session-usage-source.d.ts +13 -0
  59. package/dist/app/controllers/session-usage-source.js +37 -0
  60. package/dist/app/controllers/session-usage-source.js.map +1 -0
  61. package/dist/app/operation-review.d.ts +7 -0
  62. package/dist/app/operation-review.js +61 -0
  63. package/dist/app/operation-review.js.map +1 -0
  64. package/dist/app/ports/confirm-port.d.ts +1 -1
  65. package/dist/app/ports/secret-port.d.ts +2 -0
  66. package/dist/classic/app/ClassicApp.js +1 -1
  67. package/dist/classic/app/ClassicApp.js.map +1 -1
  68. package/dist/classic/app/use-feed.js +2 -1
  69. package/dist/classic/app/use-feed.js.map +1 -1
  70. package/dist/classic/blocks/diff-lines.js +5 -8
  71. package/dist/classic/blocks/diff-lines.js.map +1 -1
  72. package/dist/classic/bootstrap/start-classic.js +3 -0
  73. package/dist/classic/bootstrap/start-classic.js.map +1 -1
  74. package/dist/classic/chrome/subagents-row.js +1 -1
  75. package/dist/classic/chrome/subagents-row.js.map +1 -1
  76. package/dist/classic/input/paste-burst.d.ts +3 -12
  77. package/dist/classic/input/paste-burst.js +18 -110
  78. package/dist/classic/input/paste-burst.js.map +1 -1
  79. package/dist/classic/input/paste-decoder.js +2 -4
  80. package/dist/classic/input/paste-decoder.js.map +1 -1
  81. package/dist/classic/input/terminal-sequences.d.ts +1 -2
  82. package/dist/classic/input/terminal-sequences.js +1 -2
  83. package/dist/classic/input/terminal-sequences.js.map +1 -1
  84. package/dist/classic/panels/confirm-panel.js +9 -3
  85. package/dist/classic/panels/confirm-panel.js.map +1 -1
  86. package/dist/classic/panels/pager-diff.js +5 -7
  87. package/dist/classic/panels/pager-diff.js.map +1 -1
  88. package/dist/classic/panels/panel-controller.d.ts +1 -0
  89. package/dist/classic/panels/panel-controller.js +47 -13
  90. package/dist/classic/panels/panel-controller.js.map +1 -1
  91. package/dist/classic/panels/panel-effect.d.ts +2 -0
  92. package/dist/classic/panels/panel-effect.js.map +1 -1
  93. package/dist/classic/panels/panel-effects.js +3 -0
  94. package/dist/classic/panels/panel-effects.js.map +1 -1
  95. package/dist/classic/panels/secret-panel.d.ts +1 -0
  96. package/dist/classic/panels/secret-panel.js +8 -1
  97. package/dist/classic/panels/secret-panel.js.map +1 -1
  98. package/dist/classic/render/ink-theme.js +1 -1
  99. package/dist/classic/render/ink-theme.js.map +1 -1
  100. package/dist/commands/providers.d.ts +5 -0
  101. package/dist/commands/providers.js +57 -0
  102. package/dist/commands/providers.js.map +1 -1
  103. package/dist/commands/update/installers.js +1 -0
  104. package/dist/commands/update/installers.js.map +1 -1
  105. package/dist/index.js +24 -4
  106. package/dist/index.js.map +1 -1
  107. package/dist/llm/capabilities.js +5 -5
  108. package/dist/llm/capabilities.js.map +1 -1
  109. package/dist/llm/capability/state.d.ts +1 -1
  110. package/dist/llm/capability/tool-dialect.js +2 -0
  111. package/dist/llm/capability/tool-dialect.js.map +1 -1
  112. package/dist/llm/capability/vision-patterns.js +12 -0
  113. package/dist/llm/capability/vision-patterns.js.map +1 -1
  114. package/dist/llm/catalog-facts.js +25 -8
  115. package/dist/llm/catalog-facts.js.map +1 -1
  116. package/dist/llm/codex-auth.d.ts +3 -1
  117. package/dist/llm/codex-auth.js +41 -12
  118. package/dist/llm/codex-auth.js.map +1 -1
  119. package/dist/llm/codex-client.d.ts +1 -0
  120. package/dist/llm/codex-client.js +30 -0
  121. package/dist/llm/codex-client.js.map +1 -0
  122. package/dist/llm/codex-config.d.ts +3 -0
  123. package/dist/llm/codex-config.js +82 -0
  124. package/dist/llm/codex-config.js.map +1 -0
  125. package/dist/llm/codex-credential.d.ts +3 -0
  126. package/dist/llm/codex-credential.js +94 -0
  127. package/dist/llm/codex-credential.js.map +1 -0
  128. package/dist/llm/codex-models.d.ts +17 -0
  129. package/dist/llm/codex-models.js +171 -0
  130. package/dist/llm/codex-models.js.map +1 -0
  131. package/dist/llm/codex-request.d.ts +1 -0
  132. package/dist/llm/codex-request.js +61 -0
  133. package/dist/llm/codex-request.js.map +1 -0
  134. package/dist/llm/codex-usage.d.ts +4 -0
  135. package/dist/llm/codex-usage.js +96 -0
  136. package/dist/llm/codex-usage.js.map +1 -0
  137. package/dist/llm/codex.d.ts +1 -2
  138. package/dist/llm/codex.js +30 -217
  139. package/dist/llm/codex.js.map +1 -1
  140. package/dist/llm/context-windows.js +1 -0
  141. package/dist/llm/context-windows.js.map +1 -1
  142. package/dist/llm/freebuff-run.d.ts +3 -0
  143. package/dist/llm/freebuff-run.js +9 -1
  144. package/dist/llm/freebuff-run.js.map +1 -1
  145. package/dist/llm/freebuff-session-api.d.ts +3 -1
  146. package/dist/llm/freebuff-session-api.js +14 -1
  147. package/dist/llm/freebuff-session-api.js.map +1 -1
  148. package/dist/llm/freebuff-session.d.ts +2 -0
  149. package/dist/llm/freebuff-session.js +61 -28
  150. package/dist/llm/freebuff-session.js.map +1 -1
  151. package/dist/llm/freebuff-wire.d.ts +3 -0
  152. package/dist/llm/freebuff-wire.js +82 -0
  153. package/dist/llm/freebuff-wire.js.map +1 -0
  154. package/dist/llm/freebuff.js +61 -117
  155. package/dist/llm/freebuff.js.map +1 -1
  156. package/dist/llm/model-layers/model-rules.js +6 -0
  157. package/dist/llm/model-layers/model-rules.js.map +1 -1
  158. package/dist/llm/omnirush-auth.d.ts +40 -0
  159. package/dist/llm/omnirush-auth.js +264 -0
  160. package/dist/llm/omnirush-auth.js.map +1 -0
  161. package/dist/llm/omnirush-session-upload.d.ts +63 -0
  162. package/dist/llm/omnirush-session-upload.js +221 -0
  163. package/dist/llm/omnirush-session-upload.js.map +1 -0
  164. package/dist/llm/omnirush.d.ts +4 -0
  165. package/dist/llm/omnirush.js +221 -0
  166. package/dist/llm/omnirush.js.map +1 -0
  167. package/dist/llm/provider-balance.d.ts +10 -0
  168. package/dist/llm/provider-balance.js +22 -2
  169. package/dist/llm/provider-balance.js.map +1 -1
  170. package/dist/llm/provider-identity.js +11 -0
  171. package/dist/llm/provider-identity.js.map +1 -1
  172. package/dist/llm/provider-info-text.js +110 -4
  173. package/dist/llm/provider-info-text.js.map +1 -1
  174. package/dist/llm/provider-profile-layers.js +33 -3
  175. package/dist/llm/provider-profile-layers.js.map +1 -1
  176. package/dist/llm/reasoning-capability.js +16 -0
  177. package/dist/llm/reasoning-capability.js.map +1 -1
  178. package/dist/llm/reasoning-controls.d.ts +1 -0
  179. package/dist/llm/reasoning-controls.js +1 -0
  180. package/dist/llm/reasoning-controls.js.map +1 -1
  181. package/dist/llm/reasoning-errors.js +3 -1
  182. package/dist/llm/reasoning-errors.js.map +1 -1
  183. package/dist/llm/request-plan.js +18 -12
  184. package/dist/llm/request-plan.js.map +1 -1
  185. package/dist/llm/responses/item-events.js +2 -0
  186. package/dist/llm/responses/item-events.js.map +1 -1
  187. package/dist/llm/responses-config.d.ts +4 -1
  188. package/dist/llm/responses-config.js.map +1 -1
  189. package/dist/llm/responses-parse.d.ts +2 -1
  190. package/dist/llm/responses-parse.js +11 -45
  191. package/dist/llm/responses-parse.js.map +1 -1
  192. package/dist/llm/responses-replay.d.ts +3 -0
  193. package/dist/llm/responses-replay.js +48 -0
  194. package/dist/llm/responses-replay.js.map +1 -0
  195. package/dist/llm/responses-request.js +22 -8
  196. package/dist/llm/responses-request.js.map +1 -1
  197. package/dist/llm/responses-stream-accumulator.d.ts +4 -0
  198. package/dist/llm/responses-stream-accumulator.js +12 -1
  199. package/dist/llm/responses-stream-accumulator.js.map +1 -1
  200. package/dist/llm/responses-stream-events.js +14 -25
  201. package/dist/llm/responses-stream-events.js.map +1 -1
  202. package/dist/llm/responses-stream.js +1 -0
  203. package/dist/llm/responses-stream.js.map +1 -1
  204. package/dist/llm/responses-usage.d.ts +12 -0
  205. package/dist/llm/responses-usage.js +66 -0
  206. package/dist/llm/responses-usage.js.map +1 -0
  207. package/dist/llm/router.js +4 -4
  208. package/dist/llm/router.js.map +1 -1
  209. package/dist/llm/routing/attempt-complete.js +7 -2
  210. package/dist/llm/routing/attempt-complete.js.map +1 -1
  211. package/dist/llm/routing/attempt-request.js +4 -1
  212. package/dist/llm/routing/attempt-request.js.map +1 -1
  213. package/dist/llm/routing/attempt-stream.js +8 -2
  214. package/dist/llm/routing/attempt-stream.js.map +1 -1
  215. package/dist/llm/routing/error-classification.js +2 -2
  216. package/dist/llm/routing/error-classification.js.map +1 -1
  217. package/dist/llm/routing/provider-selection.js +6 -0
  218. package/dist/llm/routing/provider-selection.js.map +1 -1
  219. package/dist/llm/tokenharbor-cache.d.ts +4 -0
  220. package/dist/llm/tokenharbor-cache.js +10 -0
  221. package/dist/llm/tokenharbor-cache.js.map +1 -0
  222. package/dist/llm/tokenharbor.d.ts +8 -0
  223. package/dist/llm/tokenharbor.js +159 -0
  224. package/dist/llm/tokenharbor.js.map +1 -0
  225. package/dist/llm/wire/chat-body.d.ts +4 -3
  226. package/dist/llm/wire/chat-body.js +30 -5
  227. package/dist/llm/wire/chat-body.js.map +1 -1
  228. package/dist/llm/wire/effort-preflight.js +6 -10
  229. package/dist/llm/wire/effort-preflight.js.map +1 -1
  230. package/dist/llm/wire/openai-complete.d.ts +2 -1
  231. package/dist/llm/wire/openai-complete.js +1 -1
  232. package/dist/llm/wire/openai-complete.js.map +1 -1
  233. package/dist/llm/wire/openai-stream.d.ts +2 -1
  234. package/dist/llm/wire/openai-stream.js +1 -1
  235. package/dist/llm/wire/openai-stream.js.map +1 -1
  236. package/dist/llm/wire/responses-preflight.js +1 -0
  237. package/dist/llm/wire/responses-preflight.js.map +1 -1
  238. package/dist/modes/ask.js +2 -1
  239. package/dist/modes/ask.js.map +1 -1
  240. package/dist/noninteractive/readline-prompts.d.ts +2 -1
  241. package/dist/noninteractive/readline-prompts.js +34 -1
  242. package/dist/noninteractive/readline-prompts.js.map +1 -1
  243. package/dist/noninteractive/start-noninteractive.js +18 -0
  244. package/dist/noninteractive/start-noninteractive.js.map +1 -1
  245. package/dist/noninteractive/stdio-confirm-port.js +18 -6
  246. package/dist/noninteractive/stdio-confirm-port.js.map +1 -1
  247. package/dist/prompts/embedded.js +1 -1
  248. package/dist/prompts/embedded.js.map +1 -1
  249. package/dist/prompts/index.js +3 -2
  250. package/dist/prompts/index.js.map +1 -1
  251. package/dist/prompts/system.agent.md +8 -8
  252. package/dist/safety/filesystem-permissions.d.ts +4 -0
  253. package/dist/safety/filesystem-permissions.js +113 -0
  254. package/dist/safety/filesystem-permissions.js.map +1 -0
  255. package/dist/safety/permission-mode.d.ts +5 -0
  256. package/dist/safety/permission-mode.js +22 -0
  257. package/dist/safety/permission-mode.js.map +1 -0
  258. package/dist/safety/shell-filesystem-effects.d.ts +14 -0
  259. package/dist/safety/shell-filesystem-effects.js +172 -0
  260. package/dist/safety/shell-filesystem-effects.js.map +1 -0
  261. package/dist/safety/shell-permission-words.d.ts +16 -0
  262. package/dist/safety/shell-permission-words.js +102 -0
  263. package/dist/safety/shell-permission-words.js.map +1 -0
  264. package/dist/safety/tool-classification.js +1 -1
  265. package/dist/safety/tool-classification.js.map +1 -1
  266. package/dist/store/config/endpoints.d.ts +2 -1
  267. package/dist/store/config/endpoints.js +5 -1
  268. package/dist/store/config/endpoints.js.map +1 -1
  269. package/dist/store/config.js +3 -0
  270. package/dist/store/config.js.map +1 -1
  271. package/dist/store/history.js +3 -0
  272. package/dist/store/history.js.map +1 -1
  273. package/dist/store/subagents.js +3 -2
  274. package/dist/store/subagents.js.map +1 -1
  275. package/dist/tools/capabilities.js +2 -2
  276. package/dist/tools/command-intent.d.ts +0 -1
  277. package/dist/tools/command-intent.js +3 -10
  278. package/dist/tools/command-intent.js.map +1 -1
  279. package/dist/tools/definitions/aggregate.js +5 -1
  280. package/dist/tools/definitions/aggregate.js.map +1 -1
  281. package/dist/tools/definitions/orchestration.js +2 -2
  282. package/dist/tools/definitions/orchestration.js.map +1 -1
  283. package/dist/tools/definitions/shell.js +6 -3
  284. package/dist/tools/definitions/shell.js.map +1 -1
  285. package/dist/tools/elevated-shell.d.ts +1 -0
  286. package/dist/tools/elevated-shell.js +2 -0
  287. package/dist/tools/elevated-shell.js.map +1 -1
  288. package/dist/tools/fs/search.js +12 -8
  289. package/dist/tools/fs/search.js.map +1 -1
  290. package/dist/tools/fs.d.ts +1 -0
  291. package/dist/tools/fs.js +22 -3
  292. package/dist/tools/fs.js.map +1 -1
  293. package/dist/tools/handlers/shell-1.js +18 -33
  294. package/dist/tools/handlers/shell-1.js.map +1 -1
  295. package/dist/tools/interactive-session-tools.js +1 -0
  296. package/dist/tools/interactive-session-tools.js.map +1 -1
  297. package/dist/tools/jobs/types.d.ts +2 -1
  298. package/dist/tools/jobs.js +1 -0
  299. package/dist/tools/jobs.js.map +1 -1
  300. package/dist/tools/shell/internals.d.ts +1 -1
  301. package/dist/tools/shell/internals.js +2 -1
  302. package/dist/tools/shell/internals.js.map +1 -1
  303. package/dist/tools/shell/timeout.d.ts +1 -0
  304. package/dist/tools/shell/timeout.js +2 -0
  305. package/dist/tools/shell/timeout.js.map +1 -0
  306. package/dist/tools/sudo-session.d.ts +4 -5
  307. package/dist/tools/sudo-session.js +1 -0
  308. package/dist/tools/sudo-session.js.map +1 -1
  309. package/dist/tools/tool-types.d.ts +2 -4
  310. package/dist/tui-v2/app/App.js +5 -1
  311. package/dist/tui-v2/app/App.js.map +1 -1
  312. package/dist/tui-v2/bootstrap/start-tui-v2.js +6 -0
  313. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  314. package/dist/tui-v2/components/jobs/subagents-panel.js +15 -3
  315. package/dist/tui-v2/components/jobs/subagents-panel.js.map +1 -1
  316. package/dist/tui-v2/components/modal/confirm-modal.js +6 -2
  317. package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
  318. package/dist/tui-v2/components/modal/secret-modal.d.ts +8 -0
  319. package/dist/tui-v2/components/modal/secret-modal.js +27 -18
  320. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  321. package/dist/tui-v2/components/overlay/overlay-host.js +14 -3
  322. package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
  323. package/dist/tui-v2/components/pager/pager.js +7 -3
  324. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  325. package/dist/tui-v2/components/picker/picker.js +17 -3
  326. package/dist/tui-v2/components/picker/picker.js.map +1 -1
  327. package/dist/tui-v2/components/transcript/intro-card.js +2 -1
  328. package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
  329. package/dist/tui-v2/composer/composer-editor.js +3 -2
  330. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  331. package/dist/tui-v2/input/paste-burst-guard.d.ts +22 -0
  332. package/dist/tui-v2/input/paste-burst-guard.js +123 -0
  333. package/dist/tui-v2/input/paste-burst-guard.js.map +1 -0
  334. package/dist/types.d.ts +8 -1
  335. package/dist/types.js +2 -0
  336. package/dist/types.js.map +1 -1
  337. package/dist/ui-core/bootstrap/composition-root.d.ts +2 -0
  338. package/dist/ui-core/bootstrap/composition-root.js +8 -0
  339. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  340. package/dist/ui-core/bootstrap/overlay-ports.js +14 -5
  341. package/dist/ui-core/bootstrap/overlay-ports.js.map +1 -1
  342. package/dist/ui-core/commands/command-handlers.js +4 -3
  343. package/dist/ui-core/commands/command-handlers.js.map +1 -1
  344. package/dist/ui-core/commands/key-commands.d.ts +2 -0
  345. package/dist/ui-core/commands/key-commands.js +173 -0
  346. package/dist/ui-core/commands/key-commands.js.map +1 -1
  347. package/dist/ui-core/commands/picker-commands.js +15 -0
  348. package/dist/ui-core/commands/picker-commands.js.map +1 -1
  349. package/dist/ui-core/commands/pickers/output-pager.js +19 -8
  350. package/dist/ui-core/commands/pickers/output-pager.js.map +1 -1
  351. package/dist/ui-core/commands/pickers/search-reasoning.js.map +1 -1
  352. package/dist/ui-core/commands/session-commands.d.ts +1 -1
  353. package/dist/ui-core/commands/session-commands.js +67 -32
  354. package/dist/ui-core/commands/session-commands.js.map +1 -1
  355. package/dist/ui-core/commands/subagent-commands.d.ts +1 -1
  356. package/dist/ui-core/commands/subagent-commands.js +9 -8
  357. package/dist/ui-core/commands/subagent-commands.js.map +1 -1
  358. package/dist/ui-core/composer/composer-meta.js +2 -5
  359. package/dist/ui-core/composer/composer-meta.js.map +1 -1
  360. package/dist/ui-core/controllers/overlay-controller.d.ts +6 -0
  361. package/dist/ui-core/controllers/overlay-controller.js +27 -6
  362. package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
  363. package/dist/ui-core/input/paste-burst.d.ts +45 -0
  364. package/dist/ui-core/input/paste-burst.js +170 -0
  365. package/dist/ui-core/input/paste-burst.js.map +1 -0
  366. package/dist/ui-core/input/paste-text.d.ts +1 -0
  367. package/dist/ui-core/input/paste-text.js +4 -0
  368. package/dist/ui-core/input/paste-text.js.map +1 -0
  369. package/dist/ui-core/rendering/duration.d.ts +2 -0
  370. package/dist/ui-core/rendering/duration.js +8 -0
  371. package/dist/ui-core/rendering/duration.js.map +1 -1
  372. package/dist/ui-core/rendering/exit-summary/table.js +4 -1
  373. package/dist/ui-core/rendering/exit-summary/table.js.map +1 -1
  374. package/dist/ui-core/rendering/format-usage.js +9 -2
  375. package/dist/ui-core/rendering/format-usage.js.map +1 -1
  376. package/dist/ui-core/rendering/intro-header.js +5 -6
  377. package/dist/ui-core/rendering/intro-header.js.map +1 -1
  378. package/dist/ui-core/rendering/subagent-source.d.ts +3 -2
  379. package/dist/ui-core/rendering/subagent-source.js +42 -6
  380. package/dist/ui-core/rendering/subagent-source.js.map +1 -1
  381. package/dist/ui-core/rendering/theme.js +4 -4
  382. package/dist/ui-core/rendering/usage-pager-source.js +6 -2
  383. package/dist/ui-core/rendering/usage-pager-source.js.map +1 -1
  384. package/dist/version.generated.d.ts +2 -2
  385. package/dist/version.generated.js +2 -2
  386. package/dist/version.generated.js.map +1 -1
  387. package/package.json +1 -1
@@ -2,12 +2,15 @@ import { isInternalChatMessage } from "../../types.js";
2
2
  export const USER_CREDENTIALS_HEADING = "User-provided credentials (verbatim from the user; use only for the work the user requested):";
3
3
  const MAX_CREDENTIALS = 16;
4
4
  const MAX_LINE_CHARS = 600;
5
+ const MAX_COMPANION_LINES = 3;
5
6
  const CONTEXT_CHARS = 80;
6
7
  const REDACTION_MARKERS = ["••••", "[redacted]"];
8
+ const SECRET_QUALIFIERS = "api|access|secret|private|auth|license|signing|encryption|client|app|test|live|publishable|webhook|bearer|session|refresh";
9
+ const SPOKEN_SECRET = String.raw `\b(?:${SECRET_QUALIFIERS})[\s_-]?(?:key|secret|token)s?\b[\s"'\x60]{0,4}(?:is|are|=|:)[\s"'\x60]{0,4}(?=[^\s"'\x60]*\d)[^\s"'\x60]{8,}`;
7
10
  const CREDENTIAL_PATTERN = new RegExp([
8
11
  String.raw `\b(?:sk|pk|rk)_(?:live|test)_[A-Za-z0-9]{10,}`,
9
12
  String.raw `\bsk-[A-Za-z0-9._-]{16,}`,
10
- String.raw `\b(?:gsk|hf|r8|glpat|npm|tvly|pplx|xai|nvapi|fw)[_-][A-Za-z0-9_-]{16,}`,
13
+ String.raw `\b(?:gsk|hf|r8|glpat|npm|tvly|pplx|xai|nvapi|fw|thk)[_-][A-Za-z0-9_-]{16,}`,
11
14
  String.raw `\bgh[pousr]_[A-Za-z0-9]{20,}`,
12
15
  String.raw `\bgithub_pat_[A-Za-z0-9_]{20,}`,
13
16
  String.raw `\bxox[abprs]-[A-Za-z0-9-]{10,}`,
@@ -19,20 +22,46 @@ const CREDENTIAL_PATTERN = new RegExp([
19
22
  String.raw `\b[a-z][a-z0-9+.-]{0,30}:\/\/[^\s:@/]{1,256}:[^\s@/]{1,256}@\S+`,
20
23
  String.raw `\b[\w.-]{0,40}(?:api[_-]?key|apikey|secret|token|passw(?:or)?d|passphrase|pwd|credentials?|access[_-]?key|private[_-]?key)[\w.-]{0,40}["']?\s{0,8}[:=]\s{0,8}["'\x60]?[^\s"'\x60]{4,}`,
21
24
  String.raw `\b(?:password|passphrase|passcode|pin)\s+is\s+\S{4,}`,
25
+ SPOKEN_SECRET,
22
26
  ].join("|"), "gi");
27
+ 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");
23
28
  const windowsAround = (line) => [...line.matchAll(CREDENTIAL_PATTERN)].map((match) => {
24
29
  const start = Math.max(0, match.index - CONTEXT_CHARS);
25
30
  const end = match.index + match[0].length;
26
31
  return `${start > 0 ? "…" : ""}${line.slice(start, end)}${end < line.length ? "…" : ""}`;
27
32
  });
28
- const credentialLines = (text) => text.split(/\r?\n/).flatMap((raw) => {
29
- const line = raw.trim();
33
+ const hasCredential = (line) => {
30
34
  CREDENTIAL_PATTERN.lastIndex = 0;
31
- if (!line || !CREDENTIAL_PATTERN.test(line))
32
- return [];
35
+ const found = CREDENTIAL_PATTERN.test(line);
33
36
  CREDENTIAL_PATTERN.lastIndex = 0;
34
- return line.length <= MAX_LINE_CHARS ? [line] : windowsAround(line);
35
- });
37
+ return found;
38
+ };
39
+ const companionIndexes = (lines, anchor, direction) => {
40
+ const found = [];
41
+ for (let cursor = anchor + direction; found.length < MAX_COMPANION_LINES && IDENTITY_LINE.test(lines[cursor] ?? ""); cursor += direction) {
42
+ found.push(cursor);
43
+ }
44
+ return found;
45
+ };
46
+ const credentialLines = (text) => {
47
+ const lines = text.split(/\r?\n/).map((raw) => raw.trim());
48
+ const secrets = new Set(lines.flatMap((line, index) => (line && hasCredential(line) ? [index] : [])));
49
+ const included = new Set(secrets);
50
+ for (const anchor of secrets) {
51
+ for (const direction of [-1, 1]) {
52
+ for (const index of companionIndexes(lines, anchor, direction))
53
+ included.add(index);
54
+ }
55
+ }
56
+ return [...included]
57
+ .sort((a, b) => a - b)
58
+ .flatMap((index) => {
59
+ const line = lines[index];
60
+ if (line.length <= MAX_LINE_CHARS)
61
+ return [line];
62
+ return secrets.has(index) ? windowsAround(line) : [line.slice(0, MAX_LINE_CHARS)];
63
+ });
64
+ };
36
65
  const carriedCredentials = (content) => {
37
66
  const lines = content.split("\n");
38
67
  const start = lines.indexOf(USER_CREDENTIALS_HEADING);
@@ -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,7 @@ 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";
5
6
  import { estimateImageTokens, estimateMessagesTokens, estimateTextTokens as estimateTokens, } from "./request-accounting.js";
6
7
  import { DEFAULT_KEEP_RECENT, MECHANICAL_MEMORY_PREFIX, isCompactionMemoryMessage } from "./context/compact-with-summary.js";
7
8
  export { COMPACTION_MEMORY_PREFIX, PLAN_IMPLEMENT_MEMORY_PREFIX, POST_COMPACT_SOFT_UPPER_BAND_TOKENS, compactMessagesWithSummary, compactionMemoryPrefixForPurpose } from "./context/compact-with-summary.js";
@@ -76,7 +77,9 @@ export function compactMessages(messages, options = {}) {
76
77
  }
77
78
  }
78
79
  const preservedLedger = ledger && !head.includes(ledger) && !tail.includes(ledger) ? [ledger] : [];
79
- return [...head, memo, ...preservedLedger, ...tail];
80
+ const latestUser = latestUserMessage(messages);
81
+ const preservedUser = latestUser && !tail.includes(latestUser) ? [latestUser] : [];
82
+ return [...head, memo, ...preservedUser, ...preservedLedger, ...tail];
80
83
  }
81
84
  export function shouldApplyAutoCompact(input) {
82
85
  if (!input.summarized)
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,16 @@ export declare class WorkLedger {
11
11
  artifactPaths(): string[];
12
12
  get size(): number;
13
13
  }
14
+ export interface ResultConclusion {
15
+ readonly jobId: string;
16
+ readonly conclusion: string;
17
+ }
14
18
  export interface ResponderEnvelopeState {
15
19
  readonly unread: readonly string[];
16
20
  readonly consumed: readonly string[];
17
21
  readonly unreadJobs?: readonly string[] | undefined;
18
22
  readonly consumedJobs?: readonly string[] | undefined;
23
+ readonly conclusions?: readonly ResultConclusion[] | undefined;
19
24
  }
20
25
  export interface EnvelopeJobState {
21
26
  readonly id: string;
@@ -50,3 +55,4 @@ export interface DurableEnvelopeInput {
50
55
  }
51
56
  export declare function buildDurableEnvelope(input: DurableEnvelopeInput): string | undefined;
52
57
  export declare function isDurableEnvelopeContent(content: string): boolean;
58
+ export declare function summarizeCarriedWork(input: DurableEnvelopeInput): string | undefined;
@@ -2,6 +2,7 @@ import { relative } from "node:path";
2
2
  import { scratchWriteTargetPaths } from "./scratch-write.js";
3
3
  import { foregroundActiveTask, foregroundRemaining, foregroundTasks, } from "../store/plan.js";
4
4
  import { renderUserCredentials } from "./context/user-credentials.js";
5
+ import { MAX_RESULT_DIGEST_CHARS } from "./responder-context.js";
5
6
  export const DURABLE_ENVELOPE_PREFIX = "DURABLE WORK ENVELOPE";
6
7
  const MAX_LIST_ENTRIES = 20;
7
8
  const MAX_STATEMENT_CHARS = 180;
@@ -44,6 +45,10 @@ export class WorkLedger {
44
45
  return this.files.size + this.artifacts.size;
45
46
  }
46
47
  }
48
+ function omittedNote(total, shown, noun) {
49
+ const hidden = total - shown;
50
+ return hidden > 0 ? `(+${hidden} earlier ${noun} omitted)` : undefined;
51
+ }
47
52
  function clip(text, max = MAX_STATEMENT_CHARS) {
48
53
  const cleaned = text.replace(/\s+/g, " ").trim();
49
54
  return cleaned.length <= max ? cleaned : `${cleaned.slice(0, max - 1)}…`;
@@ -84,7 +89,9 @@ function responderTaskLines(input, lines) {
84
89
  if (delegated.length === 0)
85
90
  return;
86
91
  const jobs = new Map([...(input.finishedJobs ?? []), ...(input.liveJobs ?? [])].map((job) => [job.id, job]));
87
- const rendered = delegated.slice(-MAX_LIST_ENTRIES).map((task) => {
92
+ const shownTasks = delegated.slice(-MAX_LIST_ENTRIES);
93
+ const omittedTasks = omittedNote(delegated.length, shownTasks.length, "tasks");
94
+ const rendered = shownTasks.map((task) => {
88
95
  const parent = task.parentTaskId ? ` parent=${task.parentTaskId}` : "";
89
96
  const job = task.jobId ? jobs.get(task.jobId) : undefined;
90
97
  const exit = job?.exitCode !== undefined ? ` exit=${job.exitCode}` : "";
@@ -93,7 +100,15 @@ function responderTaskLines(input, lines) {
93
100
  : "";
94
101
  return `[${task.id}] ${clip(task.title, 90)} (${task.state})${parent}${linked}`;
95
102
  });
96
- lines.push(`Responder-delegated tasks (results arrive in the inbox; job.read acknowledges one): ${rendered.join("; ")}`);
103
+ lines.push(`Responder-delegated tasks (results arrive in the inbox; job.read acknowledges one): ${[omittedTasks, ...rendered].filter(Boolean).join("; ")}`);
104
+ }
105
+ function conclusionLines(responder, lines) {
106
+ const entries = responder?.conclusions ?? [];
107
+ if (entries.length === 0)
108
+ return;
109
+ const shown = entries.slice(-MAX_LIST_ENTRIES);
110
+ const omitted = omittedNote(entries.length, shown.length, "conclusions");
111
+ lines.push("Result conclusions (recorded when each result was read; rely on these instead of re-reading):", ...(omitted ? [`- ${omitted}`] : []), ...shown.map(({ jobId, conclusion }) => `- [${jobId}] ${clip(conclusion, MAX_RESULT_DIGEST_CHARS)}`));
97
112
  }
98
113
  const SUBAGENT_RESULT_NOTE = {
99
114
  running: "",
@@ -104,7 +119,9 @@ const SUBAGENT_RESULT_NOTE = {
104
119
  function subagentLines(subagents, lines) {
105
120
  if (!subagents?.length)
106
121
  return;
107
- lines.push('Subagents (subagent.read {id, view:"summary"} recovers a result; view:"report" pages the full report):', ...subagents.slice(-MAX_LIST_ENTRIES).map((run) => {
122
+ const shown = subagents.slice(-MAX_LIST_ENTRIES);
123
+ const omitted = omittedNote(subagents.length, shown.length, "runs");
124
+ lines.push('Subagents (subagent.read {id, view:"summary"} recovers a result; view:"report" pages the full report):', ...(omitted ? [`- ${omitted}`] : []), ...shown.map((run) => {
108
125
  const digest = run.digest ? ` — ${clip(run.digest, SUBAGENT_DIGEST_CHARS)}` : "";
109
126
  return `- [${run.id}] ${clip(run.title, 90)} (${run.status}, attempt ${run.attempt}${SUBAGENT_RESULT_NOTE[run.result]})${digest}`;
110
127
  }));
@@ -153,16 +170,12 @@ function jobLines(input, lines) {
153
170
  const live = input.liveJobs ?? [];
154
171
  const finished = input.finishedJobs ?? [];
155
172
  if (live.length > 0) {
156
- lines.push(`Live background jobs (do not relaunch; shell.tail {id} reads a regular job, responder jobs report through the inbox): ${live
157
- .slice(0, MAX_LIST_ENTRIES)
158
- .map(renderJob)
159
- .join("; ")}`);
173
+ const shown = live.slice(0, MAX_LIST_ENTRIES);
174
+ lines.push(`Live background jobs (do not relaunch; shell.tail {id} reads a regular job, responder jobs report through the inbox): ${[...shown.map(renderJob), omittedNote(live.length, shown.length, "jobs")].filter(Boolean).join("; ")}`);
160
175
  }
161
176
  if (finished.length > 0) {
162
- lines.push(`Finished background jobs (harvest output before redoing the work): ${finished
163
- .slice(0, MAX_LIST_ENTRIES)
164
- .map(renderJob)
165
- .join("; ")}`);
177
+ const shown = finished.slice(0, MAX_LIST_ENTRIES);
178
+ lines.push(`Finished background jobs (harvest output before redoing the work): ${[...shown.map(renderJob), omittedNote(finished.length, shown.length, "jobs")].filter(Boolean).join("; ")}`);
166
179
  }
167
180
  }
168
181
  export function buildDurableEnvelope(input) {
@@ -184,6 +197,7 @@ export function buildDurableEnvelope(input) {
184
197
  lines.push(`Consumed responder results (never re-read): ${input.responder.consumed.join(", ")}`);
185
198
  }
186
199
  }
200
+ conclusionLines(input.responder, lines);
187
201
  jobLines(input, lines);
188
202
  responderTaskLines(input, lines);
189
203
  subagentLines(input.subagents, lines);
@@ -217,4 +231,29 @@ export function buildDurableEnvelope(input) {
217
231
  export function isDurableEnvelopeContent(content) {
218
232
  return content.startsWith(DURABLE_ENVELOPE_PREFIX);
219
233
  }
234
+ const plural = (count, noun) => `${count} ${noun}${count === 1 ? "" : "s"}`;
235
+ export function summarizeCarriedWork(input) {
236
+ const subagents = input.subagents ?? [];
237
+ const delegated = (input.plan?.tasks ?? []).filter((task) => task.responderOwned);
238
+ const conclusions = input.responder?.conclusions?.length ?? 0;
239
+ const parts = [
240
+ subagents.length > 0
241
+ ? `${plural(subagents.length, "subagent")} (${subagents.filter((run) => run.result === "read").length} read)`
242
+ : undefined,
243
+ (input.liveJobs?.length ?? 0) > 0
244
+ ? plural(input.liveJobs.length, "live job")
245
+ : undefined,
246
+ (input.finishedJobs?.length ?? 0) > 0
247
+ ? plural(input.finishedJobs.length, "finished job")
248
+ : undefined,
249
+ delegated.length > 0 ? plural(delegated.length, "delegated task") : undefined,
250
+ (input.responder?.consumed.length ?? 0) > 0
251
+ ? `${plural(input.responder.consumed.length, "responder result")} read (${conclusions} with a conclusion)`
252
+ : undefined,
253
+ (input.credentials?.length ?? 0) > 0
254
+ ? plural(input.credentials.length, "credential")
255
+ : undefined,
256
+ ].filter((part) => part !== undefined);
257
+ return parts.length > 0 ? parts.join(" · ") : undefined;
258
+ }
220
259
  //# sourceMappingURL=durable-envelope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"durable-envelope.js","sourceRoot":"","sources":["../../src/agent/durable-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"durable-envelope.js","sourceRoot":"","sources":["../../src/agent/durable-envelope.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":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,OAAO,yTAAyT,CAAC,IAAI,CACnU,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,GAAW;IACnD,OAAO,2OAA2O,CAAC,IAAI,CACrP,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,GAAW;IAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,uBAAuB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,yBAAyB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,CACL,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC;QACrD,4CAA4C,CAAC,IAAI,CAAC,GAAG,CAAC;QACtD,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;QACjC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;QACnC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC;QACjC,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC;QAChD,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7C,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,GAAW;IACzD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,CACL,yEAAyE,CAAC,IAAI,CAAC,GAAG,CAAC;QACnF,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QACtB,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;QAClC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9B,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9B,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,MAAM,mBAAmB,GAAG,EAAE,GAAG,MAAM,CAAC;AAExC,SAAS,sBAAsB,CAAC,IAG/B;IACC,IAAI,SAA6B,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,SAAS,GAAG,GAAG,CAAC;IAClB,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS,GAAG,MAAM,CAAC;IAClD,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CACb,mBAAmB,EACnB,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,wBAAwB,CAAC;IAChE,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAE3C,MAAM,UAAU,iBAAiB,CAAC,IAGjC;IACC,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAGhC;IACC,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC;AACrE,CAAC"}
@@ -1,6 +1,14 @@
1
1
  import type { BackgroundJob, ResponderNotification } from "../tools/jobs.js";
2
2
  export declare const RESPONDER_CONTEXT_PREFIX = "RESPONDER / DURABLE JOB INBOX";
3
3
  export declare const RESPONDER_RESULT_LEDGER_PREFIX = "RESPONDER RESULT LEDGER (authoritative consumed results)";
4
+ export declare const MAX_RESULT_DIGEST_CHARS = 280;
5
+ export interface ResponderLedgerFields {
6
+ readonly notificationId?: string | undefined;
7
+ readonly jobId?: string | undefined;
8
+ readonly digest?: string | undefined;
9
+ }
10
+ export declare function normalizeResultDigest(value: unknown): string | undefined;
11
+ export declare function parseResponderLedgerLine(line: string): ResponderLedgerFields;
4
12
  export declare function responderContextMessage(input: {
5
13
  running: readonly BackgroundJob[];
6
14
  pending: readonly ResponderNotification[];
@@ -1,10 +1,41 @@
1
+ import { redactSecrets } from "../llm/provider.js";
1
2
  export const RESPONDER_CONTEXT_PREFIX = "RESPONDER / DURABLE JOB INBOX";
2
3
  export const RESPONDER_RESULT_LEDGER_PREFIX = "RESPONDER RESULT LEDGER (authoritative consumed results)";
3
4
  const MAX_LEDGER_ENTRIES = 32;
5
+ export const MAX_RESULT_DIGEST_CHARS = 280;
6
+ const LEDGER_DIGEST_FIELD = /\ssummary=("(?:[^"\\]|\\.)*")$/;
4
7
  function oneLine(value, max = 120) {
5
8
  const clean = value.replace(/\s+/g, " ").trim();
6
9
  return clean.length <= max ? clean : `${clean.slice(0, max - 1)}…`;
7
10
  }
11
+ export function normalizeResultDigest(value) {
12
+ if (typeof value !== "string")
13
+ return undefined;
14
+ const digest = oneLine(redactSecrets(value), MAX_RESULT_DIGEST_CHARS);
15
+ return digest.length > 0 ? digest : undefined;
16
+ }
17
+ function parseLedgerDigest(line) {
18
+ const quoted = LEDGER_DIGEST_FIELD.exec(line)?.[1];
19
+ if (!quoted)
20
+ return undefined;
21
+ try {
22
+ const parsed = JSON.parse(quoted);
23
+ return typeof parsed === "string" && parsed.length > 0 ? parsed : undefined;
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ export function parseResponderLedgerLine(line) {
30
+ const notificationId = /notification=(\S+)/.exec(line)?.[1];
31
+ const jobId = /\bjob=(\S+)/.exec(line)?.[1];
32
+ const digest = parseLedgerDigest(line);
33
+ return {
34
+ ...(notificationId ? { notificationId } : {}),
35
+ ...(jobId ? { jobId } : {}),
36
+ ...(digest ? { digest } : {}),
37
+ };
38
+ }
8
39
  function receiptPath(notification) {
9
40
  return (notification.stdoutArtifact.chunks.at(-1) ??
10
41
  notification.stdoutArtifact.path);
@@ -35,7 +66,7 @@ export function responderContextMessage(input) {
35
66
  ` stderr=${notification.stderrArtifact.path}`);
36
67
  }
37
68
  }
38
- lines.push("FIRE AND CONTINUE: after launching, move to the next task immediately. Do NOT sleep, shell.jobs-poll, repeat shell.tail, or fs.read the job log to watch progress — this inbox delivers each completion to you automatically at the next safe model boundary.", "PARENT-DONE RULE: a parent task is done when its own non-Responder work is done; Responder-owned child subtasks advance from the real process lifecycle — never mark, block on, or wait for them.", "TASK SETTLEMENT: Responder-owned tasks reconcile automatically from the latest authoritative job result after analysis. Do not call task.update for that child.", "MANDATORY READ RECEIPT: after analyzing a delivered completion and deciding its job is finished, call job.read with that job id or exact notification id. job.read is plan-independent, records delivered + read atomically, and is required before a final response. Do not create a plan merely to acknowledge a job.", "ON COMPLETION: extract only the key result lines with a filter or bounded shell.tail window, never a full noisy scanner log. Add evidence-driven follow-up tasks only when an active plan exists and the result requires them; otherwise report the result directly after job.read. Never launch a duplicate while a job is live.", "PARENT OWNERSHIP: when you delegate to the Responder, pass parentTaskId with the plan task id that owns the work (e.g. parentTaskId:\"t3\"). The child subtask is created under exactly that task; an unknown, completed, or Responder-owned id is rejected.", "DECLARED WAITS ONLY: never idle because a Responder job is running. If a foreground task genuinely cannot start until a child finishes, declare that child as its dependency when you add it; otherwise keep executing the next dependency-ready task and fold late results in as an addendum.", "FRAME COMMANDS TO PRESERVE THE KEY FIELDS: choose flags/output so the completed result still carries exactly what you need and little else — e.g. ffuf with -json (or a matcher on real codes, not a blanket -mc all), nmap -oX/-oG, grep -o for just the hits. Never run a command that discards the required signal.", "ONLY when every other non-report task is finished and nothing else remains may you call shell.jobs ONCE. If jobs are still live, STOP and report what you did plus which jobs are running — do not enter a sleep/poll/tail loop.");
69
+ lines.push("FIRE AND CONTINUE: after launching, move to the next task immediately. Do NOT sleep, shell.jobs-poll, repeat shell.tail, or fs.read the job log to watch progress — this inbox delivers each completion to you automatically at the next safe model boundary.", "PARENT-DONE RULE: a parent task is done when its own non-Responder work is done; Responder-owned child subtasks advance from the real process lifecycle — never mark, block on, or wait for them.", "TASK SETTLEMENT: Responder-owned tasks reconcile automatically from the latest authoritative job result after analysis. Do not call task.update for that child.", "MANDATORY READ RECEIPT: after analyzing a delivered completion and deciding its job is finished, call job.read with that job id or exact notification id, plus summary: one or two sentences with the conclusion later work depends on (key findings, not raw output). The summary is kept across context compaction, so the result never needs re-reading. job.read is plan-independent, records delivered + read atomically, and is required before a final response. Do not create a plan merely to acknowledge a job.", "ON COMPLETION: extract only the key result lines with a filter or bounded shell.tail window, never a full noisy scanner log. Add evidence-driven follow-up tasks only when an active plan exists and the result requires them; otherwise report the result directly after job.read. Never launch a duplicate while a job is live.", "PARENT OWNERSHIP: when you delegate to the Responder, pass parentTaskId with the plan task id that owns the work (e.g. parentTaskId:\"t3\"). The child subtask is created under exactly that task; an unknown, completed, or Responder-owned id is rejected.", "DECLARED WAITS ONLY: never idle because a Responder job is running. If a foreground task genuinely cannot start until a child finishes, declare that child as its dependency when you add it; otherwise keep executing the next dependency-ready task and fold late results in as an addendum.", "FRAME COMMANDS TO PRESERVE THE KEY FIELDS: choose flags/output so the completed result still carries exactly what you need and little else — e.g. ffuf with -json (or a matcher on real codes, not a blanket -mc all), nmap -oX/-oG, grep -o for just the hits. Never run a command that discards the required signal.", "ONLY when every other non-report task is finished and nothing else remains may you call shell.jobs ONCE. If jobs are still live, STOP and report what you did plus which jobs are running — do not enter a sleep/poll/tail loop.");
39
70
  return lines.join("\n");
40
71
  }
41
72
  export function isResponderResultLedgerMessage(message) {
@@ -44,11 +75,13 @@ export function isResponderResultLedgerMessage(message) {
44
75
  }
45
76
  export function responderResultLedgerEntry(notification) {
46
77
  const analyzedAt = notification.analyzedAt ?? notification.readAt ?? new Date().toISOString();
78
+ const digest = normalizeResultDigest(notification.resultDigest);
47
79
  return (`- notification=${notification.id} job=${notification.jobId}` +
48
80
  ` status=${notification.status} consumed=true readAt=${notification.readAt ?? analyzedAt} analyzedAt=${analyzedAt}` +
49
81
  `${notification.taskId ? ` task=${notification.taskId}` : ""}` +
50
82
  `${notification.parentTaskId ? ` parent=${notification.parentTaskId}` : ""}` +
51
- ` artifact=${receiptPath(notification)}`);
83
+ ` artifact=${receiptPath(notification)}` +
84
+ `${digest ? ` summary=${JSON.stringify(digest)}` : ""}`);
52
85
  }
53
86
  export function upsertResponderResultLedger(messages, notification) {
54
87
  const entries = [];
@@ -1 +1 @@
1
- {"version":3,"file":"responder-context.js","sourceRoot":"","sources":["../../src/agent/responder-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responder-context.js","sourceRoot":"","sources":["../../src/agent/responder-context.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare class SubagentManager {
18
18
  constructor(parentSessionId: string, options?: {
19
19
  worker?: SubagentWorker;
20
20
  store?: SubagentStore;
21
- onOperationUsage?: (snapshot: OperationUsageSnapshot) => void;
21
+ onOperationUsage?: (snapshot: OperationUsageSnapshot, subagentId: string) => void;
22
22
  });
23
23
  get enabled(): boolean;
24
24
  setEnabled(enabled: boolean): void;
@@ -6,7 +6,7 @@ import { resolveSubagentModelChain, subagentModelChainBlocked } from "./model-ch
6
6
  const terminal = (status) => status !== "running" && status !== "stopping";
7
7
  const defaultWorker = async (input) => (await import("./worker.js")).runReadOnlySubagent(input);
8
8
  const inFlight = new Map();
9
- const fingerprint = (assignment) => createHash("sha256").update(JSON.stringify([assignment.prompt, assignment.context ?? "", assignment.cwd, assignment.provider, assignment.model])).digest("hex");
9
+ const fingerprint = (parentSessionId, assignment) => createHash("sha256").update(JSON.stringify([parentSessionId, assignment.prompt, assignment.context ?? "", assignment.cwd, assignment.provider, assignment.model])).digest("hex");
10
10
  export class SubagentManager {
11
11
  parentSessionId;
12
12
  active = true;
@@ -80,7 +80,7 @@ export class SubagentManager {
80
80
  throw new Error("Recursive subagent launches are forbidden");
81
81
  }
82
82
  assertUnique(assignment) {
83
- if ([...inFlight.values()].includes(fingerprint(assignment)))
83
+ if ([...inFlight.values()].includes(fingerprint(this.parentSessionId, assignment)))
84
84
  throw new Error("Duplicate active subagent assignment");
85
85
  }
86
86
  activeCount() {
@@ -98,7 +98,7 @@ export class SubagentManager {
98
98
  startAssigned(assignment) {
99
99
  this.assertLaunchModels();
100
100
  const now = Date.now();
101
- const child = { assignment, run: { ...assignment, id: randomUUID(), parentSessionId: this.parentSessionId, attempt: 1, status: "running", recovery: "fresh", createdAt: now, updatedAt: now, events: [] } };
101
+ const child = { assignment, run: { ...assignment, id: randomUUID(), parentSessionId: this.parentSessionId, attempt: 1, status: "running", recovery: "fresh", createdAt: now, startedAt: now, updatedAt: now, events: [] } };
102
102
  this.children.set(child.run.id, child);
103
103
  this.launch(child);
104
104
  return this.snapshot(child.run);
@@ -163,6 +163,7 @@ export class SubagentManager {
163
163
  this.assertCapacity(1);
164
164
  this.assertLaunchModels();
165
165
  const previous = child.run;
166
+ const now = Date.now();
166
167
  this.settledAttempts.set(`${previous.id}:${previous.attempt}`, this.snapshot(previous));
167
168
  const summary = `Attempt ${previous.attempt}: ${previous.status}\n${previous.report ?? previous.error ?? "No report"}`;
168
169
  const events = [...previous.events, { kind: "notice", text: summary, timestamp: Date.now(), sequence: (previous.events.at(-1)?.sequence ?? 0) + 1 }];
@@ -170,7 +171,7 @@ export class SubagentManager {
170
171
  events.push({ kind: "notice", text: `Parent follow-up for attempt ${previous.attempt + 1}:\n${JSON.stringify(followup)}`, timestamp: Date.now(), sequence: events.at(-1).sequence + 1 });
171
172
  if (followup && child.checkpoint)
172
173
  child.checkpoint = { ...child.checkpoint, pendingFollowup: followup };
173
- child.run = { ...previous, ...child.assignment, followup: followup ? Object.freeze({ ...previous.followup, ...followup }) : previous.followup, attempt: previous.attempt + 1, status: "running", recovery: child.checkpoint ? "exact" : previous.events.length || previous.report || previous.lastKnownSummary ? "history" : "fresh", report: undefined, resultAcknowledged: false, error: undefined, updatedAt: Date.now(), events: this.boundEvents(events) };
174
+ child.run = { ...previous, ...child.assignment, followup: followup ? Object.freeze({ ...previous.followup, ...followup }) : previous.followup, attempt: previous.attempt + 1, status: "running", recovery: child.checkpoint ? "exact" : previous.events.length || previous.report || previous.lastKnownSummary ? "history" : "fresh", report: undefined, resultAcknowledged: false, error: undefined, startedAt: now, updatedAt: now, events: this.boundEvents(events) };
174
175
  this.launch(child, followup);
175
176
  return this.snapshot(child.run);
176
177
  }
@@ -200,7 +201,7 @@ export class SubagentManager {
200
201
  const controller = new AbortController();
201
202
  child.assistantSequence = undefined;
202
203
  child.controller = controller;
203
- inFlight.set(controller, fingerprint(child.assignment));
204
+ inFlight.set(controller, fingerprint(this.parentSessionId, child.assignment));
204
205
  const inputRun = this.snapshot(child.run);
205
206
  const modelChain = resolveSubagentModelChain();
206
207
  const noteRoute = (route) => {
@@ -244,7 +245,7 @@ export class SubagentManager {
244
245
  noteRoute,
245
246
  recordOperationUsage: (snapshot) => {
246
247
  if (!this.disposed)
247
- this.onOperationUsage?.(snapshot);
248
+ this.onOperationUsage?.(snapshot, inputRun.id);
248
249
  },
249
250
  checkpoint: child.checkpoint ? structuredClone(child.checkpoint) : undefined,
250
251
  saveSummary: (report) => {