@oh-my-pi/pi-coding-agent 17.2.4 → 17.2.6

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 (348) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/{CHANGELOG-bpmhv26t.md → CHANGELOG-gs76k6wc.md} +69 -0
  3. package/dist/cli.js +4438 -3962
  4. package/dist/{template-8vdv6xb4.js → template-c2hyaytt.js} +8 -26
  5. package/dist/types/cli/args.d.ts +4 -1
  6. package/dist/types/cli/browser-relay-cli.d.ts +15 -0
  7. package/dist/types/cli/command-help.d.ts +99 -0
  8. package/dist/types/cli/gc-cli.d.ts +1 -0
  9. package/dist/types/cli/help-extra.d.ts +2 -0
  10. package/dist/types/cli/thinking-levels.d.ts +5 -0
  11. package/dist/types/cli/update-cli.d.ts +13 -0
  12. package/dist/types/commands/browser-relay.d.ts +38 -0
  13. package/dist/types/commands/commit.d.ts +3 -0
  14. package/dist/types/commands/complete.d.ts +1 -1
  15. package/dist/types/commands/completions.d.ts +6 -0
  16. package/dist/types/commands/grep.d.ts +3 -0
  17. package/dist/types/commands/join.d.ts +4 -0
  18. package/dist/types/commands/launch-help.d.ts +171 -0
  19. package/dist/types/commands/launch.d.ts +5 -1
  20. package/dist/types/commands/models.d.ts +3 -0
  21. package/dist/types/commands/say.d.ts +10 -0
  22. package/dist/types/commands/worktree.d.ts +3 -0
  23. package/dist/types/config/keybindings.d.ts +5 -0
  24. package/dist/types/config/model-discovery.d.ts +2 -2
  25. package/dist/types/config/models-config-schema-bundle.d.ts +3 -0
  26. package/dist/types/config/models-config-schema.d.ts +2 -0
  27. package/dist/types/config/models-config.d.ts +1 -0
  28. package/dist/types/config/service-tier.d.ts +2 -0
  29. package/dist/types/config/settings-schema.d.ts +69 -21
  30. package/dist/types/cursor-bridge-tools.d.ts +1 -1
  31. package/dist/types/cursor.d.ts +7 -4
  32. package/dist/types/edit/index.d.ts +3 -3
  33. package/dist/types/edit/modes/replace.d.ts +22 -15
  34. package/dist/types/edit/renderer.d.ts +1 -1
  35. package/dist/types/eval/py/kernel.d.ts +3 -1
  36. package/dist/types/eval/py/spawn-options.d.ts +12 -16
  37. package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +8 -1
  38. package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +1 -1
  39. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
  40. package/dist/types/launch/broker.d.ts +1 -1
  41. package/dist/types/launch/client.d.ts +15 -4
  42. package/dist/types/launch/ensure.d.ts +8 -0
  43. package/dist/types/launch/paths.d.ts +1 -1
  44. package/dist/types/launch/protocol.d.ts +19 -2
  45. package/dist/types/lsp/client.d.ts +2 -0
  46. package/dist/types/lsp/mux/daemon.d.ts +15 -0
  47. package/dist/types/lsp/mux/protocol.d.ts +57 -0
  48. package/dist/types/lsp/mux/server.d.ts +18 -0
  49. package/dist/types/lsp/types.d.ts +22 -2
  50. package/dist/types/main.d.ts +2 -0
  51. package/dist/types/mnemopi/embed-client.d.ts +1 -1
  52. package/dist/types/mnemopi/state.d.ts +0 -23
  53. package/dist/types/modes/components/assistant-message.d.ts +2 -0
  54. package/dist/types/modes/components/btw-panel.d.ts +3 -0
  55. package/dist/types/modes/components/custom-editor.d.ts +2 -1
  56. package/dist/types/modes/components/read-tool-group.d.ts +2 -0
  57. package/dist/types/modes/components/stripped-tool-calls-placeholder.d.ts +12 -0
  58. package/dist/types/modes/components/tool-execution.d.ts +2 -0
  59. package/dist/types/modes/controllers/btw-controller.d.ts +2 -0
  60. package/dist/types/modes/controllers/command-controller.d.ts +1 -0
  61. package/dist/types/modes/controllers/input-controller.d.ts +1 -0
  62. package/dist/types/modes/interactive-mode.d.ts +5 -1
  63. package/dist/types/modes/types.d.ts +4 -1
  64. package/dist/types/modes/workflow.d.ts +2 -1
  65. package/dist/types/sdk.d.ts +3 -1
  66. package/dist/types/secrets/index.d.ts +1 -1
  67. package/dist/types/security/contracts/schemas.d.ts +405 -403
  68. package/dist/types/session/agent-session-types.d.ts +8 -1
  69. package/dist/types/session/agent-session.d.ts +26 -2
  70. package/dist/types/session/indexed-session-storage.d.ts +1 -0
  71. package/dist/types/session/launch-completion.d.ts +10 -0
  72. package/dist/types/session/session-advisors.d.ts +1 -1
  73. package/dist/types/session/session-context.d.ts +2 -1
  74. package/dist/types/session/session-entries.d.ts +15 -1
  75. package/dist/types/session/session-maintenance.d.ts +1 -0
  76. package/dist/types/session/session-manager.d.ts +23 -11
  77. package/dist/types/session/session-stats.d.ts +10 -0
  78. package/dist/types/session/session-storage.d.ts +15 -3
  79. package/dist/types/session/yield-queue.d.ts +6 -1
  80. package/dist/types/system-prompt.d.ts +4 -1
  81. package/dist/types/task/index.d.ts +2 -1
  82. package/dist/types/task/spawn-policy.d.ts +5 -0
  83. package/dist/types/thinking.d.ts +1 -7
  84. package/dist/types/tools/ast-grep.d.ts +1 -1
  85. package/dist/types/tools/browser/registry.d.ts +2 -1
  86. package/dist/types/tools/browser/relay/bridge.d.ts +35 -0
  87. package/dist/types/tools/browser/relay/daemon.d.ts +16 -0
  88. package/dist/types/tools/browser/relay/kind.d.ts +19 -0
  89. package/dist/types/tools/browser/relay/protocol.d.ts +97 -0
  90. package/dist/types/tools/browser/relay/server.d.ts +35 -0
  91. package/dist/types/tools/browser/render.d.ts +1 -0
  92. package/dist/types/tools/browser.d.ts +3 -0
  93. package/dist/types/tools/computer/exposure.d.ts +9 -7
  94. package/dist/types/tools/computer/protocol.d.ts +70 -17
  95. package/dist/types/tools/computer/supervisor.d.ts +23 -10
  96. package/dist/types/tools/computer/worker-entry.d.ts +1 -0
  97. package/dist/types/tools/computer/worker.d.ts +42 -7
  98. package/dist/types/tools/computer-renderer.d.ts +7 -5
  99. package/dist/types/tools/computer.d.ts +25 -44
  100. package/dist/types/tools/context.d.ts +3 -0
  101. package/dist/types/tools/glob.d.ts +1 -1
  102. package/dist/types/tools/grep.d.ts +1 -1
  103. package/dist/types/tools/index.d.ts +9 -0
  104. package/dist/types/tools/render-utils.d.ts +2 -0
  105. package/dist/types/tools/{browser/run-cancellation.d.ts → run-scope.d.ts} +8 -8
  106. package/dist/types/tools/tool-timeouts.d.ts +5 -0
  107. package/dist/types/tools/xdev.d.ts +8 -0
  108. package/dist/types/utils/clipboard.d.ts +2 -2
  109. package/dist/types/web/kagi.d.ts +1 -0
  110. package/dist/types/web/search/index.d.ts +1 -1
  111. package/dist/types/web/search/providers/anthropic.d.ts +1 -0
  112. package/dist/types/web/search/providers/base.d.ts +2 -0
  113. package/dist/types/web/search/providers/brave.d.ts +1 -0
  114. package/dist/types/web/search/providers/browser-page.d.ts +1 -0
  115. package/dist/types/web/search/providers/codex.d.ts +1 -0
  116. package/dist/types/web/search/providers/exa.d.ts +1 -0
  117. package/dist/types/web/search/providers/firecrawl.d.ts +1 -0
  118. package/dist/types/web/search/providers/gemini.d.ts +1 -0
  119. package/dist/types/web/search/providers/jina.d.ts +1 -0
  120. package/dist/types/web/search/providers/kagi.d.ts +1 -0
  121. package/dist/types/web/search/providers/kimi.d.ts +1 -0
  122. package/dist/types/web/search/providers/parallel.d.ts +1 -0
  123. package/dist/types/web/search/providers/perplexity.d.ts +1 -0
  124. package/dist/types/web/search/providers/searxng.d.ts +1 -0
  125. package/dist/types/web/search/providers/tavily.d.ts +1 -0
  126. package/dist/types/web/search/providers/tinyfish.d.ts +1 -0
  127. package/dist/types/web/search/providers/utils.d.ts +6 -9
  128. package/dist/types/web/search/providers/zai.d.ts +1 -0
  129. package/dist/types/web/search/types.d.ts +4 -0
  130. package/package.json +12 -12
  131. package/src/cli/args.ts +7 -87
  132. package/src/cli/browser-relay-cli.ts +119 -0
  133. package/src/cli/command-help.ts +103 -0
  134. package/src/cli/completion-gen.ts +5 -5
  135. package/src/cli/flag-tables.ts +9 -0
  136. package/src/cli/gc-cli.ts +641 -21
  137. package/src/cli/help-extra.ts +89 -0
  138. package/src/cli/setup-cli.ts +13 -21
  139. package/src/cli/thinking-levels.ts +7 -0
  140. package/src/cli/update-cli.ts +26 -7
  141. package/src/cli-commands.ts +170 -33
  142. package/src/cli.ts +17 -5
  143. package/src/commands/acp.ts +3 -1
  144. package/src/commands/agents.ts +3 -2
  145. package/src/commands/auth-broker.ts +3 -2
  146. package/src/commands/auth-gateway.ts +3 -2
  147. package/src/commands/bench.ts +2 -3
  148. package/src/commands/browser-relay.ts +53 -0
  149. package/src/commands/cleanse.ts +2 -2
  150. package/src/commands/commit.ts +3 -2
  151. package/src/commands/complete.ts +2 -1
  152. package/src/commands/completions.ts +3 -2
  153. package/src/commands/config.ts +3 -2
  154. package/src/commands/dry-balance.ts +2 -2
  155. package/src/commands/gallery.ts +3 -2
  156. package/src/commands/gc.ts +3 -2
  157. package/src/commands/grep.ts +3 -2
  158. package/src/commands/grievances.ts +3 -2
  159. package/src/commands/install.ts +2 -2
  160. package/src/commands/join.ts +3 -2
  161. package/src/commands/launch-help.ts +116 -0
  162. package/src/commands/launch.ts +7 -191
  163. package/src/commands/models.ts +3 -2
  164. package/src/commands/plugin.ts +3 -2
  165. package/src/commands/read.ts +3 -2
  166. package/src/commands/say.ts +3 -2
  167. package/src/commands/setup.ts +3 -2
  168. package/src/commands/shell.ts +3 -2
  169. package/src/commands/ssh.ts +3 -2
  170. package/src/commands/stats.ts +3 -2
  171. package/src/commands/tiny-models.ts +2 -2
  172. package/src/commands/token.ts +2 -2
  173. package/src/commands/ttsr.ts +2 -2
  174. package/src/commands/update.ts +3 -2
  175. package/src/commands/usage.ts +3 -2
  176. package/src/commands/web-search.ts +3 -2
  177. package/src/commands/worktree.ts +3 -2
  178. package/src/config/keybindings.ts +5 -0
  179. package/src/config/model-discovery.ts +44 -27
  180. package/src/config/model-registry.ts +19 -13
  181. package/src/config/models-config-schema-bundle.ts +9 -0
  182. package/src/config/resolve-config-value.ts +2 -1
  183. package/src/config/service-tier.ts +5 -0
  184. package/src/config/settings-schema.ts +72 -20
  185. package/src/config/settings.ts +1 -1
  186. package/src/cursor-bridge-tools.ts +1 -1
  187. package/src/cursor.ts +10 -14
  188. package/src/edit/diff.ts +17 -8
  189. package/src/edit/index.ts +20 -7
  190. package/src/edit/modes/replace.ts +93 -40
  191. package/src/edit/renderer.ts +1 -1
  192. package/src/edit/streaming.ts +14 -17
  193. package/src/eval/py/kernel.ts +2 -1
  194. package/src/eval/py/spawn-options.ts +24 -29
  195. package/src/export/html/index.ts +10 -3
  196. package/src/export/html/template.js +8 -26
  197. package/src/export/share.ts +4 -0
  198. package/src/extensibility/extensions/wrapper.ts +1 -0
  199. package/src/extensibility/legacy-pi-ai-shim.ts +22 -1
  200. package/src/extensibility/legacy-pi-coding-agent-shim.ts +7 -6
  201. package/src/extensibility/plugins/legacy-pi-compat.ts +124 -57
  202. package/src/extensibility/skills.ts +11 -0
  203. package/src/extensibility/utils.ts +10 -2
  204. package/src/launch/broker.ts +223 -7
  205. package/src/launch/client.ts +192 -21
  206. package/src/launch/ensure.ts +73 -0
  207. package/src/launch/paths.ts +1 -1
  208. package/src/launch/protocol.ts +54 -2
  209. package/src/lsp/client.ts +23 -2
  210. package/src/lsp/index.ts +8 -0
  211. package/src/lsp/mux/daemon.ts +348 -0
  212. package/src/lsp/mux/protocol.ts +96 -0
  213. package/src/lsp/mux/server.ts +797 -0
  214. package/src/lsp/types.ts +28 -2
  215. package/src/main.ts +20 -8
  216. package/src/mcp/config-writer.ts +1 -1
  217. package/src/mcp/oauth-flow.ts +11 -1
  218. package/src/mnemopi/embed-client.ts +49 -2
  219. package/src/mnemopi/state.ts +57 -23
  220. package/src/modes/components/assistant-message.ts +11 -0
  221. package/src/modes/components/btw-panel.ts +41 -4
  222. package/src/modes/components/chat-transcript-builder.ts +4 -0
  223. package/src/modes/components/custom-editor.ts +9 -0
  224. package/src/modes/components/read-tool-group.ts +10 -0
  225. package/src/modes/components/status-line/component.ts +1 -1
  226. package/src/modes/components/stripped-tool-calls-placeholder.ts +35 -0
  227. package/src/modes/components/tool-execution.ts +8 -0
  228. package/src/modes/components/tree-selector.ts +46 -48
  229. package/src/modes/controllers/btw-controller.ts +55 -7
  230. package/src/modes/controllers/command-controller.ts +31 -0
  231. package/src/modes/controllers/event-controller.ts +17 -0
  232. package/src/modes/controllers/input-controller.ts +63 -8
  233. package/src/modes/controllers/mcp-command-controller.ts +11 -5
  234. package/src/modes/controllers/selector-controller.ts +20 -0
  235. package/src/modes/interactive-mode.ts +18 -2
  236. package/src/modes/types.ts +9 -1
  237. package/src/modes/utils/hotkeys-markdown.ts +1 -0
  238. package/src/modes/utils/interactive-context-helpers.ts +1 -0
  239. package/src/modes/utils/ui-helpers.ts +6 -10
  240. package/src/modes/workflow.ts +8 -2
  241. package/src/prompts/agents/init.md +1 -1
  242. package/src/prompts/session/launch-completion.md +1 -0
  243. package/src/prompts/system/plan-mode-active.md +2 -2
  244. package/src/prompts/system/system-prompt.md +26 -52
  245. package/src/prompts/system/workflow-notice.md +3 -3
  246. package/src/prompts/tools/ast-grep.md +1 -1
  247. package/src/prompts/tools/bash.md +1 -1
  248. package/src/prompts/tools/browser.md +1 -0
  249. package/src/prompts/tools/computer.md +21 -21
  250. package/src/prompts/tools/glob.md +1 -1
  251. package/src/prompts/tools/grep.md +1 -1
  252. package/src/prompts/tools/replace.md +5 -4
  253. package/src/prompts/tools/task.md +4 -4
  254. package/src/sdk.ts +49 -6
  255. package/src/secrets/index.ts +1 -1
  256. package/src/security/contracts/schemas.ts +205 -183
  257. package/src/security/contracts/validation.ts +5 -1
  258. package/src/security/store.ts +2 -2
  259. package/src/session/agent-session-types.ts +9 -1
  260. package/src/session/agent-session.ts +204 -15
  261. package/src/session/indexed-session-storage.ts +9 -0
  262. package/src/session/launch-completion.ts +37 -0
  263. package/src/session/prewalk.ts +24 -2
  264. package/src/session/session-advisors.ts +2 -2
  265. package/src/session/session-context.ts +42 -12
  266. package/src/session/session-dump-format.ts +1 -1
  267. package/src/session/session-entries.ts +17 -1
  268. package/src/session/session-maintenance.ts +38 -4
  269. package/src/session/session-manager.ts +123 -67
  270. package/src/session/session-paths.ts +118 -55
  271. package/src/session/session-stats.ts +48 -3
  272. package/src/session/session-storage.ts +30 -22
  273. package/src/session/stream-guards.ts +1 -1
  274. package/src/session/yield-queue.ts +121 -16
  275. package/src/slash-commands/builtin-registry.ts +37 -24
  276. package/src/system-prompt.ts +8 -3
  277. package/src/task/index.ts +23 -8
  278. package/src/task/spawn-policy.ts +14 -0
  279. package/src/thinking.ts +2 -8
  280. package/src/tools/ast-grep.ts +10 -4
  281. package/src/tools/browser/cmux/cmux-tab.ts +97 -14
  282. package/src/tools/browser/cmux/rpc.ts +2 -8
  283. package/src/tools/browser/registry.ts +53 -2
  284. package/src/tools/browser/relay/bridge.ts +945 -0
  285. package/src/tools/browser/relay/daemon.ts +117 -0
  286. package/src/tools/browser/relay/extension-assets/background.js.txt +242 -0
  287. package/src/tools/browser/relay/extension-assets/manifest.json.txt +14 -0
  288. package/src/tools/browser/relay/extension-assets/options.html.txt +53 -0
  289. package/src/tools/browser/relay/extension-assets/options.js.txt +23 -0
  290. package/src/tools/browser/relay/kind.ts +41 -0
  291. package/src/tools/browser/relay/protocol.ts +54 -0
  292. package/src/tools/browser/relay/server.ts +141 -0
  293. package/src/tools/browser/render.ts +4 -1
  294. package/src/tools/browser/shared-daemon.ts +7 -58
  295. package/src/tools/browser/tab-supervisor.ts +5 -4
  296. package/src/tools/browser/tab-worker.ts +33 -12
  297. package/src/tools/browser.ts +26 -1
  298. package/src/tools/computer/exposure.ts +11 -35
  299. package/src/tools/computer/protocol.ts +51 -10
  300. package/src/tools/computer/supervisor.ts +227 -124
  301. package/src/tools/computer/worker-entry.ts +11 -6
  302. package/src/tools/computer/worker.ts +695 -81
  303. package/src/tools/computer-renderer.ts +104 -65
  304. package/src/tools/computer.ts +134 -428
  305. package/src/tools/context.ts +3 -0
  306. package/src/tools/glob.ts +9 -2
  307. package/src/tools/grep.ts +12 -6
  308. package/src/tools/hub/launch.ts +122 -6
  309. package/src/tools/index.ts +9 -0
  310. package/src/tools/inspect-image.ts +32 -6
  311. package/src/tools/render-utils.ts +2 -0
  312. package/src/tools/{browser/run-cancellation.ts → run-scope.ts} +11 -11
  313. package/src/tools/tool-timeouts.ts +1 -0
  314. package/src/tools/xdev.ts +29 -2
  315. package/src/utils/clipboard.ts +40 -14
  316. package/src/utils/command-args.ts +26 -28
  317. package/src/utils/tool-choice.ts +0 -13
  318. package/src/web/kagi.ts +2 -1
  319. package/src/web/search/index.ts +18 -2
  320. package/src/web/search/providers/anthropic.ts +4 -1
  321. package/src/web/search/providers/base.ts +2 -0
  322. package/src/web/search/providers/brave.ts +3 -1
  323. package/src/web/search/providers/browser-page.ts +6 -4
  324. package/src/web/search/providers/codex.ts +4 -1
  325. package/src/web/search/providers/duckduckgo.ts +2 -1
  326. package/src/web/search/providers/ecosia.ts +2 -1
  327. package/src/web/search/providers/exa.ts +4 -2
  328. package/src/web/search/providers/firecrawl.ts +3 -1
  329. package/src/web/search/providers/gemini.ts +8 -2
  330. package/src/web/search/providers/google.ts +2 -1
  331. package/src/web/search/providers/jina.ts +12 -2
  332. package/src/web/search/providers/kagi.ts +3 -0
  333. package/src/web/search/providers/kimi.ts +5 -1
  334. package/src/web/search/providers/mojeek.ts +2 -1
  335. package/src/web/search/providers/parallel.ts +5 -1
  336. package/src/web/search/providers/perplexity.ts +6 -3
  337. package/src/web/search/providers/public.ts +1 -1
  338. package/src/web/search/providers/searxng.ts +11 -5
  339. package/src/web/search/providers/startpage.ts +10 -4
  340. package/src/web/search/providers/synthetic.ts +11 -5
  341. package/src/web/search/providers/tavily.ts +3 -1
  342. package/src/web/search/providers/tinyfish.ts +3 -1
  343. package/src/web/search/providers/utils.ts +12 -10
  344. package/src/web/search/providers/xai.ts +2 -2
  345. package/src/web/search/providers/zai.ts +18 -3
  346. package/src/web/search/types.ts +6 -0
  347. package/dist/types/config/file-lock.d.ts +0 -29
  348. package/src/config/file-lock.ts +0 -164
