@prometheus-ai/agent 0.5.3 → 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 (1160) hide show
  1. package/CHANGELOG.md +39 -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/gateway-cli.d.ts +4 -0
  37. package/dist/types/cli/grievances-cli.d.ts +1 -1
  38. package/dist/types/cli/list-models.d.ts +6 -14
  39. package/dist/types/cli/models-cli.d.ts +49 -0
  40. package/dist/types/cli/session-picker.d.ts +1 -1
  41. package/dist/types/cli/setup-cli.d.ts +1 -1
  42. package/dist/types/cli/setup-model-picker.d.ts +14 -0
  43. package/dist/types/cli/startup-cwd.d.ts +2 -0
  44. package/dist/types/cli/update-cli.d.ts +13 -40
  45. package/dist/types/cli/usage-cli.d.ts +81 -0
  46. package/dist/types/cli-commands.d.ts +12 -0
  47. package/dist/types/collab/crypto.d.ts +7 -0
  48. package/dist/types/collab/guest.d.ts +37 -0
  49. package/dist/types/collab/host.d.ts +29 -0
  50. package/dist/types/collab/protocol.d.ts +119 -0
  51. package/dist/types/collab/relay-client.d.ts +22 -0
  52. package/dist/types/commands/bench.d.ts +29 -0
  53. package/dist/types/commands/gallery.d.ts +47 -0
  54. package/dist/types/commands/gateway.d.ts +3 -0
  55. package/dist/types/commands/install.d.ts +1 -1
  56. package/dist/types/commands/join.d.ts +12 -0
  57. package/dist/types/commands/launch.d.ts +8 -4
  58. package/dist/types/commands/models.d.ts +33 -0
  59. package/dist/types/commands/read.d.ts +1 -1
  60. package/dist/types/commands/say.d.ts +24 -0
  61. package/dist/types/commands/token.d.ts +25 -0
  62. package/dist/types/commands/usage.d.ts +34 -0
  63. package/dist/types/commit/agentic/tools/analyze-file.d.ts +1 -1
  64. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +1 -1
  65. package/dist/types/commit/agentic/tools/git-hunk.d.ts +1 -1
  66. package/dist/types/commit/agentic/tools/git-overview.d.ts +1 -1
  67. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +1 -1
  68. package/dist/types/commit/agentic/tools/propose-commit.d.ts +1 -1
  69. package/dist/types/commit/agentic/tools/recent-commits.d.ts +1 -1
  70. package/dist/types/commit/agentic/tools/schemas.d.ts +1 -1
  71. package/dist/types/commit/agentic/tools/split-commit.d.ts +1 -1
  72. package/dist/types/commit/analysis/conventional.d.ts +2 -2
  73. package/dist/types/commit/analysis/summary.d.ts +2 -2
  74. package/dist/types/commit/changelog/generate.d.ts +3 -3
  75. package/dist/types/commit/changelog/index.d.ts +2 -2
  76. package/dist/types/commit/map-reduce/index.d.ts +3 -3
  77. package/dist/types/commit/map-reduce/map-phase.d.ts +2 -2
  78. package/dist/types/commit/map-reduce/reduce-phase.d.ts +2 -2
  79. package/dist/types/commit/model-selection.d.ts +10 -4
  80. package/dist/types/commit/shared-llm.d.ts +1 -1
  81. package/dist/types/config/api-key-resolver.d.ts +43 -0
  82. package/dist/types/config/append-only-context-mode.d.ts +2 -1
  83. package/dist/types/config/keybindings.d.ts +12 -7
  84. package/dist/types/config/model-discovery.d.ts +57 -0
  85. package/dist/types/config/model-equivalence.d.ts +1 -1
  86. package/dist/types/config/model-registry.d.ts +86 -222
  87. package/dist/types/config/model-resolver.d.ts +43 -12
  88. package/dist/types/config/model-roles.d.ts +29 -0
  89. package/dist/types/config/models-config-schema.d.ts +536 -43
  90. package/dist/types/config/models-config.d.ts +391 -0
  91. package/dist/types/config/settings-schema.d.ts +1211 -324
  92. package/dist/types/config/settings.d.ts +15 -3
  93. package/dist/types/dap/config.d.ts +14 -1
  94. package/dist/types/dap/types.d.ts +10 -0
  95. package/dist/types/debug/log-viewer.d.ts +1 -1
  96. package/dist/types/debug/raw-sse.d.ts +1 -1
  97. package/dist/types/debug/report-bundle.d.ts +3 -0
  98. package/dist/types/debug/terminal-info.d.ts +0 -1
  99. package/dist/types/discovery/at-imports.d.ts +15 -0
  100. package/dist/types/discovery/prometheus-extension-roots.d.ts +7 -7
  101. package/dist/types/edit/diff.d.ts +3 -2
  102. package/dist/types/edit/file-snapshot-store.d.ts +18 -0
  103. package/dist/types/edit/hashline/noop-loop-guard.d.ts +72 -0
  104. package/dist/types/edit/hashline/params.d.ts +1 -1
  105. package/dist/types/edit/index.d.ts +0 -1
  106. package/dist/types/edit/modes/apply-patch.d.ts +1 -1
  107. package/dist/types/edit/modes/patch.d.ts +1 -1
  108. package/dist/types/edit/modes/replace.d.ts +1 -1
  109. package/dist/types/edit/renderer.d.ts +1 -0
  110. package/dist/types/eval/__tests__/completion-bridge.test.d.ts +1 -0
  111. package/dist/types/eval/__tests__/helpers-local-roots.test.d.ts +1 -0
  112. package/dist/types/eval/__tests__/js-context-manager.test.d.ts +1 -0
  113. package/dist/types/eval/backend.d.ts +7 -2
  114. package/dist/types/eval/bridge-timeout.d.ts +1 -1
  115. package/dist/types/eval/completion-bridge.d.ts +25 -0
  116. package/dist/types/eval/idle-timeout.d.ts +1 -5
  117. package/dist/types/eval/js/context-manager.d.ts +1 -0
  118. package/dist/types/eval/js/executor.d.ts +2 -0
  119. package/dist/types/eval/js/index.d.ts +1 -1
  120. package/dist/types/eval/js/shared/helpers.d.ts +7 -1
  121. package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -6
  122. package/dist/types/eval/js/shared/runtime.d.ts +6 -1
  123. package/dist/types/eval/js/worker-protocol.d.ts +6 -0
  124. package/dist/types/eval/py/__tests__/prelude.test.d.ts +1 -0
  125. package/dist/types/eval/py/executor.d.ts +12 -0
  126. package/dist/types/eval/py/index.d.ts +1 -1
  127. package/dist/types/eval/py/kernel.d.ts +6 -1
  128. package/dist/types/eval/py/runtime.d.ts +9 -0
  129. package/dist/types/exa/index.d.ts +1 -19
  130. package/dist/types/exa/mcp-client.d.ts +10 -3
  131. package/dist/types/exa/types.d.ts +0 -83
  132. package/dist/types/exec/bash-executor.d.ts +7 -0
  133. package/dist/types/export/custom-share.d.ts +1 -2
  134. package/dist/types/export/html/index.d.ts +39 -0
  135. package/dist/types/export/html/template-js.d.ts +2 -0
  136. package/dist/types/export/share.d.ts +61 -0
  137. package/dist/types/export/ttsr.d.ts +14 -0
  138. package/dist/types/extensibility/custom-commands/types.d.ts +9 -4
  139. package/dist/types/extensibility/custom-tools/loader.d.ts +30 -4
  140. package/dist/types/extensibility/custom-tools/types.d.ts +16 -8
  141. package/dist/types/extensibility/extensions/index.d.ts +1 -1
  142. package/dist/types/extensibility/extensions/loader.d.ts +20 -1
  143. package/dist/types/extensibility/extensions/model-api.d.ts +17 -0
  144. package/dist/types/extensibility/extensions/runner.d.ts +5 -2
  145. package/dist/types/extensibility/extensions/types.d.ts +72 -11
  146. package/dist/types/extensibility/hooks/index.d.ts +2 -1
  147. package/dist/types/extensibility/hooks/loader.d.ts +1 -1
  148. package/dist/types/extensibility/hooks/types.d.ts +11 -5
  149. package/dist/types/extensibility/{legacy-pi-ai-shim.d.ts → legacy-package-ai-shim.d.ts} +2 -2
  150. package/dist/types/extensibility/plugins/{legacy-pi-compat.d.ts → legacy-package-compat.d.ts} +20 -3
  151. package/dist/types/extensibility/plugins/loader.d.ts +11 -0
  152. package/dist/types/extensibility/plugins/marketplace-auto-update.d.ts +8 -0
  153. package/dist/types/extensibility/plugins/types.d.ts +2 -2
  154. package/dist/types/extensibility/shared-events.d.ts +3 -3
  155. package/dist/types/extensibility/skills.d.ts +10 -0
  156. package/dist/types/extensibility/slash-commands.d.ts +1 -11
  157. package/dist/types/gateway/adapters/telegram/access.d.ts +4 -1
  158. package/dist/types/gateway/adapters/telegram/setup-api.d.ts +1 -1
  159. package/dist/types/gateway/adapters/telegram/webhook.d.ts +1 -1
  160. package/dist/types/gateway/types.d.ts +1 -1
  161. package/dist/types/goals/guided-setup.d.ts +18 -0
  162. package/dist/types/goals/state.d.ts +1 -1
  163. package/dist/types/goals/tools/goal-tool.d.ts +1 -1
  164. package/dist/types/hindsight/mental-models.d.ts +17 -8
  165. package/dist/types/hindsight/transcript.d.ts +1 -1
  166. package/dist/types/index.d.ts +5 -0
  167. package/dist/types/internal-urls/artifact-protocol.d.ts +2 -2
  168. package/dist/types/internal-urls/history-protocol.d.ts +14 -0
  169. package/dist/types/internal-urls/index.d.ts +1 -0
  170. package/dist/types/internal-urls/local-protocol.d.ts +14 -2
  171. package/dist/types/internal-urls/types.d.ts +1 -1
  172. package/dist/types/irc/bus.d.ts +79 -0
  173. package/dist/types/lib/xai-http.d.ts +1 -1
  174. package/dist/types/lsp/client.d.ts +10 -0
  175. package/dist/types/lsp/config.d.ts +2 -2
  176. package/dist/types/lsp/edits.d.ts +9 -0
  177. package/dist/types/lsp/format-options.d.ts +32 -0
  178. package/dist/types/lsp/index.d.ts +2 -7
  179. package/dist/types/lsp/types.d.ts +13 -1
  180. package/dist/types/lsp/utils.d.ts +6 -2
  181. package/dist/types/main.d.ts +23 -8
  182. package/dist/types/mcp/json-rpc.d.ts +5 -0
  183. package/dist/types/mcp/manager.d.ts +8 -0
  184. package/dist/types/mcp/oauth-discovery.d.ts +6 -1
  185. package/dist/types/mcp/oauth-flow.d.ts +13 -3
  186. package/dist/types/mcp/startup-events.d.ts +11 -0
  187. package/dist/types/mcp/tool-bridge.d.ts +2 -0
  188. package/dist/types/mcp/transports/stdio.d.ts +13 -0
  189. package/dist/types/mcp/types.d.ts +2 -0
  190. package/dist/types/memories/index.d.ts +7 -15
  191. package/dist/types/memories/storage.d.ts +0 -10
  192. package/dist/types/memory-backend/index.d.ts +3 -1
  193. package/dist/types/memory-backend/local-backend.d.ts +4 -3
  194. package/dist/types/memory-backend/resolve.d.ts +2 -2
  195. package/dist/types/memory-backend/runtime.d.ts +4 -0
  196. package/dist/types/memory-backend/types.d.ts +67 -2
  197. package/dist/types/mnemopi/config.d.ts +31 -1
  198. package/dist/types/mnemopi/state.d.ts +40 -2
  199. package/dist/types/modes/acp/acp-agent.d.ts +1 -2
  200. package/dist/types/modes/components/agent-dashboard.d.ts +17 -1
  201. package/dist/types/modes/components/agent-hub.d.ts +82 -0
  202. package/dist/types/modes/components/assistant-message.d.ts +5 -12
  203. package/dist/types/modes/components/bash-execution.d.ts +1 -1
  204. package/dist/types/modes/components/chat-block.d.ts +64 -0
  205. package/dist/types/modes/components/collab-prompt-message.d.ts +10 -0
  206. package/dist/types/modes/components/compaction-summary-message.d.ts +25 -5
  207. package/dist/types/modes/components/copy-selector.d.ts +1 -1
  208. package/dist/types/modes/components/custom-editor.d.ts +49 -2
  209. package/dist/types/modes/components/custom-editor.test.d.ts +1 -0
  210. package/dist/types/modes/components/dynamic-border.d.ts +1 -1
  211. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +1 -1
  212. package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
  213. package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
  214. package/dist/types/modes/components/footer.d.ts +1 -1
  215. package/dist/types/modes/components/hook-editor.d.ts +5 -0
  216. package/dist/types/modes/components/hook-input.d.ts +4 -0
  217. package/dist/types/modes/components/hook-selector.d.ts +5 -7
  218. package/dist/types/modes/components/index.d.ts +1 -0
  219. package/dist/types/modes/components/late-diagnostics-message.d.ts +20 -0
  220. package/dist/types/modes/components/logout-account-selector.d.ts +8 -0
  221. package/dist/types/modes/components/mcp-add-wizard.d.ts +2 -1
  222. package/dist/types/modes/components/model-selector.d.ts +1 -1
  223. package/dist/types/modes/components/oauth-selector.d.ts +10 -1
  224. package/dist/types/modes/components/overlay-box.d.ts +17 -0
  225. package/dist/types/modes/components/plan-review-overlay.d.ts +61 -0
  226. package/dist/types/modes/components/plan-toc.d.ts +41 -0
  227. package/dist/types/modes/components/read-tool-group.d.ts +8 -0
  228. package/dist/types/modes/components/reset-usage-selector.d.ts +12 -0
  229. package/dist/types/modes/components/segment-track.d.ts +11 -6
  230. package/dist/types/modes/components/session-selector.d.ts +18 -9
  231. package/dist/types/modes/components/settings-defs.d.ts +9 -2
  232. package/dist/types/modes/components/settings-selector.d.ts +17 -4
  233. package/dist/types/modes/components/snapcompact-shape-preview.d.ts +31 -0
  234. package/dist/types/modes/components/status-line/component.d.ts +61 -0
  235. package/dist/types/modes/components/status-line/index.d.ts +1 -0
  236. package/dist/types/modes/components/status-line/types.d.ts +47 -3
  237. package/dist/types/modes/components/tiny-title-download-progress.d.ts +1 -1
  238. package/dist/types/modes/components/tool-execution.d.ts +49 -2
  239. package/dist/types/modes/components/transcript-container.d.ts +76 -26
  240. package/dist/types/modes/components/tree-selector.d.ts +2 -2
  241. package/dist/types/modes/components/ttsr-notification.d.ts +5 -1
  242. package/dist/types/modes/components/usage-row.d.ts +3 -0
  243. package/dist/types/modes/components/user-message-selector.d.ts +1 -1
  244. package/dist/types/modes/components/user-message.d.ts +2 -1
  245. package/dist/types/modes/components/visual-truncate.d.ts +1 -1
  246. package/dist/types/modes/components/welcome.d.ts +12 -2
  247. package/dist/types/modes/controllers/command-controller.d.ts +3 -2
  248. package/dist/types/modes/controllers/event-controller.d.ts +7 -1
  249. package/dist/types/modes/controllers/extension-ui-controller.d.ts +0 -1
  250. package/dist/types/modes/controllers/input-controller.d.ts +25 -3
  251. package/dist/types/modes/controllers/mcp-command-controller.d.ts +8 -0
  252. package/dist/types/modes/controllers/selector-controller.d.ts +5 -2
  253. package/dist/types/modes/controllers/session-focus-controller.d.ts +31 -0
  254. package/dist/types/modes/controllers/streaming-reveal.d.ts +22 -0
  255. package/dist/types/modes/controllers/tan-command-controller.d.ts +6 -0
  256. package/dist/types/modes/controllers/tool-args-reveal.d.ts +43 -0
  257. package/dist/types/modes/gradient-highlight.d.ts +9 -4
  258. package/dist/types/modes/image-references.d.ts +14 -3
  259. package/dist/types/modes/index.d.ts +8 -7
  260. package/dist/types/modes/interactive-mode.d.ts +92 -16
  261. package/dist/types/modes/magic-keywords.d.ts +14 -2
  262. package/dist/types/modes/markdown-prose.d.ts +1 -1
  263. package/dist/types/modes/oauth-manual-input.d.ts +7 -0
  264. package/dist/types/modes/rpc/rpc-client.d.ts +48 -2
  265. package/dist/types/modes/rpc/rpc-mode.d.ts +67 -2
  266. package/dist/types/modes/rpc/rpc-subagents.d.ts +24 -0
  267. package/dist/types/modes/rpc/rpc-types.d.ts +113 -1
  268. package/dist/types/modes/runtime-init.d.ts +4 -0
  269. package/dist/types/modes/session-observer-registry.d.ts +9 -0
  270. package/dist/types/modes/setup-version.d.ts +11 -0
  271. package/dist/types/modes/setup-wizard/index.d.ts +7 -2
  272. package/dist/types/modes/setup-wizard/lazy.d.ts +2 -0
  273. package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +4 -1
  274. package/dist/types/modes/setup-wizard/scenes/types.d.ts +11 -2
  275. package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +6 -2
  276. package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +1 -1
  277. package/dist/types/modes/theme/theme.d.ts +42 -7
  278. package/dist/types/modes/types.d.ts +62 -13
  279. package/dist/types/modes/utils/context-usage.d.ts +6 -1
  280. package/dist/types/modes/utils/copy-targets.d.ts +21 -1
  281. package/dist/types/modes/utils/ui-helpers.d.ts +4 -4
  282. package/dist/types/modes/workflow.d.ts +3 -3
  283. package/dist/types/plan-mode/approved-plan.d.ts +27 -8
  284. package/dist/types/plan-mode/plan-protection.d.ts +4 -4
  285. package/dist/types/registry/agent-lifecycle.d.ts +51 -0
  286. package/dist/types/registry/agent-registry.d.ts +33 -5
  287. package/dist/types/sdk.d.ts +46 -4
  288. package/dist/types/secrets/index.d.ts +1 -1
  289. package/dist/types/secrets/obfuscator.d.ts +9 -3
  290. package/dist/types/session/agent-session.d.ts +136 -66
  291. package/dist/types/session/agent-storage.d.ts +2 -1
  292. package/dist/types/session/auth-broker-config.d.ts +4 -0
  293. package/dist/types/session/auth-storage.d.ts +1 -1
  294. package/dist/types/session/codex-auto-reset.d.ts +111 -0
  295. package/dist/types/session/indexed-session-storage.d.ts +3 -3
  296. package/dist/types/session/messages.d.ts +26 -15
  297. package/dist/types/session/session-context.d.ts +39 -0
  298. package/dist/types/session/session-entries.d.ts +159 -0
  299. package/dist/types/session/session-history-format.d.ts +12 -0
  300. package/dist/types/session/session-listing.d.ts +69 -0
  301. package/dist/types/session/session-loader.d.ts +16 -0
  302. package/dist/types/session/session-manager.d.ts +107 -440
  303. package/dist/types/session/session-migrations.d.ts +12 -0
  304. package/dist/types/session/session-paths.d.ts +25 -0
  305. package/dist/types/session/session-persistence.d.ts +8 -0
  306. package/dist/types/session/session-storage.d.ts +11 -7
  307. package/dist/types/session/snapcompact-inline.d.ts +145 -0
  308. package/dist/types/session/snapcompact-savings-journal.d.ts +46 -0
  309. package/dist/types/session/streaming-output.d.ts +46 -0
  310. package/dist/types/session/tool-choice-queue.d.ts +6 -6
  311. package/dist/types/session/yield-queue.d.ts +10 -1
  312. package/dist/types/slash-commands/acp-builtins.d.ts +16 -0
  313. package/dist/types/slash-commands/available-commands.d.ts +34 -0
  314. package/dist/types/slash-commands/builtin-registry.d.ts +10 -0
  315. package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +14 -0
  316. package/dist/types/slash-commands/helpers/logout.d.ts +15 -0
  317. package/dist/types/slash-commands/helpers/reset-usage.d.ts +27 -0
  318. package/dist/types/slash-commands/helpers/stats-dashboard.d.ts +13 -0
  319. package/dist/types/slash-commands/types.d.ts +5 -9
  320. package/dist/types/ssh/connection-manager.d.ts +8 -0
  321. package/dist/types/stt/asr-client.d.ts +90 -0
  322. package/dist/types/stt/asr-protocol.d.ts +97 -0
  323. package/dist/types/stt/asr-worker.d.ts +2 -0
  324. package/dist/types/stt/downloader.d.ts +38 -0
  325. package/dist/types/stt/endpointer.d.ts +59 -0
  326. package/dist/types/stt/index.d.ts +5 -1
  327. package/dist/types/stt/models.d.ts +120 -0
  328. package/dist/types/stt/recorder.d.ts +17 -0
  329. package/dist/types/stt/stt-controller.d.ts +6 -0
  330. package/dist/types/stt/transcriber.d.ts +5 -7
  331. package/dist/types/stt/wav.d.ts +29 -0
  332. package/dist/types/system-prompt.d.ts +9 -1
  333. package/dist/types/task/commands.d.ts +1 -1
  334. package/dist/types/task/discovery.d.ts +1 -2
  335. package/dist/types/task/executor.d.ts +61 -2
  336. package/dist/types/task/index.d.ts +37 -6
  337. package/dist/types/task/output-manager.d.ts +0 -7
  338. package/dist/types/task/parallel.d.ts +2 -2
  339. package/dist/types/task/prometheus-command.d.ts +2 -2
  340. package/dist/types/task/render.d.ts +20 -7
  341. package/dist/types/task/repair-args.d.ts +8 -7
  342. package/dist/types/task/types.d.ts +109 -52
  343. package/dist/types/task/worktree.d.ts +2 -0
  344. package/dist/types/telemetry-export.d.ts +2 -2
  345. package/dist/types/thinking.d.ts +4 -0
  346. package/dist/types/tiny/models.d.ts +1 -1
  347. package/dist/types/tiny/title-client.d.ts +12 -1
  348. package/dist/types/tiny/title-protocol.d.ts +1 -0
  349. package/dist/types/tools/archive-reader.d.ts +5 -0
  350. package/dist/types/tools/ask.d.ts +6 -1
  351. package/dist/types/tools/ast-edit.d.ts +4 -1
  352. package/dist/types/tools/ast-grep.d.ts +4 -1
  353. package/dist/types/tools/bash.d.ts +5 -2
  354. package/dist/types/tools/browser/attach.d.ts +4 -4
  355. package/dist/types/tools/browser/cmux/cmux-tab.d.ts +202 -0
  356. package/dist/types/tools/browser/cmux/rpc.d.ts +70 -0
  357. package/dist/types/tools/browser/cmux/socket-client.d.ts +19 -0
  358. package/dist/types/tools/browser/registry.d.ts +17 -3
  359. package/dist/types/tools/browser/render.d.ts +2 -0
  360. package/dist/types/tools/browser/tab-protocol.d.ts +2 -0
  361. package/dist/types/tools/browser/tab-supervisor.d.ts +16 -4
  362. package/dist/types/tools/browser/tab-worker.d.ts +18 -1
  363. package/dist/types/tools/browser.d.ts +3 -1
  364. package/dist/types/tools/checkpoint.d.ts +1 -1
  365. package/dist/types/tools/conflict-detect.d.ts +16 -0
  366. package/dist/types/tools/debug.d.ts +1 -1
  367. package/dist/types/tools/eval-render.d.ts +1 -8
  368. package/dist/types/tools/eval.d.ts +9 -1
  369. package/dist/types/tools/fetch.d.ts +17 -8
  370. package/dist/types/tools/find.d.ts +1 -8
  371. package/dist/types/tools/gh-cache-invalidation.d.ts +6 -0
  372. package/dist/types/tools/gh.d.ts +4 -1
  373. package/dist/types/tools/github-cache.d.ts +19 -0
  374. package/dist/types/tools/grouped-file-output.d.ts +46 -12
  375. package/dist/types/tools/image-gen.d.ts +1 -1
  376. package/dist/types/tools/index.d.ts +89 -8
  377. package/dist/types/tools/inspect-image.d.ts +1 -1
  378. package/dist/types/tools/irc.d.ts +79 -39
  379. package/dist/types/tools/job.d.ts +8 -2
  380. package/dist/types/tools/learn.d.ts +51 -0
  381. package/dist/types/tools/manage-skill.d.ts +40 -0
  382. package/dist/types/tools/memory-edit.d.ts +2 -2
  383. package/dist/types/tools/memory-recall.d.ts +1 -1
  384. package/dist/types/tools/memory-reflect.d.ts +1 -1
  385. package/dist/types/tools/memory-render.d.ts +4 -1
  386. package/dist/types/tools/memory-retain.d.ts +1 -1
  387. package/dist/types/tools/path-utils.d.ts +17 -5
  388. package/dist/types/tools/plan-mode-guard.d.ts +18 -9
  389. package/dist/types/tools/read.d.ts +3 -2
  390. package/dist/types/tools/render-mermaid.d.ts +1 -1
  391. package/dist/types/tools/render-utils.d.ts +47 -27
  392. package/dist/types/tools/renderers.d.ts +10 -2
  393. package/dist/types/tools/report-tool-issue.d.ts +6 -1
  394. package/dist/types/tools/resolve.d.ts +1 -1
  395. package/dist/types/tools/review.d.ts +1 -1
  396. package/dist/types/tools/search-tool-bm25.d.ts +1 -1
  397. package/dist/types/tools/search.d.ts +7 -3
  398. package/dist/types/tools/sqlite-reader.d.ts +4 -0
  399. package/dist/types/tools/ssh.d.ts +2 -1
  400. package/dist/types/tools/todo.d.ts +7 -15
  401. package/dist/types/tools/tool-result.d.ts +2 -0
  402. package/dist/types/tools/tool-timeouts.d.ts +1 -1
  403. package/dist/types/tools/tts.d.ts +26 -1
  404. package/dist/types/tools/write.d.ts +6 -3
  405. package/dist/types/tools/yield.d.ts +8 -0
  406. package/dist/types/tts/downloader.d.ts +20 -0
  407. package/dist/types/tts/index.d.ts +8 -0
  408. package/dist/types/tts/models.d.ts +82 -0
  409. package/dist/types/tts/player.d.ts +32 -0
  410. package/dist/types/tts/runtime.d.ts +6 -0
  411. package/dist/types/tts/streaming-player.d.ts +41 -0
  412. package/dist/types/tts/tts-client.d.ts +93 -0
  413. package/dist/types/tts/tts-protocol.d.ts +95 -0
  414. package/dist/types/tts/tts-worker.d.ts +2 -0
  415. package/dist/types/tts/vocalizer.d.ts +41 -0
  416. package/dist/types/tts/wav.d.ts +8 -0
  417. package/dist/types/tui/code-cell.d.ts +0 -2
  418. package/dist/types/tui/hyperlink.d.ts +13 -7
  419. package/dist/types/tui/output-block.d.ts +16 -22
  420. package/dist/types/tui/status-line.d.ts +3 -0
  421. package/dist/types/utils/block-context.d.ts +35 -0
  422. package/dist/types/utils/changelog.d.ts +8 -0
  423. package/dist/types/utils/clipboard.d.ts +4 -3
  424. package/dist/types/utils/enhanced-paste.d.ts +20 -0
  425. package/dist/types/utils/file-mentions.d.ts +7 -0
  426. package/dist/types/utils/git.d.ts +22 -3
  427. package/dist/types/utils/image-loading.d.ts +30 -1
  428. package/dist/types/utils/session-color.d.ts +15 -3
  429. package/dist/types/utils/thinking-display.d.ts +17 -0
  430. package/dist/types/utils/title-generator.d.ts +3 -2
  431. package/dist/types/utils/tool-choice.d.ts +8 -0
  432. package/dist/types/utils/tools-manager.d.ts +2 -1
  433. package/dist/types/web/kagi.d.ts +2 -2
  434. package/dist/types/web/parallel.d.ts +3 -0
  435. package/dist/types/web/scrapers/github.d.ts +22 -0
  436. package/dist/types/web/scrapers/readthedocs.d.ts +3 -0
  437. package/dist/types/web/scrapers/types.d.ts +12 -0
  438. package/dist/types/web/search/index.d.ts +1 -1
  439. package/dist/types/web/search/providers/anthropic.d.ts +2 -1
  440. package/dist/types/web/search/providers/base.d.ts +2 -1
  441. package/dist/types/web/search/providers/brave.d.ts +2 -1
  442. package/dist/types/web/search/providers/codex.d.ts +2 -1
  443. package/dist/types/web/search/providers/exa.d.ts +2 -1
  444. package/dist/types/web/search/providers/gemini.d.ts +10 -6
  445. package/dist/types/web/search/providers/jina.d.ts +7 -2
  446. package/dist/types/web/search/providers/kagi.d.ts +7 -2
  447. package/dist/types/web/search/providers/kimi.d.ts +7 -2
  448. package/dist/types/web/search/providers/parallel.d.ts +2 -1
  449. package/dist/types/web/search/providers/perplexity.d.ts +10 -2
  450. package/dist/types/web/search/providers/searxng.d.ts +2 -1
  451. package/dist/types/web/search/providers/synthetic.d.ts +7 -3
  452. package/dist/types/web/search/providers/tavily.d.ts +2 -1
  453. package/dist/types/web/search/providers/zai.d.ts +2 -1
  454. package/dist/types/web/search/types.d.ts +1 -1
  455. package/examples/extensions/api-demo.ts +2 -2
  456. package/package.json +41 -15
  457. package/scripts/bench-guard.ts +71 -0
  458. package/scripts/build-binary.ts +24 -25
  459. package/scripts/bundle-dist.ts +97 -0
  460. package/scripts/generate-share-viewer.ts +34 -0
  461. package/scripts/prometheus +42 -0
  462. package/scripts/prometheus.ts +20 -0
  463. package/src/async/index.ts +0 -1
  464. package/src/async/job-manager.ts +106 -3
  465. package/src/auto-thinking/classifier.ts +2 -1
  466. package/src/autolearn/controller.ts +139 -0
  467. package/src/autolearn/managed-skills.ts +257 -0
  468. package/src/autoresearch/dashboard.ts +1 -1
  469. package/src/autoresearch/prompt-setup.md +6 -6
  470. package/src/autoresearch/prompt.md +6 -6
  471. package/src/autoresearch/state.ts +1 -1
  472. package/src/autoresearch/storage.ts +2 -1
  473. package/src/autoresearch/tools/init-experiment.ts +1 -1
  474. package/src/autoresearch/tools/log-experiment.ts +1 -1
  475. package/src/autoresearch/tools/run-experiment.ts +1 -1
  476. package/src/autoresearch/tools/update-notes.ts +1 -1
  477. package/src/autoresearch/types.ts +1 -1
  478. package/src/capability/context-file.ts +0 -14
  479. package/src/capability/fs.ts +10 -0
  480. package/src/capability/index.ts +1 -6
  481. package/src/capability/mcp.ts +1 -0
  482. package/src/capability/rule-buckets.ts +4 -2
  483. package/src/capability/rule.ts +10 -1
  484. package/src/capability/types.ts +0 -4
  485. package/src/cli/args.ts +66 -13
  486. package/src/cli/auth-broker-cli.ts +6 -7
  487. package/src/cli/auth-gateway-cli.ts +8 -9
  488. package/src/cli/bench-cli.ts +437 -0
  489. package/src/cli/claude-trace-cli.ts +28 -50
  490. package/src/cli/completion-gen.ts +28 -28
  491. package/src/cli/dry-balance-cli.ts +56 -23
  492. package/src/cli/gallery-cli.ts +231 -0
  493. package/src/cli/gallery-fixtures/agentic.ts +407 -0
  494. package/src/cli/gallery-fixtures/codeintel.ts +187 -0
  495. package/src/cli/gallery-fixtures/edit.ts +194 -0
  496. package/src/cli/gallery-fixtures/fs.ts +220 -0
  497. package/src/cli/gallery-fixtures/index.ts +40 -0
  498. package/src/cli/gallery-fixtures/interaction.ts +49 -0
  499. package/src/cli/gallery-fixtures/memory.ts +81 -0
  500. package/src/cli/gallery-fixtures/misc.ts +250 -0
  501. package/src/cli/gallery-fixtures/search.ts +213 -0
  502. package/src/cli/gallery-fixtures/shell.ts +167 -0
  503. package/src/cli/gallery-fixtures/types.ts +57 -0
  504. package/src/cli/gallery-fixtures/web.ts +158 -0
  505. package/src/cli/gallery-screenshot.ts +279 -0
  506. package/src/cli/gateway-cli.ts +32 -2
  507. package/src/cli/grievances-cli.ts +1 -1
  508. package/src/cli/list-models.ts +16 -174
  509. package/src/cli/models-cli.ts +429 -0
  510. package/src/cli/session-picker.ts +2 -1
  511. package/src/cli/setup-cli.ts +148 -47
  512. package/src/cli/setup-model-picker.ts +43 -0
  513. package/src/cli/startup-cwd.ts +68 -0
  514. package/src/cli/update-cli.ts +144 -272
  515. package/src/cli/usage-cli.ts +774 -0
  516. package/src/cli-commands.ts +36 -0
  517. package/src/cli.ts +141 -32
  518. package/src/collab/crypto.ts +63 -0
  519. package/src/collab/guest.ts +451 -0
  520. package/src/collab/host.ts +565 -0
  521. package/src/collab/protocol.ts +241 -0
  522. package/src/collab/relay-client.ts +216 -0
  523. package/src/commands/bench.ts +42 -0
  524. package/src/commands/complete.ts +1 -1
  525. package/src/commands/gallery.ts +52 -0
  526. package/src/commands/gateway.ts +4 -0
  527. package/src/commands/install.ts +1 -1
  528. package/src/commands/join.ts +39 -0
  529. package/src/commands/launch.ts +8 -4
  530. package/src/commands/models.ts +61 -0
  531. package/src/commands/read.ts +6 -3
  532. package/src/commands/say.ts +102 -0
  533. package/src/commands/setup.ts +1 -1
  534. package/src/commands/token.ts +89 -0
  535. package/src/commands/usage.ts +43 -0
  536. package/src/commit/agentic/agent.ts +2 -1
  537. package/src/commit/agentic/tools/analyze-file.ts +42 -20
  538. package/src/commit/agentic/tools/git-file-diff.ts +1 -1
  539. package/src/commit/agentic/tools/git-hunk.ts +1 -1
  540. package/src/commit/agentic/tools/git-overview.ts +1 -1
  541. package/src/commit/agentic/tools/propose-changelog.ts +1 -1
  542. package/src/commit/agentic/tools/propose-commit.ts +1 -1
  543. package/src/commit/agentic/tools/recent-commits.ts +1 -1
  544. package/src/commit/agentic/tools/schemas.ts +1 -1
  545. package/src/commit/agentic/tools/split-commit.ts +9 -2
  546. package/src/commit/analysis/conventional.ts +2 -2
  547. package/src/commit/analysis/summary.ts +3 -3
  548. package/src/commit/changelog/generate.ts +3 -3
  549. package/src/commit/changelog/index.ts +2 -2
  550. package/src/commit/map-reduce/index.ts +3 -3
  551. package/src/commit/map-reduce/map-phase.ts +2 -2
  552. package/src/commit/map-reduce/reduce-phase.ts +2 -2
  553. package/src/commit/model-selection.ts +35 -12
  554. package/src/commit/pipeline.ts +4 -4
  555. package/src/commit/shared-llm.ts +1 -1
  556. package/src/config/api-key-resolver.ts +67 -0
  557. package/src/config/append-only-context-mode.ts +6 -12
  558. package/src/config/keybindings.ts +9 -4
  559. package/src/config/mcp-schema.json +4 -0
  560. package/src/config/model-discovery.ts +574 -0
  561. package/src/config/model-equivalence.ts +5 -4
  562. package/src/config/model-registry.ts +659 -1093
  563. package/src/config/model-resolver.ts +374 -174
  564. package/src/config/model-roles.ts +88 -0
  565. package/src/config/models-config-schema.ts +61 -9
  566. package/src/config/models-config.ts +130 -0
  567. package/src/config/settings-schema.ts +1445 -382
  568. package/src/config/settings.ts +261 -69
  569. package/src/dap/client.ts +138 -53
  570. package/src/dap/config.ts +41 -2
  571. package/src/dap/defaults.json +1 -0
  572. package/src/dap/session.ts +263 -161
  573. package/src/dap/types.ts +10 -0
  574. package/src/debug/index.ts +50 -60
  575. package/src/debug/log-viewer.ts +1 -1
  576. package/src/debug/protocol-probe.ts +1 -1
  577. package/src/debug/raw-sse-buffer.ts +7 -4
  578. package/src/debug/raw-sse.ts +1 -1
  579. package/src/debug/report-bundle.ts +9 -0
  580. package/src/debug/terminal-info.ts +0 -3
  581. package/src/discovery/agents-md.ts +25 -21
  582. package/src/discovery/agents.ts +9 -15
  583. package/src/discovery/at-imports.ts +273 -0
  584. package/src/discovery/builtin-rules/index.ts +4 -0
  585. package/src/discovery/builtin-rules/ts-no-test-timers.md +55 -0
  586. package/src/discovery/builtin-rules/ts-redundant-clear-guard.md +75 -0
  587. package/src/discovery/builtin.ts +45 -23
  588. package/src/discovery/claude-plugins.ts +44 -5
  589. package/src/discovery/helpers.ts +50 -9
  590. package/src/discovery/prometheus-extension-roots.ts +10 -10
  591. package/src/discovery/prometheus-plugins.ts +10 -10
  592. package/src/edit/diff.ts +191 -4
  593. package/src/edit/file-snapshot-store.ts +34 -1
  594. package/src/edit/hashline/block-resolver.ts +20 -1
  595. package/src/edit/hashline/diff.ts +123 -2
  596. package/src/edit/hashline/execute.ts +60 -4
  597. package/src/edit/hashline/filesystem.ts +2 -1
  598. package/src/edit/hashline/noop-loop-guard.ts +99 -0
  599. package/src/edit/hashline/params.ts +1 -1
  600. package/src/edit/index.ts +47 -18
  601. package/src/edit/modes/apply-patch.ts +1 -1
  602. package/src/edit/modes/patch.ts +59 -3
  603. package/src/edit/modes/replace.ts +58 -24
  604. package/src/edit/notebook.ts +22 -2
  605. package/src/edit/renderer.ts +315 -151
  606. package/src/eval/__tests__/agent-bridge.test.ts +105 -39
  607. package/src/eval/__tests__/budget-bridge.test.ts +1 -1
  608. package/src/eval/__tests__/completion-bridge.test.ts +412 -0
  609. package/src/eval/__tests__/helpers-local-roots.test.ts +58 -0
  610. package/src/eval/__tests__/js-context-manager.test.ts +241 -0
  611. package/src/eval/__tests__/llm-bridge.test.ts +6 -4
  612. package/src/eval/__tests__/shared-executors.test.ts +34 -92
  613. package/src/eval/agent-bridge.ts +39 -23
  614. package/src/eval/backend.ts +15 -2
  615. package/src/eval/bridge-timeout.ts +1 -1
  616. package/src/eval/completion-bridge.ts +203 -0
  617. package/src/eval/idle-timeout.ts +3 -10
  618. package/src/eval/js/context-manager.ts +108 -31
  619. package/src/eval/js/executor.ts +9 -2
  620. package/src/eval/js/index.ts +7 -3
  621. package/src/eval/js/shared/helpers.ts +59 -13
  622. package/src/eval/js/shared/local-module-loader.ts +2 -2
  623. package/src/eval/js/shared/prelude.txt +167 -30
  624. package/src/eval/js/shared/rewrite-imports.ts +58 -34
  625. package/src/eval/js/shared/runtime.ts +24 -16
  626. package/src/eval/js/tool-bridge.ts +4 -0
  627. package/src/eval/js/worker-core.ts +1 -0
  628. package/src/eval/js/worker-entry.ts +6 -0
  629. package/src/eval/js/worker-protocol.ts +6 -0
  630. package/src/eval/llm-bridge.ts +2 -1
  631. package/src/eval/py/__tests__/prelude.test.ts +19 -0
  632. package/src/eval/py/executor.ts +70 -26
  633. package/src/eval/py/index.ts +13 -4
  634. package/src/eval/py/kernel.ts +48 -9
  635. package/src/eval/py/prelude.py +73 -24
  636. package/src/eval/py/runner.py +133 -28
  637. package/src/eval/py/runtime.ts +38 -1
  638. package/src/exa/index.ts +1 -26
  639. package/src/exa/mcp-client.ts +10 -10
  640. package/src/exa/types.ts +0 -97
  641. package/src/exec/bash-executor.ts +104 -7
  642. package/src/export/custom-share.ts +1 -1
  643. package/src/export/html/index.ts +119 -17
  644. package/src/export/html/share-loader.js +102 -0
  645. package/src/export/html/template-js.ts +6 -0
  646. package/src/export/html/template.css +745 -459
  647. package/src/export/html/template.css.d.ts +2 -0
  648. package/src/export/html/template.html +6 -3
  649. package/src/export/html/template.js +277 -891
  650. package/src/export/html/tool-views.generated.d.ts +2 -0
  651. package/src/export/html/tool-views.generated.js +38 -0
  652. package/src/export/share.ts +269 -0
  653. package/src/export/ttsr.ts +122 -1
  654. package/src/extensibility/custom-commands/loader.ts +7 -4
  655. package/src/extensibility/custom-commands/types.ts +9 -4
  656. package/src/extensibility/custom-tools/loader.ts +51 -23
  657. package/src/extensibility/custom-tools/types.ts +16 -8
  658. package/src/extensibility/extensions/get-commands-handler.ts +2 -1
  659. package/src/extensibility/extensions/index.ts +1 -0
  660. package/src/extensibility/extensions/loader.ts +70 -20
  661. package/src/extensibility/extensions/model-api.ts +41 -0
  662. package/src/extensibility/extensions/runner.ts +12 -2
  663. package/src/extensibility/extensions/types.ts +83 -11
  664. package/src/extensibility/extensions/wrapper.ts +41 -5
  665. package/src/extensibility/hooks/index.ts +2 -1
  666. package/src/extensibility/hooks/loader.ts +6 -3
  667. package/src/extensibility/hooks/types.ts +11 -5
  668. package/src/extensibility/{legacy-pi-ai-shim.ts → legacy-package-ai-shim.ts} +2 -2
  669. package/src/extensibility/plugins/doctor.ts +1 -2
  670. package/src/extensibility/plugins/installer.ts +2 -2
  671. package/src/extensibility/plugins/{legacy-pi-compat.ts → legacy-package-compat.ts} +165 -77
  672. package/src/extensibility/plugins/loader.ts +34 -23
  673. package/src/extensibility/plugins/manager.ts +226 -95
  674. package/src/extensibility/plugins/marketplace-auto-update.ts +49 -0
  675. package/src/extensibility/plugins/types.ts +3 -3
  676. package/src/extensibility/shared-events.ts +3 -3
  677. package/src/extensibility/skills.ts +113 -9
  678. package/src/extensibility/slash-commands.ts +1 -97
  679. package/src/gateway/adapters/telegram/access.ts +39 -4
  680. package/src/gateway/adapters/telegram/normalize.ts +16 -1
  681. package/src/gateway/adapters/telegram/setup-api.ts +7 -1
  682. package/src/gateway/adapters/telegram/webhook.ts +26 -5
  683. package/src/gateway/context.ts +9 -1
  684. package/src/gateway/types.ts +1 -1
  685. package/src/goals/guided-setup.ts +133 -0
  686. package/src/goals/state.ts +1 -1
  687. package/src/goals/tools/goal-tool.ts +38 -28
  688. package/src/hindsight/bank.ts +17 -2
  689. package/src/hindsight/client.ts +27 -2
  690. package/src/hindsight/mental-models.ts +59 -12
  691. package/src/hindsight/state.ts +12 -3
  692. package/src/hindsight/transcript.ts +1 -1
  693. package/src/index.ts +5 -0
  694. package/src/internal-urls/artifact-protocol.ts +11 -2
  695. package/src/internal-urls/docs-index.generated.ts +11 -9
  696. package/src/internal-urls/history-protocol.ts +113 -0
  697. package/src/internal-urls/index.ts +1 -0
  698. package/src/internal-urls/issue-pr-protocol.ts +22 -9
  699. package/src/internal-urls/local-protocol.ts +42 -7
  700. package/src/internal-urls/memory-protocol.ts +4 -31
  701. package/src/internal-urls/router.ts +3 -1
  702. package/src/internal-urls/types.ts +1 -1
  703. package/src/irc/bus.ts +303 -0
  704. package/src/lib/xai-http.ts +3 -3
  705. package/src/lsp/client.ts +245 -104
  706. package/src/lsp/clients/biome-client.ts +101 -39
  707. package/src/lsp/clients/lsp-linter-client.ts +2 -10
  708. package/src/lsp/config.ts +15 -5
  709. package/src/lsp/defaults.json +6 -0
  710. package/src/lsp/edits.ts +143 -95
  711. package/src/lsp/format-options.ts +119 -0
  712. package/src/lsp/index.ts +233 -93
  713. package/src/lsp/render.ts +11 -35
  714. package/src/lsp/types.ts +13 -1
  715. package/src/lsp/utils.ts +31 -12
  716. package/src/main.ts +396 -216
  717. package/src/mcp/config-writer.ts +7 -3
  718. package/src/mcp/json-rpc.ts +35 -5
  719. package/src/mcp/manager.ts +31 -16
  720. package/src/mcp/oauth-discovery.ts +34 -4
  721. package/src/mcp/oauth-flow.ts +61 -8
  722. package/src/mcp/render.ts +7 -1
  723. package/src/mcp/startup-events.ts +21 -0
  724. package/src/mcp/tool-bridge.ts +2 -0
  725. package/src/mcp/transports/stdio.ts +224 -4
  726. package/src/mcp/types.ts +2 -0
  727. package/src/memories/index.ts +174 -1128
  728. package/src/memories/storage.ts +2 -41
  729. package/src/memory-backend/index.ts +14 -1
  730. package/src/memory-backend/local-backend.ts +18 -3
  731. package/src/memory-backend/off-backend.ts +9 -0
  732. package/src/memory-backend/resolve.ts +4 -6
  733. package/src/memory-backend/runtime.ts +66 -0
  734. package/src/memory-backend/types.ts +82 -2
  735. package/src/mnemopi/backend.ts +220 -28
  736. package/src/mnemopi/config.ts +138 -33
  737. package/src/mnemopi/state.ts +91 -11
  738. package/src/modes/acp/acp-agent.ts +149 -142
  739. package/src/modes/acp/acp-event-mapper.ts +5 -1
  740. package/src/modes/components/agent-dashboard.ts +17 -11
  741. package/src/modes/components/agent-hub.ts +1346 -0
  742. package/src/modes/components/assistant-message.ts +190 -80
  743. package/src/modes/components/bash-execution.ts +1 -1
  744. package/src/modes/components/btw-panel.ts +5 -1
  745. package/src/modes/components/chat-block.ts +111 -0
  746. package/src/modes/components/collab-prompt-message.ts +30 -0
  747. package/src/modes/components/compaction-summary-message.ts +168 -33
  748. package/src/modes/components/copy-selector.ts +2 -45
  749. package/src/modes/components/custom-editor.test.ts +96 -0
  750. package/src/modes/components/custom-editor.ts +405 -118
  751. package/src/modes/components/custom-message.ts +1 -3
  752. package/src/modes/components/diff.ts +13 -2
  753. package/src/modes/components/dynamic-border.ts +12 -3
  754. package/src/modes/components/execution-shared.ts +1 -2
  755. package/src/modes/components/extensions/extension-dashboard.ts +8 -5
  756. package/src/modes/components/extensions/extension-list.ts +1 -1
  757. package/src/modes/components/extensions/inspector-panel.ts +7 -3
  758. package/src/modes/components/extensions/state-manager.ts +36 -41
  759. package/src/modes/components/footer.ts +4 -2
  760. package/src/modes/components/history-search.ts +1 -1
  761. package/src/modes/components/hook-editor.ts +8 -0
  762. package/src/modes/components/hook-input.ts +8 -0
  763. package/src/modes/components/hook-message.ts +1 -3
  764. package/src/modes/components/hook-selector.ts +6 -7
  765. package/src/modes/components/index.ts +1 -0
  766. package/src/modes/components/late-diagnostics-message.ts +60 -0
  767. package/src/modes/components/login-dialog.ts +1 -1
  768. package/src/modes/components/logout-account-selector.ts +130 -0
  769. package/src/modes/components/mcp-add-wizard.ts +14 -1
  770. package/src/modes/components/model-selector.ts +177 -75
  771. package/src/modes/components/oauth-selector.ts +102 -16
  772. package/src/modes/components/overlay-box.ts +108 -0
  773. package/src/modes/components/plan-review-overlay.ts +845 -0
  774. package/src/modes/components/plan-toc.ts +138 -0
  775. package/src/modes/components/plugin-settings.ts +22 -5
  776. package/src/modes/components/read-tool-group.ts +442 -39
  777. package/src/modes/components/reset-usage-selector.ts +161 -0
  778. package/src/modes/components/segment-track.ts +44 -7
  779. package/src/modes/components/session-selector.ts +97 -37
  780. package/src/modes/components/settings-defs.ts +28 -6
  781. package/src/modes/components/settings-selector.ts +541 -93
  782. package/src/modes/components/skill-message.ts +0 -1
  783. package/src/modes/components/snapcompact-shape-preview-doc.md +11 -0
  784. package/src/modes/components/snapcompact-shape-preview.ts +193 -0
  785. package/src/modes/components/{status-line.ts → status-line/component.ts} +205 -168
  786. package/src/modes/components/status-line/index.ts +1 -0
  787. package/src/modes/components/status-line/presets.ts +3 -3
  788. package/src/modes/components/status-line/segments.ts +26 -7
  789. package/src/modes/components/status-line/types.ts +40 -9
  790. package/src/modes/components/tiny-title-download-progress.ts +1 -1
  791. package/src/modes/components/tips.txt +7 -3
  792. package/src/modes/components/todo-reminder.ts +0 -2
  793. package/src/modes/components/tool-execution.ts +236 -103
  794. package/src/modes/components/transcript-container.ts +724 -99
  795. package/src/modes/components/tree-selector.ts +19 -4
  796. package/src/modes/components/ttsr-notification.ts +72 -30
  797. package/src/modes/components/usage-row.ts +18 -0
  798. package/src/modes/components/user-message-selector.ts +1 -1
  799. package/src/modes/components/user-message.ts +28 -12
  800. package/src/modes/components/visual-truncate.ts +1 -1
  801. package/src/modes/components/welcome.ts +80 -22
  802. package/src/modes/controllers/command-controller-shared.ts +7 -6
  803. package/src/modes/controllers/command-controller.ts +210 -180
  804. package/src/modes/controllers/event-controller.ts +352 -142
  805. package/src/modes/controllers/extension-ui-controller.ts +167 -208
  806. package/src/modes/controllers/input-controller.ts +778 -162
  807. package/src/modes/controllers/mcp-command-controller.ts +232 -80
  808. package/src/modes/controllers/selector-controller.ts +284 -145
  809. package/src/modes/controllers/session-focus-controller.ts +112 -0
  810. package/src/modes/controllers/ssh-command-controller.ts +2 -2
  811. package/src/modes/controllers/streaming-reveal.ts +295 -0
  812. package/src/modes/controllers/tan-command-controller.ts +173 -0
  813. package/src/modes/controllers/tool-args-reveal.ts +174 -0
  814. package/src/modes/gradient-highlight.ts +21 -9
  815. package/src/modes/image-references.ts +33 -7
  816. package/src/modes/index.ts +8 -25
  817. package/src/modes/interactive-mode.ts +840 -186
  818. package/src/modes/magic-keywords.ts +28 -6
  819. package/src/modes/markdown-prose.ts +1 -1
  820. package/src/modes/oauth-manual-input.ts +30 -3
  821. package/src/modes/rpc/rpc-client.ts +186 -3
  822. package/src/modes/rpc/rpc-mode.ts +318 -24
  823. package/src/modes/rpc/rpc-subagents.ts +265 -0
  824. package/src/modes/rpc/rpc-types.ts +111 -2
  825. package/src/modes/runtime-init.ts +28 -3
  826. package/src/modes/session-observer-registry.ts +72 -3
  827. package/src/modes/setup-version.ts +11 -0
  828. package/src/modes/setup-wizard/index.ts +16 -4
  829. package/src/modes/setup-wizard/lazy.ts +16 -0
  830. package/src/modes/setup-wizard/scenes/glyph.ts +25 -7
  831. package/src/modes/setup-wizard/scenes/providers.ts +45 -12
  832. package/src/modes/setup-wizard/scenes/sign-in.ts +14 -13
  833. package/src/modes/setup-wizard/scenes/splash.ts +1 -1
  834. package/src/modes/setup-wizard/scenes/telegram.ts +77 -22
  835. package/src/modes/setup-wizard/scenes/theme.ts +29 -2
  836. package/src/modes/setup-wizard/scenes/types.ts +11 -2
  837. package/src/modes/setup-wizard/scenes/web-search.ts +26 -9
  838. package/src/modes/setup-wizard/wizard-overlay.ts +40 -3
  839. package/src/modes/shared.ts +2 -0
  840. package/src/modes/theme/defaults/dark-poimandres.json +1 -1
  841. package/src/modes/theme/defaults/light-poimandres.json +1 -1
  842. package/src/modes/theme/shimmer.ts +20 -9
  843. package/src/modes/theme/theme-schema.json +1 -1
  844. package/src/modes/theme/theme.ts +342 -82
  845. package/src/modes/types.ts +60 -18
  846. package/src/modes/utils/context-usage.ts +88 -8
  847. package/src/modes/utils/copy-targets.ts +133 -27
  848. package/src/modes/utils/hotkeys-markdown.ts +3 -2
  849. package/src/modes/utils/ui-helpers.ts +191 -110
  850. package/src/modes/workflow.ts +10 -10
  851. package/src/plan-mode/approved-plan.ts +66 -43
  852. package/src/plan-mode/plan-protection.ts +4 -4
  853. package/src/priority.json +5 -1
  854. package/src/prompts/agents/designer.md +1 -1
  855. package/src/prompts/agents/explore.md +3 -3
  856. package/src/prompts/agents/librarian.md +2 -3
  857. package/src/prompts/agents/oracle.md +2 -2
  858. package/src/prompts/agents/plan.md +6 -6
  859. package/src/prompts/agents/reviewer.md +1 -1
  860. package/src/prompts/agents/task.md +6 -5
  861. package/src/prompts/bench.md +12 -0
  862. package/src/prompts/ci-green-request.md +5 -7
  863. package/src/prompts/goals/goal-budget-limit.md +2 -2
  864. package/src/prompts/goals/goal-continuation.md +4 -4
  865. package/src/prompts/goals/goal-mode-active.md +1 -1
  866. package/src/prompts/goals/guided-goal-interview.md +8 -0
  867. package/src/prompts/goals/guided-goal-system.md +12 -0
  868. package/src/prompts/memories/consolidation.md +2 -7
  869. package/src/prompts/memories/consolidation_system.md +4 -0
  870. package/src/prompts/memories/identity_review.md +2 -2
  871. package/src/prompts/memories/read-path.md +11 -10
  872. package/src/prompts/memories/stage_one_system.md +2 -2
  873. package/src/prompts/review-custom-request.md +1 -1
  874. package/src/prompts/system/agent-creation-architect.md +2 -2
  875. package/src/prompts/system/auto-continue.md +1 -1
  876. package/src/prompts/system/autolearn-guidance-learn.md +1 -0
  877. package/src/prompts/system/autolearn-guidance.md +7 -0
  878. package/src/prompts/system/autolearn-nudge.md +3 -0
  879. package/src/prompts/system/background-tan-dispatch.md +8 -0
  880. package/src/prompts/system/btw-user.md +2 -2
  881. package/src/prompts/system/commit-message-system.md +13 -1
  882. package/src/prompts/system/custom-system-prompt.md +1 -1
  883. package/src/prompts/system/eager-task.md +7 -0
  884. package/src/prompts/system/eager-todo.md +11 -6
  885. package/src/prompts/system/empty-stop-retry.md +4 -6
  886. package/src/prompts/system/irc-autoreply.md +6 -0
  887. package/src/prompts/system/irc-incoming.md +3 -4
  888. package/src/prompts/system/manual-continue.md +7 -0
  889. package/src/prompts/system/omfg-user.md +3 -4
  890. package/src/prompts/system/orchestrate-notice.md +10 -10
  891. package/src/prompts/system/personalities/default.md +26 -0
  892. package/src/prompts/system/personalities/friendly.md +17 -0
  893. package/src/prompts/system/personalities/pragmatic.md +15 -0
  894. package/src/prompts/system/plan-mode-active.md +70 -77
  895. package/src/prompts/system/plan-mode-approved.md +1 -1
  896. package/src/prompts/system/plan-mode-subagent.md +4 -5
  897. package/src/prompts/system/plan-mode-tool-decision-reminder.md +1 -1
  898. package/src/prompts/system/project-prompt.md +2 -2
  899. package/src/prompts/system/snapcompact-context-frames-note.md +1 -0
  900. package/src/prompts/system/snapcompact-context-stub.md +1 -0
  901. package/src/prompts/system/snapcompact-system-frames-note.md +1 -0
  902. package/src/prompts/system/snapcompact-system-stub.md +1 -0
  903. package/src/prompts/system/snapcompact-toolresult-note.md +1 -0
  904. package/src/prompts/system/subagent-system-prompt.md +7 -8
  905. package/src/prompts/system/system-prompt.md +28 -57
  906. package/src/prompts/system/tiny-title-system.md +1 -1
  907. package/src/prompts/system/title-marker-instruction.md +1 -0
  908. package/src/prompts/system/title-system-marker.md +16 -0
  909. package/src/prompts/system/title-system.md +16 -3
  910. package/src/prompts/system/ttsr-tool-reminder.md +1 -1
  911. package/src/prompts/system/workflow-notice.md +4 -4
  912. package/src/prompts/tools/ast-edit.md +1 -1
  913. package/src/prompts/tools/ast-grep.md +2 -2
  914. package/src/prompts/tools/bash.md +16 -8
  915. package/src/prompts/tools/browser.md +33 -43
  916. package/src/prompts/tools/debug.md +1 -1
  917. package/src/prompts/tools/eval.md +31 -51
  918. package/src/prompts/tools/find.md +0 -1
  919. package/src/prompts/tools/github.md +8 -7
  920. package/src/prompts/tools/goal.md +1 -1
  921. package/src/prompts/tools/image-gen.md +1 -1
  922. package/src/prompts/tools/inspect-image-system.md +1 -1
  923. package/src/prompts/tools/irc.md +39 -31
  924. package/src/prompts/tools/job.md +2 -1
  925. package/src/prompts/tools/learn.md +7 -0
  926. package/src/prompts/tools/lsp-late-diagnostic.md +8 -0
  927. package/src/prompts/tools/lsp.md +2 -2
  928. package/src/prompts/tools/manage-skill.md +9 -0
  929. package/src/prompts/tools/memory-edit.md +1 -1
  930. package/src/prompts/tools/patch.md +2 -2
  931. package/src/prompts/tools/read.md +31 -39
  932. package/src/prompts/tools/recall.md +1 -1
  933. package/src/prompts/tools/reflect.md +1 -1
  934. package/src/prompts/tools/render-mermaid.md +2 -2
  935. package/src/prompts/tools/replace.md +4 -10
  936. package/src/prompts/tools/rewind.md +2 -2
  937. package/src/prompts/tools/search-tool-bm25.md +1 -9
  938. package/src/prompts/tools/search.md +0 -1
  939. package/src/prompts/tools/ssh.md +0 -4
  940. package/src/prompts/tools/task-summary.md +5 -16
  941. package/src/prompts/tools/task.md +47 -31
  942. package/src/prompts/tools/todo.md +6 -3
  943. package/src/registry/agent-lifecycle.ts +218 -0
  944. package/src/registry/agent-registry.ts +46 -5
  945. package/src/sdk.ts +692 -219
  946. package/src/secrets/index.ts +8 -1
  947. package/src/secrets/obfuscator.ts +40 -19
  948. package/src/session/agent-session.ts +1577 -806
  949. package/src/session/agent-storage.ts +18 -9
  950. package/src/session/auth-broker-config.ts +30 -1
  951. package/src/session/auth-storage.ts +6 -0
  952. package/src/session/codex-auto-reset.ts +202 -0
  953. package/src/session/history-storage.ts +3 -2
  954. package/src/session/indexed-session-storage.ts +7 -10
  955. package/src/session/messages.ts +59 -95
  956. package/src/session/session-context.ts +352 -0
  957. package/src/session/session-dump-format.ts +12 -3
  958. package/src/session/session-entries.ts +194 -0
  959. package/src/session/session-history-format.ts +246 -0
  960. package/src/session/session-listing.ts +588 -0
  961. package/src/session/session-loader.ts +106 -0
  962. package/src/session/session-manager.ts +1003 -2920
  963. package/src/session/session-migrations.ts +78 -0
  964. package/src/session/session-paths.ts +193 -0
  965. package/src/session/session-persistence.ts +131 -0
  966. package/src/session/session-storage.ts +91 -30
  967. package/src/session/snapcompact-inline.ts +542 -0
  968. package/src/session/snapcompact-savings-journal.ts +113 -0
  969. package/src/session/streaming-output.ts +248 -11
  970. package/src/session/tool-choice-queue.ts +23 -11
  971. package/src/session/yield-queue.ts +20 -2
  972. package/src/slash-commands/acp-builtins.ts +25 -1
  973. package/src/slash-commands/available-commands.ts +105 -0
  974. package/src/slash-commands/builtin-registry.ts +575 -49
  975. package/src/slash-commands/helpers/active-oauth-account.ts +44 -0
  976. package/src/slash-commands/helpers/context-report.ts +28 -1
  977. package/src/slash-commands/helpers/logout.ts +88 -0
  978. package/src/slash-commands/helpers/reset-usage.ts +66 -0
  979. package/src/slash-commands/helpers/stats-dashboard.ts +85 -0
  980. package/src/slash-commands/helpers/usage-report.ts +38 -3
  981. package/src/slash-commands/types.ts +5 -9
  982. package/src/ssh/connection-manager.ts +27 -0
  983. package/src/ssh/ssh-executor.ts +60 -4
  984. package/src/stt/asr-client.ts +520 -0
  985. package/src/stt/asr-protocol.ts +65 -0
  986. package/src/stt/asr-worker.ts +790 -0
  987. package/src/stt/downloader.ts +107 -47
  988. package/src/stt/endpointer.ts +259 -0
  989. package/src/stt/index.ts +5 -1
  990. package/src/stt/models.ts +150 -0
  991. package/src/stt/recorder.ts +254 -67
  992. package/src/stt/stt-controller.ts +201 -22
  993. package/src/stt/transcriber.ts +37 -68
  994. package/src/stt/wav.ts +173 -0
  995. package/src/system-prompt.ts +52 -10
  996. package/src/task/agents.ts +3 -4
  997. package/src/task/commands.ts +3 -2
  998. package/src/task/discovery.ts +17 -24
  999. package/src/task/executor.ts +1054 -529
  1000. package/src/task/index.ts +862 -757
  1001. package/src/task/output-manager.ts +0 -11
  1002. package/src/task/parallel.ts +3 -3
  1003. package/src/task/prometheus-command.ts +2 -2
  1004. package/src/task/render.ts +529 -182
  1005. package/src/task/repair-args.ts +21 -9
  1006. package/src/task/types.ts +144 -66
  1007. package/src/task/worktree.ts +64 -56
  1008. package/src/telemetry-export.ts +27 -9
  1009. package/src/thinking.ts +9 -7
  1010. package/src/tiny/models.ts +2 -2
  1011. package/src/tiny/text.ts +5 -1
  1012. package/src/tiny/title-client.ts +72 -20
  1013. package/src/tiny/title-protocol.ts +1 -1
  1014. package/src/tiny/worker.ts +23 -99
  1015. package/src/tool-discovery/tool-index.ts +2 -0
  1016. package/src/tools/archive-reader.ts +94 -2
  1017. package/src/tools/ask.ts +234 -177
  1018. package/src/tools/ast-edit.ts +136 -80
  1019. package/src/tools/ast-grep.ts +41 -45
  1020. package/src/tools/auto-generated-guard.ts +20 -3
  1021. package/src/tools/bash-interactive.ts +28 -8
  1022. package/src/tools/bash.ts +198 -35
  1023. package/src/tools/browser/attach.ts +26 -7
  1024. package/src/tools/browser/cmux/cmux-tab.ts +1264 -0
  1025. package/src/tools/browser/cmux/rpc.ts +156 -0
  1026. package/src/tools/browser/cmux/socket-client.ts +309 -0
  1027. package/src/tools/browser/launch.ts +11 -2
  1028. package/src/tools/browser/readable.ts +19 -2
  1029. package/src/tools/browser/registry.ts +52 -5
  1030. package/src/tools/browser/render.ts +13 -5
  1031. package/src/tools/browser/tab-protocol.ts +2 -0
  1032. package/src/tools/browser/tab-supervisor.ts +256 -34
  1033. package/src/tools/browser/tab-worker.ts +259 -91
  1034. package/src/tools/browser.ts +44 -2
  1035. package/src/tools/checkpoint.ts +1 -1
  1036. package/src/tools/conflict-detect.ts +50 -4
  1037. package/src/tools/debug.ts +27 -12
  1038. package/src/tools/eval-render.ts +32 -35
  1039. package/src/tools/eval.ts +26 -12
  1040. package/src/tools/fetch.ts +450 -99
  1041. package/src/tools/find.ts +182 -142
  1042. package/src/tools/gh-cache-invalidation.ts +255 -0
  1043. package/src/tools/gh-renderer.ts +104 -51
  1044. package/src/tools/gh.ts +232 -37
  1045. package/src/tools/github-cache.ts +97 -7
  1046. package/src/tools/grouped-file-output.ts +159 -52
  1047. package/src/tools/image-gen.ts +237 -132
  1048. package/src/tools/index.ts +147 -26
  1049. package/src/tools/inspect-image-renderer.ts +74 -45
  1050. package/src/tools/inspect-image.ts +12 -6
  1051. package/src/tools/irc.ts +626 -173
  1052. package/src/tools/job.ts +106 -29
  1053. package/src/tools/learn.ts +144 -0
  1054. package/src/tools/manage-skill.ts +104 -0
  1055. package/src/tools/memory-edit.ts +4 -4
  1056. package/src/tools/memory-recall.ts +7 -9
  1057. package/src/tools/memory-reflect.ts +5 -9
  1058. package/src/tools/memory-render.ts +23 -6
  1059. package/src/tools/memory-retain.ts +4 -4
  1060. package/src/tools/path-utils.ts +102 -48
  1061. package/src/tools/plan-mode-guard.ts +101 -40
  1062. package/src/tools/read.ts +475 -120
  1063. package/src/tools/render-mermaid.ts +1 -1
  1064. package/src/tools/render-utils.ts +132 -76
  1065. package/src/tools/renderers.ts +12 -1
  1066. package/src/tools/report-tool-issue.ts +14 -6
  1067. package/src/tools/resolve.ts +20 -3
  1068. package/src/tools/review.ts +2 -2
  1069. package/src/tools/search-tool-bm25.ts +37 -24
  1070. package/src/tools/search.ts +233 -115
  1071. package/src/tools/sqlite-reader.ts +26 -17
  1072. package/src/tools/ssh.ts +20 -14
  1073. package/src/tools/todo.ts +197 -191
  1074. package/src/tools/tool-result.ts +8 -0
  1075. package/src/tools/tool-timeouts.ts +1 -1
  1076. package/src/tools/tts.ts +205 -74
  1077. package/src/tools/write.ts +291 -155
  1078. package/src/tools/yield.ts +10 -1
  1079. package/src/tts/downloader.ts +64 -0
  1080. package/src/tts/index.ts +8 -0
  1081. package/src/tts/models.ts +137 -0
  1082. package/src/tts/player.ts +137 -0
  1083. package/src/tts/runtime.ts +21 -0
  1084. package/src/tts/streaming-player.ts +266 -0
  1085. package/src/tts/tts-client.ts +647 -0
  1086. package/src/tts/tts-protocol.ts +60 -0
  1087. package/src/tts/tts-worker.ts +505 -0
  1088. package/src/tts/vocalizer.ts +162 -0
  1089. package/src/tts/wav.ts +58 -0
  1090. package/src/tui/code-cell.ts +2 -7
  1091. package/src/tui/hyperlink.ts +40 -26
  1092. package/src/tui/output-block.ts +60 -108
  1093. package/src/tui/status-line.ts +5 -1
  1094. package/src/utils/block-context.ts +312 -0
  1095. package/src/utils/changelog.ts +27 -1
  1096. package/src/utils/clipboard.ts +91 -22
  1097. package/src/utils/commit-message-generator.ts +8 -3
  1098. package/src/utils/enhanced-paste.ts +230 -0
  1099. package/src/utils/file-mentions.ts +3 -1
  1100. package/src/utils/git.ts +315 -15
  1101. package/src/utils/image-loading.ts +65 -4
  1102. package/src/utils/session-color.ts +83 -9
  1103. package/src/utils/thinking-display.ts +37 -0
  1104. package/src/utils/title-generator.ts +73 -10
  1105. package/src/utils/tool-choice.ts +16 -0
  1106. package/src/utils/tools-manager.ts +19 -1
  1107. package/src/web/kagi.ts +28 -26
  1108. package/src/web/parallel.ts +7 -3
  1109. package/src/web/scrapers/arxiv.ts +1 -1
  1110. package/src/web/scrapers/github.ts +351 -3
  1111. package/src/web/scrapers/go-pkg.ts +1 -1
  1112. package/src/web/scrapers/iacr.ts +1 -1
  1113. package/src/web/scrapers/readthedocs.ts +1 -1
  1114. package/src/web/scrapers/twitter.ts +2 -1
  1115. package/src/web/scrapers/types.ts +87 -8
  1116. package/src/web/scrapers/wikipedia.ts +1 -1
  1117. package/src/web/scrapers/youtube.ts +9 -3
  1118. package/src/web/search/index.ts +15 -2
  1119. package/src/web/search/providers/anthropic.ts +62 -21
  1120. package/src/web/search/providers/base.ts +2 -1
  1121. package/src/web/search/providers/brave.ts +5 -2
  1122. package/src/web/search/providers/codex.ts +87 -51
  1123. package/src/web/search/providers/exa.ts +101 -10
  1124. package/src/web/search/providers/gemini.ts +49 -24
  1125. package/src/web/search/providers/jina.ts +15 -5
  1126. package/src/web/search/providers/kagi.ts +9 -2
  1127. package/src/web/search/providers/kimi.ts +45 -20
  1128. package/src/web/search/providers/parallel.ts +39 -24
  1129. package/src/web/search/providers/perplexity.ts +226 -63
  1130. package/src/web/search/providers/searxng.ts +19 -3
  1131. package/src/web/search/providers/synthetic.ts +16 -11
  1132. package/src/web/search/providers/tavily.ts +12 -9
  1133. package/src/web/search/providers/zai.ts +22 -9
  1134. package/src/web/search/render.ts +59 -64
  1135. package/src/web/search/types.ts +5 -1
  1136. package/dist/types/discovery/context-files.d.ts +0 -17
  1137. package/dist/types/exa/factory.d.ts +0 -13
  1138. package/dist/types/exa/render.d.ts +0 -19
  1139. package/dist/types/exa/researcher.d.ts +0 -9
  1140. package/dist/types/exa/search.d.ts +0 -9
  1141. package/dist/types/exa/websets.d.ts +0 -9
  1142. package/dist/types/export/html/template.generated.d.ts +0 -1
  1143. package/dist/types/modes/components/session-observer-overlay.d.ts +0 -11
  1144. package/dist/types/modes/components/status-line.d.ts +0 -77
  1145. package/dist/types/slash-commands/headless-plan.d.ts +0 -3
  1146. package/dist/types/stt/setup.d.ts +0 -18
  1147. package/scripts/generate-template.ts +0 -33
  1148. package/src/discovery/context-files.ts +0 -49
  1149. package/src/exa/factory.ts +0 -60
  1150. package/src/exa/render.ts +0 -244
  1151. package/src/exa/researcher.ts +0 -36
  1152. package/src/exa/search.ts +0 -47
  1153. package/src/exa/websets.ts +0 -248
  1154. package/src/export/html/template.generated.ts +0 -2
  1155. package/src/modes/components/session-observer-overlay.ts +0 -852
  1156. package/src/slash-commands/headless-plan.ts +0 -142
  1157. package/src/stt/setup.ts +0 -52
  1158. package/src/stt/transcribe.py +0 -70
  1159. /package/dist/types/extensibility/{legacy-pi-coding-agent-shim.d.ts → legacy-package-agent-shim.d.ts} +0 -0
  1160. /package/src/extensibility/{legacy-pi-coding-agent-shim.ts → legacy-package-agent-shim.ts} +0 -0
