@prometheus-ai/agent 0.5.4 → 0.5.8

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 (1145) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/cli.js +25110 -0
  3. package/dist/types/async/index.d.ts +0 -1
  4. package/dist/types/async/job-manager.d.ts +33 -0
  5. package/dist/types/autolearn/controller.d.ts +25 -0
  6. package/dist/types/autolearn/managed-skills.d.ts +45 -0
  7. package/dist/types/autoresearch/state.d.ts +1 -1
  8. package/dist/types/autoresearch/tools/init-experiment.d.ts +1 -1
  9. package/dist/types/autoresearch/tools/log-experiment.d.ts +1 -1
  10. package/dist/types/autoresearch/tools/run-experiment.d.ts +1 -1
  11. package/dist/types/autoresearch/tools/update-notes.d.ts +1 -1
  12. package/dist/types/autoresearch/types.d.ts +1 -1
  13. package/dist/types/capability/context-file.d.ts +0 -13
  14. package/dist/types/capability/mcp.d.ts +1 -0
  15. package/dist/types/capability/rule-buckets.d.ts +1 -1
  16. package/dist/types/capability/rule.d.ts +6 -1
  17. package/dist/types/capability/types.d.ts +0 -4
  18. package/dist/types/cli/args.d.ts +23 -3
  19. package/dist/types/cli/bench-cli.d.ts +78 -0
  20. package/dist/types/cli/claude-trace-cli.d.ts +7 -0
  21. package/dist/types/cli/dry-balance-cli.d.ts +16 -2
  22. package/dist/types/cli/gallery-cli.d.ts +43 -0
  23. package/dist/types/cli/gallery-fixtures/agentic.d.ts +2 -0
  24. package/dist/types/cli/gallery-fixtures/codeintel.d.ts +3 -0
  25. package/dist/types/cli/gallery-fixtures/edit.d.ts +3 -0
  26. package/dist/types/cli/gallery-fixtures/fs.d.ts +2 -0
  27. package/dist/types/cli/gallery-fixtures/index.d.ts +4 -0
  28. package/dist/types/cli/gallery-fixtures/interaction.d.ts +3 -0
  29. package/dist/types/cli/gallery-fixtures/memory.d.ts +2 -0
  30. package/dist/types/cli/gallery-fixtures/misc.d.ts +3 -0
  31. package/dist/types/cli/gallery-fixtures/search.d.ts +3 -0
  32. package/dist/types/cli/gallery-fixtures/shell.d.ts +3 -0
  33. package/dist/types/cli/gallery-fixtures/types.d.ts +55 -0
  34. package/dist/types/cli/gallery-fixtures/web.d.ts +2 -0
  35. package/dist/types/cli/gallery-screenshot.d.ts +35 -0
  36. package/dist/types/cli/grievances-cli.d.ts +1 -1
  37. package/dist/types/cli/list-models.d.ts +6 -14
  38. package/dist/types/cli/models-cli.d.ts +49 -0
  39. package/dist/types/cli/session-picker.d.ts +1 -1
  40. package/dist/types/cli/setup-cli.d.ts +1 -1
  41. package/dist/types/cli/setup-model-picker.d.ts +14 -0
  42. package/dist/types/cli/startup-cwd.d.ts +2 -0
  43. package/dist/types/cli/update-cli.d.ts +13 -40
  44. package/dist/types/cli/usage-cli.d.ts +81 -0
  45. package/dist/types/cli-commands.d.ts +12 -0
  46. package/dist/types/collab/crypto.d.ts +7 -0
  47. package/dist/types/collab/guest.d.ts +37 -0
  48. package/dist/types/collab/host.d.ts +29 -0
  49. package/dist/types/collab/protocol.d.ts +119 -0
  50. package/dist/types/collab/relay-client.d.ts +22 -0
  51. package/dist/types/commands/bench.d.ts +29 -0
  52. package/dist/types/commands/gallery.d.ts +47 -0
  53. package/dist/types/commands/install.d.ts +1 -1
  54. package/dist/types/commands/join.d.ts +12 -0
  55. package/dist/types/commands/launch.d.ts +8 -4
  56. package/dist/types/commands/models.d.ts +33 -0
  57. package/dist/types/commands/read.d.ts +1 -1
  58. package/dist/types/commands/say.d.ts +24 -0
  59. package/dist/types/commands/token.d.ts +25 -0
  60. package/dist/types/commands/usage.d.ts +34 -0
  61. package/dist/types/commit/agentic/tools/analyze-file.d.ts +1 -1
  62. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +1 -1
  63. package/dist/types/commit/agentic/tools/git-hunk.d.ts +1 -1
  64. package/dist/types/commit/agentic/tools/git-overview.d.ts +1 -1
  65. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +1 -1
  66. package/dist/types/commit/agentic/tools/propose-commit.d.ts +1 -1
  67. package/dist/types/commit/agentic/tools/recent-commits.d.ts +1 -1
  68. package/dist/types/commit/agentic/tools/schemas.d.ts +1 -1
  69. package/dist/types/commit/agentic/tools/split-commit.d.ts +1 -1
  70. package/dist/types/commit/analysis/conventional.d.ts +2 -2
  71. package/dist/types/commit/analysis/summary.d.ts +2 -2
  72. package/dist/types/commit/changelog/generate.d.ts +3 -3
  73. package/dist/types/commit/changelog/index.d.ts +2 -2
  74. package/dist/types/commit/map-reduce/index.d.ts +3 -3
  75. package/dist/types/commit/map-reduce/map-phase.d.ts +2 -2
  76. package/dist/types/commit/map-reduce/reduce-phase.d.ts +2 -2
  77. package/dist/types/commit/model-selection.d.ts +10 -4
  78. package/dist/types/commit/shared-llm.d.ts +1 -1
  79. package/dist/types/config/api-key-resolver.d.ts +43 -0
  80. package/dist/types/config/append-only-context-mode.d.ts +2 -1
  81. package/dist/types/config/keybindings.d.ts +12 -7
  82. package/dist/types/config/model-discovery.d.ts +57 -0
  83. package/dist/types/config/model-equivalence.d.ts +1 -1
  84. package/dist/types/config/model-registry.d.ts +86 -222
  85. package/dist/types/config/model-resolver.d.ts +43 -12
  86. package/dist/types/config/model-roles.d.ts +29 -0
  87. package/dist/types/config/models-config-schema.d.ts +536 -43
  88. package/dist/types/config/models-config.d.ts +391 -0
  89. package/dist/types/config/settings-schema.d.ts +1202 -324
  90. package/dist/types/config/settings.d.ts +15 -3
  91. package/dist/types/dap/config.d.ts +14 -1
  92. package/dist/types/dap/types.d.ts +10 -0
  93. package/dist/types/debug/log-viewer.d.ts +1 -1
  94. package/dist/types/debug/raw-sse.d.ts +1 -1
  95. package/dist/types/debug/report-bundle.d.ts +3 -0
  96. package/dist/types/debug/terminal-info.d.ts +0 -1
  97. package/dist/types/discovery/at-imports.d.ts +15 -0
  98. package/dist/types/discovery/prometheus-extension-roots.d.ts +7 -7
  99. package/dist/types/edit/diff.d.ts +3 -2
  100. package/dist/types/edit/file-snapshot-store.d.ts +18 -0
  101. package/dist/types/edit/hashline/noop-loop-guard.d.ts +72 -0
  102. package/dist/types/edit/hashline/params.d.ts +1 -1
  103. package/dist/types/edit/index.d.ts +0 -1
  104. package/dist/types/edit/modes/apply-patch.d.ts +1 -1
  105. package/dist/types/edit/modes/patch.d.ts +1 -1
  106. package/dist/types/edit/modes/replace.d.ts +1 -1
  107. package/dist/types/edit/renderer.d.ts +1 -0
  108. package/dist/types/eval/__tests__/completion-bridge.test.d.ts +1 -0
  109. package/dist/types/eval/__tests__/helpers-local-roots.test.d.ts +1 -0
  110. package/dist/types/eval/__tests__/js-context-manager.test.d.ts +1 -0
  111. package/dist/types/eval/backend.d.ts +7 -2
  112. package/dist/types/eval/bridge-timeout.d.ts +1 -1
  113. package/dist/types/eval/completion-bridge.d.ts +25 -0
  114. package/dist/types/eval/idle-timeout.d.ts +1 -5
  115. package/dist/types/eval/js/context-manager.d.ts +1 -0
  116. package/dist/types/eval/js/executor.d.ts +2 -0
  117. package/dist/types/eval/js/index.d.ts +1 -1
  118. package/dist/types/eval/js/shared/helpers.d.ts +7 -1
  119. package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -6
  120. package/dist/types/eval/js/shared/runtime.d.ts +6 -1
  121. package/dist/types/eval/js/worker-protocol.d.ts +6 -0
  122. package/dist/types/eval/py/__tests__/prelude.test.d.ts +1 -0
  123. package/dist/types/eval/py/executor.d.ts +12 -0
  124. package/dist/types/eval/py/index.d.ts +1 -1
  125. package/dist/types/eval/py/kernel.d.ts +6 -1
  126. package/dist/types/eval/py/runtime.d.ts +9 -0
  127. package/dist/types/exa/index.d.ts +1 -19
  128. package/dist/types/exa/mcp-client.d.ts +10 -3
  129. package/dist/types/exa/types.d.ts +0 -83
  130. package/dist/types/exec/bash-executor.d.ts +7 -0
  131. package/dist/types/export/custom-share.d.ts +1 -2
  132. package/dist/types/export/html/index.d.ts +39 -0
  133. package/dist/types/export/html/template-js.d.ts +2 -0
  134. package/dist/types/export/share.d.ts +61 -0
  135. package/dist/types/export/ttsr.d.ts +14 -0
  136. package/dist/types/extensibility/custom-commands/types.d.ts +9 -4
  137. package/dist/types/extensibility/custom-tools/loader.d.ts +30 -4
  138. package/dist/types/extensibility/custom-tools/types.d.ts +16 -8
  139. package/dist/types/extensibility/extensions/index.d.ts +1 -1
  140. package/dist/types/extensibility/extensions/loader.d.ts +20 -1
  141. package/dist/types/extensibility/extensions/model-api.d.ts +17 -0
  142. package/dist/types/extensibility/extensions/runner.d.ts +5 -2
  143. package/dist/types/extensibility/extensions/types.d.ts +72 -11
  144. package/dist/types/extensibility/hooks/index.d.ts +2 -1
  145. package/dist/types/extensibility/hooks/loader.d.ts +1 -1
  146. package/dist/types/extensibility/hooks/types.d.ts +11 -5
  147. package/dist/types/extensibility/{legacy-pi-ai-shim.d.ts → legacy-package-ai-shim.d.ts} +2 -2
  148. package/dist/types/extensibility/plugins/{legacy-pi-compat.d.ts → legacy-package-compat.d.ts} +20 -3
  149. package/dist/types/extensibility/plugins/loader.d.ts +11 -0
  150. package/dist/types/extensibility/plugins/marketplace-auto-update.d.ts +8 -0
  151. package/dist/types/extensibility/plugins/types.d.ts +2 -2
  152. package/dist/types/extensibility/shared-events.d.ts +3 -3
  153. package/dist/types/extensibility/skills.d.ts +10 -0
  154. package/dist/types/extensibility/slash-commands.d.ts +1 -11
  155. package/dist/types/goals/guided-setup.d.ts +18 -0
  156. package/dist/types/goals/state.d.ts +1 -1
  157. package/dist/types/goals/tools/goal-tool.d.ts +1 -1
  158. package/dist/types/hindsight/mental-models.d.ts +17 -8
  159. package/dist/types/hindsight/transcript.d.ts +1 -1
  160. package/dist/types/index.d.ts +5 -0
  161. package/dist/types/internal-urls/artifact-protocol.d.ts +2 -2
  162. package/dist/types/internal-urls/history-protocol.d.ts +14 -0
  163. package/dist/types/internal-urls/index.d.ts +1 -0
  164. package/dist/types/internal-urls/local-protocol.d.ts +14 -2
  165. package/dist/types/internal-urls/types.d.ts +1 -1
  166. package/dist/types/irc/bus.d.ts +79 -0
  167. package/dist/types/lib/xai-http.d.ts +1 -1
  168. package/dist/types/lsp/client.d.ts +10 -0
  169. package/dist/types/lsp/config.d.ts +2 -2
  170. package/dist/types/lsp/edits.d.ts +9 -0
  171. package/dist/types/lsp/format-options.d.ts +32 -0
  172. package/dist/types/lsp/index.d.ts +2 -7
  173. package/dist/types/lsp/types.d.ts +13 -1
  174. package/dist/types/lsp/utils.d.ts +6 -2
  175. package/dist/types/main.d.ts +23 -8
  176. package/dist/types/mcp/json-rpc.d.ts +5 -0
  177. package/dist/types/mcp/manager.d.ts +8 -0
  178. package/dist/types/mcp/oauth-discovery.d.ts +6 -1
  179. package/dist/types/mcp/oauth-flow.d.ts +13 -3
  180. package/dist/types/mcp/startup-events.d.ts +11 -0
  181. package/dist/types/mcp/tool-bridge.d.ts +2 -0
  182. package/dist/types/mcp/transports/stdio.d.ts +13 -0
  183. package/dist/types/mcp/types.d.ts +2 -0
  184. package/dist/types/memories/index.d.ts +7 -15
  185. package/dist/types/memories/storage.d.ts +0 -10
  186. package/dist/types/memory-backend/index.d.ts +3 -1
  187. package/dist/types/memory-backend/local-backend.d.ts +4 -3
  188. package/dist/types/memory-backend/resolve.d.ts +2 -2
  189. package/dist/types/memory-backend/runtime.d.ts +4 -0
  190. package/dist/types/memory-backend/types.d.ts +67 -2
  191. package/dist/types/mnemopi/config.d.ts +31 -1
  192. package/dist/types/mnemopi/state.d.ts +40 -2
  193. package/dist/types/modes/acp/acp-agent.d.ts +1 -2
  194. package/dist/types/modes/components/agent-dashboard.d.ts +17 -1
  195. package/dist/types/modes/components/agent-hub.d.ts +82 -0
  196. package/dist/types/modes/components/assistant-message.d.ts +5 -12
  197. package/dist/types/modes/components/bash-execution.d.ts +1 -1
  198. package/dist/types/modes/components/chat-block.d.ts +64 -0
  199. package/dist/types/modes/components/collab-prompt-message.d.ts +10 -0
  200. package/dist/types/modes/components/compaction-summary-message.d.ts +25 -5
  201. package/dist/types/modes/components/copy-selector.d.ts +1 -1
  202. package/dist/types/modes/components/custom-editor.d.ts +49 -2
  203. package/dist/types/modes/components/custom-editor.test.d.ts +1 -0
  204. package/dist/types/modes/components/dynamic-border.d.ts +1 -1
  205. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +1 -1
  206. package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
  207. package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
  208. package/dist/types/modes/components/footer.d.ts +1 -1
  209. package/dist/types/modes/components/hook-editor.d.ts +5 -0
  210. package/dist/types/modes/components/hook-input.d.ts +4 -0
  211. package/dist/types/modes/components/hook-selector.d.ts +5 -7
  212. package/dist/types/modes/components/index.d.ts +1 -0
  213. package/dist/types/modes/components/late-diagnostics-message.d.ts +20 -0
  214. package/dist/types/modes/components/logout-account-selector.d.ts +8 -0
  215. package/dist/types/modes/components/mcp-add-wizard.d.ts +2 -1
  216. package/dist/types/modes/components/model-selector.d.ts +1 -1
  217. package/dist/types/modes/components/oauth-selector.d.ts +10 -1
  218. package/dist/types/modes/components/overlay-box.d.ts +17 -0
  219. package/dist/types/modes/components/plan-review-overlay.d.ts +61 -0
  220. package/dist/types/modes/components/plan-toc.d.ts +41 -0
  221. package/dist/types/modes/components/read-tool-group.d.ts +8 -0
  222. package/dist/types/modes/components/reset-usage-selector.d.ts +12 -0
  223. package/dist/types/modes/components/segment-track.d.ts +11 -6
  224. package/dist/types/modes/components/session-selector.d.ts +18 -9
  225. package/dist/types/modes/components/settings-defs.d.ts +9 -2
  226. package/dist/types/modes/components/settings-selector.d.ts +17 -4
  227. package/dist/types/modes/components/snapcompact-shape-preview.d.ts +31 -0
  228. package/dist/types/modes/components/status-line/component.d.ts +61 -0
  229. package/dist/types/modes/components/status-line/index.d.ts +1 -0
  230. package/dist/types/modes/components/status-line/types.d.ts +47 -3
  231. package/dist/types/modes/components/tiny-title-download-progress.d.ts +1 -1
  232. package/dist/types/modes/components/tool-execution.d.ts +49 -2
  233. package/dist/types/modes/components/transcript-container.d.ts +76 -26
  234. package/dist/types/modes/components/tree-selector.d.ts +2 -2
  235. package/dist/types/modes/components/ttsr-notification.d.ts +5 -1
  236. package/dist/types/modes/components/usage-row.d.ts +3 -0
  237. package/dist/types/modes/components/user-message-selector.d.ts +1 -1
  238. package/dist/types/modes/components/user-message.d.ts +2 -1
  239. package/dist/types/modes/components/visual-truncate.d.ts +1 -1
  240. package/dist/types/modes/components/welcome.d.ts +12 -2
  241. package/dist/types/modes/controllers/command-controller.d.ts +3 -2
  242. package/dist/types/modes/controllers/event-controller.d.ts +7 -1
  243. package/dist/types/modes/controllers/extension-ui-controller.d.ts +0 -1
  244. package/dist/types/modes/controllers/input-controller.d.ts +25 -3
  245. package/dist/types/modes/controllers/mcp-command-controller.d.ts +8 -0
  246. package/dist/types/modes/controllers/selector-controller.d.ts +5 -2
  247. package/dist/types/modes/controllers/session-focus-controller.d.ts +31 -0
  248. package/dist/types/modes/controllers/streaming-reveal.d.ts +22 -0
  249. package/dist/types/modes/controllers/tan-command-controller.d.ts +6 -0
  250. package/dist/types/modes/controllers/tool-args-reveal.d.ts +43 -0
  251. package/dist/types/modes/gradient-highlight.d.ts +9 -4
  252. package/dist/types/modes/image-references.d.ts +14 -3
  253. package/dist/types/modes/index.d.ts +8 -7
  254. package/dist/types/modes/interactive-mode.d.ts +92 -16
  255. package/dist/types/modes/magic-keywords.d.ts +14 -2
  256. package/dist/types/modes/markdown-prose.d.ts +1 -1
  257. package/dist/types/modes/oauth-manual-input.d.ts +7 -0
  258. package/dist/types/modes/rpc/rpc-client.d.ts +48 -2
  259. package/dist/types/modes/rpc/rpc-mode.d.ts +67 -2
  260. package/dist/types/modes/rpc/rpc-subagents.d.ts +24 -0
  261. package/dist/types/modes/rpc/rpc-types.d.ts +113 -1
  262. package/dist/types/modes/runtime-init.d.ts +4 -0
  263. package/dist/types/modes/session-observer-registry.d.ts +9 -0
  264. package/dist/types/modes/setup-version.d.ts +11 -0
  265. package/dist/types/modes/setup-wizard/index.d.ts +7 -2
  266. package/dist/types/modes/setup-wizard/lazy.d.ts +2 -0
  267. package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +4 -1
  268. package/dist/types/modes/setup-wizard/scenes/types.d.ts +11 -2
  269. package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +6 -2
  270. package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +1 -1
  271. package/dist/types/modes/theme/theme.d.ts +42 -7
  272. package/dist/types/modes/types.d.ts +62 -13
  273. package/dist/types/modes/utils/context-usage.d.ts +6 -1
  274. package/dist/types/modes/utils/copy-targets.d.ts +21 -1
  275. package/dist/types/modes/utils/ui-helpers.d.ts +4 -4
  276. package/dist/types/modes/workflow.d.ts +3 -3
  277. package/dist/types/plan-mode/approved-plan.d.ts +27 -8
  278. package/dist/types/plan-mode/plan-protection.d.ts +4 -4
  279. package/dist/types/registry/agent-lifecycle.d.ts +51 -0
  280. package/dist/types/registry/agent-registry.d.ts +33 -5
  281. package/dist/types/sdk.d.ts +46 -4
  282. package/dist/types/secrets/index.d.ts +1 -1
  283. package/dist/types/secrets/obfuscator.d.ts +9 -3
  284. package/dist/types/session/agent-session.d.ts +136 -66
  285. package/dist/types/session/agent-storage.d.ts +2 -1
  286. package/dist/types/session/auth-broker-config.d.ts +4 -0
  287. package/dist/types/session/auth-storage.d.ts +1 -1
  288. package/dist/types/session/codex-auto-reset.d.ts +111 -0
  289. package/dist/types/session/indexed-session-storage.d.ts +3 -3
  290. package/dist/types/session/messages.d.ts +26 -15
  291. package/dist/types/session/session-context.d.ts +39 -0
  292. package/dist/types/session/session-entries.d.ts +159 -0
  293. package/dist/types/session/session-history-format.d.ts +12 -0
  294. package/dist/types/session/session-listing.d.ts +69 -0
  295. package/dist/types/session/session-loader.d.ts +16 -0
  296. package/dist/types/session/session-manager.d.ts +107 -440
  297. package/dist/types/session/session-migrations.d.ts +12 -0
  298. package/dist/types/session/session-paths.d.ts +25 -0
  299. package/dist/types/session/session-persistence.d.ts +8 -0
  300. package/dist/types/session/session-storage.d.ts +11 -7
  301. package/dist/types/session/snapcompact-inline.d.ts +145 -0
  302. package/dist/types/session/snapcompact-savings-journal.d.ts +46 -0
  303. package/dist/types/session/streaming-output.d.ts +46 -0
  304. package/dist/types/session/tool-choice-queue.d.ts +6 -6
  305. package/dist/types/session/yield-queue.d.ts +10 -1
  306. package/dist/types/slash-commands/acp-builtins.d.ts +16 -0
  307. package/dist/types/slash-commands/available-commands.d.ts +34 -0
  308. package/dist/types/slash-commands/builtin-registry.d.ts +10 -0
  309. package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +14 -0
  310. package/dist/types/slash-commands/helpers/logout.d.ts +15 -0
  311. package/dist/types/slash-commands/helpers/reset-usage.d.ts +27 -0
  312. package/dist/types/slash-commands/helpers/stats-dashboard.d.ts +13 -0
  313. package/dist/types/slash-commands/types.d.ts +5 -9
  314. package/dist/types/ssh/connection-manager.d.ts +8 -0
  315. package/dist/types/stt/asr-client.d.ts +90 -0
  316. package/dist/types/stt/asr-protocol.d.ts +97 -0
  317. package/dist/types/stt/asr-worker.d.ts +2 -0
  318. package/dist/types/stt/downloader.d.ts +38 -0
  319. package/dist/types/stt/endpointer.d.ts +59 -0
  320. package/dist/types/stt/index.d.ts +5 -1
  321. package/dist/types/stt/models.d.ts +120 -0
  322. package/dist/types/stt/recorder.d.ts +17 -0
  323. package/dist/types/stt/stt-controller.d.ts +6 -0
  324. package/dist/types/stt/transcriber.d.ts +5 -7
  325. package/dist/types/stt/wav.d.ts +29 -0
  326. package/dist/types/system-prompt.d.ts +9 -1
  327. package/dist/types/task/commands.d.ts +1 -1
  328. package/dist/types/task/discovery.d.ts +1 -2
  329. package/dist/types/task/executor.d.ts +61 -2
  330. package/dist/types/task/index.d.ts +37 -6
  331. package/dist/types/task/output-manager.d.ts +0 -7
  332. package/dist/types/task/parallel.d.ts +2 -2
  333. package/dist/types/task/prometheus-command.d.ts +2 -2
  334. package/dist/types/task/render.d.ts +20 -7
  335. package/dist/types/task/repair-args.d.ts +8 -7
  336. package/dist/types/task/types.d.ts +109 -52
  337. package/dist/types/task/worktree.d.ts +2 -0
  338. package/dist/types/telemetry-export.d.ts +2 -2
  339. package/dist/types/thinking.d.ts +4 -0
  340. package/dist/types/tiny/models.d.ts +1 -1
  341. package/dist/types/tiny/title-client.d.ts +12 -1
  342. package/dist/types/tiny/title-protocol.d.ts +1 -0
  343. package/dist/types/tools/archive-reader.d.ts +5 -0
  344. package/dist/types/tools/ask.d.ts +6 -1
  345. package/dist/types/tools/ast-edit.d.ts +4 -1
  346. package/dist/types/tools/ast-grep.d.ts +4 -1
  347. package/dist/types/tools/bash.d.ts +5 -2
  348. package/dist/types/tools/browser/attach.d.ts +4 -4
  349. package/dist/types/tools/browser/cmux/cmux-tab.d.ts +202 -0
  350. package/dist/types/tools/browser/cmux/rpc.d.ts +70 -0
  351. package/dist/types/tools/browser/cmux/socket-client.d.ts +19 -0
  352. package/dist/types/tools/browser/registry.d.ts +17 -3
  353. package/dist/types/tools/browser/render.d.ts +2 -0
  354. package/dist/types/tools/browser/tab-protocol.d.ts +2 -0
  355. package/dist/types/tools/browser/tab-supervisor.d.ts +16 -4
  356. package/dist/types/tools/browser/tab-worker.d.ts +18 -1
  357. package/dist/types/tools/browser.d.ts +3 -1
  358. package/dist/types/tools/checkpoint.d.ts +1 -1
  359. package/dist/types/tools/conflict-detect.d.ts +16 -0
  360. package/dist/types/tools/debug.d.ts +1 -1
  361. package/dist/types/tools/eval-render.d.ts +1 -8
  362. package/dist/types/tools/eval.d.ts +9 -1
  363. package/dist/types/tools/fetch.d.ts +17 -8
  364. package/dist/types/tools/find.d.ts +1 -8
  365. package/dist/types/tools/gh-cache-invalidation.d.ts +6 -0
  366. package/dist/types/tools/gh.d.ts +4 -1
  367. package/dist/types/tools/github-cache.d.ts +19 -0
  368. package/dist/types/tools/grouped-file-output.d.ts +46 -12
  369. package/dist/types/tools/image-gen.d.ts +1 -1
  370. package/dist/types/tools/index.d.ts +89 -8
  371. package/dist/types/tools/inspect-image.d.ts +1 -1
  372. package/dist/types/tools/irc.d.ts +79 -39
  373. package/dist/types/tools/job.d.ts +8 -2
  374. package/dist/types/tools/learn.d.ts +51 -0
  375. package/dist/types/tools/manage-skill.d.ts +40 -0
  376. package/dist/types/tools/memory-edit.d.ts +2 -2
  377. package/dist/types/tools/memory-recall.d.ts +1 -1
  378. package/dist/types/tools/memory-reflect.d.ts +1 -1
  379. package/dist/types/tools/memory-render.d.ts +4 -1
  380. package/dist/types/tools/memory-retain.d.ts +1 -1
  381. package/dist/types/tools/path-utils.d.ts +17 -5
  382. package/dist/types/tools/plan-mode-guard.d.ts +18 -9
  383. package/dist/types/tools/read.d.ts +3 -2
  384. package/dist/types/tools/render-mermaid.d.ts +1 -1
  385. package/dist/types/tools/render-utils.d.ts +47 -27
  386. package/dist/types/tools/renderers.d.ts +10 -2
  387. package/dist/types/tools/report-tool-issue.d.ts +6 -1
  388. package/dist/types/tools/resolve.d.ts +1 -1
  389. package/dist/types/tools/review.d.ts +1 -1
  390. package/dist/types/tools/search-tool-bm25.d.ts +1 -1
  391. package/dist/types/tools/search.d.ts +7 -3
  392. package/dist/types/tools/sqlite-reader.d.ts +4 -0
  393. package/dist/types/tools/ssh.d.ts +2 -1
  394. package/dist/types/tools/todo.d.ts +7 -15
  395. package/dist/types/tools/tool-result.d.ts +2 -0
  396. package/dist/types/tools/tool-timeouts.d.ts +1 -1
  397. package/dist/types/tools/tts.d.ts +26 -1
  398. package/dist/types/tools/write.d.ts +6 -3
  399. package/dist/types/tools/yield.d.ts +8 -0
  400. package/dist/types/tts/downloader.d.ts +20 -0
  401. package/dist/types/tts/index.d.ts +8 -0
  402. package/dist/types/tts/models.d.ts +82 -0
  403. package/dist/types/tts/player.d.ts +32 -0
  404. package/dist/types/tts/runtime.d.ts +6 -0
  405. package/dist/types/tts/streaming-player.d.ts +41 -0
  406. package/dist/types/tts/tts-client.d.ts +93 -0
  407. package/dist/types/tts/tts-protocol.d.ts +95 -0
  408. package/dist/types/tts/tts-worker.d.ts +2 -0
  409. package/dist/types/tts/vocalizer.d.ts +41 -0
  410. package/dist/types/tts/wav.d.ts +8 -0
  411. package/dist/types/tui/code-cell.d.ts +0 -2
  412. package/dist/types/tui/hyperlink.d.ts +13 -7
  413. package/dist/types/tui/output-block.d.ts +16 -22
  414. package/dist/types/tui/status-line.d.ts +3 -0
  415. package/dist/types/utils/block-context.d.ts +35 -0
  416. package/dist/types/utils/changelog.d.ts +8 -0
  417. package/dist/types/utils/clipboard.d.ts +4 -3
  418. package/dist/types/utils/enhanced-paste.d.ts +20 -0
  419. package/dist/types/utils/file-mentions.d.ts +7 -0
  420. package/dist/types/utils/git.d.ts +22 -3
  421. package/dist/types/utils/image-loading.d.ts +30 -1
  422. package/dist/types/utils/session-color.d.ts +15 -3
  423. package/dist/types/utils/thinking-display.d.ts +17 -0
  424. package/dist/types/utils/title-generator.d.ts +3 -2
  425. package/dist/types/utils/tool-choice.d.ts +8 -0
  426. package/dist/types/utils/tools-manager.d.ts +2 -1
  427. package/dist/types/web/kagi.d.ts +2 -2
  428. package/dist/types/web/parallel.d.ts +3 -0
  429. package/dist/types/web/scrapers/github.d.ts +22 -0
  430. package/dist/types/web/scrapers/readthedocs.d.ts +3 -0
  431. package/dist/types/web/scrapers/types.d.ts +12 -0
  432. package/dist/types/web/search/index.d.ts +1 -1
  433. package/dist/types/web/search/providers/anthropic.d.ts +2 -1
  434. package/dist/types/web/search/providers/base.d.ts +2 -1
  435. package/dist/types/web/search/providers/brave.d.ts +2 -1
  436. package/dist/types/web/search/providers/codex.d.ts +2 -1
  437. package/dist/types/web/search/providers/exa.d.ts +2 -1
  438. package/dist/types/web/search/providers/gemini.d.ts +10 -6
  439. package/dist/types/web/search/providers/jina.d.ts +7 -2
  440. package/dist/types/web/search/providers/kagi.d.ts +7 -2
  441. package/dist/types/web/search/providers/kimi.d.ts +7 -2
  442. package/dist/types/web/search/providers/parallel.d.ts +2 -1
  443. package/dist/types/web/search/providers/perplexity.d.ts +10 -2
  444. package/dist/types/web/search/providers/searxng.d.ts +2 -1
  445. package/dist/types/web/search/providers/synthetic.d.ts +7 -3
  446. package/dist/types/web/search/providers/tavily.d.ts +2 -1
  447. package/dist/types/web/search/providers/zai.d.ts +2 -1
  448. package/dist/types/web/search/types.d.ts +1 -1
  449. package/examples/extensions/api-demo.ts +2 -2
  450. package/package.json +41 -15
  451. package/scripts/bench-guard.ts +71 -0
  452. package/scripts/build-binary.ts +24 -25
  453. package/scripts/bundle-dist.ts +97 -0
  454. package/scripts/generate-share-viewer.ts +34 -0
  455. package/scripts/prometheus +42 -0
  456. package/scripts/prometheus.ts +20 -0
  457. package/src/async/index.ts +0 -1
  458. package/src/async/job-manager.ts +106 -3
  459. package/src/auto-thinking/classifier.ts +2 -1
  460. package/src/autolearn/controller.ts +139 -0
  461. package/src/autolearn/managed-skills.ts +257 -0
  462. package/src/autoresearch/dashboard.ts +1 -1
  463. package/src/autoresearch/prompt-setup.md +6 -6
  464. package/src/autoresearch/prompt.md +6 -6
  465. package/src/autoresearch/state.ts +1 -1
  466. package/src/autoresearch/storage.ts +2 -1
  467. package/src/autoresearch/tools/init-experiment.ts +1 -1
  468. package/src/autoresearch/tools/log-experiment.ts +1 -1
  469. package/src/autoresearch/tools/run-experiment.ts +1 -1
  470. package/src/autoresearch/tools/update-notes.ts +1 -1
  471. package/src/autoresearch/types.ts +1 -1
  472. package/src/capability/context-file.ts +0 -14
  473. package/src/capability/fs.ts +10 -0
  474. package/src/capability/index.ts +1 -6
  475. package/src/capability/mcp.ts +1 -0
  476. package/src/capability/rule-buckets.ts +4 -2
  477. package/src/capability/rule.ts +10 -1
  478. package/src/capability/types.ts +0 -4
  479. package/src/cli/args.ts +66 -13
  480. package/src/cli/auth-broker-cli.ts +6 -7
  481. package/src/cli/auth-gateway-cli.ts +8 -9
  482. package/src/cli/bench-cli.ts +437 -0
  483. package/src/cli/claude-trace-cli.ts +28 -50
  484. package/src/cli/completion-gen.ts +28 -28
  485. package/src/cli/dry-balance-cli.ts +56 -23
  486. package/src/cli/gallery-cli.ts +231 -0
  487. package/src/cli/gallery-fixtures/agentic.ts +407 -0
  488. package/src/cli/gallery-fixtures/codeintel.ts +187 -0
  489. package/src/cli/gallery-fixtures/edit.ts +194 -0
  490. package/src/cli/gallery-fixtures/fs.ts +220 -0
  491. package/src/cli/gallery-fixtures/index.ts +40 -0
  492. package/src/cli/gallery-fixtures/interaction.ts +49 -0
  493. package/src/cli/gallery-fixtures/memory.ts +81 -0
  494. package/src/cli/gallery-fixtures/misc.ts +250 -0
  495. package/src/cli/gallery-fixtures/search.ts +213 -0
  496. package/src/cli/gallery-fixtures/shell.ts +167 -0
  497. package/src/cli/gallery-fixtures/types.ts +57 -0
  498. package/src/cli/gallery-fixtures/web.ts +158 -0
  499. package/src/cli/gallery-screenshot.ts +279 -0
  500. package/src/cli/grievances-cli.ts +1 -1
  501. package/src/cli/list-models.ts +16 -174
  502. package/src/cli/models-cli.ts +429 -0
  503. package/src/cli/session-picker.ts +2 -1
  504. package/src/cli/setup-cli.ts +148 -47
  505. package/src/cli/setup-model-picker.ts +43 -0
  506. package/src/cli/startup-cwd.ts +68 -0
  507. package/src/cli/update-cli.ts +144 -272
  508. package/src/cli/usage-cli.ts +774 -0
  509. package/src/cli-commands.ts +36 -0
  510. package/src/cli.ts +141 -32
  511. package/src/collab/crypto.ts +63 -0
  512. package/src/collab/guest.ts +451 -0
  513. package/src/collab/host.ts +565 -0
  514. package/src/collab/protocol.ts +241 -0
  515. package/src/collab/relay-client.ts +216 -0
  516. package/src/commands/bench.ts +42 -0
  517. package/src/commands/complete.ts +1 -1
  518. package/src/commands/gallery.ts +52 -0
  519. package/src/commands/install.ts +1 -1
  520. package/src/commands/join.ts +39 -0
  521. package/src/commands/launch.ts +8 -4
  522. package/src/commands/models.ts +61 -0
  523. package/src/commands/read.ts +6 -3
  524. package/src/commands/say.ts +102 -0
  525. package/src/commands/setup.ts +1 -1
  526. package/src/commands/token.ts +89 -0
  527. package/src/commands/usage.ts +43 -0
  528. package/src/commit/agentic/agent.ts +2 -1
  529. package/src/commit/agentic/tools/analyze-file.ts +42 -20
  530. package/src/commit/agentic/tools/git-file-diff.ts +1 -1
  531. package/src/commit/agentic/tools/git-hunk.ts +1 -1
  532. package/src/commit/agentic/tools/git-overview.ts +1 -1
  533. package/src/commit/agentic/tools/propose-changelog.ts +1 -1
  534. package/src/commit/agentic/tools/propose-commit.ts +1 -1
  535. package/src/commit/agentic/tools/recent-commits.ts +1 -1
  536. package/src/commit/agentic/tools/schemas.ts +1 -1
  537. package/src/commit/agentic/tools/split-commit.ts +9 -2
  538. package/src/commit/analysis/conventional.ts +2 -2
  539. package/src/commit/analysis/summary.ts +3 -3
  540. package/src/commit/changelog/generate.ts +3 -3
  541. package/src/commit/changelog/index.ts +2 -2
  542. package/src/commit/map-reduce/index.ts +3 -3
  543. package/src/commit/map-reduce/map-phase.ts +2 -2
  544. package/src/commit/map-reduce/reduce-phase.ts +2 -2
  545. package/src/commit/model-selection.ts +35 -12
  546. package/src/commit/pipeline.ts +4 -4
  547. package/src/commit/shared-llm.ts +1 -1
  548. package/src/config/api-key-resolver.ts +67 -0
  549. package/src/config/append-only-context-mode.ts +6 -12
  550. package/src/config/keybindings.ts +9 -4
  551. package/src/config/mcp-schema.json +4 -0
  552. package/src/config/model-discovery.ts +574 -0
  553. package/src/config/model-equivalence.ts +5 -4
  554. package/src/config/model-registry.ts +659 -1093
  555. package/src/config/model-resolver.ts +374 -174
  556. package/src/config/model-roles.ts +88 -0
  557. package/src/config/models-config-schema.ts +61 -9
  558. package/src/config/models-config.ts +130 -0
  559. package/src/config/settings-schema.ts +1441 -387
  560. package/src/config/settings.ts +261 -69
  561. package/src/dap/client.ts +138 -53
  562. package/src/dap/config.ts +41 -2
  563. package/src/dap/defaults.json +1 -0
  564. package/src/dap/session.ts +263 -161
  565. package/src/dap/types.ts +10 -0
  566. package/src/debug/index.ts +50 -60
  567. package/src/debug/log-viewer.ts +1 -1
  568. package/src/debug/protocol-probe.ts +1 -1
  569. package/src/debug/raw-sse-buffer.ts +7 -4
  570. package/src/debug/raw-sse.ts +1 -1
  571. package/src/debug/report-bundle.ts +9 -0
  572. package/src/debug/terminal-info.ts +0 -3
  573. package/src/discovery/agents-md.ts +25 -21
  574. package/src/discovery/agents.ts +9 -15
  575. package/src/discovery/at-imports.ts +273 -0
  576. package/src/discovery/builtin-rules/index.ts +4 -0
  577. package/src/discovery/builtin-rules/ts-no-test-timers.md +55 -0
  578. package/src/discovery/builtin-rules/ts-redundant-clear-guard.md +75 -0
  579. package/src/discovery/builtin.ts +45 -23
  580. package/src/discovery/claude-plugins.ts +44 -5
  581. package/src/discovery/helpers.ts +50 -9
  582. package/src/discovery/prometheus-extension-roots.ts +10 -10
  583. package/src/discovery/prometheus-plugins.ts +10 -10
  584. package/src/edit/diff.ts +191 -4
  585. package/src/edit/file-snapshot-store.ts +34 -1
  586. package/src/edit/hashline/block-resolver.ts +20 -1
  587. package/src/edit/hashline/diff.ts +123 -2
  588. package/src/edit/hashline/execute.ts +60 -4
  589. package/src/edit/hashline/filesystem.ts +2 -1
  590. package/src/edit/hashline/noop-loop-guard.ts +99 -0
  591. package/src/edit/hashline/params.ts +1 -1
  592. package/src/edit/index.ts +47 -18
  593. package/src/edit/modes/apply-patch.ts +1 -1
  594. package/src/edit/modes/patch.ts +59 -3
  595. package/src/edit/modes/replace.ts +58 -24
  596. package/src/edit/notebook.ts +22 -2
  597. package/src/edit/renderer.ts +315 -151
  598. package/src/eval/__tests__/agent-bridge.test.ts +105 -39
  599. package/src/eval/__tests__/budget-bridge.test.ts +1 -1
  600. package/src/eval/__tests__/completion-bridge.test.ts +412 -0
  601. package/src/eval/__tests__/helpers-local-roots.test.ts +58 -0
  602. package/src/eval/__tests__/js-context-manager.test.ts +241 -0
  603. package/src/eval/__tests__/llm-bridge.test.ts +6 -4
  604. package/src/eval/__tests__/shared-executors.test.ts +34 -92
  605. package/src/eval/agent-bridge.ts +39 -23
  606. package/src/eval/backend.ts +15 -2
  607. package/src/eval/bridge-timeout.ts +1 -1
  608. package/src/eval/completion-bridge.ts +203 -0
  609. package/src/eval/idle-timeout.ts +3 -10
  610. package/src/eval/js/context-manager.ts +108 -31
  611. package/src/eval/js/executor.ts +9 -2
  612. package/src/eval/js/index.ts +7 -3
  613. package/src/eval/js/shared/helpers.ts +59 -13
  614. package/src/eval/js/shared/local-module-loader.ts +2 -2
  615. package/src/eval/js/shared/prelude.txt +167 -30
  616. package/src/eval/js/shared/rewrite-imports.ts +58 -34
  617. package/src/eval/js/shared/runtime.ts +24 -16
  618. package/src/eval/js/tool-bridge.ts +4 -0
  619. package/src/eval/js/worker-core.ts +1 -0
  620. package/src/eval/js/worker-entry.ts +6 -0
  621. package/src/eval/js/worker-protocol.ts +6 -0
  622. package/src/eval/llm-bridge.ts +2 -1
  623. package/src/eval/py/__tests__/prelude.test.ts +19 -0
  624. package/src/eval/py/executor.ts +70 -26
  625. package/src/eval/py/index.ts +13 -4
  626. package/src/eval/py/kernel.ts +48 -9
  627. package/src/eval/py/prelude.py +73 -24
  628. package/src/eval/py/runner.py +133 -28
  629. package/src/eval/py/runtime.ts +38 -1
  630. package/src/exa/index.ts +1 -26
  631. package/src/exa/mcp-client.ts +10 -10
  632. package/src/exa/types.ts +0 -97
  633. package/src/exec/bash-executor.ts +104 -7
  634. package/src/export/custom-share.ts +1 -1
  635. package/src/export/html/index.ts +119 -17
  636. package/src/export/html/share-loader.js +102 -0
  637. package/src/export/html/template-js.ts +6 -0
  638. package/src/export/html/template.css +745 -459
  639. package/src/export/html/template.css.d.ts +2 -0
  640. package/src/export/html/template.html +6 -3
  641. package/src/export/html/template.js +277 -891
  642. package/src/export/html/tool-views.generated.d.ts +2 -0
  643. package/src/export/html/tool-views.generated.js +38 -0
  644. package/src/export/share.ts +269 -0
  645. package/src/export/ttsr.ts +122 -1
  646. package/src/extensibility/custom-commands/loader.ts +7 -4
  647. package/src/extensibility/custom-commands/types.ts +9 -4
  648. package/src/extensibility/custom-tools/loader.ts +51 -23
  649. package/src/extensibility/custom-tools/types.ts +16 -8
  650. package/src/extensibility/extensions/get-commands-handler.ts +2 -1
  651. package/src/extensibility/extensions/index.ts +1 -0
  652. package/src/extensibility/extensions/loader.ts +70 -20
  653. package/src/extensibility/extensions/model-api.ts +41 -0
  654. package/src/extensibility/extensions/runner.ts +12 -2
  655. package/src/extensibility/extensions/types.ts +83 -11
  656. package/src/extensibility/extensions/wrapper.ts +41 -5
  657. package/src/extensibility/hooks/index.ts +2 -1
  658. package/src/extensibility/hooks/loader.ts +6 -3
  659. package/src/extensibility/hooks/types.ts +11 -5
  660. package/src/extensibility/{legacy-pi-ai-shim.ts → legacy-package-ai-shim.ts} +2 -2
  661. package/src/extensibility/plugins/doctor.ts +1 -2
  662. package/src/extensibility/plugins/installer.ts +2 -2
  663. package/src/extensibility/plugins/{legacy-pi-compat.ts → legacy-package-compat.ts} +165 -77
  664. package/src/extensibility/plugins/loader.ts +34 -23
  665. package/src/extensibility/plugins/manager.ts +226 -95
  666. package/src/extensibility/plugins/marketplace-auto-update.ts +49 -0
  667. package/src/extensibility/plugins/types.ts +3 -3
  668. package/src/extensibility/shared-events.ts +3 -3
  669. package/src/extensibility/skills.ts +113 -9
  670. package/src/extensibility/slash-commands.ts +1 -97
  671. package/src/goals/guided-setup.ts +133 -0
  672. package/src/goals/state.ts +1 -1
  673. package/src/goals/tools/goal-tool.ts +38 -28
  674. package/src/hindsight/bank.ts +17 -2
  675. package/src/hindsight/client.ts +27 -2
  676. package/src/hindsight/mental-models.ts +59 -12
  677. package/src/hindsight/state.ts +12 -3
  678. package/src/hindsight/transcript.ts +1 -1
  679. package/src/index.ts +5 -0
  680. package/src/internal-urls/artifact-protocol.ts +11 -2
  681. package/src/internal-urls/docs-index.generated.ts +9 -7
  682. package/src/internal-urls/history-protocol.ts +113 -0
  683. package/src/internal-urls/index.ts +1 -0
  684. package/src/internal-urls/issue-pr-protocol.ts +22 -9
  685. package/src/internal-urls/local-protocol.ts +42 -7
  686. package/src/internal-urls/memory-protocol.ts +4 -31
  687. package/src/internal-urls/router.ts +3 -1
  688. package/src/internal-urls/types.ts +1 -1
  689. package/src/irc/bus.ts +303 -0
  690. package/src/lib/xai-http.ts +3 -3
  691. package/src/lsp/client.ts +245 -104
  692. package/src/lsp/clients/biome-client.ts +101 -39
  693. package/src/lsp/clients/lsp-linter-client.ts +2 -10
  694. package/src/lsp/config.ts +15 -5
  695. package/src/lsp/defaults.json +6 -0
  696. package/src/lsp/edits.ts +143 -95
  697. package/src/lsp/format-options.ts +119 -0
  698. package/src/lsp/index.ts +233 -93
  699. package/src/lsp/render.ts +11 -35
  700. package/src/lsp/types.ts +13 -1
  701. package/src/lsp/utils.ts +31 -12
  702. package/src/main.ts +396 -216
  703. package/src/mcp/config-writer.ts +7 -3
  704. package/src/mcp/json-rpc.ts +35 -5
  705. package/src/mcp/manager.ts +31 -16
  706. package/src/mcp/oauth-discovery.ts +34 -4
  707. package/src/mcp/oauth-flow.ts +61 -8
  708. package/src/mcp/render.ts +7 -1
  709. package/src/mcp/startup-events.ts +21 -0
  710. package/src/mcp/tool-bridge.ts +2 -0
  711. package/src/mcp/transports/stdio.ts +224 -4
  712. package/src/mcp/types.ts +2 -0
  713. package/src/memories/index.ts +174 -1128
  714. package/src/memories/storage.ts +2 -41
  715. package/src/memory-backend/index.ts +14 -1
  716. package/src/memory-backend/local-backend.ts +18 -3
  717. package/src/memory-backend/off-backend.ts +9 -0
  718. package/src/memory-backend/resolve.ts +4 -6
  719. package/src/memory-backend/runtime.ts +66 -0
  720. package/src/memory-backend/types.ts +82 -2
  721. package/src/mnemopi/backend.ts +220 -28
  722. package/src/mnemopi/config.ts +138 -33
  723. package/src/mnemopi/state.ts +91 -11
  724. package/src/modes/acp/acp-agent.ts +149 -142
  725. package/src/modes/acp/acp-event-mapper.ts +5 -1
  726. package/src/modes/components/agent-dashboard.ts +17 -11
  727. package/src/modes/components/agent-hub.ts +1346 -0
  728. package/src/modes/components/assistant-message.ts +190 -80
  729. package/src/modes/components/bash-execution.ts +1 -1
  730. package/src/modes/components/btw-panel.ts +5 -1
  731. package/src/modes/components/chat-block.ts +111 -0
  732. package/src/modes/components/collab-prompt-message.ts +30 -0
  733. package/src/modes/components/compaction-summary-message.ts +168 -33
  734. package/src/modes/components/copy-selector.ts +2 -45
  735. package/src/modes/components/custom-editor.test.ts +96 -0
  736. package/src/modes/components/custom-editor.ts +405 -118
  737. package/src/modes/components/custom-message.ts +1 -3
  738. package/src/modes/components/diff.ts +13 -2
  739. package/src/modes/components/dynamic-border.ts +12 -3
  740. package/src/modes/components/execution-shared.ts +1 -2
  741. package/src/modes/components/extensions/extension-dashboard.ts +8 -5
  742. package/src/modes/components/extensions/extension-list.ts +1 -1
  743. package/src/modes/components/extensions/inspector-panel.ts +7 -3
  744. package/src/modes/components/extensions/state-manager.ts +36 -41
  745. package/src/modes/components/footer.ts +4 -2
  746. package/src/modes/components/history-search.ts +1 -1
  747. package/src/modes/components/hook-editor.ts +8 -0
  748. package/src/modes/components/hook-input.ts +8 -0
  749. package/src/modes/components/hook-message.ts +1 -3
  750. package/src/modes/components/hook-selector.ts +6 -7
  751. package/src/modes/components/index.ts +1 -0
  752. package/src/modes/components/late-diagnostics-message.ts +60 -0
  753. package/src/modes/components/login-dialog.ts +1 -1
  754. package/src/modes/components/logout-account-selector.ts +130 -0
  755. package/src/modes/components/mcp-add-wizard.ts +14 -1
  756. package/src/modes/components/model-selector.ts +177 -75
  757. package/src/modes/components/oauth-selector.ts +102 -16
  758. package/src/modes/components/overlay-box.ts +108 -0
  759. package/src/modes/components/plan-review-overlay.ts +845 -0
  760. package/src/modes/components/plan-toc.ts +138 -0
  761. package/src/modes/components/plugin-settings.ts +22 -5
  762. package/src/modes/components/read-tool-group.ts +442 -39
  763. package/src/modes/components/reset-usage-selector.ts +161 -0
  764. package/src/modes/components/segment-track.ts +44 -7
  765. package/src/modes/components/session-selector.ts +97 -37
  766. package/src/modes/components/settings-defs.ts +28 -6
  767. package/src/modes/components/settings-selector.ts +541 -93
  768. package/src/modes/components/skill-message.ts +0 -1
  769. package/src/modes/components/snapcompact-shape-preview-doc.md +11 -0
  770. package/src/modes/components/snapcompact-shape-preview.ts +193 -0
  771. package/src/modes/components/{status-line.ts → status-line/component.ts} +205 -168
  772. package/src/modes/components/status-line/index.ts +1 -0
  773. package/src/modes/components/status-line/presets.ts +3 -3
  774. package/src/modes/components/status-line/segments.ts +26 -7
  775. package/src/modes/components/status-line/types.ts +40 -9
  776. package/src/modes/components/tiny-title-download-progress.ts +1 -1
  777. package/src/modes/components/tips.txt +7 -3
  778. package/src/modes/components/todo-reminder.ts +0 -2
  779. package/src/modes/components/tool-execution.ts +236 -103
  780. package/src/modes/components/transcript-container.ts +724 -99
  781. package/src/modes/components/tree-selector.ts +19 -4
  782. package/src/modes/components/ttsr-notification.ts +72 -30
  783. package/src/modes/components/usage-row.ts +18 -0
  784. package/src/modes/components/user-message-selector.ts +1 -1
  785. package/src/modes/components/user-message.ts +28 -12
  786. package/src/modes/components/visual-truncate.ts +1 -1
  787. package/src/modes/components/welcome.ts +80 -22
  788. package/src/modes/controllers/command-controller-shared.ts +7 -6
  789. package/src/modes/controllers/command-controller.ts +210 -180
  790. package/src/modes/controllers/event-controller.ts +352 -142
  791. package/src/modes/controllers/extension-ui-controller.ts +167 -208
  792. package/src/modes/controllers/input-controller.ts +778 -162
  793. package/src/modes/controllers/mcp-command-controller.ts +232 -80
  794. package/src/modes/controllers/selector-controller.ts +284 -145
  795. package/src/modes/controllers/session-focus-controller.ts +112 -0
  796. package/src/modes/controllers/ssh-command-controller.ts +2 -2
  797. package/src/modes/controllers/streaming-reveal.ts +295 -0
  798. package/src/modes/controllers/tan-command-controller.ts +173 -0
  799. package/src/modes/controllers/tool-args-reveal.ts +174 -0
  800. package/src/modes/gradient-highlight.ts +21 -9
  801. package/src/modes/image-references.ts +33 -7
  802. package/src/modes/index.ts +8 -25
  803. package/src/modes/interactive-mode.ts +840 -186
  804. package/src/modes/magic-keywords.ts +28 -6
  805. package/src/modes/markdown-prose.ts +1 -1
  806. package/src/modes/oauth-manual-input.ts +30 -3
  807. package/src/modes/rpc/rpc-client.ts +186 -3
  808. package/src/modes/rpc/rpc-mode.ts +318 -24
  809. package/src/modes/rpc/rpc-subagents.ts +265 -0
  810. package/src/modes/rpc/rpc-types.ts +111 -2
  811. package/src/modes/runtime-init.ts +28 -3
  812. package/src/modes/session-observer-registry.ts +72 -3
  813. package/src/modes/setup-version.ts +11 -0
  814. package/src/modes/setup-wizard/index.ts +16 -4
  815. package/src/modes/setup-wizard/lazy.ts +16 -0
  816. package/src/modes/setup-wizard/scenes/glyph.ts +25 -7
  817. package/src/modes/setup-wizard/scenes/providers.ts +45 -12
  818. package/src/modes/setup-wizard/scenes/sign-in.ts +14 -13
  819. package/src/modes/setup-wizard/scenes/splash.ts +1 -1
  820. package/src/modes/setup-wizard/scenes/theme.ts +29 -2
  821. package/src/modes/setup-wizard/scenes/types.ts +11 -2
  822. package/src/modes/setup-wizard/scenes/web-search.ts +26 -9
  823. package/src/modes/setup-wizard/wizard-overlay.ts +40 -3
  824. package/src/modes/shared.ts +2 -0
  825. package/src/modes/theme/defaults/dark-poimandres.json +1 -1
  826. package/src/modes/theme/defaults/light-poimandres.json +1 -1
  827. package/src/modes/theme/shimmer.ts +20 -9
  828. package/src/modes/theme/theme-schema.json +1 -1
  829. package/src/modes/theme/theme.ts +342 -82
  830. package/src/modes/types.ts +60 -18
  831. package/src/modes/utils/context-usage.ts +88 -8
  832. package/src/modes/utils/copy-targets.ts +133 -27
  833. package/src/modes/utils/hotkeys-markdown.ts +3 -2
  834. package/src/modes/utils/ui-helpers.ts +191 -110
  835. package/src/modes/workflow.ts +10 -10
  836. package/src/plan-mode/approved-plan.ts +66 -43
  837. package/src/plan-mode/plan-protection.ts +4 -4
  838. package/src/priority.json +5 -1
  839. package/src/prompts/agents/designer.md +1 -1
  840. package/src/prompts/agents/explore.md +3 -3
  841. package/src/prompts/agents/librarian.md +2 -3
  842. package/src/prompts/agents/oracle.md +2 -2
  843. package/src/prompts/agents/plan.md +6 -6
  844. package/src/prompts/agents/reviewer.md +1 -1
  845. package/src/prompts/agents/task.md +6 -5
  846. package/src/prompts/bench.md +12 -0
  847. package/src/prompts/ci-green-request.md +5 -7
  848. package/src/prompts/goals/goal-budget-limit.md +2 -2
  849. package/src/prompts/goals/goal-continuation.md +4 -4
  850. package/src/prompts/goals/goal-mode-active.md +1 -1
  851. package/src/prompts/goals/guided-goal-interview.md +8 -0
  852. package/src/prompts/goals/guided-goal-system.md +12 -0
  853. package/src/prompts/memories/consolidation.md +2 -7
  854. package/src/prompts/memories/consolidation_system.md +4 -0
  855. package/src/prompts/memories/identity_review.md +2 -2
  856. package/src/prompts/memories/read-path.md +11 -10
  857. package/src/prompts/memories/stage_one_system.md +2 -2
  858. package/src/prompts/review-custom-request.md +1 -1
  859. package/src/prompts/system/agent-creation-architect.md +2 -2
  860. package/src/prompts/system/auto-continue.md +1 -1
  861. package/src/prompts/system/autolearn-guidance-learn.md +1 -0
  862. package/src/prompts/system/autolearn-guidance.md +7 -0
  863. package/src/prompts/system/autolearn-nudge.md +3 -0
  864. package/src/prompts/system/background-tan-dispatch.md +8 -0
  865. package/src/prompts/system/btw-user.md +2 -2
  866. package/src/prompts/system/commit-message-system.md +13 -1
  867. package/src/prompts/system/custom-system-prompt.md +1 -1
  868. package/src/prompts/system/eager-task.md +7 -0
  869. package/src/prompts/system/eager-todo.md +11 -6
  870. package/src/prompts/system/empty-stop-retry.md +4 -6
  871. package/src/prompts/system/irc-autoreply.md +6 -0
  872. package/src/prompts/system/irc-incoming.md +3 -4
  873. package/src/prompts/system/manual-continue.md +7 -0
  874. package/src/prompts/system/omfg-user.md +3 -4
  875. package/src/prompts/system/orchestrate-notice.md +10 -10
  876. package/src/prompts/system/personalities/default.md +26 -0
  877. package/src/prompts/system/personalities/friendly.md +17 -0
  878. package/src/prompts/system/personalities/pragmatic.md +15 -0
  879. package/src/prompts/system/plan-mode-active.md +70 -77
  880. package/src/prompts/system/plan-mode-approved.md +1 -1
  881. package/src/prompts/system/plan-mode-subagent.md +4 -5
  882. package/src/prompts/system/plan-mode-tool-decision-reminder.md +1 -1
  883. package/src/prompts/system/project-prompt.md +2 -2
  884. package/src/prompts/system/snapcompact-context-frames-note.md +1 -0
  885. package/src/prompts/system/snapcompact-context-stub.md +1 -0
  886. package/src/prompts/system/snapcompact-system-frames-note.md +1 -0
  887. package/src/prompts/system/snapcompact-system-stub.md +1 -0
  888. package/src/prompts/system/snapcompact-toolresult-note.md +1 -0
  889. package/src/prompts/system/subagent-system-prompt.md +7 -8
  890. package/src/prompts/system/system-prompt.md +28 -57
  891. package/src/prompts/system/tiny-title-system.md +1 -1
  892. package/src/prompts/system/title-marker-instruction.md +1 -0
  893. package/src/prompts/system/title-system-marker.md +16 -0
  894. package/src/prompts/system/title-system.md +16 -3
  895. package/src/prompts/system/ttsr-tool-reminder.md +1 -1
  896. package/src/prompts/system/workflow-notice.md +4 -4
  897. package/src/prompts/tools/ast-edit.md +1 -1
  898. package/src/prompts/tools/ast-grep.md +2 -2
  899. package/src/prompts/tools/bash.md +16 -8
  900. package/src/prompts/tools/browser.md +33 -43
  901. package/src/prompts/tools/debug.md +1 -1
  902. package/src/prompts/tools/eval.md +31 -51
  903. package/src/prompts/tools/find.md +0 -1
  904. package/src/prompts/tools/github.md +8 -7
  905. package/src/prompts/tools/goal.md +1 -1
  906. package/src/prompts/tools/image-gen.md +1 -1
  907. package/src/prompts/tools/inspect-image-system.md +1 -1
  908. package/src/prompts/tools/irc.md +39 -31
  909. package/src/prompts/tools/job.md +2 -1
  910. package/src/prompts/tools/learn.md +7 -0
  911. package/src/prompts/tools/lsp-late-diagnostic.md +8 -0
  912. package/src/prompts/tools/lsp.md +2 -2
  913. package/src/prompts/tools/manage-skill.md +9 -0
  914. package/src/prompts/tools/memory-edit.md +1 -1
  915. package/src/prompts/tools/patch.md +2 -2
  916. package/src/prompts/tools/read.md +31 -39
  917. package/src/prompts/tools/recall.md +1 -1
  918. package/src/prompts/tools/reflect.md +1 -1
  919. package/src/prompts/tools/render-mermaid.md +2 -2
  920. package/src/prompts/tools/replace.md +4 -10
  921. package/src/prompts/tools/rewind.md +2 -2
  922. package/src/prompts/tools/search-tool-bm25.md +1 -9
  923. package/src/prompts/tools/search.md +0 -1
  924. package/src/prompts/tools/ssh.md +0 -4
  925. package/src/prompts/tools/task-summary.md +5 -16
  926. package/src/prompts/tools/task.md +47 -31
  927. package/src/prompts/tools/todo.md +6 -3
  928. package/src/registry/agent-lifecycle.ts +218 -0
  929. package/src/registry/agent-registry.ts +46 -5
  930. package/src/sdk.ts +692 -219
  931. package/src/secrets/index.ts +8 -1
  932. package/src/secrets/obfuscator.ts +40 -19
  933. package/src/session/agent-session.ts +1577 -806
  934. package/src/session/agent-storage.ts +18 -9
  935. package/src/session/auth-broker-config.ts +30 -1
  936. package/src/session/auth-storage.ts +6 -0
  937. package/src/session/codex-auto-reset.ts +202 -0
  938. package/src/session/history-storage.ts +3 -2
  939. package/src/session/indexed-session-storage.ts +7 -10
  940. package/src/session/messages.ts +59 -95
  941. package/src/session/session-context.ts +352 -0
  942. package/src/session/session-dump-format.ts +12 -3
  943. package/src/session/session-entries.ts +194 -0
  944. package/src/session/session-history-format.ts +246 -0
  945. package/src/session/session-listing.ts +588 -0
  946. package/src/session/session-loader.ts +106 -0
  947. package/src/session/session-manager.ts +1003 -2920
  948. package/src/session/session-migrations.ts +78 -0
  949. package/src/session/session-paths.ts +193 -0
  950. package/src/session/session-persistence.ts +131 -0
  951. package/src/session/session-storage.ts +91 -30
  952. package/src/session/snapcompact-inline.ts +542 -0
  953. package/src/session/snapcompact-savings-journal.ts +113 -0
  954. package/src/session/streaming-output.ts +248 -11
  955. package/src/session/tool-choice-queue.ts +23 -11
  956. package/src/session/yield-queue.ts +20 -2
  957. package/src/slash-commands/acp-builtins.ts +25 -1
  958. package/src/slash-commands/available-commands.ts +105 -0
  959. package/src/slash-commands/builtin-registry.ts +575 -49
  960. package/src/slash-commands/helpers/active-oauth-account.ts +44 -0
  961. package/src/slash-commands/helpers/context-report.ts +28 -1
  962. package/src/slash-commands/helpers/logout.ts +88 -0
  963. package/src/slash-commands/helpers/reset-usage.ts +66 -0
  964. package/src/slash-commands/helpers/stats-dashboard.ts +85 -0
  965. package/src/slash-commands/helpers/usage-report.ts +38 -3
  966. package/src/slash-commands/types.ts +5 -9
  967. package/src/ssh/connection-manager.ts +27 -0
  968. package/src/ssh/ssh-executor.ts +60 -4
  969. package/src/stt/asr-client.ts +520 -0
  970. package/src/stt/asr-protocol.ts +65 -0
  971. package/src/stt/asr-worker.ts +790 -0
  972. package/src/stt/downloader.ts +107 -47
  973. package/src/stt/endpointer.ts +259 -0
  974. package/src/stt/index.ts +5 -1
  975. package/src/stt/models.ts +150 -0
  976. package/src/stt/recorder.ts +254 -67
  977. package/src/stt/stt-controller.ts +201 -22
  978. package/src/stt/transcriber.ts +37 -68
  979. package/src/stt/wav.ts +173 -0
  980. package/src/system-prompt.ts +52 -10
  981. package/src/task/agents.ts +3 -4
  982. package/src/task/commands.ts +3 -2
  983. package/src/task/discovery.ts +17 -24
  984. package/src/task/executor.ts +1054 -529
  985. package/src/task/index.ts +862 -757
  986. package/src/task/output-manager.ts +0 -11
  987. package/src/task/parallel.ts +3 -3
  988. package/src/task/prometheus-command.ts +2 -2
  989. package/src/task/render.ts +529 -182
  990. package/src/task/repair-args.ts +21 -9
  991. package/src/task/types.ts +144 -66
  992. package/src/task/worktree.ts +64 -56
  993. package/src/telemetry-export.ts +27 -9
  994. package/src/thinking.ts +9 -7
  995. package/src/tiny/models.ts +2 -2
  996. package/src/tiny/text.ts +5 -1
  997. package/src/tiny/title-client.ts +72 -20
  998. package/src/tiny/title-protocol.ts +1 -1
  999. package/src/tiny/worker.ts +23 -99
  1000. package/src/tool-discovery/tool-index.ts +2 -0
  1001. package/src/tools/archive-reader.ts +94 -2
  1002. package/src/tools/ask.ts +234 -177
  1003. package/src/tools/ast-edit.ts +136 -80
  1004. package/src/tools/ast-grep.ts +41 -45
  1005. package/src/tools/auto-generated-guard.ts +20 -3
  1006. package/src/tools/bash-interactive.ts +28 -8
  1007. package/src/tools/bash.ts +198 -35
  1008. package/src/tools/browser/attach.ts +26 -7
  1009. package/src/tools/browser/cmux/cmux-tab.ts +1264 -0
  1010. package/src/tools/browser/cmux/rpc.ts +156 -0
  1011. package/src/tools/browser/cmux/socket-client.ts +309 -0
  1012. package/src/tools/browser/launch.ts +11 -2
  1013. package/src/tools/browser/readable.ts +19 -2
  1014. package/src/tools/browser/registry.ts +52 -5
  1015. package/src/tools/browser/render.ts +13 -5
  1016. package/src/tools/browser/tab-protocol.ts +2 -0
  1017. package/src/tools/browser/tab-supervisor.ts +256 -34
  1018. package/src/tools/browser/tab-worker.ts +259 -91
  1019. package/src/tools/browser.ts +44 -2
  1020. package/src/tools/checkpoint.ts +1 -1
  1021. package/src/tools/conflict-detect.ts +50 -4
  1022. package/src/tools/debug.ts +27 -12
  1023. package/src/tools/eval-render.ts +32 -35
  1024. package/src/tools/eval.ts +26 -12
  1025. package/src/tools/fetch.ts +450 -99
  1026. package/src/tools/find.ts +182 -142
  1027. package/src/tools/gh-cache-invalidation.ts +255 -0
  1028. package/src/tools/gh-renderer.ts +104 -51
  1029. package/src/tools/gh.ts +232 -37
  1030. package/src/tools/github-cache.ts +97 -7
  1031. package/src/tools/grouped-file-output.ts +159 -52
  1032. package/src/tools/image-gen.ts +237 -132
  1033. package/src/tools/index.ts +147 -26
  1034. package/src/tools/inspect-image-renderer.ts +74 -45
  1035. package/src/tools/inspect-image.ts +12 -6
  1036. package/src/tools/irc.ts +626 -173
  1037. package/src/tools/job.ts +106 -29
  1038. package/src/tools/learn.ts +144 -0
  1039. package/src/tools/manage-skill.ts +104 -0
  1040. package/src/tools/memory-edit.ts +4 -4
  1041. package/src/tools/memory-recall.ts +7 -9
  1042. package/src/tools/memory-reflect.ts +5 -9
  1043. package/src/tools/memory-render.ts +23 -6
  1044. package/src/tools/memory-retain.ts +4 -4
  1045. package/src/tools/path-utils.ts +102 -48
  1046. package/src/tools/plan-mode-guard.ts +101 -40
  1047. package/src/tools/read.ts +475 -120
  1048. package/src/tools/render-mermaid.ts +1 -1
  1049. package/src/tools/render-utils.ts +132 -76
  1050. package/src/tools/renderers.ts +12 -1
  1051. package/src/tools/report-tool-issue.ts +14 -6
  1052. package/src/tools/resolve.ts +20 -3
  1053. package/src/tools/review.ts +2 -2
  1054. package/src/tools/search-tool-bm25.ts +37 -24
  1055. package/src/tools/search.ts +233 -115
  1056. package/src/tools/sqlite-reader.ts +26 -17
  1057. package/src/tools/ssh.ts +20 -14
  1058. package/src/tools/todo.ts +197 -191
  1059. package/src/tools/tool-result.ts +8 -0
  1060. package/src/tools/tool-timeouts.ts +1 -1
  1061. package/src/tools/tts.ts +205 -74
  1062. package/src/tools/write.ts +291 -155
  1063. package/src/tools/yield.ts +10 -1
  1064. package/src/tts/downloader.ts +64 -0
  1065. package/src/tts/index.ts +8 -0
  1066. package/src/tts/models.ts +137 -0
  1067. package/src/tts/player.ts +137 -0
  1068. package/src/tts/runtime.ts +21 -0
  1069. package/src/tts/streaming-player.ts +266 -0
  1070. package/src/tts/tts-client.ts +647 -0
  1071. package/src/tts/tts-protocol.ts +60 -0
  1072. package/src/tts/tts-worker.ts +505 -0
  1073. package/src/tts/vocalizer.ts +162 -0
  1074. package/src/tts/wav.ts +58 -0
  1075. package/src/tui/code-cell.ts +2 -7
  1076. package/src/tui/hyperlink.ts +40 -26
  1077. package/src/tui/output-block.ts +60 -108
  1078. package/src/tui/status-line.ts +5 -1
  1079. package/src/utils/block-context.ts +312 -0
  1080. package/src/utils/changelog.ts +27 -1
  1081. package/src/utils/clipboard.ts +91 -22
  1082. package/src/utils/commit-message-generator.ts +8 -3
  1083. package/src/utils/enhanced-paste.ts +230 -0
  1084. package/src/utils/file-mentions.ts +3 -1
  1085. package/src/utils/git.ts +315 -15
  1086. package/src/utils/image-loading.ts +65 -4
  1087. package/src/utils/session-color.ts +83 -9
  1088. package/src/utils/thinking-display.ts +37 -0
  1089. package/src/utils/title-generator.ts +73 -10
  1090. package/src/utils/tool-choice.ts +16 -0
  1091. package/src/utils/tools-manager.ts +19 -1
  1092. package/src/web/kagi.ts +28 -26
  1093. package/src/web/parallel.ts +7 -3
  1094. package/src/web/scrapers/arxiv.ts +1 -1
  1095. package/src/web/scrapers/github.ts +351 -3
  1096. package/src/web/scrapers/go-pkg.ts +1 -1
  1097. package/src/web/scrapers/iacr.ts +1 -1
  1098. package/src/web/scrapers/readthedocs.ts +1 -1
  1099. package/src/web/scrapers/twitter.ts +2 -1
  1100. package/src/web/scrapers/types.ts +87 -8
  1101. package/src/web/scrapers/wikipedia.ts +1 -1
  1102. package/src/web/scrapers/youtube.ts +9 -3
  1103. package/src/web/search/index.ts +15 -2
  1104. package/src/web/search/providers/anthropic.ts +62 -21
  1105. package/src/web/search/providers/base.ts +2 -1
  1106. package/src/web/search/providers/brave.ts +5 -2
  1107. package/src/web/search/providers/codex.ts +87 -51
  1108. package/src/web/search/providers/exa.ts +101 -10
  1109. package/src/web/search/providers/gemini.ts +49 -24
  1110. package/src/web/search/providers/jina.ts +15 -5
  1111. package/src/web/search/providers/kagi.ts +9 -2
  1112. package/src/web/search/providers/kimi.ts +45 -20
  1113. package/src/web/search/providers/parallel.ts +39 -24
  1114. package/src/web/search/providers/perplexity.ts +226 -63
  1115. package/src/web/search/providers/searxng.ts +19 -3
  1116. package/src/web/search/providers/synthetic.ts +16 -11
  1117. package/src/web/search/providers/tavily.ts +12 -9
  1118. package/src/web/search/providers/zai.ts +22 -9
  1119. package/src/web/search/render.ts +59 -64
  1120. package/src/web/search/types.ts +5 -1
  1121. package/dist/types/discovery/context-files.d.ts +0 -17
  1122. package/dist/types/exa/factory.d.ts +0 -13
  1123. package/dist/types/exa/render.d.ts +0 -19
  1124. package/dist/types/exa/researcher.d.ts +0 -9
  1125. package/dist/types/exa/search.d.ts +0 -9
  1126. package/dist/types/exa/websets.d.ts +0 -9
  1127. package/dist/types/export/html/template.generated.d.ts +0 -1
  1128. package/dist/types/modes/components/session-observer-overlay.d.ts +0 -11
  1129. package/dist/types/modes/components/status-line.d.ts +0 -77
  1130. package/dist/types/slash-commands/headless-plan.d.ts +0 -3
  1131. package/dist/types/stt/setup.d.ts +0 -18
  1132. package/scripts/generate-template.ts +0 -33
  1133. package/src/discovery/context-files.ts +0 -49
  1134. package/src/exa/factory.ts +0 -60
  1135. package/src/exa/render.ts +0 -244
  1136. package/src/exa/researcher.ts +0 -36
  1137. package/src/exa/search.ts +0 -47
  1138. package/src/exa/websets.ts +0 -248
  1139. package/src/export/html/template.generated.ts +0 -2
  1140. package/src/modes/components/session-observer-overlay.ts +0 -852
  1141. package/src/slash-commands/headless-plan.ts +0 -142
  1142. package/src/stt/setup.ts +0 -52
  1143. package/src/stt/transcribe.py +0 -70
  1144. /package/dist/types/extensibility/{legacy-pi-coding-agent-shim.d.ts → legacy-package-agent-shim.d.ts} +0 -0
  1145. /package/src/extensibility/{legacy-pi-coding-agent-shim.ts → legacy-package-agent-shim.ts} +0 -0