@@ -204,7 +204,7 @@
204
204
  containsActive.set(node, has);
205
205
  }
206
206
 
207
- // Stack: [node, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild]
207
+ // Stack: [node, indent, showConnector, isLast, gutters, isVirtualRootChild]
208
208
  const stack = [];
209
209
 
210
210
  // Add roots (prioritize branch containing active leaf)
@@ -213,11 +213,11 @@
213
213
  );
214
214
  for (let i = orderedRoots.length - 1; i >= 0; i--) {
215
215
  const isLast = i === orderedRoots.length - 1;
216
- stack.push([orderedRoots[i], multipleRoots ? 1 : 0, multipleRoots, multipleRoots, isLast, [], multipleRoots]);
216
+ stack.push([orderedRoots[i], multipleRoots ? 1 : 0, multipleRoots, isLast, [], multipleRoots]);
217
217
  }
218
218
 
219
219
  while (stack.length > 0) {
220
- const [node, indent, justBranched, showConnector, isLast, gutters, isVirtualRootChild] = stack.pop();
220
+ const [node, indent, showConnector, isLast, gutters, isVirtualRootChild] = stack.pop();
221
221
 
222
222
  result.push({ node, indent, showConnector, isLast, gutters, isVirtualRootChild, multipleRoots });
223
223
 
@@ -229,18 +229,10 @@
229
229
  Number(containsActive.get(b)) - Number(containsActive.get(a))
230
230
  );
