@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
|
@@ -81,6 +81,21 @@ export declare class AsyncJobManager {
|
|
|
81
81
|
hasPendingDeliveries(filter?: AsyncJobFilter): boolean;
|
|
82
82
|
watchJobs(jobIds: string[]): number;
|
|
83
83
|
unwatchJobs(jobIds: string[]): number;
|
|
84
|
+
/**
|
|
85
|
+
* Compute the next adaptive ("smart") wait (ms) for a blocking `job` poll by
|
|
86
|
+
* the given owner. Consecutive polls — those starting within
|
|
87
|
+
* POLL_ESCALATION_RESET_MS of the previous poll returning — climb
|
|
88
|
+
* POLL_WAIT_LADDER_MS so a tight wait loop backs off; a longer gap means the
|
|
89
|
+
* agent left to do real work, so the wait resets to the floor. Pair each call
|
|
90
|
+
* with `recordPollWaitEnd()` once the wait returns.
|
|
91
|
+
*/
|
|
92
|
+
nextPollWaitMs(ownerId: string | undefined, now?: number): number;
|
|
93
|
+
/**
|
|
94
|
+
* Mark a blocking poll wait as finished so the idle-reset window is measured
|
|
95
|
+
* from now. Polling again before POLL_ESCALATION_RESET_MS elapses keeps
|
|
96
|
+
* climbing the ladder; waiting longer resets it to the floor.
|
|
97
|
+
*/
|
|
98
|
+
recordPollWaitEnd(ownerId: string | undefined, now?: number): void;
|
|
84
99
|
acknowledgeDeliveries(jobIds: string[]): number;
|
|
85
100
|
/**
|
|
86
101
|
* Lift a foreground-wait suppression set via `acknowledgeDeliveries`. If the
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Settings } from "../config/settings";
|
|
2
|
+
import type { AgentSession } from "../session/agent-session";
|
|
3
|
+
/**
|
|
4
|
+
* Build the standing auto-learn guidance for the system prompt from the tools
|
|
5
|
+
* actually present in the active set, or null when `manage_skill` is absent.
|
|
6
|
+
*
|
|
7
|
+
* Driven by tool presence rather than live settings: the `learn`/`manage_skill`
|
|
8
|
+
* registry is built ONCE at session start (and only for top-level sessions), so
|
|
9
|
+
* keying the guidance on `autolearn.enabled` would let a mid-session enable — or
|
|
10
|
+
* a subagent that filtered the tools out — inject guidance pointing at tools the
|
|
11
|
+
* session never built. The `learn` addendum is included only when the `learn`
|
|
12
|
+
* tool is present (it requires a memory backend).
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildAutoLearnInstructions(available: {
|
|
15
|
+
manageSkill: boolean;
|
|
16
|
+
learn: boolean;
|
|
17
|
+
}): string | null;
|
|
18
|
+
export interface AutoLearnControllerOptions {
|
|
19
|
+
session: AgentSession;
|
|
20
|
+
settings: Settings;
|
|
21
|
+
}
|
|
22
|
+
export declare class AutoLearnController {
|
|
23
|
+
#private;
|
|
24
|
+
constructor(options: AutoLearnControllerOptions);
|
|
25
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Provider id stamped on discovered managed skills (distinguishes them from authored). */
|
|
2
|
+
export declare const MANAGED_SKILLS_PROVIDER_ID = "omp-managed";
|
|
3
|
+
/** Hard cap on a managed SKILL.md body to keep generated skills bounded. */
|
|
4
|
+
export declare const MAX_MANAGED_SKILL_BYTES = 64000;
|
|
5
|
+
/** Resolve the isolated managed-skills directory (`~/.omp/agent/managed-skills`). */
|
|
6
|
+
export declare function getManagedSkillsDir(home?: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Validate + normalize a managed-skill name. Throws on anything outside the
|
|
9
|
+
* strict allowlist so a bad name can never escape `getManagedSkillsDir()`
|
|
10
|
+
* (blocks `..`, slashes, empty, and uppercase).
|
|
11
|
+
*/
|
|
12
|
+
export declare function sanitizeSkillName(raw: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Whether `name` is a safe managed-skill name (the exact post-sanitize shape).
|
|
15
|
+
* Used to validate names read from disk at discovery time — a managed
|
|
16
|
+
* `SKILL.md` whose `frontmatter.name` was not produced by `sanitizeSkillName`
|
|
17
|
+
* (e.g. hand-placed) must not render unescaped into the system prompt.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isValidManagedSkillName(name: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Neutralize a machine-generated managed-skill description so it cannot break
|
|
22
|
+
* out of the system prompt's `<skills>` listing. Managed descriptions are
|
|
23
|
+
* generated from prior task content and persist across sessions, so this is a
|
|
24
|
+
* trust boundary: strip control/format chars, angle brackets (`<system-directive>`
|
|
25
|
+
* / `</skills>`), and Markdown fence delimiters (backticks, `~~~`), then collapse
|
|
26
|
+
* to a single line. Applied on BOTH write and read so existing files are safe too.
|
|
27
|
+
*/
|
|
28
|
+
export declare function sanitizeManagedDescription(raw: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Serialize the minimal `name`/`description` frontmatter block via the repo's
|
|
31
|
+
* YAML helper (round-trips through `parseFrontmatter`).
|
|
32
|
+
*/
|
|
33
|
+
export declare function toSkillFrontmatter(name: string, description: string): string;
|
|
34
|
+
export interface WriteManagedSkillInput {
|
|
35
|
+
action: "create" | "update";
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
body: string;
|
|
39
|
+
}
|
|
40
|
+
/** Create or update a managed `SKILL.md`. Returns the resolved file path. */
|
|
41
|
+
export declare function writeManagedSkill(input: WriteManagedSkillInput): Promise<{
|
|
42
|
+
path: string;
|
|
43
|
+
}>;
|
|
44
|
+
/** Delete a managed skill directory. Throws when it does not exist. */
|
|
45
|
+
export declare function deleteManagedSkill(name: string): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SessionEntry } from "../session/session-
|
|
1
|
+
import type { SessionEntry } from "../session/session-entries";
|
|
2
2
|
import type { RunRow, SessionRow } from "./storage";
|
|
3
3
|
import type { AutoresearchRuntime, ExperimentResult, ExperimentState, MetricDef, MetricDirection, NumericMetricMap, ReconstructedControlState, RuntimeStore } from "./types";
|
|
4
4
|
export declare function createExperimentState(): ExperimentState;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
2
|
import type { ToolDefinition } from "../../extensibility/extensions";
|
|
3
3
|
import type { AutoresearchToolFactoryOptions, ExperimentState } from "../types";
|
|
4
4
|
export declare const HARNESS_FILENAME = "autoresearch.sh";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
2
|
import type { ToolDefinition } from "../../extensibility/extensions";
|
|
3
3
|
import type { AutoresearchToolFactoryOptions, RunDetails, RunExperimentProgressDetails } from "../types";
|
|
4
4
|
declare const runExperimentSchema: z.ZodObject<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentToolResult } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { ExtensionAPI, ExtensionContext } from "../extensibility/extensions";
|
|
3
|
-
import type { SessionEntry } from "../session/session-
|
|
3
|
+
import type { SessionEntry } from "../session/session-entries";
|
|
4
4
|
import type { TruncationResult } from "../session/streaming-output";
|
|
5
5
|
export type MetricDirection = "lower" | "higher";
|
|
6
6
|
export type ExperimentStatus = "keep" | "discard" | "crash" | "checks_failed";
|
package/dist/types/cli/args.d.ts
CHANGED
|
@@ -42,17 +42,34 @@ export interface Args {
|
|
|
42
42
|
noSkills?: boolean;
|
|
43
43
|
skills?: string[];
|
|
44
44
|
noRules?: boolean;
|
|
45
|
-
listModels?: string | true;
|
|
46
45
|
noTitle?: boolean;
|
|
47
46
|
autoApprove?: boolean;
|
|
48
47
|
approvalMode?: "always-ask" | "write" | "yolo";
|
|
49
48
|
messages: string[];
|
|
50
49
|
fileArgs: string[];
|
|
51
|
-
/**
|
|
50
|
+
/** Extension-registered flags this parse recognized — name to value. */
|
|
52
51
|
unknownFlags: Map<string, boolean | string>;
|
|
52
|
+
/**
|
|
53
|
+
* `--`/`-` prefixed tokens this parse could not match against any built-in
|
|
54
|
+
* or {@link extensionFlags} entry. The startup parse runs *before*
|
|
55
|
+
* extensions load, so it always lists every extension-registered flag here;
|
|
56
|
+
* the post-extension reparse in {@link applyExtensionFlags} clears those
|
|
57
|
+
* once the real flag set is known. Anything still present after that
|
|
58
|
+
* reparse is a genuine typo or stale flag and {@link reportUnrecognizedFlags}
|
|
59
|
+
* surfaces it as a hard error so the agent does not silently start a
|
|
60
|
+
* session with the misparsed positionals as a prompt (issue #2459).
|
|
61
|
+
*/
|
|
62
|
+
unrecognizedFlags: string[];
|
|
53
63
|
}
|
|
54
64
|
export declare function parseArgs(inputArgs: string[], extensionFlags?: Map<string, {
|
|
55
65
|
type: "boolean" | "string";
|
|
56
66
|
}>): Args;
|
|
67
|
+
/**
|
|
68
|
+
* Emit a stderr error listing the unrecognized flags and return `true` when
|
|
69
|
+
* there were any. Caller is expected to exit with a non-zero status. Splitting
|
|
70
|
+
* the print from the exit keeps the helper unit-testable without forking a
|
|
71
|
+
* process (issue #2459).
|
|
72
|
+
*/
|
|
73
|
+
export declare function reportUnrecognizedFlags(args: Pick<Args, "unrecognizedFlags">, write?: (text: string) => void): boolean;
|
|
57
74
|
export declare function getExtraHelpText(): string;
|
|
58
75
|
export declare function printHelp(): void;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ModelRegistry } from "../config/model-registry";
|
|
2
|
+
export type ModelsAction = "ls" | "find" | "refresh" | "canonical";
|
|
3
|
+
export interface ModelsCommandArgs {
|
|
4
|
+
action: ModelsAction;
|
|
5
|
+
/** Search substring for `find`, or optional filter for `ls`. */
|
|
6
|
+
pattern?: string;
|
|
7
|
+
flags: {
|
|
8
|
+
json?: boolean;
|
|
9
|
+
/** CLI `-e <path>` extension paths to load before listing (issue #905). */
|
|
10
|
+
extensions?: string[];
|
|
11
|
+
/** Skip extension discovery; only load explicit `extensions`. */
|
|
12
|
+
noExtensions?: boolean;
|
|
13
|
+
/** Extra `config.yml` overlays to apply for this invocation. */
|
|
14
|
+
config?: string[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Resolve the two positional args into an action + filter (provider names fall through to `ls`). */
|
|
18
|
+
export declare function resolveModelsArgs(first: string | undefined, second: string | undefined): {
|
|
19
|
+
action: ModelsAction;
|
|
20
|
+
pattern: string | undefined;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Options for {@link runModelsListing}: render the catalog from a caller-supplied
|
|
24
|
+
* registry. Loads extensions (CLI `-e` paths and configured `settings.extensions`)
|
|
25
|
+
* and discovers their providers before rendering so extension-contributed models
|
|
26
|
+
* appear (issue #905). The caller is responsible for refreshing built-in providers.
|
|
27
|
+
*/
|
|
28
|
+
export interface RunModelsListingOptions {
|
|
29
|
+
modelRegistry: ModelRegistry;
|
|
30
|
+
cwd: string;
|
|
31
|
+
action?: ModelsAction;
|
|
32
|
+
pattern?: string;
|
|
33
|
+
json?: boolean;
|
|
34
|
+
/** CLI-supplied extension paths (e.g. from `-e <path>`). */
|
|
35
|
+
additionalExtensionPaths?: string[];
|
|
36
|
+
/** Extension paths configured under `extensions:` in user settings. */
|
|
37
|
+
settingsExtensions?: string[];
|
|
38
|
+
/** Disabled extension ids from settings (`disabledExtensions`). */
|
|
39
|
+
disabledExtensionIds?: string[];
|
|
40
|
+
/** When true, skip discovery and only load `additionalExtensionPaths`. */
|
|
41
|
+
disableExtensionDiscovery?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export declare function runModelsListing(options: RunModelsListingOptions): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Entry point for the standalone `omp models` command: bootstraps auth storage,
|
|
46
|
+
* settings, and the model registry, force/cache-refreshes built-in providers per
|
|
47
|
+
* the chosen action, then delegates to {@link runModelsListing}.
|
|
48
|
+
*/
|
|
49
|
+
export declare function runModelsCommand(command: ModelsCommandArgs): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { SessionInfo } from "../session/session-listing";
|
|
2
2
|
/**
|
|
3
3
|
* Show the TUI session selector and return the selected session, or null if
|
|
4
4
|
* cancelled. Tab toggles between current-folder and all-projects scope; the
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone TUI model picker used by `omp setup speech`.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors {@link ./session-picker.ts} for the standalone-TUI lifecycle: spin up
|
|
5
|
+
* a one-shot {@link TUI} over a {@link SelectList}, resolve on select/cancel, and
|
|
6
|
+
* tear the UI down. The standalone TUI auto-renders on input, so no manual
|
|
7
|
+
* render wiring is needed beyond `addChild`/`setFocus`/`start`.
|
|
8
|
+
*/
|
|
9
|
+
import { type SelectItem } from "@oh-my-pi/pi-tui";
|
|
10
|
+
/**
|
|
11
|
+
* Show a single-column model picker and resolve with the chosen item's value,
|
|
12
|
+
* or `null` if the user cancelled. `currentValue` pre-selects the matching row.
|
|
13
|
+
*/
|
|
14
|
+
export declare function selectSetupModel(title: string, items: SelectItem[], currentValue: string): Promise<string | null>;
|
|
@@ -11,7 +11,7 @@ import type { BusChannel, GuestFrame, ParsedCollabLink, Participant, SessionStat
|
|
|
11
11
|
import { DEFAULT_RELAY_URL, ENVELOPE_HEADER_LENGTH, ROOM_ID_BYTES } from "@oh-my-pi/pi-wire";
|
|
12
12
|
import type { ContextUsage } from "../extensibility/extensions/types";
|
|
13
13
|
import type { AgentSessionEvent } from "../session/agent-session";
|
|
14
|
-
import type { SessionEntry, SessionHeader } from "../session/session-
|
|
14
|
+
import type { SessionEntry, SessionHeader } from "../session/session-entries";
|
|
15
15
|
export type { CollabPromptDetails, ParsedCollabLink, RelayControlMessage, RelayControlToGuest, RelayControlToHost, } from "@oh-my-pi/pi-wire";
|
|
16
16
|
export { COLLAB_PROMPT_MESSAGE_TYPE, COLLAB_PROTO } from "@oh-my-pi/pi-wire";
|
|
17
17
|
export { DEFAULT_RELAY_URL, ENVELOPE_HEADER_LENGTH, ROOM_ID_BYTES };
|
|
@@ -115,9 +115,6 @@ export default class Index extends Command {
|
|
|
115
115
|
export: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
|
|
116
116
|
description: string;
|
|
117
117
|
};
|
|
118
|
-
"list-models": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
|
|
119
|
-
description: string;
|
|
120
|
-
};
|
|
121
118
|
"no-title": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
|
|
122
119
|
description: string;
|
|
123
120
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Command } from "@oh-my-pi/pi-utils/cli";
|
|
2
|
+
export default class Models extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
action: import("@oh-my-pi/pi-utils/cli").ArgDescriptor & {
|
|
6
|
+
description: string;
|
|
7
|
+
required: false;
|
|
8
|
+
};
|
|
9
|
+
pattern: import("@oh-my-pi/pi-utils/cli").ArgDescriptor & {
|
|
10
|
+
description: string;
|
|
11
|
+
required: false;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
static flags: {
|
|
15
|
+
json: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
extension: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
|
|
19
|
+
char: string;
|
|
20
|
+
description: string;
|
|
21
|
+
multiple: true;
|
|
22
|
+
};
|
|
23
|
+
"no-extensions": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
config: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
|
|
27
|
+
description: string;
|
|
28
|
+
multiple: true;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
static examples: string[];
|
|
32
|
+
run(): Promise<void>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Command } from "@oh-my-pi/pi-utils/cli";
|
|
2
|
+
export default class Say extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
text: import("@oh-my-pi/pi-utils/cli").ArgDescriptor & {
|
|
6
|
+
required: true;
|
|
7
|
+
description: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
static flags: {
|
|
11
|
+
voice: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
|
|
12
|
+
description: string;
|
|
13
|
+
};
|
|
14
|
+
model: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
out: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"string"> & {
|
|
18
|
+
char: string;
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
static examples: string[];
|
|
23
|
+
run(): Promise<void>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the API key or OAuth token for a provider.
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "@oh-my-pi/pi-utils/cli";
|
|
5
|
+
export default class Token extends Command {
|
|
6
|
+
static description: string;
|
|
7
|
+
static args: {
|
|
8
|
+
provider: import("@oh-my-pi/pi-utils/cli").ArgDescriptor & {
|
|
9
|
+
description: string;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
static flags: {
|
|
14
|
+
raw: import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
|
|
15
|
+
description: string;
|
|
16
|
+
default: boolean;
|
|
17
|
+
};
|
|
18
|
+
"force-refresh": import("@oh-my-pi/pi-utils/cli").FlagDescriptor<"boolean"> & {
|
|
19
|
+
description: string;
|
|
20
|
+
default: boolean;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
static examples: string[];
|
|
24
|
+
run(): Promise<void>;
|
|
25
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
2
|
import type { CommitAgentState } from "../../../commit/agentic/state";
|
|
3
3
|
import type { CustomTool } from "../../../extensibility/custom-tools/types";
|
|
4
4
|
export declare function getFilePriority(filename: string): number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ThinkingLevel } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Api, ApiKey, Model } from "@oh-my-pi/pi-ai";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import { type ChangelogGenerationResult } from "../../commit/types";
|
|
5
5
|
export declare const changelogTool: {
|
|
6
6
|
name: string;
|
|
@@ -138,7 +138,7 @@ export declare const KEYBINDINGS: {
|
|
|
138
138
|
readonly description: "Undo";
|
|
139
139
|
};
|
|
140
140
|
readonly "tui.input.newLine": {
|
|
141
|
-
readonly defaultKeys: "shift+enter";
|
|
141
|
+
readonly defaultKeys: ["shift+enter", "ctrl+j"];
|
|
142
142
|
readonly description: "Insert newline";
|
|
143
143
|
};
|
|
144
144
|
readonly "tui.input.submit": {
|
|
@@ -314,8 +314,8 @@ export declare const KEYBINDINGS: {
|
|
|
314
314
|
readonly description: "Search history";
|
|
315
315
|
};
|
|
316
316
|
readonly "app.stt.toggle": {
|
|
317
|
-
readonly defaultKeys:
|
|
318
|
-
readonly description: "Toggle speech-to-text";
|
|
317
|
+
readonly defaultKeys: [];
|
|
318
|
+
readonly description: "Toggle speech-to-text (default gesture: hold Space)";
|
|
319
319
|
};
|
|
320
320
|
};
|
|
321
321
|
declare function migrateKeybindingsConfigFile(agentDir: string): void;
|
|
@@ -29,9 +29,19 @@ interface ProviderOverride {
|
|
|
29
29
|
* `token-plan-sgp.xiaomimimo.com` at discovery time)
|
|
30
30
|
* 3. Existing bundled baseUrl (the host baked into `models.json`)
|
|
31
31
|
*
|
|
32
|
+
* `transport` resolution priority:
|
|
33
|
+
* 1. `providerOverride.transport` (e.g. `pi-native` for auth-gateway users)
|
|
34
|
+
* 2. `existing.transport` (carried over from boot-time override application)
|
|
35
|
+
* 3. `model.transport` (rarely set — discovery defaults omit it)
|
|
36
|
+
*
|
|
32
37
|
* Without (1), the user's override would lose to discovery; without (2)
|
|
33
38
|
* preferred over (3), the bundled `api.xiaomimimo.com` would shadow the
|
|
34
39
|
* tp- token-plan host and produce 401s on the first stream call.
|
|
40
|
+
* Without explicit transport propagation, an openrouter (or any) entry
|
|
41
|
+
* marked `transport: pi-native` in models.yml silently reverts to the
|
|
42
|
+
* default openai-completions transport after the background catalog
|
|
43
|
+
* refresh — so the first `/model` switch after boot hits the raw OpenAI
|
|
44
|
+
* chat-completions URL instead of the gateway's `/v1/pi/stream` (#2555).
|
|
35
45
|
* See `xiaomi-tp-discovery-merge.test.ts` and the `refresh()` baseUrl-override
|
|
36
46
|
* regression in `model-registry.test.ts`.
|
|
37
47
|
*/
|
|
@@ -123,6 +133,13 @@ export declare class ModelRegistry {
|
|
|
123
133
|
* paths that pre-flight auth before model resolution) can probe a model
|
|
124
134
|
* without resolving an API key. Returns true for keyless providers as well
|
|
125
135
|
* as providers with stored credentials. See issue #993.
|
|
136
|
+
*
|
|
137
|
+
* Side-effect-free and synchronous: a command-backed key (`!cmd`) counts as
|
|
138
|
+
* configured by its presence alone — the program is NOT executed — and OAuth
|
|
139
|
+
* tokens are NOT refreshed (`authStorage.hasAuth`). This is what keeps the
|
|
140
|
+
* model-switch pre-flight off the event loop's hot path; the real key
|
|
141
|
+
* (command execution + OAuth refresh) is resolved lazily per request via
|
|
142
|
+
* {@link ModelRegistry.resolver}.
|
|
126
143
|
*/
|
|
127
144
|
hasConfiguredAuth(model: Model<Api>): boolean;
|
|
128
145
|
getDiscoverableProviders(): string[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
2
|
export declare const OpenAICompatSchema: z.ZodObject<{
|
|
3
3
|
supportsStore: z.ZodOptional<z.ZodBoolean>;
|
|
4
4
|
supportsDeveloperRole: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -29,6 +29,7 @@ export declare const OpenAICompatSchema: z.ZodObject<{
|
|
|
29
29
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
30
30
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
31
31
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
32
33
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
33
34
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
34
35
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -92,6 +93,7 @@ export declare const OpenAICompatSchema: z.ZodObject<{
|
|
|
92
93
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
93
94
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
94
95
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
96
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
95
97
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
96
98
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
97
99
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -254,6 +256,7 @@ export declare const ModelOverrideSchema: z.ZodObject<{
|
|
|
254
256
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
255
257
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
256
258
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
259
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
257
260
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
258
261
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
259
262
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -317,6 +320,7 @@ export declare const ModelOverrideSchema: z.ZodObject<{
|
|
|
317
320
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
318
321
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
319
322
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
323
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
320
324
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
321
325
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
322
326
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -378,6 +382,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
378
382
|
api: z.ZodOptional<z.ZodEnum<{
|
|
379
383
|
"anthropic-messages": "anthropic-messages";
|
|
380
384
|
"azure-openai-responses": "azure-openai-responses";
|
|
385
|
+
"google-gemini-cli": "google-gemini-cli";
|
|
381
386
|
"google-generative-ai": "google-generative-ai";
|
|
382
387
|
"google-vertex": "google-vertex";
|
|
383
388
|
"openai-codex-responses": "openai-codex-responses";
|
|
@@ -415,6 +420,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
415
420
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
416
421
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
417
422
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
423
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
418
424
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
419
425
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
420
426
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -478,6 +484,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
478
484
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
479
485
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
480
486
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
487
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
481
488
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
482
489
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
483
490
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -534,6 +541,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
534
541
|
api: z.ZodOptional<z.ZodEnum<{
|
|
535
542
|
"anthropic-messages": "anthropic-messages";
|
|
536
543
|
"azure-openai-responses": "azure-openai-responses";
|
|
544
|
+
"google-gemini-cli": "google-gemini-cli";
|
|
537
545
|
"google-generative-ai": "google-generative-ai";
|
|
538
546
|
"google-vertex": "google-vertex";
|
|
539
547
|
"openai-codex-responses": "openai-codex-responses";
|
|
@@ -666,6 +674,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
666
674
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
667
675
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
668
676
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
677
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
669
678
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
670
679
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
671
680
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -729,6 +738,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
729
738
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
730
739
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
731
740
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
741
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
732
742
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
733
743
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
734
744
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -893,6 +903,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
893
903
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
894
904
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
895
905
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
906
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
896
907
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
897
908
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
898
909
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|
|
@@ -956,6 +967,7 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
956
967
|
allowsSyntheticReasoningContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
957
968
|
requiresAssistantContentForToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
958
969
|
supportsToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
970
|
+
supportsForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
959
971
|
disableReasoningOnForcedToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
960
972
|
disableReasoningOnToolChoice: z.ZodOptional<z.ZodBoolean>;
|
|
961
973
|
thinkingFormat: z.ZodOptional<z.ZodEnum<{
|