@oh-my-pi/pi-coding-agent 15.10.10 → 15.10.11

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 (345) hide show
  1. package/CHANGELOG.md +95 -4
  2. package/dist/cli.js +23087 -0
  3. package/dist/tokenizers.linux-x64-gnu-xcjh3jwk.node +0 -0
  4. package/dist/types/async/job-manager.d.ts +18 -0
  5. package/dist/types/cli/args.d.ts +1 -1
  6. package/dist/types/cli/dry-balance-cli.d.ts +1 -1
  7. package/dist/types/cli/gallery-cli.d.ts +1 -1
  8. package/dist/types/cli/gallery-fixtures/types.d.ts +1 -1
  9. package/dist/types/cli/usage-cli.d.ts +72 -0
  10. package/dist/types/commands/launch.d.ts +1 -1
  11. package/dist/types/commands/read.d.ts +1 -1
  12. package/dist/types/commands/usage.d.ts +25 -0
  13. package/dist/types/config/append-only-context-mode.d.ts +2 -1
  14. package/dist/types/config/model-discovery.d.ts +55 -0
  15. package/dist/types/config/model-registry.d.ts +7 -219
  16. package/dist/types/config/model-resolver.d.ts +16 -10
  17. package/dist/types/config/model-roles.d.ts +28 -0
  18. package/dist/types/config/models-config-schema.d.ts +523 -42
  19. package/dist/types/config/models-config.d.ts +385 -0
  20. package/dist/types/config/settings-schema.d.ts +12 -7
  21. package/dist/types/config/settings.d.ts +1 -1
  22. package/dist/types/debug/log-viewer.d.ts +1 -1
  23. package/dist/types/debug/raw-sse.d.ts +1 -1
  24. package/dist/types/eval/backend.d.ts +0 -2
  25. package/dist/types/eval/idle-timeout.d.ts +0 -4
  26. package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -6
  27. package/dist/types/export/html/template.generated.d.ts +1 -1
  28. package/dist/types/extensibility/extensions/types.d.ts +3 -3
  29. package/dist/types/hindsight/mental-models.d.ts +17 -8
  30. package/dist/types/internal-urls/artifact-protocol.d.ts +2 -2
  31. package/dist/types/internal-urls/types.d.ts +1 -1
  32. package/dist/types/lsp/edits.d.ts +9 -0
  33. package/dist/types/lsp/index.d.ts +2 -2
  34. package/dist/types/lsp/types.d.ts +2 -0
  35. package/dist/types/lsp/utils.d.ts +3 -0
  36. package/dist/types/mcp/json-rpc.d.ts +5 -0
  37. package/dist/types/mnemopi/state.d.ts +11 -1
  38. package/dist/types/modes/components/agent-dashboard.d.ts +1 -1
  39. package/dist/types/modes/components/assistant-message.d.ts +3 -1
  40. package/dist/types/modes/components/bash-execution.d.ts +1 -1
  41. package/dist/types/modes/components/copy-selector.d.ts +1 -1
  42. package/dist/types/modes/components/dynamic-border.d.ts +1 -1
  43. package/dist/types/modes/components/extensions/extension-dashboard.d.ts +1 -1
  44. package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
  45. package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
  46. package/dist/types/modes/components/footer.d.ts +1 -1
  47. package/dist/types/modes/components/hook-editor.d.ts +5 -0
  48. package/dist/types/modes/components/hook-input.d.ts +4 -0
  49. package/dist/types/modes/components/hook-selector.d.ts +1 -1
  50. package/dist/types/modes/components/model-selector.d.ts +1 -1
  51. package/dist/types/modes/components/plan-review-overlay.d.ts +1 -1
  52. package/dist/types/modes/components/session-observer-overlay.d.ts +1 -1
  53. package/dist/types/modes/components/session-selector.d.ts +1 -1
  54. package/dist/types/modes/components/status-line/component.d.ts +1 -1
  55. package/dist/types/modes/components/tiny-title-download-progress.d.ts +1 -1
  56. package/dist/types/modes/components/transcript-container.d.ts +25 -6
  57. package/dist/types/modes/components/tree-selector.d.ts +1 -1
  58. package/dist/types/modes/components/user-message-selector.d.ts +1 -1
  59. package/dist/types/modes/components/user-message.d.ts +2 -1
  60. package/dist/types/modes/components/visual-truncate.d.ts +1 -1
  61. package/dist/types/modes/components/welcome.d.ts +19 -3
  62. package/dist/types/modes/controllers/mcp-command-controller.d.ts +1 -1
  63. package/dist/types/modes/controllers/streaming-reveal.d.ts +1 -1
  64. package/dist/types/modes/interactive-mode.d.ts +1 -1
  65. package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +1 -1
  66. package/dist/types/modes/setup-wizard/scenes/types.d.ts +1 -1
  67. package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +1 -1
  68. package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +1 -1
  69. package/dist/types/modes/types.d.ts +2 -1
  70. package/dist/types/session/agent-session.d.ts +1 -1
  71. package/dist/types/session/auth-broker-config.d.ts +4 -0
  72. package/dist/types/session/session-manager.d.ts +1 -1
  73. package/dist/types/slash-commands/helpers/stats-dashboard.d.ts +13 -0
  74. package/dist/types/ssh/connection-manager.d.ts +8 -0
  75. package/dist/types/task/parallel.d.ts +2 -2
  76. package/dist/types/task/worktree.d.ts +2 -0
  77. package/dist/types/tools/ask.d.ts +4 -0
  78. package/dist/types/tools/conflict-detect.d.ts +16 -0
  79. package/dist/types/tools/github-cache.d.ts +7 -0
  80. package/dist/types/tools/sqlite-reader.d.ts +3 -0
  81. package/dist/types/tui/output-block.d.ts +3 -3
  82. package/dist/types/utils/changelog.d.ts +8 -0
  83. package/dist/types/web/scrapers/readthedocs.d.ts +3 -0
  84. package/dist/types/web/scrapers/types.d.ts +12 -0
  85. package/dist/types/web/search/providers/codex.d.ts +1 -1
  86. package/dist/types/web/search/providers/gemini.d.ts +1 -1
  87. package/examples/extensions/tools.ts +5 -4
  88. package/package.json +14 -11
  89. package/scripts/build-binary.ts +18 -23
  90. package/scripts/bundle-dist.ts +81 -0
  91. package/scripts/{dev-launch → omp} +1 -1
  92. package/scripts/{dev-launch-preload.ts → omp.ts} +1 -1
  93. package/src/async/job-manager.ts +57 -3
  94. package/src/autoresearch/dashboard.ts +1 -1
  95. package/src/autoresearch/prompt-setup.md +6 -6
  96. package/src/autoresearch/prompt.md +6 -6
  97. package/src/capability/fs.ts +10 -0
  98. package/src/cli/args.ts +1 -1
  99. package/src/cli/auth-gateway-cli.ts +1 -3
  100. package/src/cli/dry-balance-cli.ts +1 -1
  101. package/src/cli/gallery-cli.ts +1 -1
  102. package/src/cli/gallery-fixtures/fs.ts +1 -1
  103. package/src/cli/gallery-fixtures/types.ts +5 -1
  104. package/src/cli/list-models.ts +2 -1
  105. package/src/cli/usage-cli.ts +603 -0
  106. package/src/cli-commands.ts +1 -0
  107. package/src/cli.ts +69 -5
  108. package/src/commands/complete.ts +1 -1
  109. package/src/commands/launch.ts +1 -1
  110. package/src/commands/read.ts +6 -3
  111. package/src/commands/usage.ts +35 -0
  112. package/src/commit/agentic/agent.ts +1 -1
  113. package/src/commit/model-selection.ts +1 -1
  114. package/src/config/append-only-context-mode.ts +6 -12
  115. package/src/config/model-discovery.ts +554 -0
  116. package/src/config/model-registry.ts +231 -1019
  117. package/src/config/model-resolver.ts +113 -156
  118. package/src/config/model-roles.ts +74 -0
  119. package/src/config/models-config-schema.ts +57 -8
  120. package/src/config/models-config.ts +129 -0
  121. package/src/config/settings-schema.ts +18 -4
  122. package/src/config/settings.ts +37 -1
  123. package/src/dap/client.ts +124 -37
  124. package/src/dap/session.ts +259 -158
  125. package/src/debug/log-viewer.ts +1 -1
  126. package/src/debug/raw-sse.ts +1 -1
  127. package/src/edit/diff.ts +47 -3
  128. package/src/edit/hashline/block-resolver.ts +20 -1
  129. package/src/edit/hashline/diff.ts +36 -1
  130. package/src/edit/hashline/execute.ts +8 -2
  131. package/src/edit/index.ts +16 -1
  132. package/src/edit/modes/patch.ts +52 -0
  133. package/src/edit/modes/replace.ts +56 -22
  134. package/src/edit/notebook.ts +22 -2
  135. package/src/edit/renderer.ts +36 -10
  136. package/src/eval/__tests__/completion-bridge.test.ts +1 -1
  137. package/src/eval/backend.ts +0 -2
  138. package/src/eval/completion-bridge.ts +2 -1
  139. package/src/eval/idle-timeout.ts +2 -9
  140. package/src/eval/js/context-manager.ts +6 -8
  141. package/src/eval/js/executor.ts +6 -2
  142. package/src/eval/js/index.ts +0 -2
  143. package/src/eval/js/shared/helpers.ts +5 -6
  144. package/src/eval/js/shared/local-module-loader.ts +1 -1
  145. package/src/eval/js/shared/prelude.txt +62 -1
  146. package/src/eval/js/shared/rewrite-imports.ts +40 -22
  147. package/src/eval/js/shared/runtime.ts +1 -1
  148. package/src/eval/py/index.ts +0 -2
  149. package/src/eval/py/kernel.ts +19 -0
  150. package/src/eval/py/runner.py +107 -3
  151. package/src/exec/bash-executor.ts +3 -1
  152. package/src/export/html/template.generated.ts +1 -1
  153. package/src/export/html/template.js +3 -1
  154. package/src/extensibility/extensions/types.ts +3 -2
  155. package/src/extensibility/plugins/legacy-pi-compat.ts +20 -3
  156. package/src/hindsight/mental-models.ts +59 -12
  157. package/src/hindsight/state.ts +6 -1
  158. package/src/internal-urls/artifact-protocol.ts +11 -2
  159. package/src/internal-urls/docs-index.generated.ts +8 -8
  160. package/src/internal-urls/issue-pr-protocol.ts +12 -5
  161. package/src/internal-urls/router.ts +1 -1
  162. package/src/internal-urls/types.ts +1 -1
  163. package/src/lib/xai-http.ts +1 -1
  164. package/src/lsp/client.ts +118 -38
  165. package/src/lsp/clients/biome-client.ts +101 -39
  166. package/src/lsp/edits.ts +143 -95
  167. package/src/lsp/index.ts +31 -22
  168. package/src/lsp/render.ts +1 -1
  169. package/src/lsp/types.ts +2 -0
  170. package/src/lsp/utils.ts +28 -10
  171. package/src/main.ts +165 -17
  172. package/src/mcp/json-rpc.ts +35 -5
  173. package/src/mcp/transports/stdio.ts +7 -1
  174. package/src/memories/index.ts +2 -1
  175. package/src/mnemopi/backend.ts +25 -3
  176. package/src/mnemopi/state.ts +38 -2
  177. package/src/modes/components/agent-dashboard.ts +10 -7
  178. package/src/modes/components/assistant-message.ts +19 -13
  179. package/src/modes/components/bash-execution.ts +1 -1
  180. package/src/modes/components/copy-selector.ts +1 -1
  181. package/src/modes/components/diff.ts +13 -2
  182. package/src/modes/components/dynamic-border.ts +12 -3
  183. package/src/modes/components/extensions/extension-dashboard.ts +8 -5
  184. package/src/modes/components/extensions/extension-list.ts +1 -1
  185. package/src/modes/components/extensions/inspector-panel.ts +1 -1
  186. package/src/modes/components/footer.ts +1 -1
  187. package/src/modes/components/history-search.ts +1 -1
  188. package/src/modes/components/hook-editor.ts +8 -0
  189. package/src/modes/components/hook-input.ts +8 -0
  190. package/src/modes/components/hook-selector.ts +2 -2
  191. package/src/modes/components/model-selector.ts +4 -2
  192. package/src/modes/components/plan-review-overlay.ts +1 -1
  193. package/src/modes/components/session-observer-overlay.ts +2 -2
  194. package/src/modes/components/session-selector.ts +1 -1
  195. package/src/modes/components/settings-selector.ts +5 -1
  196. package/src/modes/components/status-line/component.ts +1 -1
  197. package/src/modes/components/tiny-title-download-progress.ts +1 -1
  198. package/src/modes/components/transcript-container.ts +258 -53
  199. package/src/modes/components/tree-selector.ts +3 -3
  200. package/src/modes/components/user-message-selector.ts +1 -1
  201. package/src/modes/components/user-message.ts +17 -5
  202. package/src/modes/components/visual-truncate.ts +1 -1
  203. package/src/modes/components/welcome.ts +108 -26
  204. package/src/modes/controllers/command-controller.ts +10 -3
  205. package/src/modes/controllers/event-controller.ts +73 -4
  206. package/src/modes/controllers/input-controller.ts +1 -1
  207. package/src/modes/controllers/mcp-command-controller.ts +1 -1
  208. package/src/modes/controllers/selector-controller.ts +1 -1
  209. package/src/modes/controllers/streaming-reveal.ts +85 -18
  210. package/src/modes/interactive-mode.ts +3 -9
  211. package/src/modes/setup-wizard/scenes/glyph.ts +1 -1
  212. package/src/modes/setup-wizard/scenes/providers.ts +1 -1
  213. package/src/modes/setup-wizard/scenes/sign-in.ts +1 -1
  214. package/src/modes/setup-wizard/scenes/theme.ts +1 -1
  215. package/src/modes/setup-wizard/scenes/types.ts +1 -1
  216. package/src/modes/setup-wizard/scenes/web-search.ts +1 -1
  217. package/src/modes/setup-wizard/wizard-overlay.ts +1 -1
  218. package/src/modes/types.ts +2 -1
  219. package/src/prompts/agents/explore.md +2 -2
  220. package/src/prompts/agents/librarian.md +1 -2
  221. package/src/prompts/agents/oracle.md +1 -1
  222. package/src/prompts/agents/plan.md +5 -5
  223. package/src/prompts/agents/task.md +5 -5
  224. package/src/prompts/ci-green-request.md +5 -7
  225. package/src/prompts/goals/goal-budget-limit.md +2 -2
  226. package/src/prompts/goals/goal-continuation.md +4 -4
  227. package/src/prompts/goals/goal-mode-active.md +1 -1
  228. package/src/prompts/memories/read-path.md +1 -1
  229. package/src/prompts/memories/stage_one_system.md +2 -2
  230. package/src/prompts/review-custom-request.md +1 -1
  231. package/src/prompts/system/agent-creation-architect.md +2 -2
  232. package/src/prompts/system/auto-continue.md +1 -1
  233. package/src/prompts/system/background-tan-dispatch.md +1 -1
  234. package/src/prompts/system/btw-user.md +2 -2
  235. package/src/prompts/system/commit-message-system.md +13 -1
  236. package/src/prompts/system/custom-system-prompt.md +1 -1
  237. package/src/prompts/system/eager-todo.md +2 -2
  238. package/src/prompts/system/irc-incoming.md +1 -1
  239. package/src/prompts/system/manual-continue.md +1 -1
  240. package/src/prompts/system/omfg-user.md +3 -4
  241. package/src/prompts/system/orchestrate-notice.md +9 -9
  242. package/src/prompts/system/plan-mode-active.md +4 -4
  243. package/src/prompts/system/plan-mode-subagent.md +4 -5
  244. package/src/prompts/system/plan-mode-tool-decision-reminder.md +1 -1
  245. package/src/prompts/system/project-prompt.md +2 -2
  246. package/src/prompts/system/subagent-system-prompt.md +4 -4
  247. package/src/prompts/system/system-prompt.md +13 -24
  248. package/src/prompts/system/title-system.md +2 -2
  249. package/src/prompts/system/ttsr-tool-reminder.md +1 -1
  250. package/src/prompts/system/workflow-notice.md +1 -1
  251. package/src/prompts/tools/ast-edit.md +1 -1
  252. package/src/prompts/tools/ast-grep.md +2 -2
  253. package/src/prompts/tools/bash.md +5 -7
  254. package/src/prompts/tools/browser.md +7 -7
  255. package/src/prompts/tools/debug.md +1 -1
  256. package/src/prompts/tools/eval.md +3 -3
  257. package/src/prompts/tools/find.md +0 -1
  258. package/src/prompts/tools/github.md +8 -7
  259. package/src/prompts/tools/goal.md +1 -1
  260. package/src/prompts/tools/image-gen.md +1 -1
  261. package/src/prompts/tools/inspect-image-system.md +1 -1
  262. package/src/prompts/tools/irc.md +15 -15
  263. package/src/prompts/tools/lsp.md +2 -2
  264. package/src/prompts/tools/patch.md +2 -2
  265. package/src/prompts/tools/read.md +3 -4
  266. package/src/prompts/tools/recall.md +1 -1
  267. package/src/prompts/tools/reflect.md +1 -1
  268. package/src/prompts/tools/render-mermaid.md +2 -2
  269. package/src/prompts/tools/replace.md +4 -10
  270. package/src/prompts/tools/rewind.md +2 -2
  271. package/src/prompts/tools/search-tool-bm25.md +1 -9
  272. package/src/prompts/tools/search.md +0 -1
  273. package/src/prompts/tools/ssh.md +0 -4
  274. package/src/prompts/tools/task.md +2 -3
  275. package/src/prompts/tools/todo.md +1 -1
  276. package/src/sdk.ts +23 -10
  277. package/src/session/agent-session.ts +44 -10
  278. package/src/session/auth-broker-config.ts +30 -1
  279. package/src/session/session-manager.ts +2 -2
  280. package/src/session/streaming-output.ts +23 -2
  281. package/src/slash-commands/builtin-registry.ts +20 -0
  282. package/src/slash-commands/helpers/stats-dashboard.ts +85 -0
  283. package/src/ssh/connection-manager.ts +27 -0
  284. package/src/task/commands.ts +2 -1
  285. package/src/task/executor.ts +61 -53
  286. package/src/task/index.ts +137 -60
  287. package/src/task/parallel.ts +3 -3
  288. package/src/task/render.ts +2 -2
  289. package/src/task/worktree.ts +64 -56
  290. package/src/thinking.ts +2 -1
  291. package/src/tiny/title-client.ts +26 -11
  292. package/src/tools/archive-reader.ts +30 -2
  293. package/src/tools/ask.ts +104 -21
  294. package/src/tools/ast-edit.ts +25 -5
  295. package/src/tools/auto-generated-guard.ts +20 -3
  296. package/src/tools/bash-interactive.ts +27 -7
  297. package/src/tools/bash.ts +54 -13
  298. package/src/tools/browser/launch.ts +11 -2
  299. package/src/tools/browser/readable.ts +19 -2
  300. package/src/tools/browser/registry.ts +4 -1
  301. package/src/tools/browser/render.ts +2 -2
  302. package/src/tools/browser/tab-supervisor.ts +55 -16
  303. package/src/tools/conflict-detect.ts +50 -4
  304. package/src/tools/debug.ts +1 -1
  305. package/src/tools/eval-render.ts +5 -5
  306. package/src/tools/eval.ts +0 -2
  307. package/src/tools/fetch.ts +33 -10
  308. package/src/tools/gh-cache-invalidation.ts +63 -8
  309. package/src/tools/gh-renderer.ts +1 -1
  310. package/src/tools/gh.ts +172 -29
  311. package/src/tools/github-cache.ts +70 -6
  312. package/src/tools/image-gen.ts +3 -9
  313. package/src/tools/irc.ts +5 -1
  314. package/src/tools/job.ts +1 -1
  315. package/src/tools/read.ts +202 -61
  316. package/src/tools/render-utils.ts +3 -3
  317. package/src/tools/resolve.ts +1 -1
  318. package/src/tools/search.ts +92 -29
  319. package/src/tools/sqlite-reader.ts +17 -5
  320. package/src/tools/ssh.ts +8 -8
  321. package/src/tools/todo.ts +38 -8
  322. package/src/tools/write.ts +118 -18
  323. package/src/tui/output-block.ts +4 -4
  324. package/src/utils/changelog.ts +27 -1
  325. package/src/utils/file-mentions.ts +2 -1
  326. package/src/web/scrapers/arxiv.ts +1 -1
  327. package/src/web/scrapers/go-pkg.ts +1 -1
  328. package/src/web/scrapers/iacr.ts +1 -1
  329. package/src/web/scrapers/readthedocs.ts +1 -1
  330. package/src/web/scrapers/twitter.ts +2 -1
  331. package/src/web/scrapers/types.ts +87 -8
  332. package/src/web/scrapers/wikipedia.ts +1 -1
  333. package/src/web/scrapers/youtube.ts +6 -1
  334. package/src/web/search/index.ts +1 -1
  335. package/src/web/search/providers/codex.ts +2 -1
  336. package/src/web/search/providers/gemini.ts +2 -3
  337. package/src/web/search/render.ts +8 -6
  338. package/dist/types/config/model-equivalence.d.ts +0 -24
  339. package/dist/types/config/model-id-affixes.d.ts +0 -12
  340. package/dist/types/config/model-provider-priority.d.ts +0 -1
  341. package/dist/types/exec/idle-timeout-watchdog.d.ts +0 -18
  342. package/src/config/model-equivalence.ts +0 -875
  343. package/src/config/model-id-affixes.ts +0 -81
  344. package/src/config/model-provider-priority.ts +0 -56
  345. package/src/exec/idle-timeout-watchdog.ts +0 -126