231
231
 
232
- // Calculate child indent (matches tree-selector.ts)
233
- let childIndent;
234
- if (multipleChildren) {
235
- // Parent branches: children get +1
236
- childIndent = indent + 1;
237
- } else if (justBranched && indent > 0) {
238
- // First generation after a branch: +1 for visual grouping
239
- childIndent = indent + 1;
240
- } else {
241
- // Single-child chain: stay flat
242
- childIndent = indent;
243
- }
232
+ // Real branch points add visual depth, and a virtual root's direct
233
+ // children (the session roots) nest one level under the shared
234
+ // column-0 root. Linear continuations otherwise stay aligned.
235
+ const childIndent = multipleChildren || isVirtualRootChild ? indent + 1 : indent;
244
236
 
245
237
  // Build gutters for children
246
238
  const connectorDisplayed = showConnector && !isVirtualRootChild;
@@ -253,7 +245,7 @@
253
245
  // Add children in reverse order for stack
254
246
  for (let i = orderedChildren.length - 1; i >= 0; i--) {
255
247
  const childIsLast = i === orderedChildren.length - 1;
256
- stack.push([orderedChildren[i], childIndent, multipleChildren, multipleChildren, childIsLast, childGutters, false]);
248
+ stack.push([orderedChildren[i], childIndent, multipleChildren, childIsLast, childGutters, false]);
257
249
  }
