@greppleai/grip 0.1.5 → 0.1.7
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 +35 -0
- package/README.md +1 -1
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/embedded-assets.d.ts.map +1 -1
- package/dist/bun/embedded-assets.js.map +1 -1
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +38 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +289 -154
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-guidance.d.ts.map +1 -1
- package/dist/core/auth-guidance.js.map +1 -1
- package/dist/core/auth-storage.d.ts +4 -0
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +3 -10
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +19 -23
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +9 -2
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/compression-detection-ledger.d.ts.map +1 -1
- package/dist/core/compaction/compression-detection-ledger.js.map +1 -1
- package/dist/core/compaction/compression-detector.d.ts +1 -0
- package/dist/core/compaction/compression-detector.d.ts.map +1 -1
- package/dist/core/compaction/compression-detector.js +10 -21
- package/dist/core/compaction/compression-detector.js.map +1 -1
- package/dist/core/compaction/compression-economics.d.ts.map +1 -1
- package/dist/core/compaction/compression-economics.js.map +1 -1
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +40 -30
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +21 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +15 -16
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/grip-agent.d.ts.map +1 -1
- package/dist/core/grip-agent.js +7 -21
- package/dist/core/grip-agent.js.map +1 -1
- package/dist/core/grip-manifest.d.ts.map +1 -1
- package/dist/core/grip-manifest.js.map +1 -1
- package/dist/core/hooks/aggregate.d.ts.map +1 -1
- package/dist/core/hooks/aggregate.js.map +1 -1
- package/dist/core/hooks/config.d.ts.map +1 -1
- package/dist/core/hooks/config.js.map +1 -1
- package/dist/core/hooks/executor.d.ts.map +1 -1
- package/dist/core/hooks/executor.js.map +1 -1
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js.map +1 -1
- package/dist/core/hooks/matcher.d.ts.map +1 -1
- package/dist/core/hooks/matcher.js.map +1 -1
- package/dist/core/hooks/trust-store.d.ts.map +1 -1
- package/dist/core/hooks/trust-store.js +0 -3
- package/dist/core/hooks/trust-store.js.map +1 -1
- package/dist/core/hooks/types.d.ts.map +1 -1
- package/dist/core/hooks/types.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/instruction-resource-loader.d.ts +1 -0
- package/dist/core/instruction-resource-loader.d.ts.map +1 -1
- package/dist/core/instruction-resource-loader.js +2 -4
- package/dist/core/instruction-resource-loader.js.map +1 -1
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +0 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lsp/abort.d.ts.map +1 -1
- package/dist/core/lsp/abort.js.map +1 -1
- package/dist/core/lsp/client.d.ts.map +1 -1
- package/dist/core/lsp/client.js +8 -22
- package/dist/core/lsp/client.js.map +1 -1
- package/dist/core/lsp/config-loader.d.ts.map +1 -1
- package/dist/core/lsp/config-loader.js.map +1 -1
- package/dist/core/lsp/config.d.ts.map +1 -1
- package/dist/core/lsp/config.js.map +1 -1
- package/dist/core/lsp/diagnostics.d.ts.map +1 -1
- package/dist/core/lsp/diagnostics.js.map +1 -1
- package/dist/core/lsp/file-sync.d.ts.map +1 -1
- package/dist/core/lsp/file-sync.js +7 -9
- package/dist/core/lsp/file-sync.js.map +1 -1
- package/dist/core/lsp/integration.d.ts.map +1 -1
- package/dist/core/lsp/integration.js.map +1 -1
- package/dist/core/lsp/language-map.d.ts.map +1 -1
- package/dist/core/lsp/language-map.js +2 -7
- package/dist/core/lsp/language-map.js.map +1 -1
- package/dist/core/lsp/manager.d.ts.map +1 -1
- package/dist/core/lsp/manager.js +18 -29
- package/dist/core/lsp/manager.js.map +1 -1
- package/dist/core/lsp/navigation.d.ts.map +1 -1
- package/dist/core/lsp/navigation.js.map +1 -1
- package/dist/core/lsp/portable-path.d.ts.map +1 -1
- package/dist/core/lsp/portable-path.js.map +1 -1
- package/dist/core/lsp/refactor.d.ts.map +1 -1
- package/dist/core/lsp/refactor.js.map +1 -1
- package/dist/core/lsp/transport.d.ts.map +1 -1
- package/dist/core/lsp/transport.js.map +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +30 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +5 -7
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +0 -6
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/contract.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/contract.js +4 -2
- package/dist/core/remote-workspace-protocol/contract.js.map +1 -1
- package/dist/core/remote-workspace-protocol/guest-shared-client.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/guest-shared-client.js +1 -5
- package/dist/core/remote-workspace-protocol/guest-shared-client.js.map +1 -1
- package/dist/core/remote-workspace-protocol/guest-shared-outbound-scheduler.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/guest-shared-outbound-scheduler.js +5 -10
- package/dist/core/remote-workspace-protocol/guest-shared-outbound-scheduler.js.map +1 -1
- package/dist/core/remote-workspace-protocol/guest-shared-uplink.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/guest-shared-uplink.js +2 -9
- package/dist/core/remote-workspace-protocol/guest-shared-uplink.js.map +1 -1
- package/dist/core/remote-workspace-protocol/lima-owner-directory.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/lima-owner-directory.js.map +1 -1
- package/dist/core/remote-workspace-protocol/lima-owner-lock.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/lima-owner-lock.js.map +1 -1
- package/dist/core/remote-workspace-protocol/session.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/session.js +27 -65
- package/dist/core/remote-workspace-protocol/session.js.map +1 -1
- package/dist/core/remote-workspace-protocol/shared-transport.d.ts.map +1 -1
- package/dist/core/remote-workspace-protocol/shared-transport.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +0 -48
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/rules.d.ts.map +1 -1
- package/dist/core/rules.js.map +1 -1
- package/dist/core/sandbox/command.d.ts.map +1 -1
- package/dist/core/sandbox/command.js.map +1 -1
- package/dist/core/sandbox/config.d.ts.map +1 -1
- package/dist/core/sandbox/config.js.map +1 -1
- package/dist/core/sandbox/lima-guest-binary.d.ts.map +1 -1
- package/dist/core/sandbox/lima-guest-binary.js.map +1 -1
- package/dist/core/sandbox/lima.d.ts +2 -0
- package/dist/core/sandbox/lima.d.ts.map +1 -1
- package/dist/core/sandbox/lima.js +3 -9
- package/dist/core/sandbox/lima.js.map +1 -1
- package/dist/core/sandbox/shared-lima-roots.d.ts.map +1 -1
- package/dist/core/sandbox/shared-lima-roots.js.map +1 -1
- package/dist/core/sandbox/update-shared-guest-binary.d.ts.map +1 -1
- package/dist/core/sandbox/update-shared-guest-binary.js.map +1 -1
- package/dist/core/session/constants.d.ts.map +1 -1
- package/dist/core/session/context-metadata.d.ts.map +1 -1
- package/dist/core/session/context-metadata.js.map +1 -1
- package/dist/core/session/context.d.ts.map +1 -1
- package/dist/core/session/context.js.map +1 -1
- package/dist/core/session/ids.d.ts.map +1 -1
- package/dist/core/session/ids.js.map +1 -1
- package/dist/core/session/in-memory-session-manager.d.ts.map +1 -1
- package/dist/core/session/in-memory-session-manager.js +0 -1
- package/dist/core/session/in-memory-session-manager.js.map +1 -1
- package/dist/core/session/in-memory-session.d.ts.map +1 -1
- package/dist/core/session/in-memory-session.js.map +1 -1
- package/dist/core/session/jsonl-errors.d.ts.map +1 -1
- package/dist/core/session/jsonl-errors.js +0 -11
- package/dist/core/session/jsonl-errors.js.map +1 -1
- package/dist/core/session/jsonl-helpers.d.ts.map +1 -1
- package/dist/core/session/jsonl-helpers.js.map +1 -1
- package/dist/core/session/local-session-manager.d.ts.map +1 -1
- package/dist/core/session/local-session-manager.js +4 -6
- package/dist/core/session/local-session-manager.js.map +1 -1
- package/dist/core/session/local-session.d.ts.map +1 -1
- package/dist/core/session/local-session.js.map +1 -1
- package/dist/core/session/migrations.d.ts.map +1 -1
- package/dist/core/session/migrations.js.map +1 -1
- package/dist/core/session/remote-session-client.d.ts.map +1 -1
- package/dist/core/session/remote-session-client.js +0 -6
- package/dist/core/session/remote-session-client.js.map +1 -1
- package/dist/core/session/remote-session-manager.d.ts.map +1 -1
- package/dist/core/session/remote-session-manager.js +0 -3
- package/dist/core/session/remote-session-manager.js.map +1 -1
- package/dist/core/session/remote-session.d.ts.map +1 -1
- package/dist/core/session/remote-session.js +0 -1
- package/dist/core/session/remote-session.js.map +1 -1
- package/dist/core/session/session-manager.d.ts.map +1 -1
- package/dist/core/session/session.d.ts.map +1 -1
- package/dist/core/session/session.js +1 -5
- package/dist/core/session/session.js.map +1 -1
- package/dist/core/session/stores/in-memory-session-store.d.ts.map +1 -1
- package/dist/core/session/stores/in-memory-session-store.js +7 -6
- package/dist/core/session/stores/in-memory-session-store.js.map +1 -1
- package/dist/core/session/stores/jsonl-session-store.d.ts.map +1 -1
- package/dist/core/session/stores/jsonl-session-store.js +6 -14
- package/dist/core/session/stores/jsonl-session-store.js.map +1 -1
- package/dist/core/session/stores/remote-session-store.d.ts.map +1 -1
- package/dist/core/session/stores/remote-session-store.js +3 -8
- package/dist/core/session/stores/remote-session-store.js.map +1 -1
- package/dist/core/session/stores/session-store.d.ts.map +1 -1
- package/dist/core/session/types.d.ts.map +1 -1
- package/dist/core/session/usage-ledger.d.ts.map +1 -1
- package/dist/core/session/usage-ledger.js.map +1 -1
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-cwd.js +0 -1
- package/dist/core/session-cwd.js.map +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +9 -17
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +3 -2
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/system-prompt.d.ts +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +3 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/bash.d.ts +1 -0
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +34 -28
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/compress-context.d.ts.map +1 -1
- package/dist/core/tools/compress-context.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/hash-store.d.ts.map +1 -1
- package/dist/core/tools/hash-store.js.map +1 -1
- package/dist/core/tools/hashline/apply.d.ts.map +1 -1
- package/dist/core/tools/hashline/apply.js.map +1 -1
- package/dist/core/tools/hashline/hash.d.ts.map +1 -1
- package/dist/core/tools/hashline/hash.js.map +1 -1
- package/dist/core/tools/hashline/parse.d.ts.map +1 -1
- package/dist/core/tools/hashline/parse.js.map +1 -1
- package/dist/core/tools/hashline/resolve.d.ts.map +1 -1
- package/dist/core/tools/hashline/resolve.js.map +1 -1
- package/dist/core/tools/hashline-utils.d.ts.map +1 -1
- package/dist/core/tools/hashline-utils.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/operations.d.ts +11 -0
- package/dist/core/tools/operations.d.ts.map +1 -1
- package/dist/core/tools/operations.js +54 -28
- package/dist/core/tools/operations.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +12 -18
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/path-utils.d.ts.map +1 -1
- package/dist/core/tools/path-utils.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/replace-diff.d.ts.map +1 -1
- package/dist/core/tools/replace-diff.js.map +1 -1
- package/dist/core/tools/replace-normalize.d.ts.map +1 -1
- package/dist/core/tools/replace-normalize.js.map +1 -1
- package/dist/core/tools/replace-render.d.ts +1 -1
- package/dist/core/tools/replace-render.d.ts.map +1 -1
- package/dist/core/tools/replace-render.js.map +1 -1
- package/dist/core/tools/runtime.d.ts.map +1 -1
- package/dist/core/tools/runtime.js.map +1 -1
- package/dist/core/tools/session-history.d.ts.map +1 -1
- package/dist/core/tools/session-history.js.map +1 -1
- package/dist/core/tools/subagent-agents.d.ts.map +1 -1
- package/dist/core/tools/subagent-agents.js.map +1 -1
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/truncate.d.ts.map +1 -1
- package/dist/core/tools/truncate.js.map +1 -1
- package/dist/core/tools/websearch.d.ts.map +1 -1
- package/dist/core/tools/websearch.js.map +1 -1
- package/dist/core/tools/workspace-tool-host.d.ts +1 -0
- package/dist/core/tools/workspace-tool-host.d.ts.map +1 -1
- package/dist/core/tools/workspace-tool-host.js +36 -22
- package/dist/core/tools/workspace-tool-host.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +0 -1
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/workspace-identity.d.ts.map +1 -1
- package/dist/daemon/activity-budget.d.ts.map +1 -1
- package/dist/daemon/activity-budget.js +2 -3
- package/dist/daemon/activity-budget.js.map +1 -1
- package/dist/daemon/command.d.ts.map +1 -1
- package/dist/daemon/command.js.map +1 -1
- package/dist/daemon/config.d.ts +2 -0
- package/dist/daemon/config.d.ts.map +1 -1
- package/dist/daemon/config.js +4 -0
- package/dist/daemon/config.js.map +1 -1
- package/dist/daemon/help.d.ts.map +1 -1
- package/dist/daemon/help.js +4 -3
- package/dist/daemon/help.js.map +1 -1
- package/dist/daemon/lsp-config.d.ts.map +1 -1
- package/dist/daemon/lsp-config.js.map +1 -1
- package/dist/daemon/outbound-budget.d.ts.map +1 -1
- package/dist/daemon/outbound-budget.js +2 -4
- package/dist/daemon/outbound-budget.js.map +1 -1
- package/dist/daemon/security.d.ts.map +1 -1
- package/dist/daemon/security.js.map +1 -1
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/shared-connection.d.ts.map +1 -1
- package/dist/daemon/shared-connection.js +10 -15
- package/dist/daemon/shared-connection.js.map +1 -1
- package/dist/daemon/shared-revision.d.ts.map +1 -1
- package/dist/daemon/shared-revision.js +2 -1
- package/dist/daemon/shared-revision.js.map +1 -1
- package/dist/daemon/shared-roots.d.ts.map +1 -1
- package/dist/daemon/shared-roots.js +0 -1
- package/dist/daemon/shared-roots.js.map +1 -1
- package/dist/daemon/workspace-runtime.d.ts +2 -0
- package/dist/daemon/workspace-runtime.d.ts.map +1 -1
- package/dist/daemon/workspace-runtime.js +43 -15
- package/dist/daemon/workspace-runtime.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +8 -3
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +3 -10
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +4 -9
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +0 -3
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -3
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -3
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +6 -16
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js +0 -5
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +1 -8
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -6
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js +0 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -7
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +2 -8
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +1 -9
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +8 -4
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/hook-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/hook-execution.js +2 -5
- package/dist/modes/interactive/components/hook-execution.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +3 -9
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
- package/dist/modes/interactive/components/mermaid.js.map +1 -1
- package/dist/modes/interactive/components/message-card.d.ts.map +1 -1
- package/dist/modes/interactive/components/message-card.js +0 -1
- package/dist/modes/interactive/components/message-card.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +13 -28
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +3 -12
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +9 -13
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +33 -58
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +0 -4
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +0 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -3
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +0 -2
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +0 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +9 -24
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +18 -34
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +3 -6
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +0 -4
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +13 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +162 -136
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +0 -7
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/jsonl.d.ts.map +1 -1
- package/dist/modes/rpc/jsonl.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +10 -11
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +33 -2
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/binary-self-update.d.ts +25 -0
- package/dist/utils/binary-self-update.d.ts.map +1 -0
- package/dist/utils/binary-self-update.js +159 -0
- package/dist/utils/binary-self-update.js.map +1 -0
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts.map +1 -1
- package/dist/utils/clipboard-native.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/deprecation.d.ts.map +1 -1
- package/dist/utils/deprecation.js.map +1 -1
- package/dist/utils/directory-completions.d.ts +8 -0
- package/dist/utils/directory-completions.d.ts.map +1 -1
- package/dist/utils/directory-completions.js +42 -1
- package/dist/utils/directory-completions.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/fs-watch.d.ts.map +1 -1
- package/dist/utils/fs-watch.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/grip-user-agent.d.ts.map +1 -1
- package/dist/utils/grip-user-agent.js.map +1 -1
- package/dist/utils/html.d.ts.map +1 -1
- package/dist/utils/html.js.map +1 -1
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts.map +1 -1
- package/dist/utils/image-process.js.map +1 -1
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/image-resize-worker.d.ts.map +1 -1
- package/dist/utils/image-resize-worker.js.map +1 -1
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/photon.d.ts.map +1 -1
- package/dist/utils/photon.js +10 -5
- package/dist/utils/photon.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +1 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js.map +1 -1
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/docs/extensions.md +31 -1
- package/docs/sandbox.md +6 -0
- package/docs/sessions.md +1 -1
- package/docs/skills.md +4 -4
- package/docs/usage.md +2 -1
- package/examples/extensions/custom-provider-anthropic/package.json +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/sandbox/package.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +602 -834
- package/package.json +20 -21
|
@@ -72,8 +72,6 @@ function isExpandable(obj) {
|
|
|
72
72
|
return typeof obj === "object" && obj !== null && "setExpanded" in obj && typeof obj.setExpanded === "function";
|
|
73
73
|
}
|
|
74
74
|
class ExpandableText extends Text {
|
|
75
|
-
getCollapsedText;
|
|
76
|
-
getExpandedText;
|
|
77
75
|
constructor(getCollapsedText, getExpandedText, expanded = false, paddingX = 0, paddingY = 0) {
|
|
78
76
|
super(expanded ? getExpandedText() : getCollapsedText(), paddingX, paddingY);
|
|
79
77
|
this.getCollapsedText = getCollapsedText;
|
|
@@ -196,123 +194,6 @@ export function createInteractiveTuiReference(getTui) {
|
|
|
196
194
|
});
|
|
197
195
|
}
|
|
198
196
|
export class InteractiveMode {
|
|
199
|
-
runtimeHost;
|
|
200
|
-
options;
|
|
201
|
-
onRightClickPaste = () => {
|
|
202
|
-
void this.handleRightClickPaste();
|
|
203
|
-
};
|
|
204
|
-
renderer;
|
|
205
|
-
ui;
|
|
206
|
-
mainScreenRenderState;
|
|
207
|
-
loadedResourcesContainer;
|
|
208
|
-
chatContainer;
|
|
209
|
-
documentContainer;
|
|
210
|
-
transcriptScrollView;
|
|
211
|
-
fullscreenLayoutRoot;
|
|
212
|
-
pendingMessagesContainer;
|
|
213
|
-
statusContainer;
|
|
214
|
-
defaultEditor;
|
|
215
|
-
editor;
|
|
216
|
-
editorComponentFactory;
|
|
217
|
-
autocompleteProvider;
|
|
218
|
-
autocompleteProviderWrappers = [];
|
|
219
|
-
fdPath;
|
|
220
|
-
editorContainer;
|
|
221
|
-
footer;
|
|
222
|
-
footerContainer;
|
|
223
|
-
footerDataProvider;
|
|
224
|
-
// Stored so the same manager can be injected into custom editors, selectors, and extension UI.
|
|
225
|
-
keybindings;
|
|
226
|
-
version;
|
|
227
|
-
isInitialized = false;
|
|
228
|
-
transcriptRendered = false;
|
|
229
|
-
onInputCallback;
|
|
230
|
-
pendingUserInputs = [];
|
|
231
|
-
loadingAnimation = undefined;
|
|
232
|
-
workingMessage = undefined;
|
|
233
|
-
compressionDetectionActive = false;
|
|
234
|
-
compressionDetectionOwnsLoader = false;
|
|
235
|
-
workingVisible = true;
|
|
236
|
-
workingIndicatorOptions = undefined;
|
|
237
|
-
defaultWorkingMessage = "Working...";
|
|
238
|
-
defaultHiddenThinkingLabel = "Thinking...";
|
|
239
|
-
hiddenThinkingLabel = this.defaultHiddenThinkingLabel;
|
|
240
|
-
lastSigintTime = 0;
|
|
241
|
-
lastEscapeTime = 0;
|
|
242
|
-
changelogMarkdown = undefined;
|
|
243
|
-
startupNoticesShown = false;
|
|
244
|
-
anthropicSubscriptionWarningShown = false;
|
|
245
|
-
// Status line tracking (for mutating immediately-sequential status updates)
|
|
246
|
-
lastStatusSpacer = undefined;
|
|
247
|
-
lastStatusText = undefined;
|
|
248
|
-
// Streaming message tracking
|
|
249
|
-
streamingComponent = undefined;
|
|
250
|
-
streamingMessage = undefined;
|
|
251
|
-
// Tool execution tracking: toolCallId -> component
|
|
252
|
-
pendingTools = new Map();
|
|
253
|
-
// Tool output expansion state
|
|
254
|
-
toolOutputExpanded = false;
|
|
255
|
-
activeSandboxContainerId;
|
|
256
|
-
activeSandboxBackendConnected = false;
|
|
257
|
-
sessionSandboxStates = new Map();
|
|
258
|
-
managedLimaInstances = new Map();
|
|
259
|
-
// Thinking block visibility state
|
|
260
|
-
hideThinkingBlock = false;
|
|
261
|
-
outputPad = 1;
|
|
262
|
-
mermaidMarkdownTransformer;
|
|
263
|
-
// Skill commands: command name -> skill file path
|
|
264
|
-
skillCommands = new Map();
|
|
265
|
-
// Agent subscription unsubscribe function
|
|
266
|
-
unsubscribe;
|
|
267
|
-
hookExecutionUnsubscribe;
|
|
268
|
-
hookExecutionActivityUnsubscribe;
|
|
269
|
-
hookExecutionActivityDepth = 0;
|
|
270
|
-
hookExecutionActivityOwnsLoader = false;
|
|
271
|
-
hookExecutionSession;
|
|
272
|
-
hookExecutionNotices = [];
|
|
273
|
-
hookExecutionComponents = [];
|
|
274
|
-
pendingStopHookNotifications = [];
|
|
275
|
-
activeToolHookExecutionGroups = new Map();
|
|
276
|
-
hookExecutionTurnActive = false;
|
|
277
|
-
signalCleanupHandlers = [];
|
|
278
|
-
// Track if editor is in bash mode (text starts with !)
|
|
279
|
-
isBashMode = false;
|
|
280
|
-
// Track current bash execution component
|
|
281
|
-
bashComponent = undefined;
|
|
282
|
-
// Track pending bash components (shown in pending area, moved to chat on submit)
|
|
283
|
-
pendingBashComponents = [];
|
|
284
|
-
// Auto-compaction state
|
|
285
|
-
autoCompactionLoader = undefined;
|
|
286
|
-
autoCompactionEscapeHandler;
|
|
287
|
-
branchSummaryLoader;
|
|
288
|
-
summarizationRetryLoader;
|
|
289
|
-
summarizationRetryCountdown;
|
|
290
|
-
// Auto-retry state
|
|
291
|
-
retryLoader = undefined;
|
|
292
|
-
retryCountdown = undefined;
|
|
293
|
-
retryEscapeHandler;
|
|
294
|
-
// Messages queued while compaction is running
|
|
295
|
-
compactionQueuedMessages = [];
|
|
296
|
-
// Shutdown state
|
|
297
|
-
shutdownRequested = false;
|
|
298
|
-
// Extension UI state
|
|
299
|
-
extensionSelector = undefined;
|
|
300
|
-
extensionInput = undefined;
|
|
301
|
-
extensionEditor = undefined;
|
|
302
|
-
extensionTerminalInputSubscriptions = new Set();
|
|
303
|
-
// Extension widgets (components rendered above/below the editor)
|
|
304
|
-
extensionWidgetsAbove = new Map();
|
|
305
|
-
extensionWidgetsBelow = new Map();
|
|
306
|
-
widgetContainerAbove;
|
|
307
|
-
widgetContainerBelow;
|
|
308
|
-
// Custom footer from extension (undefined = use built-in footer)
|
|
309
|
-
customFooter = undefined;
|
|
310
|
-
// Header container that holds the built-in or custom header
|
|
311
|
-
headerContainer;
|
|
312
|
-
// Built-in header (logo + keybinding hints + changelog)
|
|
313
|
-
builtInHeader = undefined;
|
|
314
|
-
// Custom header from extension (undefined = use built-in header)
|
|
315
|
-
customHeader = undefined;
|
|
316
197
|
// Convenience accessors
|
|
317
198
|
get session() {
|
|
318
199
|
return this.runtimeHost.session;
|
|
@@ -327,6 +208,88 @@ export class InteractiveMode {
|
|
|
327
208
|
return this.session.settingsManager;
|
|
328
209
|
}
|
|
329
210
|
constructor(runtimeHost, options = {}) {
|
|
211
|
+
this.onRightClickPaste = () => {
|
|
212
|
+
void this.handleRightClickPaste();
|
|
213
|
+
};
|
|
214
|
+
this.autocompleteProviderWrappers = [];
|
|
215
|
+
this.isInitialized = false;
|
|
216
|
+
this.transcriptRendered = false;
|
|
217
|
+
this.pendingUserInputs = [];
|
|
218
|
+
this.loadingAnimation = undefined;
|
|
219
|
+
this.workingMessage = undefined;
|
|
220
|
+
this.compressionDetectionActive = false;
|
|
221
|
+
this.compressionDetectionOwnsLoader = false;
|
|
222
|
+
this.workingVisible = true;
|
|
223
|
+
this.workingIndicatorOptions = undefined;
|
|
224
|
+
this.defaultWorkingMessage = "Working...";
|
|
225
|
+
this.defaultHiddenThinkingLabel = "Thinking...";
|
|
226
|
+
this.hiddenThinkingLabel = this.defaultHiddenThinkingLabel;
|
|
227
|
+
this.lastSigintTime = 0;
|
|
228
|
+
this.lastEscapeTime = 0;
|
|
229
|
+
this.changelogMarkdown = undefined;
|
|
230
|
+
this.startupNoticesShown = false;
|
|
231
|
+
this.anthropicSubscriptionWarningShown = false;
|
|
232
|
+
// Status line tracking (for mutating immediately-sequential status updates)
|
|
233
|
+
this.lastStatusSpacer = undefined;
|
|
234
|
+
this.lastStatusText = undefined;
|
|
235
|
+
// Streaming message tracking
|
|
236
|
+
this.streamingComponent = undefined;
|
|
237
|
+
this.streamingMessage = undefined;
|
|
238
|
+
// Tool execution tracking: toolCallId -> component
|
|
239
|
+
this.pendingTools = new Map();
|
|
240
|
+
// Tool output expansion state
|
|
241
|
+
this.toolOutputExpanded = false;
|
|
242
|
+
this.activeSandboxBackendConnected = false;
|
|
243
|
+
this.sessionSandboxStates = new Map();
|
|
244
|
+
this.managedLimaInstances = new Map();
|
|
245
|
+
// Thinking block visibility state
|
|
246
|
+
this.hideThinkingBlock = false;
|
|
247
|
+
this.outputPad = 1;
|
|
248
|
+
// Skill commands: command name -> skill file path
|
|
249
|
+
this.skillCommands = new Map();
|
|
250
|
+
this.hookExecutionActivityDepth = 0;
|
|
251
|
+
this.hookExecutionActivityOwnsLoader = false;
|
|
252
|
+
this.hookExecutionNotices = [];
|
|
253
|
+
this.hookExecutionComponents = [];
|
|
254
|
+
this.pendingStopHookNotifications = [];
|
|
255
|
+
this.activeToolHookExecutionGroups = new Map();
|
|
256
|
+
this.hookExecutionTurnActive = false;
|
|
257
|
+
this.signalCleanupHandlers = [];
|
|
258
|
+
// Track if editor is in bash mode (text starts with !)
|
|
259
|
+
this.isBashMode = false;
|
|
260
|
+
// Track current bash execution component
|
|
261
|
+
this.bashComponent = undefined;
|
|
262
|
+
// Track pending bash components (shown in pending area, moved to chat on submit)
|
|
263
|
+
this.pendingBashComponents = [];
|
|
264
|
+
// Auto-compaction state
|
|
265
|
+
this.autoCompactionLoader = undefined;
|
|
266
|
+
// Auto-retry state
|
|
267
|
+
this.retryLoader = undefined;
|
|
268
|
+
this.retryCountdown = undefined;
|
|
269
|
+
// Messages queued while compaction is running
|
|
270
|
+
this.compactionQueuedMessages = [];
|
|
271
|
+
// Shutdown state
|
|
272
|
+
this.shutdownRequested = false;
|
|
273
|
+
// Extension UI state
|
|
274
|
+
this.extensionSelector = undefined;
|
|
275
|
+
this.extensionInput = undefined;
|
|
276
|
+
this.extensionEditor = undefined;
|
|
277
|
+
this.extensionTerminalInputSubscriptions = new Set();
|
|
278
|
+
// Extension widgets (components rendered above/below the editor)
|
|
279
|
+
this.extensionWidgetsAbove = new Map();
|
|
280
|
+
this.extensionWidgetsBelow = new Map();
|
|
281
|
+
// Custom footer from extension (undefined = use built-in footer)
|
|
282
|
+
this.customFooter = undefined;
|
|
283
|
+
// Built-in header (logo + keybinding hints + changelog)
|
|
284
|
+
this.builtInHeader = undefined;
|
|
285
|
+
// Custom header from extension (undefined = use built-in header)
|
|
286
|
+
this.customHeader = undefined;
|
|
287
|
+
/**
|
|
288
|
+
* Gracefully shutdown the agent.
|
|
289
|
+
* Stops the TUI before emitting shutdown events so extension UI cleanup cannot
|
|
290
|
+
* repaint the final frame while the process is exiting.
|
|
291
|
+
*/
|
|
292
|
+
this.isShuttingDown = false;
|
|
330
293
|
this.runtimeHost = runtimeHost;
|
|
331
294
|
const tuiMode = options.tuiMode ?? this.settingsManager.getTuiMode();
|
|
332
295
|
this.options = { ...options, tuiMode };
|
|
@@ -428,7 +391,7 @@ export class InteractiveMode {
|
|
|
428
391
|
}));
|
|
429
392
|
}
|
|
430
393
|
createBaseAutocompleteProvider() {
|
|
431
|
-
// Commands without arguments remain selectable after a trailing space (e.g. /
|
|
394
|
+
// Commands without arguments remain selectable after a trailing space (e.g. /quit ).
|
|
432
395
|
const noArgumentCommands = new Set([
|
|
433
396
|
"settings",
|
|
434
397
|
"scoped-models",
|
|
@@ -439,10 +402,10 @@ export class InteractiveMode {
|
|
|
439
402
|
"hotkeys",
|
|
440
403
|
"fork",
|
|
441
404
|
"clone",
|
|
405
|
+
"new",
|
|
442
406
|
"tree",
|
|
443
407
|
"login",
|
|
444
408
|
"logout",
|
|
445
|
-
"new",
|
|
446
409
|
"reload",
|
|
447
410
|
"resume",
|
|
448
411
|
"quit",
|
|
@@ -455,7 +418,13 @@ export class InteractiveMode {
|
|
|
455
418
|
const cdCommand = slashCommands.find((command) => command.name === "cd");
|
|
456
419
|
if (cdCommand) {
|
|
457
420
|
cdCommand.argumentHint = "<directory>";
|
|
458
|
-
cdCommand.getArgumentCompletions = (prefix) =>
|
|
421
|
+
cdCommand.getArgumentCompletions = (prefix) => {
|
|
422
|
+
if (this.activeSandboxBackendConnected)
|
|
423
|
+
return this.session.getSandboxDirectoryCompletions(prefix);
|
|
424
|
+
return this.session.supportsDirectoryChange()
|
|
425
|
+
? getDirectoryCompletions(prefix, this.activeSession.getCwd())
|
|
426
|
+
: [];
|
|
427
|
+
};
|
|
459
428
|
}
|
|
460
429
|
const choiceCompletions = (choices) => (prefix) => {
|
|
461
430
|
if (prefix.includes(" "))
|
|
@@ -491,10 +460,10 @@ export class InteractiveMode {
|
|
|
491
460
|
label: item,
|
|
492
461
|
}));
|
|
493
462
|
}
|
|
494
|
-
const startMatch = prefix.match(/^start\s+(--[^\s]*)
|
|
463
|
+
const startMatch = prefix.match(/^start\s+(--[^\s]*)?$/);
|
|
495
464
|
if (!startMatch)
|
|
496
465
|
return null;
|
|
497
|
-
return fuzzyFilter(["--name", "--template", "--update"], startMatch[1], (item) => item).map((item) => ({
|
|
466
|
+
return fuzzyFilter(["--name", "--template", "--update"], startMatch[1] ?? "", (item) => item).map((item) => ({
|
|
498
467
|
value: `start ${item}${item === "--update" ? "" : " "}`,
|
|
499
468
|
label: item,
|
|
500
469
|
}));
|
|
@@ -1635,12 +1604,15 @@ export class InteractiveMode {
|
|
|
1635
1604
|
cwd: this.activeSession.getCwd(),
|
|
1636
1605
|
toolOperations: this.session.getToolOperations(),
|
|
1637
1606
|
getToolBackendInfo: () => this.session.getToolBackendInfo(),
|
|
1607
|
+
isSandbox: () => this.session.isSandbox(),
|
|
1638
1608
|
getLspStatus: () => this.session.getLspStatus(),
|
|
1639
1609
|
configureLsp: (configuration) => this.session.configureLsp(configuration),
|
|
1640
1610
|
execToolBackend: (command, options) => {
|
|
1641
1611
|
const operations = this.session.getToolOperations();
|
|
1642
1612
|
return executeBashWithOperations(command, options?.cwd ?? operations.cwd, operations, options);
|
|
1643
1613
|
},
|
|
1614
|
+
execHostCommand: (command, options) => extensionRunner.createContext().execHostCommand(command, options),
|
|
1615
|
+
execHostProcess: (executable, args, options) => extensionRunner.createContext().execHostProcess(executable, args, options),
|
|
1644
1616
|
session: this.activeSession,
|
|
1645
1617
|
modelRegistry: this.session.modelRegistry,
|
|
1646
1618
|
model: this.session.model,
|
|
@@ -1695,7 +1667,7 @@ export class InteractiveMode {
|
|
|
1695
1667
|
return theme.fg("dim", `tools: local ${info.cwd}`);
|
|
1696
1668
|
}
|
|
1697
1669
|
return info.configured
|
|
1698
|
-
? theme.fg("accent", `tools: remote ${info.url} ${info.cwd}`)
|
|
1670
|
+
? theme.fg("accent", `tools: remote ${info.url} ${this.activeSandboxBackendConnected ? this.session.getToolOperations().cwd : info.cwd}`)
|
|
1699
1671
|
: theme.fg("warning", `tools: remote not configured ${info.cwd}`);
|
|
1700
1672
|
}
|
|
1701
1673
|
updateToolBackendStatus() {
|
|
@@ -1901,7 +1873,7 @@ export class InteractiveMode {
|
|
|
1901
1873
|
this.setHiddenThinkingLabel();
|
|
1902
1874
|
}
|
|
1903
1875
|
// Maximum total widget lines to prevent viewport overflow
|
|
1904
|
-
static MAX_WIDGET_LINES = 10;
|
|
1876
|
+
static { this.MAX_WIDGET_LINES = 10; }
|
|
1905
1877
|
/**
|
|
1906
1878
|
* Render all extension widgets to the widget container.
|
|
1907
1879
|
*/
|
|
@@ -2561,6 +2533,19 @@ export class InteractiveMode {
|
|
|
2561
2533
|
},
|
|
2562
2534
|
};
|
|
2563
2535
|
}
|
|
2536
|
+
if (this.matchesEditorCommand(text, "/new")) {
|
|
2537
|
+
return {
|
|
2538
|
+
run: async () => {
|
|
2539
|
+
this.editor.setText("");
|
|
2540
|
+
const option = text.slice("/new".length).trim();
|
|
2541
|
+
if (option) {
|
|
2542
|
+
this.showWarning("Usage: /new");
|
|
2543
|
+
return;
|
|
2544
|
+
}
|
|
2545
|
+
await this.handleClearCommand();
|
|
2546
|
+
},
|
|
2547
|
+
};
|
|
2548
|
+
}
|
|
2564
2549
|
if (this.matchesEditorCommand(text, "/compact")) {
|
|
2565
2550
|
const customInstructions = text.slice("/compact".length).trim() || undefined;
|
|
2566
2551
|
return {
|
|
@@ -3465,12 +3450,6 @@ export class InteractiveMode {
|
|
|
3465
3450
|
// Only called when editor is empty (enforced by CustomEditor)
|
|
3466
3451
|
void this.shutdown();
|
|
3467
3452
|
}
|
|
3468
|
-
/**
|
|
3469
|
-
* Gracefully shutdown the agent.
|
|
3470
|
-
* Stops the TUI before emitting shutdown events so extension UI cleanup cannot
|
|
3471
|
-
* repaint the final frame while the process is exiting.
|
|
3472
|
-
*/
|
|
3473
|
-
isShuttingDown = false;
|
|
3474
3453
|
async shutdown(options) {
|
|
3475
3454
|
if (this.isShuttingDown)
|
|
3476
3455
|
return;
|
|
@@ -4951,13 +4930,44 @@ export class InteractiveMode {
|
|
|
4951
4930
|
}
|
|
4952
4931
|
// =========================================================================
|
|
4953
4932
|
// Command handlers
|
|
4933
|
+
async handleSandboxCdCommand(text) {
|
|
4934
|
+
const backend = this.session.getToolBackendInfo();
|
|
4935
|
+
if (backend.type !== "remote" || !backend.configured) {
|
|
4936
|
+
this.showWarning("Changing directories is not supported with the active workspace backend.");
|
|
4937
|
+
return;
|
|
4938
|
+
}
|
|
4939
|
+
const argument = this.getPathCommandArgument(text, "/cd");
|
|
4940
|
+
if (text !== "/cd" && !argument) {
|
|
4941
|
+
this.showError("Usage: /cd [directory]");
|
|
4942
|
+
return;
|
|
4943
|
+
}
|
|
4944
|
+
try {
|
|
4945
|
+
const directory = await this.session.changeSandboxWorkingDirectory(argument ?? backend.workspace.root);
|
|
4946
|
+
this.updateToolBackendStatus();
|
|
4947
|
+
this.showStatus(`Working directory: ${directory}`);
|
|
4948
|
+
}
|
|
4949
|
+
catch (error) {
|
|
4950
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
4951
|
+
this.showError(message === "Remote workspace request handler failed"
|
|
4952
|
+
? `Directory unavailable in sandbox: ${argument ?? backend.workspace.root} (it must exist within the mounted workspace ${backend.workspace.root})`
|
|
4953
|
+
: `Failed to change sandbox directory: ${message}`);
|
|
4954
|
+
}
|
|
4955
|
+
}
|
|
4956
|
+
async handleUnavailableCdCommand(text) {
|
|
4957
|
+
if (this.activeSandboxBackendConnected) {
|
|
4958
|
+
await this.handleSandboxCdCommand(text);
|
|
4959
|
+
}
|
|
4960
|
+
else {
|
|
4961
|
+
this.showWarning("Changing directories is not supported with the active workspace backend.");
|
|
4962
|
+
}
|
|
4963
|
+
}
|
|
4954
4964
|
async handleCdCommand(text) {
|
|
4955
4965
|
if (!this.session.isIdle || this.session.isBashRunning) {
|
|
4956
4966
|
this.showWarning("Wait for the current operation to finish before changing directories.");
|
|
4957
4967
|
return;
|
|
4958
4968
|
}
|
|
4959
4969
|
if (!this.session.supportsDirectoryChange()) {
|
|
4960
|
-
this.
|
|
4970
|
+
await this.handleUnavailableCdCommand(text);
|
|
4961
4971
|
return;
|
|
4962
4972
|
}
|
|
4963
4973
|
const argument = this.getPathCommandArgument(text, "/cd");
|
|
@@ -5374,6 +5384,7 @@ export class InteractiveMode {
|
|
|
5374
5384
|
try {
|
|
5375
5385
|
await this.session.activateSandboxDaemon({
|
|
5376
5386
|
url: state.url,
|
|
5387
|
+
hostWorkspaceRoot: state.hostWorkspaceRoot,
|
|
5377
5388
|
token: state.token,
|
|
5378
5389
|
expectedCwd: state.expectedCwd,
|
|
5379
5390
|
});
|
|
@@ -5455,6 +5466,7 @@ export class InteractiveMode {
|
|
|
5455
5466
|
url: result.daemonUrl,
|
|
5456
5467
|
token: result.token,
|
|
5457
5468
|
expectedCwd: result.workspaceMountPath,
|
|
5469
|
+
hostWorkspaceRoot: result.workspaceRoot,
|
|
5458
5470
|
});
|
|
5459
5471
|
break;
|
|
5460
5472
|
}
|
|
@@ -5511,6 +5523,7 @@ export class InteractiveMode {
|
|
|
5511
5523
|
url: result.daemonUrl,
|
|
5512
5524
|
token: result.token,
|
|
5513
5525
|
expectedCwd: result.workspaceMountPath,
|
|
5526
|
+
hostWorkspaceRoot: result.workspaceRoot,
|
|
5514
5527
|
containerId: result.containerId,
|
|
5515
5528
|
});
|
|
5516
5529
|
this.refreshUiAfterBackendChange();
|
|
@@ -5826,17 +5839,30 @@ export class InteractiveMode {
|
|
|
5826
5839
|
this.loadingAnimation = undefined;
|
|
5827
5840
|
}
|
|
5828
5841
|
this.statusContainer.clear();
|
|
5842
|
+
const sandboxState = this.activeSandboxBackendConnected
|
|
5843
|
+
? this.sessionSandboxStates.get(getSessionSandboxKey(this.activeSession))
|
|
5844
|
+
: undefined;
|
|
5845
|
+
let newSessionKey;
|
|
5829
5846
|
try {
|
|
5830
|
-
const result = await this.runtimeHost.newSession(
|
|
5831
|
-
|
|
5847
|
+
const result = await this.runtimeHost.newSession(sandboxState
|
|
5848
|
+
? {
|
|
5849
|
+
setup: async (nextSession) => {
|
|
5850
|
+
newSessionKey = getSessionSandboxKey(nextSession);
|
|
5851
|
+
this.sessionSandboxStates.set(newSessionKey, sandboxState);
|
|
5852
|
+
},
|
|
5853
|
+
}
|
|
5854
|
+
: undefined);
|
|
5855
|
+
if (result.cancelled)
|
|
5832
5856
|
return;
|
|
5833
|
-
}
|
|
5834
5857
|
this.renderCurrentSessionState();
|
|
5835
5858
|
this.chatContainer.addChild(new Spacer(1));
|
|
5836
5859
|
this.chatContainer.addChild(new Text(`${theme.fg("accent", "✓ New session started")}`, 1, 1));
|
|
5837
5860
|
this.ui.requestRender();
|
|
5838
5861
|
}
|
|
5839
5862
|
catch (error) {
|
|
5863
|
+
if (newSessionKey && newSessionKey !== getSessionSandboxKey(this.activeSession)) {
|
|
5864
|
+
this.sessionSandboxStates.delete(newSessionKey);
|
|
5865
|
+
}
|
|
5840
5866
|
await this.handleFatalRuntimeError("Failed to create session", error);
|
|
5841
5867
|
}
|
|
5842
5868
|
}
|