@oh-my-pi/pi-coding-agent 17.2.3 → 17.2.5

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 (375) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/dist/{CHANGELOG-c5hpqt9r.md → CHANGELOG-q2w43aw3.md} +92 -0
  3. package/dist/cli.js +3979 -3548
  4. package/dist/{template-8vdv6xb4.js → template-c2hyaytt.js} +8 -26
  5. package/dist/types/advisor/advise-tool.d.ts +6 -0
  6. package/dist/types/advisor/runtime.d.ts +4 -4
  7. package/dist/types/capability/mcp.d.ts +9 -0
  8. package/dist/types/cli/args.d.ts +4 -1
  9. package/dist/types/cli/browser-relay-cli.d.ts +15 -0
  10. package/dist/types/cli/command-help.d.ts +99 -0
  11. package/dist/types/cli/help-extra.d.ts +2 -0
  12. package/dist/types/cli/models-cli.d.ts +1 -1
  13. package/dist/types/cli/thinking-levels.d.ts +5 -0
  14. package/dist/types/cli/update-cli.d.ts +13 -0
  15. package/dist/types/commands/browser-relay.d.ts +38 -0
  16. package/dist/types/commands/commit.d.ts +3 -0
  17. package/dist/types/commands/complete.d.ts +1 -1
  18. package/dist/types/commands/completions.d.ts +6 -0
  19. package/dist/types/commands/grep.d.ts +3 -0
  20. package/dist/types/commands/join.d.ts +4 -0
  21. package/dist/types/commands/launch-help.d.ts +171 -0
  22. package/dist/types/commands/launch.d.ts +5 -1
  23. package/dist/types/commands/models.d.ts +3 -0
  24. package/dist/types/commands/say.d.ts +10 -0
  25. package/dist/types/commands/worktree.d.ts +3 -0
  26. package/dist/types/config/keybindings.d.ts +6 -1
  27. package/dist/types/config/model-discovery.d.ts +2 -2
  28. package/dist/types/config/models-config-schema-bundle.d.ts +3 -0
  29. package/dist/types/config/models-config-schema.d.ts +2 -0
  30. package/dist/types/config/models-config.d.ts +1 -0
  31. package/dist/types/config/service-tier.d.ts +2 -0
  32. package/dist/types/config/settings-schema.d.ts +70 -22
  33. package/dist/types/cursor-bridge-tools.d.ts +1 -1
  34. package/dist/types/cursor.d.ts +7 -4
  35. package/dist/types/discovery/helpers.d.ts +6 -0
  36. package/dist/types/discovery/omp-extension-roots.d.ts +21 -2
  37. package/dist/types/edit/index.d.ts +3 -3
  38. package/dist/types/edit/modes/replace.d.ts +22 -15
  39. package/dist/types/edit/renderer.d.ts +1 -1
  40. package/dist/types/eval/py/kernel.d.ts +3 -1
  41. package/dist/types/eval/py/spawn-options.d.ts +12 -16
  42. package/dist/types/extensibility/extensions/loader.d.ts +6 -2
  43. package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +8 -1
  44. package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +1 -1
  45. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
  46. package/dist/types/extensibility/plugins/marketplace/registry.d.ts +2 -2
  47. package/dist/types/launch/broker.d.ts +1 -1
  48. package/dist/types/launch/client.d.ts +6 -3
  49. package/dist/types/launch/ensure.d.ts +8 -0
  50. package/dist/types/launch/paths.d.ts +3 -2
  51. package/dist/types/launch/protocol.d.ts +2 -2
  52. package/dist/types/lsp/client.d.ts +2 -0
  53. package/dist/types/lsp/mux/daemon.d.ts +15 -0
  54. package/dist/types/lsp/mux/protocol.d.ts +57 -0
  55. package/dist/types/lsp/mux/server.d.ts +18 -0
  56. package/dist/types/lsp/types.d.ts +22 -2
  57. package/dist/types/main.d.ts +2 -0
  58. package/dist/types/mcp/request-id.d.ts +19 -0
  59. package/dist/types/mcp/types.d.ts +14 -0
  60. package/dist/types/memory-backend/index.d.ts +1 -0
  61. package/dist/types/memory-backend/messages.d.ts +15 -0
  62. package/dist/types/mnemopi/embed-client.d.ts +1 -1
  63. package/dist/types/mnemopi/state.d.ts +0 -23
  64. package/dist/types/modes/components/assistant-message.d.ts +2 -0
  65. package/dist/types/modes/components/custom-editor.d.ts +2 -1
  66. package/dist/types/modes/components/model-browser.d.ts +7 -5
  67. package/dist/types/modes/components/model-picker.d.ts +9 -3
  68. package/dist/types/modes/components/read-tool-group.d.ts +11 -0
  69. package/dist/types/modes/components/stripped-tool-calls-placeholder.d.ts +12 -0
  70. package/dist/types/modes/components/tool-execution.d.ts +2 -0
  71. package/dist/types/modes/controllers/input-controller.d.ts +1 -0
  72. package/dist/types/modes/interactive-mode.d.ts +1 -0
  73. package/dist/types/modes/types.d.ts +2 -1
  74. package/dist/types/modes/workflow.d.ts +2 -1
  75. package/dist/types/registry/agent-lifecycle.d.ts +14 -5
  76. package/dist/types/registry/agent-registry.d.ts +4 -3
  77. package/dist/types/sdk.d.ts +4 -2
  78. package/dist/types/secrets/index.d.ts +7 -9
  79. package/dist/types/session/agent-session-types.d.ts +3 -1
  80. package/dist/types/session/agent-session.d.ts +6 -1
  81. package/dist/types/session/indexed-session-storage.d.ts +1 -0
  82. package/dist/types/session/model-controls.d.ts +0 -1
  83. package/dist/types/session/session-advisors.d.ts +8 -1
  84. package/dist/types/session/session-context.d.ts +2 -1
  85. package/dist/types/session/session-maintenance.d.ts +2 -0
  86. package/dist/types/session/session-manager.d.ts +16 -5
  87. package/dist/types/session/session-stats.d.ts +10 -0
  88. package/dist/types/session/session-storage.d.ts +15 -3
  89. package/dist/types/system-prompt.d.ts +6 -1
  90. package/dist/types/task/index.d.ts +2 -1
  91. package/dist/types/task/spawn-policy.d.ts +5 -0
  92. package/dist/types/thinking.d.ts +1 -7
  93. package/dist/types/tools/ast-grep.d.ts +1 -1
  94. package/dist/types/tools/browser/registry.d.ts +2 -1
  95. package/dist/types/tools/browser/relay/bridge.d.ts +35 -0
  96. package/dist/types/tools/browser/relay/daemon.d.ts +16 -0
  97. package/dist/types/tools/browser/relay/kind.d.ts +19 -0
  98. package/dist/types/tools/browser/relay/protocol.d.ts +97 -0
  99. package/dist/types/tools/browser/relay/server.d.ts +35 -0
  100. package/dist/types/tools/browser/render.d.ts +1 -0
  101. package/dist/types/tools/browser.d.ts +3 -0
  102. package/dist/types/tools/computer/exposure.d.ts +9 -7
  103. package/dist/types/tools/computer/protocol.d.ts +70 -17
  104. package/dist/types/tools/computer/supervisor.d.ts +23 -10
  105. package/dist/types/tools/computer/worker-entry.d.ts +1 -0
  106. package/dist/types/tools/computer/worker.d.ts +42 -7
  107. package/dist/types/tools/computer-renderer.d.ts +7 -5
  108. package/dist/types/tools/computer.d.ts +25 -44
  109. package/dist/types/tools/context.d.ts +3 -0
  110. package/dist/types/tools/default-renderer.d.ts +3 -0
  111. package/dist/types/tools/glob.d.ts +1 -1
  112. package/dist/types/tools/grep.d.ts +1 -1
  113. package/dist/types/tools/render-utils.d.ts +2 -0
  114. package/dist/types/tools/{browser/run-cancellation.d.ts → run-scope.d.ts} +8 -8
  115. package/dist/types/tools/tool-timeouts.d.ts +5 -0
  116. package/dist/types/tools/xdev.d.ts +8 -0
  117. package/dist/types/utils/clipboard.d.ts +2 -2
  118. package/dist/types/web/kagi.d.ts +1 -0
  119. package/dist/types/web/search/index.d.ts +1 -1
  120. package/dist/types/web/search/providers/anthropic.d.ts +1 -0
  121. package/dist/types/web/search/providers/base.d.ts +2 -0
  122. package/dist/types/web/search/providers/brave.d.ts +1 -0
  123. package/dist/types/web/search/providers/browser-page.d.ts +1 -0
  124. package/dist/types/web/search/providers/codex.d.ts +1 -0
  125. package/dist/types/web/search/providers/exa.d.ts +1 -0
  126. package/dist/types/web/search/providers/firecrawl.d.ts +1 -0
  127. package/dist/types/web/search/providers/gemini.d.ts +1 -0
  128. package/dist/types/web/search/providers/jina.d.ts +1 -0
  129. package/dist/types/web/search/providers/kagi.d.ts +1 -0
  130. package/dist/types/web/search/providers/kimi.d.ts +1 -0
  131. package/dist/types/web/search/providers/parallel.d.ts +1 -0
  132. package/dist/types/web/search/providers/perplexity.d.ts +1 -0
  133. package/dist/types/web/search/providers/searxng.d.ts +1 -0
  134. package/dist/types/web/search/providers/tavily.d.ts +1 -0
  135. package/dist/types/web/search/providers/tinyfish.d.ts +1 -0
  136. package/dist/types/web/search/providers/utils.d.ts +6 -9
  137. package/dist/types/web/search/providers/zai.d.ts +1 -0
  138. package/dist/types/web/search/types.d.ts +4 -0
  139. package/package.json +12 -12
  140. package/scripts/legacy-pi-virtual-module.ts +12 -2
  141. package/src/advisor/advise-tool.ts +18 -0
  142. package/src/advisor/runtime.ts +6 -6
  143. package/src/capability/mcp.ts +7 -0
  144. package/src/cli/args.ts +7 -87
  145. package/src/cli/browser-relay-cli.ts +119 -0
  146. package/src/cli/command-help.ts +103 -0
  147. package/src/cli/completion-gen.ts +5 -5
  148. package/src/cli/flag-tables.ts +9 -0
  149. package/src/cli/help-extra.ts +89 -0
  150. package/src/cli/models-cli.ts +13 -16
  151. package/src/cli/setup-cli.ts +13 -21
  152. package/src/cli/thinking-levels.ts +7 -0
  153. package/src/cli/update-cli.ts +26 -7
  154. package/src/cli-commands.ts +170 -33
  155. package/src/cli.ts +17 -5
  156. package/src/collab/host.ts +1 -1
  157. package/src/commands/acp.ts +3 -1
  158. package/src/commands/agents.ts +3 -2
  159. package/src/commands/auth-broker.ts +3 -2
  160. package/src/commands/auth-gateway.ts +3 -2
  161. package/src/commands/bench.ts +2 -3
  162. package/src/commands/browser-relay.ts +53 -0
  163. package/src/commands/cleanse.ts +2 -2
  164. package/src/commands/commit.ts +3 -2
  165. package/src/commands/complete.ts +2 -1
  166. package/src/commands/completions.ts +3 -2
  167. package/src/commands/config.ts +3 -2
  168. package/src/commands/dry-balance.ts +2 -2
  169. package/src/commands/gallery.ts +3 -2
  170. package/src/commands/gc.ts +3 -2
  171. package/src/commands/grep.ts +3 -2
  172. package/src/commands/grievances.ts +3 -2
  173. package/src/commands/install.ts +2 -2
  174. package/src/commands/join.ts +3 -2
  175. package/src/commands/launch-help.ts +116 -0
  176. package/src/commands/launch.ts +7 -191
  177. package/src/commands/models.ts +3 -2
  178. package/src/commands/plugin.ts +3 -2
  179. package/src/commands/read.ts +3 -2
  180. package/src/commands/say.ts +3 -2
  181. package/src/commands/setup.ts +3 -2
  182. package/src/commands/shell.ts +3 -2
  183. package/src/commands/ssh.ts +3 -2
  184. package/src/commands/stats.ts +3 -2
  185. package/src/commands/tiny-models.ts +2 -2
  186. package/src/commands/token.ts +2 -2
  187. package/src/commands/ttsr.ts +2 -2
  188. package/src/commands/update.ts +3 -2
  189. package/src/commands/usage.ts +3 -2
  190. package/src/commands/web-search.ts +3 -2
  191. package/src/commands/worktree.ts +3 -2
  192. package/src/config/keybindings.ts +19 -9
  193. package/src/config/mcp-schema.json +5 -0
  194. package/src/config/model-discovery.ts +30 -13
  195. package/src/config/model-registry.ts +16 -6
  196. package/src/config/models-config-schema-bundle.ts +9 -0
  197. package/src/config/resolve-config-value.ts +2 -1
  198. package/src/config/service-tier.ts +5 -0
  199. package/src/config/settings-schema.ts +73 -21
  200. package/src/cursor-bridge-tools.ts +1 -1
  201. package/src/cursor.ts +10 -14
  202. package/src/discovery/builtin.ts +10 -0
  203. package/src/discovery/helpers.ts +10 -0
  204. package/src/discovery/mcp-json.ts +11 -1
  205. package/src/discovery/omp-extension-roots.ts +79 -20
  206. package/src/discovery/omp-plugins.ts +10 -1
  207. package/src/edit/diff.ts +17 -8
  208. package/src/edit/index.ts +20 -7
  209. package/src/edit/modes/replace.ts +93 -40
  210. package/src/edit/renderer.ts +1 -1
  211. package/src/edit/streaming.ts +14 -17
  212. package/src/eval/py/kernel.ts +2 -1
  213. package/src/eval/py/spawn-options.ts +24 -29
  214. package/src/export/html/template.js +8 -26
  215. package/src/extensibility/extensions/loader.ts +66 -28
  216. package/src/extensibility/extensions/wrapper.ts +1 -0
  217. package/src/extensibility/legacy-pi-ai-shim.ts +22 -1
  218. package/src/extensibility/legacy-pi-coding-agent-shim.ts +7 -6
  219. package/src/extensibility/plugins/legacy-pi-compat.ts +124 -57
  220. package/src/extensibility/plugins/marketplace/registry.ts +4 -8
  221. package/src/extensibility/skills.ts +11 -0
  222. package/src/extensibility/utils.ts +10 -2
  223. package/src/launch/broker.ts +1 -1
  224. package/src/launch/client.ts +32 -13
  225. package/src/launch/ensure.ts +73 -0
  226. package/src/launch/paths.ts +3 -6
  227. package/src/launch/protocol.ts +2 -2
  228. package/src/lsp/client.ts +23 -2
  229. package/src/lsp/index.ts +8 -0
  230. package/src/lsp/mux/daemon.ts +348 -0
  231. package/src/lsp/mux/protocol.ts +96 -0
  232. package/src/lsp/mux/server.ts +797 -0
  233. package/src/lsp/types.ts +28 -2
  234. package/src/main.ts +31 -24
  235. package/src/mcp/config.ts +1 -0
  236. package/src/mcp/oauth-flow.ts +11 -1
  237. package/src/mcp/request-id.ts +24 -0
  238. package/src/mcp/transports/http.ts +4 -2
  239. package/src/mcp/transports/sse.ts +4 -2
  240. package/src/mcp/transports/stdio.ts +4 -2
  241. package/src/mcp/types.ts +15 -0
  242. package/src/memory-backend/index.ts +1 -0
  243. package/src/memory-backend/messages.ts +19 -0
  244. package/src/mnemopi/embed-client.ts +49 -2
  245. package/src/mnemopi/state.ts +57 -23
  246. package/src/modes/components/agent-hub.ts +1 -1
  247. package/src/modes/components/assistant-message.ts +11 -0
  248. package/src/modes/components/chat-transcript-builder.ts +4 -0
  249. package/src/modes/components/custom-editor.ts +10 -1
  250. package/src/modes/components/model-browser.ts +25 -17
  251. package/src/modes/components/model-picker.ts +10 -6
  252. package/src/modes/components/read-tool-group.ts +36 -0
  253. package/src/modes/components/status-line/component.ts +1 -1
  254. package/src/modes/components/stripped-tool-calls-placeholder.ts +35 -0
  255. package/src/modes/components/tool-execution.ts +85 -20
  256. package/src/modes/components/tree-selector.ts +46 -48
  257. package/src/modes/controllers/command-controller.ts +2 -2
  258. package/src/modes/controllers/event-controller.ts +199 -10
  259. package/src/modes/controllers/input-controller.ts +39 -1
  260. package/src/modes/controllers/mcp-command-controller.ts +11 -5
  261. package/src/modes/controllers/selector-controller.ts +47 -6
  262. package/src/modes/interactive-mode.ts +2 -0
  263. package/src/modes/types.ts +6 -1
  264. package/src/modes/utils/hotkeys-markdown.ts +1 -0
  265. package/src/modes/utils/interactive-context-helpers.ts +1 -0
  266. package/src/modes/utils/ui-helpers.ts +6 -10
  267. package/src/modes/workflow.ts +8 -2
  268. package/src/prompts/agents/init.md +1 -1
  269. package/src/prompts/system/plan-mode-active.md +2 -2
  270. package/src/prompts/system/system-prompt.md +26 -52
  271. package/src/prompts/system/workflow-notice.md +3 -3
  272. package/src/prompts/tools/ast-grep.md +1 -1
  273. package/src/prompts/tools/bash.md +1 -1
  274. package/src/prompts/tools/browser.md +1 -0
  275. package/src/prompts/tools/computer.md +21 -21
  276. package/src/prompts/tools/glob.md +1 -1
  277. package/src/prompts/tools/grep.md +1 -1
  278. package/src/prompts/tools/replace.md +5 -4
  279. package/src/prompts/tools/task.md +4 -4
  280. package/src/registry/agent-lifecycle.ts +36 -11
  281. package/src/registry/agent-registry.ts +12 -5
  282. package/src/sdk.ts +102 -35
  283. package/src/secrets/index.ts +16 -18
  284. package/src/session/agent-session-types.ts +3 -1
  285. package/src/session/agent-session.ts +23 -2
  286. package/src/session/agent-storage.ts +6 -4
  287. package/src/session/history-storage.ts +4 -2
  288. package/src/session/indexed-session-storage.ts +9 -0
  289. package/src/session/messages.ts +31 -7
  290. package/src/session/model-controls.ts +0 -1
  291. package/src/session/prewalk.ts +24 -2
  292. package/src/session/session-advisors.ts +21 -3
  293. package/src/session/session-context.ts +16 -12
  294. package/src/session/session-dump-format.ts +1 -1
  295. package/src/session/session-maintenance.ts +41 -4
  296. package/src/session/session-manager.ts +181 -94
  297. package/src/session/session-paths.ts +118 -55
  298. package/src/session/session-stats.ts +48 -3
  299. package/src/session/session-storage.ts +30 -22
  300. package/src/session/session-tools.ts +25 -23
  301. package/src/session/stream-guards.ts +1 -1
  302. package/src/slash-commands/builtin-registry.ts +29 -26
  303. package/src/system-prompt.ts +14 -4
  304. package/src/task/executor.ts +8 -1
  305. package/src/task/index.ts +23 -8
  306. package/src/task/spawn-policy.ts +14 -0
  307. package/src/thinking.ts +2 -8
  308. package/src/tiny/text.ts +12 -0
  309. package/src/tools/ast-grep.ts +10 -4
  310. package/src/tools/browser/cmux/cmux-tab.ts +5 -10
  311. package/src/tools/browser/cmux/rpc.ts +2 -8
  312. package/src/tools/browser/registry.ts +53 -2
  313. package/src/tools/browser/relay/bridge.ts +945 -0
  314. package/src/tools/browser/relay/daemon.ts +117 -0
  315. package/src/tools/browser/relay/extension-assets/background.js.txt +242 -0
  316. package/src/tools/browser/relay/extension-assets/manifest.json.txt +14 -0
  317. package/src/tools/browser/relay/extension-assets/options.html.txt +53 -0
  318. package/src/tools/browser/relay/extension-assets/options.js.txt +23 -0
  319. package/src/tools/browser/relay/kind.ts +41 -0
  320. package/src/tools/browser/relay/protocol.ts +54 -0
  321. package/src/tools/browser/relay/server.ts +141 -0
  322. package/src/tools/browser/render.ts +4 -1
  323. package/src/tools/browser/shared-daemon.ts +7 -58
  324. package/src/tools/browser/tab-supervisor.ts +5 -4
  325. package/src/tools/browser/tab-worker.ts +33 -12
  326. package/src/tools/browser.ts +26 -1
  327. package/src/tools/computer/exposure.ts +11 -35
  328. package/src/tools/computer/protocol.ts +51 -10
  329. package/src/tools/computer/supervisor.ts +227 -124
  330. package/src/tools/computer/worker-entry.ts +11 -6
  331. package/src/tools/computer/worker.ts +695 -81
  332. package/src/tools/computer-renderer.ts +104 -65
  333. package/src/tools/computer.ts +134 -428
  334. package/src/tools/context.ts +3 -0
  335. package/src/tools/default-renderer.ts +19 -4
  336. package/src/tools/glob.ts +9 -2
  337. package/src/tools/grep.ts +12 -6
  338. package/src/tools/index.ts +10 -6
  339. package/src/tools/inspect-image.ts +32 -6
  340. package/src/tools/render-utils.ts +2 -0
  341. package/src/tools/{browser/run-cancellation.ts → run-scope.ts} +11 -11
  342. package/src/tools/tool-timeouts.ts +1 -0
  343. package/src/tools/xdev.ts +29 -2
  344. package/src/utils/clipboard.ts +40 -14
  345. package/src/utils/command-args.ts +26 -28
  346. package/src/utils/tool-choice.ts +0 -13
  347. package/src/web/kagi.ts +2 -1
  348. package/src/web/search/index.ts +18 -2
  349. package/src/web/search/providers/anthropic.ts +7 -2
  350. package/src/web/search/providers/base.ts +2 -0
  351. package/src/web/search/providers/brave.ts +3 -1
  352. package/src/web/search/providers/browser-page.ts +6 -4
  353. package/src/web/search/providers/codex.ts +4 -1
  354. package/src/web/search/providers/duckduckgo.ts +2 -1
  355. package/src/web/search/providers/ecosia.ts +2 -1
  356. package/src/web/search/providers/exa.ts +4 -2
  357. package/src/web/search/providers/firecrawl.ts +3 -1
  358. package/src/web/search/providers/gemini.ts +8 -2
  359. package/src/web/search/providers/google.ts +2 -1
  360. package/src/web/search/providers/jina.ts +12 -2
  361. package/src/web/search/providers/kagi.ts +3 -0
  362. package/src/web/search/providers/kimi.ts +5 -1
  363. package/src/web/search/providers/mojeek.ts +2 -1
  364. package/src/web/search/providers/parallel.ts +5 -1
  365. package/src/web/search/providers/perplexity.ts +6 -3
  366. package/src/web/search/providers/public.ts +1 -1
  367. package/src/web/search/providers/searxng.ts +11 -5
  368. package/src/web/search/providers/startpage.ts +10 -4
  369. package/src/web/search/providers/synthetic.ts +11 -5
  370. package/src/web/search/providers/tavily.ts +3 -1
  371. package/src/web/search/providers/tinyfish.ts +3 -1
  372. package/src/web/search/providers/utils.ts +12 -10
  373. package/src/web/search/providers/xai.ts +2 -2
  374. package/src/web/search/providers/zai.ts +18 -3
  375. package/src/web/search/types.ts +6 -0
