@oh-my-pi/pi-coding-agent 15.1.1 → 15.1.3

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 (844) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/types/async/index.d.ts +2 -0
  3. package/dist/types/async/job-manager.d.ts +87 -0
  4. package/dist/types/async/support.d.ts +2 -0
  5. package/dist/types/autoresearch/dashboard.d.ts +4 -0
  6. package/dist/types/autoresearch/git.d.ts +36 -0
  7. package/dist/types/autoresearch/helpers.d.ts +24 -0
  8. package/dist/types/autoresearch/index.d.ts +2 -0
  9. package/dist/types/autoresearch/state.d.ts +17 -0
  10. package/dist/types/autoresearch/storage.d.ts +142 -0
  11. package/dist/types/autoresearch/tools/init-experiment.d.ts +31 -0
  12. package/dist/types/autoresearch/tools/log-experiment.d.ts +23 -0
  13. package/dist/types/autoresearch/tools/run-experiment.d.ts +8 -0
  14. package/dist/types/autoresearch/tools/update-notes.d.ts +12 -0
  15. package/dist/types/autoresearch/types.d.ts +154 -0
  16. package/dist/types/capability/context-file.d.ts +17 -0
  17. package/dist/types/capability/extension-module.d.ts +15 -0
  18. package/dist/types/capability/extension.d.ts +28 -0
  19. package/dist/types/capability/fs.d.ts +20 -0
  20. package/dist/types/capability/hook.d.ts +19 -0
  21. package/dist/types/capability/index.d.ts +80 -0
  22. package/dist/types/capability/instruction.d.ts +17 -0
  23. package/dist/types/capability/mcp.d.ts +45 -0
  24. package/dist/types/capability/prompt.d.ts +15 -0
  25. package/dist/types/capability/rule.d.ts +61 -0
  26. package/dist/types/capability/settings.d.ts +15 -0
  27. package/dist/types/capability/skill.d.ts +36 -0
  28. package/dist/types/capability/slash-command.d.ts +17 -0
  29. package/dist/types/capability/ssh.d.ts +23 -0
  30. package/dist/types/capability/system-prompt.d.ts +15 -0
  31. package/dist/types/capability/tool.d.ts +19 -0
  32. package/dist/types/capability/types.d.ts +154 -0
  33. package/dist/types/cli/agents-cli.d.ts +12 -0
  34. package/dist/types/cli/args.d.ts +52 -0
  35. package/dist/types/cli/auth-broker-cli.d.ts +25 -0
  36. package/dist/types/cli/auth-gateway-cli.d.ts +18 -0
  37. package/dist/types/cli/classify-install-target.d.ts +18 -0
  38. package/dist/types/cli/commands/init-xdg.d.ts +1 -0
  39. package/dist/types/cli/config-cli.d.ts +22 -0
  40. package/dist/types/cli/file-processor.d.ts +11 -0
  41. package/dist/types/cli/grep-cli.d.ts +17 -0
  42. package/dist/types/cli/grievances-cli.d.ts +37 -0
  43. package/dist/types/cli/initial-message.d.ts +17 -0
  44. package/dist/types/cli/list-models.d.ts +30 -0
  45. package/dist/types/cli/plugin-cli.d.ts +32 -0
  46. package/dist/types/cli/read-cli.d.ts +4 -0
  47. package/dist/types/cli/session-picker.d.ts +3 -0
  48. package/dist/types/cli/setup-cli.d.ts +24 -0
  49. package/dist/types/cli/shell-cli.d.ts +8 -0
  50. package/dist/types/cli/ssh-cli.d.ts +21 -0
  51. package/dist/types/cli/stats-cli.d.ts +17 -0
  52. package/dist/types/cli/update-cli.d.ts +20 -0
  53. package/dist/types/cli/web-search-cli.d.ts +20 -0
  54. package/dist/types/cli.d.ts +3 -0
  55. package/dist/types/commands/acp.d.ts +12 -0
  56. package/dist/types/commands/agents.d.ts +34 -0
  57. package/dist/types/commands/auth-broker.d.ts +54 -0
  58. package/dist/types/commands/auth-gateway.d.ts +32 -0
  59. package/dist/types/commands/commit.d.ts +27 -0
  60. package/dist/types/commands/config.d.ts +30 -0
  61. package/dist/types/commands/grep.d.ts +42 -0
  62. package/dist/types/commands/grievances.d.ts +40 -0
  63. package/dist/types/commands/launch.d.ts +118 -0
  64. package/dist/types/commands/plugin.d.ts +52 -0
  65. package/dist/types/commands/read.d.ts +15 -0
  66. package/dist/types/commands/setup.d.ts +25 -0
  67. package/dist/types/commands/shell.d.ts +21 -0
  68. package/dist/types/commands/ssh.d.ts +48 -0
  69. package/dist/types/commands/stats.d.ts +25 -0
  70. package/dist/types/commands/update.d.ts +20 -0
  71. package/dist/types/commands/web-search.d.ts +33 -0
  72. package/dist/types/commit/agentic/agent.d.ts +31 -0
  73. package/dist/types/commit/agentic/fallback.d.ts +5 -0
  74. package/dist/types/commit/agentic/index.d.ts +2 -0
  75. package/dist/types/commit/agentic/state.d.ts +58 -0
  76. package/dist/types/commit/agentic/tools/analyze-file.d.ts +19 -0
  77. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +10 -0
  78. package/dist/types/commit/agentic/tools/git-hunk.d.ts +9 -0
  79. package/dist/types/commit/agentic/tools/git-overview.d.ts +9 -0
  80. package/dist/types/commit/agentic/tools/index.d.ts +16 -0
  81. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +28 -0
  82. package/dist/types/commit/agentic/tools/propose-commit.d.ts +36 -0
  83. package/dist/types/commit/agentic/tools/recent-commits.d.ts +7 -0
  84. package/dist/types/commit/agentic/tools/schemas.d.ts +27 -0
  85. package/dist/types/commit/agentic/tools/split-commit.d.ts +53 -0
  86. package/dist/types/commit/agentic/topo-sort.d.ts +4 -0
  87. package/dist/types/commit/agentic/trivial.d.ts +7 -0
  88. package/dist/types/commit/agentic/validation.d.ts +20 -0
  89. package/dist/types/commit/analysis/conventional.d.ts +22 -0
  90. package/dist/types/commit/analysis/index.d.ts +4 -0
  91. package/dist/types/commit/analysis/scope.d.ts +6 -0
  92. package/dist/types/commit/analysis/summary.d.ts +19 -0
  93. package/dist/types/commit/analysis/validation.d.ts +8 -0
  94. package/dist/types/commit/changelog/detect.d.ts +2 -0
  95. package/dist/types/commit/changelog/generate.d.ts +30 -0
  96. package/dist/types/commit/changelog/index.d.ts +30 -0
  97. package/dist/types/commit/changelog/parse.d.ts +2 -0
  98. package/dist/types/commit/cli.d.ts +3 -0
  99. package/dist/types/commit/git/diff.d.ts +5 -0
  100. package/dist/types/commit/index.d.ts +4 -0
  101. package/dist/types/commit/map-reduce/index.d.ts +28 -0
  102. package/dist/types/commit/map-reduce/map-phase.d.ts +17 -0
  103. package/dist/types/commit/map-reduce/reduce-phase.d.ts +13 -0
  104. package/dist/types/commit/map-reduce/utils.d.ts +2 -0
  105. package/dist/types/commit/message.d.ts +2 -0
  106. package/dist/types/commit/model-selection.d.ts +15 -0
  107. package/dist/types/commit/pipeline.d.ts +5 -0
  108. package/dist/types/commit/shared-llm.d.ts +54 -0
  109. package/dist/types/commit/types.d.ts +78 -0
  110. package/dist/types/commit/utils/exclusions.d.ts +4 -0
  111. package/dist/types/commit/utils.d.ts +20 -0
  112. package/dist/types/config/config-file.d.ts +58 -0
  113. package/dist/types/config/file-lock.d.ts +6 -0
  114. package/dist/types/config/keybindings.d.ts +334 -0
  115. package/dist/types/config/model-equivalence.d.ts +24 -0
  116. package/dist/types/config/model-registry.d.ts +363 -0
  117. package/dist/types/config/model-resolver.d.ts +230 -0
  118. package/dist/types/config/models-config-schema.d.ts +503 -0
  119. package/dist/types/config/prompt-templates.d.ts +32 -0
  120. package/dist/types/config/resolve-config-value.d.ts +17 -0
  121. package/dist/types/config/settings-schema.d.ts +3361 -0
  122. package/dist/types/config/settings.d.ts +126 -0
  123. package/dist/types/config.d.ts +66 -0
  124. package/dist/types/cursor.d.ts +22 -0
  125. package/dist/types/dap/client.d.ts +38 -0
  126. package/dist/types/dap/config.d.ts +6 -0
  127. package/dist/types/dap/index.d.ts +4 -0
  128. package/dist/types/dap/session.d.ts +108 -0
  129. package/dist/types/dap/types.d.ts +524 -0
  130. package/dist/types/debug/index.d.ts +15 -0
  131. package/dist/types/debug/log-formatting.d.ts +4 -0
  132. package/dist/types/debug/log-viewer.d.ts +68 -0
  133. package/dist/types/debug/profiler.d.ts +24 -0
  134. package/dist/types/debug/raw-sse-buffer.d.ts +44 -0
  135. package/dist/types/debug/raw-sse.d.ts +16 -0
  136. package/dist/types/debug/report-bundle.d.ts +55 -0
  137. package/dist/types/debug/system-info.d.ts +26 -0
  138. package/dist/types/discovery/agents-md.d.ts +1 -0
  139. package/dist/types/discovery/agents.d.ts +12 -0
  140. package/dist/types/discovery/builtin.d.ts +1 -0
  141. package/dist/types/discovery/claude-plugins.d.ts +1 -0
  142. package/dist/types/discovery/claude.d.ts +1 -0
  143. package/dist/types/discovery/cline.d.ts +1 -0
  144. package/dist/types/discovery/codex.d.ts +1 -0
  145. package/dist/types/discovery/cursor.d.ts +16 -0
  146. package/dist/types/discovery/gemini.d.ts +1 -0
  147. package/dist/types/discovery/github.d.ts +1 -0
  148. package/dist/types/discovery/helpers.d.ts +267 -0
  149. package/dist/types/discovery/index.d.ts +51 -0
  150. package/dist/types/discovery/mcp-json.d.ts +1 -0
  151. package/dist/types/discovery/opencode.d.ts +1 -0
  152. package/dist/types/discovery/plugin-dir-roots.d.ts +15 -0
  153. package/dist/types/discovery/ssh.d.ts +1 -0
  154. package/dist/types/discovery/substitute-plugin-root.d.ts +5 -0
  155. package/dist/types/discovery/vscode.d.ts +1 -0
  156. package/dist/types/discovery/windsurf.d.ts +13 -0
  157. package/dist/types/edit/apply-patch/index.d.ts +35 -0
  158. package/dist/types/edit/apply-patch/parser.d.ts +34 -0
  159. package/dist/types/edit/diff.d.ts +59 -0
  160. package/dist/types/edit/file-read-cache.d.ts +25 -0
  161. package/dist/types/edit/index.d.ts +58 -0
  162. package/dist/types/edit/modes/apply-patch.d.ts +24 -0
  163. package/dist/types/edit/modes/patch.d.ts +99 -0
  164. package/dist/types/edit/modes/replace.d.ts +142 -0
  165. package/dist/types/edit/normalize.d.ts +43 -0
  166. package/dist/types/edit/notebook.d.ts +23 -0
  167. package/dist/types/edit/read-file.d.ts +2 -0
  168. package/dist/types/edit/renderer.d.ts +110 -0
  169. package/dist/types/edit/streaming.d.ts +59 -0
  170. package/dist/types/eval/backend.d.ts +40 -0
  171. package/dist/types/eval/index.d.ts +4 -0
  172. package/dist/types/eval/js/context-manager.d.ts +24 -0
  173. package/dist/types/eval/js/executor.d.ts +28 -0
  174. package/dist/types/eval/js/index.d.ts +10 -0
  175. package/dist/types/eval/js/shared/helpers.d.ts +38 -0
  176. package/dist/types/eval/js/shared/indirect-eval.d.ts +14 -0
  177. package/dist/types/eval/js/shared/prelude.d.ts +1 -0
  178. package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -0
  179. package/dist/types/eval/js/shared/runtime.d.ts +47 -0
  180. package/dist/types/eval/js/shared/types.d.ts +24 -0
  181. package/dist/types/eval/js/tool-bridge.d.ts +18 -0
  182. package/dist/types/eval/js/worker-core.d.ts +5 -0
  183. package/dist/types/eval/js/worker-entry.d.ts +1 -0
  184. package/dist/types/eval/js/worker-protocol.d.ts +77 -0
  185. package/dist/types/eval/py/display.d.ts +25 -0
  186. package/dist/types/eval/py/executor.d.ts +83 -0
  187. package/dist/types/eval/py/index.d.ts +10 -0
  188. package/dist/types/eval/py/kernel.d.ts +55 -0
  189. package/dist/types/eval/py/prelude.d.ts +1 -0
  190. package/dist/types/eval/py/runtime.d.ts +21 -0
  191. package/dist/types/eval/py/tool-bridge.d.ts +20 -0
  192. package/dist/types/eval/types.d.ts +52 -0
  193. package/dist/types/exa/factory.d.ts +13 -0
  194. package/dist/types/exa/index.d.ts +20 -0
  195. package/dist/types/exa/mcp-client.d.ts +45 -0
  196. package/dist/types/exa/render.d.ts +19 -0
  197. package/dist/types/exa/researcher.d.ts +9 -0
  198. package/dist/types/exa/search.d.ts +9 -0
  199. package/dist/types/exa/types.d.ts +155 -0
  200. package/dist/types/exa/websets.d.ts +9 -0
  201. package/dist/types/exec/bash-executor.d.ts +41 -0
  202. package/dist/types/exec/exec.d.ts +25 -0
  203. package/dist/types/exec/idle-timeout-watchdog.d.ts +18 -0
  204. package/dist/types/exec/non-interactive-env.d.ts +1 -0
  205. package/dist/types/export/custom-share.d.ts +20 -0
  206. package/dist/types/export/html/index.d.ts +10 -0
  207. package/dist/types/export/html/template.generated.d.ts +1 -0
  208. package/dist/types/export/html/template.macro.d.ts +5 -0
  209. package/dist/types/export/ttsr.d.ts +44 -0
  210. package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +9 -0
  211. package/dist/types/extensibility/custom-commands/bundled/review/index.d.ts +10 -0
  212. package/dist/types/extensibility/custom-commands/index.d.ts +2 -0
  213. package/dist/types/extensibility/custom-commands/loader.d.ts +29 -0
  214. package/dist/types/extensibility/custom-commands/types.d.ts +106 -0
  215. package/dist/types/extensibility/custom-tools/index.d.ts +6 -0
  216. package/dist/types/extensibility/custom-tools/loader.d.ts +69 -0
  217. package/dist/types/extensibility/custom-tools/types.d.ts +226 -0
  218. package/dist/types/extensibility/custom-tools/wrapper.d.ts +23 -0
  219. package/dist/types/extensibility/extensions/compact-handler.d.ts +26 -0
  220. package/dist/types/extensibility/extensions/get-commands-handler.d.ts +29 -0
  221. package/dist/types/extensibility/extensions/index.d.ts +8 -0
  222. package/dist/types/extensibility/extensions/loader.d.ts +43 -0
  223. package/dist/types/extensibility/extensions/runner.d.ts +134 -0
  224. package/dist/types/extensibility/extensions/types.d.ts +864 -0
  225. package/dist/types/extensibility/extensions/wrapper.d.ts +54 -0
  226. package/dist/types/extensibility/hooks/index.d.ts +5 -0
  227. package/dist/types/extensibility/hooks/loader.d.ts +89 -0
  228. package/dist/types/extensibility/hooks/runner.d.ts +126 -0
  229. package/dist/types/extensibility/hooks/tool-wrapper.d.ts +25 -0
  230. package/dist/types/extensibility/hooks/types.d.ts +431 -0
  231. package/dist/types/extensibility/plugins/doctor.d.ts +3 -0
  232. package/dist/types/extensibility/plugins/git-url.d.ts +34 -0
  233. package/dist/types/extensibility/plugins/index.d.ts +7 -0
  234. package/dist/types/extensibility/plugins/installer.d.ts +5 -0
  235. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
  236. package/dist/types/extensibility/plugins/loader.d.ts +31 -0
  237. package/dist/types/extensibility/plugins/manager.d.ts +65 -0
  238. package/dist/types/extensibility/plugins/marketplace/cache.d.ts +41 -0
  239. package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +48 -0
  240. package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -0
  241. package/dist/types/extensibility/plugins/marketplace/manager.d.ts +57 -0
  242. package/dist/types/extensibility/plugins/marketplace/registry.d.ts +34 -0
  243. package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +28 -0
  244. package/dist/types/extensibility/plugins/marketplace/types.d.ts +130 -0
  245. package/dist/types/extensibility/plugins/parser.d.ts +52 -0
  246. package/dist/types/extensibility/plugins/types.d.ts +149 -0
  247. package/dist/types/extensibility/shared-events.d.ts +279 -0
  248. package/dist/types/extensibility/skills.d.ts +57 -0
  249. package/dist/types/extensibility/slash-commands.d.ts +48 -0
  250. package/dist/types/extensibility/tool-proxy.d.ts +4 -0
  251. package/dist/types/extensibility/typebox.d.ts +155 -0
  252. package/dist/types/extensibility/utils.d.ts +12 -0
  253. package/dist/types/goals/index.d.ts +3 -0
  254. package/dist/types/goals/runtime.d.ts +63 -0
  255. package/dist/types/goals/state.d.ts +35 -0
  256. package/dist/types/goals/tools/goal-tool.d.ts +62 -0
  257. package/dist/types/hashline/anchors.d.ts +20 -0
  258. package/dist/types/hashline/apply.d.ts +14 -0
  259. package/dist/types/hashline/constants.d.ts +21 -0
  260. package/dist/types/hashline/diff-preview.d.ts +2 -0
  261. package/dist/types/hashline/diff.d.ts +17 -0
  262. package/dist/types/hashline/execute.d.ts +4 -0
  263. package/dist/types/hashline/hash.d.ts +149 -0
  264. package/dist/types/hashline/index.d.ts +13 -0
  265. package/dist/types/hashline/input.d.ts +11 -0
  266. package/dist/types/hashline/parser.d.ts +7 -0
  267. package/dist/types/hashline/prefixes.d.ts +7 -0
  268. package/dist/types/hashline/recovery.d.ts +22 -0
  269. package/dist/types/hashline/stream.d.ts +2 -0
  270. package/dist/types/hashline/types.d.ts +77 -0
  271. package/dist/types/hindsight/backend.d.ts +13 -0
  272. package/dist/types/hindsight/bank.d.ts +54 -0
  273. package/dist/types/hindsight/client.d.ts +224 -0
  274. package/dist/types/hindsight/config.d.ts +51 -0
  275. package/dist/types/hindsight/content.d.ts +70 -0
  276. package/dist/types/hindsight/index.d.ts +8 -0
  277. package/dist/types/hindsight/mental-models.d.ts +125 -0
  278. package/dist/types/hindsight/state.d.ts +99 -0
  279. package/dist/types/hindsight/transcript.d.ts +28 -0
  280. package/dist/types/index.d.ts +33 -0
  281. package/dist/types/internal-urls/agent-protocol.d.ts +12 -0
  282. package/dist/types/internal-urls/artifact-protocol.d.ts +6 -0
  283. package/dist/types/internal-urls/docs-index.generated.d.ts +2 -0
  284. package/dist/types/internal-urls/index.d.ts +22 -0
  285. package/dist/types/internal-urls/issue-pr-protocol.d.ts +17 -0
  286. package/dist/types/internal-urls/json-query.d.ts +30 -0
  287. package/dist/types/internal-urls/local-protocol.d.ts +39 -0
  288. package/dist/types/internal-urls/mcp-protocol.d.ts +12 -0
  289. package/dist/types/internal-urls/memory-protocol.d.ts +17 -0
  290. package/dist/types/internal-urls/omp-protocol.d.ts +12 -0
  291. package/dist/types/internal-urls/parse.d.ts +19 -0
  292. package/dist/types/internal-urls/registry-helpers.d.ts +10 -0
  293. package/dist/types/internal-urls/router.d.ts +14 -0
  294. package/dist/types/internal-urls/rule-protocol.d.ts +6 -0
  295. package/dist/types/internal-urls/skill-protocol.d.ts +13 -0
  296. package/dist/types/internal-urls/types.d.ts +105 -0
  297. package/dist/types/lsp/client.d.ts +65 -0
  298. package/dist/types/lsp/clients/biome-client.d.ts +16 -0
  299. package/dist/types/lsp/clients/index.d.ts +19 -0
  300. package/dist/types/lsp/clients/lsp-linter-client.d.ts +16 -0
  301. package/dist/types/lsp/clients/swiftlint-client.d.ts +20 -0
  302. package/dist/types/lsp/config.d.ts +65 -0
  303. package/dist/types/lsp/edits.d.ts +16 -0
  304. package/dist/types/lsp/index.d.ts +130 -0
  305. package/dist/types/lsp/lspmux.d.ts +58 -0
  306. package/dist/types/lsp/render.d.ts +32 -0
  307. package/dist/types/lsp/startup-events.d.ts +11 -0
  308. package/dist/types/lsp/types.d.ts +302 -0
  309. package/dist/types/lsp/utils.d.ts +108 -0
  310. package/dist/types/main.d.ts +17 -0
  311. package/dist/types/mcp/client.d.ts +74 -0
  312. package/dist/types/mcp/config-writer.d.ts +53 -0
  313. package/dist/types/mcp/config.d.ts +75 -0
  314. package/dist/types/mcp/discoverable-tool-metadata.d.ts +7 -0
  315. package/dist/types/mcp/index.d.ts +18 -0
  316. package/dist/types/mcp/json-rpc.d.ts +22 -0
  317. package/dist/types/mcp/loader.d.ts +43 -0
  318. package/dist/types/mcp/manager.d.ts +193 -0
  319. package/dist/types/mcp/oauth-discovery.d.ts +40 -0
  320. package/dist/types/mcp/oauth-flow.d.ts +59 -0
  321. package/dist/types/mcp/render.d.ts +25 -0
  322. package/dist/types/mcp/smithery-auth.d.ts +16 -0
  323. package/dist/types/mcp/smithery-connect.d.ts +38 -0
  324. package/dist/types/mcp/smithery-registry.d.ts +51 -0
  325. package/dist/types/mcp/tool-bridge.d.ts +86 -0
  326. package/dist/types/mcp/tool-cache.d.ts +8 -0
  327. package/dist/types/mcp/transports/http.d.ts +36 -0
  328. package/dist/types/mcp/transports/index.d.ts +5 -0
  329. package/dist/types/mcp/transports/stdio.d.ts +32 -0
  330. package/dist/types/mcp/types.d.ts +333 -0
  331. package/dist/types/memories/index.d.ts +28 -0
  332. package/dist/types/memories/storage.d.ts +110 -0
  333. package/dist/types/memory-backend/index.d.ts +4 -0
  334. package/dist/types/memory-backend/local-backend.d.ts +9 -0
  335. package/dist/types/memory-backend/off-backend.d.ts +7 -0
  336. package/dist/types/memory-backend/resolve.d.ts +15 -0
  337. package/dist/types/memory-backend/types.d.ts +61 -0
  338. package/dist/types/modes/acp/acp-agent.d.ts +61 -0
  339. package/dist/types/modes/acp/acp-client-bridge.d.ts +9 -0
  340. package/dist/types/modes/acp/acp-event-mapper.d.ts +20 -0
  341. package/dist/types/modes/acp/acp-mode.d.ts +3 -0
  342. package/dist/types/modes/acp/index.d.ts +2 -0
  343. package/dist/types/modes/acp/terminal-auth.d.ts +6 -0
  344. package/dist/types/modes/components/agent-dashboard.d.ts +21 -0
  345. package/dist/types/modes/components/assistant-message.d.ts +16 -0
  346. package/dist/types/modes/components/bash-execution.d.ts +29 -0
  347. package/dist/types/modes/components/bordered-loader.d.ts +11 -0
  348. package/dist/types/modes/components/branch-summary-message.d.ts +13 -0
  349. package/dist/types/modes/components/btw-panel.d.ts +16 -0
  350. package/dist/types/modes/components/compaction-summary-message.d.ts +13 -0
  351. package/dist/types/modes/components/countdown-timer.d.ts +14 -0
  352. package/dist/types/modes/components/custom-editor.d.ts +47 -0
  353. package/dist/types/modes/components/custom-message.d.ts +15 -0
  354. package/dist/types/modes/components/diff.d.ts +11 -0
  355. package/dist/types/modes/components/dynamic-border.d.ts +14 -0
  356. package/dist/types/modes/components/eval-execution.d.ts +23 -0
  357. package/dist/types/modes/components/execution-shared.d.ts +46 -0
  358. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +26 -0
  359. package/dist/types/modes/components/extensions/extension-list.d.ts +39 -0
  360. package/dist/types/modes/components/extensions/index.d.ts +8 -0
  361. package/dist/types/modes/components/extensions/inspector-panel.d.ts +8 -0
  362. package/dist/types/modes/components/extensions/state-manager.d.ts +50 -0
  363. package/dist/types/modes/components/extensions/types.d.ts +151 -0
  364. package/dist/types/modes/components/footer.d.ts +30 -0
  365. package/dist/types/modes/components/history-search.d.ts +7 -0
  366. package/dist/types/modes/components/hook-editor.d.ts +18 -0
  367. package/dist/types/modes/components/hook-input.d.ts +15 -0
  368. package/dist/types/modes/components/hook-message.d.ts +15 -0
  369. package/dist/types/modes/components/hook-selector.d.ts +23 -0
  370. package/dist/types/modes/components/index.d.ts +35 -0
  371. package/dist/types/modes/components/keybinding-hints.d.ts +40 -0
  372. package/dist/types/modes/components/login-dialog.d.ts +32 -0
  373. package/dist/types/modes/components/mcp-add-wizard.d.ts +25 -0
  374. package/dist/types/modes/components/message-frame.d.ts +42 -0
  375. package/dist/types/modes/components/model-selector.d.ts +26 -0
  376. package/dist/types/modes/components/oauth-selector.d.ts +14 -0
  377. package/dist/types/modes/components/plugin-selector.d.ts +26 -0
  378. package/dist/types/modes/components/plugin-settings.d.ts +66 -0
  379. package/dist/types/modes/components/queue-mode-selector.d.ts +9 -0
  380. package/dist/types/modes/components/read-tool-group.d.ts +30 -0
  381. package/dist/types/modes/components/session-observer-overlay.d.ts +11 -0
  382. package/dist/types/modes/components/session-selector.d.ts +30 -0
  383. package/dist/types/modes/components/settings-defs.d.ts +50 -0
  384. package/dist/types/modes/components/settings-selector.d.ts +54 -0
  385. package/dist/types/modes/components/show-images-selector.d.ts +9 -0
  386. package/dist/types/modes/components/skill-message.d.ts +9 -0
  387. package/dist/types/modes/components/status-line/context-thresholds.d.ts +4 -0
  388. package/dist/types/modes/components/status-line/git-utils.d.ts +22 -0
  389. package/dist/types/modes/components/status-line/index.d.ts +4 -0
  390. package/dist/types/modes/components/status-line/presets.d.ts +3 -0
  391. package/dist/types/modes/components/status-line/segments.d.ts +5 -0
  392. package/dist/types/modes/components/status-line/separators.d.ts +3 -0
  393. package/dist/types/modes/components/status-line/token-rate.d.ts +10 -0
  394. package/dist/types/modes/components/status-line/types.d.ts +70 -0
  395. package/dist/types/modes/components/status-line-segment-editor.d.ts +24 -0
  396. package/dist/types/modes/components/status-line.d.ts +61 -0
  397. package/dist/types/modes/components/theme-selector.d.ts +10 -0
  398. package/dist/types/modes/components/thinking-selector.d.ts +10 -0
  399. package/dist/types/modes/components/todo-reminder.d.ts +13 -0
  400. package/dist/types/modes/components/tool-execution.d.ts +53 -0
  401. package/dist/types/modes/components/tree-selector.d.ts +31 -0
  402. package/dist/types/modes/components/ttsr-notification.d.ts +13 -0
  403. package/dist/types/modes/components/user-message-selector.d.ts +28 -0
  404. package/dist/types/modes/components/user-message.d.ts +8 -0
  405. package/dist/types/modes/components/visual-truncate.d.ts +19 -0
  406. package/dist/types/modes/components/welcome.d.ts +33 -0
  407. package/dist/types/modes/controllers/btw-controller.d.ts +10 -0
  408. package/dist/types/modes/controllers/command-controller-shared.d.ts +47 -0
  409. package/dist/types/modes/controllers/command-controller.d.ts +36 -0
  410. package/dist/types/modes/controllers/event-controller.d.ts +12 -0
  411. package/dist/types/modes/controllers/extension-ui-controller.d.ts +80 -0
  412. package/dist/types/modes/controllers/input-controller.d.ts +35 -0
  413. package/dist/types/modes/controllers/mcp-command-controller.d.ts +10 -0
  414. package/dist/types/modes/controllers/selector-controller.d.ts +45 -0
  415. package/dist/types/modes/controllers/ssh-command-controller.d.ts +10 -0
  416. package/dist/types/modes/controllers/todo-command-controller.d.ts +7 -0
  417. package/dist/types/modes/emoji-autocomplete.d.ts +16 -0
  418. package/dist/types/modes/index.d.ts +9 -0
  419. package/dist/types/modes/interactive-mode.d.ts +267 -0
  420. package/dist/types/modes/loop-limit.d.ts +22 -0
  421. package/dist/types/modes/oauth-manual-input.d.ts +8 -0
  422. package/dist/types/modes/print-mode.d.ts +27 -0
  423. package/dist/types/modes/prompt-action-autocomplete.d.ts +46 -0
  424. package/dist/types/modes/rpc/host-tools.d.ts +16 -0
  425. package/dist/types/modes/rpc/host-uris.d.ts +38 -0
  426. package/dist/types/modes/rpc/rpc-client.d.ts +249 -0
  427. package/dist/types/modes/rpc/rpc-mode.d.ts +17 -0
  428. package/dist/types/modes/rpc/rpc-types.d.ts +586 -0
  429. package/dist/types/modes/runtime-init.d.ts +21 -0
  430. package/dist/types/modes/session-observer-registry.d.ts +26 -0
  431. package/dist/types/modes/shared.d.ts +6 -0
  432. package/dist/types/modes/theme/defaults/index.d.ts +9436 -0
  433. package/dist/types/modes/theme/mermaid-cache.d.ts +9 -0
  434. package/dist/types/modes/theme/theme.d.ts +273 -0
  435. package/dist/types/modes/types.d.ts +274 -0
  436. package/dist/types/modes/utils/context-usage.d.ts +30 -0
  437. package/dist/types/modes/utils/hotkeys-markdown.d.ts +5 -0
  438. package/dist/types/modes/utils/keybinding-matchers.d.ts +10 -0
  439. package/dist/types/modes/utils/tools-markdown.d.ts +5 -0
  440. package/dist/types/modes/utils/ui-helpers.d.ts +49 -0
  441. package/dist/types/plan-mode/approved-plan.d.ts +29 -0
  442. package/dist/types/plan-mode/state.d.ts +6 -0
  443. package/dist/types/registry/agent-registry.d.ts +62 -0
  444. package/dist/types/sdk.d.ts +253 -0
  445. package/dist/types/secrets/index.d.ts +9 -0
  446. package/dist/types/secrets/obfuscator.d.ts +23 -0
  447. package/dist/types/secrets/regex.d.ts +2 -0
  448. package/dist/types/session/agent-session.d.ts +898 -0
  449. package/dist/types/session/agent-storage.d.ts +93 -0
  450. package/dist/types/session/artifacts.d.ts +61 -0
  451. package/dist/types/session/auth-broker-config.d.ts +13 -0
  452. package/dist/types/session/auth-storage.d.ts +6 -0
  453. package/dist/types/session/blob-store.d.ts +63 -0
  454. package/dist/types/session/client-bridge.d.ts +84 -0
  455. package/dist/types/session/history-storage.d.ts +16 -0
  456. package/dist/types/session/messages.d.ts +162 -0
  457. package/dist/types/session/session-dump-format.d.ts +22 -0
  458. package/dist/types/session/session-manager.d.ts +539 -0
  459. package/dist/types/session/session-storage.d.ts +82 -0
  460. package/dist/types/session/streaming-output.d.ts +185 -0
  461. package/dist/types/session/tool-choice-queue.d.ts +78 -0
  462. package/dist/types/slash-commands/acp-builtins.d.ts +18 -0
  463. package/dist/types/slash-commands/builtin-registry.d.ts +23 -0
  464. package/dist/types/slash-commands/helpers/context-report.d.ts +7 -0
  465. package/dist/types/slash-commands/helpers/format.d.ts +7 -0
  466. package/dist/types/slash-commands/helpers/marketplace-manager.d.ts +8 -0
  467. package/dist/types/slash-commands/helpers/mcp.d.ts +3 -0
  468. package/dist/types/slash-commands/helpers/parse.d.ts +33 -0
  469. package/dist/types/slash-commands/helpers/ssh.d.ts +3 -0
  470. package/dist/types/slash-commands/helpers/todo.d.ts +3 -0
  471. package/dist/types/slash-commands/helpers/usage-report.d.ts +7 -0
  472. package/dist/types/slash-commands/marketplace-install-parser.d.ts +33 -0
  473. package/dist/types/slash-commands/types.d.ts +119 -0
  474. package/dist/types/ssh/config-writer.d.ts +49 -0
  475. package/dist/types/ssh/connection-manager.d.ts +33 -0
  476. package/dist/types/ssh/ssh-executor.d.ts +37 -0
  477. package/dist/types/ssh/sshfs-mount.d.ts +6 -0
  478. package/dist/types/ssh/utils.d.ts +2 -0
  479. package/dist/types/stt/downloader.d.ts +9 -0
  480. package/dist/types/stt/index.d.ts +3 -0
  481. package/dist/types/stt/recorder.d.ts +13 -0
  482. package/dist/types/stt/setup.d.ts +18 -0
  483. package/dist/types/stt/stt-controller.d.ts +16 -0
  484. package/dist/types/stt/transcriber.d.ts +16 -0
  485. package/dist/types/system-prompt.d.ts +93 -0
  486. package/dist/types/task/agents.d.ts +28 -0
  487. package/dist/types/task/commands.d.ts +35 -0
  488. package/dist/types/task/discovery.d.ts +18 -0
  489. package/dist/types/task/executor.d.ts +106 -0
  490. package/dist/types/task/index.d.ts +38 -0
  491. package/dist/types/task/name-generator.d.ts +16 -0
  492. package/dist/types/task/omp-command.d.ts +7 -0
  493. package/dist/types/task/output-manager.d.ts +36 -0
  494. package/dist/types/task/parallel.d.ts +34 -0
  495. package/dist/types/task/render.d.ts +22 -0
  496. package/dist/types/task/simple-mode.d.ts +8 -0
  497. package/dist/types/task/subprocess-tool-registry.d.ts +72 -0
  498. package/dist/types/task/types.d.ts +251 -0
  499. package/dist/types/task/worktree.d.ts +95 -0
  500. package/dist/types/thinking.d.ts +30 -0
  501. package/dist/types/tool-discovery/tool-index.d.ts +107 -0
  502. package/dist/types/tools/archive-reader.d.ts +40 -0
  503. package/dist/types/tools/ask.d.ts +109 -0
  504. package/dist/types/tools/ast-edit.d.ts +72 -0
  505. package/dist/types/tools/ast-grep.d.ts +64 -0
  506. package/dist/types/tools/auto-generated-guard.d.ts +17 -0
  507. package/dist/types/tools/bash-command-fixup.d.ts +16 -0
  508. package/dist/types/tools/bash-interactive.d.ts +16 -0
  509. package/dist/types/tools/bash-interceptor.d.ts +24 -0
  510. package/dist/types/tools/bash-pty-selection.d.ts +7 -0
  511. package/dist/types/tools/bash-skill-urls.d.ts +31 -0
  512. package/dist/types/tools/bash.d.ts +130 -0
  513. package/dist/types/tools/browser/attach.d.ts +34 -0
  514. package/dist/types/tools/browser/launch.d.ts +60 -0
  515. package/dist/types/tools/browser/readable.d.ts +17 -0
  516. package/dist/types/tools/browser/registry.d.ts +42 -0
  517. package/dist/types/tools/browser/render.d.ts +50 -0
  518. package/dist/types/tools/browser/tab-protocol.d.ts +144 -0
  519. package/dist/types/tools/browser/tab-supervisor.d.ts +63 -0
  520. package/dist/types/tools/browser/tab-worker-entry.d.ts +1 -0
  521. package/dist/types/tools/browser/tab-worker.d.ts +19 -0
  522. package/dist/types/tools/browser.d.ts +114 -0
  523. package/dist/types/tools/calculator.d.ts +76 -0
  524. package/dist/types/tools/checkpoint.d.ts +63 -0
  525. package/dist/types/tools/conflict-detect.d.ts +205 -0
  526. package/dist/types/tools/context.d.ts +19 -0
  527. package/dist/types/tools/debug.d.ts +209 -0
  528. package/dist/types/tools/eval.d.ts +108 -0
  529. package/dist/types/tools/fetch.d.ts +61 -0
  530. package/dist/types/tools/file-recorder.d.ts +13 -0
  531. package/dist/types/tools/find.d.ts +88 -0
  532. package/dist/types/tools/fs-cache-invalidation.d.ts +15 -0
  533. package/dist/types/tools/gh-format.d.ts +6 -0
  534. package/dist/types/tools/gh-renderer.d.ts +25 -0
  535. package/dist/types/tools/gh.d.ts +356 -0
  536. package/dist/types/tools/github-cache.d.ts +103 -0
  537. package/dist/types/tools/grouped-file-output.d.ts +36 -0
  538. package/dist/types/tools/hindsight-recall.d.ts +23 -0
  539. package/dist/types/tools/hindsight-reflect.d.ts +25 -0
  540. package/dist/types/tools/hindsight-retain.d.ts +29 -0
  541. package/dist/types/tools/image-gen.d.ts +78 -0
  542. package/dist/types/tools/index.d.ts +244 -0
  543. package/dist/types/tools/inspect-image-renderer.d.ts +26 -0
  544. package/dist/types/tools/inspect-image.d.ts +31 -0
  545. package/dist/types/tools/irc.d.ts +79 -0
  546. package/dist/types/tools/job.d.ts +65 -0
  547. package/dist/types/tools/json-tree.d.ts +23 -0
  548. package/dist/types/tools/jtd-to-json-schema.d.ts +29 -0
  549. package/dist/types/tools/jtd-to-typescript.d.ts +26 -0
  550. package/dist/types/tools/jtd-utils.d.ts +42 -0
  551. package/dist/types/tools/list-limit.d.ts +12 -0
  552. package/dist/types/tools/match-line-format.d.ts +11 -0
  553. package/dist/types/tools/output-meta.d.ts +204 -0
  554. package/dist/types/tools/path-utils.d.ts +125 -0
  555. package/dist/types/tools/plan-mode-guard.d.ts +18 -0
  556. package/dist/types/tools/read.d.ts +85 -0
  557. package/dist/types/tools/recipe/index.d.ts +45 -0
  558. package/dist/types/tools/recipe/render.d.ts +36 -0
  559. package/dist/types/tools/recipe/runner.d.ts +60 -0
  560. package/dist/types/tools/recipe/runners/cargo.d.ts +16 -0
  561. package/dist/types/tools/recipe/runners/index.d.ts +2 -0
  562. package/dist/types/tools/recipe/runners/just.d.ts +2 -0
  563. package/dist/types/tools/recipe/runners/make.d.ts +2 -0
  564. package/dist/types/tools/recipe/runners/pkg.d.ts +2 -0
  565. package/dist/types/tools/recipe/runners/task.d.ts +2 -0
  566. package/dist/types/tools/render-mermaid.d.ts +37 -0
  567. package/dist/types/tools/render-utils.d.ts +148 -0
  568. package/dist/types/tools/renderers.d.ts +26 -0
  569. package/dist/types/tools/report-tool-issue.d.ts +123 -0
  570. package/dist/types/tools/resolve.d.ts +85 -0
  571. package/dist/types/tools/review.d.ts +50 -0
  572. package/dist/types/tools/search-tool-bm25.d.ts +65 -0
  573. package/dist/types/tools/search.d.ts +90 -0
  574. package/dist/types/tools/sqlite-reader.d.ts +93 -0
  575. package/dist/types/tools/ssh.d.ts +67 -0
  576. package/dist/types/tools/todo-write.d.ts +120 -0
  577. package/dist/types/tools/tool-errors.d.ts +33 -0
  578. package/dist/types/tools/tool-result.d.ts +30 -0
  579. package/dist/types/tools/tool-timeouts.d.ts +51 -0
  580. package/dist/types/tools/vim.d.ts +58 -0
  581. package/dist/types/tools/write.d.ts +59 -0
  582. package/dist/types/tools/yield.d.ts +25 -0
  583. package/dist/types/tui/code-cell.d.ts +32 -0
  584. package/dist/types/tui/file-list.d.ts +16 -0
  585. package/dist/types/tui/index.d.ts +10 -0
  586. package/dist/types/tui/output-block.d.ts +28 -0
  587. package/dist/types/tui/status-line.d.ts +18 -0
  588. package/dist/types/tui/tree-list.d.ts +19 -0
  589. package/dist/types/tui/types.d.ts +13 -0
  590. package/dist/types/tui/utils.d.ts +36 -0
  591. package/dist/types/utils/changelog.d.ts +20 -0
  592. package/dist/types/utils/clipboard.d.ts +20 -0
  593. package/dist/types/utils/command-args.d.ts +9 -0
  594. package/dist/types/utils/commit-message-generator.d.ts +7 -0
  595. package/dist/types/utils/edit-mode.d.ts +13 -0
  596. package/dist/types/utils/event-bus.d.ts +6 -0
  597. package/dist/types/utils/external-editor.d.ts +17 -0
  598. package/dist/types/utils/file-display-mode.d.ts +27 -0
  599. package/dist/types/utils/file-mentions.d.ts +11 -0
  600. package/dist/types/utils/git.d.ts +360 -0
  601. package/dist/types/utils/image-loading.d.ts +26 -0
  602. package/dist/types/utils/image-resize.d.ts +36 -0
  603. package/dist/types/utils/lang-from-path.d.ts +8 -0
  604. package/dist/types/utils/markit.d.ts +7 -0
  605. package/dist/types/utils/open.d.ts +2 -0
  606. package/dist/types/utils/session-color.d.ts +10 -0
  607. package/dist/types/utils/shell-snapshot.d.ts +5 -0
  608. package/dist/types/utils/sixel.d.ts +21 -0
  609. package/dist/types/utils/title-generator.d.ts +31 -0
  610. package/dist/types/utils/tool-choice.d.ts +6 -0
  611. package/dist/types/utils/tools-manager.d.ts +9 -0
  612. package/dist/types/vim/buffer.d.ts +41 -0
  613. package/dist/types/vim/commands.d.ts +6 -0
  614. package/dist/types/vim/engine.d.ts +47 -0
  615. package/dist/types/vim/parser.d.ts +3 -0
  616. package/dist/types/vim/render.d.ts +25 -0
  617. package/dist/types/vim/types.d.ts +182 -0
  618. package/dist/types/web/kagi.d.ts +21 -0
  619. package/dist/types/web/parallel.d.ts +57 -0
  620. package/dist/types/web/scrapers/artifacthub.d.ts +6 -0
  621. package/dist/types/web/scrapers/arxiv.d.ts +5 -0
  622. package/dist/types/web/scrapers/aur.d.ts +5 -0
  623. package/dist/types/web/scrapers/biorxiv.d.ts +5 -0
  624. package/dist/types/web/scrapers/bluesky.d.ts +5 -0
  625. package/dist/types/web/scrapers/brew.d.ts +5 -0
  626. package/dist/types/web/scrapers/cheatsh.d.ts +8 -0
  627. package/dist/types/web/scrapers/chocolatey.d.ts +5 -0
  628. package/dist/types/web/scrapers/choosealicense.d.ts +2 -0
  629. package/dist/types/web/scrapers/cisa-kev.d.ts +5 -0
  630. package/dist/types/web/scrapers/clojars.d.ts +5 -0
  631. package/dist/types/web/scrapers/coingecko.d.ts +5 -0
  632. package/dist/types/web/scrapers/crates-io.d.ts +5 -0
  633. package/dist/types/web/scrapers/crossref.d.ts +2 -0
  634. package/dist/types/web/scrapers/devto.d.ts +5 -0
  635. package/dist/types/web/scrapers/discogs.d.ts +8 -0
  636. package/dist/types/web/scrapers/discourse.d.ts +5 -0
  637. package/dist/types/web/scrapers/dockerhub.d.ts +5 -0
  638. package/dist/types/web/scrapers/docs-rs.d.ts +2 -0
  639. package/dist/types/web/scrapers/fdroid.d.ts +5 -0
  640. package/dist/types/web/scrapers/firefox-addons.d.ts +2 -0
  641. package/dist/types/web/scrapers/flathub.d.ts +2 -0
  642. package/dist/types/web/scrapers/github-gist.d.ts +5 -0
  643. package/dist/types/web/scrapers/github.d.ts +12 -0
  644. package/dist/types/web/scrapers/gitlab.d.ts +5 -0
  645. package/dist/types/web/scrapers/go-pkg.d.ts +5 -0
  646. package/dist/types/web/scrapers/hackage.d.ts +5 -0
  647. package/dist/types/web/scrapers/hackernews.d.ts +2 -0
  648. package/dist/types/web/scrapers/hex.d.ts +5 -0
  649. package/dist/types/web/scrapers/huggingface.d.ts +2 -0
  650. package/dist/types/web/scrapers/iacr.d.ts +5 -0
  651. package/dist/types/web/scrapers/index.d.ts +84 -0
  652. package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +2 -0
  653. package/dist/types/web/scrapers/lemmy.d.ts +2 -0
  654. package/dist/types/web/scrapers/lobsters.d.ts +5 -0
  655. package/dist/types/web/scrapers/mastodon.d.ts +5 -0
  656. package/dist/types/web/scrapers/maven.d.ts +6 -0
  657. package/dist/types/web/scrapers/mdn.d.ts +2 -0
  658. package/dist/types/web/scrapers/metacpan.d.ts +5 -0
  659. package/dist/types/web/scrapers/musicbrainz.d.ts +5 -0
  660. package/dist/types/web/scrapers/npm.d.ts +5 -0
  661. package/dist/types/web/scrapers/nuget.d.ts +5 -0
  662. package/dist/types/web/scrapers/nvd.d.ts +5 -0
  663. package/dist/types/web/scrapers/ollama.d.ts +2 -0
  664. package/dist/types/web/scrapers/open-vsx.d.ts +5 -0
  665. package/dist/types/web/scrapers/opencorporates.d.ts +5 -0
  666. package/dist/types/web/scrapers/openlibrary.d.ts +5 -0
  667. package/dist/types/web/scrapers/orcid.d.ts +5 -0
  668. package/dist/types/web/scrapers/osv.d.ts +5 -0
  669. package/dist/types/web/scrapers/packagist.d.ts +5 -0
  670. package/dist/types/web/scrapers/pub-dev.d.ts +5 -0
  671. package/dist/types/web/scrapers/pubmed.d.ts +5 -0
  672. package/dist/types/web/scrapers/pypi.d.ts +5 -0
  673. package/dist/types/web/scrapers/rawg.d.ts +2 -0
  674. package/dist/types/web/scrapers/readthedocs.d.ts +2 -0
  675. package/dist/types/web/scrapers/reddit.d.ts +5 -0
  676. package/dist/types/web/scrapers/repology.d.ts +5 -0
  677. package/dist/types/web/scrapers/rfc.d.ts +5 -0
  678. package/dist/types/web/scrapers/rubygems.d.ts +5 -0
  679. package/dist/types/web/scrapers/searchcode.d.ts +2 -0
  680. package/dist/types/web/scrapers/sec-edgar.d.ts +5 -0
  681. package/dist/types/web/scrapers/semantic-scholar.d.ts +2 -0
  682. package/dist/types/web/scrapers/snapcraft.d.ts +2 -0
  683. package/dist/types/web/scrapers/sourcegraph.d.ts +2 -0
  684. package/dist/types/web/scrapers/spdx.d.ts +5 -0
  685. package/dist/types/web/scrapers/spotify.d.ts +8 -0
  686. package/dist/types/web/scrapers/stackoverflow.d.ts +6 -0
  687. package/dist/types/web/scrapers/terraform.d.ts +5 -0
  688. package/dist/types/web/scrapers/tldr.d.ts +7 -0
  689. package/dist/types/web/scrapers/twitter.d.ts +5 -0
  690. package/dist/types/web/scrapers/types.d.ts +77 -0
  691. package/dist/types/web/scrapers/utils.d.ts +26 -0
  692. package/dist/types/web/scrapers/vimeo.d.ts +5 -0
  693. package/dist/types/web/scrapers/vscode-marketplace.d.ts +5 -0
  694. package/dist/types/web/scrapers/w3c.d.ts +2 -0
  695. package/dist/types/web/scrapers/wikidata.d.ts +5 -0
  696. package/dist/types/web/scrapers/wikipedia.d.ts +5 -0
  697. package/dist/types/web/scrapers/youtube.d.ts +5 -0
  698. package/dist/types/web/search/index.d.ts +76 -0
  699. package/dist/types/web/search/provider.d.ts +20 -0
  700. package/dist/types/web/search/providers/anthropic.d.ts +27 -0
  701. package/dist/types/web/search/providers/base.d.ts +35 -0
  702. package/dist/types/web/search/providers/brave.d.ts +20 -0
  703. package/dist/types/web/search/providers/codex.d.ts +31 -0
  704. package/dist/types/web/search/providers/exa.d.ts +43 -0
  705. package/dist/types/web/search/providers/gemini.d.ts +60 -0
  706. package/dist/types/web/search/providers/jina.d.ts +25 -0
  707. package/dist/types/web/search/providers/kagi.d.ts +21 -0
  708. package/dist/types/web/search/providers/kimi.d.ts +18 -0
  709. package/dist/types/web/search/providers/parallel.d.ts +14 -0
  710. package/dist/types/web/search/providers/perplexity.d.ts +35 -0
  711. package/dist/types/web/search/providers/searxng.d.ts +43 -0
  712. package/dist/types/web/search/providers/synthetic.d.ts +24 -0
  713. package/dist/types/web/search/providers/tavily.d.ts +22 -0
  714. package/dist/types/web/search/providers/utils.d.ts +24 -0
  715. package/dist/types/web/search/providers/zai.d.ts +19 -0
  716. package/dist/types/web/search/render.d.ts +35 -0
  717. package/dist/types/web/search/types.d.ts +344 -0
  718. package/dist/types/web/search/utils.d.ts +4 -0
  719. package/dist/types/workspace-tree.d.ts +42 -0
  720. package/examples/custom-tools/README.md +3 -12
  721. package/examples/extensions/README.md +2 -15
  722. package/examples/extensions/api-demo.ts +1 -7
  723. package/package.json +124 -123
  724. package/src/autoresearch/tools/init-experiment.ts +11 -33
  725. package/src/autoresearch/tools/log-experiment.ts +10 -24
  726. package/src/autoresearch/tools/run-experiment.ts +1 -1
  727. package/src/autoresearch/tools/update-notes.ts +2 -9
  728. package/src/cli/auth-broker-cli.ts +746 -0
  729. package/src/cli/auth-gateway-cli.ts +342 -0
  730. package/src/cli/grievances-cli.ts +109 -16
  731. package/src/cli.ts +4 -2
  732. package/src/commands/auth-broker.ts +96 -0
  733. package/src/commands/auth-gateway.ts +61 -0
  734. package/src/commands/grievances.ts +13 -8
  735. package/src/commands/launch.ts +1 -1
  736. package/src/commit/agentic/agent.ts +2 -0
  737. package/src/commit/agentic/tools/analyze-file.ts +2 -2
  738. package/src/commit/agentic/tools/git-file-diff.ts +2 -2
  739. package/src/commit/agentic/tools/git-hunk.ts +3 -3
  740. package/src/commit/agentic/tools/git-overview.ts +2 -2
  741. package/src/commit/agentic/tools/propose-changelog.ts +1 -3
  742. package/src/commit/agentic/tools/recent-commits.ts +1 -1
  743. package/src/commit/agentic/tools/schemas.ts +1 -9
  744. package/src/config/mcp-schema.json +1 -1
  745. package/src/config/model-equivalence.ts +279 -174
  746. package/src/config/model-registry.ts +37 -6
  747. package/src/config/model-resolver.ts +13 -8
  748. package/src/config/models-config-schema.ts +8 -0
  749. package/src/config/settings-schema.ts +52 -0
  750. package/src/cursor.ts +1 -1
  751. package/src/debug/log-formatting.ts +1 -1
  752. package/src/debug/log-viewer.ts +1 -1
  753. package/src/debug/profiler.ts +4 -0
  754. package/src/debug/raw-sse-buffer.ts +100 -59
  755. package/src/debug/raw-sse.ts +1 -1
  756. package/src/discovery/agents.ts +15 -4
  757. package/src/edit/modes/apply-patch.ts +1 -5
  758. package/src/edit/modes/patch.ts +5 -5
  759. package/src/edit/modes/replace.ts +5 -5
  760. package/src/edit/normalize.ts +1 -1
  761. package/src/edit/renderer.ts +2 -1
  762. package/src/edit/streaming.ts +1 -1
  763. package/src/eval/index.ts +0 -2
  764. package/src/eval/js/shared/runtime.ts +25 -0
  765. package/src/eval/py/kernel.ts +1 -1
  766. package/src/exa/researcher.ts +4 -4
  767. package/src/exa/search.ts +10 -22
  768. package/src/exa/websets.ts +33 -33
  769. package/src/extensibility/typebox.ts +1 -1
  770. package/src/goals/tools/goal-tool.ts +3 -3
  771. package/src/hashline/index.ts +0 -1
  772. package/src/hashline/input.ts +8 -11
  773. package/src/hashline/parser.ts +6 -8
  774. package/src/index.ts +0 -3
  775. package/src/internal-urls/docs-index.generated.ts +21 -18
  776. package/src/internal-urls/index.ts +1 -1
  777. package/src/internal-urls/{pi-protocol.ts → omp-protocol.ts} +10 -10
  778. package/src/internal-urls/router.ts +3 -3
  779. package/src/internal-urls/types.ts +1 -1
  780. package/src/lsp/types.ts +8 -11
  781. package/src/main.ts +3 -0
  782. package/src/mcp/tool-bridge.ts +3 -3
  783. package/src/modes/acp/acp-agent.ts +89 -25
  784. package/src/modes/components/bash-execution.ts +1 -1
  785. package/src/modes/components/diff.ts +1 -2
  786. package/src/modes/components/eval-execution.ts +1 -1
  787. package/src/modes/components/oauth-selector.ts +38 -2
  788. package/src/modes/components/tool-execution.ts +1 -2
  789. package/src/modes/controllers/command-controller.ts +96 -34
  790. package/src/modes/controllers/input-controller.ts +4 -3
  791. package/src/modes/controllers/ssh-command-controller.ts +2 -0
  792. package/src/modes/data/emojis.json +1 -0
  793. package/src/modes/emoji-autocomplete.ts +285 -0
  794. package/src/modes/interactive-mode.ts +92 -19
  795. package/src/modes/print-mode.ts +3 -3
  796. package/src/modes/prompt-action-autocomplete.ts +14 -0
  797. package/src/modes/theme/theme-schema.json +1 -1
  798. package/src/plan-mode/approved-plan.ts +9 -0
  799. package/src/prompts/system/system-prompt.md +1 -1
  800. package/src/prompts/system/ttsr-tool-reminder.md +5 -0
  801. package/src/prompts/tools/eval.md +25 -26
  802. package/src/prompts/tools/hashline.md +1 -0
  803. package/src/prompts/tools/read.md +2 -2
  804. package/src/prompts/tools/resolve.md +1 -1
  805. package/src/prompts/tools/search.md +1 -1
  806. package/src/prompts/tools/web-search.md +1 -1
  807. package/src/sdk.ts +92 -7
  808. package/src/session/agent-session.ts +225 -77
  809. package/src/session/agent-storage.ts +7 -2
  810. package/src/session/auth-broker-config.ts +102 -0
  811. package/src/session/auth-storage.ts +7 -1
  812. package/src/session/streaming-output.ts +1 -1
  813. package/src/slash-commands/builtin-registry.ts +2 -0
  814. package/src/slash-commands/helpers/ssh.ts +2 -0
  815. package/src/ssh/connection-manager.ts +28 -7
  816. package/src/task/types.ts +10 -35
  817. package/src/tools/bash-interactive.ts +5 -2
  818. package/src/tools/bash-pty-selection.ts +14 -0
  819. package/src/tools/bash.ts +5 -4
  820. package/src/tools/browser.ts +12 -20
  821. package/src/tools/eval.ts +77 -100
  822. package/src/tools/gh.ts +21 -45
  823. package/src/tools/hindsight-recall.ts +1 -1
  824. package/src/tools/hindsight-reflect.ts +2 -2
  825. package/src/tools/hindsight-retain.ts +3 -7
  826. package/src/tools/index.ts +8 -1
  827. package/src/tools/inspect-image.ts +4 -1
  828. package/src/tools/irc.ts +4 -12
  829. package/src/tools/job.ts +3 -11
  830. package/src/tools/path-utils.ts +2 -2
  831. package/src/tools/read.ts +7 -4
  832. package/src/tools/report-tool-issue.ts +462 -17
  833. package/src/tools/resolve.ts +2 -7
  834. package/src/tools/search.ts +7 -0
  835. package/src/tools/todo-write.ts +8 -15
  836. package/src/tools/yield.ts +17 -5
  837. package/src/tui/code-cell.ts +18 -3
  838. package/src/utils/title-generator.ts +3 -0
  839. package/src/web/scrapers/searchcode.ts +1 -2
  840. package/src/web/search/index.ts +6 -6
  841. package/src/eval/eval.lark +0 -36
  842. package/src/eval/parse.ts +0 -407
  843. package/src/eval/sniff.ts +0 -28
  844. package/src/hashline/utils.ts +0 -3