@@ -15,7 +15,7 @@ import {
15
15
  import type { TreeFilterMode } from "../../config/settings-schema";
16
16
  import { theme } from "../../modes/theme/theme";
17
17
  import { matchesAppInterrupt, matchesSelectDown, matchesSelectUp } from "../../modes/utils/keybinding-matchers";
18
- import type { SessionTreeNode } from "../../session/session-manager";
18
+ import type { SessionTreeNode } from "../../session/session-entries";
19
19
  import { shortenPath } from "../../tools/render-utils";
20
20
  import { toPathList } from "../../tools/search";
21
21
  import { DynamicBorder } from "./dynamic-border";
@@ -438,7 +438,7 @@ class TreeList implements Component {
438
438
  }
439
439
  }
440
440
 
441
- render(width: number): string[] {
441
+ render(width: number): readonly string[] {
442
442
  const lines: string[] = [];
443
443
 
444
444
  if (this.#filteredNodes.length === 0) {
@@ -518,6 +518,16 @@ class TreeList implements Component {
518
518
  const renderedIndent = Math.min(displayIndent, maxIndentLevels);
519
519
  const scrollOffset = displayIndent - renderedIndent;
520
520
  const connectorPositionDisplay = hasConnector ? renderedIndent - 1 : -1;
521
+ // Chain rows (no connector of their own) under a last-sibling (`└─`)
522
+ // branch stay anchored by a vertical drawn one level RIGHT of the
523
+ // suppressed gutter — the column where the row's own connector would
524
+ // sit, directly below the branch head's content. Drawing it in the
525
+ // `└─` column itself contradicts the corner and leaves dangling,
526
+ // drifting verticals once the chain branches deeper (#2298, #2325).
527
+ // Chains under `├─` heads need no extra anchor: the sibling line
528
+ // (`show: true` gutter) already ties them to their branch.
529
+ const nearestGutter = !hasConnector ? flatNode.gutters[flatNode.gutters.length - 1] : undefined;
530
+ const chainAnchorLevel = nearestGutter && !nearestGutter.show ? nearestGutter.position + 1 : -1;
521
531
 
522
532
  // Build prefix char by char, placing gutters and connector at their positions
523
533
  const totalChars = renderedIndent * 3;
@@ -530,11 +540,16 @@ class TreeList implements Component {
530
540
  // Check if there's a gutter at this level (translated to original tree depth)
531
541
  const gutter = flatNode.gutters.find(g => g.position === originalLevel);
532
542
  if (gutter) {
543
+ // Gutters follow standard tree semantics: `│` only while more
544
+ // siblings continue below (`show`), space below a `└─`.
533
545
  if (posInLevel === 0) {
534
546
  prefixChars.push(gutter.show ? theme.tree.vertical : " ");
535
547
  } else {
536
548
  prefixChars.push(" ");
537
549
  }
550
+ } else if (originalLevel === chainAnchorLevel) {
551
+ // Chain anchor for rows under a `└─` branch head.
552
+ prefixChars.push(posInLevel === 0 ? theme.tree.vertical : " ");
538
553
  } else if (hasConnector && level === connectorPositionDisplay) {
539
554
  // Connector at this level
540
555
  if (posInLevel === 0) {
@@ -835,7 +850,7 @@ class SearchLine implements Component {
835
850
 
836
851
  invalidate(): void {}
837
852
 
838
- render(width: number): string[] {
853
+ render(width: number): readonly string[] {
839
854
  const query = this.treeList.getSearchQuery();
840
855
  if (query) {
841
856
  return [truncateToWidth(` ${theme.fg("muted", "Search:")} ${theme.fg("accent", query)}`, width)];
@@ -864,7 +879,7 @@ class LabelInput implements Component {
864
879
 
865
880
  invalidate(): void {}
866
881
 
867
- render(width: number): string[] {
882
+ render(width: number): readonly string[] {
868
883
  const lines: string[] = [];
869
884
  const indent = " ";
870
885
  const availableWidth = width - indent.length;
@@ -2,16 +2,24 @@ import { Box, Container, Spacer, Text } from "@prometheus-ai/tui";
2
2
  import type { Rule } from "../../capability/rule";
3
3
  import { theme } from "../../modes/theme/theme";
4
4
 
5
+ /** Collapsed view shows at most this many rules before eliding the rest. */
6
+ const MAX_COLLAPSED_RULES = 4;
7
+
5
8
  /**
6
9
  * Component that renders a TTSR (Time Traveling Stream Rules) notification.
7
10
  * Shows when a rule violation is detected and the stream is being rewound.
11
+ * One block can carry several rules: a single event may match multiple rules,
12
+ * and consecutive notifications merge into the previous block via
13
+ * {@link addRules} while it is still the live transcript tail.
8
14
  */
9
15
  export class TtsrNotificationComponent extends Container {
10
16
  #box: Box;
11
17
  #expanded = false;
18
+ #rules: Rule[];
12
19
 
13
- constructor(private readonly rules: Rule[]) {
20
+ constructor(rules: Rule[]) {
14
21
  super();
22
+ this.#rules = [...rules];
15
23
 
16
24
  this.addChild(new Spacer(1));
17
25
 
@@ -22,6 +30,17 @@ export class TtsrNotificationComponent extends Container {
22
30
  this.#rebuild();
23
31
  }
24
32
 
33
+ /** Merge additional rules into this block (deduped by rule name). */
34
+ addRules(rules: Rule[]): void {
35
+ let changed = false;
36
+ for (const rule of rules) {
37
+ if (this.#rules.some(existing => existing.name === rule.name)) continue;
38
+ this.#rules.push(rule);
39
+ changed = true;
40
+ }
41
+ if (changed) this.#rebuild();
42
+ }
43
+
25
44
  setExpanded(expanded: boolean): void {
26
45
  if (this.#expanded !== expanded) {
27
46
  this.#expanded = expanded;
@@ -35,46 +54,69 @@ export class TtsrNotificationComponent extends Container {
35
54
 
36
55
  #rebuild(): void {
37
56
  this.#box.clear();
57
+ // fg colors conflict with inverse, so styling inside the block is limited
58
+ // to bold (names) and italic (descriptions).
59
+ if (this.#rules.length === 1) {
60
+ this.#rebuildSingle(this.#rules[0]!);
61
+ } else {
62
+ this.#rebuildMulti();
63
+ }
64
+ }
38
65
 
39
- // Build header: warning symbol + rule name + rewind icon
40
- const ruleNames = this.rules.map(r => theme.bold(r.name)).join(", ");
41
- const label = this.rules.length === 1 ? "rule" : "rules";
42
- const header = `${theme.icon.warning} Injecting ${label}: ${ruleNames}`;
66
+ #rebuildSingle(rule: Rule): void {
67
+ const header = `${theme.icon.warning} Injecting rule: ${theme.bold(rule.name)} ${theme.icon.rewind}`;
68
+ this.#box.addChild(new Text(header, 0, 0));
43
69
 
44
- // Create header with rewind icon on the right
45
- const rewindIcon = theme.icon.rewind;
70
+ const desc = (rule.description || rule.content)?.trim();
71
+ if (!desc) return;
46
72
 
47
- this.#box.addChild(new Text(`${header} ${rewindIcon}`, 0, 0));
73
+ let displayText = desc;
74
+ let truncated = false;
75
+ if (!this.#expanded) {
76
+ const lines = desc.split("\n");
77
+ if (lines.length > 2) {
78
+ displayText = `${lines.slice(0, 2).join("\n")}…`;
79
+ truncated = true;
80
+ }
81
+ }
48
82
 
49
- // Show description(s) - italic and truncated
50
- for (const rule of this.rules) {
51
- const desc = rule.description || rule.content;
52
- if (desc) {
53
- this.#box.addChild(new Spacer(1));
83
+ this.#box.addChild(new Spacer(1));
84
+ this.#box.addChild(new Text(theme.italic(displayText), 0, 0));
85
+ if (truncated) {
86
+ this.#box.addChild(new Text(theme.italic(" (ctrl+o to expand)"), 0, 0));
87
+ }
88
+ }
89
+
90
+ #rebuildMulti(): void {
91
+ const header = `${theme.icon.warning} Injecting ${this.#rules.length} rules: ${theme.icon.rewind}`;
92
+ this.#box.addChild(new Text(header, 0, 0));
93
+ this.#box.addChild(new Spacer(1));
54
94
 
55
- let displayText = desc.trim();
95
+ const visible = this.#expanded ? this.#rules : this.#rules.slice(0, MAX_COLLAPSED_RULES);
96
+ let elidedDetail = false;
97
+ for (const rule of visible) {
98
+ const desc = (rule.description || rule.content)?.trim();
99
+ let line = theme.bold(rule.name);
100
+ if (desc) {
101
+ let displayText = desc;
56
102
  if (!this.#expanded) {
57
- // Truncate to first 2 lines
58
- const lines = displayText.split("\n");
59
- if (lines.length > 2) {
60
- displayText = `${lines.slice(0, 2).join("\n")}…`;
103
+ // One line per rule when collapsed; full description when expanded.
104
+ const newline = desc.indexOf("\n");
105
+ if (newline !== -1) {
106
+ displayText = `${desc.slice(0, newline).trimEnd()}…`;
107
+ elidedDetail = true;
61
108
  }
62
109
  }
63
-
64
- // Use italic for subtle distinction (fg colors conflict with inverse)
65
- this.#box.addChild(new Text(theme.italic(displayText), 0, 0));
110
+ line += `: ${theme.italic(displayText)}`;
66
111
  }
112
+ this.#box.addChild(new Text(line, 0, 0));
67
113
  }
68
114
 
69
- // Show expand hint if collapsed and there's more content
70
- if (!this.#expanded) {
71
- const hasMoreContent = this.rules.some(r => {
72
- const desc = r.description || r.content;
73
- return desc && desc.split("\n").length > 2;
74
- });
75
- if (hasMoreContent) {
76
- this.#box.addChild(new Text(theme.italic(" (ctrl+o to expand)"), 0, 0));
77
- }
115
+ const hidden = this.#rules.length - visible.length;
116
+ if (hidden > 0) {
117
+ this.#box.addChild(new Text(theme.italic(`… +${hidden} more (ctrl+o to expand)`), 0, 0));
118
+ } else if (elidedDetail) {
119
+ this.#box.addChild(new Text(theme.italic(" (ctrl+o to expand)"), 0, 0));
78
120
  }
79
121
  }
80
122
  }
@@ -0,0 +1,18 @@
1
+ import type { Usage } from "@prometheus-ai/ai";
2
+ import { Container, Spacer, Text } from "@prometheus-ai/tui";
3
+ import { formatNumber } from "@prometheus-ai/utils";
4
+ import { theme } from "../../modes/theme/theme";
5
+
6
+ export function createUsageRowBlock(usage: Usage): Container {
7
+ const totalInput = usage.input + usage.cacheWrite;
8
+ const parts: string[] = [];
9
+ parts.push(`${theme.icon.input} ${formatNumber(totalInput)}`);
10
+ parts.push(`${theme.icon.output} ${formatNumber(usage.output)}`);
11
+ if (usage.cacheRead > 0) {
12
+ parts.push(`cache: ${formatNumber(usage.cacheRead)}`);
13
+ }
14
+ const block = new Container();
15
+ block.addChild(new Spacer(1));
16
+ block.addChild(new Text(theme.fg("dim", parts.join(" ")), 1, 0));
17
+ return block;
18
+ }
@@ -82,7 +82,7 @@ class UserMessageList implements Component {
82
82
  return true;
83
83
  }
84
84
 
85
- render(width: number): string[] {
85
+ render(width: number): readonly string[] {
86
86
  const lines: string[] = [];
87
87
 
88
88
  if (this.messages.length === 0) {
@@ -1,21 +1,30 @@
1
- import { Container, Markdown, Spacer } from "@prometheus-ai/tui";
1
+ import { Container, Markdown } from "@prometheus-ai/tui";
2
2
  import { getMarkdownTheme, theme } from "../../modes/theme/theme";
3
- import { imageReferenceHyperlink, renderImageReferences } from "../image-references";
3
+ import { imageReferenceHyperlink, renderPlaceholders } from "../image-references";
4
4
  import { highlightMagicKeywords } from "../magic-keywords";
5
5
 
6
6
  // OSC 133 shell integration: marks prompt zones for terminal multiplexers
7
+ // Do not emit OSC 133 C ("command start") here: the transcript has no matching
8
+ // command-finished marker, so terminals can group later assistant/tool output
9
+ // under the first submitted prompt.
7
10
  const OSC133_ZONE_START = "\x1b]133;A\x07";
8
11
  const OSC133_ZONE_END = "\x1b]133;B\x07";
9
- const OSC133_ZONE_FINAL = "\x1b]133;C\x07";
10
12
 
11
13
  /**
12
14
  * Component that renders a user message
13
15
  */
14
16
  export class UserMessageComponent extends Container {
17
+ // Memoized OSC 133 zone wrapping keyed on the underlying container render
18
+ // (same source ref ⇒ identical rows ⇒ reuse the wrapped copy). Keeps this
19
+ // component reference-stable for the transcript's incremental assembly and
20
+ // never mutates the container's cached array.
21
+ #zoneSource: readonly string[] | undefined;
22
+ #zoneLines: string[] | undefined;
23
+
15
24
  constructor(text: string, synthetic = false, imageLinks?: readonly (string | undefined)[]) {
16
25
  super();
17
26
  const bgColor = (value: string) => theme.bg("userMessageBg", value);
18
- // Paint the magic keywords ("ultrathink"/"orchestrate"/"workflow") inside the rendered
27
+ // Paint the magic keywords ("ultrathink"/"orchestrate"/"workflowz") inside the rendered
19
28
  // bubble too — matching the live editor glow. The Markdown component routes code spans and
20
29
  // fenced blocks through its own code styling (never `color`), so those are already excluded;
21
30
  // `highlightMagicKeywords` additionally restores the bubble's own foreground after each
@@ -26,11 +35,13 @@ export class UserMessageComponent extends Container {
26
35
  : (value: string) => theme.fg("userMessageText", highlightMagicKeywords(value, keywordReset));
27
36
  const imageLabel = (value: string) => theme.fg("accent", `\x1b[1m\x1b[4m${value}\x1b[24m\x1b[22m`);
28
37
  const color = (value: string) =>
29
- renderImageReferences(value, {
38
+ renderPlaceholders(value, {
30
39
  renderText: baseText,
31
- renderReference: (label, index) => imageReferenceHyperlink(label, index, imageLinks, imageLabel),
40
+ renderReference: (label, kind, index) =>
41
+ kind === "image"
42
+ ? imageReferenceHyperlink(label, index, imageLinks, imageLabel)
43
+ : theme.fg("accent", `\x1b[1m${label}\x1b[22m`),
32
44
  });
33
- this.addChild(new Spacer(1));
34
45
  this.addChild(
35
46
  new Markdown(text, 1, 1, getMarkdownTheme(), {
36
47
  bgColor,
@@ -39,14 +50,19 @@ export class UserMessageComponent extends Container {
39
50
  );
40
51
  }
41
52
 
42
- override render(width: number): string[] {
53
+ override render(width: number): readonly string[] {
43
54
  const lines = super.render(width);
44
55
  if (lines.length === 0) {
45
56
  return lines;
46
57
  }
47
-
48
- lines[0] = OSC133_ZONE_START + lines[0];
49
- lines[lines.length - 1] = lines[lines.length - 1] + OSC133_ZONE_END + OSC133_ZONE_FINAL;
50
- return lines;
58
+ if (this.#zoneSource === lines && this.#zoneLines !== undefined) {
59
+ return this.#zoneLines;
60
+ }
61
+ const wrapped = lines.slice();
62
+ wrapped[0] = OSC133_ZONE_START + wrapped[0];
63
+ wrapped[wrapped.length - 1] = wrapped[wrapped.length - 1] + OSC133_ZONE_END;
64
+ this.#zoneSource = lines;
65
+ this.#zoneLines = wrapped;
66
+ return wrapped;
51
67
  }
52
68
  }
@@ -6,7 +6,7 @@ import { Text } from "@prometheus-ai/tui";
6
6
 
7
7
  export interface VisualTruncateResult {
8
8
  /** The visual lines to display */
9
- visualLines: string[];
9
+ visualLines: readonly string[];
10
10
  /** Number of visual lines that were skipped (hidden) */
11
11
  skippedCount: number;
12
12
  }
@@ -17,6 +17,18 @@ const TIPS: readonly string[] = tipsText
17
17
  .map(line => line.trim())
18
18
  .filter(line => line.length > 0);
19
19
 
20
+ /**
21
+ * Fixed number of session rows in the welcome box so its height stays stable
22
+ * across recent-session updates.
23
+ */
24
+ export const WELCOME_SESSION_SLOTS = 4;
25
+
26
+ /**
27
+ * Fixed number of LSP-server rows, for the same reason. Overflow is sliced so
28
+ * the box height is constant regardless of how many servers a project has.
29
+ */
30
+ export const WELCOME_LSP_SLOTS = 4;
31
+
20
32
  export function renderWelcomeTip(tip: string, boxWidth: number): string[] {
21
33
  const label = "Tip: ";
22
34
  const labelWidth = visibleWidth(label);
@@ -48,7 +60,7 @@ export interface RecentSession {
48
60
 
49
61
  export interface LspServerInfo {
50
62
  name: string;
51
- status: "ready" | "error" | "connecting";
63
+ status: "ready" | "error" | "connecting" | "available";
52
64
  fileTypes: string[];
53
65
  }
54
66
 
@@ -60,6 +72,11 @@ export class WelcomeComponent implements Component {
60
72
  #animTimer: ReturnType<typeof setInterval> | null = null;
61
73
  /** Tip chosen once per instance so re-renders (intro, LSP updates) don't shuffle it. */
62
74
  readonly #tip: string | undefined = TIPS.length > 0 ? TIPS[Math.floor(Math.random() * TIPS.length)] : undefined;
75
+ // Render cache: the welcome box is the first transcript-area component, so
76
+ // returning a stable array reference keeps the whole frame prefix stable.
77
+ // Bypassed while the intro animation runs (every frame differs).
78
+ #cachedWidth = -1;
79
+ #cachedLines: string[] | undefined;
63
80
 
64
81
  constructor(
65
82
  private readonly version: string,
@@ -69,7 +86,10 @@ export class WelcomeComponent implements Component {
69
86
  private lspServers: LspServerInfo[] = [],
70
87
  ) {}
71
88
 
72
- invalidate(): void {}
89
+ invalidate(): void {
90
+ this.#cachedWidth = -1;
91
+ this.#cachedLines = undefined;
92
+ }
73
93
 
74
94
  /**
75
95
  * Play a one-shot intro that sweeps the gradient through every phase
@@ -95,22 +115,43 @@ export class WelcomeComponent implements Component {
95
115
  this.#animTimer = null;
96
116
  }
97
117
  this.#animStart = null;
118
+ // The settled (resting) frame differs from the last intro frame.
119
+ this.invalidate();
98
120
  }
99
121
 
100
122
  setModel(modelName: string, providerName: string): void {
101
123
  this.modelName = modelName;
102
124
  this.providerName = providerName;
125
+ this.invalidate();
103
126
  }
104
127
 
105
128
  setRecentSessions(sessions: RecentSession[]): void {
106
129
  this.recentSessions = sessions;
130
+ this.invalidate();
107
131
  }
108
132
 
109
133
  setLspServers(servers: LspServerInfo[]): void {
110
134
  this.lspServers = servers;
135
+ this.invalidate();
111
136
  }
112
137
 
113
- render(termWidth: number): string[] {
138
+ render(termWidth: number): readonly string[] {
139
+ const animating = this.#animStart != null;
140
+ if (!animating && this.#cachedLines && this.#cachedWidth === termWidth) {
141
+ return this.#cachedLines;
142
+ }
143
+ const lines = this.#renderLines(termWidth);
144
+ if (animating) {
145
+ this.#cachedLines = undefined;
146
+ this.#cachedWidth = -1;
147
+ } else {
148
+ this.#cachedLines = lines;
149
+ this.#cachedWidth = termWidth;
150
+ }
151
+ return lines;
152
+ }
153
+
154
+ #renderLines(termWidth: number): string[] {
114
155
  // Box dimensions - responsive with max width and small-terminal support
115
156
  const maxWidth = 100;
116
157
  const boxWidth = Math.min(maxWidth, Math.max(0, termWidth - 2));
@@ -165,7 +206,7 @@ export class WelcomeComponent implements Component {
165
206
  // absorbs whatever space is left.
166
207
  const bulletPrefix = ` ${theme.md.bullet} `;
167
208
  const prefixWidth = visibleWidth(bulletPrefix);
168
- for (const session of this.recentSessions.slice(0, 3)) {
209
+ for (const session of this.recentSessions.slice(0, WELCOME_SESSION_SLOTS)) {
169
210
  const timeSuffixRaw = ` (${session.timeAgo})`;
170
211
  const timeWidth = visibleWidth(timeSuffixRaw);
171
212
  const nameBudget = Math.max(1, rightCol - prefixWidth - timeWidth);
@@ -176,23 +217,33 @@ export class WelcomeComponent implements Component {
176
217
  );
177
218
  }
178
219
  }
220
+ // Pad to the fixed slot count so the box height doesn't depend on session count.
221
+ while (sessionLines.length < WELCOME_SESSION_SLOTS) {
222
+ sessionLines.push("");
223
+ }
179
224
 
180
225
  // LSP servers content
181
226
  const lspLines: string[] = [];
182
227
  if (this.lspServers.length === 0) {
183
228
  lspLines.push(` ${theme.fg("dim", "No LSP servers")}`);
184
229
  } else {
185
- for (const server of this.lspServers) {
230
+ for (const server of this.lspServers.slice(0, WELCOME_LSP_SLOTS)) {
186
231
  const icon =
187
232
  server.status === "ready"
188
- ? theme.styledSymbol("status.success", "success")
189
- : server.status === "connecting"
190
- ? theme.styledSymbol("status.pending", "muted")
191
- : theme.styledSymbol("status.error", "error");
233
+ ? theme.styledSymbol("status.enabled", "success")
234
+ : server.status === "available"
235
+ ? theme.styledSymbol("status.enabled", "dim")
236
+ : server.status === "connecting"
237
+ ? theme.styledSymbol("status.pending", "muted")
238
+ : theme.styledSymbol("status.error", "error");
192
239
  const exts = server.fileTypes.slice(0, 3).join(" ");
193
240
  lspLines.push(` ${icon} ${theme.fg("muted", server.name)} ${theme.fg("dim", exts)}`);
194
241
  }
195
242
  }
243
+ // Pad to the fixed slot count so the box height doesn't depend on server count.
244
+ while (lspLines.length < WELCOME_LSP_SLOTS) {
245
+ lspLines.push("");
246
+ }
196
247
 
197
248
  // Right column
198
249
  const rightLines = [
@@ -310,22 +361,11 @@ export class WelcomeComponent implements Component {
310
361
  if (this.#animStart == null) return REST_FRAME;
311
362
  const elapsed = performance.now() - this.#animStart;
312
363
  if (elapsed >= INTRO_MS) return REST_FRAME;
313
- // Ease-out cubic so the spin decelerates into the resting state.
314
- const progress = elapsed / INTRO_MS;
315
- const eased = 1 - (1 - progress) ** 3;
316
- // Sweep backward through INTRO_SWEEPS full rotations so the gradient
317
- // visibly spins multiple times. `eased == 1` → phase = 0 = resting frame.
318
- const phase = ((((1 - eased) * INTRO_SWEEPS) % 1) + 1) % 1;
319
- // Shine traverses the diagonal at a steady pace, decoupled from the
320
- // gradient phase so the two layers parallax. Strength fades out with
321
- // the same ease-out curve so the highlight is gone by the resting frame.
322
- const shinePos = (((progress * INTRO_SHINE_TRAVERSALS) % 1) + 1) % 1;
323
- const shineStrength = (1 - eased) ** 1.5;
324
- return gradientLogo(PROMETHEUS_LOGO, phase, { strength: shineStrength, pos: shinePos });
364
+ return introLogoFrame(elapsed / INTRO_MS);
325
365
  }
326
366
  }
327
367
 
328
- export const PROMETHEUS_LOGO = [" ▄██████▄ ", " ███ ███ ", "██ ██", " ███ ███ ", " ▀██████▀ "];
368
+ export const PROMETHEUS_LOGO = ["▀██████████▀", " ╘██ ██ ", " ██ ██ ", " ██ ██ ", " ▄██▄ ▄██▄ "];
329
369
 
330
370
  /** Multi-stop palette for the diagonal gradient. */
331
371
  const GRADIENT_STOPS: ReadonlyArray<readonly [number, number, number]> = [
@@ -431,5 +471,23 @@ const INTRO_SWEEPS = 2.5;
431
471
  /** Number of times the shine highlight crosses the diagonal across the intro. */
432
472
  const INTRO_SHINE_TRAVERSALS = 3;
433
473
 
474
+ /**
475
+ * Logo frame for a normalized intro progress in [0, 1).
476
+ *
477
+ * Ease-out cubic so the spin decelerates into the resting state. The gradient
478
+ * sweeps backward through INTRO_SWEEPS full rotations (`eased == 1` → phase =
479
+ * 0 = resting frame) while the shine traverses the diagonal at a steady pace,
480
+ * decoupled from the gradient phase so the two layers parallax; its strength
481
+ * fades with the same ease-out curve so the highlight is gone by the resting
482
+ * frame.
483
+ */
484
+ function introLogoFrame(progress: number): string[] {
485
+ const eased = 1 - (1 - progress) ** 3;
486
+ const phase = ((((1 - eased) * INTRO_SWEEPS) % 1) + 1) % 1;
487
+ const shinePos = (((progress * INTRO_SHINE_TRAVERSALS) % 1) + 1) % 1;
488
+ const shineStrength = (1 - eased) ** 1.5;
489
+ return gradientLogo(PROMETHEUS_LOGO, phase, { strength: shineStrength, pos: shinePos });
490
+ }
491
+
434
492
  /** Resting gradient frame, cached for re-renders outside of the intro. */
435
493
  const REST_FRAME = gradientLogo(PROMETHEUS_LOGO, 0);
@@ -7,10 +7,11 @@
7
7
  * wording, and add-flow logic stay in the per-controller files because they
8
8
  * diverge in workflow.
9
9
  */
10
- import { Spacer, Text } from "@prometheus-ai/tui";
10
+ import { Text } from "@prometheus-ai/tui";
11
11
  import type { SourceMeta } from "../../capability/types";
12
12
  import { shortenPath } from "../../tools/render-utils";
13
13
  import { DynamicBorder } from "../components/dynamic-border";
14
+ import { TranscriptBlock } from "../components/transcript-container";
14
15
  import { parseCommandArgs } from "../shared";
15
16
  import type { InteractiveModeContext } from "../types";
16
17
 
@@ -100,9 +101,9 @@ export function* groupBySource<T>(
100
101
  * container and request a render.
101
102
  */
102
103
  export function showCommandMessage(ctx: InteractiveModeContext, text: string): void {
103
- ctx.chatContainer.addChild(new Spacer(1));
104
- ctx.chatContainer.addChild(new DynamicBorder());
105
- ctx.chatContainer.addChild(new Text(text, 1, 1));
106
- ctx.chatContainer.addChild(new DynamicBorder());
107
- ctx.ui.requestRender();
104
+ const block = new TranscriptBlock();
105
+ block.addChild(new DynamicBorder());
106
+ block.addChild(new Text(text, 1, 1));
107
+ block.addChild(new DynamicBorder());
108
+ ctx.present(block);
108
109
  }