@sayknow-cli/coding-agent 0.3.12 → 0.3.13

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 (1122) hide show
  1. package/package.json +116 -117
  2. package/scripts/g004-tmux-smoke.ts +196 -36
  3. package/scripts/generate-docs-index.ts +2 -0
  4. package/src/cli/daemon-cli.ts +19 -29
  5. package/src/cli/malloc-env-guard.test.ts +104 -0
  6. package/src/cli/malloc-env-guard.ts +149 -0
  7. package/src/cli/notify-cli.ts +78 -14
  8. package/src/cli/session-picker.ts +23 -40
  9. package/src/cli/update-cli.ts +56 -37
  10. package/src/cli.ts +50 -10
  11. package/src/commands/daemon.ts +19 -5
  12. package/src/commands/harness.ts +515 -47
  13. package/src/commands/launch.ts +11 -3
  14. package/src/commands/notify.ts +5 -1
  15. package/src/commands/session.ts +6 -1
  16. package/src/config/keybindings.ts +5 -0
  17. package/src/config/model-profile-activation.ts +1 -1
  18. package/src/config/model-profiles.ts +14 -14
  19. package/src/config/settings-schema.ts +41 -1
  20. package/src/coordinator-mcp/model-preset.ts +100 -0
  21. package/src/coordinator-mcp/server.ts +2735 -435
  22. package/src/daemon/control-types.ts +11 -0
  23. package/src/daemon/operator-contract.ts +121 -0
  24. package/src/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.ts +57 -17
  25. package/src/defaults/skc/extensions/grok-cli-vendor/src/payload/sanitize.ts +15 -2
  26. package/src/defaults/skc/extensions/grok-cli-vendor/src/provider/register.ts +5 -1
  27. package/src/internal-urls/docs-index.generated.ts +7 -7
  28. package/src/internal-urls/local-protocol.ts +29 -10
  29. package/src/main.ts +298 -75
  30. package/src/modes/acp/acp-agent.ts +728 -98
  31. package/src/modes/acp/acp-mode.ts +29 -2
  32. package/src/modes/components/assistant-message.ts +32 -3
  33. package/src/modes/components/bash-execution.ts +43 -13
  34. package/src/modes/components/custom-editor.ts +5 -0
  35. package/src/modes/components/hook-selector.ts +12 -0
  36. package/src/modes/components/irc-sidebar.ts +206 -0
  37. package/src/modes/components/pet-selector.ts +55 -0
  38. package/src/modes/components/sayknow-pet-widget.ts +360 -0
  39. package/src/modes/components/session-selector.ts +222 -221
  40. package/src/modes/components/settings-selector.ts +10 -0
  41. package/src/modes/components/tool-execution.ts +47 -6
  42. package/src/modes/components/user-message.ts +26 -9
  43. package/src/modes/controllers/command-controller.ts +28 -2
  44. package/src/modes/controllers/event-controller.ts +159 -36
  45. package/src/modes/controllers/extension-ui-controller.ts +36 -17
  46. package/src/modes/controllers/input-controller.ts +8 -2
  47. package/src/modes/controllers/selector-controller.ts +62 -15
  48. package/src/modes/interactive-mode.ts +183 -7
  49. package/src/modes/irc-observation-ledger.ts +127 -0
  50. package/src/modes/shared/agent-wire/deep-interview-gate.ts +45 -2
  51. package/src/modes/shared/agent-wire/unattended-session.ts +288 -1
  52. package/src/modes/shared/agent-wire/workflow-gate-broker.ts +130 -20
  53. package/src/modes/types.ts +34 -2
  54. package/src/modes/utils/hotkeys-markdown.ts +1 -0
  55. package/src/modes/utils/irc-message.ts +138 -0
  56. package/src/modes/utils/ui-helpers.ts +216 -50
  57. package/src/notifications/config.ts +44 -0
  58. package/src/notifications/daemon-paths.ts +8 -0
  59. package/src/notifications/index.ts +535 -75
  60. package/src/notifications/lifecycle-control-runtime.ts +930 -77
  61. package/src/notifications/notification-service.ts +710 -0
  62. package/src/notifications/rate-limit-pool.ts +46 -12
  63. package/src/notifications/telegram-daemon-control.ts +27 -2
  64. package/src/notifications/telegram-daemon.ts +635 -94
  65. package/src/notifications/telegram-reference.ts +73 -13
  66. package/src/notifications/topic-registry.ts +86 -9
  67. package/src/prompts/system/irc-peer-roster.md +1 -0
  68. package/src/prompts/system/subagent-system-prompt.md +1 -0
  69. package/src/prompts/system/system-prompt.md +1 -0
  70. package/src/prompts/tools/irc.md +1 -1
  71. package/src/registry/agent-registry.ts +3 -0
  72. package/src/sdk.ts +52 -1
  73. package/src/secrets/obfuscator.ts +4 -2
  74. package/src/session/agent-session.ts +396 -145
  75. package/src/session/cache-economics.ts +275 -0
  76. package/src/session/provider-safety-stop.ts +9 -0
  77. package/src/session/session-dump-format.ts +6 -0
  78. package/src/session/session-manager.ts +809 -39
  79. package/src/session/session-storage.ts +582 -38
  80. package/src/skc-runtime/session-state-sidecar.ts +756 -135
  81. package/src/skc-runtime/tmux-common.ts +26 -7
  82. package/src/skc-runtime/tmux-gc.ts +52 -9
  83. package/src/skc-runtime/tmux-owner-isolation-cli.ts +185 -0
  84. package/src/skc-runtime/tmux-owner-isolation.ts +2060 -0
  85. package/src/skc-runtime/tmux-sessions.ts +871 -68
  86. package/src/slash-commands/builtin-registry.ts +143 -9
  87. package/src/task/executor.ts +12 -3
  88. package/src/task/index.ts +8 -0
  89. package/src/task/receipt.ts +7 -2
  90. package/src/task/types.ts +26 -0
  91. package/src/tools/ask-answer-registry.ts +25 -0
  92. package/src/tools/browser/tab-supervisor.ts +63 -6
  93. package/src/tools/browser.ts +8 -3
  94. package/src/tools/index.ts +81 -6
  95. package/src/tools/sqlite-reader.ts +8 -4
  96. package/src/tui/output-block.ts +18 -6
  97. package/src/utils/external-editor.ts +6 -1
  98. package/dist/types/append-only-mode.d.ts +0 -31
  99. package/dist/types/async/index.d.ts +0 -2
  100. package/dist/types/async/job-manager.d.ts +0 -328
  101. package/dist/types/async/support.d.ts +0 -2
  102. package/dist/types/autoresearch/dashboard.d.ts +0 -4
  103. package/dist/types/autoresearch/git.d.ts +0 -36
  104. package/dist/types/autoresearch/helpers.d.ts +0 -24
  105. package/dist/types/autoresearch/index.d.ts +0 -2
  106. package/dist/types/autoresearch/state.d.ts +0 -17
  107. package/dist/types/autoresearch/storage.d.ts +0 -142
  108. package/dist/types/autoresearch/tools/init-experiment.d.ts +0 -31
  109. package/dist/types/autoresearch/tools/log-experiment.d.ts +0 -23
  110. package/dist/types/autoresearch/tools/run-experiment.d.ts +0 -8
  111. package/dist/types/autoresearch/tools/update-notes.d.ts +0 -12
  112. package/dist/types/autoresearch/types.d.ts +0 -154
  113. package/dist/types/build-metadata.d.ts +0 -7
  114. package/dist/types/capability/context-file.d.ts +0 -17
  115. package/dist/types/capability/extension-module.d.ts +0 -15
  116. package/dist/types/capability/extension.d.ts +0 -28
  117. package/dist/types/capability/fs.d.ts +0 -20
  118. package/dist/types/capability/hook.d.ts +0 -19
  119. package/dist/types/capability/index.d.ts +0 -80
  120. package/dist/types/capability/instruction.d.ts +0 -17
  121. package/dist/types/capability/mcp.d.ts +0 -49
  122. package/dist/types/capability/prompt.d.ts +0 -15
  123. package/dist/types/capability/rule.d.ts +0 -69
  124. package/dist/types/capability/settings.d.ts +0 -15
  125. package/dist/types/capability/skill.d.ts +0 -36
  126. package/dist/types/capability/slash-command.d.ts +0 -17
  127. package/dist/types/capability/ssh.d.ts +0 -23
  128. package/dist/types/capability/system-prompt.d.ts +0 -15
  129. package/dist/types/capability/tool.d.ts +0 -19
  130. package/dist/types/capability/types.d.ts +0 -154
  131. package/dist/types/cli/agents-cli.d.ts +0 -12
  132. package/dist/types/cli/args.d.ts +0 -57
  133. package/dist/types/cli/auth-broker-cli.d.ts +0 -25
  134. package/dist/types/cli/auth-gateway-cli.d.ts +0 -18
  135. package/dist/types/cli/classify-install-target.d.ts +0 -18
  136. package/dist/types/cli/commands/init-xdg.d.ts +0 -1
  137. package/dist/types/cli/completion-cli.d.ts +0 -41
  138. package/dist/types/cli/config-cli.d.ts +0 -23
  139. package/dist/types/cli/daemon-cli.d.ts +0 -25
  140. package/dist/types/cli/fast-help.d.ts +0 -1
  141. package/dist/types/cli/file-processor.d.ts +0 -11
  142. package/dist/types/cli/fixture-report.d.ts +0 -20
  143. package/dist/types/cli/fixture-report.test.d.ts +0 -1
  144. package/dist/types/cli/grep-cli.d.ts +0 -17
  145. package/dist/types/cli/initial-message.d.ts +0 -17
  146. package/dist/types/cli/list-models.d.ts +0 -36
  147. package/dist/types/cli/local-provider-smoke.d.ts +0 -59
  148. package/dist/types/cli/mcp-cli.d.ts +0 -25
  149. package/dist/types/cli/migrate-cli.d.ts +0 -20
  150. package/dist/types/cli/nofile-limit.d.ts +0 -11
  151. package/dist/types/cli/notify-cli.d.ts +0 -37
  152. package/dist/types/cli/plugin-cli.d.ts +0 -34
  153. package/dist/types/cli/read-cli.d.ts +0 -4
  154. package/dist/types/cli/session-picker.d.ts +0 -3
  155. package/dist/types/cli/setup-cli.d.ts +0 -73
  156. package/dist/types/cli/shell-cli.d.ts +0 -8
  157. package/dist/types/cli/skills-cli.d.ts +0 -9
  158. package/dist/types/cli/ssh-cli.d.ts +0 -21
  159. package/dist/types/cli/stats-cli.d.ts +0 -17
  160. package/dist/types/cli/telegram-cli.d.ts +0 -13
  161. package/dist/types/cli/update-cli.d.ts +0 -89
  162. package/dist/types/cli/web-search-cli.d.ts +0 -32
  163. package/dist/types/cli/worktree-cli.d.ts +0 -26
  164. package/dist/types/cli.d.ts +0 -135
  165. package/dist/types/commands/acp.d.ts +0 -12
  166. package/dist/types/commands/agents.d.ts +0 -34
  167. package/dist/types/commands/auth-broker.d.ts +0 -54
  168. package/dist/types/commands/auth-gateway.d.ts +0 -32
  169. package/dist/types/commands/codex-native-hook.d.ts +0 -6
  170. package/dist/types/commands/commit.d.ts +0 -27
  171. package/dist/types/commands/completion.d.ts +0 -29
  172. package/dist/types/commands/config.d.ts +0 -33
  173. package/dist/types/commands/contribution-prep.d.ts +0 -18
  174. package/dist/types/commands/coordinator.d.ts +0 -19
  175. package/dist/types/commands/daemon.d.ts +0 -41
  176. package/dist/types/commands/deep-interview.d.ts +0 -54
  177. package/dist/types/commands/gc.d.ts +0 -26
  178. package/dist/types/commands/grep.d.ts +0 -42
  179. package/dist/types/commands/harness.d.ts +0 -43
  180. package/dist/types/commands/launch.d.ts +0 -130
  181. package/dist/types/commands/local-provider.d.ts +0 -34
  182. package/dist/types/commands/mcp-serve.d.ts +0 -24
  183. package/dist/types/commands/mcp.d.ts +0 -70
  184. package/dist/types/commands/migrate.d.ts +0 -33
  185. package/dist/types/commands/notify.d.ts +0 -41
  186. package/dist/types/commands/plugin.d.ts +0 -58
  187. package/dist/types/commands/ralplan.d.ts +0 -7
  188. package/dist/types/commands/read.d.ts +0 -15
  189. package/dist/types/commands/rlm.d.ts +0 -10
  190. package/dist/types/commands/session.d.ts +0 -30
  191. package/dist/types/commands/setup.d.ts +0 -105
  192. package/dist/types/commands/shell.d.ts +0 -21
  193. package/dist/types/commands/skills.d.ts +0 -26
  194. package/dist/types/commands/ssh.d.ts +0 -48
  195. package/dist/types/commands/state.d.ts +0 -7
  196. package/dist/types/commands/stats.d.ts +0 -25
  197. package/dist/types/commands/team.d.ts +0 -24
  198. package/dist/types/commands/telegram.d.ts +0 -22
  199. package/dist/types/commands/ultragoal.d.ts +0 -8
  200. package/dist/types/commands/update.d.ts +0 -20
  201. package/dist/types/commands/web-search.d.ts +0 -87
  202. package/dist/types/commands/worktree.d.ts +0 -34
  203. package/dist/types/commit/agentic/agent.d.ts +0 -31
  204. package/dist/types/commit/agentic/fallback.d.ts +0 -5
  205. package/dist/types/commit/agentic/index.d.ts +0 -2
  206. package/dist/types/commit/agentic/state.d.ts +0 -58
  207. package/dist/types/commit/agentic/tools/analyze-file.d.ts +0 -19
  208. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +0 -10
  209. package/dist/types/commit/agentic/tools/git-hunk.d.ts +0 -9
  210. package/dist/types/commit/agentic/tools/git-overview.d.ts +0 -9
  211. package/dist/types/commit/agentic/tools/index.d.ts +0 -16
  212. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +0 -28
  213. package/dist/types/commit/agentic/tools/propose-commit.d.ts +0 -36
  214. package/dist/types/commit/agentic/tools/recent-commits.d.ts +0 -7
  215. package/dist/types/commit/agentic/tools/schemas.d.ts +0 -27
  216. package/dist/types/commit/agentic/tools/split-commit.d.ts +0 -53
  217. package/dist/types/commit/agentic/topo-sort.d.ts +0 -4
  218. package/dist/types/commit/agentic/trivial.d.ts +0 -7
  219. package/dist/types/commit/agentic/validation.d.ts +0 -20
  220. package/dist/types/commit/analysis/conventional.d.ts +0 -22
  221. package/dist/types/commit/analysis/index.d.ts +0 -4
  222. package/dist/types/commit/analysis/scope.d.ts +0 -6
  223. package/dist/types/commit/analysis/summary.d.ts +0 -19
  224. package/dist/types/commit/analysis/validation.d.ts +0 -8
  225. package/dist/types/commit/changelog/detect.d.ts +0 -2
  226. package/dist/types/commit/changelog/generate.d.ts +0 -30
  227. package/dist/types/commit/changelog/index.d.ts +0 -30
  228. package/dist/types/commit/changelog/parse.d.ts +0 -2
  229. package/dist/types/commit/cli.d.ts +0 -3
  230. package/dist/types/commit/git/diff.d.ts +0 -5
  231. package/dist/types/commit/index.d.ts +0 -4
  232. package/dist/types/commit/map-reduce/index.d.ts +0 -28
  233. package/dist/types/commit/map-reduce/map-phase.d.ts +0 -17
  234. package/dist/types/commit/map-reduce/reduce-phase.d.ts +0 -13
  235. package/dist/types/commit/map-reduce/utils.d.ts +0 -2
  236. package/dist/types/commit/message.d.ts +0 -2
  237. package/dist/types/commit/model-selection.d.ts +0 -15
  238. package/dist/types/commit/pipeline.d.ts +0 -5
  239. package/dist/types/commit/shared-llm.d.ts +0 -54
  240. package/dist/types/commit/types.d.ts +0 -78
  241. package/dist/types/commit/utils/exclusions.d.ts +0 -4
  242. package/dist/types/commit/utils.d.ts +0 -20
  243. package/dist/types/config/config-file.d.ts +0 -58
  244. package/dist/types/config/file-lock-gc.d.ts +0 -5
  245. package/dist/types/config/file-lock.d.ts +0 -36
  246. package/dist/types/config/keybindings.d.ts +0 -359
  247. package/dist/types/config/model-equivalence.d.ts +0 -24
  248. package/dist/types/config/model-profile-activation.d.ts +0 -64
  249. package/dist/types/config/model-profiles.d.ts +0 -39
  250. package/dist/types/config/model-registry.d.ts +0 -473
  251. package/dist/types/config/model-resolver.d.ts +0 -217
  252. package/dist/types/config/models-config-schema.d.ts +0 -700
  253. package/dist/types/config/prompt-templates.d.ts +0 -32
  254. package/dist/types/config/resolve-config-value.d.ts +0 -17
  255. package/dist/types/config/settings-schema.d.ts +0 -4183
  256. package/dist/types/config/settings.d.ts +0 -156
  257. package/dist/types/config/skill-settings-defaults.d.ts +0 -14
  258. package/dist/types/config/telegram-autostart.d.ts +0 -14
  259. package/dist/types/config/telegram-env-bridge.d.ts +0 -18
  260. package/dist/types/config.d.ts +0 -66
  261. package/dist/types/coordinator/contract.d.ts +0 -4
  262. package/dist/types/coordinator-mcp/policy.d.ts +0 -24
  263. package/dist/types/coordinator-mcp/safety.d.ts +0 -26
  264. package/dist/types/coordinator-mcp/server.d.ts +0 -66
  265. package/dist/types/cursor.d.ts +0 -24
  266. package/dist/types/daemon/builtin.d.ts +0 -20
  267. package/dist/types/daemon/control-types.d.ts +0 -57
  268. package/dist/types/daemon/runtime.d.ts +0 -25
  269. package/dist/types/dap/client.d.ts +0 -39
  270. package/dist/types/dap/config.d.ts +0 -6
  271. package/dist/types/dap/index.d.ts +0 -4
  272. package/dist/types/dap/session.d.ts +0 -108
  273. package/dist/types/dap/types.d.ts +0 -524
  274. package/dist/types/debug/crash-diagnostics.d.ts +0 -45
  275. package/dist/types/debug/index.d.ts +0 -15
  276. package/dist/types/debug/log-formatting.d.ts +0 -4
  277. package/dist/types/debug/log-viewer.d.ts +0 -68
  278. package/dist/types/debug/profiler.d.ts +0 -24
  279. package/dist/types/debug/raw-sse-buffer.d.ts +0 -44
  280. package/dist/types/debug/raw-sse.d.ts +0 -16
  281. package/dist/types/debug/report-bundle.d.ts +0 -55
  282. package/dist/types/debug/runtime-gauges.d.ts +0 -6
  283. package/dist/types/debug/system-info.d.ts +0 -26
  284. package/dist/types/deep-interview/plaintext-gate-guard.d.ts +0 -11
  285. package/dist/types/deep-interview/render-middleware.d.ts +0 -6
  286. package/dist/types/defaults/skc/extensions/grok-build/index.d.ts +0 -1
  287. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/index.d.ts +0 -1
  288. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.d.ts +0 -25
  289. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/payload/sanitize.d.ts +0 -27
  290. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/billing.d.ts +0 -8
  291. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/register.d.ts +0 -5
  292. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/stream.d.ts +0 -10
  293. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/provider/usage.d.ts +0 -2
  294. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/base-url.d.ts +0 -2
  295. package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/errors.d.ts +0 -38
  296. package/dist/types/defaults/skc-defaults.d.ts +0 -64
  297. package/dist/types/defaults/skc-grok-cli.d.ts +0 -5
  298. package/dist/types/discovery/agents-md.d.ts +0 -1
  299. package/dist/types/discovery/agents.d.ts +0 -12
  300. package/dist/types/discovery/builtin.d.ts +0 -1
  301. package/dist/types/discovery/claude-plugins.d.ts +0 -1
  302. package/dist/types/discovery/claude.d.ts +0 -1
  303. package/dist/types/discovery/cline.d.ts +0 -1
  304. package/dist/types/discovery/codex.d.ts +0 -1
  305. package/dist/types/discovery/cursor.d.ts +0 -19
  306. package/dist/types/discovery/gemini.d.ts +0 -1
  307. package/dist/types/discovery/github.d.ts +0 -1
  308. package/dist/types/discovery/helpers.d.ts +0 -271
  309. package/dist/types/discovery/index.d.ts +0 -48
  310. package/dist/types/discovery/mcp-json.d.ts +0 -1
  311. package/dist/types/discovery/opencode.d.ts +0 -1
  312. package/dist/types/discovery/plugin-dir-roots.d.ts +0 -15
  313. package/dist/types/discovery/ssh.d.ts +0 -1
  314. package/dist/types/discovery/substitute-plugin-root.d.ts +0 -5
  315. package/dist/types/discovery/vscode.d.ts +0 -1
  316. package/dist/types/discovery/windsurf.d.ts +0 -15
  317. package/dist/types/edit/apply-patch/index.d.ts +0 -35
  318. package/dist/types/edit/apply-patch/parser.d.ts +0 -34
  319. package/dist/types/edit/diff.d.ts +0 -75
  320. package/dist/types/edit/file-read-cache.d.ts +0 -25
  321. package/dist/types/edit/index.d.ts +0 -58
  322. package/dist/types/edit/modes/apply-patch.d.ts +0 -24
  323. package/dist/types/edit/modes/patch.d.ts +0 -99
  324. package/dist/types/edit/modes/replace.d.ts +0 -149
  325. package/dist/types/edit/normalize.d.ts +0 -43
  326. package/dist/types/edit/notebook.d.ts +0 -26
  327. package/dist/types/edit/read-file.d.ts +0 -8
  328. package/dist/types/edit/renderer.d.ts +0 -110
  329. package/dist/types/edit/streaming.d.ts +0 -66
  330. package/dist/types/eval/backend.d.ts +0 -40
  331. package/dist/types/eval/index.d.ts +0 -4
  332. package/dist/types/eval/js/context-manager.d.ts +0 -27
  333. package/dist/types/eval/js/executor.d.ts +0 -29
  334. package/dist/types/eval/js/index.d.ts +0 -10
  335. package/dist/types/eval/js/shared/helpers.d.ts +0 -38
  336. package/dist/types/eval/js/shared/indirect-eval.d.ts +0 -14
  337. package/dist/types/eval/js/shared/prelude.d.ts +0 -1
  338. package/dist/types/eval/js/shared/rewrite-imports.d.ts +0 -6
  339. package/dist/types/eval/js/shared/runtime.d.ts +0 -47
  340. package/dist/types/eval/js/shared/types.d.ts +0 -24
  341. package/dist/types/eval/js/tool-bridge.d.ts +0 -18
  342. package/dist/types/eval/js/worker-core.d.ts +0 -5
  343. package/dist/types/eval/js/worker-entry.d.ts +0 -1
  344. package/dist/types/eval/js/worker-protocol.d.ts +0 -77
  345. package/dist/types/eval/py/display.d.ts +0 -25
  346. package/dist/types/eval/py/executor.d.ts +0 -88
  347. package/dist/types/eval/py/index.d.ts +0 -10
  348. package/dist/types/eval/py/kernel.d.ts +0 -65
  349. package/dist/types/eval/py/prelude.d.ts +0 -1
  350. package/dist/types/eval/py/runtime.d.ts +0 -29
  351. package/dist/types/eval/py/tool-bridge.d.ts +0 -20
  352. package/dist/types/eval/types.d.ts +0 -52
  353. package/dist/types/exa/factory.d.ts +0 -13
  354. package/dist/types/exa/index.d.ts +0 -20
  355. package/dist/types/exa/mcp-client.d.ts +0 -45
  356. package/dist/types/exa/render.d.ts +0 -19
  357. package/dist/types/exa/researcher.d.ts +0 -9
  358. package/dist/types/exa/search.d.ts +0 -9
  359. package/dist/types/exa/types.d.ts +0 -155
  360. package/dist/types/exa/websets.d.ts +0 -9
  361. package/dist/types/exec/bash-executor.d.ts +0 -64
  362. package/dist/types/exec/exec.d.ts +0 -25
  363. package/dist/types/exec/idle-timeout-watchdog.d.ts +0 -18
  364. package/dist/types/exec/non-interactive-env.d.ts +0 -1
  365. package/dist/types/export/custom-share.d.ts +0 -20
  366. package/dist/types/export/html/index.d.ts +0 -10
  367. package/dist/types/export/html/template.generated.d.ts +0 -1
  368. package/dist/types/export/html/template.macro.d.ts +0 -5
  369. package/dist/types/export/ttsr.d.ts +0 -55
  370. package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +0 -9
  371. package/dist/types/extensibility/custom-commands/index.d.ts +0 -2
  372. package/dist/types/extensibility/custom-commands/loader.d.ts +0 -29
  373. package/dist/types/extensibility/custom-commands/types.d.ts +0 -106
  374. package/dist/types/extensibility/custom-tools/index.d.ts +0 -6
  375. package/dist/types/extensibility/custom-tools/loader.d.ts +0 -69
  376. package/dist/types/extensibility/custom-tools/types.d.ts +0 -229
  377. package/dist/types/extensibility/custom-tools/wrapper.d.ts +0 -24
  378. package/dist/types/extensibility/extensions/compact-handler.d.ts +0 -26
  379. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +0 -29
  380. package/dist/types/extensibility/extensions/index.d.ts +0 -9
  381. package/dist/types/extensibility/extensions/loader.d.ts +0 -43
  382. package/dist/types/extensibility/extensions/prefix-command-bridge.d.ts +0 -35
  383. package/dist/types/extensibility/extensions/runner.d.ts +0 -135
  384. package/dist/types/extensibility/extensions/types.d.ts +0 -918
  385. package/dist/types/extensibility/extensions/wrapper.d.ts +0 -55
  386. package/dist/types/extensibility/hooks/index.d.ts +0 -5
  387. package/dist/types/extensibility/hooks/loader.d.ts +0 -89
  388. package/dist/types/extensibility/hooks/runner.d.ts +0 -126
  389. package/dist/types/extensibility/hooks/tool-wrapper.d.ts +0 -25
  390. package/dist/types/extensibility/hooks/types.d.ts +0 -431
  391. package/dist/types/extensibility/plugins/doctor.d.ts +0 -3
  392. package/dist/types/extensibility/plugins/git-url.d.ts +0 -34
  393. package/dist/types/extensibility/plugins/index.d.ts +0 -8
  394. package/dist/types/extensibility/plugins/installer.d.ts +0 -5
  395. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +0 -2
  396. package/dist/types/extensibility/plugins/loader.d.ts +0 -31
  397. package/dist/types/extensibility/plugins/manager.d.ts +0 -65
  398. package/dist/types/extensibility/plugins/marketplace/cache.d.ts +0 -41
  399. package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +0 -48
  400. package/dist/types/extensibility/plugins/marketplace/index.d.ts +0 -6
  401. package/dist/types/extensibility/plugins/marketplace/manager.d.ts +0 -57
  402. package/dist/types/extensibility/plugins/marketplace/registry.d.ts +0 -34
  403. package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +0 -28
  404. package/dist/types/extensibility/plugins/marketplace/types.d.ts +0 -130
  405. package/dist/types/extensibility/plugins/parser.d.ts +0 -52
  406. package/dist/types/extensibility/plugins/security-scanner.d.ts +0 -31
  407. package/dist/types/extensibility/plugins/types.d.ts +0 -149
  408. package/dist/types/extensibility/runtime-skill-discovery.d.ts +0 -20
  409. package/dist/types/extensibility/shared-events.d.ts +0 -281
  410. package/dist/types/extensibility/skc-plugins/activation.d.ts +0 -14
  411. package/dist/types/extensibility/skc-plugins/compiler.d.ts +0 -19
  412. package/dist/types/extensibility/skc-plugins/constrained-hooks.d.ts +0 -29
  413. package/dist/types/extensibility/skc-plugins/index.d.ts +0 -18
  414. package/dist/types/extensibility/skc-plugins/injection.d.ts +0 -40
  415. package/dist/types/extensibility/skc-plugins/installer.d.ts +0 -13
  416. package/dist/types/extensibility/skc-plugins/loader.d.ts +0 -3
  417. package/dist/types/extensibility/skc-plugins/mcp-policy.d.ts +0 -26
  418. package/dist/types/extensibility/skc-plugins/observability.d.ts +0 -27
  419. package/dist/types/extensibility/skc-plugins/paths.d.ts +0 -8
  420. package/dist/types/extensibility/skc-plugins/prompt-appendix.d.ts +0 -16
  421. package/dist/types/extensibility/skc-plugins/registry.d.ts +0 -32
  422. package/dist/types/extensibility/skc-plugins/runtime-adapters.d.ts +0 -64
  423. package/dist/types/extensibility/skc-plugins/schema.d.ts +0 -3
  424. package/dist/types/extensibility/skc-plugins/session-validation.d.ts +0 -42
  425. package/dist/types/extensibility/skc-plugins/state.d.ts +0 -9
  426. package/dist/types/extensibility/skc-plugins/tools.d.ts +0 -8
  427. package/dist/types/extensibility/skc-plugins/types.d.ts +0 -220
  428. package/dist/types/extensibility/skc-plugins/validation.d.ts +0 -11
  429. package/dist/types/extensibility/skills.d.ts +0 -82
  430. package/dist/types/extensibility/slash-commands.d.ts +0 -48
  431. package/dist/types/extensibility/tool-proxy.d.ts +0 -4
  432. package/dist/types/extensibility/typebox.d.ts +0 -155
  433. package/dist/types/extensibility/utils.d.ts +0 -12
  434. package/dist/types/goals/index.d.ts +0 -3
  435. package/dist/types/goals/runtime.d.ts +0 -63
  436. package/dist/types/goals/state.d.ts +0 -32
  437. package/dist/types/goals/tools/goal-tool.d.ts +0 -62
  438. package/dist/types/harness-control-plane/classifier.d.ts +0 -13
  439. package/dist/types/harness-control-plane/control-endpoint.d.ts +0 -31
  440. package/dist/types/harness-control-plane/finalize.d.ts +0 -60
  441. package/dist/types/harness-control-plane/gc-adapter.d.ts +0 -3
  442. package/dist/types/harness-control-plane/operate.d.ts +0 -35
  443. package/dist/types/harness-control-plane/owner.d.ts +0 -53
  444. package/dist/types/harness-control-plane/phase-rollup.d.ts +0 -23
  445. package/dist/types/harness-control-plane/preserve.d.ts +0 -19
  446. package/dist/types/harness-control-plane/receipt-ingest.d.ts +0 -19
  447. package/dist/types/harness-control-plane/receipt-spool.d.ts +0 -19
  448. package/dist/types/harness-control-plane/receipts.d.ts +0 -149
  449. package/dist/types/harness-control-plane/rpc-adapter.d.ts +0 -69
  450. package/dist/types/harness-control-plane/seams.d.ts +0 -21
  451. package/dist/types/harness-control-plane/session-lease.d.ts +0 -65
  452. package/dist/types/harness-control-plane/state-machine.d.ts +0 -24
  453. package/dist/types/harness-control-plane/storage.d.ts +0 -81
  454. package/dist/types/harness-control-plane/types.d.ts +0 -187
  455. package/dist/types/hashline/anchors.d.ts +0 -20
  456. package/dist/types/hashline/apply.d.ts +0 -14
  457. package/dist/types/hashline/constants.d.ts +0 -19
  458. package/dist/types/hashline/diff-preview.d.ts +0 -2
  459. package/dist/types/hashline/diff.d.ts +0 -17
  460. package/dist/types/hashline/execute.d.ts +0 -4
  461. package/dist/types/hashline/hash.d.ts +0 -123
  462. package/dist/types/hashline/index.d.ts +0 -13
  463. package/dist/types/hashline/input.d.ts +0 -11
  464. package/dist/types/hashline/parser.d.ts +0 -7
  465. package/dist/types/hashline/prefixes.d.ts +0 -7
  466. package/dist/types/hashline/recovery.d.ts +0 -27
  467. package/dist/types/hashline/stream.d.ts +0 -2
  468. package/dist/types/hashline/types.d.ts +0 -77
  469. package/dist/types/hindsight/backend.d.ts +0 -13
  470. package/dist/types/hindsight/bank.d.ts +0 -54
  471. package/dist/types/hindsight/client.d.ts +0 -224
  472. package/dist/types/hindsight/config.d.ts +0 -51
  473. package/dist/types/hindsight/content.d.ts +0 -70
  474. package/dist/types/hindsight/index.d.ts +0 -8
  475. package/dist/types/hindsight/mental-models.d.ts +0 -125
  476. package/dist/types/hindsight/state.d.ts +0 -99
  477. package/dist/types/hindsight/transcript.d.ts +0 -28
  478. package/dist/types/hooks/codex-native-hooks-config.d.ts +0 -29
  479. package/dist/types/hooks/native-skill-hook.d.ts +0 -28
  480. package/dist/types/hooks/skill-keywords.d.ts +0 -18
  481. package/dist/types/hooks/skill-state.d.ts +0 -93
  482. package/dist/types/i18n/index.d.ts +0 -38
  483. package/dist/types/i18n/messages/de.d.ts +0 -2
  484. package/dist/types/i18n/messages/de.messages.d.ts +0 -1
  485. package/dist/types/i18n/messages/de.settings.d.ts +0 -1
  486. package/dist/types/i18n/messages/en.d.ts +0 -81
  487. package/dist/types/i18n/messages/es.d.ts +0 -2
  488. package/dist/types/i18n/messages/es.messages.d.ts +0 -1
  489. package/dist/types/i18n/messages/es.settings.d.ts +0 -1
  490. package/dist/types/i18n/messages/fr.d.ts +0 -2
  491. package/dist/types/i18n/messages/fr.messages.d.ts +0 -1
  492. package/dist/types/i18n/messages/fr.settings.d.ts +0 -1
  493. package/dist/types/i18n/messages/ja.d.ts +0 -2
  494. package/dist/types/i18n/messages/ja.messages.d.ts +0 -1
  495. package/dist/types/i18n/messages/ja.settings.d.ts +0 -1
  496. package/dist/types/i18n/messages/ko.d.ts +0 -2
  497. package/dist/types/i18n/messages/ko.messages.d.ts +0 -1
  498. package/dist/types/i18n/messages/ko.settings.d.ts +0 -1
  499. package/dist/types/i18n/messages/zh.d.ts +0 -2
  500. package/dist/types/i18n/messages/zh.messages.d.ts +0 -1
  501. package/dist/types/i18n/messages/zh.settings.d.ts +0 -1
  502. package/dist/types/index.d.ts +0 -33
  503. package/dist/types/internal-urls/agent-protocol.d.ts +0 -12
  504. package/dist/types/internal-urls/artifact-protocol.d.ts +0 -6
  505. package/dist/types/internal-urls/docs-index.generated.d.ts +0 -2
  506. package/dist/types/internal-urls/index.d.ts +0 -20
  507. package/dist/types/internal-urls/issue-pr-protocol.d.ts +0 -17
  508. package/dist/types/internal-urls/json-query.d.ts +0 -30
  509. package/dist/types/internal-urls/local-protocol.d.ts +0 -39
  510. package/dist/types/internal-urls/mcp-protocol.d.ts +0 -12
  511. package/dist/types/internal-urls/memory-protocol.d.ts +0 -23
  512. package/dist/types/internal-urls/parse.d.ts +0 -19
  513. package/dist/types/internal-urls/registry-helpers.d.ts +0 -11
  514. package/dist/types/internal-urls/router.d.ts +0 -14
  515. package/dist/types/internal-urls/rule-protocol.d.ts +0 -6
  516. package/dist/types/internal-urls/skc-protocol.d.ts +0 -12
  517. package/dist/types/internal-urls/skill-protocol.d.ts +0 -13
  518. package/dist/types/internal-urls/types.d.ts +0 -109
  519. package/dist/types/lsp/client.d.ts +0 -66
  520. package/dist/types/lsp/clients/biome-client.d.ts +0 -16
  521. package/dist/types/lsp/clients/index.d.ts +0 -19
  522. package/dist/types/lsp/clients/lsp-linter-client.d.ts +0 -16
  523. package/dist/types/lsp/clients/swiftlint-client.d.ts +0 -20
  524. package/dist/types/lsp/config.d.ts +0 -65
  525. package/dist/types/lsp/edits.d.ts +0 -23
  526. package/dist/types/lsp/index.d.ts +0 -130
  527. package/dist/types/lsp/lspmux.d.ts +0 -58
  528. package/dist/types/lsp/render.d.ts +0 -32
  529. package/dist/types/lsp/startup-events.d.ts +0 -12
  530. package/dist/types/lsp/types.d.ts +0 -306
  531. package/dist/types/lsp/utils.d.ts +0 -108
  532. package/dist/types/main.d.ts +0 -75
  533. package/dist/types/memories/index.d.ts +0 -28
  534. package/dist/types/memories/storage.d.ts +0 -110
  535. package/dist/types/memory-backend/index.d.ts +0 -4
  536. package/dist/types/memory-backend/local-backend.d.ts +0 -9
  537. package/dist/types/memory-backend/off-backend.d.ts +0 -7
  538. package/dist/types/memory-backend/resolve.d.ts +0 -15
  539. package/dist/types/memory-backend/types.d.ts +0 -61
  540. package/dist/types/migrate/action-planner.d.ts +0 -11
  541. package/dist/types/migrate/adapters/claude-code.d.ts +0 -2
  542. package/dist/types/migrate/adapters/codex.d.ts +0 -5
  543. package/dist/types/migrate/adapters/index.d.ts +0 -45
  544. package/dist/types/migrate/adapters/opencode.d.ts +0 -2
  545. package/dist/types/migrate/executor.d.ts +0 -2
  546. package/dist/types/migrate/mcp-mapper.d.ts +0 -20
  547. package/dist/types/migrate/report.d.ts +0 -18
  548. package/dist/types/migrate/skill-normalizer.d.ts +0 -27
  549. package/dist/types/migrate/types.d.ts +0 -126
  550. package/dist/types/modes/acp/acp-agent.d.ts +0 -61
  551. package/dist/types/modes/acp/acp-client-bridge.d.ts +0 -9
  552. package/dist/types/modes/acp/acp-event-mapper.d.ts +0 -36
  553. package/dist/types/modes/acp/acp-mode.d.ts +0 -5
  554. package/dist/types/modes/acp/index.d.ts +0 -2
  555. package/dist/types/modes/acp/terminal-auth.d.ts +0 -6
  556. package/dist/types/modes/bridge/auth.d.ts +0 -12
  557. package/dist/types/modes/bridge/bridge-client-bridge.d.ts +0 -9
  558. package/dist/types/modes/bridge/bridge-mode.d.ts +0 -47
  559. package/dist/types/modes/bridge/bridge-ui-context.d.ts +0 -88
  560. package/dist/types/modes/bridge/event-stream.d.ts +0 -8
  561. package/dist/types/modes/components/agent-dashboard.d.ts +0 -21
  562. package/dist/types/modes/components/assistant-message.d.ts +0 -20
  563. package/dist/types/modes/components/bash-execution.d.ts +0 -29
  564. package/dist/types/modes/components/bordered-loader.d.ts +0 -11
  565. package/dist/types/modes/components/branch-summary-message.d.ts +0 -13
  566. package/dist/types/modes/components/btw-panel.d.ts +0 -16
  567. package/dist/types/modes/components/compaction-summary-message.d.ts +0 -13
  568. package/dist/types/modes/components/countdown-timer.d.ts +0 -14
  569. package/dist/types/modes/components/custom-editor.d.ts +0 -67
  570. package/dist/types/modes/components/custom-message.d.ts +0 -15
  571. package/dist/types/modes/components/custom-model-preset-wizard.d.ts +0 -12
  572. package/dist/types/modes/components/custom-provider-wizard.d.ts +0 -10
  573. package/dist/types/modes/components/diff.d.ts +0 -11
  574. package/dist/types/modes/components/dynamic-border.d.ts +0 -14
  575. package/dist/types/modes/components/eval-execution.d.ts +0 -23
  576. package/dist/types/modes/components/execution-shared.d.ts +0 -46
  577. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +0 -26
  578. package/dist/types/modes/components/extensions/extension-list.d.ts +0 -39
  579. package/dist/types/modes/components/extensions/index.d.ts +0 -8
  580. package/dist/types/modes/components/extensions/inspector-panel.d.ts +0 -8
  581. package/dist/types/modes/components/extensions/state-manager.d.ts +0 -50
  582. package/dist/types/modes/components/extensions/types.d.ts +0 -151
  583. package/dist/types/modes/components/footer.d.ts +0 -30
  584. package/dist/types/modes/components/history-search.d.ts +0 -7
  585. package/dist/types/modes/components/hook-editor.d.ts +0 -18
  586. package/dist/types/modes/components/hook-input.d.ts +0 -15
  587. package/dist/types/modes/components/hook-message.d.ts +0 -15
  588. package/dist/types/modes/components/hook-selector.d.ts +0 -54
  589. package/dist/types/modes/components/index.d.ts +0 -35
  590. package/dist/types/modes/components/jobs-overlay-model.d.ts +0 -31
  591. package/dist/types/modes/components/jobs-overlay.d.ts +0 -30
  592. package/dist/types/modes/components/keybinding-hints.d.ts +0 -40
  593. package/dist/types/modes/components/login-dialog.d.ts +0 -32
  594. package/dist/types/modes/components/message-frame.d.ts +0 -42
  595. package/dist/types/modes/components/model-selector.d.ts +0 -60
  596. package/dist/types/modes/components/oauth-selector.d.ts +0 -17
  597. package/dist/types/modes/components/plugin-selector.d.ts +0 -26
  598. package/dist/types/modes/components/plugin-settings.d.ts +0 -66
  599. package/dist/types/modes/components/provider-onboarding-selector.d.ts +0 -7
  600. package/dist/types/modes/components/queue-mode-selector.d.ts +0 -9
  601. package/dist/types/modes/components/queued-message-selector.d.ts +0 -12
  602. package/dist/types/modes/components/read-tool-group.d.ts +0 -30
  603. package/dist/types/modes/components/runtime-mcp-add-wizard.d.ts +0 -26
  604. package/dist/types/modes/components/session-observer-overlay.d.ts +0 -11
  605. package/dist/types/modes/components/session-selector.d.ts +0 -30
  606. package/dist/types/modes/components/settings-defs.d.ts +0 -50
  607. package/dist/types/modes/components/settings-selector.d.ts +0 -62
  608. package/dist/types/modes/components/show-images-selector.d.ts +0 -9
  609. package/dist/types/modes/components/skill-hud/render.d.ts +0 -2
  610. package/dist/types/modes/components/skill-message.d.ts +0 -10
  611. package/dist/types/modes/components/status-line/context-thresholds.d.ts +0 -4
  612. package/dist/types/modes/components/status-line/git-utils.d.ts +0 -28
  613. package/dist/types/modes/components/status-line/index.d.ts +0 -4
  614. package/dist/types/modes/components/status-line/presets.d.ts +0 -3
  615. package/dist/types/modes/components/status-line/segments.d.ts +0 -5
  616. package/dist/types/modes/components/status-line/separators.d.ts +0 -3
  617. package/dist/types/modes/components/status-line/token-rate.d.ts +0 -10
  618. package/dist/types/modes/components/status-line/types.d.ts +0 -83
  619. package/dist/types/modes/components/status-line.d.ts +0 -104
  620. package/dist/types/modes/components/theme-selector.d.ts +0 -10
  621. package/dist/types/modes/components/thinking-selector.d.ts +0 -15
  622. package/dist/types/modes/components/todo-reminder.d.ts +0 -13
  623. package/dist/types/modes/components/tool-execution.d.ts +0 -54
  624. package/dist/types/modes/components/tree-selector.d.ts +0 -31
  625. package/dist/types/modes/components/ttsr-notification.d.ts +0 -13
  626. package/dist/types/modes/components/two-column-body.d.ts +0 -9
  627. package/dist/types/modes/components/user-message-selector.d.ts +0 -28
  628. package/dist/types/modes/components/user-message.d.ts +0 -7
  629. package/dist/types/modes/components/visual-truncate.d.ts +0 -19
  630. package/dist/types/modes/components/welcome.d.ts +0 -46
  631. package/dist/types/modes/controllers/btw-controller.d.ts +0 -10
  632. package/dist/types/modes/controllers/command-controller-shared.d.ts +0 -47
  633. package/dist/types/modes/controllers/command-controller.d.ts +0 -40
  634. package/dist/types/modes/controllers/event-controller.d.ts +0 -17
  635. package/dist/types/modes/controllers/extension-ui-controller.d.ts +0 -80
  636. package/dist/types/modes/controllers/input-controller.d.ts +0 -42
  637. package/dist/types/modes/controllers/runtime-mcp-command-controller.d.ts +0 -10
  638. package/dist/types/modes/controllers/selector-controller.d.ts +0 -67
  639. package/dist/types/modes/controllers/ssh-command-controller.d.ts +0 -10
  640. package/dist/types/modes/controllers/todo-command-controller.d.ts +0 -7
  641. package/dist/types/modes/emoji-autocomplete.d.ts +0 -16
  642. package/dist/types/modes/index.d.ts +0 -10
  643. package/dist/types/modes/interactive-mode.d.ts +0 -275
  644. package/dist/types/modes/jobs-observer.d.ts +0 -57
  645. package/dist/types/modes/oauth-manual-input.d.ts +0 -8
  646. package/dist/types/modes/print-mode.d.ts +0 -45
  647. package/dist/types/modes/prompt-action-autocomplete.d.ts +0 -50
  648. package/dist/types/modes/rpc/host-tools.d.ts +0 -1
  649. package/dist/types/modes/rpc/host-uris.d.ts +0 -1
  650. package/dist/types/modes/rpc/rpc-client.d.ts +0 -293
  651. package/dist/types/modes/rpc/rpc-mode.d.ts +0 -85
  652. package/dist/types/modes/rpc/rpc-socket-security.d.ts +0 -10
  653. package/dist/types/modes/rpc/rpc-types.d.ts +0 -794
  654. package/dist/types/modes/runtime-init.d.ts +0 -21
  655. package/dist/types/modes/session-observer-registry.d.ts +0 -26
  656. package/dist/types/modes/shared/agent-wire/approval-gate.d.ts +0 -57
  657. package/dist/types/modes/shared/agent-wire/command-contract.d.ts +0 -18
  658. package/dist/types/modes/shared/agent-wire/command-dispatch.d.ts +0 -37
  659. package/dist/types/modes/shared/agent-wire/command-validation.d.ts +0 -2
  660. package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +0 -94
  661. package/dist/types/modes/shared/agent-wire/event-contract.d.ts +0 -103
  662. package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +0 -60
  663. package/dist/types/modes/shared/agent-wire/event-observation.d.ts +0 -37
  664. package/dist/types/modes/shared/agent-wire/handshake.d.ts +0 -56
  665. package/dist/types/modes/shared/agent-wire/host-tool-bridge.d.ts +0 -16
  666. package/dist/types/modes/shared/agent-wire/host-uri-bridge.d.ts +0 -17
  667. package/dist/types/modes/shared/agent-wire/protocol.d.ts +0 -25
  668. package/dist/types/modes/shared/agent-wire/responses.d.ts +0 -4
  669. package/dist/types/modes/shared/agent-wire/scopes.d.ts +0 -18
  670. package/dist/types/modes/shared/agent-wire/session-registry.d.ts +0 -25
  671. package/dist/types/modes/shared/agent-wire/ui-request-broker.d.ts +0 -42
  672. package/dist/types/modes/shared/agent-wire/ui-result.d.ts +0 -27
  673. package/dist/types/modes/shared/agent-wire/unattended-action-policy.d.ts +0 -29
  674. package/dist/types/modes/shared/agent-wire/unattended-audit.d.ts +0 -68
  675. package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +0 -161
  676. package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +0 -82
  677. package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +0 -114
  678. package/dist/types/modes/shared/agent-wire/workflow-gate-schema.d.ts +0 -39
  679. package/dist/types/modes/shared.d.ts +0 -15
  680. package/dist/types/modes/slash-command-visibility.d.ts +0 -1
  681. package/dist/types/modes/theme/defaults/index.d.ts +0 -652
  682. package/dist/types/modes/theme/mermaid-cache.d.ts +0 -9
  683. package/dist/types/modes/theme/shimmer.d.ts +0 -38
  684. package/dist/types/modes/theme/theme.d.ts +0 -275
  685. package/dist/types/modes/tmux-scroll.d.ts +0 -18
  686. package/dist/types/modes/types.d.ts +0 -292
  687. package/dist/types/modes/utils/abort-message.d.ts +0 -4
  688. package/dist/types/modes/utils/context-usage.d.ts +0 -51
  689. package/dist/types/modes/utils/hotkeys-markdown.d.ts +0 -5
  690. package/dist/types/modes/utils/injected-user-submission.d.ts +0 -52
  691. package/dist/types/modes/utils/keybinding-matchers.d.ts +0 -10
  692. package/dist/types/modes/utils/terminal-bell.d.ts +0 -3
  693. package/dist/types/modes/utils/tools-markdown.d.ts +0 -5
  694. package/dist/types/modes/utils/ui-helpers.d.ts +0 -66
  695. package/dist/types/notifications/attachment-registry.d.ts +0 -17
  696. package/dist/types/notifications/chat-adapters.d.ts +0 -9
  697. package/dist/types/notifications/config-commands.d.ts +0 -64
  698. package/dist/types/notifications/config.d.ts +0 -98
  699. package/dist/types/notifications/daemon-paths.d.ts +0 -10
  700. package/dist/types/notifications/engine.d.ts +0 -59
  701. package/dist/types/notifications/helpers.d.ts +0 -55
  702. package/dist/types/notifications/html-format.d.ts +0 -75
  703. package/dist/types/notifications/index.d.ts +0 -192
  704. package/dist/types/notifications/lifecycle-commands.d.ts +0 -69
  705. package/dist/types/notifications/lifecycle-control-runtime.d.ts +0 -99
  706. package/dist/types/notifications/lifecycle-orchestrator.d.ts +0 -144
  707. package/dist/types/notifications/managed-daemon.d.ts +0 -48
  708. package/dist/types/notifications/operator-runtime.d.ts +0 -52
  709. package/dist/types/notifications/rate-limit-pool.d.ts +0 -95
  710. package/dist/types/notifications/recent-activity.d.ts +0 -39
  711. package/dist/types/notifications/reply-sent-store.d.ts +0 -53
  712. package/dist/types/notifications/rich-draft.d.ts +0 -68
  713. package/dist/types/notifications/rich-render.d.ts +0 -90
  714. package/dist/types/notifications/telegram-cli.d.ts +0 -19
  715. package/dist/types/notifications/telegram-daemon-cli.d.ts +0 -28
  716. package/dist/types/notifications/telegram-daemon-control.d.ts +0 -64
  717. package/dist/types/notifications/telegram-daemon.d.ts +0 -431
  718. package/dist/types/notifications/telegram-reference.d.ts +0 -119
  719. package/dist/types/notifications/threaded-inbound.d.ts +0 -77
  720. package/dist/types/notifications/threaded-render.d.ts +0 -88
  721. package/dist/types/notifications/topic-registry.d.ts +0 -69
  722. package/dist/types/plan-mode/approved-plan.d.ts +0 -49
  723. package/dist/types/plan-mode/state.d.ts +0 -6
  724. package/dist/types/registry/agent-registry.d.ts +0 -62
  725. package/dist/types/reminders/star-reminder.d.ts +0 -115
  726. package/dist/types/research-plan/index.d.ts +0 -1
  727. package/dist/types/research-plan/ledger.d.ts +0 -33
  728. package/dist/types/rlm/artifacts.d.ts +0 -9
  729. package/dist/types/rlm/complete-research-tool.d.ts +0 -35
  730. package/dist/types/rlm/data-context.d.ts +0 -6
  731. package/dist/types/rlm/index.d.ts +0 -47
  732. package/dist/types/rlm/notebook.d.ts +0 -12
  733. package/dist/types/rlm/preset.d.ts +0 -23
  734. package/dist/types/rlm/python-tool.d.ts +0 -16
  735. package/dist/types/rlm/report.d.ts +0 -14
  736. package/dist/types/rlm/types.d.ts +0 -37
  737. package/dist/types/runtime/process-lifecycle.d.ts +0 -108
  738. package/dist/types/runtime-api-key.d.ts +0 -7
  739. package/dist/types/runtime-credential-selector.d.ts +0 -7
  740. package/dist/types/runtime-mcp/client.d.ts +0 -74
  741. package/dist/types/runtime-mcp/config-writer.d.ts +0 -89
  742. package/dist/types/runtime-mcp/config.d.ts +0 -77
  743. package/dist/types/runtime-mcp/discoverable-tool-metadata.d.ts +0 -7
  744. package/dist/types/runtime-mcp/index.d.ts +0 -18
  745. package/dist/types/runtime-mcp/json-rpc.d.ts +0 -22
  746. package/dist/types/runtime-mcp/loader.d.ts +0 -45
  747. package/dist/types/runtime-mcp/manager.d.ts +0 -195
  748. package/dist/types/runtime-mcp/oauth-discovery.d.ts +0 -40
  749. package/dist/types/runtime-mcp/oauth-flow.d.ts +0 -59
  750. package/dist/types/runtime-mcp/render.d.ts +0 -25
  751. package/dist/types/runtime-mcp/smithery-auth.d.ts +0 -16
  752. package/dist/types/runtime-mcp/smithery-connect.d.ts +0 -38
  753. package/dist/types/runtime-mcp/smithery-registry.d.ts +0 -51
  754. package/dist/types/runtime-mcp/tool-bridge.d.ts +0 -86
  755. package/dist/types/runtime-mcp/tool-cache.d.ts +0 -8
  756. package/dist/types/runtime-mcp/transports/http.d.ts +0 -36
  757. package/dist/types/runtime-mcp/transports/index.d.ts +0 -5
  758. package/dist/types/runtime-mcp/transports/stdio.d.ts +0 -29
  759. package/dist/types/runtime-mcp/types.d.ts +0 -349
  760. package/dist/types/sdk.d.ts +0 -254
  761. package/dist/types/secrets/index.d.ts +0 -9
  762. package/dist/types/secrets/obfuscator.d.ts +0 -23
  763. package/dist/types/secrets/regex.d.ts +0 -2
  764. package/dist/types/session/agent-session.d.ts +0 -1201
  765. package/dist/types/session/agent-storage.d.ts +0 -101
  766. package/dist/types/session/artifacts.d.ts +0 -64
  767. package/dist/types/session/auth-broker-config.d.ts +0 -13
  768. package/dist/types/session/auth-storage.d.ts +0 -6
  769. package/dist/types/session/blob-store.d.ts +0 -160
  770. package/dist/types/session/client-bridge.d.ts +0 -88
  771. package/dist/types/session/contribution-prep.d.ts +0 -47
  772. package/dist/types/session/file-mention-pruning.d.ts +0 -8
  773. package/dist/types/session/history-storage.d.ts +0 -16
  774. package/dist/types/session/messages.d.ts +0 -169
  775. package/dist/types/session/session-dump-format.d.ts +0 -22
  776. package/dist/types/session/session-manager.d.ts +0 -661
  777. package/dist/types/session/session-storage.d.ts +0 -88
  778. package/dist/types/session/streaming-output.d.ts +0 -209
  779. package/dist/types/session/tool-choice-queue.d.ts +0 -84
  780. package/dist/types/session/yield-queue.d.ts +0 -24
  781. package/dist/types/setup/credential-auto-import.d.ts +0 -63
  782. package/dist/types/setup/credential-import.d.ts +0 -82
  783. package/dist/types/setup/hermes-setup.d.ts +0 -78
  784. package/dist/types/setup/host-plugin-setup.d.ts +0 -39
  785. package/dist/types/setup/model-onboarding-guidance.d.ts +0 -9
  786. package/dist/types/setup/provider-onboarding.d.ts +0 -52
  787. package/dist/types/skc-runtime/cli-write-receipt.d.ts +0 -24
  788. package/dist/types/skc-runtime/deep-interview-ambiguity.d.ts +0 -39
  789. package/dist/types/skc-runtime/deep-interview-recorder.d.ts +0 -114
  790. package/dist/types/skc-runtime/deep-interview-runtime.d.ts +0 -36
  791. package/dist/types/skc-runtime/deep-interview-state.d.ts +0 -127
  792. package/dist/types/skc-runtime/gc-render.d.ts +0 -6
  793. package/dist/types/skc-runtime/gc-runtime.d.ts +0 -134
  794. package/dist/types/skc-runtime/goal-mode-request.d.ts +0 -53
  795. package/dist/types/skc-runtime/launch-tmux.d.ts +0 -78
  796. package/dist/types/skc-runtime/launch-worktree.d.ts +0 -46
  797. package/dist/types/skc-runtime/ledger-event-renderer.d.ts +0 -68
  798. package/dist/types/skc-runtime/psmux-detect.d.ts +0 -78
  799. package/dist/types/skc-runtime/ralplan-runtime.d.ts +0 -26
  800. package/dist/types/skc-runtime/restricted-role-agent-bash.d.ts +0 -3
  801. package/dist/types/skc-runtime/session-layout.d.ts +0 -59
  802. package/dist/types/skc-runtime/session-resolution.d.ts +0 -47
  803. package/dist/types/skc-runtime/session-state-sidecar.d.ts +0 -39
  804. package/dist/types/skc-runtime/state-graph.d.ts +0 -4
  805. package/dist/types/skc-runtime/state-migrations.d.ts +0 -33
  806. package/dist/types/skc-runtime/state-renderer.d.ts +0 -70
  807. package/dist/types/skc-runtime/state-runtime.d.ts +0 -38
  808. package/dist/types/skc-runtime/state-schema.d.ts +0 -319
  809. package/dist/types/skc-runtime/state-validation.d.ts +0 -6
  810. package/dist/types/skc-runtime/state-writer.d.ts +0 -244
  811. package/dist/types/skc-runtime/team-gc.d.ts +0 -7
  812. package/dist/types/skc-runtime/team-runtime.d.ts +0 -355
  813. package/dist/types/skc-runtime/tmux-common.d.ts +0 -105
  814. package/dist/types/skc-runtime/tmux-gc.d.ts +0 -7
  815. package/dist/types/skc-runtime/tmux-sessions.d.ts +0 -62
  816. package/dist/types/skc-runtime/ultragoal-guard.d.ts +0 -93
  817. package/dist/types/skc-runtime/ultragoal-receipt-freshness.d.ts +0 -42
  818. package/dist/types/skc-runtime/ultragoal-runtime.d.ts +0 -410
  819. package/dist/types/skc-runtime/workflow-command-ref.d.ts +0 -43
  820. package/dist/types/skc-runtime/workflow-manifest.d.ts +0 -54
  821. package/dist/types/skill-state/active-state.d.ts +0 -126
  822. package/dist/types/skill-state/canonical-skills.d.ts +0 -3
  823. package/dist/types/skill-state/deep-interview-mutation-guard.d.ts +0 -38
  824. package/dist/types/skill-state/initial-phase.d.ts +0 -12
  825. package/dist/types/skill-state/workflow-hud.d.ts +0 -83
  826. package/dist/types/skill-state/workflow-state-contract.d.ts +0 -57
  827. package/dist/types/skill-state/workflow-state-version.d.ts +0 -3
  828. package/dist/types/slash-commands/acp-builtins.d.ts +0 -18
  829. package/dist/types/slash-commands/builtin-registry.d.ts +0 -24
  830. package/dist/types/slash-commands/helpers/context-report.d.ts +0 -7
  831. package/dist/types/slash-commands/helpers/fast-status-report.d.ts +0 -82
  832. package/dist/types/slash-commands/helpers/format.d.ts +0 -10
  833. package/dist/types/slash-commands/helpers/mcp.d.ts +0 -3
  834. package/dist/types/slash-commands/helpers/parse.d.ts +0 -33
  835. package/dist/types/slash-commands/helpers/ssh.d.ts +0 -3
  836. package/dist/types/slash-commands/helpers/todo.d.ts +0 -3
  837. package/dist/types/slash-commands/helpers/usage-report.d.ts +0 -7
  838. package/dist/types/slash-commands/types.d.ts +0 -120
  839. package/dist/types/ssh/config-writer.d.ts +0 -49
  840. package/dist/types/ssh/connection-manager.d.ts +0 -33
  841. package/dist/types/ssh/ssh-executor.d.ts +0 -37
  842. package/dist/types/ssh/sshfs-mount.d.ts +0 -6
  843. package/dist/types/ssh/utils.d.ts +0 -2
  844. package/dist/types/stt/downloader.d.ts +0 -9
  845. package/dist/types/stt/index.d.ts +0 -3
  846. package/dist/types/stt/recorder.d.ts +0 -13
  847. package/dist/types/stt/setup.d.ts +0 -18
  848. package/dist/types/stt/stt-controller.d.ts +0 -16
  849. package/dist/types/stt/transcriber.d.ts +0 -16
  850. package/dist/types/system-prompt.d.ts +0 -118
  851. package/dist/types/task/agents.d.ts +0 -28
  852. package/dist/types/task/commands.d.ts +0 -35
  853. package/dist/types/task/discovery.d.ts +0 -19
  854. package/dist/types/task/executor.d.ts +0 -124
  855. package/dist/types/task/fork-context-advisory.d.ts +0 -13
  856. package/dist/types/task/fork-context-budget.d.ts +0 -7
  857. package/dist/types/task/id.d.ts +0 -7
  858. package/dist/types/task/index.d.ts +0 -43
  859. package/dist/types/task/name-generator.d.ts +0 -16
  860. package/dist/types/task/output-manager.d.ts +0 -36
  861. package/dist/types/task/parallel.d.ts +0 -34
  862. package/dist/types/task/receipt.d.ts +0 -87
  863. package/dist/types/task/render.d.ts +0 -28
  864. package/dist/types/task/roi-reconciliation.d.ts +0 -27
  865. package/dist/types/task/simple-mode.d.ts +0 -8
  866. package/dist/types/task/skc-command.d.ts +0 -7
  867. package/dist/types/task/spawn-gate.d.ts +0 -29
  868. package/dist/types/task/subprocess-tool-registry.d.ts +0 -72
  869. package/dist/types/task/token-log.d.ts +0 -30
  870. package/dist/types/task/token-log.test.d.ts +0 -1
  871. package/dist/types/task/types.d.ts +0 -508
  872. package/dist/types/task/worktree.d.ts +0 -94
  873. package/dist/types/thinking-metadata.d.ts +0 -16
  874. package/dist/types/thinking.d.ts +0 -22
  875. package/dist/types/tool-discovery/tool-index.d.ts +0 -112
  876. package/dist/types/tools/archive-reader.d.ts +0 -40
  877. package/dist/types/tools/ask-answer-registry.d.ts +0 -13
  878. package/dist/types/tools/ask.d.ts +0 -123
  879. package/dist/types/tools/ast-edit.d.ts +0 -77
  880. package/dist/types/tools/ast-grep.d.ts +0 -69
  881. package/dist/types/tools/auto-generated-guard.d.ts +0 -17
  882. package/dist/types/tools/bash-allowed-prefixes.d.ts +0 -10
  883. package/dist/types/tools/bash-command-fixup.d.ts +0 -11
  884. package/dist/types/tools/bash-interactive.d.ts +0 -16
  885. package/dist/types/tools/bash-interceptor.d.ts +0 -24
  886. package/dist/types/tools/bash-pty-selection.d.ts +0 -7
  887. package/dist/types/tools/bash-skill-urls.d.ts +0 -31
  888. package/dist/types/tools/bash.d.ts +0 -157
  889. package/dist/types/tools/bisect.d.ts +0 -81
  890. package/dist/types/tools/browser/actions.d.ts +0 -54
  891. package/dist/types/tools/browser/attach.d.ts +0 -50
  892. package/dist/types/tools/browser/launch.d.ts +0 -62
  893. package/dist/types/tools/browser/readable.d.ts +0 -17
  894. package/dist/types/tools/browser/registry.d.ts +0 -57
  895. package/dist/types/tools/browser/render.d.ts +0 -53
  896. package/dist/types/tools/browser/tab-protocol.d.ts +0 -144
  897. package/dist/types/tools/browser/tab-supervisor.d.ts +0 -103
  898. package/dist/types/tools/browser/tab-worker-entry.d.ts +0 -1
  899. package/dist/types/tools/browser/tab-worker.d.ts +0 -19
  900. package/dist/types/tools/browser.d.ts +0 -211
  901. package/dist/types/tools/calculator.d.ts +0 -76
  902. package/dist/types/tools/checkpoint.d.ts +0 -63
  903. package/dist/types/tools/composer-bash-policy.d.ts +0 -14
  904. package/dist/types/tools/computer/render.d.ts +0 -17
  905. package/dist/types/tools/computer-gc.d.ts +0 -23
  906. package/dist/types/tools/computer.d.ts +0 -465
  907. package/dist/types/tools/conflict-detect.d.ts +0 -205
  908. package/dist/types/tools/context.d.ts +0 -19
  909. package/dist/types/tools/cron.d.ts +0 -91
  910. package/dist/types/tools/debug.d.ts +0 -209
  911. package/dist/types/tools/eval.d.ts +0 -108
  912. package/dist/types/tools/fetch.d.ts +0 -84
  913. package/dist/types/tools/file-recorder.d.ts +0 -13
  914. package/dist/types/tools/find.d.ts +0 -95
  915. package/dist/types/tools/fs-cache-invalidation.d.ts +0 -15
  916. package/dist/types/tools/gh-format.d.ts +0 -6
  917. package/dist/types/tools/gh-renderer.d.ts +0 -25
  918. package/dist/types/tools/gh.d.ts +0 -356
  919. package/dist/types/tools/github-cache.d.ts +0 -103
  920. package/dist/types/tools/grouped-file-output.d.ts +0 -36
  921. package/dist/types/tools/hindsight-recall.d.ts +0 -21
  922. package/dist/types/tools/hindsight-reflect.d.ts +0 -23
  923. package/dist/types/tools/hindsight-retain.d.ts +0 -27
  924. package/dist/types/tools/image-gen.d.ts +0 -79
  925. package/dist/types/tools/index.d.ts +0 -319
  926. package/dist/types/tools/irc.d.ts +0 -79
  927. package/dist/types/tools/job.d.ts +0 -78
  928. package/dist/types/tools/json-tree.d.ts +0 -23
  929. package/dist/types/tools/jtd-to-json-schema.d.ts +0 -29
  930. package/dist/types/tools/jtd-to-typescript.d.ts +0 -26
  931. package/dist/types/tools/jtd-utils.d.ts +0 -42
  932. package/dist/types/tools/list-limit.d.ts +0 -12
  933. package/dist/types/tools/match-line-format.d.ts +0 -11
  934. package/dist/types/tools/monitor.d.ts +0 -54
  935. package/dist/types/tools/output-meta.d.ts +0 -204
  936. package/dist/types/tools/path-utils.d.ts +0 -147
  937. package/dist/types/tools/plan-mode-guard.d.ts +0 -18
  938. package/dist/types/tools/read.d.ts +0 -85
  939. package/dist/types/tools/recipe/index.d.ts +0 -45
  940. package/dist/types/tools/recipe/render.d.ts +0 -36
  941. package/dist/types/tools/recipe/runner.d.ts +0 -60
  942. package/dist/types/tools/recipe/runners/cargo.d.ts +0 -16
  943. package/dist/types/tools/recipe/runners/index.d.ts +0 -2
  944. package/dist/types/tools/recipe/runners/just.d.ts +0 -2
  945. package/dist/types/tools/recipe/runners/make.d.ts +0 -2
  946. package/dist/types/tools/recipe/runners/pkg.d.ts +0 -2
  947. package/dist/types/tools/recipe/runners/task.d.ts +0 -2
  948. package/dist/types/tools/render-mermaid.d.ts +0 -37
  949. package/dist/types/tools/render-utils.d.ts +0 -158
  950. package/dist/types/tools/renderers.d.ts +0 -26
  951. package/dist/types/tools/resolve.d.ts +0 -80
  952. package/dist/types/tools/resource-gc.d.ts +0 -54
  953. package/dist/types/tools/review.d.ts +0 -63
  954. package/dist/types/tools/search-tool-bm25.d.ts +0 -65
  955. package/dist/types/tools/search.d.ts +0 -93
  956. package/dist/types/tools/skill-discovery.d.ts +0 -40
  957. package/dist/types/tools/skill.d.ts +0 -48
  958. package/dist/types/tools/sqlite-reader.d.ts +0 -94
  959. package/dist/types/tools/ssh.d.ts +0 -67
  960. package/dist/types/tools/subagent-render.d.ts +0 -31
  961. package/dist/types/tools/subagent.d.ts +0 -117
  962. package/dist/types/tools/telegram-send.d.ts +0 -32
  963. package/dist/types/tools/todo-write.d.ts +0 -120
  964. package/dist/types/tools/tool-errors.d.ts +0 -33
  965. package/dist/types/tools/tool-result.d.ts +0 -30
  966. package/dist/types/tools/tool-timeouts.d.ts +0 -56
  967. package/dist/types/tools/ultragoal-ask-guard.d.ts +0 -12
  968. package/dist/types/tools/vim.d.ts +0 -58
  969. package/dist/types/tools/write.d.ts +0 -59
  970. package/dist/types/tools/yield.d.ts +0 -25
  971. package/dist/types/tui/code-cell.d.ts +0 -32
  972. package/dist/types/tui/file-list.d.ts +0 -22
  973. package/dist/types/tui/hyperlink.d.ts +0 -42
  974. package/dist/types/tui/index.d.ts +0 -11
  975. package/dist/types/tui/output-block.d.ts +0 -28
  976. package/dist/types/tui/status-line.d.ts +0 -18
  977. package/dist/types/tui/tree-list.d.ts +0 -19
  978. package/dist/types/tui/types.d.ts +0 -13
  979. package/dist/types/tui/utils.d.ts +0 -36
  980. package/dist/types/utils/changelog.d.ts +0 -37
  981. package/dist/types/utils/clipboard.d.ts +0 -22
  982. package/dist/types/utils/cmux-workspace.d.ts +0 -52
  983. package/dist/types/utils/command-args.d.ts +0 -9
  984. package/dist/types/utils/commit-message-generator.d.ts +0 -7
  985. package/dist/types/utils/edit-mode.d.ts +0 -13
  986. package/dist/types/utils/event-bus.d.ts +0 -6
  987. package/dist/types/utils/external-editor.d.ts +0 -17
  988. package/dist/types/utils/file-display-mode.d.ts +0 -27
  989. package/dist/types/utils/file-mentions.d.ts +0 -25
  990. package/dist/types/utils/git.d.ts +0 -393
  991. package/dist/types/utils/image-loading.d.ts +0 -26
  992. package/dist/types/utils/image-resize.d.ts +0 -39
  993. package/dist/types/utils/lang-from-path.d.ts +0 -8
  994. package/dist/types/utils/linkedom.d.ts +0 -4
  995. package/dist/types/utils/markit.d.ts +0 -7
  996. package/dist/types/utils/open.d.ts +0 -2
  997. package/dist/types/utils/pasted-image-path.d.ts +0 -32
  998. package/dist/types/utils/session-color.d.ts +0 -10
  999. package/dist/types/utils/shell-snapshot.d.ts +0 -5
  1000. package/dist/types/utils/sixel.d.ts +0 -21
  1001. package/dist/types/utils/title-generator.d.ts +0 -31
  1002. package/dist/types/utils/tool-choice.d.ts +0 -20
  1003. package/dist/types/utils/tools-manager.d.ts +0 -9
  1004. package/dist/types/vim/buffer.d.ts +0 -41
  1005. package/dist/types/vim/commands.d.ts +0 -6
  1006. package/dist/types/vim/engine.d.ts +0 -47
  1007. package/dist/types/vim/parser.d.ts +0 -3
  1008. package/dist/types/vim/render.d.ts +0 -25
  1009. package/dist/types/vim/types.d.ts +0 -182
  1010. package/dist/types/web/insane/bridge.d.ts +0 -103
  1011. package/dist/types/web/insane/url-guard.d.ts +0 -25
  1012. package/dist/types/web/kagi.d.ts +0 -23
  1013. package/dist/types/web/parallel.d.ts +0 -58
  1014. package/dist/types/web/scrapers/artifacthub.d.ts +0 -6
  1015. package/dist/types/web/scrapers/arxiv.d.ts +0 -5
  1016. package/dist/types/web/scrapers/aur.d.ts +0 -5
  1017. package/dist/types/web/scrapers/biorxiv.d.ts +0 -5
  1018. package/dist/types/web/scrapers/bluesky.d.ts +0 -5
  1019. package/dist/types/web/scrapers/brew.d.ts +0 -5
  1020. package/dist/types/web/scrapers/cheatsh.d.ts +0 -8
  1021. package/dist/types/web/scrapers/chocolatey.d.ts +0 -5
  1022. package/dist/types/web/scrapers/choosealicense.d.ts +0 -2
  1023. package/dist/types/web/scrapers/cisa-kev.d.ts +0 -5
  1024. package/dist/types/web/scrapers/clojars.d.ts +0 -5
  1025. package/dist/types/web/scrapers/coingecko.d.ts +0 -5
  1026. package/dist/types/web/scrapers/crates-io.d.ts +0 -5
  1027. package/dist/types/web/scrapers/crossref.d.ts +0 -2
  1028. package/dist/types/web/scrapers/devto.d.ts +0 -5
  1029. package/dist/types/web/scrapers/discogs.d.ts +0 -8
  1030. package/dist/types/web/scrapers/discourse.d.ts +0 -5
  1031. package/dist/types/web/scrapers/dockerhub.d.ts +0 -5
  1032. package/dist/types/web/scrapers/docs-rs.d.ts +0 -2
  1033. package/dist/types/web/scrapers/fdroid.d.ts +0 -5
  1034. package/dist/types/web/scrapers/firefox-addons.d.ts +0 -2
  1035. package/dist/types/web/scrapers/flathub.d.ts +0 -2
  1036. package/dist/types/web/scrapers/github-gist.d.ts +0 -5
  1037. package/dist/types/web/scrapers/github.d.ts +0 -12
  1038. package/dist/types/web/scrapers/gitlab.d.ts +0 -5
  1039. package/dist/types/web/scrapers/go-pkg.d.ts +0 -5
  1040. package/dist/types/web/scrapers/hackage.d.ts +0 -5
  1041. package/dist/types/web/scrapers/hackernews.d.ts +0 -2
  1042. package/dist/types/web/scrapers/hex.d.ts +0 -5
  1043. package/dist/types/web/scrapers/huggingface.d.ts +0 -2
  1044. package/dist/types/web/scrapers/iacr.d.ts +0 -5
  1045. package/dist/types/web/scrapers/index.d.ts +0 -84
  1046. package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +0 -2
  1047. package/dist/types/web/scrapers/lemmy.d.ts +0 -2
  1048. package/dist/types/web/scrapers/lobsters.d.ts +0 -5
  1049. package/dist/types/web/scrapers/mastodon.d.ts +0 -5
  1050. package/dist/types/web/scrapers/maven.d.ts +0 -6
  1051. package/dist/types/web/scrapers/mdn.d.ts +0 -2
  1052. package/dist/types/web/scrapers/metacpan.d.ts +0 -5
  1053. package/dist/types/web/scrapers/musicbrainz.d.ts +0 -5
  1054. package/dist/types/web/scrapers/npm.d.ts +0 -5
  1055. package/dist/types/web/scrapers/nuget.d.ts +0 -5
  1056. package/dist/types/web/scrapers/nvd.d.ts +0 -5
  1057. package/dist/types/web/scrapers/ollama.d.ts +0 -2
  1058. package/dist/types/web/scrapers/open-vsx.d.ts +0 -5
  1059. package/dist/types/web/scrapers/opencorporates.d.ts +0 -5
  1060. package/dist/types/web/scrapers/openlibrary.d.ts +0 -5
  1061. package/dist/types/web/scrapers/orcid.d.ts +0 -5
  1062. package/dist/types/web/scrapers/osv.d.ts +0 -5
  1063. package/dist/types/web/scrapers/packagist.d.ts +0 -5
  1064. package/dist/types/web/scrapers/pub-dev.d.ts +0 -5
  1065. package/dist/types/web/scrapers/pubmed.d.ts +0 -5
  1066. package/dist/types/web/scrapers/pypi.d.ts +0 -5
  1067. package/dist/types/web/scrapers/rawg.d.ts +0 -2
  1068. package/dist/types/web/scrapers/readthedocs.d.ts +0 -2
  1069. package/dist/types/web/scrapers/reddit.d.ts +0 -5
  1070. package/dist/types/web/scrapers/repology.d.ts +0 -5
  1071. package/dist/types/web/scrapers/rfc.d.ts +0 -5
  1072. package/dist/types/web/scrapers/rubygems.d.ts +0 -5
  1073. package/dist/types/web/scrapers/searchcode.d.ts +0 -2
  1074. package/dist/types/web/scrapers/sec-edgar.d.ts +0 -5
  1075. package/dist/types/web/scrapers/semantic-scholar.d.ts +0 -2
  1076. package/dist/types/web/scrapers/snapcraft.d.ts +0 -2
  1077. package/dist/types/web/scrapers/sourcegraph.d.ts +0 -2
  1078. package/dist/types/web/scrapers/spdx.d.ts +0 -5
  1079. package/dist/types/web/scrapers/spotify.d.ts +0 -8
  1080. package/dist/types/web/scrapers/stackoverflow.d.ts +0 -6
  1081. package/dist/types/web/scrapers/terraform.d.ts +0 -5
  1082. package/dist/types/web/scrapers/tldr.d.ts +0 -7
  1083. package/dist/types/web/scrapers/twitter.d.ts +0 -5
  1084. package/dist/types/web/scrapers/types.d.ts +0 -83
  1085. package/dist/types/web/scrapers/utils.d.ts +0 -32
  1086. package/dist/types/web/scrapers/vimeo.d.ts +0 -5
  1087. package/dist/types/web/scrapers/vscode-marketplace.d.ts +0 -5
  1088. package/dist/types/web/scrapers/w3c.d.ts +0 -2
  1089. package/dist/types/web/scrapers/wikidata.d.ts +0 -5
  1090. package/dist/types/web/scrapers/wikipedia.d.ts +0 -5
  1091. package/dist/types/web/scrapers/youtube.d.ts +0 -13
  1092. package/dist/types/web/search/index.d.ts +0 -118
  1093. package/dist/types/web/search/provider.d.ts +0 -55
  1094. package/dist/types/web/search/providers/anthropic.d.ts +0 -32
  1095. package/dist/types/web/search/providers/base.d.ts +0 -90
  1096. package/dist/types/web/search/providers/brave.d.ts +0 -27
  1097. package/dist/types/web/search/providers/codex.d.ts +0 -35
  1098. package/dist/types/web/search/providers/duckduckgo.d.ts +0 -57
  1099. package/dist/types/web/search/providers/exa.d.ts +0 -52
  1100. package/dist/types/web/search/providers/gemini.d.ts +0 -57
  1101. package/dist/types/web/search/providers/insane.d.ts +0 -53
  1102. package/dist/types/web/search/providers/jina.d.ts +0 -26
  1103. package/dist/types/web/search/providers/kagi.d.ts +0 -24
  1104. package/dist/types/web/search/providers/kimi.d.ts +0 -27
  1105. package/dist/types/web/search/providers/openai-compatible.d.ts +0 -9
  1106. package/dist/types/web/search/providers/parallel.d.ts +0 -15
  1107. package/dist/types/web/search/providers/perplexity.d.ts +0 -38
  1108. package/dist/types/web/search/providers/searxng.d.ts +0 -44
  1109. package/dist/types/web/search/providers/synthetic.d.ts +0 -21
  1110. package/dist/types/web/search/providers/tavily.d.ts +0 -29
  1111. package/dist/types/web/search/providers/text-citations.d.ts +0 -23
  1112. package/dist/types/web/search/providers/utils.d.ts +0 -88
  1113. package/dist/types/web/search/providers/xai.d.ts +0 -64
  1114. package/dist/types/web/search/providers/zai.d.ts +0 -28
  1115. package/dist/types/web/search/render.d.ts +0 -36
  1116. package/dist/types/web/search/types.d.ts +0 -372
  1117. package/dist/types/web/search/utils.d.ts +0 -4
  1118. package/dist/types/workflow/workflow-intent-diff.d.ts +0 -25
  1119. package/dist/types/workflow/workflow-intent-report-consumer.d.ts +0 -50
  1120. package/dist/types/workflow/workflow-intent-report-schema.d.ts +0 -2
  1121. package/dist/types/workflow/workflow-intent-report.d.ts +0 -48
  1122. package/dist/types/workspace-tree.d.ts +0 -42
