@greppleai/grip 0.1.5 → 0.1.6
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 +16 -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.map +1 -1
- package/dist/core/agent-session.d.ts +27 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +117 -152
- 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.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.map +1 -1
- package/dist/core/extensions/runner.js +18 -30
- package/dist/core/extensions/runner.js.map +1 -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.map +1 -1
- package/dist/core/instruction-resource-loader.js +0 -3
- 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.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.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.map +1 -1
- 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.map +1 -1
- package/dist/core/tools/bash.js +8 -5
- 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 +5 -0
- package/dist/core/tools/operations.d.ts.map +1 -1
- package/dist/core/tools/operations.js +26 -24
- 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.map +1 -1
- package/dist/main.d.ts.map +1 -1
- 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 +1 -3
- 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 +14 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +159 -135
- 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.map +1 -1
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js.map +1 -1
- 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.map +1 -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/sandbox.md +6 -0
- package/docs/sessions.md +1 -1
- 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 +601 -833
- package/package.json +20 -21
|
@@ -383,127 +383,105 @@ function extractJsonCandidates(text) {
|
|
|
383
383
|
// ============================================================================
|
|
384
384
|
// AgentSession Class
|
|
385
385
|
// ============================================================================
|
|
386
|
+
function isWithinSandboxMount(directory, root, flavor) {
|
|
387
|
+
const paths = flavor === "windows" ? win32 : posix;
|
|
388
|
+
const relativePath = paths.relative(root, directory);
|
|
389
|
+
return relativePath !== ".." && !relativePath.startsWith(`..${paths.sep}`) && !paths.isAbsolute(relativePath);
|
|
390
|
+
}
|
|
386
391
|
export class AgentSession {
|
|
387
|
-
agent;
|
|
388
|
-
session;
|
|
389
|
-
settingsManager;
|
|
390
|
-
_scopedModels;
|
|
391
|
-
// Event subscription state
|
|
392
|
-
_unsubscribeAgent;
|
|
393
|
-
_eventListeners = [];
|
|
394
|
-
_disposePromise;
|
|
395
|
-
_shutdownPreparationPromise;
|
|
396
|
-
_disposed = false;
|
|
397
|
-
/** Tracks pending steering messages for UI display. Removed when delivered. */
|
|
398
|
-
_steeringMessages = [];
|
|
399
|
-
/** Tracks pending follow-up messages for UI display. Removed when delivered. */
|
|
400
|
-
_followUpMessages = [];
|
|
401
|
-
/** Messages queued to be included with the next user prompt as context ("asides"). */
|
|
402
|
-
_pendingNextTurnMessages = [];
|
|
403
|
-
// Compaction state
|
|
404
|
-
_compactionInFlight;
|
|
405
|
-
_compactionAbortController = undefined;
|
|
406
|
-
_autoCompactionAbortController = undefined;
|
|
407
|
-
_extensionCompactionQueue = [];
|
|
408
|
-
_extensionCompactionTimer = undefined;
|
|
409
|
-
_extensionCompactionActivity;
|
|
410
|
-
_extensionCompactionRunning = false;
|
|
411
|
-
_overflowRecoveryAttempted = false;
|
|
412
|
-
// Branch summarization state
|
|
413
|
-
_branchSummaryAbortController = undefined;
|
|
414
|
-
// Retry state
|
|
415
|
-
_retryAbortController = undefined;
|
|
416
|
-
_retryAttempt = 0;
|
|
417
|
-
// Bash execution state
|
|
418
|
-
_bashAbortControllers = new Set();
|
|
419
|
-
_pendingBashMessages = [];
|
|
420
|
-
// Extension system
|
|
421
|
-
_extensionRunner;
|
|
422
|
-
_extensionLspOwnership = new WeakMap();
|
|
423
|
-
_turnIndex = 0;
|
|
424
|
-
_resourceLoader;
|
|
425
|
-
_customTools;
|
|
426
|
-
_baseToolDefinitions = new Map();
|
|
427
|
-
_workspaceToolHost;
|
|
428
|
-
_retiredWorkspaceToolHosts = [];
|
|
429
|
-
_cwd;
|
|
430
|
-
_extensionRunnerRef;
|
|
431
|
-
_initialActiveToolNames;
|
|
432
|
-
_enableLspTools;
|
|
433
|
-
_allowedToolNames;
|
|
434
|
-
_excludedToolNames;
|
|
435
|
-
_baseToolsOverride;
|
|
436
|
-
_toolOperations;
|
|
437
|
-
_runtimeToolOperations;
|
|
438
|
-
_subagentRunner;
|
|
439
|
-
_subagentRunRegistry;
|
|
440
|
-
_subagentConfigRegistry;
|
|
441
|
-
_trustProjectAgents;
|
|
442
|
-
_localResourceToolOperations;
|
|
443
|
-
_sandboxToolOperations;
|
|
444
|
-
_preSandboxToolOperations;
|
|
445
|
-
_lspRuntimeState;
|
|
446
|
-
_lspConfiguration;
|
|
447
|
-
_lspConnectionFactories;
|
|
448
|
-
_resolveLspConfiguration;
|
|
449
|
-
_onLspConfigurationDiagnostics;
|
|
450
|
-
_runtimeLifecycleQueue = Promise.resolve();
|
|
451
|
-
_sandboxTransitionQueue = Promise.resolve();
|
|
452
|
-
_runtimeLifecycleContext = new AsyncLocalStorage();
|
|
453
|
-
_activities = new Set();
|
|
454
|
-
_activityGeneration = 0;
|
|
455
|
-
_activeCycle = false;
|
|
456
|
-
_settlementScheduled = false;
|
|
457
|
-
_settlementRunning = false;
|
|
458
|
-
_idleWaiters = new Set();
|
|
459
|
-
_barrierOwnerContext = new AsyncLocalStorage();
|
|
460
|
-
_sessionStartEvent;
|
|
461
|
-
_extensionUIContext;
|
|
462
|
-
_extensionCommandContextActions;
|
|
463
|
-
_extensionAbortHandler;
|
|
464
|
-
_extensionShutdownHandler;
|
|
465
|
-
_extensionErrorListener;
|
|
466
|
-
_extensionErrorUnsubscriber;
|
|
467
|
-
_loadedHooks;
|
|
468
|
-
_resolveHooks;
|
|
469
|
-
_hooksEnabled = true;
|
|
470
|
-
_onHookDiagnostic;
|
|
471
|
-
_hookExecutionListeners = new Set();
|
|
472
|
-
_hookExecutionActivityListeners = new Set();
|
|
473
|
-
_hookRunOptions;
|
|
474
|
-
_hookAbortController = new AbortController();
|
|
475
|
-
_hookSessionStartPromise;
|
|
476
|
-
_hookSessionStartTerminationReason;
|
|
477
|
-
_pendingHookSessionStartContext;
|
|
478
|
-
_hookSessionEnded = false;
|
|
479
|
-
_activePromptId;
|
|
480
|
-
_stopHookContinuations = 0;
|
|
481
|
-
_stopHookProgress;
|
|
482
|
-
_queuedPromptIds = new Map();
|
|
483
|
-
_toolStartedAt = new Map();
|
|
484
|
-
_preToolHookContext = new Map();
|
|
485
|
-
_compressionDetector;
|
|
486
|
-
_contextCompressionEnabledOverride;
|
|
487
|
-
_compressionDetectionEnabled = process.env.GRIP_CONTEXT_COMPRESSION_DETECTION === "1";
|
|
488
|
-
_agentRunEnding = false;
|
|
489
|
-
_waitingForDetectorAtRequest = false;
|
|
490
|
-
_pendingContextCompression;
|
|
491
|
-
_stateCompressionApplied = false;
|
|
492
|
-
// Model registry for API key resolution
|
|
493
|
-
_modelRegistry;
|
|
494
|
-
// Tool registry for extension getTools/setTools
|
|
495
|
-
_toolRegistry = new Map();
|
|
496
|
-
_toolDefinitions = new Map();
|
|
497
|
-
_sessionTools = new Map();
|
|
498
|
-
_sessionSkills = new Map();
|
|
499
|
-
_sessionRules = new Map();
|
|
500
|
-
_toolPromptSnippets = new Map();
|
|
501
|
-
_toolPromptGuidelines = new Map();
|
|
502
|
-
// Base system prompt (without extension appends) - used to apply fresh appends each turn
|
|
503
|
-
_baseSystemPrompt = "";
|
|
504
|
-
_baseSystemPromptOptions;
|
|
505
|
-
_systemPromptOverride;
|
|
506
392
|
constructor(config) {
|
|
393
|
+
this._eventListeners = [];
|
|
394
|
+
this._disposed = false;
|
|
395
|
+
/** Tracks pending steering messages for UI display. Removed when delivered. */
|
|
396
|
+
this._steeringMessages = [];
|
|
397
|
+
/** Tracks pending follow-up messages for UI display. Removed when delivered. */
|
|
398
|
+
this._followUpMessages = [];
|
|
399
|
+
/** Messages queued to be included with the next user prompt as context ("asides"). */
|
|
400
|
+
this._pendingNextTurnMessages = [];
|
|
401
|
+
this._compactionAbortController = undefined;
|
|
402
|
+
this._autoCompactionAbortController = undefined;
|
|
403
|
+
this._extensionCompactionQueue = [];
|
|
404
|
+
this._extensionCompactionTimer = undefined;
|
|
405
|
+
this._extensionCompactionRunning = false;
|
|
406
|
+
this._overflowRecoveryAttempted = false;
|
|
407
|
+
// Branch summarization state
|
|
408
|
+
this._branchSummaryAbortController = undefined;
|
|
409
|
+
// Retry state
|
|
410
|
+
this._retryAbortController = undefined;
|
|
411
|
+
this._retryAttempt = 0;
|
|
412
|
+
// Bash execution state
|
|
413
|
+
this._bashAbortControllers = new Set();
|
|
414
|
+
this._pendingBashMessages = [];
|
|
415
|
+
this._extensionLspOwnership = new WeakMap();
|
|
416
|
+
this._turnIndex = 0;
|
|
417
|
+
this._baseToolDefinitions = new Map();
|
|
418
|
+
this._retiredWorkspaceToolHosts = [];
|
|
419
|
+
this._runtimeLifecycleQueue = Promise.resolve();
|
|
420
|
+
this._sandboxTransitionQueue = Promise.resolve();
|
|
421
|
+
this._runtimeLifecycleContext = new AsyncLocalStorage();
|
|
422
|
+
this._activities = new Set();
|
|
423
|
+
this._activityGeneration = 0;
|
|
424
|
+
this._activeCycle = false;
|
|
425
|
+
this._settlementScheduled = false;
|
|
426
|
+
this._settlementRunning = false;
|
|
427
|
+
this._idleWaiters = new Set();
|
|
428
|
+
this._barrierOwnerContext = new AsyncLocalStorage();
|
|
429
|
+
this._hooksEnabled = true;
|
|
430
|
+
this._hookExecutionListeners = new Set();
|
|
431
|
+
this._hookExecutionActivityListeners = new Set();
|
|
432
|
+
this._hookAbortController = new AbortController();
|
|
433
|
+
this._hookSessionEnded = false;
|
|
434
|
+
this._stopHookContinuations = 0;
|
|
435
|
+
this._queuedPromptIds = new Map();
|
|
436
|
+
this._toolStartedAt = new Map();
|
|
437
|
+
this._preToolHookContext = new Map();
|
|
438
|
+
this._compressionDetectionEnabled = process.env.GRIP_CONTEXT_COMPRESSION_DETECTION === "1";
|
|
439
|
+
this._agentRunEnding = false;
|
|
440
|
+
this._waitingForDetectorAtRequest = false;
|
|
441
|
+
this._stateCompressionApplied = false;
|
|
442
|
+
// Tool registry for extension getTools/setTools
|
|
443
|
+
this._toolRegistry = new Map();
|
|
444
|
+
this._toolDefinitions = new Map();
|
|
445
|
+
this._sessionTools = new Map();
|
|
446
|
+
this._sessionSkills = new Map();
|
|
447
|
+
this._sessionRules = new Map();
|
|
448
|
+
this._toolPromptSnippets = new Map();
|
|
449
|
+
this._toolPromptGuidelines = new Map();
|
|
450
|
+
// Base system prompt (without extension appends) - used to apply fresh appends each turn
|
|
451
|
+
this._baseSystemPrompt = "";
|
|
452
|
+
// Track last assistant message for auto-compaction check
|
|
453
|
+
this._lastAssistantMessage = undefined;
|
|
454
|
+
/** Internal handler for agent events - shared by subscribe and reconnect */
|
|
455
|
+
this._handleAgentEvent = async (event) => {
|
|
456
|
+
if (event.type === "agent_start")
|
|
457
|
+
this._agentRunEnding = false;
|
|
458
|
+
// afterToolCall can be skipped when a prepared call is aborted. Never retain per-run tool state.
|
|
459
|
+
if (event.type === "agent_end") {
|
|
460
|
+
this._agentRunEnding = true;
|
|
461
|
+
this._toolStartedAt.clear();
|
|
462
|
+
this._preToolHookContext.clear();
|
|
463
|
+
this._pendingContextCompression = undefined;
|
|
464
|
+
}
|
|
465
|
+
this._consumeStartedQueuedMessage(event);
|
|
466
|
+
// Extensions observe the event before public session listeners.
|
|
467
|
+
await this._runAsyncBarrierCallback(`extension ${event.type} handler`, () => this._emitExtensionEvent(event));
|
|
468
|
+
this._emit(event.type === "agent_end" ? { ...event, willRetry: this._willRetryAfterAgentEnd(event) } : event);
|
|
469
|
+
if (event.type === "agent_end") {
|
|
470
|
+
const entries = this.session.getEntries();
|
|
471
|
+
const ledger = readUsageLedger(entries);
|
|
472
|
+
const lastEntry = entries.at(-1);
|
|
473
|
+
if (ledger.checkpointId && !(lastEntry?.type === "custom" && lastEntry.customType === USAGE_LEDGER_ENTRY_TYPE))
|
|
474
|
+
this.session.appendCustomEntry(USAGE_LEDGER_ENTRY_TYPE, ledger);
|
|
475
|
+
this._scheduleExtensionCompactions();
|
|
476
|
+
if (!this._disposed && this.compressionDetectionEnabled)
|
|
477
|
+
this._compressionDetector.check(this.getContextUsage()?.percent, this.agent.state.messages, this._buildCurrentAgentContext().systemPrompt, getCompressibleEntries(this.session, ""));
|
|
478
|
+
}
|
|
479
|
+
if (event.type === "message_end") {
|
|
480
|
+
this._persistCompletedMessage(event.message);
|
|
481
|
+
this._applyPendingContextCompression(event.message);
|
|
482
|
+
this._updateRetryStateAfterAssistantMessage(event.message);
|
|
483
|
+
}
|
|
484
|
+
};
|
|
507
485
|
this.agent = config.agent;
|
|
508
486
|
this.session = config.session;
|
|
509
487
|
this.settingsManager = config.settingsManager;
|
|
@@ -692,6 +670,26 @@ export class AgentSession {
|
|
|
692
670
|
async activateSandboxDaemon(options) {
|
|
693
671
|
return this._runActivity("sandbox daemon activation", () => this._enqueueSandboxTransition(() => this._activateSessionRemoteOperations(options.expectedCwd, (operations) => operations.configureRemote(options.url, { token: options.token, expectedCwd: options.expectedCwd }))));
|
|
694
672
|
}
|
|
673
|
+
/** Change only the connected sandbox's working directory, never the host session or mount. */
|
|
674
|
+
async changeSandboxWorkingDirectory(target) {
|
|
675
|
+
const operations = this._sandboxToolOperations;
|
|
676
|
+
const backend = operations?.getBackendInfo();
|
|
677
|
+
if (!operations || operations !== this._toolOperations || backend?.type !== "remote" || !backend.configured) {
|
|
678
|
+
throw new Error("No connected sandbox is active");
|
|
679
|
+
}
|
|
680
|
+
const paths = backend.workspace.pathFlavor === "windows" ? win32 : posix;
|
|
681
|
+
const candidate = paths.resolve(operations.cwd, target);
|
|
682
|
+
if (!isWithinSandboxMount(candidate, backend.workspace.root, backend.workspace.pathFlavor)) {
|
|
683
|
+
throw new Error(`Directory is outside the mounted workspace: ${target}`);
|
|
684
|
+
}
|
|
685
|
+
const directory = await operations.resolveWorkspaceDirectory(candidate);
|
|
686
|
+
if (!isWithinSandboxMount(directory, backend.workspace.root, backend.workspace.pathFlavor)) {
|
|
687
|
+
throw new Error(`Directory is outside the mounted workspace: ${target}`);
|
|
688
|
+
}
|
|
689
|
+
operations.cwd = directory;
|
|
690
|
+
this._refreshBaseSystemPrompt();
|
|
691
|
+
return directory;
|
|
692
|
+
}
|
|
695
693
|
async _activateSessionRemoteOperations(expectedCwd, configure) {
|
|
696
694
|
if (this._sandboxToolOperations)
|
|
697
695
|
throw new Error("A session sandbox backend is already active");
|
|
@@ -1538,8 +1536,6 @@ export class AgentSession {
|
|
|
1538
1536
|
followUp: [...this._followUpMessages],
|
|
1539
1537
|
});
|
|
1540
1538
|
}
|
|
1541
|
-
// Track last assistant message for auto-compaction check
|
|
1542
|
-
_lastAssistantMessage = undefined;
|
|
1543
1539
|
_consumeStartedQueuedMessage(event) {
|
|
1544
1540
|
if (event.type !== "message_start" || event.message.role !== "user")
|
|
1545
1541
|
return;
|
|
@@ -1665,37 +1661,6 @@ export class AgentSession {
|
|
|
1665
1661
|
});
|
|
1666
1662
|
this._retryAttempt = 0;
|
|
1667
1663
|
}
|
|
1668
|
-
/** Internal handler for agent events - shared by subscribe and reconnect */
|
|
1669
|
-
_handleAgentEvent = async (event) => {
|
|
1670
|
-
if (event.type === "agent_start")
|
|
1671
|
-
this._agentRunEnding = false;
|
|
1672
|
-
// afterToolCall can be skipped when a prepared call is aborted. Never retain per-run tool state.
|
|
1673
|
-
if (event.type === "agent_end") {
|
|
1674
|
-
this._agentRunEnding = true;
|
|
1675
|
-
this._toolStartedAt.clear();
|
|
1676
|
-
this._preToolHookContext.clear();
|
|
1677
|
-
this._pendingContextCompression = undefined;
|
|
1678
|
-
}
|
|
1679
|
-
this._consumeStartedQueuedMessage(event);
|
|
1680
|
-
// Extensions observe the event before public session listeners.
|
|
1681
|
-
await this._runAsyncBarrierCallback(`extension ${event.type} handler`, () => this._emitExtensionEvent(event));
|
|
1682
|
-
this._emit(event.type === "agent_end" ? { ...event, willRetry: this._willRetryAfterAgentEnd(event) } : event);
|
|
1683
|
-
if (event.type === "agent_end") {
|
|
1684
|
-
const entries = this.session.getEntries();
|
|
1685
|
-
const ledger = readUsageLedger(entries);
|
|
1686
|
-
const lastEntry = entries.at(-1);
|
|
1687
|
-
if (ledger.checkpointId && !(lastEntry?.type === "custom" && lastEntry.customType === USAGE_LEDGER_ENTRY_TYPE))
|
|
1688
|
-
this.session.appendCustomEntry(USAGE_LEDGER_ENTRY_TYPE, ledger);
|
|
1689
|
-
this._scheduleExtensionCompactions();
|
|
1690
|
-
if (!this._disposed && this.compressionDetectionEnabled)
|
|
1691
|
-
this._compressionDetector.check(this.getContextUsage()?.percent, this.agent.state.messages, this._buildCurrentAgentContext().systemPrompt, getCompressibleEntries(this.session, ""));
|
|
1692
|
-
}
|
|
1693
|
-
if (event.type === "message_end") {
|
|
1694
|
-
this._persistCompletedMessage(event.message);
|
|
1695
|
-
this._applyPendingContextCompression(event.message);
|
|
1696
|
-
this._updateRetryStateAfterAssistantMessage(event.message);
|
|
1697
|
-
}
|
|
1698
|
-
};
|
|
1699
1664
|
_willRetryAfterAgentEnd(event) {
|
|
1700
1665
|
const settings = this.settingsManager.getRetrySettings();
|
|
1701
1666
|
if (!settings.enabled || this._retryAttempt >= settings.maxRetries) {
|