@@ -0,0 +1,385 @@
1
+ /**
2
+ * models.json config file handle and provider configuration validation.
3
+ */
4
+ import type { Api, ModelSpec } from "@oh-my-pi/pi-ai/types";
5
+ import { ConfigFile } from "./config-file";
6
+ import { type ProviderAuthMode, type ProviderDiscovery } from "./models-config-schema";
7
+ export type ProviderValidationMode = "models-config" | "runtime-register";
8
+ export interface ProviderValidationModel {
9
+ id: string;
10
+ api?: Api;
11
+ contextWindow?: number;
12
+ maxTokens?: number;
13
+ }
14
+ export interface ProviderValidationConfig {
15
+ baseUrl?: string;
16
+ headers?: Record<string, string>;
17
+ apiKey?: string;
18
+ api?: Api;
19
+ auth?: ProviderAuthMode;
20
+ oauthConfigured?: boolean;
21
+ discovery?: ProviderDiscovery;
22
+ compat?: ModelSpec<Api>["compat"];
23
+ disableStrictTools?: boolean;
24
+ modelOverrides?: Record<string, unknown>;
25
+ models: ProviderValidationModel[];
26
+ }
27
+ export declare function validateProviderConfiguration(providerName: string, config: ProviderValidationConfig, mode: ProviderValidationMode): void;
28
+ export declare const ModelsConfigFile: ConfigFile<{
29
+ providers?: Record<string, {
30
+ baseUrl?: string | undefined;
31
+ apiKey?: string | undefined;
32
+ api?: "anthropic-messages" | "azure-openai-responses" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
33
+ headers?: Record<string, string> | undefined;
34
+ compat?: {
35
+ supportsStore?: boolean | undefined;
36
+ supportsDeveloperRole?: boolean | undefined;
37
+ supportsMultipleSystemMessages?: boolean | undefined;
38
+ supportsReasoningEffort?: boolean | undefined;
39
+ reasoningEffortMap?: {
40
+ minimal?: string | undefined;
41
+ low?: string | undefined;
42
+ medium?: string | undefined;
43
+ high?: string | undefined;
44
+ xhigh?: string | undefined;
45
+ } | undefined;
46
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
47
+ supportsUsageInStreaming?: boolean | undefined;
48
+ requiresToolResultName?: boolean | undefined;
49
+ requiresMistralToolIds?: boolean | undefined;
50
+ requiresAssistantAfterToolResult?: boolean | undefined;
51
+ requiresThinkingAsText?: boolean | undefined;
52
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
53
+ requiresReasoningContentForToolCalls?: boolean | undefined;
54
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
55
+ requiresAssistantContentForToolCalls?: boolean | undefined;
56
+ supportsToolChoice?: boolean | undefined;
57
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
58
+ disableReasoningOnToolChoice?: boolean | undefined;
59
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
60
+ openRouterRouting?: {
61
+ only?: string[] | undefined;
62
+ order?: string[] | undefined;
63
+ } | undefined;
64
+ vercelGatewayRouting?: {
65
+ only?: string[] | undefined;
66
+ order?: string[] | undefined;
67
+ } | undefined;
68
+ extraBody?: Record<string, unknown> | undefined;
69
+ cacheControlFormat?: "anthropic" | undefined;
70
+ supportsStrictMode?: boolean | undefined;
71
+ toolStrictMode?: "all_strict" | "none" | undefined;
72
+ streamIdleTimeoutMs?: number | undefined;
73
+ supportsLongPromptCacheRetention?: boolean | undefined;
74
+ supportsReasoningParams?: boolean | undefined;
75
+ alwaysSendMaxTokens?: boolean | undefined;
76
+ strictResponsesPairing?: boolean | undefined;
77
+ requiresToolResultId?: boolean | undefined;
78
+ replayUnsignedThinking?: boolean | undefined;
79
+ whenThinking?: {
80
+ supportsStore?: boolean | undefined;
81
+ supportsDeveloperRole?: boolean | undefined;
82
+ supportsMultipleSystemMessages?: boolean | undefined;
83
+ supportsReasoningEffort?: boolean | undefined;
84
+ reasoningEffortMap?: {
85
+ minimal?: string | undefined;
86
+ low?: string | undefined;
87
+ medium?: string | undefined;
88
+ high?: string | undefined;
89
+ xhigh?: string | undefined;
90
+ } | undefined;
91
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
92
+ supportsUsageInStreaming?: boolean | undefined;
93
+ requiresToolResultName?: boolean | undefined;
94
+ requiresMistralToolIds?: boolean | undefined;
95
+ requiresAssistantAfterToolResult?: boolean | undefined;
96
+ requiresThinkingAsText?: boolean | undefined;
97
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
98
+ requiresReasoningContentForToolCalls?: boolean | undefined;
99
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
100
+ requiresAssistantContentForToolCalls?: boolean | undefined;
101
+ supportsToolChoice?: boolean | undefined;
102
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
103
+ disableReasoningOnToolChoice?: boolean | undefined;
104
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
105
+ openRouterRouting?: {
106
+ only?: string[] | undefined;
107
+ order?: string[] | undefined;
108
+ } | undefined;
109
+ vercelGatewayRouting?: {
110
+ only?: string[] | undefined;
111
+ order?: string[] | undefined;
112
+ } | undefined;
113
+ extraBody?: Record<string, unknown> | undefined;
114
+ cacheControlFormat?: "anthropic" | undefined;
115
+ supportsStrictMode?: boolean | undefined;
116
+ toolStrictMode?: "all_strict" | "none" | undefined;
117
+ streamIdleTimeoutMs?: number | undefined;
118
+ supportsLongPromptCacheRetention?: boolean | undefined;
119
+ supportsReasoningParams?: boolean | undefined;
120
+ alwaysSendMaxTokens?: boolean | undefined;
121
+ strictResponsesPairing?: boolean | undefined;
122
+ requiresToolResultId?: boolean | undefined;
123
+ replayUnsignedThinking?: boolean | undefined;
124
+ } | undefined;
125
+ } | undefined;
126
+ authHeader?: boolean | undefined;
127
+ auth?: "apiKey" | "none" | "oauth" | undefined;
128
+ discovery?: {
129
+ type: "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
130
+ } | undefined;
131
+ models?: {
132
+ id: string;
133
+ name?: string | undefined;
134
+ api?: "anthropic-messages" | "azure-openai-responses" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
135
+ baseUrl?: string | undefined;
136
+ reasoning?: boolean | undefined;
137
+ thinking?: {
138
+ mode: "anthropic-adaptive" | "anthropic-budget-effort" | "budget" | "effort" | "google-level";
139
+ efforts: ("high" | "low" | "medium" | "minimal" | "xhigh")[];
140
+ defaultLevel?: "high" | "low" | "medium" | "minimal" | "xhigh" | undefined;
141
+ effortMap?: {
142
+ minimal?: string | undefined;
143
+ low?: string | undefined;
144
+ medium?: string | undefined;
145
+ high?: string | undefined;
146
+ xhigh?: string | undefined;
147
+ } | undefined;
148
+ supportsDisplay?: boolean | undefined;
149
+ } | undefined;
150
+ input?: ("image" | "text")[] | undefined;
151
+ cost?: {
152
+ input: number;
153
+ output: number;
154
+ cacheRead: number;
155
+ cacheWrite: number;
156
+ } | undefined;
157
+ premiumMultiplier?: number | undefined;
158
+ contextWindow?: number | undefined;
159
+ maxTokens?: number | undefined;
160
+ omitMaxOutputTokens?: boolean | undefined;
161
+ headers?: Record<string, string> | undefined;
162
+ compat?: {
163
+ supportsStore?: boolean | undefined;
164
+ supportsDeveloperRole?: boolean | undefined;
165
+ supportsMultipleSystemMessages?: boolean | undefined;
166
+ supportsReasoningEffort?: boolean | undefined;
167
+ reasoningEffortMap?: {
168
+ minimal?: string | undefined;
169
+ low?: string | undefined;
170
+ medium?: string | undefined;
171
+ high?: string | undefined;
172
+ xhigh?: string | undefined;
173
+ } | undefined;
174
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
175
+ supportsUsageInStreaming?: boolean | undefined;
176
+ requiresToolResultName?: boolean | undefined;
177
+ requiresMistralToolIds?: boolean | undefined;
178
+ requiresAssistantAfterToolResult?: boolean | undefined;
179
+ requiresThinkingAsText?: boolean | undefined;
180
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
181
+ requiresReasoningContentForToolCalls?: boolean | undefined;
182
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
183
+ requiresAssistantContentForToolCalls?: boolean | undefined;
184
+ supportsToolChoice?: boolean | undefined;
185
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
186
+ disableReasoningOnToolChoice?: boolean | undefined;
187
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
188
+ openRouterRouting?: {
189
+ only?: string[] | undefined;
190
+ order?: string[] | undefined;
191
+ } | undefined;
192
+ vercelGatewayRouting?: {
193
+ only?: string[] | undefined;
194
+ order?: string[] | undefined;
195
+ } | undefined;
196
+ extraBody?: Record<string, unknown> | undefined;
197
+ cacheControlFormat?: "anthropic" | undefined;
198
+ supportsStrictMode?: boolean | undefined;
199
+ toolStrictMode?: "all_strict" | "none" | undefined;
200
+ streamIdleTimeoutMs?: number | undefined;
201
+ supportsLongPromptCacheRetention?: boolean | undefined;
202
+ supportsReasoningParams?: boolean | undefined;
203
+ alwaysSendMaxTokens?: boolean | undefined;
204
+ strictResponsesPairing?: boolean | undefined;
205
+ requiresToolResultId?: boolean | undefined;
206
+ replayUnsignedThinking?: boolean | undefined;
207
+ whenThinking?: {
208
+ supportsStore?: boolean | undefined;
209
+ supportsDeveloperRole?: boolean | undefined;
210
+ supportsMultipleSystemMessages?: boolean | undefined;
211
+ supportsReasoningEffort?: boolean | undefined;
212
+ reasoningEffortMap?: {
213
+ minimal?: string | undefined;
214
+ low?: string | undefined;
215
+ medium?: string | undefined;
216
+ high?: string | undefined;
217
+ xhigh?: string | undefined;
218
+ } | undefined;
219
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
220
+ supportsUsageInStreaming?: boolean | undefined;
221
+ requiresToolResultName?: boolean | undefined;
222
+ requiresMistralToolIds?: boolean | undefined;
223
+ requiresAssistantAfterToolResult?: boolean | undefined;
224
+ requiresThinkingAsText?: boolean | undefined;
225
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
226
+ requiresReasoningContentForToolCalls?: boolean | undefined;
227
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
228
+ requiresAssistantContentForToolCalls?: boolean | undefined;
229
+ supportsToolChoice?: boolean | undefined;
230
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
231
+ disableReasoningOnToolChoice?: boolean | undefined;
232
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
233
+ openRouterRouting?: {
234
+ only?: string[] | undefined;
235
+ order?: string[] | undefined;
236
+ } | undefined;
237
+ vercelGatewayRouting?: {
238
+ only?: string[] | undefined;
239
+ order?: string[] | undefined;
240
+ } | undefined;
241
+ extraBody?: Record<string, unknown> | undefined;
242
+ cacheControlFormat?: "anthropic" | undefined;
243
+ supportsStrictMode?: boolean | undefined;
244
+ toolStrictMode?: "all_strict" | "none" | undefined;
245
+ streamIdleTimeoutMs?: number | undefined;
246
+ supportsLongPromptCacheRetention?: boolean | undefined;
247
+ supportsReasoningParams?: boolean | undefined;
248
+ alwaysSendMaxTokens?: boolean | undefined;
249
+ strictResponsesPairing?: boolean | undefined;
250
+ requiresToolResultId?: boolean | undefined;
251
+ replayUnsignedThinking?: boolean | undefined;
252
+ } | undefined;
253
+ } | undefined;
254
+ contextPromotionTarget?: string | undefined;
255
+ }[] | undefined;
256
+ modelOverrides?: Record<string, {
257
+ name?: string | undefined;
258
+ reasoning?: boolean | undefined;
259
+ thinking?: {
260
+ mode: "anthropic-adaptive" | "anthropic-budget-effort" | "budget" | "effort" | "google-level";
261
+ efforts: ("high" | "low" | "medium" | "minimal" | "xhigh")[];
262
+ defaultLevel?: "high" | "low" | "medium" | "minimal" | "xhigh" | undefined;
263
+ effortMap?: {
264
+ minimal?: string | undefined;
265
+ low?: string | undefined;
266
+ medium?: string | undefined;
267
+ high?: string | undefined;
268
+ xhigh?: string | undefined;
269
+ } | undefined;
270
+ supportsDisplay?: boolean | undefined;
271
+ } | undefined;
272
+ input?: ("image" | "text")[] | undefined;
273
+ cost?: {
274
+ input?: number | undefined;
275
+ output?: number | undefined;
276
+ cacheRead?: number | undefined;
277
+ cacheWrite?: number | undefined;
278
+ } | undefined;
279
+ premiumMultiplier?: number | undefined;
280
+ contextWindow?: number | undefined;
281
+ maxTokens?: number | undefined;
282
+ omitMaxOutputTokens?: boolean | undefined;
283
+ headers?: Record<string, string> | undefined;
284
+ compat?: {
285
+ supportsStore?: boolean | undefined;
286
+ supportsDeveloperRole?: boolean | undefined;
287
+ supportsMultipleSystemMessages?: boolean | undefined;
288
+ supportsReasoningEffort?: boolean | undefined;
289
+ reasoningEffortMap?: {
290
+ minimal?: string | undefined;
291
+ low?: string | undefined;
292
+ medium?: string | undefined;
293
+ high?: string | undefined;
294
+ xhigh?: string | undefined;
295
+ } | undefined;
296
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
297
+ supportsUsageInStreaming?: boolean | undefined;
298
+ requiresToolResultName?: boolean | undefined;
299
+ requiresMistralToolIds?: boolean | undefined;
300
+ requiresAssistantAfterToolResult?: boolean | undefined;
301
+ requiresThinkingAsText?: boolean | undefined;
302
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
303
+ requiresReasoningContentForToolCalls?: boolean | undefined;
304
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
305
+ requiresAssistantContentForToolCalls?: boolean | undefined;
306
+ supportsToolChoice?: boolean | undefined;
307
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
308
+ disableReasoningOnToolChoice?: boolean | undefined;
309
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
310
+ openRouterRouting?: {
311
+ only?: string[] | undefined;
312
+ order?: string[] | undefined;
313
+ } | undefined;
314
+ vercelGatewayRouting?: {
315
+ only?: string[] | undefined;
316
+ order?: string[] | undefined;
317
+ } | undefined;
318
+ extraBody?: Record<string, unknown> | undefined;
319
+ cacheControlFormat?: "anthropic" | undefined;
320
+ supportsStrictMode?: boolean | undefined;
321
+ toolStrictMode?: "all_strict" | "none" | undefined;
322
+ streamIdleTimeoutMs?: number | undefined;
323
+ supportsLongPromptCacheRetention?: boolean | undefined;
324
+ supportsReasoningParams?: boolean | undefined;
325
+ alwaysSendMaxTokens?: boolean | undefined;
326
+ strictResponsesPairing?: boolean | undefined;
327
+ requiresToolResultId?: boolean | undefined;
328
+ replayUnsignedThinking?: boolean | undefined;
329
+ whenThinking?: {
330
+ supportsStore?: boolean | undefined;
331
+ supportsDeveloperRole?: boolean | undefined;
332
+ supportsMultipleSystemMessages?: boolean | undefined;
333
+ supportsReasoningEffort?: boolean | undefined;
334
+ reasoningEffortMap?: {
335
+ minimal?: string | undefined;
336
+ low?: string | undefined;
337
+ medium?: string | undefined;
338
+ high?: string | undefined;
339
+ xhigh?: string | undefined;
340
+ } | undefined;
341
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
342
+ supportsUsageInStreaming?: boolean | undefined;
343
+ requiresToolResultName?: boolean | undefined;
344
+ requiresMistralToolIds?: boolean | undefined;
345
+ requiresAssistantAfterToolResult?: boolean | undefined;
346
+ requiresThinkingAsText?: boolean | undefined;
347
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
348
+ requiresReasoningContentForToolCalls?: boolean | undefined;
349
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
350
+ requiresAssistantContentForToolCalls?: boolean | undefined;
351
+ supportsToolChoice?: boolean | undefined;
352
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
353
+ disableReasoningOnToolChoice?: boolean | undefined;
354
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
355
+ openRouterRouting?: {
356
+ only?: string[] | undefined;
357
+ order?: string[] | undefined;
358
+ } | undefined;
359
+ vercelGatewayRouting?: {
360
+ only?: string[] | undefined;
361
+ order?: string[] | undefined;
362
+ } | undefined;
363
+ extraBody?: Record<string, unknown> | undefined;
364
+ cacheControlFormat?: "anthropic" | undefined;
365
+ supportsStrictMode?: boolean | undefined;
366
+ toolStrictMode?: "all_strict" | "none" | undefined;
367
+ streamIdleTimeoutMs?: number | undefined;
368
+ supportsLongPromptCacheRetention?: boolean | undefined;
369
+ supportsReasoningParams?: boolean | undefined;
370
+ alwaysSendMaxTokens?: boolean | undefined;
371
+ strictResponsesPairing?: boolean | undefined;
372
+ requiresToolResultId?: boolean | undefined;
373
+ replayUnsignedThinking?: boolean | undefined;
374
+ } | undefined;
375
+ } | undefined;
376
+ contextPromotionTarget?: string | undefined;
377
+ }> | undefined;
378
+ disableStrictTools?: boolean | undefined;
379
+ transport?: "pi-native" | undefined;
380
+ }> | undefined;
381
+ equivalence?: {
382
+ overrides?: Record<string, string> | undefined;
383
+ exclude?: string[] | undefined;
384
+ } | undefined;
385
+ }>;
@@ -101,10 +101,6 @@ export interface ModelTagsSettings {
101
101
  }
