@oh-my-pi/pi-coding-agent 15.12.3 → 15.13.0
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.
- package/CHANGELOG.md +347 -7
- package/dist/cli.js +1615 -1231
- package/dist/types/async/job-manager.d.ts +15 -0
- package/dist/types/autolearn/controller.d.ts +25 -0
- package/dist/types/autolearn/managed-skills.d.ts +45 -0
- package/dist/types/autoresearch/state.d.ts +1 -1
- package/dist/types/autoresearch/tools/init-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/log-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/run-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/update-notes.d.ts +1 -1
- package/dist/types/autoresearch/types.d.ts +1 -1
- package/dist/types/cli/args.d.ts +19 -2
- package/dist/types/cli/models-cli.d.ts +49 -0
- package/dist/types/cli/session-picker.d.ts +1 -1
- package/dist/types/cli/setup-cli.d.ts +1 -1
- package/dist/types/cli/setup-model-picker.d.ts +14 -0
- package/dist/types/collab/protocol.d.ts +1 -1
- package/dist/types/commands/launch.d.ts +0 -3
- package/dist/types/commands/models.d.ts +33 -0
- package/dist/types/commands/say.d.ts +24 -0
- package/dist/types/commands/token.d.ts +25 -0
- package/dist/types/commit/agentic/tools/analyze-file.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-file-diff.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-hunk.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-overview.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +1 -1
- package/dist/types/commit/agentic/tools/recent-commits.d.ts +1 -1
- package/dist/types/commit/agentic/tools/schemas.d.ts +1 -1
- package/dist/types/commit/agentic/tools/split-commit.d.ts +1 -1
- package/dist/types/commit/changelog/generate.d.ts +1 -1
- package/dist/types/commit/shared-llm.d.ts +1 -1
- package/dist/types/config/keybindings.d.ts +3 -3
- package/dist/types/config/model-registry.d.ts +17 -0
- package/dist/types/config/models-config-schema.d.ts +13 -1
- package/dist/types/config/models-config.d.ts +8 -2
- package/dist/types/config/settings-schema.d.ts +281 -58
- package/dist/types/edit/hashline/params.d.ts +1 -1
- package/dist/types/edit/modes/apply-patch.d.ts +1 -1
- package/dist/types/edit/modes/patch.d.ts +1 -1
- package/dist/types/edit/modes/replace.d.ts +1 -1
- package/dist/types/export/html/index.d.ts +2 -1
- package/dist/types/extensibility/custom-commands/types.d.ts +2 -2
- package/dist/types/extensibility/custom-tools/types.d.ts +2 -2
- package/dist/types/extensibility/extensions/model-api.d.ts +17 -0
- package/dist/types/extensibility/extensions/runner.d.ts +3 -1
- package/dist/types/extensibility/extensions/types.d.ts +49 -3
- package/dist/types/extensibility/hooks/index.d.ts +2 -1
- package/dist/types/extensibility/hooks/types.d.ts +2 -2
- package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +9 -0
- package/dist/types/extensibility/plugins/loader.d.ts +11 -0
- package/dist/types/extensibility/shared-events.d.ts +1 -1
- package/dist/types/extensibility/skills.d.ts +10 -0
- package/dist/types/goals/guided-setup.d.ts +18 -0
- package/dist/types/goals/state.d.ts +1 -1
- package/dist/types/goals/tools/goal-tool.d.ts +1 -1
- package/dist/types/hindsight/transcript.d.ts +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/internal-urls/local-protocol.d.ts +4 -2
- package/dist/types/lsp/types.d.ts +1 -1
- package/dist/types/main.d.ts +4 -3
- package/dist/types/mcp/manager.d.ts +8 -0
- package/dist/types/mcp/startup-events.d.ts +11 -0
- package/dist/types/memories/index.d.ts +7 -0
- package/dist/types/memory-backend/local-backend.d.ts +4 -3
- package/dist/types/mnemopi/config.d.ts +28 -0
- package/dist/types/modes/acp/acp-agent.d.ts +1 -2
- package/dist/types/modes/components/agent-hub.d.ts +6 -0
- package/dist/types/modes/components/assistant-message.d.ts +1 -2
- package/dist/types/modes/components/compaction-summary-message.d.ts +15 -1
- package/dist/types/modes/components/custom-editor.d.ts +39 -1
- package/dist/types/modes/components/custom-editor.test.d.ts +1 -0
- package/dist/types/modes/components/index.d.ts +1 -0
- package/dist/types/modes/components/logout-account-selector.d.ts +8 -0
- package/dist/types/modes/components/session-selector.d.ts +1 -1
- package/dist/types/modes/components/status-line/component.d.ts +9 -5
- package/dist/types/modes/components/status-line/types.d.ts +2 -1
- package/dist/types/modes/components/tool-execution.d.ts +26 -16
- package/dist/types/modes/components/transcript-container.d.ts +23 -2
- package/dist/types/modes/components/tree-selector.d.ts +1 -1
- package/dist/types/modes/components/usage-row.d.ts +3 -0
- package/dist/types/modes/controllers/command-controller.d.ts +2 -2
- package/dist/types/modes/controllers/event-controller.d.ts +0 -17
- package/dist/types/modes/controllers/input-controller.d.ts +14 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +3 -1
- package/dist/types/modes/gradient-highlight.d.ts +9 -4
- package/dist/types/modes/image-references.d.ts +6 -0
- package/dist/types/modes/interactive-mode.d.ts +27 -6
- package/dist/types/modes/magic-keywords.d.ts +13 -1
- package/dist/types/modes/rpc/rpc-mode.d.ts +35 -1
- package/dist/types/modes/rpc/rpc-types.d.ts +9 -1
- package/dist/types/modes/runtime-init.d.ts +4 -0
- package/dist/types/modes/theme/theme.d.ts +13 -2
- package/dist/types/modes/types.d.ts +8 -7
- package/dist/types/modes/utils/ui-helpers.d.ts +1 -1
- package/dist/types/registry/agent-registry.d.ts +17 -0
- package/dist/types/secrets/obfuscator.d.ts +1 -1
- package/dist/types/session/agent-session.d.ts +28 -35
- package/dist/types/session/agent-storage.d.ts +2 -1
- package/dist/types/session/indexed-session-storage.d.ts +3 -3
- package/dist/types/session/messages.d.ts +8 -10
- package/dist/types/session/session-context.d.ts +39 -0
- package/dist/types/session/session-entries.d.ts +159 -0
- package/dist/types/session/session-listing.d.ts +69 -0
- package/dist/types/session/session-loader.d.ts +16 -0
- package/dist/types/session/session-manager.d.ts +85 -462
- package/dist/types/session/session-migrations.d.ts +12 -0
- package/dist/types/session/session-paths.d.ts +25 -0
- package/dist/types/session/session-persistence.d.ts +8 -0
- package/dist/types/session/session-storage.d.ts +11 -7
- package/dist/types/session/snapcompact-inline.d.ts +12 -1
- package/dist/types/session/snapcompact-savings-journal.d.ts +46 -0
- package/dist/types/session/tool-choice-queue.d.ts +6 -6
- package/dist/types/slash-commands/helpers/logout.d.ts +15 -0
- package/dist/types/stt/asr-client.d.ts +90 -0
- package/dist/types/stt/asr-protocol.d.ts +97 -0
- package/dist/types/stt/asr-worker.d.ts +2 -0
- package/dist/types/stt/downloader.d.ts +38 -0
- package/dist/types/stt/endpointer.d.ts +59 -0
- package/dist/types/stt/index.d.ts +5 -1
- package/dist/types/stt/models.d.ts +120 -0
- package/dist/types/stt/recorder.d.ts +17 -0
- package/dist/types/stt/stt-controller.d.ts +6 -0
- package/dist/types/stt/transcriber.d.ts +5 -7
- package/dist/types/stt/wav.d.ts +29 -0
- package/dist/types/system-prompt.d.ts +4 -0
- package/dist/types/task/executor.d.ts +2 -0
- package/dist/types/task/index.d.ts +9 -1
- package/dist/types/task/types.d.ts +37 -1
- package/dist/types/tools/ask.d.ts +1 -1
- package/dist/types/tools/ast-edit.d.ts +1 -1
- package/dist/types/tools/ast-grep.d.ts +1 -1
- package/dist/types/tools/bash.d.ts +3 -3
- package/dist/types/tools/browser/cmux/cmux-tab.d.ts +202 -0
- package/dist/types/tools/browser/cmux/rpc.d.ts +70 -0
- package/dist/types/tools/browser/cmux/socket-client.d.ts +19 -0
- package/dist/types/tools/browser/registry.d.ts +16 -3
- package/dist/types/tools/browser/render.d.ts +2 -0
- package/dist/types/tools/browser/tab-protocol.d.ts +2 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +16 -4
- package/dist/types/tools/browser.d.ts +3 -1
- package/dist/types/tools/checkpoint.d.ts +1 -1
- package/dist/types/tools/debug.d.ts +1 -1
- package/dist/types/tools/eval-render.d.ts +1 -1
- package/dist/types/tools/eval.d.ts +1 -1
- package/dist/types/tools/find.d.ts +1 -1
- package/dist/types/tools/gh.d.ts +1 -1
- package/dist/types/tools/image-gen.d.ts +1 -1
- package/dist/types/tools/index.d.ts +14 -2
- package/dist/types/tools/inspect-image.d.ts +1 -1
- package/dist/types/tools/irc.d.ts +2 -1
- package/dist/types/tools/job.d.ts +1 -1
- package/dist/types/tools/learn.d.ts +51 -0
- package/dist/types/tools/manage-skill.d.ts +40 -0
- package/dist/types/tools/memory-edit.d.ts +1 -1
- package/dist/types/tools/memory-recall.d.ts +1 -1
- package/dist/types/tools/memory-reflect.d.ts +1 -1
- package/dist/types/tools/memory-retain.d.ts +1 -1
- package/dist/types/tools/plan-mode-guard.d.ts +10 -0
- package/dist/types/tools/read.d.ts +1 -1
- package/dist/types/tools/render-mermaid.d.ts +1 -1
- package/dist/types/tools/renderers.d.ts +7 -11
- package/dist/types/tools/resolve.d.ts +1 -1
- package/dist/types/tools/review.d.ts +1 -1
- package/dist/types/tools/search-tool-bm25.d.ts +1 -1
- package/dist/types/tools/search.d.ts +1 -1
- package/dist/types/tools/ssh.d.ts +2 -2
- package/dist/types/tools/todo.d.ts +2 -2
- package/dist/types/tools/tts.d.ts +26 -1
- package/dist/types/tools/write.d.ts +2 -2
- package/dist/types/tts/downloader.d.ts +20 -0
- package/dist/types/tts/index.d.ts +8 -0
- package/dist/types/tts/models.d.ts +82 -0
- package/dist/types/tts/player.d.ts +32 -0
- package/dist/types/tts/runtime.d.ts +6 -0
- package/dist/types/tts/streaming-player.d.ts +41 -0
- package/dist/types/tts/tts-client.d.ts +93 -0
- package/dist/types/tts/tts-protocol.d.ts +95 -0
- package/dist/types/tts/tts-worker.d.ts +2 -0
- package/dist/types/tts/vocalizer.d.ts +41 -0
- package/dist/types/tts/wav.d.ts +8 -0
- package/dist/types/utils/clipboard.d.ts +4 -3
- package/dist/types/utils/image-loading.d.ts +18 -1
- package/dist/types/utils/thinking-display.d.ts +17 -0
- package/dist/types/utils/tool-choice.d.ts +8 -0
- package/dist/types/utils/tools-manager.d.ts +2 -1
- package/dist/types/utils/tools-manager.test.d.ts +1 -0
- package/dist/types/web/scrapers/github.d.ts +1 -1
- package/dist/types/web/search/index.d.ts +1 -1
- package/package.json +17 -16
- package/src/async/job-manager.ts +49 -0
- package/src/autolearn/controller.ts +139 -0
- package/src/autolearn/managed-skills.ts +257 -0
- package/src/autoresearch/state.ts +1 -1
- package/src/autoresearch/storage.ts +2 -1
- package/src/autoresearch/tools/init-experiment.ts +1 -1
- package/src/autoresearch/tools/log-experiment.ts +1 -1
- package/src/autoresearch/tools/run-experiment.ts +1 -1
- package/src/autoresearch/tools/update-notes.ts +1 -1
- package/src/autoresearch/types.ts +1 -1
- package/src/cli/args.ts +56 -10
- package/src/cli/auth-gateway-cli.ts +1 -1
- package/src/cli/bench-cli.ts +1 -1
- package/src/cli/dry-balance-cli.ts +1 -1
- package/src/cli/models-cli.ts +427 -0
- package/src/cli/session-picker.ts +2 -1
- package/src/cli/setup-cli.ts +148 -47
- package/src/cli/setup-model-picker.ts +43 -0
- package/src/cli-commands.ts +3 -0
- package/src/cli.ts +45 -13
- package/src/collab/host.ts +10 -13
- package/src/collab/protocol.ts +1 -1
- package/src/commands/launch.ts +0 -3
- package/src/commands/models.ts +61 -0
- package/src/commands/say.ts +102 -0
- package/src/commands/setup.ts +1 -1
- package/src/commands/token.ts +89 -0
- package/src/commit/agentic/tools/analyze-file.ts +4 -1
- package/src/commit/agentic/tools/git-file-diff.ts +1 -1
- package/src/commit/agentic/tools/git-hunk.ts +1 -1
- package/src/commit/agentic/tools/git-overview.ts +1 -1
- package/src/commit/agentic/tools/propose-changelog.ts +1 -1
- package/src/commit/agentic/tools/propose-commit.ts +1 -1
- package/src/commit/agentic/tools/recent-commits.ts +1 -1
- package/src/commit/agentic/tools/schemas.ts +1 -1
- package/src/commit/agentic/tools/split-commit.ts +1 -1
- package/src/commit/analysis/summary.ts +1 -1
- package/src/commit/changelog/generate.ts +1 -1
- package/src/commit/shared-llm.ts +1 -1
- package/src/config/keybindings.ts +2 -2
- package/src/config/model-discovery.ts +11 -5
- package/src/config/model-registry.ts +79 -21
- package/src/config/model-resolver.ts +2 -2
- package/src/config/models-config-schema.ts +5 -2
- package/src/config/models-config.ts +2 -1
- package/src/config/settings-schema.ts +266 -32
- package/src/config/settings.ts +10 -0
- package/src/discovery/builtin.ts +23 -1
- package/src/discovery/claude-plugins.ts +44 -5
- package/src/discovery/helpers.ts +41 -1
- package/src/edit/hashline/params.ts +1 -1
- package/src/edit/modes/apply-patch.ts +1 -1
- package/src/edit/modes/patch.ts +1 -1
- package/src/edit/modes/replace.ts +1 -1
- package/src/eval/__tests__/budget-bridge.test.ts +1 -1
- package/src/eval/agent-bridge.ts +1 -1
- package/src/eval/completion-bridge.ts +1 -1
- package/src/eval/js/shared/prelude.txt +69 -17
- package/src/export/html/index.ts +3 -6
- package/src/export/html/template.js +24 -2
- package/src/export/html/tool-views.generated.js +2 -2
- package/src/extensibility/custom-commands/loader.ts +1 -1
- package/src/extensibility/custom-commands/types.ts +2 -2
- package/src/extensibility/custom-tools/loader.ts +1 -1
- package/src/extensibility/custom-tools/types.ts +2 -2
- package/src/extensibility/extensions/loader.ts +2 -2
- package/src/extensibility/extensions/model-api.ts +41 -0
- package/src/extensibility/extensions/runner.ts +4 -0
- package/src/extensibility/extensions/types.ts +54 -3
- package/src/extensibility/extensions/wrapper.ts +41 -5
- package/src/extensibility/hooks/index.ts +2 -1
- package/src/extensibility/hooks/loader.ts +1 -1
- package/src/extensibility/hooks/types.ts +2 -2
- package/src/extensibility/plugins/legacy-pi-compat.ts +43 -13
- package/src/extensibility/plugins/loader.ts +30 -19
- package/src/extensibility/plugins/manager.ts +221 -90
- package/src/extensibility/shared-events.ts +1 -1
- package/src/extensibility/skills.ts +101 -5
- package/src/goals/guided-setup.ts +133 -0
- package/src/goals/state.ts +1 -1
- package/src/goals/tools/goal-tool.ts +1 -1
- package/src/hindsight/transcript.ts +1 -1
- package/src/index.ts +5 -0
- package/src/internal-urls/docs-index.generated.ts +13 -10
- package/src/internal-urls/history-protocol.ts +1 -1
- package/src/internal-urls/local-protocol.ts +29 -7
- package/src/lsp/types.ts +1 -1
- package/src/main.ts +27 -32
- package/src/mcp/config-writer.ts +7 -3
- package/src/mcp/manager.ts +11 -0
- package/src/mcp/startup-events.ts +21 -0
- package/src/mcp/transports/stdio.ts +2 -1
- package/src/memories/index.ts +149 -12
- package/src/memories/storage.ts +2 -1
- package/src/memory-backend/local-backend.ts +11 -5
- package/src/mnemopi/backend.ts +1 -0
- package/src/mnemopi/config.ts +112 -12
- package/src/modes/acp/acp-agent.ts +8 -53
- package/src/modes/acp/acp-event-mapper.ts +5 -1
- package/src/modes/components/agent-hub.ts +51 -5
- package/src/modes/components/assistant-message.ts +12 -44
- package/src/modes/components/compaction-summary-message.ts +125 -26
- package/src/modes/components/custom-editor.test.ts +96 -0
- package/src/modes/components/custom-editor.ts +164 -8
- package/src/modes/components/index.ts +1 -0
- package/src/modes/components/logout-account-selector.ts +130 -0
- package/src/modes/components/mcp-add-wizard.ts +1 -1
- package/src/modes/components/model-selector.ts +2 -2
- package/src/modes/components/session-selector.ts +1 -1
- package/src/modes/components/settings-defs.ts +7 -0
- package/src/modes/components/status-line/component.ts +54 -157
- package/src/modes/components/status-line/segments.ts +1 -1
- package/src/modes/components/status-line/types.ts +2 -1
- package/src/modes/components/tool-execution.ts +82 -43
- package/src/modes/components/transcript-container.ts +70 -1
- package/src/modes/components/tree-selector.ts +1 -1
- package/src/modes/components/usage-row.ts +18 -0
- package/src/modes/components/user-message.ts +4 -2
- package/src/modes/controllers/command-controller.ts +14 -16
- package/src/modes/controllers/event-controller.ts +101 -73
- package/src/modes/controllers/extension-ui-controller.ts +6 -0
- package/src/modes/controllers/input-controller.ts +311 -57
- package/src/modes/controllers/mcp-command-controller.ts +44 -3
- package/src/modes/controllers/selector-controller.ts +68 -12
- package/src/modes/controllers/streaming-reveal.ts +4 -3
- package/src/modes/gradient-highlight.ts +21 -9
- package/src/modes/image-references.ts +20 -0
- package/src/modes/interactive-mode.ts +288 -48
- package/src/modes/magic-keywords.ts +27 -5
- package/src/modes/rpc/rpc-mode.ts +146 -14
- package/src/modes/rpc/rpc-subagents.ts +2 -2
- package/src/modes/rpc/rpc-types.ts +8 -2
- package/src/modes/runtime-init.ts +28 -3
- package/src/modes/theme/theme.ts +99 -51
- package/src/modes/types.ts +6 -7
- package/src/modes/utils/hotkeys-markdown.ts +1 -1
- package/src/modes/utils/ui-helpers.ts +36 -7
- package/src/priority.json +5 -1
- package/src/prompts/agents/task.md +1 -0
- package/src/prompts/goals/guided-goal-interview.md +8 -0
- package/src/prompts/goals/guided-goal-system.md +12 -0
- package/src/prompts/memories/read-path.md +6 -0
- package/src/prompts/system/autolearn-guidance-learn.md +1 -0
- package/src/prompts/system/autolearn-guidance.md +7 -0
- package/src/prompts/system/autolearn-nudge.md +3 -0
- package/src/prompts/system/eager-task.md +7 -0
- package/src/prompts/system/eager-todo.md +11 -6
- package/src/prompts/system/empty-stop-retry.md +4 -6
- package/src/prompts/system/subagent-system-prompt.md +4 -0
- package/src/prompts/system/system-prompt.md +10 -5
- package/src/prompts/system/title-marker-instruction.md +1 -0
- package/src/prompts/system/title-system-marker.md +16 -0
- package/src/prompts/tools/job.md +1 -0
- package/src/prompts/tools/learn.md +7 -0
- package/src/prompts/tools/manage-skill.md +9 -0
- package/src/prompts/tools/task.md +3 -0
- package/src/registry/agent-registry.ts +30 -0
- package/src/sdk.ts +103 -43
- package/src/secrets/obfuscator.ts +1 -1
- package/src/session/agent-session.ts +331 -318
- package/src/session/agent-storage.ts +18 -9
- package/src/session/history-storage.ts +3 -2
- package/src/session/indexed-session-storage.ts +7 -10
- package/src/session/messages.ts +9 -11
- package/src/session/session-context.ts +352 -0
- package/src/session/session-dump-format.ts +4 -2
- package/src/session/session-entries.ts +194 -0
- package/src/session/session-listing.ts +588 -0
- package/src/session/session-loader.ts +106 -0
- package/src/session/session-manager.ts +968 -3064
- package/src/session/session-migrations.ts +78 -0
- package/src/session/session-paths.ts +193 -0
- package/src/session/session-persistence.ts +131 -0
- package/src/session/session-storage.ts +91 -30
- package/src/session/snapcompact-inline.ts +21 -1
- package/src/session/snapcompact-savings-journal.ts +113 -0
- package/src/session/tool-choice-queue.ts +23 -11
- package/src/slash-commands/builtin-registry.ts +40 -4
- package/src/slash-commands/helpers/logout.ts +88 -0
- package/src/stt/asr-client.ts +520 -0
- package/src/stt/asr-protocol.ts +65 -0
- package/src/stt/asr-worker.ts +790 -0
- package/src/stt/downloader.ts +107 -47
- package/src/stt/endpointer.ts +259 -0
- package/src/stt/index.ts +5 -1
- package/src/stt/models.ts +150 -0
- package/src/stt/recorder.ts +247 -60
- package/src/stt/stt-controller.ts +201 -22
- package/src/stt/transcriber.ts +37 -68
- package/src/stt/wav.ts +173 -0
- package/src/system-prompt.ts +8 -0
- package/src/task/agents.ts +1 -2
- package/src/task/executor.ts +49 -15
- package/src/task/index.ts +60 -6
- package/src/task/render.ts +83 -8
- package/src/task/types.ts +54 -1
- package/src/tools/ask.ts +9 -1
- package/src/tools/ast-edit.ts +1 -1
- package/src/tools/ast-grep.ts +1 -1
- package/src/tools/bash.ts +5 -4
- package/src/tools/browser/cmux/cmux-tab.ts +1264 -0
- package/src/tools/browser/cmux/rpc.ts +156 -0
- package/src/tools/browser/cmux/socket-client.ts +309 -0
- package/src/tools/browser/registry.ts +37 -3
- package/src/tools/browser/render.ts +6 -1
- package/src/tools/browser/tab-protocol.ts +2 -0
- package/src/tools/browser/tab-supervisor.ts +189 -18
- package/src/tools/browser/tab-worker.ts +1 -1
- package/src/tools/browser.ts +16 -1
- package/src/tools/checkpoint.ts +1 -1
- package/src/tools/debug.ts +1 -1
- package/src/tools/eval-render.ts +4 -3
- package/src/tools/eval.ts +11 -6
- package/src/tools/fetch.ts +13 -2
- package/src/tools/find.ts +1 -1
- package/src/tools/gh.ts +1 -1
- package/src/tools/github-cache.ts +2 -1
- package/src/tools/image-gen.ts +1 -1
- package/src/tools/index.ts +43 -5
- package/src/tools/inspect-image.ts +3 -1
- package/src/tools/irc.ts +11 -3
- package/src/tools/job.ts +15 -3
- package/src/tools/learn.ts +144 -0
- package/src/tools/manage-skill.ts +104 -0
- package/src/tools/memory-edit.ts +1 -1
- package/src/tools/memory-recall.ts +1 -1
- package/src/tools/memory-reflect.ts +1 -1
- package/src/tools/memory-retain.ts +1 -1
- package/src/tools/plan-mode-guard.ts +53 -19
- package/src/tools/read.ts +8 -2
- package/src/tools/render-mermaid.ts +1 -1
- package/src/tools/renderers.ts +7 -11
- package/src/tools/report-tool-issue.ts +3 -2
- package/src/tools/resolve.ts +1 -1
- package/src/tools/review.ts +1 -1
- package/src/tools/search-tool-bm25.ts +1 -1
- package/src/tools/search.ts +1 -1
- package/src/tools/ssh.ts +5 -4
- package/src/tools/todo.ts +2 -2
- package/src/tools/tts.ts +204 -93
- package/src/tools/write.ts +19 -3
- package/src/tts/downloader.ts +64 -0
- package/src/tts/index.ts +8 -0
- package/src/tts/models.ts +137 -0
- package/src/tts/player.ts +137 -0
- package/src/tts/runtime.ts +21 -0
- package/src/tts/streaming-player.ts +266 -0
- package/src/tts/tts-client.ts +647 -0
- package/src/tts/tts-protocol.ts +60 -0
- package/src/tts/tts-worker.ts +497 -0
- package/src/tts/vocalizer.ts +162 -0
- package/src/tts/wav.ts +58 -0
- package/src/utils/clipboard.ts +35 -18
- package/src/utils/image-loading.ts +35 -4
- package/src/utils/thinking-display.ts +37 -0
- package/src/utils/title-generator.ts +48 -5
- package/src/utils/tool-choice.ts +16 -0
- package/src/utils/tools-manager.test.ts +25 -0
- package/src/utils/tools-manager.ts +19 -1
- package/src/web/scrapers/github.ts +96 -0
- package/src/web/search/index.ts +14 -1
- package/src/web/search/providers/searxng.ts +13 -1
- package/dist/types/cli/list-models.d.ts +0 -30
- package/dist/types/stt/setup.d.ts +0 -18
- package/src/cli/list-models.ts +0 -194
- package/src/stt/setup.ts +0 -52
- package/src/stt/transcribe.py +0 -70
|
@@ -29,7 +29,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
29
29
|
providers?: Record<string, {
|
|
30
30
|
baseUrl?: string | undefined;
|
|
31
31
|
apiKey?: string | undefined;
|
|
32
|
-
api?: "anthropic-messages" | "azure-openai-responses" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
|
|
32
|
+
api?: "anthropic-messages" | "azure-openai-responses" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
|
|
33
33
|
headers?: Record<string, string> | undefined;
|
|
34
34
|
compat?: {
|
|
35
35
|
supportsStore?: boolean | undefined;
|
|
@@ -54,6 +54,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
54
54
|
allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
|
|
55
55
|
requiresAssistantContentForToolCalls?: boolean | undefined;
|
|
56
56
|
supportsToolChoice?: boolean | undefined;
|
|
57
|
+
supportsForcedToolChoice?: boolean | undefined;
|
|
57
58
|
disableReasoningOnForcedToolChoice?: boolean | undefined;
|
|
58
59
|
disableReasoningOnToolChoice?: boolean | undefined;
|
|
59
60
|
thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
|
|
@@ -99,6 +100,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
99
100
|
allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
|
|
100
101
|
requiresAssistantContentForToolCalls?: boolean | undefined;
|
|
101
102
|
supportsToolChoice?: boolean | undefined;
|
|
103
|
+
supportsForcedToolChoice?: boolean | undefined;
|
|
102
104
|
disableReasoningOnForcedToolChoice?: boolean | undefined;
|
|
103
105
|
disableReasoningOnToolChoice?: boolean | undefined;
|
|
104
106
|
thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
|
|
@@ -131,7 +133,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
131
133
|
models?: {
|
|
132
134
|
id: string;
|
|
133
135
|
name?: string | undefined;
|
|
134
|
-
api?: "anthropic-messages" | "azure-openai-responses" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
|
|
136
|
+
api?: "anthropic-messages" | "azure-openai-responses" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
|
|
135
137
|
baseUrl?: string | undefined;
|
|
136
138
|
reasoning?: boolean | undefined;
|
|
137
139
|
thinking?: {
|
|
@@ -182,6 +184,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
182
184
|
allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
|
|
183
185
|
requiresAssistantContentForToolCalls?: boolean | undefined;
|
|
184
186
|
supportsToolChoice?: boolean | undefined;
|
|
187
|
+
supportsForcedToolChoice?: boolean | undefined;
|
|
185
188
|
disableReasoningOnForcedToolChoice?: boolean | undefined;
|
|
186
189
|
disableReasoningOnToolChoice?: boolean | undefined;
|
|
187
190
|
thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
|
|
@@ -227,6 +230,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
227
230
|
allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
|
|
228
231
|
requiresAssistantContentForToolCalls?: boolean | undefined;
|
|
229
232
|
supportsToolChoice?: boolean | undefined;
|
|
233
|
+
supportsForcedToolChoice?: boolean | undefined;
|
|
230
234
|
disableReasoningOnForcedToolChoice?: boolean | undefined;
|
|
231
235
|
disableReasoningOnToolChoice?: boolean | undefined;
|
|
232
236
|
thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
|
|
@@ -304,6 +308,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
304
308
|
allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
|
|
305
309
|
requiresAssistantContentForToolCalls?: boolean | undefined;
|
|
306
310
|
supportsToolChoice?: boolean | undefined;
|
|
311
|
+
supportsForcedToolChoice?: boolean | undefined;
|
|
307
312
|
disableReasoningOnForcedToolChoice?: boolean | undefined;
|
|
308
313
|
disableReasoningOnToolChoice?: boolean | undefined;
|
|
309
314
|
thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
|
|
@@ -349,6 +354,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
349
354
|
allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
|
|
350
355
|
requiresAssistantContentForToolCalls?: boolean | undefined;
|
|
351
356
|
supportsToolChoice?: boolean | undefined;
|
|
357
|
+
supportsForcedToolChoice?: boolean | undefined;
|
|
352
358
|
disableReasoningOnForcedToolChoice?: boolean | undefined;
|
|
353
359
|
disableReasoningOnToolChoice?: boolean | undefined;
|
|
354
360
|
thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
|
|
@@ -1046,6 +1046,30 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1046
1046
|
}];
|
|
1047
1047
|
};
|
|
1048
1048
|
};
|
|
1049
|
+
readonly fastModeScope: {
|
|
1050
|
+
readonly type: "enum";
|
|
1051
|
+
readonly values: readonly ["both", "openai", "claude"];
|
|
1052
|
+
readonly default: "both";
|
|
1053
|
+
readonly ui: {
|
|
1054
|
+
readonly tab: "model";
|
|
1055
|
+
readonly group: "Sampling";
|
|
1056
|
+
readonly label: "Fast Mode Scope";
|
|
1057
|
+
readonly description: 'Which providers `/fast on` (and the fast-mode toggle) target. "both" = priority on every supported provider; "openai"/"claude" scope it to one family (mirrors serviceTier openai-only/claude-only).';
|
|
1058
|
+
readonly options: readonly [{
|
|
1059
|
+
readonly value: "both";
|
|
1060
|
+
readonly label: "Both";
|
|
1061
|
+
readonly description: "Priority on every supported provider";
|
|
1062
|
+
}, {
|
|
1063
|
+
readonly value: "openai";
|
|
1064
|
+
readonly label: "OpenAI only";
|
|
1065
|
+
readonly description: "Priority on OpenAI/OpenAI-Codex requests; ignored elsewhere";
|
|
1066
|
+
}, {
|
|
1067
|
+
readonly value: "claude";
|
|
1068
|
+
readonly label: "Claude only";
|
|
1069
|
+
readonly description: "Anthropic fast mode on direct Claude requests; ignored elsewhere";
|
|
1070
|
+
}];
|
|
1071
|
+
};
|
|
1072
|
+
};
|
|
1049
1073
|
readonly "retry.enabled": {
|
|
1050
1074
|
readonly type: "boolean";
|
|
1051
1075
|
readonly default: true;
|
|
@@ -1242,6 +1266,32 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1242
1266
|
readonly description: "Suggest emojis from `:name:` shortcodes and expand text emoticons like `:D` or `:-)`";
|
|
1243
1267
|
};
|
|
1244
1268
|
};
|
|
1269
|
+
readonly "paste.largeMenuThreshold": {
|
|
1270
|
+
readonly type: "number";
|
|
1271
|
+
readonly default: 100;
|
|
1272
|
+
readonly ui: {
|
|
1273
|
+
readonly tab: "interaction";
|
|
1274
|
+
readonly group: "Input";
|
|
1275
|
+
readonly label: "Large Paste Menu";
|
|
1276
|
+
readonly description: "When a paste reaches this many lines, offer a menu to wrap it in a code block, wrap it in XML tags, or save it to a file. 0 disables the menu (large pastes still collapse to a [Paste] marker).";
|
|
1277
|
+
readonly options: readonly [{
|
|
1278
|
+
readonly value: "0";
|
|
1279
|
+
readonly label: "Off";
|
|
1280
|
+
}, {
|
|
1281
|
+
readonly value: "100";
|
|
1282
|
+
readonly label: "100 lines";
|
|
1283
|
+
}, {
|
|
1284
|
+
readonly value: "250";
|
|
1285
|
+
readonly label: "250 lines";
|
|
1286
|
+
}, {
|
|
1287
|
+
readonly value: "500";
|
|
1288
|
+
readonly label: "500 lines";
|
|
1289
|
+
}, {
|
|
1290
|
+
readonly value: "1000";
|
|
1291
|
+
readonly label: "1000 lines";
|
|
1292
|
+
}];
|
|
1293
|
+
};
|
|
1294
|
+
};
|
|
1245
1295
|
readonly "startup.quiet": {
|
|
1246
1296
|
readonly type: "boolean";
|
|
1247
1297
|
readonly default: false;
|
|
@@ -1450,50 +1500,18 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1450
1500
|
};
|
|
1451
1501
|
readonly "stt.modelName": {
|
|
1452
1502
|
readonly type: "enum";
|
|
1453
|
-
readonly values: readonly ["
|
|
1454
|
-
readonly default: "
|
|
1503
|
+
readonly values: readonly ["fast", "balanced", "turbo", "parakeet"];
|
|
1504
|
+
readonly default: "parakeet";
|
|
1455
1505
|
readonly ui: {
|
|
1456
1506
|
readonly tab: "interaction";
|
|
1457
1507
|
readonly group: "Speech";
|
|
1458
1508
|
readonly label: "Speech Model";
|
|
1459
|
-
readonly description: "
|
|
1460
|
-
readonly options:
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
}
|
|
1465
|
-
readonly value: "tiny.en";
|
|
1466
|
-
readonly label: "tiny.en";
|
|
1467
|
-
readonly description: "English-only; fastest";
|
|
1468
|
-
}, {
|
|
1469
|
-
readonly value: "base";
|
|
1470
|
-
readonly label: "base";
|
|
1471
|
-
readonly description: "Multilingual; small and fast";
|
|
1472
|
-
}, {
|
|
1473
|
-
readonly value: "base.en";
|
|
1474
|
-
readonly label: "base.en";
|
|
1475
|
-
readonly description: "English-only; default";
|
|
1476
|
-
}, {
|
|
1477
|
-
readonly value: "small";
|
|
1478
|
-
readonly label: "small";
|
|
1479
|
-
readonly description: "Multilingual; balanced";
|
|
1480
|
-
}, {
|
|
1481
|
-
readonly value: "small.en";
|
|
1482
|
-
readonly label: "small.en";
|
|
1483
|
-
readonly description: "English-only; balanced";
|
|
1484
|
-
}, {
|
|
1485
|
-
readonly value: "medium";
|
|
1486
|
-
readonly label: "medium";
|
|
1487
|
-
readonly description: "Multilingual; accurate but slower";
|
|
1488
|
-
}, {
|
|
1489
|
-
readonly value: "medium.en";
|
|
1490
|
-
readonly label: "medium.en";
|
|
1491
|
-
readonly description: "English-only; accurate but slower";
|
|
1492
|
-
}, {
|
|
1493
|
-
readonly value: "large";
|
|
1494
|
-
readonly label: "large";
|
|
1495
|
-
readonly description: "Multilingual; most accurate";
|
|
1496
|
-
}];
|
|
1509
|
+
readonly description: "Local on-device speech model. Parakeet TDT v3 (sherpa-onnx) is the SoTA default; Whisper base/small/large-v3-turbo tiers (transformers.js) trade size for multilingual coverage. Downloaded on first use.";
|
|
1510
|
+
readonly options: {
|
|
1511
|
+
value: "balanced" | "fast" | "parakeet" | "turbo";
|
|
1512
|
+
label: "Balanced (Whisper small)" | "Fast (Whisper base)" | "Parakeet TDT v3 (SoTA)" | "Turbo (Whisper large-v3)";
|
|
1513
|
+
description: "NVIDIA Parakeet TDT 0.6B v3, 25 languages. Open ASR Leaderboard leader — best accuracy and far fastest decoding. Default." | "Whisper base, multilingual. Smallest + fastest; lowest accuracy. Best for low-resource machines." | "Whisper large-v3-turbo, 99 languages. Widest language coverage; large download, slower." | "Whisper small, multilingual. More accurate than Fast, still light on CPU/RAM.";
|
|
1514
|
+
}[];
|
|
1497
1515
|
};
|
|
1498
1516
|
};
|
|
1499
1517
|
readonly "contextPromotion.enabled": {
|
|
@@ -1823,7 +1841,7 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1823
1841
|
};
|
|
1824
1842
|
readonly "snapcompact.shape": {
|
|
1825
1843
|
readonly type: "enum";
|
|
1826
|
-
readonly values: readonly ["auto", ...("5x8-bw" | "5x8-sent" | "6x12-dim" | "6x6u-bw" | "6x6u-sent" | "8on16-bw" | "8x13-bw" | "8x8r-bw" | "8x8r-sent" | "8x8u-bw" | "8x8u-sent" | "doc-8on16-bw" | "doc-8on16-sent" | "doc-8on16-sent-dim")[]];
|
|
1844
|
+
readonly values: readonly ["auto", ...("11on16-bw" | "5x8-bw" | "5x8-sent" | "6x12-dim" | "6x6u-bw" | "6x6u-sent" | "8on16-bw" | "8on22-bw" | "8x13-bw" | "8x8r-bw" | "8x8r-sent" | "8x8u-bw" | "8x8u-sent" | "doc-8on16-bw" | "doc-8on16-sent" | "doc-8on16-sent-dim")[]];
|
|
1827
1845
|
readonly default: "auto";
|
|
1828
1846
|
readonly ui: {
|
|
1829
1847
|
readonly tab: "context";
|
|
@@ -1878,6 +1896,14 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1878
1896
|
readonly value: "8on16-bw";
|
|
1879
1897
|
readonly label: "8x13 on 16px pitch, black";
|
|
1880
1898
|
readonly description: "8x13 glyphs on an 8x16 cell (extra leading), black ink.";
|
|
1899
|
+
}, {
|
|
1900
|
+
readonly value: "8on22-bw";
|
|
1901
|
+
readonly label: "8x13 on 22px pitch (leading), black";
|
|
1902
|
+
readonly description: "8x13 glyphs on an 8x22 cell — extra line spacing so rows don't crowd. Default for OpenAI/Google.";
|
|
1903
|
+
}, {
|
|
1904
|
+
readonly value: "11on16-bw";
|
|
1905
|
+
readonly label: "8x13 on 11px advance (tracking), black";
|
|
1906
|
+
readonly description: "8x13 glyphs on an 11x16 cell — extra letter spacing so characters don't merge. Default for Anthropic.";
|
|
1881
1907
|
}, {
|
|
1882
1908
|
readonly value: "doc-8on16-bw";
|
|
1883
1909
|
readonly label: "Doc 8on16, black";
|
|
@@ -1999,6 +2025,31 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1999
2025
|
}];
|
|
2000
2026
|
};
|
|
2001
2027
|
};
|
|
2028
|
+
readonly "autolearn.enabled": {
|
|
2029
|
+
readonly type: "boolean";
|
|
2030
|
+
readonly default: false;
|
|
2031
|
+
readonly ui: {
|
|
2032
|
+
readonly tab: "memory";
|
|
2033
|
+
readonly group: "Auto-Learn";
|
|
2034
|
+
readonly label: "Auto-Learn (experimental)";
|
|
2035
|
+
readonly description: "After the agent stops, nudge it to capture lessons to memory and create/enhance isolated managed skills";
|
|
2036
|
+
};
|
|
2037
|
+
};
|
|
2038
|
+
readonly "autolearn.autoContinue": {
|
|
2039
|
+
readonly type: "boolean";
|
|
2040
|
+
readonly default: false;
|
|
2041
|
+
readonly ui: {
|
|
2042
|
+
readonly tab: "memory";
|
|
2043
|
+
readonly group: "Auto-Learn";
|
|
2044
|
+
readonly label: "Auto-run capture at stop";
|
|
2045
|
+
readonly description: "When on, auto-run one capture turn at stop (uses extra tokens). Off = passive reminder on your next turn.";
|
|
2046
|
+
readonly condition: "autolearnActive";
|
|
2047
|
+
};
|
|
2048
|
+
};
|
|
2049
|
+
readonly "autolearn.minToolCalls": {
|
|
2050
|
+
readonly type: "number";
|
|
2051
|
+
readonly default: 5;
|
|
2052
|
+
};
|
|
2002
2053
|
readonly "mnemopi.dbPath": {
|
|
2003
2054
|
readonly type: "string";
|
|
2004
2055
|
readonly default: undefined;
|
|
@@ -2046,6 +2097,27 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2046
2097
|
readonly condition: "mnemopiActive";
|
|
2047
2098
|
};
|
|
2048
2099
|
};
|
|
2100
|
+
readonly "mnemopi.embeddingVariant": {
|
|
2101
|
+
readonly type: "enum";
|
|
2102
|
+
readonly values: readonly ["en", "multilingual"];
|
|
2103
|
+
readonly default: "en";
|
|
2104
|
+
readonly ui: {
|
|
2105
|
+
readonly tab: "memory";
|
|
2106
|
+
readonly group: "Mnemopi";
|
|
2107
|
+
readonly label: "Embedding variant";
|
|
2108
|
+
readonly description: "Local embedding model family. en = stronger English model; multilingual = cross-language model. Changing this rebuilds existing memory embeddings on next start.";
|
|
2109
|
+
readonly options: readonly [{
|
|
2110
|
+
readonly value: "en";
|
|
2111
|
+
readonly label: "English (bge-base-en-v1.5)";
|
|
2112
|
+
readonly description: "BAAI/bge-base-en-v1.5 (768d), English-only";
|
|
2113
|
+
}, {
|
|
2114
|
+
readonly value: "multilingual";
|
|
2115
|
+
readonly label: "Multilingual (multilingual-e5-large)";
|
|
2116
|
+
readonly description: "intfloat/multilingual-e5-large (1024d), cross-language recall";
|
|
2117
|
+
}];
|
|
2118
|
+
readonly condition: "mnemopiActive";
|
|
2119
|
+
};
|
|
2120
|
+
};
|
|
2049
2121
|
readonly "mnemopi.autoRecall": {
|
|
2050
2122
|
readonly type: "boolean";
|
|
2051
2123
|
readonly default: true;
|
|
@@ -2108,7 +2180,7 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2108
2180
|
readonly tab: "memory";
|
|
2109
2181
|
readonly group: "Mnemopi";
|
|
2110
2182
|
readonly label: "Mnemopi Embedding Model";
|
|
2111
|
-
readonly description: "
|
|
2183
|
+
readonly description: "Advanced: explicit embedding model id that overrides the variant. Leave empty to use mnemopi.embeddingVariant.";
|
|
2112
2184
|
readonly condition: "mnemopiActive";
|
|
2113
2185
|
};
|
|
2114
2186
|
};
|
|
@@ -2953,13 +3025,27 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2953
3025
|
};
|
|
2954
3026
|
};
|
|
2955
3027
|
readonly "todo.eager": {
|
|
2956
|
-
readonly type: "
|
|
2957
|
-
readonly
|
|
3028
|
+
readonly type: "enum";
|
|
3029
|
+
readonly values: readonly ["default", "preferred", "always"];
|
|
3030
|
+
readonly default: "default";
|
|
2958
3031
|
readonly ui: {
|
|
2959
3032
|
readonly tab: "tools";
|
|
2960
3033
|
readonly group: "Todos";
|
|
2961
3034
|
readonly label: "Create Todos Automatically";
|
|
2962
|
-
readonly description: "
|
|
3035
|
+
readonly description: "How strongly to push automatic todo-list creation after the first message";
|
|
3036
|
+
readonly options: readonly [{
|
|
3037
|
+
readonly value: "default";
|
|
3038
|
+
readonly label: "Default";
|
|
3039
|
+
readonly description: "Model decides; no automatic todo list";
|
|
3040
|
+
}, {
|
|
3041
|
+
readonly value: "preferred";
|
|
3042
|
+
readonly label: "Preferred";
|
|
3043
|
+
readonly description: "Suggests a todo list on the first message (reminder, not forced)";
|
|
3044
|
+
}, {
|
|
3045
|
+
readonly value: "always";
|
|
3046
|
+
readonly label: "Always";
|
|
3047
|
+
readonly description: "Forces a comprehensive todo list on the first message";
|
|
3048
|
+
}];
|
|
2963
3049
|
};
|
|
2964
3050
|
};
|
|
2965
3051
|
readonly "find.enabled": {
|
|
@@ -3077,14 +3163,14 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3077
3163
|
readonly description: "Enable the debug tool for DAP-based debugging";
|
|
3078
3164
|
};
|
|
3079
3165
|
};
|
|
3080
|
-
readonly "
|
|
3166
|
+
readonly "speechgen.enabled": {
|
|
3081
3167
|
readonly type: "boolean";
|
|
3082
3168
|
readonly default: false;
|
|
3083
3169
|
readonly ui: {
|
|
3084
3170
|
readonly tab: "tools";
|
|
3085
3171
|
readonly group: "Available Tools";
|
|
3086
|
-
readonly label: "
|
|
3087
|
-
readonly description: "Enable the tts tool for xAI Grok Voice speech synthesis";
|
|
3172
|
+
readonly label: "Speech Generation";
|
|
3173
|
+
readonly description: "Enable the tts tool for on-device (Kokoro) or xAI Grok Voice speech-file synthesis";
|
|
3088
3174
|
};
|
|
3089
3175
|
};
|
|
3090
3176
|
readonly "inspect_image.enabled": {
|
|
@@ -3197,6 +3283,16 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3197
3283
|
readonly description: "Launch browser in headless mode (disable to show browser UI)";
|
|
3198
3284
|
};
|
|
3199
3285
|
};
|
|
3286
|
+
readonly "browser.cmux": {
|
|
3287
|
+
readonly type: "boolean";
|
|
3288
|
+
readonly default: true;
|
|
3289
|
+
readonly ui: {
|
|
3290
|
+
readonly tab: "tools";
|
|
3291
|
+
readonly group: "Search & Browser";
|
|
3292
|
+
readonly label: "cmux Browser";
|
|
3293
|
+
readonly description: "Use cmux WKWebView surfaces for browser automation when a cmux socket is available. Set PI_BROWSER_CMUX=0 or PI_BROWSER_CMUX=1 to override.";
|
|
3294
|
+
};
|
|
3295
|
+
};
|
|
3200
3296
|
readonly "browser.screenshotDir": {
|
|
3201
3297
|
readonly type: "string";
|
|
3202
3298
|
readonly default: undefined;
|
|
@@ -3262,13 +3358,13 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3262
3358
|
};
|
|
3263
3359
|
readonly "async.pollWaitDuration": {
|
|
3264
3360
|
readonly type: "enum";
|
|
3265
|
-
readonly values: readonly ["5s", "10s", "30s", "1m", "5m"];
|
|
3266
|
-
readonly default: "
|
|
3361
|
+
readonly values: readonly ["5s", "10s", "30s", "1m", "5m", "smart"];
|
|
3362
|
+
readonly default: "smart";
|
|
3267
3363
|
readonly ui: {
|
|
3268
3364
|
readonly tab: "tools";
|
|
3269
3365
|
readonly group: "Execution";
|
|
3270
|
-
readonly label: "Poll
|
|
3271
|
-
readonly description: "How long the poll tool waits for background job updates before returning the current state";
|
|
3366
|
+
readonly label: "Max Poll Time";
|
|
3367
|
+
readonly description: "How long the poll tool waits for background job updates before returning the current state. A fixed value waits that exact duration every time. `smart` adapts: it starts at 5s and lengthens with each back-to-back poll (up to 5m), then resets to 5s after about a minute without polling.";
|
|
3272
3368
|
readonly options: readonly [{
|
|
3273
3369
|
readonly value: "5s";
|
|
3274
3370
|
readonly label: "5 seconds";
|
|
@@ -3278,13 +3374,16 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3278
3374
|
}, {
|
|
3279
3375
|
readonly value: "30s";
|
|
3280
3376
|
readonly label: "30 seconds";
|
|
3281
|
-
readonly description: "Default";
|
|
3282
3377
|
}, {
|
|
3283
3378
|
readonly value: "1m";
|
|
3284
3379
|
readonly label: "1 minute";
|
|
3285
3380
|
}, {
|
|
3286
3381
|
readonly value: "5m";
|
|
3287
3382
|
readonly label: "5 minutes";
|
|
3383
|
+
}, {
|
|
3384
|
+
readonly value: "smart";
|
|
3385
|
+
readonly label: "Smart";
|
|
3386
|
+
readonly description: "Default — adaptive 5s→5m, resets when you stop polling";
|
|
3288
3387
|
}];
|
|
3289
3388
|
};
|
|
3290
3389
|
};
|
|
@@ -3522,13 +3621,27 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3522
3621
|
};
|
|
3523
3622
|
};
|
|
3524
3623
|
readonly "task.eager": {
|
|
3525
|
-
readonly type: "
|
|
3526
|
-
readonly
|
|
3624
|
+
readonly type: "enum";
|
|
3625
|
+
readonly values: readonly ["default", "preferred", "always"];
|
|
3626
|
+
readonly default: "default";
|
|
3527
3627
|
readonly ui: {
|
|
3528
3628
|
readonly tab: "tasks";
|
|
3529
3629
|
readonly group: "Subagents";
|
|
3530
3630
|
readonly label: "Prefer Task Delegation";
|
|
3531
|
-
readonly description: "
|
|
3631
|
+
readonly description: "How strongly to push delegating work to subagents";
|
|
3632
|
+
readonly options: readonly [{
|
|
3633
|
+
readonly value: "default";
|
|
3634
|
+
readonly label: "Default";
|
|
3635
|
+
readonly description: "Model decides when to delegate";
|
|
3636
|
+
}, {
|
|
3637
|
+
readonly value: "preferred";
|
|
3638
|
+
readonly label: "Preferred";
|
|
3639
|
+
readonly description: "Adds delegation guidance to the system prompt";
|
|
3640
|
+
}, {
|
|
3641
|
+
readonly value: "always";
|
|
3642
|
+
readonly label: "Always";
|
|
3643
|
+
readonly description: "Prompt guidance plus a first-turn delegation reminder";
|
|
3644
|
+
}];
|
|
3532
3645
|
};
|
|
3533
3646
|
};
|
|
3534
3647
|
readonly "task.batch": {
|
|
@@ -3758,6 +3871,14 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3758
3871
|
readonly type: "boolean";
|
|
3759
3872
|
readonly default: true;
|
|
3760
3873
|
};
|
|
3874
|
+
readonly "skills.enableAgentsUser": {
|
|
3875
|
+
readonly type: "boolean";
|
|
3876
|
+
readonly default: true;
|
|
3877
|
+
};
|
|
3878
|
+
readonly "skills.enableAgentsProject": {
|
|
3879
|
+
readonly type: "boolean";
|
|
3880
|
+
readonly default: true;
|
|
3881
|
+
};
|
|
3761
3882
|
readonly "skills.customDirectories": {
|
|
3762
3883
|
readonly type: "array";
|
|
3763
3884
|
readonly default: string[];
|
|
@@ -3928,6 +4049,107 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
3928
4049
|
}];
|
|
3929
4050
|
};
|
|
3930
4051
|
};
|
|
4052
|
+
readonly "providers.tts": {
|
|
4053
|
+
readonly type: "enum";
|
|
4054
|
+
readonly values: readonly ["auto", "local", "xai"];
|
|
4055
|
+
readonly default: "auto";
|
|
4056
|
+
readonly ui: {
|
|
4057
|
+
readonly tab: "providers";
|
|
4058
|
+
readonly group: "Services";
|
|
4059
|
+
readonly label: "Text-to-Speech Provider";
|
|
4060
|
+
readonly description: "Backend for the tts tool: local on-device neural TTS (Kokoro-82M) or xAI Grok Voice";
|
|
4061
|
+
readonly options: readonly [{
|
|
4062
|
+
readonly value: "auto";
|
|
4063
|
+
readonly label: "Auto";
|
|
4064
|
+
readonly description: "Prefer local on-device TTS; route .mp3 output to xAI when credentials exist";
|
|
4065
|
+
}, {
|
|
4066
|
+
readonly value: "local";
|
|
4067
|
+
readonly label: "Local";
|
|
4068
|
+
readonly description: "On-device neural TTS (Kokoro-82M); output is WAV/PCM16";
|
|
4069
|
+
}, {
|
|
4070
|
+
readonly value: "xai";
|
|
4071
|
+
readonly label: "xAI Grok Voice";
|
|
4072
|
+
readonly description: "Requires xAI Grok OAuth or XAI_API_KEY; MP3 or WAV";
|
|
4073
|
+
}];
|
|
4074
|
+
};
|
|
4075
|
+
};
|
|
4076
|
+
readonly "tts.localModel": {
|
|
4077
|
+
readonly type: "enum";
|
|
4078
|
+
readonly values: readonly ["kokoro"];
|
|
4079
|
+
readonly default: "kokoro";
|
|
4080
|
+
readonly ui: {
|
|
4081
|
+
readonly tab: "providers";
|
|
4082
|
+
readonly group: "Services";
|
|
4083
|
+
readonly label: "Local TTS Model";
|
|
4084
|
+
readonly description: "On-device neural TTS model (Kokoro-82M) used by the local TTS backend";
|
|
4085
|
+
readonly options: readonly [{
|
|
4086
|
+
readonly value: "kokoro";
|
|
4087
|
+
readonly label: "Kokoro-82M";
|
|
4088
|
+
readonly description: "Kokoro-82M neural TTS — SoTA on-device quality, multi-voice, fully local";
|
|
4089
|
+
}];
|
|
4090
|
+
};
|
|
4091
|
+
};
|
|
4092
|
+
readonly "tts.localVoice": {
|
|
4093
|
+
readonly type: "enum";
|
|
4094
|
+
readonly values: readonly string[];
|
|
4095
|
+
readonly default: "af_heart";
|
|
4096
|
+
readonly ui: {
|
|
4097
|
+
readonly tab: "providers";
|
|
4098
|
+
readonly group: "Services";
|
|
4099
|
+
readonly label: "Local TTS Voice";
|
|
4100
|
+
readonly description: "Kokoro voice used by the local TTS backend (American/British, female/male)";
|
|
4101
|
+
readonly options: readonly {
|
|
4102
|
+
value: string;
|
|
4103
|
+
label: string;
|
|
4104
|
+
}[];
|
|
4105
|
+
};
|
|
4106
|
+
};
|
|
4107
|
+
readonly "speech.enabled": {
|
|
4108
|
+
readonly type: "boolean";
|
|
4109
|
+
readonly default: false;
|
|
4110
|
+
readonly ui: {
|
|
4111
|
+
readonly tab: "providers";
|
|
4112
|
+
readonly group: "Services";
|
|
4113
|
+
readonly label: "Speech Vocalization";
|
|
4114
|
+
readonly description: "Speak the assistant's output aloud through the speakers as it streams";
|
|
4115
|
+
};
|
|
4116
|
+
};
|
|
4117
|
+
readonly "speech.mode": {
|
|
4118
|
+
readonly type: "enum";
|
|
4119
|
+
readonly values: readonly ["all", "assistant", "yield"];
|
|
4120
|
+
readonly default: "assistant";
|
|
4121
|
+
readonly ui: {
|
|
4122
|
+
readonly tab: "providers";
|
|
4123
|
+
readonly group: "Services";
|
|
4124
|
+
readonly label: "Speech Vocalization Mode";
|
|
4125
|
+
readonly description: "What to speak: all = assistant messages + thinking; assistant = messages only; yield = only the final message at turn end";
|
|
4126
|
+
readonly options: readonly [{
|
|
4127
|
+
readonly value: "all";
|
|
4128
|
+
readonly label: "All (messages + thinking)";
|
|
4129
|
+
}, {
|
|
4130
|
+
readonly value: "assistant";
|
|
4131
|
+
readonly label: "Assistant messages";
|
|
4132
|
+
}, {
|
|
4133
|
+
readonly value: "yield";
|
|
4134
|
+
readonly label: "Final message only";
|
|
4135
|
+
}];
|
|
4136
|
+
};
|
|
4137
|
+
};
|
|
4138
|
+
readonly "speech.voice": {
|
|
4139
|
+
readonly type: "enum";
|
|
4140
|
+
readonly values: readonly string[];
|
|
4141
|
+
readonly default: "af_heart";
|
|
4142
|
+
readonly ui: {
|
|
4143
|
+
readonly tab: "providers";
|
|
4144
|
+
readonly group: "Services";
|
|
4145
|
+
readonly label: "Speech Vocalization Voice";
|
|
4146
|
+
readonly description: "Kokoro voice used when speaking the assistant's output aloud";
|
|
4147
|
+
readonly options: readonly {
|
|
4148
|
+
value: string;
|
|
4149
|
+
label: string;
|
|
4150
|
+
}[];
|
|
4151
|
+
};
|
|
4152
|
+
};
|
|
3931
4153
|
readonly "providers.tinyModel": {
|
|
3932
4154
|
readonly type: "enum";
|
|
3933
4155
|
readonly values: readonly ["online", "lfm2-350m", "qwen3-0.6b", "gemma-270m", "qwen2.5-0.5b", "lfm2-700m"];
|
|
@@ -4564,6 +4786,8 @@ export interface SkillsSettings {
|
|
|
4564
4786
|
enableClaudeProject?: boolean;
|
|
4565
4787
|
enablePiUser?: boolean;
|
|
4566
4788
|
enablePiProject?: boolean;
|
|
4789
|
+
enableAgentsUser?: boolean;
|
|
4790
|
+
enableAgentsProject?: boolean;
|
|
4567
4791
|
customDirectories?: string[];
|
|
4568
4792
|
ignoredSkills?: string[];
|
|
4569
4793
|
includeSkills?: string[];
|
|
@@ -4613,8 +4837,7 @@ export interface SttSettings {
|
|
|
4613
4837
|
enabled: boolean;
|
|
4614
4838
|
language: string | undefined;
|
|
4615
4839
|
modelName: string;
|
|
4616
|
-
|
|
4617
|
-
modelPath: string | undefined;
|
|
4840
|
+
streaming: boolean;
|
|
4618
4841
|
}
|
|
4619
4842
|
export interface BashInterceptorRule {
|
|
4620
4843
|
pattern: string;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* keys without rejection; only `input` is required. `_input` is accepted as a
|
|
5
5
|
* provider-emitted alias for `input`.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import { z } from "zod/v4";
|
|
8
8
|
export declare const hashlineEditParamsSchema: z.ZodPreprocess<z.ZodObject<{
|
|
9
9
|
input: z.ZodString;
|
|
10
10
|
}, z.core.$loose>>;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* LSP writethrough, fs-cache invalidation, diagnostics) is shared with
|
|
8
8
|
* the `patch` mode.
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
10
|
+
import { z } from "zod/v4";
|
|
11
11
|
import type { PatchEditEntry } from "./patch";
|
|
12
12
|
export declare const applyPatchSchema: z.ZodObject<{
|
|
13
13
|
input: z.ZodString;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* for robust handling of whitespace and formatting differences.
|
|
6
6
|
*/
|
|
7
7
|
import type { AgentToolResult } from "@oh-my-pi/pi-agent-core";
|
|
8
|
-
import
|
|
8
|
+
import { z } from "zod/v4";
|
|
9
9
|
import { type WritethroughCallback, type WritethroughDeferredHandle } from "../../lsp";
|
|
10
10
|
import type { ToolSession } from "../../tools";
|
|
11
11
|
import type { EditToolDetails, LspBatchRequest } from "../renderer";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* fallback strategies for finding text in files.
|
|
6
6
|
*/
|
|
7
7
|
import type { AgentToolResult } from "@oh-my-pi/pi-agent-core";
|
|
8
|
-
import
|
|
8
|
+
import { z } from "zod/v4";
|
|
9
9
|
import type { WritethroughCallback, WritethroughDeferredHandle } from "../../lsp";
|
|
10
10
|
import type { ToolSession } from "../../tools";
|
|
11
11
|
import type { EditToolDetails, LspBatchRequest } from "../renderer";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AgentState } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import {
|
|
2
|
+
import type { SessionEntry, SessionHeader } from "../../session/session-entries";
|
|
3
|
+
import { SessionManager } from "../../session/session-manager";
|
|
3
4
|
/** Compose the standalone export template: minified CSS, tool renderers, and viewer JS inlined. */
|
|
4
5
|
export declare function getTemplate(): string;
|
|
5
6
|
export interface ExportOptions {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Unlike markdown commands which expand to prompts, custom commands can execute
|
|
6
6
|
* arbitrary logic with full access to the hook context.
|
|
7
7
|
*/
|
|
8
|
-
import type
|
|
8
|
+
import type { z } from "zod/v4";
|
|
9
9
|
import type { ExecOptions, ExecResult, HookCommandContext } from "../../extensibility/hooks/types";
|
|
10
10
|
import type * as PiCodingAgent from "../../index";
|
|
11
11
|
import type * as TypeBox from "../typebox";
|
|
@@ -22,7 +22,7 @@ export interface CustomCommandAPI {
|
|
|
22
22
|
/** Injected zod-backed typebox shim (legacy/compat). */
|
|
23
23
|
typebox: typeof TypeBox;
|
|
24
24
|
/** Injected zod module for Zod-authored custom commands. */
|
|
25
|
-
zod: typeof
|
|
25
|
+
zod: typeof z;
|
|
26
26
|
/** Injected pi-coding-agent exports */
|
|
27
27
|
pi: typeof PiCodingAgent;
|
|
28
28
|
}
|
|
@@ -9,7 +9,7 @@ import type { CompactionResult } from "@oh-my-pi/pi-agent-core/compaction";
|
|
|
9
9
|
import type { FetchImpl, Model, Static, TSchema } from "@oh-my-pi/pi-ai";
|
|
10
10
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
11
11
|
import type { logger as PiLogger } from "@oh-my-pi/pi-utils";
|
|
12
|
-
import type
|
|
12
|
+
import type { z } from "zod/v4";
|
|
13
13
|
import type { Rule } from "../../capability/rule";
|
|
14
14
|
import type { ModelRegistry } from "../../config/model-registry";
|
|
15
15
|
import type { Settings } from "../../config/settings";
|
|
@@ -53,7 +53,7 @@ export interface CustomToolAPI {
|
|
|
53
53
|
/** Injected zod-backed typebox shim (legacy/compat — Zod-authored tools are preferred). */
|
|
54
54
|
typebox: typeof TypeBox;
|
|
55
55
|
/** Injected zod module for Zod-authored custom tools. */
|
|
56
|
-
zod: typeof
|
|
56
|
+
zod: typeof z;
|
|
57
57
|
/** Injected pi-coding-agent exports */
|
|
58
58
|
pi: typeof PiCodingAgent;
|
|
59
59
|
/** Push a preview action that can later be resolved with the hidden resolve tool */
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model query facade exposed to extensions as `ctx.models`.
|
|
3
|
+
*
|
|
4
|
+
* Read-only: lets an extension select a model the same way core does — list
|
|
5
|
+
* authenticated models, read the session model, resolve a model string or role
|
|
6
|
+
* alias, and compare model families — without touching the mutable registry or
|
|
7
|
+
* duplicating resolution/family heuristics.
|
|
8
|
+
*/
|
|
9
|
+
import type { Model } from "@oh-my-pi/pi-ai";
|
|
10
|
+
import type { ModelRegistry } from "../../config/model-registry";
|
|
11
|
+
import type { Settings } from "../../config/settings";
|
|
12
|
+
import type { ExtensionModelQuery } from "./types";
|
|
13
|
+
/**
|
|
14
|
+
* Build the `ctx.models` facade. `getModel` is read lazily so `current()` always
|
|
15
|
+
* reflects the live session model (it can change mid-session via `/model`).
|
|
16
|
+
*/
|
|
17
|
+
export declare function createExtensionModelQuery(modelRegistry: ModelRegistry, settings: Settings | undefined, getModel: () => Model | undefined): ExtensionModelQuery;
|