@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
@@ -0,0 +1,3361 @@
1
+ /** Unified settings schema - single source of truth for all settings.
2
+ * Unified settings schema - single source of truth for all settings.
3
+ *
4
+ * Each setting is defined once here with:
5
+ * - Type and default value
6
+ * - Optional UI metadata (label, description, tab)
7
+ *
8
+ * The Settings singleton provides type-safe path-based access:
9
+ * settings.get("compaction.enabled") // => boolean
10
+ * settings.set("theme.dark", "titanium") // sync, saves in background
11
+ */
12
+ export type SettingTab = "appearance" | "model" | "interaction" | "context" | "memory" | "editing" | "tools" | "tasks" | "providers";
13
+ /** Tab display metadata - icon is resolved via theme.symbol() */
14
+ export type TabMetadata = {
15
+ label: string;
16
+ icon: `tab.${string}`;
17
+ };
18
+ /** Ordered list of tabs for UI rendering */
19
+ export declare const SETTING_TABS: SettingTab[];
20
+ /** Tab display metadata - icon is a symbol key from theme.ts (tab.*) */
21
+ export declare const TAB_METADATA: Record<SettingTab, {
22
+ label: string;
23
+ icon: `tab.${string}`;
24
+ }>;
25
+ /** Status line segment identifiers */
26
+ export type StatusLineSegmentId = "pi" | "model" | "mode" | "path" | "git" | "pr" | "subagents" | "token_in" | "token_out" | "token_total" | "token_rate" | "cost" | "context_pct" | "context_total" | "time_spent" | "time" | "session" | "hostname" | "cache_read" | "cache_write" | "session_name";
27
+ /** Submenu choice metadata. */
28
+ export type SubmenuOption<V extends string = string> = {
29
+ value: V;
30
+ label: string;
31
+ description?: string;
32
+ };
33
+ interface UiBase {
34
+ tab: SettingTab;
35
+ label: string;
36
+ description: string;
37
+ /** Condition function name - setting only shown when true */
38
+ condition?: string;
39
+ }
40
+ interface UiBoolean extends UiBase {
41
+ }
42
+ interface UiEnum<T extends readonly string[]> extends UiBase {
43
+ /** Submenu options. When omitted, the enum renders as an inline toggle derived from `values`. */
44
+ options?: ReadonlyArray<SubmenuOption<T[number]>>;
45
+ }
46
+ interface UiNumber extends UiBase {
47
+ /** Submenu options. Without options, a numeric setting has no UI representation (intentional hide). */
48
+ options?: ReadonlyArray<SubmenuOption>;
49
+ }
50
+ interface UiString extends UiBase {
51
+ /**
52
+ * Submenu options.
53
+ * - Array → submenu with these choices.
54
+ * - "runtime" → submenu populated by the runtime layer (theme registry, etc.).
55
+ * - Omitted → renders as a free text input.
56
+ */
57
+ options?: ReadonlyArray<SubmenuOption> | "runtime";
58
+ }
59
+ /** Wide ui shape exposed to consumers that walk the schema generically. */
60
+ export type AnyUiMetadata = UiBase & {
61
+ options?: ReadonlyArray<SubmenuOption> | "runtime";
62
+ };
63
+ interface BooleanDef {
64
+ type: "boolean";
65
+ default: boolean;
66
+ ui?: UiBoolean;
67
+ }
68
+ interface StringDef {
69
+ type: "string";
70
+ default: string | undefined;
71
+ ui?: UiString;
72
+ }
73
+ interface NumberDef {
74
+ type: "number";
75
+ default: number;
76
+ ui?: UiNumber;
77
+ }
78
+ interface EnumDef<T extends readonly string[]> {
79
+ type: "enum";
80
+ values: T;
81
+ default: T[number];
82
+ ui?: UiEnum<T>;
83
+ }
84
+ interface ArrayDef<T> {
85
+ type: "array";
86
+ default: T[];
87
+ ui?: UiBase;
88
+ }
89
+ interface RecordDef<T> {
90
+ type: "record";
91
+ default: Record<string, T>;
92
+ ui?: UiBase;
93
+ }
94
+ type SettingDef = BooleanDef | StringDef | NumberDef | EnumDef<readonly string[]> | ArrayDef<unknown> | RecordDef<unknown>;
95
+ export interface ModelTagDef {
96
+ name: string;
97
+ color?: string;
98
+ }
99
+ export interface ModelTagsSettings {
100
+ [key: string]: ModelTagDef;
101
+ }
102
+ export declare const DEFAULT_BASH_INTERCEPTOR_RULES: BashInterceptorRule[];
103
+ export declare const SETTINGS_SCHEMA: {
104
+ readonly lastChangelogVersion: {
105
+ readonly type: "string";
106
+ readonly default: undefined;
107
+ };
108
+ readonly "auth.broker.url": {
109
+ readonly type: "string";
110
+ readonly default: undefined;
111
+ };
112
+ readonly "auth.broker.token": {
113
+ readonly type: "string";
114
+ readonly default: undefined;
115
+ };
116
+ readonly autoResume: {
117
+ readonly type: "boolean";
118
+ readonly default: false;
119
+ readonly ui: {
120
+ readonly tab: "interaction";
121
+ readonly label: "Auto Resume";
122
+ readonly description: "Automatically resume the most recent session in the current directory";
123
+ };
124
+ };
125
+ readonly "power.preventIdleSleep": {
126
+ readonly type: "boolean";
127
+ readonly default: true;
128
+ readonly ui: {
129
+ readonly tab: "interaction";
130
+ readonly label: "Prevent Idle Sleep (macOS)";
131
+ readonly description: "caffeinate -i: keep the system awake while a session is open";
132
+ };
133
+ };
134
+ readonly "power.preventSystemSleep": {
135
+ readonly type: "boolean";
136
+ readonly default: false;
137
+ readonly ui: {
138
+ readonly tab: "interaction";
139
+ readonly label: "Prevent System Sleep on AC (macOS)";
140
+ readonly description: "caffeinate -s: block all system sleep while on AC power";
141
+ };
142
+ };
143
+ readonly "power.declareUserActive": {
144
+ readonly type: "boolean";
145
+ readonly default: false;
146
+ readonly ui: {
147
+ readonly tab: "interaction";
148
+ readonly label: "Declare User Active (macOS)";
149
+ readonly description: "caffeinate -u: keep the display lit and treat the user as active";
150
+ };
151
+ };
152
+ readonly "power.preventDisplaySleep": {
153
+ readonly type: "boolean";
154
+ readonly default: false;
155
+ readonly ui: {
156
+ readonly tab: "interaction";
157
+ readonly label: "Prevent Display Sleep (macOS)";
158
+ readonly description: "caffeinate -d: keep the display from idle-sleeping while a session is open";
159
+ };
160
+ };
161
+ readonly shellPath: {
162
+ readonly type: "string";
163
+ readonly default: undefined;
164
+ };
165
+ readonly extensions: {
166
+ readonly type: "array";
167
+ readonly default: string[];
168
+ };
169
+ readonly "marketplace.autoUpdate": {
170
+ readonly type: "enum";
171
+ readonly values: readonly ["off", "notify", "auto"];
172
+ readonly default: "notify";
173
+ readonly ui: {
174
+ readonly tab: "tools";
175
+ readonly label: "Marketplace Auto-Update";
176
+ readonly description: "Check for plugin updates on startup (off/notify/auto)";
177
+ readonly options: readonly [{
178
+ readonly value: "off";
179
+ readonly label: "Off";
180
+ readonly description: "Don't check for plugin updates";
181
+ }, {
182
+ readonly value: "notify";
183
+ readonly label: "Notify";
184
+ readonly description: "Check on startup and notify when updates are available";
185
+ }, {
186
+ readonly value: "auto";
187
+ readonly label: "Auto";
188
+ readonly description: "Check on startup and auto-install updates";
189
+ }];
190
+ };
191
+ };
192
+ readonly enabledModels: {
193
+ readonly type: "array";
194
+ readonly default: string[];
195
+ };
196
+ readonly disabledProviders: {
197
+ readonly type: "array";
198
+ readonly default: string[];
199
+ };
200
+ readonly disabledExtensions: {
201
+ readonly type: "array";
202
+ readonly default: string[];
203
+ };
204
+ readonly modelRoles: {
205
+ readonly type: "record";
206
+ readonly default: Record<string, string>;
207
+ };
208
+ readonly modelTags: {
209
+ readonly type: "record";
210
+ readonly default: ModelTagsSettings;
211
+ };
212
+ readonly modelProviderOrder: {
213
+ readonly type: "array";
214
+ readonly default: string[];
215
+ };
216
+ readonly cycleOrder: {
217
+ readonly type: "array";
218
+ readonly default: string[];
219
+ };
220
+ readonly "theme.dark": {
221
+ readonly type: "string";
222
+ readonly default: "titanium";
223
+ readonly ui: {
224
+ readonly tab: "appearance";
225
+ readonly label: "Dark Theme";
226
+ readonly description: "Theme used when terminal has dark background";
227
+ readonly options: "runtime";
228
+ };
229
+ };
230
+ readonly "theme.light": {
231
+ readonly type: "string";
232
+ readonly default: "light";
233
+ readonly ui: {
234
+ readonly tab: "appearance";
235
+ readonly label: "Light Theme";
236
+ readonly description: "Theme used when terminal has light background";
237
+ readonly options: "runtime";
238
+ };
239
+ };
240
+ readonly symbolPreset: {
241
+ readonly type: "enum";
242
+ readonly values: readonly ["unicode", "nerd", "ascii"];
243
+ readonly default: "unicode";
244
+ readonly ui: {
245
+ readonly tab: "appearance";
246
+ readonly label: "Symbol Preset";
247
+ readonly description: "Icon/symbol style";
248
+ readonly options: readonly [{
249
+ readonly value: "unicode";
250
+ readonly label: "Unicode";
251
+ readonly description: "Standard symbols (default)";
252
+ }, {
253
+ readonly value: "nerd";
254
+ readonly label: "Nerd Font";
255
+ readonly description: "Requires Nerd Font";
256
+ }, {
257
+ readonly value: "ascii";
258
+ readonly label: "ASCII";
259
+ readonly description: "Maximum compatibility";
260
+ }];
261
+ };
262
+ };
263
+ readonly colorBlindMode: {
264
+ readonly type: "boolean";
265
+ readonly default: false;
266
+ readonly ui: {
267
+ readonly tab: "appearance";
268
+ readonly label: "Color-Blind Mode";
269
+ readonly description: "Use blue instead of green for diff additions";
270
+ };
271
+ };
272
+ readonly "statusLine.preset": {
273
+ readonly type: "enum";
274
+ readonly values: readonly ["default", "minimal", "compact", "full", "nerd", "ascii", "custom"];
275
+ readonly default: "default";
276
+ readonly ui: {
277
+ readonly tab: "appearance";
278
+ readonly label: "Status Line Preset";
279
+ readonly description: "Pre-built status line configurations";
280
+ readonly options: readonly [{
281
+ readonly value: "default";
282
+ readonly label: "Default";
283
+ readonly description: "Model, path, git, context, tokens, cost";
284
+ }, {
285
+ readonly value: "minimal";
286
+ readonly label: "Minimal";
287
+ readonly description: "Path and git only";
288
+ }, {
289
+ readonly value: "compact";
290
+ readonly label: "Compact";
291
+ readonly description: "Model, git, cost, context";
292
+ }, {
293
+ readonly value: "full";
294
+ readonly label: "Full";
295
+ readonly description: "All segments including time";
296
+ }, {
297
+ readonly value: "nerd";
298
+ readonly label: "Nerd";
299
+ readonly description: "Maximum info with Nerd Font icons";
300
+ }, {
301
+ readonly value: "ascii";
302
+ readonly label: "ASCII";
303
+ readonly description: "No special characters";
304
+ }, {
305
+ readonly value: "custom";
306
+ readonly label: "Custom";
307
+ readonly description: "User-defined segments";
308
+ }];
309
+ };
310
+ };
311
+ readonly "statusLine.separator": {
312
+ readonly type: "enum";
313
+ readonly values: readonly ["powerline", "powerline-thin", "slash", "pipe", "block", "none", "ascii"];
314
+ readonly default: "powerline-thin";
315
+ readonly ui: {
316
+ readonly tab: "appearance";
317
+ readonly label: "Status Line Separator";
318
+ readonly description: "Style of separators between segments";
319
+ readonly options: readonly [{
320
+ readonly value: "powerline";
321
+ readonly label: "Powerline";
322
+ readonly description: "Solid arrows (Nerd Font)";
323
+ }, {
324
+ readonly value: "powerline-thin";
325
+ readonly label: "Thin chevron";
326
+ readonly description: "Thin arrows (Nerd Font)";
327
+ }, {
328
+ readonly value: "slash";
329
+ readonly label: "Slash";
330
+ readonly description: "Forward slashes";
331
+ }, {
332
+ readonly value: "pipe";
333
+ readonly label: "Pipe";
334
+ readonly description: "Vertical pipes";
335
+ }, {
336
+ readonly value: "block";
337
+ readonly label: "Block";
338
+ readonly description: "Solid blocks";
339
+ }, {
340
+ readonly value: "none";
341
+ readonly label: "None";
342
+ readonly description: "Space only";
343
+ }, {
344
+ readonly value: "ascii";
345
+ readonly label: "ASCII";
346
+ readonly description: "Greater-than signs";
347
+ }];
348
+ };
349
+ };
350
+ readonly "statusLine.sessionAccent": {
351
+ readonly type: "boolean";
352
+ readonly default: true;
353
+ readonly ui: {
354
+ readonly tab: "appearance";
355
+ readonly label: "Session Accent";
356
+ readonly description: "Use the session name color for the editor border and status line gap";
357
+ };
358
+ };
359
+ readonly "tools.artifactSpillThreshold": {
360
+ readonly type: "number";
361
+ readonly default: 50;
362
+ readonly ui: {
363
+ readonly tab: "tools";
364
+ readonly label: "Artifact spill threshold (KB)";
365
+ readonly description: "Tool output above this size is saved as an artifact; tail is kept inline";
366
+ readonly options: readonly [{
367
+ readonly value: "1";
368
+ readonly label: "1 KB";
369
+ readonly description: "~250 tokens";
370
+ }, {
371
+ readonly value: "2.5";
372
+ readonly label: "2.5 KB";
373
+ readonly description: "~625 tokens";
374
+ }, {
375
+ readonly value: "5";
376
+ readonly label: "5 KB";
377
+ readonly description: "~1.25K tokens";
378
+ }, {
379
+ readonly value: "10";
380
+ readonly label: "10 KB";
381
+ readonly description: "~2.5K tokens";
382
+ }, {
383
+ readonly value: "20";
384
+ readonly label: "20 KB";
385
+ readonly description: "~5K tokens";
386
+ }, {
387
+ readonly value: "30";
388
+ readonly label: "30 KB";
389
+ readonly description: "~7.5K tokens";
390
+ }, {
391
+ readonly value: "50";
392
+ readonly label: "50 KB";
393
+ readonly description: "Default; ~12.5K tokens";
394
+ }, {
395
+ readonly value: "75";
396
+ readonly label: "75 KB";
397
+ readonly description: "~19K tokens";
398
+ }, {
399
+ readonly value: "100";
400
+ readonly label: "100 KB";
401
+ readonly description: "~25K tokens";
402
+ }, {
403
+ readonly value: "200";
404
+ readonly label: "200 KB";
405
+ readonly description: "~50K tokens";
406
+ }, {
407
+ readonly value: "500";
408
+ readonly label: "500 KB";
409
+ readonly description: "~125K tokens";
410
+ }, {
411
+ readonly value: "1000";
412
+ readonly label: "1 MB";
413
+ readonly description: "~250K tokens";
414
+ }];
415
+ };
416
+ };
417
+ readonly "tools.artifactTailBytes": {
418
+ readonly type: "number";
419
+ readonly default: 20;
420
+ readonly ui: {
421
+ readonly tab: "tools";
422
+ readonly label: "Artifact tail size (KB)";
423
+ readonly description: "Amount of tail content kept inline when output spills to artifact";
424
+ readonly options: readonly [{
425
+ readonly value: "1";
426
+ readonly label: "1 KB";
427
+ readonly description: "~250 tokens";
428
+ }, {
429
+ readonly value: "2.5";
430
+ readonly label: "2.5 KB";
431
+ readonly description: "~625 tokens";
432
+ }, {
433
+ readonly value: "5";
434
+ readonly label: "5 KB";
435
+ readonly description: "~1.25K tokens";
436
+ }, {
437
+ readonly value: "10";
438
+ readonly label: "10 KB";
439
+ readonly description: "~2.5K tokens";
440
+ }, {
441
+ readonly value: "20";
442
+ readonly label: "20 KB";
443
+ readonly description: "Default; ~5K tokens";
444
+ }, {
445
+ readonly value: "50";
446
+ readonly label: "50 KB";
447
+ readonly description: "~12.5K tokens";
448
+ }, {
449
+ readonly value: "100";
450
+ readonly label: "100 KB";
451
+ readonly description: "~25K tokens";
452
+ }, {
453
+ readonly value: "200";
454
+ readonly label: "200 KB";
455
+ readonly description: "~50K tokens";
456
+ }];
457
+ };
458
+ };
459
+ readonly "tools.artifactHeadBytes": {
460
+ readonly type: "number";
461
+ readonly default: 20;
462
+ readonly ui: {
463
+ readonly tab: "tools";
464
+ readonly label: "Artifact head size (KB)";
465
+ readonly description: "Amount of head content kept inline alongside the tail when output spills to artifact (middle elision). 0 disables \u2014 keep tail only.";
466
+ readonly options: readonly [{
467
+ readonly value: "0";
468
+ readonly label: "0 KB";
469
+ readonly description: "Disabled; tail-only truncation";
470
+ }, {
471
+ readonly value: "1";
472
+ readonly label: "1 KB";
473
+ readonly description: "~250 tokens";
474
+ }, {
475
+ readonly value: "2.5";
476
+ readonly label: "2.5 KB";
477
+ readonly description: "~625 tokens";
478
+ }, {
479
+ readonly value: "5";
480
+ readonly label: "5 KB";
481
+ readonly description: "~1.25K tokens";
482
+ }, {
483
+ readonly value: "10";
484
+ readonly label: "10 KB";
485
+ readonly description: "~2.5K tokens";
486
+ }, {
487
+ readonly value: "20";
488
+ readonly label: "20 KB";
489
+ readonly description: "Default; ~5K tokens";
490
+ }, {
491
+ readonly value: "50";
492
+ readonly label: "50 KB";
493
+ readonly description: "~12.5K tokens";
494
+ }, {
495
+ readonly value: "100";
496
+ readonly label: "100 KB";
497
+ readonly description: "~25K tokens";
498
+ }, {
499
+ readonly value: "200";
500
+ readonly label: "200 KB";
501
+ readonly description: "~50K tokens";
502
+ }];
503
+ };
504
+ };
505
+ readonly "tools.outputMaxColumns": {
506
+ readonly type: "number";
507
+ readonly default: 768;
508
+ readonly ui: {
509
+ readonly tab: "tools";
510
+ readonly label: "Output column cap";
511
+ readonly description: "Per-line byte cap for streaming tool outputs (bash, ssh, python, js eval) and `read`. Lines wider than this are ellipsis-truncated; remaining bytes up to the next newline are dropped. 0 disables.";
512
+ readonly options: readonly [{
513
+ readonly value: "0";
514
+ readonly label: "Off";
515
+ readonly description: "No per-line cap";
516
+ }, {
517
+ readonly value: "256";
518
+ readonly label: "256";
519
+ readonly description: "Tight";
520
+ }, {
521
+ readonly value: "512";
522
+ readonly label: "512";
523
+ }, {
524
+ readonly value: "768";
525
+ readonly label: "768";
526
+ readonly description: "Default";
527
+ }, {
528
+ readonly value: "1024";
529
+ readonly label: "1024";
530
+ }, {
531
+ readonly value: "2048";
532
+ readonly label: "2048";
533
+ }, {
534
+ readonly value: "4096";
535
+ readonly label: "4096";
536
+ readonly description: "Loose";
537
+ }];
538
+ };
539
+ };
540
+ readonly "tools.artifactTailLines": {
541
+ readonly type: "number";
542
+ readonly default: 500;
543
+ readonly ui: {
544
+ readonly tab: "tools";
545
+ readonly label: "Artifact tail lines";
546
+ readonly description: "Maximum lines of tail content kept inline when output spills to artifact";
547
+ readonly options: readonly [{
548
+ readonly value: "50";
549
+ readonly label: "50 lines";
550
+ readonly description: "~250 tokens";
551
+ }, {
552
+ readonly value: "100";
553
+ readonly label: "100 lines";
554
+ readonly description: "~500 tokens";
555
+ }, {
556
+ readonly value: "250";
557
+ readonly label: "250 lines";
558
+ readonly description: "~1.25K tokens";
559
+ }, {
560
+ readonly value: "500";
561
+ readonly label: "500 lines";
562
+ readonly description: "Default; ~2.5K tokens";
563
+ }, {
564
+ readonly value: "1000";
565
+ readonly label: "1000 lines";
566
+ readonly description: "~5K tokens";
567
+ }, {
568
+ readonly value: "2000";
569
+ readonly label: "2000 lines";
570
+ readonly description: "~10K tokens";
571
+ }, {
572
+ readonly value: "5000";
573
+ readonly label: "5000 lines";
574
+ readonly description: "~25K tokens";
575
+ }];
576
+ };
577
+ };
578
+ readonly "statusLine.showHookStatus": {
579
+ readonly type: "boolean";
580
+ readonly default: true;
581
+ readonly ui: {
582
+ readonly tab: "appearance";
583
+ readonly label: "Show Hook Status";
584
+ readonly description: "Display hook status messages below status line";
585
+ };
586
+ };
587
+ readonly "statusLine.leftSegments": {
588
+ readonly type: "array";
589
+ readonly default: StatusLineSegmentId[];
590
+ };
591
+ readonly "statusLine.rightSegments": {
592
+ readonly type: "array";
593
+ readonly default: StatusLineSegmentId[];
594
+ };
595
+ readonly "statusLine.segmentOptions": {
596
+ readonly type: "record";
597
+ readonly default: Record<string, unknown>;
598
+ };
599
+ readonly "terminal.showImages": {
600
+ readonly type: "boolean";
601
+ readonly default: true;
602
+ readonly ui: {
603
+ readonly tab: "appearance";
604
+ readonly label: "Show Inline Images";
605
+ readonly description: "Render images inline in terminal";
606
+ readonly condition: "hasImageProtocol";
607
+ };
608
+ };
609
+ readonly "images.autoResize": {
610
+ readonly type: "boolean";
611
+ readonly default: true;
612
+ readonly ui: {
613
+ readonly tab: "appearance";
614
+ readonly label: "Auto-Resize Images";
615
+ readonly description: "Resize large images to 2000x2000 max for better model compatibility";
616
+ };
617
+ };
618
+ readonly "images.blockImages": {
619
+ readonly type: "boolean";
620
+ readonly default: false;
621
+ readonly ui: {
622
+ readonly tab: "appearance";
623
+ readonly label: "Block Images";
624
+ readonly description: "Prevent images from being sent to LLM providers";
625
+ };
626
+ };
627
+ readonly "tui.maxInlineImageColumns": {
628
+ readonly type: "number";
629
+ readonly default: 100;
630
+ readonly description: "Maximum width in terminal columns for inline images (default 100). Set to 0 for unlimited (bounded only by terminal width).";
631
+ };
632
+ readonly "tui.maxInlineImageRows": {
633
+ readonly type: "number";
634
+ readonly default: 20;
635
+ readonly description: "Maximum height in terminal rows for inline images (default 20). Set to 0 to use only the viewport-based limit (60% of terminal height).";
636
+ };
637
+ readonly "display.tabWidth": {
638
+ readonly type: "number";
639
+ readonly default: 3;
640
+ };
641
+ readonly "display.showTokenUsage": {
642
+ readonly type: "boolean";
643
+ readonly default: false;
644
+ readonly ui: {
645
+ readonly tab: "appearance";
646
+ readonly label: "Show Token Usage";
647
+ readonly description: "Show per-turn token usage on assistant messages";
648
+ };
649
+ };
650
+ readonly showHardwareCursor: {
651
+ readonly type: "boolean";
652
+ readonly default: true;
653
+ readonly ui: {
654
+ readonly tab: "appearance";
655
+ readonly label: "Show Hardware Cursor";
656
+ readonly description: "Show terminal cursor for IME support";
657
+ };
658
+ };
659
+ readonly clearOnShrink: {
660
+ readonly type: "boolean";
661
+ readonly default: false;
662
+ readonly ui: {
663
+ readonly tab: "appearance";
664
+ readonly label: "Clear on Shrink";
665
+ readonly description: "Clear empty rows when content shrinks (may cause flicker)";
666
+ };
667
+ };
668
+ readonly defaultThinkingLevel: {
669
+ readonly type: "enum";
670
+ readonly values: readonly import("@oh-my-pi/pi-ai").Effort[];
671
+ readonly default: "high";
672
+ readonly ui: {
673
+ readonly tab: "model";
674
+ readonly label: "Thinking Level";
675
+ readonly description: "Reasoning depth for thinking-capable models";
676
+ readonly options: readonly import("../thinking").ThinkingLevelMetadata[];
677
+ };
678
+ };
679
+ readonly hideThinkingBlock: {
680
+ readonly type: "boolean";
681
+ readonly default: false;
682
+ readonly ui: {
683
+ readonly tab: "model";
684
+ readonly label: "Hide Thinking Blocks";
685
+ readonly description: "Hide thinking blocks in assistant responses";
686
+ };
687
+ };
688
+ readonly repeatToolDescriptions: {
689
+ readonly type: "boolean";
690
+ readonly default: false;
691
+ readonly ui: {
692
+ readonly tab: "model";
693
+ readonly label: "Repeat Tool Descriptions";
694
+ readonly description: "Render full tool descriptions in the system prompt instead of a tool name list";
695
+ };
696
+ };
697
+ readonly temperature: {
698
+ readonly type: "number";
699
+ readonly default: -1;
700
+ readonly ui: {
701
+ readonly tab: "model";
702
+ readonly label: "Temperature";
703
+ readonly description: "Sampling temperature (0 = deterministic, 1 = creative, -1 = provider default)";
704
+ readonly options: readonly [{
705
+ readonly value: "-1";
706
+ readonly label: "Default";
707
+ readonly description: "Use provider default";
708
+ }, {
709
+ readonly value: "0";
710
+ readonly label: "0";
711
+ readonly description: "Deterministic";
712
+ }, {
713
+ readonly value: "0.2";
714
+ readonly label: "0.2";
715
+ readonly description: "Focused";
716
+ }, {
717
+ readonly value: "0.5";
718
+ readonly label: "0.5";
719
+ readonly description: "Balanced";
720
+ }, {
721
+ readonly value: "0.7";
722
+ readonly label: "0.7";
723
+ readonly description: "Creative";
724
+ }, {
725
+ readonly value: "1";
726
+ readonly label: "1";
727
+ readonly description: "Maximum variety";
728
+ }];
729
+ };
730
+ };
731
+ readonly topP: {
732
+ readonly type: "number";
733
+ readonly default: -1;
734
+ readonly ui: {
735
+ readonly tab: "model";
736
+ readonly label: "Top P";
737
+ readonly description: "Nucleus sampling cutoff (0-1, -1 = provider default)";
738
+ readonly options: readonly [{
739
+ readonly value: "-1";
740
+ readonly label: "Default";
741
+ readonly description: "Use provider default";
742
+ }, {
743
+ readonly value: "0.1";
744
+ readonly label: "0.1";
745
+ readonly description: "Very focused";
746
+ }, {
747
+ readonly value: "0.3";
748
+ readonly label: "0.3";
749
+ readonly description: "Focused";
750
+ }, {
751
+ readonly value: "0.5";
752
+ readonly label: "0.5";
753
+ readonly description: "Balanced";
754
+ }, {
755
+ readonly value: "0.9";
756
+ readonly label: "0.9";
757
+ readonly description: "Broad";
758
+ }, {
759
+ readonly value: "1";
760
+ readonly label: "1";
761
+ readonly description: "No nucleus filtering";
762
+ }];
763
+ };
764
+ };
765
+ readonly topK: {
766
+ readonly type: "number";
767
+ readonly default: -1;
768
+ readonly ui: {
769
+ readonly tab: "model";
770
+ readonly label: "Top K";
771
+ readonly description: "Sample from top-K tokens (-1 = provider default)";
772
+ readonly options: readonly [{
773
+ readonly value: "-1";
774
+ readonly label: "Default";
775
+ readonly description: "Use provider default";
776
+ }, {
777
+ readonly value: "1";
778
+ readonly label: "1";
779
+ readonly description: "Greedy top token";
780
+ }, {
781
+ readonly value: "20";
782
+ readonly label: "20";
783
+ readonly description: "Focused";
784
+ }, {
785
+ readonly value: "40";
786
+ readonly label: "40";
787
+ readonly description: "Balanced";
788
+ }, {
789
+ readonly value: "100";
790
+ readonly label: "100";
791
+ readonly description: "Broad";
792
+ }];
793
+ };
794
+ };
795
+ readonly minP: {
796
+ readonly type: "number";
797
+ readonly default: -1;
798
+ readonly ui: {
799
+ readonly tab: "model";
800
+ readonly label: "Min P";
801
+ readonly description: "Minimum probability threshold (0-1, -1 = provider default)";
802
+ readonly options: readonly [{
803
+ readonly value: "-1";
804
+ readonly label: "Default";
805
+ readonly description: "Use provider default";
806
+ }, {
807
+ readonly value: "0.01";
808
+ readonly label: "0.01";
809
+ readonly description: "Very permissive";
810
+ }, {
811
+ readonly value: "0.05";
812
+ readonly label: "0.05";
813
+ readonly description: "Balanced";
814
+ }, {
815
+ readonly value: "0.1";
816
+ readonly label: "0.1";
817
+ readonly description: "Strict";
818
+ }];
819
+ };
820
+ };
821
+ readonly presencePenalty: {
822
+ readonly type: "number";
823
+ readonly default: -1;
824
+ readonly ui: {
825
+ readonly tab: "model";
826
+ readonly label: "Presence Penalty";
827
+ readonly description: "Penalty for introducing already-present tokens (-1 = provider default)";
828
+ readonly options: readonly [{
829
+ readonly value: "-1";
830
+ readonly label: "Default";
831
+ readonly description: "Use provider default";
832
+ }, {
833
+ readonly value: "0";
834
+ readonly label: "0";
835
+ readonly description: "No penalty";
836
+ }, {
837
+ readonly value: "0.5";
838
+ readonly label: "0.5";
839
+ readonly description: "Mild novelty";
840
+ }, {
841
+ readonly value: "1";
842
+ readonly label: "1";
843
+ readonly description: "Encourage novelty";
844
+ }, {
845
+ readonly value: "2";
846
+ readonly label: "2";
847
+ readonly description: "Strong novelty";
848
+ }];
849
+ };
850
+ };
851
+ readonly repetitionPenalty: {
852
+ readonly type: "number";
853
+ readonly default: -1;
854
+ readonly ui: {
855
+ readonly tab: "model";
856
+ readonly label: "Repetition Penalty";
857
+ readonly description: "Penalty for repeated tokens (-1 = provider default)";
858
+ readonly options: readonly [{
859
+ readonly value: "-1";
860
+ readonly label: "Default";
861
+ readonly description: "Use provider default";
862
+ }, {
863
+ readonly value: "0.8";
864
+ readonly label: "0.8";
865
+ readonly description: "Allow repetition";
866
+ }, {
867
+ readonly value: "1";
868
+ readonly label: "1";
869
+ readonly description: "No penalty";
870
+ }, {
871
+ readonly value: "1.1";
872
+ readonly label: "1.1";
873
+ readonly description: "Mild penalty";
874
+ }, {
875
+ readonly value: "1.2";
876
+ readonly label: "1.2";
877
+ readonly description: "Balanced";
878
+ }, {
879
+ readonly value: "1.5";
880
+ readonly label: "1.5";
881
+ readonly description: "Strong penalty";
882
+ }];
883
+ };
884
+ };
885
+ readonly serviceTier: {
886
+ readonly type: "enum";
887
+ readonly values: readonly ["none", "auto", "default", "flex", "scale", "priority"];
888
+ readonly default: "none";
889
+ readonly ui: {
890
+ readonly tab: "model";
891
+ readonly label: "Service Tier";
892
+ readonly description: "OpenAI processing priority (none = omit parameter)";
893
+ readonly options: readonly [{
894
+ readonly value: "none";
895
+ readonly label: "None";
896
+ readonly description: "Omit service_tier parameter";
897
+ }, {
898
+ readonly value: "auto";
899
+ readonly label: "Auto";
900
+ readonly description: "Use provider default tier selection";
901
+ }, {
902
+ readonly value: "default";
903
+ readonly label: "Default";
904
+ readonly description: "Standard priority processing";
905
+ }, {
906
+ readonly value: "flex";
907
+ readonly label: "Flex";
908
+ readonly description: "Use flexible capacity tier when available";
909
+ }, {
910
+ readonly value: "scale";
911
+ readonly label: "Scale";
912
+ readonly description: "Use Scale Tier credits when available";
913
+ }, {
914
+ readonly value: "priority";
915
+ readonly label: "Priority";
916
+ readonly description: "Use Priority processing";
917
+ }];
918
+ };
919
+ };
920
+ readonly "retry.enabled": {
921
+ readonly type: "boolean";
922
+ readonly default: true;
923
+ };
924
+ readonly "retry.maxRetries": {
925
+ readonly type: "number";
926
+ readonly default: 3;
927
+ readonly ui: {
928
+ readonly tab: "model";
929
+ readonly label: "Retry Attempts";
930
+ readonly description: "Maximum retry attempts on API errors";
931
+ readonly options: readonly [{
932
+ readonly value: "1";
933
+ readonly label: "1 retry";
934
+ }, {
935
+ readonly value: "2";
936
+ readonly label: "2 retries";
937
+ }, {
938
+ readonly value: "3";
939
+ readonly label: "3 retries";
940
+ }, {
941
+ readonly value: "5";
942
+ readonly label: "5 retries";
943
+ }, {
944
+ readonly value: "10";
945
+ readonly label: "10 retries";
946
+ }];
947
+ };
948
+ };
949
+ readonly "retry.baseDelayMs": {
950
+ readonly type: "number";
951
+ readonly default: 2000;
952
+ };
953
+ readonly "retry.fallbackChains": {
954
+ readonly type: "record";
955
+ readonly default: Record<string, string[]>;
956
+ };
957
+ readonly "retry.fallbackRevertPolicy": {
958
+ readonly type: "enum";
959
+ readonly values: readonly ["cooldown-expiry", "never"];
960
+ readonly default: "cooldown-expiry";
961
+ readonly ui: {
962
+ readonly tab: "model";
963
+ readonly label: "Fallback Revert Policy";
964
+ readonly description: "When to return to the primary model after a fallback";
965
+ readonly options: readonly [{
966
+ readonly value: "cooldown-expiry";
967
+ readonly label: "Cooldown expiry";
968
+ readonly description: "Return to the primary model after its suppression window ends";
969
+ }, {
970
+ readonly value: "never";
971
+ readonly label: "Never";
972
+ readonly description: "Stay on the fallback model until manually changed";
973
+ }];
974
+ };
975
+ };
976
+ readonly steeringMode: {
977
+ readonly type: "enum";
978
+ readonly values: readonly ["all", "one-at-a-time"];
979
+ readonly default: "one-at-a-time";
980
+ readonly ui: {
981
+ readonly tab: "interaction";
982
+ readonly label: "Steering Mode";
983
+ readonly description: "How to process queued messages while agent is working";
984
+ };
985
+ };
986
+ readonly followUpMode: {
987
+ readonly type: "enum";
988
+ readonly values: readonly ["all", "one-at-a-time"];
989
+ readonly default: "one-at-a-time";
990
+ readonly ui: {
991
+ readonly tab: "interaction";
992
+ readonly label: "Follow-Up Mode";
993
+ readonly description: "How to drain follow-up messages after a turn completes";
994
+ };
995
+ };
996
+ readonly interruptMode: {
997
+ readonly type: "enum";
998
+ readonly values: readonly ["immediate", "wait"];
999
+ readonly default: "immediate";
1000
+ readonly ui: {
1001
+ readonly tab: "interaction";
1002
+ readonly label: "Interrupt Mode";
1003
+ readonly description: "When steering messages interrupt tool execution";
1004
+ };
1005
+ };
1006
+ readonly "loop.mode": {
1007
+ readonly type: "enum";
1008
+ readonly values: readonly ["prompt", "compact", "reset"];
1009
+ readonly default: "prompt";
1010
+ readonly ui: {
1011
+ readonly tab: "interaction";
1012
+ readonly label: "Loop Mode";
1013
+ readonly description: "What happens between /loop iterations before re-submitting the prompt";
1014
+ readonly options: readonly [{
1015
+ readonly value: "prompt";
1016
+ readonly label: "Prompt";
1017
+ readonly description: "Re-submit the prompt as a follow-up message (current behavior)";
1018
+ }, {
1019
+ readonly value: "compact";
1020
+ readonly label: "Compact";
1021
+ readonly description: "Compact the session context, then re-submit the prompt";
1022
+ }, {
1023
+ readonly value: "reset";
1024
+ readonly label: "Reset";
1025
+ readonly description: "Start a new session, then re-submit the prompt";
1026
+ }];
1027
+ };
1028
+ };
1029
+ readonly doubleEscapeAction: {
1030
+ readonly type: "enum";
1031
+ readonly values: readonly ["branch", "tree", "none"];
1032
+ readonly default: "tree";
1033
+ readonly ui: {
1034
+ readonly tab: "interaction";
1035
+ readonly label: "Double-Escape Action";
1036
+ readonly description: "Action when pressing Escape twice with empty editor";
1037
+ };
1038
+ };
1039
+ readonly treeFilterMode: {
1040
+ readonly type: "enum";
1041
+ readonly values: readonly ["default", "no-tools", "user-only", "labeled-only", "all"];
1042
+ readonly default: "default";
1043
+ readonly ui: {
1044
+ readonly tab: "interaction";
1045
+ readonly label: "Session Tree Filter";
1046
+ readonly description: "Default filter mode when opening the session tree";
1047
+ };
1048
+ };
1049
+ readonly autocompleteMaxVisible: {
1050
+ readonly type: "number";
1051
+ readonly default: 5;
1052
+ readonly ui: {
1053
+ readonly tab: "interaction";
1054
+ readonly label: "Autocomplete Items";
1055
+ readonly description: "Max visible items in autocomplete dropdown (3-20)";
1056
+ readonly options: readonly [{
1057
+ readonly value: "3";
1058
+ readonly label: "3 items";
1059
+ }, {
1060
+ readonly value: "5";
1061
+ readonly label: "5 items";
1062
+ }, {
1063
+ readonly value: "7";
1064
+ readonly label: "7 items";
1065
+ }, {
1066
+ readonly value: "10";
1067
+ readonly label: "10 items";
1068
+ }, {
1069
+ readonly value: "15";
1070
+ readonly label: "15 items";
1071
+ }, {
1072
+ readonly value: "20";
1073
+ readonly label: "20 items";
1074
+ }];
1075
+ };
1076
+ };
1077
+ readonly emojiAutocomplete: {
1078
+ readonly type: "boolean";
1079
+ readonly default: true;
1080
+ readonly ui: {
1081
+ readonly tab: "interaction";
1082
+ readonly label: "Emoji Autocomplete";
1083
+ readonly description: "Suggest emojis from `:name:` shortcodes and expand text emoticons like `:D` or `:-)`";
1084
+ };
1085
+ };
1086
+ readonly "startup.quiet": {
1087
+ readonly type: "boolean";
1088
+ readonly default: false;
1089
+ readonly ui: {
1090
+ readonly tab: "interaction";
1091
+ readonly label: "Quiet Startup";
1092
+ readonly description: "Skip welcome screen and startup status messages";
1093
+ };
1094
+ };
1095
+ readonly "startup.checkUpdate": {
1096
+ readonly type: "boolean";
1097
+ readonly default: true;
1098
+ readonly ui: {
1099
+ readonly tab: "interaction";
1100
+ readonly label: "Check for Updates";
1101
+ readonly description: "If false, skip update check";
1102
+ };
1103
+ };
1104
+ readonly collapseChangelog: {
1105
+ readonly type: "boolean";
1106
+ readonly default: false;
1107
+ readonly ui: {
1108
+ readonly tab: "interaction";
1109
+ readonly label: "Collapse Changelog";
1110
+ readonly description: "Show condensed changelog after updates";
1111
+ };
1112
+ };
1113
+ readonly "completion.notify": {
1114
+ readonly type: "enum";
1115
+ readonly values: readonly ["on", "off"];
1116
+ readonly default: "on";
1117
+ readonly ui: {
1118
+ readonly tab: "interaction";
1119
+ readonly label: "Completion Notification";
1120
+ readonly description: "Notify when the agent completes";
1121
+ };
1122
+ };
1123
+ readonly "ask.timeout": {
1124
+ readonly type: "number";
1125
+ readonly default: 0;
1126
+ readonly ui: {
1127
+ readonly tab: "interaction";
1128
+ readonly label: "Ask Timeout";
1129
+ readonly description: "Auto-select recommended option after timeout (0 to disable)";
1130
+ readonly options: readonly [{
1131
+ readonly value: "0";
1132
+ readonly label: "Disabled";
1133
+ }, {
1134
+ readonly value: "15";
1135
+ readonly label: "15 seconds";
1136
+ }, {
1137
+ readonly value: "30";
1138
+ readonly label: "30 seconds";
1139
+ }, {
1140
+ readonly value: "60";
1141
+ readonly label: "60 seconds";
1142
+ }, {
1143
+ readonly value: "120";
1144
+ readonly label: "120 seconds";
1145
+ }];
1146
+ };
1147
+ };
1148
+ readonly "ask.notify": {
1149
+ readonly type: "enum";
1150
+ readonly values: readonly ["on", "off"];
1151
+ readonly default: "on";
1152
+ readonly ui: {
1153
+ readonly tab: "interaction";
1154
+ readonly label: "Ask Notification";
1155
+ readonly description: "Notify when ask tool is waiting for input";
1156
+ };
1157
+ };
1158
+ readonly "stt.enabled": {
1159
+ readonly type: "boolean";
1160
+ readonly default: false;
1161
+ readonly ui: {
1162
+ readonly tab: "interaction";
1163
+ readonly label: "Speech-to-Text";
1164
+ readonly description: "Enable speech-to-text input via microphone";
1165
+ };
1166
+ };
1167
+ readonly "stt.language": {
1168
+ readonly type: "string";
1169
+ readonly default: "en";
1170
+ };
1171
+ readonly "stt.modelName": {
1172
+ readonly type: "enum";
1173
+ readonly values: readonly ["tiny", "tiny.en", "base", "base.en", "small", "small.en", "medium", "medium.en", "large"];
1174
+ readonly default: "base.en";
1175
+ readonly ui: {
1176
+ readonly tab: "interaction";
1177
+ readonly label: "Speech Model";
1178
+ readonly description: "Whisper model size (larger = more accurate but slower)";
1179
+ readonly options: readonly [{
1180
+ readonly value: "tiny";
1181
+ readonly label: "tiny";
1182
+ readonly description: "Multilingual; fastest, lowest accuracy";
1183
+ }, {
1184
+ readonly value: "tiny.en";
1185
+ readonly label: "tiny.en";
1186
+ readonly description: "English-only; fastest";
1187
+ }, {
1188
+ readonly value: "base";
1189
+ readonly label: "base";
1190
+ readonly description: "Multilingual; small and fast";
1191
+ }, {
1192
+ readonly value: "base.en";
1193
+ readonly label: "base.en";
1194
+ readonly description: "English-only; default";
1195
+ }, {
1196
+ readonly value: "small";
1197
+ readonly label: "small";
1198
+ readonly description: "Multilingual; balanced";
1199
+ }, {
1200
+ readonly value: "small.en";
1201
+ readonly label: "small.en";
1202
+ readonly description: "English-only; balanced";
1203
+ }, {
1204
+ readonly value: "medium";
1205
+ readonly label: "medium";
1206
+ readonly description: "Multilingual; accurate but slower";
1207
+ }, {
1208
+ readonly value: "medium.en";
1209
+ readonly label: "medium.en";
1210
+ readonly description: "English-only; accurate but slower";
1211
+ }, {
1212
+ readonly value: "large";
1213
+ readonly label: "large";
1214
+ readonly description: "Multilingual; most accurate";
1215
+ }];
1216
+ };
1217
+ };
1218
+ readonly "contextPromotion.enabled": {
1219
+ readonly type: "boolean";
1220
+ readonly default: true;
1221
+ readonly ui: {
1222
+ readonly tab: "context";
1223
+ readonly label: "Auto-Promote Context";
1224
+ readonly description: "Promote to a larger-context model on context overflow instead of compacting";
1225
+ };
1226
+ };
1227
+ readonly "compaction.enabled": {
1228
+ readonly type: "boolean";
1229
+ readonly default: true;
1230
+ readonly ui: {
1231
+ readonly tab: "context";
1232
+ readonly label: "Auto-Compact";
1233
+ readonly description: "Automatically compact context when it gets too large";
1234
+ };
1235
+ };
1236
+ readonly "compaction.strategy": {
1237
+ readonly type: "enum";
1238
+ readonly values: readonly ["context-full", "handoff", "off"];
1239
+ readonly default: "context-full";
1240
+ readonly ui: {
1241
+ readonly tab: "context";
1242
+ readonly label: "Compaction Strategy";
1243
+ readonly description: "Choose in-place context-full maintenance, auto-handoff, or disable auto maintenance (off)";
1244
+ readonly options: readonly [{
1245
+ readonly value: "context-full";
1246
+ readonly label: "Context-full";
1247
+ readonly description: "Summarize in-place and keep the current session";
1248
+ }, {
1249
+ readonly value: "handoff";
1250
+ readonly label: "Handoff";
1251
+ readonly description: "Generate handoff and continue in a new session";
1252
+ }, {
1253
+ readonly value: "off";
1254
+ readonly label: "Off";
1255
+ readonly description: "Disable automatic context maintenance (same behavior as Auto-compact off)";
1256
+ }];
1257
+ };
1258
+ };
1259
+ readonly "compaction.thresholdPercent": {
1260
+ readonly type: "number";
1261
+ readonly default: -1;
1262
+ readonly ui: {
1263
+ readonly tab: "context";
1264
+ readonly label: "Compaction Threshold";
1265
+ readonly description: "Percent threshold for context maintenance; set to Default to use legacy reserve-based behavior";
1266
+ readonly options: readonly [{
1267
+ readonly value: "default";
1268
+ readonly label: "Default";
1269
+ readonly description: "Legacy reserve-based threshold";
1270
+ }, {
1271
+ readonly value: "10";
1272
+ readonly label: "10%";
1273
+ readonly description: "Extremely early maintenance";
1274
+ }, {
1275
+ readonly value: "20";
1276
+ readonly label: "20%";
1277
+ readonly description: "Very early maintenance";
1278
+ }, {
1279
+ readonly value: "30";
1280
+ readonly label: "30%";
1281
+ readonly description: "Early maintenance";
1282
+ }, {
1283
+ readonly value: "40";
1284
+ readonly label: "40%";
1285
+ readonly description: "Moderately early maintenance";
1286
+ }, {
1287
+ readonly value: "50";
1288
+ readonly label: "50%";
1289
+ readonly description: "Halfway point";
1290
+ }, {
1291
+ readonly value: "60";
1292
+ readonly label: "60%";
1293
+ readonly description: "Moderate context usage";
1294
+ }, {
1295
+ readonly value: "70";
1296
+ readonly label: "70%";
1297
+ readonly description: "Balanced";
1298
+ }, {
1299
+ readonly value: "75";
1300
+ readonly label: "75%";
1301
+ readonly description: "Slightly aggressive";
1302
+ }, {
1303
+ readonly value: "80";
1304
+ readonly label: "80%";
1305
+ readonly description: "Typical threshold";
1306
+ }, {
1307
+ readonly value: "85";
1308
+ readonly label: "85%";
1309
+ readonly description: "Aggressive context usage";
1310
+ }, {
1311
+ readonly value: "90";
1312
+ readonly label: "90%";
1313
+ readonly description: "Very aggressive";
1314
+ }, {
1315
+ readonly value: "95";
1316
+ readonly label: "95%";
1317
+ readonly description: "Near context limit";
1318
+ }];
1319
+ };
1320
+ };
1321
+ readonly "compaction.thresholdTokens": {
1322
+ readonly type: "number";
1323
+ readonly default: -1;
1324
+ readonly ui: {
1325
+ readonly tab: "context";
1326
+ readonly label: "Compaction Token Limit";
1327
+ readonly description: "Fixed token limit for context maintenance; overrides percentage if set";
1328
+ readonly options: readonly [{
1329
+ readonly value: "default";
1330
+ readonly label: "Default";
1331
+ readonly description: "Use percentage-based threshold";
1332
+ }, {
1333
+ readonly value: "25000";
1334
+ readonly label: "25K tokens";
1335
+ readonly description: "Quarter of a 200K window";
1336
+ }, {
1337
+ readonly value: "50000";
1338
+ readonly label: "50K tokens";
1339
+ readonly description: "Half of a 200K window";
1340
+ }, {
1341
+ readonly value: "100000";
1342
+ readonly label: "100K tokens";
1343
+ readonly description: "Half of a 200K window";
1344
+ }, {
1345
+ readonly value: "150000";
1346
+ readonly label: "150K tokens";
1347
+ readonly description: "Three-quarters of a 200K window";
1348
+ }, {
1349
+ readonly value: "200000";
1350
+ readonly label: "200K tokens";
1351
+ readonly description: "Full standard context window";
1352
+ }, {
1353
+ readonly value: "300000";
1354
+ readonly label: "300K tokens";
1355
+ readonly description: "Large context window";
1356
+ }, {
1357
+ readonly value: "500000";
1358
+ readonly label: "500K tokens";
1359
+ readonly description: "Very large context window";
1360
+ }];
1361
+ };
1362
+ };
1363
+ readonly "compaction.handoffSaveToDisk": {
1364
+ readonly type: "boolean";
1365
+ readonly default: false;
1366
+ readonly ui: {
1367
+ readonly tab: "context";
1368
+ readonly label: "Save Handoff Docs";
1369
+ readonly description: "Save generated handoff documents to markdown files for the auto-handoff flow";
1370
+ };
1371
+ };
1372
+ readonly "compaction.remoteEnabled": {
1373
+ readonly type: "boolean";
1374
+ readonly default: true;
1375
+ readonly ui: {
1376
+ readonly tab: "context";
1377
+ readonly label: "Remote Compaction";
1378
+ readonly description: "Use remote compaction endpoints when available instead of local summarization";
1379
+ };
1380
+ };
1381
+ readonly "compaction.reserveTokens": {
1382
+ readonly type: "number";
1383
+ readonly default: 16384;
1384
+ };
1385
+ readonly "compaction.keepRecentTokens": {
1386
+ readonly type: "number";
1387
+ readonly default: 20000;
1388
+ };
1389
+ readonly "compaction.autoContinue": {
1390
+ readonly type: "boolean";
1391
+ readonly default: true;
1392
+ };
1393
+ readonly "compaction.remoteEndpoint": {
1394
+ readonly type: "string";
1395
+ readonly default: undefined;
1396
+ };
1397
+ readonly "compaction.idleEnabled": {
1398
+ readonly type: "boolean";
1399
+ readonly default: false;
1400
+ readonly ui: {
1401
+ readonly tab: "context";
1402
+ readonly label: "Idle Compaction";
1403
+ readonly description: "Compact context while idle when token count exceeds threshold";
1404
+ };
1405
+ };
1406
+ readonly "compaction.idleThresholdTokens": {
1407
+ readonly type: "number";
1408
+ readonly default: 200000;
1409
+ readonly ui: {
1410
+ readonly tab: "context";
1411
+ readonly label: "Idle Compaction Threshold";
1412
+ readonly description: "Token count above which idle compaction triggers";
1413
+ readonly options: readonly [{
1414
+ readonly value: "100000";
1415
+ readonly label: "100K tokens";
1416
+ }, {
1417
+ readonly value: "200000";
1418
+ readonly label: "200K tokens";
1419
+ }, {
1420
+ readonly value: "300000";
1421
+ readonly label: "300K tokens";
1422
+ }, {
1423
+ readonly value: "400000";
1424
+ readonly label: "400K tokens";
1425
+ }, {
1426
+ readonly value: "500000";
1427
+ readonly label: "500K tokens";
1428
+ }, {
1429
+ readonly value: "600000";
1430
+ readonly label: "600K tokens";
1431
+ }, {
1432
+ readonly value: "700000";
1433
+ readonly label: "700K tokens";
1434
+ }, {
1435
+ readonly value: "800000";
1436
+ readonly label: "800K tokens";
1437
+ }, {
1438
+ readonly value: "900000";
1439
+ readonly label: "900K tokens";
1440
+ }];
1441
+ };
1442
+ };
1443
+ readonly "compaction.idleTimeoutSeconds": {
1444
+ readonly type: "number";
1445
+ readonly default: 300;
1446
+ readonly ui: {
1447
+ readonly tab: "context";
1448
+ readonly label: "Idle Compaction Delay";
1449
+ readonly description: "Seconds to wait while idle before compacting";
1450
+ readonly options: readonly [{
1451
+ readonly value: "60";
1452
+ readonly label: "1 minute";
1453
+ }, {
1454
+ readonly value: "120";
1455
+ readonly label: "2 minutes";
1456
+ }, {
1457
+ readonly value: "300";
1458
+ readonly label: "5 minutes";
1459
+ }, {
1460
+ readonly value: "600";
1461
+ readonly label: "10 minutes";
1462
+ }, {
1463
+ readonly value: "1800";
1464
+ readonly label: "30 minutes";
1465
+ }, {
1466
+ readonly value: "3600";
1467
+ readonly label: "1 hour";
1468
+ }];
1469
+ };
1470
+ };
1471
+ readonly "branchSummary.enabled": {
1472
+ readonly type: "boolean";
1473
+ readonly default: false;
1474
+ readonly ui: {
1475
+ readonly tab: "context";
1476
+ readonly label: "Branch Summaries";
1477
+ readonly description: "Prompt to summarize when leaving a branch";
1478
+ };
1479
+ };
1480
+ readonly "branchSummary.reserveTokens": {
1481
+ readonly type: "number";
1482
+ readonly default: 16384;
1483
+ };
1484
+ readonly "memories.enabled": {
1485
+ readonly type: "boolean";
1486
+ readonly default: false;
1487
+ };
1488
+ readonly "memories.maxRolloutsPerStartup": {
1489
+ readonly type: "number";
1490
+ readonly default: 64;
1491
+ };
1492
+ readonly "memories.maxRolloutAgeDays": {
1493
+ readonly type: "number";
1494
+ readonly default: 30;
1495
+ };
1496
+ readonly "memories.minRolloutIdleHours": {
1497
+ readonly type: "number";
1498
+ readonly default: 12;
1499
+ };
1500
+ readonly "memories.threadScanLimit": {
1501
+ readonly type: "number";
1502
+ readonly default: 300;
1503
+ };
1504
+ readonly "memories.maxRawMemoriesForGlobal": {
1505
+ readonly type: "number";
1506
+ readonly default: 200;
1507
+ };
1508
+ readonly "memories.stage1Concurrency": {
1509
+ readonly type: "number";
1510
+ readonly default: 8;
1511
+ };
1512
+ readonly "memories.stage1LeaseSeconds": {
1513
+ readonly type: "number";
1514
+ readonly default: 120;
1515
+ };
1516
+ readonly "memories.stage1RetryDelaySeconds": {
1517
+ readonly type: "number";
1518
+ readonly default: 120;
1519
+ };
1520
+ readonly "memories.phase2LeaseSeconds": {
1521
+ readonly type: "number";
1522
+ readonly default: 180;
1523
+ };
1524
+ readonly "memories.phase2RetryDelaySeconds": {
1525
+ readonly type: "number";
1526
+ readonly default: 180;
1527
+ };
1528
+ readonly "memories.phase2HeartbeatSeconds": {
1529
+ readonly type: "number";
1530
+ readonly default: 30;
1531
+ };
1532
+ readonly "memories.rolloutPayloadPercent": {
1533
+ readonly type: "number";
1534
+ readonly default: 0.7;
1535
+ };
1536
+ readonly "memories.phase1InputTokenLimit": {
1537
+ readonly type: "number";
1538
+ readonly default: 4000;
1539
+ };
1540
+ readonly "memories.fallbackTokenLimit": {
1541
+ readonly type: "number";
1542
+ readonly default: 16000;
1543
+ };
1544
+ readonly "memories.summaryInjectionTokenLimit": {
1545
+ readonly type: "number";
1546
+ readonly default: 5000;
1547
+ };
1548
+ readonly "memory.backend": {
1549
+ readonly type: "enum";
1550
+ readonly values: readonly ["off", "local", "hindsight"];
1551
+ readonly default: "off";
1552
+ readonly ui: {
1553
+ readonly tab: "memory";
1554
+ readonly label: "Memory Backend";
1555
+ readonly description: "Off, local memory pipeline, or Hindsight remote memory";
1556
+ readonly options: readonly [{
1557
+ readonly value: "off";
1558
+ readonly label: "Off";
1559
+ readonly description: "No memory subsystem runs";
1560
+ }, {
1561
+ readonly value: "local";
1562
+ readonly label: "Local";
1563
+ readonly description: "Local rollout summarisation pipeline (memory_summary.md)";
1564
+ }, {
1565
+ readonly value: "hindsight";
1566
+ readonly label: "Hindsight";
1567
+ readonly description: "Vectorize Hindsight remote memory service";
1568
+ }];
1569
+ };
1570
+ };
1571
+ readonly "hindsight.apiUrl": {
1572
+ readonly type: "string";
1573
+ readonly default: "http://localhost:8888";
1574
+ readonly ui: {
1575
+ readonly tab: "memory";
1576
+ readonly label: "Hindsight API URL";
1577
+ readonly description: "Hindsight server URL (Cloud or self-hosted)";
1578
+ readonly condition: "hindsightActive";
1579
+ };
1580
+ };
1581
+ readonly "hindsight.apiToken": {
1582
+ readonly type: "string";
1583
+ readonly default: undefined;
1584
+ };
1585
+ readonly "hindsight.bankId": {
1586
+ readonly type: "string";
1587
+ readonly default: undefined;
1588
+ readonly ui: {
1589
+ readonly tab: "memory";
1590
+ readonly label: "Hindsight Bank ID";
1591
+ readonly description: "Memory bank identifier (default: project name)";
1592
+ readonly condition: "hindsightActive";
1593
+ };
1594
+ };
1595
+ readonly "hindsight.bankIdPrefix": {
1596
+ readonly type: "string";
1597
+ readonly default: undefined;
1598
+ };
1599
+ readonly "hindsight.scoping": {
1600
+ readonly type: "enum";
1601
+ readonly values: readonly ["global", "per-project", "per-project-tagged"];
1602
+ readonly default: "per-project-tagged";
1603
+ readonly ui: {
1604
+ readonly tab: "memory";
1605
+ readonly label: "Hindsight Scoping";
1606
+ readonly description: "global = one shared bank; per-project = isolated bank per cwd; per-project-tagged = shared bank with project tags so global + project memories merge on recall";
1607
+ readonly options: readonly [{
1608
+ readonly value: "global";
1609
+ readonly label: "Global";
1610
+ readonly description: "One shared bank \u2014 every project sees the same memories";
1611
+ }, {
1612
+ readonly value: "per-project";
1613
+ readonly label: "Per project";
1614
+ readonly description: "Isolated bank per cwd basename \u2014 projects cannot see each other's memories";
1615
+ }, {
1616
+ readonly value: "per-project-tagged";
1617
+ readonly label: "Per project (tagged)";
1618
+ readonly description: "Shared bank, retains tagged with project:<cwd>. Recall surfaces project + untagged global memories together";
1619
+ }];
1620
+ readonly condition: "hindsightActive";
1621
+ };
1622
+ };
1623
+ readonly "hindsight.bankMission": {
1624
+ readonly type: "string";
1625
+ readonly default: undefined;
1626
+ };
1627
+ readonly "hindsight.retainMission": {
1628
+ readonly type: "string";
1629
+ readonly default: undefined;
1630
+ };
1631
+ readonly "hindsight.autoRecall": {
1632
+ readonly type: "boolean";
1633
+ readonly default: true;
1634
+ readonly ui: {
1635
+ readonly tab: "memory";
1636
+ readonly label: "Hindsight Auto Recall";
1637
+ readonly description: "Recall memories on the first turn of each session";
1638
+ readonly condition: "hindsightActive";
1639
+ };
1640
+ };
1641
+ readonly "hindsight.autoRetain": {
1642
+ readonly type: "boolean";
1643
+ readonly default: true;
1644
+ readonly ui: {
1645
+ readonly tab: "memory";
1646
+ readonly label: "Hindsight Auto Retain";
1647
+ readonly description: "Retain transcript every N turns and at session boundaries";
1648
+ readonly condition: "hindsightActive";
1649
+ };
1650
+ };
1651
+ readonly "hindsight.retainMode": {
1652
+ readonly type: "enum";
1653
+ readonly values: readonly ["full-session", "last-turn"];
1654
+ readonly default: "full-session";
1655
+ readonly ui: {
1656
+ readonly tab: "memory";
1657
+ readonly label: "Hindsight Retain Mode";
1658
+ readonly description: "full-session = upsert one document per session, last-turn = chunked";
1659
+ readonly options: readonly [{
1660
+ readonly value: "full-session";
1661
+ readonly label: "Full session";
1662
+ readonly description: "Upsert one document per session (recommended)";
1663
+ }, {
1664
+ readonly value: "last-turn";
1665
+ readonly label: "Last turn";
1666
+ readonly description: "Chunked retention sliced by turn boundaries";
1667
+ }];
1668
+ readonly condition: "hindsightActive";
1669
+ };
1670
+ };
1671
+ readonly "hindsight.retainEveryNTurns": {
1672
+ readonly type: "number";
1673
+ readonly default: 3;
1674
+ };
1675
+ readonly "hindsight.retainOverlapTurns": {
1676
+ readonly type: "number";
1677
+ readonly default: 2;
1678
+ };
1679
+ readonly "hindsight.retainContext": {
1680
+ readonly type: "string";
1681
+ readonly default: "omp";
1682
+ };
1683
+ readonly "hindsight.recallBudget": {
1684
+ readonly type: "enum";
1685
+ readonly values: readonly ["low", "mid", "high"];
1686
+ readonly default: "mid";
1687
+ };
1688
+ readonly "hindsight.recallMaxTokens": {
1689
+ readonly type: "number";
1690
+ readonly default: 1024;
1691
+ };
1692
+ readonly "hindsight.recallContextTurns": {
1693
+ readonly type: "number";
1694
+ readonly default: 1;
1695
+ };
1696
+ readonly "hindsight.recallMaxQueryChars": {
1697
+ readonly type: "number";
1698
+ readonly default: 800;
1699
+ };
1700
+ readonly "hindsight.recallTypes": {
1701
+ readonly type: "array";
1702
+ readonly default: string[];
1703
+ };
1704
+ readonly "hindsight.debug": {
1705
+ readonly type: "boolean";
1706
+ readonly default: false;
1707
+ };
1708
+ readonly "hindsight.mentalModelsEnabled": {
1709
+ readonly type: "boolean";
1710
+ readonly default: true;
1711
+ readonly ui: {
1712
+ readonly tab: "memory";
1713
+ readonly label: "Hindsight Mental Models";
1714
+ readonly description: "Read curated reflect summaries (mental models) into developer instructions at boot. Loads existing models on the bank \u2014 does not write. Pair with hindsight.mentalModelAutoSeed to also auto-create the built-in seed set.";
1715
+ readonly condition: "hindsightActive";
1716
+ };
1717
+ };
1718
+ readonly "hindsight.mentalModelAutoSeed": {
1719
+ readonly type: "boolean";
1720
+ readonly default: true;
1721
+ readonly ui: {
1722
+ readonly tab: "memory";
1723
+ readonly label: "Hindsight Mental Model Auto-Seed";
1724
+ readonly description: "At session start, create any built-in mental models (project-conventions, project-decisions, user-preferences) that do not yet exist on the bank.";
1725
+ readonly condition: "hindsightActive";
1726
+ };
1727
+ };
1728
+ readonly "hindsight.mentalModelRefreshIntervalMs": {
1729
+ readonly type: "number";
1730
+ readonly default: number;
1731
+ };
1732
+ readonly "hindsight.mentalModelMaxRenderChars": {
1733
+ readonly type: "number";
1734
+ readonly default: 16000;
1735
+ };
1736
+ readonly "ttsr.enabled": {
1737
+ readonly type: "boolean";
1738
+ readonly default: true;
1739
+ readonly ui: {
1740
+ readonly tab: "context";
1741
+ readonly label: "TTSR";
1742
+ readonly description: "Time Traveling Stream Rules: interrupt agent when output matches patterns";
1743
+ };
1744
+ };
1745
+ readonly "ttsr.contextMode": {
1746
+ readonly type: "enum";
1747
+ readonly values: readonly ["discard", "keep"];
1748
+ readonly default: "discard";
1749
+ readonly ui: {
1750
+ readonly tab: "context";
1751
+ readonly label: "TTSR Context Mode";
1752
+ readonly description: "What to do with partial output when TTSR triggers";
1753
+ };
1754
+ };
1755
+ readonly "ttsr.interruptMode": {
1756
+ readonly type: "enum";
1757
+ readonly values: readonly ["never", "prose-only", "tool-only", "always"];
1758
+ readonly default: "always";
1759
+ readonly ui: {
1760
+ readonly tab: "context";
1761
+ readonly label: "TTSR Interrupt Mode";
1762
+ readonly description: "When to interrupt mid-stream vs inject warning after completion";
1763
+ readonly options: readonly [{
1764
+ readonly value: "always";
1765
+ readonly label: "always";
1766
+ readonly description: "Interrupt on prose and tool streams";
1767
+ }, {
1768
+ readonly value: "prose-only";
1769
+ readonly label: "prose-only";
1770
+ readonly description: "Interrupt only on reply/thinking matches";
1771
+ }, {
1772
+ readonly value: "tool-only";
1773
+ readonly label: "tool-only";
1774
+ readonly description: "Interrupt only on tool-call argument matches";
1775
+ }, {
1776
+ readonly value: "never";
1777
+ readonly label: "never";
1778
+ readonly description: "Never interrupt; inject warning after completion";
1779
+ }];
1780
+ };
1781
+ };
1782
+ readonly "ttsr.repeatMode": {
1783
+ readonly type: "enum";
1784
+ readonly values: readonly ["once", "after-gap"];
1785
+ readonly default: "once";
1786
+ readonly ui: {
1787
+ readonly tab: "context";
1788
+ readonly label: "TTSR Repeat Mode";
1789
+ readonly description: "How rules can repeat: once per session or after a message gap";
1790
+ };
1791
+ };
1792
+ readonly "ttsr.repeatGap": {
1793
+ readonly type: "number";
1794
+ readonly default: 10;
1795
+ readonly ui: {
1796
+ readonly tab: "context";
1797
+ readonly label: "TTSR Repeat Gap";
1798
+ readonly description: "Messages before a rule can trigger again";
1799
+ readonly options: readonly [{
1800
+ readonly value: "5";
1801
+ readonly label: "5 messages";
1802
+ }, {
1803
+ readonly value: "10";
1804
+ readonly label: "10 messages";
1805
+ }, {
1806
+ readonly value: "15";
1807
+ readonly label: "15 messages";
1808
+ }, {
1809
+ readonly value: "20";
1810
+ readonly label: "20 messages";
1811
+ }, {
1812
+ readonly value: "30";
1813
+ readonly label: "30 messages";
1814
+ }];
1815
+ };
1816
+ };
1817
+ readonly "edit.mode": {
1818
+ readonly type: "enum";
1819
+ readonly values: import("..").EditMode[];
1820
+ readonly default: "hashline";
1821
+ readonly ui: {
1822
+ readonly tab: "editing";
1823
+ readonly label: "Edit Mode";
1824
+ readonly description: "Select the edit tool variant (replace, patch, hashline, vim, or apply_patch)";
1825
+ };
1826
+ };
1827
+ readonly "edit.fuzzyMatch": {
1828
+ readonly type: "boolean";
1829
+ readonly default: true;
1830
+ readonly ui: {
1831
+ readonly tab: "editing";
1832
+ readonly label: "Fuzzy Match";
1833
+ readonly description: "Accept high-confidence fuzzy matches for whitespace differences";
1834
+ };
1835
+ };
1836
+ readonly "edit.fuzzyThreshold": {
1837
+ readonly type: "number";
1838
+ readonly default: 0.95;
1839
+ readonly ui: {
1840
+ readonly tab: "editing";
1841
+ readonly label: "Fuzzy Match Threshold";
1842
+ readonly description: "Similarity threshold for fuzzy matches";
1843
+ readonly options: readonly [{
1844
+ readonly value: "0.85";
1845
+ readonly label: "0.85";
1846
+ readonly description: "Lenient";
1847
+ }, {
1848
+ readonly value: "0.90";
1849
+ readonly label: "0.90";
1850
+ readonly description: "Moderate";
1851
+ }, {
1852
+ readonly value: "0.95";
1853
+ readonly label: "0.95";
1854
+ readonly description: "Default";
1855
+ }, {
1856
+ readonly value: "0.98";
1857
+ readonly label: "0.98";
1858
+ readonly description: "Strict";
1859
+ }];
1860
+ };
1861
+ };
1862
+ readonly "edit.streamingAbort": {
1863
+ readonly type: "boolean";
1864
+ readonly default: false;
1865
+ readonly ui: {
1866
+ readonly tab: "editing";
1867
+ readonly label: "Abort on Failed Preview";
1868
+ readonly description: "Abort streaming edit tool calls when patch preview fails";
1869
+ };
1870
+ };
1871
+ readonly "edit.hashlineAutoDropPureInsertDuplicates": {
1872
+ readonly type: "boolean";
1873
+ readonly default: false;
1874
+ readonly ui: {
1875
+ readonly tab: "editing";
1876
+ readonly label: "Hashline Duplicate Insert Drop";
1877
+ readonly description: "Drop 2+ pure-insert payload lines that duplicate adjacent file context";
1878
+ };
1879
+ };
1880
+ readonly "edit.blockAutoGenerated": {
1881
+ readonly type: "boolean";
1882
+ readonly default: true;
1883
+ readonly ui: {
1884
+ readonly tab: "editing";
1885
+ readonly label: "Block Auto-Generated Files";
1886
+ readonly description: "Prevent editing of files that appear to be auto-generated (protoc, sqlc, swagger, etc.)";
1887
+ };
1888
+ };
1889
+ readonly readLineNumbers: {
1890
+ readonly type: "boolean";
1891
+ readonly default: false;
1892
+ readonly ui: {
1893
+ readonly tab: "editing";
1894
+ readonly label: "Line Numbers";
1895
+ readonly description: "Prepend line numbers to read tool output by default";
1896
+ };
1897
+ };
1898
+ readonly readHashLines: {
1899
+ readonly type: "boolean";
1900
+ readonly default: true;
1901
+ readonly ui: {
1902
+ readonly tab: "editing";
1903
+ readonly label: "Hash Lines";
1904
+ readonly description: "Include line hashes in read output for hashline edit mode (LINE+ID|content)";
1905
+ };
1906
+ };
1907
+ readonly "read.defaultLimit": {
1908
+ readonly type: "number";
1909
+ readonly default: 300;
1910
+ readonly ui: {
1911
+ readonly tab: "editing";
1912
+ readonly label: "Default Read Limit";
1913
+ readonly description: "Default number of lines returned when agent calls read without a limit";
1914
+ readonly options: readonly [{
1915
+ readonly value: "200";
1916
+ readonly label: "200 lines";
1917
+ }, {
1918
+ readonly value: "300";
1919
+ readonly label: "300 lines";
1920
+ }, {
1921
+ readonly value: "500";
1922
+ readonly label: "500 lines";
1923
+ }, {
1924
+ readonly value: "1000";
1925
+ readonly label: "1000 lines";
1926
+ }, {
1927
+ readonly value: "5000";
1928
+ readonly label: "5000 lines";
1929
+ }];
1930
+ };
1931
+ };
1932
+ readonly "read.summarize.enabled": {
1933
+ readonly type: "boolean";
1934
+ readonly default: true;
1935
+ readonly ui: {
1936
+ readonly tab: "editing";
1937
+ readonly label: "Read Summaries";
1938
+ readonly description: "Return structural code summaries when read is called without an explicit selector";
1939
+ };
1940
+ };
1941
+ readonly "read.summarize.prose": {
1942
+ readonly type: "boolean";
1943
+ readonly default: false;
1944
+ readonly ui: {
1945
+ readonly tab: "editing";
1946
+ readonly label: "Prose Summaries";
1947
+ readonly description: "Return structural summaries for Markdown and plain text reads";
1948
+ };
1949
+ };
1950
+ readonly "read.summarize.minBodyLines": {
1951
+ readonly type: "number";
1952
+ readonly default: 4;
1953
+ readonly ui: {
1954
+ readonly tab: "editing";
1955
+ readonly label: "Read Summary Body Lines";
1956
+ readonly description: "Minimum multiline body or literal length before read summaries collapse it";
1957
+ };
1958
+ };
1959
+ readonly "read.summarize.minCommentLines": {
1960
+ readonly type: "number";
1961
+ readonly default: 6;
1962
+ readonly ui: {
1963
+ readonly tab: "editing";
1964
+ readonly label: "Read Summary Comment Lines";
1965
+ readonly description: "Minimum multiline block comment length before read summaries collapse it";
1966
+ };
1967
+ };
1968
+ readonly "read.toolResultPreview": {
1969
+ readonly type: "boolean";
1970
+ readonly default: false;
1971
+ readonly ui: {
1972
+ readonly tab: "editing";
1973
+ readonly label: "Inline Read Previews";
1974
+ readonly description: "Render read tool results inline in the transcript instead of summary rows";
1975
+ };
1976
+ };
1977
+ readonly "lsp.enabled": {
1978
+ readonly type: "boolean";
1979
+ readonly default: true;
1980
+ readonly ui: {
1981
+ readonly tab: "editing";
1982
+ readonly label: "LSP";
1983
+ readonly description: "Enable the lsp tool for language server protocol";
1984
+ };
1985
+ };
1986
+ readonly "lsp.formatOnWrite": {
1987
+ readonly type: "boolean";
1988
+ readonly default: false;
1989
+ readonly ui: {
1990
+ readonly tab: "editing";
1991
+ readonly label: "Format on Write";
1992
+ readonly description: "Automatically format code files using LSP after writing";
1993
+ };
1994
+ };
1995
+ readonly "lsp.diagnosticsOnWrite": {
1996
+ readonly type: "boolean";
1997
+ readonly default: true;
1998
+ readonly ui: {
1999
+ readonly tab: "editing";
2000
+ readonly label: "Diagnostics on Write";
2001
+ readonly description: "Return LSP diagnostics after writing code files";
2002
+ };
2003
+ };
2004
+ readonly "lsp.diagnosticsOnEdit": {
2005
+ readonly type: "boolean";
2006
+ readonly default: false;
2007
+ readonly ui: {
2008
+ readonly tab: "editing";
2009
+ readonly label: "Diagnostics on Edit";
2010
+ readonly description: "Return LSP diagnostics after editing code files";
2011
+ };
2012
+ };
2013
+ readonly "bashInterceptor.enabled": {
2014
+ readonly type: "boolean";
2015
+ readonly default: false;
2016
+ readonly ui: {
2017
+ readonly tab: "editing";
2018
+ readonly label: "Bash Interceptor";
2019
+ readonly description: "Block shell commands that have dedicated tools";
2020
+ };
2021
+ };
2022
+ readonly "bashInterceptor.patterns": {
2023
+ readonly type: "array";
2024
+ readonly default: BashInterceptorRule[];
2025
+ };
2026
+ readonly "bash.stripTrailingHeadTail": {
2027
+ readonly type: "boolean";
2028
+ readonly default: true;
2029
+ readonly ui: {
2030
+ readonly tab: "editing";
2031
+ readonly label: "Strip Trailing head/tail";
2032
+ readonly description: "Silently drop trailing `| head`/`| tail` pipes from single-line bash commands. Output is already truncated automatically.";
2033
+ };
2034
+ };
2035
+ readonly "shellMinimizer.enabled": {
2036
+ readonly type: "boolean";
2037
+ readonly default: true;
2038
+ readonly ui: {
2039
+ readonly tab: "editing";
2040
+ readonly label: "Shell Minimizer";
2041
+ readonly description: "Compress verbose shell output (git, npm, cargo, etc.) before returning it to the agent";
2042
+ };
2043
+ };
2044
+ readonly "shellMinimizer.settingsPath": {
2045
+ readonly type: "string";
2046
+ readonly default: undefined;
2047
+ };
2048
+ readonly "shellMinimizer.only": {
2049
+ readonly type: "array";
2050
+ readonly default: string[];
2051
+ };
2052
+ readonly "shellMinimizer.except": {
2053
+ readonly type: "array";
2054
+ readonly default: string[];
2055
+ };
2056
+ readonly "shellMinimizer.maxCaptureBytes": {
2057
+ readonly type: "number";
2058
+ readonly default: number;
2059
+ };
2060
+ readonly "eval.py": {
2061
+ readonly type: "boolean";
2062
+ readonly default: true;
2063
+ readonly ui: {
2064
+ readonly tab: "editing";
2065
+ readonly label: "Eval: Python backend";
2066
+ readonly description: "Allow the eval tool to dispatch to the IPython kernel";
2067
+ };
2068
+ };
2069
+ readonly "eval.js": {
2070
+ readonly type: "boolean";
2071
+ readonly default: true;
2072
+ readonly ui: {
2073
+ readonly tab: "editing";
2074
+ readonly label: "Eval: JavaScript backend";
2075
+ readonly description: "Allow the eval tool to dispatch to the in-process JavaScript runtime";
2076
+ };
2077
+ };
2078
+ readonly "python.kernelMode": {
2079
+ readonly type: "enum";
2080
+ readonly values: readonly ["session", "per-call"];
2081
+ readonly default: "session";
2082
+ readonly ui: {
2083
+ readonly tab: "editing";
2084
+ readonly label: "Python Kernel Mode";
2085
+ readonly description: "Whether to keep IPython kernel alive across calls";
2086
+ };
2087
+ };
2088
+ readonly "todo.enabled": {
2089
+ readonly type: "boolean";
2090
+ readonly default: true;
2091
+ readonly ui: {
2092
+ readonly tab: "tools";
2093
+ readonly label: "Todos";
2094
+ readonly description: "Enable the todo_write tool for task tracking";
2095
+ };
2096
+ };
2097
+ readonly "todo.reminders": {
2098
+ readonly type: "boolean";
2099
+ readonly default: true;
2100
+ readonly ui: {
2101
+ readonly tab: "tools";
2102
+ readonly label: "Todo Reminders";
2103
+ readonly description: "Remind agent to complete todos before stopping";
2104
+ };
2105
+ };
2106
+ readonly "todo.reminders.max": {
2107
+ readonly type: "number";
2108
+ readonly default: 3;
2109
+ readonly ui: {
2110
+ readonly tab: "tools";
2111
+ readonly label: "Todo Reminder Limit";
2112
+ readonly description: "Maximum reminders to complete todos before giving up";
2113
+ readonly options: readonly [{
2114
+ readonly value: "1";
2115
+ readonly label: "1 reminder";
2116
+ }, {
2117
+ readonly value: "2";
2118
+ readonly label: "2 reminders";
2119
+ }, {
2120
+ readonly value: "3";
2121
+ readonly label: "3 reminders";
2122
+ }, {
2123
+ readonly value: "5";
2124
+ readonly label: "5 reminders";
2125
+ }];
2126
+ };
2127
+ };
2128
+ readonly "todo.eager": {
2129
+ readonly type: "boolean";
2130
+ readonly default: false;
2131
+ readonly ui: {
2132
+ readonly tab: "tools";
2133
+ readonly label: "Create Todos Automatically";
2134
+ readonly description: "Automatically create a comprehensive todo list after the first message";
2135
+ };
2136
+ };
2137
+ readonly "find.enabled": {
2138
+ readonly type: "boolean";
2139
+ readonly default: true;
2140
+ readonly ui: {
2141
+ readonly tab: "tools";
2142
+ readonly label: "Find";
2143
+ readonly description: "Enable the find tool for file searching";
2144
+ };
2145
+ };
2146
+ readonly "search.enabled": {
2147
+ readonly type: "boolean";
2148
+ readonly default: true;
2149
+ readonly ui: {
2150
+ readonly tab: "tools";
2151
+ readonly label: "Search";
2152
+ readonly description: "Enable the search tool for content searching";
2153
+ };
2154
+ };
2155
+ readonly "search.contextBefore": {
2156
+ readonly type: "number";
2157
+ readonly default: 1;
2158
+ readonly ui: {
2159
+ readonly tab: "tools";
2160
+ readonly label: "Search Context Before";
2161
+ readonly description: "Lines of context before each search match";
2162
+ readonly options: readonly [{
2163
+ readonly value: "0";
2164
+ readonly label: "0 lines";
2165
+ }, {
2166
+ readonly value: "1";
2167
+ readonly label: "1 line";
2168
+ }, {
2169
+ readonly value: "2";
2170
+ readonly label: "2 lines";
2171
+ }, {
2172
+ readonly value: "3";
2173
+ readonly label: "3 lines";
2174
+ }, {
2175
+ readonly value: "5";
2176
+ readonly label: "5 lines";
2177
+ }];
2178
+ };
2179
+ };
2180
+ readonly "search.contextAfter": {
2181
+ readonly type: "number";
2182
+ readonly default: 3;
2183
+ readonly ui: {
2184
+ readonly tab: "tools";
2185
+ readonly label: "Search Context After";
2186
+ readonly description: "Lines of context after each search match";
2187
+ readonly options: readonly [{
2188
+ readonly value: "0";
2189
+ readonly label: "0 lines";
2190
+ }, {
2191
+ readonly value: "1";
2192
+ readonly label: "1 line";
2193
+ }, {
2194
+ readonly value: "2";
2195
+ readonly label: "2 lines";
2196
+ }, {
2197
+ readonly value: "3";
2198
+ readonly label: "3 lines";
2199
+ }, {
2200
+ readonly value: "5";
2201
+ readonly label: "5 lines";
2202
+ }, {
2203
+ readonly value: "10";
2204
+ readonly label: "10 lines";
2205
+ }];
2206
+ };
2207
+ };
2208
+ readonly "astGrep.enabled": {
2209
+ readonly type: "boolean";
2210
+ readonly default: true;
2211
+ readonly ui: {
2212
+ readonly tab: "tools";
2213
+ readonly label: "AST Grep";
2214
+ readonly description: "Enable the ast_grep tool for structural AST search";
2215
+ };
2216
+ };
2217
+ readonly "astEdit.enabled": {
2218
+ readonly type: "boolean";
2219
+ readonly default: true;
2220
+ readonly ui: {
2221
+ readonly tab: "tools";
2222
+ readonly label: "AST Edit";
2223
+ readonly description: "Enable the ast_edit tool for structural AST rewrites";
2224
+ };
2225
+ };
2226
+ readonly "irc.enabled": {
2227
+ readonly type: "boolean";
2228
+ readonly default: true;
2229
+ readonly ui: {
2230
+ readonly tab: "tools";
2231
+ readonly label: "IRC";
2232
+ readonly description: "Enable agent-to-agent IRC messaging via the irc tool";
2233
+ };
2234
+ };
2235
+ readonly "renderMermaid.enabled": {
2236
+ readonly type: "boolean";
2237
+ readonly default: false;
2238
+ readonly ui: {
2239
+ readonly tab: "tools";
2240
+ readonly label: "Render Mermaid";
2241
+ readonly description: "Enable the render_mermaid tool for Mermaid-to-ASCII rendering";
2242
+ };
2243
+ };
2244
+ readonly "debug.enabled": {
2245
+ readonly type: "boolean";
2246
+ readonly default: true;
2247
+ readonly ui: {
2248
+ readonly tab: "tools";
2249
+ readonly label: "Debug";
2250
+ readonly description: "Enable the debug tool for DAP-based debugging";
2251
+ };
2252
+ };
2253
+ readonly "calc.enabled": {
2254
+ readonly type: "boolean";
2255
+ readonly default: false;
2256
+ readonly ui: {
2257
+ readonly tab: "tools";
2258
+ readonly label: "Calculator";
2259
+ readonly description: "Enable the calculator tool for basic calculations";
2260
+ };
2261
+ };
2262
+ readonly "recipe.enabled": {
2263
+ readonly type: "boolean";
2264
+ readonly default: true;
2265
+ readonly ui: {
2266
+ readonly tab: "tools";
2267
+ readonly label: "Recipe";
2268
+ readonly description: "Enable the recipe tool when a justfile / package.json / Cargo.toml / Makefile / Taskfile is present";
2269
+ };
2270
+ };
2271
+ readonly "inspect_image.enabled": {
2272
+ readonly type: "boolean";
2273
+ readonly default: false;
2274
+ readonly ui: {
2275
+ readonly tab: "tools";
2276
+ readonly label: "Inspect Image";
2277
+ readonly description: "Enable the inspect_image tool, delegating image understanding to a vision-capable model";
2278
+ };
2279
+ };
2280
+ readonly "checkpoint.enabled": {
2281
+ readonly type: "boolean";
2282
+ readonly default: false;
2283
+ readonly ui: {
2284
+ readonly tab: "tools";
2285
+ readonly label: "Checkpoint/Rewind";
2286
+ readonly description: "Enable the checkpoint and rewind tools for context checkpointing";
2287
+ };
2288
+ };
2289
+ readonly "fetch.enabled": {
2290
+ readonly type: "boolean";
2291
+ readonly default: true;
2292
+ readonly ui: {
2293
+ readonly tab: "tools";
2294
+ readonly label: "Read URLs";
2295
+ readonly description: "Allow the read tool to fetch and process URLs";
2296
+ };
2297
+ };
2298
+ readonly "github.enabled": {
2299
+ readonly type: "boolean";
2300
+ readonly default: false;
2301
+ readonly ui: {
2302
+ readonly tab: "tools";
2303
+ readonly label: "GitHub CLI";
2304
+ readonly description: "Enable the github tool (op-based dispatch for repository, issue, pull request, diff, search, checkout, push, and Actions watch workflows)";
2305
+ };
2306
+ };
2307
+ readonly "github.cache.enabled": {
2308
+ readonly type: "boolean";
2309
+ readonly default: true;
2310
+ readonly ui: {
2311
+ readonly tab: "tools";
2312
+ readonly label: "GitHub view cache";
2313
+ readonly description: "Cache rendered issue/PR view output in ~/.omp/cache/github-cache.db so repeated reads are free";
2314
+ };
2315
+ };
2316
+ readonly "github.cache.softTtlSec": {
2317
+ readonly type: "number";
2318
+ readonly default: 300;
2319
+ readonly ui: {
2320
+ readonly tab: "tools";
2321
+ readonly label: "GitHub cache soft TTL (seconds)";
2322
+ readonly description: "Within this window, cached issue/PR view rows are returned directly. Default 5 minutes.";
2323
+ };
2324
+ };
2325
+ readonly "github.cache.hardTtlSec": {
2326
+ readonly type: "number";
2327
+ readonly default: 604800;
2328
+ readonly ui: {
2329
+ readonly tab: "tools";
2330
+ readonly label: "GitHub cache hard TTL (seconds)";
2331
+ readonly description: "Past soft TTL but within hard TTL, the tool returns the cached row and refreshes it in the background. Past hard TTL, the row is dropped. Default 7 days.";
2332
+ };
2333
+ };
2334
+ readonly "web_search.enabled": {
2335
+ readonly type: "boolean";
2336
+ readonly default: true;
2337
+ readonly ui: {
2338
+ readonly tab: "tools";
2339
+ readonly label: "Web Search";
2340
+ readonly description: "Enable the web_search tool for web searching";
2341
+ };
2342
+ };
2343
+ readonly "browser.enabled": {
2344
+ readonly type: "boolean";
2345
+ readonly default: true;
2346
+ readonly ui: {
2347
+ readonly tab: "tools";
2348
+ readonly label: "Browser";
2349
+ readonly description: "Enable the browser tool (Ulixee Hero)";
2350
+ };
2351
+ };
2352
+ readonly "browser.headless": {
2353
+ readonly type: "boolean";
2354
+ readonly default: true;
2355
+ readonly ui: {
2356
+ readonly tab: "tools";
2357
+ readonly label: "Headless Browser";
2358
+ readonly description: "Launch browser in headless mode (disable to show browser UI)";
2359
+ };
2360
+ };
2361
+ readonly "browser.screenshotDir": {
2362
+ readonly type: "string";
2363
+ readonly default: undefined;
2364
+ readonly ui: {
2365
+ readonly tab: "tools";
2366
+ readonly label: "Screenshot directory";
2367
+ readonly description: "Directory to save screenshots. If unset, screenshots go to a temp file. Supports ~. Examples: ~/Downloads, ~/Desktop, /sdcard/Download (Android)";
2368
+ };
2369
+ };
2370
+ readonly "tools.intentTracing": {
2371
+ readonly type: "boolean";
2372
+ readonly default: true;
2373
+ readonly ui: {
2374
+ readonly tab: "tools";
2375
+ readonly label: "Intent Tracing";
2376
+ readonly description: "Ask the agent to describe the intent of each tool call before executing it";
2377
+ };
2378
+ };
2379
+ readonly "tools.maxTimeout": {
2380
+ readonly type: "number";
2381
+ readonly default: 0;
2382
+ readonly ui: {
2383
+ readonly tab: "tools";
2384
+ readonly label: "Max Tool Timeout";
2385
+ readonly description: "Maximum timeout in seconds the agent can set for any tool (0 = no limit)";
2386
+ readonly options: readonly [{
2387
+ readonly value: "0";
2388
+ readonly label: "No limit";
2389
+ }, {
2390
+ readonly value: "30";
2391
+ readonly label: "30 seconds";
2392
+ }, {
2393
+ readonly value: "60";
2394
+ readonly label: "60 seconds";
2395
+ }, {
2396
+ readonly value: "120";
2397
+ readonly label: "120 seconds";
2398
+ }, {
2399
+ readonly value: "300";
2400
+ readonly label: "5 minutes";
2401
+ }, {
2402
+ readonly value: "600";
2403
+ readonly label: "10 minutes";
2404
+ }];
2405
+ };
2406
+ };
2407
+ readonly "async.enabled": {
2408
+ readonly type: "boolean";
2409
+ readonly default: false;
2410
+ readonly ui: {
2411
+ readonly tab: "tools";
2412
+ readonly label: "Async Execution";
2413
+ readonly description: "Enable async bash commands and background task execution";
2414
+ };
2415
+ };
2416
+ readonly "async.maxJobs": {
2417
+ readonly type: "number";
2418
+ readonly default: 100;
2419
+ };
2420
+ readonly "async.pollWaitDuration": {
2421
+ readonly type: "enum";
2422
+ readonly values: readonly ["5s", "10s", "30s", "1m", "5m"];
2423
+ readonly default: "30s";
2424
+ readonly ui: {
2425
+ readonly tab: "tools";
2426
+ readonly label: "Poll Wait Duration";
2427
+ readonly description: "How long the poll tool waits for background job updates before returning the current state";
2428
+ readonly options: readonly [{
2429
+ readonly value: "5s";
2430
+ readonly label: "5 seconds";
2431
+ }, {
2432
+ readonly value: "10s";
2433
+ readonly label: "10 seconds";
2434
+ }, {
2435
+ readonly value: "30s";
2436
+ readonly label: "30 seconds";
2437
+ readonly description: "Default";
2438
+ }, {
2439
+ readonly value: "1m";
2440
+ readonly label: "1 minute";
2441
+ }, {
2442
+ readonly value: "5m";
2443
+ readonly label: "5 minutes";
2444
+ }];
2445
+ };
2446
+ };
2447
+ readonly "bash.autoBackground.enabled": {
2448
+ readonly type: "boolean";
2449
+ readonly default: false;
2450
+ readonly ui: {
2451
+ readonly tab: "tools";
2452
+ readonly label: "Bash Auto-Background";
2453
+ readonly description: "Automatically background long-running bash commands and deliver the result later";
2454
+ };
2455
+ };
2456
+ readonly "bash.autoBackground.thresholdMs": {
2457
+ readonly type: "number";
2458
+ readonly default: 60000;
2459
+ };
2460
+ readonly "tools.discoveryMode": {
2461
+ readonly type: "enum";
2462
+ readonly values: readonly ["off", "mcp-only", "all"];
2463
+ readonly default: "off";
2464
+ readonly ui: {
2465
+ readonly tab: "tools";
2466
+ readonly label: "Tool Discovery";
2467
+ readonly description: "Hide tools behind a search tool to save tokens. 'mcp-only' hides MCP tools; 'all' hides all non-essential built-ins too.";
2468
+ };
2469
+ };
2470
+ readonly "tools.essentialOverride": {
2471
+ readonly type: "array";
2472
+ readonly default: string[];
2473
+ readonly ui: {
2474
+ readonly tab: "tools";
2475
+ readonly label: "Essential Tools Override";
2476
+ readonly description: "Override the always-loaded built-in tools (default: read, bash, edit). Leave empty to use defaults.";
2477
+ };
2478
+ };
2479
+ readonly "mcp.enableProjectConfig": {
2480
+ readonly type: "boolean";
2481
+ readonly default: true;
2482
+ readonly ui: {
2483
+ readonly tab: "tools";
2484
+ readonly label: "MCP Project Config";
2485
+ readonly description: "Load .mcp.json/mcp.json from project root";
2486
+ };
2487
+ };
2488
+ readonly "mcp.discoveryMode": {
2489
+ readonly type: "boolean";
2490
+ readonly default: false;
2491
+ readonly ui: {
2492
+ readonly tab: "tools";
2493
+ readonly label: "MCP Tool Discovery";
2494
+ readonly description: "Hide MCP tools by default and expose them through a tool discovery tool";
2495
+ };
2496
+ };
2497
+ readonly "mcp.discoveryDefaultServers": {
2498
+ readonly type: "array";
2499
+ readonly default: string[];
2500
+ readonly ui: {
2501
+ readonly tab: "tools";
2502
+ readonly label: "MCP Discovery Default Servers";
2503
+ readonly description: "Keep MCP tools from these servers visible while discovery mode hides other MCP tools";
2504
+ };
2505
+ };
2506
+ readonly "mcp.notifications": {
2507
+ readonly type: "boolean";
2508
+ readonly default: false;
2509
+ readonly ui: {
2510
+ readonly tab: "tools";
2511
+ readonly label: "MCP Update Injection";
2512
+ readonly description: "Inject MCP resource updates into the agent conversation";
2513
+ };
2514
+ };
2515
+ readonly "mcp.notificationDebounceMs": {
2516
+ readonly type: "number";
2517
+ readonly default: 500;
2518
+ readonly ui: {
2519
+ readonly tab: "tools";
2520
+ readonly label: "MCP Notification Debounce";
2521
+ readonly description: "Debounce window for MCP resource update notifications before injecting into conversation";
2522
+ };
2523
+ };
2524
+ readonly "plan.enabled": {
2525
+ readonly type: "boolean";
2526
+ readonly default: true;
2527
+ readonly ui: {
2528
+ readonly tab: "tasks";
2529
+ readonly label: "Plan Mode";
2530
+ readonly description: "Enable plan mode for read-only exploration and planning before execution";
2531
+ };
2532
+ };
2533
+ readonly "goal.enabled": {
2534
+ readonly type: "boolean";
2535
+ readonly default: true;
2536
+ readonly ui: {
2537
+ readonly tab: "tasks";
2538
+ readonly label: "Goal Mode";
2539
+ readonly description: "Enable per-session goal mode and the hidden goal tool";
2540
+ };
2541
+ };
2542
+ readonly "goal.statusInFooter": {
2543
+ readonly type: "boolean";
2544
+ readonly default: true;
2545
+ readonly ui: {
2546
+ readonly tab: "tasks";
2547
+ readonly label: "Goal Status In Footer";
2548
+ readonly description: "Show token budget alongside the goal indicator in the status line";
2549
+ };
2550
+ };
2551
+ readonly "goal.continuationModes": {
2552
+ readonly type: "array";
2553
+ readonly default: readonly ["interactive"];
2554
+ readonly ui: {
2555
+ readonly tab: "tasks";
2556
+ readonly label: "Goal Continuation Modes";
2557
+ readonly description: "Run modes where active goals may auto-continue between turns";
2558
+ };
2559
+ };
2560
+ readonly "task.isolation.mode": {
2561
+ readonly type: "enum";
2562
+ readonly values: readonly ["none", "auto", "apfs", "btrfs", "zfs", "reflink", "overlayfs", "projfs", "block-clone", "rcopy"];
2563
+ readonly default: "none";
2564
+ readonly ui: {
2565
+ readonly tab: "tasks";
2566
+ readonly label: "Isolation Mode";
2567
+ readonly description: 'Isolation backend for subagents. "auto" lets the native PAL pick the best available backend (CoW-aware filesystems, then overlayfs/ProjFS, then a git worktree / recursive-copy fallback).';
2568
+ readonly options: readonly [{
2569
+ readonly value: "none";
2570
+ readonly label: "None";
2571
+ readonly description: "No isolation";
2572
+ }, {
2573
+ readonly value: "auto";
2574
+ readonly label: "Auto";
2575
+ readonly description: "Let the PAL pick the best available backend";
2576
+ }, {
2577
+ readonly value: "apfs";
2578
+ readonly label: "APFS";
2579
+ readonly description: "macOS clonefile reflink (APFS)";
2580
+ }, {
2581
+ readonly value: "btrfs";
2582
+ readonly label: "btrfs";
2583
+ readonly description: "btrfs subvolume snapshot";
2584
+ }, {
2585
+ readonly value: "zfs";
2586
+ readonly label: "ZFS";
2587
+ readonly description: "ZFS snapshot + clone";
2588
+ }, {
2589
+ readonly value: "reflink";
2590
+ readonly label: "Reflink";
2591
+ readonly description: "Linux FICLONE per-file reflink";
2592
+ }, {
2593
+ readonly value: "overlayfs";
2594
+ readonly label: "Overlayfs";
2595
+ readonly description: "Linux kernel overlay (or fuse-overlayfs fallback)";
2596
+ }, {
2597
+ readonly value: "projfs";
2598
+ readonly label: "ProjFS";
2599
+ readonly description: "Windows Projected File System";
2600
+ }, {
2601
+ readonly value: "block-clone";
2602
+ readonly label: "Block clone";
2603
+ readonly description: "Windows FSCTL_DUPLICATE_EXTENTS_TO_FILE (NTFS/ReFS)";
2604
+ }, {
2605
+ readonly value: "rcopy";
2606
+ readonly label: "Recursive copy";
2607
+ readonly description: "git worktree if available, otherwise recursive copy";
2608
+ }];
2609
+ };
2610
+ };
2611
+ readonly "task.isolation.merge": {
2612
+ readonly type: "enum";
2613
+ readonly values: readonly ["patch", "branch"];
2614
+ readonly default: "patch";
2615
+ readonly ui: {
2616
+ readonly tab: "tasks";
2617
+ readonly label: "Isolation Merge Strategy";
2618
+ readonly description: "How isolated task changes are integrated (patch apply or branch merge)";
2619
+ readonly options: readonly [{
2620
+ readonly value: "patch";
2621
+ readonly label: "Patch";
2622
+ readonly description: "Combine diffs and git apply";
2623
+ }, {
2624
+ readonly value: "branch";
2625
+ readonly label: "Branch";
2626
+ readonly description: "Commit per task, merge with --no-ff";
2627
+ }];
2628
+ };
2629
+ };
2630
+ readonly "task.isolation.commits": {
2631
+ readonly type: "enum";
2632
+ readonly values: readonly ["generic", "ai"];
2633
+ readonly default: "generic";
2634
+ readonly ui: {
2635
+ readonly tab: "tasks";
2636
+ readonly label: "Isolation Commit Style";
2637
+ readonly description: "Commit message style for nested repo changes (generic or AI-generated)";
2638
+ readonly options: readonly [{
2639
+ readonly value: "generic";
2640
+ readonly label: "Generic";
2641
+ readonly description: "Static commit message";
2642
+ }, {
2643
+ readonly value: "ai";
2644
+ readonly label: "AI";
2645
+ readonly description: "AI-generated commit message from diff";
2646
+ }];
2647
+ };
2648
+ };
2649
+ readonly "task.eager": {
2650
+ readonly type: "boolean";
2651
+ readonly default: false;
2652
+ readonly ui: {
2653
+ readonly tab: "tasks";
2654
+ readonly label: "Prefer Task Delegation";
2655
+ readonly description: "Encourage the agent to delegate work to subagents unless changes are trivial";
2656
+ };
2657
+ };
2658
+ readonly "task.simple": {
2659
+ readonly type: "enum";
2660
+ readonly values: readonly ["default", "schema-free", "independent"];
2661
+ readonly default: "default";
2662
+ readonly ui: {
2663
+ readonly tab: "tasks";
2664
+ readonly label: "Task Input Mode";
2665
+ readonly description: "How much shared structure the task tool accepts (default, schema-free, or independent)";
2666
+ readonly options: readonly [{
2667
+ readonly value: "default";
2668
+ readonly label: "Default";
2669
+ readonly description: "Shared context and custom task schema are available";
2670
+ }, {
2671
+ readonly value: "schema-free";
2672
+ readonly label: "Schema-free";
2673
+ readonly description: "Shared context stays available, but custom task schema is disabled";
2674
+ }, {
2675
+ readonly value: "independent";
2676
+ readonly label: "Independent";
2677
+ readonly description: "No shared context or custom task schema; each task must stand alone";
2678
+ }];
2679
+ };
2680
+ };
2681
+ readonly "task.maxConcurrency": {
2682
+ readonly type: "number";
2683
+ readonly default: 32;
2684
+ readonly ui: {
2685
+ readonly tab: "tasks";
2686
+ readonly label: "Max Concurrent Tasks";
2687
+ readonly description: "Concurrent limit for subagents";
2688
+ readonly options: readonly [{
2689
+ readonly value: "0";
2690
+ readonly label: "Unlimited";
2691
+ }, {
2692
+ readonly value: "1";
2693
+ readonly label: "1 task";
2694
+ }, {
2695
+ readonly value: "2";
2696
+ readonly label: "2 tasks";
2697
+ }, {
2698
+ readonly value: "4";
2699
+ readonly label: "4 tasks";
2700
+ }, {
2701
+ readonly value: "8";
2702
+ readonly label: "8 tasks";
2703
+ }, {
2704
+ readonly value: "16";
2705
+ readonly label: "16 tasks";
2706
+ }, {
2707
+ readonly value: "32";
2708
+ readonly label: "32 tasks";
2709
+ }, {
2710
+ readonly value: "64";
2711
+ readonly label: "64 tasks";
2712
+ }];
2713
+ };
2714
+ };
2715
+ readonly "task.maxRecursionDepth": {
2716
+ readonly type: "number";
2717
+ readonly default: 2;
2718
+ readonly ui: {
2719
+ readonly tab: "tasks";
2720
+ readonly label: "Max Task Recursion";
2721
+ readonly description: "How many levels deep subagents can spawn their own subagents";
2722
+ readonly options: readonly [{
2723
+ readonly value: "-1";
2724
+ readonly label: "Unlimited";
2725
+ }, {
2726
+ readonly value: "0";
2727
+ readonly label: "None";
2728
+ }, {
2729
+ readonly value: "1";
2730
+ readonly label: "Single";
2731
+ }, {
2732
+ readonly value: "2";
2733
+ readonly label: "Double";
2734
+ }, {
2735
+ readonly value: "3";
2736
+ readonly label: "Triple";
2737
+ }];
2738
+ };
2739
+ };
2740
+ readonly "task.maxRuntimeMs": {
2741
+ readonly type: "number";
2742
+ readonly default: 0;
2743
+ readonly ui: {
2744
+ readonly tab: "tasks";
2745
+ readonly label: "Max Subagent Runtime";
2746
+ readonly description: "Hard wall-clock limit per subagent (ms). 0 disables it. Defense-in-depth against provider-side stream hangs that escape the inference-layer watchdog; triggers a normal subagent abort with a 'timed out' reason.";
2747
+ readonly options: readonly [{
2748
+ readonly value: "0";
2749
+ readonly label: "Unlimited";
2750
+ readonly description: "Default";
2751
+ }, {
2752
+ readonly value: "300000";
2753
+ readonly label: "5 minutes";
2754
+ }, {
2755
+ readonly value: "900000";
2756
+ readonly label: "15 minutes";
2757
+ }, {
2758
+ readonly value: "1800000";
2759
+ readonly label: "30 minutes";
2760
+ }, {
2761
+ readonly value: "3600000";
2762
+ readonly label: "1 hour";
2763
+ }];
2764
+ };
2765
+ };
2766
+ readonly "task.disabledAgents": {
2767
+ readonly type: "array";
2768
+ readonly default: string[];
2769
+ };
2770
+ readonly "task.agentModelOverrides": {
2771
+ readonly type: "record";
2772
+ readonly default: Record<string, string>;
2773
+ };
2774
+ readonly "tasks.todoClearDelay": {
2775
+ readonly type: "number";
2776
+ readonly default: 60;
2777
+ readonly ui: {
2778
+ readonly tab: "tasks";
2779
+ readonly label: "Todo auto-clear delay";
2780
+ readonly description: "How long to wait before removing completed/abandoned tasks from the list";
2781
+ readonly options: readonly [{
2782
+ readonly value: "0";
2783
+ readonly label: "Instant";
2784
+ }, {
2785
+ readonly value: "60";
2786
+ readonly label: "1 minute";
2787
+ readonly description: "Default";
2788
+ }, {
2789
+ readonly value: "300";
2790
+ readonly label: "5 minutes";
2791
+ }, {
2792
+ readonly value: "900";
2793
+ readonly label: "15 minutes";
2794
+ }, {
2795
+ readonly value: "1800";
2796
+ readonly label: "30 minutes";
2797
+ }, {
2798
+ readonly value: "3600";
2799
+ readonly label: "1 hour";
2800
+ }, {
2801
+ readonly value: "-1";
2802
+ readonly label: "Never";
2803
+ }];
2804
+ };
2805
+ };
2806
+ readonly "skills.enabled": {
2807
+ readonly type: "boolean";
2808
+ readonly default: true;
2809
+ };
2810
+ readonly "skills.enableSkillCommands": {
2811
+ readonly type: "boolean";
2812
+ readonly default: true;
2813
+ readonly ui: {
2814
+ readonly tab: "tasks";
2815
+ readonly label: "Skill Commands";
2816
+ readonly description: "Register skills as /skill:name commands";
2817
+ };
2818
+ };
2819
+ readonly "skills.enableCodexUser": {
2820
+ readonly type: "boolean";
2821
+ readonly default: true;
2822
+ };
2823
+ readonly "skills.enableClaudeUser": {
2824
+ readonly type: "boolean";
2825
+ readonly default: true;
2826
+ };
2827
+ readonly "skills.enableClaudeProject": {
2828
+ readonly type: "boolean";
2829
+ readonly default: true;
2830
+ };
2831
+ readonly "skills.enablePiUser": {
2832
+ readonly type: "boolean";
2833
+ readonly default: true;
2834
+ };
2835
+ readonly "skills.enablePiProject": {
2836
+ readonly type: "boolean";
2837
+ readonly default: true;
2838
+ };
2839
+ readonly "skills.customDirectories": {
2840
+ readonly type: "array";
2841
+ readonly default: string[];
2842
+ };
2843
+ readonly "skills.ignoredSkills": {
2844
+ readonly type: "array";
2845
+ readonly default: string[];
2846
+ };
2847
+ readonly "skills.includeSkills": {
2848
+ readonly type: "array";
2849
+ readonly default: string[];
2850
+ };
2851
+ readonly "commands.enableClaudeUser": {
2852
+ readonly type: "boolean";
2853
+ readonly default: true;
2854
+ readonly ui: {
2855
+ readonly tab: "tasks";
2856
+ readonly label: "Claude User Commands";
2857
+ readonly description: "Load commands from ~/.claude/commands/";
2858
+ };
2859
+ };
2860
+ readonly "commands.enableClaudeProject": {
2861
+ readonly type: "boolean";
2862
+ readonly default: true;
2863
+ readonly ui: {
2864
+ readonly tab: "tasks";
2865
+ readonly label: "Claude Project Commands";
2866
+ readonly description: "Load commands from .claude/commands/";
2867
+ };
2868
+ };
2869
+ readonly "commands.enableOpencodeUser": {
2870
+ readonly type: "boolean";
2871
+ readonly default: true;
2872
+ readonly ui: {
2873
+ readonly tab: "tasks";
2874
+ readonly label: "OpenCode User Commands";
2875
+ readonly description: "Load commands from ~/.config/opencode/commands/";
2876
+ };
2877
+ };
2878
+ readonly "commands.enableOpencodeProject": {
2879
+ readonly type: "boolean";
2880
+ readonly default: true;
2881
+ readonly ui: {
2882
+ readonly tab: "tasks";
2883
+ readonly label: "OpenCode Project Commands";
2884
+ readonly description: "Load commands from .opencode/commands/";
2885
+ };
2886
+ };
2887
+ readonly "secrets.enabled": {
2888
+ readonly type: "boolean";
2889
+ readonly default: false;
2890
+ readonly ui: {
2891
+ readonly tab: "providers";
2892
+ readonly label: "Hide Secrets";
2893
+ readonly description: "Obfuscate secrets before sending to AI providers";
2894
+ };
2895
+ };
2896
+ readonly "providers.webSearch": {
2897
+ readonly type: "enum";
2898
+ readonly values: readonly ["auto", "exa", "brave", "jina", "kimi", "zai", "perplexity", "anthropic", "gemini", "codex", "tavily", "kagi", "synthetic", "parallel", "searxng"];
2899
+ readonly default: "auto";
2900
+ readonly ui: {
2901
+ readonly tab: "providers";
2902
+ readonly label: "Web Search Provider";
2903
+ readonly description: "Provider for web search tool";
2904
+ readonly options: readonly [{
2905
+ readonly value: "auto";
2906
+ readonly label: "Auto";
2907
+ readonly description: "Preferred web-search provider";
2908
+ }, {
2909
+ readonly value: "exa";
2910
+ readonly label: "Exa";
2911
+ readonly description: "Uses Exa API when EXA_API_KEY is set; falls back to Exa MCP";
2912
+ }, {
2913
+ readonly value: "brave";
2914
+ readonly label: "Brave";
2915
+ readonly description: "Requires BRAVE_API_KEY";
2916
+ }, {
2917
+ readonly value: "jina";
2918
+ readonly label: "Jina";
2919
+ readonly description: "Requires JINA_API_KEY";
2920
+ }, {
2921
+ readonly value: "kimi";
2922
+ readonly label: "Kimi";
2923
+ readonly description: "Requires MOONSHOT_SEARCH_API_KEY or MOONSHOT_API_KEY";
2924
+ }, {
2925
+ readonly value: "perplexity";
2926
+ readonly label: "Perplexity";
2927
+ readonly description: "Requires PERPLEXITY_COOKIES or PERPLEXITY_API_KEY";
2928
+ }, {
2929
+ readonly value: "anthropic";
2930
+ readonly label: "Anthropic";
2931
+ readonly description: "Uses Anthropic web search";
2932
+ }, {
2933
+ readonly value: "zai";
2934
+ readonly label: "Z.AI";
2935
+ readonly description: "Calls Z.AI webSearchPrime MCP";
2936
+ }, {
2937
+ readonly value: "tavily";
2938
+ readonly label: "Tavily";
2939
+ readonly description: "Requires TAVILY_API_KEY";
2940
+ }, {
2941
+ readonly value: "kagi";
2942
+ readonly label: "Kagi";
2943
+ readonly description: "Requires KAGI_API_KEY and Kagi Search API beta access";
2944
+ }, {
2945
+ readonly value: "synthetic";
2946
+ readonly label: "Synthetic";
2947
+ readonly description: "Requires SYNTHETIC_API_KEY";
2948
+ }, {
2949
+ readonly value: "parallel";
2950
+ readonly label: "Parallel";
2951
+ readonly description: "Requires PARALLEL_API_KEY";
2952
+ }, {
2953
+ readonly value: "searxng";
2954
+ readonly label: "SearXNG";
2955
+ readonly description: "Requires SEARXNG_ENDPOINT or searxng.endpoint";
2956
+ }];
2957
+ };
2958
+ };
2959
+ readonly "providers.image": {
2960
+ readonly type: "enum";
2961
+ readonly values: readonly ["auto", "openai", "gemini", "openrouter"];
2962
+ readonly default: "auto";
2963
+ readonly ui: {
2964
+ readonly tab: "providers";
2965
+ readonly label: "Image Provider";
2966
+ readonly description: "Provider for image generation tool";
2967
+ readonly options: readonly [{
2968
+ readonly value: "auto";
2969
+ readonly label: "Auto";
2970
+ readonly description: "Priority: GPT model image tool > Antigravity > OpenRouter > Gemini";
2971
+ }, {
2972
+ readonly value: "openai";
2973
+ readonly label: "OpenAI";
2974
+ readonly description: "Uses the active GPT Responses/Codex model";
2975
+ }, {
2976
+ readonly value: "gemini";
2977
+ readonly label: "Gemini";
2978
+ readonly description: "Requires GEMINI_API_KEY";
2979
+ }, {
2980
+ readonly value: "openrouter";
2981
+ readonly label: "OpenRouter";
2982
+ readonly description: "Requires OPENROUTER_API_KEY";
2983
+ }];
2984
+ };
2985
+ };
2986
+ readonly "providers.kimiApiFormat": {
2987
+ readonly type: "enum";
2988
+ readonly values: readonly ["openai", "anthropic"];
2989
+ readonly default: "anthropic";
2990
+ readonly ui: {
2991
+ readonly tab: "providers";
2992
+ readonly label: "Kimi API Format";
2993
+ readonly description: "API format for Kimi Code provider";
2994
+ readonly options: readonly [{
2995
+ readonly value: "openai";
2996
+ readonly label: "OpenAI";
2997
+ readonly description: "api.kimi.com";
2998
+ }, {
2999
+ readonly value: "anthropic";
3000
+ readonly label: "Anthropic";
3001
+ readonly description: "api.moonshot.ai";
3002
+ }];
3003
+ };
3004
+ };
3005
+ readonly "providers.openaiWebsockets": {
3006
+ readonly type: "enum";
3007
+ readonly values: readonly ["auto", "off", "on"];
3008
+ readonly default: "auto";
3009
+ readonly ui: {
3010
+ readonly tab: "providers";
3011
+ readonly label: "OpenAI WebSockets";
3012
+ readonly description: "Websocket policy for OpenAI Codex models (auto uses model defaults, on forces, off disables)";
3013
+ readonly options: readonly [{
3014
+ readonly value: "auto";
3015
+ readonly label: "Auto";
3016
+ readonly description: "Use model/provider default websocket behavior";
3017
+ }, {
3018
+ readonly value: "off";
3019
+ readonly label: "Off";
3020
+ readonly description: "Disable websockets for OpenAI Codex models";
3021
+ }, {
3022
+ readonly value: "on";
3023
+ readonly label: "On";
3024
+ readonly description: "Force websockets for OpenAI Codex models";
3025
+ }];
3026
+ };
3027
+ };
3028
+ readonly "providers.parallelFetch": {
3029
+ readonly type: "boolean";
3030
+ readonly default: true;
3031
+ readonly ui: {
3032
+ readonly tab: "providers";
3033
+ readonly label: "Parallel Fetch";
3034
+ readonly description: "Use Parallel extract API for URL fetching when credentials are available";
3035
+ };
3036
+ };
3037
+ readonly "exa.enabled": {
3038
+ readonly type: "boolean";
3039
+ readonly default: true;
3040
+ readonly ui: {
3041
+ readonly tab: "providers";
3042
+ readonly label: "Exa";
3043
+ readonly description: "Master toggle for all Exa search tools";
3044
+ };
3045
+ };
3046
+ readonly "exa.enableSearch": {
3047
+ readonly type: "boolean";
3048
+ readonly default: true;
3049
+ readonly ui: {
3050
+ readonly tab: "providers";
3051
+ readonly label: "Exa Search";
3052
+ readonly description: "Basic search, deep search, code search, crawl";
3053
+ };
3054
+ };
3055
+ readonly "exa.enableResearcher": {
3056
+ readonly type: "boolean";
3057
+ readonly default: false;
3058
+ readonly ui: {
3059
+ readonly tab: "providers";
3060
+ readonly label: "Exa Researcher";
3061
+ readonly description: "AI-powered deep research tasks";
3062
+ };
3063
+ };
3064
+ readonly "exa.enableWebsets": {
3065
+ readonly type: "boolean";
3066
+ readonly default: false;
3067
+ readonly ui: {
3068
+ readonly tab: "providers";
3069
+ readonly label: "Exa Websets";
3070
+ readonly description: "Webset management and enrichment tools";
3071
+ };
3072
+ };
3073
+ readonly "searxng.endpoint": {
3074
+ readonly type: "string";
3075
+ readonly default: undefined;
3076
+ readonly ui: {
3077
+ readonly tab: "providers";
3078
+ readonly label: "SearXNG Endpoint";
3079
+ readonly description: "Self-hosted search base URL";
3080
+ };
3081
+ };
3082
+ readonly "searxng.token": {
3083
+ readonly type: "string";
3084
+ readonly default: undefined;
3085
+ };
3086
+ readonly "searxng.basicUsername": {
3087
+ readonly type: "string";
3088
+ readonly default: undefined;
3089
+ };
3090
+ readonly "searxng.basicPassword": {
3091
+ readonly type: "string";
3092
+ readonly default: undefined;
3093
+ };
3094
+ readonly "searxng.categories": {
3095
+ readonly type: "string";
3096
+ readonly default: undefined;
3097
+ };
3098
+ readonly "searxng.language": {
3099
+ readonly type: "string";
3100
+ readonly default: undefined;
3101
+ };
3102
+ readonly "commit.mapReduceEnabled": {
3103
+ readonly type: "boolean";
3104
+ readonly default: true;
3105
+ };
3106
+ readonly "commit.mapReduceMinFiles": {
3107
+ readonly type: "number";
3108
+ readonly default: 4;
3109
+ };
3110
+ readonly "commit.mapReduceMaxFileTokens": {
3111
+ readonly type: "number";
3112
+ readonly default: 50000;
3113
+ };
3114
+ readonly "commit.mapReduceTimeoutMs": {
3115
+ readonly type: "number";
3116
+ readonly default: 120000;
3117
+ };
3118
+ readonly "commit.mapReduceMaxConcurrency": {
3119
+ readonly type: "number";
3120
+ readonly default: 5;
3121
+ };
3122
+ readonly "commit.changelogMaxDiffChars": {
3123
+ readonly type: "number";
3124
+ readonly default: 120000;
3125
+ };
3126
+ readonly "dev.autoqa": {
3127
+ readonly type: "boolean";
3128
+ readonly default: false;
3129
+ readonly ui: {
3130
+ readonly tab: "tools";
3131
+ readonly label: "Auto QA";
3132
+ readonly description: "Enable automated tool issue reporting (report_tool_issue) for all agents";
3133
+ };
3134
+ };
3135
+ readonly "dev.autoqaPush.endpoint": {
3136
+ readonly type: "string";
3137
+ readonly default: "https://qa.omp.sh/v1/grievances";
3138
+ readonly ui: {
3139
+ readonly tab: "tools";
3140
+ readonly label: "Auto QA Push Endpoint";
3141
+ readonly description: "Full URL that receives the JSON payload (default ships to https://qa.omp.sh/v1/grievances)";
3142
+ };
3143
+ };
3144
+ readonly "dev.autoqaPush.token": {
3145
+ readonly type: "string";
3146
+ readonly default: undefined;
3147
+ };
3148
+ /**
3149
+ * User decision on sharing automatic `report_tool_issue` grievances.
3150
+ *
3151
+ * - `"unset"` — never asked; the first `report_tool_issue` invocation
3152
+ * pops a consent dialog and persists the answer here.
3153
+ * - `"granted"` — record and (when push is configured) ship grievances.
3154
+ * - `"denied"` — silently no-op every `report_tool_issue` call.
3155
+ *
3156
+ * Owned by `packages/coding-agent/src/tools/report-tool-issue.ts` via the
3157
+ * process-global consent handler registered by `InteractiveMode`.
3158
+ */
3159
+ readonly "dev.autoqa.consent": {
3160
+ readonly type: "enum";
3161
+ readonly values: readonly ["unset", "granted", "denied"];
3162
+ readonly default: "unset";
3163
+ };
3164
+ readonly "thinkingBudgets.minimal": {
3165
+ readonly type: "number";
3166
+ readonly default: 1024;
3167
+ };
3168
+ readonly "thinkingBudgets.low": {
3169
+ readonly type: "number";
3170
+ readonly default: 2048;
3171
+ };
3172
+ readonly "thinkingBudgets.medium": {
3173
+ readonly type: "number";
3174
+ readonly default: 8192;
3175
+ };
3176
+ readonly "thinkingBudgets.high": {
3177
+ readonly type: "number";
3178
+ readonly default: 16384;
3179
+ };
3180
+ readonly "thinkingBudgets.xhigh": {
3181
+ readonly type: "number";
3182
+ readonly default: 32768;
3183
+ };
3184
+ };
3185
+ type Schema = typeof SETTINGS_SCHEMA;
3186
+ /** All valid setting paths */
3187
+ export type SettingPath = keyof Schema;
3188
+ /** Infer the value type for a setting path */
3189
+ export type SettingValue<P extends SettingPath> = Schema[P] extends {
3190
+ type: "boolean";
3191
+ } ? boolean : Schema[P] extends {
3192
+ type: "string";
3193
+ } ? string | undefined : Schema[P] extends {
3194
+ type: "number";
3195
+ } ? number : Schema[P] extends {
3196
+ type: "enum";
3197
+ values: infer V;
3198
+ } ? V extends readonly string[] ? V[number] : never : Schema[P] extends {
3199
+ type: "array";
3200
+ default: infer D;
3201
+ } ? D : Schema[P] extends {
3202
+ type: "record";
3203
+ default: infer D;
3204
+ } ? D : never;
3205
+ /** Get the default value for a setting path */
3206
+ export declare function getDefault<P extends SettingPath>(path: P): SettingValue<P>;
3207
+ /** Check if a path has UI metadata (should appear in settings panel) */
3208
+ export declare function hasUi(path: SettingPath): boolean;
3209
+ /** Get UI metadata for a path (undefined if no UI) */
3210
+ export declare function getUi(path: SettingPath): AnyUiMetadata | undefined;
3211
+ /** Get all paths for a specific tab */
3212
+ export declare function getPathsForTab(tab: SettingTab): SettingPath[];
3213
+ /** Get the type of a setting */
3214
+ export declare function getType(path: SettingPath): SettingDef["type"];
3215
+ /** Get enum values for an enum setting */
3216
+ export declare function getEnumValues(path: SettingPath): readonly string[] | undefined;
3217
+ /** Status line preset - derived from schema */
3218
+ export type StatusLinePreset = SettingValue<"statusLine.preset">;
3219
+ /** Status line separator style - derived from schema */
3220
+ export type StatusLineSeparatorStyle = SettingValue<"statusLine.separator">;
3221
+ /** Tree selector filter mode - derived from schema */
3222
+ export type TreeFilterMode = SettingValue<"treeFilterMode">;
3223
+ export interface CompactionSettings {
3224
+ enabled: boolean;
3225
+ strategy: "context-full" | "handoff" | "off";
3226
+ thresholdPercent: number;
3227
+ thresholdTokens: number;
3228
+ reserveTokens: number;
3229
+ keepRecentTokens: number;
3230
+ handoffSaveToDisk: boolean;
3231
+ autoContinue: boolean;
3232
+ remoteEnabled: boolean;
3233
+ remoteEndpoint: string | undefined;
3234
+ idleEnabled: boolean;
3235
+ idleThresholdTokens: number;
3236
+ idleTimeoutSeconds: number;
3237
+ }
3238
+ export interface ContextPromotionSettings {
3239
+ enabled: boolean;
3240
+ }
3241
+ export interface RetrySettings {
3242
+ enabled: boolean;
3243
+ maxRetries: number;
3244
+ baseDelayMs: number;
3245
+ }
3246
+ export interface MemoriesSettings {
3247
+ enabled: boolean;
3248
+ maxRolloutsPerStartup: number;
3249
+ maxRolloutAgeDays: number;
3250
+ minRolloutIdleHours: number;
3251
+ threadScanLimit: number;
3252
+ maxRawMemoriesForGlobal: number;
3253
+ stage1Concurrency: number;
3254
+ stage1LeaseSeconds: number;
3255
+ stage1RetryDelaySeconds: number;
3256
+ phase2LeaseSeconds: number;
3257
+ phase2RetryDelaySeconds: number;
3258
+ phase2HeartbeatSeconds: number;
3259
+ rolloutPayloadPercent: number;
3260
+ fallbackTokenLimit: number;
3261
+ summaryInjectionTokenLimit: number;
3262
+ }
3263
+ export interface TodoCompletionSettings {
3264
+ enabled: boolean;
3265
+ maxReminders: number;
3266
+ }
3267
+ export interface BranchSummarySettings {
3268
+ enabled: boolean;
3269
+ reserveTokens: number;
3270
+ }
3271
+ export interface SkillsSettings {
3272
+ enabled?: boolean;
3273
+ enableSkillCommands?: boolean;
3274
+ enableCodexUser?: boolean;
3275
+ enableClaudeUser?: boolean;
3276
+ enableClaudeProject?: boolean;
3277
+ enablePiUser?: boolean;
3278
+ enablePiProject?: boolean;
3279
+ customDirectories?: string[];
3280
+ ignoredSkills?: string[];
3281
+ includeSkills?: string[];
3282
+ disabledExtensions?: string[];
3283
+ }
3284
+ export interface CommitSettings {
3285
+ mapReduceEnabled: boolean;
3286
+ mapReduceMinFiles: number;
3287
+ mapReduceMaxFileTokens: number;
3288
+ mapReduceTimeoutMs: number;
3289
+ mapReduceMaxConcurrency: number;
3290
+ changelogMaxDiffChars: number;
3291
+ }
3292
+ export interface TtsrSettings {
3293
+ enabled: boolean;
3294
+ contextMode: "discard" | "keep";
3295
+ interruptMode: "never" | "prose-only" | "tool-only" | "always";
3296
+ repeatMode: "once" | "after-gap";
3297
+ repeatGap: number;
3298
+ }
3299
+ export interface ExaSettings {
3300
+ enabled: boolean;
3301
+ enableSearch: boolean;
3302
+ enableResearcher: boolean;
3303
+ enableWebsets: boolean;
3304
+ }
3305
+ export interface StatusLineSettings {
3306
+ preset: StatusLinePreset;
3307
+ separator: StatusLineSeparatorStyle;
3308
+ showHookStatus: boolean;
3309
+ leftSegments: StatusLineSegmentId[];
3310
+ rightSegments: StatusLineSegmentId[];
3311
+ segmentOptions: Record<string, unknown>;
3312
+ }
3313
+ export interface ThinkingBudgetsSettings {
3314
+ minimal: number;
3315
+ low: number;
3316
+ medium: number;
3317
+ high: number;
3318
+ xhigh: number;
3319
+ }
3320
+ export interface SttSettings {
3321
+ enabled: boolean;
3322
+ language: string | undefined;
3323
+ modelName: string;
3324
+ whisperPath: string | undefined;
3325
+ modelPath: string | undefined;
3326
+ }
3327
+ export interface BashInterceptorRule {
3328
+ pattern: string;
3329
+ flags?: string;
3330
+ tool: string;
3331
+ message: string;
3332
+ allowSubcommands?: string[];
3333
+ }
3334
+ export interface ShellMinimizerSettings {
3335
+ enabled: boolean;
3336
+ settingsPath: string | undefined;
3337
+ only: string[];
3338
+ except: string[];
3339
+ maxCaptureBytes: number;
3340
+ }
3341
+ /** Map group prefix -> typed settings interface */
3342
+ export interface GroupTypeMap {
3343
+ compaction: CompactionSettings;
3344
+ contextPromotion: ContextPromotionSettings;
3345
+ retry: RetrySettings;
3346
+ memories: MemoriesSettings;
3347
+ branchSummary: BranchSummarySettings;
3348
+ skills: SkillsSettings;
3349
+ commit: CommitSettings;
3350
+ ttsr: TtsrSettings;
3351
+ exa: ExaSettings;
3352
+ statusLine: StatusLineSettings;
3353
+ thinkingBudgets: ThinkingBudgetsSettings;
3354
+ stt: SttSettings;
3355
+ modelRoles: Record<string, string>;
3356
+ modelTags: ModelTagsSettings;
3357
+ cycleOrder: string[];
3358
+ shellMinimizer: ShellMinimizerSettings;
3359
+ }
3360
+ export type GroupPrefix = keyof GroupTypeMap;
3361
+ export {};