@@ -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 ? '└' : '├');
@@ -109,6 +109,12 @@ export declare class AdviseTool implements AgentTool<typeof adviseSchema, Advise
109
109
  }, {}>;
110
110
  readonly intent: "omit";
111
111
  constructor(onAdvice: (note: string, severity?: AdviseDetails["severity"]) => void);
112
+ /**
113
+ * Mark whether the next advisor prompt reviews an in-progress primary turn.
114
+ * Non-blockers are withheld until a completed update so partial work does
115
+ * not interrupt the primary before it can finish its planned steps.
116
+ */
117
+ beginUpdate(inProgress: boolean): void;
112
118
  /** Clear delivered-note memory when the advisor starts a fresh conversation. */
113
119
  resetDeliveredNotes(): void;
114
120
  execute(_toolCallId: string, args: AdviseParams, _signal?: AbortSignal, _onUpdate?: AgentToolUpdateCallback<AdviseDetails>, _context?: AgentToolContext): Promise<AgentToolResult<AdviseDetails>>;
@@ -41,11 +41,11 @@ export interface AdvisorRuntimeHost {
41
41
  maintainContext?(incomingTokens: number, signal: AbortSignal): Promise<boolean>;
42
42
  /**
43
43
  * Called immediately before each `agent.prompt(batch)` cycle. Lets the host
44
- * clear per-update advisor state currently the one-advise-per-update gate
45
- * in {@link AdvisorEmissionGuard}, which the host owns because it is the
46
- * one that routes `advise()` results back to the primary.
44
+ * clear per-update advisor state and apply the in-progress delivery policy.
45
+ * The host owns these gates because it routes `advise()` results back to the
46
+ * primary.
47
47
  */
48
- beginAdvisorUpdate?(): void;
48
+ beginAdvisorUpdate?(inProgress: boolean): void;
49
49
  /**
50
50
  * Called with the error of every failed advisor turn, before the retry sleep
51
51
  * or the dropped-after-3 path. Lets the host apply credential-level remedies
@@ -1,3 +1,10 @@
1
+ /**
2
+ * MCP (Model Context Protocol) Servers Capability
3
+ *
4
+ * Canonical shape for MCP server configurations, regardless of source format.
5
+ * All providers translate their native format to this shape.
6
+ */
7
+ import type { MCPRequestIdFormat } from "../mcp/types.js";
1
8
  import type { SourceMeta } from "./types.js";
2
9
  /**
3
10
  * Canonical MCP server configuration.
@@ -9,6 +16,8 @@ export interface MCPServer {
9
16
  enabled?: boolean;
10
17
  /** Connection timeout in milliseconds */
11
18
  timeout?: number;
19
+ /** Encoding for outgoing JSON-RPC request ids (default: `"number"`) */
20
+ requestIdFormat?: MCPRequestIdFormat;
12
21
  /** Command to run (for stdio transport) */
13
22
  command?: string;
14
23
  /** Command arguments */
@@ -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
+ };
@@ -0,0 +1,2 @@
1
+ import "@oh-my-pi/pi-utils/env";
2
+ export declare function getExtraHelpText(): string;
@@ -37,7 +37,7 @@ export interface RunModelsListingOptions {
37
37
  settingsExtensions?: string[];
38
38
  /** Disabled extension ids from settings (`disabledExtensions`). */
39
39
  disabledExtensionIds?: string[];
40
- /** When true, skip discovery and only load `additionalExtensionPaths`. */
40
+ /** When true, exclude ambient factories and resolve only `additionalExtensionPaths`. */
41
41
  disableExtensionDiscovery?: boolean;
42
42
  }
43
43
  export declare function runModelsListing(options: RunModelsListingOptions): Promise<void>;
@@ -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";
@@ -240,7 +245,7 @@ export declare const KEYBINDINGS: {
240
245
  readonly description: "Retry last failed assistant turn";
241
246
  };
242
247
  readonly "app.message.dequeue": {
243
- readonly defaultKeys: "alt+up";
248
+ readonly defaultKeys: ["alt+up", "shift+up"];
244
249
  readonly description: "Dequeue message";
245
250
  };
246
251
  readonly "app.clipboard.pasteImage": {