@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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ToolSession } from "../../sdk";
|
|
2
|
-
import {
|
|
2
|
+
import { CmuxTab } from "./cmux/cmux-tab";
|
|
3
|
+
import { type BrowserHandle, type BrowserKindTag, type CmuxBrowserHandle, type PuppeteerBrowserHandle } from "./registry";
|
|
3
4
|
import type { ReadyInfo, RunResultOk, Transferable, WorkerInbound, WorkerInitPayload, WorkerOutbound } from "./tab-protocol";
|
|
4
5
|
interface WorkerHandle {
|
|
5
6
|
send(msg: WorkerInbound, transferList?: Transferable[]): void;
|
|
@@ -16,17 +17,27 @@ export interface PendingRun {
|
|
|
16
17
|
signal?: AbortSignal;
|
|
17
18
|
toolCalls: Map<string, AbortController>;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
interface TabSessionBase<TBrowser extends BrowserHandle = BrowserHandle> {
|
|
20
21
|
name: string;
|
|
21
|
-
browser:
|
|
22
|
+
browser: TBrowser;
|
|
22
23
|
targetId: string;
|
|
23
|
-
worker: WorkerHandle;
|
|
24
24
|
state: "alive" | "dead";
|
|
25
25
|
info: ReadyInfo;
|
|
26
26
|
pending: Map<string, PendingRun>;
|
|
27
27
|
dialogPolicy?: DialogPolicy;
|
|
28
28
|
kindTag: BrowserKindTag;
|
|
29
29
|
}
|
|
30
|
+
export interface WorkerTabSession extends TabSessionBase<PuppeteerBrowserHandle> {
|
|
31
|
+
backend: "worker";
|
|
32
|
+
worker: WorkerHandle;
|
|
33
|
+
}
|
|
34
|
+
export interface CmuxTabSession extends TabSessionBase<CmuxBrowserHandle> {
|
|
35
|
+
backend: "cmux";
|
|
36
|
+
cmuxTab: CmuxTab;
|
|
37
|
+
cmuxOwnsSurface: boolean;
|
|
38
|
+
cmuxAttachedSurface?: string;
|
|
39
|
+
}
|
|
40
|
+
export type TabSession = WorkerTabSession | CmuxTabSession;
|
|
30
41
|
export interface AcquireTabOptions {
|
|
31
42
|
url?: string;
|
|
32
43
|
waitUntil?: "load" | "domcontentloaded" | "networkidle0" | "networkidle2";
|
|
@@ -39,6 +50,7 @@ export interface AcquireTabOptions {
|
|
|
39
50
|
signal?: AbortSignal;
|
|
40
51
|
timeoutMs: number;
|
|
41
52
|
dialogs?: DialogPolicy;
|
|
53
|
+
cmuxSurface?: string;
|
|
42
54
|
}
|
|
43
55
|
export interface AcquireTabResult {
|
|
44
56
|
tab: TabSession;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
3
|
import type { ToolSession } from "../sdk";
|
|
4
4
|
import { type BrowserKindTag } from "./browser/registry";
|
|
5
5
|
import type { Observation, ScreenshotResult } from "./browser/tab-protocol";
|
|
6
6
|
import type { OutputMeta } from "./output-meta";
|
|
7
|
+
export { cmuxSnapshotToObservation, mapWaitUntil, resolveCmuxKind, serializeEval } from "./browser/cmux/rpc";
|
|
8
|
+
export { CmuxSocketClient } from "./browser/cmux/socket-client";
|
|
7
9
|
export { extractReadableFromHtml, type ReadableFormat, type ReadableResult } from "./browser/readable";
|
|
8
10
|
export type { Observation, ObservationEntry } from "./browser/tab-protocol";
|
|
9
11
|
declare const browserSchema: z.ZodObject<{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
3
|
import type { ToolSession } from ".";
|
|
4
4
|
import type { OutputMeta } from "./output-meta";
|
|
5
5
|
export interface CheckpointState {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback, RenderResultOptions, ToolApprovalDecision } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import { type Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import { type DapBreakpointRecord, type DapContinueOutcome, type DapDataBreakpointInfoResponse, type DapDataBreakpointRecord, type DapDisassembledInstruction, type DapEvaluateResponse, type DapFunctionBreakpointRecord, type DapInstructionBreakpointRecord, type DapModule, type DapScope, type DapSessionSummary, type DapSource, type DapStackFrame, type DapThread, type DapVariable } from "../dap";
|
|
5
5
|
import type { Theme } from "../modes/theme/theme";
|
|
6
6
|
import type { ToolSession } from ".";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
3
|
import type { EvalToolDetails } from "../eval/types";
|
|
4
4
|
import type { ToolSession } from ".";
|
|
5
5
|
export { EVAL_DEFAULT_PREVIEW_LINES, evalToolRenderer } from "./eval-render";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import type { Theme } from "../modes/theme/theme";
|
|
6
6
|
import { type TruncationResult } from "../session/streaming-output";
|
package/dist/types/tools/gh.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback, ToolApprovalDecision } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
3
|
import type { Settings } from "../config/settings";
|
|
4
4
|
import * as git from "../utils/git";
|
|
5
5
|
import type { ToolSession } from ".";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Model } from "@oh-my-pi/pi-ai";
|
|
2
|
-
import
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
3
|
import { type ModelRegistry } from "../config/model-registry";
|
|
4
4
|
import type { CustomTool } from "../extensibility/custom-tools/types";
|
|
5
5
|
export type ImageProvider = "antigravity" | "gemini" | "openai" | "openai-codex" | "openrouter" | "xai";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { InMemorySnapshotStore } from "@oh-my-pi/hashline";
|
|
2
2
|
import type { AgentTelemetryConfig, AgentTool } from "@oh-my-pi/pi-agent-core";
|
|
3
|
-
import type { FetchImpl, ToolChoice } from "@oh-my-pi/pi-ai";
|
|
3
|
+
import type { FetchImpl, Model, ToolChoice } from "@oh-my-pi/pi-ai";
|
|
4
4
|
import type { AsyncJobManager } from "../async/job-manager";
|
|
5
5
|
import type { Rule } from "../capability/rule";
|
|
6
6
|
import type { PromptTemplate } from "../config/prompt-templates";
|
|
@@ -17,6 +17,7 @@ import type { AgentRegistry } from "../registry/agent-registry";
|
|
|
17
17
|
import type { ArtifactManager } from "../session/artifacts";
|
|
18
18
|
import type { ClientBridge } from "../session/client-bridge";
|
|
19
19
|
import type { CustomMessage } from "../session/messages";
|
|
20
|
+
import type { UsageStatistics } from "../session/session-entries";
|
|
20
21
|
import type { ToolChoiceQueue } from "../session/tool-choice-queue";
|
|
21
22
|
import type { AgentOutputManager } from "../task/output-manager";
|
|
22
23
|
import type { DiscoverableTool, DiscoverableToolSearchIndex } from "../tool-discovery/tool-index";
|
|
@@ -45,6 +46,8 @@ export * from "./image-gen";
|
|
|
45
46
|
export * from "./inspect-image";
|
|
46
47
|
export * from "./irc";
|
|
47
48
|
export * from "./job";
|
|
49
|
+
export * from "./learn";
|
|
50
|
+
export * from "./manage-skill";
|
|
48
51
|
export * from "./memory-edit";
|
|
49
52
|
export * from "./memory-recall";
|
|
50
53
|
export * from "./memory-reflect";
|
|
@@ -97,6 +100,13 @@ export interface ToolSession {
|
|
|
97
100
|
cwd: string;
|
|
98
101
|
/** Whether UI is available */
|
|
99
102
|
hasUI: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Suppress the spawn specialization/coordination advisory appended to `task`
|
|
105
|
+
* results. Set by internal/programmatic callers (e.g. the commit agent's
|
|
106
|
+
* file-analysis fan-out) whose results are consumed by code — not by a model
|
|
107
|
+
* orchestrating further spawns — so the nudge would only be noise.
|
|
108
|
+
*/
|
|
109
|
+
suppressSpawnAdvisory?: boolean;
|
|
100
110
|
/** Optional fetch implementation injected into the URL read pipeline (tests, proxies). Defaults to global fetch. */
|
|
101
111
|
fetch?: FetchImpl;
|
|
102
112
|
/** Skip Python kernel availability check and warmup */
|
|
@@ -173,6 +183,8 @@ export interface ToolSession {
|
|
|
173
183
|
getModelString?: () => string | undefined;
|
|
174
184
|
/** Get the current session model string, regardless of how it was chosen */
|
|
175
185
|
getActiveModelString?: () => string | undefined;
|
|
186
|
+
/** Get the current session model object (provider/api capabilities), regardless of how it was chosen. */
|
|
187
|
+
getActiveModel?: () => Model | undefined;
|
|
176
188
|
/** Auth storage for passing to subagents (avoids re-discovery) */
|
|
177
189
|
authStorage?: import("../session/auth-storage").AuthStorage;
|
|
178
190
|
/** Model registry for passing to subagents (avoids re-discovery) */
|
|
@@ -209,7 +221,7 @@ export interface ToolSession {
|
|
|
209
221
|
/** Goal runtime for the active agent session. */
|
|
210
222
|
getGoalRuntime?: () => GoalRuntime | undefined;
|
|
211
223
|
/** Get cumulative session usage statistics (input/output tokens, cost). */
|
|
212
|
-
getUsageStatistics?: () =>
|
|
224
|
+
getUsageStatistics?: () => UsageStatistics;
|
|
213
225
|
/** Current per-turn token budget {total, spent, hard} for the eval `budget` helper. */
|
|
214
226
|
getTurnBudget?: () => {
|
|
215
227
|
total: number | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import { completeSimple } from "@oh-my-pi/pi-ai";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { ToolSession } from "./index";
|
|
5
5
|
declare const inspectImageSchema: z.ZodObject<{
|
|
6
6
|
path: z.ZodString;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
12
12
|
import { type Component } from "@oh-my-pi/pi-tui";
|
|
13
|
-
import
|
|
13
|
+
import { z } from "zod/v4";
|
|
14
14
|
import type { Settings } from "../config/settings";
|
|
15
15
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
16
16
|
import { type IrcDeliveryReceipt, type IrcMessage } from "../irc/bus";
|
|
@@ -47,6 +47,7 @@ interface IrcPeerInfo {
|
|
|
47
47
|
parentId?: string;
|
|
48
48
|
unread: number;
|
|
49
49
|
lastActivity: number;
|
|
50
|
+
activity?: string;
|
|
50
51
|
}
|
|
51
52
|
export interface IrcDetails {
|
|
52
53
|
op: "send" | "wait" | "inbox" | "list";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import type { Theme } from "../modes/theme/theme";
|
|
6
6
|
import type { ToolSession } from "./index";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { AgentTool, AgentToolResult } from "@oh-my-pi/pi-agent-core";
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
|
+
import type { ToolSession } from ".";
|
|
4
|
+
declare const learnSchema: z.ZodObject<{
|
|
5
|
+
memory: z.ZodString;
|
|
6
|
+
context: z.ZodOptional<z.ZodString>;
|
|
7
|
+
skill: z.ZodOptional<z.ZodObject<{
|
|
8
|
+
action: z.ZodEnum<{
|
|
9
|
+
create: "create";
|
|
10
|
+
update: "update";
|
|
11
|
+
}>;
|
|
12
|
+
name: z.ZodString;
|
|
13
|
+
description: z.ZodString;
|
|
14
|
+
body: z.ZodString;
|
|
15
|
+
}, z.core.$strip>>;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export type LearnParams = z.infer<typeof learnSchema>;
|
|
18
|
+
/**
|
|
19
|
+
* Orchestrating "learn" tool: persists a lesson to long-term memory and,
|
|
20
|
+
* given a `skill` payload, mints/enhances a managed skill via the shared
|
|
21
|
+
* `writeManagedSkill` primitive. Gated behind `autolearn.enabled` plus a live
|
|
22
|
+
* memory backend — `hindsight`/`mnemopi` (remote/SQLite) or `local` (the
|
|
23
|
+
* file-based rollout backend, where lessons append to `learned.md`).
|
|
24
|
+
*/
|
|
25
|
+
export declare class LearnTool implements AgentTool<typeof learnSchema> {
|
|
26
|
+
private readonly session;
|
|
27
|
+
readonly name = "learn";
|
|
28
|
+
readonly approval: (args: unknown) => "read" | "write";
|
|
29
|
+
readonly label = "Learn";
|
|
30
|
+
readonly description: string;
|
|
31
|
+
readonly parameters: z.ZodObject<{
|
|
32
|
+
memory: z.ZodString;
|
|
33
|
+
context: z.ZodOptional<z.ZodString>;
|
|
34
|
+
skill: z.ZodOptional<z.ZodObject<{
|
|
35
|
+
action: z.ZodEnum<{
|
|
36
|
+
create: "create";
|
|
37
|
+
update: "update";
|
|
38
|
+
}>;
|
|
39
|
+
name: z.ZodString;
|
|
40
|
+
description: z.ZodString;
|
|
41
|
+
body: z.ZodString;
|
|
42
|
+
}, z.core.$strip>>;
|
|
43
|
+
}, z.core.$strip>;
|
|
44
|
+
readonly strict = true;
|
|
45
|
+
readonly loadMode: "essential";
|
|
46
|
+
readonly summary = "Capture a reusable lesson to memory (and optionally a managed skill)";
|
|
47
|
+
constructor(session: ToolSession);
|
|
48
|
+
static createIf(session: ToolSession): LearnTool | null;
|
|
49
|
+
execute(_id: string, params: LearnParams): Promise<AgentToolResult>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AgentTool, AgentToolResult } from "@oh-my-pi/pi-agent-core";
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
|
+
import type { ToolSession } from ".";
|
|
4
|
+
declare const manageSkillSchema: z.ZodObject<{
|
|
5
|
+
action: z.ZodEnum<{
|
|
6
|
+
create: "create";
|
|
7
|
+
delete: "delete";
|
|
8
|
+
update: "update";
|
|
9
|
+
}>;
|
|
10
|
+
name: z.ZodString;
|
|
11
|
+
description: z.ZodOptional<z.ZodString>;
|
|
12
|
+
body: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>;
|
|
14
|
+
export type ManageSkillParams = z.infer<typeof manageSkillSchema>;
|
|
15
|
+
/**
|
|
16
|
+
* Direct create/update/delete of isolated managed skills. Gated behind
|
|
17
|
+
* `autolearn.enabled`; backend-independent (the skill side is standalone).
|
|
18
|
+
*/
|
|
19
|
+
export declare class ManageSkillTool implements AgentTool<typeof manageSkillSchema> {
|
|
20
|
+
readonly name = "manage_skill";
|
|
21
|
+
readonly approval: "write";
|
|
22
|
+
readonly label = "Manage Skill";
|
|
23
|
+
readonly description: string;
|
|
24
|
+
readonly parameters: z.ZodObject<{
|
|
25
|
+
action: z.ZodEnum<{
|
|
26
|
+
create: "create";
|
|
27
|
+
delete: "delete";
|
|
28
|
+
update: "update";
|
|
29
|
+
}>;
|
|
30
|
+
name: z.ZodString;
|
|
31
|
+
description: z.ZodOptional<z.ZodString>;
|
|
32
|
+
body: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
readonly strict = true;
|
|
35
|
+
readonly loadMode: "essential";
|
|
36
|
+
readonly summary = "Create, update, or delete an isolated managed skill";
|
|
37
|
+
static createIf(session: ToolSession): ManageSkillTool | null;
|
|
38
|
+
execute(_id: string, params: ManageSkillParams): Promise<AgentToolResult>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { ToolSession } from ".";
|
|
2
|
+
/** Strip the hashline `[path#TAG]` wrapper from a write/edit target so the inner
|
|
3
|
+
* filesystem path drives both authorization and resolution. Only unwraps inputs
|
|
4
|
+
* that match the strict hashline header shape (`[path]` or `[path#XXXX]` with a
|
|
5
|
+
* 4-hex tag); anything else returns the original string so the downstream
|
|
6
|
+
* resolver surfaces the real error. Exported for callers (e.g. `write`) that
|
|
7
|
+
* make scheme/bridge-routing decisions before {@link resolvePlanPath} runs. */
|
|
8
|
+
export declare function unwrapHashlineHeaderPath(targetPath: string): string;
|
|
2
9
|
/**
|
|
3
10
|
* Resolve a write/edit target to its absolute filesystem path, honoring the
|
|
4
11
|
* `local://` and `vault://` schemes. Plain paths resolve against the session cwd.
|
|
12
|
+
* Bracketed hashline headers (`[path#TAG]`) are unwrapped first so the inner
|
|
13
|
+
* filesystem path drives resolution — keeping the plan-mode guard and the
|
|
14
|
+
* eventual write in lockstep.
|
|
5
15
|
*/
|
|
6
16
|
export declare function resolvePlanPath(session: ToolSession, targetPath: string): string;
|
|
7
17
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import { type Theme } from "../modes/theme/theme";
|
|
6
6
|
import type { ToolSession } from "../sdk";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
3
|
import type { ToolSession } from "./index";
|
|
4
4
|
declare const renderMermaidSchema: z.ZodObject<{
|
|
5
5
|
mermaid: z.ZodString;
|
|
@@ -22,17 +22,13 @@ export type ToolRenderer = {
|
|
|
22
22
|
/** Render without background box, inline in the response flow */
|
|
23
23
|
inline?: boolean;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* pending preview streams top-anchored append-shaped rows the result
|
|
32
|
-
* render preserves (task context/assignment, write content), which stay
|
|
33
|
-
* commit-eligible so a call taller than the viewport scrolls into history
|
|
34
|
-
* instead of reading as cut off.
|
|
25
|
+
* Whether pending-call rows are provisional: useful on screen while a tool is
|
|
26
|
+
* streaming, but not durable transcript history. `true` means every pending
|
|
27
|
+
* shape is provisional. `"collapsed"` means only the collapsed pending shape
|
|
28
|
+
* is provisional; expanded rendering is top-anchored/append-shaped enough to
|
|
29
|
+
* let the transcript commit its settled prefix. Absent = the pending preview
|
|
30
|
+
* streams rows the result render preserves.
|
|
35
31
|
*/
|
|
36
|
-
provisionalPendingPreview?: boolean;
|
|
32
|
+
provisionalPendingPreview?: boolean | "collapsed";
|
|
37
33
|
};
|
|
38
34
|
export declare const toolRenderers: Record<string, ToolRenderer>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import type { Theme } from "../modes/theme/theme";
|
|
6
6
|
import type { ToolSession } from ".";
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Reviewers finish via `yield` tool with SubmitReviewDetails schema.
|
|
7
7
|
*/
|
|
8
8
|
import type { AgentTool } from "@oh-my-pi/pi-agent-core";
|
|
9
|
-
import
|
|
9
|
+
import { z } from "zod/v4";
|
|
10
10
|
import type { Theme, ThemeColor } from "../modes/theme/theme";
|
|
11
11
|
import type { ReviewFinding } from "../task/types";
|
|
12
12
|
export type FindingPriority = "P0" | "P1" | "P2" | "P3";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import type { Theme } from "../modes/theme/theme";
|
|
6
6
|
import { type DiscoverableTool } from "../tool-discovery/tool-index";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import type { Theme } from "../modes/theme/theme";
|
|
6
6
|
import { type TruncationResult } from "../session/streaming-output";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { SSHHost } from "../capability/ssh";
|
|
5
5
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
6
6
|
import type { Theme } from "../modes/theme/theme";
|
|
@@ -65,6 +65,6 @@ export declare const sshToolRenderer: {
|
|
|
65
65
|
renderContext?: SshRenderContext;
|
|
66
66
|
}, uiTheme: Theme, args?: SshRenderArgs): Component;
|
|
67
67
|
mergeCallAndResult: boolean;
|
|
68
|
-
provisionalPendingPreview:
|
|
68
|
+
provisionalPendingPreview: string;
|
|
69
69
|
};
|
|
70
70
|
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import type { Theme } from "../modes/theme/theme";
|
|
6
6
|
import type { ToolSession } from "../sdk";
|
|
7
|
-
import type { SessionEntry } from "../session/session-
|
|
7
|
+
import type { SessionEntry } from "../session/session-entries";
|
|
8
8
|
export type TodoStatus = "pending" | "in_progress" | "completed" | "abandoned";
|
|
9
9
|
export interface TodoItem {
|
|
10
10
|
content: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
2
|
import type { CustomTool } from "../extensibility/custom-tools/types";
|
|
3
3
|
type TtsCodec = "mp3" | "wav";
|
|
4
|
+
type TtsBackend = "local" | "xai";
|
|
4
5
|
declare const ttsSchema: z.ZodObject<{
|
|
5
6
|
text: z.ZodString;
|
|
6
7
|
voice_id: z.ZodDefault<z.ZodString>;
|
|
@@ -13,6 +14,30 @@ interface TtsToolDetails {
|
|
|
13
14
|
bytes: number;
|
|
14
15
|
voiceId: string;
|
|
15
16
|
codec: TtsCodec;
|
|
17
|
+
backend: TtsBackend;
|
|
16
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Pick the synthesis backend. Pure for testability.
|
|
21
|
+
*
|
|
22
|
+
* - `xai` / `local` are honored verbatim (the xAI path still surfaces its own
|
|
23
|
+
* "no credentials" error when creds are missing).
|
|
24
|
+
* - `auto` prefers the local on-device backend, except when the caller asked for
|
|
25
|
+
* an `.mp3` and xAI credentials exist — only the cloud path can emit MP3, so we
|
|
26
|
+
* route there to satisfy the requested container rather than substituting WAV.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveTtsBackend(opts: {
|
|
29
|
+
preference: string;
|
|
30
|
+
wantsMp3: boolean;
|
|
31
|
+
hasXaiCreds: boolean;
|
|
32
|
+
}): TtsBackend;
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the on-disk path for local synthesis. Local output is always WAV (no
|
|
35
|
+
* MP3 encoder is bundled), so an `.mp3` (or any non-`.wav`) request is rewritten
|
|
36
|
+
* to a sibling `.wav` and flagged so the tool result can note the substitution.
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveLocalWavPath(outputPath: string): {
|
|
39
|
+
wavPath: string;
|
|
40
|
+
substituted: boolean;
|
|
41
|
+
};
|
|
17
42
|
export declare const ttsTool: CustomTool<typeof ttsSchema, TtsToolDetails>;
|
|
18
43
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
2
|
import type { Component } from "@oh-my-pi/pi-tui";
|
|
3
|
-
import
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
4
|
import type { RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
5
5
|
import { type FileDiagnosticsResult } from "../lsp";
|
|
6
6
|
import { type Theme } from "../modes/theme/theme";
|
|
@@ -46,7 +46,7 @@ export declare class WriteTool implements AgentTool<typeof writeSchema, WriteToo
|
|
|
46
46
|
/** Stream matchers should see the real file content, not its JSON-escaped argument encoding. */
|
|
47
47
|
matcherDigest(args: unknown): string | undefined;
|
|
48
48
|
constructor(session: ToolSession);
|
|
49
|
-
execute(_toolCallId: string, { path, content }: WriteParams, signal?: AbortSignal, _onUpdate?: AgentToolUpdateCallback<WriteToolDetails>, context?: AgentToolContext): Promise<AgentToolResult<WriteToolDetails>>;
|
|
49
|
+
execute(_toolCallId: string, { path: rawPath, content }: WriteParams, signal?: AbortSignal, _onUpdate?: AgentToolUpdateCallback<WriteToolDetails>, context?: AgentToolContext): Promise<AgentToolResult<WriteToolDetails>>;
|
|
50
50
|
}
|
|
51
51
|
interface WriteRenderArgs {
|
|
52
52
|
path?: string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface TtsDownloadProgress {
|
|
2
|
+
stage: string;
|
|
3
|
+
/** Integer 0–100 download percent when known. */
|
|
4
|
+
percent?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Whether the selected local TTS model and the side Kokoro runtime are already
|
|
8
|
+
* present. transformers.js stores `main`-revision files at
|
|
9
|
+
* `<cacheDir>/<repo>/...`, so any `.onnx` weight under the repo dir means the
|
|
10
|
+
* model weights can load without a network fetch; the Kokoro package runtime is
|
|
11
|
+
* version-keyed separately and must also exist before setup can report ready.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isTtsModelCached(modelKey: string): Promise<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* Ensure the selected local TTS model is downloaded into the transformers.js
|
|
16
|
+
* cache (and warm in the worker), streaming integer-percent Hub progress. The
|
|
17
|
+
* worker resolves the request once every model file is cached. Returns `false`
|
|
18
|
+
* if the worker is unavailable or the download failed.
|
|
19
|
+
*/
|
|
20
|
+
export declare function downloadTtsModel(modelKey: string, onProgress?: (progress: TtsDownloadProgress) => void, signal?: AbortSignal): Promise<boolean>;
|