@oh-my-pi/pi-coding-agent 15.1.1 → 15.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/dist/types/async/index.d.ts +2 -0
- package/dist/types/async/job-manager.d.ts +87 -0
- package/dist/types/async/support.d.ts +2 -0
- package/dist/types/autoresearch/dashboard.d.ts +4 -0
- package/dist/types/autoresearch/git.d.ts +36 -0
- package/dist/types/autoresearch/helpers.d.ts +24 -0
- package/dist/types/autoresearch/index.d.ts +2 -0
- package/dist/types/autoresearch/state.d.ts +17 -0
- package/dist/types/autoresearch/storage.d.ts +142 -0
- package/dist/types/autoresearch/tools/init-experiment.d.ts +31 -0
- package/dist/types/autoresearch/tools/log-experiment.d.ts +23 -0
- package/dist/types/autoresearch/tools/run-experiment.d.ts +8 -0
- package/dist/types/autoresearch/tools/update-notes.d.ts +12 -0
- package/dist/types/autoresearch/types.d.ts +154 -0
- package/dist/types/capability/context-file.d.ts +17 -0
- package/dist/types/capability/extension-module.d.ts +15 -0
- package/dist/types/capability/extension.d.ts +28 -0
- package/dist/types/capability/fs.d.ts +20 -0
- package/dist/types/capability/hook.d.ts +19 -0
- package/dist/types/capability/index.d.ts +80 -0
- package/dist/types/capability/instruction.d.ts +17 -0
- package/dist/types/capability/mcp.d.ts +45 -0
- package/dist/types/capability/prompt.d.ts +15 -0
- package/dist/types/capability/rule.d.ts +61 -0
- package/dist/types/capability/settings.d.ts +15 -0
- package/dist/types/capability/skill.d.ts +36 -0
- package/dist/types/capability/slash-command.d.ts +17 -0
- package/dist/types/capability/ssh.d.ts +23 -0
- package/dist/types/capability/system-prompt.d.ts +15 -0
- package/dist/types/capability/tool.d.ts +19 -0
- package/dist/types/capability/types.d.ts +154 -0
- package/dist/types/cli/agents-cli.d.ts +12 -0
- package/dist/types/cli/args.d.ts +52 -0
- package/dist/types/cli/auth-broker-cli.d.ts +25 -0
- package/dist/types/cli/auth-gateway-cli.d.ts +18 -0
- package/dist/types/cli/classify-install-target.d.ts +18 -0
- package/dist/types/cli/commands/init-xdg.d.ts +1 -0
- package/dist/types/cli/config-cli.d.ts +22 -0
- package/dist/types/cli/file-processor.d.ts +11 -0
- package/dist/types/cli/grep-cli.d.ts +17 -0
- package/dist/types/cli/grievances-cli.d.ts +37 -0
- package/dist/types/cli/initial-message.d.ts +17 -0
- package/dist/types/cli/list-models.d.ts +30 -0
- package/dist/types/cli/plugin-cli.d.ts +32 -0
- package/dist/types/cli/read-cli.d.ts +4 -0
- package/dist/types/cli/session-picker.d.ts +3 -0
- package/dist/types/cli/setup-cli.d.ts +24 -0
- package/dist/types/cli/shell-cli.d.ts +8 -0
- package/dist/types/cli/ssh-cli.d.ts +21 -0
- package/dist/types/cli/stats-cli.d.ts +17 -0
- package/dist/types/cli/update-cli.d.ts +20 -0
- package/dist/types/cli/web-search-cli.d.ts +20 -0
- package/dist/types/cli.d.ts +3 -0
- package/dist/types/commands/acp.d.ts +12 -0
- package/dist/types/commands/agents.d.ts +34 -0
- package/dist/types/commands/auth-broker.d.ts +54 -0
- package/dist/types/commands/auth-gateway.d.ts +32 -0
- package/dist/types/commands/commit.d.ts +27 -0
- package/dist/types/commands/config.d.ts +30 -0
- package/dist/types/commands/grep.d.ts +42 -0
- package/dist/types/commands/grievances.d.ts +40 -0
- package/dist/types/commands/launch.d.ts +118 -0
- package/dist/types/commands/plugin.d.ts +52 -0
- package/dist/types/commands/read.d.ts +15 -0
- package/dist/types/commands/setup.d.ts +25 -0
- package/dist/types/commands/shell.d.ts +21 -0
- package/dist/types/commands/ssh.d.ts +48 -0
- package/dist/types/commands/stats.d.ts +25 -0
- package/dist/types/commands/update.d.ts +20 -0
- package/dist/types/commands/web-search.d.ts +33 -0
- package/dist/types/commit/agentic/agent.d.ts +31 -0
- package/dist/types/commit/agentic/fallback.d.ts +5 -0
- package/dist/types/commit/agentic/index.d.ts +2 -0
- package/dist/types/commit/agentic/state.d.ts +58 -0
- package/dist/types/commit/agentic/tools/analyze-file.d.ts +19 -0
- package/dist/types/commit/agentic/tools/git-file-diff.d.ts +10 -0
- package/dist/types/commit/agentic/tools/git-hunk.d.ts +9 -0
- package/dist/types/commit/agentic/tools/git-overview.d.ts +9 -0
- package/dist/types/commit/agentic/tools/index.d.ts +16 -0
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +28 -0
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +36 -0
- package/dist/types/commit/agentic/tools/recent-commits.d.ts +7 -0
- package/dist/types/commit/agentic/tools/schemas.d.ts +27 -0
- package/dist/types/commit/agentic/tools/split-commit.d.ts +53 -0
- package/dist/types/commit/agentic/topo-sort.d.ts +4 -0
- package/dist/types/commit/agentic/trivial.d.ts +7 -0
- package/dist/types/commit/agentic/validation.d.ts +20 -0
- package/dist/types/commit/analysis/conventional.d.ts +22 -0
- package/dist/types/commit/analysis/index.d.ts +4 -0
- package/dist/types/commit/analysis/scope.d.ts +6 -0
- package/dist/types/commit/analysis/summary.d.ts +19 -0
- package/dist/types/commit/analysis/validation.d.ts +8 -0
- package/dist/types/commit/changelog/detect.d.ts +2 -0
- package/dist/types/commit/changelog/generate.d.ts +30 -0
- package/dist/types/commit/changelog/index.d.ts +30 -0
- package/dist/types/commit/changelog/parse.d.ts +2 -0
- package/dist/types/commit/cli.d.ts +3 -0
- package/dist/types/commit/git/diff.d.ts +5 -0
- package/dist/types/commit/index.d.ts +4 -0
- package/dist/types/commit/map-reduce/index.d.ts +28 -0
- package/dist/types/commit/map-reduce/map-phase.d.ts +17 -0
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +13 -0
- package/dist/types/commit/map-reduce/utils.d.ts +2 -0
- package/dist/types/commit/message.d.ts +2 -0
- package/dist/types/commit/model-selection.d.ts +15 -0
- package/dist/types/commit/pipeline.d.ts +5 -0
- package/dist/types/commit/shared-llm.d.ts +54 -0
- package/dist/types/commit/types.d.ts +78 -0
- package/dist/types/commit/utils/exclusions.d.ts +4 -0
- package/dist/types/commit/utils.d.ts +20 -0
- package/dist/types/config/config-file.d.ts +58 -0
- package/dist/types/config/file-lock.d.ts +6 -0
- package/dist/types/config/keybindings.d.ts +334 -0
- package/dist/types/config/model-equivalence.d.ts +24 -0
- package/dist/types/config/model-registry.d.ts +363 -0
- package/dist/types/config/model-resolver.d.ts +230 -0
- package/dist/types/config/models-config-schema.d.ts +503 -0
- package/dist/types/config/prompt-templates.d.ts +32 -0
- package/dist/types/config/resolve-config-value.d.ts +17 -0
- package/dist/types/config/settings-schema.d.ts +3361 -0
- package/dist/types/config/settings.d.ts +126 -0
- package/dist/types/config.d.ts +66 -0
- package/dist/types/cursor.d.ts +22 -0
- package/dist/types/dap/client.d.ts +38 -0
- package/dist/types/dap/config.d.ts +6 -0
- package/dist/types/dap/index.d.ts +4 -0
- package/dist/types/dap/session.d.ts +108 -0
- package/dist/types/dap/types.d.ts +524 -0
- package/dist/types/debug/index.d.ts +15 -0
- package/dist/types/debug/log-formatting.d.ts +4 -0
- package/dist/types/debug/log-viewer.d.ts +68 -0
- package/dist/types/debug/profiler.d.ts +24 -0
- package/dist/types/debug/raw-sse-buffer.d.ts +44 -0
- package/dist/types/debug/raw-sse.d.ts +16 -0
- package/dist/types/debug/report-bundle.d.ts +55 -0
- package/dist/types/debug/system-info.d.ts +26 -0
- package/dist/types/discovery/agents-md.d.ts +1 -0
- package/dist/types/discovery/agents.d.ts +12 -0
- package/dist/types/discovery/builtin.d.ts +1 -0
- package/dist/types/discovery/claude-plugins.d.ts +1 -0
- package/dist/types/discovery/claude.d.ts +1 -0
- package/dist/types/discovery/cline.d.ts +1 -0
- package/dist/types/discovery/codex.d.ts +1 -0
- package/dist/types/discovery/cursor.d.ts +16 -0
- package/dist/types/discovery/gemini.d.ts +1 -0
- package/dist/types/discovery/github.d.ts +1 -0
- package/dist/types/discovery/helpers.d.ts +267 -0
- package/dist/types/discovery/index.d.ts +51 -0
- package/dist/types/discovery/mcp-json.d.ts +1 -0
- package/dist/types/discovery/opencode.d.ts +1 -0
- package/dist/types/discovery/plugin-dir-roots.d.ts +15 -0
- package/dist/types/discovery/ssh.d.ts +1 -0
- package/dist/types/discovery/substitute-plugin-root.d.ts +5 -0
- package/dist/types/discovery/vscode.d.ts +1 -0
- package/dist/types/discovery/windsurf.d.ts +13 -0
- package/dist/types/edit/apply-patch/index.d.ts +35 -0
- package/dist/types/edit/apply-patch/parser.d.ts +34 -0
- package/dist/types/edit/diff.d.ts +59 -0
- package/dist/types/edit/file-read-cache.d.ts +25 -0
- package/dist/types/edit/index.d.ts +58 -0
- package/dist/types/edit/modes/apply-patch.d.ts +24 -0
- package/dist/types/edit/modes/patch.d.ts +99 -0
- package/dist/types/edit/modes/replace.d.ts +142 -0
- package/dist/types/edit/normalize.d.ts +43 -0
- package/dist/types/edit/notebook.d.ts +23 -0
- package/dist/types/edit/read-file.d.ts +2 -0
- package/dist/types/edit/renderer.d.ts +110 -0
- package/dist/types/edit/streaming.d.ts +59 -0
- package/dist/types/eval/backend.d.ts +40 -0
- package/dist/types/eval/index.d.ts +4 -0
- package/dist/types/eval/js/context-manager.d.ts +24 -0
- package/dist/types/eval/js/executor.d.ts +28 -0
- package/dist/types/eval/js/index.d.ts +10 -0
- package/dist/types/eval/js/shared/helpers.d.ts +38 -0
- package/dist/types/eval/js/shared/indirect-eval.d.ts +14 -0
- package/dist/types/eval/js/shared/prelude.d.ts +1 -0
- package/dist/types/eval/js/shared/rewrite-imports.d.ts +6 -0
- package/dist/types/eval/js/shared/runtime.d.ts +47 -0
- package/dist/types/eval/js/shared/types.d.ts +24 -0
- package/dist/types/eval/js/tool-bridge.d.ts +18 -0
- package/dist/types/eval/js/worker-core.d.ts +5 -0
- package/dist/types/eval/js/worker-entry.d.ts +1 -0
- package/dist/types/eval/js/worker-protocol.d.ts +77 -0
- package/dist/types/eval/py/display.d.ts +25 -0
- package/dist/types/eval/py/executor.d.ts +83 -0
- package/dist/types/eval/py/index.d.ts +10 -0
- package/dist/types/eval/py/kernel.d.ts +55 -0
- package/dist/types/eval/py/prelude.d.ts +1 -0
- package/dist/types/eval/py/runtime.d.ts +21 -0
- package/dist/types/eval/py/tool-bridge.d.ts +20 -0
- package/dist/types/eval/types.d.ts +52 -0
- package/dist/types/exa/factory.d.ts +13 -0
- package/dist/types/exa/index.d.ts +20 -0
- package/dist/types/exa/mcp-client.d.ts +45 -0
- package/dist/types/exa/render.d.ts +19 -0
- package/dist/types/exa/researcher.d.ts +9 -0
- package/dist/types/exa/search.d.ts +9 -0
- package/dist/types/exa/types.d.ts +155 -0
- package/dist/types/exa/websets.d.ts +9 -0
- package/dist/types/exec/bash-executor.d.ts +41 -0
- package/dist/types/exec/exec.d.ts +25 -0
- package/dist/types/exec/idle-timeout-watchdog.d.ts +18 -0
- package/dist/types/exec/non-interactive-env.d.ts +1 -0
- package/dist/types/export/custom-share.d.ts +20 -0
- package/dist/types/export/html/index.d.ts +10 -0
- package/dist/types/export/html/template.generated.d.ts +1 -0
- package/dist/types/export/html/template.macro.d.ts +5 -0
- package/dist/types/export/ttsr.d.ts +44 -0
- package/dist/types/extensibility/custom-commands/bundled/ci-green/index.d.ts +9 -0
- package/dist/types/extensibility/custom-commands/bundled/review/index.d.ts +10 -0
- package/dist/types/extensibility/custom-commands/index.d.ts +2 -0
- package/dist/types/extensibility/custom-commands/loader.d.ts +29 -0
- package/dist/types/extensibility/custom-commands/types.d.ts +106 -0
- package/dist/types/extensibility/custom-tools/index.d.ts +6 -0
- package/dist/types/extensibility/custom-tools/loader.d.ts +69 -0
- package/dist/types/extensibility/custom-tools/types.d.ts +226 -0
- package/dist/types/extensibility/custom-tools/wrapper.d.ts +23 -0
- package/dist/types/extensibility/extensions/compact-handler.d.ts +26 -0
- package/dist/types/extensibility/extensions/get-commands-handler.d.ts +29 -0
- package/dist/types/extensibility/extensions/index.d.ts +8 -0
- package/dist/types/extensibility/extensions/loader.d.ts +43 -0
- package/dist/types/extensibility/extensions/runner.d.ts +134 -0
- package/dist/types/extensibility/extensions/types.d.ts +864 -0
- package/dist/types/extensibility/extensions/wrapper.d.ts +54 -0
- package/dist/types/extensibility/hooks/index.d.ts +5 -0
- package/dist/types/extensibility/hooks/loader.d.ts +89 -0
- package/dist/types/extensibility/hooks/runner.d.ts +126 -0
- package/dist/types/extensibility/hooks/tool-wrapper.d.ts +25 -0
- package/dist/types/extensibility/hooks/types.d.ts +431 -0
- package/dist/types/extensibility/plugins/doctor.d.ts +3 -0
- package/dist/types/extensibility/plugins/git-url.d.ts +34 -0
- package/dist/types/extensibility/plugins/index.d.ts +7 -0
- package/dist/types/extensibility/plugins/installer.d.ts +5 -0
- package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +2 -0
- package/dist/types/extensibility/plugins/loader.d.ts +31 -0
- package/dist/types/extensibility/plugins/manager.d.ts +65 -0
- package/dist/types/extensibility/plugins/marketplace/cache.d.ts +41 -0
- package/dist/types/extensibility/plugins/marketplace/fetcher.d.ts +48 -0
- package/dist/types/extensibility/plugins/marketplace/index.d.ts +6 -0
- package/dist/types/extensibility/plugins/marketplace/manager.d.ts +57 -0
- package/dist/types/extensibility/plugins/marketplace/registry.d.ts +34 -0
- package/dist/types/extensibility/plugins/marketplace/source-resolver.d.ts +28 -0
- package/dist/types/extensibility/plugins/marketplace/types.d.ts +130 -0
- package/dist/types/extensibility/plugins/parser.d.ts +52 -0
- package/dist/types/extensibility/plugins/types.d.ts +149 -0
- package/dist/types/extensibility/shared-events.d.ts +279 -0
- package/dist/types/extensibility/skills.d.ts +57 -0
- package/dist/types/extensibility/slash-commands.d.ts +48 -0
- package/dist/types/extensibility/tool-proxy.d.ts +4 -0
- package/dist/types/extensibility/typebox.d.ts +155 -0
- package/dist/types/extensibility/utils.d.ts +12 -0
- package/dist/types/goals/index.d.ts +3 -0
- package/dist/types/goals/runtime.d.ts +63 -0
- package/dist/types/goals/state.d.ts +35 -0
- package/dist/types/goals/tools/goal-tool.d.ts +62 -0
- package/dist/types/hashline/anchors.d.ts +20 -0
- package/dist/types/hashline/apply.d.ts +14 -0
- package/dist/types/hashline/constants.d.ts +21 -0
- package/dist/types/hashline/diff-preview.d.ts +2 -0
- package/dist/types/hashline/diff.d.ts +17 -0
- package/dist/types/hashline/execute.d.ts +4 -0
- package/dist/types/hashline/hash.d.ts +149 -0
- package/dist/types/hashline/index.d.ts +13 -0
- package/dist/types/hashline/input.d.ts +11 -0
- package/dist/types/hashline/parser.d.ts +7 -0
- package/dist/types/hashline/prefixes.d.ts +7 -0
- package/dist/types/hashline/recovery.d.ts +22 -0
- package/dist/types/hashline/stream.d.ts +2 -0
- package/dist/types/hashline/types.d.ts +77 -0
- package/dist/types/hindsight/backend.d.ts +13 -0
- package/dist/types/hindsight/bank.d.ts +54 -0
- package/dist/types/hindsight/client.d.ts +224 -0
- package/dist/types/hindsight/config.d.ts +51 -0
- package/dist/types/hindsight/content.d.ts +70 -0
- package/dist/types/hindsight/index.d.ts +8 -0
- package/dist/types/hindsight/mental-models.d.ts +125 -0
- package/dist/types/hindsight/state.d.ts +99 -0
- package/dist/types/hindsight/transcript.d.ts +28 -0
- package/dist/types/index.d.ts +33 -0
- package/dist/types/internal-urls/agent-protocol.d.ts +12 -0
- package/dist/types/internal-urls/artifact-protocol.d.ts +6 -0
- package/dist/types/internal-urls/docs-index.generated.d.ts +2 -0
- package/dist/types/internal-urls/index.d.ts +22 -0
- package/dist/types/internal-urls/issue-pr-protocol.d.ts +17 -0
- package/dist/types/internal-urls/json-query.d.ts +30 -0
- package/dist/types/internal-urls/local-protocol.d.ts +39 -0
- package/dist/types/internal-urls/mcp-protocol.d.ts +12 -0
- package/dist/types/internal-urls/memory-protocol.d.ts +17 -0
- package/dist/types/internal-urls/omp-protocol.d.ts +12 -0
- package/dist/types/internal-urls/parse.d.ts +19 -0
- package/dist/types/internal-urls/registry-helpers.d.ts +10 -0
- package/dist/types/internal-urls/router.d.ts +14 -0
- package/dist/types/internal-urls/rule-protocol.d.ts +6 -0
- package/dist/types/internal-urls/skill-protocol.d.ts +13 -0
- package/dist/types/internal-urls/types.d.ts +105 -0
- package/dist/types/lsp/client.d.ts +65 -0
- package/dist/types/lsp/clients/biome-client.d.ts +16 -0
- package/dist/types/lsp/clients/index.d.ts +19 -0
- package/dist/types/lsp/clients/lsp-linter-client.d.ts +16 -0
- package/dist/types/lsp/clients/swiftlint-client.d.ts +20 -0
- package/dist/types/lsp/config.d.ts +65 -0
- package/dist/types/lsp/edits.d.ts +16 -0
- package/dist/types/lsp/index.d.ts +130 -0
- package/dist/types/lsp/lspmux.d.ts +58 -0
- package/dist/types/lsp/render.d.ts +32 -0
- package/dist/types/lsp/startup-events.d.ts +11 -0
- package/dist/types/lsp/types.d.ts +302 -0
- package/dist/types/lsp/utils.d.ts +108 -0
- package/dist/types/main.d.ts +17 -0
- package/dist/types/mcp/client.d.ts +74 -0
- package/dist/types/mcp/config-writer.d.ts +53 -0
- package/dist/types/mcp/config.d.ts +75 -0
- package/dist/types/mcp/discoverable-tool-metadata.d.ts +7 -0
- package/dist/types/mcp/index.d.ts +18 -0
- package/dist/types/mcp/json-rpc.d.ts +22 -0
- package/dist/types/mcp/loader.d.ts +43 -0
- package/dist/types/mcp/manager.d.ts +193 -0
- package/dist/types/mcp/oauth-discovery.d.ts +40 -0
- package/dist/types/mcp/oauth-flow.d.ts +59 -0
- package/dist/types/mcp/render.d.ts +25 -0
- package/dist/types/mcp/smithery-auth.d.ts +16 -0
- package/dist/types/mcp/smithery-connect.d.ts +38 -0
- package/dist/types/mcp/smithery-registry.d.ts +51 -0
- package/dist/types/mcp/tool-bridge.d.ts +86 -0
- package/dist/types/mcp/tool-cache.d.ts +8 -0
- package/dist/types/mcp/transports/http.d.ts +36 -0
- package/dist/types/mcp/transports/index.d.ts +5 -0
- package/dist/types/mcp/transports/stdio.d.ts +32 -0
- package/dist/types/mcp/types.d.ts +333 -0
- package/dist/types/memories/index.d.ts +28 -0
- package/dist/types/memories/storage.d.ts +110 -0
- package/dist/types/memory-backend/index.d.ts +4 -0
- package/dist/types/memory-backend/local-backend.d.ts +9 -0
- package/dist/types/memory-backend/off-backend.d.ts +7 -0
- package/dist/types/memory-backend/resolve.d.ts +15 -0
- package/dist/types/memory-backend/types.d.ts +61 -0
- package/dist/types/modes/acp/acp-agent.d.ts +61 -0
- package/dist/types/modes/acp/acp-client-bridge.d.ts +9 -0
- package/dist/types/modes/acp/acp-event-mapper.d.ts +20 -0
- package/dist/types/modes/acp/acp-mode.d.ts +3 -0
- package/dist/types/modes/acp/index.d.ts +2 -0
- package/dist/types/modes/acp/terminal-auth.d.ts +6 -0
- package/dist/types/modes/components/agent-dashboard.d.ts +21 -0
- package/dist/types/modes/components/assistant-message.d.ts +16 -0
- package/dist/types/modes/components/bash-execution.d.ts +29 -0
- package/dist/types/modes/components/bordered-loader.d.ts +11 -0
- package/dist/types/modes/components/branch-summary-message.d.ts +13 -0
- package/dist/types/modes/components/btw-panel.d.ts +16 -0
- package/dist/types/modes/components/compaction-summary-message.d.ts +13 -0
- package/dist/types/modes/components/countdown-timer.d.ts +14 -0
- package/dist/types/modes/components/custom-editor.d.ts +47 -0
- package/dist/types/modes/components/custom-message.d.ts +15 -0
- package/dist/types/modes/components/diff.d.ts +11 -0
- package/dist/types/modes/components/dynamic-border.d.ts +14 -0
- package/dist/types/modes/components/eval-execution.d.ts +23 -0
- package/dist/types/modes/components/execution-shared.d.ts +46 -0
- package/dist/types/modes/components/extensions/extension-dashboard.d.ts +26 -0
- package/dist/types/modes/components/extensions/extension-list.d.ts +39 -0
- package/dist/types/modes/components/extensions/index.d.ts +8 -0
- package/dist/types/modes/components/extensions/inspector-panel.d.ts +8 -0
- package/dist/types/modes/components/extensions/state-manager.d.ts +50 -0
- package/dist/types/modes/components/extensions/types.d.ts +151 -0
- package/dist/types/modes/components/footer.d.ts +30 -0
- package/dist/types/modes/components/history-search.d.ts +7 -0
- package/dist/types/modes/components/hook-editor.d.ts +18 -0
- package/dist/types/modes/components/hook-input.d.ts +15 -0
- package/dist/types/modes/components/hook-message.d.ts +15 -0
- package/dist/types/modes/components/hook-selector.d.ts +23 -0
- package/dist/types/modes/components/index.d.ts +35 -0
- package/dist/types/modes/components/keybinding-hints.d.ts +40 -0
- package/dist/types/modes/components/login-dialog.d.ts +32 -0
- package/dist/types/modes/components/mcp-add-wizard.d.ts +25 -0
- package/dist/types/modes/components/message-frame.d.ts +42 -0
- package/dist/types/modes/components/model-selector.d.ts +26 -0
- package/dist/types/modes/components/oauth-selector.d.ts +14 -0
- package/dist/types/modes/components/plugin-selector.d.ts +26 -0
- package/dist/types/modes/components/plugin-settings.d.ts +66 -0
- package/dist/types/modes/components/queue-mode-selector.d.ts +9 -0
- package/dist/types/modes/components/read-tool-group.d.ts +30 -0
- package/dist/types/modes/components/session-observer-overlay.d.ts +11 -0
- package/dist/types/modes/components/session-selector.d.ts +30 -0
- package/dist/types/modes/components/settings-defs.d.ts +50 -0
- package/dist/types/modes/components/settings-selector.d.ts +54 -0
- package/dist/types/modes/components/show-images-selector.d.ts +9 -0
- package/dist/types/modes/components/skill-message.d.ts +9 -0
- package/dist/types/modes/components/status-line/context-thresholds.d.ts +4 -0
- package/dist/types/modes/components/status-line/git-utils.d.ts +22 -0
- package/dist/types/modes/components/status-line/index.d.ts +4 -0
- package/dist/types/modes/components/status-line/presets.d.ts +3 -0
- package/dist/types/modes/components/status-line/segments.d.ts +5 -0
- package/dist/types/modes/components/status-line/separators.d.ts +3 -0
- package/dist/types/modes/components/status-line/token-rate.d.ts +10 -0
- package/dist/types/modes/components/status-line/types.d.ts +70 -0
- package/dist/types/modes/components/status-line-segment-editor.d.ts +24 -0
- package/dist/types/modes/components/status-line.d.ts +61 -0
- package/dist/types/modes/components/theme-selector.d.ts +10 -0
- package/dist/types/modes/components/thinking-selector.d.ts +10 -0
- package/dist/types/modes/components/todo-reminder.d.ts +13 -0
- package/dist/types/modes/components/tool-execution.d.ts +53 -0
- package/dist/types/modes/components/tree-selector.d.ts +31 -0
- package/dist/types/modes/components/ttsr-notification.d.ts +13 -0
- package/dist/types/modes/components/user-message-selector.d.ts +28 -0
- package/dist/types/modes/components/user-message.d.ts +8 -0
- package/dist/types/modes/components/visual-truncate.d.ts +19 -0
- package/dist/types/modes/components/welcome.d.ts +33 -0
- package/dist/types/modes/controllers/btw-controller.d.ts +10 -0
- package/dist/types/modes/controllers/command-controller-shared.d.ts +47 -0
- package/dist/types/modes/controllers/command-controller.d.ts +36 -0
- package/dist/types/modes/controllers/event-controller.d.ts +12 -0
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +80 -0
- package/dist/types/modes/controllers/input-controller.d.ts +35 -0
- package/dist/types/modes/controllers/mcp-command-controller.d.ts +10 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +45 -0
- package/dist/types/modes/controllers/ssh-command-controller.d.ts +10 -0
- package/dist/types/modes/controllers/todo-command-controller.d.ts +7 -0
- package/dist/types/modes/emoji-autocomplete.d.ts +16 -0
- package/dist/types/modes/index.d.ts +9 -0
- package/dist/types/modes/interactive-mode.d.ts +267 -0
- package/dist/types/modes/loop-limit.d.ts +22 -0
- package/dist/types/modes/oauth-manual-input.d.ts +8 -0
- package/dist/types/modes/print-mode.d.ts +27 -0
- package/dist/types/modes/prompt-action-autocomplete.d.ts +46 -0
- package/dist/types/modes/rpc/host-tools.d.ts +16 -0
- package/dist/types/modes/rpc/host-uris.d.ts +38 -0
- package/dist/types/modes/rpc/rpc-client.d.ts +249 -0
- package/dist/types/modes/rpc/rpc-mode.d.ts +17 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +586 -0
- package/dist/types/modes/runtime-init.d.ts +21 -0
- package/dist/types/modes/session-observer-registry.d.ts +26 -0
- package/dist/types/modes/shared.d.ts +6 -0
- package/dist/types/modes/theme/defaults/index.d.ts +9436 -0
- package/dist/types/modes/theme/mermaid-cache.d.ts +9 -0
- package/dist/types/modes/theme/theme.d.ts +273 -0
- package/dist/types/modes/types.d.ts +274 -0
- package/dist/types/modes/utils/context-usage.d.ts +30 -0
- package/dist/types/modes/utils/hotkeys-markdown.d.ts +5 -0
- package/dist/types/modes/utils/keybinding-matchers.d.ts +10 -0
- package/dist/types/modes/utils/tools-markdown.d.ts +5 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +49 -0
- package/dist/types/plan-mode/approved-plan.d.ts +29 -0
- package/dist/types/plan-mode/state.d.ts +6 -0
- package/dist/types/registry/agent-registry.d.ts +62 -0
- package/dist/types/sdk.d.ts +253 -0
- package/dist/types/secrets/index.d.ts +9 -0
- package/dist/types/secrets/obfuscator.d.ts +23 -0
- package/dist/types/secrets/regex.d.ts +2 -0
- package/dist/types/session/agent-session.d.ts +898 -0
- package/dist/types/session/agent-storage.d.ts +93 -0
- package/dist/types/session/artifacts.d.ts +61 -0
- package/dist/types/session/auth-broker-config.d.ts +13 -0
- package/dist/types/session/auth-storage.d.ts +6 -0
- package/dist/types/session/blob-store.d.ts +63 -0
- package/dist/types/session/client-bridge.d.ts +84 -0
- package/dist/types/session/history-storage.d.ts +16 -0
- package/dist/types/session/messages.d.ts +162 -0
- package/dist/types/session/session-dump-format.d.ts +22 -0
- package/dist/types/session/session-manager.d.ts +539 -0
- package/dist/types/session/session-storage.d.ts +82 -0
- package/dist/types/session/streaming-output.d.ts +185 -0
- package/dist/types/session/tool-choice-queue.d.ts +78 -0
- package/dist/types/slash-commands/acp-builtins.d.ts +18 -0
- package/dist/types/slash-commands/builtin-registry.d.ts +23 -0
- package/dist/types/slash-commands/helpers/context-report.d.ts +7 -0
- package/dist/types/slash-commands/helpers/format.d.ts +7 -0
- package/dist/types/slash-commands/helpers/marketplace-manager.d.ts +8 -0
- package/dist/types/slash-commands/helpers/mcp.d.ts +3 -0
- package/dist/types/slash-commands/helpers/parse.d.ts +33 -0
- package/dist/types/slash-commands/helpers/ssh.d.ts +3 -0
- package/dist/types/slash-commands/helpers/todo.d.ts +3 -0
- package/dist/types/slash-commands/helpers/usage-report.d.ts +7 -0
- package/dist/types/slash-commands/marketplace-install-parser.d.ts +33 -0
- package/dist/types/slash-commands/types.d.ts +119 -0
- package/dist/types/ssh/config-writer.d.ts +49 -0
- package/dist/types/ssh/connection-manager.d.ts +33 -0
- package/dist/types/ssh/ssh-executor.d.ts +37 -0
- package/dist/types/ssh/sshfs-mount.d.ts +6 -0
- package/dist/types/ssh/utils.d.ts +2 -0
- package/dist/types/stt/downloader.d.ts +9 -0
- package/dist/types/stt/index.d.ts +3 -0
- package/dist/types/stt/recorder.d.ts +13 -0
- package/dist/types/stt/setup.d.ts +18 -0
- package/dist/types/stt/stt-controller.d.ts +16 -0
- package/dist/types/stt/transcriber.d.ts +16 -0
- package/dist/types/system-prompt.d.ts +93 -0
- package/dist/types/task/agents.d.ts +28 -0
- package/dist/types/task/commands.d.ts +35 -0
- package/dist/types/task/discovery.d.ts +18 -0
- package/dist/types/task/executor.d.ts +106 -0
- package/dist/types/task/index.d.ts +38 -0
- package/dist/types/task/name-generator.d.ts +16 -0
- package/dist/types/task/omp-command.d.ts +7 -0
- package/dist/types/task/output-manager.d.ts +36 -0
- package/dist/types/task/parallel.d.ts +34 -0
- package/dist/types/task/render.d.ts +22 -0
- package/dist/types/task/simple-mode.d.ts +8 -0
- package/dist/types/task/subprocess-tool-registry.d.ts +72 -0
- package/dist/types/task/types.d.ts +251 -0
- package/dist/types/task/worktree.d.ts +95 -0
- package/dist/types/thinking.d.ts +30 -0
- package/dist/types/tool-discovery/tool-index.d.ts +107 -0
- package/dist/types/tools/archive-reader.d.ts +40 -0
- package/dist/types/tools/ask.d.ts +109 -0
- package/dist/types/tools/ast-edit.d.ts +72 -0
- package/dist/types/tools/ast-grep.d.ts +64 -0
- package/dist/types/tools/auto-generated-guard.d.ts +17 -0
- package/dist/types/tools/bash-command-fixup.d.ts +16 -0
- package/dist/types/tools/bash-interactive.d.ts +16 -0
- package/dist/types/tools/bash-interceptor.d.ts +24 -0
- package/dist/types/tools/bash-pty-selection.d.ts +7 -0
- package/dist/types/tools/bash-skill-urls.d.ts +31 -0
- package/dist/types/tools/bash.d.ts +130 -0
- package/dist/types/tools/browser/attach.d.ts +34 -0
- package/dist/types/tools/browser/launch.d.ts +60 -0
- package/dist/types/tools/browser/readable.d.ts +17 -0
- package/dist/types/tools/browser/registry.d.ts +42 -0
- package/dist/types/tools/browser/render.d.ts +50 -0
- package/dist/types/tools/browser/tab-protocol.d.ts +144 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +63 -0
- package/dist/types/tools/browser/tab-worker-entry.d.ts +1 -0
- package/dist/types/tools/browser/tab-worker.d.ts +19 -0
- package/dist/types/tools/browser.d.ts +114 -0
- package/dist/types/tools/calculator.d.ts +76 -0
- package/dist/types/tools/checkpoint.d.ts +63 -0
- package/dist/types/tools/conflict-detect.d.ts +205 -0
- package/dist/types/tools/context.d.ts +19 -0
- package/dist/types/tools/debug.d.ts +209 -0
- package/dist/types/tools/eval.d.ts +108 -0
- package/dist/types/tools/fetch.d.ts +61 -0
- package/dist/types/tools/file-recorder.d.ts +13 -0
- package/dist/types/tools/find.d.ts +88 -0
- package/dist/types/tools/fs-cache-invalidation.d.ts +15 -0
- package/dist/types/tools/gh-format.d.ts +6 -0
- package/dist/types/tools/gh-renderer.d.ts +25 -0
- package/dist/types/tools/gh.d.ts +356 -0
- package/dist/types/tools/github-cache.d.ts +103 -0
- package/dist/types/tools/grouped-file-output.d.ts +36 -0
- package/dist/types/tools/hindsight-recall.d.ts +23 -0
- package/dist/types/tools/hindsight-reflect.d.ts +25 -0
- package/dist/types/tools/hindsight-retain.d.ts +29 -0
- package/dist/types/tools/image-gen.d.ts +78 -0
- package/dist/types/tools/index.d.ts +244 -0
- package/dist/types/tools/inspect-image-renderer.d.ts +26 -0
- package/dist/types/tools/inspect-image.d.ts +31 -0
- package/dist/types/tools/irc.d.ts +79 -0
- package/dist/types/tools/job.d.ts +65 -0
- package/dist/types/tools/json-tree.d.ts +23 -0
- package/dist/types/tools/jtd-to-json-schema.d.ts +29 -0
- package/dist/types/tools/jtd-to-typescript.d.ts +26 -0
- package/dist/types/tools/jtd-utils.d.ts +42 -0
- package/dist/types/tools/list-limit.d.ts +12 -0
- package/dist/types/tools/match-line-format.d.ts +11 -0
- package/dist/types/tools/output-meta.d.ts +204 -0
- package/dist/types/tools/path-utils.d.ts +125 -0
- package/dist/types/tools/plan-mode-guard.d.ts +18 -0
- package/dist/types/tools/read.d.ts +85 -0
- package/dist/types/tools/recipe/index.d.ts +45 -0
- package/dist/types/tools/recipe/render.d.ts +36 -0
- package/dist/types/tools/recipe/runner.d.ts +60 -0
- package/dist/types/tools/recipe/runners/cargo.d.ts +16 -0
- package/dist/types/tools/recipe/runners/index.d.ts +2 -0
- package/dist/types/tools/recipe/runners/just.d.ts +2 -0
- package/dist/types/tools/recipe/runners/make.d.ts +2 -0
- package/dist/types/tools/recipe/runners/pkg.d.ts +2 -0
- package/dist/types/tools/recipe/runners/task.d.ts +2 -0
- package/dist/types/tools/render-mermaid.d.ts +37 -0
- package/dist/types/tools/render-utils.d.ts +148 -0
- package/dist/types/tools/renderers.d.ts +26 -0
- package/dist/types/tools/report-tool-issue.d.ts +123 -0
- package/dist/types/tools/resolve.d.ts +85 -0
- package/dist/types/tools/review.d.ts +50 -0
- package/dist/types/tools/search-tool-bm25.d.ts +65 -0
- package/dist/types/tools/search.d.ts +90 -0
- package/dist/types/tools/sqlite-reader.d.ts +93 -0
- package/dist/types/tools/ssh.d.ts +67 -0
- package/dist/types/tools/todo-write.d.ts +120 -0
- package/dist/types/tools/tool-errors.d.ts +33 -0
- package/dist/types/tools/tool-result.d.ts +30 -0
- package/dist/types/tools/tool-timeouts.d.ts +51 -0
- package/dist/types/tools/vim.d.ts +58 -0
- package/dist/types/tools/write.d.ts +59 -0
- package/dist/types/tools/yield.d.ts +25 -0
- package/dist/types/tui/code-cell.d.ts +32 -0
- package/dist/types/tui/file-list.d.ts +16 -0
- package/dist/types/tui/index.d.ts +10 -0
- package/dist/types/tui/output-block.d.ts +28 -0
- package/dist/types/tui/status-line.d.ts +18 -0
- package/dist/types/tui/tree-list.d.ts +19 -0
- package/dist/types/tui/types.d.ts +13 -0
- package/dist/types/tui/utils.d.ts +36 -0
- package/dist/types/utils/changelog.d.ts +20 -0
- package/dist/types/utils/clipboard.d.ts +20 -0
- package/dist/types/utils/command-args.d.ts +9 -0
- package/dist/types/utils/commit-message-generator.d.ts +7 -0
- package/dist/types/utils/edit-mode.d.ts +13 -0
- package/dist/types/utils/event-bus.d.ts +6 -0
- package/dist/types/utils/external-editor.d.ts +17 -0
- package/dist/types/utils/file-display-mode.d.ts +27 -0
- package/dist/types/utils/file-mentions.d.ts +11 -0
- package/dist/types/utils/git.d.ts +360 -0
- package/dist/types/utils/image-loading.d.ts +26 -0
- package/dist/types/utils/image-resize.d.ts +36 -0
- package/dist/types/utils/lang-from-path.d.ts +8 -0
- package/dist/types/utils/markit.d.ts +7 -0
- package/dist/types/utils/open.d.ts +2 -0
- package/dist/types/utils/session-color.d.ts +10 -0
- package/dist/types/utils/shell-snapshot.d.ts +5 -0
- package/dist/types/utils/sixel.d.ts +21 -0
- package/dist/types/utils/title-generator.d.ts +31 -0
- package/dist/types/utils/tool-choice.d.ts +6 -0
- package/dist/types/utils/tools-manager.d.ts +9 -0
- package/dist/types/vim/buffer.d.ts +41 -0
- package/dist/types/vim/commands.d.ts +6 -0
- package/dist/types/vim/engine.d.ts +47 -0
- package/dist/types/vim/parser.d.ts +3 -0
- package/dist/types/vim/render.d.ts +25 -0
- package/dist/types/vim/types.d.ts +182 -0
- package/dist/types/web/kagi.d.ts +21 -0
- package/dist/types/web/parallel.d.ts +57 -0
- package/dist/types/web/scrapers/artifacthub.d.ts +6 -0
- package/dist/types/web/scrapers/arxiv.d.ts +5 -0
- package/dist/types/web/scrapers/aur.d.ts +5 -0
- package/dist/types/web/scrapers/biorxiv.d.ts +5 -0
- package/dist/types/web/scrapers/bluesky.d.ts +5 -0
- package/dist/types/web/scrapers/brew.d.ts +5 -0
- package/dist/types/web/scrapers/cheatsh.d.ts +8 -0
- package/dist/types/web/scrapers/chocolatey.d.ts +5 -0
- package/dist/types/web/scrapers/choosealicense.d.ts +2 -0
- package/dist/types/web/scrapers/cisa-kev.d.ts +5 -0
- package/dist/types/web/scrapers/clojars.d.ts +5 -0
- package/dist/types/web/scrapers/coingecko.d.ts +5 -0
- package/dist/types/web/scrapers/crates-io.d.ts +5 -0
- package/dist/types/web/scrapers/crossref.d.ts +2 -0
- package/dist/types/web/scrapers/devto.d.ts +5 -0
- package/dist/types/web/scrapers/discogs.d.ts +8 -0
- package/dist/types/web/scrapers/discourse.d.ts +5 -0
- package/dist/types/web/scrapers/dockerhub.d.ts +5 -0
- package/dist/types/web/scrapers/docs-rs.d.ts +2 -0
- package/dist/types/web/scrapers/fdroid.d.ts +5 -0
- package/dist/types/web/scrapers/firefox-addons.d.ts +2 -0
- package/dist/types/web/scrapers/flathub.d.ts +2 -0
- package/dist/types/web/scrapers/github-gist.d.ts +5 -0
- package/dist/types/web/scrapers/github.d.ts +12 -0
- package/dist/types/web/scrapers/gitlab.d.ts +5 -0
- package/dist/types/web/scrapers/go-pkg.d.ts +5 -0
- package/dist/types/web/scrapers/hackage.d.ts +5 -0
- package/dist/types/web/scrapers/hackernews.d.ts +2 -0
- package/dist/types/web/scrapers/hex.d.ts +5 -0
- package/dist/types/web/scrapers/huggingface.d.ts +2 -0
- package/dist/types/web/scrapers/iacr.d.ts +5 -0
- package/dist/types/web/scrapers/index.d.ts +84 -0
- package/dist/types/web/scrapers/jetbrains-marketplace.d.ts +2 -0
- package/dist/types/web/scrapers/lemmy.d.ts +2 -0
- package/dist/types/web/scrapers/lobsters.d.ts +5 -0
- package/dist/types/web/scrapers/mastodon.d.ts +5 -0
- package/dist/types/web/scrapers/maven.d.ts +6 -0
- package/dist/types/web/scrapers/mdn.d.ts +2 -0
- package/dist/types/web/scrapers/metacpan.d.ts +5 -0
- package/dist/types/web/scrapers/musicbrainz.d.ts +5 -0
- package/dist/types/web/scrapers/npm.d.ts +5 -0
- package/dist/types/web/scrapers/nuget.d.ts +5 -0
- package/dist/types/web/scrapers/nvd.d.ts +5 -0
- package/dist/types/web/scrapers/ollama.d.ts +2 -0
- package/dist/types/web/scrapers/open-vsx.d.ts +5 -0
- package/dist/types/web/scrapers/opencorporates.d.ts +5 -0
- package/dist/types/web/scrapers/openlibrary.d.ts +5 -0
- package/dist/types/web/scrapers/orcid.d.ts +5 -0
- package/dist/types/web/scrapers/osv.d.ts +5 -0
- package/dist/types/web/scrapers/packagist.d.ts +5 -0
- package/dist/types/web/scrapers/pub-dev.d.ts +5 -0
- package/dist/types/web/scrapers/pubmed.d.ts +5 -0
- package/dist/types/web/scrapers/pypi.d.ts +5 -0
- package/dist/types/web/scrapers/rawg.d.ts +2 -0
- package/dist/types/web/scrapers/readthedocs.d.ts +2 -0
- package/dist/types/web/scrapers/reddit.d.ts +5 -0
- package/dist/types/web/scrapers/repology.d.ts +5 -0
- package/dist/types/web/scrapers/rfc.d.ts +5 -0
- package/dist/types/web/scrapers/rubygems.d.ts +5 -0
- package/dist/types/web/scrapers/searchcode.d.ts +2 -0
- package/dist/types/web/scrapers/sec-edgar.d.ts +5 -0
- package/dist/types/web/scrapers/semantic-scholar.d.ts +2 -0
- package/dist/types/web/scrapers/snapcraft.d.ts +2 -0
- package/dist/types/web/scrapers/sourcegraph.d.ts +2 -0
- package/dist/types/web/scrapers/spdx.d.ts +5 -0
- package/dist/types/web/scrapers/spotify.d.ts +8 -0
- package/dist/types/web/scrapers/stackoverflow.d.ts +6 -0
- package/dist/types/web/scrapers/terraform.d.ts +5 -0
- package/dist/types/web/scrapers/tldr.d.ts +7 -0
- package/dist/types/web/scrapers/twitter.d.ts +5 -0
- package/dist/types/web/scrapers/types.d.ts +77 -0
- package/dist/types/web/scrapers/utils.d.ts +26 -0
- package/dist/types/web/scrapers/vimeo.d.ts +5 -0
- package/dist/types/web/scrapers/vscode-marketplace.d.ts +5 -0
- package/dist/types/web/scrapers/w3c.d.ts +2 -0
- package/dist/types/web/scrapers/wikidata.d.ts +5 -0
- package/dist/types/web/scrapers/wikipedia.d.ts +5 -0
- package/dist/types/web/scrapers/youtube.d.ts +5 -0
- package/dist/types/web/search/index.d.ts +76 -0
- package/dist/types/web/search/provider.d.ts +20 -0
- package/dist/types/web/search/providers/anthropic.d.ts +27 -0
- package/dist/types/web/search/providers/base.d.ts +35 -0
- package/dist/types/web/search/providers/brave.d.ts +20 -0
- package/dist/types/web/search/providers/codex.d.ts +31 -0
- package/dist/types/web/search/providers/exa.d.ts +43 -0
- package/dist/types/web/search/providers/gemini.d.ts +60 -0
- package/dist/types/web/search/providers/jina.d.ts +25 -0
- package/dist/types/web/search/providers/kagi.d.ts +21 -0
- package/dist/types/web/search/providers/kimi.d.ts +18 -0
- package/dist/types/web/search/providers/parallel.d.ts +14 -0
- package/dist/types/web/search/providers/perplexity.d.ts +35 -0
- package/dist/types/web/search/providers/searxng.d.ts +43 -0
- package/dist/types/web/search/providers/synthetic.d.ts +24 -0
- package/dist/types/web/search/providers/tavily.d.ts +22 -0
- package/dist/types/web/search/providers/utils.d.ts +24 -0
- package/dist/types/web/search/providers/zai.d.ts +19 -0
- package/dist/types/web/search/render.d.ts +35 -0
- package/dist/types/web/search/types.d.ts +344 -0
- package/dist/types/web/search/utils.d.ts +4 -0
- package/dist/types/workspace-tree.d.ts +42 -0
- package/examples/custom-tools/README.md +3 -12
- package/examples/extensions/README.md +2 -15
- package/examples/extensions/api-demo.ts +1 -7
- package/package.json +124 -123
- package/src/autoresearch/tools/init-experiment.ts +11 -33
- package/src/autoresearch/tools/log-experiment.ts +10 -24
- package/src/autoresearch/tools/run-experiment.ts +1 -1
- package/src/autoresearch/tools/update-notes.ts +2 -9
- package/src/cli/auth-broker-cli.ts +746 -0
- package/src/cli/auth-gateway-cli.ts +342 -0
- package/src/cli/grievances-cli.ts +109 -16
- package/src/cli.ts +4 -2
- package/src/commands/auth-broker.ts +96 -0
- package/src/commands/auth-gateway.ts +61 -0
- package/src/commands/grievances.ts +13 -8
- package/src/commands/launch.ts +1 -1
- package/src/commit/agentic/agent.ts +2 -0
- package/src/commit/agentic/tools/analyze-file.ts +2 -2
- package/src/commit/agentic/tools/git-file-diff.ts +2 -2
- package/src/commit/agentic/tools/git-hunk.ts +3 -3
- package/src/commit/agentic/tools/git-overview.ts +2 -2
- package/src/commit/agentic/tools/propose-changelog.ts +1 -3
- package/src/commit/agentic/tools/recent-commits.ts +1 -1
- package/src/commit/agentic/tools/schemas.ts +1 -9
- package/src/config/mcp-schema.json +1 -1
- package/src/config/model-equivalence.ts +279 -174
- package/src/config/model-registry.ts +37 -6
- package/src/config/model-resolver.ts +13 -8
- package/src/config/models-config-schema.ts +8 -0
- package/src/config/settings-schema.ts +52 -0
- package/src/cursor.ts +1 -1
- package/src/debug/log-formatting.ts +1 -1
- package/src/debug/log-viewer.ts +1 -1
- package/src/debug/profiler.ts +4 -0
- package/src/debug/raw-sse-buffer.ts +100 -59
- package/src/debug/raw-sse.ts +1 -1
- package/src/discovery/agents.ts +15 -4
- package/src/edit/modes/apply-patch.ts +1 -5
- package/src/edit/modes/patch.ts +5 -5
- package/src/edit/modes/replace.ts +5 -5
- package/src/edit/normalize.ts +1 -1
- package/src/edit/renderer.ts +2 -1
- package/src/edit/streaming.ts +1 -1
- package/src/eval/index.ts +0 -2
- package/src/eval/js/shared/runtime.ts +25 -0
- package/src/eval/py/kernel.ts +1 -1
- package/src/exa/researcher.ts +4 -4
- package/src/exa/search.ts +10 -22
- package/src/exa/websets.ts +33 -33
- package/src/extensibility/typebox.ts +1 -1
- package/src/goals/tools/goal-tool.ts +3 -3
- package/src/hashline/index.ts +0 -1
- package/src/hashline/input.ts +8 -11
- package/src/hashline/parser.ts +6 -8
- package/src/index.ts +0 -3
- package/src/internal-urls/docs-index.generated.ts +21 -18
- package/src/internal-urls/index.ts +1 -1
- package/src/internal-urls/{pi-protocol.ts → omp-protocol.ts} +10 -10
- package/src/internal-urls/router.ts +3 -3
- package/src/internal-urls/types.ts +1 -1
- package/src/lsp/types.ts +8 -11
- package/src/main.ts +3 -0
- package/src/mcp/tool-bridge.ts +3 -3
- package/src/modes/acp/acp-agent.ts +89 -25
- package/src/modes/components/bash-execution.ts +1 -1
- package/src/modes/components/diff.ts +1 -2
- package/src/modes/components/eval-execution.ts +1 -1
- package/src/modes/components/oauth-selector.ts +38 -2
- package/src/modes/components/tool-execution.ts +1 -2
- package/src/modes/controllers/command-controller.ts +96 -34
- package/src/modes/controllers/input-controller.ts +4 -3
- package/src/modes/controllers/ssh-command-controller.ts +2 -0
- package/src/modes/data/emojis.json +1 -0
- package/src/modes/emoji-autocomplete.ts +285 -0
- package/src/modes/interactive-mode.ts +92 -19
- package/src/modes/print-mode.ts +3 -3
- package/src/modes/prompt-action-autocomplete.ts +14 -0
- package/src/modes/theme/theme-schema.json +1 -1
- package/src/plan-mode/approved-plan.ts +9 -0
- package/src/prompts/system/system-prompt.md +1 -1
- package/src/prompts/system/ttsr-tool-reminder.md +5 -0
- package/src/prompts/tools/eval.md +25 -26
- package/src/prompts/tools/hashline.md +1 -0
- package/src/prompts/tools/read.md +2 -2
- package/src/prompts/tools/resolve.md +1 -1
- package/src/prompts/tools/search.md +1 -1
- package/src/prompts/tools/web-search.md +1 -1
- package/src/sdk.ts +92 -7
- package/src/session/agent-session.ts +225 -77
- package/src/session/agent-storage.ts +7 -2
- package/src/session/auth-broker-config.ts +102 -0
- package/src/session/auth-storage.ts +7 -1
- package/src/session/streaming-output.ts +1 -1
- package/src/slash-commands/builtin-registry.ts +2 -0
- package/src/slash-commands/helpers/ssh.ts +2 -0
- package/src/ssh/connection-manager.ts +28 -7
- package/src/task/types.ts +10 -35
- package/src/tools/bash-interactive.ts +5 -2
- package/src/tools/bash-pty-selection.ts +14 -0
- package/src/tools/bash.ts +5 -4
- package/src/tools/browser.ts +12 -20
- package/src/tools/eval.ts +77 -100
- package/src/tools/gh.ts +21 -45
- package/src/tools/hindsight-recall.ts +1 -1
- package/src/tools/hindsight-reflect.ts +2 -2
- package/src/tools/hindsight-retain.ts +3 -7
- package/src/tools/index.ts +8 -1
- package/src/tools/inspect-image.ts +4 -1
- package/src/tools/irc.ts +4 -12
- package/src/tools/job.ts +3 -11
- package/src/tools/path-utils.ts +2 -2
- package/src/tools/read.ts +7 -4
- package/src/tools/report-tool-issue.ts +462 -17
- package/src/tools/resolve.ts +2 -7
- package/src/tools/search.ts +7 -0
- package/src/tools/todo-write.ts +8 -15
- package/src/tools/yield.ts +17 -5
- package/src/tui/code-cell.ts +18 -3
- package/src/utils/title-generator.ts +3 -0
- package/src/web/scrapers/searchcode.ts +1 -2
- package/src/web/search/index.ts +6 -6
- package/src/eval/eval.lark +0 -36
- package/src/eval/parse.ts +0 -407
- package/src/eval/sniff.ts +0 -28
- package/src/hashline/utils.ts +0 -3
package/src/tui/code-cell.ts
CHANGED
|
@@ -77,13 +77,28 @@ function formatHeader(options: CodeCellOptions, theme: Theme): { title: string;
|
|
|
77
77
|
return { title: headerTitle, meta: metaParts.join(theme.fg("dim", theme.sep.dot)) };
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/**
|
|
81
|
+
* Normalize terminal control characters that would otherwise corrupt TUI rendering:
|
|
82
|
+
* - Collapse `\r\n` to `\n`.
|
|
83
|
+
* - Within a line, treat `\r` as a cursor-return overwrite by keeping only the
|
|
84
|
+
* final segment (mirrors how rsync/curl/pip progress bars render to a terminal).
|
|
85
|
+
* Splits on `\n` and returns the cleaned lines.
|
|
86
|
+
*/
|
|
87
|
+
function sanitizeTerminalLines(text: string): string[] {
|
|
88
|
+
return text.split(/\r?\n/).map(collapseCarriageReturns);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function collapseCarriageReturns(line: string): string {
|
|
92
|
+
const idx = line.lastIndexOf("\r");
|
|
93
|
+
return idx < 0 ? line : line.slice(idx + 1);
|
|
94
|
+
}
|
|
80
95
|
export function renderCodeCell(options: CodeCellOptions, theme: Theme): string[] {
|
|
81
96
|
const { code, language, output, expanded = false, outputMaxLines = 6, codeMaxLines = 12, width } = options;
|
|
82
97
|
const { title, meta } = formatHeader(options, theme);
|
|
83
98
|
const state = getState(options.status);
|
|
84
99
|
|
|
85
100
|
const normalizedCode = replaceTabs(code ?? "");
|
|
86
|
-
const rawCodeLines = normalizedCode
|
|
101
|
+
const rawCodeLines = sanitizeTerminalLines(normalizedCode);
|
|
87
102
|
const maxCodeLines = expanded ? rawCodeLines.length : Math.min(rawCodeLines.length, codeMaxLines);
|
|
88
103
|
const visibleCode = rawCodeLines.slice(0, maxCodeLines).join("\n");
|
|
89
104
|
const codeLines = highlightCode(visibleCode, language);
|
|
@@ -96,7 +111,7 @@ export function renderCodeCell(options: CodeCellOptions, theme: Theme): string[]
|
|
|
96
111
|
|
|
97
112
|
const outputLines: string[] = [];
|
|
98
113
|
if (output?.trim()) {
|
|
99
|
-
const rawLines = output
|
|
114
|
+
const rawLines = sanitizeTerminalLines(output);
|
|
100
115
|
const maxLines = expanded ? rawLines.length : Math.min(rawLines.length, outputMaxLines);
|
|
101
116
|
const displayLines = rawLines
|
|
102
117
|
.slice(0, maxLines)
|
|
@@ -163,7 +178,7 @@ export function renderMarkdownCell(options: MarkdownCellOptions, theme: Theme):
|
|
|
163
178
|
|
|
164
179
|
const outputLines: string[] = [];
|
|
165
180
|
if (output?.trim()) {
|
|
166
|
-
const rawLines = output
|
|
181
|
+
const rawLines = sanitizeTerminalLines(output);
|
|
167
182
|
const maxLines = expanded ? rawLines.length : Math.min(rawLines.length, outputMaxLines);
|
|
168
183
|
const displayLines = rawLines
|
|
169
184
|
.slice(0, maxLines)
|
|
@@ -166,6 +166,7 @@ export function formatSessionTerminalTitle(sessionName: string | undefined, cwd?
|
|
|
166
166
|
* Set the terminal title using OSC 0 (sets both tab and window title). Unsupported terminals ignore it.
|
|
167
167
|
*/
|
|
168
168
|
export function setTerminalTitle(title: string): void {
|
|
169
|
+
if (!process.stdout.isTTY) return;
|
|
169
170
|
process.stdout.write(`\x1b]0;${sanitizeTerminalTitlePart(title) ?? DEFAULT_TERMINAL_TITLE}\x07`);
|
|
170
171
|
}
|
|
171
172
|
|
|
@@ -177,6 +178,7 @@ export function setSessionTerminalTitle(sessionName: string | undefined, cwd?: s
|
|
|
177
178
|
* Save the current terminal title on terminals that support xterm window ops.
|
|
178
179
|
*/
|
|
179
180
|
export function pushTerminalTitle(): void {
|
|
181
|
+
if (!process.stdout.isTTY) return;
|
|
180
182
|
process.stdout.write("\x1b[22;2t");
|
|
181
183
|
}
|
|
182
184
|
|
|
@@ -184,5 +186,6 @@ export function pushTerminalTitle(): void {
|
|
|
184
186
|
* Restore the previously saved terminal title on terminals that support xterm window ops.
|
|
185
187
|
*/
|
|
186
188
|
export function popTerminalTitle(): void {
|
|
189
|
+
if (!process.stdout.isTTY) return;
|
|
187
190
|
process.stdout.write("\x1b[23;2t");
|
|
188
191
|
}
|
|
@@ -55,8 +55,7 @@ function formatCodeBlock(
|
|
|
55
55
|
): string | null {
|
|
56
56
|
if (!code) return null;
|
|
57
57
|
|
|
58
|
-
const
|
|
59
|
-
const codeLines = normalized.split("\n");
|
|
58
|
+
const codeLines = code.trimEnd().split(/\r?\n/);
|
|
60
59
|
const languageTag = typeof language === "string" ? language.trim().toLowerCase() : "";
|
|
61
60
|
|
|
62
61
|
let displayLines = codeLines;
|
package/src/web/search/index.ts
CHANGED
|
@@ -21,12 +21,12 @@ import { SearchProviderError } from "./types";
|
|
|
21
21
|
|
|
22
22
|
/** Web search tool parameters schema */
|
|
23
23
|
export const webSearchSchema = z.object({
|
|
24
|
-
query: z.string().describe("
|
|
25
|
-
recency: z.enum(["day", "week", "month", "year"]).describe("
|
|
26
|
-
limit: z.number().describe("
|
|
27
|
-
max_tokens: z.number().describe("
|
|
28
|
-
temperature: z.number().describe("
|
|
29
|
-
num_search_results: z.number().describe("
|
|
24
|
+
query: z.string().describe("search query"),
|
|
25
|
+
recency: z.enum(["day", "week", "month", "year"]).describe("recency filter").optional(),
|
|
26
|
+
limit: z.number().describe("max results").optional(),
|
|
27
|
+
max_tokens: z.number().describe("max output tokens").optional(),
|
|
28
|
+
temperature: z.number().describe("sampling temperature").optional(),
|
|
29
|
+
num_search_results: z.number().describe("number of search results").optional(),
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
export type SearchToolParams = z.infer<typeof webSearchSchema>;
|
package/src/eval/eval.lark
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// Canonical Eval input. Each cell is introduced by a single header line:
|
|
2
|
-
//
|
|
3
|
-
// *** Cell <LANG>:"<title>" [t:<duration>] [rst]
|
|
4
|
-
//
|
|
5
|
-
// Attribute order is fixed: language+title, then optional timeout, then
|
|
6
|
-
// optional reset flag. Title may be empty (`py:""`).
|
|
7
|
-
//
|
|
8
|
-
// Tokens:
|
|
9
|
-
//
|
|
10
|
-
// py:"..." | js:"..." language plus title (required)
|
|
11
|
-
// t:<digits>(ms|s|m)? per-cell timeout (default 30s)
|
|
12
|
-
// rst reset this language's kernel before running
|
|
13
|
-
//
|
|
14
|
-
// Everything between one header line and the next (or the optional trailing
|
|
15
|
-
// `*** End`, or end of input) is the cell's code, verbatim. The runtime
|
|
16
|
-
// parser additionally accepts content before the first header as an implicit
|
|
17
|
-
// default-language cell, but that is lenient fallback and MUST NOT be relied
|
|
18
|
-
// on.
|
|
19
|
-
|
|
20
|
-
start: cell+ end_marker
|
|
21
|
-
|
|
22
|
-
cell: cell_header code_line*
|
|
23
|
-
|
|
24
|
-
cell_header: "*** Cell" WS_INLINE LANG_TITLE (WS_INLINE T_ATTR)? (WS_INLINE RST_FLAG)? LF
|
|
25
|
-
|
|
26
|
-
end_marker: "*** End" LF?
|
|
27
|
-
|
|
28
|
-
code_line: CODE_TEXT LF | LF
|
|
29
|
-
CODE_TEXT: /([^*\r\n]|\*\*?[^*\r\n])+\*{0,2}|\*{1,2}/
|
|
30
|
-
|
|
31
|
-
LANG_TITLE: ("py" | "js") ":\"" /[^"\r\n]*/ "\""
|
|
32
|
-
T_ATTR: "t:" /\d+(ms|s|m)?/
|
|
33
|
-
RST_FLAG: "rst"
|
|
34
|
-
|
|
35
|
-
%import common.LF
|
|
36
|
-
%import common.WS_INLINE
|
package/src/eval/parse.ts
DELETED
|
@@ -1,407 +0,0 @@
|
|
|
1
|
-
import { sniffEvalLanguage } from "./sniff";
|
|
2
|
-
import type { EvalLanguage } from "./types";
|
|
3
|
-
|
|
4
|
-
export type EvalLanguageOrigin = "default" | "header";
|
|
5
|
-
|
|
6
|
-
export interface ParsedEvalCell {
|
|
7
|
-
index: number;
|
|
8
|
-
title?: string;
|
|
9
|
-
code: string;
|
|
10
|
-
language: EvalLanguage;
|
|
11
|
-
languageOrigin: EvalLanguageOrigin;
|
|
12
|
-
timeoutMs: number;
|
|
13
|
-
reset: boolean;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface ParsedEvalInput {
|
|
17
|
-
cells: ParsedEvalCell[];
|
|
18
|
-
/**
|
|
19
|
-
* True when the parser encountered `*** Abort` (recovery sentinel emitted
|
|
20
|
-
* by the agent loop's harmony-leak mitigation; see
|
|
21
|
-
* `docs/ERRATA-GPT5-HARMONY.md`). The cell containing the marker, if any,
|
|
22
|
-
* is dropped — its body is incomplete and unsafe to execute.
|
|
23
|
-
*/
|
|
24
|
-
aborted?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
28
|
-
const DEFAULT_LANGUAGE: EvalLanguage = "python";
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Canonical language tokens plus common long-form aliases. The grammar
|
|
32
|
-
* advertises only `PY` / `JS` / `TS`, but unconstrained models reach for
|
|
33
|
-
* `Python` / `JavaScript` / `TypeScript` often enough that we accept them.
|
|
34
|
-
*/
|
|
35
|
-
const LANGUAGE_MAP: Record<string, EvalLanguage> = {
|
|
36
|
-
PY: "python",
|
|
37
|
-
PYTHON: "python",
|
|
38
|
-
IPY: "python",
|
|
39
|
-
IPYTHON: "python",
|
|
40
|
-
JS: "js",
|
|
41
|
-
JAVASCRIPT: "js",
|
|
42
|
-
TS: "js",
|
|
43
|
-
TYPESCRIPT: "js",
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// Markers are case-insensitive, accept ≥2 leading stars (so `**Cell` and
|
|
47
|
-
// `*** Cell` both work), and tolerate any whitespace (including tabs)
|
|
48
|
-
// between tokens. Models that can't constrain-sample frequently emit minor
|
|
49
|
-
// variations like `**End` or `*** cell py`.
|
|
50
|
-
const STARS = String.raw`\*{2,}`;
|
|
51
|
-
// Cell header: `*** Cell <attrs...>`. The remainder of the line is captured
|
|
52
|
-
// and tokenized separately so we can handle quoted values.
|
|
53
|
-
const CELL_RE = new RegExp(`^${STARS}\\s*Cell\\b\\s*(.*)$`, "i");
|
|
54
|
-
// `*** End` is a tolerated cell/file terminator. Documented as required at
|
|
55
|
-
// the file level in the lark grammar (the trailing `*** End` quirks GPT-
|
|
56
|
-
// trained models naturally produce), but optional at the parser level.
|
|
57
|
-
const END_RE = new RegExp(`^${STARS}\\s*End\\b.*$`, "i");
|
|
58
|
-
// `*** Abort` is the harmony-leak recovery sentinel; see ABORT_WARNING.
|
|
59
|
-
const ABORT_RE = new RegExp(`^${STARS}\\s*Abort\\s*$`, "i");
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Warning text appended to the eval tool result when parsing terminated on
|
|
63
|
-
* `*** Abort`. Tells the model that earlier cells (if any) ran normally and
|
|
64
|
-
* that any aborted cell needs to be re-issued.
|
|
65
|
-
*/
|
|
66
|
-
export const ABORT_WARNING =
|
|
67
|
-
"Tool stream truncated mid-call due to detected output corruption. Earlier cells (if any) executed normally; their state persists. Re-issue the aborted cell.";
|
|
68
|
-
|
|
69
|
-
const DURATION_RE = /^(\d+)(ms|s|m)?$/i;
|
|
70
|
-
|
|
71
|
-
function resolveLang(token: string | undefined): EvalLanguage | undefined {
|
|
72
|
-
return token ? LANGUAGE_MAP[token.toUpperCase()] : undefined;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function parseDurationMs(raw: string, lineNumber: number): number {
|
|
76
|
-
const match = DURATION_RE.exec(raw.trim());
|
|
77
|
-
if (!match) {
|
|
78
|
-
throw new Error(
|
|
79
|
-
`Eval line ${lineNumber}: invalid duration \`${raw}\`; use a number with optional ms, s, or m units.`,
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
const value = Number.parseInt(match[1], 10);
|
|
83
|
-
const unit = (match[2] ?? "s").toLowerCase();
|
|
84
|
-
if (unit === "ms") return value;
|
|
85
|
-
if (unit === "s") return value * 1000;
|
|
86
|
-
return value * 60_000;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Markdown fence wrapping a single bare cell, e.g. "```py\n...\n```" or
|
|
90
|
-
// "```\n...\n```". Used by models that wrap eval input in code fences.
|
|
91
|
-
const FENCE_OPEN_RE = /^```\s*([A-Za-z]\w*)?\s*$/;
|
|
92
|
-
const FENCE_CLOSE_RE = /^```\s*$/;
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Last-resort fallback when the input has no recognizable `*** Cell` header.
|
|
96
|
-
* Models that can't constrain-sample sometimes pass bare code or wrap it in
|
|
97
|
-
* a markdown fence (```py / ```python / bare ```). Treat the whole input as
|
|
98
|
-
* a single implicit cell, sniffing the language from the body.
|
|
99
|
-
*/
|
|
100
|
-
function parseImplicitCell(lines: string[]): ParsedEvalCell {
|
|
101
|
-
let body = lines.slice();
|
|
102
|
-
while (body.length > 0 && body[0].trim() === "") body.shift();
|
|
103
|
-
while (body.length > 0 && body[body.length - 1].trim() === "") body.pop();
|
|
104
|
-
|
|
105
|
-
let fenceLang: string | undefined;
|
|
106
|
-
if (body.length >= 2) {
|
|
107
|
-
const open = FENCE_OPEN_RE.exec(body[0]);
|
|
108
|
-
const closeIdx = body.length - 1;
|
|
109
|
-
if (open && FENCE_CLOSE_RE.test(body[closeIdx])) {
|
|
110
|
-
fenceLang = open[1];
|
|
111
|
-
body = body.slice(1, closeIdx);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const code = body.join("\n");
|
|
116
|
-
const explicitLanguage = resolveLang(fenceLang);
|
|
117
|
-
const language = explicitLanguage ?? sniffEvalLanguage(code) ?? DEFAULT_LANGUAGE;
|
|
118
|
-
return {
|
|
119
|
-
index: 0,
|
|
120
|
-
title: undefined,
|
|
121
|
-
code,
|
|
122
|
-
language,
|
|
123
|
-
languageOrigin: explicitLanguage ? "header" : "default",
|
|
124
|
-
timeoutMs: DEFAULT_TIMEOUT_MS,
|
|
125
|
-
reset: false,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Tokenize a `*** Cell` header's attribute list while preserving quoted
|
|
131
|
-
* segments (`id:"some title"`, `py:"hi"`, single quotes too) as single
|
|
132
|
-
* tokens. Outer whitespace separates tokens; the quote characters
|
|
133
|
-
* themselves are kept verbatim so attribute parsing can strip them later.
|
|
134
|
-
*/
|
|
135
|
-
function tokenizeCellAttrs(input: string): string[] {
|
|
136
|
-
const tokens: string[] = [];
|
|
137
|
-
let i = 0;
|
|
138
|
-
while (i < input.length) {
|
|
139
|
-
while (i < input.length && /\s/.test(input[i])) i++;
|
|
140
|
-
if (i >= input.length) break;
|
|
141
|
-
let token = "";
|
|
142
|
-
while (i < input.length && !/\s/.test(input[i])) {
|
|
143
|
-
const ch = input[i];
|
|
144
|
-
if (ch === '"' || ch === "'") {
|
|
145
|
-
token += ch;
|
|
146
|
-
i++;
|
|
147
|
-
while (i < input.length && input[i] !== ch) {
|
|
148
|
-
token += input[i];
|
|
149
|
-
i++;
|
|
150
|
-
}
|
|
151
|
-
if (i < input.length) {
|
|
152
|
-
token += input[i];
|
|
153
|
-
i++;
|
|
154
|
-
}
|
|
155
|
-
} else {
|
|
156
|
-
token += ch;
|
|
157
|
-
i++;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
tokens.push(token);
|
|
161
|
-
}
|
|
162
|
-
return tokens;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
interface CellHeader {
|
|
166
|
-
language: EvalLanguage | undefined;
|
|
167
|
-
languageOrigin: EvalLanguageOrigin;
|
|
168
|
-
title: string | undefined;
|
|
169
|
-
timeoutMs: number | undefined;
|
|
170
|
-
reset: boolean;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Map an attribute key (from `key:value` or bare `key`) to one of the three
|
|
175
|
-
* canonical roles. Canonical keys: `id`, `t`, `rst`. Fallback aliases —
|
|
176
|
-
* accepted but not advertised in the prompt — cover common synonyms LLMs
|
|
177
|
-
* reach for instead of the short canonical.
|
|
178
|
-
*/
|
|
179
|
-
const ID_KEYS = new Set(["id", "title", "name", "cell", "file", "label"]);
|
|
180
|
-
const T_KEYS = new Set(["t", "timeout", "duration", "time"]);
|
|
181
|
-
const RST_KEYS = new Set(["rst", "reset"]);
|
|
182
|
-
|
|
183
|
-
function classifyAttrKey(key: string): "id" | "t" | "rst" | null {
|
|
184
|
-
if (ID_KEYS.has(key)) return "id";
|
|
185
|
-
if (T_KEYS.has(key)) return "t";
|
|
186
|
-
if (RST_KEYS.has(key)) return "rst";
|
|
187
|
-
return null;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// `key:value` form. `value` may be `"..."`, `'...'`, or a bare run.
|
|
191
|
-
const ATTR_TOKEN_RE = /^([a-zA-Z][\w-]*)(?::(?:"([^"]*)"|'([^']*)'|(.*)))?$/;
|
|
192
|
-
// Bare positional duration (lenient — `t:` is canonical).
|
|
193
|
-
const DURATION_TOKEN_RE = /^\d+(?:ms|s|m)?$/;
|
|
194
|
-
|
|
195
|
-
function parseBooleanFlag(value: string): boolean | undefined {
|
|
196
|
-
const v = value.trim().toLowerCase();
|
|
197
|
-
if (v === "true" || v === "1" || v === "yes" || v === "on") return true;
|
|
198
|
-
if (v === "false" || v === "0" || v === "no" || v === "off") return false;
|
|
199
|
-
return undefined;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Decode a `*** Cell` header's attribute list into language, title,
|
|
204
|
-
* timeout, and reset flag.
|
|
205
|
-
*
|
|
206
|
-
* Token forms (all optional, any order):
|
|
207
|
-
* - `py` / `js` / `ts` bare language
|
|
208
|
-
* - `py:"..."` / `js:"..."` / `ts:"..."` language + title shorthand
|
|
209
|
-
* - `id:"..."` cell title (canonical)
|
|
210
|
-
* - `t:<duration>` per-cell timeout (canonical)
|
|
211
|
-
* - `<duration>` (e.g. `30s`) bare positional duration
|
|
212
|
-
* - `rst` reset flag (canonical)
|
|
213
|
-
* - `rst:true|false|1|0|yes|no|on|off` reset flag with explicit value
|
|
214
|
-
*
|
|
215
|
-
* Fallback aliases (accepted but not advertised in the prompt):
|
|
216
|
-
* - id: title, name, cell, file, label
|
|
217
|
-
* - t: timeout, duration, time
|
|
218
|
-
* - rst: reset
|
|
219
|
-
*
|
|
220
|
-
* Quotes may be `"` or `'`. Truly unknown keys are silently dropped. First
|
|
221
|
-
* occurrence wins when a key is repeated (canonical or alias). Anything
|
|
222
|
-
* that doesn't classify accumulates as a positional title fragment joined
|
|
223
|
-
* by spaces.
|
|
224
|
-
*/
|
|
225
|
-
function parseCellHeader(rest: string, lineNumber: number): CellHeader {
|
|
226
|
-
const tokens = tokenizeCellAttrs(rest);
|
|
227
|
-
let language: EvalLanguage | undefined;
|
|
228
|
-
let titleAttr: string | undefined;
|
|
229
|
-
let positionalDurationMs: number | undefined;
|
|
230
|
-
let tAttr: string | undefined;
|
|
231
|
-
let rstAttr: string | undefined;
|
|
232
|
-
let bareReset = false;
|
|
233
|
-
const titleParts: string[] = [];
|
|
234
|
-
|
|
235
|
-
for (const token of tokens) {
|
|
236
|
-
// Bare reset flag (canonical or alias).
|
|
237
|
-
if (RST_KEYS.has(token.toLowerCase())) {
|
|
238
|
-
bareReset = true;
|
|
239
|
-
continue;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
const attrMatch = ATTR_TOKEN_RE.exec(token);
|
|
243
|
-
if (attrMatch && token.includes(":")) {
|
|
244
|
-
const key = attrMatch[1].toLowerCase();
|
|
245
|
-
const value = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? "";
|
|
246
|
-
|
|
247
|
-
// Language-with-title shorthand: `py:"foo"`, `js:'bar'`, etc.
|
|
248
|
-
const langCandidate = resolveLang(key);
|
|
249
|
-
if (langCandidate) {
|
|
250
|
-
if (language === undefined) language = langCandidate;
|
|
251
|
-
if (titleAttr === undefined && value !== "") titleAttr = value;
|
|
252
|
-
continue;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
const role = classifyAttrKey(key);
|
|
256
|
-
if (role === "id" && titleAttr === undefined) titleAttr = value;
|
|
257
|
-
else if (role === "t" && tAttr === undefined) tAttr = value;
|
|
258
|
-
else if (role === "rst" && rstAttr === undefined) rstAttr = value;
|
|
259
|
-
// unknown / repeated keys silently dropped
|
|
260
|
-
continue;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
// Bare language token (no colon).
|
|
264
|
-
const lang = resolveLang(token);
|
|
265
|
-
if (lang && language === undefined) {
|
|
266
|
-
language = lang;
|
|
267
|
-
continue;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
// Bare positional duration (lenient — `t:` is canonical).
|
|
271
|
-
if (positionalDurationMs === undefined && DURATION_TOKEN_RE.test(token)) {
|
|
272
|
-
positionalDurationMs = parseDurationMs(token, lineNumber);
|
|
273
|
-
continue;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
titleParts.push(token);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
const explicitTitle = (titleAttr ?? "").trim();
|
|
280
|
-
const positionalTitle = titleParts.join(" ").trim();
|
|
281
|
-
const title = explicitTitle.length > 0 ? explicitTitle : positionalTitle.length > 0 ? positionalTitle : undefined;
|
|
282
|
-
|
|
283
|
-
let timeoutMs: number | undefined;
|
|
284
|
-
if (tAttr !== undefined) {
|
|
285
|
-
timeoutMs = parseDurationMs(tAttr, lineNumber);
|
|
286
|
-
} else if (positionalDurationMs !== undefined) {
|
|
287
|
-
timeoutMs = positionalDurationMs;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
let reset = false;
|
|
291
|
-
if (rstAttr !== undefined) {
|
|
292
|
-
const parsed = parseBooleanFlag(rstAttr);
|
|
293
|
-
if (parsed === undefined) {
|
|
294
|
-
throw new Error(`Eval line ${lineNumber}: invalid rst value \`${rstAttr}\`; use true or false.`);
|
|
295
|
-
}
|
|
296
|
-
reset = parsed;
|
|
297
|
-
} else if (bareReset) {
|
|
298
|
-
reset = true;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
return {
|
|
302
|
-
language,
|
|
303
|
-
languageOrigin: language ? "header" : "default",
|
|
304
|
-
title,
|
|
305
|
-
timeoutMs,
|
|
306
|
-
reset,
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
export function parseEvalInput(input: string): ParsedEvalInput {
|
|
311
|
-
const normalized = input.replace(/\r\n?/g, "\n");
|
|
312
|
-
const lines = normalized.split("\n");
|
|
313
|
-
if (lines.length > 0 && lines[lines.length - 1] === "") lines.pop();
|
|
314
|
-
|
|
315
|
-
const cells: ParsedEvalCell[] = [];
|
|
316
|
-
let aborted = false;
|
|
317
|
-
let i = 0;
|
|
318
|
-
|
|
319
|
-
// Skip leading blank lines.
|
|
320
|
-
while (i < lines.length && lines[i].trim() === "") i++;
|
|
321
|
-
|
|
322
|
-
// Lenient fallback: if the input has no recognizable cell header, treat
|
|
323
|
-
// the entire input as one implicit cell — unless that content contains
|
|
324
|
-
// `*** Abort`, in which case the body is incomplete/unsafe and we drop it.
|
|
325
|
-
if (i < lines.length && !CELL_RE.test(lines[i])) {
|
|
326
|
-
const tail = lines.slice(i);
|
|
327
|
-
if (tail.some(line => ABORT_RE.test(line))) {
|
|
328
|
-
return { cells, aborted: true };
|
|
329
|
-
}
|
|
330
|
-
const cell = parseImplicitCell(tail);
|
|
331
|
-
if (cell.code.length > 0) cells.push(cell);
|
|
332
|
-
return { cells };
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
while (i < lines.length) {
|
|
336
|
-
const headerLine = lines[i];
|
|
337
|
-
const cellMatch = CELL_RE.exec(headerLine);
|
|
338
|
-
if (!cellMatch) {
|
|
339
|
-
// Stray content between/after cells (blank lines were already
|
|
340
|
-
// consumed). `*** Abort` here terminates parsing; `*** End` is
|
|
341
|
-
// the optional file-level terminator (silently consumed). Anything
|
|
342
|
-
// else — typically a harmony-leak fragment — is skipped.
|
|
343
|
-
if (ABORT_RE.test(headerLine)) {
|
|
344
|
-
aborted = true;
|
|
345
|
-
break;
|
|
346
|
-
}
|
|
347
|
-
i++;
|
|
348
|
-
continue;
|
|
349
|
-
}
|
|
350
|
-
const header = parseCellHeader(cellMatch[1] ?? "", i + 1);
|
|
351
|
-
i++;
|
|
352
|
-
|
|
353
|
-
// Collect cell body. Close on `*** End` (any form), the next
|
|
354
|
-
// `*** Cell` header, or `*** Abort` (which drops the in-progress
|
|
355
|
-
// cell as its body is partial and unsafe to run).
|
|
356
|
-
const codeLines: string[] = [];
|
|
357
|
-
let cellAborted = false;
|
|
358
|
-
while (i < lines.length) {
|
|
359
|
-
const line = lines[i];
|
|
360
|
-
if (ABORT_RE.test(line)) {
|
|
361
|
-
cellAborted = true;
|
|
362
|
-
aborted = true;
|
|
363
|
-
i++;
|
|
364
|
-
break;
|
|
365
|
-
}
|
|
366
|
-
if (END_RE.test(line)) {
|
|
367
|
-
i++;
|
|
368
|
-
break;
|
|
369
|
-
}
|
|
370
|
-
if (CELL_RE.test(line)) break;
|
|
371
|
-
codeLines.push(line);
|
|
372
|
-
i++;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
if (cellAborted) break;
|
|
376
|
-
|
|
377
|
-
// Strip trailing blank lines so visual spacing between cells doesn't
|
|
378
|
-
// leak into the preceding cell's code.
|
|
379
|
-
while (codeLines.length > 0 && codeLines[codeLines.length - 1].trim() === "") {
|
|
380
|
-
codeLines.pop();
|
|
381
|
-
}
|
|
382
|
-
const code = codeLines.join("\n");
|
|
383
|
-
|
|
384
|
-
const language = header.language ?? sniffEvalLanguage(code) ?? DEFAULT_LANGUAGE;
|
|
385
|
-
const languageOrigin: EvalLanguageOrigin = header.language ? "header" : "default";
|
|
386
|
-
|
|
387
|
-
cells.push({
|
|
388
|
-
index: cells.length,
|
|
389
|
-
title: header.title,
|
|
390
|
-
code,
|
|
391
|
-
language,
|
|
392
|
-
languageOrigin,
|
|
393
|
-
timeoutMs: header.timeoutMs ?? DEFAULT_TIMEOUT_MS,
|
|
394
|
-
reset: header.reset,
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
// Skip blank separator lines between cells; an `*** Abort` here
|
|
398
|
-
// terminates parsing while keeping previously-collected cells.
|
|
399
|
-
while (i < lines.length && lines[i].trim() === "") i++;
|
|
400
|
-
if (i < lines.length && ABORT_RE.test(lines[i])) {
|
|
401
|
-
aborted = true;
|
|
402
|
-
break;
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
return aborted ? { cells, aborted: true } : { cells };
|
|
407
|
-
}
|
package/src/eval/sniff.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { EvalLanguage } from "./types";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Best-effort language sniff for cells with no explicit `language`.
|
|
5
|
-
*
|
|
6
|
-
* Order:
|
|
7
|
-
* 1. Shebang on first line (`#!/usr/bin/env python`, `#!/usr/bin/env node`, etc.)
|
|
8
|
-
* 2. Strong syntactic markers unique to one language. Bias false negatives over
|
|
9
|
-
* false positives — anything ambiguous returns `undefined` and the caller
|
|
10
|
-
* falls back to the default-backend rules.
|
|
11
|
-
*/
|
|
12
|
-
export function sniffEvalLanguage(code: string): EvalLanguage | undefined {
|
|
13
|
-
const stripped = code.replace(/^\s+/, "");
|
|
14
|
-
if (stripped.startsWith("#!")) {
|
|
15
|
-
const firstLine = stripped.split("\n", 1)[0]!.toLowerCase();
|
|
16
|
-
if (/(\bpython\d?\b|\bipython\b)/.test(firstLine)) return "python";
|
|
17
|
-
if (/(\bnode\b|\bbun\b|\bdeno\b|\bjavascript\b|\bjs\b)/.test(firstLine)) return "js";
|
|
18
|
-
}
|
|
19
|
-
const jsMarkers =
|
|
20
|
-
/(^|\n)\s*(const|let|var|async\s+function|function\s*\*?\s*[\w$]*\s*\(|import\s+[^\n]+\sfrom\s|export\s+(default|const|let|function|class|async)|require\s*\(|console\.\w+\s*\(|=>|;\s*$)/m;
|
|
21
|
-
const pyMarkers =
|
|
22
|
-
/(^|\n)\s*(def\s+\w+\s*\(|from\s+[\w.]+\s+import|import\s+\w+(\s+as\s+\w+)?\s*$|class\s+\w+\s*[(:]|print\s*\(|elif\s+[^\n]*:|with\s+[^\n]+:\s*$|@[\w.]+\s*$)/m;
|
|
23
|
-
const hasJs = jsMarkers.test(code);
|
|
24
|
-
const hasPy = pyMarkers.test(code);
|
|
25
|
-
if (hasJs && !hasPy) return "js";
|
|
26
|
-
if (hasPy && !hasJs) return "python";
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
package/src/hashline/utils.ts
DELETED