@prometheus-ai/agent 0.5.4 → 0.5.8
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 +30 -0
- package/dist/cli.js +25110 -0
- package/dist/types/async/index.d.ts +0 -1
- package/dist/types/async/job-manager.d.ts +33 -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/capability/context-file.d.ts +0 -13
- package/dist/types/capability/mcp.d.ts +1 -0
- package/dist/types/capability/rule-buckets.d.ts +1 -1
- package/dist/types/capability/rule.d.ts +6 -1
- package/dist/types/capability/types.d.ts +0 -4
- package/dist/types/cli/args.d.ts +23 -3
- package/dist/types/cli/bench-cli.d.ts +78 -0
- package/dist/types/cli/claude-trace-cli.d.ts +7 -0
- package/dist/types/cli/dry-balance-cli.d.ts +16 -2
- package/dist/types/cli/gallery-cli.d.ts +43 -0
- package/dist/types/cli/gallery-fixtures/agentic.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/codeintel.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/edit.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/fs.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/index.d.ts +4 -0
- package/dist/types/cli/gallery-fixtures/interaction.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/memory.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/misc.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/search.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/shell.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/types.d.ts +55 -0
- package/dist/types/cli/gallery-fixtures/web.d.ts +2 -0
- package/dist/types/cli/gallery-screenshot.d.ts +35 -0
- package/dist/types/cli/grievances-cli.d.ts +1 -1
- package/dist/types/cli/list-models.d.ts +6 -14
- 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/cli/startup-cwd.d.ts +2 -0
- package/dist/types/cli/update-cli.d.ts +13 -40
- package/dist/types/cli/usage-cli.d.ts +81 -0
- package/dist/types/cli-commands.d.ts +12 -0
- package/dist/types/collab/crypto.d.ts +7 -0
- package/dist/types/collab/guest.d.ts +37 -0
- package/dist/types/collab/host.d.ts +29 -0
- package/dist/types/collab/protocol.d.ts +119 -0
- package/dist/types/collab/relay-client.d.ts +22 -0
- package/dist/types/commands/bench.d.ts +29 -0
- package/dist/types/commands/gallery.d.ts +47 -0
- package/dist/types/commands/install.d.ts +1 -1
- package/dist/types/commands/join.d.ts +12 -0
- package/dist/types/commands/launch.d.ts +8 -4
- package/dist/types/commands/models.d.ts +33 -0
- package/dist/types/commands/read.d.ts +1 -1
- package/dist/types/commands/say.d.ts +24 -0
- package/dist/types/commands/token.d.ts +25 -0
- package/dist/types/commands/usage.d.ts +34 -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/analysis/conventional.d.ts +2 -2
- package/dist/types/commit/analysis/summary.d.ts +2 -2
- package/dist/types/commit/changelog/generate.d.ts +3 -3
- package/dist/types/commit/changelog/index.d.ts +2 -2
- package/dist/types/commit/map-reduce/index.d.ts +3 -3
- package/dist/types/commit/map-reduce/map-phase.d.ts +2 -2
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +2 -2
- package/dist/types/commit/model-selection.d.ts +10 -4
- package/dist/types/commit/shared-llm.d.ts +1 -1
- package/dist/types/config/api-key-resolver.d.ts +43 -0
- package/dist/types/config/append-only-context-mode.d.ts +2 -1
- package/dist/types/config/keybindings.d.ts +12 -7
- package/dist/types/config/model-discovery.d.ts +57 -0
- package/dist/types/config/model-equivalence.d.ts +1 -1
- package/dist/types/config/model-registry.d.ts +86 -222
- package/dist/types/config/model-resolver.d.ts +43 -12
- package/dist/types/config/model-roles.d.ts +29 -0
- package/dist/types/config/models-config-schema.d.ts +536 -43
- package/dist/types/config/models-config.d.ts +391 -0
- package/dist/types/config/settings-schema.d.ts +1202 -324
- package/dist/types/config/settings.d.ts +15 -3
- package/dist/types/dap/config.d.ts +14 -1
- package/dist/types/dap/types.d.ts +10 -0
- 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 +3 -0
- package/dist/types/debug/terminal-info.d.ts +0 -1
- package/dist/types/discovery/at-imports.d.ts +15 -0
- package/dist/types/discovery/prometheus-extension-roots.d.ts +7 -7
- package/dist/types/edit/diff.d.ts +3 -2
- package/dist/types/edit/file-snapshot-store.d.ts +18 -0
- package/dist/types/edit/hashline/noop-loop-guard.d.ts +72 -0
- package/dist/types/edit/hashline/params.d.ts +1 -1
- package/dist/types/edit/index.d.ts +0 -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/edit/renderer.d.ts +1 -0
- package/dist/types/eval/__tests__/completion-bridge.test.d.ts +1 -0
- package/dist/types/eval/__tests__/helpers-local-roots.test.d.ts +1 -0
- package/dist/types/eval/__tests__/js-context-manager.test.d.ts +1 -0
- package/dist/types/eval/backend.d.ts +7 -2
- package/dist/types/eval/bridge-timeout.d.ts +1 -1
- package/dist/types/eval/completion-bridge.d.ts +25 -0
- package/dist/types/eval/idle-timeout.d.ts +1 -5
- package/dist/types/eval/js/context-manager.d.ts +1 -0
- package/dist/types/eval/js/executor.d.ts +2 -0
- package/dist/types/eval/js/index.d.ts +1 -1
- package/dist/types/eval/js/shared/helpers.d.ts +7 -1
- package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -6
- package/dist/types/eval/js/shared/runtime.d.ts +6 -1
- package/dist/types/eval/js/worker-protocol.d.ts +6 -0
- package/dist/types/eval/py/__tests__/prelude.test.d.ts +1 -0
- package/dist/types/eval/py/executor.d.ts +12 -0
- package/dist/types/eval/py/index.d.ts +1 -1
- package/dist/types/eval/py/kernel.d.ts +6 -1
- package/dist/types/eval/py/runtime.d.ts +9 -0
- package/dist/types/exa/index.d.ts +1 -19
- package/dist/types/exa/mcp-client.d.ts +10 -3
- package/dist/types/exa/types.d.ts +0 -83
- package/dist/types/exec/bash-executor.d.ts +7 -0
- package/dist/types/export/custom-share.d.ts +1 -2
- package/dist/types/export/html/index.d.ts +39 -0
- package/dist/types/export/html/template-js.d.ts +2 -0
- package/dist/types/export/share.d.ts +61 -0
- package/dist/types/export/ttsr.d.ts +14 -0
- package/dist/types/extensibility/custom-commands/types.d.ts +9 -4
- package/dist/types/extensibility/custom-tools/loader.d.ts +30 -4
- package/dist/types/extensibility/custom-tools/types.d.ts +16 -8
- package/dist/types/extensibility/extensions/index.d.ts +1 -1
- package/dist/types/extensibility/extensions/loader.d.ts +20 -1
- package/dist/types/extensibility/extensions/model-api.d.ts +17 -0
- package/dist/types/extensibility/extensions/runner.d.ts +5 -2
- package/dist/types/extensibility/extensions/types.d.ts +72 -11
- package/dist/types/extensibility/hooks/index.d.ts +2 -1
- package/dist/types/extensibility/hooks/loader.d.ts +1 -1
- package/dist/types/extensibility/hooks/types.d.ts +11 -5
- package/dist/types/extensibility/{legacy-pi-ai-shim.d.ts → legacy-package-ai-shim.d.ts} +2 -2
- package/dist/types/extensibility/plugins/{legacy-pi-compat.d.ts → legacy-package-compat.d.ts} +20 -3
- package/dist/types/extensibility/plugins/loader.d.ts +11 -0
- package/dist/types/extensibility/plugins/marketplace-auto-update.d.ts +8 -0
- package/dist/types/extensibility/plugins/types.d.ts +2 -2
- package/dist/types/extensibility/shared-events.d.ts +3 -3
- package/dist/types/extensibility/skills.d.ts +10 -0
- package/dist/types/extensibility/slash-commands.d.ts +1 -11
- 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/mental-models.d.ts +17 -8
- package/dist/types/hindsight/transcript.d.ts +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/internal-urls/artifact-protocol.d.ts +2 -2
- package/dist/types/internal-urls/history-protocol.d.ts +14 -0
- package/dist/types/internal-urls/index.d.ts +1 -0
- package/dist/types/internal-urls/local-protocol.d.ts +14 -2
- package/dist/types/internal-urls/types.d.ts +1 -1
- package/dist/types/irc/bus.d.ts +79 -0
- package/dist/types/lib/xai-http.d.ts +1 -1
- package/dist/types/lsp/client.d.ts +10 -0
- package/dist/types/lsp/config.d.ts +2 -2
- package/dist/types/lsp/edits.d.ts +9 -0
- package/dist/types/lsp/format-options.d.ts +32 -0
- package/dist/types/lsp/index.d.ts +2 -7
- package/dist/types/lsp/types.d.ts +13 -1
- package/dist/types/lsp/utils.d.ts +6 -2
- package/dist/types/main.d.ts +23 -8
- package/dist/types/mcp/json-rpc.d.ts +5 -0
- package/dist/types/mcp/manager.d.ts +8 -0
- package/dist/types/mcp/oauth-discovery.d.ts +6 -1
- package/dist/types/mcp/oauth-flow.d.ts +13 -3
- package/dist/types/mcp/startup-events.d.ts +11 -0
- package/dist/types/mcp/tool-bridge.d.ts +2 -0
- package/dist/types/mcp/transports/stdio.d.ts +13 -0
- package/dist/types/mcp/types.d.ts +2 -0
- package/dist/types/memories/index.d.ts +7 -15
- package/dist/types/memories/storage.d.ts +0 -10
- package/dist/types/memory-backend/index.d.ts +3 -1
- package/dist/types/memory-backend/local-backend.d.ts +4 -3
- package/dist/types/memory-backend/resolve.d.ts +2 -2
- package/dist/types/memory-backend/runtime.d.ts +4 -0
- package/dist/types/memory-backend/types.d.ts +67 -2
- package/dist/types/mnemopi/config.d.ts +31 -1
- package/dist/types/mnemopi/state.d.ts +40 -2
- package/dist/types/modes/acp/acp-agent.d.ts +1 -2
- package/dist/types/modes/components/agent-dashboard.d.ts +17 -1
- package/dist/types/modes/components/agent-hub.d.ts +82 -0
- package/dist/types/modes/components/assistant-message.d.ts +5 -12
- package/dist/types/modes/components/bash-execution.d.ts +1 -1
- package/dist/types/modes/components/chat-block.d.ts +64 -0
- package/dist/types/modes/components/collab-prompt-message.d.ts +10 -0
- package/dist/types/modes/components/compaction-summary-message.d.ts +25 -5
- package/dist/types/modes/components/copy-selector.d.ts +1 -1
- package/dist/types/modes/components/custom-editor.d.ts +49 -2
- package/dist/types/modes/components/custom-editor.test.d.ts +1 -0
- package/dist/types/modes/components/dynamic-border.d.ts +1 -1
- package/dist/types/modes/components/extensions/extension-dashboard.d.ts +1 -1
- package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
- package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
- package/dist/types/modes/components/footer.d.ts +1 -1
- package/dist/types/modes/components/hook-editor.d.ts +5 -0
- package/dist/types/modes/components/hook-input.d.ts +4 -0
- package/dist/types/modes/components/hook-selector.d.ts +5 -7
- package/dist/types/modes/components/index.d.ts +1 -0
- package/dist/types/modes/components/late-diagnostics-message.d.ts +20 -0
- package/dist/types/modes/components/logout-account-selector.d.ts +8 -0
- package/dist/types/modes/components/mcp-add-wizard.d.ts +2 -1
- package/dist/types/modes/components/model-selector.d.ts +1 -1
- package/dist/types/modes/components/oauth-selector.d.ts +10 -1
- package/dist/types/modes/components/overlay-box.d.ts +17 -0
- package/dist/types/modes/components/plan-review-overlay.d.ts +61 -0
- package/dist/types/modes/components/plan-toc.d.ts +41 -0
- package/dist/types/modes/components/read-tool-group.d.ts +8 -0
- package/dist/types/modes/components/reset-usage-selector.d.ts +12 -0
- package/dist/types/modes/components/segment-track.d.ts +11 -6
- package/dist/types/modes/components/session-selector.d.ts +18 -9
- package/dist/types/modes/components/settings-defs.d.ts +9 -2
- package/dist/types/modes/components/settings-selector.d.ts +17 -4
- package/dist/types/modes/components/snapcompact-shape-preview.d.ts +31 -0
- package/dist/types/modes/components/status-line/component.d.ts +61 -0
- package/dist/types/modes/components/status-line/index.d.ts +1 -0
- package/dist/types/modes/components/status-line/types.d.ts +47 -3
- package/dist/types/modes/components/tiny-title-download-progress.d.ts +1 -1
- package/dist/types/modes/components/tool-execution.d.ts +49 -2
- package/dist/types/modes/components/transcript-container.d.ts +76 -26
- package/dist/types/modes/components/tree-selector.d.ts +2 -2
- package/dist/types/modes/components/ttsr-notification.d.ts +5 -1
- package/dist/types/modes/components/usage-row.d.ts +3 -0
- package/dist/types/modes/components/user-message-selector.d.ts +1 -1
- package/dist/types/modes/components/user-message.d.ts +2 -1
- package/dist/types/modes/components/visual-truncate.d.ts +1 -1
- package/dist/types/modes/components/welcome.d.ts +12 -2
- package/dist/types/modes/controllers/command-controller.d.ts +3 -2
- package/dist/types/modes/controllers/event-controller.d.ts +7 -1
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +0 -1
- package/dist/types/modes/controllers/input-controller.d.ts +25 -3
- package/dist/types/modes/controllers/mcp-command-controller.d.ts +8 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +5 -2
- package/dist/types/modes/controllers/session-focus-controller.d.ts +31 -0
- package/dist/types/modes/controllers/streaming-reveal.d.ts +22 -0
- package/dist/types/modes/controllers/tan-command-controller.d.ts +6 -0
- package/dist/types/modes/controllers/tool-args-reveal.d.ts +43 -0
- package/dist/types/modes/gradient-highlight.d.ts +9 -4
- package/dist/types/modes/image-references.d.ts +14 -3
- package/dist/types/modes/index.d.ts +8 -7
- package/dist/types/modes/interactive-mode.d.ts +92 -16
- package/dist/types/modes/magic-keywords.d.ts +14 -2
- package/dist/types/modes/markdown-prose.d.ts +1 -1
- package/dist/types/modes/oauth-manual-input.d.ts +7 -0
- package/dist/types/modes/rpc/rpc-client.d.ts +48 -2
- package/dist/types/modes/rpc/rpc-mode.d.ts +67 -2
- package/dist/types/modes/rpc/rpc-subagents.d.ts +24 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +113 -1
- package/dist/types/modes/runtime-init.d.ts +4 -0
- package/dist/types/modes/session-observer-registry.d.ts +9 -0
- package/dist/types/modes/setup-version.d.ts +11 -0
- package/dist/types/modes/setup-wizard/index.d.ts +7 -2
- package/dist/types/modes/setup-wizard/lazy.d.ts +2 -0
- package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +4 -1
- package/dist/types/modes/setup-wizard/scenes/types.d.ts +11 -2
- package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +6 -2
- package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +1 -1
- package/dist/types/modes/theme/theme.d.ts +42 -7
- package/dist/types/modes/types.d.ts +62 -13
- package/dist/types/modes/utils/context-usage.d.ts +6 -1
- package/dist/types/modes/utils/copy-targets.d.ts +21 -1
- package/dist/types/modes/utils/ui-helpers.d.ts +4 -4
- package/dist/types/modes/workflow.d.ts +3 -3
- package/dist/types/plan-mode/approved-plan.d.ts +27 -8
- package/dist/types/plan-mode/plan-protection.d.ts +4 -4
- package/dist/types/registry/agent-lifecycle.d.ts +51 -0
- package/dist/types/registry/agent-registry.d.ts +33 -5
- package/dist/types/sdk.d.ts +46 -4
- package/dist/types/secrets/index.d.ts +1 -1
- package/dist/types/secrets/obfuscator.d.ts +9 -3
- package/dist/types/session/agent-session.d.ts +136 -66
- package/dist/types/session/agent-storage.d.ts +2 -1
- package/dist/types/session/auth-broker-config.d.ts +4 -0
- package/dist/types/session/auth-storage.d.ts +1 -1
- package/dist/types/session/codex-auto-reset.d.ts +111 -0
- package/dist/types/session/indexed-session-storage.d.ts +3 -3
- package/dist/types/session/messages.d.ts +26 -15
- 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-history-format.d.ts +12 -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 +107 -440
- 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 +145 -0
- package/dist/types/session/snapcompact-savings-journal.d.ts +46 -0
- package/dist/types/session/streaming-output.d.ts +46 -0
- package/dist/types/session/tool-choice-queue.d.ts +6 -6
- package/dist/types/session/yield-queue.d.ts +10 -1
- package/dist/types/slash-commands/acp-builtins.d.ts +16 -0
- package/dist/types/slash-commands/available-commands.d.ts +34 -0
- package/dist/types/slash-commands/builtin-registry.d.ts +10 -0
- package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +14 -0
- package/dist/types/slash-commands/helpers/logout.d.ts +15 -0
- package/dist/types/slash-commands/helpers/reset-usage.d.ts +27 -0
- package/dist/types/slash-commands/helpers/stats-dashboard.d.ts +13 -0
- package/dist/types/slash-commands/types.d.ts +5 -9
- package/dist/types/ssh/connection-manager.d.ts +8 -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 +9 -1
- package/dist/types/task/commands.d.ts +1 -1
- package/dist/types/task/discovery.d.ts +1 -2
- package/dist/types/task/executor.d.ts +61 -2
- package/dist/types/task/index.d.ts +37 -6
- package/dist/types/task/output-manager.d.ts +0 -7
- package/dist/types/task/parallel.d.ts +2 -2
- package/dist/types/task/prometheus-command.d.ts +2 -2
- package/dist/types/task/render.d.ts +20 -7
- package/dist/types/task/repair-args.d.ts +8 -7
- package/dist/types/task/types.d.ts +109 -52
- package/dist/types/task/worktree.d.ts +2 -0
- package/dist/types/telemetry-export.d.ts +2 -2
- package/dist/types/thinking.d.ts +4 -0
- package/dist/types/tiny/models.d.ts +1 -1
- package/dist/types/tiny/title-client.d.ts +12 -1
- package/dist/types/tiny/title-protocol.d.ts +1 -0
- package/dist/types/tools/archive-reader.d.ts +5 -0
- package/dist/types/tools/ask.d.ts +6 -1
- package/dist/types/tools/ast-edit.d.ts +4 -1
- package/dist/types/tools/ast-grep.d.ts +4 -1
- package/dist/types/tools/bash.d.ts +5 -2
- package/dist/types/tools/browser/attach.d.ts +4 -4
- 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 +17 -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/tab-worker.d.ts +18 -1
- package/dist/types/tools/browser.d.ts +3 -1
- package/dist/types/tools/checkpoint.d.ts +1 -1
- package/dist/types/tools/conflict-detect.d.ts +16 -0
- package/dist/types/tools/debug.d.ts +1 -1
- package/dist/types/tools/eval-render.d.ts +1 -8
- package/dist/types/tools/eval.d.ts +9 -1
- package/dist/types/tools/fetch.d.ts +17 -8
- package/dist/types/tools/find.d.ts +1 -8
- package/dist/types/tools/gh-cache-invalidation.d.ts +6 -0
- package/dist/types/tools/gh.d.ts +4 -1
- package/dist/types/tools/github-cache.d.ts +19 -0
- package/dist/types/tools/grouped-file-output.d.ts +46 -12
- package/dist/types/tools/image-gen.d.ts +1 -1
- package/dist/types/tools/index.d.ts +89 -8
- package/dist/types/tools/inspect-image.d.ts +1 -1
- package/dist/types/tools/irc.d.ts +79 -39
- package/dist/types/tools/job.d.ts +8 -2
- 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 +2 -2
- 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 +4 -1
- package/dist/types/tools/memory-retain.d.ts +1 -1
- package/dist/types/tools/path-utils.d.ts +17 -5
- package/dist/types/tools/plan-mode-guard.d.ts +18 -9
- package/dist/types/tools/read.d.ts +3 -2
- package/dist/types/tools/render-mermaid.d.ts +1 -1
- package/dist/types/tools/render-utils.d.ts +47 -27
- package/dist/types/tools/renderers.d.ts +10 -2
- package/dist/types/tools/report-tool-issue.d.ts +6 -1
- 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 +7 -3
- package/dist/types/tools/sqlite-reader.d.ts +4 -0
- package/dist/types/tools/ssh.d.ts +2 -1
- package/dist/types/tools/todo.d.ts +7 -15
- package/dist/types/tools/tool-result.d.ts +2 -0
- package/dist/types/tools/tool-timeouts.d.ts +1 -1
- package/dist/types/tools/tts.d.ts +26 -1
- package/dist/types/tools/write.d.ts +6 -3
- package/dist/types/tools/yield.d.ts +8 -0
- 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/tui/code-cell.d.ts +0 -2
- package/dist/types/tui/hyperlink.d.ts +13 -7
- package/dist/types/tui/output-block.d.ts +16 -22
- package/dist/types/tui/status-line.d.ts +3 -0
- package/dist/types/utils/block-context.d.ts +35 -0
- package/dist/types/utils/changelog.d.ts +8 -0
- package/dist/types/utils/clipboard.d.ts +4 -3
- package/dist/types/utils/enhanced-paste.d.ts +20 -0
- package/dist/types/utils/file-mentions.d.ts +7 -0
- package/dist/types/utils/git.d.ts +22 -3
- package/dist/types/utils/image-loading.d.ts +30 -1
- package/dist/types/utils/session-color.d.ts +15 -3
- package/dist/types/utils/thinking-display.d.ts +17 -0
- package/dist/types/utils/title-generator.d.ts +3 -2
- package/dist/types/utils/tool-choice.d.ts +8 -0
- package/dist/types/utils/tools-manager.d.ts +2 -1
- package/dist/types/web/kagi.d.ts +2 -2
- package/dist/types/web/parallel.d.ts +3 -0
- package/dist/types/web/scrapers/github.d.ts +22 -0
- package/dist/types/web/scrapers/readthedocs.d.ts +3 -0
- package/dist/types/web/scrapers/types.d.ts +12 -0
- package/dist/types/web/search/index.d.ts +1 -1
- package/dist/types/web/search/providers/anthropic.d.ts +2 -1
- package/dist/types/web/search/providers/base.d.ts +2 -1
- package/dist/types/web/search/providers/brave.d.ts +2 -1
- package/dist/types/web/search/providers/codex.d.ts +2 -1
- package/dist/types/web/search/providers/exa.d.ts +2 -1
- package/dist/types/web/search/providers/gemini.d.ts +10 -6
- package/dist/types/web/search/providers/jina.d.ts +7 -2
- package/dist/types/web/search/providers/kagi.d.ts +7 -2
- package/dist/types/web/search/providers/kimi.d.ts +7 -2
- package/dist/types/web/search/providers/parallel.d.ts +2 -1
- package/dist/types/web/search/providers/perplexity.d.ts +10 -2
- package/dist/types/web/search/providers/searxng.d.ts +2 -1
- package/dist/types/web/search/providers/synthetic.d.ts +7 -3
- package/dist/types/web/search/providers/tavily.d.ts +2 -1
- package/dist/types/web/search/providers/zai.d.ts +2 -1
- package/dist/types/web/search/types.d.ts +1 -1
- package/examples/extensions/api-demo.ts +2 -2
- package/package.json +41 -15
- package/scripts/bench-guard.ts +71 -0
- package/scripts/build-binary.ts +24 -25
- package/scripts/bundle-dist.ts +97 -0
- package/scripts/generate-share-viewer.ts +34 -0
- package/scripts/prometheus +42 -0
- package/scripts/prometheus.ts +20 -0
- package/src/async/index.ts +0 -1
- package/src/async/job-manager.ts +106 -3
- package/src/auto-thinking/classifier.ts +2 -1
- package/src/autolearn/controller.ts +139 -0
- package/src/autolearn/managed-skills.ts +257 -0
- package/src/autoresearch/dashboard.ts +1 -1
- package/src/autoresearch/prompt-setup.md +6 -6
- package/src/autoresearch/prompt.md +6 -6
- 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/capability/context-file.ts +0 -14
- package/src/capability/fs.ts +10 -0
- package/src/capability/index.ts +1 -6
- package/src/capability/mcp.ts +1 -0
- package/src/capability/rule-buckets.ts +4 -2
- package/src/capability/rule.ts +10 -1
- package/src/capability/types.ts +0 -4
- package/src/cli/args.ts +66 -13
- package/src/cli/auth-broker-cli.ts +6 -7
- package/src/cli/auth-gateway-cli.ts +8 -9
- package/src/cli/bench-cli.ts +437 -0
- package/src/cli/claude-trace-cli.ts +28 -50
- package/src/cli/completion-gen.ts +28 -28
- package/src/cli/dry-balance-cli.ts +56 -23
- package/src/cli/gallery-cli.ts +231 -0
- package/src/cli/gallery-fixtures/agentic.ts +407 -0
- package/src/cli/gallery-fixtures/codeintel.ts +187 -0
- package/src/cli/gallery-fixtures/edit.ts +194 -0
- package/src/cli/gallery-fixtures/fs.ts +220 -0
- package/src/cli/gallery-fixtures/index.ts +40 -0
- package/src/cli/gallery-fixtures/interaction.ts +49 -0
- package/src/cli/gallery-fixtures/memory.ts +81 -0
- package/src/cli/gallery-fixtures/misc.ts +250 -0
- package/src/cli/gallery-fixtures/search.ts +213 -0
- package/src/cli/gallery-fixtures/shell.ts +167 -0
- package/src/cli/gallery-fixtures/types.ts +57 -0
- package/src/cli/gallery-fixtures/web.ts +158 -0
- package/src/cli/gallery-screenshot.ts +279 -0
- package/src/cli/grievances-cli.ts +1 -1
- package/src/cli/list-models.ts +16 -174
- package/src/cli/models-cli.ts +429 -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/startup-cwd.ts +68 -0
- package/src/cli/update-cli.ts +144 -272
- package/src/cli/usage-cli.ts +774 -0
- package/src/cli-commands.ts +36 -0
- package/src/cli.ts +141 -32
- package/src/collab/crypto.ts +63 -0
- package/src/collab/guest.ts +451 -0
- package/src/collab/host.ts +565 -0
- package/src/collab/protocol.ts +241 -0
- package/src/collab/relay-client.ts +216 -0
- package/src/commands/bench.ts +42 -0
- package/src/commands/complete.ts +1 -1
- package/src/commands/gallery.ts +52 -0
- package/src/commands/install.ts +1 -1
- package/src/commands/join.ts +39 -0
- package/src/commands/launch.ts +8 -4
- package/src/commands/models.ts +61 -0
- package/src/commands/read.ts +6 -3
- package/src/commands/say.ts +102 -0
- package/src/commands/setup.ts +1 -1
- package/src/commands/token.ts +89 -0
- package/src/commands/usage.ts +43 -0
- package/src/commit/agentic/agent.ts +2 -1
- package/src/commit/agentic/tools/analyze-file.ts +42 -20
- 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 +9 -2
- package/src/commit/analysis/conventional.ts +2 -2
- package/src/commit/analysis/summary.ts +3 -3
- package/src/commit/changelog/generate.ts +3 -3
- package/src/commit/changelog/index.ts +2 -2
- package/src/commit/map-reduce/index.ts +3 -3
- package/src/commit/map-reduce/map-phase.ts +2 -2
- package/src/commit/map-reduce/reduce-phase.ts +2 -2
- package/src/commit/model-selection.ts +35 -12
- package/src/commit/pipeline.ts +4 -4
- package/src/commit/shared-llm.ts +1 -1
- package/src/config/api-key-resolver.ts +67 -0
- package/src/config/append-only-context-mode.ts +6 -12
- package/src/config/keybindings.ts +9 -4
- package/src/config/mcp-schema.json +4 -0
- package/src/config/model-discovery.ts +574 -0
- package/src/config/model-equivalence.ts +5 -4
- package/src/config/model-registry.ts +659 -1093
- package/src/config/model-resolver.ts +374 -174
- package/src/config/model-roles.ts +88 -0
- package/src/config/models-config-schema.ts +61 -9
- package/src/config/models-config.ts +130 -0
- package/src/config/settings-schema.ts +1441 -387
- package/src/config/settings.ts +261 -69
- package/src/dap/client.ts +138 -53
- package/src/dap/config.ts +41 -2
- package/src/dap/defaults.json +1 -0
- package/src/dap/session.ts +263 -161
- package/src/dap/types.ts +10 -0
- package/src/debug/index.ts +50 -60
- package/src/debug/log-viewer.ts +1 -1
- package/src/debug/protocol-probe.ts +1 -1
- package/src/debug/raw-sse-buffer.ts +7 -4
- package/src/debug/raw-sse.ts +1 -1
- package/src/debug/report-bundle.ts +9 -0
- package/src/debug/terminal-info.ts +0 -3
- package/src/discovery/agents-md.ts +25 -21
- package/src/discovery/agents.ts +9 -15
- package/src/discovery/at-imports.ts +273 -0
- package/src/discovery/builtin-rules/index.ts +4 -0
- package/src/discovery/builtin-rules/ts-no-test-timers.md +55 -0
- package/src/discovery/builtin-rules/ts-redundant-clear-guard.md +75 -0
- package/src/discovery/builtin.ts +45 -23
- package/src/discovery/claude-plugins.ts +44 -5
- package/src/discovery/helpers.ts +50 -9
- package/src/discovery/prometheus-extension-roots.ts +10 -10
- package/src/discovery/prometheus-plugins.ts +10 -10
- package/src/edit/diff.ts +191 -4
- package/src/edit/file-snapshot-store.ts +34 -1
- package/src/edit/hashline/block-resolver.ts +20 -1
- package/src/edit/hashline/diff.ts +123 -2
- package/src/edit/hashline/execute.ts +60 -4
- package/src/edit/hashline/filesystem.ts +2 -1
- package/src/edit/hashline/noop-loop-guard.ts +99 -0
- package/src/edit/hashline/params.ts +1 -1
- package/src/edit/index.ts +47 -18
- package/src/edit/modes/apply-patch.ts +1 -1
- package/src/edit/modes/patch.ts +59 -3
- package/src/edit/modes/replace.ts +58 -24
- package/src/edit/notebook.ts +22 -2
- package/src/edit/renderer.ts +315 -151
- package/src/eval/__tests__/agent-bridge.test.ts +105 -39
- package/src/eval/__tests__/budget-bridge.test.ts +1 -1
- package/src/eval/__tests__/completion-bridge.test.ts +412 -0
- package/src/eval/__tests__/helpers-local-roots.test.ts +58 -0
- package/src/eval/__tests__/js-context-manager.test.ts +241 -0
- package/src/eval/__tests__/llm-bridge.test.ts +6 -4
- package/src/eval/__tests__/shared-executors.test.ts +34 -92
- package/src/eval/agent-bridge.ts +39 -23
- package/src/eval/backend.ts +15 -2
- package/src/eval/bridge-timeout.ts +1 -1
- package/src/eval/completion-bridge.ts +203 -0
- package/src/eval/idle-timeout.ts +3 -10
- package/src/eval/js/context-manager.ts +108 -31
- package/src/eval/js/executor.ts +9 -2
- package/src/eval/js/index.ts +7 -3
- package/src/eval/js/shared/helpers.ts +59 -13
- package/src/eval/js/shared/local-module-loader.ts +2 -2
- package/src/eval/js/shared/prelude.txt +167 -30
- package/src/eval/js/shared/rewrite-imports.ts +58 -34
- package/src/eval/js/shared/runtime.ts +24 -16
- package/src/eval/js/tool-bridge.ts +4 -0
- package/src/eval/js/worker-core.ts +1 -0
- package/src/eval/js/worker-entry.ts +6 -0
- package/src/eval/js/worker-protocol.ts +6 -0
- package/src/eval/llm-bridge.ts +2 -1
- package/src/eval/py/__tests__/prelude.test.ts +19 -0
- package/src/eval/py/executor.ts +70 -26
- package/src/eval/py/index.ts +13 -4
- package/src/eval/py/kernel.ts +48 -9
- package/src/eval/py/prelude.py +73 -24
- package/src/eval/py/runner.py +133 -28
- package/src/eval/py/runtime.ts +38 -1
- package/src/exa/index.ts +1 -26
- package/src/exa/mcp-client.ts +10 -10
- package/src/exa/types.ts +0 -97
- package/src/exec/bash-executor.ts +104 -7
- package/src/export/custom-share.ts +1 -1
- package/src/export/html/index.ts +119 -17
- package/src/export/html/share-loader.js +102 -0
- package/src/export/html/template-js.ts +6 -0
- package/src/export/html/template.css +745 -459
- package/src/export/html/template.css.d.ts +2 -0
- package/src/export/html/template.html +6 -3
- package/src/export/html/template.js +277 -891
- package/src/export/html/tool-views.generated.d.ts +2 -0
- package/src/export/html/tool-views.generated.js +38 -0
- package/src/export/share.ts +269 -0
- package/src/export/ttsr.ts +122 -1
- package/src/extensibility/custom-commands/loader.ts +7 -4
- package/src/extensibility/custom-commands/types.ts +9 -4
- package/src/extensibility/custom-tools/loader.ts +51 -23
- package/src/extensibility/custom-tools/types.ts +16 -8
- package/src/extensibility/extensions/get-commands-handler.ts +2 -1
- package/src/extensibility/extensions/index.ts +1 -0
- package/src/extensibility/extensions/loader.ts +70 -20
- package/src/extensibility/extensions/model-api.ts +41 -0
- package/src/extensibility/extensions/runner.ts +12 -2
- package/src/extensibility/extensions/types.ts +83 -11
- package/src/extensibility/extensions/wrapper.ts +41 -5
- package/src/extensibility/hooks/index.ts +2 -1
- package/src/extensibility/hooks/loader.ts +6 -3
- package/src/extensibility/hooks/types.ts +11 -5
- package/src/extensibility/{legacy-pi-ai-shim.ts → legacy-package-ai-shim.ts} +2 -2
- package/src/extensibility/plugins/doctor.ts +1 -2
- package/src/extensibility/plugins/installer.ts +2 -2
- package/src/extensibility/plugins/{legacy-pi-compat.ts → legacy-package-compat.ts} +165 -77
- package/src/extensibility/plugins/loader.ts +34 -23
- package/src/extensibility/plugins/manager.ts +226 -95
- package/src/extensibility/plugins/marketplace-auto-update.ts +49 -0
- package/src/extensibility/plugins/types.ts +3 -3
- package/src/extensibility/shared-events.ts +3 -3
- package/src/extensibility/skills.ts +113 -9
- package/src/extensibility/slash-commands.ts +1 -97
- package/src/goals/guided-setup.ts +133 -0
- package/src/goals/state.ts +1 -1
- package/src/goals/tools/goal-tool.ts +38 -28
- package/src/hindsight/bank.ts +17 -2
- package/src/hindsight/client.ts +27 -2
- package/src/hindsight/mental-models.ts +59 -12
- package/src/hindsight/state.ts +12 -3
- package/src/hindsight/transcript.ts +1 -1
- package/src/index.ts +5 -0
- package/src/internal-urls/artifact-protocol.ts +11 -2
- package/src/internal-urls/docs-index.generated.ts +9 -7
- package/src/internal-urls/history-protocol.ts +113 -0
- package/src/internal-urls/index.ts +1 -0
- package/src/internal-urls/issue-pr-protocol.ts +22 -9
- package/src/internal-urls/local-protocol.ts +42 -7
- package/src/internal-urls/memory-protocol.ts +4 -31
- package/src/internal-urls/router.ts +3 -1
- package/src/internal-urls/types.ts +1 -1
- package/src/irc/bus.ts +303 -0
- package/src/lib/xai-http.ts +3 -3
- package/src/lsp/client.ts +245 -104
- package/src/lsp/clients/biome-client.ts +101 -39
- package/src/lsp/clients/lsp-linter-client.ts +2 -10
- package/src/lsp/config.ts +15 -5
- package/src/lsp/defaults.json +6 -0
- package/src/lsp/edits.ts +143 -95
- package/src/lsp/format-options.ts +119 -0
- package/src/lsp/index.ts +233 -93
- package/src/lsp/render.ts +11 -35
- package/src/lsp/types.ts +13 -1
- package/src/lsp/utils.ts +31 -12
- package/src/main.ts +396 -216
- package/src/mcp/config-writer.ts +7 -3
- package/src/mcp/json-rpc.ts +35 -5
- package/src/mcp/manager.ts +31 -16
- package/src/mcp/oauth-discovery.ts +34 -4
- package/src/mcp/oauth-flow.ts +61 -8
- package/src/mcp/render.ts +7 -1
- package/src/mcp/startup-events.ts +21 -0
- package/src/mcp/tool-bridge.ts +2 -0
- package/src/mcp/transports/stdio.ts +224 -4
- package/src/mcp/types.ts +2 -0
- package/src/memories/index.ts +174 -1128
- package/src/memories/storage.ts +2 -41
- package/src/memory-backend/index.ts +14 -1
- package/src/memory-backend/local-backend.ts +18 -3
- package/src/memory-backend/off-backend.ts +9 -0
- package/src/memory-backend/resolve.ts +4 -6
- package/src/memory-backend/runtime.ts +66 -0
- package/src/memory-backend/types.ts +82 -2
- package/src/mnemopi/backend.ts +220 -28
- package/src/mnemopi/config.ts +138 -33
- package/src/mnemopi/state.ts +91 -11
- package/src/modes/acp/acp-agent.ts +149 -142
- package/src/modes/acp/acp-event-mapper.ts +5 -1
- package/src/modes/components/agent-dashboard.ts +17 -11
- package/src/modes/components/agent-hub.ts +1346 -0
- package/src/modes/components/assistant-message.ts +190 -80
- package/src/modes/components/bash-execution.ts +1 -1
- package/src/modes/components/btw-panel.ts +5 -1
- package/src/modes/components/chat-block.ts +111 -0
- package/src/modes/components/collab-prompt-message.ts +30 -0
- package/src/modes/components/compaction-summary-message.ts +168 -33
- package/src/modes/components/copy-selector.ts +2 -45
- package/src/modes/components/custom-editor.test.ts +96 -0
- package/src/modes/components/custom-editor.ts +405 -118
- package/src/modes/components/custom-message.ts +1 -3
- package/src/modes/components/diff.ts +13 -2
- package/src/modes/components/dynamic-border.ts +12 -3
- package/src/modes/components/execution-shared.ts +1 -2
- package/src/modes/components/extensions/extension-dashboard.ts +8 -5
- package/src/modes/components/extensions/extension-list.ts +1 -1
- package/src/modes/components/extensions/inspector-panel.ts +7 -3
- package/src/modes/components/extensions/state-manager.ts +36 -41
- package/src/modes/components/footer.ts +4 -2
- package/src/modes/components/history-search.ts +1 -1
- package/src/modes/components/hook-editor.ts +8 -0
- package/src/modes/components/hook-input.ts +8 -0
- package/src/modes/components/hook-message.ts +1 -3
- package/src/modes/components/hook-selector.ts +6 -7
- package/src/modes/components/index.ts +1 -0
- package/src/modes/components/late-diagnostics-message.ts +60 -0
- package/src/modes/components/login-dialog.ts +1 -1
- package/src/modes/components/logout-account-selector.ts +130 -0
- package/src/modes/components/mcp-add-wizard.ts +14 -1
- package/src/modes/components/model-selector.ts +177 -75
- package/src/modes/components/oauth-selector.ts +102 -16
- package/src/modes/components/overlay-box.ts +108 -0
- package/src/modes/components/plan-review-overlay.ts +845 -0
- package/src/modes/components/plan-toc.ts +138 -0
- package/src/modes/components/plugin-settings.ts +22 -5
- package/src/modes/components/read-tool-group.ts +442 -39
- package/src/modes/components/reset-usage-selector.ts +161 -0
- package/src/modes/components/segment-track.ts +44 -7
- package/src/modes/components/session-selector.ts +97 -37
- package/src/modes/components/settings-defs.ts +28 -6
- package/src/modes/components/settings-selector.ts +541 -93
- package/src/modes/components/skill-message.ts +0 -1
- package/src/modes/components/snapcompact-shape-preview-doc.md +11 -0
- package/src/modes/components/snapcompact-shape-preview.ts +193 -0
- package/src/modes/components/{status-line.ts → status-line/component.ts} +205 -168
- package/src/modes/components/status-line/index.ts +1 -0
- package/src/modes/components/status-line/presets.ts +3 -3
- package/src/modes/components/status-line/segments.ts +26 -7
- package/src/modes/components/status-line/types.ts +40 -9
- package/src/modes/components/tiny-title-download-progress.ts +1 -1
- package/src/modes/components/tips.txt +7 -3
- package/src/modes/components/todo-reminder.ts +0 -2
- package/src/modes/components/tool-execution.ts +236 -103
- package/src/modes/components/transcript-container.ts +724 -99
- package/src/modes/components/tree-selector.ts +19 -4
- package/src/modes/components/ttsr-notification.ts +72 -30
- package/src/modes/components/usage-row.ts +18 -0
- package/src/modes/components/user-message-selector.ts +1 -1
- package/src/modes/components/user-message.ts +28 -12
- package/src/modes/components/visual-truncate.ts +1 -1
- package/src/modes/components/welcome.ts +80 -22
- package/src/modes/controllers/command-controller-shared.ts +7 -6
- package/src/modes/controllers/command-controller.ts +210 -180
- package/src/modes/controllers/event-controller.ts +352 -142
- package/src/modes/controllers/extension-ui-controller.ts +167 -208
- package/src/modes/controllers/input-controller.ts +778 -162
- package/src/modes/controllers/mcp-command-controller.ts +232 -80
- package/src/modes/controllers/selector-controller.ts +284 -145
- package/src/modes/controllers/session-focus-controller.ts +112 -0
- package/src/modes/controllers/ssh-command-controller.ts +2 -2
- package/src/modes/controllers/streaming-reveal.ts +295 -0
- package/src/modes/controllers/tan-command-controller.ts +173 -0
- package/src/modes/controllers/tool-args-reveal.ts +174 -0
- package/src/modes/gradient-highlight.ts +21 -9
- package/src/modes/image-references.ts +33 -7
- package/src/modes/index.ts +8 -25
- package/src/modes/interactive-mode.ts +840 -186
- package/src/modes/magic-keywords.ts +28 -6
- package/src/modes/markdown-prose.ts +1 -1
- package/src/modes/oauth-manual-input.ts +30 -3
- package/src/modes/rpc/rpc-client.ts +186 -3
- package/src/modes/rpc/rpc-mode.ts +318 -24
- package/src/modes/rpc/rpc-subagents.ts +265 -0
- package/src/modes/rpc/rpc-types.ts +111 -2
- package/src/modes/runtime-init.ts +28 -3
- package/src/modes/session-observer-registry.ts +72 -3
- package/src/modes/setup-version.ts +11 -0
- package/src/modes/setup-wizard/index.ts +16 -4
- package/src/modes/setup-wizard/lazy.ts +16 -0
- package/src/modes/setup-wizard/scenes/glyph.ts +25 -7
- package/src/modes/setup-wizard/scenes/providers.ts +45 -12
- package/src/modes/setup-wizard/scenes/sign-in.ts +14 -13
- package/src/modes/setup-wizard/scenes/splash.ts +1 -1
- package/src/modes/setup-wizard/scenes/theme.ts +29 -2
- package/src/modes/setup-wizard/scenes/types.ts +11 -2
- package/src/modes/setup-wizard/scenes/web-search.ts +26 -9
- package/src/modes/setup-wizard/wizard-overlay.ts +40 -3
- package/src/modes/shared.ts +2 -0
- package/src/modes/theme/defaults/dark-poimandres.json +1 -1
- package/src/modes/theme/defaults/light-poimandres.json +1 -1
- package/src/modes/theme/shimmer.ts +20 -9
- package/src/modes/theme/theme-schema.json +1 -1
- package/src/modes/theme/theme.ts +342 -82
- package/src/modes/types.ts +60 -18
- package/src/modes/utils/context-usage.ts +88 -8
- package/src/modes/utils/copy-targets.ts +133 -27
- package/src/modes/utils/hotkeys-markdown.ts +3 -2
- package/src/modes/utils/ui-helpers.ts +191 -110
- package/src/modes/workflow.ts +10 -10
- package/src/plan-mode/approved-plan.ts +66 -43
- package/src/plan-mode/plan-protection.ts +4 -4
- package/src/priority.json +5 -1
- package/src/prompts/agents/designer.md +1 -1
- package/src/prompts/agents/explore.md +3 -3
- package/src/prompts/agents/librarian.md +2 -3
- package/src/prompts/agents/oracle.md +2 -2
- package/src/prompts/agents/plan.md +6 -6
- package/src/prompts/agents/reviewer.md +1 -1
- package/src/prompts/agents/task.md +6 -5
- package/src/prompts/bench.md +12 -0
- package/src/prompts/ci-green-request.md +5 -7
- package/src/prompts/goals/goal-budget-limit.md +2 -2
- package/src/prompts/goals/goal-continuation.md +4 -4
- package/src/prompts/goals/goal-mode-active.md +1 -1
- package/src/prompts/goals/guided-goal-interview.md +8 -0
- package/src/prompts/goals/guided-goal-system.md +12 -0
- package/src/prompts/memories/consolidation.md +2 -7
- package/src/prompts/memories/consolidation_system.md +4 -0
- package/src/prompts/memories/identity_review.md +2 -2
- package/src/prompts/memories/read-path.md +11 -10
- package/src/prompts/memories/stage_one_system.md +2 -2
- package/src/prompts/review-custom-request.md +1 -1
- package/src/prompts/system/agent-creation-architect.md +2 -2
- package/src/prompts/system/auto-continue.md +1 -1
- 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/background-tan-dispatch.md +8 -0
- package/src/prompts/system/btw-user.md +2 -2
- package/src/prompts/system/commit-message-system.md +13 -1
- package/src/prompts/system/custom-system-prompt.md +1 -1
- 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/irc-autoreply.md +6 -0
- package/src/prompts/system/irc-incoming.md +3 -4
- package/src/prompts/system/manual-continue.md +7 -0
- package/src/prompts/system/omfg-user.md +3 -4
- package/src/prompts/system/orchestrate-notice.md +10 -10
- package/src/prompts/system/personalities/default.md +26 -0
- package/src/prompts/system/personalities/friendly.md +17 -0
- package/src/prompts/system/personalities/pragmatic.md +15 -0
- package/src/prompts/system/plan-mode-active.md +70 -77
- package/src/prompts/system/plan-mode-approved.md +1 -1
- package/src/prompts/system/plan-mode-subagent.md +4 -5
- package/src/prompts/system/plan-mode-tool-decision-reminder.md +1 -1
- package/src/prompts/system/project-prompt.md +2 -2
- package/src/prompts/system/snapcompact-context-frames-note.md +1 -0
- package/src/prompts/system/snapcompact-context-stub.md +1 -0
- package/src/prompts/system/snapcompact-system-frames-note.md +1 -0
- package/src/prompts/system/snapcompact-system-stub.md +1 -0
- package/src/prompts/system/snapcompact-toolresult-note.md +1 -0
- package/src/prompts/system/subagent-system-prompt.md +7 -8
- package/src/prompts/system/system-prompt.md +28 -57
- package/src/prompts/system/tiny-title-system.md +1 -1
- package/src/prompts/system/title-marker-instruction.md +1 -0
- package/src/prompts/system/title-system-marker.md +16 -0
- package/src/prompts/system/title-system.md +16 -3
- package/src/prompts/system/ttsr-tool-reminder.md +1 -1
- package/src/prompts/system/workflow-notice.md +4 -4
- package/src/prompts/tools/ast-edit.md +1 -1
- package/src/prompts/tools/ast-grep.md +2 -2
- package/src/prompts/tools/bash.md +16 -8
- package/src/prompts/tools/browser.md +33 -43
- package/src/prompts/tools/debug.md +1 -1
- package/src/prompts/tools/eval.md +31 -51
- package/src/prompts/tools/find.md +0 -1
- package/src/prompts/tools/github.md +8 -7
- package/src/prompts/tools/goal.md +1 -1
- package/src/prompts/tools/image-gen.md +1 -1
- package/src/prompts/tools/inspect-image-system.md +1 -1
- package/src/prompts/tools/irc.md +39 -31
- package/src/prompts/tools/job.md +2 -1
- package/src/prompts/tools/learn.md +7 -0
- package/src/prompts/tools/lsp-late-diagnostic.md +8 -0
- package/src/prompts/tools/lsp.md +2 -2
- package/src/prompts/tools/manage-skill.md +9 -0
- package/src/prompts/tools/memory-edit.md +1 -1
- package/src/prompts/tools/patch.md +2 -2
- package/src/prompts/tools/read.md +31 -39
- package/src/prompts/tools/recall.md +1 -1
- package/src/prompts/tools/reflect.md +1 -1
- package/src/prompts/tools/render-mermaid.md +2 -2
- package/src/prompts/tools/replace.md +4 -10
- package/src/prompts/tools/rewind.md +2 -2
- package/src/prompts/tools/search-tool-bm25.md +1 -9
- package/src/prompts/tools/search.md +0 -1
- package/src/prompts/tools/ssh.md +0 -4
- package/src/prompts/tools/task-summary.md +5 -16
- package/src/prompts/tools/task.md +47 -31
- package/src/prompts/tools/todo.md +6 -3
- package/src/registry/agent-lifecycle.ts +218 -0
- package/src/registry/agent-registry.ts +46 -5
- package/src/sdk.ts +692 -219
- package/src/secrets/index.ts +8 -1
- package/src/secrets/obfuscator.ts +40 -19
- package/src/session/agent-session.ts +1577 -806
- package/src/session/agent-storage.ts +18 -9
- package/src/session/auth-broker-config.ts +30 -1
- package/src/session/auth-storage.ts +6 -0
- package/src/session/codex-auto-reset.ts +202 -0
- package/src/session/history-storage.ts +3 -2
- package/src/session/indexed-session-storage.ts +7 -10
- package/src/session/messages.ts +59 -95
- package/src/session/session-context.ts +352 -0
- package/src/session/session-dump-format.ts +12 -3
- package/src/session/session-entries.ts +194 -0
- package/src/session/session-history-format.ts +246 -0
- package/src/session/session-listing.ts +588 -0
- package/src/session/session-loader.ts +106 -0
- package/src/session/session-manager.ts +1003 -2920
- 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 +542 -0
- package/src/session/snapcompact-savings-journal.ts +113 -0
- package/src/session/streaming-output.ts +248 -11
- package/src/session/tool-choice-queue.ts +23 -11
- package/src/session/yield-queue.ts +20 -2
- package/src/slash-commands/acp-builtins.ts +25 -1
- package/src/slash-commands/available-commands.ts +105 -0
- package/src/slash-commands/builtin-registry.ts +575 -49
- package/src/slash-commands/helpers/active-oauth-account.ts +44 -0
- package/src/slash-commands/helpers/context-report.ts +28 -1
- package/src/slash-commands/helpers/logout.ts +88 -0
- package/src/slash-commands/helpers/reset-usage.ts +66 -0
- package/src/slash-commands/helpers/stats-dashboard.ts +85 -0
- package/src/slash-commands/helpers/usage-report.ts +38 -3
- package/src/slash-commands/types.ts +5 -9
- package/src/ssh/connection-manager.ts +27 -0
- package/src/ssh/ssh-executor.ts +60 -4
- 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 +254 -67
- 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 +52 -10
- package/src/task/agents.ts +3 -4
- package/src/task/commands.ts +3 -2
- package/src/task/discovery.ts +17 -24
- package/src/task/executor.ts +1054 -529
- package/src/task/index.ts +862 -757
- package/src/task/output-manager.ts +0 -11
- package/src/task/parallel.ts +3 -3
- package/src/task/prometheus-command.ts +2 -2
- package/src/task/render.ts +529 -182
- package/src/task/repair-args.ts +21 -9
- package/src/task/types.ts +144 -66
- package/src/task/worktree.ts +64 -56
- package/src/telemetry-export.ts +27 -9
- package/src/thinking.ts +9 -7
- package/src/tiny/models.ts +2 -2
- package/src/tiny/text.ts +5 -1
- package/src/tiny/title-client.ts +72 -20
- package/src/tiny/title-protocol.ts +1 -1
- package/src/tiny/worker.ts +23 -99
- package/src/tool-discovery/tool-index.ts +2 -0
- package/src/tools/archive-reader.ts +94 -2
- package/src/tools/ask.ts +234 -177
- package/src/tools/ast-edit.ts +136 -80
- package/src/tools/ast-grep.ts +41 -45
- package/src/tools/auto-generated-guard.ts +20 -3
- package/src/tools/bash-interactive.ts +28 -8
- package/src/tools/bash.ts +198 -35
- package/src/tools/browser/attach.ts +26 -7
- 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/launch.ts +11 -2
- package/src/tools/browser/readable.ts +19 -2
- package/src/tools/browser/registry.ts +52 -5
- package/src/tools/browser/render.ts +13 -5
- package/src/tools/browser/tab-protocol.ts +2 -0
- package/src/tools/browser/tab-supervisor.ts +256 -34
- package/src/tools/browser/tab-worker.ts +259 -91
- package/src/tools/browser.ts +44 -2
- package/src/tools/checkpoint.ts +1 -1
- package/src/tools/conflict-detect.ts +50 -4
- package/src/tools/debug.ts +27 -12
- package/src/tools/eval-render.ts +32 -35
- package/src/tools/eval.ts +26 -12
- package/src/tools/fetch.ts +450 -99
- package/src/tools/find.ts +182 -142
- package/src/tools/gh-cache-invalidation.ts +255 -0
- package/src/tools/gh-renderer.ts +104 -51
- package/src/tools/gh.ts +232 -37
- package/src/tools/github-cache.ts +97 -7
- package/src/tools/grouped-file-output.ts +159 -52
- package/src/tools/image-gen.ts +237 -132
- package/src/tools/index.ts +147 -26
- package/src/tools/inspect-image-renderer.ts +74 -45
- package/src/tools/inspect-image.ts +12 -6
- package/src/tools/irc.ts +626 -173
- package/src/tools/job.ts +106 -29
- package/src/tools/learn.ts +144 -0
- package/src/tools/manage-skill.ts +104 -0
- package/src/tools/memory-edit.ts +4 -4
- package/src/tools/memory-recall.ts +7 -9
- package/src/tools/memory-reflect.ts +5 -9
- package/src/tools/memory-render.ts +23 -6
- package/src/tools/memory-retain.ts +4 -4
- package/src/tools/path-utils.ts +102 -48
- package/src/tools/plan-mode-guard.ts +101 -40
- package/src/tools/read.ts +475 -120
- package/src/tools/render-mermaid.ts +1 -1
- package/src/tools/render-utils.ts +132 -76
- package/src/tools/renderers.ts +12 -1
- package/src/tools/report-tool-issue.ts +14 -6
- package/src/tools/resolve.ts +20 -3
- package/src/tools/review.ts +2 -2
- package/src/tools/search-tool-bm25.ts +37 -24
- package/src/tools/search.ts +233 -115
- package/src/tools/sqlite-reader.ts +26 -17
- package/src/tools/ssh.ts +20 -14
- package/src/tools/todo.ts +197 -191
- package/src/tools/tool-result.ts +8 -0
- package/src/tools/tool-timeouts.ts +1 -1
- package/src/tools/tts.ts +205 -74
- package/src/tools/write.ts +291 -155
- package/src/tools/yield.ts +10 -1
- 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 +505 -0
- package/src/tts/vocalizer.ts +162 -0
- package/src/tts/wav.ts +58 -0
- package/src/tui/code-cell.ts +2 -7
- package/src/tui/hyperlink.ts +40 -26
- package/src/tui/output-block.ts +60 -108
- package/src/tui/status-line.ts +5 -1
- package/src/utils/block-context.ts +312 -0
- package/src/utils/changelog.ts +27 -1
- package/src/utils/clipboard.ts +91 -22
- package/src/utils/commit-message-generator.ts +8 -3
- package/src/utils/enhanced-paste.ts +230 -0
- package/src/utils/file-mentions.ts +3 -1
- package/src/utils/git.ts +315 -15
- package/src/utils/image-loading.ts +65 -4
- package/src/utils/session-color.ts +83 -9
- package/src/utils/thinking-display.ts +37 -0
- package/src/utils/title-generator.ts +73 -10
- package/src/utils/tool-choice.ts +16 -0
- package/src/utils/tools-manager.ts +19 -1
- package/src/web/kagi.ts +28 -26
- package/src/web/parallel.ts +7 -3
- package/src/web/scrapers/arxiv.ts +1 -1
- package/src/web/scrapers/github.ts +351 -3
- package/src/web/scrapers/go-pkg.ts +1 -1
- package/src/web/scrapers/iacr.ts +1 -1
- package/src/web/scrapers/readthedocs.ts +1 -1
- package/src/web/scrapers/twitter.ts +2 -1
- package/src/web/scrapers/types.ts +87 -8
- package/src/web/scrapers/wikipedia.ts +1 -1
- package/src/web/scrapers/youtube.ts +9 -3
- package/src/web/search/index.ts +15 -2
- package/src/web/search/providers/anthropic.ts +62 -21
- package/src/web/search/providers/base.ts +2 -1
- package/src/web/search/providers/brave.ts +5 -2
- package/src/web/search/providers/codex.ts +87 -51
- package/src/web/search/providers/exa.ts +101 -10
- package/src/web/search/providers/gemini.ts +49 -24
- package/src/web/search/providers/jina.ts +15 -5
- package/src/web/search/providers/kagi.ts +9 -2
- package/src/web/search/providers/kimi.ts +45 -20
- package/src/web/search/providers/parallel.ts +39 -24
- package/src/web/search/providers/perplexity.ts +226 -63
- package/src/web/search/providers/searxng.ts +19 -3
- package/src/web/search/providers/synthetic.ts +16 -11
- package/src/web/search/providers/tavily.ts +12 -9
- package/src/web/search/providers/zai.ts +22 -9
- package/src/web/search/render.ts +59 -64
- package/src/web/search/types.ts +5 -1
- package/dist/types/discovery/context-files.d.ts +0 -17
- package/dist/types/exa/factory.d.ts +0 -13
- package/dist/types/exa/render.d.ts +0 -19
- package/dist/types/exa/researcher.d.ts +0 -9
- package/dist/types/exa/search.d.ts +0 -9
- package/dist/types/exa/websets.d.ts +0 -9
- package/dist/types/export/html/template.generated.d.ts +0 -1
- package/dist/types/modes/components/session-observer-overlay.d.ts +0 -11
- package/dist/types/modes/components/status-line.d.ts +0 -77
- package/dist/types/slash-commands/headless-plan.d.ts +0 -3
- package/dist/types/stt/setup.d.ts +0 -18
- package/scripts/generate-template.ts +0 -33
- package/src/discovery/context-files.ts +0 -49
- package/src/exa/factory.ts +0 -60
- package/src/exa/render.ts +0 -244
- package/src/exa/researcher.ts +0 -36
- package/src/exa/search.ts +0 -47
- package/src/exa/websets.ts +0 -248
- package/src/export/html/template.generated.ts +0 -2
- package/src/modes/components/session-observer-overlay.ts +0 -852
- package/src/slash-commands/headless-plan.ts +0 -142
- package/src/stt/setup.ts +0 -52
- package/src/stt/transcribe.py +0 -70
- /package/dist/types/extensibility/{legacy-pi-coding-agent-shim.d.ts → legacy-package-agent-shim.d.ts} +0 -0
- /package/src/extensibility/{legacy-pi-coding-agent-shim.ts → legacy-package-agent-shim.ts} +0 -0
|
@@ -12,16 +12,20 @@ import type {
|
|
|
12
12
|
ToolTier,
|
|
13
13
|
} from "@prometheus-ai/agent-core";
|
|
14
14
|
import type { CompactionResult } from "@prometheus-ai/agent-core/compaction";
|
|
15
|
-
import type { Model, Static, TSchema } from "@prometheus-ai/ai";
|
|
15
|
+
import type { FetchImpl, Model, Static, TSchema } from "@prometheus-ai/ai";
|
|
16
16
|
import type { Component } from "@prometheus-ai/tui";
|
|
17
|
+
import type { logger as PiLogger } from "@prometheus-ai/utils";
|
|
18
|
+
import type { z } from "zod/v4";
|
|
17
19
|
import type { Rule } from "../../capability/rule";
|
|
18
20
|
import type { ModelRegistry } from "../../config/model-registry";
|
|
19
21
|
import type { Settings } from "../../config/settings";
|
|
20
22
|
import type { ExecOptions, ExecResult } from "../../exec/exec";
|
|
21
23
|
import type { HookUIContext } from "../../extensibility/hooks/types";
|
|
24
|
+
import type * as PiCodingAgent from "../../index";
|
|
22
25
|
import type { Theme } from "../../modes/theme/theme";
|
|
23
26
|
import type { ReadonlySessionManager } from "../../session/session-manager";
|
|
24
27
|
import type { TodoItem } from "../../tools/todo";
|
|
28
|
+
import type * as TypeBox from "../typebox";
|
|
25
29
|
|
|
26
30
|
/** Alias for clarity */
|
|
27
31
|
export type CustomToolUIContext = HookUIContext;
|
|
@@ -56,13 +60,15 @@ export interface CustomToolAPI {
|
|
|
56
60
|
/** Whether UI is available (false in print/RPC mode) */
|
|
57
61
|
hasUI: boolean;
|
|
58
62
|
/** File logger for error/warning/debug messages */
|
|
59
|
-
logger: typeof
|
|
63
|
+
logger: typeof PiLogger;
|
|
60
64
|
/** Injected zod-backed typebox shim (legacy/compat — Zod-authored tools are preferred). */
|
|
61
|
-
typebox: typeof
|
|
65
|
+
typebox: typeof TypeBox;
|
|
62
66
|
/** Injected zod module for Zod-authored custom tools. */
|
|
63
|
-
zod: typeof
|
|
64
|
-
/** Injected coding
|
|
65
|
-
|
|
67
|
+
zod: typeof z;
|
|
68
|
+
/** Injected Prometheus coding agent exports */
|
|
69
|
+
prometheus: typeof PiCodingAgent;
|
|
70
|
+
/** Legacy alias for injected Prometheus coding agent exports */
|
|
71
|
+
pi: typeof PiCodingAgent;
|
|
66
72
|
/** Push a preview action that can later be resolved with the hidden resolve tool */
|
|
67
73
|
pushPendingAction(action: CustomToolPendingAction): void;
|
|
68
74
|
}
|
|
@@ -86,6 +92,8 @@ export interface CustomToolContext {
|
|
|
86
92
|
abort(): void;
|
|
87
93
|
/** Settings instance for the current session. Prefer over the global singleton. */
|
|
88
94
|
settings?: Settings;
|
|
95
|
+
/** Fetch implementation for outbound HTTP; defaults to global fetch when omitted. */
|
|
96
|
+
fetch?: FetchImpl;
|
|
89
97
|
/** Whether to auto-approve all destructive tool operations (--auto-approve CLI flag) */
|
|
90
98
|
autoApprove?: boolean;
|
|
91
99
|
}
|
|
@@ -101,11 +109,11 @@ export type CustomToolSessionEvent =
|
|
|
101
109
|
| {
|
|
102
110
|
reason: "auto_compaction_start";
|
|
103
111
|
trigger: "threshold" | "overflow" | "idle" | "incomplete";
|
|
104
|
-
action: "context-full" | "handoff" | "shake";
|
|
112
|
+
action: "context-full" | "handoff" | "shake" | "snapcompact";
|
|
105
113
|
}
|
|
106
114
|
| {
|
|
107
115
|
reason: "auto_compaction_end";
|
|
108
|
-
action: "context-full" | "handoff" | "shake";
|
|
116
|
+
action: "context-full" | "handoff" | "shake" | "snapcompact";
|
|
109
117
|
result: CompactionResult | undefined;
|
|
110
118
|
aborted: boolean;
|
|
111
119
|
willRetry: boolean;
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* themselves. Each frontend (interactive-mode, ACP) prepends its own builtins.
|
|
16
16
|
*/
|
|
17
17
|
import type { SkillsSettings } from "../../config/settings";
|
|
18
|
+
import { BUILTIN_SLASH_COMMAND_RESERVED_NAMES } from "../../slash-commands/builtin-registry";
|
|
18
19
|
import type { CustomCommandSource, LoadedCustomCommand } from "../custom-commands";
|
|
19
20
|
import { getSkillSlashCommandName, type Skill } from "../skills";
|
|
20
21
|
import type { SlashCommandInfo, SlashCommandLocation } from "../slash-commands";
|
|
@@ -32,7 +33,7 @@ export function getSessionSlashCommands(session: CommandsCapableSession): SlashC
|
|
|
32
33
|
|
|
33
34
|
const runner = session.extensionRunner;
|
|
34
35
|
if (runner) {
|
|
35
|
-
for (const cmd of runner.getRegisteredCommands()) {
|
|
36
|
+
for (const cmd of runner.getRegisteredCommands(BUILTIN_SLASH_COMMAND_RESERVED_NAMES)) {
|
|
36
37
|
out.push({
|
|
37
38
|
name: cmd.name,
|
|
38
39
|
description: cmd.description,
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Extension loader - loads TypeScript extension modules using native Bun import.
|
|
3
3
|
*/
|
|
4
|
+
|
|
4
5
|
import type * as fs1 from "node:fs";
|
|
5
6
|
import * as fs from "node:fs/promises";
|
|
6
7
|
import * as path from "node:path";
|
|
7
|
-
import * as PiCodingAgent from "@prometheus-ai/agent";
|
|
8
8
|
import type { ThinkingLevel } from "@prometheus-ai/agent-core";
|
|
9
9
|
import type { ImageContent, Model, TextContent, TSchema } from "@prometheus-ai/ai";
|
|
10
10
|
import type { KeyId } from "@prometheus-ai/tui";
|
|
11
11
|
import { hasFsCode, isEacces, isEnoent, logger } from "@prometheus-ai/utils";
|
|
12
|
-
import
|
|
12
|
+
import { z } from "zod/v4";
|
|
13
13
|
import { type ExtensionModule, extensionModuleCapability } from "../../capability/extension-module";
|
|
14
14
|
import { loadCapability } from "../../discovery";
|
|
15
15
|
import { getExtensionNameFromPath } from "../../discovery/helpers";
|
|
16
16
|
import type { ExecOptions } from "../../exec/exec";
|
|
17
17
|
import { execCommand } from "../../exec/exec";
|
|
18
|
+
// Runtime self-reference: dereference this namespace only inside loader functions to keep the index.ts cycle safe.
|
|
19
|
+
import * as PiCodingAgent from "../../index";
|
|
18
20
|
import type { CustomMessage } from "../../session/messages";
|
|
19
21
|
import { EventBus } from "../../utils/event-bus";
|
|
20
|
-
import {
|
|
22
|
+
import { installLegacyPackageSpecifierShim, loadLegacyPackageModule } from "../plugins/legacy-package-compat";
|
|
21
23
|
import { getAllPluginExtensionPaths } from "../plugins/loader";
|
|
22
24
|
import * as TypeBox from "../typebox";
|
|
23
25
|
|
|
@@ -36,7 +38,7 @@ import type {
|
|
|
36
38
|
ToolDefinition,
|
|
37
39
|
} from "./types";
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
installLegacyPackageSpecifierShim();
|
|
40
42
|
|
|
41
43
|
type HandlerFn = (...args: unknown[]) => Promise<unknown>;
|
|
42
44
|
type LoadedExtensionModule = ExtensionFactory | { default?: ExtensionFactory };
|
|
@@ -121,7 +123,8 @@ export class ExtensionRuntime implements IExtensionRuntime {
|
|
|
121
123
|
class ConcreteExtensionAPI implements ExtensionAPI, IExtensionRuntime {
|
|
122
124
|
readonly logger = logger;
|
|
123
125
|
readonly typebox = TypeBox;
|
|
124
|
-
readonly zod =
|
|
126
|
+
readonly zod = z;
|
|
127
|
+
readonly prometheus = PiCodingAgent;
|
|
125
128
|
readonly flagValues = new Map<string, boolean | string>();
|
|
126
129
|
readonly pendingProviderRegistrations: Array<{
|
|
127
130
|
name: string;
|
|
@@ -286,7 +289,7 @@ async function loadExtension(
|
|
|
286
289
|
): Promise<{ extension: Extension | null; error: string | null }> {
|
|
287
290
|
const resolvedPath = resolvePath(extensionPath, cwd);
|
|
288
291
|
try {
|
|
289
|
-
const module = (await
|
|
292
|
+
const module = (await loadLegacyPackageModule(resolvedPath)) as LoadedExtensionModule;
|
|
290
293
|
const factory = getExtensionFactory(module);
|
|
291
294
|
|
|
292
295
|
if (typeof factory !== "function") {
|
|
@@ -382,6 +385,35 @@ function isExtensionFile(name: string): boolean {
|
|
|
382
385
|
return name.endsWith(".ts") || name.endsWith(".js");
|
|
383
386
|
}
|
|
384
387
|
|
|
388
|
+
const MANIFEST_ENTRY_INDEX_NAMES = ["index.ts", "index.js", "index.mjs", "index.cjs"] as const;
|
|
389
|
+
|
|
390
|
+
async function resolveExtensionEntryFile(entryPath: string): Promise<string | null> {
|
|
391
|
+
try {
|
|
392
|
+
const stat = await fs.stat(entryPath);
|
|
393
|
+
if (!stat.isDirectory()) {
|
|
394
|
+
return entryPath;
|
|
395
|
+
}
|
|
396
|
+
for (const indexName of MANIFEST_ENTRY_INDEX_NAMES) {
|
|
397
|
+
const candidate = path.join(entryPath, indexName);
|
|
398
|
+
try {
|
|
399
|
+
const indexStat = await fs.stat(candidate);
|
|
400
|
+
if (!indexStat.isDirectory()) {
|
|
401
|
+
return candidate;
|
|
402
|
+
}
|
|
403
|
+
} catch (err) {
|
|
404
|
+
if (isEnoent(err) || isEacces(err) || hasFsCode(err, "EPERM")) continue;
|
|
405
|
+
throw err;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
return null;
|
|
409
|
+
} catch (err) {
|
|
410
|
+
if (isEnoent(err) || isEacces(err) || hasFsCode(err, "EPERM")) {
|
|
411
|
+
return null;
|
|
412
|
+
}
|
|
413
|
+
throw err;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
385
417
|
/**
|
|
386
418
|
* Resolve extension entry points from a directory.
|
|
387
419
|
*/
|
|
@@ -392,13 +424,8 @@ async function resolveExtensionEntries(dir: string): Promise<string[] | null> {
|
|
|
392
424
|
const entries: string[] = [];
|
|
393
425
|
for (const extPath of manifest.extensions) {
|
|
394
426
|
const resolvedExtPath = path.resolve(dir, extPath);
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
entries.push(resolvedExtPath);
|
|
398
|
-
} catch (err) {
|
|
399
|
-
if (isEnoent(err) || isEacces(err) || hasFsCode(err, "EPERM")) continue;
|
|
400
|
-
throw err;
|
|
401
|
-
}
|
|
427
|
+
const entry = await resolveExtensionEntryFile(resolvedExtPath);
|
|
428
|
+
if (entry) entries.push(entry);
|
|
402
429
|
}
|
|
403
430
|
if (entries.length > 0) {
|
|
404
431
|
return entries;
|
|
@@ -478,16 +505,24 @@ async function discoverExtensionsInDir(dir: string): Promise<string[]> {
|
|
|
478
505
|
|
|
479
506
|
return discovered;
|
|
480
507
|
}
|
|
481
|
-
|
|
482
508
|
/**
|
|
483
|
-
* Discover
|
|
509
|
+
* Discover absolute paths of extensions to load, without importing or
|
|
510
|
+
* binding factories. Hot path on session startup — the scan walks native
|
|
511
|
+
* `.prometheus`/`.prometheus` extension capabilities, the installed-plugin tree, and any
|
|
512
|
+
* configured paths.
|
|
513
|
+
*
|
|
514
|
+
* Subagents reuse the parent's collected paths via the SDK's
|
|
515
|
+
* `preloadedExtensionPaths` option, then call {@link loadExtensions} themselves
|
|
516
|
+
* so each session rebuilds Extension instances bound to its OWN
|
|
517
|
+
* `ExtensionAPI` (cwd, eventBus, runtime). Forwarding the parent's
|
|
518
|
+
* `LoadExtensionsResult` directly would reuse handlers/tools/commands that
|
|
519
|
+
* closed over the parent's `cwd` and event bus.
|
|
484
520
|
*/
|
|
485
|
-
export async function
|
|
521
|
+
export async function discoverExtensionPaths(
|
|
486
522
|
configuredPaths: string[],
|
|
487
523
|
cwd: string,
|
|
488
|
-
eventBus?: EventBus,
|
|
489
524
|
disabledExtensionIds: string[] = [],
|
|
490
|
-
): Promise<
|
|
525
|
+
): Promise<string[]> {
|
|
491
526
|
const allPaths: string[] = [];
|
|
492
527
|
const seen = new Set<string>();
|
|
493
528
|
const disabled = new Set(disabledExtensionIds);
|
|
@@ -509,7 +544,7 @@ export async function discoverAndLoadExtensions(
|
|
|
509
544
|
}
|
|
510
545
|
};
|
|
511
546
|
|
|
512
|
-
// 1. Discover extension modules via capability API (native .prometheus
|
|
547
|
+
// 1. Discover extension modules via capability API (native .prometheus/.prometheus only)
|
|
513
548
|
const discovered = await loadCapability<ExtensionModule>(extensionModuleCapability.id, { cwd });
|
|
514
549
|
for (const ext of discovered.items) {
|
|
515
550
|
if (ext._source.provider !== "native") continue;
|
|
@@ -548,5 +583,20 @@ export async function discoverAndLoadExtensions(
|
|
|
548
583
|
addPath(resolved);
|
|
549
584
|
}
|
|
550
585
|
|
|
551
|
-
return
|
|
586
|
+
return allPaths;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
/**
|
|
590
|
+
* Discover and load extensions from standard locations. Composed of
|
|
591
|
+
* {@link discoverExtensionPaths} (FS scan) + {@link loadExtensions}
|
|
592
|
+
* (per-session binding).
|
|
593
|
+
*/
|
|
594
|
+
export async function discoverAndLoadExtensions(
|
|
595
|
+
configuredPaths: string[],
|
|
596
|
+
cwd: string,
|
|
597
|
+
eventBus?: EventBus,
|
|
598
|
+
disabledExtensionIds: string[] = [],
|
|
599
|
+
): Promise<LoadExtensionsResult> {
|
|
600
|
+
const paths = await discoverExtensionPaths(configuredPaths, cwd, disabledExtensionIds);
|
|
601
|
+
return loadExtensions(paths, cwd, eventBus);
|
|
552
602
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model query facade exposed to extensions as `ctx.models`.
|
|
3
|
+
*
|
|
4
|
+
* Read-only: lets an extension select a model the same way core does — list
|
|
5
|
+
* authenticated models, read the session model, resolve a model string or role
|
|
6
|
+
* alias, and compare model families — without touching the mutable registry or
|
|
7
|
+
* duplicating resolution/family heuristics.
|
|
8
|
+
*/
|
|
9
|
+
import type { Api, Model } from "@prometheus-ai/ai";
|
|
10
|
+
import { modelFamilyToken } from "@prometheus-ai/catalog/identity";
|
|
11
|
+
import type { ModelRegistry } from "../../config/model-registry";
|
|
12
|
+
import { getModelMatchPreferences, resolveModelRoleValue } from "../../config/model-resolver";
|
|
13
|
+
import type { Settings } from "../../config/settings";
|
|
14
|
+
import type { ExtensionModelQuery } from "./types";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Build the `ctx.models` facade. `getModel` is read lazily so `current()` always
|
|
18
|
+
* reflects the live session model (it can change mid-session via `/model`).
|
|
19
|
+
*/
|
|
20
|
+
export function createExtensionModelQuery(
|
|
21
|
+
modelRegistry: ModelRegistry,
|
|
22
|
+
settings: Settings | undefined,
|
|
23
|
+
getModel: () => Model | undefined,
|
|
24
|
+
): ExtensionModelQuery {
|
|
25
|
+
return {
|
|
26
|
+
list: () => modelRegistry.getAvailable(),
|
|
27
|
+
current: () => getModel(),
|
|
28
|
+
// resolveModelRoleValue expands a role alias (`pi/slow`) to its full configured
|
|
29
|
+
// priority list and tries each pattern — the same path core selection uses — so a
|
|
30
|
+
// fallback model lower in the list still resolves. Plain model strings pass through
|
|
31
|
+
// as a single pattern.
|
|
32
|
+
resolve: (spec: string): Model<Api> | undefined =>
|
|
33
|
+
resolveModelRoleValue(spec, modelRegistry.getAvailable(), {
|
|
34
|
+
settings,
|
|
35
|
+
matchPreferences: getModelMatchPreferences(settings),
|
|
36
|
+
modelRegistry,
|
|
37
|
+
}).model,
|
|
38
|
+
family: (model: Model<Api>): string =>
|
|
39
|
+
modelFamilyToken(modelRegistry.getCanonicalId(model) ?? model.id) || model.provider.toLowerCase(),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -6,8 +6,11 @@ import type { CredentialDisabledEvent, ImageContent, Model, ProviderResponseMeta
|
|
|
6
6
|
import type { KeyId } from "@prometheus-ai/tui";
|
|
7
7
|
import { logger } from "@prometheus-ai/utils";
|
|
8
8
|
import type { ModelRegistry } from "../../config/model-registry";
|
|
9
|
+
import type { Settings } from "../../config/settings";
|
|
10
|
+
import type { MemoryRuntimeContext } from "../../memory-backend";
|
|
9
11
|
import { type Theme, theme } from "../../modes/theme/theme";
|
|
10
12
|
import type { SessionManager } from "../../session/session-manager";
|
|
13
|
+
import { createExtensionModelQuery } from "./model-api";
|
|
11
14
|
import type {
|
|
12
15
|
AfterProviderResponseEvent,
|
|
13
16
|
AssistantThinkingRenderer,
|
|
@@ -187,6 +190,7 @@ export class ExtensionRunner {
|
|
|
187
190
|
#switchSessionHandler: SwitchSessionHandler = async () => ({ cancelled: false });
|
|
188
191
|
#reloadHandler: () => Promise<void> = async () => {};
|
|
189
192
|
#shutdownHandler: ShutdownHandler = () => {};
|
|
193
|
+
#getMemoryFn?: () => MemoryRuntimeContext | undefined;
|
|
190
194
|
#commandDiagnostics: Array<{ type: string; message: string; path: string }> = [];
|
|
191
195
|
#initialized = false;
|
|
192
196
|
/**
|
|
@@ -204,8 +208,11 @@ export class ExtensionRunner {
|
|
|
204
208
|
private readonly cwd: string,
|
|
205
209
|
private readonly sessionManager: SessionManager,
|
|
206
210
|
private readonly modelRegistry: ModelRegistry,
|
|
211
|
+
getMemory?: () => MemoryRuntimeContext | undefined,
|
|
212
|
+
private readonly settings?: Settings,
|
|
207
213
|
) {
|
|
208
214
|
this.#uiContext = noOpUIContext;
|
|
215
|
+
this.#getMemoryFn = getMemory;
|
|
209
216
|
}
|
|
210
217
|
|
|
211
218
|
initialize(
|
|
@@ -427,7 +434,7 @@ export class ExtensionRunner {
|
|
|
427
434
|
return this.extensions.flatMap(ext => ext.assistantThinkingRenderers);
|
|
428
435
|
}
|
|
429
436
|
|
|
430
|
-
getRegisteredCommands(reserved?:
|
|
437
|
+
getRegisteredCommands(reserved?: ReadonlySet<string>): RegisteredCommand[] {
|
|
431
438
|
this.#commandDiagnostics = [];
|
|
432
439
|
|
|
433
440
|
const commands = new Map<string, RegisteredCommand>();
|
|
@@ -475,11 +482,13 @@ export class ExtensionRunner {
|
|
|
475
482
|
get model() {
|
|
476
483
|
return getModel();
|
|
477
484
|
},
|
|
485
|
+
models: createExtensionModelQuery(this.modelRegistry, this.settings, getModel),
|
|
478
486
|
isIdle: () => this.#isIdleFn(),
|
|
479
487
|
abort: () => this.#abortFn(),
|
|
480
488
|
hasPendingMessages: () => this.#hasPendingMessagesFn(),
|
|
481
489
|
shutdown: () => this.#shutdownHandler(),
|
|
482
490
|
getSystemPrompt: () => this.#getSystemPromptFn(),
|
|
491
|
+
memory: this.#getMemoryFn?.(),
|
|
483
492
|
};
|
|
484
493
|
}
|
|
485
494
|
|
|
@@ -898,7 +907,8 @@ export class ExtensionRunner {
|
|
|
898
907
|
messages.push(result.message);
|
|
899
908
|
}
|
|
900
909
|
if (result.systemPrompt !== undefined) {
|
|
901
|
-
currentSystemPrompt =
|
|
910
|
+
currentSystemPrompt =
|
|
911
|
+
typeof result.systemPrompt === "string" ? [result.systemPrompt] : result.systemPrompt;
|
|
902
912
|
systemPromptModified = true;
|
|
903
913
|
}
|
|
904
914
|
}
|
|
@@ -7,9 +7,13 @@
|
|
|
7
7
|
* - Register commands, keyboard shortcuts, and CLI flags
|
|
8
8
|
* - Interact with the user via UI primitives
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
import type {
|
|
11
|
+
AgentMessage,
|
|
12
|
+
AgentToolResult,
|
|
13
|
+
AgentToolUpdateCallback,
|
|
14
|
+
ThinkingLevel,
|
|
15
|
+
ToolApproval,
|
|
16
|
+
} from "@prometheus-ai/agent-core";
|
|
13
17
|
import type { CompactionResult } from "@prometheus-ai/agent-core/compaction";
|
|
14
18
|
import type {
|
|
15
19
|
Api,
|
|
@@ -18,22 +22,25 @@ import type {
|
|
|
18
22
|
Context,
|
|
19
23
|
ImageContent,
|
|
20
24
|
Model,
|
|
25
|
+
ModelSpec,
|
|
21
26
|
ProviderResponseMetadata,
|
|
22
27
|
SimpleStreamOptions,
|
|
23
28
|
Static,
|
|
24
29
|
TextContent,
|
|
25
30
|
TSchema,
|
|
26
31
|
} from "@prometheus-ai/ai";
|
|
27
|
-
import type { OAuthCredentials, OAuthLoginCallbacks } from "@prometheus-ai/ai/
|
|
32
|
+
import type { OAuthCredentials, OAuthLoginCallbacks } from "@prometheus-ai/ai/oauth/types";
|
|
28
33
|
import type { AutocompleteItem, Component, EditorTheme, KeyId, TUI } from "@prometheus-ai/tui";
|
|
29
34
|
import type { logger as PiLogger } from "@prometheus-ai/utils";
|
|
30
|
-
import type
|
|
35
|
+
import type { z } from "zod/v4";
|
|
31
36
|
import type { KeybindingsManager } from "../../config/keybindings";
|
|
32
37
|
import type { ModelRegistry } from "../../config/model-registry";
|
|
33
38
|
import type { EditToolDetails } from "../../edit";
|
|
34
39
|
import type { PythonResult } from "../../eval/py/executor";
|
|
35
40
|
import type { BashResult } from "../../exec/bash-executor";
|
|
36
41
|
import type { ExecOptions, ExecResult } from "../../exec/exec";
|
|
42
|
+
import type * as PiCodingAgent from "../../index";
|
|
43
|
+
import type { MemoryRuntimeContext } from "../../memory-backend";
|
|
37
44
|
import type { CustomEditor } from "../../modes/components/custom-editor";
|
|
38
45
|
import type { Theme } from "../../modes/theme/theme";
|
|
39
46
|
import type { CustomMessage } from "../../session/messages";
|
|
@@ -49,6 +56,7 @@ import type {
|
|
|
49
56
|
SearchToolInput,
|
|
50
57
|
WriteToolInput,
|
|
51
58
|
} from "../../tools";
|
|
59
|
+
import type { ApprovalMode } from "../../tools/approval";
|
|
52
60
|
import type { EventBus } from "../../utils/event-bus";
|
|
53
61
|
import type {
|
|
54
62
|
AgentEndEvent,
|
|
@@ -286,6 +294,32 @@ export interface CompactOptions {
|
|
|
286
294
|
// surface (model registry, system prompt, shutdown, full session manager
|
|
287
295
|
// access). Field overlap is incidental; merging into a base would require
|
|
288
296
|
// hooks to widen their public contract.
|
|
297
|
+
/**
|
|
298
|
+
* Read-only model query facade exposed at `ctx.models`. Lets an extension select a
|
|
299
|
+
* model the same way core does — list authenticated models, read the session model,
|
|
300
|
+
* resolve a model string or role alias, and compare model families — without reaching
|
|
301
|
+
* into the mutable registry or re-implementing matching/family heuristics.
|
|
302
|
+
*/
|
|
303
|
+
export interface ExtensionModelQuery {
|
|
304
|
+
/** Authenticated models available this session (the same set `--model` selection sees). */
|
|
305
|
+
list(): Model[];
|
|
306
|
+
/** The current session model, if one is set. */
|
|
307
|
+
current(): Model | undefined;
|
|
308
|
+
/**
|
|
309
|
+
* Resolve a model string (`provider/id`, bare id) or role alias (`pi/slow`, a
|
|
310
|
+
* configured role) to a Model, using the same settings-backed aliases and match
|
|
311
|
+
* preferences as core selection. Thinking/routing suffixes are accepted and resolved
|
|
312
|
+
* to the base model (pass effort separately). Returns undefined when nothing matches.
|
|
313
|
+
*/
|
|
314
|
+
resolve(spec: string): Model | undefined;
|
|
315
|
+
/**
|
|
316
|
+
* Opaque lineage token for "are these the same family?" comparisons — every Claude
|
|
317
|
+
* point release shares a token, Claude and GPT differ. Backed by catalog canonical
|
|
318
|
+
* identity. Compare it; do not persist it (the vocabulary tracks new releases).
|
|
319
|
+
*/
|
|
320
|
+
family(model: Model): string;
|
|
321
|
+
}
|
|
322
|
+
|
|
289
323
|
export interface ExtensionContext {
|
|
290
324
|
/** UI methods for user interaction */
|
|
291
325
|
ui: ExtensionUIContext;
|
|
@@ -303,6 +337,8 @@ export interface ExtensionContext {
|
|
|
303
337
|
modelRegistry: ModelRegistry;
|
|
304
338
|
/** Current model (may be undefined) */
|
|
305
339
|
model: Model | undefined;
|
|
340
|
+
/** Read-only model query facade: list / current / resolve / family. */
|
|
341
|
+
models: ExtensionModelQuery;
|
|
306
342
|
/** Whether the agent is idle (not streaming) */
|
|
307
343
|
isIdle(): boolean;
|
|
308
344
|
/** Abort the current agent operation */
|
|
@@ -313,6 +349,8 @@ export interface ExtensionContext {
|
|
|
313
349
|
shutdown(): void;
|
|
314
350
|
/** Get the current effective system prompt. */
|
|
315
351
|
getSystemPrompt(): string[];
|
|
352
|
+
/** Structured memory runtime for status/search/save across the configured backend. */
|
|
353
|
+
memory?: MemoryRuntimeContext;
|
|
316
354
|
}
|
|
317
355
|
|
|
318
356
|
/**
|
|
@@ -393,6 +431,9 @@ export interface ToolDefinition<TParams extends TSchema = TSchema, TDetails = un
|
|
|
393
431
|
defaultInactive?: boolean;
|
|
394
432
|
/** If true, tool may stage deferred changes that require explicit resolve/discard. */
|
|
395
433
|
deferrable?: boolean;
|
|
434
|
+
/** Tool approval tier. Defaults to `"exec"` when omitted.
|
|
435
|
+
* `"read"`: read-only operations. `"write"`: mutations. `"exec"`: code execution. */
|
|
436
|
+
approval?: ToolApproval;
|
|
396
437
|
/** MCP server name for discovery/search metadata when this tool fronts an MCP server. */
|
|
397
438
|
mcpServerName?: string;
|
|
398
439
|
/** Original MCP tool name for discovery/search metadata. */
|
|
@@ -596,6 +637,24 @@ export interface InputEvent {
|
|
|
596
637
|
// Tool Events
|
|
597
638
|
// ============================================================================
|
|
598
639
|
|
|
640
|
+
export interface ToolApprovalRequestedEvent {
|
|
641
|
+
type: "tool_approval_requested";
|
|
642
|
+
sessionId: string;
|
|
643
|
+
toolCallId: string;
|
|
644
|
+
toolName: string;
|
|
645
|
+
reason?: string;
|
|
646
|
+
approvalMode: ApprovalMode;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
export interface ToolApprovalResolvedEvent {
|
|
650
|
+
type: "tool_approval_resolved";
|
|
651
|
+
sessionId: string;
|
|
652
|
+
toolCallId: string;
|
|
653
|
+
toolName: string;
|
|
654
|
+
approved: boolean;
|
|
655
|
+
reason?: string;
|
|
656
|
+
}
|
|
657
|
+
|
|
599
658
|
interface ToolCallEventBase {
|
|
600
659
|
type: "tool_call";
|
|
601
660
|
toolCallId: string;
|
|
@@ -763,7 +822,9 @@ export type ExtensionEvent =
|
|
|
763
822
|
| UserPythonEvent
|
|
764
823
|
| InputEvent
|
|
765
824
|
| ToolCallEvent
|
|
766
|
-
| ToolResultEvent
|
|
825
|
+
| ToolResultEvent
|
|
826
|
+
| ToolApprovalRequestedEvent
|
|
827
|
+
| ToolApprovalResolvedEvent;
|
|
767
828
|
|
|
768
829
|
// ============================================================================
|
|
769
830
|
// Event Results
|
|
@@ -878,10 +939,12 @@ export interface ExtensionAPI {
|
|
|
878
939
|
typebox: typeof TypeBox;
|
|
879
940
|
|
|
880
941
|
/** Injected zod module for Zod-authored extension tools (canonical going forward). */
|
|
881
|
-
zod: typeof
|
|
942
|
+
zod: typeof z;
|
|
882
943
|
|
|
883
|
-
/** Injected coding
|
|
884
|
-
|
|
944
|
+
/** Injected Prometheus coding agent exports for accessing SDK utilities */
|
|
945
|
+
prometheus: typeof PiCodingAgent;
|
|
946
|
+
/** Legacy alias for injected Prometheus coding agent exports */
|
|
947
|
+
pi: typeof PiCodingAgent;
|
|
885
948
|
|
|
886
949
|
// =========================================================================
|
|
887
950
|
// Event Subscription
|
|
@@ -934,6 +997,8 @@ export interface ExtensionAPI {
|
|
|
934
997
|
on(event: "goal_updated", handler: ExtensionHandler<GoalUpdatedEvent>): void;
|
|
935
998
|
on(event: "credential_disabled", handler: ExtensionHandler<CredentialDisabledEvent>): void;
|
|
936
999
|
on(event: "input", handler: ExtensionHandler<InputEvent, InputEventResult>): void;
|
|
1000
|
+
on(event: "tool_approval_requested", handler: ExtensionHandler<ToolApprovalRequestedEvent>): void;
|
|
1001
|
+
on(event: "tool_approval_resolved", handler: ExtensionHandler<ToolApprovalResolvedEvent>): void;
|
|
937
1002
|
on(event: "tool_call", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): void;
|
|
938
1003
|
on(event: "tool_result", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): void;
|
|
939
1004
|
on(event: "user_bash", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): void;
|
|
@@ -1073,7 +1138,7 @@ export interface ExtensionAPI {
|
|
|
1073
1138
|
* id: "claude-sonnet-4@20250514",
|
|
1074
1139
|
* name: "Claude Sonnet 4 (Vertex)",
|
|
1075
1140
|
* reasoning: true,
|
|
1076
|
-
* thinking: { mode: "anthropic-adaptive",
|
|
1141
|
+
* thinking: { mode: "anthropic-adaptive", efforts: ["minimal", "low", "medium", "high"] },
|
|
1077
1142
|
* input: ["text", "image"],
|
|
1078
1143
|
* cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
|
|
1079
1144
|
* contextWindow: 200000,
|
|
@@ -1126,6 +1191,13 @@ export interface ProviderConfig {
|
|
|
1126
1191
|
/** Optional model rewrite hook for credential-aware routing (e.g., enterprise URLs). */
|
|
1127
1192
|
modifyModels?(models: Model<Api>[], credentials: OAuthCredentials): Model<Api>[];
|
|
1128
1193
|
};
|
|
1194
|
+
/**
|
|
1195
|
+
* Async factory that fetches the live model list from the provider endpoint.
|
|
1196
|
+
* Runs through the same SQLite model-cache as built-in providers (keyed by
|
|
1197
|
+
* provider name, default 24 h TTL). Receives the resolved API key (undefined
|
|
1198
|
+
* when unauthenticated). Mutually exclusive with `models`.
|
|
1199
|
+
*/
|
|
1200
|
+
fetchDynamicModels?: (apiKey: string | undefined) => Promise<readonly ProviderModelConfig[]>;
|
|
1129
1201
|
}
|
|
1130
1202
|
|
|
1131
1203
|
/** Configuration for a model within a provider. */
|
|
@@ -1153,7 +1225,7 @@ export interface ProviderModelConfig {
|
|
|
1153
1225
|
/** Custom headers for this model. */
|
|
1154
1226
|
headers?: Record<string, string>;
|
|
1155
1227
|
/** OpenAI compatibility settings. */
|
|
1156
|
-
compat?:
|
|
1228
|
+
compat?: ModelSpec<Api>["compat"];
|
|
1157
1229
|
}
|
|
1158
1230
|
|
|
1159
1231
|
/** Extension factory function type. Supports both sync and async initialization. */
|
|
@@ -121,8 +121,36 @@ export class ExtensionToolWrapper<TParameters extends TSchema = TSchema, TDetail
|
|
|
121
121
|
const approvalCheck = requiresApproval(this.tool, params, approvalMode, userPolicies);
|
|
122
122
|
|
|
123
123
|
if (approvalCheck.required) {
|
|
124
|
+
const hasApprovalHandlers =
|
|
125
|
+
this.runner.hasHandlers("tool_approval_requested") || this.runner.hasHandlers("tool_approval_resolved");
|
|
126
|
+
const sessionId = context?.sessionManager?.getSessionId() ?? "";
|
|
127
|
+
if (hasApprovalHandlers) {
|
|
128
|
+
await this.runner.emit({
|
|
129
|
+
type: "tool_approval_requested",
|
|
130
|
+
sessionId,
|
|
131
|
+
toolName: this.tool.name,
|
|
132
|
+
toolCallId,
|
|
133
|
+
...(approvalCheck.reason ? { reason: approvalCheck.reason } : {}),
|
|
134
|
+
approvalMode,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const resolveApproval = async (approved: boolean, reason?: string) => {
|
|
139
|
+
if (!hasApprovalHandlers) return;
|
|
140
|
+
await this.runner.emit({
|
|
141
|
+
type: "tool_approval_resolved",
|
|
142
|
+
sessionId,
|
|
143
|
+
toolName: this.tool.name,
|
|
144
|
+
toolCallId,
|
|
145
|
+
approved,
|
|
146
|
+
...(reason ? { reason } : {}),
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
|
|
124
150
|
// Check if UI is available
|
|
125
151
|
if (!this.runner.hasUI()) {
|
|
152
|
+
const reason = "no interactive UI available";
|
|
153
|
+
await resolveApproval(false, reason);
|
|
126
154
|
throw new Error(
|
|
127
155
|
`Tool "${this.tool.name}" requires approval but no interactive UI available.\n` +
|
|
128
156
|
`Options:\n` +
|
|
@@ -133,11 +161,19 @@ export class ExtensionToolWrapper<TParameters extends TSchema = TSchema, TDetail
|
|
|
133
161
|
}
|
|
134
162
|
|
|
135
163
|
const uiContext = this.runner.getUIContext();
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
164
|
+
let choice: string | undefined;
|
|
165
|
+
try {
|
|
166
|
+
choice = await uiContext.select(formatApprovalPrompt(this.tool, params, approvalCheck.reason), [
|
|
167
|
+
"Approve",
|
|
168
|
+
"Deny",
|
|
169
|
+
]);
|
|
170
|
+
} catch (err) {
|
|
171
|
+
await resolveApproval(false, err instanceof Error ? err.message : "approval aborted");
|
|
172
|
+
throw err;
|
|
173
|
+
}
|
|
174
|
+
const approved = choice === "Approve";
|
|
175
|
+
await resolveApproval(approved, approved ? undefined : "denied by user");
|
|
176
|
+
if (!approved) {
|
|
141
177
|
throw new Error(`Tool call denied by user: ${this.tool.name}`);
|
|
142
178
|
}
|
|
143
179
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export type {
|
|
1
|
+
export type { UsageStatistics } from "../../session/session-entries";
|
|
2
|
+
export type { ReadonlySessionManager } from "../../session/session-manager";
|
|
2
3
|
export * from "./loader";
|
|
3
4
|
export * from "./runner";
|
|
4
5
|
export * from "./tool-wrapper";
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from "node:path";
|
|
5
5
|
import { logger } from "@prometheus-ai/utils";
|
|
6
|
-
import
|
|
6
|
+
import { z as zod } from "zod/v4";
|
|
7
7
|
import { hookCapability } from "../../capability/hook";
|
|
8
8
|
import type { Hook } from "../../discovery";
|
|
9
9
|
import { loadCapability } from "../../discovery";
|
|
10
|
+
// Runtime self-reference: dereference this namespace only inside loader functions to keep the index.ts cycle safe.
|
|
11
|
+
import * as PiCodingAgent from "../../index";
|
|
10
12
|
import type { HookMessage } from "../../session/messages";
|
|
11
13
|
import type { SessionManager } from "../../session/session-manager";
|
|
12
14
|
import * as typebox from "../typebox";
|
|
@@ -138,7 +140,8 @@ async function createHookAPI(
|
|
|
138
140
|
logger,
|
|
139
141
|
typebox,
|
|
140
142
|
zod,
|
|
141
|
-
|
|
143
|
+
prometheus: PiCodingAgent,
|
|
144
|
+
pi: PiCodingAgent,
|
|
142
145
|
} as HookAPI;
|
|
143
146
|
|
|
144
147
|
return {
|
|
@@ -225,7 +228,7 @@ export async function loadHooks(paths: string[], cwd: string): Promise<LoadHooks
|
|
|
225
228
|
/**
|
|
226
229
|
* Discover and load hooks from all registered providers.
|
|
227
230
|
* Uses the capability API to discover hook paths from:
|
|
228
|
-
* 1. Prometheus native configs
|
|
231
|
+
* 1. Prometheus native configs (.prometheus/.prometheus hooks/)
|
|
229
232
|
* 2. Installed plugins
|
|
230
233
|
* 3. Other editor/IDE configurations
|
|
231
234
|
*
|