258
250
  }
259
251
 
@@ -268,13 +260,6 @@
268
260
  const displayIndent = multipleRoots ? Math.max(0, indent - 1) : indent;
269
261
  const connector = showConnector && !isVirtualRootChild ? (isLast ? '└─ ' : '├─ ') : '';
270
262
  const connectorPosition = connector ? displayIndent - 1 : -1;
271
- // Chain rows (no connector of their own) under a last-sibling (`└─`)
272
- // branch stay anchored by a vertical drawn one level right of the
273
- // suppressed gutter — below the branch head's content — never in the
274
- // `└─` corner column itself (#2298, #2325). Chains under `├─` heads
275
- // are already anchored by the sibling line (`show: true` gutter).
276
- const nearestGutter = !connector ? gutters[gutters.length - 1] : undefined;
277
- const chainAnchorLevel = nearestGutter && !nearestGutter.show ? nearestGutter.position + 1 : -1;
278
263
 
279
264
  const totalChars = displayIndent * 3;
280
265
  const prefixChars = [];
@@ -287,9 +272,6 @@
287
272
  // Standard tree semantics: `│` only while more siblings continue
288
273
  // below (`show`), space below a `└─`.
289
274
  prefixChars.push(posInLevel === 0 && gutter.show ? '│' : ' ');