@@ -9,11 +9,11 @@ import {
9
9
  highlightCode as nativeHighlightCode,
10
10
  supportsLanguage as nativeSupportsLanguage,
11
11
  } from "@prometheus-ai/natives";
12
- import type { EditorTheme, MarkdownTheme, SelectListTheme, SymbolTheme } from "@prometheus-ai/tui";
12
+ import type { EditorTheme, MarkdownTheme, SelectListTheme, SettingsListTheme, SymbolTheme } from "@prometheus-ai/tui";
13
13
  import { adjustHsv, colorLuma, getCustomThemesDir, isEnoent, logger, relativeLuminance } from "@prometheus-ai/utils";
14
14
  import chalk from "chalk";
15
15
  import { LRUCache } from "lru-cache/raw";
16
- import * as z from "zod/v4";
16
+ import { z } from "zod/v4";
17
17
  // Embed theme JSON files at build time
18
18
  import darkThemeJson from "./dark.json" with { type: "json" };
19
19
  import { defaultThemes } from "./defaults";
@@ -43,6 +43,7 @@ export type SymbolKey =
43
43
  | "status.running"
44
44
  | "status.shadowed"
45
45
  | "status.aborted"
46
+ | "status.done"
46
47
  // Navigation
47
48
  | "nav.cursor"
