@oh-my-pi/pi-coding-agent 16.3.6 → 16.3.7
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 +60 -0
- package/dist/cli.js +3052 -3037
- package/dist/types/advisor/index.d.ts +6 -6
- package/dist/types/advisor/runtime.d.ts +1 -1
- package/dist/types/advisor/watchdog.d.ts +1 -1
- package/dist/types/async/index.d.ts +1 -1
- package/dist/types/auto-thinking/classifier.d.ts +2 -2
- package/dist/types/autolearn/controller.d.ts +2 -2
- package/dist/types/autoresearch/dashboard.d.ts +2 -2
- package/dist/types/autoresearch/git.d.ts +1 -1
- package/dist/types/autoresearch/helpers.d.ts +1 -1
- package/dist/types/autoresearch/index.d.ts +1 -1
- package/dist/types/autoresearch/state.d.ts +3 -3
- package/dist/types/autoresearch/storage.d.ts +1 -1
- package/dist/types/autoresearch/tools/init-experiment.d.ts +2 -2
- package/dist/types/autoresearch/tools/log-experiment.d.ts +2 -2
- package/dist/types/autoresearch/tools/run-experiment.d.ts +2 -2
- package/dist/types/autoresearch/tools/update-notes.d.ts +2 -2
- package/dist/types/autoresearch/types.d.ts +3 -3
- package/dist/types/capability/context-file.d.ts +2 -2
- package/dist/types/capability/extension-module.d.ts +2 -2
- package/dist/types/capability/extension.d.ts +3 -3
- package/dist/types/capability/hook.d.ts +2 -2
- package/dist/types/capability/index.d.ts +3 -3
- package/dist/types/capability/instruction.d.ts +2 -2
- package/dist/types/capability/mcp.d.ts +2 -2
- package/dist/types/capability/prompt.d.ts +2 -2
- package/dist/types/capability/rule-buckets.d.ts +2 -2
- package/dist/types/capability/rule.d.ts +2 -2
- package/dist/types/capability/settings.d.ts +2 -2
- package/dist/types/capability/skill.d.ts +2 -2
- package/dist/types/capability/slash-command.d.ts +2 -2
- package/dist/types/capability/ssh.d.ts +2 -2
- package/dist/types/capability/system-prompt.d.ts +2 -2
- package/dist/types/capability/tool.d.ts +2 -2
- package/dist/types/cli/args.d.ts +1 -1
- package/dist/types/cli/bench-cli.d.ts +2 -2
- package/dist/types/cli/dry-balance-cli.d.ts +1 -1
- package/dist/types/cli/extension-flags.d.ts +1 -1
- package/dist/types/cli/flag-tables.d.ts +2 -2
- package/dist/types/cli/gallery-cli.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/agentic.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/codeintel.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/edit.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/fs.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/index.d.ts +2 -2
- package/dist/types/cli/gallery-fixtures/interaction.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/memory.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/misc.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/search.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/shell.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/types.d.ts +1 -1
- package/dist/types/cli/gallery-fixtures/web.d.ts +1 -1
- package/dist/types/cli/gallery-screenshot.d.ts +1 -1
- package/dist/types/cli/initial-message.d.ts +1 -1
- package/dist/types/cli/models-cli.d.ts +1 -1
- package/dist/types/cli/plugin-cli.d.ts +1 -1
- package/dist/types/cli/session-picker.d.ts +1 -1
- package/dist/types/cli/startup-cwd.d.ts +1 -1
- package/dist/types/cli/tiny-models-cli.d.ts +1 -1
- package/dist/types/cli/web-search-cli.d.ts +1 -1
- package/dist/types/collab/crypto.d.ts +1 -1
- package/dist/types/collab/display-name.d.ts +1 -1
- package/dist/types/collab/guest.d.ts +4 -4
- package/dist/types/collab/host.d.ts +2 -2
- package/dist/types/collab/protocol.d.ts +3 -3
- package/dist/types/collab/relay-client.d.ts +1 -1
- package/dist/types/commands/auth-broker.d.ts +1 -1
- package/dist/types/commands/auth-gateway.d.ts +1 -1
- package/dist/types/commands/config.d.ts +1 -1
- package/dist/types/commands/plugin.d.ts +1 -1
- package/dist/types/commands/setup.d.ts +2 -2
- package/dist/types/commands/ssh.d.ts +1 -1
- package/dist/types/commands/tiny-models.d.ts +1 -1
- package/dist/types/commands/ttsr.d.ts +2 -2
- package/dist/types/commit/agentic/agent.d.ts +4 -4
- package/dist/types/commit/agentic/fallback.d.ts +2 -2
- package/dist/types/commit/agentic/index.d.ts +1 -1
- package/dist/types/commit/agentic/state.d.ts +1 -1
- package/dist/types/commit/agentic/tools/analyze-file.d.ts +5 -5
- package/dist/types/commit/agentic/tools/git-file-diff.d.ts +2 -2
- package/dist/types/commit/agentic/tools/git-hunk.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-overview.d.ts +2 -2
- package/dist/types/commit/agentic/tools/index.d.ts +5 -5
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +2 -2
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +2 -2
- package/dist/types/commit/agentic/tools/recent-commits.d.ts +1 -1
- package/dist/types/commit/agentic/tools/split-commit.d.ts +2 -2
- package/dist/types/commit/agentic/topo-sort.d.ts +1 -1
- package/dist/types/commit/agentic/trivial.d.ts +1 -1
- package/dist/types/commit/agentic/validation.d.ts +1 -1
- package/dist/types/commit/analysis/conventional.d.ts +1 -1
- package/dist/types/commit/analysis/index.d.ts +4 -4
- package/dist/types/commit/analysis/scope.d.ts +1 -1
- package/dist/types/commit/analysis/summary.d.ts +1 -1
- package/dist/types/commit/analysis/validation.d.ts +1 -1
- package/dist/types/commit/changelog/detect.d.ts +1 -1
- package/dist/types/commit/changelog/generate.d.ts +1 -1
- package/dist/types/commit/changelog/parse.d.ts +1 -1
- package/dist/types/commit/cli.d.ts +1 -1
- package/dist/types/commit/git/diff.d.ts +1 -1
- package/dist/types/commit/index.d.ts +1 -1
- package/dist/types/commit/map-reduce/index.d.ts +1 -1
- package/dist/types/commit/map-reduce/map-phase.d.ts +1 -1
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +1 -1
- package/dist/types/commit/message.d.ts +1 -1
- package/dist/types/commit/model-selection.d.ts +3 -3
- package/dist/types/commit/pipeline.d.ts +1 -1
- package/dist/types/commit/shared-llm.d.ts +1 -1
- package/dist/types/commit/utils.d.ts +1 -1
- package/dist/types/config/model-discovery.d.ts +1 -1
- package/dist/types/config/model-registry.d.ts +3 -3
- package/dist/types/config/model-resolver.d.ts +4 -4
- package/dist/types/config/model-roles.d.ts +2 -2
- package/dist/types/config/models-config.d.ts +2 -2
- package/dist/types/config/service-tier.d.ts +1 -1
- package/dist/types/config/settings-schema.d.ts +7 -13
- package/dist/types/config/settings.d.ts +7 -7
- package/dist/types/config.d.ts +1 -1
- package/dist/types/dap/client.d.ts +1 -1
- package/dist/types/dap/config.d.ts +1 -1
- package/dist/types/dap/index.d.ts +4 -4
- package/dist/types/dap/session.d.ts +3 -3
- package/dist/types/debug/index.d.ts +1 -1
- package/dist/types/debug/log-viewer.d.ts +1 -1
- package/dist/types/debug/raw-sse.d.ts +1 -1
- package/dist/types/debug/report-bundle.d.ts +1 -1
- package/dist/types/discovery/agents.d.ts +1 -1
- package/dist/types/discovery/helpers.d.ts +4 -4
- package/dist/types/discovery/index.d.ts +47 -47
- package/dist/types/discovery/omp-extension-roots.d.ts +1 -1
- package/dist/types/edit/apply-patch/index.d.ts +2 -2
- package/dist/types/edit/apply-patch/parser.d.ts +1 -1
- package/dist/types/edit/diff.d.ts +1 -1
- package/dist/types/edit/hashline/execute.d.ts +4 -4
- package/dist/types/edit/hashline/filesystem.d.ts +3 -3
- package/dist/types/edit/hashline/index.d.ts +5 -5
- package/dist/types/edit/index.d.ts +19 -19
- package/dist/types/edit/modes/apply-patch.d.ts +1 -1
- package/dist/types/edit/modes/patch.d.ts +3 -3
- package/dist/types/edit/modes/replace.d.ts +3 -3
- package/dist/types/edit/renderer.d.ts +15 -15
- package/dist/types/edit/snapshot-details.d.ts +1 -1
- package/dist/types/edit/streaming.d.ts +2 -2
- package/dist/types/eval/agent-bridge.d.ts +4 -4
- package/dist/types/eval/backend-helpers.d.ts +3 -3
- package/dist/types/eval/backend.d.ts +2 -2
- package/dist/types/eval/bridge-timeout.d.ts +1 -1
- package/dist/types/eval/budget-bridge.d.ts +2 -2
- package/dist/types/eval/completion-bridge.d.ts +2 -2
- package/dist/types/eval/concurrency-bridge.d.ts +2 -2
- package/dist/types/eval/executor-base.d.ts +3 -3
- package/dist/types/eval/index.d.ts +6 -6
- package/dist/types/eval/jl/executor.d.ts +4 -4
- package/dist/types/eval/jl/index.d.ts +2 -2
- package/dist/types/eval/jl/kernel.d.ts +5 -5
- package/dist/types/eval/js/context-manager.d.ts +4 -4
- package/dist/types/eval/js/executor.d.ts +3 -3
- package/dist/types/eval/js/index.d.ts +2 -2
- package/dist/types/eval/js/shared/helpers.d.ts +1 -1
- package/dist/types/eval/js/shared/runtime.d.ts +2 -2
- package/dist/types/eval/js/tool-bridge.d.ts +5 -5
- package/dist/types/eval/js/worker-core.d.ts +1 -1
- package/dist/types/eval/js/worker-protocol.d.ts +2 -2
- package/dist/types/eval/kernel-base.d.ts +1 -1
- package/dist/types/eval/py/executor.d.ts +3 -3
- package/dist/types/eval/py/index.d.ts +2 -2
- package/dist/types/eval/py/kernel.d.ts +5 -5
- package/dist/types/eval/py/tool-bridge.d.ts +2 -2
- package/dist/types/eval/rb/executor.d.ts +3 -3
- package/dist/types/eval/rb/index.d.ts +2 -2
- package/dist/types/eval/rb/kernel.d.ts +6 -6
- package/dist/types/eval/session-id.d.ts +1 -1
- package/dist/types/eval/types.d.ts +1 -1
- package/dist/types/exa/index.d.ts +2 -2
- package/dist/types/exa/mcp-client.d.ts +3 -3
- package/dist/types/exec/bash-executor.d.ts +1 -1
- package/dist/types/export/html/index.d.ts +2 -2
- package/dist/types/export/share.d.ts +3 -3
- package/dist/types/export/ttsr.d.ts +2 -2
- package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +2 -2
- package/dist/types/extensibility/custom-commands/bundled/review/index.d.ts +2 -2
- package/dist/types/extensibility/custom-commands/index.d.ts +2 -2
- package/dist/types/extensibility/custom-commands/loader.d.ts +1 -1
- package/dist/types/extensibility/custom-commands/types.d.ts +3 -3
- package/dist/types/extensibility/custom-tools/index.d.ts +3 -3
- package/dist/types/extensibility/custom-tools/loader.d.ts +3 -3
- package/dist/types/extensibility/custom-tools/types.d.ts +12 -12
- package/dist/types/extensibility/custom-tools/wrapper.d.ts +2 -2
- package/dist/types/extensibility/extensions/compact-handler.d.ts +1 -1
- package/dist/types/extensibility/extensions/get-commands-handler.d.ts +5 -5
- package/dist/types/extensibility/extensions/index.d.ts +5 -5
- package/dist/types/extensibility/extensions/loader.d.ts +2 -2
- package/dist/types/extensibility/extensions/model-api.d.ts +3 -3
- package/dist/types/extensibility/extensions/runner.d.ts +6 -6
- package/dist/types/extensibility/extensions/types.d.ts +43 -31
- package/dist/types/extensibility/extensions/wrapper.d.ts +2 -2
- package/dist/types/extensibility/hooks/index.d.ts +6 -6
- package/dist/types/extensibility/hooks/loader.d.ts +4 -4
- package/dist/types/extensibility/hooks/runner.d.ts +5 -5
- package/dist/types/extensibility/hooks/tool-wrapper.d.ts +1 -1
- package/dist/types/extensibility/hooks/types.d.ts +18 -18
- package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +12 -4
- package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +194 -5
- package/dist/types/extensibility/plugins/doctor.d.ts +1 -1
- package/dist/types/extensibility/plugins/index.d.ts +7 -7
- package/dist/types/extensibility/plugins/installer.d.ts +1 -1
- package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +1 -1
- package/dist/types/extensibility/plugins/loader.d.ts +1 -1
- package/dist/types/extensibility/plugins/manager.d.ts +1 -1
- package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +1 -1
- package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -6
- package/dist/types/extensibility/plugins/marketplace/manager.d.ts +1 -1
- package/dist/types/extensibility/plugins/marketplace/registry.d.ts +1 -1
- package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +1 -1
- package/dist/types/extensibility/plugins/runtime-config.d.ts +1 -1
- package/dist/types/extensibility/session-handler-types.d.ts +1 -1
- package/dist/types/extensibility/shared-events.d.ts +4 -4
- package/dist/types/extensibility/skills.d.ts +3 -3
- package/dist/types/extensibility/slash-commands.d.ts +1 -1
- package/dist/types/extensibility/typebox.d.ts +1 -1
- package/dist/types/extensibility/utils.d.ts +1 -1
- package/dist/types/goals/guided-setup.d.ts +1 -1
- package/dist/types/goals/index.d.ts +3 -3
- package/dist/types/goals/runtime.d.ts +1 -1
- package/dist/types/goals/state.d.ts +1 -1
- package/dist/types/goals/tools/goal-tool.d.ts +4 -4
- package/dist/types/hindsight/backend.d.ts +2 -2
- package/dist/types/hindsight/bank.d.ts +2 -2
- package/dist/types/hindsight/client.d.ts +1 -1
- package/dist/types/hindsight/config.d.ts +1 -1
- package/dist/types/hindsight/index.d.ts +8 -8
- package/dist/types/hindsight/mental-models.d.ts +3 -3
- package/dist/types/hindsight/state.d.ts +5 -5
- package/dist/types/hindsight/transcript.d.ts +2 -2
- package/dist/types/index.d.ts +38 -38
- package/dist/types/internal-urls/agent-protocol.d.ts +1 -1
- package/dist/types/internal-urls/artifact-protocol.d.ts +1 -1
- package/dist/types/internal-urls/filesystem-resource.d.ts +1 -1
- package/dist/types/internal-urls/history-protocol.d.ts +1 -1
- package/dist/types/internal-urls/index.d.ts +16 -16
- package/dist/types/internal-urls/issue-pr-protocol.d.ts +1 -1
- package/dist/types/internal-urls/local-protocol.d.ts +1 -1
- package/dist/types/internal-urls/mcp-protocol.d.ts +1 -1
- package/dist/types/internal-urls/memory-protocol.d.ts +1 -1
- package/dist/types/internal-urls/omp-protocol.d.ts +1 -1
- package/dist/types/internal-urls/parse.d.ts +1 -1
- package/dist/types/internal-urls/router.d.ts +1 -1
- package/dist/types/internal-urls/rule-protocol.d.ts +1 -1
- package/dist/types/internal-urls/skill-protocol.d.ts +1 -1
- package/dist/types/internal-urls/ssh-protocol.d.ts +1 -1
- package/dist/types/internal-urls/types.d.ts +2 -2
- package/dist/types/internal-urls/vault-protocol.d.ts +1 -1
- package/dist/types/irc/bus.d.ts +2 -2
- package/dist/types/lib/xai-http.d.ts +1 -1
- package/dist/types/lsp/client.d.ts +23 -1
- package/dist/types/lsp/clients/biome-client.d.ts +1 -1
- package/dist/types/lsp/clients/index.d.ts +4 -4
- package/dist/types/lsp/clients/lsp-linter-client.d.ts +1 -1
- package/dist/types/lsp/clients/swiftlint-client.d.ts +1 -1
- package/dist/types/lsp/config.d.ts +1 -1
- package/dist/types/lsp/diagnostics-ledger.d.ts +1 -1
- package/dist/types/lsp/edits.d.ts +1 -1
- package/dist/types/lsp/index.d.ts +6 -6
- package/dist/types/lsp/render.d.ts +2 -2
- package/dist/types/lsp/startup-events.d.ts +1 -1
- package/dist/types/lsp/utils.d.ts +2 -2
- package/dist/types/main.d.ts +12 -12
- package/dist/types/markit/converters/docx.d.ts +1 -1
- package/dist/types/markit/converters/epub.d.ts +1 -1
- package/dist/types/markit/converters/pdf/columns.d.ts +1 -1
- package/dist/types/markit/converters/pdf/extract.d.ts +1 -1
- package/dist/types/markit/converters/pdf/grid.d.ts +1 -1
- package/dist/types/markit/converters/pdf/headers.d.ts +1 -1
- package/dist/types/markit/converters/pdf/index.d.ts +1 -1
- package/dist/types/markit/converters/pdf/render.d.ts +1 -1
- package/dist/types/markit/converters/pptx.d.ts +1 -1
- package/dist/types/markit/converters/xlsx.d.ts +1 -1
- package/dist/types/markit/index.d.ts +2 -2
- package/dist/types/markit/registry.d.ts +1 -1
- package/dist/types/mcp/client.d.ts +1 -1
- package/dist/types/mcp/config-writer.d.ts +1 -1
- package/dist/types/mcp/config.d.ts +2 -2
- package/dist/types/mcp/index.d.ts +12 -12
- package/dist/types/mcp/loader.d.ts +5 -5
- package/dist/types/mcp/manager.d.ts +7 -7
- package/dist/types/mcp/oauth-credentials.d.ts +3 -3
- package/dist/types/mcp/oauth-flow.d.ts +1 -1
- package/dist/types/mcp/render.d.ts +3 -3
- package/dist/types/mcp/smithery-registry.d.ts +1 -1
- package/dist/types/mcp/tool-bridge.d.ts +5 -5
- package/dist/types/mcp/tool-cache.d.ts +2 -2
- package/dist/types/mcp/transports/http.d.ts +1 -1
- package/dist/types/mcp/transports/index.d.ts +3 -3
- package/dist/types/mcp/transports/sse.d.ts +1 -1
- package/dist/types/mcp/transports/stdio.d.ts +1 -1
- package/dist/types/mcp/types.d.ts +1 -1
- package/dist/types/memories/index.d.ts +4 -4
- package/dist/types/memory-backend/index.d.ts +7 -7
- package/dist/types/memory-backend/local-backend.d.ts +1 -1
- package/dist/types/memory-backend/off-backend.d.ts +1 -1
- package/dist/types/memory-backend/resolve.d.ts +2 -2
- package/dist/types/memory-backend/runtime.d.ts +2 -2
- package/dist/types/memory-backend/types.d.ts +5 -5
- package/dist/types/mnemopi/backend.d.ts +2 -2
- package/dist/types/mnemopi/config.d.ts +1 -1
- package/dist/types/mnemopi/embed-client.d.ts +2 -2
- package/dist/types/mnemopi/embed-worker.d.ts +1 -1
- package/dist/types/mnemopi/index.d.ts +3 -3
- package/dist/types/mnemopi/state.d.ts +38 -2
- package/dist/types/modes/acp/acp-agent.d.ts +2 -2
- package/dist/types/modes/acp/acp-client-bridge.d.ts +1 -1
- package/dist/types/modes/acp/acp-event-mapper.d.ts +1 -1
- package/dist/types/modes/acp/acp-mode.d.ts +1 -1
- package/dist/types/modes/acp/index.d.ts +2 -2
- package/dist/types/modes/components/advisor-config.d.ts +3 -3
- package/dist/types/modes/components/advisor-message.d.ts +2 -2
- package/dist/types/modes/components/agent-dashboard.d.ts +2 -2
- package/dist/types/modes/components/agent-hub.d.ts +11 -9
- package/dist/types/modes/components/agent-transcript-viewer.d.ts +6 -6
- package/dist/types/modes/components/assistant-message.d.ts +2 -2
- package/dist/types/modes/components/background-tan-message.d.ts +2 -2
- package/dist/types/modes/components/bash-execution.d.ts +1 -1
- package/dist/types/modes/components/bordered-loader.d.ts +1 -1
- package/dist/types/modes/components/chat-transcript-builder.d.ts +3 -3
- package/dist/types/modes/components/collab-prompt-message.d.ts +2 -2
- package/dist/types/modes/components/compaction-summary-message.d.ts +1 -1
- package/dist/types/modes/components/copy-selector.d.ts +1 -1
- package/dist/types/modes/components/custom-editor.d.ts +1 -1
- package/dist/types/modes/components/custom-message.d.ts +2 -2
- package/dist/types/modes/components/eval-execution.d.ts +1 -1
- package/dist/types/modes/components/execution-shared.d.ts +1 -1
- package/dist/types/modes/components/extensions/extension-dashboard.d.ts +2 -2
- package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
- package/dist/types/modes/components/extensions/index.d.ts +5 -5
- package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
- package/dist/types/modes/components/extensions/state-manager.d.ts +1 -1
- package/dist/types/modes/components/extensions/types.d.ts +1 -1
- package/dist/types/modes/components/footer.d.ts +1 -1
- package/dist/types/modes/components/history-search.d.ts +1 -1
- package/dist/types/modes/components/hook-message.d.ts +2 -2
- package/dist/types/modes/components/index.d.ts +38 -38
- package/dist/types/modes/components/keybinding-hints.d.ts +1 -1
- package/dist/types/modes/components/logout-account-selector.d.ts +1 -1
- package/dist/types/modes/components/mcp-add-wizard.d.ts +1 -1
- package/dist/types/modes/components/message-frame.d.ts +1 -1
- package/dist/types/modes/components/model-selector.d.ts +3 -3
- package/dist/types/modes/components/oauth-selector.d.ts +1 -1
- package/dist/types/modes/components/plan-review-overlay.d.ts +1 -1
- package/dist/types/modes/components/plugin-settings.d.ts +3 -3
- package/dist/types/modes/components/read-tool-group.d.ts +1 -1
- package/dist/types/modes/components/reset-usage-selector.d.ts +1 -1
- package/dist/types/modes/components/segment-track.d.ts +1 -1
- package/dist/types/modes/components/session-selector.d.ts +1 -1
- package/dist/types/modes/components/settings-defs.d.ts +1 -1
- package/dist/types/modes/components/settings-selector.d.ts +2 -2
- package/dist/types/modes/components/skill-message.d.ts +1 -1
- package/dist/types/modes/components/status-line/component.d.ts +2 -2
- package/dist/types/modes/components/status-line/context-thresholds.d.ts +1 -1
- package/dist/types/modes/components/status-line/index.d.ts +5 -5
- package/dist/types/modes/components/status-line/presets.d.ts +1 -1
- package/dist/types/modes/components/status-line/segments.d.ts +2 -2
- package/dist/types/modes/components/status-line/separators.d.ts +2 -2
- package/dist/types/modes/components/status-line/types.d.ts +8 -4
- package/dist/types/modes/components/tiny-title-download-progress.d.ts +2 -2
- package/dist/types/modes/components/todo-reminder.d.ts +1 -1
- package/dist/types/modes/components/tool-execution.d.ts +1 -1
- package/dist/types/modes/components/tree-selector.d.ts +2 -2
- package/dist/types/modes/components/ttsr-notification.d.ts +1 -1
- package/dist/types/modes/controllers/btw-controller.d.ts +1 -1
- package/dist/types/modes/controllers/command-controller-shared.d.ts +2 -2
- package/dist/types/modes/controllers/command-controller.d.ts +7 -7
- package/dist/types/modes/controllers/event-controller.d.ts +3 -3
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +5 -5
- package/dist/types/modes/controllers/extension-ui-controller.test.d.ts +1 -0
- package/dist/types/modes/controllers/input-controller.d.ts +2 -2
- package/dist/types/modes/controllers/mcp-command-controller.d.ts +1 -1
- package/dist/types/modes/controllers/omfg-controller.d.ts +1 -1
- package/dist/types/modes/controllers/omfg-rule.d.ts +1 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +2 -2
- package/dist/types/modes/controllers/session-focus-controller.d.ts +4 -4
- package/dist/types/modes/controllers/ssh-command-controller.d.ts +1 -1
- package/dist/types/modes/controllers/streaming-reveal.d.ts +11 -3
- package/dist/types/modes/controllers/tan-command-controller.d.ts +1 -1
- package/dist/types/modes/controllers/todo-command-controller.d.ts +1 -1
- package/dist/types/modes/controllers/tool-args-reveal.d.ts +6 -2
- package/dist/types/modes/image-references.d.ts +1 -1
- package/dist/types/modes/index.d.ts +3 -3
- package/dist/types/modes/interactive-mode.d.ts +34 -34
- package/dist/types/modes/orchestrate.d.ts +1 -1
- package/dist/types/modes/print-mode.d.ts +1 -1
- package/dist/types/modes/prompt-action-autocomplete.d.ts +1 -1
- package/dist/types/modes/rpc/host-tools.d.ts +1 -1
- package/dist/types/modes/rpc/host-uris.d.ts +3 -3
- package/dist/types/modes/rpc/rpc-client.d.ts +3 -3
- package/dist/types/modes/rpc/rpc-mode.d.ts +6 -6
- package/dist/types/modes/rpc/rpc-subagents.d.ts +3 -3
- package/dist/types/modes/rpc/rpc-types.d.ts +7 -7
- package/dist/types/modes/running-subagent-badge.d.ts +1 -1
- package/dist/types/modes/runtime-init.d.ts +2 -2
- package/dist/types/modes/session-observer-registry.d.ts +2 -2
- package/dist/types/modes/setup-wizard/index.d.ts +6 -6
- package/dist/types/modes/setup-wizard/lazy.d.ts +1 -1
- package/dist/types/modes/setup-wizard/scenes/glyph.d.ts +1 -1
- package/dist/types/modes/setup-wizard/scenes/providers.d.ts +1 -1
- package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +1 -1
- package/dist/types/modes/setup-wizard/scenes/theme.d.ts +1 -1
- package/dist/types/modes/setup-wizard/scenes/types.d.ts +1 -1
- package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +1 -1
- package/dist/types/modes/setup-wizard/startup-splash.d.ts +1 -1
- package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +2 -2
- package/dist/types/modes/shared.d.ts +1 -1
- package/dist/types/modes/skill-command.d.ts +2 -2
- package/dist/types/modes/theme/shimmer.d.ts +1 -1
- package/dist/types/modes/theme/theme.d.ts +1 -1
- package/dist/types/modes/types.d.ts +31 -31
- package/dist/types/modes/ultrathink.d.ts +1 -1
- package/dist/types/modes/utils/context-usage.d.ts +5 -5
- package/dist/types/modes/utils/hotkeys-markdown.d.ts +1 -1
- package/dist/types/modes/utils/interactive-context-helpers.d.ts +2 -2
- package/dist/types/modes/utils/tools-markdown.d.ts +1 -1
- package/dist/types/modes/utils/transcript-render-helpers.d.ts +10 -2
- package/dist/types/modes/utils/transcript-render-helpers.test.d.ts +1 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +2 -2
- package/dist/types/modes/workflow.d.ts +1 -1
- package/dist/types/plan-mode/plan-handoff.d.ts +1 -1
- package/dist/types/registry/agent-lifecycle.d.ts +2 -2
- package/dist/types/registry/agent-registry.d.ts +1 -1
- package/dist/types/sdk.d.ts +40 -36
- package/dist/types/secrets/index.d.ts +2 -2
- package/dist/types/secrets/obfuscator.d.ts +1 -1
- package/dist/types/session/agent-session.d.ts +56 -42
- package/dist/types/session/agent-storage.d.ts +1 -1
- package/dist/types/session/auth-broker-config.d.ts +1 -1
- package/dist/types/session/codex-auto-reset.d.ts +1 -1
- package/dist/types/session/exit-diagnostics.d.ts +1 -1
- package/dist/types/session/indexed-session-storage.d.ts +2 -2
- package/dist/types/session/messages.d.ts +22 -3
- package/dist/types/session/redis-session-storage.d.ts +1 -1
- package/dist/types/session/session-context.d.ts +1 -1
- package/dist/types/session/session-entries.d.ts +4 -0
- package/dist/types/session/session-listing.d.ts +1 -1
- package/dist/types/session/session-loader.d.ts +4 -4
- package/dist/types/session/session-manager.d.ts +9 -8
- package/dist/types/session/session-migrations.d.ts +1 -1
- package/dist/types/session/session-paths.d.ts +1 -1
- package/dist/types/session/session-persistence.d.ts +2 -2
- package/dist/types/session/session-storage.d.ts +1 -1
- package/dist/types/session/session-title-slot.d.ts +1 -1
- package/dist/types/session/settings-stream-fn.d.ts +1 -1
- package/dist/types/session/sql-session-storage.d.ts +1 -1
- package/dist/types/session/unexpected-stop-classifier.d.ts +2 -2
- package/dist/types/slash-commands/acp-builtins.d.ts +2 -2
- package/dist/types/slash-commands/available-commands.d.ts +5 -5
- package/dist/types/slash-commands/builtin-registry.d.ts +2 -2
- package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +1 -1
- package/dist/types/slash-commands/helpers/context-report.d.ts +1 -1
- package/dist/types/slash-commands/helpers/format.d.ts +1 -1
- package/dist/types/slash-commands/helpers/logout.d.ts +1 -1
- package/dist/types/slash-commands/helpers/marketplace-manager.d.ts +2 -2
- package/dist/types/slash-commands/helpers/mcp.d.ts +1 -1
- package/dist/types/slash-commands/helpers/parse.d.ts +1 -1
- package/dist/types/slash-commands/helpers/reset-usage.d.ts +1 -1
- package/dist/types/slash-commands/helpers/ssh.d.ts +1 -1
- package/dist/types/slash-commands/helpers/todo.d.ts +1 -1
- package/dist/types/slash-commands/helpers/usage-report.d.ts +1 -1
- package/dist/types/slash-commands/types.d.ts +6 -4
- package/dist/types/ssh/file-transfer.d.ts +1 -1
- package/dist/types/ssh/ssh-executor.d.ts +1 -1
- package/dist/types/ssh/sshfs-mount.d.ts +1 -1
- package/dist/types/stt/asr-client.d.ts +3 -3
- package/dist/types/stt/asr-protocol.d.ts +1 -1
- package/dist/types/stt/asr-worker.d.ts +1 -1
- package/dist/types/stt/downloader.d.ts +1 -1
- package/dist/types/stt/index.d.ts +8 -8
- package/dist/types/stt/models.d.ts +1 -1
- package/dist/types/system-prompt.d.ts +4 -4
- package/dist/types/task/agents.d.ts +1 -1
- package/dist/types/task/discovery.d.ts +1 -1
- package/dist/types/task/executor.d.ts +20 -20
- package/dist/types/task/index.d.ts +11 -11
- package/dist/types/task/isolation-runner.d.ts +7 -6
- package/dist/types/task/persisted-revive.d.ts +5 -5
- package/dist/types/task/provider-concurrency.d.ts +2 -2
- package/dist/types/task/render.d.ts +3 -3
- package/dist/types/task/renderer.d.ts +1 -1
- package/dist/types/task/repair-args.d.ts +1 -1
- package/dist/types/task/subprocess-tool-registry.d.ts +1 -1
- package/dist/types/task/types.d.ts +2 -2
- package/dist/types/task/yield-assembly.d.ts +1 -1
- package/dist/types/tiny/title-client.d.ts +2 -2
- package/dist/types/tiny/title-protocol.d.ts +1 -1
- package/dist/types/tiny/worker.d.ts +1 -1
- package/dist/types/tool-discovery/mode.d.ts +2 -2
- package/dist/types/tools/__tests__/glob.test.d.ts +1 -0
- package/dist/types/tools/acp-bridge.d.ts +2 -2
- package/dist/types/tools/ask.d.ts +3 -3
- package/dist/types/tools/ast-edit.d.ts +4 -4
- package/dist/types/tools/ast-grep.d.ts +4 -4
- package/dist/types/tools/bash-command-fixup.d.ts +3 -11
- package/dist/types/tools/bash-interactive.d.ts +1 -1
- package/dist/types/tools/bash-interceptor.d.ts +1 -1
- package/dist/types/tools/bash-skill-urls.d.ts +3 -3
- package/dist/types/tools/bash.d.ts +4 -4
- package/dist/types/tools/browser/cmux/cmux-tab.d.ts +6 -6
- package/dist/types/tools/browser/cmux/rpc.d.ts +1 -1
- package/dist/types/tools/browser/registry.d.ts +3 -3
- package/dist/types/tools/browser/render.d.ts +3 -3
- package/dist/types/tools/browser/tab-supervisor.d.ts +4 -4
- package/dist/types/tools/browser/tab-worker.d.ts +1 -1
- package/dist/types/tools/browser.d.ts +9 -9
- package/dist/types/tools/checkpoint.d.ts +2 -2
- package/dist/types/tools/conflict-detect.d.ts +1 -1
- package/dist/types/tools/context.d.ts +2 -2
- package/dist/types/tools/debug.d.ts +4 -4
- package/dist/types/tools/eval-backends.d.ts +1 -1
- package/dist/types/tools/eval-render.d.ts +3 -3
- package/dist/types/tools/eval.d.ts +3 -3
- package/dist/types/tools/fetch.d.ts +7 -7
- package/dist/types/tools/gh-renderer.d.ts +3 -3
- package/dist/types/tools/gh.d.ts +5 -5
- package/dist/types/tools/github-cache.d.ts +1 -1
- package/dist/types/tools/glob.d.ts +7 -5
- package/dist/types/tools/grep.d.ts +5 -5
- package/dist/types/tools/image-gen.d.ts +2 -2
- package/dist/types/tools/index.d.ts +70 -70
- package/dist/types/tools/inspect-image-renderer.d.ts +2 -2
- package/dist/types/tools/inspect-image.d.ts +2 -2
- package/dist/types/tools/irc.d.ts +5 -5
- package/dist/types/tools/job.d.ts +3 -3
- package/dist/types/tools/json-tree.d.ts +1 -1
- package/dist/types/tools/learn.d.ts +1 -1
- package/dist/types/tools/list-limit.d.ts +1 -1
- package/dist/types/tools/manage-skill.d.ts +1 -1
- 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-render.d.ts +2 -2
- package/dist/types/tools/memory-retain.d.ts +1 -1
- package/dist/types/tools/output-meta.d.ts +3 -3
- package/dist/types/tools/path-utils.d.ts +2 -2
- package/dist/types/tools/plan-mode-guard.d.ts +1 -1
- package/dist/types/tools/read.d.ts +7 -7
- package/dist/types/tools/render-utils.d.ts +3 -3
- package/dist/types/tools/renderers.d.ts +2 -2
- package/dist/types/tools/report-tool-issue.d.ts +2 -2
- package/dist/types/tools/resolve.d.ts +3 -3
- package/dist/types/tools/review.d.ts +2 -2
- package/dist/types/tools/search-tool-bm25.d.ts +4 -4
- package/dist/types/tools/ssh.d.ts +5 -5
- package/dist/types/tools/todo.d.ts +4 -4
- package/dist/types/tools/tool-result.d.ts +2 -2
- package/dist/types/tools/tts.d.ts +1 -1
- package/dist/types/tools/write.d.ts +7 -7
- package/dist/types/tools/yield.d.ts +1 -1
- package/dist/types/tts/index.d.ts +10 -10
- package/dist/types/tts/models.d.ts +1 -1
- package/dist/types/tts/speech-enhancer.d.ts +2 -2
- package/dist/types/tts/streaming-player.d.ts +1 -1
- package/dist/types/tts/tts-client.d.ts +2 -2
- package/dist/types/tts/tts-protocol.d.ts +1 -1
- package/dist/types/tts/tts-worker.d.ts +1 -1
- package/dist/types/tts/vocalizer.d.ts +7 -1
- package/dist/types/tui/code-cell.d.ts +1 -1
- package/dist/types/tui/file-list.d.ts +1 -1
- package/dist/types/tui/index.d.ts +9 -9
- package/dist/types/tui/output-block.d.ts +2 -2
- package/dist/types/tui/status-line.d.ts +2 -2
- package/dist/types/tui/tree-list.d.ts +2 -2
- package/dist/types/tui/types.d.ts +1 -1
- package/dist/types/tui/utils.d.ts +2 -2
- package/dist/types/utils/changelog.d.ts +1 -1
- package/dist/types/utils/commit-message-generator.d.ts +2 -2
- package/dist/types/utils/git.d.ts +1 -1
- package/dist/types/utils/image-loading.d.ts +1 -1
- package/dist/types/utils/image-vision-fallback.d.ts +3 -3
- package/dist/types/utils/markit.d.ts +1 -1
- package/dist/types/utils/title-generator.d.ts +2 -2
- package/dist/types/web/parallel.d.ts +1 -1
- package/dist/types/web/scrapers/artifacthub.d.ts +1 -1
- package/dist/types/web/scrapers/arxiv.d.ts +1 -1
- package/dist/types/web/scrapers/aur.d.ts +1 -1
- package/dist/types/web/scrapers/biorxiv.d.ts +1 -1
- package/dist/types/web/scrapers/bluesky.d.ts +1 -1
- package/dist/types/web/scrapers/brew.d.ts +1 -1
- package/dist/types/web/scrapers/cheatsh.d.ts +1 -1
- package/dist/types/web/scrapers/chocolatey.d.ts +1 -1
- package/dist/types/web/scrapers/choosealicense.d.ts +1 -1
- package/dist/types/web/scrapers/cisa-kev.d.ts +1 -1
- package/dist/types/web/scrapers/clojars.d.ts +1 -1
- package/dist/types/web/scrapers/coingecko.d.ts +1 -1
- package/dist/types/web/scrapers/crates-io.d.ts +1 -1
- package/dist/types/web/scrapers/crossref.d.ts +1 -1
- package/dist/types/web/scrapers/devto.d.ts +1 -1
- package/dist/types/web/scrapers/discogs.d.ts +1 -1
- package/dist/types/web/scrapers/discourse.d.ts +1 -1
- package/dist/types/web/scrapers/dockerhub.d.ts +1 -1
- package/dist/types/web/scrapers/docs-rs.d.ts +8 -1
- package/dist/types/web/scrapers/fdroid.d.ts +1 -1
- package/dist/types/web/scrapers/firefox-addons.d.ts +1 -1
- package/dist/types/web/scrapers/flathub.d.ts +1 -1
- package/dist/types/web/scrapers/github-gist.d.ts +1 -1
- package/dist/types/web/scrapers/github.d.ts +1 -1
- package/dist/types/web/scrapers/gitlab.d.ts +1 -1
- package/dist/types/web/scrapers/go-pkg.d.ts +1 -1
- package/dist/types/web/scrapers/hackage.d.ts +1 -1
- package/dist/types/web/scrapers/hackernews.d.ts +1 -1
- package/dist/types/web/scrapers/hex.d.ts +1 -1
- package/dist/types/web/scrapers/huggingface.d.ts +1 -1
- package/dist/types/web/scrapers/iacr.d.ts +1 -1
- package/dist/types/web/scrapers/index.d.ts +77 -77
- package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +1 -1
- package/dist/types/web/scrapers/lemmy.d.ts +1 -1
- package/dist/types/web/scrapers/lobsters.d.ts +1 -1
- package/dist/types/web/scrapers/mastodon.d.ts +1 -1
- package/dist/types/web/scrapers/maven.d.ts +1 -1
- package/dist/types/web/scrapers/mdn.d.ts +1 -1
- package/dist/types/web/scrapers/metacpan.d.ts +1 -1
- package/dist/types/web/scrapers/musicbrainz.d.ts +1 -1
- package/dist/types/web/scrapers/npm.d.ts +1 -1
- package/dist/types/web/scrapers/nuget.d.ts +1 -1
- package/dist/types/web/scrapers/nvd.d.ts +1 -1
- package/dist/types/web/scrapers/ollama.d.ts +1 -1
- package/dist/types/web/scrapers/open-vsx.d.ts +1 -1
- package/dist/types/web/scrapers/opencorporates.d.ts +1 -1
- package/dist/types/web/scrapers/openlibrary.d.ts +1 -1
- package/dist/types/web/scrapers/orcid.d.ts +1 -1
- package/dist/types/web/scrapers/osv.d.ts +1 -1
- package/dist/types/web/scrapers/packagist.d.ts +1 -1
- package/dist/types/web/scrapers/pub-dev.d.ts +1 -1
- package/dist/types/web/scrapers/pubmed.d.ts +1 -1
- package/dist/types/web/scrapers/pypi.d.ts +1 -1
- package/dist/types/web/scrapers/rawg.d.ts +1 -1
- package/dist/types/web/scrapers/readthedocs.d.ts +1 -1
- package/dist/types/web/scrapers/reddit.d.ts +1 -1
- package/dist/types/web/scrapers/repology.d.ts +1 -1
- package/dist/types/web/scrapers/rfc.d.ts +1 -1
- package/dist/types/web/scrapers/rubygems.d.ts +1 -1
- package/dist/types/web/scrapers/searchcode.d.ts +1 -1
- package/dist/types/web/scrapers/sec-edgar.d.ts +1 -1
- package/dist/types/web/scrapers/semantic-scholar.d.ts +1 -1
- package/dist/types/web/scrapers/snapcraft.d.ts +1 -1
- package/dist/types/web/scrapers/sourcegraph.d.ts +1 -1
- package/dist/types/web/scrapers/spdx.d.ts +1 -1
- package/dist/types/web/scrapers/spotify.d.ts +1 -1
- package/dist/types/web/scrapers/stackoverflow.d.ts +1 -1
- package/dist/types/web/scrapers/terraform.d.ts +1 -1
- package/dist/types/web/scrapers/tldr.d.ts +1 -1
- package/dist/types/web/scrapers/twitter.d.ts +1 -1
- package/dist/types/web/scrapers/types.d.ts +1 -1
- package/dist/types/web/scrapers/vimeo.d.ts +1 -1
- package/dist/types/web/scrapers/vscode-marketplace.d.ts +1 -1
- package/dist/types/web/scrapers/w3c.d.ts +1 -1
- package/dist/types/web/scrapers/wikidata.d.ts +1 -1
- package/dist/types/web/scrapers/wikipedia.d.ts +1 -1
- package/dist/types/web/scrapers/youtube.d.ts +1 -1
- package/dist/types/web/search/index.d.ts +7 -7
- package/dist/types/web/search/provider.d.ts +5 -5
- package/dist/types/web/search/providers/anthropic.d.ts +3 -3
- package/dist/types/web/search/providers/base.d.ts +1 -1
- package/dist/types/web/search/providers/brave.d.ts +3 -3
- package/dist/types/web/search/providers/codex.d.ts +3 -3
- package/dist/types/web/search/providers/duckduckgo.d.ts +3 -3
- package/dist/types/web/search/providers/exa.d.ts +3 -3
- package/dist/types/web/search/providers/firecrawl.d.ts +3 -3
- package/dist/types/web/search/providers/gemini.d.ts +3 -3
- package/dist/types/web/search/providers/jina.d.ts +3 -3
- package/dist/types/web/search/providers/kagi.d.ts +3 -3
- package/dist/types/web/search/providers/kimi.d.ts +3 -3
- package/dist/types/web/search/providers/parallel.d.ts +3 -3
- package/dist/types/web/search/providers/perplexity.d.ts +3 -3
- package/dist/types/web/search/providers/searxng.d.ts +3 -3
- package/dist/types/web/search/providers/synthetic.d.ts +3 -3
- package/dist/types/web/search/providers/tavily.d.ts +3 -3
- package/dist/types/web/search/providers/tinyfish.d.ts +3 -3
- package/dist/types/web/search/providers/utils.d.ts +2 -2
- package/dist/types/web/search/providers/xai.d.ts +3 -3
- package/dist/types/web/search/providers/zai.d.ts +3 -3
- package/dist/types/web/search/render.d.ts +3 -3
- package/package.json +12 -12
- package/src/advisor/__tests__/advisor.test.ts +59 -0
- package/src/auto-thinking/classifier.ts +6 -5
- package/src/collab/relay-client.ts +73 -7
- package/src/config/model-registry.ts +43 -2
- package/src/config/model-resolver.ts +1 -1
- package/src/config/settings-schema.ts +5 -12
- package/src/config/settings.ts +25 -5
- package/src/edit/hashline/filesystem.ts +19 -1
- package/src/edit/modes/patch.ts +9 -1
- package/src/edit/modes/replace.ts +1 -1
- package/src/edit/renderer.ts +42 -30
- package/src/eval/__tests__/agent-bridge.test.ts +19 -0
- package/src/eval/__tests__/budget-bridge.test.ts +12 -1
- package/src/eval/agent-bridge.ts +27 -19
- package/src/eval/js/context-manager.ts +3 -0
- package/src/export/ttsr.ts +10 -0
- package/src/extensibility/extensions/loader.ts +2 -2
- package/src/extensibility/extensions/types.ts +16 -4
- package/src/extensibility/hooks/loader.ts +3 -3
- package/src/extensibility/hooks/types.ts +4 -4
- package/src/extensibility/legacy-pi-ai-shim.ts +17 -4
- package/src/extensibility/legacy-pi-coding-agent-shim.ts +554 -2
- package/src/extensibility/plugins/legacy-pi-compat.ts +190 -58
- package/src/internal-urls/docs-index.generated.txt +1 -1
- package/src/internal-urls/memory-protocol.ts +105 -3
- package/src/lsp/client.ts +70 -0
- package/src/lsp/index.ts +65 -12
- package/src/main.ts +5 -3
- package/src/markit/converters/pdf/extract.ts +26 -2
- package/src/mnemopi/state.ts +76 -0
- package/src/modes/acp/acp-agent.ts +5 -1
- package/src/modes/components/agent-hub.ts +27 -9
- package/src/modes/components/chat-transcript-builder.ts +7 -3
- package/src/modes/components/copy-selector.ts +16 -4
- package/src/modes/components/model-selector.ts +17 -17
- package/src/modes/components/session-selector.ts +12 -4
- package/src/modes/components/status-line/component.ts +4 -0
- package/src/modes/components/status-line/segments.ts +6 -5
- package/src/modes/components/status-line/types.ts +4 -0
- package/src/modes/components/tool-execution.ts +8 -3
- package/src/modes/controllers/command-controller.ts +10 -0
- package/src/modes/controllers/event-controller.ts +4 -3
- package/src/modes/controllers/extension-ui-controller.test.ts +58 -0
- package/src/modes/controllers/extension-ui-controller.ts +12 -6
- package/src/modes/controllers/input-controller.ts +8 -0
- package/src/modes/controllers/selector-controller.ts +18 -9
- package/src/modes/controllers/streaming-reveal.ts +12 -5
- package/src/modes/controllers/tool-args-reveal.ts +13 -6
- package/src/modes/interactive-mode.ts +54 -28
- package/src/modes/prompt-action-autocomplete.ts +18 -0
- package/src/modes/theme/shimmer.ts +37 -1
- package/src/modes/utils/transcript-render-helpers.test.ts +38 -0
- package/src/modes/utils/transcript-render-helpers.ts +14 -0
- package/src/modes/utils/ui-helpers.ts +5 -1
- package/src/prompts/system/workflow-notice.md +1 -1
- package/src/prompts/tools/bash.md +9 -7
- package/src/prompts/tools/grep.md +1 -1
- package/src/prompts/tools/memory-edit.md +2 -0
- package/src/prompts/tools/recall.md +2 -0
- package/src/sdk.ts +112 -12
- package/src/session/agent-session.ts +203 -61
- package/src/session/messages.ts +102 -2
- package/src/session/session-context.ts +60 -10
- package/src/session/session-entries.ts +4 -0
- package/src/session/session-history-format.ts +12 -0
- package/src/session/session-manager.ts +129 -10
- package/src/session/settings-stream-fn.ts +1 -0
- package/src/session/unexpected-stop-classifier.ts +6 -3
- package/src/slash-commands/builtin-registry.ts +7 -4
- package/src/slash-commands/helpers/usage-report.ts +3 -0
- package/src/slash-commands/types.ts +2 -0
- package/src/task/executor.ts +23 -3
- package/src/task/isolation-runner.ts +38 -9
- package/src/tools/__tests__/glob.test.ts +37 -0
- package/src/tools/acp-bridge.ts +11 -1
- package/src/tools/bash-command-fixup.ts +3 -36
- package/src/tools/bash.ts +4 -13
- package/src/tools/browser/render.ts +6 -4
- package/src/tools/glob.ts +11 -1
- package/src/tools/index.ts +1 -1
- package/src/tools/inspect-image-renderer.ts +5 -4
- package/src/tools/read.ts +13 -8
- package/src/tools/render-utils.ts +4 -1
- package/src/tools/write.ts +9 -7
- package/src/tts/speech-enhancer.ts +7 -5
- package/src/tts/vocalizer.ts +9 -0
- package/src/utils/commit-message-generator.ts +7 -5
- package/src/utils/shell-snapshot.ts +10 -0
- package/src/utils/title-generator.ts +12 -7
- package/src/web/scrapers/docs-rs.ts +12 -1
- package/src/web/search/providers/xai.ts +43 -47
|
@@ -17,9 +17,18 @@ import * as path from "node:path";
|
|
|
17
17
|
import type { AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
18
18
|
import type { TSchema } from "@oh-my-pi/pi-ai";
|
|
19
19
|
import { Text } from "@oh-my-pi/pi-tui";
|
|
20
|
-
import { parseFrontmatter as parseOmpFrontmatter } from "@oh-my-pi/pi-utils";
|
|
20
|
+
import { getAgentDir, getProjectDir, parseFrontmatter as parseOmpFrontmatter } from "@oh-my-pi/pi-utils";
|
|
21
|
+
import type { PromptTemplate } from "../config/prompt-templates";
|
|
21
22
|
import { type SettingPath, Settings } from "../config/settings";
|
|
22
23
|
import { EditTool } from "../edit";
|
|
24
|
+
import type { CreateAgentSessionOptions, CreateAgentSessionResult, LoadExtensionsResult } from "../sdk";
|
|
25
|
+
import {
|
|
26
|
+
discoverContextFiles,
|
|
27
|
+
discoverPromptTemplates,
|
|
28
|
+
discoverSessionExtensionPaths,
|
|
29
|
+
discoverSkills,
|
|
30
|
+
createAgentSession as ompCreateAgentSession,
|
|
31
|
+
} from "../sdk";
|
|
23
32
|
import {
|
|
24
33
|
DEFAULT_MAX_BYTES,
|
|
25
34
|
DEFAULT_MAX_LINES,
|
|
@@ -34,7 +43,12 @@ import { GrepTool } from "../tools/grep";
|
|
|
34
43
|
import { ReadTool } from "../tools/read";
|
|
35
44
|
import { formatBytes } from "../tools/render-utils";
|
|
36
45
|
import { WriteTool } from "../tools/write";
|
|
37
|
-
import
|
|
46
|
+
import { EventBus } from "../utils/event-bus";
|
|
47
|
+
import { loadExtensionFromFactory, loadExtensions } from "./extensions";
|
|
48
|
+
import { ExtensionRuntime } from "./extensions/loader";
|
|
49
|
+
import type { ExtensionFactory, ToolDefinition } from "./extensions/types";
|
|
50
|
+
import type { Skill } from "./skills";
|
|
51
|
+
import { loadSkillsFromDir } from "./skills";
|
|
38
52
|
import { Type } from "./typebox";
|
|
39
53
|
|
|
40
54
|
const TOOL_DEFINITION_MARKER = "__isToolDefinition";
|
|
@@ -641,6 +655,544 @@ export const SettingsManager = {
|
|
|
641
655
|
},
|
|
642
656
|
} as const;
|
|
643
657
|
|
|
658
|
+
/**
|
|
659
|
+
* Resource-loader compatibility layer for legacy pi extensions.
|
|
660
|
+
*
|
|
661
|
+
* Upstream `@earendil-works/pi-coding-agent` centralizes extension / skill /
|
|
662
|
+
* prompt / theme / AGENTS.md discovery inside a `DefaultResourceLoader`
|
|
663
|
+
* instance that the caller constructs, `reload()`s, and hands to
|
|
664
|
+
* `createAgentSession({ resourceLoader })`. Every published version of
|
|
665
|
+
* pi-schedule-prompt (≥0.2.0) and other pi extensions that spawn subagents
|
|
666
|
+
* import the class at module scope; a missing export takes the whole
|
|
667
|
+
* extension down at parse time (issue #4567).
|
|
668
|
+
*
|
|
669
|
+
* OMP does the same discovery inline inside `createAgentSession()`, so this
|
|
670
|
+
* shim intentionally does NOT re-implement pi's ResourceLoader plumbing.
|
|
671
|
+
* Instead the loader captures the caller's intent (`no*` flags, `*Override`
|
|
672
|
+
* callbacks, `additional*Paths`, `extensionFactories`, `settingsManager`,
|
|
673
|
+
* `eventBus`) plus the discovery results, and the sibling `createAgentSession`
|
|
674
|
+
* override below translates them into OMP's native session options
|
|
675
|
+
* (`disableExtensionDiscovery`, `preloadedExtensionPaths`, `extensions`,
|
|
676
|
+
* `skills`, `promptTemplates`, `contextFiles`, `settings`, `eventBus`,
|
|
677
|
+
* `systemPrompt`) before delegating to `../sdk`.
|
|
678
|
+
*
|
|
679
|
+
* The pi surface it emulates is the intersection actually used by real
|
|
680
|
+
* extensions in the wild — themes are silently dropped (OMP has no
|
|
681
|
+
* session-level themes surface); `extendResources`, `loadProjectTrustExtensions`,
|
|
682
|
+
* and provider-trust hooks are omitted.
|
|
683
|
+
*/
|
|
684
|
+
|
|
685
|
+
export type ResourceDiagnostic = {
|
|
686
|
+
type: "error" | "warning" | "info";
|
|
687
|
+
message: string;
|
|
688
|
+
path?: string;
|
|
689
|
+
};
|
|
690
|
+
|
|
691
|
+
export interface AgentsFile {
|
|
692
|
+
path: string;
|
|
693
|
+
content: string;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
/** Marker interface preserved for pi extensions that type against upstream. */
|
|
697
|
+
export interface Theme {
|
|
698
|
+
name: string;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
export interface DefaultResourceLoaderOptions {
|
|
702
|
+
cwd?: string;
|
|
703
|
+
agentDir?: string;
|
|
704
|
+
settingsManager?: Settings | Promise<Settings>;
|
|
705
|
+
eventBus?: EventBus;
|
|
706
|
+
additionalExtensionPaths?: string[];
|
|
707
|
+
additionalSkillPaths?: string[];
|
|
708
|
+
additionalPromptTemplatePaths?: string[];
|
|
709
|
+
additionalThemePaths?: string[];
|
|
710
|
+
extensionFactories?: ExtensionFactory[];
|
|
711
|
+
noExtensions?: boolean;
|
|
712
|
+
noSkills?: boolean;
|
|
713
|
+
noPromptTemplates?: boolean;
|
|
714
|
+
noThemes?: boolean;
|
|
715
|
+
noContextFiles?: boolean;
|
|
716
|
+
systemPrompt?: string;
|
|
717
|
+
appendSystemPrompt?: string | string[];
|
|
718
|
+
extensionsOverride?: (base: LoadExtensionsResult) => LoadExtensionsResult;
|
|
719
|
+
skillsOverride?: (base: { skills: Skill[]; diagnostics: ResourceDiagnostic[] }) => {
|
|
720
|
+
skills: Skill[];
|
|
721
|
+
diagnostics: ResourceDiagnostic[];
|
|
722
|
+
};
|
|
723
|
+
promptsOverride?: (base: { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] }) => {
|
|
724
|
+
prompts: PromptTemplate[];
|
|
725
|
+
diagnostics: ResourceDiagnostic[];
|
|
726
|
+
};
|
|
727
|
+
themesOverride?: (base: { themes: Theme[]; diagnostics: ResourceDiagnostic[] }) => {
|
|
728
|
+
themes: Theme[];
|
|
729
|
+
diagnostics: ResourceDiagnostic[];
|
|
730
|
+
};
|
|
731
|
+
agentsFilesOverride?: (base: { agentsFiles: AgentsFile[] }) => { agentsFiles: AgentsFile[] };
|
|
732
|
+
systemPromptOverride?: (base: string | undefined) => string | undefined;
|
|
733
|
+
appendSystemPromptOverride?: (base: string[]) => string[];
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
/**
|
|
737
|
+
* The subset of {@link DefaultResourceLoader} state consumed by the
|
|
738
|
+
* {@link createAgentSession} adapter. Kept as an explicit interface so tests
|
|
739
|
+
* (and any future third-party ResourceLoader passed to `createAgentSession`)
|
|
740
|
+
* only need to satisfy the read surface — not the reload lifecycle.
|
|
741
|
+
*/
|
|
742
|
+
export interface ResourceLoader {
|
|
743
|
+
getExtensions(): LoadExtensionsResult;
|
|
744
|
+
getSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] };
|
|
745
|
+
getPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] };
|
|
746
|
+
getThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] };
|
|
747
|
+
getAgentsFiles(): { agentsFiles: AgentsFile[] };
|
|
748
|
+
getSystemPrompt(): string | undefined;
|
|
749
|
+
getAppendSystemPrompt(): string[];
|
|
750
|
+
reload(): Promise<void>;
|
|
751
|
+
/** @internal — used by the shim's createAgentSession to detect its own loaders. */
|
|
752
|
+
readonly __ompLegacyPiLoader?: true;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* Loader-owned inputs that {@link createAgentSession} needs regardless of
|
|
757
|
+
* whether the caller provided extra options. `cwd`/`agentDir` fall back to
|
|
758
|
+
* `getProjectDir()`/`getAgentDir()` at construction time so subsequent
|
|
759
|
+
* `reload()` and `createAgentSession()` calls read the same directories the
|
|
760
|
+
* caller thought they were configuring.
|
|
761
|
+
*/
|
|
762
|
+
interface ResolvedLoaderState {
|
|
763
|
+
cwd: string;
|
|
764
|
+
agentDir: string;
|
|
765
|
+
settingsPromise?: Promise<Settings>;
|
|
766
|
+
eventBus: EventBus;
|
|
767
|
+
extensionFactories: ExtensionFactory[];
|
|
768
|
+
noExtensions: boolean;
|
|
769
|
+
additionalExtensionPaths: string[];
|
|
770
|
+
additionalSkillPaths: string[];
|
|
771
|
+
additionalPromptTemplatePaths: string[];
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
interface AdditionalSkillLoadResult {
|
|
775
|
+
skills: Skill[];
|
|
776
|
+
diagnostics: ResourceDiagnostic[];
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
interface AdditionalPromptLoadResult {
|
|
780
|
+
prompts: PromptTemplate[];
|
|
781
|
+
diagnostics: ResourceDiagnostic[];
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
export class DefaultResourceLoader implements ResourceLoader {
|
|
785
|
+
readonly __ompLegacyPiLoader = true as const;
|
|
786
|
+
#state: ResolvedLoaderState;
|
|
787
|
+
#options: DefaultResourceLoaderOptions;
|
|
788
|
+
#extensionsResult: LoadExtensionsResult = { extensions: [], errors: [], runtime: new ExtensionRuntime() };
|
|
789
|
+
#skills: Skill[] = [];
|
|
790
|
+
#skillDiagnostics: ResourceDiagnostic[] = [];
|
|
791
|
+
#prompts: PromptTemplate[] = [];
|
|
792
|
+
#promptDiagnostics: ResourceDiagnostic[] = [];
|
|
793
|
+
#themes: Theme[] = [];
|
|
794
|
+
#themeDiagnostics: ResourceDiagnostic[] = [];
|
|
795
|
+
#agentsFiles: AgentsFile[] = [];
|
|
796
|
+
#systemPrompt: string | undefined;
|
|
797
|
+
#appendSystemPrompt: string[] = [];
|
|
798
|
+
#loaded = false;
|
|
799
|
+
|
|
800
|
+
constructor(options: DefaultResourceLoaderOptions = {}) {
|
|
801
|
+
this.#options = options;
|
|
802
|
+
const cwd = options.cwd ?? getProjectDir();
|
|
803
|
+
const agentDir = options.agentDir ?? getAgentDir();
|
|
804
|
+
this.#state = {
|
|
805
|
+
cwd,
|
|
806
|
+
agentDir,
|
|
807
|
+
settingsPromise: options.settingsManager ? Promise.resolve(options.settingsManager) : undefined,
|
|
808
|
+
eventBus: options.eventBus ?? new EventBus(),
|
|
809
|
+
extensionFactories: options.extensionFactories ?? [],
|
|
810
|
+
noExtensions: options.noExtensions ?? false,
|
|
811
|
+
additionalExtensionPaths: options.additionalExtensionPaths ?? [],
|
|
812
|
+
additionalSkillPaths: options.additionalSkillPaths ?? [],
|
|
813
|
+
additionalPromptTemplatePaths: options.additionalPromptTemplatePaths ?? [],
|
|
814
|
+
};
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
getExtensions(): LoadExtensionsResult {
|
|
818
|
+
return this.#extensionsResult;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
getSkills(): { skills: Skill[]; diagnostics: ResourceDiagnostic[] } {
|
|
822
|
+
return { skills: this.#skills, diagnostics: this.#skillDiagnostics };
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
getPrompts(): { prompts: PromptTemplate[]; diagnostics: ResourceDiagnostic[] } {
|
|
826
|
+
return { prompts: this.#prompts, diagnostics: this.#promptDiagnostics };
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
getThemes(): { themes: Theme[]; diagnostics: ResourceDiagnostic[] } {
|
|
830
|
+
return { themes: this.#themes, diagnostics: this.#themeDiagnostics };
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
getAgentsFiles(): { agentsFiles: AgentsFile[] } {
|
|
834
|
+
return { agentsFiles: this.#agentsFiles };
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
getSystemPrompt(): string | undefined {
|
|
838
|
+
return this.#systemPrompt;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
getAppendSystemPrompt(): string[] {
|
|
842
|
+
return this.#appendSystemPrompt;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
/**
|
|
846
|
+
* Discovery snapshot used to seed the session. Emulates upstream pi's
|
|
847
|
+
* `reload()` lifecycle: run every enabled discovery arm against the
|
|
848
|
+
* resolved cwd/agentDir, then thread each result through the caller's
|
|
849
|
+
* `*Override` callback. Discovery arms guarded by an `no*` flag start from
|
|
850
|
+
* an empty base — callers that flipped the flag off still get the override
|
|
851
|
+
* hook, so overrides can inject synthetic entries without triggering a
|
|
852
|
+
* filesystem scan they explicitly opted out of.
|
|
853
|
+
*/
|
|
854
|
+
async reload(): Promise<void> {
|
|
855
|
+
const { cwd, agentDir } = this.#state;
|
|
856
|
+
const options = this.#options;
|
|
857
|
+
|
|
858
|
+
let settingsPromise = this.#state.settingsPromise;
|
|
859
|
+
if (!settingsPromise) {
|
|
860
|
+
settingsPromise = Settings.init({ cwd, agentDir });
|
|
861
|
+
this.#state.settingsPromise = settingsPromise;
|
|
862
|
+
}
|
|
863
|
+
const settings = await settingsPromise;
|
|
864
|
+
|
|
865
|
+
const [extensionsResult, skillsBase, additionalSkills, prompts, additionalPrompts, agentsFiles] =
|
|
866
|
+
await Promise.all([
|
|
867
|
+
this.#loadExtensions(settings),
|
|
868
|
+
options.noSkills
|
|
869
|
+
? Promise.resolve({ skills: [], warnings: [] })
|
|
870
|
+
: discoverSkills(cwd, agentDir, {
|
|
871
|
+
...settings.getGroup("skills"),
|
|
872
|
+
disabledExtensions: settings.get("disabledExtensions") ?? [],
|
|
873
|
+
}),
|
|
874
|
+
this.#loadAdditionalSkills(),
|
|
875
|
+
options.noPromptTemplates ? Promise.resolve([]) : discoverPromptTemplates(cwd, agentDir),
|
|
876
|
+
this.#loadAdditionalPromptTemplates(),
|
|
877
|
+
options.noContextFiles ? Promise.resolve([]) : discoverContextFiles(cwd, agentDir),
|
|
878
|
+
]);
|
|
879
|
+
|
|
880
|
+
this.#extensionsResult = options.extensionsOverride
|
|
881
|
+
? options.extensionsOverride(extensionsResult)
|
|
882
|
+
: extensionsResult;
|
|
883
|
+
|
|
884
|
+
const skillsBaseResult = {
|
|
885
|
+
skills: [...skillsBase.skills, ...additionalSkills.skills],
|
|
886
|
+
diagnostics: [
|
|
887
|
+
...skillsBase.warnings.map(w => ({
|
|
888
|
+
type: "warning" as const,
|
|
889
|
+
message: w.message,
|
|
890
|
+
path: w.skillPath,
|
|
891
|
+
})),
|
|
892
|
+
...additionalSkills.diagnostics,
|
|
893
|
+
],
|
|
894
|
+
};
|
|
895
|
+
const skillsFinal = options.skillsOverride ? options.skillsOverride(skillsBaseResult) : skillsBaseResult;
|
|
896
|
+
this.#skills = skillsFinal.skills;
|
|
897
|
+
this.#skillDiagnostics = skillsFinal.diagnostics;
|
|
898
|
+
|
|
899
|
+
const promptsBase = {
|
|
900
|
+
prompts: [...prompts, ...additionalPrompts.prompts],
|
|
901
|
+
diagnostics: additionalPrompts.diagnostics,
|
|
902
|
+
};
|
|
903
|
+
const promptsFinal = options.promptsOverride ? options.promptsOverride(promptsBase) : promptsBase;
|
|
904
|
+
this.#prompts = promptsFinal.prompts;
|
|
905
|
+
this.#promptDiagnostics = promptsFinal.diagnostics;
|
|
906
|
+
|
|
907
|
+
const themesBase = { themes: [] as Theme[], diagnostics: [] as ResourceDiagnostic[] };
|
|
908
|
+
const themesFinal = options.themesOverride ? options.themesOverride(themesBase) : themesBase;
|
|
909
|
+
this.#themes = themesFinal.themes;
|
|
910
|
+
this.#themeDiagnostics = themesFinal.diagnostics;
|
|
911
|
+
|
|
912
|
+
const agentsFilesBase = { agentsFiles };
|
|
913
|
+
const agentsFilesFinal = options.agentsFilesOverride
|
|
914
|
+
? options.agentsFilesOverride(agentsFilesBase)
|
|
915
|
+
: agentsFilesBase;
|
|
916
|
+
this.#agentsFiles = agentsFilesFinal.agentsFiles;
|
|
917
|
+
|
|
918
|
+
const baseSystemPrompt = options.systemPrompt;
|
|
919
|
+
this.#systemPrompt = options.systemPromptOverride
|
|
920
|
+
? options.systemPromptOverride(baseSystemPrompt)
|
|
921
|
+
: baseSystemPrompt;
|
|
922
|
+
|
|
923
|
+
const appendSource = options.appendSystemPrompt;
|
|
924
|
+
const baseAppend =
|
|
925
|
+
typeof appendSource === "string" ? [appendSource] : Array.isArray(appendSource) ? appendSource : [];
|
|
926
|
+
this.#appendSystemPrompt = options.appendSystemPromptOverride
|
|
927
|
+
? options.appendSystemPromptOverride(baseAppend)
|
|
928
|
+
: baseAppend;
|
|
929
|
+
|
|
930
|
+
this.#loaded = true;
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
async #loadExtensions(settings: Settings): Promise<LoadExtensionsResult> {
|
|
934
|
+
const { cwd, noExtensions, additionalExtensionPaths, extensionFactories, eventBus } = this.#state;
|
|
935
|
+
|
|
936
|
+
if (noExtensions && additionalExtensionPaths.length === 0 && extensionFactories.length === 0) {
|
|
937
|
+
return { extensions: [], errors: [], runtime: new ExtensionRuntime() };
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
const paths = await discoverSessionExtensionPaths(
|
|
941
|
+
{
|
|
942
|
+
disableExtensionDiscovery: noExtensions,
|
|
943
|
+
additionalExtensionPaths,
|
|
944
|
+
},
|
|
945
|
+
cwd,
|
|
946
|
+
settings,
|
|
947
|
+
);
|
|
948
|
+
|
|
949
|
+
const result = await loadExtensions(paths, cwd, eventBus);
|
|
950
|
+
for (let i = 0; i < extensionFactories.length; i++) {
|
|
951
|
+
const loaded = await loadExtensionFromFactory(
|
|
952
|
+
extensionFactories[i],
|
|
953
|
+
cwd,
|
|
954
|
+
eventBus,
|
|
955
|
+
result.runtime,
|
|
956
|
+
`<inline-loader-${i}>`,
|
|
957
|
+
);
|
|
958
|
+
result.extensions.push(loaded);
|
|
959
|
+
}
|
|
960
|
+
return result;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
async #loadAdditionalSkills(): Promise<AdditionalSkillLoadResult> {
|
|
964
|
+
const skills: Skill[] = [];
|
|
965
|
+
const diagnostics: ResourceDiagnostic[] = [];
|
|
966
|
+
|
|
967
|
+
for (const resourcePath of this.#state.additionalSkillPaths) {
|
|
968
|
+
const resolvedPath = path.isAbsolute(resourcePath)
|
|
969
|
+
? resourcePath
|
|
970
|
+
: path.resolve(this.#state.cwd, resourcePath);
|
|
971
|
+
const skillDir =
|
|
972
|
+
path.basename(resolvedPath).toLowerCase() === "skill.md" ? path.dirname(resolvedPath) : resolvedPath;
|
|
973
|
+
try {
|
|
974
|
+
const result = await loadSkillsFromDir({
|
|
975
|
+
dir: skillDir,
|
|
976
|
+
source: "legacy-resource-loader",
|
|
977
|
+
});
|
|
978
|
+
skills.push(...result.skills);
|
|
979
|
+
diagnostics.push(
|
|
980
|
+
...result.warnings.map(w => ({
|
|
981
|
+
type: "warning" as const,
|
|
982
|
+
message: w.message,
|
|
983
|
+
path: w.skillPath,
|
|
984
|
+
})),
|
|
985
|
+
);
|
|
986
|
+
} catch (err) {
|
|
987
|
+
diagnostics.push({
|
|
988
|
+
type: "warning",
|
|
989
|
+
message: `Failed to load additional skill path: ${err instanceof Error ? err.message : String(err)}`,
|
|
990
|
+
path: resolvedPath,
|
|
991
|
+
});
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
return { skills, diagnostics };
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
async #loadAdditionalPromptTemplates(): Promise<AdditionalPromptLoadResult> {
|
|
999
|
+
const prompts: PromptTemplate[] = [];
|
|
1000
|
+
const diagnostics: ResourceDiagnostic[] = [];
|
|
1001
|
+
|
|
1002
|
+
for (const resourcePath of this.#state.additionalPromptTemplatePaths) {
|
|
1003
|
+
const resolvedPath = path.isAbsolute(resourcePath)
|
|
1004
|
+
? resourcePath
|
|
1005
|
+
: path.resolve(this.#state.cwd, resourcePath);
|
|
1006
|
+
const files: string[] = [];
|
|
1007
|
+
try {
|
|
1008
|
+
const stat = await fs.stat(resolvedPath);
|
|
1009
|
+
if (stat.isDirectory()) {
|
|
1010
|
+
const glob = new Bun.Glob("**/*.md");
|
|
1011
|
+
for await (const entry of glob.scan({ cwd: resolvedPath, absolute: false, onlyFiles: true })) {
|
|
1012
|
+
files.push(path.join(resolvedPath, entry));
|
|
1013
|
+
}
|
|
1014
|
+
files.sort();
|
|
1015
|
+
} else if (resolvedPath.toLowerCase().endsWith(".md")) {
|
|
1016
|
+
files.push(resolvedPath);
|
|
1017
|
+
} else {
|
|
1018
|
+
diagnostics.push({
|
|
1019
|
+
type: "warning",
|
|
1020
|
+
message: "Additional prompt template path is neither a directory nor a Markdown file",
|
|
1021
|
+
path: resolvedPath,
|
|
1022
|
+
});
|
|
1023
|
+
}
|
|
1024
|
+
} catch (err) {
|
|
1025
|
+
diagnostics.push({
|
|
1026
|
+
type: "warning",
|
|
1027
|
+
message: `Failed to inspect additional prompt template path: ${err instanceof Error ? err.message : String(err)}`,
|
|
1028
|
+
path: resolvedPath,
|
|
1029
|
+
});
|
|
1030
|
+
continue;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
for (const filePath of files) {
|
|
1034
|
+
try {
|
|
1035
|
+
const raw = await Bun.file(filePath).text();
|
|
1036
|
+
const { frontmatter, body } = parseFrontmatter(raw);
|
|
1037
|
+
const rawDescription = frontmatter.description;
|
|
1038
|
+
let description = typeof rawDescription === "string" ? rawDescription : "";
|
|
1039
|
+
if (!description) {
|
|
1040
|
+
const firstLine = body.split("\n").find(line => line.trim());
|
|
1041
|
+
if (firstLine) {
|
|
1042
|
+
description = firstLine.slice(0, 60);
|
|
1043
|
+
if (firstLine.length > 60) {
|
|
1044
|
+
description += "...";
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
const source = "(legacy-resource-loader)";
|
|
1050
|
+
prompts.push({
|
|
1051
|
+
name: path.basename(filePath, path.extname(filePath)),
|
|
1052
|
+
description: description ? `${description} ${source}` : source,
|
|
1053
|
+
content: body,
|
|
1054
|
+
source,
|
|
1055
|
+
});
|
|
1056
|
+
} catch (err) {
|
|
1057
|
+
diagnostics.push({
|
|
1058
|
+
type: "warning",
|
|
1059
|
+
message: `Failed to load additional prompt template: ${err instanceof Error ? err.message : String(err)}`,
|
|
1060
|
+
path: filePath,
|
|
1061
|
+
});
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
return { prompts, diagnostics };
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
/** Test seam: whether `reload()` has completed at least once. */
|
|
1070
|
+
get loaded(): boolean {
|
|
1071
|
+
return this.#loaded;
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
/** @internal — used by the shim's createAgentSession to translate options. */
|
|
1075
|
+
__getResolverState(): {
|
|
1076
|
+
cwd: string;
|
|
1077
|
+
agentDir: string;
|
|
1078
|
+
settingsPromise?: Promise<Settings>;
|
|
1079
|
+
eventBus: EventBus;
|
|
1080
|
+
extensionsResult: LoadExtensionsResult;
|
|
1081
|
+
skills: Skill[];
|
|
1082
|
+
prompts: PromptTemplate[];
|
|
1083
|
+
agentsFiles: AgentsFile[];
|
|
1084
|
+
systemPrompt: string | undefined;
|
|
1085
|
+
appendSystemPrompt: string[];
|
|
1086
|
+
extensionFactories: ExtensionFactory[];
|
|
1087
|
+
} {
|
|
1088
|
+
return {
|
|
1089
|
+
cwd: this.#state.cwd,
|
|
1090
|
+
agentDir: this.#state.agentDir,
|
|
1091
|
+
settingsPromise: this.#state.settingsPromise,
|
|
1092
|
+
eventBus: this.#state.eventBus,
|
|
1093
|
+
extensionsResult: this.#extensionsResult,
|
|
1094
|
+
skills: this.#skills,
|
|
1095
|
+
prompts: this.#prompts,
|
|
1096
|
+
agentsFiles: this.#agentsFiles,
|
|
1097
|
+
systemPrompt: this.#systemPrompt,
|
|
1098
|
+
appendSystemPrompt: this.#appendSystemPrompt,
|
|
1099
|
+
extensionFactories: this.#state.extensionFactories,
|
|
1100
|
+
};
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
/**
|
|
1105
|
+
* Legacy pi extensions call `createAgentSession({ resourceLoader })`. OMP's
|
|
1106
|
+
* native option surface has no such field — extension / skill / prompt /
|
|
1107
|
+
* context-file discovery are configured directly on the session options — so
|
|
1108
|
+
* an untranslated call would silently ignore the loader (including its
|
|
1109
|
+
* `noExtensions`/`noSkills` opt-outs), re-run OMP's own discovery, and
|
|
1110
|
+
* happily re-load the calling extension into the subagent. That's exactly
|
|
1111
|
+
* the recursion the caller passed the loader to prevent.
|
|
1112
|
+
*
|
|
1113
|
+
* Translate the loader's captured state into OMP's option fields, then
|
|
1114
|
+
* delegate to the underlying SDK. Explicit fields on `options` override the
|
|
1115
|
+
* loader (matches upstream pi semantics — a caller can partially override a
|
|
1116
|
+
* shared loader).
|
|
1117
|
+
*
|
|
1118
|
+
* `resourceLoader` is not part of {@link CreateAgentSessionOptions}, so it's
|
|
1119
|
+
* accepted through a widened alias and stripped before the underlying call.
|
|
1120
|
+
*/
|
|
1121
|
+
export type LegacyPiCreateAgentSessionOptions = CreateAgentSessionOptions & {
|
|
1122
|
+
resourceLoader?: ResourceLoader;
|
|
1123
|
+
};
|
|
1124
|
+
|
|
1125
|
+
export async function createAgentSession(
|
|
1126
|
+
options: LegacyPiCreateAgentSessionOptions = {},
|
|
1127
|
+
): Promise<CreateAgentSessionResult> {
|
|
1128
|
+
const loader = options.resourceLoader;
|
|
1129
|
+
if (!loader) {
|
|
1130
|
+
return ompCreateAgentSession(options);
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1133
|
+
if (loader instanceof DefaultResourceLoader && !loader.loaded) {
|
|
1134
|
+
await loader.reload();
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
const state =
|
|
1138
|
+
loader instanceof DefaultResourceLoader
|
|
1139
|
+
? loader.__getResolverState()
|
|
1140
|
+
: {
|
|
1141
|
+
cwd: options.cwd ?? getProjectDir(),
|
|
1142
|
+
agentDir: options.agentDir ?? getAgentDir(),
|
|
1143
|
+
settingsPromise: undefined,
|
|
1144
|
+
eventBus: undefined,
|
|
1145
|
+
extensionsResult: loader.getExtensions(),
|
|
1146
|
+
skills: loader.getSkills().skills,
|
|
1147
|
+
prompts: loader.getPrompts().prompts,
|
|
1148
|
+
agentsFiles: loader.getAgentsFiles().agentsFiles,
|
|
1149
|
+
systemPrompt: loader.getSystemPrompt(),
|
|
1150
|
+
appendSystemPrompt: loader.getAppendSystemPrompt(),
|
|
1151
|
+
extensionFactories: [] as ExtensionFactory[],
|
|
1152
|
+
};
|
|
1153
|
+
|
|
1154
|
+
const { resourceLoader: _, ...rest } = options;
|
|
1155
|
+
const forwarded: CreateAgentSessionOptions = {
|
|
1156
|
+
...rest,
|
|
1157
|
+
cwd: rest.cwd ?? state.cwd,
|
|
1158
|
+
agentDir: rest.agentDir ?? state.agentDir,
|
|
1159
|
+
};
|
|
1160
|
+
|
|
1161
|
+
if (rest.eventBus === undefined && state.eventBus !== undefined) {
|
|
1162
|
+
forwarded.eventBus = state.eventBus;
|
|
1163
|
+
}
|
|
1164
|
+
if (rest.settings === undefined && rest.settingsManager === undefined && state.settingsPromise !== undefined) {
|
|
1165
|
+
forwarded.settingsManager = state.settingsPromise;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
// Route the loader's already-loaded extension result through the SDK's
|
|
1169
|
+
// `preloadedExtensions` seam. Skipping this branch would let
|
|
1170
|
+
// `createAgentSession` re-run its own discovery and undo the caller's
|
|
1171
|
+
// `noExtensions: true`.
|
|
1172
|
+
if (rest.preloadedExtensions === undefined && rest.preloadedExtensionPaths === undefined) {
|
|
1173
|
+
forwarded.preloadedExtensions = state.extensionsResult;
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
if (rest.skills === undefined) {
|
|
1177
|
+
forwarded.skills = state.skills;
|
|
1178
|
+
}
|
|
1179
|
+
if (rest.promptTemplates === undefined) {
|
|
1180
|
+
forwarded.promptTemplates = state.prompts;
|
|
1181
|
+
}
|
|
1182
|
+
if (rest.contextFiles === undefined) {
|
|
1183
|
+
forwarded.contextFiles = state.agentsFiles;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
if (rest.systemPrompt === undefined && state.systemPrompt !== undefined) {
|
|
1187
|
+
forwarded.systemPrompt = state.systemPrompt;
|
|
1188
|
+
}
|
|
1189
|
+
if (rest.appendSystemPrompt === undefined && state.appendSystemPrompt.length > 0) {
|
|
1190
|
+
forwarded.appendSystemPrompt = state.appendSystemPrompt.join("\n\n");
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
return ompCreateAgentSession(forwarded);
|
|
1194
|
+
}
|
|
1195
|
+
|
|
644
1196
|
export * from "../index";
|
|
645
1197
|
export { formatBytes as formatSize } from "../tools/render-utils";
|
|
646
1198
|
export { Type } from "./typebox";
|