@code-yeongyu/senpi 2026.9.9 → 2026.9.10
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 +82 -1
- package/README.md +2 -0
- package/dist/beta/omo-local-update-worker.js.map +1 -1
- package/dist/beta/omo-local-update.d.ts.map +1 -1
- package/dist/brand-dir-migration.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/auth-check.js.map +1 -1
- package/dist/cli/experimental/command.d.ts.map +1 -1
- package/dist/cli/grok-neo-gate.js.map +1 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/client/remote-session.d.ts.map +1 -1
- package/dist/client/remote-session.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -19
- package/dist/config.js.map +1 -1
- package/dist/core/agent-abort-provenance.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session.d.ts +46 -7
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +109 -6
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agent-settled-delivery.d.ts.map +1 -1
- package/dist/core/auth-providers.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/brand.js.map +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/lifecycle.d.ts.map +1 -1
- package/dist/core/compaction/stream-watchdog.d.ts.map +1 -1
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/credential-accounts.js.map +1 -1
- package/dist/core/credential-pool/classify.js.map +1 -1
- package/dist/core/credential-pool/failover.d.ts.map +1 -1
- package/dist/core/credential-pool/rotation-stream.js.map +1 -1
- package/dist/core/credential-pool/state-store.d.ts +2 -2
- package/dist/core/credential-pool/state-store.d.ts.map +1 -1
- package/dist/core/credential-pool/state-store.js.map +1 -1
- package/dist/core/dynamic-prompt/verification.d.ts.map +1 -1
- package/dist/core/edited-assistant-message.d.ts +24 -0
- package/dist/core/edited-assistant-message.d.ts.map +1 -0
- package/dist/core/edited-assistant-message.js +57 -0
- package/dist/core/edited-assistant-message.js.map +1 -0
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ask-user/extension.d.ts +3 -0
- package/dist/core/extensions/builtin/ask-user/extension.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/extension.js +47 -0
- package/dist/core/extensions/builtin/ask-user/extension.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/family.d.ts +8 -0
- package/dist/core/extensions/builtin/ask-user/family.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/family.js +6 -0
- package/dist/core/extensions/builtin/ask-user/family.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/format.d.ts +22 -0
- package/dist/core/extensions/builtin/ask-user/format.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/format.js +109 -0
- package/dist/core/extensions/builtin/ask-user/format.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/index.d.ts +4 -0
- package/dist/core/extensions/builtin/ask-user/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/index.js +4 -0
- package/dist/core/extensions/builtin/ask-user/index.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/params.d.ts +27 -0
- package/dist/core/extensions/builtin/ask-user/params.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/params.js +78 -0
- package/dist/core/extensions/builtin/ask-user/params.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/pending.d.ts +58 -0
- package/dist/core/extensions/builtin/ask-user/pending.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/pending.js +130 -0
- package/dist/core/extensions/builtin/ask-user/pending.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/registry.d.ts +21 -0
- package/dist/core/extensions/builtin/ask-user/registry.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/registry.js +20 -0
- package/dist/core/extensions/builtin/ask-user/registry.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/render.d.ts +4 -0
- package/dist/core/extensions/builtin/ask-user/render.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/render.js +25 -0
- package/dist/core/extensions/builtin/ask-user/render.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/resume.d.ts +4 -0
- package/dist/core/extensions/builtin/ask-user/resume.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/resume.js +85 -0
- package/dist/core/extensions/builtin/ask-user/resume.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/schema.d.ts +40 -0
- package/dist/core/extensions/builtin/ask-user/schema.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/schema.js +102 -0
- package/dist/core/extensions/builtin/ask-user/schema.js.map +1 -0
- package/dist/core/extensions/builtin/ask-user/tool.d.ts +8 -0
- package/dist/core/extensions/builtin/ask-user/tool.d.ts.map +1 -0
- package/dist/core/extensions/builtin/ask-user/tool.js +195 -0
- package/dist/core/extensions/builtin/ask-user/tool.js.map +1 -0
- package/dist/core/extensions/builtin/bash-timeout/timeout.js.map +1 -1
- package/dist/core/extensions/builtin/btw/panel.d.ts.map +1 -1
- package/dist/core/extensions/builtin/btw/side-query.js.map +1 -1
- package/dist/core/extensions/builtin/cache-keepalive/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cache-keepalive/index.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/account-command.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/account-management.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/accounts.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/accounts.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/affinity.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/affinity.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/availability.d.ts +11 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/availability.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/availability.js +12 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/availability.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/bounded-queue.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/custom-tools.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable-path-lookup.d.ts +14 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable-path-lookup.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable-path-lookup.js +42 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable-path-lookup.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.d.ts +18 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.js +105 -36
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/failover.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/refusal.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-commit-boundary.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-reaper.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js +4 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream-protocol.d.ts +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/tool-watch.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/tools.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/context-reduction.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/deterministic-fallback.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/lane-policy.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/model-usability-budget.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote-convert.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/openai-remote.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/overflow-retry.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/resume-admission.d.ts +7 -0
- package/dist/core/extensions/builtin/compaction/resume-admission.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/resume-admission.js +7 -0
- package/dist/core/extensions/builtin/compaction/resume-admission.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/resume-slice.d.ts +23 -0
- package/dist/core/extensions/builtin/compaction/resume-slice.d.ts.map +1 -0
- package/dist/core/extensions/builtin/compaction/resume-slice.js +99 -0
- package/dist/core/extensions/builtin/compaction/resume-slice.js.map +1 -0
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/summarization-retry.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/index.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/log.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/protocol.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/reload-deferral.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/watch-engine.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/watch-event-source.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/account-command.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/accounts.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/affinity.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/affinity.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/diagnostics.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/diagnostics.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/executable.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/executable.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/failover.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/session-router.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/session-router.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream-parser.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream-parser.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/transport.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/cache-warm-renderer.js.map +1 -1
- package/dist/core/extensions/builtin/goal/command-registration.js.map +1 -1
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/elapsed-ticker.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.js +57 -4
- package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/persistence.js.map +1 -1
- package/dist/core/extensions/builtin/goal/prompt.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/prompt.js +9 -6
- package/dist/core/extensions/builtin/goal/prompt.js.map +1 -1
- package/dist/core/extensions/builtin/goal/store.js.map +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.js +1 -1
- package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -1
- package/dist/core/extensions/builtin/goal/turn-usage.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/ui.js.map +1 -1
- package/dist/core/extensions/builtin/goal/wait-progress.js.map +1 -1
- package/dist/core/extensions/builtin/goal/wait-ticker.d.ts.map +1 -1
- package/dist/core/extensions/builtin/gpt-account.d.ts.map +1 -1
- package/dist/core/extensions/builtin/gpt-account.js +1 -0
- package/dist/core/extensions/builtin/gpt-account.js.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/apply.js.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/extension.d.ts.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/preview-format.js.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/preview.js.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/streaming-parser.d.ts.map +1 -1
- package/dist/core/extensions/builtin/gpt-apply-patch/tool.js.map +1 -1
- package/dist/core/extensions/builtin/help/panel.d.ts.map +1 -1
- package/dist/core/extensions/builtin/history-search/index.js.map +1 -1
- package/dist/core/extensions/builtin/history-search/overlay.d.ts.map +1 -1
- package/dist/core/extensions/builtin/hooks/command-runner.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/dispatcher.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/plugin-loader.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/tool-adapter.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/trust-storage.d.ts.map +1 -1
- package/dist/core/extensions/builtin/hooks/trust.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/imagegen/index.js.map +1 -1
- package/dist/core/extensions/builtin/imagegen/params.d.ts +45 -0
- package/dist/core/extensions/builtin/imagegen/params.d.ts.map +1 -0
- package/dist/core/extensions/builtin/imagegen/params.js +81 -0
- package/dist/core/extensions/builtin/imagegen/params.js.map +1 -0
- package/dist/core/extensions/builtin/imagegen/paths.d.ts +10 -4
- package/dist/core/extensions/builtin/imagegen/paths.d.ts.map +1 -1
- package/dist/core/extensions/builtin/imagegen/paths.js +43 -10
- package/dist/core/extensions/builtin/imagegen/paths.js.map +1 -1
- package/dist/core/extensions/builtin/imagegen/reference-images.d.ts +20 -0
- package/dist/core/extensions/builtin/imagegen/reference-images.d.ts.map +1 -0
- package/dist/core/extensions/builtin/imagegen/reference-images.js +70 -0
- package/dist/core/extensions/builtin/imagegen/reference-images.js.map +1 -0
- package/dist/core/extensions/builtin/imagegen/skill/SKILL.md +58 -33
- package/dist/core/extensions/builtin/imagegen/tool.d.ts +15 -19
- package/dist/core/extensions/builtin/imagegen/tool.d.ts.map +1 -1
- package/dist/core/extensions/builtin/imagegen/tool.js +74 -52
- package/dist/core/extensions/builtin/imagegen/tool.js.map +1 -1
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +2 -0
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/look-at/model-selector.d.ts.map +1 -1
- package/dist/core/extensions/builtin/look-at/runner.js.map +1 -1
- package/dist/core/extensions/builtin/loop/command.js.map +1 -1
- package/dist/core/extensions/builtin/loop/cron-planner.js.map +1 -1
- package/dist/core/extensions/builtin/loop/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop/index.js.map +1 -1
- package/dist/core/extensions/builtin/loop/loopfile.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop/scheduler.js.map +1 -1
- package/dist/core/extensions/builtin/loop/status.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop/store.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/detectors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/escalation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/escalation.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/index.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/notice.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/renderer.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/tracker.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/active-set.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/callback.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/oauth-errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/oauth-errors.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/oauth-provider.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/oauth-refresh.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/oauth-refresh.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/oauth.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/auth/token-store.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/catalog.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/config-schema.d.ts +28 -28
- package/dist/core/extensions/builtin/mcp/config.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/connection.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/elicitation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/elicitation.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/errors.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/expose/register.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/expose/session.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/guard/output-guard.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/guard/output-guard.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/log.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/reconnect.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/service-register.js.map +1 -1
- package/dist/core/extensions/builtin/mcp/service.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/service.js.map +1 -1
- package/dist/core/extensions/builtin/nested-agents-md/core/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/nested-agents-md/core/injection-cache.d.ts.map +1 -1
- package/dist/core/extensions/builtin/nested-agents-md/core/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/oauth-login-interaction.d.ts +13 -6
- package/dist/core/extensions/builtin/oauth-login-interaction.d.ts.map +1 -1
- package/dist/core/extensions/builtin/oauth-login-interaction.js +43 -19
- package/dist/core/extensions/builtin/oauth-login-interaction.js.map +1 -1
- package/dist/core/extensions/builtin/openai-image-gen/inject.d.ts +5 -3
- package/dist/core/extensions/builtin/openai-image-gen/inject.d.ts.map +1 -1
- package/dist/core/extensions/builtin/openai-image-gen/inject.js +7 -4
- package/dist/core/extensions/builtin/openai-image-gen/inject.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/arity.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/parsers.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/prompt.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/service.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/service.js.map +1 -1
- package/dist/core/extensions/builtin/permission-system/types.d.ts.map +1 -1
- package/dist/core/extensions/builtin/permission-system/wildcard.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/claude-fable-5-1.js +1 -1
- package/dist/core/extensions/builtin/prompt-preset/claude-fable-5-1.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js +1 -1
- package/dist/core/extensions/builtin/prompt-preset/claude-fable-5.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-5.js +1 -1
- package/dist/core/extensions/builtin/prompt-preset/claude-opus-5.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/execution-tooling.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/glm-5.d.ts +1 -1
- package/dist/core/extensions/builtin/prompt-preset/glm-5.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/glm-5.js +1 -1
- package/dist/core/extensions/builtin/prompt-preset/glm-5.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +1 -1
- package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.d.ts +4 -4
- package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.js +4 -4
- package/dist/core/extensions/builtin/prompt-preset/gpt-6-astra.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js +1 -1
- package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
- package/dist/core/extensions/builtin/rule-activation/renderer.js.map +1 -1
- package/dist/core/extensions/builtin/rules/commands.js.map +1 -1
- package/dist/core/extensions/builtin/rules/config.js.map +1 -1
- package/dist/core/extensions/builtin/rules/rules/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/rules/rules/project-root.js.map +1 -1
- package/dist/core/extensions/builtin/rules/ui/dynamic-border.d.ts.map +1 -1
- package/dist/core/extensions/builtin/rules/ui/rules-banner.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/extension.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/manager.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/manager.js.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/monitor-status-ticker.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/notify.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/restore.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/runtime-session.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/session-bundle.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/terminal-manifest.d.ts.map +1 -1
- package/dist/core/extensions/builtin/terminal/tools/render.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/normalize.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/todo-operations.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/todo-widget-component.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/todo-widget-component.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/tools/todo.js.map +1 -1
- package/dist/core/extensions/builtin/tool-search/native-search.d.ts.map +1 -1
- package/dist/core/extensions/builtin/tool-search/service.d.ts.map +1 -1
- package/dist/core/extensions/builtin/tool-search/service.js.map +1 -1
- package/dist/core/extensions/builtin/ttsr/detectors/leak-context.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ttsr/detectors/token-grammar.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ttsr/manager.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ttsr/message-update.js.map +1 -1
- package/dist/core/extensions/builtin/ttsr/repetitive-turns-lane.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ttsr/stream-utils.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ttsr/watch.d.ts.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/errors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/webfetch/webfetch/tool.d.ts +1 -1
- package/dist/core/extensions/builtin/websearch/websearch/native.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +2 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +17 -8
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/notice/box.d.ts.map +1 -1
- package/dist/core/extensions/notice/box.js +13 -5
- package/dist/core/extensions/notice/box.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +11 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +23 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +76 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.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/keybindings.d.ts +182 -177
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +5 -0
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lockfile-policy.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-config-schema.d.ts +150 -150
- package/dist/core/model-config-schema.d.ts.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- 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 +1 -0
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +1 -0
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts +2 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +11 -7
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/retry-fallback/controller.d.ts.map +1 -1
- package/dist/core/retry-fallback/cooldown.d.ts.map +1 -1
- package/dist/core/retry-fallback/cooldown.js.map +1 -1
- package/dist/core/retry-fallback/expansion.js.map +1 -1
- package/dist/core/retry-fallback/log.js.map +1 -1
- package/dist/core/retry-fallback/probe-scheduler.d.ts.map +1 -1
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +24 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-activity.d.ts.map +1 -1
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-log.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-resident-store.d.ts.map +1 -1
- package/dist/core/session-sidecar-store.d.ts.map +1 -1
- package/dist/core/session-summary-lru.d.ts.map +1 -1
- package/dist/core/session-work-barrier.d.ts.map +1 -1
- package/dist/core/settings-manager.d.ts +6 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +14 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-shapes.d.ts +7 -0
- package/dist/core/settings-shapes.d.ts.map +1 -1
- package/dist/core/settings-shapes.js +3 -1
- package/dist/core/settings-shapes.js.map +1 -1
- package/dist/core/telemetry.js.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/bounded-realpath.js.map +1 -1
- package/dist/core/tools/edit.d.ts.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/ls.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/powershell.d.ts.map +1 -1
- package/dist/core/tools/read-classifiers.d.ts +17 -0
- package/dist/core/tools/read-classifiers.d.ts.map +1 -0
- package/dist/core/tools/read-classifiers.js +26 -0
- package/dist/core/tools/read-classifiers.js.map +1 -0
- package/dist/core/tools/read.d.ts +5 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +21 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/tail-window.d.ts.map +1 -1
- package/dist/core/tools/truncate.js.map +1 -1
- package/dist/core/tools/write-result.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/extensions/llama/client.d.ts.map +1 -1
- package/dist/extensions/llama/client.js.map +1 -1
- package/dist/extensions/llama/huggingface.d.ts.map +1 -1
- package/dist/extensions/llama/huggingface.js.map +1 -1
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/from-source-config-guard.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +4 -0
- package/dist/main.js.map +1 -1
- package/dist/modes/app-server/daemon/occupancy.d.ts.map +1 -1
- package/dist/modes/app-server/daemon/process.d.ts.map +1 -1
- package/dist/modes/app-server/daemon/process.js.map +1 -1
- package/dist/modes/app-server/daemon.js.map +1 -1
- package/dist/modes/app-server/protocol/collaboration-mode.d.ts.map +1 -1
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputAnswer.d.ts +7 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputAnswer.d.ts.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputAnswer.js +4 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputAnswer.js.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputOption.d.ts +8 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputOption.d.ts.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputOption.js +4 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputOption.js.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputParams.d.ts +12 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputParams.d.ts.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputParams.js +4 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputParams.js.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputQuestion.d.ts +13 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputQuestion.d.ts.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputQuestion.js +4 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputQuestion.js.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputResponse.d.ts +10 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputResponse.d.ts.map +1 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputResponse.js +4 -0
- package/dist/modes/app-server/protocol/generated/v2/ToolRequestUserInputResponse.js.map +1 -0
- package/dist/modes/app-server/protocol/index.d.ts +2 -0
- package/dist/modes/app-server/protocol/index.d.ts.map +1 -1
- package/dist/modes/app-server/protocol/index.js.map +1 -1
- package/dist/modes/app-server/protocol/methods.d.ts +1 -0
- package/dist/modes/app-server/protocol/methods.d.ts.map +1 -1
- package/dist/modes/app-server/protocol/methods.js +1 -0
- package/dist/modes/app-server/protocol/methods.js.map +1 -1
- package/dist/modes/app-server/rpc/errors.d.ts.map +1 -1
- package/dist/modes/app-server/runtime.d.ts.map +1 -1
- package/dist/modes/app-server/runtime.js +22 -6
- package/dist/modes/app-server/runtime.js.map +1 -1
- package/dist/modes/app-server/search/fuzzy-files.js.map +1 -1
- package/dist/modes/app-server/search/fuzzy-search-service.d.ts.map +1 -1
- package/dist/modes/app-server/server/account.js.map +1 -1
- package/dist/modes/app-server/server/approval-bridge.d.ts.map +1 -1
- package/dist/modes/app-server/server/approval-types.d.ts.map +1 -1
- package/dist/modes/app-server/server/approval-ui-context.d.ts +2 -1
- package/dist/modes/app-server/server/approval-ui-context.d.ts.map +1 -1
- package/dist/modes/app-server/server/approval-ui-context.js +9 -1
- package/dist/modes/app-server/server/approval-ui-context.js.map +1 -1
- package/dist/modes/app-server/server/catalogs.js.map +1 -1
- package/dist/modes/app-server/server/config.js.map +1 -1
- package/dist/modes/app-server/server/connection.d.ts.map +1 -1
- package/dist/modes/app-server/server/models.js.map +1 -1
- package/dist/modes/app-server/server/notifications.d.ts.map +1 -1
- package/dist/modes/app-server/server/notifications.js.map +1 -1
- package/dist/modes/app-server/server/server-core.d.ts.map +1 -1
- package/dist/modes/app-server/server/server-core.js.map +1 -1
- package/dist/modes/app-server/server/skills.js.map +1 -1
- package/dist/modes/app-server/server/user-input-bridge.d.ts +16 -0
- package/dist/modes/app-server/server/user-input-bridge.d.ts.map +1 -0
- package/dist/modes/app-server/server/user-input-bridge.js +142 -0
- package/dist/modes/app-server/server/user-input-bridge.js.map +1 -0
- package/dist/modes/app-server/server/user-input-types.d.ts +43 -0
- package/dist/modes/app-server/server/user-input-types.d.ts.map +1 -0
- package/dist/modes/app-server/server/user-input-types.js +51 -0
- package/dist/modes/app-server/server/user-input-types.js.map +1 -0
- package/dist/modes/app-server/threads/archive-state.d.ts.map +1 -1
- package/dist/modes/app-server/threads/handlers.js.map +1 -1
- package/dist/modes/app-server/threads/mcp-wire-status.d.ts.map +1 -1
- package/dist/modes/app-server/threads/metadata-state.d.ts.map +1 -1
- package/dist/modes/app-server/threads/projection-file-changes.js.map +1 -1
- package/dist/modes/app-server/threads/projection-message-items.d.ts.map +1 -1
- package/dist/modes/app-server/threads/projection-turn-diff.d.ts.map +1 -1
- package/dist/modes/app-server/threads/projection-web-search.js.map +1 -1
- package/dist/modes/app-server/threads/projection.d.ts.map +1 -1
- package/dist/modes/app-server/threads/registry.d.ts.map +1 -1
- package/dist/modes/app-server/threads/registry.js.map +1 -1
- package/dist/modes/app-server/threads/search-cache.d.ts.map +1 -1
- package/dist/modes/app-server/threads/turn-log.d.ts.map +1 -1
- package/dist/modes/app-server/threads/turn-runtime.d.ts.map +1 -1
- package/dist/modes/app-server/threads/turn-runtime.js.map +1 -1
- package/dist/modes/app-server/threads/turns.js.map +1 -1
- package/dist/modes/app-server/threads/wire-thread.js.map +1 -1
- package/dist/modes/app-server/transports/unix-socket.d.ts.map +1 -1
- package/dist/modes/app-server/transports/unix-socket.js.map +1 -1
- package/dist/modes/app-server/transports/websocket.d.ts.map +1 -1
- package/dist/modes/app-server/turn-adapter.d.ts +3 -3
- package/dist/modes/app-server/turn-adapter.d.ts.map +1 -1
- package/dist/modes/app-server/turn-adapter.js +36 -5
- package/dist/modes/app-server/turn-adapter.js.map +1 -1
- package/dist/modes/interactive/compaction-queue-transfer.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/ask-user-async-widget.d.ts +39 -0
- package/dist/modes/interactive/components/ask-user-async-widget.d.ts.map +1 -0
- package/dist/modes/interactive/components/ask-user-async-widget.js +82 -0
- package/dist/modes/interactive/components/ask-user-async-widget.js.map +1 -0
- package/dist/modes/interactive/components/ask-user-question-keys.d.ts +21 -0
- package/dist/modes/interactive/components/ask-user-question-keys.d.ts.map +1 -0
- package/dist/modes/interactive/components/ask-user-question-keys.js +115 -0
- package/dist/modes/interactive/components/ask-user-question-keys.js.map +1 -0
- package/dist/modes/interactive/components/ask-user-question-render.d.ts +17 -0
- package/dist/modes/interactive/components/ask-user-question-render.d.ts.map +1 -0
- package/dist/modes/interactive/components/ask-user-question-render.js +75 -0
- package/dist/modes/interactive/components/ask-user-question-render.js.map +1 -0
- package/dist/modes/interactive/components/ask-user-question-state.d.ts +52 -0
- package/dist/modes/interactive/components/ask-user-question-state.d.ts.map +1 -0
- package/dist/modes/interactive/components/ask-user-question-state.js +134 -0
- package/dist/modes/interactive/components/ask-user-question-state.js.map +1 -0
- package/dist/modes/interactive/components/ask-user-question.d.ts +50 -0
- package/dist/modes/interactive/components/ask-user-question.d.ts.map +1 -0
- package/dist/modes/interactive/components/ask-user-question.js +148 -0
- package/dist/modes/interactive/components/ask-user-question.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/assistant-render-descriptors.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.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.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.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/continuity-notice.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.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.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/favorite-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.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.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/progressive-transcript-container.d.ts.map +1 -1
- package/dist/modes/interactive/components/render-signature.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.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/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/shortcut-overlay.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.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.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution-images.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-renderer-boundary.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +4 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +17 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/grok/chrome.d.ts.map +1 -1
- package/dist/modes/interactive/grok/footer.d.ts.map +1 -1
- package/dist/modes/interactive/grok/input-card.d.ts.map +1 -1
- package/dist/modes/interactive/grok/palette.d.ts.map +1 -1
- package/dist/modes/interactive/grok/tool-row.d.ts.map +1 -1
- package/dist/modes/interactive/grok/welcome-card.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-host-runtime.d.ts +6 -0
- package/dist/modes/interactive/interactive-host-runtime.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-host-runtime.js +32 -3
- package/dist/modes/interactive/interactive-host-runtime.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +35 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +413 -100
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/login-outcome.d.ts +20 -0
- package/dist/modes/interactive/login-outcome.d.ts.map +1 -0
- package/dist/modes/interactive/login-outcome.js +35 -0
- package/dist/modes/interactive/login-outcome.js.map +1 -0
- package/dist/modes/interactive/startup-tools.js.map +1 -1
- package/dist/modes/interactive/streaming-reveal-content.d.ts.map +1 -1
- package/dist/modes/interactive/streaming-reveal-content.js.map +1 -1
- package/dist/modes/interactive/streaming-reveal.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/interactive/tips/catalog/input-tips.d.ts +7 -7
- package/dist/modes/interactive/tips/catalog/input-tips.d.ts.map +1 -1
- package/dist/modes/interactive/tips/catalog/input-tips.js +5 -0
- package/dist/modes/interactive/tips/catalog/input-tips.js.map +1 -1
- package/dist/modes/interactive/tips/catalog/model-tips.d.ts +1 -1
- package/dist/modes/interactive/tips/catalog/workspace-tips.d.ts +1 -1
- package/dist/modes/interactive/tips/scheduler.js.map +1 -1
- package/dist/modes/interactive/tips/working-tip.d.ts.map +1 -1
- package/dist/modes/interactive/tool-args-reveal.d.ts.map +1 -1
- package/dist/modes/interactive/tool-result-reveal.d.ts.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +8 -0
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/provider-native-rendering.d.ts.map +1 -1
- package/dist/modes/provider-native-rendering.js +35 -0
- package/dist/modes/provider-native-rendering.js.map +1 -1
- package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
- package/dist/modes/rpc/connection-handler.js +72 -1
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/dist/modes/rpc/connection-question-bridge.d.ts +18 -0
- package/dist/modes/rpc/connection-question-bridge.d.ts.map +1 -0
- package/dist/modes/rpc/connection-question-bridge.js +156 -0
- package/dist/modes/rpc/connection-question-bridge.js.map +1 -0
- package/dist/modes/rpc/custom-capability.d.ts +2 -0
- package/dist/modes/rpc/custom-capability.d.ts.map +1 -1
- package/dist/modes/rpc/custom-capability.js +2 -0
- package/dist/modes/rpc/custom-capability.js.map +1 -1
- package/dist/modes/rpc/event-output-buffer.js.map +1 -1
- package/dist/modes/rpc/host-ensure.js.map +1 -1
- package/dist/modes/rpc/host-lifecycle.d.ts.map +1 -1
- package/dist/modes/rpc/host-lifecycle.js.map +1 -1
- package/dist/modes/rpc/host-watchdog.js.map +1 -1
- package/dist/modes/rpc/jsonl.js.map +1 -1
- package/dist/modes/rpc/multi-session-host.js.map +1 -1
- package/dist/modes/rpc/ownership-safe-lock.d.ts.map +1 -1
- package/dist/modes/rpc/ownership-safe-lock.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +20 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +35 -3
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-input-validation.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +103 -3
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js +6 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modes/rpc/session-binding.js.map +1 -1
- package/dist/modes/rpc/session-command-router.d.ts +4 -4
- package/dist/modes/rpc/session-command-router.d.ts.map +1 -1
- package/dist/modes/rpc/session-command-router.js +14 -8
- package/dist/modes/rpc/session-command-router.js.map +1 -1
- package/dist/modes/rpc/session-event-fanout.d.ts +2 -0
- package/dist/modes/rpc/session-event-fanout.d.ts.map +1 -1
- package/dist/modes/rpc/session-event-fanout.js +25 -1
- package/dist/modes/rpc/session-event-fanout.js.map +1 -1
- package/dist/modes/rpc/session-event-writer.d.ts +7 -1
- package/dist/modes/rpc/session-event-writer.d.ts.map +1 -1
- package/dist/modes/rpc/session-event-writer.js +17 -4
- package/dist/modes/rpc/session-event-writer.js.map +1 -1
- package/dist/modes/rpc/session-extension-ui-requests.d.ts.map +1 -1
- package/dist/modes/rpc/session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/session-registry.js +11 -1
- package/dist/modes/rpc/session-registry.js.map +1 -1
- package/dist/modes/rpc/session-worker-client.d.ts.map +1 -1
- package/dist/modes/rpc/session-worker-client.js.map +1 -1
- package/dist/modes/rpc/session-worker-protocol.d.ts.map +1 -1
- package/dist/modes/rpc/session-worker-requests.d.ts.map +1 -1
- package/dist/modes/rpc/session-worker-requests.js +1 -1
- package/dist/modes/rpc/session-worker-requests.js.map +1 -1
- package/dist/modes/rpc/session-worker.js +10 -2
- package/dist/modes/rpc/session-worker.js.map +1 -1
- package/dist/modes/rpc/socket-event-fanout.d.ts +14 -1
- package/dist/modes/rpc/socket-event-fanout.d.ts.map +1 -1
- package/dist/modes/rpc/socket-event-fanout.js +48 -2
- package/dist/modes/rpc/socket-event-fanout.js.map +1 -1
- package/dist/modes/rpc/socket-ownership.js.map +1 -1
- package/dist/modes/rpc/worker-session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/worker-session-registry.js +2 -1
- package/dist/modes/rpc/worker-session-registry.js.map +1 -1
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/self-update-bootstrap.js.map +1 -1
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.js.map +1 -1
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/photon.js.map +1 -1
- package/dist/utils/pi-user-agent.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/version-check.js.map +1 -1
- package/docs/app-server.md +14 -0
- package/docs/extensions.md +28 -1
- package/docs/keybindings.md +1 -0
- package/docs/providers.md +1 -0
- package/docs/rpc.md +95 -3
- package/docs/settings.md +18 -0
- package/docs/skills.md +1 -1
- package/docs/tui.md +6 -0
- package/docs/usage.md +2 -1
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/README.md +17 -2
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
- package/node_modules/@code-yeongyu/senpi-codemode/src/config/settings.ts +35 -15
- package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +13 -2
- package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt-template.ts +76 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +6 -77
- package/node_modules/@code-yeongyu/senpi-codemode/src/timeouts/run-budget.ts +107 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-deadlines.ts +76 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-execution.ts +25 -14
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-contract.ts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-manager.ts +47 -40
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-notification.ts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-snapshot.ts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool-options.ts +8 -3
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +17 -187
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/run-eval-cell.ts +189 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/types.ts +66 -56
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/events.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/result.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/repo.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/repo.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/telemetry.d.ts +36 -36
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/telemetry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/search/scanning.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +5 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +4 -4
- package/node_modules/@earendil-works/pi-ai/README.md +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts +3 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +6 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/context-room.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/stream-retry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.lazy.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-conversation-rotation.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +5 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-edit.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-edit.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-edit.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-edit.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-params.d.ts +60 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-params.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-params.js +93 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-params.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-result.d.ts +12 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-result.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-result.js +96 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images-result.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images.d.ts +3 -6
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images.js +26 -119
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-images.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/transform-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/warm-prompt-cache.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/credential-store.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/load.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/load.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openai-codex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth-refresh.d.ts +47 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth-refresh.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth-refresh.js +126 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth-refresh.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/refresh-credential.d.ts +12 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/refresh-credential.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/refresh-credential.js +44 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/refresh-credential.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +26 -35
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/compat.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor/model-capabilities.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +99 -66
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +34 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/images.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models-store.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +3 -28
- package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/node/provider-scope.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/all.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/venice.json +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/ollama.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/radius.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.js +15 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.models.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.models.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.models.js +6 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/venice.models.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/context-transformer.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/recovery-wrapper-state.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/parse.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-content-lifecycle.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-event-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-native-projection.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-native-projection.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-stream-terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-stream-wrapper.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-text-projection.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-text-projection.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-thinking-projection.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/stream-wrapper.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +20 -3
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/deferred-tools.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts +3 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +3 -3
- package/node_modules/@earendil-works/pi-pty/dist/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/pipe-fallback.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/pipe-fallback.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/registry-types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/screen.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/screen.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/session-bun.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/session.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/package.json +2 -2
- package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/alt-screen-search.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/image.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/latex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/stack.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/stack.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keys.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keys.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/kill-ring.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/mux.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/native-module-path.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/stdin-buffer.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-capabilities.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tmux-image-probe.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-main-screen.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/undo-stack.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +2 -2
- package/node_modules/css-tree/cjs/data-patch.cjs +853 -5
- package/node_modules/css-tree/cjs/data.cjs +13598 -3
- package/node_modules/css-tree/cjs/version.cjs +1 -3
- package/node_modules/css-tree/lib/data-patch.js +853 -4
- package/node_modules/css-tree/lib/data.js +13598 -5
- package/node_modules/css-tree/lib/version.js +1 -5
- package/package.json +8 -8
- package/vendor/pi-client/client.d.ts.map +1 -1
- package/vendor/pi-client/client.js.map +1 -1
- package/vendor/pi-client/connection.d.ts.map +1 -1
- package/vendor/pi-client/connection.js.map +1 -1
- package/vendor/pi-client/errors.d.ts.map +1 -1
- package/vendor/pi-client/session-handle.d.ts.map +1 -1
- package/vendor/pi-client/state.d.ts.map +1 -1
- package/vendor/pi-protocol/cbor/decoder.js.map +1 -1
- package/vendor/pi-protocol/cbor/options.d.ts.map +1 -1
- package/vendor/pi-protocol/codec.d.ts.map +1 -1
- package/vendor/pi-protocol/codec.js.map +1 -1
- package/vendor/pi-protocol/framing.d.ts.map +1 -1
- package/vendor/pi-protocol/schemas.d.ts +678 -678
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-host-runtime.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-host-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { rm } from \"node:fs/promises\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { AgentSession, AgentSessionEvent, AgentSessionEventListener } from \"../../core/agent-session.ts\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.ts\";\nimport type { AgentSessionRuntimeDiagnostic } from \"../../core/agent-session-services.ts\";\nimport { executeBashWithOperations } from \"../../core/bash-executor.ts\";\nimport type { ProjectTrustContext, ReplacedSessionContext } from \"../../core/extensions/index.ts\";\nimport { SessionManager } from \"../../core/session-manager.ts\";\nimport { SettingsManager } from \"../../core/settings-manager.ts\";\nimport type { BashOperations } from \"../../core/tools/bash.ts\";\nimport { type EnsuredHost, ensureHost } from \"../rpc/host-ensure.ts\";\nimport { isTransportGoneError, RpcClient, type RpcClientEvent } from \"../rpc/rpc-client.ts\";\n\nexport const INTERACTIVE_HOST_FALLBACK_WARNING = \"Warning: shared interactive host unavailable; continuing locally\";\nexport const INTERACTIVE_HOST_RECONNECTING_WARNING = \"Warning: shared interactive host connection lost; reconnecting\";\n\nexport interface InteractiveHostWarning {\n\treadonly type: \"interactive_host_fallback\" | \"interactive_host_action_failed\";\n\treadonly message: string;\n\treadonly cause: unknown;\n}\n\n/**\n * The session contract InteractiveMode actually runs against. The local\n * AgentSession answers these reads synchronously; the shared-host proxy answers\n * them over RPC. Declaring the union here keeps the proxy honest (no more\n * `as unknown as` lie at the boundary) and lets the compiler find every TUI\n * call site that must await.\n */\nexport type InteractiveSession = Omit<\n\tAgentSession,\n\t\"cycleThinkingLevel\" | \"getAvailableThinkingLevels\" | \"getSessionStats\" | \"getUserMessagesForForking\"\n> & {\n\tcycleThinkingLevel(): ThinkingLevel | undefined | Promise<ThinkingLevel | undefined>;\n\tgetAvailableThinkingLevels(): ThinkingLevel[] | Promise<ThinkingLevel[]>;\n\tgetSessionStats():\n\t\t| ReturnType<AgentSession[\"getSessionStats\"]>\n\t\t| Promise<ReturnType<AgentSession[\"getSessionStats\"]>>;\n\tgetUserMessagesForForking():\n\t\t| ReturnType<AgentSession[\"getUserMessagesForForking\"]>\n\t\t| Promise<ReturnType<AgentSession[\"getUserMessagesForForking\"]>>;\n};\n\nexport type InteractiveHostUiHandler = (\n\trequest: import(\"../rpc/rpc-types.ts\").RpcExtensionUIRequest,\n) =>\n\t| Promise<import(\"../rpc/rpc-types.ts\").RpcExtensionUIResponse | undefined>\n\t| import(\"../rpc/rpc-types.ts\").RpcExtensionUIResponse\n\t| undefined;\n\nexport interface InteractiveHostRuntimeOptions {\n\treadonly socket: string;\n\treadonly agentDir?: string;\n\treadonly ensureHost?: (options: { socket: string; agentDir?: string }) => Promise<EnsuredHost | undefined>;\n\tonWarning?: (warning: InteractiveHostWarning) => void;\n}\n\n/**\n * Replace only the transport-facing session operations. The object returned is\n * deliberately still an AgentSessionRuntime: InteractiveMode and extensions\n * retain their existing runtime seam, while the authoritative prompt/session\n * state is hosted by the shared RPC process.\n */\nexport async function createInteractiveHostRuntime(\n\tlocalRuntime: AgentSessionRuntime,\n\toptions: InteractiveHostRuntimeOptions,\n): Promise<AgentSessionRuntime> {\n\tconst sessionPath = localRuntime.session.sessionFile;\n\tif (!sessionPath) return localRuntime;\n\tconst startHost = options.ensureHost ?? ((hostOptions) => ensureHost(hostOptions));\n\tlet remoteSession: RemoteSessionProxy | undefined;\n\tlet remoteRuntime: RemoteInteractiveRuntime | undefined;\n\tlet reconnecting: Promise<void> | undefined;\n\tlet disconnectQueued = false;\n\tlet disposed = false;\n\tlet fallbackWarned = false;\n\tlet reconnectWarningShown = false;\n\tconst warnReconnect = (cause: unknown) => {\n\t\tif (reconnectWarningShown) return;\n\t\treconnectWarningShown = true;\n\t\toptions.onWarning?.({\n\t\t\ttype: \"interactive_host_action_failed\",\n\t\t\tmessage: INTERACTIVE_HOST_RECONNECTING_WARNING,\n\t\t\tcause,\n\t\t});\n\t};\n\tconst warnFallback = (cause: unknown) => {\n\t\tif (fallbackWarned) return;\n\t\tfallbackWarned = true;\n\t\toptions.onWarning?.({ type: \"interactive_host_fallback\", message: INTERACTIVE_HOST_FALLBACK_WARNING, cause });\n\t};\n\tlet scheduleReconnect: () => void = () => {};\n\tconst client = new RpcClient({\n\t\tsocketPath: options.socket,\n\t\tonDisconnect: () => {\n\t\t\tdisconnectQueued = true;\n\t\t\tscheduleReconnect();\n\t\t},\n\t});\n\tscheduleReconnect = () => {\n\t\tif (!remoteSession || reconnecting || disposed || remoteRuntime?.isFallback) return;\n\t\tremoteRuntime?.enterReconnecting();\n\t\treconnecting = (async () => {\n\t\t\tlet cause: unknown;\n\t\t\tfor (let attempt = 0; attempt < 3; attempt++) {\n\t\t\t\tif (disposed) return;\n\t\t\t\tdisconnectQueued = false;\n\t\t\t\ttry {\n\t\t\t\t\tawait startHost({ socket: options.socket, agentDir: options.agentDir });\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tawait client.start();\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tawait client.openSession({ sessionPath, cwd: localRuntime.cwd });\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tif (remoteRuntime) await remoteRuntime.reRegisterClientInfo();\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tawait remoteSession.refresh();\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tfallbackWarned = false;\n\t\t\t\t\treconnectWarningShown = false;\n\t\t\t\t\tremoteRuntime?.enterConnected();\n\t\t\t\t\treturn;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tcause = error;\n\t\t\t\t\tawait client.stop().catch(() => {});\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!disposed) {\n\t\t\t\tawait remoteRuntime?.enterFallback();\n\t\t\t\twarnFallback(cause);\n\t\t\t}\n\t\t})().finally(() => {\n\t\t\treconnecting = undefined;\n\t\t\tif (disconnectQueued && !disposed && !remoteRuntime?.isFallback) scheduleReconnect();\n\t\t});\n\t};\n\ttry {\n\t\tawait startHost({ socket: options.socket, agentDir: options.agentDir });\n\t\tawait client.start();\n\t\tawait client.setClientInfo(80, [\"rendered_components\"]);\n\t\tconst startupEvents: import(\"../rpc/rpc-client.ts\").RpcClientEvent[] = [];\n\t\tconst stopBuffering = client.onEvent((event) => startupEvents.push(event));\n\t\tconst opened = await client.openSession({\n\t\t\tsessionPath,\n\t\t\tcwd: localRuntime.cwd,\n\t\t\tprovider: localRuntime.session.model?.provider,\n\t\t\tmodelId: localRuntime.session.model?.id,\n\t\t\tthinkingLevel: localRuntime.session.thinkingLevel,\n\t\t});\n\t\tremoteSession = createRemoteSessionProxy(\n\t\t\tlocalRuntime.session,\n\t\t\tlocalRuntime.services.agentDir,\n\t\t\tclient,\n\t\t\topened.state,\n\t\t\toptions.onWarning,\n\t\t\t(cause) => {\n\t\t\t\tif (remoteRuntime?.isReconnecting) warnReconnect(cause);\n\t\t\t\telse warnFallback(cause);\n\t\t\t},\n\t\t\tstartupEvents.filter((event) => !(\"sessionId\" in event) || event.sessionId === opened.sessionId),\n\t\t);\n\t\tstopBuffering();\n\t\tif (opened.state.isBashRunning && !opened.attached) {\n\t\t\t// Only a newly opened session can have an execution orphaned by a\n\t\t\t// previous connection. An attach is an observer of the same live runtime;\n\t\t\t// aborting it would cancel work owned by the surviving attachment.\n\t\t\tawait client.abortBash().catch(() => {});\n\t\t}\n\t\tif (opened.attached) await remoteSession.refresh();\n\t\tremoteRuntime = new RemoteInteractiveRuntime(localRuntime, remoteSession, client, {\n\t\t\tonTransportGone: (cause) => {\n\t\t\t\tif (remoteRuntime?.isReconnecting) warnReconnect(cause);\n\t\t\t\telse warnFallback(cause);\n\t\t\t},\n\t\t\tget reconnecting() {\n\t\t\t\treturn reconnecting;\n\t\t\t},\n\t\t\tdispose: () => {\n\t\t\t\tdisposed = true;\n\t\t\t},\n\t\t});\n\t\treturn remoteRuntime as unknown as AgentSessionRuntime;\n\t} catch (cause) {\n\t\tawait client.stop().catch(() => {});\n\t\twarnFallback(cause);\n\t\treturn localRuntime;\n\t}\n}\n\nexport class RemoteInteractiveRuntime {\n\treadonly #local: AgentSessionRuntime;\n\treadonly #remoteSession: RemoteSessionProxy;\n\treadonly #client: RpcClient;\n\treadonly #lifecycle?: { readonly reconnecting: Promise<void> | undefined; readonly dispose: () => void };\n\treadonly #onTransportGone: (cause: unknown) => void;\n\t#rebindSession: (() => Promise<void>) | undefined;\n\t#beforeSessionInvalidate: (() => void) | undefined;\n\t#state: \"connected\" | \"reconnecting\" | \"fallback\" | \"disposed\" = \"connected\";\n\t#fallbackHandoff: Promise<void> | undefined;\n\tget isReconnecting(): boolean {\n\t\treturn this.#state === \"reconnecting\";\n\t}\n\tget isFallback(): boolean {\n\t\treturn this.#state === \"fallback\";\n\t}\n\n\tconstructor(\n\t\tlocal: AgentSessionRuntime,\n\t\tremoteSession: RemoteSessionProxy,\n\t\tclient: RpcClient,\n\t\tlifecycle?: { readonly reconnecting: Promise<void> | undefined; readonly dispose: () => void } & {\n\t\t\tonTransportGone: (cause: unknown) => void;\n\t\t},\n\t) {\n\t\tthis.#local = local;\n\t\tthis.#remoteSession = remoteSession;\n\t\tthis.#client = client;\n\t\tthis.#lifecycle = lifecycle;\n\t\tthis.#onTransportGone = lifecycle?.onTransportGone ?? (() => {});\n\t}\n\n\tasync #call<T>(call: () => Promise<T>): Promise<T> {\n\t\ttry {\n\t\t\treturn await call();\n\t\t} catch (error) {\n\t\t\tif (isTransportGoneError(error)) {\n\t\t\t\tthis.#onTransportGone(error);\n\t\t\t\treturn { cancelled: true } as T;\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tenterConnected(): void {\n\t\tif (this.#state !== \"disposed\" && this.#state !== \"fallback\") this.#state = \"connected\";\n\t}\n\n\tenterReconnecting(): void {\n\t\tif (this.#state !== \"disposed\" && this.#state !== \"fallback\") this.#state = \"reconnecting\";\n\t}\n\n\tasync enterFallback(): Promise<void> {\n\t\tif (this.#state === \"disposed\" || this.#state === \"fallback\") return;\n\t\tthis.#state = \"fallback\";\n\t\tthis.#beforeSessionInvalidate?.();\n\t\tconst rebind = this.#rebindSession?.();\n\t\tif (rebind) {\n\t\t\tthis.#fallbackHandoff = rebind.catch((error) => {\n\t\t\t\tthis.#onTransportGone(error);\n\t\t\t});\n\t\t\tawait this.#fallbackHandoff;\n\t\t}\n\t}\n\n\tget session(): AgentSession {\n\t\treturn this.#state === \"fallback\" || this.#state === \"disposed\"\n\t\t\t? this.#local.session\n\t\t\t: this.#remoteSession.session;\n\t}\n\tget services(): AgentSessionRuntime[\"services\"] {\n\t\treturn this.#local.services;\n\t}\n\tget cwd(): string {\n\t\treturn this.session.sessionManager.getCwd();\n\t}\n\tget diagnostics(): readonly AgentSessionRuntimeDiagnostic[] {\n\t\treturn this.#local.diagnostics;\n\t}\n\tget modelFallbackMessage(): string | undefined {\n\t\treturn this.#local.modelFallbackMessage;\n\t}\n\tget launchProfile(): AgentSessionRuntime[\"launchProfile\"] {\n\t\treturn this.#local.launchProfile;\n\t}\n\tsetBeforeSessionInvalidate(callback?: () => void): void {\n\t\tthis.#beforeSessionInvalidate = callback;\n\t\tthis.#local.setBeforeSessionInvalidate(callback);\n\t}\n\tsetRebindSession(callback?: () => Promise<void>): void {\n\t\tthis.#rebindSession = callback;\n\t\tthis.#local.setRebindSession(callback);\n\t\tif (callback && this.#state === \"fallback\" && !this.#fallbackHandoff) {\n\t\t\tthis.#fallbackHandoff = callback().catch((error) => {\n\t\t\t\tthis.#onTransportGone(error);\n\t\t\t});\n\t\t}\n\t}\n\tsetHostUiHandler(callback?: InteractiveHostUiHandler): void {\n\t\tthis.#remoteSession.setHostUiHandler(callback);\n\t}\n\t#clientInfoSent = false;\n\t#lastClientWidth = 80;\n\tsetClientInfo(width: number): void {\n\t\tthis.#lastClientWidth = width;\n\t\tconst capabilities = this.#clientInfoSent ? undefined : [\"rendered_components\"];\n\t\tthis.#clientInfoSent = true;\n\t\tvoid this.#client.setClientInfo(width, capabilities).catch(() => {});\n\t}\n\tasync reRegisterClientInfo(): Promise<void> {\n\t\tawait this.#client.setClientInfo(this.#lastClientWidth, [\"rendered_components\"]);\n\t}\n\tasync dispose(): Promise<void> {\n\t\tif (this.#state === \"disposed\") return;\n\t\tthis.#state = \"disposed\";\n\t\tthis.#lifecycle?.dispose();\n\t\tawait this.#lifecycle?.reconnecting?.catch(() => {});\n\t\tawait this.#fallbackHandoff?.catch(() => {});\n\t\tconst errors: unknown[] = [];\n\t\tfor (const cleanup of [\n\t\t\t() => this.#remoteSession.abortLocalBash(),\n\t\t\t() => this.#client.closeSession(),\n\t\t\t() => this.#client.stop(),\n\t\t\t() => this.#local.dispose(),\n\t\t]) {\n\t\t\ttry {\n\t\t\t\tawait cleanup();\n\t\t\t} catch (error) {\n\t\t\t\terrors.push(error);\n\t\t\t}\n\t\t}\n\t\tif (errors.length > 0) throw errors[0];\n\t}\n\tasync newSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }> {\n\t\tif (this.#state === \"fallback\") return this.#local.newSession(options);\n\t\t// Suppresses for the ENTIRE command, not just the refresh tail: a\n\t\t// multi-session host emits session_replaced while completing it, so the echo\n\t\t// can arrive before the refresh/rebind sequence below starts and race it -\n\t\t// newSession transports setup entries between two refreshes.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() => this.#client.newSession(options?.parentSession));\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#remoteSession.refresh();\n\t\t\t\t\tif (options?.setup) {\n\t\t\t\t\t\tconst capture = SessionManager.inMemory(this.#remoteSession.session.sessionManager.getCwd());\n\t\t\t\t\t\tawait options.setup(capture);\n\t\t\t\t\t\tfor (const entry of capture.getEntries()) await this.#client.appendSessionEntry(entry);\n\t\t\t\t\t\tawait this.#remoteSession.refresh();\n\t\t\t\t\t}\n\t\t\t\t\tawait this.#rebindSession?.();\n\t\t\t\t\tif (options?.withSession) await options.withSession(this.#remoteSession.createReplacedSessionContext());\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: {\n\t\t\tcwdOverride?: string;\n\t\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t\t\tprojectTrustContextFactory?: (cwd: string) => ProjectTrustContext;\n\t\t},\n\t): Promise<{ cancelled: boolean }> {\n\t\tif (this.#state === \"fallback\") return this.#local.switchSession(sessionPath, options);\n\t\t// See newSession: the suppression must cover the command itself, since the\n\t\t// host emits session_replaced while completing it.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() =>\n\t\t\t\t\tthis.#client.switchSession(\n\t\t\t\t\t\tsessionPath,\n\t\t\t\t\t\toptions?.cwdOverride === undefined ? undefined : { cwdOverride: options.cwdOverride },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#remoteSession.refresh();\n\t\t\t\t\tawait this.#rebindSession?.();\n\t\t\t\t\t// The shared host already resolved trust; this callback is retained for\n\t\t\t\t\t// compatibility, but its result cannot override host-authoritative state.\n\t\t\t\t\toptions?.projectTrustContextFactory?.(this.#remoteSession.session.sessionManager.getCwd());\n\t\t\t\t\tif (options?.withSession) await options.withSession(this.#remoteSession.createReplacedSessionContext());\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\tif (this.#state === \"fallback\") return this.#local.fork(entryId, options);\n\t\t// See newSession: the suppression must cover the command itself.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() => this.#client.fork(entryId, options));\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#refreshAndRebind();\n\t\t\t\t\tif (options?.withSession) await options.withSession(this.#remoteSession.createReplacedSessionContext());\n\t\t\t\t}\n\t\t\t\treturn { cancelled: result.cancelled, selectedText: result.text };\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\tif (this.#state === \"fallback\") return this.#local.importFromJsonl(inputPath, cwdOverride);\n\t\t// See newSession: the suppression must cover the command itself.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() => this.#client.importJsonl(inputPath, cwdOverride));\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#refreshAndRebind();\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\n\tasync #refreshAndRebind(): Promise<void> {\n\t\tawait this.#remoteSession.refresh();\n\t\tawait this.#rebindSession?.();\n\t}\n}\n\ninterface RemoteSessionProxy {\n\treadonly session: AgentSession;\n\tsetHostUiHandler(callback?: InteractiveHostUiHandler): void;\n\trefresh(): Promise<void>;\n\t/**\n\t * Run a replacement this runtime is driving itself, suppressing the refresh\n\t * that the host's broadcast `session_replaced` would otherwise trigger. The\n\t * caller owns the refresh/rebind ordering for its own replacements, so the\n\t * scope must cover the command itself, not just its refresh tail.\n\t */\n\taroundLocalReplacement<T>(body: () => Promise<T>): Promise<T>;\n\tabortLocalBash(): void;\n\tcreateReplacedSessionContext(): ReplacedSessionContext;\n}\n\n/** Exported for direct coverage of the wire-event handling below. */\nexport function createRemoteSessionProxy(\n\tlocal: AgentSession,\n\tagentDir: string,\n\tclient: RpcClient,\n\tinitialState: ReturnType<typeof stateFromRpc>,\n\tonWarning?: (warning: InteractiveHostWarning) => void,\n\tonTransportGone?: (cause: unknown) => void,\n\tstartupEvents: readonly import(\"../rpc/rpc-client.ts\").RpcClientEvent[] = [],\n): RemoteSessionProxy {\n\t// Fire-and-forget setters keep the sync AgentSession signature, but their RPC\n\t// failures must not vanish: the matching *_changed wire event confirms success,\n\t// and a rejection here is the only signal of failure.\n\tconst reportActionFailure = (action: string) => (error: unknown) => {\n\t\tconst transportGone = isTransportGoneError(error);\n\t\tif (transportGone) onTransportGone?.(error);\n\t\telse\n\t\t\tonWarning?.({\n\t\t\t\ttype: \"interactive_host_action_failed\",\n\t\t\t\tmessage: `Warning: shared interactive host ${action} failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\tcause: error,\n\t\t\t});\n\t};\n\tconst transportCall = async <T>(action: string, call: () => Promise<T>, cancelledValue?: T): Promise<T> => {\n\t\ttry {\n\t\t\treturn await call();\n\t\t} catch (error) {\n\t\t\tif (!isTransportGoneError(error)) throw error;\n\t\t\treportActionFailure(action)(error);\n\t\t\treturn cancelledValue as T;\n\t\t}\n\t};\n\tlet state = { ...initialState };\n\tconst waitForBashCallbacks = async (promises: Set<Promise<void>>, allowAbandonment: boolean): Promise<boolean> => {\n\t\tif (promises.size === 0) return true;\n\t\tconst settled = Promise.allSettled([...promises]).then(() => true);\n\t\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\t\tconst bounded = new Promise<false>((resolve) => {\n\t\t\ttimeout = setTimeout(resolve, allowAbandonment ? 100 : 5_000, false);\n\t\t\ttimeout.unref?.();\n\t\t});\n\t\ttry {\n\t\t\treturn await Promise.race([settled, bounded]);\n\t\t} finally {\n\t\t\tif (timeout) clearTimeout(timeout);\n\t\t}\n\t};\n\tconst executionNamespace = randomUUID();\n\tconst cleanupRemoteBashOutput = async (path: string): Promise<void> => {\n\t\tlet cleanupTimeout: ReturnType<typeof setTimeout> | undefined;\n\t\ttry {\n\t\t\tawait Promise.race([\n\t\t\t\tclient.cleanupBashOutput(path),\n\t\t\t\tnew Promise<never>((_, reject) => {\n\t\t\t\t\tcleanupTimeout = setTimeout(() => reject(new Error(\"RPC cleanup timed out\")), 1_000);\n\t\t\t\t}),\n\t\t\t]);\n\t\t\treturn;\n\t\t} catch (transportError) {\n\t\t\t// Spill paths are shared host filesystem paths. If the RPC transport is\n\t\t\t// already unavailable, remove locally as a bounded best-effort fallback;\n\t\t\t// a later reconnect is not required to prevent this callback failure from\n\t\t\t// permanently leaking the host-owned artifact.\n\t\t\ttry {\n\t\t\t\tawait rm(path, { force: true });\n\t\t\t\treturn;\n\t\t\t} catch (localError) {\n\t\t\t\tonWarning?.({\n\t\t\t\t\ttype: \"interactive_host_action_failed\",\n\t\t\t\t\tmessage: `Warning: failed to clean up shared bash output spill: ${localError instanceof Error ? localError.message : String(localError)}`,\n\t\t\t\t\tcause: new AggregateError([transportError, localError]),\n\t\t\t\t});\n\t\t\t}\n\t\t} finally {\n\t\t\tif (cleanupTimeout) clearTimeout(cleanupTimeout);\n\t\t}\n\t};\n\tlet nextBashExecutionId = 0;\n\tconst bashExecutions = new Map<\n\t\tstring,\n\t\t{\n\t\t\tchunk?: (chunk: string) => void | PromiseLike<void>;\n\t\t\tpromises: Set<Promise<void>>;\n\t\t\terror: unknown;\n\t\t\thasError: boolean;\n\t\t}\n\t>();\n\tlet hostUiHandler: InteractiveHostUiHandler | undefined;\n\tconst pendingUiRequests: import(\"../rpc/rpc-types.ts\").RpcExtensionUIRequest[] = [];\n\tlet localBashAbortController: AbortController | undefined;\n\tlet localBashRunning = false;\n\tlet hostBashRunning = initialState.isBashRunning;\n\tlet nextQueuedInputOrder = Math.max(0, ...initialState.ordered.map((item) => item.enqueueOrder));\n\tlet sessionManager = local.sessionManager;\n\tlet settingsManager = SettingsManager.create(initialState.cwd, agentDir, {\n\t\tprojectTrusted: initialState.projectTrusted,\n\t});\n\tconst updateBashState = () => {\n\t\tstate = { ...state, isBashRunning: localBashRunning || hostBashRunning };\n\t};\n\tconst remoteSessionManager = new Proxy({} as SessionManager, {\n\t\tget(_target, property, _receiver) {\n\t\t\tif (property === \"appendLabelChange\") {\n\t\t\t\treturn (entryId: string, label?: string) =>\n\t\t\t\t\tvoid client.setLabel(entryId, label).catch(reportActionFailure(\"appendLabelChange\"));\n\t\t\t}\n\t\t\tif (property === \"getCwd\") return () => state.cwd;\n\t\t\tif (property === \"getSessionName\") return () => state.sessionName;\n\t\t\tif (property === \"getUsageTotals\") return () => state.usageTotals;\n\t\t\tconst value = Reflect.get(sessionManager, property, sessionManager);\n\t\t\treturn typeof value === \"function\" ? value.bind(sessionManager) : value;\n\t\t},\n\t});\n\tlet streamingAssistant: Extract<AgentSession[\"messages\"][number], { role: \"assistant\" }> | undefined;\n\tlet mirroredCurrentAssistantUsage = false;\n\t/** Non-zero while this runtime is driving its own replacement sequence. */\n\tlet localReplacementDepth = 0;\n\tconst listeners = new Set<AgentSessionEventListener>();\n\tconst handleWireEvent = (wireEvent: import(\"../rpc/rpc-client.ts\").RpcClientEvent) => {\n\t\tif ((wireEvent as { type?: string }).type === \"extension_ui_request\") {\n\t\t\tconst request = wireEvent as import(\"../rpc/rpc-types.ts\").RpcExtensionUIRequest;\n\t\t\tif (hostUiHandler)\n\t\t\t\tvoid Promise.resolve(hostUiHandler(request))\n\t\t\t\t\t.then((response) => response && client.sendExtensionUIResponse(response))\n\t\t\t\t\t.catch(reportActionFailure(\"host UI response\"));\n\t\t\telse pendingUiRequests.push(request);\n\t\t\treturn;\n\t\t}\n\t\tif (wireEvent.type === \"session_replaced\") {\n\t\t\t// The host swapped the live session behind this connection - another\n\t\t\t// attached client issued the replacement, or an extension drove one that no\n\t\t\t// client issued. Nothing else re-reads the binding, so without this the\n\t\t\t// proxy keeps serving the previous session's manager, settings and message\n\t\t\t// mirror while the host has already moved on. The command response carries\n\t\t\t// only `{ cancelled }`, so this event is the only signal available here.\n\t\t\t//\n\t\t\t// A multi-session host broadcasts the event to every connection including\n\t\t\t// the one that issued the replacement, and this runtime's own replacement\n\t\t\t// methods already run an ordered refresh/rebind - newSession additionally\n\t\t\t// transports setup entries between two refreshes. Refreshing again from\n\t\t\t// here would race that sequence, so self-driven replacements are skipped.\n\t\t\tif (localReplacementDepth === 0) {\n\t\t\t\tvoid refresh().catch(reportActionFailure(\"session refresh after replacement\"));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (wireEvent.type === \"agent_settled\") state = { ...state, isStreaming: false, retryAttempt: 0 };\n\t\tif (wireEvent.type === \"bash_start\") {\n\t\t\thostBashRunning = true;\n\t\t\tupdateBashState();\n\t\t}\n\t\tif (wireEvent.type === \"bash_end\") {\n\t\t\thostBashRunning = false;\n\t\t\tupdateBashState();\n\t\t}\n\t\tif (wireEvent.type === \"bash_execution_update\" && wireEvent.id) {\n\t\t\tconst execution = bashExecutions.get(wireEvent.id);\n\t\t\tif (execution?.chunk && !execution.hasError) {\n\t\t\t\ttry {\n\t\t\t\t\tconst callbackPromise = Promise.resolve(execution.chunk(wireEvent.delta)).catch((error) => {\n\t\t\t\t\t\tif (!execution.hasError) {\n\t\t\t\t\t\t\texecution.error = error;\n\t\t\t\t\t\t\texecution.hasError = true;\n\t\t\t\t\t\t\tvoid client.abortBash().catch(() => {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t});\n\t\t\t\t\texecution.promises.add(callbackPromise);\n\t\t\t\t\tvoid callbackPromise.catch(() => {}).finally(() => execution.promises.delete(callbackPromise));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!execution.hasError) {\n\t\t\t\t\t\texecution.error = error;\n\t\t\t\t\t\texecution.hasError = true;\n\t\t\t\t\t\tvoid client.abortBash().catch(() => {});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (wireEvent.type === \"agent_start\") state = { ...state, isStreaming: true };\n\t\tif (wireEvent.type === \"compaction_start\") state = { ...state, isCompacting: true };\n\t\tif (wireEvent.type === \"compaction_end\") state = { ...state, isCompacting: false };\n\t\tif (wireEvent.type === \"auto_retry_start\") state = { ...state, retryAttempt: wireEvent.attempt };\n\t\tif (wireEvent.type === \"auto_retry_end\") state = { ...state, retryAttempt: 0 };\n\t\tif (wireEvent.type === \"queue_update\") {\n\t\t\tnextQueuedInputOrder = Math.max(nextQueuedInputOrder, ...wireEvent.ordered.map((item) => item.enqueueOrder));\n\t\t\tstate = {\n\t\t\t\t...state,\n\t\t\t\tsteering: [...wireEvent.steering],\n\t\t\t\tfollowUp: [...wireEvent.followUp],\n\t\t\t\tordered: [...wireEvent.ordered],\n\t\t\t\tpendingMessageCount: wireEvent.steering.length + wireEvent.followUp.length,\n\t\t\t};\n\t\t}\n\t\tif (wireEvent.type === \"model_changed\") {\n\t\t\tstate = { ...state, model: wireEvent.model, thinkingLevel: wireEvent.thinkingLevel };\n\t\t}\n\t\tif (wireEvent.type === \"thinking_level_changed\") state = { ...state, thinkingLevel: wireEvent.level };\n\t\tif (wireEvent.type === \"service_tier_changed\") {\n\t\t\tstate = { ...state, serviceTier: wireEvent.tier, fastMode: wireEvent.fastMode };\n\t\t}\n\t\tif (wireEvent.type === \"session_settings_changed\") {\n\t\t\tstate = {\n\t\t\t\t...state,\n\t\t\t\tsteeringMode: wireEvent.steeringMode,\n\t\t\t\tfollowUpMode: wireEvent.followUpMode,\n\t\t\t\tautoCompactionEnabled: wireEvent.autoCompactionEnabled,\n\t\t\t};\n\t\t}\n\t\tif (wireEvent.type === \"entry_appended\") {\n\t\t\ttry {\n\t\t\t\tsessionManager.appendEntry(wireEvent.entry);\n\t\t\t\tlocal.agent.state.messages = sessionManager.buildSessionContext().messages;\n\t\t\t} catch {\n\t\t\t\t// Non-fatal if the local snapshot cannot accept a concurrent entry.\n\t\t\t}\n\t\t}\n\t\tif (wireEvent.type === \"session_info_changed\") state = { ...state, sessionName: wireEvent.name };\n\t\tif (wireEvent.type === \"message_start\") {\n\t\t\tif (wireEvent.message.role === \"assistant\") {\n\t\t\t\tstreamingAssistant = structuredClone(wireEvent.message);\n\t\t\t\tmirroredCurrentAssistantUsage = false;\n\t\t\t}\n\t\t\tlocal.agent.state.messages.push(structuredClone(wireEvent.message));\n\t\t}\n\t\tif (wireEvent.type === \"message_end\") {\n\t\t\tif (wireEvent.message.role === \"assistant\") {\n\t\t\t\tstreamingAssistant = structuredClone(wireEvent.message);\n\t\t\t\tconst usage = wireEvent.message.usage;\n\t\t\t\tif (usage && !mirroredCurrentAssistantUsage) {\n\t\t\t\t\tmirroredCurrentAssistantUsage = true;\n\t\t\t\t\tconst latestPromptTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\t\t\t\t\tconst contextWindow = state.model?.contextWindow ?? 0;\n\t\t\t\t\tconst contextTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tcontextUsage:\n\t\t\t\t\t\t\tcontextWindow > 0\n\t\t\t\t\t\t\t\t? { tokens: contextTokens, contextWindow, percent: (contextTokens / contextWindow) * 100 }\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tusageTotals: {\n\t\t\t\t\t\t\t...state.usageTotals,\n\t\t\t\t\t\t\tinput: state.usageTotals.input + usage.input,\n\t\t\t\t\t\t\toutput: state.usageTotals.output + usage.output,\n\t\t\t\t\t\t\tcacheRead: state.usageTotals.cacheRead + usage.cacheRead,\n\t\t\t\t\t\t\tcacheWrite: state.usageTotals.cacheWrite + usage.cacheWrite,\n\t\t\t\t\t\t\tcost: state.usageTotals.cost + (usage.cost?.total ?? 0),\n\t\t\t\t\t\t\tlatestCacheHitRate:\n\t\t\t\t\t\t\t\tlatestPromptTokens > 0 ? (usage.cacheRead / latestPromptTokens) * 100 : undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst messages = local.agent.state.messages;\n\t\t\tconst previous = messages.at(-1);\n\t\t\tif (previous?.role === wireEvent.message.role)\n\t\t\t\tmessages[messages.length - 1] = structuredClone(wireEvent.message);\n\t\t}\n\t\tif (wireEvent.type === \"compaction_end\" && wireEvent.accepted && !wireEvent.aborted) {\n\t\t\ttry {\n\t\t\t\tlocal.sessionManager.reloadFromDisk?.();\n\t\t\t\tif (sessionManager !== local.sessionManager) sessionManager.reloadFromDisk?.();\n\t\t\t\tlocal.agent.state.messages = sessionManager.buildSessionContext().messages;\n\t\t\t} catch {\n\t\t\t\t// Non-fatal if session file is transiently locked or unavailable\n\t\t\t}\n\t\t}\n\t\tconst event = hydrateMessageUpdate(wireEvent, streamingAssistant);\n\t\tfor (const listener of listeners) listener(event);\n\t};\n\tclient.onEvent(handleWireEvent);\n\tfor (const event of startupEvents) handleWireEvent(event);\n\tconst performRefresh = async (): Promise<void> => {\n\t\t// Captured before the first await: entries that arrive via `entry_appended`\n\t\t// while this refresh is in flight are newer than the snapshot it reconciles\n\t\t// against, and must survive the rebuild below.\n\t\tconst idsAtRefreshStart = new Set(sessionManager.getEntries().map((entry) => entry.id));\n\t\tconst nextState = await transportCall(\"refresh\", () => client.getState());\n\t\tif (!nextState) return;\n\t\tstate = { ...stateFromRpc(nextState) };\n\t\tnextQueuedInputOrder = Math.max(0, ...nextState.ordered.map((item) => item.enqueueOrder));\n\t\tlet messages: AgentSession[\"messages\"];\n\t\tsettingsManager = SettingsManager.create(nextState.cwd, agentDir, {\n\t\t\tprojectTrusted: nextState.projectTrusted,\n\t\t});\n\t\tif (nextState.sessionFile) {\n\t\t\t// Keep the caller-owned manager identity when refreshing the same session.\n\t\t\t// Navigation and host-side mutations must update every existing mirror, not\n\t\t\t// leave the interactive runtime holding the pre-refresh snapshot.\n\t\t\tif (sessionManager.getSessionFile() === nextState.sessionFile) {\n\t\t\t\tsessionManager.reloadFromDisk?.();\n\t\t\t} else {\n\t\t\t\t// SessionManager.open retains the explicit path even when the host has\n\t\t\t\t// deferred creating the file for a setup-only session.\n\t\t\t\tsessionManager = SessionManager.open(nextState.sessionFile, undefined, nextState.cwd);\n\t\t\t}\n\t\t\t// The host ships its complete entry list while the session file is still\n\t\t\t// deferred (no assistant message yet, so nothing has been written), which\n\t\t\t// makes that list the only authoritative view of the session. Reconcile the\n\t\t\t// mirror to it exactly: `entry_appended` notifications that cross a\n\t\t\t// concurrent refresh land on whichever manager is current, so the mirror\n\t\t\t// can hold an arbitrary partial set rather than a prefix, and a snapshot\n\t\t\t// taken mid-bind can simply be short. Backfilling only an empty mirror\n\t\t\t// wedged it at whatever partial set it happened to hold.\n\t\t\tconst authoritative = nextState.entries;\n\t\t\tif (authoritative?.length) {\n\t\t\t\tconst mirror = sessionManager.getEntries();\n\t\t\t\tconst matches =\n\t\t\t\t\tmirror.length === authoritative.length &&\n\t\t\t\t\tmirror.every((entry, index) => entry.id === authoritative[index]?.id);\n\t\t\t\tif (!matches) {\n\t\t\t\t\tconst rebuilt = SessionManager.open(nextState.sessionFile, undefined, nextState.cwd);\n\t\t\t\t\tfor (const entry of authoritative) rebuilt.appendEntry(entry);\n\t\t\t\t\t// A notification that crossed this refresh refers to an entry the\n\t\t\t\t\t// snapshot predates, so it is newer than the snapshot; dropping it\n\t\t\t\t\t// would strand the entry until an unrelated refresh happened to\n\t\t\t\t\t// run. Keep it, in arrival order, after the authoritative list.\n\t\t\t\t\tconst authoritativeIds = new Set(authoritative.map((entry) => entry.id));\n\t\t\t\t\tfor (const entry of mirror) {\n\t\t\t\t\t\tif (!idsAtRefreshStart.has(entry.id) && !authoritativeIds.has(entry.id)) {\n\t\t\t\t\t\t\trebuilt.appendEntry(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsessionManager = rebuilt;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmessages = sessionManager.buildSessionContext().messages;\n\t\t} else {\n\t\t\tmessages = await transportCall(\"refresh\", () => client.getMessages(), []);\n\t\t}\n\t\tlocal.agent.state.messages.splice(0, local.agent.state.messages.length, ...structuredClone(messages));\n\t\tstreamingAssistant = undefined;\n\t};\n\t// Refreshes must not interleave: each one reassigns sessionManager,\n\t// settingsManager and the mirrored message list, so two in flight can commit a\n\t// mixed snapshot of two different sessions. A replacement-driven refresh races\n\t// exactly that way against a caller-driven one, so run them in order.\n\tlet refreshChain: Promise<void> = Promise.resolve();\n\tconst refresh = (): Promise<void> => {\n\t\tconst next = refreshChain.then(performRefresh, performRefresh);\n\t\trefreshChain = next.then(\n\t\t\t() => {},\n\t\t\t() => {},\n\t\t);\n\t\treturn next;\n\t};\n\tconst session = new Proxy(local, {\n\t\tget(target, property, receiver) {\n\t\t\tif (property === \"prompt\")\n\t\t\t\treturn async (message: string, options?: Parameters<AgentSession[\"prompt\"]>[1]) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait client.prompt(message, {\n\t\t\t\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior } : {}),\n\t\t\t\t\t\t\t...(options?.thinkingLevel ? { thinkingLevel: options.thinkingLevel } : {}),\n\t\t\t\t\t\t\t...(options?.sessionTitlePrompt !== undefined\n\t\t\t\t\t\t\t\t? { sessionTitlePrompt: options.sessionTitlePrompt }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(options?.expandPromptTemplates !== undefined\n\t\t\t\t\t\t\t\t? { expandPromptTemplates: options.expandPromptTemplates }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(options?.promptDisposition ? { promptDisposition: options.promptDisposition } : {}),\n\t\t\t\t\t\t\t...(options?.preflightResult ? { preflightResult: options.preflightResult } : {}),\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (!isTransportGoneError(error)) throw error;\n\t\t\t\t\t\treportActionFailure(\"prompt\")(error);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\tif (property === \"abort\") return () => client.abort();\n\t\t\tif (property === \"abortCompaction\")\n\t\t\t\treturn () => void client.abortCompaction().catch(reportActionFailure(\"abortCompaction\"));\n\t\t\tif (property === \"steer\")\n\t\t\t\treturn (\n\t\t\t\t\tmessage: string,\n\t\t\t\t\timages?: Parameters<AgentSession[\"steer\"]>[1],\n\t\t\t\t\trecovery?: { enqueueOrder?: number },\n\t\t\t\t) => {\n\t\t\t\t\tconst enqueueOrder =\n\t\t\t\t\t\trecovery?.enqueueOrder ?? Math.max(0, ...state.ordered.map((item) => item.enqueueOrder)) + 1;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tsteering: [...state.steering, message],\n\t\t\t\t\t\tordered: [...state.ordered, { text: message, mode: \"steer\", enqueueOrder }],\n\t\t\t\t\t\tpendingMessageCount: state.pendingMessageCount + 1,\n\t\t\t\t\t};\n\t\t\t\t\treturn transportCall(\"steer\", () => client.steer(message, images, { ...recovery, enqueueOrder }));\n\t\t\t\t};\n\t\t\tif (property === \"followUp\")\n\t\t\t\treturn (\n\t\t\t\t\tmessage: string,\n\t\t\t\t\timages?: Parameters<AgentSession[\"followUp\"]>[1],\n\t\t\t\t\trecovery?: { enqueueOrder?: number },\n\t\t\t\t) => {\n\t\t\t\t\tconst enqueueOrder =\n\t\t\t\t\t\trecovery?.enqueueOrder ?? Math.max(0, ...state.ordered.map((item) => item.enqueueOrder)) + 1;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tfollowUp: [...state.followUp, message],\n\t\t\t\t\t\tordered: [...state.ordered, { text: message, mode: \"followUp\", enqueueOrder }],\n\t\t\t\t\t\tpendingMessageCount: state.pendingMessageCount + 1,\n\t\t\t\t\t};\n\t\t\t\t\treturn transportCall(\"followUp\", () => client.followUp(message, images, { ...recovery, enqueueOrder }));\n\t\t\t\t};\n\t\t\tif (property === \"waitForIdle\") return () => client.waitForIdle();\n\t\t\tif (property === \"getLastAssistantText\") return () => target.getLastAssistantText();\n\t\t\tif (property === \"setModel\" || property === \"setSessionModel\")\n\t\t\t\treturn async (model: NonNullable<AgentSession[\"model\"]>) => {\n\t\t\t\t\tconst next = await transportCall(\"setModel\", () => client.setModel(model.provider, model.id), undefined);\n\t\t\t\t\treturn next ? { systemPromptName: next.systemPromptName, model: next } : undefined;\n\t\t\t\t};\n\t\t\tif (property === \"setSessionThinkingLevel\")\n\t\t\t\treturn (level: AgentSession[\"thinkingLevel\"]) =>\n\t\t\t\t\tvoid client\n\t\t\t\t\t\t.setThinkingLevel(level, { scope: \"turn\" })\n\t\t\t\t\t\t.catch(reportActionFailure(\"setSessionThinkingLevel\"));\n\t\t\tif (property === \"setSessionFastMode\")\n\t\t\t\treturn (enabled: boolean) =>\n\t\t\t\t\tvoid client.setFastMode(enabled).catch(reportActionFailure(\"setSessionFastMode\"));\n\t\t\tif (property === \"abortRetry\") return () => void client.abortRetry().catch(reportActionFailure(\"abortRetry\"));\n\t\t\tif (property === \"setAutoRetryEnabled\")\n\t\t\t\treturn (enabled: boolean) =>\n\t\t\t\t\tvoid client.setAutoRetry(enabled).catch(reportActionFailure(\"setAutoRetryEnabled\"));\n\t\t\tif (property === \"reserveQueuedInputOrder\") return () => ++nextQueuedInputOrder;\n\t\t\tif (property === \"setFavoriteModels\")\n\t\t\t\treturn (models: Parameters<AgentSession[\"setFavoriteModels\"]>[0]) => {\n\t\t\t\t\tstate = { ...state, favoriteModels: [...models] };\n\t\t\t\t\tvoid client.setFavoriteModels(models).catch(reportActionFailure(\"setFavoriteModels\"));\n\t\t\t\t};\n\t\t\tif (property === \"setScopedModels\")\n\t\t\t\treturn (models: Parameters<AgentSession[\"setScopedModels\"]>[0]) => {\n\t\t\t\t\tstate = { ...state, scopedModels: [...models] };\n\t\t\t\t\tvoid client.setScopedModels(models).catch(reportActionFailure(\"setScopedModels\"));\n\t\t\t\t};\n\t\t\tif (property === \"cycleModel\")\n\t\t\t\treturn (direction?: \"forward\" | \"backward\") =>\n\t\t\t\t\ttransportCall(\"cycleModel\", () => client.cycleModel(direction), undefined);\n\t\t\tif (property === \"setThinkingLevel\")\n\t\t\t\treturn (level: AgentSession[\"thinkingLevel\"]) =>\n\t\t\t\t\tvoid client.setThinkingLevel(level).catch(reportActionFailure(\"setThinkingLevel\"));\n\t\t\tif (property === \"cycleThinkingLevel\")\n\t\t\t\treturn () =>\n\t\t\t\t\ttransportCall(\"cycleThinkingLevel\", () => client.cycleThinkingLevel(), undefined).then(\n\t\t\t\t\t\t(result) => result?.level,\n\t\t\t\t\t);\n\t\t\tif (property === \"getAvailableThinkingLevels\")\n\t\t\t\treturn () => transportCall(\"getAvailableThinkingLevels\", () => client.getAvailableThinkingLevels(), []);\n\t\t\tif (property === \"setSteeringMode\")\n\t\t\t\treturn (mode: AgentSession[\"steeringMode\"]) =>\n\t\t\t\t\tvoid client.setSteeringMode(mode).catch(reportActionFailure(\"setSteeringMode\"));\n\t\t\tif (property === \"setFollowUpMode\")\n\t\t\t\treturn (mode: AgentSession[\"followUpMode\"]) =>\n\t\t\t\t\tvoid client.setFollowUpMode(mode).catch(reportActionFailure(\"setFollowUpMode\"));\n\t\t\tif (property === \"compact\")\n\t\t\t\treturn (instructions?: string) => transportCall(\"compact\", () => client.compact(instructions));\n\t\t\tif (property === \"setAutoCompactionEnabled\")\n\t\t\t\treturn (enabled: boolean) =>\n\t\t\t\t\tvoid client.setAutoCompaction(enabled).catch(reportActionFailure(\"setAutoCompaction\"));\n\t\t\tif (property === \"executeBash\")\n\t\t\t\treturn async (\n\t\t\t\t\tcommand: string,\n\t\t\t\t\tonChunk?: (chunk: string) => void | PromiseLike<void>,\n\t\t\t\t\toptions?: { excludeFromContext?: boolean; operations?: BashOperations | Record<string, unknown> },\n\t\t\t\t) => {\n\t\t\t\t\tif (options?.operations && typeof options.operations.exec === \"function\") {\n\t\t\t\t\t\tconst abortController = new AbortController();\n\t\t\t\t\t\tlocalBashAbortController = abortController;\n\t\t\t\t\t\tlocalBashRunning = true;\n\t\t\t\t\t\tupdateBashState();\n\t\t\t\t\t\tconst sessionAtStart = state.sessionId;\n\t\t\t\t\t\tconst prefix = settingsManager.getShellCommandPrefix();\n\t\t\t\t\t\tconst resolvedCommand = prefix ? `${prefix}\\n${command}` : command;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst result = await executeBashWithOperations(\n\t\t\t\t\t\t\t\tresolvedCommand,\n\t\t\t\t\t\t\t\tstate.cwd,\n\t\t\t\t\t\t\t\toptions.operations as BashOperations,\n\t\t\t\t\t\t\t\t{ onChunk, signal: abortController.signal },\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (state.sessionId === sessionAtStart) {\n\t\t\t\t\t\t\t\tawait transportCall(\"recordBashResult\", () =>\n\t\t\t\t\t\t\t\t\tclient.recordBashResult(command, result, options.excludeFromContext),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tlocalBashAbortController = undefined;\n\t\t\t\t\t\t\tlocalBashRunning = false;\n\t\t\t\t\t\t\tupdateBashState();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst executionId = `bash-${executionNamespace}-${++nextBashExecutionId}`;\n\t\t\t\t\tconst execution = {\n\t\t\t\t\t\tchunk: onChunk,\n\t\t\t\t\t\tpromises: new Set<Promise<void>>(),\n\t\t\t\t\t\terror: undefined as unknown,\n\t\t\t\t\t\thasError: false,\n\t\t\t\t\t};\n\t\t\t\t\tbashExecutions.set(executionId, execution);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await transportCall(\n\t\t\t\t\t\t\t\"bash\",\n\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\tclient.bash(command, {\n\t\t\t\t\t\t\t\t\texcludeFromContext: options?.excludeFromContext,\n\t\t\t\t\t\t\t\t\texecutionId,\n\t\t\t\t\t\t\t\t\toperations: options?.operations as Record<string, unknown> | undefined,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t{ output: \"\", exitCode: undefined, cancelled: true, truncated: false },\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst callbacksSettled = await waitForBashCallbacks(execution.promises, false);\n\t\t\t\t\t\tif (!callbacksSettled) {\n\t\t\t\t\t\t\tif (result.fullOutputPath) await cleanupRemoteBashOutput(result.fullOutputPath);\n\t\t\t\t\t\t\tthrow new Error(\"Bash output callback did not settle within 5000ms\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (execution.hasError) {\n\t\t\t\t\t\t\tif (result.fullOutputPath) await cleanupRemoteBashOutput(result.fullOutputPath);\n\t\t\t\t\t\t\tthrow execution.error;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tbashExecutions.delete(executionId);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\tif (property === \"abortBash\")\n\t\t\t\treturn () => {\n\t\t\t\t\tif (localBashAbortController) localBashAbortController.abort();\n\t\t\t\t\telse void client.abortBash().catch(reportActionFailure(\"abortBash\"));\n\t\t\t\t};\n\t\t\tif (property === \"getContextUsage\") return () => state.contextUsage;\n\t\t\tif (property === \"getSessionStats\")\n\t\t\t\treturn () => transportCall(\"getSessionStats\", () => client.getSessionStats(), local.getSessionStats());\n\t\t\tif (property === \"exportToHtml\")\n\t\t\t\treturn (outputPath?: string, options?: { themeName?: string }) =>\n\t\t\t\t\ttransportCall(\"exportToHtml\", () => client.exportHtml(outputPath, options?.themeName)).then(\n\t\t\t\t\t\t(result) => result?.path,\n\t\t\t\t\t);\n\t\t\tif (property === \"setSessionName\")\n\t\t\t\treturn (name: string) => client.setSessionName(name).catch(reportActionFailure(\"setSessionName\"));\n\t\t\tif (property === \"navigateTree\")\n\t\t\t\treturn async (targetId: string, options?: Parameters<AgentSession[\"navigateTree\"]>[1]) => {\n\t\t\t\t\tconst result = await transportCall(\"navigateTree\", () => client.navigateTree(targetId, options), {\n\t\t\t\t\t\tcancelled: true,\n\t\t\t\t\t});\n\t\t\t\t\tif (!result.cancelled) await refresh();\n\t\t\t\t\treturn result;\n\t\t\t\t};\n\t\t\tif (property === \"getUserMessagesForForking\")\n\t\t\t\treturn () => transportCall(\"getUserMessagesForForking\", () => client.getForkMessages(), []);\n\t\t\tif (property === \"subscribe\")\n\t\t\t\treturn (listener: AgentSessionEventListener) => {\n\t\t\t\t\tlisteners.add(listener);\n\t\t\t\t\tconst localUnsubscribe = target.subscribe(listener);\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tlisteners.delete(listener);\n\t\t\t\t\t\tlocalUnsubscribe();\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\tif (property === \"isStreaming\") return state.isStreaming;\n\t\t\tif (property === \"isIdle\") return !state.isStreaming;\n\t\t\tif (property === \"isCompacting\") return state.isCompacting;\n\t\t\tif (property === \"pendingMessageCount\") return state.pendingMessageCount;\n\t\t\tif (property === \"getSteeringMessages\") return () => state.steering;\n\t\t\tif (property === \"getFollowUpMessages\") return () => state.followUp;\n\t\t\tif (property === \"clearQueue\")\n\t\t\t\treturn (options?: { abortWillFollow: boolean }) => {\n\t\t\t\t\tconst result = {\n\t\t\t\t\t\tsteering: [...state.steering],\n\t\t\t\t\t\tfollowUp: [...state.followUp],\n\t\t\t\t\t\tordered: [...state.ordered],\n\t\t\t\t\t};\n\t\t\t\t\tObject.defineProperty(result, \"ordered\", { value: result.ordered, enumerable: false });\n\t\t\t\t\tvoid client.clearQueue(options).catch(reportActionFailure(\"clearQueue\"));\n\t\t\t\t\treturn result;\n\t\t\t\t};\n\t\t\tif (property === \"abortBranchSummary\")\n\t\t\t\treturn () => void client.abortBranchSummary().catch(reportActionFailure(\"abortBranchSummary\"));\n\t\t\tif (property === \"recordBashResult\")\n\t\t\t\treturn (\n\t\t\t\t\tcommand: string,\n\t\t\t\t\tresult: Parameters<AgentSession[\"recordBashResult\"]>[1],\n\t\t\t\t\toptions?: { excludeFromContext?: boolean },\n\t\t\t\t) =>\n\t\t\t\t\tvoid client\n\t\t\t\t\t\t.recordBashResult(command, result, options?.excludeFromContext)\n\t\t\t\t\t\t.catch(reportActionFailure(\"recordBashResult\"));\n\t\t\tif (property === \"set_label\") return undefined;\n\t\t\tif (property === \"retryAttempt\") return state.retryAttempt;\n\t\t\tif (property === \"isBashRunning\") return state.isBashRunning;\n\t\t\tif (property === \"reload\")\n\t\t\t\treturn (_options?: Parameters<AgentSession[\"reload\"]>[0]) =>\n\t\t\t\t\ttransportCall(\"reload\", () => client.reload(), { cancelled: true });\n\t\t\tif (property === \"checkReloadVeto\")\n\t\t\t\treturn () => transportCall(\"checkReloadVeto\", () => client.checkReloadVeto(), { cancelled: true });\n\t\t\tif (property === \"exportToJsonl\")\n\t\t\t\treturn (outputPath?: string) =>\n\t\t\t\t\ttransportCall(\"exportToJsonl\", () => client.exportJsonl(outputPath)).then((result) => result?.path);\n\t\t\t// The footer and other renderers read session.state.*; surface the\n\t\t\t// host-authoritative fields there too, not only via the direct getters.\n\t\t\tif (property === \"state\") {\n\t\t\t\tconst localState = target.state;\n\t\t\t\treturn {\n\t\t\t\t\t...localState,\n\t\t\t\t\tmodel: state.model ?? localState.model,\n\t\t\t\t\tthinkingLevel: state.thinkingLevel,\n\t\t\t\t\tisStreaming: state.isStreaming,\n\t\t\t\t\tisCompacting: state.isCompacting,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (property === \"sessionFile\") return state.sessionFile;\n\t\t\tif (property === \"sessionId\") return state.sessionId;\n\t\t\tif (property === \"sessionName\") return state.sessionName;\n\t\t\tif (property === \"serviceTier\") return state.serviceTier;\n\t\t\tif (property === \"steeringMode\") return state.steeringMode;\n\t\t\tif (property === \"followUpMode\") return state.followUpMode;\n\t\t\tif (property === \"autoCompactionEnabled\") return state.autoCompactionEnabled;\n\t\t\tif (property === \"isFastModeActive\") return () => state.fastMode;\n\t\t\tif (property === \"sessionManager\") return remoteSessionManager;\n\t\t\tif (property === \"settingsManager\") return settingsManager;\n\t\t\tif (property === \"messages\") return target.messages;\n\t\t\tif (property === \"favoriteModels\") return state.favoriteModels;\n\t\t\tif (property === \"scopedModels\") return state.scopedModels;\n\t\t\tif (property === \"model\") return state.model ?? target.model;\n\t\t\tif (property === \"thinkingLevel\") return state.thinkingLevel;\n\t\t\treturn Reflect.get(target, property, receiver);\n\t\t},\n\t});\n\treturn {\n\t\tsession,\n\t\tsetHostUiHandler: (callback) => {\n\t\t\thostUiHandler = callback;\n\t\t\tif (callback)\n\t\t\t\tfor (const request of pendingUiRequests.splice(0))\n\t\t\t\t\tvoid Promise.resolve(callback(request))\n\t\t\t\t\t\t.then((response) => response && client.sendExtensionUIResponse(response))\n\t\t\t\t\t\t.catch(reportActionFailure(\"host UI response\"));\n\t\t},\n\t\trefresh,\n\t\taroundLocalReplacement: async (body) => {\n\t\t\tlocalReplacementDepth++;\n\t\t\ttry {\n\t\t\t\treturn await body();\n\t\t\t} finally {\n\t\t\t\tlocalReplacementDepth--;\n\t\t\t}\n\t\t},\n\t\tabortLocalBash: () => localBashAbortController?.abort(),\n\t\tcreateReplacedSessionContext: () => {\n\t\t\tconst context = local.createReplacedSessionContext();\n\t\t\tObject.defineProperty(context, \"cwd\", { value: state.cwd });\n\t\t\tObject.defineProperty(context, \"sessionManager\", { value: remoteSessionManager });\n\t\t\tcontext.sendMessage = (message, options) =>\n\t\t\t\ttransportCall(\"sendMessage\", () =>\n\t\t\t\t\tclient.sendCustomMessage(message, {\n\t\t\t\t\t\ttriggerTurn: options?.triggerTurn,\n\t\t\t\t\t\tdeliverAs: options?.deliverAs,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\tcontext.sendUserMessage = (content, options) => {\n\t\t\t\tif (typeof content === \"string\")\n\t\t\t\t\treturn transportCall(\"sendUserMessage\", () =>\n\t\t\t\t\t\tclient.prompt(content, {\n\t\t\t\t\t\t\tstreamingBehavior: options?.deliverAs,\n\t\t\t\t\t\t\texpandPromptTemplates: options?.expandPromptTemplates,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\tconst text = content\n\t\t\t\t\t.filter((part) => part.type === \"text\")\n\t\t\t\t\t.map((part) => part.text)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t\tconst images = content.filter((part) => part.type === \"image\");\n\t\t\t\treturn transportCall(\"sendUserMessage\", () =>\n\t\t\t\t\tclient.prompt(text, {\n\t\t\t\t\t\timages,\n\t\t\t\t\t\tstreamingBehavior: options?.deliverAs,\n\t\t\t\t\t\texpandPromptTemplates: options?.expandPromptTemplates,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t};\n\t\t\treturn context;\n\t\t},\n\t};\n}\n\nfunction hydrateMessageUpdate(\n\tevent: RpcClientEvent,\n\tstreamingAssistant: Extract<AgentSession[\"messages\"][number], { role: \"assistant\" }> | undefined,\n): AgentSessionEvent {\n\tif (event.type !== \"message_update\" || !streamingAssistant) return event as unknown as AgentSessionEvent;\n\tconst update = event.assistantMessageEvent;\n\tif (update.type !== \"text_delta\" && update.type !== \"thinking_delta\" && update.type !== \"toolcall_delta\") {\n\t\treturn event as unknown as AgentSessionEvent;\n\t}\n\tconst content = streamingAssistant.content[update.contentIndex];\n\tif (update.type === \"text_delta\" && content?.type === \"text\") content.text += update.delta;\n\tif (update.type === \"thinking_delta\" && content?.type === \"thinking\") content.thinking += update.delta;\n\tif (update.type === \"toolcall_delta\" && content?.type === \"toolCall\") {\n\t\tconst raw = JSON.stringify(content.arguments) + update.delta;\n\t\ttry {\n\t\t\tconst parsed: unknown = JSON.parse(raw);\n\t\t\tif (typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)) {\n\t\t\t\tcontent.arguments = parsed as Record<string, unknown>;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Keep the last valid arguments until the next complete update.\n\t\t}\n\t}\n\tstreamingAssistant.usage = event.usage;\n\treturn {\n\t\ttype: \"message_update\",\n\t\tmessage: structuredClone(streamingAssistant),\n\t\tassistantMessageEvent: { ...update, partial: structuredClone(streamingAssistant) },\n\t} as AgentSessionEvent;\n}\n\nfunction stateFromRpc(state: {\n\tmodel?: AgentSession[\"model\"];\n\tthinkingLevel: AgentSession[\"thinkingLevel\"];\n\tisStreaming: boolean;\n\tisCompacting: boolean;\n\tpendingMessageCount: number;\n\tusageTotals: import(\"../../core/session-manager.ts\").UsageTotals;\n\tcontextUsage?: import(\"../../core/extensions/types.ts\").ContextUsage;\n\tretryAttempt: number;\n\tisBashRunning: boolean;\n\tsessionFile?: string;\n\tsessionId: string;\n\tsessionName?: string;\n\tcwd: string;\n\tprojectTrusted: boolean;\n\tserviceTier?: AgentSession[\"serviceTier\"];\n\tfastMode: boolean;\n\tsteeringMode: AgentSession[\"steeringMode\"];\n\tfollowUpMode: AgentSession[\"followUpMode\"];\n\tautoCompactionEnabled: boolean;\n\tentries?: import(\"../../core/session-manager.ts\").SessionEntry[];\n\tfavoriteModels: import(\"../rpc/rpc-types.ts\").RpcSessionModelEntry[];\n\tscopedModels: import(\"../rpc/rpc-types.ts\").RpcSessionModelEntry[];\n\tsteering: string[];\n\tfollowUp: string[];\n\tordered: Array<{ text: string; mode: \"steer\" | \"followUp\"; enqueueOrder: number }>;\n}) {\n\treturn state;\n}\n\nexport function isInteractiveHostEvent(event: RpcClientEvent): event is Extract<RpcClientEvent, { type: string }> {\n\treturn typeof event === \"object\" && event !== null && \"type\" in event;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"interactive-host-runtime.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-host-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { rm } from \"node:fs/promises\";\nimport type { ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type {\n\tAgentSession,\n\tAgentSessionEvent,\n\tAgentSessionEventListener,\n\tAssistantEditResult,\n} from \"../../core/agent-session.ts\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.ts\";\nimport type { AgentSessionRuntimeDiagnostic } from \"../../core/agent-session-services.ts\";\nimport { executeBashWithOperations } from \"../../core/bash-executor.ts\";\nimport type { ProjectTrustContext, ReplacedSessionContext } from \"../../core/extensions/index.ts\";\nimport { SessionManager } from \"../../core/session-manager.ts\";\nimport { SettingsManager } from \"../../core/settings-manager.ts\";\nimport type { BashOperations } from \"../../core/tools/bash.ts\";\nimport { QUESTION_CAPABILITY, RENDERED_COMPONENTS_CAPABILITY } from \"../rpc/custom-capability.ts\";\nimport { type EnsuredHost, ensureHost } from \"../rpc/host-ensure.ts\";\nimport { isTransportGoneError, RpcClient, type RpcClientEvent } from \"../rpc/rpc-client.ts\";\n\n/**\n * What this TUI can render for a host: host-side components and the rich\n * multi-question overlay. Without `question` the host degrades every\n * `ctx.ui.question` call into sequential select/input prompts.\n */\nconst HOST_CLIENT_CAPABILITIES: readonly string[] = [RENDERED_COMPONENTS_CAPABILITY, QUESTION_CAPABILITY];\n\nexport const INTERACTIVE_HOST_FALLBACK_WARNING = \"Warning: shared interactive host unavailable; continuing locally\";\nexport const INTERACTIVE_HOST_RECONNECTING_WARNING = \"Warning: shared interactive host connection lost; reconnecting\";\n\nexport interface InteractiveHostWarning {\n\treadonly type: \"interactive_host_fallback\" | \"interactive_host_action_failed\";\n\treadonly message: string;\n\treadonly cause: unknown;\n}\n\n/**\n * The session contract InteractiveMode actually runs against. The local\n * AgentSession answers these reads synchronously; the shared-host proxy answers\n * them over RPC. Declaring the union here keeps the proxy honest (no more\n * `as unknown as` lie at the boundary) and lets the compiler find every TUI\n * call site that must await.\n */\nexport type InteractiveSession = Omit<\n\tAgentSession,\n\t\"cycleThinkingLevel\" | \"getAvailableThinkingLevels\" | \"getSessionStats\" | \"getUserMessagesForForking\"\n> & {\n\tcycleThinkingLevel(): ThinkingLevel | undefined | Promise<ThinkingLevel | undefined>;\n\tgetAvailableThinkingLevels(): ThinkingLevel[] | Promise<ThinkingLevel[]>;\n\tgetSessionStats():\n\t\t| ReturnType<AgentSession[\"getSessionStats\"]>\n\t\t| Promise<ReturnType<AgentSession[\"getSessionStats\"]>>;\n\tgetUserMessagesForForking():\n\t\t| ReturnType<AgentSession[\"getUserMessagesForForking\"]>\n\t\t| Promise<ReturnType<AgentSession[\"getUserMessagesForForking\"]>>;\n};\n\nexport type InteractiveHostUiHandler = (\n\trequest: import(\"../rpc/rpc-types.ts\").RpcExtensionUIRequest,\n) =>\n\t| Promise<import(\"../rpc/rpc-types.ts\").RpcExtensionUIResponse | undefined>\n\t| import(\"../rpc/rpc-types.ts\").RpcExtensionUIResponse\n\t| undefined;\n\nexport interface InteractiveHostRuntimeOptions {\n\treadonly socket: string;\n\treadonly agentDir?: string;\n\treadonly ensureHost?: (options: { socket: string; agentDir?: string }) => Promise<EnsuredHost | undefined>;\n\tonWarning?: (warning: InteractiveHostWarning) => void;\n}\n\n/**\n * Replace only the transport-facing session operations. The object returned is\n * deliberately still an AgentSessionRuntime: InteractiveMode and extensions\n * retain their existing runtime seam, while the authoritative prompt/session\n * state is hosted by the shared RPC process.\n */\nexport async function createInteractiveHostRuntime(\n\tlocalRuntime: AgentSessionRuntime,\n\toptions: InteractiveHostRuntimeOptions,\n): Promise<AgentSessionRuntime> {\n\tconst sessionPath = localRuntime.session.sessionFile;\n\tif (!sessionPath) return localRuntime;\n\tconst startHost = options.ensureHost ?? ((hostOptions) => ensureHost(hostOptions));\n\tlet remoteSession: RemoteSessionProxy | undefined;\n\tlet remoteRuntime: RemoteInteractiveRuntime | undefined;\n\tlet reconnecting: Promise<void> | undefined;\n\tlet disconnectQueued = false;\n\tlet disposed = false;\n\tlet fallbackWarned = false;\n\tlet reconnectWarningShown = false;\n\tconst warnReconnect = (cause: unknown) => {\n\t\tif (reconnectWarningShown) return;\n\t\treconnectWarningShown = true;\n\t\toptions.onWarning?.({\n\t\t\ttype: \"interactive_host_action_failed\",\n\t\t\tmessage: INTERACTIVE_HOST_RECONNECTING_WARNING,\n\t\t\tcause,\n\t\t});\n\t};\n\tconst warnFallback = (cause: unknown) => {\n\t\tif (fallbackWarned) return;\n\t\tfallbackWarned = true;\n\t\toptions.onWarning?.({ type: \"interactive_host_fallback\", message: INTERACTIVE_HOST_FALLBACK_WARNING, cause });\n\t};\n\tlet scheduleReconnect: () => void = () => {};\n\tconst client = new RpcClient({\n\t\tsocketPath: options.socket,\n\t\tonDisconnect: () => {\n\t\t\tdisconnectQueued = true;\n\t\t\tscheduleReconnect();\n\t\t},\n\t});\n\tscheduleReconnect = () => {\n\t\tif (!remoteSession || reconnecting || disposed || remoteRuntime?.isFallback) return;\n\t\tremoteRuntime?.enterReconnecting();\n\t\treconnecting = (async () => {\n\t\t\tlet cause: unknown;\n\t\t\tfor (let attempt = 0; attempt < 3; attempt++) {\n\t\t\t\tif (disposed) return;\n\t\t\t\tdisconnectQueued = false;\n\t\t\t\ttry {\n\t\t\t\t\tawait startHost({ socket: options.socket, agentDir: options.agentDir });\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tawait client.start();\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tawait client.openSession({ sessionPath, cwd: localRuntime.cwd });\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tif (remoteRuntime) await remoteRuntime.reRegisterClientInfo();\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tawait remoteSession.refresh();\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t\tfallbackWarned = false;\n\t\t\t\t\treconnectWarningShown = false;\n\t\t\t\t\tremoteRuntime?.enterConnected();\n\t\t\t\t\treturn;\n\t\t\t\t} catch (error) {\n\t\t\t\t\tcause = error;\n\t\t\t\t\tawait client.stop().catch(() => {});\n\t\t\t\t\tif (disposed) return;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!disposed) {\n\t\t\t\tawait remoteRuntime?.enterFallback();\n\t\t\t\twarnFallback(cause);\n\t\t\t}\n\t\t})().finally(() => {\n\t\t\treconnecting = undefined;\n\t\t\tif (disconnectQueued && !disposed && !remoteRuntime?.isFallback) scheduleReconnect();\n\t\t});\n\t};\n\ttry {\n\t\tawait startHost({ socket: options.socket, agentDir: options.agentDir });\n\t\tawait client.start();\n\t\tawait client.setClientInfo(80, [...HOST_CLIENT_CAPABILITIES]);\n\t\tconst startupEvents: import(\"../rpc/rpc-client.ts\").RpcClientEvent[] = [];\n\t\tconst stopBuffering = client.onEvent((event) => startupEvents.push(event));\n\t\tconst opened = await client.openSession({\n\t\t\tsessionPath,\n\t\t\tcwd: localRuntime.cwd,\n\t\t\tprovider: localRuntime.session.model?.provider,\n\t\t\tmodelId: localRuntime.session.model?.id,\n\t\t\tthinkingLevel: localRuntime.session.thinkingLevel,\n\t\t});\n\t\tremoteSession = createRemoteSessionProxy(\n\t\t\tlocalRuntime.session,\n\t\t\tlocalRuntime.services.agentDir,\n\t\t\tclient,\n\t\t\topened.state,\n\t\t\toptions.onWarning,\n\t\t\t(cause) => {\n\t\t\t\tif (remoteRuntime?.isReconnecting) warnReconnect(cause);\n\t\t\t\telse warnFallback(cause);\n\t\t\t},\n\t\t\tstartupEvents.filter((event) => !(\"sessionId\" in event) || event.sessionId === opened.sessionId),\n\t\t);\n\t\tstopBuffering();\n\t\tif (opened.state.isBashRunning && !opened.attached) {\n\t\t\t// Only a newly opened session can have an execution orphaned by a\n\t\t\t// previous connection. An attach is an observer of the same live runtime;\n\t\t\t// aborting it would cancel work owned by the surviving attachment.\n\t\t\tawait client.abortBash().catch(() => {});\n\t\t}\n\t\tif (opened.attached) await remoteSession.refresh();\n\t\tremoteRuntime = new RemoteInteractiveRuntime(localRuntime, remoteSession, client, {\n\t\t\tonTransportGone: (cause) => {\n\t\t\t\tif (remoteRuntime?.isReconnecting) warnReconnect(cause);\n\t\t\t\telse warnFallback(cause);\n\t\t\t},\n\t\t\tget reconnecting() {\n\t\t\t\treturn reconnecting;\n\t\t\t},\n\t\t\tdispose: () => {\n\t\t\t\tdisposed = true;\n\t\t\t},\n\t\t});\n\t\treturn remoteRuntime as unknown as AgentSessionRuntime;\n\t} catch (cause) {\n\t\tawait client.stop().catch(() => {});\n\t\twarnFallback(cause);\n\t\treturn localRuntime;\n\t}\n}\n\nexport class RemoteInteractiveRuntime {\n\treadonly #local: AgentSessionRuntime;\n\treadonly #remoteSession: RemoteSessionProxy;\n\treadonly #client: RpcClient;\n\treadonly #lifecycle?: { readonly reconnecting: Promise<void> | undefined; readonly dispose: () => void };\n\treadonly #onTransportGone: (cause: unknown) => void;\n\t#rebindSession: (() => Promise<void>) | undefined;\n\t#beforeSessionInvalidate: (() => void) | undefined;\n\t#state: \"connected\" | \"reconnecting\" | \"fallback\" | \"disposed\" = \"connected\";\n\t#fallbackHandoff: Promise<void> | undefined;\n\tget isReconnecting(): boolean {\n\t\treturn this.#state === \"reconnecting\";\n\t}\n\tget isFallback(): boolean {\n\t\treturn this.#state === \"fallback\";\n\t}\n\n\tconstructor(\n\t\tlocal: AgentSessionRuntime,\n\t\tremoteSession: RemoteSessionProxy,\n\t\tclient: RpcClient,\n\t\tlifecycle?: { readonly reconnecting: Promise<void> | undefined; readonly dispose: () => void } & {\n\t\t\tonTransportGone: (cause: unknown) => void;\n\t\t},\n\t) {\n\t\tthis.#local = local;\n\t\tthis.#remoteSession = remoteSession;\n\t\tthis.#client = client;\n\t\tthis.#lifecycle = lifecycle;\n\t\tthis.#onTransportGone = lifecycle?.onTransportGone ?? (() => {});\n\t}\n\n\tasync #call<T>(call: () => Promise<T>): Promise<T> {\n\t\ttry {\n\t\t\treturn await call();\n\t\t} catch (error) {\n\t\t\tif (isTransportGoneError(error)) {\n\t\t\t\tthis.#onTransportGone(error);\n\t\t\t\treturn { cancelled: true } as T;\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tenterConnected(): void {\n\t\tif (this.#state !== \"disposed\" && this.#state !== \"fallback\") this.#state = \"connected\";\n\t}\n\n\tenterReconnecting(): void {\n\t\tif (this.#state !== \"disposed\" && this.#state !== \"fallback\") this.#state = \"reconnecting\";\n\t}\n\n\tasync enterFallback(): Promise<void> {\n\t\tif (this.#state === \"disposed\" || this.#state === \"fallback\") return;\n\t\tthis.#state = \"fallback\";\n\t\tthis.#beforeSessionInvalidate?.();\n\t\tconst rebind = this.#rebindSession?.();\n\t\tif (rebind) {\n\t\t\tthis.#fallbackHandoff = rebind.catch((error) => {\n\t\t\t\tthis.#onTransportGone(error);\n\t\t\t});\n\t\t\tawait this.#fallbackHandoff;\n\t\t}\n\t}\n\n\tget session(): AgentSession {\n\t\treturn this.#state === \"fallback\" || this.#state === \"disposed\"\n\t\t\t? this.#local.session\n\t\t\t: this.#remoteSession.session;\n\t}\n\tget services(): AgentSessionRuntime[\"services\"] {\n\t\treturn this.#local.services;\n\t}\n\tget cwd(): string {\n\t\treturn this.session.sessionManager.getCwd();\n\t}\n\tget diagnostics(): readonly AgentSessionRuntimeDiagnostic[] {\n\t\treturn this.#local.diagnostics;\n\t}\n\tget modelFallbackMessage(): string | undefined {\n\t\treturn this.#local.modelFallbackMessage;\n\t}\n\tget launchProfile(): AgentSessionRuntime[\"launchProfile\"] {\n\t\treturn this.#local.launchProfile;\n\t}\n\tsetBeforeSessionInvalidate(callback?: () => void): void {\n\t\tthis.#beforeSessionInvalidate = callback;\n\t\tthis.#local.setBeforeSessionInvalidate(callback);\n\t}\n\tsetRebindSession(callback?: () => Promise<void>): void {\n\t\tthis.#rebindSession = callback;\n\t\tthis.#local.setRebindSession(callback);\n\t\tif (callback && this.#state === \"fallback\" && !this.#fallbackHandoff) {\n\t\t\tthis.#fallbackHandoff = callback().catch((error) => {\n\t\t\t\tthis.#onTransportGone(error);\n\t\t\t});\n\t\t}\n\t}\n\tsetHostUiHandler(callback?: InteractiveHostUiHandler): void {\n\t\tthis.#remoteSession.setHostUiHandler(callback);\n\t}\n\t/**\n\t * Forward a debounced draft of an open host `question` request. Best-effort:\n\t * the host keeps its own timer, so a lost frame only delays the deadline\n\t * refresh, and a gone transport is already reported by the event stream.\n\t */\n\tsendHostUiProgress(record: import(\"../rpc/rpc-types.ts\").RpcExtensionUIProgress): void {\n\t\tvoid this.#client.sendExtensionUIProgress(record).catch(() => {});\n\t}\n\t#clientInfoSent = false;\n\t#lastClientWidth = 80;\n\tsetClientInfo(width: number): void {\n\t\tthis.#lastClientWidth = width;\n\t\tconst capabilities = this.#clientInfoSent ? undefined : [...HOST_CLIENT_CAPABILITIES];\n\t\tthis.#clientInfoSent = true;\n\t\tvoid this.#client.setClientInfo(width, capabilities).catch(() => {});\n\t}\n\tasync reRegisterClientInfo(): Promise<void> {\n\t\tawait this.#client.setClientInfo(this.#lastClientWidth, [...HOST_CLIENT_CAPABILITIES]);\n\t}\n\tasync dispose(): Promise<void> {\n\t\tif (this.#state === \"disposed\") return;\n\t\tthis.#state = \"disposed\";\n\t\tthis.#lifecycle?.dispose();\n\t\tawait this.#lifecycle?.reconnecting?.catch(() => {});\n\t\tawait this.#fallbackHandoff?.catch(() => {});\n\t\tconst errors: unknown[] = [];\n\t\tfor (const cleanup of [\n\t\t\t() => this.#remoteSession.abortLocalBash(),\n\t\t\t() => this.#client.closeSession(),\n\t\t\t() => this.#client.stop(),\n\t\t\t() => this.#local.dispose(),\n\t\t]) {\n\t\t\ttry {\n\t\t\t\tawait cleanup();\n\t\t\t} catch (error) {\n\t\t\t\terrors.push(error);\n\t\t\t}\n\t\t}\n\t\tif (errors.length > 0) throw errors[0];\n\t}\n\tasync newSession(options?: {\n\t\tparentSession?: string;\n\t\tsetup?: (sessionManager: SessionManager) => Promise<void>;\n\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t}): Promise<{ cancelled: boolean }> {\n\t\tif (this.#state === \"fallback\") return this.#local.newSession(options);\n\t\t// Suppresses for the ENTIRE command, not just the refresh tail: a\n\t\t// multi-session host emits session_replaced while completing it, so the echo\n\t\t// can arrive before the refresh/rebind sequence below starts and race it -\n\t\t// newSession transports setup entries between two refreshes.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() => this.#client.newSession(options?.parentSession));\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#remoteSession.refresh();\n\t\t\t\t\tif (options?.setup) {\n\t\t\t\t\t\tconst capture = SessionManager.inMemory(this.#remoteSession.session.sessionManager.getCwd());\n\t\t\t\t\t\tawait options.setup(capture);\n\t\t\t\t\t\tfor (const entry of capture.getEntries()) await this.#client.appendSessionEntry(entry);\n\t\t\t\t\t\tawait this.#remoteSession.refresh();\n\t\t\t\t\t}\n\t\t\t\t\tawait this.#rebindSession?.();\n\t\t\t\t\tif (options?.withSession) await options.withSession(this.#remoteSession.createReplacedSessionContext());\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\tasync switchSession(\n\t\tsessionPath: string,\n\t\toptions?: {\n\t\t\tcwdOverride?: string;\n\t\t\twithSession?: (ctx: ReplacedSessionContext) => Promise<void>;\n\t\t\tprojectTrustContextFactory?: (cwd: string) => ProjectTrustContext;\n\t\t},\n\t): Promise<{ cancelled: boolean }> {\n\t\tif (this.#state === \"fallback\") return this.#local.switchSession(sessionPath, options);\n\t\t// See newSession: the suppression must cover the command itself, since the\n\t\t// host emits session_replaced while completing it.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() =>\n\t\t\t\t\tthis.#client.switchSession(\n\t\t\t\t\t\tsessionPath,\n\t\t\t\t\t\toptions?.cwdOverride === undefined ? undefined : { cwdOverride: options.cwdOverride },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#remoteSession.refresh();\n\t\t\t\t\tawait this.#rebindSession?.();\n\t\t\t\t\t// The shared host already resolved trust; this callback is retained for\n\t\t\t\t\t// compatibility, but its result cannot override host-authoritative state.\n\t\t\t\t\toptions?.projectTrustContextFactory?.(this.#remoteSession.session.sessionManager.getCwd());\n\t\t\t\t\tif (options?.withSession) await options.withSession(this.#remoteSession.createReplacedSessionContext());\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\tasync fork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\"; withSession?: (ctx: ReplacedSessionContext) => Promise<void> },\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\tif (this.#state === \"fallback\") return this.#local.fork(entryId, options);\n\t\t// See newSession: the suppression must cover the command itself.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() => this.#client.fork(entryId, options));\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#refreshAndRebind();\n\t\t\t\t\tif (options?.withSession) await options.withSession(this.#remoteSession.createReplacedSessionContext());\n\t\t\t\t}\n\t\t\t\treturn { cancelled: result.cancelled, selectedText: result.text };\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\tasync importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\tif (this.#state === \"fallback\") return this.#local.importFromJsonl(inputPath, cwdOverride);\n\t\t// See newSession: the suppression must cover the command itself.\n\t\treturn this.#remoteSession\n\t\t\t.aroundLocalReplacement(async () => {\n\t\t\t\tconst result = await this.#call(() => this.#client.importJsonl(inputPath, cwdOverride));\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tthis.#beforeSessionInvalidate?.();\n\t\t\t\t\tthis.#remoteSession.abortLocalBash();\n\t\t\t\t\tawait this.#refreshAndRebind();\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (isTransportGoneError(error)) return { cancelled: true };\n\t\t\t\tthrow error;\n\t\t\t});\n\t}\n\n\tasync #refreshAndRebind(): Promise<void> {\n\t\tawait this.#remoteSession.refresh();\n\t\tawait this.#rebindSession?.();\n\t}\n}\n\ninterface RemoteSessionProxy {\n\treadonly session: AgentSession;\n\tsetHostUiHandler(callback?: InteractiveHostUiHandler): void;\n\trefresh(): Promise<void>;\n\t/**\n\t * Run a replacement this runtime is driving itself, suppressing the refresh\n\t * that the host's broadcast `session_replaced` would otherwise trigger. The\n\t * caller owns the refresh/rebind ordering for its own replacements, so the\n\t * scope must cover the command itself, not just its refresh tail.\n\t */\n\taroundLocalReplacement<T>(body: () => Promise<T>): Promise<T>;\n\tabortLocalBash(): void;\n\tcreateReplacedSessionContext(): ReplacedSessionContext;\n}\n\n/** Exported for direct coverage of the wire-event handling below. */\nexport function createRemoteSessionProxy(\n\tlocal: AgentSession,\n\tagentDir: string,\n\tclient: RpcClient,\n\tinitialState: ReturnType<typeof stateFromRpc>,\n\tonWarning?: (warning: InteractiveHostWarning) => void,\n\tonTransportGone?: (cause: unknown) => void,\n\tstartupEvents: readonly import(\"../rpc/rpc-client.ts\").RpcClientEvent[] = [],\n): RemoteSessionProxy {\n\t// Fire-and-forget setters keep the sync AgentSession signature, but their RPC\n\t// failures must not vanish: the matching *_changed wire event confirms success,\n\t// and a rejection here is the only signal of failure.\n\tconst reportActionFailure = (action: string) => (error: unknown) => {\n\t\tconst transportGone = isTransportGoneError(error);\n\t\tif (transportGone) onTransportGone?.(error);\n\t\telse\n\t\t\tonWarning?.({\n\t\t\t\ttype: \"interactive_host_action_failed\",\n\t\t\t\tmessage: `Warning: shared interactive host ${action} failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\tcause: error,\n\t\t\t});\n\t};\n\tconst transportCall = async <T>(action: string, call: () => Promise<T>, cancelledValue?: T): Promise<T> => {\n\t\ttry {\n\t\t\treturn await call();\n\t\t} catch (error) {\n\t\t\tif (!isTransportGoneError(error)) throw error;\n\t\t\treportActionFailure(action)(error);\n\t\t\treturn cancelledValue as T;\n\t\t}\n\t};\n\tlet state = { ...initialState };\n\tconst waitForBashCallbacks = async (promises: Set<Promise<void>>, allowAbandonment: boolean): Promise<boolean> => {\n\t\tif (promises.size === 0) return true;\n\t\tconst settled = Promise.allSettled([...promises]).then(() => true);\n\t\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\t\tconst bounded = new Promise<false>((resolve) => {\n\t\t\ttimeout = setTimeout(resolve, allowAbandonment ? 100 : 5_000, false);\n\t\t\ttimeout.unref?.();\n\t\t});\n\t\ttry {\n\t\t\treturn await Promise.race([settled, bounded]);\n\t\t} finally {\n\t\t\tif (timeout) clearTimeout(timeout);\n\t\t}\n\t};\n\tconst executionNamespace = randomUUID();\n\tconst cleanupRemoteBashOutput = async (path: string): Promise<void> => {\n\t\tlet cleanupTimeout: ReturnType<typeof setTimeout> | undefined;\n\t\ttry {\n\t\t\tawait Promise.race([\n\t\t\t\tclient.cleanupBashOutput(path),\n\t\t\t\tnew Promise<never>((_, reject) => {\n\t\t\t\t\tcleanupTimeout = setTimeout(() => reject(new Error(\"RPC cleanup timed out\")), 1_000);\n\t\t\t\t}),\n\t\t\t]);\n\t\t\treturn;\n\t\t} catch (transportError) {\n\t\t\t// Spill paths are shared host filesystem paths. If the RPC transport is\n\t\t\t// already unavailable, remove locally as a bounded best-effort fallback;\n\t\t\t// a later reconnect is not required to prevent this callback failure from\n\t\t\t// permanently leaking the host-owned artifact.\n\t\t\ttry {\n\t\t\t\tawait rm(path, { force: true });\n\t\t\t\treturn;\n\t\t\t} catch (localError) {\n\t\t\t\tonWarning?.({\n\t\t\t\t\ttype: \"interactive_host_action_failed\",\n\t\t\t\t\tmessage: `Warning: failed to clean up shared bash output spill: ${localError instanceof Error ? localError.message : String(localError)}`,\n\t\t\t\t\tcause: new AggregateError([transportError, localError]),\n\t\t\t\t});\n\t\t\t}\n\t\t} finally {\n\t\t\tif (cleanupTimeout) clearTimeout(cleanupTimeout);\n\t\t}\n\t};\n\tlet nextBashExecutionId = 0;\n\tconst bashExecutions = new Map<\n\t\tstring,\n\t\t{\n\t\t\tchunk?: (chunk: string) => void | PromiseLike<void>;\n\t\t\tpromises: Set<Promise<void>>;\n\t\t\terror: unknown;\n\t\t\thasError: boolean;\n\t\t}\n\t>();\n\tlet hostUiHandler: InteractiveHostUiHandler | undefined;\n\tconst pendingUiRequests: import(\"../rpc/rpc-types.ts\").RpcExtensionUIRequest[] = [];\n\tlet localBashAbortController: AbortController | undefined;\n\tlet localBashRunning = false;\n\tlet hostBashRunning = initialState.isBashRunning;\n\tlet nextQueuedInputOrder = Math.max(0, ...initialState.ordered.map((item) => item.enqueueOrder));\n\tlet sessionManager = local.sessionManager;\n\tlet settingsManager = SettingsManager.create(initialState.cwd, agentDir, {\n\t\tprojectTrusted: initialState.projectTrusted,\n\t});\n\tconst updateBashState = () => {\n\t\tstate = { ...state, isBashRunning: localBashRunning || hostBashRunning };\n\t};\n\tconst remoteSessionManager = new Proxy({} as SessionManager, {\n\t\tget(_target, property, _receiver) {\n\t\t\tif (property === \"appendLabelChange\") {\n\t\t\t\treturn (entryId: string, label?: string) =>\n\t\t\t\t\tvoid client.setLabel(entryId, label).catch(reportActionFailure(\"appendLabelChange\"));\n\t\t\t}\n\t\t\tif (property === \"getCwd\") return () => state.cwd;\n\t\t\tif (property === \"getSessionName\") return () => state.sessionName;\n\t\t\tif (property === \"getUsageTotals\") return () => state.usageTotals;\n\t\t\tconst value = Reflect.get(sessionManager, property, sessionManager);\n\t\t\treturn typeof value === \"function\" ? value.bind(sessionManager) : value;\n\t\t},\n\t});\n\tlet streamingAssistant: Extract<AgentSession[\"messages\"][number], { role: \"assistant\" }> | undefined;\n\tlet mirroredCurrentAssistantUsage = false;\n\t/** Non-zero while this runtime is driving its own replacement sequence. */\n\tlet localReplacementDepth = 0;\n\tconst listeners = new Set<AgentSessionEventListener>();\n\tconst handleWireEvent = (wireEvent: import(\"../rpc/rpc-client.ts\").RpcClientEvent) => {\n\t\tif ((wireEvent as { type?: string }).type === \"extension_ui_request\") {\n\t\t\tconst request = wireEvent as import(\"../rpc/rpc-types.ts\").RpcExtensionUIRequest;\n\t\t\tif (hostUiHandler)\n\t\t\t\tvoid Promise.resolve(hostUiHandler(request))\n\t\t\t\t\t.then((response) => response && client.sendExtensionUIResponse(response))\n\t\t\t\t\t.catch(reportActionFailure(\"host UI response\"));\n\t\t\telse pendingUiRequests.push(request);\n\t\t\treturn;\n\t\t}\n\t\tif (wireEvent.type === \"session_replaced\") {\n\t\t\t// The host swapped the live session behind this connection - another\n\t\t\t// attached client issued the replacement, or an extension drove one that no\n\t\t\t// client issued. Nothing else re-reads the binding, so without this the\n\t\t\t// proxy keeps serving the previous session's manager, settings and message\n\t\t\t// mirror while the host has already moved on. The command response carries\n\t\t\t// only `{ cancelled }`, so this event is the only signal available here.\n\t\t\t//\n\t\t\t// A multi-session host broadcasts the event to every connection including\n\t\t\t// the one that issued the replacement, and this runtime's own replacement\n\t\t\t// methods already run an ordered refresh/rebind - newSession additionally\n\t\t\t// transports setup entries between two refreshes. Refreshing again from\n\t\t\t// here would race that sequence, so self-driven replacements are skipped.\n\t\t\tif (localReplacementDepth === 0) {\n\t\t\t\tvoid refresh().catch(reportActionFailure(\"session refresh after replacement\"));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (wireEvent.type === \"agent_settled\") state = { ...state, isStreaming: false, retryAttempt: 0 };\n\t\tif (wireEvent.type === \"bash_start\") {\n\t\t\thostBashRunning = true;\n\t\t\tupdateBashState();\n\t\t}\n\t\tif (wireEvent.type === \"bash_end\") {\n\t\t\thostBashRunning = false;\n\t\t\tupdateBashState();\n\t\t}\n\t\tif (wireEvent.type === \"bash_execution_update\" && wireEvent.id) {\n\t\t\tconst execution = bashExecutions.get(wireEvent.id);\n\t\t\tif (execution?.chunk && !execution.hasError) {\n\t\t\t\ttry {\n\t\t\t\t\tconst callbackPromise = Promise.resolve(execution.chunk(wireEvent.delta)).catch((error) => {\n\t\t\t\t\t\tif (!execution.hasError) {\n\t\t\t\t\t\t\texecution.error = error;\n\t\t\t\t\t\t\texecution.hasError = true;\n\t\t\t\t\t\t\tvoid client.abortBash().catch(() => {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t});\n\t\t\t\t\texecution.promises.add(callbackPromise);\n\t\t\t\t\tvoid callbackPromise.catch(() => {}).finally(() => execution.promises.delete(callbackPromise));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!execution.hasError) {\n\t\t\t\t\t\texecution.error = error;\n\t\t\t\t\t\texecution.hasError = true;\n\t\t\t\t\t\tvoid client.abortBash().catch(() => {});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (wireEvent.type === \"agent_start\") state = { ...state, isStreaming: true };\n\t\tif (wireEvent.type === \"compaction_start\") state = { ...state, isCompacting: true };\n\t\tif (wireEvent.type === \"compaction_end\") state = { ...state, isCompacting: false };\n\t\tif (wireEvent.type === \"auto_retry_start\") state = { ...state, retryAttempt: wireEvent.attempt };\n\t\tif (wireEvent.type === \"auto_retry_end\") state = { ...state, retryAttempt: 0 };\n\t\tif (wireEvent.type === \"queue_update\") {\n\t\t\tnextQueuedInputOrder = Math.max(nextQueuedInputOrder, ...wireEvent.ordered.map((item) => item.enqueueOrder));\n\t\t\tstate = {\n\t\t\t\t...state,\n\t\t\t\tsteering: [...wireEvent.steering],\n\t\t\t\tfollowUp: [...wireEvent.followUp],\n\t\t\t\tordered: [...wireEvent.ordered],\n\t\t\t\tpendingMessageCount: wireEvent.steering.length + wireEvent.followUp.length,\n\t\t\t};\n\t\t}\n\t\tif (wireEvent.type === \"model_changed\") {\n\t\t\tstate = { ...state, model: wireEvent.model, thinkingLevel: wireEvent.thinkingLevel };\n\t\t}\n\t\tif (wireEvent.type === \"thinking_level_changed\") state = { ...state, thinkingLevel: wireEvent.level };\n\t\tif (wireEvent.type === \"service_tier_changed\") {\n\t\t\tstate = { ...state, serviceTier: wireEvent.tier, fastMode: wireEvent.fastMode };\n\t\t}\n\t\tif (wireEvent.type === \"session_settings_changed\") {\n\t\t\tstate = {\n\t\t\t\t...state,\n\t\t\t\tsteeringMode: wireEvent.steeringMode,\n\t\t\t\tfollowUpMode: wireEvent.followUpMode,\n\t\t\t\tautoCompactionEnabled: wireEvent.autoCompactionEnabled,\n\t\t\t};\n\t\t}\n\t\tif (wireEvent.type === \"entry_appended\") {\n\t\t\ttry {\n\t\t\t\tsessionManager.appendEntry(wireEvent.entry);\n\t\t\t\tlocal.agent.state.messages = sessionManager.buildSessionContext().messages;\n\t\t\t} catch {\n\t\t\t\t// Non-fatal if the local snapshot cannot accept a concurrent entry.\n\t\t\t}\n\t\t}\n\t\tif (wireEvent.type === \"session_info_changed\") state = { ...state, sessionName: wireEvent.name };\n\t\tif (wireEvent.type === \"message_start\") {\n\t\t\tif (wireEvent.message.role === \"assistant\") {\n\t\t\t\tstreamingAssistant = structuredClone(wireEvent.message);\n\t\t\t\tmirroredCurrentAssistantUsage = false;\n\t\t\t}\n\t\t\tlocal.agent.state.messages.push(structuredClone(wireEvent.message));\n\t\t}\n\t\tif (wireEvent.type === \"message_end\") {\n\t\t\tif (wireEvent.message.role === \"assistant\") {\n\t\t\t\tstreamingAssistant = structuredClone(wireEvent.message);\n\t\t\t\tconst usage = wireEvent.message.usage;\n\t\t\t\tif (usage && !mirroredCurrentAssistantUsage) {\n\t\t\t\t\tmirroredCurrentAssistantUsage = true;\n\t\t\t\t\tconst latestPromptTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\t\t\t\t\tconst contextWindow = state.model?.contextWindow ?? 0;\n\t\t\t\t\tconst contextTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tcontextUsage:\n\t\t\t\t\t\t\tcontextWindow > 0\n\t\t\t\t\t\t\t\t? { tokens: contextTokens, contextWindow, percent: (contextTokens / contextWindow) * 100 }\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tusageTotals: {\n\t\t\t\t\t\t\t...state.usageTotals,\n\t\t\t\t\t\t\tinput: state.usageTotals.input + usage.input,\n\t\t\t\t\t\t\toutput: state.usageTotals.output + usage.output,\n\t\t\t\t\t\t\tcacheRead: state.usageTotals.cacheRead + usage.cacheRead,\n\t\t\t\t\t\t\tcacheWrite: state.usageTotals.cacheWrite + usage.cacheWrite,\n\t\t\t\t\t\t\tcost: state.usageTotals.cost + (usage.cost?.total ?? 0),\n\t\t\t\t\t\t\tlatestCacheHitRate:\n\t\t\t\t\t\t\t\tlatestPromptTokens > 0 ? (usage.cacheRead / latestPromptTokens) * 100 : undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst messages = local.agent.state.messages;\n\t\t\tconst previous = messages.at(-1);\n\t\t\tif (previous?.role === wireEvent.message.role)\n\t\t\t\tmessages[messages.length - 1] = structuredClone(wireEvent.message);\n\t\t}\n\t\tif (wireEvent.type === \"compaction_end\" && wireEvent.accepted && !wireEvent.aborted) {\n\t\t\ttry {\n\t\t\t\tlocal.sessionManager.reloadFromDisk?.();\n\t\t\t\tif (sessionManager !== local.sessionManager) sessionManager.reloadFromDisk?.();\n\t\t\t\tlocal.agent.state.messages = sessionManager.buildSessionContext().messages;\n\t\t\t} catch {\n\t\t\t\t// Non-fatal if session file is transiently locked or unavailable\n\t\t\t}\n\t\t}\n\t\tconst event = hydrateMessageUpdate(wireEvent, streamingAssistant);\n\t\tfor (const listener of listeners) listener(event);\n\t};\n\tclient.onEvent(handleWireEvent);\n\tfor (const event of startupEvents) handleWireEvent(event);\n\tconst performRefresh = async (): Promise<void> => {\n\t\t// Captured before the first await: entries that arrive via `entry_appended`\n\t\t// while this refresh is in flight are newer than the snapshot it reconciles\n\t\t// against, and must survive the rebuild below.\n\t\tconst idsAtRefreshStart = new Set(sessionManager.getEntries().map((entry) => entry.id));\n\t\tconst nextState = await transportCall(\"refresh\", () => client.getState());\n\t\tif (!nextState) return;\n\t\tstate = { ...stateFromRpc(nextState) };\n\t\tnextQueuedInputOrder = Math.max(0, ...nextState.ordered.map((item) => item.enqueueOrder));\n\t\tlet messages: AgentSession[\"messages\"];\n\t\tsettingsManager = SettingsManager.create(nextState.cwd, agentDir, {\n\t\t\tprojectTrusted: nextState.projectTrusted,\n\t\t});\n\t\tif (nextState.sessionFile) {\n\t\t\t// Keep the caller-owned manager identity when refreshing the same session.\n\t\t\t// Navigation and host-side mutations must update every existing mirror, not\n\t\t\t// leave the interactive runtime holding the pre-refresh snapshot.\n\t\t\tif (sessionManager.getSessionFile() === nextState.sessionFile) {\n\t\t\t\tsessionManager.reloadFromDisk?.();\n\t\t\t} else {\n\t\t\t\t// SessionManager.open retains the explicit path even when the host has\n\t\t\t\t// deferred creating the file for a setup-only session.\n\t\t\t\tsessionManager = SessionManager.open(nextState.sessionFile, undefined, nextState.cwd);\n\t\t\t}\n\t\t\t// The host ships its complete entry list while the session file is still\n\t\t\t// deferred (no assistant message yet, so nothing has been written), which\n\t\t\t// makes that list the only authoritative view of the session. Reconcile the\n\t\t\t// mirror to it exactly: `entry_appended` notifications that cross a\n\t\t\t// concurrent refresh land on whichever manager is current, so the mirror\n\t\t\t// can hold an arbitrary partial set rather than a prefix, and a snapshot\n\t\t\t// taken mid-bind can simply be short. Backfilling only an empty mirror\n\t\t\t// wedged it at whatever partial set it happened to hold.\n\t\t\tconst authoritative = nextState.entries;\n\t\t\tif (authoritative?.length) {\n\t\t\t\tconst mirror = sessionManager.getEntries();\n\t\t\t\tconst matches =\n\t\t\t\t\tmirror.length === authoritative.length &&\n\t\t\t\t\tmirror.every((entry, index) => entry.id === authoritative[index]?.id);\n\t\t\t\tif (!matches) {\n\t\t\t\t\tconst rebuilt = SessionManager.open(nextState.sessionFile, undefined, nextState.cwd);\n\t\t\t\t\tfor (const entry of authoritative) rebuilt.appendEntry(entry);\n\t\t\t\t\t// A notification that crossed this refresh refers to an entry the\n\t\t\t\t\t// snapshot predates, so it is newer than the snapshot; dropping it\n\t\t\t\t\t// would strand the entry until an unrelated refresh happened to\n\t\t\t\t\t// run. Keep it, in arrival order, after the authoritative list.\n\t\t\t\t\tconst authoritativeIds = new Set(authoritative.map((entry) => entry.id));\n\t\t\t\t\tfor (const entry of mirror) {\n\t\t\t\t\t\tif (!idsAtRefreshStart.has(entry.id) && !authoritativeIds.has(entry.id)) {\n\t\t\t\t\t\t\trebuilt.appendEntry(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsessionManager = rebuilt;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmessages = sessionManager.buildSessionContext().messages;\n\t\t} else {\n\t\t\tmessages = await transportCall(\"refresh\", () => client.getMessages(), []);\n\t\t}\n\t\tlocal.agent.state.messages.splice(0, local.agent.state.messages.length, ...structuredClone(messages));\n\t\tstreamingAssistant = undefined;\n\t};\n\t// Refreshes must not interleave: each one reassigns sessionManager,\n\t// settingsManager and the mirrored message list, so two in flight can commit a\n\t// mixed snapshot of two different sessions. A replacement-driven refresh races\n\t// exactly that way against a caller-driven one, so run them in order.\n\tlet refreshChain: Promise<void> = Promise.resolve();\n\tconst refresh = (): Promise<void> => {\n\t\tconst next = refreshChain.then(performRefresh, performRefresh);\n\t\trefreshChain = next.then(\n\t\t\t() => {},\n\t\t\t() => {},\n\t\t);\n\t\treturn next;\n\t};\n\tconst session = new Proxy(local, {\n\t\tget(target, property, receiver) {\n\t\t\tif (property === \"prompt\")\n\t\t\t\treturn async (message: string, options?: Parameters<AgentSession[\"prompt\"]>[1]) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait client.prompt(message, {\n\t\t\t\t\t\t\t...(options?.images ? { images: options.images } : {}),\n\t\t\t\t\t\t\t...(options?.streamingBehavior ? { streamingBehavior: options.streamingBehavior } : {}),\n\t\t\t\t\t\t\t...(options?.thinkingLevel ? { thinkingLevel: options.thinkingLevel } : {}),\n\t\t\t\t\t\t\t...(options?.sessionTitlePrompt !== undefined\n\t\t\t\t\t\t\t\t? { sessionTitlePrompt: options.sessionTitlePrompt }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(options?.expandPromptTemplates !== undefined\n\t\t\t\t\t\t\t\t? { expandPromptTemplates: options.expandPromptTemplates }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(options?.promptDisposition ? { promptDisposition: options.promptDisposition } : {}),\n\t\t\t\t\t\t\t...(options?.preflightResult ? { preflightResult: options.preflightResult } : {}),\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (!isTransportGoneError(error)) throw error;\n\t\t\t\t\t\treportActionFailure(\"prompt\")(error);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\tif (property === \"abort\") return () => client.abort();\n\t\t\tif (property === \"abortCompaction\")\n\t\t\t\treturn () => void client.abortCompaction().catch(reportActionFailure(\"abortCompaction\"));\n\t\t\tif (property === \"steer\")\n\t\t\t\treturn (\n\t\t\t\t\tmessage: string,\n\t\t\t\t\timages?: Parameters<AgentSession[\"steer\"]>[1],\n\t\t\t\t\trecovery?: { enqueueOrder?: number },\n\t\t\t\t) => {\n\t\t\t\t\tconst enqueueOrder =\n\t\t\t\t\t\trecovery?.enqueueOrder ?? Math.max(0, ...state.ordered.map((item) => item.enqueueOrder)) + 1;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tsteering: [...state.steering, message],\n\t\t\t\t\t\tordered: [...state.ordered, { text: message, mode: \"steer\", enqueueOrder }],\n\t\t\t\t\t\tpendingMessageCount: state.pendingMessageCount + 1,\n\t\t\t\t\t};\n\t\t\t\t\treturn transportCall(\"steer\", () => client.steer(message, images, { ...recovery, enqueueOrder }));\n\t\t\t\t};\n\t\t\tif (property === \"followUp\")\n\t\t\t\treturn (\n\t\t\t\t\tmessage: string,\n\t\t\t\t\timages?: Parameters<AgentSession[\"followUp\"]>[1],\n\t\t\t\t\trecovery?: { enqueueOrder?: number },\n\t\t\t\t) => {\n\t\t\t\t\tconst enqueueOrder =\n\t\t\t\t\t\trecovery?.enqueueOrder ?? Math.max(0, ...state.ordered.map((item) => item.enqueueOrder)) + 1;\n\t\t\t\t\tstate = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tfollowUp: [...state.followUp, message],\n\t\t\t\t\t\tordered: [...state.ordered, { text: message, mode: \"followUp\", enqueueOrder }],\n\t\t\t\t\t\tpendingMessageCount: state.pendingMessageCount + 1,\n\t\t\t\t\t};\n\t\t\t\t\treturn transportCall(\"followUp\", () => client.followUp(message, images, { ...recovery, enqueueOrder }));\n\t\t\t\t};\n\t\t\tif (property === \"waitForIdle\") return () => client.waitForIdle();\n\t\t\tif (property === \"getLastAssistantText\") return () => target.getLastAssistantText();\n\t\t\tif (property === \"setModel\" || property === \"setSessionModel\")\n\t\t\t\treturn async (model: NonNullable<AgentSession[\"model\"]>) => {\n\t\t\t\t\tconst next = await transportCall(\"setModel\", () => client.setModel(model.provider, model.id), undefined);\n\t\t\t\t\treturn next ? { systemPromptName: next.systemPromptName, model: next } : undefined;\n\t\t\t\t};\n\t\t\tif (property === \"setSessionThinkingLevel\")\n\t\t\t\treturn (level: AgentSession[\"thinkingLevel\"]) =>\n\t\t\t\t\tvoid client\n\t\t\t\t\t\t.setThinkingLevel(level, { scope: \"turn\" })\n\t\t\t\t\t\t.catch(reportActionFailure(\"setSessionThinkingLevel\"));\n\t\t\tif (property === \"setSessionFastMode\")\n\t\t\t\treturn (enabled: boolean) =>\n\t\t\t\t\tvoid client.setFastMode(enabled).catch(reportActionFailure(\"setSessionFastMode\"));\n\t\t\tif (property === \"abortRetry\") return () => void client.abortRetry().catch(reportActionFailure(\"abortRetry\"));\n\t\t\tif (property === \"setAutoRetryEnabled\")\n\t\t\t\treturn (enabled: boolean) =>\n\t\t\t\t\tvoid client.setAutoRetry(enabled).catch(reportActionFailure(\"setAutoRetryEnabled\"));\n\t\t\tif (property === \"reserveQueuedInputOrder\") return () => ++nextQueuedInputOrder;\n\t\t\tif (property === \"setFavoriteModels\")\n\t\t\t\treturn (models: Parameters<AgentSession[\"setFavoriteModels\"]>[0]) => {\n\t\t\t\t\tstate = { ...state, favoriteModels: [...models] };\n\t\t\t\t\tvoid client.setFavoriteModels(models).catch(reportActionFailure(\"setFavoriteModels\"));\n\t\t\t\t};\n\t\t\tif (property === \"setScopedModels\")\n\t\t\t\treturn (models: Parameters<AgentSession[\"setScopedModels\"]>[0]) => {\n\t\t\t\t\tstate = { ...state, scopedModels: [...models] };\n\t\t\t\t\tvoid client.setScopedModels(models).catch(reportActionFailure(\"setScopedModels\"));\n\t\t\t\t};\n\t\t\tif (property === \"cycleModel\")\n\t\t\t\treturn (direction?: \"forward\" | \"backward\") =>\n\t\t\t\t\ttransportCall(\"cycleModel\", () => client.cycleModel(direction), undefined);\n\t\t\tif (property === \"setThinkingLevel\")\n\t\t\t\treturn (level: AgentSession[\"thinkingLevel\"]) =>\n\t\t\t\t\tvoid client.setThinkingLevel(level).catch(reportActionFailure(\"setThinkingLevel\"));\n\t\t\tif (property === \"cycleThinkingLevel\")\n\t\t\t\treturn () =>\n\t\t\t\t\ttransportCall(\"cycleThinkingLevel\", () => client.cycleThinkingLevel(), undefined).then(\n\t\t\t\t\t\t(result) => result?.level,\n\t\t\t\t\t);\n\t\t\tif (property === \"getAvailableThinkingLevels\")\n\t\t\t\treturn () => transportCall(\"getAvailableThinkingLevels\", () => client.getAvailableThinkingLevels(), []);\n\t\t\tif (property === \"setSteeringMode\")\n\t\t\t\treturn (mode: AgentSession[\"steeringMode\"]) =>\n\t\t\t\t\tvoid client.setSteeringMode(mode).catch(reportActionFailure(\"setSteeringMode\"));\n\t\t\tif (property === \"setFollowUpMode\")\n\t\t\t\treturn (mode: AgentSession[\"followUpMode\"]) =>\n\t\t\t\t\tvoid client.setFollowUpMode(mode).catch(reportActionFailure(\"setFollowUpMode\"));\n\t\t\tif (property === \"compact\")\n\t\t\t\treturn (instructions?: string) => transportCall(\"compact\", () => client.compact(instructions));\n\t\t\tif (property === \"setAutoCompactionEnabled\")\n\t\t\t\treturn (enabled: boolean) =>\n\t\t\t\t\tvoid client.setAutoCompaction(enabled).catch(reportActionFailure(\"setAutoCompaction\"));\n\t\t\tif (property === \"executeBash\")\n\t\t\t\treturn async (\n\t\t\t\t\tcommand: string,\n\t\t\t\t\tonChunk?: (chunk: string) => void | PromiseLike<void>,\n\t\t\t\t\toptions?: { excludeFromContext?: boolean; operations?: BashOperations | Record<string, unknown> },\n\t\t\t\t) => {\n\t\t\t\t\tif (options?.operations && typeof options.operations.exec === \"function\") {\n\t\t\t\t\t\tconst abortController = new AbortController();\n\t\t\t\t\t\tlocalBashAbortController = abortController;\n\t\t\t\t\t\tlocalBashRunning = true;\n\t\t\t\t\t\tupdateBashState();\n\t\t\t\t\t\tconst sessionAtStart = state.sessionId;\n\t\t\t\t\t\tconst prefix = settingsManager.getShellCommandPrefix();\n\t\t\t\t\t\tconst resolvedCommand = prefix ? `${prefix}\\n${command}` : command;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst result = await executeBashWithOperations(\n\t\t\t\t\t\t\t\tresolvedCommand,\n\t\t\t\t\t\t\t\tstate.cwd,\n\t\t\t\t\t\t\t\toptions.operations as BashOperations,\n\t\t\t\t\t\t\t\t{ onChunk, signal: abortController.signal },\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (state.sessionId === sessionAtStart) {\n\t\t\t\t\t\t\t\tawait transportCall(\"recordBashResult\", () =>\n\t\t\t\t\t\t\t\t\tclient.recordBashResult(command, result, options.excludeFromContext),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tlocalBashAbortController = undefined;\n\t\t\t\t\t\t\tlocalBashRunning = false;\n\t\t\t\t\t\t\tupdateBashState();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst executionId = `bash-${executionNamespace}-${++nextBashExecutionId}`;\n\t\t\t\t\tconst execution = {\n\t\t\t\t\t\tchunk: onChunk,\n\t\t\t\t\t\tpromises: new Set<Promise<void>>(),\n\t\t\t\t\t\terror: undefined as unknown,\n\t\t\t\t\t\thasError: false,\n\t\t\t\t\t};\n\t\t\t\t\tbashExecutions.set(executionId, execution);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await transportCall(\n\t\t\t\t\t\t\t\"bash\",\n\t\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\t\tclient.bash(command, {\n\t\t\t\t\t\t\t\t\texcludeFromContext: options?.excludeFromContext,\n\t\t\t\t\t\t\t\t\texecutionId,\n\t\t\t\t\t\t\t\t\toperations: options?.operations as Record<string, unknown> | undefined,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t{ output: \"\", exitCode: undefined, cancelled: true, truncated: false },\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst callbacksSettled = await waitForBashCallbacks(execution.promises, false);\n\t\t\t\t\t\tif (!callbacksSettled) {\n\t\t\t\t\t\t\tif (result.fullOutputPath) await cleanupRemoteBashOutput(result.fullOutputPath);\n\t\t\t\t\t\t\tthrow new Error(\"Bash output callback did not settle within 5000ms\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (execution.hasError) {\n\t\t\t\t\t\t\tif (result.fullOutputPath) await cleanupRemoteBashOutput(result.fullOutputPath);\n\t\t\t\t\t\t\tthrow execution.error;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tbashExecutions.delete(executionId);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\tif (property === \"abortBash\")\n\t\t\t\treturn () => {\n\t\t\t\t\tif (localBashAbortController) localBashAbortController.abort();\n\t\t\t\t\telse void client.abortBash().catch(reportActionFailure(\"abortBash\"));\n\t\t\t\t};\n\t\t\tif (property === \"getContextUsage\") return () => state.contextUsage;\n\t\t\tif (property === \"getSessionStats\")\n\t\t\t\treturn () => transportCall(\"getSessionStats\", () => client.getSessionStats(), local.getSessionStats());\n\t\t\tif (property === \"exportToHtml\")\n\t\t\t\treturn (outputPath?: string, options?: { themeName?: string }) =>\n\t\t\t\t\ttransportCall(\"exportToHtml\", () => client.exportHtml(outputPath, options?.themeName)).then(\n\t\t\t\t\t\t(result) => result?.path,\n\t\t\t\t\t);\n\t\t\tif (property === \"setSessionName\")\n\t\t\t\treturn (name: string) => client.setSessionName(name).catch(reportActionFailure(\"setSessionName\"));\n\t\t\tif (property === \"navigateTree\")\n\t\t\t\treturn async (targetId: string, options?: Parameters<AgentSession[\"navigateTree\"]>[1]) => {\n\t\t\t\t\tconst result = await transportCall(\"navigateTree\", () => client.navigateTree(targetId, options), {\n\t\t\t\t\t\tcancelled: true,\n\t\t\t\t\t});\n\t\t\t\t\tif (!result.cancelled) await refresh();\n\t\t\t\t\treturn result;\n\t\t\t\t};\n\t\t\tif (property === \"editAssistantMessage\")\n\t\t\t\treturn async (\n\t\t\t\t\tentryId: string,\n\t\t\t\t\ttext: string,\n\t\t\t\t\toptions?: Parameters<AgentSession[\"editAssistantMessage\"]>[2],\n\t\t\t\t): Promise<AssistantEditResult> => {\n\t\t\t\t\tconst result = await client.editAssistantMessage(entryId, text, {\n\t\t\t\t\t\texpectedLeafId: options?.expectedLeafId,\n\t\t\t\t\t\tsummarize: options?.summarize,\n\t\t\t\t\t\tcustomInstructions: options?.customInstructions,\n\t\t\t\t\t});\n\t\t\t\t\tif (result.outcome === \"unchanged\") return { cancelled: false, unchanged: true };\n\t\t\t\t\tif (result.outcome === \"cancelled\") return { cancelled: true, aborted: result.aborted };\n\t\t\t\t\tawait refresh();\n\t\t\t\t\treturn { cancelled: false, entryId: result.entry.id };\n\t\t\t\t};\n\t\t\tif (property === \"getUserMessagesForForking\")\n\t\t\t\treturn () => transportCall(\"getUserMessagesForForking\", () => client.getForkMessages(), []);\n\t\t\tif (property === \"subscribe\")\n\t\t\t\treturn (listener: AgentSessionEventListener) => {\n\t\t\t\t\tlisteners.add(listener);\n\t\t\t\t\tconst localUnsubscribe = target.subscribe(listener);\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tlisteners.delete(listener);\n\t\t\t\t\t\tlocalUnsubscribe();\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\tif (property === \"isStreaming\") return state.isStreaming;\n\t\t\tif (property === \"isIdle\") return !state.isStreaming;\n\t\t\tif (property === \"isCompacting\") return state.isCompacting;\n\t\t\tif (property === \"pendingMessageCount\") return state.pendingMessageCount;\n\t\t\tif (property === \"getSteeringMessages\") return () => state.steering;\n\t\t\tif (property === \"getFollowUpMessages\") return () => state.followUp;\n\t\t\tif (property === \"clearQueue\")\n\t\t\t\treturn (options?: { abortWillFollow: boolean }) => {\n\t\t\t\t\tconst result = {\n\t\t\t\t\t\tsteering: [...state.steering],\n\t\t\t\t\t\tfollowUp: [...state.followUp],\n\t\t\t\t\t\tordered: [...state.ordered],\n\t\t\t\t\t};\n\t\t\t\t\tObject.defineProperty(result, \"ordered\", { value: result.ordered, enumerable: false });\n\t\t\t\t\tvoid client.clearQueue(options).catch(reportActionFailure(\"clearQueue\"));\n\t\t\t\t\treturn result;\n\t\t\t\t};\n\t\t\tif (property === \"abortBranchSummary\")\n\t\t\t\treturn () => void client.abortBranchSummary().catch(reportActionFailure(\"abortBranchSummary\"));\n\t\t\tif (property === \"recordBashResult\")\n\t\t\t\treturn (\n\t\t\t\t\tcommand: string,\n\t\t\t\t\tresult: Parameters<AgentSession[\"recordBashResult\"]>[1],\n\t\t\t\t\toptions?: { excludeFromContext?: boolean },\n\t\t\t\t) =>\n\t\t\t\t\tvoid client\n\t\t\t\t\t\t.recordBashResult(command, result, options?.excludeFromContext)\n\t\t\t\t\t\t.catch(reportActionFailure(\"recordBashResult\"));\n\t\t\tif (property === \"set_label\") return undefined;\n\t\t\tif (property === \"retryAttempt\") return state.retryAttempt;\n\t\t\tif (property === \"isBashRunning\") return state.isBashRunning;\n\t\t\tif (property === \"reload\")\n\t\t\t\treturn (_options?: Parameters<AgentSession[\"reload\"]>[0]) =>\n\t\t\t\t\ttransportCall(\"reload\", () => client.reload(), { cancelled: true });\n\t\t\tif (property === \"checkReloadVeto\")\n\t\t\t\treturn () => transportCall(\"checkReloadVeto\", () => client.checkReloadVeto(), { cancelled: true });\n\t\t\tif (property === \"exportToJsonl\")\n\t\t\t\treturn (outputPath?: string) =>\n\t\t\t\t\ttransportCall(\"exportToJsonl\", () => client.exportJsonl(outputPath)).then((result) => result?.path);\n\t\t\t// The footer and other renderers read session.state.*; surface the\n\t\t\t// host-authoritative fields there too, not only via the direct getters.\n\t\t\tif (property === \"state\") {\n\t\t\t\tconst localState = target.state;\n\t\t\t\treturn {\n\t\t\t\t\t...localState,\n\t\t\t\t\tmodel: state.model ?? localState.model,\n\t\t\t\t\tthinkingLevel: state.thinkingLevel,\n\t\t\t\t\tisStreaming: state.isStreaming,\n\t\t\t\t\tisCompacting: state.isCompacting,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (property === \"sessionFile\") return state.sessionFile;\n\t\t\tif (property === \"sessionId\") return state.sessionId;\n\t\t\tif (property === \"sessionName\") return state.sessionName;\n\t\t\tif (property === \"serviceTier\") return state.serviceTier;\n\t\t\tif (property === \"steeringMode\") return state.steeringMode;\n\t\t\tif (property === \"followUpMode\") return state.followUpMode;\n\t\t\tif (property === \"autoCompactionEnabled\") return state.autoCompactionEnabled;\n\t\t\tif (property === \"isFastModeActive\") return () => state.fastMode;\n\t\t\tif (property === \"sessionManager\") return remoteSessionManager;\n\t\t\tif (property === \"settingsManager\") return settingsManager;\n\t\t\tif (property === \"messages\") return target.messages;\n\t\t\tif (property === \"favoriteModels\") return state.favoriteModels;\n\t\t\tif (property === \"scopedModels\") return state.scopedModels;\n\t\t\tif (property === \"model\") return state.model ?? target.model;\n\t\t\tif (property === \"thinkingLevel\") return state.thinkingLevel;\n\t\t\treturn Reflect.get(target, property, receiver);\n\t\t},\n\t});\n\treturn {\n\t\tsession,\n\t\tsetHostUiHandler: (callback) => {\n\t\t\thostUiHandler = callback;\n\t\t\tif (callback)\n\t\t\t\tfor (const request of pendingUiRequests.splice(0))\n\t\t\t\t\tvoid Promise.resolve(callback(request))\n\t\t\t\t\t\t.then((response) => response && client.sendExtensionUIResponse(response))\n\t\t\t\t\t\t.catch(reportActionFailure(\"host UI response\"));\n\t\t},\n\t\trefresh,\n\t\taroundLocalReplacement: async (body) => {\n\t\t\tlocalReplacementDepth++;\n\t\t\ttry {\n\t\t\t\treturn await body();\n\t\t\t} finally {\n\t\t\t\tlocalReplacementDepth--;\n\t\t\t}\n\t\t},\n\t\tabortLocalBash: () => localBashAbortController?.abort(),\n\t\tcreateReplacedSessionContext: () => {\n\t\t\tconst context = local.createReplacedSessionContext();\n\t\t\tObject.defineProperty(context, \"cwd\", { value: state.cwd });\n\t\t\tObject.defineProperty(context, \"sessionManager\", { value: remoteSessionManager });\n\t\t\tcontext.sendMessage = (message, options) =>\n\t\t\t\ttransportCall(\"sendMessage\", () =>\n\t\t\t\t\tclient.sendCustomMessage(message, {\n\t\t\t\t\t\ttriggerTurn: options?.triggerTurn,\n\t\t\t\t\t\tdeliverAs: options?.deliverAs,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\tcontext.sendUserMessage = (content, options) => {\n\t\t\t\tif (typeof content === \"string\")\n\t\t\t\t\treturn transportCall(\"sendUserMessage\", () =>\n\t\t\t\t\t\tclient.prompt(content, {\n\t\t\t\t\t\t\tstreamingBehavior: options?.deliverAs,\n\t\t\t\t\t\t\texpandPromptTemplates: options?.expandPromptTemplates,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\tconst text = content\n\t\t\t\t\t.filter((part) => part.type === \"text\")\n\t\t\t\t\t.map((part) => part.text)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t\tconst images = content.filter((part) => part.type === \"image\");\n\t\t\t\treturn transportCall(\"sendUserMessage\", () =>\n\t\t\t\t\tclient.prompt(text, {\n\t\t\t\t\t\timages,\n\t\t\t\t\t\tstreamingBehavior: options?.deliverAs,\n\t\t\t\t\t\texpandPromptTemplates: options?.expandPromptTemplates,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t};\n\t\t\treturn context;\n\t\t},\n\t};\n}\n\nfunction hydrateMessageUpdate(\n\tevent: RpcClientEvent,\n\tstreamingAssistant: Extract<AgentSession[\"messages\"][number], { role: \"assistant\" }> | undefined,\n): AgentSessionEvent {\n\tif (event.type !== \"message_update\" || !streamingAssistant) return event as unknown as AgentSessionEvent;\n\tconst update = event.assistantMessageEvent;\n\tif (update.type !== \"text_delta\" && update.type !== \"thinking_delta\" && update.type !== \"toolcall_delta\") {\n\t\treturn event as unknown as AgentSessionEvent;\n\t}\n\tconst content = streamingAssistant.content[update.contentIndex];\n\tif (update.type === \"text_delta\" && content?.type === \"text\") content.text += update.delta;\n\tif (update.type === \"thinking_delta\" && content?.type === \"thinking\") content.thinking += update.delta;\n\tif (update.type === \"toolcall_delta\" && content?.type === \"toolCall\") {\n\t\tconst raw = JSON.stringify(content.arguments) + update.delta;\n\t\ttry {\n\t\t\tconst parsed: unknown = JSON.parse(raw);\n\t\t\tif (typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)) {\n\t\t\t\tcontent.arguments = parsed as Record<string, unknown>;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Keep the last valid arguments until the next complete update.\n\t\t}\n\t}\n\tstreamingAssistant.usage = event.usage;\n\treturn {\n\t\ttype: \"message_update\",\n\t\tmessage: structuredClone(streamingAssistant),\n\t\tassistantMessageEvent: { ...update, partial: structuredClone(streamingAssistant) },\n\t} as AgentSessionEvent;\n}\n\nfunction stateFromRpc(state: {\n\tmodel?: AgentSession[\"model\"];\n\tthinkingLevel: AgentSession[\"thinkingLevel\"];\n\tisStreaming: boolean;\n\tisCompacting: boolean;\n\tpendingMessageCount: number;\n\tusageTotals: import(\"../../core/session-manager.ts\").UsageTotals;\n\tcontextUsage?: import(\"../../core/extensions/types.ts\").ContextUsage;\n\tretryAttempt: number;\n\tisBashRunning: boolean;\n\tsessionFile?: string;\n\tsessionId: string;\n\tsessionName?: string;\n\tcwd: string;\n\tprojectTrusted: boolean;\n\tserviceTier?: AgentSession[\"serviceTier\"];\n\tfastMode: boolean;\n\tsteeringMode: AgentSession[\"steeringMode\"];\n\tfollowUpMode: AgentSession[\"followUpMode\"];\n\tautoCompactionEnabled: boolean;\n\tentries?: import(\"../../core/session-manager.ts\").SessionEntry[];\n\tfavoriteModels: import(\"../rpc/rpc-types.ts\").RpcSessionModelEntry[];\n\tscopedModels: import(\"../rpc/rpc-types.ts\").RpcSessionModelEntry[];\n\tsteering: string[];\n\tfollowUp: string[];\n\tordered: Array<{ text: string; mode: \"steer\" | \"followUp\"; enqueueOrder: number }>;\n}) {\n\treturn state;\n}\n\nexport function isInteractiveHostEvent(event: RpcClientEvent): event is Extract<RpcClientEvent, { type: string }> {\n\treturn typeof event === \"object\" && event !== null && \"type\" in event;\n}\n"]}
|
|
@@ -210,6 +210,8 @@ export declare class InteractiveMode {
|
|
|
210
210
|
private extensionSelector;
|
|
211
211
|
private extensionInput;
|
|
212
212
|
private extensionEditor;
|
|
213
|
+
private askUserQuestion;
|
|
214
|
+
private asyncQuestion;
|
|
213
215
|
private extensionTerminalInputSubscriptions;
|
|
214
216
|
private extensionWidgetsAbove;
|
|
215
217
|
private extensionWidgetsBelow;
|
|
@@ -388,6 +390,32 @@ export declare class InteractiveMode {
|
|
|
388
390
|
* Hide the extension editor.
|
|
389
391
|
*/
|
|
390
392
|
private hideExtensionEditor;
|
|
393
|
+
/**
|
|
394
|
+
* Show the ask-user multi-question overlay in place of the editor.
|
|
395
|
+
*/
|
|
396
|
+
private showQuestionOverlay;
|
|
397
|
+
/**
|
|
398
|
+
* Hide the ask-user question overlay and restore the editor.
|
|
399
|
+
*/
|
|
400
|
+
private hideQuestionOverlay;
|
|
401
|
+
/**
|
|
402
|
+
* Park a waitForAnswer=false question behind a one-line widget above the
|
|
403
|
+
* editor. The turn keeps running; the promise settles when the user submits
|
|
404
|
+
* from the expanded component, types an ordinary reply (comment), the idle
|
|
405
|
+
* countdown expires, or the caller aborts. A newer async question supersedes
|
|
406
|
+
* a pending one, which resolves as cancelled.
|
|
407
|
+
*/
|
|
408
|
+
private showAsyncQuestion;
|
|
409
|
+
/** (Re)render the collapsed widget with a fresh idle countdown. */
|
|
410
|
+
private refreshAsyncWidget;
|
|
411
|
+
/** Editor shortcut: expand the pending async question into the full component. */
|
|
412
|
+
private handleAskUserShortcut;
|
|
413
|
+
/**
|
|
414
|
+
* Ordinary composer text while an async question is pending is the comment
|
|
415
|
+
* answer: resolve the question with it and let the framed message replace
|
|
416
|
+
* the raw text. Returns false when nothing is pending.
|
|
417
|
+
*/
|
|
418
|
+
private submitAsyncQuestionComment;
|
|
391
419
|
/**
|
|
392
420
|
* Full editor text with paste markers expanded. Prefers the editor's own
|
|
393
421
|
* getExpandedText(); falls back to expanding from the paste snapshot when
|
|
@@ -620,6 +648,11 @@ export declare class InteractiveMode {
|
|
|
620
648
|
private showUserMessageSelector;
|
|
621
649
|
private handleCloneCommand;
|
|
622
650
|
private showTreeSelector;
|
|
651
|
+
private editAssistantMessageFromTree;
|
|
652
|
+
/** Bookkeeping entries after the target (thinking level, labels, custom state) leave nothing to summarize. */
|
|
653
|
+
private treeNavigationAbandonsConversation;
|
|
654
|
+
private promptBranchSummaryChoice;
|
|
655
|
+
private runTreeNavigation;
|
|
623
656
|
private showSessionSelector;
|
|
624
657
|
private handleResumeSession;
|
|
625
658
|
private getLoginProviderOptions;
|
|
@@ -638,6 +671,8 @@ export declare class InteractiveMode {
|
|
|
638
671
|
private notifyAuthDialog;
|
|
639
672
|
private loginProvider;
|
|
640
673
|
private showLoginDialog;
|
|
674
|
+
/** #1542: a cancelled login is a neutral status line; only a genuine failure is an error. */
|
|
675
|
+
private showLoginFailure;
|
|
641
676
|
private handleReloadCommand;
|
|
642
677
|
private handleExportCommand;
|
|
643
678
|
private getPathCommandArgument;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
|