48
49
  | "nav.selected"
@@ -95,6 +96,7 @@ export type SymbolKey =
95
96
  | "icon.pause"
96
97
  | "icon.loop"
97
98
  | "icon.folder"
99
+ | "icon.search"
98
100
  | "icon.scratchFolder"
99
101
  | "icon.file"
100
102
  | "icon.git"
@@ -105,7 +107,9 @@ export type SymbolKey =
105
107
  | "icon.cost"
106
108
  | "icon.time"
107
109
  | "icon.prometheus"
110
+ | "icon.ghost"
108
111
  | "icon.agents"
112
+ | "icon.job"
109
113
  | "icon.cache"
110
114
  | "icon.input"
111
115
  | "icon.output"
@@ -127,6 +131,8 @@ export type SymbolKey =
127
131
  | "icon.extensionInstruction"
128
132
  // STT
129
133
  | "icon.mic"
134
+ // Compaction divider
135
+ | "icon.camera"
130
136
  // Thinking Levels
131
137
  | "thinking.minimal"
132
138
  | "thinking.low"
@@ -192,12 +198,35 @@ export type SymbolKey =
192
198
  | "tab.model"
193
199
  | "tab.interaction"
194
200
  | "tab.context"
195
- | "tab.editing"
201
+ | "tab.files"
202
+ | "tab.shell"
196
203
  | "tab.tools"
