@prometheus-ai/agent 0.5.4 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist/cli.js +25110 -0
- package/dist/types/async/index.d.ts +0 -1
- package/dist/types/async/job-manager.d.ts +33 -0
- package/dist/types/autolearn/controller.d.ts +25 -0
- package/dist/types/autolearn/managed-skills.d.ts +45 -0
- package/dist/types/autoresearch/state.d.ts +1 -1
- package/dist/types/autoresearch/tools/init-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/log-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/run-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/update-notes.d.ts +1 -1
- package/dist/types/autoresearch/types.d.ts +1 -1
- package/dist/types/capability/context-file.d.ts +0 -13
- package/dist/types/capability/mcp.d.ts +1 -0
- package/dist/types/capability/rule-buckets.d.ts +1 -1
- package/dist/types/capability/rule.d.ts +6 -1
- package/dist/types/capability/types.d.ts +0 -4
- package/dist/types/cli/args.d.ts +23 -3
- package/dist/types/cli/bench-cli.d.ts +78 -0
- package/dist/types/cli/claude-trace-cli.d.ts +7 -0
- package/dist/types/cli/dry-balance-cli.d.ts +16 -2
- package/dist/types/cli/gallery-cli.d.ts +43 -0
- package/dist/types/cli/gallery-fixtures/agentic.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/codeintel.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/edit.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/fs.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/index.d.ts +4 -0
- package/dist/types/cli/gallery-fixtures/interaction.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/memory.d.ts +2 -0
- package/dist/types/cli/gallery-fixtures/misc.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/search.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/shell.d.ts +3 -0
- package/dist/types/cli/gallery-fixtures/types.d.ts +55 -0
- package/dist/types/cli/gallery-fixtures/web.d.ts +2 -0
- package/dist/types/cli/gallery-screenshot.d.ts +35 -0
- package/dist/types/cli/grievances-cli.d.ts +1 -1
- package/dist/types/cli/list-models.d.ts +6 -14
- package/dist/types/cli/models-cli.d.ts +49 -0
- package/dist/types/cli/session-picker.d.ts +1 -1
- package/dist/types/cli/setup-cli.d.ts +1 -1
- package/dist/types/cli/setup-model-picker.d.ts +14 -0
- package/dist/types/cli/startup-cwd.d.ts +2 -0
- package/dist/types/cli/update-cli.d.ts +13 -40
- package/dist/types/cli/usage-cli.d.ts +81 -0
- package/dist/types/cli-commands.d.ts +12 -0
- package/dist/types/collab/crypto.d.ts +7 -0
- package/dist/types/collab/guest.d.ts +37 -0
- package/dist/types/collab/host.d.ts +29 -0
- package/dist/types/collab/protocol.d.ts +119 -0
- package/dist/types/collab/relay-client.d.ts +22 -0
- package/dist/types/commands/bench.d.ts +29 -0
- package/dist/types/commands/gallery.d.ts +47 -0
- package/dist/types/commands/install.d.ts +1 -1
- package/dist/types/commands/join.d.ts +12 -0
- package/dist/types/commands/launch.d.ts +8 -4
- package/dist/types/commands/models.d.ts +33 -0
- package/dist/types/commands/read.d.ts +1 -1
- package/dist/types/commands/say.d.ts +24 -0
- package/dist/types/commands/token.d.ts +25 -0
- package/dist/types/commands/usage.d.ts +34 -0
- package/dist/types/commit/agentic/tools/analyze-file.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-file-diff.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-hunk.d.ts +1 -1
- package/dist/types/commit/agentic/tools/git-overview.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +1 -1
- package/dist/types/commit/agentic/tools/recent-commits.d.ts +1 -1
- package/dist/types/commit/agentic/tools/schemas.d.ts +1 -1
- package/dist/types/commit/agentic/tools/split-commit.d.ts +1 -1
- package/dist/types/commit/analysis/conventional.d.ts +2 -2
- package/dist/types/commit/analysis/summary.d.ts +2 -2
- package/dist/types/commit/changelog/generate.d.ts +3 -3
- package/dist/types/commit/changelog/index.d.ts +2 -2
- package/dist/types/commit/map-reduce/index.d.ts +3 -3
- package/dist/types/commit/map-reduce/map-phase.d.ts +2 -2
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +2 -2
- package/dist/types/commit/model-selection.d.ts +10 -4
- package/dist/types/commit/shared-llm.d.ts +1 -1
- package/dist/types/config/api-key-resolver.d.ts +43 -0
- package/dist/types/config/append-only-context-mode.d.ts +2 -1
- package/dist/types/config/keybindings.d.ts +12 -7
- package/dist/types/config/model-discovery.d.ts +57 -0
- package/dist/types/config/model-equivalence.d.ts +1 -1
- package/dist/types/config/model-registry.d.ts +86 -222
- package/dist/types/config/model-resolver.d.ts +43 -12
- package/dist/types/config/model-roles.d.ts +29 -0
- package/dist/types/config/models-config-schema.d.ts +536 -43
- package/dist/types/config/models-config.d.ts +391 -0
- package/dist/types/config/settings-schema.d.ts +1202 -324
- package/dist/types/config/settings.d.ts +15 -3
- package/dist/types/dap/config.d.ts +14 -1
- package/dist/types/dap/types.d.ts +10 -0
- package/dist/types/debug/log-viewer.d.ts +1 -1
- package/dist/types/debug/raw-sse.d.ts +1 -1
- package/dist/types/debug/report-bundle.d.ts +3 -0
- package/dist/types/debug/terminal-info.d.ts +0 -1
- package/dist/types/discovery/at-imports.d.ts +15 -0
- package/dist/types/discovery/prometheus-extension-roots.d.ts +7 -7
- package/dist/types/edit/diff.d.ts +3 -2
- package/dist/types/edit/file-snapshot-store.d.ts +18 -0
- package/dist/types/edit/hashline/noop-loop-guard.d.ts +72 -0
- package/dist/types/edit/hashline/params.d.ts +1 -1
- package/dist/types/edit/index.d.ts +0 -1
- package/dist/types/edit/modes/apply-patch.d.ts +1 -1
- package/dist/types/edit/modes/patch.d.ts +1 -1
- package/dist/types/edit/modes/replace.d.ts +1 -1
- package/dist/types/edit/renderer.d.ts +1 -0
- package/dist/types/eval/__tests__/completion-bridge.test.d.ts +1 -0
- package/dist/types/eval/__tests__/helpers-local-roots.test.d.ts +1 -0
- package/dist/types/eval/__tests__/js-context-manager.test.d.ts +1 -0
- package/dist/types/eval/backend.d.ts +7 -2
- package/dist/types/eval/bridge-timeout.d.ts +1 -1
- package/dist/types/eval/completion-bridge.d.ts +25 -0
- package/dist/types/eval/idle-timeout.d.ts +1 -5
- package/dist/types/eval/js/context-manager.d.ts +1 -0
- package/dist/types/eval/js/executor.d.ts +2 -0
- package/dist/types/eval/js/index.d.ts +1 -1
- package/dist/types/eval/js/shared/helpers.d.ts +7 -1
- package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -6
- package/dist/types/eval/js/shared/runtime.d.ts +6 -1
- package/dist/types/eval/js/worker-protocol.d.ts +6 -0
- package/dist/types/eval/py/__tests__/prelude.test.d.ts +1 -0
- package/dist/types/eval/py/executor.d.ts +12 -0
- package/dist/types/eval/py/index.d.ts +1 -1
- package/dist/types/eval/py/kernel.d.ts +6 -1
- package/dist/types/eval/py/runtime.d.ts +9 -0
- package/dist/types/exa/index.d.ts +1 -19
- package/dist/types/exa/mcp-client.d.ts +10 -3
- package/dist/types/exa/types.d.ts +0 -83
- package/dist/types/exec/bash-executor.d.ts +7 -0
- package/dist/types/export/custom-share.d.ts +1 -2
- package/dist/types/export/html/index.d.ts +39 -0
- package/dist/types/export/html/template-js.d.ts +2 -0
- package/dist/types/export/share.d.ts +61 -0
- package/dist/types/export/ttsr.d.ts +14 -0
- package/dist/types/extensibility/custom-commands/types.d.ts +9 -4
- package/dist/types/extensibility/custom-tools/loader.d.ts +30 -4
- package/dist/types/extensibility/custom-tools/types.d.ts +16 -8
- package/dist/types/extensibility/extensions/index.d.ts +1 -1
- package/dist/types/extensibility/extensions/loader.d.ts +20 -1
- package/dist/types/extensibility/extensions/model-api.d.ts +17 -0
- package/dist/types/extensibility/extensions/runner.d.ts +5 -2
- package/dist/types/extensibility/extensions/types.d.ts +72 -11
- package/dist/types/extensibility/hooks/index.d.ts +2 -1
- package/dist/types/extensibility/hooks/loader.d.ts +1 -1
- package/dist/types/extensibility/hooks/types.d.ts +11 -5
- package/dist/types/extensibility/{legacy-pi-ai-shim.d.ts → legacy-package-ai-shim.d.ts} +2 -2
- package/dist/types/extensibility/plugins/{legacy-pi-compat.d.ts → legacy-package-compat.d.ts} +20 -3
- package/dist/types/extensibility/plugins/loader.d.ts +11 -0
- package/dist/types/extensibility/plugins/marketplace-auto-update.d.ts +8 -0
- package/dist/types/extensibility/plugins/types.d.ts +2 -2
- package/dist/types/extensibility/shared-events.d.ts +3 -3
- package/dist/types/extensibility/skills.d.ts +10 -0
- package/dist/types/extensibility/slash-commands.d.ts +1 -11
- package/dist/types/goals/guided-setup.d.ts +18 -0
- package/dist/types/goals/state.d.ts +1 -1
- package/dist/types/goals/tools/goal-tool.d.ts +1 -1
- package/dist/types/hindsight/mental-models.d.ts +17 -8
- package/dist/types/hindsight/transcript.d.ts +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/internal-urls/artifact-protocol.d.ts +2 -2
- package/dist/types/internal-urls/history-protocol.d.ts +14 -0
- package/dist/types/internal-urls/index.d.ts +1 -0
- package/dist/types/internal-urls/local-protocol.d.ts +14 -2
- package/dist/types/internal-urls/types.d.ts +1 -1
- package/dist/types/irc/bus.d.ts +79 -0
- package/dist/types/lib/xai-http.d.ts +1 -1
- package/dist/types/lsp/client.d.ts +10 -0
- package/dist/types/lsp/config.d.ts +2 -2
- package/dist/types/lsp/edits.d.ts +9 -0
- package/dist/types/lsp/format-options.d.ts +32 -0
- package/dist/types/lsp/index.d.ts +2 -7
- package/dist/types/lsp/types.d.ts +13 -1
- package/dist/types/lsp/utils.d.ts +6 -2
- package/dist/types/main.d.ts +23 -8
- package/dist/types/mcp/json-rpc.d.ts +5 -0
- package/dist/types/mcp/manager.d.ts +8 -0
- package/dist/types/mcp/oauth-discovery.d.ts +6 -1
- package/dist/types/mcp/oauth-flow.d.ts +13 -3
- package/dist/types/mcp/startup-events.d.ts +11 -0
- package/dist/types/mcp/tool-bridge.d.ts +2 -0
- package/dist/types/mcp/transports/stdio.d.ts +13 -0
- package/dist/types/mcp/types.d.ts +2 -0
- package/dist/types/memories/index.d.ts +7 -15
- package/dist/types/memories/storage.d.ts +0 -10
- package/dist/types/memory-backend/index.d.ts +3 -1
- package/dist/types/memory-backend/local-backend.d.ts +4 -3
- package/dist/types/memory-backend/resolve.d.ts +2 -2
- package/dist/types/memory-backend/runtime.d.ts +4 -0
- package/dist/types/memory-backend/types.d.ts +67 -2
- package/dist/types/mnemopi/config.d.ts +31 -1
- package/dist/types/mnemopi/state.d.ts +40 -2
- package/dist/types/modes/acp/acp-agent.d.ts +1 -2
- package/dist/types/modes/components/agent-dashboard.d.ts +17 -1
- package/dist/types/modes/components/agent-hub.d.ts +82 -0
- package/dist/types/modes/components/assistant-message.d.ts +5 -12
- package/dist/types/modes/components/bash-execution.d.ts +1 -1
- package/dist/types/modes/components/chat-block.d.ts +64 -0
- package/dist/types/modes/components/collab-prompt-message.d.ts +10 -0
- package/dist/types/modes/components/compaction-summary-message.d.ts +25 -5
- package/dist/types/modes/components/copy-selector.d.ts +1 -1
- package/dist/types/modes/components/custom-editor.d.ts +49 -2
- package/dist/types/modes/components/custom-editor.test.d.ts +1 -0
- package/dist/types/modes/components/dynamic-border.d.ts +1 -1
- package/dist/types/modes/components/extensions/extension-dashboard.d.ts +1 -1
- package/dist/types/modes/components/extensions/extension-list.d.ts +1 -1
- package/dist/types/modes/components/extensions/inspector-panel.d.ts +1 -1
- package/dist/types/modes/components/footer.d.ts +1 -1
- package/dist/types/modes/components/hook-editor.d.ts +5 -0
- package/dist/types/modes/components/hook-input.d.ts +4 -0
- package/dist/types/modes/components/hook-selector.d.ts +5 -7
- package/dist/types/modes/components/index.d.ts +1 -0
- package/dist/types/modes/components/late-diagnostics-message.d.ts +20 -0
- package/dist/types/modes/components/logout-account-selector.d.ts +8 -0
- package/dist/types/modes/components/mcp-add-wizard.d.ts +2 -1
- package/dist/types/modes/components/model-selector.d.ts +1 -1
- package/dist/types/modes/components/oauth-selector.d.ts +10 -1
- package/dist/types/modes/components/overlay-box.d.ts +17 -0
- package/dist/types/modes/components/plan-review-overlay.d.ts +61 -0
- package/dist/types/modes/components/plan-toc.d.ts +41 -0
- package/dist/types/modes/components/read-tool-group.d.ts +8 -0
- package/dist/types/modes/components/reset-usage-selector.d.ts +12 -0
- package/dist/types/modes/components/segment-track.d.ts +11 -6
- package/dist/types/modes/components/session-selector.d.ts +18 -9
- package/dist/types/modes/components/settings-defs.d.ts +9 -2
- package/dist/types/modes/components/settings-selector.d.ts +17 -4
- package/dist/types/modes/components/snapcompact-shape-preview.d.ts +31 -0
- package/dist/types/modes/components/status-line/component.d.ts +61 -0
- package/dist/types/modes/components/status-line/index.d.ts +1 -0
- package/dist/types/modes/components/status-line/types.d.ts +47 -3
- package/dist/types/modes/components/tiny-title-download-progress.d.ts +1 -1
- package/dist/types/modes/components/tool-execution.d.ts +49 -2
- package/dist/types/modes/components/transcript-container.d.ts +76 -26
- package/dist/types/modes/components/tree-selector.d.ts +2 -2
- package/dist/types/modes/components/ttsr-notification.d.ts +5 -1
- package/dist/types/modes/components/usage-row.d.ts +3 -0
- package/dist/types/modes/components/user-message-selector.d.ts +1 -1
- package/dist/types/modes/components/user-message.d.ts +2 -1
- package/dist/types/modes/components/visual-truncate.d.ts +1 -1
- package/dist/types/modes/components/welcome.d.ts +12 -2
- package/dist/types/modes/controllers/command-controller.d.ts +3 -2
- package/dist/types/modes/controllers/event-controller.d.ts +7 -1
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +0 -1
- package/dist/types/modes/controllers/input-controller.d.ts +25 -3
- package/dist/types/modes/controllers/mcp-command-controller.d.ts +8 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +5 -2
- package/dist/types/modes/controllers/session-focus-controller.d.ts +31 -0
- package/dist/types/modes/controllers/streaming-reveal.d.ts +22 -0
- package/dist/types/modes/controllers/tan-command-controller.d.ts +6 -0
- package/dist/types/modes/controllers/tool-args-reveal.d.ts +43 -0
- package/dist/types/modes/gradient-highlight.d.ts +9 -4
- package/dist/types/modes/image-references.d.ts +14 -3
- package/dist/types/modes/index.d.ts +8 -7
- package/dist/types/modes/interactive-mode.d.ts +92 -16
- package/dist/types/modes/magic-keywords.d.ts +14 -2
- package/dist/types/modes/markdown-prose.d.ts +1 -1
- package/dist/types/modes/oauth-manual-input.d.ts +7 -0
- package/dist/types/modes/rpc/rpc-client.d.ts +48 -2
- package/dist/types/modes/rpc/rpc-mode.d.ts +67 -2
- package/dist/types/modes/rpc/rpc-subagents.d.ts +24 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +113 -1
- package/dist/types/modes/runtime-init.d.ts +4 -0
- package/dist/types/modes/session-observer-registry.d.ts +9 -0
- package/dist/types/modes/setup-version.d.ts +11 -0
- package/dist/types/modes/setup-wizard/index.d.ts +7 -2
- package/dist/types/modes/setup-wizard/lazy.d.ts +2 -0
- package/dist/types/modes/setup-wizard/scenes/sign-in.d.ts +4 -1
- package/dist/types/modes/setup-wizard/scenes/types.d.ts +11 -2
- package/dist/types/modes/setup-wizard/scenes/web-search.d.ts +6 -2
- package/dist/types/modes/setup-wizard/wizard-overlay.d.ts +1 -1
- package/dist/types/modes/theme/theme.d.ts +42 -7
- package/dist/types/modes/types.d.ts +62 -13
- package/dist/types/modes/utils/context-usage.d.ts +6 -1
- package/dist/types/modes/utils/copy-targets.d.ts +21 -1
- package/dist/types/modes/utils/ui-helpers.d.ts +4 -4
- package/dist/types/modes/workflow.d.ts +3 -3
- package/dist/types/plan-mode/approved-plan.d.ts +27 -8
- package/dist/types/plan-mode/plan-protection.d.ts +4 -4
- package/dist/types/registry/agent-lifecycle.d.ts +51 -0
- package/dist/types/registry/agent-registry.d.ts +33 -5
- package/dist/types/sdk.d.ts +46 -4
- package/dist/types/secrets/index.d.ts +1 -1
- package/dist/types/secrets/obfuscator.d.ts +9 -3
- package/dist/types/session/agent-session.d.ts +136 -66
- package/dist/types/session/agent-storage.d.ts +2 -1
- package/dist/types/session/auth-broker-config.d.ts +4 -0
- package/dist/types/session/auth-storage.d.ts +1 -1
- package/dist/types/session/codex-auto-reset.d.ts +111 -0
- package/dist/types/session/indexed-session-storage.d.ts +3 -3
- package/dist/types/session/messages.d.ts +26 -15
- package/dist/types/session/session-context.d.ts +39 -0
- package/dist/types/session/session-entries.d.ts +159 -0
- package/dist/types/session/session-history-format.d.ts +12 -0
- package/dist/types/session/session-listing.d.ts +69 -0
- package/dist/types/session/session-loader.d.ts +16 -0
- package/dist/types/session/session-manager.d.ts +107 -440
- package/dist/types/session/session-migrations.d.ts +12 -0
- package/dist/types/session/session-paths.d.ts +25 -0
- package/dist/types/session/session-persistence.d.ts +8 -0
- package/dist/types/session/session-storage.d.ts +11 -7
- package/dist/types/session/snapcompact-inline.d.ts +145 -0
- package/dist/types/session/snapcompact-savings-journal.d.ts +46 -0
- package/dist/types/session/streaming-output.d.ts +46 -0
- package/dist/types/session/tool-choice-queue.d.ts +6 -6
- package/dist/types/session/yield-queue.d.ts +10 -1
- package/dist/types/slash-commands/acp-builtins.d.ts +16 -0
- package/dist/types/slash-commands/available-commands.d.ts +34 -0
- package/dist/types/slash-commands/builtin-registry.d.ts +10 -0
- package/dist/types/slash-commands/helpers/active-oauth-account.d.ts +14 -0
- package/dist/types/slash-commands/helpers/logout.d.ts +15 -0
- package/dist/types/slash-commands/helpers/reset-usage.d.ts +27 -0
- package/dist/types/slash-commands/helpers/stats-dashboard.d.ts +13 -0
- package/dist/types/slash-commands/types.d.ts +5 -9
- package/dist/types/ssh/connection-manager.d.ts +8 -0
- package/dist/types/stt/asr-client.d.ts +90 -0
- package/dist/types/stt/asr-protocol.d.ts +97 -0
- package/dist/types/stt/asr-worker.d.ts +2 -0
- package/dist/types/stt/downloader.d.ts +38 -0
- package/dist/types/stt/endpointer.d.ts +59 -0
- package/dist/types/stt/index.d.ts +5 -1
- package/dist/types/stt/models.d.ts +120 -0
- package/dist/types/stt/recorder.d.ts +17 -0
- package/dist/types/stt/stt-controller.d.ts +6 -0
- package/dist/types/stt/transcriber.d.ts +5 -7
- package/dist/types/stt/wav.d.ts +29 -0
- package/dist/types/system-prompt.d.ts +9 -1
- package/dist/types/task/commands.d.ts +1 -1
- package/dist/types/task/discovery.d.ts +1 -2
- package/dist/types/task/executor.d.ts +61 -2
- package/dist/types/task/index.d.ts +37 -6
- package/dist/types/task/output-manager.d.ts +0 -7
- package/dist/types/task/parallel.d.ts +2 -2
- package/dist/types/task/prometheus-command.d.ts +2 -2
- package/dist/types/task/render.d.ts +20 -7
- package/dist/types/task/repair-args.d.ts +8 -7
- package/dist/types/task/types.d.ts +109 -52
- package/dist/types/task/worktree.d.ts +2 -0
- package/dist/types/telemetry-export.d.ts +2 -2
- package/dist/types/thinking.d.ts +4 -0
- package/dist/types/tiny/models.d.ts +1 -1
- package/dist/types/tiny/title-client.d.ts +12 -1
- package/dist/types/tiny/title-protocol.d.ts +1 -0
- package/dist/types/tools/archive-reader.d.ts +5 -0
- package/dist/types/tools/ask.d.ts +6 -1
- package/dist/types/tools/ast-edit.d.ts +4 -1
- package/dist/types/tools/ast-grep.d.ts +4 -1
- package/dist/types/tools/bash.d.ts +5 -2
- package/dist/types/tools/browser/attach.d.ts +4 -4
- package/dist/types/tools/browser/cmux/cmux-tab.d.ts +202 -0
- package/dist/types/tools/browser/cmux/rpc.d.ts +70 -0
- package/dist/types/tools/browser/cmux/socket-client.d.ts +19 -0
- package/dist/types/tools/browser/registry.d.ts +17 -3
- package/dist/types/tools/browser/render.d.ts +2 -0
- package/dist/types/tools/browser/tab-protocol.d.ts +2 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +16 -4
- package/dist/types/tools/browser/tab-worker.d.ts +18 -1
- package/dist/types/tools/browser.d.ts +3 -1
- package/dist/types/tools/checkpoint.d.ts +1 -1
- package/dist/types/tools/conflict-detect.d.ts +16 -0
- package/dist/types/tools/debug.d.ts +1 -1
- package/dist/types/tools/eval-render.d.ts +1 -8
- package/dist/types/tools/eval.d.ts +9 -1
- package/dist/types/tools/fetch.d.ts +17 -8
- package/dist/types/tools/find.d.ts +1 -8
- package/dist/types/tools/gh-cache-invalidation.d.ts +6 -0
- package/dist/types/tools/gh.d.ts +4 -1
- package/dist/types/tools/github-cache.d.ts +19 -0
- package/dist/types/tools/grouped-file-output.d.ts +46 -12
- package/dist/types/tools/image-gen.d.ts +1 -1
- package/dist/types/tools/index.d.ts +89 -8
- package/dist/types/tools/inspect-image.d.ts +1 -1
- package/dist/types/tools/irc.d.ts +79 -39
- package/dist/types/tools/job.d.ts +8 -2
- package/dist/types/tools/learn.d.ts +51 -0
- package/dist/types/tools/manage-skill.d.ts +40 -0
- package/dist/types/tools/memory-edit.d.ts +2 -2
- package/dist/types/tools/memory-recall.d.ts +1 -1
- package/dist/types/tools/memory-reflect.d.ts +1 -1
- package/dist/types/tools/memory-render.d.ts +4 -1
- package/dist/types/tools/memory-retain.d.ts +1 -1
- package/dist/types/tools/path-utils.d.ts +17 -5
- package/dist/types/tools/plan-mode-guard.d.ts +18 -9
- package/dist/types/tools/read.d.ts +3 -2
- package/dist/types/tools/render-mermaid.d.ts +1 -1
- package/dist/types/tools/render-utils.d.ts +47 -27
- package/dist/types/tools/renderers.d.ts +10 -2
- package/dist/types/tools/report-tool-issue.d.ts +6 -1
- package/dist/types/tools/resolve.d.ts +1 -1
- package/dist/types/tools/review.d.ts +1 -1
- package/dist/types/tools/search-tool-bm25.d.ts +1 -1
- package/dist/types/tools/search.d.ts +7 -3
- package/dist/types/tools/sqlite-reader.d.ts +4 -0
- package/dist/types/tools/ssh.d.ts +2 -1
- package/dist/types/tools/todo.d.ts +7 -15
- package/dist/types/tools/tool-result.d.ts +2 -0
- package/dist/types/tools/tool-timeouts.d.ts +1 -1
- package/dist/types/tools/tts.d.ts +26 -1
- package/dist/types/tools/write.d.ts +6 -3
- package/dist/types/tools/yield.d.ts +8 -0
- package/dist/types/tts/downloader.d.ts +20 -0
- package/dist/types/tts/index.d.ts +8 -0
- package/dist/types/tts/models.d.ts +82 -0
- package/dist/types/tts/player.d.ts +32 -0
- package/dist/types/tts/runtime.d.ts +6 -0
- package/dist/types/tts/streaming-player.d.ts +41 -0
- package/dist/types/tts/tts-client.d.ts +93 -0
- package/dist/types/tts/tts-protocol.d.ts +95 -0
- package/dist/types/tts/tts-worker.d.ts +2 -0
- package/dist/types/tts/vocalizer.d.ts +41 -0
- package/dist/types/tts/wav.d.ts +8 -0
- package/dist/types/tui/code-cell.d.ts +0 -2
- package/dist/types/tui/hyperlink.d.ts +13 -7
- package/dist/types/tui/output-block.d.ts +16 -22
- package/dist/types/tui/status-line.d.ts +3 -0
- package/dist/types/utils/block-context.d.ts +35 -0
- package/dist/types/utils/changelog.d.ts +8 -0
- package/dist/types/utils/clipboard.d.ts +4 -3
- package/dist/types/utils/enhanced-paste.d.ts +20 -0
- package/dist/types/utils/file-mentions.d.ts +7 -0
- package/dist/types/utils/git.d.ts +22 -3
- package/dist/types/utils/image-loading.d.ts +30 -1
- package/dist/types/utils/session-color.d.ts +15 -3
- package/dist/types/utils/thinking-display.d.ts +17 -0
- package/dist/types/utils/title-generator.d.ts +3 -2
- package/dist/types/utils/tool-choice.d.ts +8 -0
- package/dist/types/utils/tools-manager.d.ts +2 -1
- package/dist/types/web/kagi.d.ts +2 -2
- package/dist/types/web/parallel.d.ts +3 -0
- package/dist/types/web/scrapers/github.d.ts +22 -0
- package/dist/types/web/scrapers/readthedocs.d.ts +3 -0
- package/dist/types/web/scrapers/types.d.ts +12 -0
- package/dist/types/web/search/index.d.ts +1 -1
- package/dist/types/web/search/providers/anthropic.d.ts +2 -1
- package/dist/types/web/search/providers/base.d.ts +2 -1
- package/dist/types/web/search/providers/brave.d.ts +2 -1
- package/dist/types/web/search/providers/codex.d.ts +2 -1
- package/dist/types/web/search/providers/exa.d.ts +2 -1
- package/dist/types/web/search/providers/gemini.d.ts +10 -6
- package/dist/types/web/search/providers/jina.d.ts +7 -2
- package/dist/types/web/search/providers/kagi.d.ts +7 -2
- package/dist/types/web/search/providers/kimi.d.ts +7 -2
- package/dist/types/web/search/providers/parallel.d.ts +2 -1
- package/dist/types/web/search/providers/perplexity.d.ts +10 -2
- package/dist/types/web/search/providers/searxng.d.ts +2 -1
- package/dist/types/web/search/providers/synthetic.d.ts +7 -3
- package/dist/types/web/search/providers/tavily.d.ts +2 -1
- package/dist/types/web/search/providers/zai.d.ts +2 -1
- package/dist/types/web/search/types.d.ts +1 -1
- package/examples/extensions/api-demo.ts +2 -2
- package/package.json +41 -15
- package/scripts/bench-guard.ts +71 -0
- package/scripts/build-binary.ts +24 -25
- package/scripts/bundle-dist.ts +97 -0
- package/scripts/generate-share-viewer.ts +34 -0
- package/scripts/prometheus +42 -0
- package/scripts/prometheus.ts +20 -0
- package/src/async/index.ts +0 -1
- package/src/async/job-manager.ts +106 -3
- package/src/auto-thinking/classifier.ts +2 -1
- package/src/autolearn/controller.ts +139 -0
- package/src/autolearn/managed-skills.ts +257 -0
- package/src/autoresearch/dashboard.ts +1 -1
- package/src/autoresearch/prompt-setup.md +6 -6
- package/src/autoresearch/prompt.md +6 -6
- package/src/autoresearch/state.ts +1 -1
- package/src/autoresearch/storage.ts +2 -1
- package/src/autoresearch/tools/init-experiment.ts +1 -1
- package/src/autoresearch/tools/log-experiment.ts +1 -1
- package/src/autoresearch/tools/run-experiment.ts +1 -1
- package/src/autoresearch/tools/update-notes.ts +1 -1
- package/src/autoresearch/types.ts +1 -1
- package/src/capability/context-file.ts +0 -14
- package/src/capability/fs.ts +10 -0
- package/src/capability/index.ts +1 -6
- package/src/capability/mcp.ts +1 -0
- package/src/capability/rule-buckets.ts +4 -2
- package/src/capability/rule.ts +10 -1
- package/src/capability/types.ts +0 -4
- package/src/cli/args.ts +66 -13
- package/src/cli/auth-broker-cli.ts +6 -7
- package/src/cli/auth-gateway-cli.ts +8 -9
- package/src/cli/bench-cli.ts +437 -0
- package/src/cli/claude-trace-cli.ts +28 -50
- package/src/cli/completion-gen.ts +28 -28
- package/src/cli/dry-balance-cli.ts +56 -23
- package/src/cli/gallery-cli.ts +231 -0
- package/src/cli/gallery-fixtures/agentic.ts +407 -0
- package/src/cli/gallery-fixtures/codeintel.ts +187 -0
- package/src/cli/gallery-fixtures/edit.ts +194 -0
- package/src/cli/gallery-fixtures/fs.ts +220 -0
- package/src/cli/gallery-fixtures/index.ts +40 -0
- package/src/cli/gallery-fixtures/interaction.ts +49 -0
- package/src/cli/gallery-fixtures/memory.ts +81 -0
- package/src/cli/gallery-fixtures/misc.ts +250 -0
- package/src/cli/gallery-fixtures/search.ts +213 -0
- package/src/cli/gallery-fixtures/shell.ts +167 -0
- package/src/cli/gallery-fixtures/types.ts +57 -0
- package/src/cli/gallery-fixtures/web.ts +158 -0
- package/src/cli/gallery-screenshot.ts +279 -0
- package/src/cli/grievances-cli.ts +1 -1
- package/src/cli/list-models.ts +16 -174
- package/src/cli/models-cli.ts +429 -0
- package/src/cli/session-picker.ts +2 -1
- package/src/cli/setup-cli.ts +148 -47
- package/src/cli/setup-model-picker.ts +43 -0
- package/src/cli/startup-cwd.ts +68 -0
- package/src/cli/update-cli.ts +144 -272
- package/src/cli/usage-cli.ts +774 -0
- package/src/cli-commands.ts +36 -0
- package/src/cli.ts +141 -32
- package/src/collab/crypto.ts +63 -0
- package/src/collab/guest.ts +451 -0
- package/src/collab/host.ts +565 -0
- package/src/collab/protocol.ts +241 -0
- package/src/collab/relay-client.ts +216 -0
- package/src/commands/bench.ts +42 -0
- package/src/commands/complete.ts +1 -1
- package/src/commands/gallery.ts +52 -0
- package/src/commands/install.ts +1 -1
- package/src/commands/join.ts +39 -0
- package/src/commands/launch.ts +8 -4
- package/src/commands/models.ts +61 -0
- package/src/commands/read.ts +6 -3
- package/src/commands/say.ts +102 -0
- package/src/commands/setup.ts +1 -1
- package/src/commands/token.ts +89 -0
- package/src/commands/usage.ts +43 -0
- package/src/commit/agentic/agent.ts +2 -1
- package/src/commit/agentic/tools/analyze-file.ts +42 -20
- package/src/commit/agentic/tools/git-file-diff.ts +1 -1
- package/src/commit/agentic/tools/git-hunk.ts +1 -1
- package/src/commit/agentic/tools/git-overview.ts +1 -1
- package/src/commit/agentic/tools/propose-changelog.ts +1 -1
- package/src/commit/agentic/tools/propose-commit.ts +1 -1
- package/src/commit/agentic/tools/recent-commits.ts +1 -1
- package/src/commit/agentic/tools/schemas.ts +1 -1
- package/src/commit/agentic/tools/split-commit.ts +9 -2
- package/src/commit/analysis/conventional.ts +2 -2
- package/src/commit/analysis/summary.ts +3 -3
- package/src/commit/changelog/generate.ts +3 -3
- package/src/commit/changelog/index.ts +2 -2
- package/src/commit/map-reduce/index.ts +3 -3
- package/src/commit/map-reduce/map-phase.ts +2 -2
- package/src/commit/map-reduce/reduce-phase.ts +2 -2
- package/src/commit/model-selection.ts +35 -12
- package/src/commit/pipeline.ts +4 -4
- package/src/commit/shared-llm.ts +1 -1
- package/src/config/api-key-resolver.ts +67 -0
- package/src/config/append-only-context-mode.ts +6 -12
- package/src/config/keybindings.ts +9 -4
- package/src/config/mcp-schema.json +4 -0
- package/src/config/model-discovery.ts +574 -0
- package/src/config/model-equivalence.ts +5 -4
- package/src/config/model-registry.ts +659 -1093
- package/src/config/model-resolver.ts +374 -174
- package/src/config/model-roles.ts +88 -0
- package/src/config/models-config-schema.ts +61 -9
- package/src/config/models-config.ts +130 -0
- package/src/config/settings-schema.ts +1441 -387
- package/src/config/settings.ts +261 -69
- package/src/dap/client.ts +138 -53
- package/src/dap/config.ts +41 -2
- package/src/dap/defaults.json +1 -0
- package/src/dap/session.ts +263 -161
- package/src/dap/types.ts +10 -0
- package/src/debug/index.ts +50 -60
- package/src/debug/log-viewer.ts +1 -1
- package/src/debug/protocol-probe.ts +1 -1
- package/src/debug/raw-sse-buffer.ts +7 -4
- package/src/debug/raw-sse.ts +1 -1
- package/src/debug/report-bundle.ts +9 -0
- package/src/debug/terminal-info.ts +0 -3
- package/src/discovery/agents-md.ts +25 -21
- package/src/discovery/agents.ts +9 -15
- package/src/discovery/at-imports.ts +273 -0
- package/src/discovery/builtin-rules/index.ts +4 -0
- package/src/discovery/builtin-rules/ts-no-test-timers.md +55 -0
- package/src/discovery/builtin-rules/ts-redundant-clear-guard.md +75 -0
- package/src/discovery/builtin.ts +45 -23
- package/src/discovery/claude-plugins.ts +44 -5
- package/src/discovery/helpers.ts +50 -9
- package/src/discovery/prometheus-extension-roots.ts +10 -10
- package/src/discovery/prometheus-plugins.ts +10 -10
- package/src/edit/diff.ts +191 -4
- package/src/edit/file-snapshot-store.ts +34 -1
- package/src/edit/hashline/block-resolver.ts +20 -1
- package/src/edit/hashline/diff.ts +123 -2
- package/src/edit/hashline/execute.ts +60 -4
- package/src/edit/hashline/filesystem.ts +2 -1
- package/src/edit/hashline/noop-loop-guard.ts +99 -0
- package/src/edit/hashline/params.ts +1 -1
- package/src/edit/index.ts +47 -18
- package/src/edit/modes/apply-patch.ts +1 -1
- package/src/edit/modes/patch.ts +59 -3
- package/src/edit/modes/replace.ts +58 -24
- package/src/edit/notebook.ts +22 -2
- package/src/edit/renderer.ts +315 -151
- package/src/eval/__tests__/agent-bridge.test.ts +105 -39
- package/src/eval/__tests__/budget-bridge.test.ts +1 -1
- package/src/eval/__tests__/completion-bridge.test.ts +412 -0
- package/src/eval/__tests__/helpers-local-roots.test.ts +58 -0
- package/src/eval/__tests__/js-context-manager.test.ts +241 -0
- package/src/eval/__tests__/llm-bridge.test.ts +6 -4
- package/src/eval/__tests__/shared-executors.test.ts +34 -92
- package/src/eval/agent-bridge.ts +39 -23
- package/src/eval/backend.ts +15 -2
- package/src/eval/bridge-timeout.ts +1 -1
- package/src/eval/completion-bridge.ts +203 -0
- package/src/eval/idle-timeout.ts +3 -10
- package/src/eval/js/context-manager.ts +108 -31
- package/src/eval/js/executor.ts +9 -2
- package/src/eval/js/index.ts +7 -3
- package/src/eval/js/shared/helpers.ts +59 -13
- package/src/eval/js/shared/local-module-loader.ts +2 -2
- package/src/eval/js/shared/prelude.txt +167 -30
- package/src/eval/js/shared/rewrite-imports.ts +58 -34
- package/src/eval/js/shared/runtime.ts +24 -16
- package/src/eval/js/tool-bridge.ts +4 -0
- package/src/eval/js/worker-core.ts +1 -0
- package/src/eval/js/worker-entry.ts +6 -0
- package/src/eval/js/worker-protocol.ts +6 -0
- package/src/eval/llm-bridge.ts +2 -1
- package/src/eval/py/__tests__/prelude.test.ts +19 -0
- package/src/eval/py/executor.ts +70 -26
- package/src/eval/py/index.ts +13 -4
- package/src/eval/py/kernel.ts +48 -9
- package/src/eval/py/prelude.py +73 -24
- package/src/eval/py/runner.py +133 -28
- package/src/eval/py/runtime.ts +38 -1
- package/src/exa/index.ts +1 -26
- package/src/exa/mcp-client.ts +10 -10
- package/src/exa/types.ts +0 -97
- package/src/exec/bash-executor.ts +104 -7
- package/src/export/custom-share.ts +1 -1
- package/src/export/html/index.ts +119 -17
- package/src/export/html/share-loader.js +102 -0
- package/src/export/html/template-js.ts +6 -0
- package/src/export/html/template.css +745 -459
- package/src/export/html/template.css.d.ts +2 -0
- package/src/export/html/template.html +6 -3
- package/src/export/html/template.js +277 -891
- package/src/export/html/tool-views.generated.d.ts +2 -0
- package/src/export/html/tool-views.generated.js +38 -0
- package/src/export/share.ts +269 -0
- package/src/export/ttsr.ts +122 -1
- package/src/extensibility/custom-commands/loader.ts +7 -4
- package/src/extensibility/custom-commands/types.ts +9 -4
- package/src/extensibility/custom-tools/loader.ts +51 -23
- package/src/extensibility/custom-tools/types.ts +16 -8
- package/src/extensibility/extensions/get-commands-handler.ts +2 -1
- package/src/extensibility/extensions/index.ts +1 -0
- package/src/extensibility/extensions/loader.ts +70 -20
- package/src/extensibility/extensions/model-api.ts +41 -0
- package/src/extensibility/extensions/runner.ts +12 -2
- package/src/extensibility/extensions/types.ts +83 -11
- package/src/extensibility/extensions/wrapper.ts +41 -5
- package/src/extensibility/hooks/index.ts +2 -1
- package/src/extensibility/hooks/loader.ts +6 -3
- package/src/extensibility/hooks/types.ts +11 -5
- package/src/extensibility/{legacy-pi-ai-shim.ts → legacy-package-ai-shim.ts} +2 -2
- package/src/extensibility/plugins/doctor.ts +1 -2
- package/src/extensibility/plugins/installer.ts +2 -2
- package/src/extensibility/plugins/{legacy-pi-compat.ts → legacy-package-compat.ts} +165 -77
- package/src/extensibility/plugins/loader.ts +34 -23
- package/src/extensibility/plugins/manager.ts +226 -95
- package/src/extensibility/plugins/marketplace-auto-update.ts +49 -0
- package/src/extensibility/plugins/types.ts +3 -3
- package/src/extensibility/shared-events.ts +3 -3
- package/src/extensibility/skills.ts +113 -9
- package/src/extensibility/slash-commands.ts +1 -97
- package/src/goals/guided-setup.ts +133 -0
- package/src/goals/state.ts +1 -1
- package/src/goals/tools/goal-tool.ts +38 -28
- package/src/hindsight/bank.ts +17 -2
- package/src/hindsight/client.ts +27 -2
- package/src/hindsight/mental-models.ts +59 -12
- package/src/hindsight/state.ts +12 -3
- package/src/hindsight/transcript.ts +1 -1
- package/src/index.ts +5 -0
- package/src/internal-urls/artifact-protocol.ts +11 -2
- package/src/internal-urls/docs-index.generated.ts +9 -7
- package/src/internal-urls/history-protocol.ts +113 -0
- package/src/internal-urls/index.ts +1 -0
- package/src/internal-urls/issue-pr-protocol.ts +22 -9
- package/src/internal-urls/local-protocol.ts +42 -7
- package/src/internal-urls/memory-protocol.ts +4 -31
- package/src/internal-urls/router.ts +3 -1
- package/src/internal-urls/types.ts +1 -1
- package/src/irc/bus.ts +303 -0
- package/src/lib/xai-http.ts +3 -3
- package/src/lsp/client.ts +245 -104
- package/src/lsp/clients/biome-client.ts +101 -39
- package/src/lsp/clients/lsp-linter-client.ts +2 -10
- package/src/lsp/config.ts +15 -5
- package/src/lsp/defaults.json +6 -0
- package/src/lsp/edits.ts +143 -95
- package/src/lsp/format-options.ts +119 -0
- package/src/lsp/index.ts +233 -93
- package/src/lsp/render.ts +11 -35
- package/src/lsp/types.ts +13 -1
- package/src/lsp/utils.ts +31 -12
- package/src/main.ts +396 -216
- package/src/mcp/config-writer.ts +7 -3
- package/src/mcp/json-rpc.ts +35 -5
- package/src/mcp/manager.ts +31 -16
- package/src/mcp/oauth-discovery.ts +34 -4
- package/src/mcp/oauth-flow.ts +61 -8
- package/src/mcp/render.ts +7 -1
- package/src/mcp/startup-events.ts +21 -0
- package/src/mcp/tool-bridge.ts +2 -0
- package/src/mcp/transports/stdio.ts +224 -4
- package/src/mcp/types.ts +2 -0
- package/src/memories/index.ts +174 -1128
- package/src/memories/storage.ts +2 -41
- package/src/memory-backend/index.ts +14 -1
- package/src/memory-backend/local-backend.ts +18 -3
- package/src/memory-backend/off-backend.ts +9 -0
- package/src/memory-backend/resolve.ts +4 -6
- package/src/memory-backend/runtime.ts +66 -0
- package/src/memory-backend/types.ts +82 -2
- package/src/mnemopi/backend.ts +220 -28
- package/src/mnemopi/config.ts +138 -33
- package/src/mnemopi/state.ts +91 -11
- package/src/modes/acp/acp-agent.ts +149 -142
- package/src/modes/acp/acp-event-mapper.ts +5 -1
- package/src/modes/components/agent-dashboard.ts +17 -11
- package/src/modes/components/agent-hub.ts +1346 -0
- package/src/modes/components/assistant-message.ts +190 -80
- package/src/modes/components/bash-execution.ts +1 -1
- package/src/modes/components/btw-panel.ts +5 -1
- package/src/modes/components/chat-block.ts +111 -0
- package/src/modes/components/collab-prompt-message.ts +30 -0
- package/src/modes/components/compaction-summary-message.ts +168 -33
- package/src/modes/components/copy-selector.ts +2 -45
- package/src/modes/components/custom-editor.test.ts +96 -0
- package/src/modes/components/custom-editor.ts +405 -118
- package/src/modes/components/custom-message.ts +1 -3
- package/src/modes/components/diff.ts +13 -2
- package/src/modes/components/dynamic-border.ts +12 -3
- package/src/modes/components/execution-shared.ts +1 -2
- package/src/modes/components/extensions/extension-dashboard.ts +8 -5
- package/src/modes/components/extensions/extension-list.ts +1 -1
- package/src/modes/components/extensions/inspector-panel.ts +7 -3
- package/src/modes/components/extensions/state-manager.ts +36 -41
- package/src/modes/components/footer.ts +4 -2
- package/src/modes/components/history-search.ts +1 -1
- package/src/modes/components/hook-editor.ts +8 -0
- package/src/modes/components/hook-input.ts +8 -0
- package/src/modes/components/hook-message.ts +1 -3
- package/src/modes/components/hook-selector.ts +6 -7
- package/src/modes/components/index.ts +1 -0
- package/src/modes/components/late-diagnostics-message.ts +60 -0
- package/src/modes/components/login-dialog.ts +1 -1
- package/src/modes/components/logout-account-selector.ts +130 -0
- package/src/modes/components/mcp-add-wizard.ts +14 -1
- package/src/modes/components/model-selector.ts +177 -75
- package/src/modes/components/oauth-selector.ts +102 -16
- package/src/modes/components/overlay-box.ts +108 -0
- package/src/modes/components/plan-review-overlay.ts +845 -0
- package/src/modes/components/plan-toc.ts +138 -0
- package/src/modes/components/plugin-settings.ts +22 -5
- package/src/modes/components/read-tool-group.ts +442 -39
- package/src/modes/components/reset-usage-selector.ts +161 -0
- package/src/modes/components/segment-track.ts +44 -7
- package/src/modes/components/session-selector.ts +97 -37
- package/src/modes/components/settings-defs.ts +28 -6
- package/src/modes/components/settings-selector.ts +541 -93
- package/src/modes/components/skill-message.ts +0 -1
- package/src/modes/components/snapcompact-shape-preview-doc.md +11 -0
- package/src/modes/components/snapcompact-shape-preview.ts +193 -0
- package/src/modes/components/{status-line.ts → status-line/component.ts} +205 -168
- package/src/modes/components/status-line/index.ts +1 -0
- package/src/modes/components/status-line/presets.ts +3 -3
- package/src/modes/components/status-line/segments.ts +26 -7
- package/src/modes/components/status-line/types.ts +40 -9
- package/src/modes/components/tiny-title-download-progress.ts +1 -1
- package/src/modes/components/tips.txt +7 -3
- package/src/modes/components/todo-reminder.ts +0 -2
- package/src/modes/components/tool-execution.ts +236 -103
- package/src/modes/components/transcript-container.ts +724 -99
- package/src/modes/components/tree-selector.ts +19 -4
- package/src/modes/components/ttsr-notification.ts +72 -30
- package/src/modes/components/usage-row.ts +18 -0
- package/src/modes/components/user-message-selector.ts +1 -1
- package/src/modes/components/user-message.ts +28 -12
- package/src/modes/components/visual-truncate.ts +1 -1
- package/src/modes/components/welcome.ts +80 -22
- package/src/modes/controllers/command-controller-shared.ts +7 -6
- package/src/modes/controllers/command-controller.ts +210 -180
- package/src/modes/controllers/event-controller.ts +352 -142
- package/src/modes/controllers/extension-ui-controller.ts +167 -208
- package/src/modes/controllers/input-controller.ts +778 -162
- package/src/modes/controllers/mcp-command-controller.ts +232 -80
- package/src/modes/controllers/selector-controller.ts +284 -145
- package/src/modes/controllers/session-focus-controller.ts +112 -0
- package/src/modes/controllers/ssh-command-controller.ts +2 -2
- package/src/modes/controllers/streaming-reveal.ts +295 -0
- package/src/modes/controllers/tan-command-controller.ts +173 -0
- package/src/modes/controllers/tool-args-reveal.ts +174 -0
- package/src/modes/gradient-highlight.ts +21 -9
- package/src/modes/image-references.ts +33 -7
- package/src/modes/index.ts +8 -25
- package/src/modes/interactive-mode.ts +840 -186
- package/src/modes/magic-keywords.ts +28 -6
- package/src/modes/markdown-prose.ts +1 -1
- package/src/modes/oauth-manual-input.ts +30 -3
- package/src/modes/rpc/rpc-client.ts +186 -3
- package/src/modes/rpc/rpc-mode.ts +318 -24
- package/src/modes/rpc/rpc-subagents.ts +265 -0
- package/src/modes/rpc/rpc-types.ts +111 -2
- package/src/modes/runtime-init.ts +28 -3
- package/src/modes/session-observer-registry.ts +72 -3
- package/src/modes/setup-version.ts +11 -0
- package/src/modes/setup-wizard/index.ts +16 -4
- package/src/modes/setup-wizard/lazy.ts +16 -0
- package/src/modes/setup-wizard/scenes/glyph.ts +25 -7
- package/src/modes/setup-wizard/scenes/providers.ts +45 -12
- package/src/modes/setup-wizard/scenes/sign-in.ts +14 -13
- package/src/modes/setup-wizard/scenes/splash.ts +1 -1
- package/src/modes/setup-wizard/scenes/theme.ts +29 -2
- package/src/modes/setup-wizard/scenes/types.ts +11 -2
- package/src/modes/setup-wizard/scenes/web-search.ts +26 -9
- package/src/modes/setup-wizard/wizard-overlay.ts +40 -3
- package/src/modes/shared.ts +2 -0
- package/src/modes/theme/defaults/dark-poimandres.json +1 -1
- package/src/modes/theme/defaults/light-poimandres.json +1 -1
- package/src/modes/theme/shimmer.ts +20 -9
- package/src/modes/theme/theme-schema.json +1 -1
- package/src/modes/theme/theme.ts +342 -82
- package/src/modes/types.ts +60 -18
- package/src/modes/utils/context-usage.ts +88 -8
- package/src/modes/utils/copy-targets.ts +133 -27
- package/src/modes/utils/hotkeys-markdown.ts +3 -2
- package/src/modes/utils/ui-helpers.ts +191 -110
- package/src/modes/workflow.ts +10 -10
- package/src/plan-mode/approved-plan.ts +66 -43
- package/src/plan-mode/plan-protection.ts +4 -4
- package/src/priority.json +5 -1
- package/src/prompts/agents/designer.md +1 -1
- package/src/prompts/agents/explore.md +3 -3
- package/src/prompts/agents/librarian.md +2 -3
- package/src/prompts/agents/oracle.md +2 -2
- package/src/prompts/agents/plan.md +6 -6
- package/src/prompts/agents/reviewer.md +1 -1
- package/src/prompts/agents/task.md +6 -5
- package/src/prompts/bench.md +12 -0
- package/src/prompts/ci-green-request.md +5 -7
- package/src/prompts/goals/goal-budget-limit.md +2 -2
- package/src/prompts/goals/goal-continuation.md +4 -4
- package/src/prompts/goals/goal-mode-active.md +1 -1
- package/src/prompts/goals/guided-goal-interview.md +8 -0
- package/src/prompts/goals/guided-goal-system.md +12 -0
- package/src/prompts/memories/consolidation.md +2 -7
- package/src/prompts/memories/consolidation_system.md +4 -0
- package/src/prompts/memories/identity_review.md +2 -2
- package/src/prompts/memories/read-path.md +11 -10
- package/src/prompts/memories/stage_one_system.md +2 -2
- package/src/prompts/review-custom-request.md +1 -1
- package/src/prompts/system/agent-creation-architect.md +2 -2
- package/src/prompts/system/auto-continue.md +1 -1
- package/src/prompts/system/autolearn-guidance-learn.md +1 -0
- package/src/prompts/system/autolearn-guidance.md +7 -0
- package/src/prompts/system/autolearn-nudge.md +3 -0
- package/src/prompts/system/background-tan-dispatch.md +8 -0
- package/src/prompts/system/btw-user.md +2 -2
- package/src/prompts/system/commit-message-system.md +13 -1
- package/src/prompts/system/custom-system-prompt.md +1 -1
- package/src/prompts/system/eager-task.md +7 -0
- package/src/prompts/system/eager-todo.md +11 -6
- package/src/prompts/system/empty-stop-retry.md +4 -6
- package/src/prompts/system/irc-autoreply.md +6 -0
- package/src/prompts/system/irc-incoming.md +3 -4
- package/src/prompts/system/manual-continue.md +7 -0
- package/src/prompts/system/omfg-user.md +3 -4
- package/src/prompts/system/orchestrate-notice.md +10 -10
- package/src/prompts/system/personalities/default.md +26 -0
- package/src/prompts/system/personalities/friendly.md +17 -0
- package/src/prompts/system/personalities/pragmatic.md +15 -0
- package/src/prompts/system/plan-mode-active.md +70 -77
- package/src/prompts/system/plan-mode-approved.md +1 -1
- package/src/prompts/system/plan-mode-subagent.md +4 -5
- package/src/prompts/system/plan-mode-tool-decision-reminder.md +1 -1
- package/src/prompts/system/project-prompt.md +2 -2
- package/src/prompts/system/snapcompact-context-frames-note.md +1 -0
- package/src/prompts/system/snapcompact-context-stub.md +1 -0
- package/src/prompts/system/snapcompact-system-frames-note.md +1 -0
- package/src/prompts/system/snapcompact-system-stub.md +1 -0
- package/src/prompts/system/snapcompact-toolresult-note.md +1 -0
- package/src/prompts/system/subagent-system-prompt.md +7 -8
- package/src/prompts/system/system-prompt.md +28 -57
- package/src/prompts/system/tiny-title-system.md +1 -1
- package/src/prompts/system/title-marker-instruction.md +1 -0
- package/src/prompts/system/title-system-marker.md +16 -0
- package/src/prompts/system/title-system.md +16 -3
- package/src/prompts/system/ttsr-tool-reminder.md +1 -1
- package/src/prompts/system/workflow-notice.md +4 -4
- package/src/prompts/tools/ast-edit.md +1 -1
- package/src/prompts/tools/ast-grep.md +2 -2
- package/src/prompts/tools/bash.md +16 -8
- package/src/prompts/tools/browser.md +33 -43
- package/src/prompts/tools/debug.md +1 -1
- package/src/prompts/tools/eval.md +31 -51
- package/src/prompts/tools/find.md +0 -1
- package/src/prompts/tools/github.md +8 -7
- package/src/prompts/tools/goal.md +1 -1
- package/src/prompts/tools/image-gen.md +1 -1
- package/src/prompts/tools/inspect-image-system.md +1 -1
- package/src/prompts/tools/irc.md +39 -31
- package/src/prompts/tools/job.md +2 -1
- package/src/prompts/tools/learn.md +7 -0
- package/src/prompts/tools/lsp-late-diagnostic.md +8 -0
- package/src/prompts/tools/lsp.md +2 -2
- package/src/prompts/tools/manage-skill.md +9 -0
- package/src/prompts/tools/memory-edit.md +1 -1
- package/src/prompts/tools/patch.md +2 -2
- package/src/prompts/tools/read.md +31 -39
- package/src/prompts/tools/recall.md +1 -1
- package/src/prompts/tools/reflect.md +1 -1
- package/src/prompts/tools/render-mermaid.md +2 -2
- package/src/prompts/tools/replace.md +4 -10
- package/src/prompts/tools/rewind.md +2 -2
- package/src/prompts/tools/search-tool-bm25.md +1 -9
- package/src/prompts/tools/search.md +0 -1
- package/src/prompts/tools/ssh.md +0 -4
- package/src/prompts/tools/task-summary.md +5 -16
- package/src/prompts/tools/task.md +47 -31
- package/src/prompts/tools/todo.md +6 -3
- package/src/registry/agent-lifecycle.ts +218 -0
- package/src/registry/agent-registry.ts +46 -5
- package/src/sdk.ts +692 -219
- package/src/secrets/index.ts +8 -1
- package/src/secrets/obfuscator.ts +40 -19
- package/src/session/agent-session.ts +1577 -806
- package/src/session/agent-storage.ts +18 -9
- package/src/session/auth-broker-config.ts +30 -1
- package/src/session/auth-storage.ts +6 -0
- package/src/session/codex-auto-reset.ts +202 -0
- package/src/session/history-storage.ts +3 -2
- package/src/session/indexed-session-storage.ts +7 -10
- package/src/session/messages.ts +59 -95
- package/src/session/session-context.ts +352 -0
- package/src/session/session-dump-format.ts +12 -3
- package/src/session/session-entries.ts +194 -0
- package/src/session/session-history-format.ts +246 -0
- package/src/session/session-listing.ts +588 -0
- package/src/session/session-loader.ts +106 -0
- package/src/session/session-manager.ts +1003 -2920
- package/src/session/session-migrations.ts +78 -0
- package/src/session/session-paths.ts +193 -0
- package/src/session/session-persistence.ts +131 -0
- package/src/session/session-storage.ts +91 -30
- package/src/session/snapcompact-inline.ts +542 -0
- package/src/session/snapcompact-savings-journal.ts +113 -0
- package/src/session/streaming-output.ts +248 -11
- package/src/session/tool-choice-queue.ts +23 -11
- package/src/session/yield-queue.ts +20 -2
- package/src/slash-commands/acp-builtins.ts +25 -1
- package/src/slash-commands/available-commands.ts +105 -0
- package/src/slash-commands/builtin-registry.ts +575 -49
- package/src/slash-commands/helpers/active-oauth-account.ts +44 -0
- package/src/slash-commands/helpers/context-report.ts +28 -1
- package/src/slash-commands/helpers/logout.ts +88 -0
- package/src/slash-commands/helpers/reset-usage.ts +66 -0
- package/src/slash-commands/helpers/stats-dashboard.ts +85 -0
- package/src/slash-commands/helpers/usage-report.ts +38 -3
- package/src/slash-commands/types.ts +5 -9
- package/src/ssh/connection-manager.ts +27 -0
- package/src/ssh/ssh-executor.ts +60 -4
- package/src/stt/asr-client.ts +520 -0
- package/src/stt/asr-protocol.ts +65 -0
- package/src/stt/asr-worker.ts +790 -0
- package/src/stt/downloader.ts +107 -47
- package/src/stt/endpointer.ts +259 -0
- package/src/stt/index.ts +5 -1
- package/src/stt/models.ts +150 -0
- package/src/stt/recorder.ts +254 -67
- package/src/stt/stt-controller.ts +201 -22
- package/src/stt/transcriber.ts +37 -68
- package/src/stt/wav.ts +173 -0
- package/src/system-prompt.ts +52 -10
- package/src/task/agents.ts +3 -4
- package/src/task/commands.ts +3 -2
- package/src/task/discovery.ts +17 -24
- package/src/task/executor.ts +1054 -529
- package/src/task/index.ts +862 -757
- package/src/task/output-manager.ts +0 -11
- package/src/task/parallel.ts +3 -3
- package/src/task/prometheus-command.ts +2 -2
- package/src/task/render.ts +529 -182
- package/src/task/repair-args.ts +21 -9
- package/src/task/types.ts +144 -66
- package/src/task/worktree.ts +64 -56
- package/src/telemetry-export.ts +27 -9
- package/src/thinking.ts +9 -7
- package/src/tiny/models.ts +2 -2
- package/src/tiny/text.ts +5 -1
- package/src/tiny/title-client.ts +72 -20
- package/src/tiny/title-protocol.ts +1 -1
- package/src/tiny/worker.ts +23 -99
- package/src/tool-discovery/tool-index.ts +2 -0
- package/src/tools/archive-reader.ts +94 -2
- package/src/tools/ask.ts +234 -177
- package/src/tools/ast-edit.ts +136 -80
- package/src/tools/ast-grep.ts +41 -45
- package/src/tools/auto-generated-guard.ts +20 -3
- package/src/tools/bash-interactive.ts +28 -8
- package/src/tools/bash.ts +198 -35
- package/src/tools/browser/attach.ts +26 -7
- package/src/tools/browser/cmux/cmux-tab.ts +1264 -0
- package/src/tools/browser/cmux/rpc.ts +156 -0
- package/src/tools/browser/cmux/socket-client.ts +309 -0
- package/src/tools/browser/launch.ts +11 -2
- package/src/tools/browser/readable.ts +19 -2
- package/src/tools/browser/registry.ts +52 -5
- package/src/tools/browser/render.ts +13 -5
- package/src/tools/browser/tab-protocol.ts +2 -0
- package/src/tools/browser/tab-supervisor.ts +256 -34
- package/src/tools/browser/tab-worker.ts +259 -91
- package/src/tools/browser.ts +44 -2
- package/src/tools/checkpoint.ts +1 -1
- package/src/tools/conflict-detect.ts +50 -4
- package/src/tools/debug.ts +27 -12
- package/src/tools/eval-render.ts +32 -35
- package/src/tools/eval.ts +26 -12
- package/src/tools/fetch.ts +450 -99
- package/src/tools/find.ts +182 -142
- package/src/tools/gh-cache-invalidation.ts +255 -0
- package/src/tools/gh-renderer.ts +104 -51
- package/src/tools/gh.ts +232 -37
- package/src/tools/github-cache.ts +97 -7
- package/src/tools/grouped-file-output.ts +159 -52
- package/src/tools/image-gen.ts +237 -132
- package/src/tools/index.ts +147 -26
- package/src/tools/inspect-image-renderer.ts +74 -45
- package/src/tools/inspect-image.ts +12 -6
- package/src/tools/irc.ts +626 -173
- package/src/tools/job.ts +106 -29
- package/src/tools/learn.ts +144 -0
- package/src/tools/manage-skill.ts +104 -0
- package/src/tools/memory-edit.ts +4 -4
- package/src/tools/memory-recall.ts +7 -9
- package/src/tools/memory-reflect.ts +5 -9
- package/src/tools/memory-render.ts +23 -6
- package/src/tools/memory-retain.ts +4 -4
- package/src/tools/path-utils.ts +102 -48
- package/src/tools/plan-mode-guard.ts +101 -40
- package/src/tools/read.ts +475 -120
- package/src/tools/render-mermaid.ts +1 -1
- package/src/tools/render-utils.ts +132 -76
- package/src/tools/renderers.ts +12 -1
- package/src/tools/report-tool-issue.ts +14 -6
- package/src/tools/resolve.ts +20 -3
- package/src/tools/review.ts +2 -2
- package/src/tools/search-tool-bm25.ts +37 -24
- package/src/tools/search.ts +233 -115
- package/src/tools/sqlite-reader.ts +26 -17
- package/src/tools/ssh.ts +20 -14
- package/src/tools/todo.ts +197 -191
- package/src/tools/tool-result.ts +8 -0
- package/src/tools/tool-timeouts.ts +1 -1
- package/src/tools/tts.ts +205 -74
- package/src/tools/write.ts +291 -155
- package/src/tools/yield.ts +10 -1
- package/src/tts/downloader.ts +64 -0
- package/src/tts/index.ts +8 -0
- package/src/tts/models.ts +137 -0
- package/src/tts/player.ts +137 -0
- package/src/tts/runtime.ts +21 -0
- package/src/tts/streaming-player.ts +266 -0
- package/src/tts/tts-client.ts +647 -0
- package/src/tts/tts-protocol.ts +60 -0
- package/src/tts/tts-worker.ts +505 -0
- package/src/tts/vocalizer.ts +162 -0
- package/src/tts/wav.ts +58 -0
- package/src/tui/code-cell.ts +2 -7
- package/src/tui/hyperlink.ts +40 -26
- package/src/tui/output-block.ts +60 -108
- package/src/tui/status-line.ts +5 -1
- package/src/utils/block-context.ts +312 -0
- package/src/utils/changelog.ts +27 -1
- package/src/utils/clipboard.ts +91 -22
- package/src/utils/commit-message-generator.ts +8 -3
- package/src/utils/enhanced-paste.ts +230 -0
- package/src/utils/file-mentions.ts +3 -1
- package/src/utils/git.ts +315 -15
- package/src/utils/image-loading.ts +65 -4
- package/src/utils/session-color.ts +83 -9
- package/src/utils/thinking-display.ts +37 -0
- package/src/utils/title-generator.ts +73 -10
- package/src/utils/tool-choice.ts +16 -0
- package/src/utils/tools-manager.ts +19 -1
- package/src/web/kagi.ts +28 -26
- package/src/web/parallel.ts +7 -3
- package/src/web/scrapers/arxiv.ts +1 -1
- package/src/web/scrapers/github.ts +351 -3
- package/src/web/scrapers/go-pkg.ts +1 -1
- package/src/web/scrapers/iacr.ts +1 -1
- package/src/web/scrapers/readthedocs.ts +1 -1
- package/src/web/scrapers/twitter.ts +2 -1
- package/src/web/scrapers/types.ts +87 -8
- package/src/web/scrapers/wikipedia.ts +1 -1
- package/src/web/scrapers/youtube.ts +9 -3
- package/src/web/search/index.ts +15 -2
- package/src/web/search/providers/anthropic.ts +62 -21
- package/src/web/search/providers/base.ts +2 -1
- package/src/web/search/providers/brave.ts +5 -2
- package/src/web/search/providers/codex.ts +87 -51
- package/src/web/search/providers/exa.ts +101 -10
- package/src/web/search/providers/gemini.ts +49 -24
- package/src/web/search/providers/jina.ts +15 -5
- package/src/web/search/providers/kagi.ts +9 -2
- package/src/web/search/providers/kimi.ts +45 -20
- package/src/web/search/providers/parallel.ts +39 -24
- package/src/web/search/providers/perplexity.ts +226 -63
- package/src/web/search/providers/searxng.ts +19 -3
- package/src/web/search/providers/synthetic.ts +16 -11
- package/src/web/search/providers/tavily.ts +12 -9
- package/src/web/search/providers/zai.ts +22 -9
- package/src/web/search/render.ts +59 -64
- package/src/web/search/types.ts +5 -1
- package/dist/types/discovery/context-files.d.ts +0 -17
- package/dist/types/exa/factory.d.ts +0 -13
- package/dist/types/exa/render.d.ts +0 -19
- package/dist/types/exa/researcher.d.ts +0 -9
- package/dist/types/exa/search.d.ts +0 -9
- package/dist/types/exa/websets.d.ts +0 -9
- package/dist/types/export/html/template.generated.d.ts +0 -1
- package/dist/types/modes/components/session-observer-overlay.d.ts +0 -11
- package/dist/types/modes/components/status-line.d.ts +0 -77
- package/dist/types/slash-commands/headless-plan.d.ts +0 -3
- package/dist/types/stt/setup.d.ts +0 -18
- package/scripts/generate-template.ts +0 -33
- package/src/discovery/context-files.ts +0 -49
- package/src/exa/factory.ts +0 -60
- package/src/exa/render.ts +0 -244
- package/src/exa/researcher.ts +0 -36
- package/src/exa/search.ts +0 -47
- package/src/exa/websets.ts +0 -248
- package/src/export/html/template.generated.ts +0 -2
- package/src/modes/components/session-observer-overlay.ts +0 -852
- package/src/slash-commands/headless-plan.ts +0 -142
- package/src/stt/setup.ts +0 -52
- package/src/stt/transcribe.py +0 -70
- /package/dist/types/extensibility/{legacy-pi-coding-agent-shim.d.ts → legacy-package-agent-shim.d.ts} +0 -0
- /package/src/extensibility/{legacy-pi-coding-agent-shim.ts → legacy-package-agent-shim.ts} +0 -0
|
@@ -102,7 +102,7 @@ export class LocalModuleLoader {
|
|
|
102
102
|
});
|
|
103
103
|
const moduleDir = path.dirname(modulePath);
|
|
104
104
|
const localDeps = new Set<string>();
|
|
105
|
-
for (const specifier of collectModuleSourceSpecifiers(stripped)) {
|
|
105
|
+
for (const specifier of await collectModuleSourceSpecifiers(stripped)) {
|
|
106
106
|
const resolved = resolveImportSpecifier(moduleDir, specifier);
|
|
107
107
|
if (isLocalPathSpecifier(specifier) && isManagedLocalModulePath(resolved)) {
|
|
108
108
|
localDeps.add(resolved);
|
|
@@ -291,7 +291,7 @@ function buildRequire(fromPath: string): NodeJS.Require {
|
|
|
291
291
|
function buildModuleSource(source: string, modulePath: string): string {
|
|
292
292
|
const moduleDir = path.dirname(modulePath);
|
|
293
293
|
return [
|
|
294
|
-
`const require = globalThis.
|
|
294
|
+
`const require = globalThis.__omp_get_require__(${JSON.stringify(pathToFileURL(modulePath).href)});`,
|
|
295
295
|
`const __filename = ${JSON.stringify(modulePath)};`,
|
|
296
296
|
`const __dirname = ${JSON.stringify(moduleDir)};`,
|
|
297
297
|
source,
|
|
@@ -1,17 +1,85 @@
|
|
|
1
|
-
if (!globalThis.
|
|
2
|
-
globalThis.
|
|
1
|
+
if (!globalThis.__omp_js_prelude_loaded__) {
|
|
2
|
+
globalThis.__omp_js_prelude_loaded__ = true;
|
|
3
3
|
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const isNil = value => value === undefined || value === null;
|
|
5
|
+
const isPlainObject = value => value !== null && typeof value === "object" && !Array.isArray(value);
|
|
6
|
+
const positionalOptions = (name, args, keys, example) => {
|
|
7
|
+
for (let index = keys.length; index < args.length; index++) {
|
|
8
|
+
if (!isNil(args[index])) {
|
|
9
|
+
throw new TypeError(
|
|
10
|
+
`${name}() accepts at most ${keys.length} positional optional args; got ${args.length}. Pass ${name}(..., ${example}) for named options.`,
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const options = {};
|
|
15
|
+
for (let index = 0; index < keys.length && index < args.length; index++) {
|
|
16
|
+
const value = args[index];
|
|
17
|
+
if (!isNil(value)) options[keys[index]] = value;
|
|
18
|
+
}
|
|
19
|
+
return options;
|
|
20
|
+
};
|
|
21
|
+
const optionsArg = (name, value, rest, keys, example) => {
|
|
22
|
+
if (isNil(value)) return positionalOptions(name, [value, ...rest], keys, example);
|
|
23
|
+
if (isPlainObject(value)) {
|
|
24
|
+
if (rest.some(arg => !isNil(arg))) {
|
|
25
|
+
throw new TypeError(
|
|
26
|
+
`${name}() takes either a single trailing options object like ${example} or positional optional args; do not mix both forms.`,
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
if (typeof value === "object") {
|
|
32
|
+
const kind = Array.isArray(value) ? "an array" : value.constructor?.name ?? "object";
|
|
33
|
+
throw new TypeError(
|
|
34
|
+
`${name}() options must be a plain object like ${example}, null/undefined, or positional optional args, not ${kind}.`,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
return positionalOptions(name, [value, ...rest], keys, example);
|
|
38
|
+
};
|
|
39
|
+
const callHelper = (name, ...args) => globalThis.__omp_helpers__[name](...args);
|
|
40
|
+
const hasScheme = path => typeof path === "string" && /^[A-Za-z][A-Za-z0-9+.-]*:\/\//.test(path);
|
|
41
|
+
const shouldDelegateRead = path => hasScheme(path) && !path.toLowerCase().startsWith("local://");
|
|
42
|
+
const withReadLineSelector = (path, options) => {
|
|
43
|
+
const offset = typeof options.offset === "number" ? options.offset : 1;
|
|
44
|
+
const limit = typeof options.limit === "number" ? options.limit : undefined;
|
|
45
|
+
if (offset <= 1 && limit === undefined) return path;
|
|
46
|
+
if (limit !== undefined && limit <= 0) return null;
|
|
47
|
+
const start = Math.max(1, offset);
|
|
48
|
+
if (limit === undefined) return `${path}:${start}-`;
|
|
49
|
+
return `${path}:${start}-${start + limit - 1}`;
|
|
50
|
+
};
|
|
51
|
+
const readToolText = async path => {
|
|
52
|
+
const res = await globalThis.__omp_call_tool__("read", { path });
|
|
53
|
+
return res && typeof res === "object" && "text" in res ? res.text : res;
|
|
54
|
+
};
|
|
6
55
|
|
|
7
|
-
|
|
56
|
+
|
|
57
|
+
const read = async (path, opts, ...rest) => {
|
|
58
|
+
const options = optionsArg("read", opts, rest, ["offset", "limit"], "{ offset, limit }");
|
|
59
|
+
if (shouldDelegateRead(path)) {
|
|
60
|
+
const toolPath = withReadLineSelector(path, options);
|
|
61
|
+
return toolPath === null ? "" : readToolText(toolPath);
|
|
62
|
+
}
|
|
63
|
+
return callHelper("read", path, options);
|
|
64
|
+
};
|
|
8
65
|
const write = async (path, data) => callHelper("writeFile", path, data);
|
|
9
66
|
const append = (path, content) => callHelper("append", path, content);
|
|
10
|
-
const sort = (text, opts
|
|
11
|
-
|
|
12
|
-
const
|
|
67
|
+
const sort = (text, opts, ...rest) =>
|
|
68
|
+
callHelper("sortText", text, optionsArg("sort", opts, rest, ["reverse", "unique"], "{ reverse, unique }"));
|
|
69
|
+
const uniq = (text, opts, ...rest) => callHelper("uniqText", text, optionsArg("uniq", opts, rest, ["count"], "{ count }"));
|
|
70
|
+
const counter = (items, opts, ...rest) =>
|
|
71
|
+
callHelper("counter", items, optionsArg("counter", opts, rest, ["limit", "reverse"], "{ limit, reverse }"));
|
|
13
72
|
const diff = (a, b) => callHelper("diff", a, b);
|
|
14
|
-
const tree = (path = ".", opts
|
|
73
|
+
const tree = (path = ".", opts, ...rest) => {
|
|
74
|
+
if (isPlainObject(path) && opts === undefined && rest.length === 0) {
|
|
75
|
+
return callHelper("tree", ".", path);
|
|
76
|
+
}
|
|
77
|
+
return callHelper(
|
|
78
|
+
"tree",
|
|
79
|
+
isNil(path) ? "." : path,
|
|
80
|
+
optionsArg("tree", opts, rest, ["maxDepth", "showHidden"], "{ maxDepth, showHidden }"),
|
|
81
|
+
);
|
|
82
|
+
};
|
|
15
83
|
const env = (key, value) => callHelper("env", key, value);
|
|
16
84
|
|
|
17
85
|
const tool = new Proxy(
|
|
@@ -19,7 +87,7 @@ if (!globalThis.__prometheus_js_prelude_loaded__) {
|
|
|
19
87
|
{
|
|
20
88
|
get(_target, prop) {
|
|
21
89
|
if (typeof prop !== "string") return undefined;
|
|
22
|
-
return async args => globalThis.
|
|
90
|
+
return async args => globalThis.__omp_call_tool__(prop, args ?? {});
|
|
23
91
|
},
|
|
24
92
|
},
|
|
25
93
|
);
|
|
@@ -41,16 +109,23 @@ if (!globalThis.__prometheus_js_prelude_loaded__) {
|
|
|
41
109
|
|
|
42
110
|
const hasOwn = (object, key) => Object.prototype.hasOwnProperty.call(object, key);
|
|
43
111
|
|
|
44
|
-
const
|
|
45
|
-
const o =
|
|
46
|
-
const res = await globalThis.
|
|
112
|
+
const completion = async (prompt, opts, ...rest) => {
|
|
113
|
+
const o = optionsArg("completion", opts, rest, ["model", "system", "schema"], "{ model, system, schema }");
|
|
114
|
+
const res = await globalThis.__omp_call_tool__("__completion__", { prompt, ...o });
|
|
47
115
|
const text = res && typeof res === "object" ? res.text : res;
|
|
48
116
|
return hasOwn(o, "schema") ? JSON.parse(text) : text;
|
|
49
117
|
};
|
|
50
118
|
|
|
51
|
-
const
|
|
52
|
-
const o =
|
|
53
|
-
const res = await globalThis.
|
|
119
|
+
const llm = async (prompt, opts, ...rest) => {
|
|
120
|
+
const o = optionsArg("llm", opts, rest, ["model", "system", "schema"], "{ model, system, schema }");
|
|
121
|
+
const res = await globalThis.__omp_call_tool__("__llm__", { prompt, ...o });
|
|
122
|
+
const text = res && typeof res === "object" ? res.text : res;
|
|
123
|
+
return hasOwn(o, "schema") ? JSON.parse(text) : text;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
const agent = async (prompt, opts, ...rest) => {
|
|
127
|
+
const o = optionsArg("agent", opts, rest, ["agentType", "model", "label", "schema"], "{ agentType, model, label, schema }");
|
|
128
|
+
const res = await globalThis.__omp_call_tool__("__agent__", { prompt, ...o });
|
|
54
129
|
const text = res && typeof res === "object" ? res.text : res;
|
|
55
130
|
return hasOwn(o, "schema") ? JSON.parse(text) : text;
|
|
56
131
|
};
|
|
@@ -60,7 +135,7 @@ if (!globalThis.__prometheus_js_prelude_loaded__) {
|
|
|
60
135
|
// reply) means unbounded — run every item at once.
|
|
61
136
|
const __concurrencyLimit = async () => {
|
|
62
137
|
try {
|
|
63
|
-
const r = await globalThis.
|
|
138
|
+
const r = await globalThis.__omp_call_tool__("__concurrency__", {});
|
|
64
139
|
const n = Math.trunc(Number(r && typeof r === "object" ? r.limit : r));
|
|
65
140
|
return Number.isFinite(n) && n > 0 ? n : 0;
|
|
66
141
|
} catch {
|
|
@@ -74,15 +149,25 @@ if (!globalThis.__prometheus_js_prelude_loaded__) {
|
|
|
74
149
|
const limit = await __concurrencyLimit();
|
|
75
150
|
const concurrency = limit > 0 ? Math.min(limit, list.length) : list.length;
|
|
76
151
|
const results = new Array(list.length);
|
|
152
|
+
// Barrier semantics (mirrors the Python _pool_map): every item settles
|
|
153
|
+
// before we return or throw, then the lowest-index error propagates.
|
|
154
|
+
// Early-rejecting would orphan in-flight thunks (e.g. live agent()
|
|
155
|
+
// subagents) whose worker-side promises would never be observed.
|
|
156
|
+
const errors = new Map();
|
|
77
157
|
let next = 0;
|
|
78
158
|
const worker = async () => {
|
|
79
159
|
while (true) {
|
|
80
160
|
const index = next++;
|
|
81
161
|
if (index >= list.length) return;
|
|
82
|
-
|
|
162
|
+
try {
|
|
163
|
+
results[index] = await fn(list[index], index);
|
|
164
|
+
} catch (error) {
|
|
165
|
+
errors.set(index, error);
|
|
166
|
+
}
|
|
83
167
|
}
|
|
84
168
|
};
|
|
85
169
|
await Promise.all(Array.from({ length: concurrency }, () => worker()));
|
|
170
|
+
if (errors.size > 0) throw errors.get(Math.min(...errors.keys()));
|
|
86
171
|
return results;
|
|
87
172
|
};
|
|
88
173
|
|
|
@@ -101,15 +186,15 @@ if (!globalThis.__prometheus_js_prelude_loaded__) {
|
|
|
101
186
|
return current;
|
|
102
187
|
};
|
|
103
188
|
|
|
104
|
-
const log = message => globalThis.
|
|
189
|
+
const log = message => globalThis.__omp_emit_status__("log", { message: String(message) });
|
|
105
190
|
|
|
106
191
|
const phase = title => {
|
|
107
|
-
globalThis.
|
|
108
|
-
globalThis.
|
|
192
|
+
globalThis.__omp_phase__ = String(title);
|
|
193
|
+
globalThis.__omp_emit_status__("phase", { title: String(title) });
|
|
109
194
|
};
|
|
110
195
|
|
|
111
196
|
const __budgetSnap = async () => {
|
|
112
|
-
const r = await globalThis.
|
|
197
|
+
const r = await globalThis.__omp_call_tool__("__budget__", {});
|
|
113
198
|
return r && typeof r === "object" ? r : {};
|
|
114
199
|
};
|
|
115
200
|
|
|
@@ -127,27 +212,79 @@ if (!globalThis.__prometheus_js_prelude_loaded__) {
|
|
|
127
212
|
};
|
|
128
213
|
|
|
129
214
|
const display = value => {
|
|
130
|
-
globalThis.
|
|
215
|
+
globalThis.__omp_display__(value);
|
|
131
216
|
};
|
|
132
217
|
|
|
133
218
|
const formatArgs = args => args.map(arg => (typeof arg === "string" ? arg : arg));
|
|
134
219
|
|
|
220
|
+
const consoleTimers = new Map();
|
|
221
|
+
const consoleCounts = new Map();
|
|
135
222
|
const consoleBridge = {
|
|
136
|
-
log: (...args) => globalThis.
|
|
137
|
-
info: (...args) => globalThis.
|
|
138
|
-
warn: (...args) => globalThis.
|
|
139
|
-
error: (...args) => globalThis.
|
|
140
|
-
debug: (...args) => globalThis.
|
|
223
|
+
log: (...args) => globalThis.__omp_log__("log", ...formatArgs(args)),
|
|
224
|
+
info: (...args) => globalThis.__omp_log__("info", ...formatArgs(args)),
|
|
225
|
+
warn: (...args) => globalThis.__omp_log__("warn", ...formatArgs(args)),
|
|
226
|
+
error: (...args) => globalThis.__omp_log__("error", ...formatArgs(args)),
|
|
227
|
+
debug: (...args) => globalThis.__omp_log__("debug", ...formatArgs(args)),
|
|
141
228
|
table: (data, columns) =>
|
|
142
229
|
columns === undefined
|
|
143
|
-
? globalThis.
|
|
144
|
-
: globalThis.
|
|
230
|
+
? globalThis.__omp_table__(data)
|
|
231
|
+
: globalThis.__omp_table__(data, columns),
|
|
232
|
+
dir: (value, _options) => globalThis.__omp_log__("log", value),
|
|
233
|
+
dirxml: (...args) => globalThis.__omp_log__("log", ...formatArgs(args)),
|
|
234
|
+
trace: (...args) => {
|
|
235
|
+
const stack = (new Error().stack ?? "").split("\n").slice(2).join("\n");
|
|
236
|
+
globalThis.__omp_log__("log", args.length > 0 ? `Trace: ${formatArgs(args).join(" ")}` : "Trace", `\n${stack}`);
|
|
237
|
+
},
|
|
238
|
+
assert: (condition, ...args) => {
|
|
239
|
+
if (condition) return;
|
|
240
|
+
if (args.length > 0) globalThis.__omp_log__("error", "Assertion failed:", ...formatArgs(args));
|
|
241
|
+
else globalThis.__omp_log__("error", "Assertion failed");
|
|
242
|
+
},
|
|
243
|
+
group: (...args) => {
|
|
244
|
+
if (args.length > 0) globalThis.__omp_log__("log", ...formatArgs(args));
|
|
245
|
+
},
|
|
246
|
+
groupCollapsed: (...args) => {
|
|
247
|
+
if (args.length > 0) globalThis.__omp_log__("log", ...formatArgs(args));
|
|
248
|
+
},
|
|
249
|
+
groupEnd: () => {},
|
|
250
|
+
time: label => {
|
|
251
|
+
consoleTimers.set(String(label ?? "default"), Date.now());
|
|
252
|
+
},
|
|
253
|
+
timeLog: (label, ...args) => {
|
|
254
|
+
const key = String(label ?? "default");
|
|
255
|
+
const start = consoleTimers.get(key);
|
|
256
|
+
if (start === undefined) {
|
|
257
|
+
globalThis.__omp_log__("warn", `Timer '${key}' does not exist`);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
globalThis.__omp_log__("log", `${key}: ${Date.now() - start}ms`, ...formatArgs(args));
|
|
261
|
+
},
|
|
262
|
+
timeEnd: label => {
|
|
263
|
+
const key = String(label ?? "default");
|
|
264
|
+
const start = consoleTimers.get(key);
|
|
265
|
+
if (start === undefined) {
|
|
266
|
+
globalThis.__omp_log__("warn", `Timer '${key}' does not exist`);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
consoleTimers.delete(key);
|
|
270
|
+
globalThis.__omp_log__("log", `${key}: ${Date.now() - start}ms`);
|
|
271
|
+
},
|
|
272
|
+
count: label => {
|
|
273
|
+
const key = String(label ?? "default");
|
|
274
|
+
const next = (consoleCounts.get(key) ?? 0) + 1;
|
|
275
|
+
consoleCounts.set(key, next);
|
|
276
|
+
globalThis.__omp_log__("log", `${key}: ${next}`);
|
|
277
|
+
},
|
|
278
|
+
countReset: label => {
|
|
279
|
+
consoleCounts.delete(String(label ?? "default"));
|
|
280
|
+
},
|
|
145
281
|
};
|
|
146
282
|
|
|
147
283
|
globalThis.console = consoleBridge;
|
|
148
284
|
globalThis.print = consoleBridge.log;
|
|
149
285
|
globalThis.display = display;
|
|
150
286
|
globalThis.tool = tool;
|
|
287
|
+
globalThis.completion = completion;
|
|
151
288
|
globalThis.llm = llm;
|
|
152
289
|
globalThis.output = output;
|
|
153
290
|
globalThis.agent = agent;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as BabelParser from "@babel/parser";
|
|
2
2
|
|
|
3
3
|
// Static ESM `import` declarations are not valid inside vm.runInContext (script-mode parsing),
|
|
4
4
|
// and dynamic `import(...)` would otherwise resolve specifiers against the worker module's URL
|
|
5
5
|
// instead of the session cwd. We rewrite both forms so they route through the worker-injected
|
|
6
|
-
// `
|
|
6
|
+
// `__omp_import__` helper, which resolves the specifier against the active session cwd. A real
|
|
7
7
|
// parser keeps imports embedded in string literals, template literals, or comments intact.
|
|
8
8
|
|
|
9
9
|
type BabelImportDeclaration = {
|
|
@@ -64,9 +64,22 @@ type BabelModuleSourceDeclaration = {
|
|
|
64
64
|
|
|
65
65
|
type BabelNode = { type: string; start: number; end: number; [key: string]: unknown };
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
// @babel/parser sits on the CLI launch graph (tools → eval backend → worker-core →
|
|
68
|
+
// runtime → this module) but only runs when an eval cell executes, so it is loaded
|
|
69
|
+
// lazily and memoized.
|
|
70
|
+
let babelParser: typeof BabelParser | undefined;
|
|
71
|
+
|
|
72
|
+
async function loadBabelParser(): Promise<typeof BabelParser> {
|
|
73
|
+
if (!babelParser) {
|
|
74
|
+
babelParser = await import("@babel/parser");
|
|
75
|
+
}
|
|
76
|
+
return babelParser;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async function parseProgram(code: string): Promise<{ program: { body: ReadonlyArray<BabelProgramNode> } } | null> {
|
|
80
|
+
const { parse } = await loadBabelParser();
|
|
68
81
|
try {
|
|
69
|
-
return
|
|
82
|
+
return parse(code, {
|
|
70
83
|
sourceType: "module",
|
|
71
84
|
allowAwaitOutsideFunction: true,
|
|
72
85
|
allowReturnOutsideFunction: true,
|
|
@@ -82,12 +95,18 @@ function parseProgram(code: string): { program: { body: ReadonlyArray<BabelProgr
|
|
|
82
95
|
}
|
|
83
96
|
}
|
|
84
97
|
|
|
98
|
+
// Callee substituted for dynamic `import(...)` calls. Functions handed to puppeteer
|
|
99
|
+
// (`tab.evaluate`, `page.evaluate`, `waitForFunction`, `$$eval`, ...) are serialized with
|
|
100
|
+
// `Function.prototype.toString()` and re-evaluated inside the browser page, where the
|
|
101
|
+
// worker-injected `__omp_import__` global does not exist. The swap therefore guards on the
|
|
102
|
+
// helper's presence and falls back to native dynamic import, so serialized code keeps
|
|
103
|
+
// working in foreign realms while in-worker code still resolves against the session cwd.
|
|
104
|
+
const DYNAMIC_IMPORT_CALLEE = '(typeof __omp_import__ === "function" ? __omp_import__ : (s, o) => import(s, o))';
|
|
105
|
+
|
|
85
106
|
function buildOmpImportCall(sourceLiteral: string, optionsLiteral: string | undefined): string {
|
|
86
|
-
// Route every static import through the worker-injected `
|
|
107
|
+
// Route every static import through the worker-injected `__omp_import__` helper so the
|
|
87
108
|
// specifier resolves against the session cwd (and `with`-attribute imports keep working).
|
|
88
|
-
return optionsLiteral
|
|
89
|
-
? `__prometheus_import__(${sourceLiteral}, ${optionsLiteral})`
|
|
90
|
-
: `__prometheus_import__(${sourceLiteral})`;
|
|
109
|
+
return optionsLiteral ? `__omp_import__(${sourceLiteral}, ${optionsLiteral})` : `__omp_import__(${sourceLiteral})`;
|
|
91
110
|
}
|
|
92
111
|
|
|
93
112
|
// Walks every node in `root`, depth-first, invoking `visit` on each one. Skips Babel's
|
|
@@ -119,7 +138,7 @@ function buildOptionsLiteral(node: BabelImportDeclaration): string | undefined {
|
|
|
119
138
|
const key = attr.key.type === "Identifier" ? attr.key.name : JSON.stringify(attr.key.value);
|
|
120
139
|
return `${key}: ${JSON.stringify(attr.value.value)}`;
|
|
121
140
|
});
|
|
122
|
-
// Native dynamic import takes options as `{ with: { ... } }`. `
|
|
141
|
+
// Native dynamic import takes options as `{ with: { ... } }`. `__omp_import__` forwards the
|
|
123
142
|
// options bag verbatim, so we wrap the attribute pairs accordingly.
|
|
124
143
|
return `{ with: { ${pairs.join(", ")} } }`;
|
|
125
144
|
}
|
|
@@ -156,10 +175,10 @@ function rewriteImportNode(node: BabelImportDeclaration): string {
|
|
|
156
175
|
return `await ${importCall};`;
|
|
157
176
|
}
|
|
158
177
|
|
|
159
|
-
export function rewriteImports(code: string): string {
|
|
178
|
+
export async function rewriteImports(code: string): Promise<string> {
|
|
160
179
|
if (!code.includes("import")) return code;
|
|
161
180
|
|
|
162
|
-
const ast = parseProgram(code);
|
|
181
|
+
const ast = await parseProgram(code);
|
|
163
182
|
if (!ast) {
|
|
164
183
|
// Parser bailed entirely — let the VM surface the real syntax error.
|
|
165
184
|
return code;
|
|
@@ -168,21 +187,21 @@ export function rewriteImports(code: string): string {
|
|
|
168
187
|
type Edit = { start: number; end: number; text: string };
|
|
169
188
|
const edits: Edit[] = [];
|
|
170
189
|
|
|
171
|
-
// Top-level static `import` declarations become `await
|
|
190
|
+
// Top-level static `import` declarations become `await __omp_import__(...)` calls.
|
|
172
191
|
for (const node of ast.program.body) {
|
|
173
192
|
if (node.type !== "ImportDeclaration") continue;
|
|
174
193
|
const decl = node as unknown as BabelImportDeclaration;
|
|
175
194
|
edits.push({ start: decl.start, end: decl.end, text: rewriteImportNode(decl) });
|
|
176
195
|
}
|
|
177
196
|
|
|
178
|
-
// Dynamic `import(...)` expressions (anywhere) get their callee swapped for `
|
|
197
|
+
// Dynamic `import(...)` expressions (anywhere) get their callee swapped for `__omp_import__`
|
|
179
198
|
// so the specifier resolves against the session cwd instead of the worker module's URL.
|
|
180
199
|
walkNodes(ast, node => {
|
|
181
200
|
if (node.type !== "CallExpression") return;
|
|
182
201
|
const call = node as unknown as { callee?: { type?: string; start?: number; end?: number } };
|
|
183
202
|
const callee = call.callee;
|
|
184
203
|
if (callee?.type !== "Import" || typeof callee.start !== "number" || typeof callee.end !== "number") return;
|
|
185
|
-
edits.push({ start: callee.start, end: callee.end, text:
|
|
204
|
+
edits.push({ start: callee.start, end: callee.end, text: DYNAMIC_IMPORT_CALLEE });
|
|
186
205
|
});
|
|
187
206
|
|
|
188
207
|
if (edits.length === 0) return code;
|
|
@@ -195,8 +214,8 @@ export function rewriteImports(code: string): string {
|
|
|
195
214
|
}
|
|
196
215
|
return result;
|
|
197
216
|
}
|
|
198
|
-
export function collectModuleSourceSpecifiers(code: string): string[] {
|
|
199
|
-
const ast = parseProgram(code);
|
|
217
|
+
export async function collectModuleSourceSpecifiers(code: string): Promise<string[]> {
|
|
218
|
+
const ast = await parseProgram(code);
|
|
200
219
|
if (!ast) return [];
|
|
201
220
|
const sources: string[] = [];
|
|
202
221
|
for (const node of ast.program.body) {
|
|
@@ -212,8 +231,11 @@ export function collectModuleSourceSpecifiers(code: string): string[] {
|
|
|
212
231
|
return sources;
|
|
213
232
|
}
|
|
214
233
|
|
|
215
|
-
export function rewriteModuleSourceSpecifiers(
|
|
216
|
-
|
|
234
|
+
export async function rewriteModuleSourceSpecifiers(
|
|
235
|
+
code: string,
|
|
236
|
+
replacer: (source: string) => string,
|
|
237
|
+
): Promise<string> {
|
|
238
|
+
const ast = await parseProgram(code);
|
|
217
239
|
if (!ast) return code;
|
|
218
240
|
|
|
219
241
|
type Edit = { start: number; end: number; text: string };
|
|
@@ -243,9 +265,9 @@ export function rewriteModuleSourceSpecifiers(code: string, replacer: (source: s
|
|
|
243
265
|
return result;
|
|
244
266
|
}
|
|
245
267
|
|
|
246
|
-
export function rewriteDynamicImports(code: string, callee = "
|
|
268
|
+
export async function rewriteDynamicImports(code: string, callee = "__omp_import__"): Promise<string> {
|
|
247
269
|
if (!code.includes("import")) return code;
|
|
248
|
-
const ast = parseProgram(code);
|
|
270
|
+
const ast = await parseProgram(code);
|
|
249
271
|
if (!ast) return code;
|
|
250
272
|
|
|
251
273
|
type Edit = { start: number; end: number; text: string };
|
|
@@ -333,10 +355,10 @@ function appendGlobalBindingPublish(source: string, names: readonly string[]): s
|
|
|
333
355
|
* Nested declarations (inside functions, blocks, classes) are left alone \u2014 they're
|
|
334
356
|
* scoped to their enclosing function/block regardless of `var` vs `let`/`const`.
|
|
335
357
|
*/
|
|
336
|
-
function demoteTopLevelLexicals(code: string, options: { publishGlobals?: boolean } = {}): string {
|
|
358
|
+
async function demoteTopLevelLexicals(code: string, options: { publishGlobals?: boolean } = {}): Promise<string> {
|
|
337
359
|
if (!/\b(?:const|let|class)\b/.test(code)) return code;
|
|
338
360
|
|
|
339
|
-
const ast = parseProgram(code);
|
|
361
|
+
const ast = await parseProgram(code);
|
|
340
362
|
if (!ast) {
|
|
341
363
|
return code;
|
|
342
364
|
}
|
|
@@ -375,8 +397,8 @@ function demoteTopLevelLexicals(code: string, options: { publishGlobals?: boolea
|
|
|
375
397
|
return result;
|
|
376
398
|
}
|
|
377
399
|
|
|
378
|
-
function returnFinalExpression(code: string): { source: string; returned: boolean } {
|
|
379
|
-
const ast = parseProgram(code);
|
|
400
|
+
async function returnFinalExpression(code: string): Promise<{ source: string; returned: boolean }> {
|
|
401
|
+
const ast = await parseProgram(code);
|
|
380
402
|
const body = ast?.program.body;
|
|
381
403
|
if (!body) return { source: code, returned: false };
|
|
382
404
|
let lastIndex = body.length - 1;
|
|
@@ -389,18 +411,18 @@ function returnFinalExpression(code: string): { source: string; returned: boolea
|
|
|
389
411
|
const suffix = code.slice(expression.end);
|
|
390
412
|
const semicolonMatch = statement.match(/;\s*$/);
|
|
391
413
|
const trimmedStatement = semicolonMatch ? statement.slice(0, semicolonMatch.index) : statement;
|
|
392
|
-
return { source: `${prefix}
|
|
414
|
+
return { source: `${prefix}__omp_set_final_expr__((${trimmedStatement}));${suffix}`, returned: true };
|
|
393
415
|
}
|
|
394
416
|
if (last?.type === "ReturnStatement") {
|
|
395
417
|
// Top-level `return value;` is otherwise swallowed: it forces the cell into an async IIFE
|
|
396
|
-
// wrapper that discards the returned value. Rewrite into `
|
|
418
|
+
// wrapper that discards the returned value. Rewrite into `__omp_set_final_expr__((expr))`
|
|
397
419
|
// so the runtime can surface the value to the caller just like a trailing expression.
|
|
398
420
|
const ret = last as unknown as { start: number; end: number; argument?: { start: number; end: number } | null };
|
|
399
421
|
if (!ret.argument) return { source: code, returned: false };
|
|
400
422
|
const prefix = code.slice(0, ret.start);
|
|
401
423
|
const suffix = code.slice(ret.end);
|
|
402
424
|
const expr = code.slice(ret.argument.start, ret.argument.end);
|
|
403
|
-
return { source: `${prefix}
|
|
425
|
+
return { source: `${prefix}__omp_set_final_expr__((${expr}));${suffix}`, returned: true };
|
|
404
426
|
}
|
|
405
427
|
return { source: code, returned: false };
|
|
406
428
|
}
|
|
@@ -440,8 +462,8 @@ function containsAsyncWrapperSyntax(value: unknown): boolean {
|
|
|
440
462
|
return false;
|
|
441
463
|
}
|
|
442
464
|
|
|
443
|
-
function requiresAsyncWrapper(code: string): boolean {
|
|
444
|
-
const ast = parseProgram(code);
|
|
465
|
+
async function requiresAsyncWrapper(code: string): Promise<boolean> {
|
|
466
|
+
const ast = await parseProgram(code);
|
|
445
467
|
if (!ast) return false;
|
|
446
468
|
for (const node of ast.program.body) {
|
|
447
469
|
if (containsAsyncWrapperSyntax(node)) return true;
|
|
@@ -488,13 +510,15 @@ export function stripTypeScriptSyntax(
|
|
|
488
510
|
const LOOKS_LIKE_TS =
|
|
489
511
|
/(?:\bimport\s+type\b|\bexport\s+type\b|\b(?:import|export)\s*\{[^}\n]*\btype\s+\w|\binterface\s+\w|\btype\s+\w+\s*=|\b(?:as|satisfies)\s+(?:[A-Z]|\bconst\b)|:\s*(?:string|number|boolean|any|unknown|void|never|object|[A-Z]\w*)\b|<\s*[A-Z]\w*\s*[,>])/;
|
|
490
512
|
|
|
491
|
-
export function wrapCode(
|
|
492
|
-
|
|
513
|
+
export async function wrapCode(
|
|
514
|
+
code: string,
|
|
515
|
+
): Promise<{ source: string; asyncWrapped: boolean; finalExpressionReturned: boolean }> {
|
|
516
|
+
const finalExpression = await returnFinalExpression(code);
|
|
493
517
|
const stripped = stripTypeScript(finalExpression.source);
|
|
494
|
-
const importsRewritten = rewriteImports(stripped);
|
|
495
|
-
const needsAsyncWrapper = requiresAsyncWrapper(importsRewritten);
|
|
518
|
+
const importsRewritten = await rewriteImports(stripped);
|
|
519
|
+
const needsAsyncWrapper = await requiresAsyncWrapper(importsRewritten);
|
|
496
520
|
const rewritten = {
|
|
497
|
-
source: demoteTopLevelLexicals(importsRewritten, { publishGlobals: needsAsyncWrapper }),
|
|
521
|
+
source: await demoteTopLevelLexicals(importsRewritten, { publishGlobals: needsAsyncWrapper }),
|
|
498
522
|
returned: finalExpression.returned,
|
|
499
523
|
};
|
|
500
524
|
if (!needsAsyncWrapper) {
|
|
@@ -37,11 +37,16 @@ export interface RuntimeOptions {
|
|
|
37
37
|
initialCwd: string;
|
|
38
38
|
sessionId: string;
|
|
39
39
|
/**
|
|
40
|
-
* Extra globals installed alongside `
|
|
40
|
+
* Extra globals installed alongside `__omp_helpers__` / prelude. Use for stable, lifetime-
|
|
41
41
|
* of-the-worker bindings (e.g. browser's `page`, `browser`). Per-run scope should be set
|
|
42
42
|
* via `setRunScope()` instead.
|
|
43
43
|
*/
|
|
44
44
|
extraGlobals?: Record<string, unknown>;
|
|
45
|
+
/**
|
|
46
|
+
* On-disk roots the helpers substitute for internal-URL schemes (e.g.
|
|
47
|
+
* `{ local: "/…/artifacts/local" }`). Stable for the worker's lifetime.
|
|
48
|
+
*/
|
|
49
|
+
localRoots?: Record<string, string>;
|
|
45
50
|
}
|
|
46
51
|
|
|
47
52
|
// Strict base64: characters from the standard alphabet plus optional `=` padding, and a
|
|
@@ -126,15 +131,18 @@ export class JsRuntime {
|
|
|
126
131
|
#env: Map<string, string>;
|
|
127
132
|
#als = new AsyncLocalStorage<RunContext>();
|
|
128
133
|
#moduleLoader: LocalModuleLoader;
|
|
134
|
+
#localRoots: Record<string, string>;
|
|
129
135
|
|
|
130
136
|
constructor(opts: RuntimeOptions) {
|
|
131
137
|
this.#cwd = opts.initialCwd;
|
|
132
138
|
this.sessionId = opts.sessionId;
|
|
133
139
|
this.#env = new Map();
|
|
134
140
|
this.#moduleLoader = new LocalModuleLoader(this.sessionId);
|
|
141
|
+
this.#localRoots = opts.localRoots ?? {};
|
|
135
142
|
this.helpers = createHelpers({
|
|
136
143
|
cwd: () => this.#activeCwd(),
|
|
137
144
|
env: this.#env,
|
|
145
|
+
localRoots: () => this.#localRoots,
|
|
138
146
|
emitStatus: event => this.#activeHooks("emitStatus")?.onDisplay({ type: "status", event }),
|
|
139
147
|
});
|
|
140
148
|
this.#install(opts.extraGlobals);
|
|
@@ -146,7 +154,7 @@ export class JsRuntime {
|
|
|
146
154
|
|
|
147
155
|
setCwd(cwd: string): void {
|
|
148
156
|
this.#cwd = cwd;
|
|
149
|
-
const session = (globalThis as {
|
|
157
|
+
const session = (globalThis as { __omp_session__?: { cwd?: string } }).__omp_session__;
|
|
150
158
|
if (session) session.cwd = cwd;
|
|
151
159
|
}
|
|
152
160
|
|
|
@@ -173,7 +181,7 @@ export class JsRuntime {
|
|
|
173
181
|
finalExpressionValue: undefined,
|
|
174
182
|
};
|
|
175
183
|
return await this.#als.run(context, async () => {
|
|
176
|
-
const wrapped = wrapCode(code);
|
|
184
|
+
const wrapped = await wrapCode(code);
|
|
177
185
|
const value = indirectEval(wrapped.source, filename);
|
|
178
186
|
if (wrapped.finalExpressionReturned) {
|
|
179
187
|
const awaited = await awaitMaybePromise(value);
|
|
@@ -267,38 +275,38 @@ export class JsRuntime {
|
|
|
267
275
|
|
|
268
276
|
#install(extraGlobals: Record<string, unknown> | undefined): void {
|
|
269
277
|
const injected: Record<string, unknown> = {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
278
|
+
__omp_session__: { cwd: this.#cwd, sessionId: this.sessionId },
|
|
279
|
+
__omp_helpers__: this.helpers,
|
|
280
|
+
__omp_call_tool__: async (name: string, args: unknown) => {
|
|
273
281
|
const hooks = this.#activeHooks("tool");
|
|
274
282
|
if (!hooks) return undefined;
|
|
275
283
|
return await hooks.callTool(name, args);
|
|
276
284
|
},
|
|
277
|
-
|
|
285
|
+
__omp_import__: async (source: string, options?: ImportCallOptions) => {
|
|
278
286
|
const resolved = await this.#moduleLoader.resolveForRun(this.#activeCwd(), source);
|
|
279
287
|
if (resolved.mode === "local") return resolved.value;
|
|
280
288
|
const target = resolved.target;
|
|
281
289
|
return options !== undefined ? await import(target, options) : await import(target);
|
|
282
290
|
},
|
|
283
|
-
|
|
291
|
+
__omp_import_from__: async (moduleUrl: string, source: string, options?: ImportCallOptions) => {
|
|
284
292
|
const resolved = await this.#moduleLoader.resolveForModule(moduleUrl, source, this.#activeCwd());
|
|
285
293
|
if (resolved.mode === "local") return resolved.value;
|
|
286
294
|
const target = resolved.target;
|
|
287
295
|
return options !== undefined ? await import(target, options) : await import(target);
|
|
288
296
|
},
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
297
|
+
__omp_get_require__: (moduleUrl?: string) => this.#activeRequire(moduleUrl),
|
|
298
|
+
__omp_get_filename__: (moduleUrl?: string) => this.#moduleFilename(moduleUrl),
|
|
299
|
+
__omp_get_dirname__: (moduleUrl?: string) => this.#moduleDirname(moduleUrl),
|
|
300
|
+
__omp_emit_status__: (op: string, data: Record<string, unknown> = {}) => {
|
|
293
301
|
const event: JsStatusEvent = { op, ...data };
|
|
294
302
|
this.#activeHooks("emitStatus")?.onDisplay({ type: "status", event });
|
|
295
303
|
},
|
|
296
|
-
|
|
304
|
+
__omp_log__: (level: string, ...args: unknown[]) => {
|
|
297
305
|
const prefix = level === "error" ? "[error] " : level === "warn" ? "[warn] " : "";
|
|
298
306
|
const text = `${prefix}${formatConsoleArgs(args)}`;
|
|
299
307
|
this.#activeHooks("log")?.onText(text.endsWith("\n") ? text : `${text}\n`);
|
|
300
308
|
},
|
|
301
|
-
|
|
309
|
+
__omp_table__: (...args: unknown[]) => {
|
|
302
310
|
const hooks = this.#activeHooks("table");
|
|
303
311
|
if (!hooks) return;
|
|
304
312
|
let buffer = "";
|
|
@@ -312,8 +320,8 @@ export class JsRuntime {
|
|
|
312
320
|
(tableConsole.table as (...a: unknown[]) => void)(...args);
|
|
313
321
|
hooks.onText(buffer.endsWith("\n") ? buffer : `${buffer}\n`);
|
|
314
322
|
},
|
|
315
|
-
|
|
316
|
-
|
|
323
|
+
__omp_display__: (value: unknown) => this.displayValue(value),
|
|
324
|
+
__omp_set_final_expr__: (value: unknown) => {
|
|
317
325
|
const context = this.#als.getStore();
|
|
318
326
|
if (!context) {
|
|
319
327
|
logger.warn("js runtime final expression set outside an active run");
|
|
@@ -3,6 +3,7 @@ import type { ToolSession } from "../../tools";
|
|
|
3
3
|
import { ToolError } from "../../tools/tool-errors";
|
|
4
4
|
import { EVAL_AGENT_BRIDGE_NAME, runEvalAgent } from "../agent-bridge";
|
|
5
5
|
import { EVAL_BUDGET_BRIDGE_NAME, type EvalBudgetResult, runEvalBudget } from "../budget-bridge";
|
|
6
|
+
import { EVAL_COMPLETION_BRIDGE_NAME, runEvalCompletion } from "../completion-bridge";
|
|
6
7
|
import { EVAL_CONCURRENCY_BRIDGE_NAME, type EvalConcurrencyResult, runEvalConcurrency } from "../concurrency-bridge";
|
|
7
8
|
import { EVAL_LLM_BRIDGE_NAME, runEvalLlm } from "../llm-bridge";
|
|
8
9
|
import type { JsStatusEvent } from "./shared/types";
|
|
@@ -107,6 +108,9 @@ function summarizeToolResult(
|
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
export async function callSessionTool(name: string, args: unknown, options: ToolBridgeOptions): Promise<ToolValue> {
|
|
111
|
+
if (name === EVAL_COMPLETION_BRIDGE_NAME) {
|
|
112
|
+
return await runEvalCompletion(args, options);
|
|
113
|
+
}
|
|
110
114
|
if (name === EVAL_LLM_BRIDGE_NAME) {
|
|
111
115
|
return await runEvalLlm(args, options);
|
|
112
116
|
}
|