290
- } else if (level === chainAnchorLevel) {
291
- // Chain anchor for rows under a `└─` branch head.
292
- prefixChars.push(posInLevel === 0 ? '│' : ' ');
293
275
  } else if (connector && level === connectorPosition) {
294
276
  if (posInLevel === 0) {
295
277
  prefixChars.push(isLast ? '└' : '├');
@@ -1,4 +1,7 @@
1
+ import type { ServiceTierOpenAISettingValue } from "../config/service-tier.js";
1
2
  import { type ConfiguredThinkingLevel } from "../thinking.js";
3
+ import { getExtraHelpText } from "./help-extra.js";
4
+ export { getExtraHelpText };
2
5
  export type Mode = "text" | "json" | "rpc" | "acp" | "rpc-ui";
3
6
  export interface Args {
4
7
  cwd?: string;
@@ -23,6 +26,7 @@ export interface Args {
23
26
  systemPrompt?: string;
24
27
  appendSystemPrompt?: string;
25
28
  thinking?: ConfiguredThinkingLevel;
29
+ serviceTier?: ServiceTierOpenAISettingValue;
26
30
  hideThinking?: boolean;
27
31
  advisor?: boolean;
28
32
  continue?: boolean;
@@ -85,5 +89,4 @@ export declare function parseArgs(inputArgs: string[], extensionFlags?: Map<stri
85
89
  export declare function reportUnrecognizedFlags(args: Pick<Args, "unrecognizedFlags">, write?: (text: string) => void): boolean;
86
90
  /** Emit a clean CLI usage error without an internal stack trace. */
87
91
  export declare function reportCliUsageError(error: unknown, write?: (text: string) => void): boolean;
88
- export declare function getExtraHelpText(): string;
89
92
  export declare function printHelp(): void;
@@ -0,0 +1,15 @@
1
+ export declare const BROWSER_RELAY_ACTIONS: readonly ["serve", "install"];
2
+ export type BrowserRelayAction = (typeof BROWSER_RELAY_ACTIONS)[number];
3
+ export interface BrowserRelayCommandArgs {
4
+ action: BrowserRelayAction;
5
+ port: number;
6
+ token?: string;
7
+ /** Install target directory; defaults to ~/.omp/browser-relay/extension. */
8
+ dir?: string;
9
+ /** Gather tabs the agent actively drives into an 'omp' Chrome tab group (default true). */
10
+ group?: boolean;
11
+ verbose?: boolean;
12
+ }
13
+ /** Default port of the relay endpoint (kept in sync with DEFAULT_RELAY_URL). */
14
+ export declare const DEFAULT_RELAY_PORT: number;
15
+ export declare function runBrowserRelayCommand(args: BrowserRelayCommandArgs): Promise<void>;
@@ -0,0 +1,99 @@
1
+ export declare const acpHelp: {
2
+ description: string;
3
+ };
4
+ export declare const agentsHelp: {
5
+ description: string;
6
+ };
7
+ export declare const authBrokerHelp: {
8
+ description: string;
9
+ };
10
+ export declare const authGatewayHelp: {
11
+ description: string;
12
+ };
13
+ export declare const benchHelp: {
14
+ description: string;
15
+ };
16
+ export declare const browserRelayHelp: {
17
+ description: string;
18
+ };
19
+ export declare const cleanseHelp: {
20
+ description: string;
21
+ };
22
+ export declare const commitHelp: {
23
+ description: string;
24
+ };
25
+ export declare const completionsHelp: {
26
+ description: string;
27
+ };
28
+ export declare const completeHelp: {
29
+ hidden: true;
30
+ };
31
+ export declare const configHelp: {
32
+ description: string;
33
+ };
34
+ export declare const dryBalanceHelp: {
35
+ description: string;
36
+ };
37
+ export declare const galleryHelp: {
38
+ description: string;
39
+ };
40
+ export declare const gcHelp: {
41
+ description: string;
42
+ };
43
+ export declare const grepHelp: {
44
+ description: string;
45
+ };
46
+ export declare const grievancesHelp: {
47
+ description: string;
48
+ };
49
+ export declare const installHelp: {
50
+ description: string;
51
+ };
52
+ export declare const joinHelp: {
53
+ description: string;
54
+ };
55
+ export declare const modelsHelp: {
56
+ description: string;
57
+ };
58
+ export declare const pluginHelp: {
59
+ description: string;
60
+ };
61
+ export declare const readHelp: {
62
+ description: string;
63
+ };
64
+ export declare const sayHelp: {
65
+ description: string;
66
+ };
67
+ export declare const searchHelp: {
68
+ description: string;
69
+ };
70
+ export declare const setupHelp: {
71
+ description: string;
72
+ };
73
+ export declare const shellHelp: {
74
+ description: string;
75
+ };
76
+ export declare const sshHelp: {
77
+ description: string;
78
+ };
79
+ export declare const statsHelp: {
80
+ description: string;
81
+ };
82
+ export declare const tinyModelsHelp: {
83
+ description: string;
84
+ };
85
+ export declare const tokenHelp: {
86
+ description: string;
87
+ };
88
+ export declare const ttsrHelp: {
89
+ description: string;
90
+ };
91
+ export declare const updateHelp: {
92
+ description: string;
93
+ };
94
+ export declare const usageHelp: {
95
+ description: string;
96
+ };
97
+ export declare const worktreeHelp: {
98
+ description: string;
99
+ };
@@ -28,6 +28,7 @@ export interface ArchiveGcResult {
28
28
  wouldArchive: number;
29
29
  archived: number;
30
30
  historyRowsDeleted: number;
31
+ statsRowsDeleted: number;
31
32
  ftsRebuilt: boolean;
32
33
  errors: string[];
33
34
  }
@@ -0,0 +1,2 @@
1
+ import "@oh-my-pi/pi-utils/env";
2
+ export declare function getExtraHelpText(): string;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Thinking selectors accepted by the `--thinking` CLI flag, in display order.
3
+ * Shared by help metadata, shell completions, and validation warnings.
4
+ */
5
+ export declare const CLI_THINKING_LEVELS: readonly string[];
@@ -72,6 +72,19 @@ interface BunInstallCachePruneResult {
72
72
  */
73
73
  export declare function pruneBunInstallCache(cacheDir: string, packageNames?: Set<string>): Promise<BunInstallCachePruneResult>;
74
74
  export declare function resolveBunGlobalNodeModulesDirFromLocations(globalBinDir: string | undefined, cacheDir: string | undefined): string | undefined;
75
+ /**
76
+ * Detect a musl-libc Linux host (Alpine, Void-musl) so self-update replaces a
77
+ * musl binary with the musl release asset instead of the glibc build, which
78
+ * would fail to start on the next run. The loader file alone is not sufficient:
79
+ * glibc hosts may have musl installed for cross-compilation.
80
+ */
81
+ interface MuslDetectionOptions {
82
+ platform?: NodeJS.Platform;
83
+ alpineRelease?: boolean;
84
+ lddOutput?: string;
85
+ }
86
+ /** Test seam for libc detection. */
87
+ export declare function isMuslLinuxForTest(options: Required<MuslDetectionOptions>): boolean;
75
88
  /**
76
89
  * Run the resolved omp binary and check if it reports the expected version.
77
90
  */
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `omp browser-relay` — drive the user's own Chrome tabs.
3
+ */
4
+ import { Command } from "@oh-my-pi/pi-utils/cli";
5
+ export default class BrowserRelay extends Command {
6
+ static description: string;
7
+ static args: {
8
+ action: import("@oh-my-pi/pi-utils/cli").ArgDescriptor & {
9
+ description: string;
10
+ options: ("install" | "serve")[];
11
+ required: false;
12
+ };
13
+ };
14
+ static flags: {
15
+ port: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"integer"> & {
16
+ char: string;
17
+ description: string;
18
+ default: number;
19
+ };
20
+ token: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
21
+ description: string;
22
+ };
23
+ dir: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
24
+ description: string;
25
+ };
26
+ "no-group": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
27
+ description: string;
28
+ default: boolean;
29
+ };
30
+ verbose: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
31
+ char: string;
32
+ description: string;
33
+ default: boolean;
34
+ };
35
+ };
36
+ static examples: string[];
37
+ run(): Promise<void>;
38
+ }
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Generate and optionally push a commit with changelog updates.
3
+ */
1
4
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
5
  export default class Commit extends Command {
3
6
  static description: string;
@@ -1,6 +1,6 @@
1
1
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
2
  export default class Complete extends Command {
3
- static hidden: boolean;
3
+ static hidden: true;
4
4
  static strict: boolean;
5
5
  run(): Promise<void>;
6
6
  }
@@ -1,3 +1,9 @@
1
+ /**
2
+ * `omp completions <bash|zsh|fish>` — print a shell completion script.
3
+ *
4
+ * The script is derived entirely from the declarative command/flag metadata
5
+ * (see `cli/completion-gen.ts`), so it never drifts from the actual CLI surface.
6
+ */
1
7
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
8
  export default class Completions extends Command {
3
9
  static description: string;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Test grep tool.
3
+ */
1
4
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
5
  export default class Grep extends Command {
3
6
  static description: string;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Join a shared collab session from the CLI: launches the interactive TUI and
3
+ * immediately runs `/join <link>`.
4
+ */
1
5
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
6
  export default class Join extends Command {
3
7
  static description: string;
@@ -0,0 +1,171 @@
1
+ export declare const launchHelp: {
2
+ description: string;
3
+ hidden: true;
4
+ args: {
5
+ messages: import("@oh-my-pi/pi-utils/cli").ArgDescriptor & {
6
+ description: string;
7
+ required: false;
8
+ multiple: true;
9
+ };
10
+ };
11
+ flags: {
12
+ model: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
13
+ description: string;
14
+ };
15
+ smol: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
16
+ description: string;
17
+ };
18
+ slow: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
19
+ description: string;
20
+ };
21
+ plan: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
22
+ description: string;
23
+ };
24
+ prewalk: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
25
+ description: string;
26
+ };
27
+ "no-prewalk": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
28
+ description: string;
29
+ };
30
+ "prewalk-into": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
31
+ description: string;
32
+ };
33
+ "plan-yolo": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
34
+ description: string;
35
+ };
36
+ "plan-yolo-into": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
37
+ description: string;
38
+ };
39
+ provider: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
40
+ description: string;
41
+ };
42
+ "api-key": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
43
+ description: string;
44
+ };
45
+ "system-prompt": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
46
+ description: string;
47
+ };
48
+ "append-system-prompt": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
49
+ description: string;
50
+ };
51
+ "allow-home": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
52
+ description: string;
53
+ };
54
+ profile: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
55
+ description: string;
56
+ };
57
+ alias: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
58
+ description: string;
59
+ };
60
+ cwd: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
61
+ description: string;
62
+ };
63
+ mode: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
64
+ description: string;
65
+ options: string[];
66
+ };
67
+ config: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
68
+ description: string;
69
+ multiple: true;
70
+ };
71
+ "add-dir": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
72
+ description: string;
73
+ multiple: true;
74
+ };
75
+ print: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
76
+ char: string;
77
+ description: string;
78
+ };
79
+ continue: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
80
+ char: string;
81
+ description: string;
82
+ };
83
+ resume: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
84
+ char: string;
85
+ description: string;
86
+ };
87
+ "from-claude": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
88
+ description: string;
89
+ };
90
+ "from-codex": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
91
+ description: string;
92
+ };
93
+ "session-dir": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
94
+ description: string;
95
+ };
96
+ "no-session": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
97
+ description: string;
98
+ };
99
+ models: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
100
+ description: string;
101
+ };
102
+ "no-tools": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
103
+ description: string;
104
+ };
105
+ "no-lsp": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
106
+ description: string;
107
+ };
108
+ "no-pty": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
109
+ description: string;
110
+ };
111
+ tools: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
112
+ description: string;
113
+ };
114
+ thinking: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
115
+ description: string;
116
+ options: string[];
117
+ };
118
+ "service-tier": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
119
+ description: string;
120
+ options: ("auto" | "default" | "flex" | "none" | "priority" | "scale")[];
121
+ };
122
+ "hide-thinking": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
123
+ description: string;
124
+ };
125
+ advisor: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
126
+ description: string;
127
+ };
128
+ hook: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
129
+ description: string;
130
+ multiple: true;
131
+ };
132
+ extension: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
133
+ char: string;
134
+ description: string;
135
+ multiple: true;
136
+ };
137
+ "no-extensions": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
138
+ description: string;
139
+ };
140
+ "no-skills": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
141
+ description: string;
142
+ };
143
+ skills: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
144
+ description: string;
145
+ };
146
+ "no-rules": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
147
+ description: string;
148
+ };
149
+ export: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
150
+ description: string;
151
+ };
152
+ "no-title": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
153
+ description: string;
154
+ };
155
+ "print-thoughts": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
156
+ description: string;
157
+ };
158
+ "max-time": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
159
+ description: string;
160
+ };
161
+ "auto-approve": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
162
+ aliases: string[];
163
+ description: string;
164
+ };
165
+ "approval-mode": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
166
+ options: string[];
167
+ description: string;
168
+ };
169
+ };
170
+ examples: string[];
171
+ };
@@ -4,7 +4,7 @@
4
4
  import { Command } from "@oh-my-pi/pi-utils/cli";