@@ -27,6 +27,7 @@ import {
27
27
  type AgentState,
28
28
  type AgentTool,
29
29
  assertImagePlaceholdersHavePayload,
30
+ canContinuePersistedHistory,
30
31
  resolveTelemetry,
31
32
  type StablePrefixSnapshot,
32
33
  ThinkingLevel,
@@ -205,6 +206,7 @@ import type { PlanModeState } from "../plan-mode/state";
205
206
  import autoContinuePrompt from "../prompts/system/auto-continue.md" with { type: "text" };
206
207
  import eagerTodoPrompt from "../prompts/system/eager-todo.md" with { type: "text" };
207
208
  import ircIncomingTemplate from "../prompts/system/irc-incoming.md" with { type: "text" };
209
+ import ircPeerRosterTemplate from "../prompts/system/irc-peer-roster.md" with { type: "text" };
208
210
  import planModeActivePrompt from "../prompts/system/plan-mode-active.md" with { type: "text" };
209
211
  import planModeReferencePrompt from "../prompts/system/plan-mode-reference.md" with { type: "text" };
210
212
  import planModeToolDecisionReminderPrompt from "../prompts/system/plan-mode-tool-decision-reminder.md" with {
@@ -254,7 +256,10 @@ import {
254
256
  } from "../tool-discovery/tool-index";
255
257
  import type { AskAnswerSource, ToolSession } from "../tools";
256
258
  import { AskTool } from "../tools/ask";
257
- import { getAskAnswerSource as getAskAnswerSourceFromRegistry } from "../tools/ask-answer-registry";
259
+ import {
260
+ getAskAnswerSource as getAskAnswerSourceFromRegistry,
261
+ notifyWorkflowGateEmitterChanged,
262
+ } from "../tools/ask-answer-registry";
258
263
  import { assertEditableFile } from "../tools/auto-generated-guard";
259
264
  import { releaseTabsForOwner } from "../tools/browser/tab-supervisor";
260
265
  import type { CheckpointState } from "../tools/checkpoint";
@@ -291,6 +296,7 @@ import {
291
296
  SILENT_ABORT_MARKER,
292
297
  SKILL_PROMPT_MESSAGE_TYPE,
293
298
  } from "./messages";
299
+ import { isLegacyProviderSafetyStopMessage } from "./provider-safety-stop";
294
300
  import { formatSessionDumpText } from "./session-dump-format";
295
301
  import type {
296
302
  BranchSummaryEntry,
@@ -298,8 +304,13 @@ import type {
298
304
  NewSessionOptions,
299
305
  SessionContext,
300
306
  SessionManager,
307
+ SessionManagerCloseOutcome,
308
+ } from "./session-manager";
309
+ import {
310
+ getLatestCompactionEntry,
311
+ getSessionMessageObservationId,
312
+ transferSessionMessageIdentity,
301
313
  } from "./session-manager";
302
- import { getLatestCompactionEntry } from "./session-manager";
303
314
  import { ToolChoiceQueue } from "./tool-choice-queue";
304
315
  import { YieldQueue } from "./yield-queue";
305
316
 
@@ -538,6 +549,7 @@ export interface SessionStats {
538
549
  };
539
550
  premiumRequests: number;
540
551
  cost: number;
552
+ costBreakdown?: Usage["cost"];
541
553
  }
542
554
 
543
555
  /** Internal marker for hook messages queued through the agent loop */
@@ -1270,6 +1282,9 @@ export class AgentSession {
1270
1282
  // Agent identity + registry for IRC relay forwarding to the main session UI.
1271
1283
  #agentId: string | undefined;
1272
1284
  #agentRegistry: AgentRegistry | undefined;
1285
+ #lastDeliveredIrcRosterSignature: string | null = null;
1286
+ #ircRosterEpoch = 0;
1287
+ #ircRosterClaim: { token: symbol; signature: string; epoch: number } | null = null;
1273
1288
  #providerSessionId: string | undefined;
1274
1289
  #providerCacheSessionId: string | undefined;
1275
1290
  #isDisposed = false;
@@ -2086,6 +2101,16 @@ export class AgentSession {
2086
2101
  return queued;
2087
2102
  }
2088
2103
 
2104
+ #persistRuntimeStateInBackground(event: AgentSessionEvent): void {
2105
+ void persistCoordinatorRuntimeStateFromEvent(event, {
2106
+ sessionId: this.sessionId,
2107
+ cwd: this.sessionManager.getCwd(),
2108
+ sessionFile: this.sessionManager.getSessionFile(),
2109
+ }).catch(() => {
2110
+ logger.warn("Failed to persist coordinator runtime state", { event: event.type });
2111
+ });
2112
+ }
2113
+
2089
2114
  async #emitSessionEvent(event: AgentSessionEvent): Promise<void> {
2090
2115
  if (event.type === "message_update") {
2091
2116
  // Fast path: message_update maps to no sidecar state, so we must not
@@ -2097,12 +2122,7 @@ export class AgentSession {
2097
2122
  }
2098
2123
  return;
2099
2124
  }
2100
- const persistRuntimeState = () =>
2101
- persistCoordinatorRuntimeStateFromEvent(event, {
2102
- sessionId: this.sessionId,
2103
- cwd: this.sessionManager.getCwd(),
2104
- sessionFile: this.sessionManager.getSessionFile(),
2105
- });
2125
+ const persistRuntimeState = () => this.#persistRuntimeStateInBackground(event);
2106
2126
  // Hold the wire-level agent_end until in-flight prompts unwind. Subscribers
2107
2127
  // (rpc-mode, ACP, Cursor) treat agent_end as the "session is idle" signal;
2108
2128
  // emitting while #promptInFlightCount > 0 lets a client fire its next
@@ -2205,7 +2225,9 @@ export class AgentSession {
2205
2225
  const message = event.message;
2206
2226
  const deobfuscatedContent = obfuscator.deobfuscateObject(message.content);
2207
2227
  if (deobfuscatedContent !== message.content) {
2208
- displayEvent = { ...event, message: { ...message, content: deobfuscatedContent } };
2228
+ const displayMessage = { ...message, content: deobfuscatedContent };
2229
+ transferSessionMessageIdentity([message], [displayMessage]);
2230
+ displayEvent = { ...event, message: displayMessage };
2209
2231
  }
2210
2232
  }
2211
2233
 
@@ -2220,6 +2242,15 @@ export class AgentSession {
2220
2242
  }
2221
2243
 
2222
2244
  await this.#emitSessionEvent(displayEvent);
2245
+ if (
2246
+ displayEvent !== event &&
2247
+ displayEvent.type === "message_end" &&
2248
+ displayEvent.message.role === "assistant" &&
2249
+ event.type === "message_end" &&
2250
+ event.message.role === "assistant"
2251
+ ) {
2252
+ transferSessionMessageIdentity([displayEvent.message], [event.message]);
2253
+ }
2223
2254
 
2224
2255
  if (event.type === "turn_start") {
2225
2256
  this.#resetStreamingEditState();
@@ -2389,14 +2420,20 @@ export class AgentSession {
2389
2420
  if (event.type === "message_end") {
2390
2421
  // Check if this is a hook/custom message
2391
2422
  if (event.message.role === "hookMessage" || event.message.role === "custom") {
2392
- // Persist as CustomMessageEntry
2393
- this.sessionManager.appendCustomMessageEntry(
2394
- event.message.customType,
2395
- event.message.content,
2396
- event.message.display,
2397
- event.message.details,
2398
- event.message.attribution ?? "agent",
2399
- );
2423
+ // Roster reminders are request-context-only: never persist them, or a
2424
+ // reload would resurrect stale rosters into agent history.
2425
+ const isRosterReminder = event.message.role === "custom" && event.message.customType === "irc-peer-roster";
2426
+ if (!isRosterReminder) {
2427
+ // Persist as CustomMessageEntry
2428
+ this.sessionManager.appendCustomMessageEntry(
2429
+ event.message.customType,
2430
+ event.message.content,
2431
+ event.message.display,
2432
+ event.message.details,
2433
+ event.message.attribution ?? "agent",
2434
+ getSessionMessageObservationId(event.message),
2435
+ );
2436
+ }
2400
2437
  if (event.message.role === "custom" && event.message.customType === "ttsr-injection") {
2401
2438
  this.#markTtsrInjected(this.#extractTtsrRuleNames(event.message.details));
2402
2439
  }
@@ -2761,8 +2798,7 @@ export class AgentSession {
2761
2798
  }
2762
2799
 
2763
2800
  #isResumableAgentTail(): boolean {
2764
- const lastMsg = this.agent.state.messages.at(-1);
2765
- return lastMsg !== undefined && lastMsg.role !== "assistant";
2801
+ return canContinuePersistedHistory(this.agent.state.messages);
2766
2802
  }
2767
2803
 
2768
2804
  #stripOverflowFailedTurnForRetry(): void {
@@ -3765,6 +3801,8 @@ export class AgentSession {
3765
3801
  } catch (error) {
3766
3802
  logger.warn("Failed to emit session_shutdown event", { error: String(error) });
3767
3803
  }
3804
+ this.#workflowGateEmitter = undefined;
3805
+ notifyWorkflowGateEmitterChanged(this.sessionId, undefined);
3768
3806
  await this.#flushWorkerIntegrationAttempt();
3769
3807
  await this.#cancelPostPromptTasks();
3770
3808
  // Cancel jobs this agent registered so a subagent's teardown doesn't
@@ -3828,6 +3866,18 @@ export class AgentSession {
3828
3866
  this.#eventListeners = [];
3829
3867
  this.#rebuildEventListenerSnapshot();
3830
3868
  }
3869
+ /**
3870
+ * Strict writer close for ACP session delete. On the first attempt it flushes
3871
+ * pending writes, then returns the certainty-aware close outcome so the caller
3872
+ * can block destructive mutation on a non-`closed` result. When the manager
3873
+ * retains a retryable writer (a prior `close_failed_retryable`), the flush is
3874
+ * NOT repeated: the underlying writer rejects flushes while in the retryable
3875
+ * state, and `SessionManager.closeStrict()` owns the flush/close sequencing so
3876
+ * a second call can return `closed` once the OS close lands.
3877
+ */
3878
+ async closeWriterStrict(): Promise<SessionManagerCloseOutcome> {
3879
+ return this.sessionManager.flushAndCloseStrict();
3880
+ }
3831
3881
 
3832
3882
  /**
3833
3883
  * Bounded, best-effort teardown of the subprocess-spawning resources this session
@@ -3928,6 +3978,20 @@ export class AgentSession {
3928
3978
  }
3929
3979
  }
3930
3980
 
3981
+ /**
3982
+ * Owner-scoped async-delivery snapshot used by the strict ACP delete
3983
+ * quiescence barrier to PROVE quiescence after a best-effort drain. Unlike
3984
+ * {@link drainAsyncJobDeliveriesForAcp}'s boolean return (which conflates
3985
+ * "nothing to drain" with "timed out"), this reads the live state directly so
3986
+ * any remaining queued/delivering work is observable and can block mutation.
3987
+ */
3988
+ getAsyncDeliveryStateForAcp(): { queued: number; delivering: boolean } {
3989
+ const manager = AsyncJobManager.instance();
3990
+ if (!manager) return { queued: 0, delivering: false };
3991
+ const ownerFilter = this.#agentId ? { ownerId: this.#agentId } : undefined;
3992
+ return manager.getDeliveryState(ownerFilter);
3993
+ }
3994
+
3931
3995
  /** Most recent assistant message in agent state. */
3932
3996
  getLastAssistantMessage(): AssistantMessage | undefined {
3933
3997
  return this.#findLastAssistantMessage();
@@ -4895,6 +4959,14 @@ export class AgentSession {
4895
4959
  return this.agent.state.messages;
4896
4960
  }
4897
4961
 
4962
+ /** Main startup calls this exactly once, after a strict open returned `kind: "opened"`. */
4963
+ async continuePersistedHistory(): Promise<void> {
4964
+ if (!canContinuePersistedHistory(this.agent.state.messages)) {
4965
+ throw new Error("Cannot continue from persisted message history");
4966
+ }
4967
+ await this.agent.continue();
4968
+ }
4969
+
4898
4970
  buildDisplaySessionContext(): SessionContext {
4899
4971
  return deobfuscateSessionContext(this.sessionManager.buildSessionContext(), this.#obfuscator);
4900
4972
  }
@@ -5029,6 +5101,7 @@ export class AgentSession {
5029
5101
 
5030
5102
  setWorkflowGateEmitter(emitter: WorkflowGateEmitter | undefined): void {
5031
5103
  this.#workflowGateEmitter = emitter;
5104
+ notifyWorkflowGateEmitterChanged(this.sessionId, emitter);
5032
5105
  if (emitter) {
5033
5106
  this.#ensureWorkflowGateAskTool();
5034
5107
  }
@@ -5576,6 +5649,7 @@ export class AgentSession {
5576
5649
  ): Promise<void> {
5577
5650
  this.#beginInFlight();
5578
5651
  const generation = this.#promptGeneration;
5652
+ const rosterClaim = this.#claimIrcRosterCandidate();
5579
5653
  try {
5580
5654
  // Flush any pending bash messages before the new prompt
5581
5655
  this.#flushPendingBashMessages();
@@ -5627,6 +5701,11 @@ export class AgentSession {
5627
5701
  }
5628
5702
  const volatileProjectContextMessage = await this.#buildVolatileProjectContextMessage();
5629
5703
  messages.push(volatileProjectContextMessage);
5704
+ if (rosterClaim && this.#isCurrentIrcRosterClaim(rosterClaim.token, rosterClaim.epoch)) {
5705
+ messages.push(rosterClaim.message);
5706
+ } else if (rosterClaim) {
5707
+ this.#releaseIrcRosterClaim(rosterClaim.token, rosterClaim.epoch);
5708
+ }
5630
5709
  if (options?.prependMessages) {
5631
5710
  messages.push(...options.prependMessages);
5632
5711
  }
@@ -5731,10 +5810,27 @@ export class AgentSession {
5731
5810
 
5732
5811
  const agentPromptOptions = options?.toolChoice ? { toolChoice: options.toolChoice } : undefined;
5733
5812
  await this.#promptAgentWithIdleRetry(messages, agentPromptOptions);
5813
+ const terminalAssistant = this.#findLastAssistantMessage();
5814
+ if (
5815
+ rosterClaim &&
5816
+ terminalAssistant &&
5817
+ terminalAssistant.stopReason !== "error" &&
5818
+ terminalAssistant.stopReason !== "aborted"
5819
+ ) {
5820
+ this.#commitIrcRosterClaim(rosterClaim.token, rosterClaim.epoch);
5821
+ }
5734
5822
  if (!options?.skipPostPromptRecoveryWait) {
5735
5823
  await this.#waitForPostPromptRecovery();
5736
5824
  }
5737
5825
  } finally {
5826
+ if (rosterClaim) {
5827
+ this.agent.replaceMessages(
5828
+ this.agent.state.messages.filter(
5829
+ candidate => !(candidate.role === "custom" && candidate.customType === "irc-peer-roster"),
5830
+ ),
5831
+ );
5832
+ this.#releaseIrcRosterClaim(rosterClaim.token, rosterClaim.epoch);
5833
+ }
5738
5834
  this.#endInFlight();
5739
5835
  }
5740
5836
  }
@@ -6162,6 +6258,7 @@ export class AgentSession {
6162
6258
  message.display,
6163
6259
  message.details,
6164
6260
  message.attribution ?? "agent",
6261
+ getSessionMessageObservationId(appMessage),
6165
6262
  );
6166
6263
  return;
6167
6264
  }
@@ -6189,6 +6286,7 @@ export class AgentSession {
6189
6286
  message.display,
6190
6287
  message.details,
6191
6288
  message.attribution ?? "agent",
6289
+ getSessionMessageObservationId(appMessage),
6192
6290
  );
6193
6291
  }
6194
6292
 
@@ -6662,6 +6760,8 @@ export class AgentSession {
6662
6760
  this.#planReferencePath = "local://PLAN.md";
6663
6761
  this.#reconnectToAgent();
6664
6762
 
6763
+ this.#resetIrcRosterDeliveryState();
6764
+
6665
6765
  // Emit session_switch event with reason "new" to hooks
6666
6766
  if (this.#extensionRunner) {
6667
6767
  await this.#extensionRunner.emit({
@@ -6769,6 +6869,8 @@ export class AgentSession {
6769
6869
  this.#syncAgentSessionId();
6770
6870
  this.#rekeyHindsightMemoryForCurrentSessionId();
6771
6871
 
6872
+ this.#resetIrcRosterDeliveryState();
6873
+
6772
6874
  // Emit session_switch event with reason "fork" to hooks
6773
6875
  if (this.#extensionRunner) {
6774
6876
  await this.#extensionRunner.emit({
@@ -7708,6 +7810,8 @@ export class AgentSession {
7708
7810
  this.#resetInjectedContextSignatures();
7709
7811
  this.#syncTodoPhasesFromBranch();
7710
7812
 
7813
+ this.#resetIrcRosterDeliveryState();
7814
+
7711
7815
  return { document: handoffText, savedPath };
7712
7816
  } catch (error) {
7713
7817
  if (handoffSignal.aborted || (error instanceof Error && error.name === "AbortError")) {
@@ -7746,6 +7850,14 @@ export class AgentSession {
7746
7850
  * @param skipAbortedCheck If false, include aborted messages (for pre-prompt check). Default: true
7747
7851
  */
7748
7852
  async #checkCompaction(assistantMessage: AssistantMessage, skipAbortedCheck = true): Promise<void> {
7853
+ // Safety stops are terminal and must not trigger context maintenance.
7854
+ if (
7855
+ assistantMessage.errorKind === "provider_safety_stop" ||
7856
+ (assistantMessage.errorMessage !== undefined &&
7857
+ isLegacyProviderSafetyStopMessage(assistantMessage.errorMessage))
7858
+ ) {
7859
+ return;
7860
+ }
7749
7861
  // Skip if message was aborted (user cancelled) - unless skipAbortedCheck is false
7750
7862
  if (skipAbortedCheck && assistantMessage.stopReason === "aborted") return;
7751
7863
  const contextWindow = this.model?.contextWindow ?? 0;
@@ -9266,16 +9378,6 @@ export class AgentSession {
9266
9378
  );
9267
9379
  }
9268
9380
 
9269
- #isRefusalErrorMessage(errorMessage: string): boolean {
9270
- // Provider safety-refusal stops. Matches the engine-generated Anthropic
9271
- // labels from packages/ai ("Refusal (<category>): …", "Refusal (no
9272
- // details provided)", "Content flagged by safety filters") plus generic
9273
- // usage-policy refusal copy.
9274
- return /^refusal(\s*\(|:|$)|content flagged by safety filters|blocked under .{0,40}usage policy/i.test(
9275
- errorMessage,
9276
- );
9277
- }
9278
-
9279
9381
  #extractExplicitHttpStatusFromErrorMessage(errorMessage: string): number | undefined {
9280
9382
  // Parse only explicit HTTP/status wording. Do not treat generic
9281
9383
  // `error: 400` as an HTTP status because rate-limit copy can say
@@ -9287,14 +9389,15 @@ export class AgentSession {
9287
9389
  }
9288
9390
 
9289
9391
  /**
9290
- * Ordered retry classification: overflow (compaction) -> terminal (surface)
9291
- * -> usage_limit (rotation) -> first_event_timeout (bounded retry) ->
9292
- * transient (retry) -> unknown (retry).
9392
+ * Ordered retry classification: typed safety stop (surface) -> legacy safety stop
9393
+ * (surface) -> overflow (compaction) -> terminal (surface) -> usage_limit
9394
+ * (rotation) -> first_event_timeout (bounded retry) -> transient (retry) ->
9395
+ * unknown (retry).
9293
9396
  */
9294
9397
  #classifyErrorForRetry(message: AssistantMessage): RetryErrorClassification {
9295
- if (message.stopReason !== "error" || !message.errorMessage) return "none";
9296
- const contextWindow = this.model?.contextWindow ?? 0;
9297
- if (isContextOverflow(message, contextWindow)) return "overflow";
9398
+ if (message.stopReason !== "error") return "none";
9399
+ if (message.errorKind === "provider_safety_stop") return "terminal";
9400
+ if (!message.errorMessage) return "none";
9298
9401
  const err = message.errorMessage;
9299
9402
  // Provider safety refusals (e.g. Anthropic stop_reason "refusal" /
9300
9403
  // "sensitive") are deterministic for the submitted context: replaying
@@ -9302,7 +9405,9 @@ export class AgentSession {
9302
9405
  // auto-retry loop can never succeed and only re-bills the full context
9303
9406
  // on every attempt (#1655). Surface immediately instead of joining the
9304
9407
  // unbounded "unknown" retry class.
9305
- if (this.#isRefusalErrorMessage(err)) return "terminal";
9408
+ if (isLegacyProviderSafetyStopMessage(err)) return "terminal";
9409
+ const contextWindow = this.model?.contextWindow ?? 0;
9410
+ if (isContextOverflow(message, contextWindow)) return "overflow";
9306
9411
  if (isLocalModelEndpoint(this.model) && this.#isLocalProviderAvailabilityErrorMessage(err)) {
9307
9412
  return "local_unavailable";
9308
9413
  }
@@ -10254,17 +10359,19 @@ export class AgentSession {
10254
10359
  }): Promise<{ replyText: string | null }> {
10255
10360
  const awaitReply = args.awaitReply !== false;
10256
10361
  const incomingTimestamp = Date.now();
10362
+ const incomingObservationId = crypto.randomUUID();
10257
10363
  const incomingRecord: CustomMessage = {
10258
10364
  role: "custom",
10259
10365
  customType: "irc:incoming",
10260
10366
  content: `[IRC \`${args.from}\` → you]\n\n${args.message}`,
10261
10367
  display: true,
10262
- details: { from: args.from, message: args.message },
10368
+ details: { observationId: incomingObservationId, from: args.from, message: args.message },
10263
10369
  attribution: "agent",
10264
10370
  timestamp: incomingTimestamp,
10265
10371
  };
10266
10372
  void this.#emitSessionEvent({ type: "irc_message", message: incomingRecord });
10267
10373
  this.#forwardIrcRelayToMain({
10374
+ observationId: incomingObservationId,
10268
10375
  from: args.from,
10269
10376
  to: this.#agentId ?? "?",
10270
10377
  body: args.message,
@@ -10286,17 +10393,19 @@ export class AgentSession {
10286
10393
  signal: args.signal,
10287
10394
  });
10288
10395
 
10396
+ const replyObservationId = crypto.randomUUID();
10289
10397
  const replyRecord: CustomMessage = {
10290
10398
  role: "custom",
10291
10399
  customType: "irc:autoreply",
10292
10400
  content: `[IRC you → \`${args.from}\` (auto)]\n\n${replyText}`,
10293
10401
  display: true,
10294
- details: { to: args.from, reply: replyText },
10402
+ details: { observationId: replyObservationId, to: args.from, reply: replyText },
10295
10403
  attribution: "agent",
10296
10404
  timestamp: Date.now(),
10297
10405
  };
10298
10406
  void this.#emitSessionEvent({ type: "irc_message", message: replyRecord });
10299
10407
  this.#forwardIrcRelayToMain({
10408
+ observationId: replyObservationId,
10300
10409
  from: this.#agentId ?? "?",
10301
10410
  to: args.from,
10302
10411
  body: replyText,
@@ -10315,6 +10424,7 @@ export class AgentSession {
10315
10424
  * it is NOT injected into the main agent's persisted history.
10316
10425
  */
10317
10426
  #forwardIrcRelayToMain(args: {
10427
+ observationId: string;
10318
10428
  from: string;
10319
10429
  to: string;
10320
10430
  body: string;
@@ -10334,7 +10444,13 @@ export class AgentSession {
10334
10444
  customType: "irc:relay",
10335
10445
  content: `[IRC \`${args.from}\` ${arrow} \`${args.to}\`]\n\n${args.body}`,
10336
10446
  display: true,
10337
- details: { from: args.from, to: args.to, body: args.body, kind: args.kind },
10447
+ details: {
10448
+ observationId: args.observationId,
10449
+ from: args.from,
10450
+ to: args.to,
10451
+ body: args.body,
10452
+ kind: args.kind,
10453
+ },
10338
10454
  attribution: "agent",
10339
10455
  timestamp: args.timestamp,
10340
10456
  };
@@ -10406,6 +10522,61 @@ export class AgentSession {
10406
10522
  void this.#emitSessionEvent({ type: "subagent_steer_message", message: record });
10407
10523
  }
10408
10524
 
10525
+ #buildIrcRosterCandidate(): { signature: string; message: CustomMessage } | null {
10526
+ const peers = (this.#agentRegistry?.listVisibleTo(this.#agentId ?? "") ?? [])
10527
+ .map(peer => ({ id: peer.id, label: peer.rosterLabel || peer.displayName }))
10528
+ .sort((left, right) => left.id.localeCompare(right.id));
10529
+ const signature = JSON.stringify(peers);
10530
+ if (peers.length === 0 && this.#lastDeliveredIrcRosterSignature === null) return null;
10531
+ return {
10532
+ signature,
10533
+ message: {
10534
+ role: "custom",
10535
+ customType: "irc-peer-roster",
10536
+ content: prompt.render(ircPeerRosterTemplate, {
10537
+ roster: peers.map(peer => `${peer.id} (${peer.label})`).join(", "),
10538
+ }),
10539
+ display: false,
10540
+ attribution: "agent",
10541
+ timestamp: Date.now(),
10542
+ },
10543
+ };
10544
+ }
10545
+
10546
+ #claimIrcRosterCandidate(): { token: symbol; epoch: number; message: CustomMessage } | null {
10547
+ if (this.#ircRosterClaim) return null;
10548
+ const candidate = this.#buildIrcRosterCandidate();
10549
+ if (!candidate || candidate.signature === this.#lastDeliveredIrcRosterSignature) return null;
10550
+ const token = Symbol("irc-roster");
10551
+ const epoch = this.#ircRosterEpoch;
10552
+ this.#ircRosterClaim = { token, signature: candidate.signature, epoch };
10553
+ return { token, epoch, message: candidate.message };
10554
+ }
10555
+
10556
+ #isCurrentIrcRosterClaim(token: symbol, epoch: number): boolean {
10557
+ return this.#ircRosterEpoch === epoch && this.#ircRosterClaim?.token === token;
10558
+ }
10559
+
10560
+ #commitIrcRosterClaim(token: symbol, epoch: number): void {
10561
+ const claim = this.#ircRosterClaim;
10562
+ if (this.#ircRosterEpoch !== epoch || claim?.token !== token) {
10563
+ this.#releaseIrcRosterClaim(token, epoch);
10564
+ return;
10565
+ }
10566
+ this.#lastDeliveredIrcRosterSignature = claim.signature;
10567
+ this.#ircRosterClaim = null;
10568
+ }
10569
+
10570
+ #releaseIrcRosterClaim(token: symbol, epoch: number): void {
10571
+ if (this.#isCurrentIrcRosterClaim(token, epoch)) this.#ircRosterClaim = null;
10572
+ }
10573
+
10574
+ #resetIrcRosterDeliveryState(): void {
10575
+ this.#ircRosterEpoch += 1;
10576
+ this.#lastDeliveredIrcRosterSignature = null;
10577
+ this.#ircRosterClaim = null;
10578
+ }
10579
+
10409
10580
  /**
10410
10581
  * Run a single ephemeral side-channel turn against this session's current
10411
10582
  * model + system prompt + history. No tools are used; the side request
@@ -10422,61 +10593,84 @@ export class AgentSession {
10422
10593
  onTextDelta?: (delta: string) => void;
10423
10594
  signal?: AbortSignal;
10424
10595
  }): Promise<{ replyText: string; assistantMessage: AssistantMessage }> {
10425
- const model = this.model;
10426
- if (!model) {
10427
- throw new Error("No active model on session");
10428
- }
10429
- const apiKey = await this.#modelRegistry.getApiKey(model, this.sessionId);
10430
- if (!apiKey) {
10431
- throw new Error(`No API key for ${model.provider}/${model.id}`);
10432
- }
10596
+ const rosterClaim = this.#claimIrcRosterCandidate();
10597
+ try {
10598
+ const model = this.model;
10599
+ if (!model) {
10600
+ throw new Error("No active model on session");
10601
+ }
10602
+ const apiKey = await this.#modelRegistry.getApiKey(model, this.sessionId);
10603
+ if (!apiKey) {
10604
+ throw new Error(`No API key for ${model.provider}/${model.id}`);
10605
+ }
10606
+
10607
+ const rosterMessage =
10608
+ rosterClaim && this.#isCurrentIrcRosterClaim(rosterClaim.token, rosterClaim.epoch)
10609
+ ? rosterClaim.message
10610
+ : undefined;
10611
+ if (rosterClaim && !rosterMessage) {
10612
+ this.#releaseIrcRosterClaim(rosterClaim.token, rosterClaim.epoch);
10613
+ }
10614
+ let snapshot = this.#buildEphemeralSnapshot(args.promptText, rosterMessage ? [rosterMessage] : undefined);
10615
+ let llmMessages = await this.convertMessagesToLlm(snapshot, args.signal);
10616
+ if (rosterMessage && !this.#isCurrentIrcRosterClaim(rosterClaim!.token, rosterClaim!.epoch)) {
10617
+ this.#releaseIrcRosterClaim(rosterClaim!.token, rosterClaim!.epoch);
10618
+ // Conversion is asynchronous, so rebuild without a claim invalidated while it awaited.
10619
+ snapshot = this.#buildEphemeralSnapshot(args.promptText);
10620
+ llmMessages = await this.convertMessagesToLlm(snapshot, args.signal);
10621
+ }
10622
+ const context: Context = {
10623
+ systemPrompt: this.systemPrompt,
10624
+ messages: llmMessages,
10625
+ // Empty tools array: with toolChoice="none" some encoders still serialize the
10626
+ // recipient's tool catalog and the model leaks raw call markup
10627
+ // (<function_calls>, DSML envelopes) into IRC replies. Stripping tools here
10628
+ // removes the surface entirely.
10629
+ tools: [],
10630
+ };
10631
+ const options = this.prepareSimpleStreamOptions(
10632
+ {
10633
+ apiKey,
10634
+ sessionId: this.sessionId,
10635
+ reasoning: toReasoningEffort(this.thinkingLevel),
10636
+ hideThinkingSummary: this.agent.hideThinkingSummary,
10637
+ serviceTier: this.serviceTier,
10638
+ signal: args.signal,
10639
+ toolChoice: "none",
10640
+ },
10641
+ model.provider,
10642
+ );
10433
10643
 
10434
- const snapshot = this.#buildEphemeralSnapshot(args.promptText);
10435
- const llmMessages = await this.convertMessagesToLlm(snapshot, args.signal);
10436
- const context: Context = {
10437
- systemPrompt: this.systemPrompt,
10438
- messages: llmMessages,
10439
- // Empty tools array: with toolChoice="none" some encoders still serialize the
10440
- // recipient's tool catalog and the model leaks raw call markup
10441
- // (<function_calls>, DSML envelopes) into IRC replies. Stripping tools here
10442
- // removes the surface entirely.
10443
- tools: [],
10444
- };
10445
- const options = this.prepareSimpleStreamOptions(
10446
- {
10447
- apiKey,
10448
- sessionId: this.sessionId,
10449
- reasoning: toReasoningEffort(this.thinkingLevel),
10450
- hideThinkingSummary: this.agent.hideThinkingSummary,
10451
- serviceTier: this.serviceTier,
10452
- signal: args.signal,
10453
- toolChoice: "none",
10454
- },
10455
- model.provider,
10456
- );
10644
+ let replyText = "";
10645
+ let assistantMessage: AssistantMessage | undefined;
10646
+ const stream = streamSimple(model, context, options);
10647
+ for await (const event of stream) {
10648
+ if (event.type === "text_delta") {
10649
+ replyText += event.delta;
10650
+ if (args.onTextDelta) args.onTextDelta(event.delta);
10651
+ continue;
10652
+ }
10653
+ if (event.type === "done") {
10654
+ assistantMessage = event.message;
10655
+ break;
10656
+ }
10657
+ if (event.type === "error") {
10658
+ throw new Error(event.error.errorMessage || "Ephemeral turn failed");
10659
+ }
10660
+ }
10457
10661
 
10458
- let replyText = "";
10459
- let assistantMessage: AssistantMessage | undefined;
10460
- const stream = streamSimple(model, context, options);
10461
- for await (const event of stream) {
10462
- if (event.type === "text_delta") {
10463
- replyText += event.delta;
10464
- if (args.onTextDelta) args.onTextDelta(event.delta);
10465
- continue;
10662
+ if (!assistantMessage) {
10663
+ throw new Error("Ephemeral turn ended without a final message");
10466
10664
  }
10467
- if (event.type === "done") {
10468
- assistantMessage = event.message;
10469
- break;
10665
+ if (rosterClaim) {
10666
+ this.#commitIrcRosterClaim(rosterClaim.token, rosterClaim.epoch);
10470
10667
  }
10471
- if (event.type === "error") {
10472
- throw new Error(event.error.errorMessage || "Ephemeral turn failed");
10668
+ return { replyText: dedupeIrcReply(replyText.trim()), assistantMessage };
10669
+ } finally {
10670
+ if (rosterClaim) {
10671
+ this.#releaseIrcRosterClaim(rosterClaim.token, rosterClaim.epoch);
10473
10672
  }
10474
10673
  }
10475
-
10476
- if (!assistantMessage) {
10477
- throw new Error("Ephemeral turn ended without a final message");
10478
- }
10479
- return { replyText: dedupeIrcReply(replyText.trim()), assistantMessage };
10480
10674
  }
10481
10675
 
10482
10676
  /**
@@ -10485,7 +10679,7 @@ export class AgentSession {
10485
10679
  * the partial response in context, then appends the prompt as a virtual
10486
10680
  * user message.
10487
10681
  */
10488
- #buildEphemeralSnapshot(promptText: string): AgentMessage[] {
10682
+ #buildEphemeralSnapshot(promptText: string, prependMessages?: AgentMessage[]): AgentMessage[] {
10489
10683
  const messages = [...this.messages];
10490
10684
  const streaming = this.agent.state.streamMessage;
10491
10685
  if (streaming && streaming.role === "assistant") {
@@ -10516,6 +10710,7 @@ export class AgentSession {
10516
10710
  }
10517
10711
  }
10518
10712
  }
10713
+ if (prependMessages) messages.push(...prependMessages);
10519
10714
  messages.push({
10520
10715
  role: "user",
10521
10716
  content: [{ type: "text", text: promptText }],
@@ -10727,7 +10922,9 @@ export class AgentSession {
10727
10922
 
10728
10923
  if (switchingToDifferentSession) {
10729
10924
  this.#resetHindsightConversationTrackingIfHindsight();
10925
+ this.#resetIrcRosterDeliveryState();
10730
10926
  }
10927
+
10731
10928
  this.#reconnectToAgent();
10732
10929
  return true;
10733
10930
  } catch (error) {
@@ -10850,6 +11047,8 @@ export class AgentSession {
10850
11047
  this.#closeCodexProviderSessionsForHistoryRewrite();
10851
11048
  }
10852
11049
 
11050
+ this.#resetIrcRosterDeliveryState();
11051
+
10853
11052
  return { selectedText, cancelled: false };
10854
11053
  }
10855
11054
 
@@ -11085,6 +11284,52 @@ export class AgentSession {
11085
11284
  let totalCacheWrite = 0;
11086
11285
  let totalCost = 0;
11087
11286
  let totalPremiumRequests = 0;
11287
+ const totalCostBreakdown: Usage["cost"] = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 };
11288
+ let hasCompleteCostBreakdown = true;
11289
+ const addCostBreakdown = (cost: unknown): void => {
11290
+ if (!cost || typeof cost !== "object") {
11291
+ hasCompleteCostBreakdown = false;
11292
+ return;
11293
+ }
11294
+ const completeCost = cost as Usage["cost"];
11295
+ if (
11296
+ !Number.isFinite(completeCost.input) ||
11297
+ completeCost.input < 0 ||
11298
+ !Number.isFinite(completeCost.output) ||
11299
+ completeCost.output < 0 ||
11300
+ !Number.isFinite(completeCost.cacheRead) ||
11301
+ completeCost.cacheRead < 0 ||
11302
+ !Number.isFinite(completeCost.cacheWrite) ||
11303
+ completeCost.cacheWrite < 0 ||
11304
+ !Number.isFinite(completeCost.total) ||
11305
+ completeCost.total < 0
11306
+ ) {
11307
+ hasCompleteCostBreakdown = false;
11308
+ return;
11309
+ }
11310
+ if (!hasCompleteCostBreakdown) return;
11311
+ totalCostBreakdown.input += completeCost.input;
11312
+ totalCostBreakdown.output += completeCost.output;
11313
+ totalCostBreakdown.cacheRead += completeCost.cacheRead;
11314
+ totalCostBreakdown.cacheWrite += completeCost.cacheWrite;
11315
+ totalCostBreakdown.total += completeCost.total;
11316
+ if (
11317
+ !Number.isFinite(totalCostBreakdown.input) ||
11318
+ !Number.isFinite(totalCostBreakdown.output) ||
11319
+ !Number.isFinite(totalCostBreakdown.cacheRead) ||
11320
+ !Number.isFinite(totalCostBreakdown.cacheWrite) ||
11321
+ !Number.isFinite(totalCostBreakdown.total)
11322
+ ) {
11323
+ hasCompleteCostBreakdown = false;
11324
+ }
11325
+ };
11326
+ const hasCompleteTaskToolUsage = (details: unknown): boolean =>
11327
+ Boolean(
11328
+ details &&
11329
+ typeof details === "object" &&
11330
+ (details as Record<string, unknown>).usageCostBreakdownComplete === true,
11331
+ );
11332
+
11088
11333
  const getTaskToolUsage = (details: unknown): Usage | undefined => {
11089
11334
  if (!details || typeof details !== "object") return undefined;
11090
11335
  const record = details as Record<string, unknown>;
@@ -11108,6 +11353,7 @@ export class AgentSession {
11108
11353
  totalCacheWrite += assistantMsg.usage.cacheWrite;
11109
11354
  totalPremiumRequests += assistantMsg.usage.premiumRequests ?? 0;
11110
11355
  totalCost += assistantMsg.usage.cost.total;
11356
+ addCostBreakdown(assistantMsg.usage.cost);
11111
11357
  } else if (message.role === "toolResult") {
11112
11358
  toolResults += 1;
11113
11359
  if (message.toolName === "task") {
@@ -11119,6 +11365,11 @@ export class AgentSession {
11119
11365
  totalCacheWrite += usage.cacheWrite;
11120
11366
  totalPremiumRequests += usage.premiumRequests ?? 0;
11121
11367
  totalCost += usage.cost.total;
11368
+ if (hasCompleteTaskToolUsage(message.details)) {
11369
+ addCostBreakdown(usage.cost);
11370
+ } else {
11371
+ hasCompleteCostBreakdown = false;
11372
+ }
11122
11373
  }
11123
11374
  }
11124
11375
  }
@@ -11140,6 +11391,7 @@ export class AgentSession {
11140
11391
  total: totalInput + totalOutput + totalCacheRead + totalCacheWrite,
11141
11392
  },
11142
11393
  cost: totalCost,
11394
+ ...(hasCompleteCostBreakdown ? { costBreakdown: totalCostBreakdown } : {}),
11143
11395
  premiumRequests: totalPremiumRequests,
11144
11396
  };
11145
11397
  }
@@ -11224,11 +11476,30 @@ export class AgentSession {
11224
11476
  return count;
11225
11477
  }
11226
11478
 
11479
+ /**
11480
+ * Usage-anchor eligibility for context estimation. Mirrors the compaction
11481
+ * rule (see getAssistantUsage in compaction.ts): error/aborted turns carry
11482
+ * absent or partial usage, so they must not anchor an estimate. Anchor on
11483
+ * the last successful positive-usage assistant instead and let callers
11484
+ * estimate every later message (including error/aborted ones) as trailing
11485
+ * context.
11486
+ */
11487
+ #anchorableAssistantUsage(message: AgentMessage): Usage | undefined {
11488
+ if (message.role !== "assistant") return undefined;
11489
+ const assistant = message as AssistantMessage;
11490
+ if (assistant.stopReason === "aborted" || assistant.stopReason === "error") return undefined;
11491
+ const usage = assistant.usage;
11492
+ if (!usage || calculateContextTokens(usage) <= 0) return undefined;
11493
+ return usage;
11494
+ }
11495
+
11227
11496
  /**
11228
11497
  * Observed heuristic→actual token correction for the compaction keep window
11229
11498
  * (Finding 7). Compares the provider's real prompt tokens against the chars/4
11230
- * heuristic estimate of the same content (stable system prefix + history through
11231
- * the last usage-bearing assistant turn). Image-bearing content is bucketed out
11499
+ * heuristic estimate of the same content (stable system prefix + history
11500
+ * before the last usage-bearing assistant turn — that turn's own output is
11501
+ * the response, not part of the request's prompt, so it belongs on neither
11502
+ * side of the ratio). Image-bearing content is bucketed out
11232
11503
  * of BOTH sides using the identical fixed IMAGE_TOKEN_ESTIMATE so the 1200-token
11233
11504
  * image charge cannot skew the text ratio. Returns undefined when data is
11234
11505
  * insufficient, so prepareCompaction applies no correction (never the confounded
@@ -11239,9 +11510,9 @@ export class AgentSession {
11239
11510
  let lastUsageIndex = -1;
11240
11511
  let lastUsage: Usage | undefined;
11241
11512
  for (let i = messages.length - 1; i >= 0; i--) {
11242
- const msg = messages[i];
11243
- if (msg.role === "assistant" && (msg as AssistantMessage).usage) {
11244
- lastUsage = (msg as AssistantMessage).usage;
11513
+ const usage = this.#anchorableAssistantUsage(messages[i]);
11514
+ if (usage) {
11515
+ lastUsage = usage;
11245
11516
  lastUsageIndex = i;
11246
11517
  break;
11247
11518
  }
@@ -11253,7 +11524,7 @@ export class AgentSession {
11253
11524
  let heuristic = 0;
11254
11525
  for (const block of this.agent.state.systemPrompt) heuristic += estimateTextTokensHeuristic(block);
11255
11526
  let imageBlocks = 0;
11256
- for (let i = 0; i <= lastUsageIndex; i++) {
11527
+ for (let i = 0; i < lastUsageIndex; i++) {
11257
11528
  heuristic += this.#estimateMessageDisplayTokens(messages[i]);
11258
11529
  imageBlocks += this.#countImageBlocks(messages[i]);
11259
11530
  }
@@ -11278,18 +11549,16 @@ export class AgentSession {
11278
11549
  } {
11279
11550
  const messages = this.messages;
11280
11551
 
11281
- // Find last assistant message with usage
11552
+ // Find the last successful assistant message with positive usage.
11553
+ // Error/aborted turns are estimated as trailing context instead.
11282
11554
  let lastUsageIndex: number | null = null;
11283
11555
  let lastUsage: Usage | undefined;
11284
11556
  for (let i = messages.length - 1; i >= 0; i--) {
11285
- const msg = messages[i];
11286
- if (msg.role === "assistant") {
11287
- const assistantMsg = msg as AssistantMessage;
11288
- if (assistantMsg.usage) {
11289
- lastUsage = assistantMsg.usage;
11290
- lastUsageIndex = i;
11291
- break;
11292
- }
11557
+ const usage = this.#anchorableAssistantUsage(messages[i]);
11558
+ if (usage) {
11559
+ lastUsage = usage;
11560
+ lastUsageIndex = i;
11561
+ break;
11293
11562
  }
11294
11563
  }
11295
11564
 
@@ -11304,7 +11573,11 @@ export class AgentSession {
11304
11573
  };
11305
11574
  }
11306
11575
 
11307
- const usageTokens = calculatePromptTokens(lastUsage);
11576
+ // Anchor on total context tokens (input + cache + output), not prompt-only
11577
+ // tokens: the next request replays the anchor assistant's own output
11578
+ // (text/reasoning/tool calls), so dropping it undercounts the very tokens
11579
+ // a large-reasoning turn just added (Sol xhigh emits tens of thousands).
11580
+ const usageTokens = calculateContextTokens(lastUsage);
11308
11581
  let trailingTokens = 0;
11309
11582
  for (let i = lastUsageIndex + 1; i < messages.length; i++) {
11310
11583
  trailingTokens += estimateMessage(messages[i]);
@@ -11332,55 +11605,33 @@ export class AgentSession {
11332
11605
  }
11333
11606
 
11334
11607
  /**
11335
- * Conservative inflation applied to the native-free chars/4 estimate of the
11336
- * UNSENT context delta. chars/4 undercounts dense code/CJK, so we bias high
11337
- * to compact slightly early rather than overflow the model window before the
11338
- * next provider response re-anchors the exact count.
11608
+ * Conservative inflation applied to the native-free estimate of the UNSENT
11609
+ * context delta. The heuristic is script-aware (CJK counted ~1 token/char),
11610
+ * but dense non-CJK content (compact JSON, diffs, hashes) can still exceed
11611
+ * chars/4, so we bias high to compact slightly early rather than overflow
11612
+ * the model window before the next provider response re-anchors the count.
11339
11613
  */
11340
11614
  #compactionDeltaInflation = 1.2;
11341
- #compactionDeltaTokenCache = new WeakMap<AgentMessage, { len: number; tokens: number }>();
11342
-
11343
- /**
11344
- * Cheap content-size signal to invalidate the compaction-delta token cache on mutation. Recursively
11345
- * sums string lengths across the whole message (depth-bounded), so it covers every
11346
- * provider-visible shape (text/thinking/tool args, toolResult output, tool names, etc.)
11347
- * without allocating a serialized copy. A size-preserving in-place edit yields only a
11348
- * benign estimate drift.
11349
- */
11350
- #messageTokenSize(value: unknown, depth = 0): number {
11351
- if (depth > 6) return 0;
11352
- if (typeof value === "string") return value.length;
11353
- if (typeof value === "number" || typeof value === "boolean") return 8;
11354
- if (Array.isArray(value)) {
11355
- let size = 0;
11356
- for (const item of value) size += this.#messageTokenSize(item, depth + 1);
11357
- return size;
11358
- }
11359
- if (value && typeof value === "object") {
11360
- let size = 0;
11361
- for (const item of Object.values(value)) size += this.#messageTokenSize(item, depth + 1);
11362
- return size;
11363
- }
11364
- return 0;
11365
- }
11366
11615
 
11367
11616
  #estimateMessageCompactionDeltaTokens(message: AgentMessage): number {
11368
- // Provider usage anchors the already-sent context (see calculatePromptTokens); this
11369
- // estimates only the UNSENT delta with the native-free chars/4 heuristic, inflated by
11617
+ // Provider usage anchors the already-sent context (see calculateContextTokens); this
11618
+ // estimates only the UNSENT delta with the script-aware heuristic, inflated by
11370
11619
  // #compactionDeltaInflation so dense input cannot undercount us past the compaction
11371
- // threshold before the next provider response re-anchors the exact count. Cached per
11372
- // message object, invalidated by a cheap content-size signal; a rare size-preserving
11373
- // in-place edit yields only a benign estimate drift, never wrong output.
11374
- const len = this.#messageTokenSize(message);
11375
- const cached = this.#compactionDeltaTokenCache.get(message);
11376
- if (cached && cached.len === len) return cached.tokens;
11620
+ // threshold before the next provider response re-anchors the exact count.
11621
+ //
11622
+ // Deliberately uncached: this feeds the compaction-threshold decision, and a
11623
+ // stale estimate after an in-place mutation (e.g. a same-length ASCII→CJK
11624
+ // edit, which changes the script-aware estimate up to 4x) could hold the
11625
+ // session under the threshold while the real prompt overflows. Any cheap
11626
+ // invalidation signal short of recomputing the estimator's own converted
11627
+ // fragments provably admits stale reuse, and the call sites run once per
11628
+ // prompt over the few messages trailing the usage anchor, so correctness
11629
+ // wins over a microcache here.
11377
11630
  let heuristic = 0;
11378
11631
  for (const llmMessage of convertToLlm([message])) {
11379
11632
  heuristic += estimateMessageTokensHeuristic(llmMessage);
11380
11633
  }
11381
- const tokens = Math.ceil(heuristic * this.#compactionDeltaInflation);
11382
- this.#compactionDeltaTokenCache.set(message, { len, tokens });
11383
- return tokens;
11634
+ return Math.ceil(heuristic * this.#compactionDeltaInflation);
11384
11635
  }
11385
11636
 
11386
11637
  /**