102
102
  export declare const DEFAULT_BASH_INTERCEPTOR_RULES: BashInterceptorRule[];
103
103
  export declare const SETTINGS_SCHEMA: {
104
- readonly lastChangelogVersion: {
105
- readonly type: "string";
106
- readonly default: undefined;
107
- };
108
104
  readonly setupVersion: {
109
105
  readonly type: "number";
110
106
  readonly default: 0;
@@ -718,7 +714,7 @@ export declare const SETTINGS_SCHEMA: {
718
714
  };
719
715
  readonly defaultThinkingLevel: {
720
716
  readonly type: "enum";
721
- readonly values: readonly [...import("@oh-my-pi/pi-ai").Effort[], "auto"];
717
+ readonly values: readonly [...import("@oh-my-pi/pi-catalog").Effort[], "auto"];
722
718
  readonly default: "high";
723
719
  readonly ui: {
724
720
  readonly tab: "model";
@@ -991,7 +987,7 @@ export declare const SETTINGS_SCHEMA: {
991
987
  };
992
988
  readonly "retry.maxRetries": {
993
989
  readonly type: "number";
994
- readonly default: 3;
990
+ readonly default: 10;
995
991
  readonly ui: {
996
992
  readonly tab: "model";
997
993
  readonly label: "Retry Attempts";
@@ -1016,7 +1012,7 @@ export declare const SETTINGS_SCHEMA: {
1016
1012
  };
1017
1013
  readonly "retry.baseDelayMs": {
1018
1014
  readonly type: "number";
1019
- readonly default: 2000;
1015
+ readonly default: 500;
1020
1016
  };
1021
1017
  readonly "retry.maxDelayMs": {
1022
1018
  readonly type: "number";
@@ -2304,6 +2300,15 @@ export declare const SETTINGS_SCHEMA: {
2304
2300
  readonly description: "Enable the lsp tool for language server protocol";
2305
2301
  };
2306
2302
  };
2303
+ readonly "lsp.lazy": {
2304
+ readonly type: "boolean";
2305
+ readonly default: true;
2306
+ readonly ui: {
2307
+ readonly tab: "editing";
2308
+ readonly label: "Lazy LSP Startup";
2309
+ readonly description: "Start language servers on first use (lsp tool or editing a matching file type) instead of at session startup";
2310
+ };
2311
+ };
2307
2312
  readonly "lsp.formatOnWrite": {
2308
2313
  readonly type: "boolean";
2309
2314
  readonly default: false;
@@ -11,7 +11,7 @@
11
11
  * const isolated = Settings.isolated({ "compaction.enabled": false });
12
12
  */
13
13
  import { procmgr } from "@oh-my-pi/pi-utils";
14
- import type { ModelRole } from "../config/model-registry";
14
+ import type { ModelRole } from "../config/model-roles";
15
15
  import { AgentStorage } from "../session/agent-storage";
16
16
  import { type EditMode } from "../utils/edit-mode";
17
17
  import { type BashInterceptorRule, type GroupPrefix, type GroupTypeMap, type SettingPath, type SettingValue } from "./settings-schema";
@@ -63,6 +63,6 @@ export declare class DebugLogViewerComponent implements Component {
63
63
  constructor(options: DebugLogViewerComponentOptions);
64
64
  handleInput(keyData: string): void;
65
65
  invalidate(): void;
66
- render(width: number): string[];
66
+ render(width: number): readonly string[];
67
67
  }
68
68
  export {};
@@ -14,5 +14,5 @@ export declare class RawSseViewerComponent implements Component {
14
14
  constructor(options: RawSseViewerOptions);
15
15
  handleInput(keyData: string): void;
16
16
  invalidate(): void;
17
- render(width: number): string[];
17
+ render(width: number): readonly string[];
18
18
  }
@@ -18,8 +18,6 @@ export interface ExecutorBackendExecOptions {
18
18
  */
19
19
  idleTimeoutMs: number;
20
20
  reset: boolean;
21
- artifactPath: string | undefined;
22
- artifactId: string | undefined;
23
21
  onChunk: (chunk: string) => void;
24
22
  /**
25
23
  * Live status events (read/write/agent/…) delivered as they are emitted,
@@ -6,8 +6,6 @@
6
6
  * `agent()`/`parallel()`/`completion()` work is ignored completely, then {@link resume}
7
7
  * starts a fresh timeout window once the runtime gets control back.
8
8
  *
9
- * The active timer self-reschedules instead of being torn down on every
10
- * activity event, so frequent activity costs one timestamp write per event.
11
9
  * Pause is reference-counted because `parallel()` can have multiple bridge calls
12
10
  * in flight at once.
13
11
  */
@@ -18,8 +16,6 @@ export declare class IdleTimeout {
18
16
  get signal(): AbortSignal;
19
17
  /** Configured active timeout window in milliseconds. */
20
18
  get idleMs(): number;
21
- /** Record runtime activity, pushing the active deadline forward by `idleMs`. */
22
- bump(): void;
23
19
  /** Suspend timeout accounting while control is delegated to host-side work. */
24
20
  pause(): void;
25
21
  /** Resume timeout accounting with a fresh timeout window. */
@@ -1,7 +1,7 @@
1
- export declare function rewriteImports(code: string): string;
2
- export declare function collectModuleSourceSpecifiers(code: string): string[];
3
- export declare function rewriteModuleSourceSpecifiers(code: string, replacer: (source: string) => string): string;
4
- export declare function rewriteDynamicImports(code: string, callee?: string): string;
1
+ export declare function rewriteImports(code: string): Promise<string>;
2
+ export declare function collectModuleSourceSpecifiers(code: string): Promise<string[]>;
3
+ export declare function rewriteModuleSourceSpecifiers(code: string, replacer: (source: string) => string): Promise<string>;
4
+ export declare function rewriteDynamicImports(code: string, callee?: string): Promise<string>;
5
5
  /**
6
6
  * Strip TypeScript syntax (type annotations, type-only imports/exports, `interface`, `as`,
7
7
  * `satisfies`, generics in call expressions, etc.) before the import/lexical rewriters parse
@@ -17,9 +17,9 @@ export declare function stripTypeScriptSyntax(code: string, options?: {
17
17
  force?: boolean;
18
18
  loader?: TypeScriptStripLoader;
19
19
  }): string;
20
- export declare function wrapCode(code: string): {
20
+ export declare function wrapCode(code: string): Promise<{
21
21
  source: string;
22
22
  asyncWrapped: boolean;
23
23
  finalExpressionReturned: boolean;
24
- };
24
+ }>;
25
25
  export {};