@oh-my-pi/pi-coding-agent 15.1.1 → 15.1.3
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 +54 -0
- package/dist/types/async/index.d.ts +2 -0
- package/dist/types/async/job-manager.d.ts +87 -0
- package/dist/types/async/support.d.ts +2 -0
- package/dist/types/autoresearch/dashboard.d.ts +4 -0
- package/dist/types/autoresearch/git.d.ts +36 -0
- package/dist/types/autoresearch/helpers.d.ts +24 -0
- package/dist/types/autoresearch/index.d.ts +2 -0
- package/dist/types/autoresearch/state.d.ts +17 -0
- package/dist/types/autoresearch/storage.d.ts +142 -0
- package/dist/types/autoresearch/tools/init-experiment.d.ts +31 -0
- package/dist/types/autoresearch/tools/log-experiment.d.ts +23 -0
- package/dist/types/autoresearch/tools/run-experiment.d.ts +8 -0
- package/dist/types/autoresearch/tools/update-notes.d.ts +12 -0
- package/dist/types/autoresearch/types.d.ts +154 -0
- package/dist/types/capability/context-file.d.ts +17 -0
- package/dist/types/capability/extension-module.d.ts +15 -0
- package/dist/types/capability/extension.d.ts +28 -0
- package/dist/types/capability/fs.d.ts +20 -0
- package/dist/types/capability/hook.d.ts +19 -0
- package/dist/types/capability/index.d.ts +80 -0
- package/dist/types/capability/instruction.d.ts +17 -0
- package/dist/types/capability/mcp.d.ts +45 -0
- package/dist/types/capability/prompt.d.ts +15 -0
- package/dist/types/capability/rule.d.ts +61 -0
- package/dist/types/capability/settings.d.ts +15 -0
- package/dist/types/capability/skill.d.ts +36 -0
- package/dist/types/capability/slash-command.d.ts +17 -0
- package/dist/types/capability/ssh.d.ts +23 -0
- package/dist/types/capability/system-prompt.d.ts +15 -0
- package/dist/types/capability/tool.d.ts +19 -0
- package/dist/types/capability/types.d.ts +154 -0
- package/dist/types/cli/agents-cli.d.ts +12 -0
- package/dist/types/cli/args.d.ts +52 -0
- package/dist/types/cli/auth-broker-cli.d.ts +25 -0
- package/dist/types/cli/auth-gateway-cli.d.ts +18 -0
- package/dist/types/cli/classify-install-target.d.ts +18 -0
- package/dist/types/cli/commands/init-xdg.d.ts +1 -0
- package/dist/types/cli/config-cli.d.ts +22 -0
- package/dist/types/cli/file-processor.d.ts +11 -0
- package/dist/types/cli/grep-cli.d.ts +17 -0
- package/dist/types/cli/grievances-cli.d.ts +37 -0
- package/dist/types/cli/initial-message.d.ts +17 -0
- package/dist/types/cli/list-models.d.ts +30 -0
- package/dist/types/cli/plugin-cli.d.ts +32 -0
- package/dist/types/cli/read-cli.d.ts +4 -0
- package/dist/types/cli/session-picker.d.ts +3 -0
- package/dist/types/cli/setup-cli.d.ts +24 -0
- package/dist/types/cli/shell-cli.d.ts +8 -0
- package/dist/types/cli/ssh-cli.d.ts +21 -0
- package/dist/types/cli/stats-cli.d.ts +17 -0
- package/dist/types/cli/update-cli.d.ts +20 -0
- package/dist/types/cli/web-search-cli.d.ts +20 -0
- package/dist/types/cli.d.ts +3 -0
- package/dist/types/commands/acp.d.ts +12 -0
- package/dist/types/commands/agents.d.ts +34 -0
- package/dist/types/commands/auth-broker.d.ts +54 -0
- package/dist/types/commands/auth-gateway.d.ts +32 -0
- package/dist/types/commands/commit.d.ts +27 -0
- package/dist/types/commands/config.d.ts +30 -0
- package/dist/types/commands/grep.d.ts +42 -0
- package/dist/types/commands/grievances.d.ts +40 -0
- package/dist/types/commands/launch.d.ts +118 -0
- package/dist/types/commands/plugin.d.ts +52 -0
- package/dist/types/commands/read.d.ts +15 -0
- package/dist/types/commands/setup.d.ts +25 -0
- package/dist/types/commands/shell.d.ts +21 -0
- package/dist/types/commands/ssh.d.ts +48 -0
- package/dist/types/commands/stats.d.ts +25 -0
- package/dist/types/commands/update.d.ts +20 -0
- package/dist/types/commands/web-search.d.ts +33 -0
- package/dist/types/commit/agentic/agent.d.ts +31 -0
- package/dist/types/commit/agentic/fallback.d.ts +5 -0
- package/dist/types/commit/agentic/index.d.ts +2 -0
- package/dist/types/commit/agentic/state.d.ts +58 -0
- package/dist/types/commit/agentic/tools/analyze-file.d.ts +19 -0
- package/dist/types/commit/agentic/tools/git-file-diff.d.ts +10 -0
- package/dist/types/commit/agentic/tools/git-hunk.d.ts +9 -0
- package/dist/types/commit/agentic/tools/git-overview.d.ts +9 -0
- package/dist/types/commit/agentic/tools/index.d.ts +16 -0
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +28 -0
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +36 -0
- package/dist/types/commit/agentic/tools/recent-commits.d.ts +7 -0
- package/dist/types/commit/agentic/tools/schemas.d.ts +27 -0
- package/dist/types/commit/agentic/tools/split-commit.d.ts +53 -0
- package/dist/types/commit/agentic/topo-sort.d.ts +4 -0
- package/dist/types/commit/agentic/trivial.d.ts +7 -0
- package/dist/types/commit/agentic/validation.d.ts +20 -0
- package/dist/types/commit/analysis/conventional.d.ts +22 -0
- package/dist/types/commit/analysis/index.d.ts +4 -0
- package/dist/types/commit/analysis/scope.d.ts +6 -0
- package/dist/types/commit/analysis/summary.d.ts +19 -0
- package/dist/types/commit/analysis/validation.d.ts +8 -0
- package/dist/types/commit/changelog/detect.d.ts +2 -0
- package/dist/types/commit/changelog/generate.d.ts +30 -0
- package/dist/types/commit/changelog/index.d.ts +30 -0
- package/dist/types/commit/changelog/parse.d.ts +2 -0
- package/dist/types/commit/cli.d.ts +3 -0
- package/dist/types/commit/git/diff.d.ts +5 -0
- package/dist/types/commit/index.d.ts +4 -0
- package/dist/types/commit/map-reduce/index.d.ts +28 -0
- package/dist/types/commit/map-reduce/map-phase.d.ts +17 -0
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +13 -0
- package/dist/types/commit/map-reduce/utils.d.ts +2 -0
- package/dist/types/commit/message.d.ts +2 -0
- package/dist/types/commit/model-selection.d.ts +15 -0
- package/dist/types/commit/pipeline.d.ts +5 -0
- package/dist/types/commit/shared-llm.d.ts +54 -0
- package/dist/types/commit/types.d.ts +78 -0
- package/dist/types/commit/utils/exclusions.d.ts +4 -0
- package/dist/types/commit/utils.d.ts +20 -0
- package/dist/types/config/config-file.d.ts +58 -0
- package/dist/types/config/file-lock.d.ts +6 -0
- package/dist/types/config/keybindings.d.ts +334 -0
- package/dist/types/config/model-equivalence.d.ts +24 -0
- package/dist/types/config/model-registry.d.ts +363 -0
- package/dist/types/config/model-resolver.d.ts +230 -0
- package/dist/types/config/models-config-schema.d.ts +503 -0
- package/dist/types/config/prompt-templates.d.ts +32 -0
- package/dist/types/config/resolve-config-value.d.ts +17 -0
- package/dist/types/config/settings-schema.d.ts +3361 -0
- package/dist/types/config/settings.d.ts +126 -0
- package/dist/types/config.d.ts +66 -0
- package/dist/types/cursor.d.ts +22 -0
- package/dist/types/dap/client.d.ts +38 -0
- package/dist/types/dap/config.d.ts +6 -0
- package/dist/types/dap/index.d.ts +4 -0
- package/dist/types/dap/session.d.ts +108 -0
- package/dist/types/dap/types.d.ts +524 -0
- package/dist/types/debug/index.d.ts +15 -0
- package/dist/types/debug/log-formatting.d.ts +4 -0
- package/dist/types/debug/log-viewer.d.ts +68 -0
- package/dist/types/debug/profiler.d.ts +24 -0
- package/dist/types/debug/raw-sse-buffer.d.ts +44 -0
- package/dist/types/debug/raw-sse.d.ts +16 -0
- package/dist/types/debug/report-bundle.d.ts +55 -0
- package/dist/types/debug/system-info.d.ts +26 -0
- package/dist/types/discovery/agents-md.d.ts +1 -0
- package/dist/types/discovery/agents.d.ts +12 -0
- package/dist/types/discovery/builtin.d.ts +1 -0
- package/dist/types/discovery/claude-plugins.d.ts +1 -0
- package/dist/types/discovery/claude.d.ts +1 -0
- package/dist/types/discovery/cline.d.ts +1 -0
- package/dist/types/discovery/codex.d.ts +1 -0
- package/dist/types/discovery/cursor.d.ts +16 -0
- package/dist/types/discovery/gemini.d.ts +1 -0
- package/dist/types/discovery/github.d.ts +1 -0
- package/dist/types/discovery/helpers.d.ts +267 -0
- package/dist/types/discovery/index.d.ts +51 -0
- package/dist/types/discovery/mcp-json.d.ts +1 -0
- package/dist/types/discovery/opencode.d.ts +1 -0
- package/dist/types/discovery/plugin-dir-roots.d.ts +15 -0
- package/dist/types/discovery/ssh.d.ts +1 -0
- package/dist/types/discovery/substitute-plugin-root.d.ts +5 -0
- package/dist/types/discovery/vscode.d.ts +1 -0
- package/dist/types/discovery/windsurf.d.ts +13 -0
- package/dist/types/edit/apply-patch/index.d.ts +35 -0
- package/dist/types/edit/apply-patch/parser.d.ts +34 -0
- package/dist/types/edit/diff.d.ts +59 -0
- package/dist/types/edit/file-read-cache.d.ts +25 -0
- package/dist/types/edit/index.d.ts +58 -0
- package/dist/types/edit/modes/apply-patch.d.ts +24 -0
- package/dist/types/edit/modes/patch.d.ts +99 -0
- package/dist/types/edit/modes/replace.d.ts +142 -0
- package/dist/types/edit/normalize.d.ts +43 -0
- package/dist/types/edit/notebook.d.ts +23 -0
- package/dist/types/edit/read-file.d.ts +2 -0
- package/dist/types/edit/renderer.d.ts +110 -0
- package/dist/types/edit/streaming.d.ts +59 -0
- package/dist/types/eval/backend.d.ts +40 -0
- package/dist/types/eval/index.d.ts +4 -0
- package/dist/types/eval/js/context-manager.d.ts +24 -0
- package/dist/types/eval/js/executor.d.ts +28 -0
- package/dist/types/eval/js/index.d.ts +10 -0
- package/dist/types/eval/js/shared/helpers.d.ts +38 -0
- package/dist/types/eval/js/shared/indirect-eval.d.ts +14 -0
- package/dist/types/eval/js/shared/prelude.d.ts +1 -0
- package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -0
- package/dist/types/eval/js/shared/runtime.d.ts +47 -0
- package/dist/types/eval/js/shared/types.d.ts +24 -0
- package/dist/types/eval/js/tool-bridge.d.ts +18 -0
- package/dist/types/eval/js/worker-core.d.ts +5 -0
- package/dist/types/eval/js/worker-entry.d.ts +1 -0
- package/dist/types/eval/js/worker-protocol.d.ts +77 -0
- package/dist/types/eval/py/display.d.ts +25 -0
- package/dist/types/eval/py/executor.d.ts +83 -0
- package/dist/types/eval/py/index.d.ts +10 -0
- package/dist/types/eval/py/kernel.d.ts +55 -0
- package/dist/types/eval/py/prelude.d.ts +1 -0
- package/dist/types/eval/py/runtime.d.ts +21 -0
- package/dist/types/eval/py/tool-bridge.d.ts +20 -0
- package/dist/types/eval/types.d.ts +52 -0
- package/dist/types/exa/factory.d.ts +13 -0
- package/dist/types/exa/index.d.ts +20 -0
- package/dist/types/exa/mcp-client.d.ts +45 -0
- package/dist/types/exa/render.d.ts +19 -0
- package/dist/types/exa/researcher.d.ts +9 -0
- package/dist/types/exa/search.d.ts +9 -0
- package/dist/types/exa/types.d.ts +155 -0
- package/dist/types/exa/websets.d.ts +9 -0
- package/dist/types/exec/bash-executor.d.ts +41 -0
- package/dist/types/exec/exec.d.ts +25 -0
- package/dist/types/exec/idle-timeout-watchdog.d.ts +18 -0
- package/dist/types/exec/non-interactive-env.d.ts +1 -0
- package/dist/types/export/custom-share.d.ts +20 -0
- package/dist/types/export/html/index.d.ts +10 -0
- package/dist/types/export/html/template.generated.d.ts +1 -0
- package/dist/types/export/html/template.macro.d.ts +5 -0
- package/dist/types/export/ttsr.d.ts +44 -0
- package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +9 -0
- package/dist/types/extensibility/custom-commands/bundled/review/index.d.ts +10 -0
- package/dist/types/extensibility/custom-commands/index.d.ts +2 -0
- package/dist/types/extensibility/custom-commands/loader.d.ts +29 -0
- package/dist/types/extensibility/custom-commands/types.d.ts +106 -0
- package/dist/types/extensibility/custom-tools/index.d.ts +6 -0
- package/dist/types/extensibility/custom-tools/loader.d.ts +69 -0
- package/dist/types/extensibility/custom-tools/types.d.ts +226 -0
- package/dist/types/extensibility/custom-tools/wrapper.d.ts +23 -0
- package/dist/types/extensibility/extensions/compact-handler.d.ts +26 -0
- package/dist/types/extensibility/extensions/get-commands-handler.d.ts +29 -0
- package/dist/types/extensibility/extensions/index.d.ts +8 -0
- package/dist/types/extensibility/extensions/loader.d.ts +43 -0
- package/dist/types/extensibility/extensions/runner.d.ts +134 -0
- package/dist/types/extensibility/extensions/types.d.ts +864 -0
- package/dist/types/extensibility/extensions/wrapper.d.ts +54 -0
- package/dist/types/extensibility/hooks/index.d.ts +5 -0
- package/dist/types/extensibility/hooks/loader.d.ts +89 -0
- package/dist/types/extensibility/hooks/runner.d.ts +126 -0
- package/dist/types/extensibility/hooks/tool-wrapper.d.ts +25 -0
- package/dist/types/extensibility/hooks/types.d.ts +431 -0
- package/dist/types/extensibility/plugins/doctor.d.ts +3 -0
- package/dist/types/extensibility/plugins/git-url.d.ts +34 -0
- package/dist/types/extensibility/plugins/index.d.ts +7 -0
- package/dist/types/extensibility/plugins/installer.d.ts +5 -0
- package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
- package/dist/types/extensibility/plugins/loader.d.ts +31 -0
- package/dist/types/extensibility/plugins/manager.d.ts +65 -0
- package/dist/types/extensibility/plugins/marketplace/cache.d.ts +41 -0
- package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +48 -0
- package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -0
- package/dist/types/extensibility/plugins/marketplace/manager.d.ts +57 -0
- package/dist/types/extensibility/plugins/marketplace/registry.d.ts +34 -0
- package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +28 -0
- package/dist/types/extensibility/plugins/marketplace/types.d.ts +130 -0
- package/dist/types/extensibility/plugins/parser.d.ts +52 -0
- package/dist/types/extensibility/plugins/types.d.ts +149 -0
- package/dist/types/extensibility/shared-events.d.ts +279 -0
- package/dist/types/extensibility/skills.d.ts +57 -0
- package/dist/types/extensibility/slash-commands.d.ts +48 -0
- package/dist/types/extensibility/tool-proxy.d.ts +4 -0
- package/dist/types/extensibility/typebox.d.ts +155 -0
- package/dist/types/extensibility/utils.d.ts +12 -0
- package/dist/types/goals/index.d.ts +3 -0
- package/dist/types/goals/runtime.d.ts +63 -0
- package/dist/types/goals/state.d.ts +35 -0
- package/dist/types/goals/tools/goal-tool.d.ts +62 -0
- package/dist/types/hashline/anchors.d.ts +20 -0
- package/dist/types/hashline/apply.d.ts +14 -0
- package/dist/types/hashline/constants.d.ts +21 -0
- package/dist/types/hashline/diff-preview.d.ts +2 -0
- package/dist/types/hashline/diff.d.ts +17 -0
- package/dist/types/hashline/execute.d.ts +4 -0
- package/dist/types/hashline/hash.d.ts +149 -0
- package/dist/types/hashline/index.d.ts +13 -0
- package/dist/types/hashline/input.d.ts +11 -0
- package/dist/types/hashline/parser.d.ts +7 -0
- package/dist/types/hashline/prefixes.d.ts +7 -0
- package/dist/types/hashline/recovery.d.ts +22 -0
- package/dist/types/hashline/stream.d.ts +2 -0
- package/dist/types/hashline/types.d.ts +77 -0
- package/dist/types/hindsight/backend.d.ts +13 -0
- package/dist/types/hindsight/bank.d.ts +54 -0
- package/dist/types/hindsight/client.d.ts +224 -0
- package/dist/types/hindsight/config.d.ts +51 -0
- package/dist/types/hindsight/content.d.ts +70 -0
- package/dist/types/hindsight/index.d.ts +8 -0
- package/dist/types/hindsight/mental-models.d.ts +125 -0
- package/dist/types/hindsight/state.d.ts +99 -0
- package/dist/types/hindsight/transcript.d.ts +28 -0
- package/dist/types/index.d.ts +33 -0
- package/dist/types/internal-urls/agent-protocol.d.ts +12 -0
- package/dist/types/internal-urls/artifact-protocol.d.ts +6 -0
- package/dist/types/internal-urls/docs-index.generated.d.ts +2 -0
- package/dist/types/internal-urls/index.d.ts +22 -0
- package/dist/types/internal-urls/issue-pr-protocol.d.ts +17 -0
- package/dist/types/internal-urls/json-query.d.ts +30 -0
- package/dist/types/internal-urls/local-protocol.d.ts +39 -0
- package/dist/types/internal-urls/mcp-protocol.d.ts +12 -0
- package/dist/types/internal-urls/memory-protocol.d.ts +17 -0
- package/dist/types/internal-urls/omp-protocol.d.ts +12 -0
- package/dist/types/internal-urls/parse.d.ts +19 -0
- package/dist/types/internal-urls/registry-helpers.d.ts +10 -0
- package/dist/types/internal-urls/router.d.ts +14 -0
- package/dist/types/internal-urls/rule-protocol.d.ts +6 -0
- package/dist/types/internal-urls/skill-protocol.d.ts +13 -0
- package/dist/types/internal-urls/types.d.ts +105 -0
- package/dist/types/lsp/client.d.ts +65 -0
- package/dist/types/lsp/clients/biome-client.d.ts +16 -0
- package/dist/types/lsp/clients/index.d.ts +19 -0
- package/dist/types/lsp/clients/lsp-linter-client.d.ts +16 -0
- package/dist/types/lsp/clients/swiftlint-client.d.ts +20 -0
- package/dist/types/lsp/config.d.ts +65 -0
- package/dist/types/lsp/edits.d.ts +16 -0
- package/dist/types/lsp/index.d.ts +130 -0
- package/dist/types/lsp/lspmux.d.ts +58 -0
- package/dist/types/lsp/render.d.ts +32 -0
- package/dist/types/lsp/startup-events.d.ts +11 -0
- package/dist/types/lsp/types.d.ts +302 -0
- package/dist/types/lsp/utils.d.ts +108 -0
- package/dist/types/main.d.ts +17 -0
- package/dist/types/mcp/client.d.ts +74 -0
- package/dist/types/mcp/config-writer.d.ts +53 -0
- package/dist/types/mcp/config.d.ts +75 -0
- package/dist/types/mcp/discoverable-tool-metadata.d.ts +7 -0
- package/dist/types/mcp/index.d.ts +18 -0
- package/dist/types/mcp/json-rpc.d.ts +22 -0
- package/dist/types/mcp/loader.d.ts +43 -0
- package/dist/types/mcp/manager.d.ts +193 -0
- package/dist/types/mcp/oauth-discovery.d.ts +40 -0
- package/dist/types/mcp/oauth-flow.d.ts +59 -0
- package/dist/types/mcp/render.d.ts +25 -0
- package/dist/types/mcp/smithery-auth.d.ts +16 -0
- package/dist/types/mcp/smithery-connect.d.ts +38 -0
- package/dist/types/mcp/smithery-registry.d.ts +51 -0
- package/dist/types/mcp/tool-bridge.d.ts +86 -0
- package/dist/types/mcp/tool-cache.d.ts +8 -0
- package/dist/types/mcp/transports/http.d.ts +36 -0
- package/dist/types/mcp/transports/index.d.ts +5 -0
- package/dist/types/mcp/transports/stdio.d.ts +32 -0
- package/dist/types/mcp/types.d.ts +333 -0
- package/dist/types/memories/index.d.ts +28 -0
- package/dist/types/memories/storage.d.ts +110 -0
- package/dist/types/memory-backend/index.d.ts +4 -0
- package/dist/types/memory-backend/local-backend.d.ts +9 -0
- package/dist/types/memory-backend/off-backend.d.ts +7 -0
- package/dist/types/memory-backend/resolve.d.ts +15 -0
- package/dist/types/memory-backend/types.d.ts +61 -0
- package/dist/types/modes/acp/acp-agent.d.ts +61 -0
- package/dist/types/modes/acp/acp-client-bridge.d.ts +9 -0
- package/dist/types/modes/acp/acp-event-mapper.d.ts +20 -0
- package/dist/types/modes/acp/acp-mode.d.ts +3 -0
- package/dist/types/modes/acp/index.d.ts +2 -0
- package/dist/types/modes/acp/terminal-auth.d.ts +6 -0
- package/dist/types/modes/components/agent-dashboard.d.ts +21 -0
- package/dist/types/modes/components/assistant-message.d.ts +16 -0
- package/dist/types/modes/components/bash-execution.d.ts +29 -0
- package/dist/types/modes/components/bordered-loader.d.ts +11 -0
- package/dist/types/modes/components/branch-summary-message.d.ts +13 -0
- package/dist/types/modes/components/btw-panel.d.ts +16 -0
- package/dist/types/modes/components/compaction-summary-message.d.ts +13 -0
- package/dist/types/modes/components/countdown-timer.d.ts +14 -0
- package/dist/types/modes/components/custom-editor.d.ts +47 -0
- package/dist/types/modes/components/custom-message.d.ts +15 -0
- package/dist/types/modes/components/diff.d.ts +11 -0
- package/dist/types/modes/components/dynamic-border.d.ts +14 -0
- package/dist/types/modes/components/eval-execution.d.ts +23 -0
- package/dist/types/modes/components/execution-shared.d.ts +46 -0
- package/dist/types/modes/components/extensions/extension-dashboard.d.ts +26 -0
- package/dist/types/modes/components/extensions/extension-list.d.ts +39 -0
- package/dist/types/modes/components/extensions/index.d.ts +8 -0
- package/dist/types/modes/components/extensions/inspector-panel.d.ts +8 -0
- package/dist/types/modes/components/extensions/state-manager.d.ts +50 -0
- package/dist/types/modes/components/extensions/types.d.ts +151 -0
- package/dist/types/modes/components/footer.d.ts +30 -0
- package/dist/types/modes/components/history-search.d.ts +7 -0
- package/dist/types/modes/components/hook-editor.d.ts +18 -0
- package/dist/types/modes/components/hook-input.d.ts +15 -0
- package/dist/types/modes/components/hook-message.d.ts +15 -0
- package/dist/types/modes/components/hook-selector.d.ts +23 -0
- package/dist/types/modes/components/index.d.ts +35 -0
- package/dist/types/modes/components/keybinding-hints.d.ts +40 -0
- package/dist/types/modes/components/login-dialog.d.ts +32 -0
- package/dist/types/modes/components/mcp-add-wizard.d.ts +25 -0
- package/dist/types/modes/components/message-frame.d.ts +42 -0
- package/dist/types/modes/components/model-selector.d.ts +26 -0
- package/dist/types/modes/components/oauth-selector.d.ts +14 -0
- package/dist/types/modes/components/plugin-selector.d.ts +26 -0
- package/dist/types/modes/components/plugin-settings.d.ts +66 -0
- package/dist/types/modes/components/queue-mode-selector.d.ts +9 -0
- package/dist/types/modes/components/read-tool-group.d.ts +30 -0
- package/dist/types/modes/components/session-observer-overlay.d.ts +11 -0
- package/dist/types/modes/components/session-selector.d.ts +30 -0
- package/dist/types/modes/components/settings-defs.d.ts +50 -0
- package/dist/types/modes/components/settings-selector.d.ts +54 -0
- package/dist/types/modes/components/show-images-selector.d.ts +9 -0
- package/dist/types/modes/components/skill-message.d.ts +9 -0
- package/dist/types/modes/components/status-line/context-thresholds.d.ts +4 -0
- package/dist/types/modes/components/status-line/git-utils.d.ts +22 -0
- package/dist/types/modes/components/status-line/index.d.ts +4 -0
- package/dist/types/modes/components/status-line/presets.d.ts +3 -0
- package/dist/types/modes/components/status-line/segments.d.ts +5 -0
- package/dist/types/modes/components/status-line/separators.d.ts +3 -0
- package/dist/types/modes/components/status-line/token-rate.d.ts +10 -0
- package/dist/types/modes/components/status-line/types.d.ts +70 -0
- package/dist/types/modes/components/status-line-segment-editor.d.ts +24 -0
- package/dist/types/modes/components/status-line.d.ts +61 -0
- package/dist/types/modes/components/theme-selector.d.ts +10 -0
- package/dist/types/modes/components/thinking-selector.d.ts +10 -0
- package/dist/types/modes/components/todo-reminder.d.ts +13 -0
- package/dist/types/modes/components/tool-execution.d.ts +53 -0
- package/dist/types/modes/components/tree-selector.d.ts +31 -0
- package/dist/types/modes/components/ttsr-notification.d.ts +13 -0
- package/dist/types/modes/components/user-message-selector.d.ts +28 -0
- package/dist/types/modes/components/user-message.d.ts +8 -0
- package/dist/types/modes/components/visual-truncate.d.ts +19 -0
- package/dist/types/modes/components/welcome.d.ts +33 -0
- package/dist/types/modes/controllers/btw-controller.d.ts +10 -0
- package/dist/types/modes/controllers/command-controller-shared.d.ts +47 -0
- package/dist/types/modes/controllers/command-controller.d.ts +36 -0
- package/dist/types/modes/controllers/event-controller.d.ts +12 -0
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +80 -0
- package/dist/types/modes/controllers/input-controller.d.ts +35 -0
- package/dist/types/modes/controllers/mcp-command-controller.d.ts +10 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +45 -0
- package/dist/types/modes/controllers/ssh-command-controller.d.ts +10 -0
- package/dist/types/modes/controllers/todo-command-controller.d.ts +7 -0
- package/dist/types/modes/emoji-autocomplete.d.ts +16 -0
- package/dist/types/modes/index.d.ts +9 -0
- package/dist/types/modes/interactive-mode.d.ts +267 -0
- package/dist/types/modes/loop-limit.d.ts +22 -0
- package/dist/types/modes/oauth-manual-input.d.ts +8 -0
- package/dist/types/modes/print-mode.d.ts +27 -0
- package/dist/types/modes/prompt-action-autocomplete.d.ts +46 -0
- package/dist/types/modes/rpc/host-tools.d.ts +16 -0
- package/dist/types/modes/rpc/host-uris.d.ts +38 -0
- package/dist/types/modes/rpc/rpc-client.d.ts +249 -0
- package/dist/types/modes/rpc/rpc-mode.d.ts +17 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +586 -0
- package/dist/types/modes/runtime-init.d.ts +21 -0
- package/dist/types/modes/session-observer-registry.d.ts +26 -0
- package/dist/types/modes/shared.d.ts +6 -0
- package/dist/types/modes/theme/defaults/index.d.ts +9436 -0
- package/dist/types/modes/theme/mermaid-cache.d.ts +9 -0
- package/dist/types/modes/theme/theme.d.ts +273 -0
- package/dist/types/modes/types.d.ts +274 -0
- package/dist/types/modes/utils/context-usage.d.ts +30 -0
- package/dist/types/modes/utils/hotkeys-markdown.d.ts +5 -0
- package/dist/types/modes/utils/keybinding-matchers.d.ts +10 -0
- package/dist/types/modes/utils/tools-markdown.d.ts +5 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +49 -0
- package/dist/types/plan-mode/approved-plan.d.ts +29 -0
- package/dist/types/plan-mode/state.d.ts +6 -0
- package/dist/types/registry/agent-registry.d.ts +62 -0
- package/dist/types/sdk.d.ts +253 -0
- package/dist/types/secrets/index.d.ts +9 -0
- package/dist/types/secrets/obfuscator.d.ts +23 -0
- package/dist/types/secrets/regex.d.ts +2 -0
- package/dist/types/session/agent-session.d.ts +898 -0
- package/dist/types/session/agent-storage.d.ts +93 -0
- package/dist/types/session/artifacts.d.ts +61 -0
- package/dist/types/session/auth-broker-config.d.ts +13 -0
- package/dist/types/session/auth-storage.d.ts +6 -0
- package/dist/types/session/blob-store.d.ts +63 -0
- package/dist/types/session/client-bridge.d.ts +84 -0
- package/dist/types/session/history-storage.d.ts +16 -0
- package/dist/types/session/messages.d.ts +162 -0
- package/dist/types/session/session-dump-format.d.ts +22 -0
- package/dist/types/session/session-manager.d.ts +539 -0
- package/dist/types/session/session-storage.d.ts +82 -0
- package/dist/types/session/streaming-output.d.ts +185 -0
- package/dist/types/session/tool-choice-queue.d.ts +78 -0
- package/dist/types/slash-commands/acp-builtins.d.ts +18 -0
- package/dist/types/slash-commands/builtin-registry.d.ts +23 -0
- package/dist/types/slash-commands/helpers/context-report.d.ts +7 -0
- package/dist/types/slash-commands/helpers/format.d.ts +7 -0
- package/dist/types/slash-commands/helpers/marketplace-manager.d.ts +8 -0
- package/dist/types/slash-commands/helpers/mcp.d.ts +3 -0
- package/dist/types/slash-commands/helpers/parse.d.ts +33 -0
- package/dist/types/slash-commands/helpers/ssh.d.ts +3 -0
- package/dist/types/slash-commands/helpers/todo.d.ts +3 -0
- package/dist/types/slash-commands/helpers/usage-report.d.ts +7 -0
- package/dist/types/slash-commands/marketplace-install-parser.d.ts +33 -0
- package/dist/types/slash-commands/types.d.ts +119 -0
- package/dist/types/ssh/config-writer.d.ts +49 -0
- package/dist/types/ssh/connection-manager.d.ts +33 -0
- package/dist/types/ssh/ssh-executor.d.ts +37 -0
- package/dist/types/ssh/sshfs-mount.d.ts +6 -0
- package/dist/types/ssh/utils.d.ts +2 -0
- package/dist/types/stt/downloader.d.ts +9 -0
- package/dist/types/stt/index.d.ts +3 -0
- package/dist/types/stt/recorder.d.ts +13 -0
- package/dist/types/stt/setup.d.ts +18 -0
- package/dist/types/stt/stt-controller.d.ts +16 -0
- package/dist/types/stt/transcriber.d.ts +16 -0
- package/dist/types/system-prompt.d.ts +93 -0
- package/dist/types/task/agents.d.ts +28 -0
- package/dist/types/task/commands.d.ts +35 -0
- package/dist/types/task/discovery.d.ts +18 -0
- package/dist/types/task/executor.d.ts +106 -0
- package/dist/types/task/index.d.ts +38 -0
- package/dist/types/task/name-generator.d.ts +16 -0
- package/dist/types/task/omp-command.d.ts +7 -0
- package/dist/types/task/output-manager.d.ts +36 -0
- package/dist/types/task/parallel.d.ts +34 -0
- package/dist/types/task/render.d.ts +22 -0
- package/dist/types/task/simple-mode.d.ts +8 -0
- package/dist/types/task/subprocess-tool-registry.d.ts +72 -0
- package/dist/types/task/types.d.ts +251 -0
- package/dist/types/task/worktree.d.ts +95 -0
- package/dist/types/thinking.d.ts +30 -0
- package/dist/types/tool-discovery/tool-index.d.ts +107 -0
- package/dist/types/tools/archive-reader.d.ts +40 -0
- package/dist/types/tools/ask.d.ts +109 -0
- package/dist/types/tools/ast-edit.d.ts +72 -0
- package/dist/types/tools/ast-grep.d.ts +64 -0
- package/dist/types/tools/auto-generated-guard.d.ts +17 -0
- package/dist/types/tools/bash-command-fixup.d.ts +16 -0
- package/dist/types/tools/bash-interactive.d.ts +16 -0
- package/dist/types/tools/bash-interceptor.d.ts +24 -0
- package/dist/types/tools/bash-pty-selection.d.ts +7 -0
- package/dist/types/tools/bash-skill-urls.d.ts +31 -0
- package/dist/types/tools/bash.d.ts +130 -0
- package/dist/types/tools/browser/attach.d.ts +34 -0
- package/dist/types/tools/browser/launch.d.ts +60 -0
- package/dist/types/tools/browser/readable.d.ts +17 -0
- package/dist/types/tools/browser/registry.d.ts +42 -0
- package/dist/types/tools/browser/render.d.ts +50 -0
- package/dist/types/tools/browser/tab-protocol.d.ts +144 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +63 -0
- package/dist/types/tools/browser/tab-worker-entry.d.ts +1 -0
- package/dist/types/tools/browser/tab-worker.d.ts +19 -0
- package/dist/types/tools/browser.d.ts +114 -0
- package/dist/types/tools/calculator.d.ts +76 -0
- package/dist/types/tools/checkpoint.d.ts +63 -0
- package/dist/types/tools/conflict-detect.d.ts +205 -0
- package/dist/types/tools/context.d.ts +19 -0
- package/dist/types/tools/debug.d.ts +209 -0
- package/dist/types/tools/eval.d.ts +108 -0
- package/dist/types/tools/fetch.d.ts +61 -0
- package/dist/types/tools/file-recorder.d.ts +13 -0
- package/dist/types/tools/find.d.ts +88 -0
- package/dist/types/tools/fs-cache-invalidation.d.ts +15 -0
- package/dist/types/tools/gh-format.d.ts +6 -0
- package/dist/types/tools/gh-renderer.d.ts +25 -0
- package/dist/types/tools/gh.d.ts +356 -0
- package/dist/types/tools/github-cache.d.ts +103 -0
- package/dist/types/tools/grouped-file-output.d.ts +36 -0
- package/dist/types/tools/hindsight-recall.d.ts +23 -0
- package/dist/types/tools/hindsight-reflect.d.ts +25 -0
- package/dist/types/tools/hindsight-retain.d.ts +29 -0
- package/dist/types/tools/image-gen.d.ts +78 -0
- package/dist/types/tools/index.d.ts +244 -0
- package/dist/types/tools/inspect-image-renderer.d.ts +26 -0
- package/dist/types/tools/inspect-image.d.ts +31 -0
- package/dist/types/tools/irc.d.ts +79 -0
- package/dist/types/tools/job.d.ts +65 -0
- package/dist/types/tools/json-tree.d.ts +23 -0
- package/dist/types/tools/jtd-to-json-schema.d.ts +29 -0
- package/dist/types/tools/jtd-to-typescript.d.ts +26 -0
- package/dist/types/tools/jtd-utils.d.ts +42 -0
- package/dist/types/tools/list-limit.d.ts +12 -0
- package/dist/types/tools/match-line-format.d.ts +11 -0
- package/dist/types/tools/output-meta.d.ts +204 -0
- package/dist/types/tools/path-utils.d.ts +125 -0
- package/dist/types/tools/plan-mode-guard.d.ts +18 -0
- package/dist/types/tools/read.d.ts +85 -0
- package/dist/types/tools/recipe/index.d.ts +45 -0
- package/dist/types/tools/recipe/render.d.ts +36 -0
- package/dist/types/tools/recipe/runner.d.ts +60 -0
- package/dist/types/tools/recipe/runners/cargo.d.ts +16 -0
- package/dist/types/tools/recipe/runners/index.d.ts +2 -0
- package/dist/types/tools/recipe/runners/just.d.ts +2 -0
- package/dist/types/tools/recipe/runners/make.d.ts +2 -0
- package/dist/types/tools/recipe/runners/pkg.d.ts +2 -0
- package/dist/types/tools/recipe/runners/task.d.ts +2 -0
- package/dist/types/tools/render-mermaid.d.ts +37 -0
- package/dist/types/tools/render-utils.d.ts +148 -0
- package/dist/types/tools/renderers.d.ts +26 -0
- package/dist/types/tools/report-tool-issue.d.ts +123 -0
- package/dist/types/tools/resolve.d.ts +85 -0
- package/dist/types/tools/review.d.ts +50 -0
- package/dist/types/tools/search-tool-bm25.d.ts +65 -0
- package/dist/types/tools/search.d.ts +90 -0
- package/dist/types/tools/sqlite-reader.d.ts +93 -0
- package/dist/types/tools/ssh.d.ts +67 -0
- package/dist/types/tools/todo-write.d.ts +120 -0
- package/dist/types/tools/tool-errors.d.ts +33 -0
- package/dist/types/tools/tool-result.d.ts +30 -0
- package/dist/types/tools/tool-timeouts.d.ts +51 -0
- package/dist/types/tools/vim.d.ts +58 -0
- package/dist/types/tools/write.d.ts +59 -0
- package/dist/types/tools/yield.d.ts +25 -0
- package/dist/types/tui/code-cell.d.ts +32 -0
- package/dist/types/tui/file-list.d.ts +16 -0
- package/dist/types/tui/index.d.ts +10 -0
- package/dist/types/tui/output-block.d.ts +28 -0
- package/dist/types/tui/status-line.d.ts +18 -0
- package/dist/types/tui/tree-list.d.ts +19 -0
- package/dist/types/tui/types.d.ts +13 -0
- package/dist/types/tui/utils.d.ts +36 -0
- package/dist/types/utils/changelog.d.ts +20 -0
- package/dist/types/utils/clipboard.d.ts +20 -0
- package/dist/types/utils/command-args.d.ts +9 -0
- package/dist/types/utils/commit-message-generator.d.ts +7 -0
- package/dist/types/utils/edit-mode.d.ts +13 -0
- package/dist/types/utils/event-bus.d.ts +6 -0
- package/dist/types/utils/external-editor.d.ts +17 -0
- package/dist/types/utils/file-display-mode.d.ts +27 -0
- package/dist/types/utils/file-mentions.d.ts +11 -0
- package/dist/types/utils/git.d.ts +360 -0
- package/dist/types/utils/image-loading.d.ts +26 -0
- package/dist/types/utils/image-resize.d.ts +36 -0
- package/dist/types/utils/lang-from-path.d.ts +8 -0
- package/dist/types/utils/markit.d.ts +7 -0
- package/dist/types/utils/open.d.ts +2 -0
- package/dist/types/utils/session-color.d.ts +10 -0
- package/dist/types/utils/shell-snapshot.d.ts +5 -0
- package/dist/types/utils/sixel.d.ts +21 -0
- package/dist/types/utils/title-generator.d.ts +31 -0
- package/dist/types/utils/tool-choice.d.ts +6 -0
- package/dist/types/utils/tools-manager.d.ts +9 -0
- package/dist/types/vim/buffer.d.ts +41 -0
- package/dist/types/vim/commands.d.ts +6 -0
- package/dist/types/vim/engine.d.ts +47 -0
- package/dist/types/vim/parser.d.ts +3 -0
- package/dist/types/vim/render.d.ts +25 -0
- package/dist/types/vim/types.d.ts +182 -0
- package/dist/types/web/kagi.d.ts +21 -0
- package/dist/types/web/parallel.d.ts +57 -0
- package/dist/types/web/scrapers/artifacthub.d.ts +6 -0
- package/dist/types/web/scrapers/arxiv.d.ts +5 -0
- package/dist/types/web/scrapers/aur.d.ts +5 -0
- package/dist/types/web/scrapers/biorxiv.d.ts +5 -0
- package/dist/types/web/scrapers/bluesky.d.ts +5 -0
- package/dist/types/web/scrapers/brew.d.ts +5 -0
- package/dist/types/web/scrapers/cheatsh.d.ts +8 -0
- package/dist/types/web/scrapers/chocolatey.d.ts +5 -0
- package/dist/types/web/scrapers/choosealicense.d.ts +2 -0
- package/dist/types/web/scrapers/cisa-kev.d.ts +5 -0
- package/dist/types/web/scrapers/clojars.d.ts +5 -0
- package/dist/types/web/scrapers/coingecko.d.ts +5 -0
- package/dist/types/web/scrapers/crates-io.d.ts +5 -0
- package/dist/types/web/scrapers/crossref.d.ts +2 -0
- package/dist/types/web/scrapers/devto.d.ts +5 -0
- package/dist/types/web/scrapers/discogs.d.ts +8 -0
- package/dist/types/web/scrapers/discourse.d.ts +5 -0
- package/dist/types/web/scrapers/dockerhub.d.ts +5 -0
- package/dist/types/web/scrapers/docs-rs.d.ts +2 -0
- package/dist/types/web/scrapers/fdroid.d.ts +5 -0
- package/dist/types/web/scrapers/firefox-addons.d.ts +2 -0
- package/dist/types/web/scrapers/flathub.d.ts +2 -0
- package/dist/types/web/scrapers/github-gist.d.ts +5 -0
- package/dist/types/web/scrapers/github.d.ts +12 -0
- package/dist/types/web/scrapers/gitlab.d.ts +5 -0
- package/dist/types/web/scrapers/go-pkg.d.ts +5 -0
- package/dist/types/web/scrapers/hackage.d.ts +5 -0
- package/dist/types/web/scrapers/hackernews.d.ts +2 -0
- package/dist/types/web/scrapers/hex.d.ts +5 -0
- package/dist/types/web/scrapers/huggingface.d.ts +2 -0
- package/dist/types/web/scrapers/iacr.d.ts +5 -0
- package/dist/types/web/scrapers/index.d.ts +84 -0
- package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +2 -0
- package/dist/types/web/scrapers/lemmy.d.ts +2 -0
- package/dist/types/web/scrapers/lobsters.d.ts +5 -0
- package/dist/types/web/scrapers/mastodon.d.ts +5 -0
- package/dist/types/web/scrapers/maven.d.ts +6 -0
- package/dist/types/web/scrapers/mdn.d.ts +2 -0
- package/dist/types/web/scrapers/metacpan.d.ts +5 -0
- package/dist/types/web/scrapers/musicbrainz.d.ts +5 -0
- package/dist/types/web/scrapers/npm.d.ts +5 -0
- package/dist/types/web/scrapers/nuget.d.ts +5 -0
- package/dist/types/web/scrapers/nvd.d.ts +5 -0
- package/dist/types/web/scrapers/ollama.d.ts +2 -0
- package/dist/types/web/scrapers/open-vsx.d.ts +5 -0
- package/dist/types/web/scrapers/opencorporates.d.ts +5 -0
- package/dist/types/web/scrapers/openlibrary.d.ts +5 -0
- package/dist/types/web/scrapers/orcid.d.ts +5 -0
- package/dist/types/web/scrapers/osv.d.ts +5 -0
- package/dist/types/web/scrapers/packagist.d.ts +5 -0
- package/dist/types/web/scrapers/pub-dev.d.ts +5 -0
- package/dist/types/web/scrapers/pubmed.d.ts +5 -0
- package/dist/types/web/scrapers/pypi.d.ts +5 -0
- package/dist/types/web/scrapers/rawg.d.ts +2 -0
- package/dist/types/web/scrapers/readthedocs.d.ts +2 -0
- package/dist/types/web/scrapers/reddit.d.ts +5 -0
- package/dist/types/web/scrapers/repology.d.ts +5 -0
- package/dist/types/web/scrapers/rfc.d.ts +5 -0
- package/dist/types/web/scrapers/rubygems.d.ts +5 -0
- package/dist/types/web/scrapers/searchcode.d.ts +2 -0
- package/dist/types/web/scrapers/sec-edgar.d.ts +5 -0
- package/dist/types/web/scrapers/semantic-scholar.d.ts +2 -0
- package/dist/types/web/scrapers/snapcraft.d.ts +2 -0
- package/dist/types/web/scrapers/sourcegraph.d.ts +2 -0
- package/dist/types/web/scrapers/spdx.d.ts +5 -0
- package/dist/types/web/scrapers/spotify.d.ts +8 -0
- package/dist/types/web/scrapers/stackoverflow.d.ts +6 -0
- package/dist/types/web/scrapers/terraform.d.ts +5 -0
- package/dist/types/web/scrapers/tldr.d.ts +7 -0
- package/dist/types/web/scrapers/twitter.d.ts +5 -0
- package/dist/types/web/scrapers/types.d.ts +77 -0
- package/dist/types/web/scrapers/utils.d.ts +26 -0
- package/dist/types/web/scrapers/vimeo.d.ts +5 -0
- package/dist/types/web/scrapers/vscode-marketplace.d.ts +5 -0
- package/dist/types/web/scrapers/w3c.d.ts +2 -0
- package/dist/types/web/scrapers/wikidata.d.ts +5 -0
- package/dist/types/web/scrapers/wikipedia.d.ts +5 -0
- package/dist/types/web/scrapers/youtube.d.ts +5 -0
- package/dist/types/web/search/index.d.ts +76 -0
- package/dist/types/web/search/provider.d.ts +20 -0
- package/dist/types/web/search/providers/anthropic.d.ts +27 -0
- package/dist/types/web/search/providers/base.d.ts +35 -0
- package/dist/types/web/search/providers/brave.d.ts +20 -0
- package/dist/types/web/search/providers/codex.d.ts +31 -0
- package/dist/types/web/search/providers/exa.d.ts +43 -0
- package/dist/types/web/search/providers/gemini.d.ts +60 -0
- package/dist/types/web/search/providers/jina.d.ts +25 -0
- package/dist/types/web/search/providers/kagi.d.ts +21 -0
- package/dist/types/web/search/providers/kimi.d.ts +18 -0
- package/dist/types/web/search/providers/parallel.d.ts +14 -0
- package/dist/types/web/search/providers/perplexity.d.ts +35 -0
- package/dist/types/web/search/providers/searxng.d.ts +43 -0
- package/dist/types/web/search/providers/synthetic.d.ts +24 -0
- package/dist/types/web/search/providers/tavily.d.ts +22 -0
- package/dist/types/web/search/providers/utils.d.ts +24 -0
- package/dist/types/web/search/providers/zai.d.ts +19 -0
- package/dist/types/web/search/render.d.ts +35 -0
- package/dist/types/web/search/types.d.ts +344 -0
- package/dist/types/web/search/utils.d.ts +4 -0
- package/dist/types/workspace-tree.d.ts +42 -0
- package/examples/custom-tools/README.md +3 -12
- package/examples/extensions/README.md +2 -15
- package/examples/extensions/api-demo.ts +1 -7
- package/package.json +124 -123
- package/src/autoresearch/tools/init-experiment.ts +11 -33
- package/src/autoresearch/tools/log-experiment.ts +10 -24
- package/src/autoresearch/tools/run-experiment.ts +1 -1
- package/src/autoresearch/tools/update-notes.ts +2 -9
- package/src/cli/auth-broker-cli.ts +746 -0
- package/src/cli/auth-gateway-cli.ts +342 -0
- package/src/cli/grievances-cli.ts +109 -16
- package/src/cli.ts +4 -2
- package/src/commands/auth-broker.ts +96 -0
- package/src/commands/auth-gateway.ts +61 -0
- package/src/commands/grievances.ts +13 -8
- package/src/commands/launch.ts +1 -1
- package/src/commit/agentic/agent.ts +2 -0
- package/src/commit/agentic/tools/analyze-file.ts +2 -2
- package/src/commit/agentic/tools/git-file-diff.ts +2 -2
- package/src/commit/agentic/tools/git-hunk.ts +3 -3
- package/src/commit/agentic/tools/git-overview.ts +2 -2
- package/src/commit/agentic/tools/propose-changelog.ts +1 -3
- package/src/commit/agentic/tools/recent-commits.ts +1 -1
- package/src/commit/agentic/tools/schemas.ts +1 -9
- package/src/config/mcp-schema.json +1 -1
- package/src/config/model-equivalence.ts +279 -174
- package/src/config/model-registry.ts +37 -6
- package/src/config/model-resolver.ts +13 -8
- package/src/config/models-config-schema.ts +8 -0
- package/src/config/settings-schema.ts +52 -0
- package/src/cursor.ts +1 -1
- package/src/debug/log-formatting.ts +1 -1
- package/src/debug/log-viewer.ts +1 -1
- package/src/debug/profiler.ts +4 -0
- package/src/debug/raw-sse-buffer.ts +100 -59
- package/src/debug/raw-sse.ts +1 -1
- package/src/discovery/agents.ts +15 -4
- package/src/edit/modes/apply-patch.ts +1 -5
- package/src/edit/modes/patch.ts +5 -5
- package/src/edit/modes/replace.ts +5 -5
- package/src/edit/normalize.ts +1 -1
- package/src/edit/renderer.ts +2 -1
- package/src/edit/streaming.ts +1 -1
- package/src/eval/index.ts +0 -2
- package/src/eval/js/shared/runtime.ts +25 -0
- package/src/eval/py/kernel.ts +1 -1
- package/src/exa/researcher.ts +4 -4
- package/src/exa/search.ts +10 -22
- package/src/exa/websets.ts +33 -33
- package/src/extensibility/typebox.ts +1 -1
- package/src/goals/tools/goal-tool.ts +3 -3
- package/src/hashline/index.ts +0 -1
- package/src/hashline/input.ts +8 -11
- package/src/hashline/parser.ts +6 -8
- package/src/index.ts +0 -3
- package/src/internal-urls/docs-index.generated.ts +21 -18
- package/src/internal-urls/index.ts +1 -1
- package/src/internal-urls/{pi-protocol.ts → omp-protocol.ts} +10 -10
- package/src/internal-urls/router.ts +3 -3
- package/src/internal-urls/types.ts +1 -1
- package/src/lsp/types.ts +8 -11
- package/src/main.ts +3 -0
- package/src/mcp/tool-bridge.ts +3 -3
- package/src/modes/acp/acp-agent.ts +89 -25
- package/src/modes/components/bash-execution.ts +1 -1
- package/src/modes/components/diff.ts +1 -2
- package/src/modes/components/eval-execution.ts +1 -1
- package/src/modes/components/oauth-selector.ts +38 -2
- package/src/modes/components/tool-execution.ts +1 -2
- package/src/modes/controllers/command-controller.ts +96 -34
- package/src/modes/controllers/input-controller.ts +4 -3
- package/src/modes/controllers/ssh-command-controller.ts +2 -0
- package/src/modes/data/emojis.json +1 -0
- package/src/modes/emoji-autocomplete.ts +285 -0
- package/src/modes/interactive-mode.ts +92 -19
- package/src/modes/print-mode.ts +3 -3
- package/src/modes/prompt-action-autocomplete.ts +14 -0
- package/src/modes/theme/theme-schema.json +1 -1
- package/src/plan-mode/approved-plan.ts +9 -0
- package/src/prompts/system/system-prompt.md +1 -1
- package/src/prompts/system/ttsr-tool-reminder.md +5 -0
- package/src/prompts/tools/eval.md +25 -26
- package/src/prompts/tools/hashline.md +1 -0
- package/src/prompts/tools/read.md +2 -2
- package/src/prompts/tools/resolve.md +1 -1
- package/src/prompts/tools/search.md +1 -1
- package/src/prompts/tools/web-search.md +1 -1
- package/src/sdk.ts +92 -7
- package/src/session/agent-session.ts +225 -77
- package/src/session/agent-storage.ts +7 -2
- package/src/session/auth-broker-config.ts +102 -0
- package/src/session/auth-storage.ts +7 -1
- package/src/session/streaming-output.ts +1 -1
- package/src/slash-commands/builtin-registry.ts +2 -0
- package/src/slash-commands/helpers/ssh.ts +2 -0
- package/src/ssh/connection-manager.ts +28 -7
- package/src/task/types.ts +10 -35
- package/src/tools/bash-interactive.ts +5 -2
- package/src/tools/bash-pty-selection.ts +14 -0
- package/src/tools/bash.ts +5 -4
- package/src/tools/browser.ts +12 -20
- package/src/tools/eval.ts +77 -100
- package/src/tools/gh.ts +21 -45
- package/src/tools/hindsight-recall.ts +1 -1
- package/src/tools/hindsight-reflect.ts +2 -2
- package/src/tools/hindsight-retain.ts +3 -7
- package/src/tools/index.ts +8 -1
- package/src/tools/inspect-image.ts +4 -1
- package/src/tools/irc.ts +4 -12
- package/src/tools/job.ts +3 -11
- package/src/tools/path-utils.ts +2 -2
- package/src/tools/read.ts +7 -4
- package/src/tools/report-tool-issue.ts +462 -17
- package/src/tools/resolve.ts +2 -7
- package/src/tools/search.ts +7 -0
- package/src/tools/todo-write.ts +8 -15
- package/src/tools/yield.ts +17 -5
- package/src/tui/code-cell.ts +18 -3
- package/src/utils/title-generator.ts +3 -0
- package/src/web/scrapers/searchcode.ts +1 -2
- package/src/web/search/index.ts +6 -6
- package/src/eval/eval.lark +0 -36
- package/src/eval/parse.ts +0 -407
- package/src/eval/sniff.ts +0 -28
- package/src/hashline/utils.ts +0 -3
|
@@ -18,12 +18,15 @@ import * as fs from "node:fs";
|
|
|
18
18
|
import * as path from "node:path";
|
|
19
19
|
import { scheduler } from "node:timers/promises";
|
|
20
20
|
import {
|
|
21
|
+
type AfterToolCallContext,
|
|
22
|
+
type AfterToolCallResult,
|
|
21
23
|
type Agent,
|
|
22
24
|
AgentBusyError,
|
|
23
25
|
type AgentEvent,
|
|
24
26
|
type AgentMessage,
|
|
25
27
|
type AgentState,
|
|
26
28
|
type AgentTool,
|
|
29
|
+
resolveTelemetry,
|
|
27
30
|
ThinkingLevel,
|
|
28
31
|
} from "@oh-my-pi/pi-agent-core";
|
|
29
32
|
import {
|
|
@@ -79,6 +82,7 @@ import {
|
|
|
79
82
|
Snowflake,
|
|
80
83
|
} from "@oh-my-pi/pi-utils";
|
|
81
84
|
import { type AsyncJob, AsyncJobManager } from "../async";
|
|
85
|
+
import { reset as resetCapabilities } from "../capability";
|
|
82
86
|
import type { Rule } from "../capability/rule";
|
|
83
87
|
import { MODEL_ROLE_IDS, type ModelRegistry } from "../config/model-registry";
|
|
84
88
|
import {
|
|
@@ -92,6 +96,7 @@ import {
|
|
|
92
96
|
import { expandPromptTemplate, type PromptTemplate } from "../config/prompt-templates";
|
|
93
97
|
import type { Settings, SkillsSettings } from "../config/settings";
|
|
94
98
|
import { RawSseDebugBuffer } from "../debug/raw-sse-buffer";
|
|
99
|
+
import { loadCapability } from "../discovery";
|
|
95
100
|
import { normalizeDiff, normalizeToLF, ParseError, previewPatch, stripBom } from "../edit";
|
|
96
101
|
import {
|
|
97
102
|
disposeKernelSessionsByOwner,
|
|
@@ -151,8 +156,10 @@ import planModeToolDecisionReminderPrompt from "../prompts/system/plan-mode-tool
|
|
|
151
156
|
type: "text",
|
|
152
157
|
};
|
|
153
158
|
import ttsrInterruptTemplate from "../prompts/system/ttsr-interrupt.md" with { type: "text" };
|
|
159
|
+
import ttsrToolReminderTemplate from "../prompts/system/ttsr-tool-reminder.md" with { type: "text" };
|
|
154
160
|
import { type AgentRegistry, MAIN_AGENT_ID } from "../registry/agent-registry";
|
|
155
161
|
import { deobfuscateSessionContext, type SecretObfuscator } from "../secrets/obfuscator";
|
|
162
|
+
import { invalidateHostMetadata } from "../ssh/connection-manager";
|
|
156
163
|
import { resolveThinkingLevelForModel, toReasoningEffort } from "../thinking";
|
|
157
164
|
import {
|
|
158
165
|
buildDiscoverableToolSearchIndex,
|
|
@@ -274,6 +281,9 @@ export interface AgentSessionConfig {
|
|
|
274
281
|
convertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
|
|
275
282
|
/** System prompt builder that can consider tool availability. Returns ordered provider-facing blocks. */
|
|
276
283
|
rebuildSystemPrompt?: (toolNames: string[], tools: Map<string, AgentTool>) => Promise<{ systemPrompt: string[] }>;
|
|
284
|
+
/** Rebuild the SSH tool from current capability discovery results. */
|
|
285
|
+
reloadSshTool?: () => Promise<AgentTool | null>;
|
|
286
|
+
requestedToolNames?: ReadonlySet<string>;
|
|
277
287
|
/**
|
|
278
288
|
* Optional accessor for live MCP server instructions. Read by the session's
|
|
279
289
|
* `rebuildSystemPrompt`-skip optimization to detect server-side instruction
|
|
@@ -736,6 +746,8 @@ export class AgentSession {
|
|
|
736
746
|
| ((toolNames: string[], tools: Map<string, AgentTool>) => Promise<{ systemPrompt: string[] }>)
|
|
737
747
|
| undefined;
|
|
738
748
|
#getMcpServerInstructions: (() => Map<string, string> | undefined) | undefined;
|
|
749
|
+
#reloadSshTool: (() => Promise<AgentTool | null>) | undefined;
|
|
750
|
+
#requestedToolNames: ReadonlySet<string> | undefined;
|
|
739
751
|
#baseSystemPrompt: string[];
|
|
740
752
|
/**
|
|
741
753
|
* Signature of the (toolNames, tool descriptions) tuple passed to the most
|
|
@@ -759,6 +771,10 @@ export class AgentSession {
|
|
|
759
771
|
// TTSR manager for time-traveling stream rules
|
|
760
772
|
#ttsrManager: TtsrManager | undefined = undefined;
|
|
761
773
|
#pendingTtsrInjections: Rule[] = [];
|
|
774
|
+
/** Per-tool TTSR rules whose `interruptMode` opted out of aborting the stream.
|
|
775
|
+
* These are folded into the matched tool call's `toolResult` content as an
|
|
776
|
+
* in-band system reminder, instead of spawning a separate follow-up turn. */
|
|
777
|
+
#perToolTtsrInjections = new Map<string, Rule[]>();
|
|
762
778
|
#ttsrAbortPending = false;
|
|
763
779
|
#ttsrRetryToken = 0;
|
|
764
780
|
#ttsrResumePromise: Promise<void> | undefined = undefined;
|
|
@@ -868,24 +884,38 @@ export class AgentSession {
|
|
|
868
884
|
this.#modelRegistry = config.modelRegistry;
|
|
869
885
|
this.#validateRetryFallbackChains();
|
|
870
886
|
this.#toolRegistry = config.toolRegistry ?? new Map();
|
|
887
|
+
this.#requestedToolNames = config.requestedToolNames;
|
|
871
888
|
this.#transformContext = config.transformContext ?? (messages => messages);
|
|
872
889
|
this.#onPayload = config.onPayload;
|
|
873
890
|
this.rawSseDebugBuffer = config.rawSseDebugBuffer ?? new RawSseDebugBuffer();
|
|
891
|
+
// Avoid wrapping in an `async` closure when no user callback is configured: the
|
|
892
|
+
// outer await on `#onResponse` (provider-response.ts) tolerates a sync void return,
|
|
893
|
+
// and skipping the wrapper drops a per-event `newPromiseCapability` allocation that
|
|
894
|
+
// shows up as ~3.5% self time in streaming profiles.
|
|
874
895
|
const configuredOnResponse = config.onResponse;
|
|
875
|
-
this.#onResponse =
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
896
|
+
this.#onResponse = configuredOnResponse
|
|
897
|
+
? async (response, model) => {
|
|
898
|
+
this.rawSseDebugBuffer.recordResponse(response, model);
|
|
899
|
+
await configuredOnResponse(response, model);
|
|
900
|
+
}
|
|
901
|
+
: (response, model) => {
|
|
902
|
+
this.rawSseDebugBuffer.recordResponse(response, model);
|
|
903
|
+
};
|
|
879
904
|
const configuredOnSseEvent = config.onSseEvent;
|
|
880
|
-
this.#onSseEvent =
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
905
|
+
this.#onSseEvent = configuredOnSseEvent
|
|
906
|
+
? (event, model) => {
|
|
907
|
+
this.rawSseDebugBuffer.recordEvent(event, model);
|
|
908
|
+
configuredOnSseEvent(event, model);
|
|
909
|
+
}
|
|
910
|
+
: (event, model) => {
|
|
911
|
+
this.rawSseDebugBuffer.recordEvent(event, model);
|
|
912
|
+
};
|
|
884
913
|
this.agent.setProviderResponseInterceptor(this.#onResponse);
|
|
885
914
|
this.agent.setRawSseEventInterceptor(this.#onSseEvent);
|
|
886
915
|
this.#convertToLlm = config.convertToLlm ?? convertToLlm;
|
|
887
916
|
this.#rebuildSystemPrompt = config.rebuildSystemPrompt;
|
|
888
917
|
this.#getMcpServerInstructions = config.getMcpServerInstructions;
|
|
918
|
+
this.#reloadSshTool = config.reloadSshTool;
|
|
889
919
|
this.#baseSystemPrompt = this.agent.state.systemPrompt;
|
|
890
920
|
this.#mcpDiscoveryEnabled = config.mcpDiscoveryEnabled ?? false;
|
|
891
921
|
this.#setDiscoverableMCPTools(this.#collectDiscoverableMCPToolsFromRegistry());
|
|
@@ -922,6 +952,8 @@ export class AgentSession {
|
|
|
922
952
|
this.#preCacheStreamingEditFile(event);
|
|
923
953
|
this.#maybeAbortStreamingEdit(event);
|
|
924
954
|
});
|
|
955
|
+
// Per-tool TTSR reminders are folded into the matched tool's result via this hook.
|
|
956
|
+
this.agent.afterToolCall = ctx => this.#ttsrAfterToolCall(ctx);
|
|
925
957
|
this.agent.providerSessionState = this.#providerSessionState;
|
|
926
958
|
this.#syncAgentSessionId();
|
|
927
959
|
this.#syncTodoPhasesFromBranch();
|
|
@@ -1315,77 +1347,87 @@ export class AgentSession {
|
|
|
1315
1347
|
if (matchContext && "delta" in assistantEvent) {
|
|
1316
1348
|
const matches = this.#ttsrManager.checkDelta(assistantEvent.delta, matchContext);
|
|
1317
1349
|
if (matches.length > 0) {
|
|
1318
|
-
//
|
|
1319
|
-
|
|
1320
|
-
this.#
|
|
1321
|
-
|
|
1322
|
-
if (
|
|
1323
|
-
|
|
1324
|
-
this.#ttsrAbortPending = true;
|
|
1325
|
-
this.#ensureTtsrResumePromise();
|
|
1326
|
-
this.agent.abort();
|
|
1327
|
-
// Notify extensions (fire-and-forget, does not block abort)
|
|
1350
|
+
// Decide first: a non-interrupting tool-source match attaches to the
|
|
1351
|
+
// specific tool call's result instead of driving a loop-wide follow-up.
|
|
1352
|
+
const shouldInterrupt = this.#shouldInterruptForTtsrMatch(matches, matchContext);
|
|
1353
|
+
const perToolId = shouldInterrupt ? undefined : this.#extractTtsrToolCallId(matchContext);
|
|
1354
|
+
if (perToolId) {
|
|
1355
|
+
this.#addPerToolTtsrInjections(perToolId, matches);
|
|
1328
1356
|
this.#emitSessionEvent({ type: "ttsr_triggered", rules: matches }).catch(() => {});
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1357
|
+
} else {
|
|
1358
|
+
// Queue rules for injection; mark as injected only after successful enqueue.
|
|
1359
|
+
this.#addPendingTtsrInjections(matches);
|
|
1360
|
+
|
|
1361
|
+
if (shouldInterrupt) {
|
|
1362
|
+
// Abort the stream immediately — do not gate on extension callbacks
|
|
1363
|
+
this.#ttsrAbortPending = true;
|
|
1364
|
+
this.#ensureTtsrResumePromise();
|
|
1365
|
+
this.agent.abort();
|
|
1366
|
+
// Notify extensions (fire-and-forget, does not block abort)
|
|
1367
|
+
this.#emitSessionEvent({ type: "ttsr_triggered", rules: matches }).catch(() => {});
|
|
1368
|
+
// Schedule retry after a short delay
|
|
1369
|
+
const retryToken = ++this.#ttsrRetryToken;
|
|
1370
|
+
const generation = this.#promptGeneration;
|
|
1371
|
+
const targetMessageTimestamp =
|
|
1372
|
+
event.message.role === "assistant" ? event.message.timestamp : undefined;
|
|
1373
|
+
this.#schedulePostPromptTask(
|
|
1374
|
+
async () => {
|
|
1375
|
+
if (this.#ttsrRetryToken !== retryToken) {
|
|
1376
|
+
this.#resolveTtsrResume();
|
|
1377
|
+
return;
|
|
1378
|
+
}
|
|
1340
1379
|
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1380
|
+
const targetAssistantIndex = this.#findTtsrAssistantIndex(targetMessageTimestamp);
|
|
1381
|
+
if (
|
|
1382
|
+
!this.#ttsrAbortPending ||
|
|
1383
|
+
this.#promptGeneration !== generation ||
|
|
1384
|
+
targetAssistantIndex === -1
|
|
1385
|
+
) {
|
|
1386
|
+
this.#ttsrAbortPending = false;
|
|
1387
|
+
this.#pendingTtsrInjections = [];
|
|
1388
|
+
this.#perToolTtsrInjections.clear();
|
|
1389
|
+
this.#resolveTtsrResume();
|
|
1390
|
+
return;
|
|
1391
|
+
}
|
|
1347
1392
|
this.#ttsrAbortPending = false;
|
|
1348
|
-
this.#
|
|
1349
|
-
this.#
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
{ delayMs: 50 },
|
|
1387
|
-
);
|
|
1388
|
-
return;
|
|
1393
|
+
this.#perToolTtsrInjections.clear();
|
|
1394
|
+
const ttsrSettings = this.#ttsrManager?.getSettings();
|
|
1395
|
+
if (ttsrSettings?.contextMode === "discard") {
|
|
1396
|
+
// Remove the partial/aborted assistant turn from agent state
|
|
1397
|
+
this.agent.replaceMessages(this.agent.state.messages.slice(0, targetAssistantIndex));
|
|
1398
|
+
}
|
|
1399
|
+
// Inject TTSR rules as system reminder before retry
|
|
1400
|
+
const injection = this.#getTtsrInjectionContent();
|
|
1401
|
+
if (injection) {
|
|
1402
|
+
const details = { rules: injection.rules.map(rule => rule.name) };
|
|
1403
|
+
this.agent.appendMessage({
|
|
1404
|
+
role: "custom",
|
|
1405
|
+
customType: "ttsr-injection",
|
|
1406
|
+
content: injection.content,
|
|
1407
|
+
display: false,
|
|
1408
|
+
details,
|
|
1409
|
+
attribution: "agent",
|
|
1410
|
+
timestamp: Date.now(),
|
|
1411
|
+
});
|
|
1412
|
+
this.sessionManager.appendCustomMessageEntry(
|
|
1413
|
+
"ttsr-injection",
|
|
1414
|
+
injection.content,
|
|
1415
|
+
false,
|
|
1416
|
+
details,
|
|
1417
|
+
"agent",
|
|
1418
|
+
);
|
|
1419
|
+
this.#markTtsrInjected(details.rules);
|
|
1420
|
+
}
|
|
1421
|
+
try {
|
|
1422
|
+
await this.agent.continue();
|
|
1423
|
+
} catch {
|
|
1424
|
+
this.#resolveTtsrResume();
|
|
1425
|
+
}
|
|
1426
|
+
},
|
|
1427
|
+
{ delayMs: 50 },
|
|
1428
|
+
);
|
|
1429
|
+
return;
|
|
1430
|
+
}
|
|
1389
1431
|
}
|
|
1390
1432
|
}
|
|
1391
1433
|
}
|
|
@@ -1794,6 +1836,61 @@ export class AgentSession {
|
|
|
1794
1836
|
}
|
|
1795
1837
|
}
|
|
1796
1838
|
|
|
1839
|
+
/** Tool-call id whose argument deltas triggered a TTSR match, when known. */
|
|
1840
|
+
#extractTtsrToolCallId(matchContext: TtsrMatchContext): string | undefined {
|
|
1841
|
+
if (matchContext.source !== "tool") return undefined;
|
|
1842
|
+
const key = matchContext.streamKey;
|
|
1843
|
+
if (typeof key !== "string" || !key.startsWith("toolcall:")) return undefined;
|
|
1844
|
+
const id = key.slice("toolcall:".length);
|
|
1845
|
+
return id.length > 0 ? id : undefined;
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
#addPerToolTtsrInjections(toolCallId: string, rules: Rule[]): void {
|
|
1849
|
+
const bucket = this.#perToolTtsrInjections.get(toolCallId) ?? [];
|
|
1850
|
+
const seen = new Set(bucket.map(rule => rule.name));
|
|
1851
|
+
// Dedupe against rules already bucketed for other tool calls in this
|
|
1852
|
+
// same assistant message so one rule attaches to exactly one tool call.
|
|
1853
|
+
const claimedElsewhere = new Set<string>();
|
|
1854
|
+
for (const [otherId, otherBucket] of this.#perToolTtsrInjections) {
|
|
1855
|
+
if (otherId === toolCallId) continue;
|
|
1856
|
+
for (const rule of otherBucket) claimedElsewhere.add(rule.name);
|
|
1857
|
+
}
|
|
1858
|
+
const newlyAdded: string[] = [];
|
|
1859
|
+
for (const rule of rules) {
|
|
1860
|
+
if (seen.has(rule.name) || claimedElsewhere.has(rule.name)) continue;
|
|
1861
|
+
bucket.push(rule);
|
|
1862
|
+
seen.add(rule.name);
|
|
1863
|
+
newlyAdded.push(rule.name);
|
|
1864
|
+
}
|
|
1865
|
+
if (bucket.length === 0) return;
|
|
1866
|
+
this.#perToolTtsrInjections.set(toolCallId, bucket);
|
|
1867
|
+
// Claim the rules in the TTSR manager so subsequent deltas in this same
|
|
1868
|
+
// turn (e.g. a sibling tool call's argument stream) don't re-match them.
|
|
1869
|
+
// Persistence still happens in #ttsrAfterToolCall when the tool actually
|
|
1870
|
+
// produces a result we can fold the reminder into.
|
|
1871
|
+
if (newlyAdded.length > 0) {
|
|
1872
|
+
this.#ttsrManager?.markInjectedByNames(newlyAdded);
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1876
|
+
/** `afterToolCall` hook: fold any per-tool TTSR reminders into the result. */
|
|
1877
|
+
#ttsrAfterToolCall(ctx: AfterToolCallContext): AfterToolCallResult | undefined {
|
|
1878
|
+
const rules = this.#perToolTtsrInjections.get(ctx.toolCall.id);
|
|
1879
|
+
if (!rules || rules.length === 0) return undefined;
|
|
1880
|
+
this.#perToolTtsrInjections.delete(ctx.toolCall.id);
|
|
1881
|
+
const reminder = rules
|
|
1882
|
+
.map(r => prompt.render(ttsrToolReminderTemplate, { name: r.name, path: r.path, content: r.content }))
|
|
1883
|
+
.join("\n\n");
|
|
1884
|
+
// The TTSR manager was already claimed at bucket time; only persistence remains.
|
|
1885
|
+
const ruleNames = rules.map(r => r.name.trim()).filter(n => n.length > 0);
|
|
1886
|
+
if (ruleNames.length > 0) {
|
|
1887
|
+
this.sessionManager.appendTtsrInjection(ruleNames);
|
|
1888
|
+
}
|
|
1889
|
+
return {
|
|
1890
|
+
content: [{ type: "text", text: reminder }, ...ctx.result.content],
|
|
1891
|
+
};
|
|
1892
|
+
}
|
|
1893
|
+
|
|
1797
1894
|
#extractTtsrRuleNames(details: unknown): string[] {
|
|
1798
1895
|
if (!details || typeof details !== "object" || Array.isArray(details)) {
|
|
1799
1896
|
return [];
|
|
@@ -1844,6 +1941,11 @@ export class AgentSession {
|
|
|
1844
1941
|
}
|
|
1845
1942
|
|
|
1846
1943
|
#queueDeferredTtsrInjectionIfNeeded(assistantMsg: AssistantMessage): void {
|
|
1944
|
+
if (assistantMsg.stopReason === "aborted" || assistantMsg.stopReason === "error") {
|
|
1945
|
+
// Tools that hadn't started by abort/error will never produce results to
|
|
1946
|
+
// fold injections into — drop their stale per-tool entries.
|
|
1947
|
+
this.#perToolTtsrInjections.clear();
|
|
1948
|
+
}
|
|
1847
1949
|
if (this.#ttsrAbortPending || this.#pendingTtsrInjections.length === 0) {
|
|
1848
1950
|
return;
|
|
1849
1951
|
}
|
|
@@ -3000,6 +3102,45 @@ export class AgentSession {
|
|
|
3000
3102
|
}
|
|
3001
3103
|
}
|
|
3002
3104
|
|
|
3105
|
+
/**
|
|
3106
|
+
* Reload the SSH tool from disk-backed capability discovery and make the
|
|
3107
|
+
* refreshed definition visible to the next model call without restarting.
|
|
3108
|
+
*/
|
|
3109
|
+
async refreshSshTool(options?: { activateIfAvailable?: boolean }): Promise<void> {
|
|
3110
|
+
resetCapabilities();
|
|
3111
|
+
if (!this.#reloadSshTool) return;
|
|
3112
|
+
const previousSshTool = this.#toolRegistry.get("ssh");
|
|
3113
|
+
const previousActiveToolNames = this.getActiveToolNames();
|
|
3114
|
+
const hadSshTool = previousSshTool !== undefined;
|
|
3115
|
+
const wasActive = previousActiveToolNames.includes("ssh");
|
|
3116
|
+
const previousHostNames =
|
|
3117
|
+
previousSshTool && "hostNames" in previousSshTool && Array.isArray(previousSshTool.hostNames)
|
|
3118
|
+
? [...previousSshTool.hostNames]
|
|
3119
|
+
: [];
|
|
3120
|
+
const candidateHostNames = new Set(previousHostNames);
|
|
3121
|
+
const capability = await loadCapability<{ name: string }>("ssh", { cwd: this.sessionManager.getCwd() });
|
|
3122
|
+
for (const host of capability.items) {
|
|
3123
|
+
if (typeof host?.name === "string") {
|
|
3124
|
+
candidateHostNames.add(host.name);
|
|
3125
|
+
}
|
|
3126
|
+
}
|
|
3127
|
+
await invalidateHostMetadata(candidateHostNames);
|
|
3128
|
+
const sshAllowed = this.#requestedToolNames === undefined || this.#requestedToolNames.has("ssh");
|
|
3129
|
+
const refreshedTool = await this.#reloadSshTool();
|
|
3130
|
+
if (refreshedTool) {
|
|
3131
|
+
this.#toolRegistry.set(refreshedTool.name, refreshedTool);
|
|
3132
|
+
} else {
|
|
3133
|
+
this.#toolRegistry.delete("ssh");
|
|
3134
|
+
this.#selectedDiscoveredToolNames.delete("ssh");
|
|
3135
|
+
}
|
|
3136
|
+
|
|
3137
|
+
const nextActive = previousActiveToolNames.filter(name => name !== "ssh" && this.#toolRegistry.has(name));
|
|
3138
|
+
if (refreshedTool && sshAllowed && (wasActive || (options?.activateIfAvailable && !hadSshTool))) {
|
|
3139
|
+
nextActive.push(refreshedTool.name);
|
|
3140
|
+
}
|
|
3141
|
+
await this.#applyActiveToolsByName(nextActive);
|
|
3142
|
+
}
|
|
3143
|
+
|
|
3003
3144
|
/**
|
|
3004
3145
|
* Set active tools by name.
|
|
3005
3146
|
* Only tools in the registry can be enabled. Unknown tool names are ignored.
|
|
@@ -5200,6 +5341,7 @@ export class AgentSession {
|
|
|
5200
5341
|
convertToLlm,
|
|
5201
5342
|
initiatorOverride: "agent",
|
|
5202
5343
|
metadata: this.agent.metadataForProvider(model.provider),
|
|
5344
|
+
telemetry: resolveTelemetry(this.agent.telemetry, this.sessionId),
|
|
5203
5345
|
},
|
|
5204
5346
|
handoffSignal,
|
|
5205
5347
|
);
|
|
@@ -5912,6 +6054,7 @@ export class AgentSession {
|
|
|
5912
6054
|
options?: SummaryOptions,
|
|
5913
6055
|
): Promise<CompactionResult> {
|
|
5914
6056
|
const candidates = this.#getCompactionModelCandidates(this.#modelRegistry.getAvailable());
|
|
6057
|
+
const telemetry = resolveTelemetry(this.agent.telemetry, this.sessionId);
|
|
5915
6058
|
|
|
5916
6059
|
for (const candidate of candidates) {
|
|
5917
6060
|
const apiKey = await this.#modelRegistry.getApiKey(candidate, this.sessionId);
|
|
@@ -5922,6 +6065,7 @@ export class AgentSession {
|
|
|
5922
6065
|
...options,
|
|
5923
6066
|
metadata: this.agent.metadataForProvider(candidate.provider),
|
|
5924
6067
|
convertToLlm,
|
|
6068
|
+
telemetry,
|
|
5925
6069
|
});
|
|
5926
6070
|
} catch (error) {
|
|
5927
6071
|
if (!this.#isCompactionAuthFailure(error)) {
|
|
@@ -6158,6 +6302,7 @@ export class AgentSession {
|
|
|
6158
6302
|
} else {
|
|
6159
6303
|
const candidates = this.#getCompactionModelCandidates(availableModels);
|
|
6160
6304
|
const retrySettings = this.settings.getGroup("retry");
|
|
6305
|
+
const telemetry = resolveTelemetry(this.agent.telemetry, this.sessionId);
|
|
6161
6306
|
let compactResult: CompactionResult | undefined;
|
|
6162
6307
|
let lastError: unknown;
|
|
6163
6308
|
|
|
@@ -6175,6 +6320,7 @@ export class AgentSession {
|
|
|
6175
6320
|
metadata: this.agent.metadataForProvider(candidate.provider),
|
|
6176
6321
|
initiatorOverride: "agent",
|
|
6177
6322
|
convertToLlm,
|
|
6323
|
+
telemetry,
|
|
6178
6324
|
});
|
|
6179
6325
|
break;
|
|
6180
6326
|
} catch (error) {
|
|
@@ -7779,6 +7925,7 @@ export class AgentSession {
|
|
|
7779
7925
|
reserveTokens: branchSummarySettings.reserveTokens,
|
|
7780
7926
|
metadata: this.agent.metadataForProvider(model.provider),
|
|
7781
7927
|
convertToLlm,
|
|
7928
|
+
telemetry: resolveTelemetry(this.agent.telemetry, this.sessionId),
|
|
7782
7929
|
});
|
|
7783
7930
|
this.#branchSummaryAbortController = undefined;
|
|
7784
7931
|
if (result.aborted) {
|
|
@@ -8014,11 +8161,12 @@ export class AgentSession {
|
|
|
8014
8161
|
};
|
|
8015
8162
|
}
|
|
8016
8163
|
|
|
8017
|
-
async fetchUsageReports(): Promise<UsageReport[] | null> {
|
|
8164
|
+
async fetchUsageReports(signal?: AbortSignal): Promise<UsageReport[] | null> {
|
|
8018
8165
|
const authStorage = this.#modelRegistry.authStorage;
|
|
8019
8166
|
if (!authStorage.fetchUsageReports) return null;
|
|
8020
8167
|
return authStorage.fetchUsageReports({
|
|
8021
8168
|
baseUrlResolver: provider => this.#modelRegistry.getProviderBaseUrl?.(provider),
|
|
8169
|
+
signal,
|
|
8022
8170
|
});
|
|
8023
8171
|
}
|
|
8024
8172
|
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { Database, type Statement } from "bun:sqlite";
|
|
2
2
|
import * as fs from "node:fs";
|
|
3
3
|
import * as path from "node:path";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
type AuthCredential,
|
|
6
|
+
type AuthCredentialStore,
|
|
7
|
+
SqliteAuthCredentialStore,
|
|
8
|
+
type StoredAuthCredential,
|
|
9
|
+
} from "@oh-my-pi/pi-ai";
|
|
5
10
|
import { getAgentDbPath, isRecord, logger } from "@oh-my-pi/pi-utils";
|
|
6
11
|
import type { RawSettings as Settings } from "../config/settings";
|
|
7
12
|
|
|
@@ -57,7 +62,7 @@ export class AgentStorage {
|
|
|
57
62
|
this.#hardenPermissions(dbPath);
|
|
58
63
|
|
|
59
64
|
// Create AuthCredentialStore with our open database
|
|
60
|
-
this.#authStore = new
|
|
65
|
+
this.#authStore = new SqliteAuthCredentialStore(this.#db);
|
|
61
66
|
|
|
62
67
|
this.#listSettingsStmt = this.#db.prepare("SELECT key, value FROM settings");
|
|
63
68
|
this.#upsertModelUsageStmt = this.#db.prepare(
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve auth-broker connection configuration for the local omp client.
|
|
3
|
+
*
|
|
4
|
+
* Precedence (highest first):
|
|
5
|
+
* 1. `OMP_AUTH_BROKER_URL` / `OMP_AUTH_BROKER_TOKEN` env vars.
|
|
6
|
+
* 2. `auth.broker.url` / `auth.broker.token` in `~/.omp/agent/config.yml`
|
|
7
|
+
* (hidden from the settings UI; `!command` resolution supported).
|
|
8
|
+
* 3. Token file `~/.omp/auth-broker.token` (paired with URL from env or config).
|
|
9
|
+
*
|
|
10
|
+
* Returns null when no broker URL is configured — caller falls back to the
|
|
11
|
+
* local SQLite store.
|
|
12
|
+
*
|
|
13
|
+
* Reads config.yml directly (instead of going through `Settings.init`) because
|
|
14
|
+
* `discoverAuthStorage` runs before the settings singleton is initialized in
|
|
15
|
+
* `runRootCommand`, and we want hand-edited config entries to be honoured at
|
|
16
|
+
* boot without forcing a startup reorder.
|
|
17
|
+
*/
|
|
18
|
+
import * as path from "node:path";
|
|
19
|
+
import { getAgentDir, getConfigRootDir, isEnoent, logger } from "@oh-my-pi/pi-utils";
|
|
20
|
+
import { YAML } from "bun";
|
|
21
|
+
import { resolveConfigValue } from "../config/resolve-config-value";
|
|
22
|
+
|
|
23
|
+
export interface AuthBrokerClientConfig {
|
|
24
|
+
url: string;
|
|
25
|
+
token: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Path to the local bearer token file. Created on the broker host by `omp auth-broker token`. */
|
|
29
|
+
export function getAuthBrokerTokenFilePath(): string {
|
|
30
|
+
return path.join(getConfigRootDir(), "auth-broker.token");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
async function readTokenFile(): Promise<string | null> {
|
|
34
|
+
try {
|
|
35
|
+
const raw = await Bun.file(getAuthBrokerTokenFilePath()).text();
|
|
36
|
+
const trimmed = raw.trim();
|
|
37
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
38
|
+
} catch (err) {
|
|
39
|
+
if (isEnoent(err)) return null;
|
|
40
|
+
logger.warn("auth-broker token file unreadable", { error: String(err) });
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
interface ConfigSnapshot {
|
|
46
|
+
url?: string;
|
|
47
|
+
token?: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function readConfigYaml(): Promise<ConfigSnapshot> {
|
|
51
|
+
const configPath = path.join(getAgentDir(), "config.yml");
|
|
52
|
+
try {
|
|
53
|
+
const raw = await Bun.file(configPath).text();
|
|
54
|
+
const parsed = YAML.parse(raw);
|
|
55
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return {};
|
|
56
|
+
const record = parsed as Record<string, unknown>;
|
|
57
|
+
const url = typeof record["auth.broker.url"] === "string" ? (record["auth.broker.url"] as string) : undefined;
|
|
58
|
+
const token =
|
|
59
|
+
typeof record["auth.broker.token"] === "string" ? (record["auth.broker.token"] as string) : undefined;
|
|
60
|
+
return { url, token };
|
|
61
|
+
} catch (err) {
|
|
62
|
+
if (isEnoent(err)) return {};
|
|
63
|
+
logger.warn("auth-broker config.yml unreadable", { error: String(err) });
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Read broker configuration. Returns null when the URL is missing
|
|
70
|
+
* (broker disabled — local store is used). Throws when URL is set but no
|
|
71
|
+
* token is available — the caller cannot fall back silently because the
|
|
72
|
+
* user explicitly asked to use the broker.
|
|
73
|
+
*/
|
|
74
|
+
export async function resolveAuthBrokerConfig(): Promise<AuthBrokerClientConfig | null> {
|
|
75
|
+
const envUrl = process.env.OMP_AUTH_BROKER_URL;
|
|
76
|
+
const envToken = process.env.OMP_AUTH_BROKER_TOKEN;
|
|
77
|
+
|
|
78
|
+
let url = envUrl && envUrl.length > 0 ? envUrl : undefined;
|
|
79
|
+
let configToken: string | undefined;
|
|
80
|
+
if (!url || !envToken) {
|
|
81
|
+
const fromConfig = await readConfigYaml();
|
|
82
|
+
if (!url && fromConfig.url) {
|
|
83
|
+
const resolved = await resolveConfigValue(fromConfig.url);
|
|
84
|
+
if (resolved && resolved.length > 0) url = resolved;
|
|
85
|
+
}
|
|
86
|
+
if (fromConfig.token) {
|
|
87
|
+
const resolved = await resolveConfigValue(fromConfig.token);
|
|
88
|
+
if (resolved && resolved.length > 0) configToken = resolved;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (!url) return null;
|
|
92
|
+
|
|
93
|
+
const token =
|
|
94
|
+
(envToken && envToken.length > 0 ? envToken : undefined) ?? configToken ?? (await readTokenFile()) ?? undefined;
|
|
95
|
+
if (!token) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
`OMP_AUTH_BROKER_URL is set (${url}) but no bearer token is available. ` +
|
|
98
|
+
`Set OMP_AUTH_BROKER_TOKEN, the \`auth.broker.token\` config entry, or place one at ${getAuthBrokerTokenFilePath()}.`,
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
return { url, token };
|
|
102
|
+
}
|
|
@@ -14,4 +14,10 @@ export type {
|
|
|
14
14
|
SerializedAuthStorage,
|
|
15
15
|
StoredAuthCredential,
|
|
16
16
|
} from "@oh-my-pi/pi-ai";
|
|
17
|
-
export {
|
|
17
|
+
export {
|
|
18
|
+
AuthBrokerClient,
|
|
19
|
+
AuthStorage,
|
|
20
|
+
REMOTE_REFRESH_SENTINEL,
|
|
21
|
+
RemoteAuthCredentialStore,
|
|
22
|
+
SqliteAuthCredentialStore,
|
|
23
|
+
} from "@oh-my-pi/pi-ai";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core";
|
|
2
|
-
import { sanitizeText } from "@oh-my-pi/pi-
|
|
2
|
+
import { sanitizeText } from "@oh-my-pi/pi-utils";
|
|
3
3
|
import { formatBytes } from "../tools/render-utils";
|
|
4
4
|
import { sanitizeWithOptionalSixelPassthrough } from "../utils/sixel";
|
|
5
5
|
|
|
@@ -1506,6 +1506,7 @@ const BUILTIN_SLASH_COMMAND_REGISTRY: ReadonlyArray<SlashCommandSpec> = [
|
|
|
1506
1506
|
const projectPath = await resolveActiveProjectRegistryPath(runtime.ctx.sessionManager.getCwd());
|
|
1507
1507
|
clearPluginRootsAndCaches(projectPath ? [projectPath] : undefined);
|
|
1508
1508
|
await runtime.ctx.refreshSlashCommandState();
|
|
1509
|
+
await runtime.ctx.session.refreshSshTool({ activateIfAvailable: true });
|
|
1509
1510
|
runtime.ctx.showStatus("Plugins reloaded.");
|
|
1510
1511
|
runtime.ctx.editor.setText("");
|
|
1511
1512
|
},
|
|
@@ -1632,6 +1633,7 @@ export async function executeBuiltinSlashCommand(
|
|
|
1632
1633
|
const projectPath = await resolveActiveProjectRegistryPath(ctx.sessionManager.getCwd());
|
|
1633
1634
|
clearPluginRootsAndCaches(projectPath ? [projectPath] : undefined);
|
|
1634
1635
|
await ctx.refreshSlashCommandState();
|
|
1636
|
+
await ctx.session.refreshSshTool({ activateIfAvailable: true });
|
|
1635
1637
|
},
|
|
1636
1638
|
};
|
|
1637
1639
|
const result = await command.handle(parsed, adapted);
|
|
@@ -142,6 +142,7 @@ async function handleRemoveCommand(rest: string, runtime: SlashCommandRuntime):
|
|
|
142
142
|
try {
|
|
143
143
|
const filePath = getSSHConfigPath(parsed.scope, runtime.cwd);
|
|
144
144
|
await removeSSHHost(filePath, parsed.name);
|
|
145
|
+
await runtime.session.refreshSshTool();
|
|
145
146
|
await runtime.output(`Removed SSH host "${parsed.name}" from ${parsed.scope} config.`);
|
|
146
147
|
return commandConsumed();
|
|
147
148
|
} catch (err) {
|
|
@@ -162,6 +163,7 @@ async function handleAddCommand(rest: string, runtime: SlashCommandRuntime): Pro
|
|
|
162
163
|
try {
|
|
163
164
|
const filePath = getSSHConfigPath(parsed.scope, runtime.cwd);
|
|
164
165
|
await addSSHHost(filePath, parsed.name, hostConfig);
|
|
166
|
+
await runtime.session.refreshSshTool({ activateIfAvailable: true });
|
|
165
167
|
await runtime.output(`Added SSH host "${parsed.name}" (${parsed.scope}).`);
|
|
166
168
|
return commandConsumed();
|
|
167
169
|
} catch (err) {
|