197
204
  | "tab.memory"
198
205
  | "tab.tasks"
199
206
  | "tab.providers"
200
- | "tab.channels";
207
+ // Tool identity icons
208
+ | "tool.write"
209
+ | "tool.edit"
210
+ | "tool.bash"
211
+ | "tool.ssh"
212
+ | "tool.lsp"
213
+ | "tool.gh"
214
+ | "tool.webSearch"
215
+ | "tool.exa"
216
+ | "tool.browser"
217
+ | "tool.eval"
218
+ | "tool.debug"
219
+ | "tool.mcp"
220
+ | "tool.job"
221
+ | "tool.task"
222
+ | "tool.todo"
223
+ | "tool.memory"
224
+ | "tool.ask"
225
+ | "tool.resolve"
226
+ | "tool.review"
227
+ | "tool.inspectImage"
228
+ | "tool.goal"
229
+ | "tool.irc";
201
230
 
202
231
  type SymbolMap = Record<SymbolKey, string>;
203
232
 
@@ -213,6 +242,7 @@ const UNICODE_SYMBOLS: SymbolMap = {
213
242
  "status.running": "⟳",
214
243
  "status.shadowed": "◌",
215
244
  "status.aborted": "⏹",
245
+ "status.done": "•",
216
246
  // Navigation
217
247
  "nav.cursor": "❯",
218
248
  "nav.selected": "➤",
@@ -265,6 +295,7 @@ const UNICODE_SYMBOLS: SymbolMap = {
265
295
  "icon.pause": "⏸",
266
296
  "icon.loop": "↻",
267
297
  "icon.folder": "📁",
298
+ "icon.search": "🔍",
268
299
  "icon.scratchFolder": "🗑",
269
300
  "icon.file": "📄",
270
301
  "icon.git": "⎇",
@@ -274,8 +305,10 @@ const UNICODE_SYMBOLS: SymbolMap = {
274
305
  "icon.context": "◫",
275
306
  "icon.cost": "💲",
276
307
  "icon.time": "⏱",
277
- "icon.prometheus": "P",
308
+ "icon.prometheus": "π",
309
+ "icon.ghost": "👻",
278
310
  "icon.agents": "👥",
311
+ "icon.job": "⚙",
279
312
  "icon.cache": "💾",
280
313
  "icon.input": "⤵",
281
314
  "icon.output": "⤴",
@@ -297,13 +330,15 @@ const UNICODE_SYMBOLS: SymbolMap = {
297
330
  "icon.extensionInstruction": "📘",
298
331
  // STT
299
332
  "icon.mic": "🎤",
333
+ // Compaction divider
334
+ "icon.camera": "📷",
300
335
  // Thinking levels
301
336
  "thinking.minimal": "◔ min",
302
337
  "thinking.low": "◑ low",
303
338
  "thinking.medium": "◒ med",
304
339
  "thinking.high": "◕ high",
305
340
  "thinking.xhigh": "◉ xhigh",
306
- "thinking.autoPending": "▣?",
341
+ "thinking.autoPending": "",
307
342
  // Checkboxes
308
343
  "checkbox.checked": "☑",
309
344
  "checkbox.unchecked": "☐",
@@ -362,12 +397,35 @@ const UNICODE_SYMBOLS: SymbolMap = {
362
397
  "tab.model": "🤖",
363
398
  "tab.interaction": "⌨",
364
399
  "tab.context": "📋",
365
- "tab.editing": "💻",
400
+ "tab.files": "📁",
401
+ "tab.shell": "💻",
366
402
  "tab.tools": "🔧",
367
403
  "tab.memory": "🧠",
368
404
  "tab.tasks": "📦",
369
405
  "tab.providers": "🌐",
370
- "tab.channels": "💬",
406
+ // Tool identity icons (per-tool signature glyph on the success header)
407
+ "tool.write": "✎",
408
+ "tool.edit": "✎",
409
+ "tool.bash": "❯",
410
+ "tool.ssh": "⇄",
411
+ "tool.lsp": "💡",
412
+ "tool.gh": "⎇",
413
+ "tool.webSearch": "⌕",
414
+ "tool.exa": "🔭",
415
+ "tool.browser": "🌐",
416
+ "tool.eval": "▶",
417
+ "tool.debug": "🐞",
418
+ "tool.mcp": "🔌",
419
+ "tool.job": "⚙",
420
+ "tool.task": "⇶",
421
+ "tool.todo": "☑",
422
+ "tool.memory": "🧠",
423
+ "tool.ask": "?",
424
+ "tool.resolve": "✓",
425
+ "tool.review": "◉",
426
+ "tool.inspectImage": "🖼",
427
+ "tool.goal": "◎",
428
+ "tool.irc": "✉",
371
429
  };
372
430
 
373
431
  const NERD_SYMBOLS: SymbolMap = {
@@ -392,6 +450,8 @@ const NERD_SYMBOLS: SymbolMap = {
392
450
  "status.shadowed": "◐",
393
451
  // pick:  | alt:  
394
452
  "status.aborted": "\uf04d",
453
+ // pick: • | alt: ● ·
454
+ "status.done": "•",
395
455
  // Navigation
396
456
  // pick:  | alt:  
397
457
  "nav.cursor": "\uf054",
@@ -490,6 +550,7 @@ const NERD_SYMBOLS: SymbolMap = {
490
550
  "icon.loop": "\uf021",
491
551
  // pick:  | alt:  
492
552
  "icon.folder": "\uf115",
553
+ "icon.search": "\uf002",
493
554
  // pick: | alt:
494
555
  "icon.scratchFolder": "\uf014",
495
556
  // pick:  | alt:  
@@ -508,10 +569,14 @@ const NERD_SYMBOLS: SymbolMap = {
508
569
  "icon.cost": "\uf155",
509
570
  // pick:  | alt: ◷ ◴
510
571
  "icon.time": "\uf017",
511
- // pick:  | alt: P
572
+ // pick:  | alt: π ∏ ∑
512
573
  "icon.prometheus": "\ue22c",
574
+ // pick: 󰊠 (nf-md-ghost) | alt: 👻
575
+ "icon.ghost": "\u{f02a0}",
513
576
  // pick:  | alt: 
514
577
  "icon.agents": "\uf0c0",
578
+ // pick: (nf-fa-gear) | alt: ⚙
579
+ "icon.job": "\uf013",
515
580
  // pick:  | alt:  
516
581
  "icon.cache": "\uf1c0",
517
582
  // pick:  | alt:  →
@@ -550,6 +615,8 @@ const NERD_SYMBOLS: SymbolMap = {
550
615
  "icon.extensionInstruction": "\uf02d",
551
616
  // STT - fa-microphone
552
617
  "icon.mic": "\uf130",
618
+ // Compaction divider - fa-camera-retro
619
+ "icon.camera": "\uf083",
553
620
  // Thinking Levels - emoji labels
554
621
  // pick: 🤨 min | alt:  min  min
555
622
  "thinking.minimal": "\u{F0E7} min",
@@ -561,8 +628,8 @@ const NERD_SYMBOLS: SymbolMap = {
561
628
  "thinking.high": "\u{F111} high",
562
629
  // pick: 🧠 xhi | alt:  xhi  xhi
563
630
  "thinking.xhigh": "\u{F06D} xhi",
564
- // pick: 󰞋 (nf-md-help_box) | alt: [?]
565
- "thinking.autoPending": "\u{f078b}",
631
+ // pick: (fa-circle-o-notch) | alt: 󰂼 (nf-md-cached) ⟳
632
+ "thinking.autoPending": "\uf1ce",
566
633
  // Checkboxes
567
634
  // pick:  | alt:  
568
635
  "checkbox.checked": "\uf14a",
@@ -632,12 +699,35 @@ const NERD_SYMBOLS: SymbolMap = {
632
699
  "tab.model": "󰚩",
633
700
  "tab.interaction": "󰌌",
634
701
  "tab.context": "󰘸",
635
- "tab.editing": "",
702
+ "tab.files": "󰈔",
703
+ "tab.shell": "󰆍",
636
704
  "tab.tools": "󰠭",
637
705
  "tab.memory": "󰧑",
638
706
  "tab.tasks": "󰐱",
639
707
  "tab.providers": "󰖟",
640
- "tab.channels": "󰍩",
708
+ // Tool identity icons (per-tool signature glyph on the success header)
709
+ "tool.write": "\uEA7F",
710
+ "tool.edit": "\uEA73",
711
+ "tool.bash": "\uEBCA",
712
+ "tool.ssh": "\uEB3A",
713
+ "tool.lsp": "\uEA61",
714
+ "tool.gh": "\uEA84",
715
+ "tool.webSearch": "\uEB01",
716
+ "tool.exa": "\uEB68",
717
+ "tool.browser": "\uEAAE",
718
+ "tool.eval": "\uEBAF",
719
+ "tool.debug": "\uEAD8",
720
+ "tool.mcp": "\uEB2D",
721
+ "tool.job": "\uEBA2",
722
+ "tool.task": "\uf4a0",
723
+ "tool.todo": "\uEAB3",
724
+ "tool.memory": "\uEACE",
725
+ "tool.ask": "\uEAC7",
726
+ "tool.resolve": "\uEBB1",
727
+ "tool.review": "\uEA70",
728
+ "tool.inspectImage": "\uEAEA",
729
+ "tool.goal": "\uEBF8",
730
+ "tool.irc": "\uF086",
641
731
  };
642
732
 
643
733
  const ASCII_SYMBOLS: SymbolMap = {
@@ -652,6 +742,7 @@ const ASCII_SYMBOLS: SymbolMap = {
652
742
  "status.running": "[~]",
653
743
  "status.shadowed": "[/]",
654
744
  "status.aborted": "[-]",
745
+ "status.done": "*",
655
746
  // Navigation
656
747
  "nav.cursor": ">",
657
748
  "nav.selected": "->",
@@ -704,6 +795,7 @@ const ASCII_SYMBOLS: SymbolMap = {
704
795
  "icon.pause": "||",
705
796
  "icon.loop": "loop",
706
797
  "icon.folder": "[D]",
798
+ "icon.search": "[/]",
707
799
  "icon.scratchFolder": "[T]",
708
800
  "icon.file": "[F]",
709
801
  "icon.git": "git:",
@@ -713,8 +805,10 @@ const ASCII_SYMBOLS: SymbolMap = {
713
805
  "icon.context": "ctx:",
714
806
  "icon.cost": "$",
715
807
  "icon.time": "t:",
716
- "icon.prometheus": "P",
808
+ "icon.prometheus": "pi",
809
+ "icon.ghost": "@",
717
810
  "icon.agents": "AG",
811
+ "icon.job": "bg",
718
812
  "icon.cache": "cache",
719
813
  "icon.input": "in:",
720
814
  "icon.output": "out:",
@@ -736,13 +830,15 @@ const ASCII_SYMBOLS: SymbolMap = {
736
830
  "icon.extensionInstruction": "IN",
737
831
  // STT
738
832
  "icon.mic": "MIC",
833
+ // Compaction divider
834
+ "icon.camera": "[o]",
739
835
  // Thinking Levels
740
836
  "thinking.minimal": "[min]",
741
837
  "thinking.low": "[low]",
742
838
  "thinking.medium": "[med]",
743
839
  "thinking.high": "[high]",
744
840
  "thinking.xhigh": "[xhi]",
745
- "thinking.autoPending": "[?]",
841
+ "thinking.autoPending": "[~]",
746
842
  // Checkboxes
747
843
  "checkbox.checked": "[x]",
748
844
  "checkbox.unchecked": "[ ]",
@@ -799,12 +895,35 @@ const ASCII_SYMBOLS: SymbolMap = {
799
895
  "tab.model": "[M]",
800
896
  "tab.interaction": "[I]",
801
897
  "tab.context": "[X]",
802
- "tab.editing": "[E]",
898
+ "tab.files": "[F]",
899
+ "tab.shell": "[S]",
803
900
  "tab.tools": "[T]",
804
901
  "tab.memory": "[Y]",
805
902
  "tab.tasks": "[K]",
806
903
  "tab.providers": "[P]",
807
- "tab.channels": "[C]",
904
+ // Tool identity icons (per-tool signature glyph on the success header)
905
+ "tool.write": "+f",
906
+ "tool.edit": "~",
907
+ "tool.bash": "$",
908
+ "tool.ssh": "ssh",
909
+ "tool.lsp": "lsp",
910
+ "tool.gh": "gh",
911
+ "tool.webSearch": "web",
912
+ "tool.exa": "exa",
913
+ "tool.browser": "[w]",
914
+ "tool.eval": ">_",
915
+ "tool.debug": "dbg",
916
+ "tool.mcp": "<>",
917
+ "tool.job": "job",
918
+ "tool.task": ">>>",
919
+ "tool.todo": "[x]",
920
+ "tool.memory": "mem",
921
+ "tool.ask": "[?]",
922
+ "tool.resolve": "[v]",
923
+ "tool.review": "rev",
924
+ "tool.inspectImage": "[i]",
925
+ "tool.goal": "(o)",
926
+ "tool.irc": "irc",
808
927
  };
809
928
 
810
929
  const SYMBOL_PRESETS: Record<SymbolPreset, SymbolMap> = {
@@ -1290,9 +1409,23 @@ const langMap: Record<string, SymbolKey> = {
1290
1409
  bin: "lang.binary",
1291
1410
  };
1292
1411
 
1412
+ /**
1413
+ * Resolve a theme color value (hex string or 256-color index) to a CSS hex string.
1414
+ * Empty string represents the default terminal color.
1415
+ */
1416
+ function resolveToHex(value: string | number, isLight: boolean): string {
1417
+ if (typeof value === "number") return ansi256ToHex(value);
1418
+ if (value === "") return isLight ? "#000000" : "#e5e5e7";
1419
+ return value;
1420
+ }
1421
+
1293
1422
  export class Theme {
1294
1423
  #fgColors: Record<ThemeColor, string>;
1295
1424
  #bgColors: Record<ThemeBg, string>;
1425
+ /** Resolved hex strings for foreground colors — populated at construction. */
1426
+ readonly #hexFgColors: Record<ThemeColor, string>;
1427
+ /** Resolved hex strings for background colors — populated at construction. */
1428
+ readonly #hexBgColors: Record<ThemeBg, string>;
1296
1429
  #symbols: SymbolMap;
1297
1430
  #spinnerFramesOverrides: Partial<Record<SpinnerType, string[]>>;
1298
1431
  /**
@@ -1305,7 +1438,6 @@ export class Theme {
1305
1438
  readonly statusLineLuminance: number | undefined;
1306
1439
  /** WCAG relative luminance of the status-line background — basis for accent contrast. */
1307
1440
  readonly #statusLineContrastLuminance: number | undefined;
1308
-
1309
1441
  constructor(
1310
1442
  fgColors: Record<ThemeColor, string | number>,
1311
1443
  bgColors: Record<ThemeBg, string | number>,
@@ -1316,13 +1448,19 @@ export class Theme {
1316
1448
  ) {
1317
1449
  this.statusLineLuminance = colorLuma(bgColors.statusLineBg);
1318
1450
  this.#statusLineContrastLuminance = relativeLuminance(bgColors.statusLineBg);
1451
+ const slIsLight = this.statusLineLuminance !== undefined && this.statusLineLuminance > 0.5;
1452
+
1319
1453
  this.#fgColors = {} as Record<ThemeColor, string>;
1454
+ this.#hexFgColors = {} as Record<ThemeColor, string>;
1320
1455
  for (const [key, value] of Object.entries(fgColors) as [ThemeColor, string | number][]) {
1321
1456
  this.#fgColors[key] = fgAnsi(value, mode);
1457
+ this.#hexFgColors[key] = resolveToHex(value, slIsLight);
1322
1458
  }
1323
1459
  this.#bgColors = {} as Record<ThemeBg, string>;
1460
+ this.#hexBgColors = {} as Record<ThemeBg, string>;
1324
1461
  for (const [key, value] of Object.entries(bgColors) as [ThemeBg, string | number][]) {
1325
1462
  this.#bgColors[key] = bgAnsi(value, mode);
1463
+ this.#hexBgColors[key] = resolveToHex(value, slIsLight);
1326
1464
  }
1327
1465
  // Build symbol map from preset + overrides
1328
1466
  const baseSymbols = SYMBOL_PRESETS[symbolPreset];
@@ -1350,6 +1488,70 @@ export class Theme {
1350
1488
  return this.isLight ? this.#statusLineContrastLuminance : undefined;
1351
1489
  }
1352
1490
 
1491
+ /**
1492
+ * Get the resolved CSS hex string for a foreground theme color.
1493
+ */
1494
+ getColorHex(color: ThemeColor): string {
1495
+ const hex = this.#hexFgColors[color];
1496
+ if (hex === undefined) throw new Error(`Unknown theme color: ${color}`);
1497
+ return hex || (this.isLight ? "#000000" : "#e5e5e7");
1498
+ }
1499
+
1500
+ /**
1501
+ * Get all foreground and background theme colors as CSS hex strings.
1502
+ * Skips colors resolved to the default terminal color (unstyled).
1503
+ */
1504
+ getAllThemeColorHexes(): string[] {
1505
+ const hexes: string[] = [];
1506
+ for (const hex of Object.values(this.#hexFgColors)) {
1507
+ if (hex) hexes.push(hex);
1508
+ }
1509
+ for (const hex of Object.values(this.#hexBgColors)) {
1510
+ if (hex) hexes.push(hex);
1511
+ }
1512
+ return hexes;
1513
+ }
1514
+
1515
+ /**
1516
+ * Get the most visually dominant theme colors as CSS hex strings — accent,
1517
+ * border, success, error, warning, heading, link, diff markers, etc.
1518
+ * These are the colors the session accent could visually clash with.
1519
+ * Skips colors resolved to the default terminal color (unstyled).
1520
+ */
1521
+ getMajorThemeColorHexes(): string[] {
1522
+ const majors: ThemeColor[] = [
1523
+ "accent",
1524
+ "border",
1525
+ "borderAccent",
1526
+ "borderMuted",
1527
+ "success",
1528
+ "error",
1529
+ "warning",
1530
+ "mdHeading",
1531
+ "mdLink",
1532
+ "mdCode",
1533
+ "mdCodeBlock",
1534
+ "mdQuoteBorder",
1535
+ "mdListBullet",
1536
+ "toolDiffAdded",
1537
+ "toolDiffRemoved",
1538
+ "customMessageLabel",
1539
+ "thinkingText",
1540
+ ];
1541
+ const hexes: string[] = [];
1542
+ for (const key of majors) {
1543
+ const hex = this.#hexFgColors[key];
1544
+ if (hex) hexes.push(hex);
1545
+ }
1546
+ return hexes;
1547
+ }
1548
+ /**
1549
+ * Get the resolved CSS hex string for the theme's accent color.
1550
+ */
1551
+ getAccentColorHex(): string {
1552
+ return this.getColorHex("accent");
1553
+ }
1554
+
1353
1555
  fg(color: ThemeColor, text: string): string {
1354
1556
  const ansi = this.#fgColors[color];
1355
1557
  if (!ansi) throw new Error(`Unknown theme color: ${color}`);
@@ -1485,6 +1687,7 @@ export class Theme {
1485
1687
  running: this.#symbols["status.running"],
1486
1688
  shadowed: this.#symbols["status.shadowed"],
1487
1689
  aborted: this.#symbols["status.aborted"],
1690
+ done: this.#symbols["status.done"],
1488
1691
  };
1489
1692
  }
1490
1693
 
@@ -1570,8 +1773,10 @@ export class Theme {
1570
1773
  context: this.#symbols["icon.context"],
1571
1774
  cost: this.#symbols["icon.cost"],
1572
1775
  time: this.#symbols["icon.time"],
1573
- prometheus: this.#symbols["icon.prometheus"],
1776
+ pi: this.#symbols["icon.prometheus"],
1777
+ ghost: this.#symbols["icon.ghost"],
1574
1778
  agents: this.#symbols["icon.agents"],
1779
+ job: this.#symbols["icon.job"],
1575
1780
  cache: this.#symbols["icon.cache"],
1576
1781
  input: this.#symbols["icon.input"],
1577
1782
  output: this.#symbols["icon.output"],
@@ -1592,6 +1797,7 @@ export class Theme {
1592
1797
  extensionContextFile: this.#symbols["icon.extensionContextFile"],
1593
1798
  extensionInstruction: this.#symbols["icon.extensionInstruction"],
1594
1799
  mic: this.#symbols["icon.mic"],
1800
+ camera: this.#symbols["icon.camera"],
1595
1801
  };
1596
1802
  }
1597
1803
 
@@ -1892,6 +2098,11 @@ var currentThemeName: string | undefined;
1892
2098
  export function getCurrentThemeName(): string | undefined {
1893
2099
  return currentThemeName;
1894
2100
  }
2101
+
2102
+ /** Returns unstyled `text` before `initTheme()` assigns the global theme; use only for early-render paths. */
2103
+ export function fgOrPlain(color: ThemeColor, text: string, styledText: string = text): string {
2104
+ return typeof theme === "undefined" ? text : theme.fg(color, styledText);
2105
+ }
1895
2106
  var currentSymbolPresetOverride: SymbolPreset | undefined;
1896
2107
  var currentColorBlindMode: boolean = false;
1897
2108
  var themeWatcher: fs.FSWatcher | undefined;
@@ -1902,6 +2113,7 @@ var autoDarkTheme: string = "dark";
1902
2113
  var autoLightTheme: string = "light";
1903
2114
  var onThemeChangeCallback: (() => void) | undefined;
1904
2115
  var themeLoadRequestId: number = 0;
2116
+ let themeEpoch = 0;
1905
2117
 
1906
2118
  function getCurrentThemeOptions(): CreateThemeOptions {
1907
2119
  return {
@@ -1954,9 +2166,7 @@ export async function setTheme(
1954
2166
  if (enableWatcher) {
1955
2167
  await startThemeWatcher();
1956
2168
  }
1957
- if (onThemeChangeCallback) {
1958
- onThemeChangeCallback();
1959
- }
2169
+ notifyThemeChange();
1960
2170
  return { success: true };
1961
2171
  } catch (error) {
1962
2172
  if (requestId !== themeLoadRequestId) {
@@ -1965,6 +2175,10 @@ export async function setTheme(
1965
2175
  // Theme is invalid - fall back to dark theme
1966
2176
  currentThemeName = "dark";
1967
2177
  theme = await loadTheme("dark", getCurrentThemeOptions());
2178
+ // The active theme just changed to the fallback — bump the epoch so memoized
2179
+ // renderers (e.g. ToolExecutionComponent) re-shape with the fallback colors
2180
+ // instead of holding the failed theme's stale styling.
2181
+ notifyThemeChange();
1968
2182
  // Don't start watcher for fallback theme
1969
2183
  return {
1970
2184
  success: false,
@@ -1981,9 +2195,7 @@ export async function previewTheme(name: string): Promise<{ success: boolean; er
1981
2195
  return { success: false, error: "Theme preview superseded by a newer request" };
1982
2196
  }
1983
2197
  theme = loadedTheme;
1984
- if (onThemeChangeCallback) {
1985
- onThemeChangeCallback();
1986
- }
2198
+ notifyThemeChange();
1987
2199
  return { success: true };
1988
2200
  } catch (error) {
1989
2201
  if (requestId !== themeLoadRequestId) {
@@ -2030,9 +2242,7 @@ export function setThemeInstance(themeInstance: Theme): void {
2030
2242
  theme = themeInstance;
2031
2243
  currentThemeName = "<in-memory>";
2032
2244
  stopThemeWatcher();
2033
- if (onThemeChangeCallback) {
2034
- onThemeChangeCallback();
2035
- }
2245
+ notifyThemeChange();
2036
2246
  }
2037
2247
 
2038
2248
  /**
@@ -2053,7 +2263,7 @@ export async function setSymbolPreset(preset: SymbolPreset): Promise<void> {
2053
2263
  theme = await loadTheme("dark", getCurrentThemeOptions());
2054
2264
  if (requestId !== themeLoadRequestId) return;
2055
2265
  }
2056
- onThemeChangeCallback?.();
2266
+ notifyThemeChange();
2057
2267
  }
2058
2268
 
2059
2269
  /**
@@ -2082,7 +2292,7 @@ export async function setColorBlindMode(enabled: boolean): Promise<void> {
2082
2292
  theme = await loadTheme("dark", getCurrentThemeOptions());
2083
2293
  if (requestId !== themeLoadRequestId) return;
2084
2294
  }
2085
- onThemeChangeCallback?.();
2295
+ notifyThemeChange();
2086
2296
  }
2087
2297
 
2088
2298
  /**
@@ -2096,6 +2306,23 @@ export function onThemeChange(callback: () => void): void {
2096
2306
  onThemeChangeCallback = callback;
2097
2307
  }
2098
2308
 
2309
+ /**
2310
+ * Monotonic counter bumped on any theme-affecting change that should invalidate
2311
+ * cached renders: theme swaps and reloads (including the invalid-theme dark
2312
+ * fallback), theme previews, symbol-preset changes, and color-blind-mode
2313
+ * changes — everything that routes through {@link notifyThemeChange}. Consumers
2314
+ * key cached renders on it so the next render re-shapes their output.
2315
+ */
2316
+ export function getThemeEpoch(): number {
2317
+ return themeEpoch;
2318
+ }
2319
+
2320
+ /** Bump the theme epoch and notify the registered theme-change listener. */
2321
+ function notifyThemeChange(): void {
2322
+ themeEpoch++;
2323
+ onThemeChangeCallback?.();
2324
+ }
2325
+
2099
2326
  /**
2100
2327
  * Get available symbol presets.
2101
2328
  */
@@ -2148,9 +2375,7 @@ async function startThemeWatcher(): Promise<void> {
2148
2375
  loadTheme(watchedThemeName, getCurrentThemeOptions())
2149
2376
  .then(loadedTheme => {
2150
2377
  theme = loadedTheme;
2151
- if (onThemeChangeCallback) {
2152
- onThemeChangeCallback();
2153
- }
2378
+ notifyThemeChange();
2154
2379
  })
2155
2380
  .catch(() => {
2156
2381
  // Ignore errors (file might be in invalid state while being edited)
@@ -2190,9 +2415,7 @@ function reevaluateAutoTheme(debugLabel: string): void {
2190
2415
  loadTheme(resolved, getCurrentThemeOptions())
2191
2416
  .then(loadedTheme => {
2192
2417
  theme = loadedTheme;
2193
- if (onThemeChangeCallback) {
2194
- onThemeChangeCallback();
2195
- }
2418
+ notifyThemeChange();
2196
2419
  })
2197
2420
  .catch(err => {
2198
2421
  logger.debug(`Theme switch on ${debugLabel} failed`, { error: String(err) });
@@ -2314,18 +2537,74 @@ function ansi256ToHex(index: number): string {
2314
2537
  return `#${grayHex}${grayHex}${grayHex}`;
2315
2538
  }
2316
2539
 
2540
+ /**
2541
+ * Classify a parsed theme JSON as light/dark by the perceived luminance of its
2542
+ * status-line background. Mirrors {@link Theme.isLight} so the synchronous
2543
+ * helpers below stay in lockstep with the runtime classifier — see the comment
2544
+ * on `Theme.statusLineLuminance` for why `statusLineBg` is the source of truth
2545
+ * (themes like `porcelain` style a dark chat bubble on an otherwise-light
2546
+ * theme, so `userMessageBg` is unreliable).
2547
+ */
2548
+ function isLightThemeJson(themeJson: ThemeJson): boolean {
2549
+ try {
2550
+ const resolved = resolveVarRefs(themeJson.colors.statusLineBg, themeJson.vars ?? {});
2551
+ const luminance = colorLuma(resolved);
2552
+ return luminance !== undefined && luminance > 0.5;
2553
+ } catch {
2554
+ return false;
2555
+ }
2556
+ }
2557
+
2558
+ function getHtmlDefaultTextForSurface(surface: string | number | undefined): string {
2559
+ const luminance = surface === undefined ? undefined : colorLuma(surface);
2560
+ return luminance !== undefined && luminance > 0.5 ? "#000000" : "#e5e5e7";
2561
+ }
2562
+
2563
+ function resolveThemeExportColors(themeJson: ThemeJson): {
2564
+ pageBg?: string;
2565
+ cardBg?: string;
2566
+ infoBg?: string;
2567
+ } {
2568
+ const exportSection = themeJson.export;
2569
+ if (!exportSection) return {};
2570
+
2571
+ const vars = themeJson.vars ?? {};
2572
+ const resolve = (value: string | number | undefined): string | undefined => {
2573
+ if (value === undefined) return undefined;
2574
+ if (typeof value === "number") return ansi256ToHex(value);
2575
+ if (value === "" || value.startsWith("#")) return value;
2576
+ const varName = value.startsWith("$") ? value.slice(1) : value;
2577
+ if (varName in vars) {
2578
+ const resolved = resolveVarRefs(varName, vars);
2579
+ return typeof resolved === "number" ? ansi256ToHex(resolved) : resolved;
2580
+ }
2581
+ return value;
2582
+ };
2583
+
2584
+ return {
2585
+ pageBg: resolve(exportSection.pageBg),
2586
+ cardBg: resolve(exportSection.cardBg),
2587
+ infoBg: resolve(exportSection.infoBg),
2588
+ };
2589
+ }
2590
+
2317
2591
  /**
2318
2592
  * Get resolved theme colors as CSS-compatible hex strings.
2319
2593
  * Used by HTML export to generate CSS custom properties.
2320
2594
  */
2321
2595
  export async function getResolvedThemeColors(themeName?: string): Promise<Record<string, string>> {
2322
2596
  const name = themeName ?? getDefaultTheme();
2323
- const isLight = name === "light";
2324
2597
  const themeJson = await loadThemeJson(name);
2598
+ const exportColors = resolveThemeExportColors(themeJson);
2325
2599
  const resolved = resolveThemeColors(themeJson.colors, themeJson.vars);
2326
2600
 
2327
- // Default text color for empty values (terminal uses default fg color)
2328
- const defaultText = isLight ? "#000000" : "#e5e5e7";
2601
+ // Empty foreground tokens use the terminal default color. In HTML export,
2602
+ // that default must contrast the export surface, not the TUI status line:
2603
+ // custom light themes can still export dark transcript cards when they omit
2604
+ // `export`, because generateThemeVars derives those cards from userMessageBg.
2605
+ const defaultText = getHtmlDefaultTextForSurface(
2606
+ exportColors.cardBg ?? exportColors.pageBg ?? resolved.userMessageBg,
2607
+ );
2329
2608
 
2330
2609
  const cssColors: Record<string, string> = {};
2331
2610
  for (const [key, value] of Object.entries(resolved)) {
@@ -2342,8 +2621,9 @@ export async function getResolvedThemeColors(themeName?: string): Promise<Record
2342
2621
  }
2343
2622
 
2344
2623
  /**
2345
- * Check if a theme is a "light" theme by analyzing its background color luminance.
2346
- * Loads theme JSON synchronously (built-in or custom file) and resolves userMessageBg.
2624
+ * Check if a theme is a "light" theme by analyzing its status-line background
2625
+ * luminance. Loads theme JSON synchronously (built-in or custom file on disk)
2626
+ * for callers in synchronous flows (settings migration, setup wizard).
2347
2627
  */
2348
2628
  export function isLightTheme(themeName?: string): boolean {
2349
2629
  const name = themeName ?? "dark";
@@ -2360,13 +2640,7 @@ export function isLightTheme(themeName?: string): boolean {
2360
2640
  return false;
2361
2641
  }
2362
2642
  }
2363
- try {
2364
- const resolved = resolveVarRefs(themeJson.colors.userMessageBg, themeJson.vars ?? {});
2365
- const luminance = colorLuma(resolved);
2366
- return luminance !== undefined && luminance > 0.5;
2367
- } catch {
2368
- return false;
2369
- }
2643
+ return isLightThemeJson(themeJson);
2370
2644
  }
2371
2645
 
2372
2646
  /**
@@ -2381,27 +2655,7 @@ export async function getThemeExportColors(themeName?: string): Promise<{
2381
2655
  const name = themeName ?? getDefaultTheme();
2382
2656
  try {
2383
2657
  const themeJson = await loadThemeJson(name);
2384
- const exportSection = themeJson.export;
2385
- if (!exportSection) return {};
2386
-
2387
- const vars = themeJson.vars ?? {};
2388
- const resolve = (value: string | number | undefined): string | undefined => {
2389
- if (value === undefined) return undefined;
2390
- if (typeof value === "number") return ansi256ToHex(value);
2391
- if (value === "" || value.startsWith("#")) return value;
2392
- const varName = value.startsWith("$") ? value.slice(1) : value;
2393
- if (varName in vars) {
2394
- const resolved = resolveVarRefs(varName, vars);
2395
- return typeof resolved === "number" ? ansi256ToHex(resolved) : resolved;
2396
- }
2397
- return value;
2398
- };
2399
-
2400
- return {
2401
- pageBg: resolve(exportSection.pageBg),
2402
- cardBg: resolve(exportSection.cardBg),
2403
- infoBg: resolve(exportSection.infoBg),
2404
- };
2658
+ return resolveThemeExportColors(themeJson);
2405
2659
  } catch {
2406
2660
  return {};
2407
2661
  }
@@ -2443,19 +2697,19 @@ function getHighlightColors(t: Theme): NativeHighlightColors {
2443
2697
  * switch (which always reassigns `theme`) must invalidate every entry.
2444
2698
  *
2445
2699
  * Why this exists: animated tool blocks (eval/bash) repaint their box on every
2446
- * ~16ms border-shimmer frame, and markdown re-lexes on every streamed delta.
2447
- * Without memoization each frame re-tokenizes an unchanged code body through the
2448
- * Rust FFI — ~26ms for 100 lines, ~40ms for 150 — overrunning the 16ms frame
2449
- * budget and starving the spinner/render timers (the "TUI freeze").
2700
+ * ~33ms border-shimmer frame, and markdown re-lexes on every streamed delta.
2701
+ * Without memoization each frame can re-tokenize an unchanged code body through
2702
+ * the Rust FFI — ~26ms for 100 lines, ~40ms for 150 — consuming or overrunning
2703
+ * the 33ms frame budget and starving the spinner/render timers (the "TUI freeze").
2450
2704
  */
2451
2705
  const HIGHLIGHT_CACHE_MAX = 256;
2452
2706
  const highlightCache = new LRUCache<string, string>({ max: HIGHLIGHT_CACHE_MAX });
2453
2707
  let highlightCacheTheme: Theme | undefined;
2454
2708
 
2455
- function highlightCached(code: string, validLang: string | undefined): string | null {
2456
- if (highlightCacheTheme !== theme) {
2709
+ function highlightCached(code: string, validLang: string | undefined, highlightTheme: Theme): string | null {
2710
+ if (highlightCacheTheme !== highlightTheme) {
2457
2711
  highlightCache.clear();
2458
- highlightCacheTheme = theme;
2712
+ highlightCacheTheme = highlightTheme;
2459
2713
  }
2460
2714
  const key = `${validLang ?? ""}\x00${code}`;
2461
2715
  const hit = highlightCache.get(key);
@@ -2464,7 +2718,7 @@ function highlightCached(code: string, validLang: string | undefined): string |
2464
2718
  }
2465
2719
  let highlighted: string;
2466
2720
  try {
2467
- highlighted = nativeHighlightCode(code, validLang, getHighlightColors(theme));
2721
+ highlighted = nativeHighlightCode(code, validLang, getHighlightColors(highlightTheme));
2468
2722
  } catch {
2469
2723
  return null;
2470
2724
  }
@@ -2476,9 +2730,9 @@ function highlightCached(code: string, validLang: string | undefined): string |
2476
2730
  * Highlight code with syntax coloring based on file extension or language.
2477
2731
  * Returns array of highlighted lines.
2478
2732
  */
2479
- export function highlightCode(code: string, lang?: string): string[] {
2733
+ export function highlightCode(code: string, lang?: string, highlightTheme: Theme = theme): string[] {
2480
2734
  const validLang = lang && nativeSupportsLanguage(lang) ? lang : undefined;
2481
- const highlighted = highlightCached(code, validLang);
2735
+ const highlighted = highlightCached(code, validLang, highlightTheme);
2482
2736
  // Always return a fresh array: callers (e.g. renderCodeCell) push extra lines
2483
2737
  // onto the result, which would corrupt the cached string otherwise.
2484
2738
  return (highlighted ?? code).split("\n");
@@ -2526,7 +2780,7 @@ export function getMarkdownTheme(): MarkdownTheme {
2526
2780
  resolveMermaidAscii,
2527
2781
  highlightCode: (code: string, lang?: string): string[] => {
2528
2782
  const validLang = lang && nativeSupportsLanguage(lang) ? lang : undefined;
2529
- const highlighted = highlightCached(code, validLang);
2783
+ const highlighted = highlightCached(code, validLang, theme);
2530
2784
  if (highlighted !== null) return highlighted.split("\n");
2531
2785
  return code.split("\n").map(line => theme.fg("mdCodeBlock", line));
2532
2786
  },
@@ -2544,6 +2798,7 @@ export function getSelectListTheme(): SelectListTheme {
2544
2798
  scrollInfo: (text: string) => theme.fg("muted", text),
2545
2799
  noMatch: (text: string) => theme.fg("muted", text),
2546
2800
  symbols: getSymbolTheme(),
2801
+ hovered: (text: string) => theme.bg("selectedBg", text),
2547
2802
  };
2548
2803
  }
2549
2804
 
@@ -2556,14 +2811,19 @@ export function getEditorTheme(): EditorTheme {
2556
2811
  };
2557
2812
  }
2558
2813
 
2559
- export function getSettingsListTheme(): import("@prometheus-ai/tui").SettingsListTheme {
2814
+ export function getSettingsListTheme(): SettingsListTheme {
2560
2815
  return {
2561
2816
  label: (text: string, selected: boolean, changed: boolean) =>
2562
2817
  changed ? theme.fg("statusLineGitDirty", text) : selected ? theme.fg("accent", text) : text,
2563
2818
  value: (text: string, selected: boolean, changed: boolean) =>
2564
- selected ? theme.fg("accent", text) : changed ? theme.fg("statusLineGitDirty", text) : theme.fg("muted", text),
2819
+ changed ? theme.fg("statusLineGitDirty", text) : selected ? theme.fg("accent", text) : theme.fg("muted", text),
2565
2820
  description: (text: string) => theme.fg("dim", text),
2566
2821
  cursor: theme.fg("accent", `${theme.nav.cursor} `),
2567
2822
  hint: (text: string) => theme.fg("dim", text),
2823
+ heading: (text: string, dimmed: boolean) =>
2824
+ dimmed ? theme.fg("dim", theme.underline(text)) : theme.fg("muted", theme.bold(theme.underline(text))),
2825
+ section: (text: string, active: boolean) =>
2826
+ active ? theme.fg("accent", theme.bold(text)) : theme.fg("muted", text),
2827
+ hovered: (text: string) => theme.bg("selectedBg", text),
2568
2828
  };
2569
2829
  }