@@ -18,12 +18,15 @@ import * as fs from "node:fs";
18
18
  import * as path from "node:path";
19
19
  import { scheduler } from "node:timers/promises";
20
20
  import {
21
+ type AfterToolCallContext,
22
+ type AfterToolCallResult,
21
23
  type Agent,
22
24
  AgentBusyError,
23
25
  type AgentEvent,
24
26
  type AgentMessage,
25
27
  type AgentState,
26
28
  type AgentTool,
29
+ resolveTelemetry,
27
30
  ThinkingLevel,
28
31
  } from "@oh-my-pi/pi-agent-core";
29
32
  import {
@@ -79,6 +82,7 @@ import {
79
82
  Snowflake,
80
83
  } from "@oh-my-pi/pi-utils";
81
84
  import { type AsyncJob, AsyncJobManager } from "../async";
85
+ import { reset as resetCapabilities } from "../capability";
82
86
  import type { Rule } from "../capability/rule";
83
87
  import { MODEL_ROLE_IDS, type ModelRegistry } from "../config/model-registry";
84
88
  import {
@@ -92,6 +96,7 @@ import {
92
96
  import { expandPromptTemplate, type PromptTemplate } from "../config/prompt-templates";
93
97
  import type { Settings, SkillsSettings } from "../config/settings";
94
98
  import { RawSseDebugBuffer } from "../debug/raw-sse-buffer";
99
+ import { loadCapability } from "../discovery";
95
100
  import { normalizeDiff, normalizeToLF, ParseError, previewPatch, stripBom } from "../edit";
96
101
  import {
97
102
  disposeKernelSessionsByOwner,
@@ -151,8 +156,10 @@ import planModeToolDecisionReminderPrompt from "../prompts/system/plan-mode-tool
151
156
  type: "text",
152
157
  };
153
158
  import ttsrInterruptTemplate from "../prompts/system/ttsr-interrupt.md" with { type: "text" };
159
+ import ttsrToolReminderTemplate from "../prompts/system/ttsr-tool-reminder.md" with { type: "text" };
154
160
  import { type AgentRegistry, MAIN_AGENT_ID } from "../registry/agent-registry";
155
161
  import { deobfuscateSessionContext, type SecretObfuscator } from "../secrets/obfuscator";
162
+ import { invalidateHostMetadata } from "../ssh/connection-manager";
156
163
  import { resolveThinkingLevelForModel, toReasoningEffort } from "../thinking";
157
164
  import {
158
165
  buildDiscoverableToolSearchIndex,
@@ -274,6 +281,9 @@ export interface AgentSessionConfig {
274
281
  convertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
275
282
  /** System prompt builder that can consider tool availability. Returns ordered provider-facing blocks. */
276
283
  rebuildSystemPrompt?: (toolNames: string[], tools: Map<string, AgentTool>) => Promise<{ systemPrompt: string[] }>;
284
+ /** Rebuild the SSH tool from current capability discovery results. */
285
+ reloadSshTool?: () => Promise<AgentTool | null>;
286
+ requestedToolNames?: ReadonlySet<string>;
277
287
  /**
278
288
  * Optional accessor for live MCP server instructions. Read by the session's
279
289
  * `rebuildSystemPrompt`-skip optimization to detect server-side instruction
@@ -736,6 +746,8 @@ export class AgentSession {
736
746
  | ((toolNames: string[], tools: Map<string, AgentTool>) => Promise<{ systemPrompt: string[] }>)
737
747
  | undefined;
738
748
  #getMcpServerInstructions: (() => Map<string, string> | undefined) | undefined;
749
+ #reloadSshTool: (() => Promise<AgentTool | null>) | undefined;
750
+ #requestedToolNames: ReadonlySet<string> | undefined;
739
751
  #baseSystemPrompt: string[];
740
752
  /**
741
753
  * Signature of the (toolNames, tool descriptions) tuple passed to the most
@@ -759,6 +771,10 @@ export class AgentSession {
759
771
  // TTSR manager for time-traveling stream rules
760
772
  #ttsrManager: TtsrManager | undefined = undefined;
761
773
  #pendingTtsrInjections: Rule[] = [];
774
+ /** Per-tool TTSR rules whose `interruptMode` opted out of aborting the stream.
775
+ * These are folded into the matched tool call's `toolResult` content as an
776
+ * in-band system reminder, instead of spawning a separate follow-up turn. */
777
+ #perToolTtsrInjections = new Map<string, Rule[]>();
762
778
  #ttsrAbortPending = false;
763
779
  #ttsrRetryToken = 0;
764
780
  #ttsrResumePromise: Promise<void> | undefined = undefined;
@@ -868,24 +884,38 @@ export class AgentSession {
868
884
  this.#modelRegistry = config.modelRegistry;
869
885
  this.#validateRetryFallbackChains();
870
886
  this.#toolRegistry = config.toolRegistry ?? new Map();
887
+ this.#requestedToolNames = config.requestedToolNames;
871
888
  this.#transformContext = config.transformContext ?? (messages => messages);
872
889
  this.#onPayload = config.onPayload;
873
890
  this.rawSseDebugBuffer = config.rawSseDebugBuffer ?? new RawSseDebugBuffer();
891
+ // Avoid wrapping in an `async` closure when no user callback is configured: the
892
+ // outer await on `#onResponse` (provider-response.ts) tolerates a sync void return,
893
+ // and skipping the wrapper drops a per-event `newPromiseCapability` allocation that
894
+ // shows up as ~3.5% self time in streaming profiles.
874
895
  const configuredOnResponse = config.onResponse;
875
- this.#onResponse = async (response, model) => {
876
- this.rawSseDebugBuffer.recordResponse(response, model);
877
- await configuredOnResponse?.(response, model);
878
- };
896
+ this.#onResponse = configuredOnResponse
897
+ ? async (response, model) => {
898
+ this.rawSseDebugBuffer.recordResponse(response, model);
899
+ await configuredOnResponse(response, model);
900
+ }
901
+ : (response, model) => {
902
+ this.rawSseDebugBuffer.recordResponse(response, model);
903
+ };
879
904
  const configuredOnSseEvent = config.onSseEvent;
880
- this.#onSseEvent = (event, model) => {
881
- this.rawSseDebugBuffer.recordEvent(event, model);
882
- configuredOnSseEvent?.(event, model);
883
- };
905
+ this.#onSseEvent = configuredOnSseEvent
906
+ ? (event, model) => {
907
+ this.rawSseDebugBuffer.recordEvent(event, model);
908
+ configuredOnSseEvent(event, model);
909
+ }
910
+ : (event, model) => {
911
+ this.rawSseDebugBuffer.recordEvent(event, model);
912
+ };
884
913
  this.agent.setProviderResponseInterceptor(this.#onResponse);
885
914
  this.agent.setRawSseEventInterceptor(this.#onSseEvent);
886
915
  this.#convertToLlm = config.convertToLlm ?? convertToLlm;
887
916
  this.#rebuildSystemPrompt = config.rebuildSystemPrompt;
888
917
  this.#getMcpServerInstructions = config.getMcpServerInstructions;
918
+ this.#reloadSshTool = config.reloadSshTool;
889
919
  this.#baseSystemPrompt = this.agent.state.systemPrompt;
890
920
  this.#mcpDiscoveryEnabled = config.mcpDiscoveryEnabled ?? false;
891
921
  this.#setDiscoverableMCPTools(this.#collectDiscoverableMCPToolsFromRegistry());
@@ -922,6 +952,8 @@ export class AgentSession {
922
952
  this.#preCacheStreamingEditFile(event);
923
953
  this.#maybeAbortStreamingEdit(event);
924
954
  });
955
+ // Per-tool TTSR reminders are folded into the matched tool's result via this hook.
956
+ this.agent.afterToolCall = ctx => this.#ttsrAfterToolCall(ctx);
925
957
  this.agent.providerSessionState = this.#providerSessionState;
926
958
  this.#syncAgentSessionId();
927
959
  this.#syncTodoPhasesFromBranch();
@@ -1315,77 +1347,87 @@ export class AgentSession {
1315
1347
  if (matchContext && "delta" in assistantEvent) {
1316
1348
  const matches = this.#ttsrManager.checkDelta(assistantEvent.delta, matchContext);
1317
1349
  if (matches.length > 0) {
1318
- // Queue rules for injection; mark as injected only after successful enqueue.
1319
-
1320
- this.#addPendingTtsrInjections(matches);
1321
-
1322
- if (this.#shouldInterruptForTtsrMatch(matches, matchContext)) {
1323
- // Abort the stream immediately — do not gate on extension callbacks
1324
- this.#ttsrAbortPending = true;
1325
- this.#ensureTtsrResumePromise();
1326
- this.agent.abort();
1327
- // Notify extensions (fire-and-forget, does not block abort)
1350
+ // Decide first: a non-interrupting tool-source match attaches to the
1351
+ // specific tool call's result instead of driving a loop-wide follow-up.
1352
+ const shouldInterrupt = this.#shouldInterruptForTtsrMatch(matches, matchContext);
1353
+ const perToolId = shouldInterrupt ? undefined : this.#extractTtsrToolCallId(matchContext);
1354
+ if (perToolId) {
1355
+ this.#addPerToolTtsrInjections(perToolId, matches);
1328
1356
  this.#emitSessionEvent({ type: "ttsr_triggered", rules: matches }).catch(() => {});
1329
- // Schedule retry after a short delay
1330
- const retryToken = ++this.#ttsrRetryToken;
1331
- const generation = this.#promptGeneration;
1332
- const targetMessageTimestamp =
1333
- event.message.role === "assistant" ? event.message.timestamp : undefined;
1334
- this.#schedulePostPromptTask(
1335
- async () => {
1336
- if (this.#ttsrRetryToken !== retryToken) {
1337
- this.#resolveTtsrResume();
1338
- return;
1339
- }
1357
+ } else {
1358
+ // Queue rules for injection; mark as injected only after successful enqueue.
1359
+ this.#addPendingTtsrInjections(matches);
1360
+
1361
+ if (shouldInterrupt) {
1362
+ // Abort the stream immediately — do not gate on extension callbacks
1363
+ this.#ttsrAbortPending = true;
1364
+ this.#ensureTtsrResumePromise();
1365
+ this.agent.abort();
1366
+ // Notify extensions (fire-and-forget, does not block abort)
1367
+ this.#emitSessionEvent({ type: "ttsr_triggered", rules: matches }).catch(() => {});
1368
+ // Schedule retry after a short delay
1369
+ const retryToken = ++this.#ttsrRetryToken;
1370
+ const generation = this.#promptGeneration;
1371
+ const targetMessageTimestamp =
1372
+ event.message.role === "assistant" ? event.message.timestamp : undefined;
1373
+ this.#schedulePostPromptTask(
1374
+ async () => {
1375
+ if (this.#ttsrRetryToken !== retryToken) {
1376
+ this.#resolveTtsrResume();
1377
+ return;
1378
+ }
1340
1379
 
1341
- const targetAssistantIndex = this.#findTtsrAssistantIndex(targetMessageTimestamp);
1342
- if (
1343
- !this.#ttsrAbortPending ||
1344
- this.#promptGeneration !== generation ||
1345
- targetAssistantIndex === -1
1346
- ) {
1380
+ const targetAssistantIndex = this.#findTtsrAssistantIndex(targetMessageTimestamp);
1381
+ if (
1382
+ !this.#ttsrAbortPending ||
1383
+ this.#promptGeneration !== generation ||
1384
+ targetAssistantIndex === -1
1385
+ ) {
1386
+ this.#ttsrAbortPending = false;
1387
+ this.#pendingTtsrInjections = [];
1388
+ this.#perToolTtsrInjections.clear();
1389
+ this.#resolveTtsrResume();
1390
+ return;
1391
+ }
1347
1392
  this.#ttsrAbortPending = false;
1348
- this.#pendingTtsrInjections = [];
1349
- this.#resolveTtsrResume();
1350
- return;
1351
- }
1352
- this.#ttsrAbortPending = false;
1353
- const ttsrSettings = this.#ttsrManager?.getSettings();
1354
- if (ttsrSettings?.contextMode === "discard") {
1355
- // Remove the partial/aborted assistant turn from agent state
1356
- this.agent.replaceMessages(this.agent.state.messages.slice(0, targetAssistantIndex));
1357
- }
1358
- // Inject TTSR rules as system reminder before retry
1359
- const injection = this.#getTtsrInjectionContent();
1360
- if (injection) {
1361
- const details = { rules: injection.rules.map(rule => rule.name) };
1362
- this.agent.appendMessage({
1363
- role: "custom",
1364
- customType: "ttsr-injection",
1365
- content: injection.content,
1366
- display: false,
1367
- details,
1368
- attribution: "agent",
1369
- timestamp: Date.now(),
1370
- });
1371
- this.sessionManager.appendCustomMessageEntry(
1372
- "ttsr-injection",
1373
- injection.content,
1374
- false,
1375
- details,
1376
- "agent",
1377
- );
1378
- this.#markTtsrInjected(details.rules);
1379
- }
1380
- try {
1381
- await this.agent.continue();
1382
- } catch {
1383
- this.#resolveTtsrResume();
1384
- }
1385
- },
1386
- { delayMs: 50 },
1387
- );
1388
- return;
1393
+ this.#perToolTtsrInjections.clear();
1394
+ const ttsrSettings = this.#ttsrManager?.getSettings();
1395
+ if (ttsrSettings?.contextMode === "discard") {
1396
+ // Remove the partial/aborted assistant turn from agent state
1397
+ this.agent.replaceMessages(this.agent.state.messages.slice(0, targetAssistantIndex));
1398
+ }
1399
+ // Inject TTSR rules as system reminder before retry
1400
+ const injection = this.#getTtsrInjectionContent();
1401
+ if (injection) {
1402
+ const details = { rules: injection.rules.map(rule => rule.name) };
1403
+ this.agent.appendMessage({
1404
+ role: "custom",
1405
+ customType: "ttsr-injection",
1406
+ content: injection.content,
1407
+ display: false,
1408
+ details,
1409
+ attribution: "agent",
1410
+ timestamp: Date.now(),
1411
+ });
1412
+ this.sessionManager.appendCustomMessageEntry(
1413
+ "ttsr-injection",
1414
+ injection.content,
1415
+ false,
1416
+ details,
1417
+ "agent",
1418
+ );
1419
+ this.#markTtsrInjected(details.rules);
1420
+ }
1421
+ try {
1422
+ await this.agent.continue();
1423
+ } catch {
1424
+ this.#resolveTtsrResume();
1425
+ }
1426
+ },
1427
+ { delayMs: 50 },
1428
+ );
1429
+ return;
1430
+ }
1389
1431
  }
1390
1432
  }
1391
1433
  }
@@ -1794,6 +1836,61 @@ export class AgentSession {
1794
1836
  }
1795
1837
  }
1796
1838
 
1839
+ /** Tool-call id whose argument deltas triggered a TTSR match, when known. */
1840
+ #extractTtsrToolCallId(matchContext: TtsrMatchContext): string | undefined {
1841
+ if (matchContext.source !== "tool") return undefined;
1842
+ const key = matchContext.streamKey;
1843
+ if (typeof key !== "string" || !key.startsWith("toolcall:")) return undefined;
1844
+ const id = key.slice("toolcall:".length);
1845
+ return id.length > 0 ? id : undefined;
1846
+ }
1847
+
1848
+ #addPerToolTtsrInjections(toolCallId: string, rules: Rule[]): void {
1849
+ const bucket = this.#perToolTtsrInjections.get(toolCallId) ?? [];
1850
+ const seen = new Set(bucket.map(rule => rule.name));
1851
+ // Dedupe against rules already bucketed for other tool calls in this
1852
+ // same assistant message so one rule attaches to exactly one tool call.
1853
+ const claimedElsewhere = new Set<string>();
1854
+ for (const [otherId, otherBucket] of this.#perToolTtsrInjections) {
1855
+ if (otherId === toolCallId) continue;
1856
+ for (const rule of otherBucket) claimedElsewhere.add(rule.name);
1857
+ }
1858
+ const newlyAdded: string[] = [];
1859
+ for (const rule of rules) {
1860
+ if (seen.has(rule.name) || claimedElsewhere.has(rule.name)) continue;
1861
+ bucket.push(rule);
1862
+ seen.add(rule.name);
1863
+ newlyAdded.push(rule.name);
1864
+ }
1865
+ if (bucket.length === 0) return;
1866
+ this.#perToolTtsrInjections.set(toolCallId, bucket);
1867
+ // Claim the rules in the TTSR manager so subsequent deltas in this same
1868
+ // turn (e.g. a sibling tool call's argument stream) don't re-match them.
1869
+ // Persistence still happens in #ttsrAfterToolCall when the tool actually
1870
+ // produces a result we can fold the reminder into.
1871
+ if (newlyAdded.length > 0) {
1872
+ this.#ttsrManager?.markInjectedByNames(newlyAdded);
1873
+ }
1874
+ }
1875
+
1876
+ /** `afterToolCall` hook: fold any per-tool TTSR reminders into the result. */
1877
+ #ttsrAfterToolCall(ctx: AfterToolCallContext): AfterToolCallResult | undefined {
1878
+ const rules = this.#perToolTtsrInjections.get(ctx.toolCall.id);
1879
+ if (!rules || rules.length === 0) return undefined;
1880
+ this.#perToolTtsrInjections.delete(ctx.toolCall.id);
1881
+ const reminder = rules
1882
+ .map(r => prompt.render(ttsrToolReminderTemplate, { name: r.name, path: r.path, content: r.content }))
1883
+ .join("\n\n");
1884
+ // The TTSR manager was already claimed at bucket time; only persistence remains.
1885
+ const ruleNames = rules.map(r => r.name.trim()).filter(n => n.length > 0);
1886
+ if (ruleNames.length > 0) {
1887
+ this.sessionManager.appendTtsrInjection(ruleNames);
1888
+ }
1889
+ return {
1890
+ content: [{ type: "text", text: reminder }, ...ctx.result.content],
1891
+ };
1892
+ }
1893
+
1797
1894
  #extractTtsrRuleNames(details: unknown): string[] {
1798
1895
  if (!details || typeof details !== "object" || Array.isArray(details)) {
1799
1896
  return [];
@@ -1844,6 +1941,11 @@ export class AgentSession {
1844
1941
  }
1845
1942
 
1846
1943
  #queueDeferredTtsrInjectionIfNeeded(assistantMsg: AssistantMessage): void {
1944
+ if (assistantMsg.stopReason === "aborted" || assistantMsg.stopReason === "error") {
1945
+ // Tools that hadn't started by abort/error will never produce results to
1946
+ // fold injections into — drop their stale per-tool entries.
1947
+ this.#perToolTtsrInjections.clear();
1948
+ }
1847
1949
  if (this.#ttsrAbortPending || this.#pendingTtsrInjections.length === 0) {
1848
1950
  return;
1849
1951
  }
@@ -3000,6 +3102,45 @@ export class AgentSession {
3000
3102
  }
3001
3103
  }
3002
3104
 
3105
+ /**
3106
+ * Reload the SSH tool from disk-backed capability discovery and make the
3107
+ * refreshed definition visible to the next model call without restarting.
3108
+ */
3109
+ async refreshSshTool(options?: { activateIfAvailable?: boolean }): Promise<void> {
3110
+ resetCapabilities();
3111
+ if (!this.#reloadSshTool) return;
3112
+ const previousSshTool = this.#toolRegistry.get("ssh");
3113
+ const previousActiveToolNames = this.getActiveToolNames();
3114
+ const hadSshTool = previousSshTool !== undefined;
3115
+ const wasActive = previousActiveToolNames.includes("ssh");
3116
+ const previousHostNames =
3117
+ previousSshTool && "hostNames" in previousSshTool && Array.isArray(previousSshTool.hostNames)
3118
+ ? [...previousSshTool.hostNames]
3119
+ : [];
3120
+ const candidateHostNames = new Set(previousHostNames);
3121
+ const capability = await loadCapability<{ name: string }>("ssh", { cwd: this.sessionManager.getCwd() });
3122
+ for (const host of capability.items) {
3123
+ if (typeof host?.name === "string") {
3124
+ candidateHostNames.add(host.name);
3125
+ }
3126
+ }
3127
+ await invalidateHostMetadata(candidateHostNames);
3128
+ const sshAllowed = this.#requestedToolNames === undefined || this.#requestedToolNames.has("ssh");
3129
+ const refreshedTool = await this.#reloadSshTool();
3130
+ if (refreshedTool) {
3131
+ this.#toolRegistry.set(refreshedTool.name, refreshedTool);
3132
+ } else {
3133
+ this.#toolRegistry.delete("ssh");
3134
+ this.#selectedDiscoveredToolNames.delete("ssh");
3135
+ }
3136
+
3137
+ const nextActive = previousActiveToolNames.filter(name => name !== "ssh" && this.#toolRegistry.has(name));
3138
+ if (refreshedTool && sshAllowed && (wasActive || (options?.activateIfAvailable && !hadSshTool))) {
3139
+ nextActive.push(refreshedTool.name);
3140
+ }
3141
+ await this.#applyActiveToolsByName(nextActive);
3142
+ }
3143
+
3003
3144
  /**
3004
3145
  * Set active tools by name.
3005
3146
  * Only tools in the registry can be enabled. Unknown tool names are ignored.
@@ -5200,6 +5341,7 @@ export class AgentSession {
5200
5341
  convertToLlm,
5201
5342
  initiatorOverride: "agent",
5202
5343
  metadata: this.agent.metadataForProvider(model.provider),
5344
+ telemetry: resolveTelemetry(this.agent.telemetry, this.sessionId),
5203
5345
  },
5204
5346
  handoffSignal,
5205
5347
  );
@@ -5912,6 +6054,7 @@ export class AgentSession {
5912
6054
  options?: SummaryOptions,
5913
6055
  ): Promise<CompactionResult> {
5914
6056
  const candidates = this.#getCompactionModelCandidates(this.#modelRegistry.getAvailable());
6057
+ const telemetry = resolveTelemetry(this.agent.telemetry, this.sessionId);
5915
6058
 
5916
6059
  for (const candidate of candidates) {
5917
6060
  const apiKey = await this.#modelRegistry.getApiKey(candidate, this.sessionId);
@@ -5922,6 +6065,7 @@ export class AgentSession {
5922
6065
  ...options,
5923
6066
  metadata: this.agent.metadataForProvider(candidate.provider),
5924
6067
  convertToLlm,
6068
+ telemetry,
5925
6069
  });
5926
6070
  } catch (error) {
5927
6071
  if (!this.#isCompactionAuthFailure(error)) {
@@ -6158,6 +6302,7 @@ export class AgentSession {
6158
6302
  } else {
6159
6303
  const candidates = this.#getCompactionModelCandidates(availableModels);
6160
6304
  const retrySettings = this.settings.getGroup("retry");
6305
+ const telemetry = resolveTelemetry(this.agent.telemetry, this.sessionId);
6161
6306
  let compactResult: CompactionResult | undefined;
6162
6307
  let lastError: unknown;
6163
6308
 
@@ -6175,6 +6320,7 @@ export class AgentSession {
6175
6320
  metadata: this.agent.metadataForProvider(candidate.provider),
6176
6321
  initiatorOverride: "agent",
6177
6322
  convertToLlm,
6323
+ telemetry,
6178
6324
  });
6179
6325
  break;
6180
6326
  } catch (error) {
@@ -7779,6 +7925,7 @@ export class AgentSession {
7779
7925
  reserveTokens: branchSummarySettings.reserveTokens,
7780
7926
  metadata: this.agent.metadataForProvider(model.provider),
7781
7927
  convertToLlm,
7928
+ telemetry: resolveTelemetry(this.agent.telemetry, this.sessionId),
7782
7929
  });
7783
7930
  this.#branchSummaryAbortController = undefined;
7784
7931
  if (result.aborted) {
@@ -8014,11 +8161,12 @@ export class AgentSession {
8014
8161
  };
8015
8162
  }
8016
8163
 
8017
- async fetchUsageReports(): Promise<UsageReport[] | null> {
8164
+ async fetchUsageReports(signal?: AbortSignal): Promise<UsageReport[] | null> {
8018
8165
  const authStorage = this.#modelRegistry.authStorage;
8019
8166
  if (!authStorage.fetchUsageReports) return null;
8020
8167
  return authStorage.fetchUsageReports({
8021
8168
  baseUrlResolver: provider => this.#modelRegistry.getProviderBaseUrl?.(provider),
8169
+ signal,
8022
8170
  });
8023
8171
  }
8024
8172
 
@@ -1,7 +1,12 @@
1
1
  import { Database, type Statement } from "bun:sqlite";
2
2
  import * as fs from "node:fs";
3
3
  import * as path from "node:path";
4
- import { type AuthCredential, AuthCredentialStore, type StoredAuthCredential } from "@oh-my-pi/pi-ai";
4
+ import {
5
+ type AuthCredential,
6
+ type AuthCredentialStore,
7
+ SqliteAuthCredentialStore,
8
+ type StoredAuthCredential,
9
+ } from "@oh-my-pi/pi-ai";
5
10
  import { getAgentDbPath, isRecord, logger } from "@oh-my-pi/pi-utils";
6
11
  import type { RawSettings as Settings } from "../config/settings";
7
12
 
@@ -57,7 +62,7 @@ export class AgentStorage {
57
62
  this.#hardenPermissions(dbPath);
58
63
 
59
64
  // Create AuthCredentialStore with our open database
60
- this.#authStore = new AuthCredentialStore(this.#db);
65
+ this.#authStore = new SqliteAuthCredentialStore(this.#db);
61
66
 
62
67
  this.#listSettingsStmt = this.#db.prepare("SELECT key, value FROM settings");
63
68
  this.#upsertModelUsageStmt = this.#db.prepare(
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Resolve auth-broker connection configuration for the local omp client.
3
+ *
4
+ * Precedence (highest first):
5
+ * 1. `OMP_AUTH_BROKER_URL` / `OMP_AUTH_BROKER_TOKEN` env vars.
6
+ * 2. `auth.broker.url` / `auth.broker.token` in `~/.omp/agent/config.yml`
7
+ * (hidden from the settings UI; `!command` resolution supported).
8
+ * 3. Token file `~/.omp/auth-broker.token` (paired with URL from env or config).
9
+ *
10
+ * Returns null when no broker URL is configured — caller falls back to the
11
+ * local SQLite store.
12
+ *
13
+ * Reads config.yml directly (instead of going through `Settings.init`) because
14
+ * `discoverAuthStorage` runs before the settings singleton is initialized in
15
+ * `runRootCommand`, and we want hand-edited config entries to be honoured at
16
+ * boot without forcing a startup reorder.
17
+ */
18
+ import * as path from "node:path";
19
+ import { getAgentDir, getConfigRootDir, isEnoent, logger } from "@oh-my-pi/pi-utils";
20
+ import { YAML } from "bun";
21
+ import { resolveConfigValue } from "../config/resolve-config-value";
22
+
23
+ export interface AuthBrokerClientConfig {
24
+ url: string;
25
+ token: string;
26
+ }
27
+
28
+ /** Path to the local bearer token file. Created on the broker host by `omp auth-broker token`. */
29
+ export function getAuthBrokerTokenFilePath(): string {
30
+ return path.join(getConfigRootDir(), "auth-broker.token");
31
+ }
32
+
33
+ async function readTokenFile(): Promise<string | null> {
34
+ try {
35
+ const raw = await Bun.file(getAuthBrokerTokenFilePath()).text();
36
+ const trimmed = raw.trim();
37
+ return trimmed.length > 0 ? trimmed : null;
38
+ } catch (err) {
39
+ if (isEnoent(err)) return null;
40
+ logger.warn("auth-broker token file unreadable", { error: String(err) });
41
+ return null;
42
+ }
43
+ }
44
+
45
+ interface ConfigSnapshot {
46
+ url?: string;
47
+ token?: string;
48
+ }
49
+
50
+ async function readConfigYaml(): Promise<ConfigSnapshot> {
51
+ const configPath = path.join(getAgentDir(), "config.yml");
52
+ try {
53
+ const raw = await Bun.file(configPath).text();
54
+ const parsed = YAML.parse(raw);
55
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return {};
56
+ const record = parsed as Record<string, unknown>;
57
+ const url = typeof record["auth.broker.url"] === "string" ? (record["auth.broker.url"] as string) : undefined;
58
+ const token =
59
+ typeof record["auth.broker.token"] === "string" ? (record["auth.broker.token"] as string) : undefined;
60
+ return { url, token };
61
+ } catch (err) {
62
+ if (isEnoent(err)) return {};
63
+ logger.warn("auth-broker config.yml unreadable", { error: String(err) });
64
+ return {};
65
+ }
66
+ }
67
+
68
+ /**
69
+ * Read broker configuration. Returns null when the URL is missing
70
+ * (broker disabled — local store is used). Throws when URL is set but no
71
+ * token is available — the caller cannot fall back silently because the
72
+ * user explicitly asked to use the broker.
73
+ */
74
+ export async function resolveAuthBrokerConfig(): Promise<AuthBrokerClientConfig | null> {
75
+ const envUrl = process.env.OMP_AUTH_BROKER_URL;
76
+ const envToken = process.env.OMP_AUTH_BROKER_TOKEN;
77
+
78
+ let url = envUrl && envUrl.length > 0 ? envUrl : undefined;
79
+ let configToken: string | undefined;
80
+ if (!url || !envToken) {
81
+ const fromConfig = await readConfigYaml();
82
+ if (!url && fromConfig.url) {
83
+ const resolved = await resolveConfigValue(fromConfig.url);
84
+ if (resolved && resolved.length > 0) url = resolved;
85
+ }
86
+ if (fromConfig.token) {
87
+ const resolved = await resolveConfigValue(fromConfig.token);
88
+ if (resolved && resolved.length > 0) configToken = resolved;
89
+ }
90
+ }
91
+ if (!url) return null;
92
+
93
+ const token =
94
+ (envToken && envToken.length > 0 ? envToken : undefined) ?? configToken ?? (await readTokenFile()) ?? undefined;
95
+ if (!token) {
96
+ throw new Error(
97
+ `OMP_AUTH_BROKER_URL is set (${url}) but no bearer token is available. ` +
98
+ `Set OMP_AUTH_BROKER_TOKEN, the \`auth.broker.token\` config entry, or place one at ${getAuthBrokerTokenFilePath()}.`,
99
+ );
100
+ }
101
+ return { url, token };
102
+ }
@@ -14,4 +14,10 @@ export type {
14
14
  SerializedAuthStorage,
15
15
  StoredAuthCredential,
16
16
  } from "@oh-my-pi/pi-ai";
17
- export { AuthStorage } from "@oh-my-pi/pi-ai";
17
+ export {
18
+ AuthBrokerClient,
19
+ AuthStorage,
20
+ REMOTE_REFRESH_SENTINEL,
21
+ RemoteAuthCredentialStore,
22
+ SqliteAuthCredentialStore,
23
+ } from "@oh-my-pi/pi-ai";
@@ -1,5 +1,5 @@
1
1
  import type { AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
2
- import { sanitizeText } from "@oh-my-pi/pi-natives";
2
+ import { sanitizeText } from "@oh-my-pi/pi-utils";
3
3
  import { formatBytes } from "../tools/render-utils";
4
4
  import { sanitizeWithOptionalSixelPassthrough } from "../utils/sixel";
5
5
 
@@ -1506,6 +1506,7 @@ const BUILTIN_SLASH_COMMAND_REGISTRY: ReadonlyArray<SlashCommandSpec> = [
1506
1506
  const projectPath = await resolveActiveProjectRegistryPath(runtime.ctx.sessionManager.getCwd());
1507
1507
  clearPluginRootsAndCaches(projectPath ? [projectPath] : undefined);
1508
1508
  await runtime.ctx.refreshSlashCommandState();
1509
+ await runtime.ctx.session.refreshSshTool({ activateIfAvailable: true });
1509
1510
  runtime.ctx.showStatus("Plugins reloaded.");
1510
1511
  runtime.ctx.editor.setText("");
1511
1512
  },
@@ -1632,6 +1633,7 @@ export async function executeBuiltinSlashCommand(
1632
1633
  const projectPath = await resolveActiveProjectRegistryPath(ctx.sessionManager.getCwd());
1633
1634
  clearPluginRootsAndCaches(projectPath ? [projectPath] : undefined);
1634
1635
  await ctx.refreshSlashCommandState();
1636
+ await ctx.session.refreshSshTool({ activateIfAvailable: true });
1635
1637
  },
1636
1638
  };
1637
1639
  const result = await command.handle(parsed, adapted);
@@ -142,6 +142,7 @@ async function handleRemoveCommand(rest: string, runtime: SlashCommandRuntime):
142
142
  try {
143
143
  const filePath = getSSHConfigPath(parsed.scope, runtime.cwd);
144
144
  await removeSSHHost(filePath, parsed.name);
145
+ await runtime.session.refreshSshTool();
145
146
  await runtime.output(`Removed SSH host "${parsed.name}" from ${parsed.scope} config.`);
146
147
  return commandConsumed();
147
148
  } catch (err) {
@@ -162,6 +163,7 @@ async function handleAddCommand(rest: string, runtime: SlashCommandRuntime): Pro
162
163
  try {
163
164
  const filePath = getSSHConfigPath(parsed.scope, runtime.cwd);
164
165
  await addSSHHost(filePath, parsed.name, hostConfig);
166
+ await runtime.session.refreshSshTool({ activateIfAvailable: true });
165
167
  await runtime.output(`Added SSH host "${parsed.name}" (${parsed.scope}).`);
166
168
  return commandConsumed();
167
169
  } catch (err) {