@prometheus-ai/agent 0.5.3 → 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 +39 -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/gateway-cli.d.ts +4 -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/gateway.d.ts +3 -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 +1211 -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/gateway/adapters/telegram/access.d.ts +4 -1
- package/dist/types/gateway/adapters/telegram/setup-api.d.ts +1 -1
- package/dist/types/gateway/adapters/telegram/webhook.d.ts +1 -1
- package/dist/types/gateway/types.d.ts +1 -1
- 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/gateway-cli.ts +32 -2
- 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/gateway.ts +4 -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 +1445 -382
- 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/gateway/adapters/telegram/access.ts +39 -4
- package/src/gateway/adapters/telegram/normalize.ts +16 -1
- package/src/gateway/adapters/telegram/setup-api.ts +7 -1
- package/src/gateway/adapters/telegram/webhook.ts +26 -5
- package/src/gateway/context.ts +9 -1
- package/src/gateway/types.ts +1 -1
- 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 +11 -9
- 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/telegram.ts +77 -22
- 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
|
@@ -18,6 +18,12 @@ const transport: Transport = {
|
|
|
18
18
|
} catch {
|
|
19
19
|
// Already closed.
|
|
20
20
|
}
|
|
21
|
+
|
|
22
|
+
// `parentPort.close()` only disconnects the channel in Bun; it does not
|
|
23
|
+
// make the Worker emit `close` or reap ref'ed user handles. Exit from
|
|
24
|
+
// inside the worker after `WorkerCore` has sent the `closed` ack so the
|
|
25
|
+
// host can observe real worker exit without calling `Worker.terminate()`.
|
|
26
|
+
setTimeout(() => process.exit(0), 0);
|
|
21
27
|
},
|
|
22
28
|
};
|
|
23
29
|
|
|
@@ -5,6 +5,12 @@ export type { JsDisplayOutput } from "./shared/types";
|
|
|
5
5
|
export interface SessionSnapshot {
|
|
6
6
|
cwd: string;
|
|
7
7
|
sessionId: string;
|
|
8
|
+
/**
|
|
9
|
+
* On-disk roots the helpers substitute for internal-URL schemes
|
|
10
|
+
* (e.g. `{ local: "/…/artifacts/local" }`). Lets `read`/`write`/`append`
|
|
11
|
+
* accept `local://…` paths instead of writing a literal `local:/` directory.
|
|
12
|
+
*/
|
|
13
|
+
localRoots?: Record<string, string>;
|
|
8
14
|
}
|
|
9
15
|
|
|
10
16
|
export interface RunErrorPayload {
|
package/src/eval/llm-bridge.ts
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* in, text (or, with `schema`, a structured object) out.
|
|
13
13
|
*/
|
|
14
14
|
import { instrumentedCompleteSimple, resolveTelemetry } from "@prometheus-ai/agent-core";
|
|
15
|
-
import { type Api, Effort,
|
|
15
|
+
import { type Api, Effort, type Model, type Tool } from "@prometheus-ai/ai";
|
|
16
|
+
import { getSupportedEfforts } from "@prometheus-ai/catalog/model-thinking";
|
|
16
17
|
import * as z from "zod/v4";
|
|
17
18
|
import { extractTextContent, extractToolCall, parseJsonPayload } from "../commit/utils";
|
|
18
19
|
import { expandRoleAlias, formatModelString, resolveModelFromString } from "../config/model-resolver";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { describe, expect, it } from "bun:test";
|
|
2
|
+
import { PYTHON_PRELUDE } from "../prelude";
|
|
3
|
+
|
|
4
|
+
describe("python prelude", () => {
|
|
5
|
+
it("exposes read(path, offset?, limit?) with positional optional args", () => {
|
|
6
|
+
// The eval docs advertise `read(path, offset?=1, limit?=None)`. A
|
|
7
|
+
// keyword-only signature (`def read(path, *, offset=1, limit=None)`)
|
|
8
|
+
// makes `read("file", 10)` raise `TypeError: read() takes 1 positional
|
|
9
|
+
// argument but 2 were given`, which agents in the wild repeatedly hit.
|
|
10
|
+
// Lock the contract so the helper accepts both positional and keyword
|
|
11
|
+
// forms.
|
|
12
|
+
const match = PYTHON_PRELUDE.match(/def\s+read\(([^)]+)\)/);
|
|
13
|
+
expect(match).not.toBeNull();
|
|
14
|
+
const signature = match?.[1] ?? "";
|
|
15
|
+
expect(signature).not.toContain("*,");
|
|
16
|
+
expect(signature).toContain("offset");
|
|
17
|
+
expect(signature).toContain("limit");
|
|
18
|
+
});
|
|
19
|
+
});
|
package/src/eval/py/executor.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
1
2
|
import * as path from "node:path";
|
|
2
3
|
|
|
3
4
|
import { getProjectDir, logger } from "@prometheus-ai/utils";
|
|
4
|
-
import {
|
|
5
|
+
import { Settings } from "../../config/settings";
|
|
5
6
|
import { OutputSink } from "../../session/streaming-output";
|
|
6
7
|
import type { ToolSession } from "../../tools";
|
|
7
8
|
import { resolveOutputMaxColumns, resolveOutputSinkHeadBytes } from "../../tools/output-meta";
|
|
@@ -15,6 +16,7 @@ import {
|
|
|
15
16
|
type KernelRuntimeEnv,
|
|
16
17
|
PythonKernel,
|
|
17
18
|
} from "./kernel";
|
|
19
|
+
import { resolveExplicitPythonRuntime } from "./runtime";
|
|
18
20
|
import { ensurePyToolBridge, registerPyToolBridge } from "./tool-bridge";
|
|
19
21
|
|
|
20
22
|
export type PythonKernelMode = "session" | "per-call";
|
|
@@ -42,6 +44,11 @@ export interface PythonExecutorOptions {
|
|
|
42
44
|
kernelOwnerId?: string;
|
|
43
45
|
/** Kernel mode (session reuse vs per-call) */
|
|
44
46
|
kernelMode?: PythonKernelMode;
|
|
47
|
+
/**
|
|
48
|
+
* Explicit interpreter path (`python.interpreter` resolved from the
|
|
49
|
+
* session's settings). Skips automatic runtime discovery when set.
|
|
50
|
+
*/
|
|
51
|
+
interpreter?: string;
|
|
45
52
|
/** Restart the kernel before executing */
|
|
46
53
|
reset?: boolean;
|
|
47
54
|
/** Session file path for accessing task outputs */
|
|
@@ -56,6 +63,13 @@ export interface PythonExecutorOptions {
|
|
|
56
63
|
/** Artifact path/id for full output storage */
|
|
57
64
|
artifactPath?: string;
|
|
58
65
|
artifactId?: string;
|
|
66
|
+
/**
|
|
67
|
+
* On-disk roots the prelude helpers (`read`/`write`/`append`) substitute for
|
|
68
|
+
* internal-URL schemes (e.g. `{ local: "/…/artifacts/local" }`). Exported to
|
|
69
|
+
* the kernel as `PROMETHEUS_EVAL_LOCAL_ROOTS` (JSON) so `write("local://x")` lands
|
|
70
|
+
* where `read local://x` resolves instead of a literal `local:/` directory.
|
|
71
|
+
*/
|
|
72
|
+
localRoots?: Record<string, string>;
|
|
59
73
|
/**
|
|
60
74
|
* ToolSession used to resolve host-side `tool.<name>(args)` calls made from
|
|
61
75
|
* the Python prelude's bridge proxy. When omitted, the bridge env vars are
|
|
@@ -109,9 +123,9 @@ export interface PythonResult {
|
|
|
109
123
|
// ---------------------------------------------------------------------------
|
|
110
124
|
// Session bookkeeping
|
|
111
125
|
//
|
|
112
|
-
// One PythonKernel subprocess per (session id, cwd) tuple. The
|
|
113
|
-
// process-global cwd/sys.path during execution, so cross-directory
|
|
114
|
-
// never share a live kernel. Multiple agent owners can still register against
|
|
126
|
+
// One PythonKernel subprocess per (session id, cwd, interpreter) tuple. The
|
|
127
|
+
// runner mutates process-global cwd/sys.path during execution, so cross-directory
|
|
128
|
+
// work must never share a live kernel. Multiple agent owners can still register against
|
|
115
129
|
// the same tuple; the kernel stays alive until the last owner detaches.
|
|
116
130
|
// ---------------------------------------------------------------------------
|
|
117
131
|
|
|
@@ -126,14 +140,25 @@ interface PythonSession {
|
|
|
126
140
|
|
|
127
141
|
const sessions = new Map<string, PythonSession>();
|
|
128
142
|
const startingSessions = new Map<string, Promise<PythonSession>>();
|
|
129
|
-
const resettingSessions = new
|
|
143
|
+
const resettingSessions = new Map<string, Promise<void>>();
|
|
130
144
|
|
|
131
145
|
function normalizeSessionCwd(cwd: string): string {
|
|
132
146
|
return path.resolve(cwd);
|
|
133
147
|
}
|
|
134
148
|
|
|
135
|
-
function
|
|
136
|
-
|
|
149
|
+
function normalizeExplicitInterpreter(cwd: string, interpreter: string | undefined): string {
|
|
150
|
+
if (interpreter === undefined) return "";
|
|
151
|
+
const resolved = resolveExplicitPythonRuntime(interpreter, cwd, {}).pythonPath;
|
|
152
|
+
try {
|
|
153
|
+
return fs.realpathSync.native(resolved);
|
|
154
|
+
} catch {
|
|
155
|
+
return resolved;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function buildSessionKey(sessionId: string, cwd: string, interpreter: string | undefined): string {
|
|
160
|
+
const normalizedCwd = normalizeSessionCwd(cwd);
|
|
161
|
+
return `${sessionId}\0${normalizedCwd}\0${normalizeExplicitInterpreter(normalizedCwd, interpreter)}`;
|
|
137
162
|
}
|
|
138
163
|
|
|
139
164
|
// ---------------------------------------------------------------------------
|
|
@@ -275,6 +300,7 @@ const MANAGED_KERNEL_ENV_KEYS = [
|
|
|
275
300
|
"PROMETHEUS_TOOL_BRIDGE_URL",
|
|
276
301
|
"PROMETHEUS_TOOL_BRIDGE_TOKEN",
|
|
277
302
|
"PROMETHEUS_TOOL_BRIDGE_SESSION",
|
|
303
|
+
"PROMETHEUS_EVAL_LOCAL_ROOTS",
|
|
278
304
|
] as const;
|
|
279
305
|
|
|
280
306
|
function buildKernelEnvPatch(options: {
|
|
@@ -282,13 +308,16 @@ function buildKernelEnvPatch(options: {
|
|
|
282
308
|
artifactsDir?: string;
|
|
283
309
|
bridgeSessionId?: string;
|
|
284
310
|
bridge?: { url: string; token: string };
|
|
311
|
+
localRoots?: Record<string, string>;
|
|
285
312
|
}): KernelRuntimeEnv {
|
|
313
|
+
const localRoots = options.localRoots;
|
|
286
314
|
return {
|
|
287
315
|
PROMETHEUS_SESSION_FILE: options.sessionFile ?? null,
|
|
288
316
|
PROMETHEUS_ARTIFACTS_DIR: options.artifactsDir ?? null,
|
|
289
317
|
PROMETHEUS_TOOL_BRIDGE_URL: options.bridge?.url ?? null,
|
|
290
318
|
PROMETHEUS_TOOL_BRIDGE_TOKEN: options.bridge?.token ?? null,
|
|
291
319
|
PROMETHEUS_TOOL_BRIDGE_SESSION: options.bridge && options.bridgeSessionId ? options.bridgeSessionId : null,
|
|
320
|
+
PROMETHEUS_EVAL_LOCAL_ROOTS: localRoots && Object.keys(localRoots).length > 0 ? JSON.stringify(localRoots) : null,
|
|
292
321
|
};
|
|
293
322
|
}
|
|
294
323
|
|
|
@@ -297,6 +326,7 @@ function buildKernelEnv(options: {
|
|
|
297
326
|
artifactsDir?: string;
|
|
298
327
|
bridgeSessionId?: string;
|
|
299
328
|
bridge?: { url: string; token: string };
|
|
329
|
+
localRoots?: Record<string, string>;
|
|
300
330
|
}): Record<string, string> | undefined {
|
|
301
331
|
const patch = buildKernelEnvPatch(options);
|
|
302
332
|
const env: Record<string, string> = {};
|
|
@@ -314,6 +344,7 @@ async function startKernel(cwd: string, options: PythonExecutorOptions): Promise
|
|
|
314
344
|
env: buildKernelEnv(options),
|
|
315
345
|
signal: options.signal,
|
|
316
346
|
deadlineMs: options.deadlineMs,
|
|
347
|
+
interpreter: options.interpreter,
|
|
317
348
|
});
|
|
318
349
|
}
|
|
319
350
|
|
|
@@ -476,18 +507,17 @@ async function executeWithKernel(
|
|
|
476
507
|
code: string,
|
|
477
508
|
options: PythonExecutorOptions | undefined,
|
|
478
509
|
): Promise<PythonResult> {
|
|
479
|
-
const
|
|
510
|
+
const settings = await Settings.init();
|
|
480
511
|
const sink = new OutputSink({
|
|
481
512
|
onChunk: options?.onChunk,
|
|
482
513
|
artifactPath: options?.artifactPath,
|
|
483
514
|
artifactId: options?.artifactId,
|
|
484
|
-
headBytes: resolveOutputSinkHeadBytes(
|
|
485
|
-
maxColumns: resolveOutputMaxColumns(
|
|
515
|
+
headBytes: resolveOutputSinkHeadBytes(settings),
|
|
516
|
+
maxColumns: resolveOutputMaxColumns(settings),
|
|
486
517
|
});
|
|
487
518
|
const displayOutputs: KernelDisplayOutput[] = [];
|
|
488
519
|
const deadlineMs = getExecutionDeadlineMs(options);
|
|
489
520
|
let executionTimeoutMs: number | undefined;
|
|
490
|
-
const annotationTimeoutMs = options?.timeoutMs ?? options?.idleTimeoutMs;
|
|
491
521
|
|
|
492
522
|
// Collect every display output and, for status events, stream them live so
|
|
493
523
|
// long-running bridge helpers (e.g. `agent()`) surface progress mid-cell.
|
|
@@ -525,7 +555,7 @@ async function executeWithKernel(
|
|
|
525
555
|
|
|
526
556
|
if (result.cancelled) {
|
|
527
557
|
const annotation = result.timedOut
|
|
528
|
-
? formatKernelTimeoutAnnotation(
|
|
558
|
+
? formatKernelTimeoutAnnotation(executionTimeoutMs ?? options?.idleTimeoutMs, result.kernelKilled ?? false)
|
|
529
559
|
: undefined;
|
|
530
560
|
return {
|
|
531
561
|
exitCode: undefined,
|
|
@@ -563,7 +593,7 @@ async function executeWithKernel(
|
|
|
563
593
|
displayOutputs,
|
|
564
594
|
stdinRequested: false,
|
|
565
595
|
...(await sink.dump(
|
|
566
|
-
timedOut ? formatTimeoutAnnotation(
|
|
596
|
+
timedOut ? formatTimeoutAnnotation(executionTimeoutMs ?? options?.idleTimeoutMs) : undefined,
|
|
567
597
|
)),
|
|
568
598
|
};
|
|
569
599
|
}
|
|
@@ -576,7 +606,10 @@ async function executeWithKernel(
|
|
|
576
606
|
}
|
|
577
607
|
|
|
578
608
|
async function ensureKernelAvailable(cwd: string, options: PythonExecutorOptions): Promise<void> {
|
|
579
|
-
const availability = await waitForPromiseWithCancellation(
|
|
609
|
+
const availability = await waitForPromiseWithCancellation(
|
|
610
|
+
checkPythonKernelAvailability(cwd, options.interpreter),
|
|
611
|
+
options,
|
|
612
|
+
);
|
|
580
613
|
if (!availability.ok) {
|
|
581
614
|
throw new Error(availability.reason ?? "Python kernel unavailable");
|
|
582
615
|
}
|
|
@@ -607,22 +640,34 @@ async function executePerCall(code: string, cwd: string, options: PythonExecutor
|
|
|
607
640
|
|
|
608
641
|
async function executeOnSession(code: string, cwd: string, options: PythonExecutorOptions): Promise<PythonResult> {
|
|
609
642
|
const sessionId = options.sessionId ?? `session:${cwd}`;
|
|
610
|
-
const sessionKey = buildSessionKey(sessionId, cwd);
|
|
643
|
+
const sessionKey = buildSessionKey(sessionId, cwd, options.interpreter);
|
|
611
644
|
if (options.bridge && !options.bridgeSessionId) {
|
|
612
645
|
options.bridgeSessionId = sessionId;
|
|
613
646
|
}
|
|
614
647
|
if (options.reset) {
|
|
615
|
-
if
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
resettingSessions.
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
resettingSessions.
|
|
648
|
+
// Coalesce concurrent resets: if another reset is in flight for this
|
|
649
|
+
// session, await it instead of throwing — the caller's intent ("start
|
|
650
|
+
// from a clean kernel") is satisfied once that reset settles.
|
|
651
|
+
const inFlight = resettingSessions.get(sessionKey);
|
|
652
|
+
if (inFlight) await inFlight.catch(() => undefined);
|
|
653
|
+
else {
|
|
654
|
+
const resetPromise = resetSession(sessionKey);
|
|
655
|
+
resettingSessions.set(
|
|
656
|
+
sessionKey,
|
|
657
|
+
resetPromise.then(() => undefined),
|
|
658
|
+
);
|
|
659
|
+
try {
|
|
660
|
+
await resetPromise;
|
|
661
|
+
} finally {
|
|
662
|
+
resettingSessions.delete(sessionKey);
|
|
663
|
+
}
|
|
623
664
|
}
|
|
624
|
-
} else
|
|
625
|
-
|
|
665
|
+
} else {
|
|
666
|
+
// A reset already in progress is an internal coordination state, not a
|
|
667
|
+
// user-visible failure. Wait for it to clear, then proceed with the
|
|
668
|
+
// requested execution on the freshly-restarted kernel.
|
|
669
|
+
const inFlight = resettingSessions.get(sessionKey);
|
|
670
|
+
if (inFlight) await inFlight.catch(() => undefined);
|
|
626
671
|
}
|
|
627
672
|
const session = await acquireSession(sessionKey, sessionId, cwd, options);
|
|
628
673
|
if (options.signal?.aborted) {
|
|
@@ -680,7 +725,6 @@ export async function executePython(code: string, options?: PythonExecutorOption
|
|
|
680
725
|
isTimedOutCancellation(executionOptions.signal.reason, executionOptions.signal),
|
|
681
726
|
);
|
|
682
727
|
}
|
|
683
|
-
await Settings.init();
|
|
684
728
|
await ensureKernelAvailable(cwd, executionOptions);
|
|
685
729
|
await ensureToolBridge(executionOptions);
|
|
686
730
|
|
package/src/eval/py/index.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { ToolSession } from "../../tools";
|
|
2
|
-
import
|
|
2
|
+
import {
|
|
3
|
+
type ExecutorBackend,
|
|
4
|
+
type ExecutorBackendExecOptions,
|
|
5
|
+
type ExecutorBackendResult,
|
|
6
|
+
resolveEvalUrlRoots,
|
|
7
|
+
} from "../backend";
|
|
3
8
|
import { executePython, type PythonExecutorOptions } from "./executor";
|
|
4
9
|
import { checkPythonKernelAvailability } from "./kernel";
|
|
5
10
|
|
|
@@ -14,13 +19,17 @@ function readSetting<T>(session: ToolSession, key: string): T | undefined {
|
|
|
14
19
|
return settings?.get?.(key);
|
|
15
20
|
}
|
|
16
21
|
|
|
22
|
+
function readInterpreterSetting(session: ToolSession): string | undefined {
|
|
23
|
+
return readSetting<string>(session, "python.interpreter")?.trim() || undefined;
|
|
24
|
+
}
|
|
25
|
+
|
|
17
26
|
export default {
|
|
18
27
|
id: "python",
|
|
19
28
|
label: "Python",
|
|
20
29
|
highlightLang: "python",
|
|
21
30
|
|
|
22
31
|
async isAvailable(session: ToolSession): Promise<boolean> {
|
|
23
|
-
const availability = await checkPythonKernelAvailability(session.cwd);
|
|
32
|
+
const availability = await checkPythonKernelAvailability(session.cwd, readInterpreterSetting(session));
|
|
24
33
|
return availability.ok;
|
|
25
34
|
},
|
|
26
35
|
|
|
@@ -32,12 +41,12 @@ export default {
|
|
|
32
41
|
signal: opts.signal,
|
|
33
42
|
sessionId: namespaceSessionId(opts.sessionId),
|
|
34
43
|
kernelMode,
|
|
44
|
+
interpreter: readInterpreterSetting(opts.session),
|
|
35
45
|
sessionFile: opts.sessionFile,
|
|
36
46
|
artifactsDir: opts.session.getArtifactsDir?.() ?? undefined,
|
|
47
|
+
localRoots: resolveEvalUrlRoots(opts.session),
|
|
37
48
|
kernelOwnerId: opts.kernelOwnerId,
|
|
38
49
|
reset: opts.reset,
|
|
39
|
-
artifactPath: opts.artifactPath,
|
|
40
|
-
artifactId: opts.artifactId,
|
|
41
50
|
onChunk: opts.onChunk,
|
|
42
51
|
onStatus: opts.onStatus,
|
|
43
52
|
toolSession: opts.session,
|
package/src/eval/py/kernel.ts
CHANGED
|
@@ -17,7 +17,13 @@ import { Settings } from "../../config/settings";
|
|
|
17
17
|
import { type KernelDisplayOutput, renderKernelDisplay } from "./display";
|
|
18
18
|
import { PYTHON_PRELUDE } from "./prelude";
|
|
19
19
|
import RUNNER_SCRIPT from "./runner.py" with { type: "text" };
|
|
20
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
enumeratePythonRuntimes,
|
|
22
|
+
filterEnv,
|
|
23
|
+
type PythonRuntime,
|
|
24
|
+
resolveExplicitPythonRuntime,
|
|
25
|
+
resolvePythonRuntime,
|
|
26
|
+
} from "./runtime";
|
|
21
27
|
import { hostHasInheritableConsole, shouldHideKernelWindow } from "./spawn-options";
|
|
22
28
|
|
|
23
29
|
export type { KernelDisplayOutput, PythonStatusEvent } from "./display";
|
|
@@ -96,6 +102,11 @@ interface KernelLifecycleOptions {
|
|
|
96
102
|
interface KernelStartOptions extends KernelLifecycleOptions {
|
|
97
103
|
cwd: string;
|
|
98
104
|
env?: Record<string, string | undefined>;
|
|
105
|
+
/**
|
|
106
|
+
* Explicit interpreter path (`python.interpreter` from the session's
|
|
107
|
+
* settings). When set, runtime discovery is skipped entirely.
|
|
108
|
+
*/
|
|
109
|
+
interpreter?: string;
|
|
99
110
|
}
|
|
100
111
|
|
|
101
112
|
interface KernelShutdownOptions {
|
|
@@ -129,15 +140,40 @@ function throwIfAborted(signal: AbortSignal | undefined, fallbackReason: string)
|
|
|
129
140
|
throw createAbortError("AbortError", typeof reason === "string" ? reason : fallbackReason);
|
|
130
141
|
}
|
|
131
142
|
|
|
132
|
-
|
|
143
|
+
// Cache successful probes per resolved cwd + explicit interpreter: every cell
|
|
144
|
+
// otherwise pays one (or two — backend.isAvailable + ensureKernelAvailable)
|
|
145
|
+
// interpreter spawns even when the kernel is already hot. Failures are not
|
|
146
|
+
// cached so installing a Python mid-session is picked up on the next attempt.
|
|
147
|
+
const availabilityCache = new Map<string, Promise<PythonKernelAvailability>>();
|
|
148
|
+
|
|
149
|
+
export async function checkPythonKernelAvailability(
|
|
150
|
+
cwd: string,
|
|
151
|
+
interpreter?: string,
|
|
152
|
+
): Promise<PythonKernelAvailability> {
|
|
133
153
|
if (isBunTestRuntime() || $flag("PROMETHEUS_PYTHON_SKIP_CHECK")) {
|
|
134
154
|
return { ok: true };
|
|
135
155
|
}
|
|
156
|
+
const resolvedCwd = path.resolve(cwd);
|
|
157
|
+
const key = `${resolvedCwd}\0${interpreter ?? ""}`;
|
|
158
|
+
const cached = availabilityCache.get(key);
|
|
159
|
+
if (cached) return await cached;
|
|
160
|
+
const probe = probePythonKernelAvailability(resolvedCwd, interpreter);
|
|
161
|
+
availabilityCache.set(key, probe);
|
|
162
|
+
const result = await probe;
|
|
163
|
+
if (!result.ok && availabilityCache.get(key) === probe) {
|
|
164
|
+
availabilityCache.delete(key);
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
async function probePythonKernelAvailability(cwd: string, interpreter?: string): Promise<PythonKernelAvailability> {
|
|
136
170
|
try {
|
|
137
171
|
const settings = await Settings.init();
|
|
138
172
|
const { env } = settings.getShellConfig();
|
|
139
173
|
const baseEnv = filterEnv(env);
|
|
140
|
-
const runtimes =
|
|
174
|
+
const runtimes = interpreter
|
|
175
|
+
? [resolveExplicitPythonRuntime(interpreter, cwd, baseEnv)]
|
|
176
|
+
: enumeratePythonRuntimes(cwd, baseEnv);
|
|
141
177
|
if (runtimes.length === 0) {
|
|
142
178
|
return { ok: false, reason: "Python executable not found on PATH" };
|
|
143
179
|
}
|
|
@@ -220,6 +256,7 @@ export class PythonKernel {
|
|
|
220
256
|
"PythonKernel.start:availabilityCheck",
|
|
221
257
|
checkPythonKernelAvailability,
|
|
222
258
|
options.cwd,
|
|
259
|
+
options.interpreter,
|
|
223
260
|
);
|
|
224
261
|
if (!availability.ok) {
|
|
225
262
|
throw new Error(availability.reason ?? "Python kernel unavailable");
|
|
@@ -232,7 +269,9 @@ export class PythonKernel {
|
|
|
232
269
|
let runtime = availability.runtime;
|
|
233
270
|
if (!runtime) {
|
|
234
271
|
const { env: shellEnv } = (await Settings.init()).getShellConfig();
|
|
235
|
-
runtime =
|
|
272
|
+
runtime = options.interpreter
|
|
273
|
+
? resolveExplicitPythonRuntime(options.interpreter, options.cwd, filterEnv(shellEnv))
|
|
274
|
+
: resolvePythonRuntime(options.cwd, filterEnv(shellEnv));
|
|
236
275
|
}
|
|
237
276
|
const spawnEnv: Record<string, string> = {};
|
|
238
277
|
for (const [key, value] of Object.entries(runtime.env)) {
|
|
@@ -700,10 +739,10 @@ function buildInitScript(cwd: string, env?: Record<string, string | undefined>):
|
|
|
700
739
|
const envPayload = Object.fromEntries(envEntries);
|
|
701
740
|
return [
|
|
702
741
|
"import os, sys",
|
|
703
|
-
`
|
|
704
|
-
"os.chdir(
|
|
705
|
-
`
|
|
706
|
-
"for
|
|
707
|
-
"if
|
|
742
|
+
`__omp_cwd = ${JSON.stringify(cwd)}`,
|
|
743
|
+
"os.chdir(__omp_cwd)",
|
|
744
|
+
`__omp_env = ${JSON.stringify(envPayload)}`,
|
|
745
|
+
"for __omp_key, __omp_val in __omp_env.items():\n os.environ[__omp_key] = __omp_val",
|
|
746
|
+
"if __omp_cwd not in sys.path:\n sys.path.insert(0, __omp_cwd)",
|
|
708
747
|
].join("\n");
|
|
709
748
|
}
|
package/src/eval/py/prelude.py
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
# Prometheus prelude helpers (loaded once into the runner namespace)
|
|
3
|
-
if "
|
|
4
|
-
|
|
3
|
+
if "__omp_prelude_loaded__" not in globals():
|
|
4
|
+
__omp_prelude_loaded__ = True
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
import os, json, math
|
|
6
|
+
import os, json, math, re
|
|
7
|
+
from urllib.parse import unquote
|
|
7
8
|
|
|
8
|
-
#
|
|
9
|
+
# __omp_display is injected by runner.py before the prelude executes; it
|
|
9
10
|
# mirrors IPython's display() semantics with the same MIME bundle output.
|
|
10
|
-
|
|
11
|
+
_omp_display = __omp_display # type: ignore[name-defined]
|
|
11
12
|
|
|
12
13
|
_PRESENTABLE_REPRS = (
|
|
13
14
|
"_repr_mimebundle_",
|
|
@@ -23,20 +24,20 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
23
24
|
def display(value):
|
|
24
25
|
"""Render a value. Falls back to a JSON+text/plain bundle for plain dict/list/tuple."""
|
|
25
26
|
if any(hasattr(value, attr) for attr in _PRESENTABLE_REPRS):
|
|
26
|
-
|
|
27
|
+
_omp_display(value)
|
|
27
28
|
return
|
|
28
29
|
if isinstance(value, (dict, list, tuple)):
|
|
29
30
|
try:
|
|
30
31
|
bundle = {"application/json": value, "text/plain": repr(value)}
|
|
31
|
-
|
|
32
|
+
_omp_display(bundle, raw=True)
|
|
32
33
|
return
|
|
33
34
|
except Exception:
|
|
34
35
|
pass
|
|
35
|
-
|
|
36
|
+
_omp_display(value)
|
|
36
37
|
|
|
37
38
|
def _emit_status(op: str, **data):
|
|
38
39
|
"""Emit structured status event for TUI rendering."""
|
|
39
|
-
|
|
40
|
+
_omp_display({"application/x-prometheus-status": {"op": op, **data}}, raw=True)
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
def env(key: str | None = None, value: str | None = None):
|
|
@@ -53,9 +54,47 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
53
54
|
_emit_status("env", key=key, value=val, action="get")
|
|
54
55
|
return val
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
_PROMETHEUS_INTERNAL_URL_RE = re.compile(r"^([a-z][a-z0-9+.-]*)://(.*)$", re.IGNORECASE)
|
|
58
|
+
|
|
59
|
+
def _resolve_omp_path(path: str | Path) -> Path:
|
|
60
|
+
"""Map a helper path to a real filesystem Path.
|
|
61
|
+
|
|
62
|
+
A `scheme://…` whose scheme has an injected on-disk root (e.g.
|
|
63
|
+
`local://`, via PROMETHEUS_EVAL_LOCAL_ROOTS) is rewritten under that root so it
|
|
64
|
+
lands where `read local://…` resolves — not a literal `local:/`
|
|
65
|
+
directory under the cwd (which `Path("local://x")` collapses to). Plain
|
|
66
|
+
paths pass through unchanged; any other `scheme://` is rejected."""
|
|
67
|
+
if not isinstance(path, str):
|
|
68
|
+
return Path(path)
|
|
69
|
+
match = _PROMETHEUS_INTERNAL_URL_RE.match(path)
|
|
70
|
+
if not match:
|
|
71
|
+
return Path(path)
|
|
72
|
+
scheme = match.group(1).lower()
|
|
73
|
+
try:
|
|
74
|
+
roots = json.loads(os.environ.get("PROMETHEUS_EVAL_LOCAL_ROOTS") or "{}")
|
|
75
|
+
except (ValueError, TypeError):
|
|
76
|
+
roots = {}
|
|
77
|
+
root = roots.get(scheme) if isinstance(roots, dict) else None
|
|
78
|
+
if not root:
|
|
79
|
+
raise ValueError(f"Protocol paths are not supported by this helper: {path}")
|
|
80
|
+
relative = unquote(match.group(2).replace("\\", "/"))
|
|
81
|
+
# Mirror the host `path.resolve`/`resolveLocalUrlToPath`: normalize and
|
|
82
|
+
# make absolute WITHOUT realpath'ing symlinks (Path.resolve would turn
|
|
83
|
+
# /tmp into /private/tmp and diverge from the read-side resolution).
|
|
84
|
+
root_path = os.path.abspath(root)
|
|
85
|
+
if relative == "":
|
|
86
|
+
return Path(root_path)
|
|
87
|
+
rel_path = Path(relative)
|
|
88
|
+
if rel_path.is_absolute() or ".." in rel_path.parts:
|
|
89
|
+
raise ValueError(f"Unsafe {scheme}:// path (absolute or traversal): {path}")
|
|
90
|
+
resolved = os.path.abspath(os.path.join(root_path, relative))
|
|
91
|
+
if resolved != root_path and not resolved.startswith(root_path + os.sep):
|
|
92
|
+
raise ValueError(f"{scheme}:// path escapes its root: {path}")
|
|
93
|
+
return Path(resolved)
|
|
94
|
+
|
|
95
|
+
def read(path: str | Path, offset: int = 1, limit: int | None = None) -> str:
|
|
57
96
|
"""Read file contents. offset/limit are 1-indexed line numbers."""
|
|
58
|
-
p =
|
|
97
|
+
p = _resolve_omp_path(path)
|
|
59
98
|
data = p.read_text(encoding="utf-8")
|
|
60
99
|
lines = data.splitlines(keepends=True)
|
|
61
100
|
if offset > 1 or limit is not None:
|
|
@@ -69,7 +108,7 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
69
108
|
|
|
70
109
|
def write(path: str | Path, content: str) -> Path:
|
|
71
110
|
"""Write file contents (create parents)."""
|
|
72
|
-
p =
|
|
111
|
+
p = _resolve_omp_path(path)
|
|
73
112
|
p.parent.mkdir(parents=True, exist_ok=True)
|
|
74
113
|
p.write_text(content, encoding="utf-8")
|
|
75
114
|
_emit_status("write", path=str(p), chars=len(content))
|
|
@@ -77,7 +116,7 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
77
116
|
|
|
78
117
|
def append(path: str | Path, content: str) -> Path:
|
|
79
118
|
"""Append to file."""
|
|
80
|
-
p =
|
|
119
|
+
p = _resolve_omp_path(path)
|
|
81
120
|
p.parent.mkdir(parents=True, exist_ok=True)
|
|
82
121
|
with p.open("a", encoding="utf-8") as f:
|
|
83
122
|
f.write(content)
|
|
@@ -389,8 +428,8 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
389
428
|
"""POST one request to the host tool bridge and return its `value`."""
|
|
390
429
|
import urllib.request, urllib.error
|
|
391
430
|
base, token, session = _tool_proxy_from_env()
|
|
392
|
-
_run_id_getter = globals().get("
|
|
393
|
-
_run_id = _run_id_getter() if callable(_run_id_getter) else globals().get("
|
|
431
|
+
_run_id_getter = globals().get("__omp_current_run_id__")
|
|
432
|
+
_run_id = _run_id_getter() if callable(_run_id_getter) else globals().get("__omp_run_id__")
|
|
394
433
|
payload = json.dumps(
|
|
395
434
|
{"session": session, "run": _run_id, "name": name, "args": args}
|
|
396
435
|
).encode("utf-8")
|
|
@@ -463,8 +502,8 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
463
502
|
|
|
464
503
|
tool = _ToolProxy()
|
|
465
504
|
|
|
466
|
-
def
|
|
467
|
-
"""Oneshot, stateless
|
|
505
|
+
def completion(prompt, *, model="default", system=None, schema=None):
|
|
506
|
+
"""Oneshot, stateless completion against a model tier.
|
|
468
507
|
|
|
469
508
|
`model` selects a tier: "smol", "default" (the session's active model),
|
|
470
509
|
or "slow". Pass `system` for a system prompt. Pass a JSON-Schema dict
|
|
@@ -472,6 +511,17 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
472
511
|
returned instead of the completion text.
|
|
473
512
|
"""
|
|
474
513
|
args = {"prompt": prompt, "model": model}
|
|
514
|
+
if system is not None:
|
|
515
|
+
args["system"] = system
|
|
516
|
+
if schema is not None:
|
|
517
|
+
args["schema"] = schema
|
|
518
|
+
res = _bridge_call("__completion__", args)
|
|
519
|
+
text = res.get("text") if isinstance(res, dict) else res
|
|
520
|
+
return json.loads(text) if schema is not None else text
|
|
521
|
+
|
|
522
|
+
def llm(prompt, *, model="default", system=None, schema=None):
|
|
523
|
+
"""Oneshot, stateless LLM call against a model tier."""
|
|
524
|
+
args = {"prompt": prompt, "model": model}
|
|
475
525
|
if system is not None:
|
|
476
526
|
args["system"] = system
|
|
477
527
|
if schema is not None:
|
|
@@ -480,21 +530,20 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
480
530
|
text = res.get("text") if isinstance(res, dict) else res
|
|
481
531
|
return json.loads(text) if schema is not None else text
|
|
482
532
|
|
|
483
|
-
def agent(prompt, *, agent_type="task", model=None,
|
|
533
|
+
def agent(prompt, *, agent_type="task", model=None, label=None, schema=None):
|
|
484
534
|
"""Run a subagent and return its final output.
|
|
485
535
|
|
|
486
536
|
`agent_type` selects the subagent definition (default "task"). Pass
|
|
487
|
-
`model` to override that agent's model, `
|
|
488
|
-
|
|
489
|
-
|
|
537
|
+
`model` to override that agent's model, `label` for the output artifact
|
|
538
|
+
id, and `schema` to request structured JSON output; when `schema` is
|
|
539
|
+
supplied the parsed object is returned. Share background by writing a
|
|
540
|
+
local:// file and referencing it in the prompt.
|
|
490
541
|
"""
|
|
491
542
|
args = {"prompt": prompt}
|
|
492
543
|
if agent_type is not None:
|
|
493
544
|
args["agentType"] = agent_type
|
|
494
545
|
if model is not None:
|
|
495
546
|
args["model"] = model
|
|
496
|
-
if context is not None:
|
|
497
|
-
args["context"] = context
|
|
498
547
|
if label is not None:
|
|
499
548
|
args["label"] = label
|
|
500
549
|
if schema is not None:
|
|
@@ -582,7 +631,7 @@ if "__prometheus_prelude_loaded__" not in globals():
|
|
|
582
631
|
|
|
583
632
|
def phase(title):
|
|
584
633
|
"""Record the current readable phase and emit a status ``phase`` event."""
|
|
585
|
-
globals()["
|
|
634
|
+
globals()["__omp_current_phase__"] = str(title)
|
|
586
635
|
_emit_status("phase", title=str(title))
|
|
587
636
|
return None
|
|
588
637
|
|