5
5
  export default class Index extends Command {
6
6
  static description: string;
7
- static hidden: boolean;
7
+ static hidden: true;
8
8
  static args: {
9
9
  messages: import("@oh-my-pi/pi-utils/cli").ArgDescriptor & {
10
10
  description: string;
@@ -119,6 +119,10 @@ export default class Index extends Command {
119
119
  description: string;
120
120
  options: string[];
121
121
  };
122
+ "service-tier": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
123
+ description: string;
124
+ options: ("auto" | "default" | "flex" | "none" | "priority" | "scale")[];
125
+ };
122
126
  "hide-thinking": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
123
127
  description: string;
124
128
  };
@@ -1,3 +1,6 @@
1
+ /**
2
+ * List, search, and refresh available models.
3
+ */
1
4
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
5
  export default class Models extends Command {
3
6
  static description: string;
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Synthesize text with the local TTS engine and play it (or save it with --out).
3
+ *
4
+ * Text comes from the argument or --file. Input is segmented into
5
+ * sentence-sized chunks ({@link SpeakableStream}) and synthesized through the
6
+ * streaming TTS worker, so arbitrarily long text plays gaplessly instead of
7
+ * hitting Kokoro's single-call ~510-phoneme truncation. --out concatenates the
8
+ * streamed segments into one WAV. The first run downloads the configured local
9
+ * model into the worker's cache.
10
+ */
1
11
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
12
  export default class Say extends Command {
3
13
  #private;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * List and clean up agent-managed git worktrees under `~/.omp/wt`.
3
+ */
1
4
  import { Command } from "@oh-my-pi/pi-utils/cli";
2
5
  export default class Worktree extends Command {
3
6
  static description: string;
@@ -16,6 +16,7 @@ interface AppKeybindings {
16
16
  "app.model.select": true;
17
17
  "app.model.selectTemporary": true;
18
18
  "app.tools.expand": true;
19
+ "app.tools.toggleVisibility": true;
19
20
  "app.editor.external": true;
20
21
  "app.message.followUp": true;
21
22
  "app.retry": true;
@@ -227,6 +228,10 @@ export declare const KEYBINDINGS: {
227
228
  readonly defaultKeys: "ctrl+o";
228
229
  readonly description: "Expand tools";
229
230
  };
231
+ readonly "app.tools.toggleVisibility": {
232
+ readonly defaultKeys: "ctrl+shift+o";
233
+ readonly description: "Show or hide tool activity";
234
+ };
230
235
  readonly "app.editor.external": {
231
236
  readonly defaultKeys: "ctrl+g";
232
237
  readonly description: "Open external editor";
@@ -22,7 +22,7 @@ export declare const DISCOVERY_DEFAULT_MAX_TOKENS = 32768;
22
22
  * empty (issue #7087). Anything that is not strictly loopback therefore gets
23
23
  * {@link REMOTE_DISCOVERY_TIMEOUT_MS}.
24
24
  */
25
- export declare function discoveryProbeTimeoutMs(baseUrl: string, loopbackMs: number): number;
25
+ export declare function discoveryProbeTimeoutMs(baseUrl: string, loopbackMs: number, customTimeoutMs?: number): number;
26
26
  export declare function getImplicitOllamaBaseUrl(): string;
27
27
  export declare function getOllamaContextLengthOverride(): number | undefined;
28
28
  /** Routes discovered-model `maxTokens` defaults around Anthropic's 3× output divisor. */
@@ -74,7 +74,7 @@ export declare function discoverOllamaModels(providerConfig: DiscoveryProviderCo
74
74
  */
75
75
  export declare function applyLlamaCppQwenThinking(model: Model<Api>): Model<Api>;
76
76
  export declare function discoverLlamaCppModels(providerConfig: DiscoveryProviderConfig, ctx: DiscoveryContext): Promise<Model<Api>[]>;
77
- export declare function discoverLlamaCppModelRuntimeMetadata(model: Pick<Model<Api>, "provider" | "id" | "baseUrl" | "headers">, ctx: DiscoveryContext): Promise<LlamaCppDiscoveredModelRuntimeMetadata | undefined>;
77
+ export declare function discoverLlamaCppModelRuntimeMetadata(model: Pick<Model<Api>, "provider" | "id" | "baseUrl" | "headers">, ctx: DiscoveryContext, customTimeoutMs?: number): Promise<LlamaCppDiscoveredModelRuntimeMetadata | undefined>;
78
78
  export declare function discoverOpenAIModelsList(providerConfig: DiscoveryProviderConfig, ctx: DiscoveryContext): Promise<Model<Api>[]>;
79
79
  export declare function discoverLiteLLMModels(providerConfig: DiscoveryProviderConfig, ctx: DiscoveryContext): Promise<Model<Api>[]>;
80
80
  /**
@@ -269,6 +269,7 @@ export declare const getModelsConfigSchemaBundle: () => {
269
269
  }, {}>;
270
270
  ProviderDiscoverySchema: import("arktype/internal/variants/object.ts").ObjectType<{
271
271
  type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
272
+ timeoutMs?: number | undefined;
272
273
  }, {}>;
273
274
  ProviderAuthSchema: import("arktype/internal/variants/string.ts").StringType<"apiKey" | "none" | "oauth", {}>;
274
275
  ModelsConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
@@ -402,6 +403,7 @@ export declare const getModelsConfigSchemaBundle: () => {
402
403
  auth?: "apiKey" | "none" | "oauth" | undefined;
403
404
  discovery?: {
404
405
  type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
406
+ timeoutMs?: number | undefined;
405
407
  } | undefined;
406
408
  models?: {
407
409
  id: string;
@@ -869,6 +871,7 @@ export declare const getModelsConfigSchema: () => import("arktype/internal/varia
869
871
  auth?: "apiKey" | "none" | "oauth" | undefined;
870
872
  discovery?: {
871
873
  type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
874
+ timeoutMs?: number | undefined;
872
875
  } | undefined;
873
876
  models?: {
874
877
  id: string;
@@ -266,6 +266,7 @@ export declare const OpenAICompatSchema: import("arktype/internal/variants/objec
266
266
  } | undefined;
267
267
  }, {}>, ProviderDiscoverySchema: import("arktype/internal/variants/object.ts").ObjectType<{
268
268
  type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
269
+ timeoutMs?: number | undefined;
269
270
  }, {}>, ProviderAuthSchema: import("arktype/internal/variants/string.ts").StringType<"apiKey" | "none" | "oauth", {}>, ModelsConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
270
271
  providers?: {
271
272
  [x: string]: {
@@ -397,6 +398,7 @@ export declare const OpenAICompatSchema: import("arktype/internal/variants/objec
397
398
  auth?: "apiKey" | "none" | "oauth" | undefined;
398
399
  discovery?: {
399
400
  type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
401
+ timeoutMs?: number | undefined;
400
402
  } | undefined;
401
403
  models?: {
402
404
  id: string;
@@ -158,6 +158,7 @@ export declare const ModelsConfigFile: ConfigFile<{
158
158
  auth?: "apiKey" | "none" | "oauth" | undefined;
159
159
  discovery?: {
160
160
  type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
161
+ timeoutMs?: number | undefined;
161
162
  } | undefined;
162
163
  models?: {
163
164
  id: string;