@code-yeongyu/senpi 2026.9.12-3 → 2026.9.12
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 +0 -60
- package/README.md +1 -1
- package/dist/bun/cli.d.ts +1 -2
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js +8 -5
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -2
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/experimental/auth.d.ts +16 -0
- package/dist/cli/experimental/auth.d.ts.map +1 -0
- package/dist/cli/experimental/auth.js +13 -0
- package/dist/cli/experimental/auth.js.map +1 -0
- package/dist/cli/experimental/cli.d.ts +6 -0
- package/dist/cli/experimental/cli.d.ts.map +1 -0
- package/dist/cli/experimental/cli.js +5 -0
- package/dist/cli/experimental/cli.js.map +1 -0
- package/dist/cli/experimental/command-options.d.ts +17 -0
- package/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/cli/experimental/command-options.js +35 -0
- package/dist/cli/experimental/command-options.js.map +1 -0
- package/dist/cli/experimental/command.d.ts +63 -0
- package/dist/cli/experimental/command.d.ts.map +1 -0
- package/dist/cli/experimental/command.js +127 -0
- package/dist/cli/experimental/command.js.map +1 -0
- package/dist/cli/experimental/commands/client.d.ts +13 -0
- package/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/cli/experimental/commands/client.js +25 -0
- package/dist/cli/experimental/commands/client.js.map +1 -0
- package/dist/cli/experimental/commands/pi.d.ts +15 -0
- package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
- package/dist/cli/experimental/commands/pi.js +28 -0
- package/dist/cli/experimental/commands/pi.js.map +1 -0
- package/dist/cli/experimental/commands/server.d.ts +13 -0
- package/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/cli/experimental/commands/server.js +25 -0
- package/dist/cli/experimental/commands/server.js.map +1 -0
- package/dist/cli/experimental/transport-address.d.ts +10 -0
- package/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/cli/experimental/transport-address.js +38 -0
- package/dist/cli/experimental/transport-address.js.map +1 -0
- package/dist/cli.js +0 -3
- package/dist/cli.js.map +1 -1
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/remote-session.d.ts +53 -0
- package/dist/client/remote-session.d.ts.map +1 -0
- package/dist/client/remote-session.js +340 -0
- package/dist/client/remote-session.js.map +1 -0
- package/dist/client/transcript.d.ts +12 -0
- package/dist/client/transcript.d.ts.map +1 -0
- package/dist/client/transcript.js +98 -0
- package/dist/client/transcript.js.map +1 -0
- package/dist/config.d.ts +0 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -1
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +6 -18
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session.d.ts +17 -54
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +157 -153
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +4 -6
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction-settings-access.d.ts +2 -18
- package/dist/core/compaction-settings-access.d.ts.map +1 -1
- package/dist/core/compaction-settings-access.js +4 -35
- package/dist/core/compaction-settings-access.js.map +1 -1
- package/dist/core/compaction-settings-resolver.d.ts +2 -2
- package/dist/core/compaction-settings-resolver.d.ts.map +1 -1
- package/dist/core/compaction-settings-resolver.js +3 -6
- package/dist/core/compaction-settings-resolver.js.map +1 -1
- package/dist/core/extensions/builtin/ask-user/extension.d.ts.map +1 -1
- package/dist/core/extensions/builtin/ask-user/extension.js +0 -11
- package/dist/core/extensions/builtin/ask-user/extension.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.js +1 -2
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-preset/presets.js +1 -7
- package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +2 -4
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/keybindings.d.ts +0 -10
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +0 -8
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/messages.d.ts +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -5
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +0 -8
- 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 +0 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +0 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +2 -5
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/retry-fallback/settings.d.ts +0 -2
- package/dist/core/retry-fallback/settings.d.ts.map +1 -1
- package/dist/core/retry-fallback/settings.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -5
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +19 -68
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-write-reservation.d.ts +0 -9
- package/dist/core/session-write-reservation.d.ts.map +1 -1
- package/dist/core/session-write-reservation.js +0 -33
- package/dist/core/session-write-reservation.js.map +1 -1
- package/dist/core/settings-manager.d.ts +5 -12
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +6 -18
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/settings-public-types.d.ts +1 -1
- package/dist/core/settings-public-types.d.ts.map +1 -1
- package/dist/core/settings-public-types.js.map +1 -1
- package/dist/core/skills.d.ts +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +2 -6
- package/dist/core/skills.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +9 -8
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +142 -3
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +12 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +168 -4
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +53 -2
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +58 -2
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +47 -2
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +4 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +141 -4
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +153 -4
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +2 -2
- package/dist/migrations.js.map +1 -1
- package/dist/modes/app-server/threads/turn-runtime.d.ts +1 -3
- 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 +1 -1
- package/dist/modes/app-server/threads/turns.js.map +1 -1
- package/dist/modes/app-server/turn-adapter.js +2 -4
- package/dist/modes/app-server/turn-adapter.js.map +1 -1
- package/dist/modes/interactive/components/ask-user-async-widget.d.ts +12 -17
- package/dist/modes/interactive/components/ask-user-async-widget.d.ts.map +1 -1
- package/dist/modes/interactive/components/ask-user-async-widget.js +23 -47
- package/dist/modes/interactive/components/ask-user-async-widget.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +0 -7
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +2 -26
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/assistant-render-descriptors.d.ts +0 -4
- package/dist/modes/interactive/components/assistant-render-descriptors.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-render-descriptors.js +5 -8
- package/dist/modes/interactive/components/assistant-render-descriptors.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +1 -10
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +1 -37
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +8 -8
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts +1 -4
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js +2 -14
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +4 -4
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution-renderer.d.ts +1 -4
- package/dist/modes/interactive/components/tool-execution-renderer.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution-renderer.js +10 -23
- package/dist/modes/interactive/components/tool-execution-renderer.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution-types.d.ts +2 -18
- package/dist/modes/interactive/components/tool-execution-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution-types.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +3 -3
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +0 -5
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +15 -10
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +138 -178
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -2
- package/dist/modes/interactive/theme/grok-day.json +1 -2
- package/dist/modes/interactive/theme/grok-night.json +1 -2
- package/dist/modes/interactive/theme/light.json +1 -2
- package/dist/modes/interactive/theme/theme-controller.d.ts +0 -1
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +0 -5
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +2 -6
- package/dist/modes/interactive/theme/theme.d.ts +5 -10
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +117 -14
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/interactive/tips/catalog/input-tips.d.ts +0 -5
- package/dist/modes/interactive/tips/catalog/input-tips.d.ts.map +1 -1
- package/dist/modes/interactive/tips/catalog/input-tips.js +0 -5
- package/dist/modes/interactive/tips/catalog/input-tips.js.map +1 -1
- package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
- package/dist/modes/rpc/connection-handler.js +2 -8
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +1 -11
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +1 -2
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js +0 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/modes/rpc/session-registry.d.ts +1 -3
- package/dist/modes/rpc/session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/session-registry.js.map +1 -1
- package/dist/modes/rpc/session-worker-client.d.ts +8 -10
- package/dist/modes/rpc/session-worker-client.d.ts.map +1 -1
- package/dist/modes/rpc/session-worker-client.js +23 -14
- package/dist/modes/rpc/session-worker-client.js.map +1 -1
- package/dist/modes/rpc/session-worker-protocol.d.ts +0 -10
- package/dist/modes/rpc/session-worker-protocol.d.ts.map +1 -1
- package/dist/modes/rpc/session-worker-protocol.js +0 -2
- package/dist/modes/rpc/session-worker-protocol.js.map +1 -1
- package/dist/modes/rpc/session-worker.js +16 -12
- package/dist/modes/rpc/session-worker.js.map +1 -1
- package/dist/modes/rpc/worker-session-registry.d.ts +0 -12
- package/dist/modes/rpc/worker-session-registry.d.ts.map +1 -1
- package/dist/modes/rpc/worker-session-registry.js +24 -51
- package/dist/modes/rpc/worker-session-registry.js.map +1 -1
- package/dist/senpi +0 -3
- package/dist/server/create-harness.d.ts +26 -0
- package/dist/server/create-harness.d.ts.map +1 -0
- package/dist/server/create-harness.js +106 -0
- package/dist/server/create-harness.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +69 -52
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts +11 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +20 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +126 -49
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js +3 -2
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/tools-manager.d.ts +0 -1
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +19 -41
- package/dist/utils/tools-manager.js.map +1 -1
- package/docs/AGENTS.md +67 -0
- package/docs/compaction.md +13 -39
- package/docs/containerization.md +0 -45
- package/docs/development.md +0 -19
- package/docs/docs.json +0 -4
- package/docs/environment-variables.md +0 -2
- package/docs/extensions.md +10 -21
- package/docs/keybindings.md +2 -7
- package/docs/models.md +1 -1
- package/docs/providers.md +1 -1
- package/docs/rpc.md +8 -16
- package/docs/sdk.md +0 -7
- package/docs/session-format.md +38 -52
- package/docs/settings.md +4 -40
- package/docs/skills.md +1 -1
- package/docs/termux.md +1 -0
- package/docs/themes.md +6 -8
- package/docs/tui.md +3 -22
- package/examples/README.md +0 -3
- package/examples/extensions/dynamic-resources/dynamic.json +0 -2
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +3 -3
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/util/index.js +0 -5
- package/node_modules/@aws-sdk/core/dist-es/submodules/util/index.js +0 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/util/index.d.ts +0 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/index.d.ts +0 -1
- package/node_modules/@aws-sdk/core/package.json +1 -1
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +0 -2
- package/node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js +0 -2
- package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/package.json +2 -2
- package/node_modules/@aws-sdk/token-providers/package.json +1 -1
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +0 -24
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +5 -5
- package/node_modules/@earendil-works/pi-agent-core/README.md +0 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts +384 -639
- 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/agent-harness.js +250 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts +6 -12
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js +27 -33
- 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.d.ts +8 -30
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +64 -53
- 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 +28 -25
- 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 +125 -368
- 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 +38 -20
- 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/events.js +55 -233
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/events.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.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.d.ts +2 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.js +17 -17
- 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 +100 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.js +420 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/reducer.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/result.d.ts +0 -93
- 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/result.js +0 -39
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/result.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.d.ts +19 -6
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/context.js +53 -31
- 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/index.d.ts +5 -9
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/index.js +4 -7
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.d.ts +8 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.js +219 -34
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/codec.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.d.ts +9 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.js +18 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/errors.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/repo.d.ts +24 -27
- 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 +151 -276
- 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 +41 -39
- 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 +196 -175
- 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/jsonl/types.d.ts +22 -23
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/types.js +1 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.d.ts +3 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.js +2 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory.d.ts +40 -44
- 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 +115 -333
- 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 +51 -78
- 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 +207 -327
- 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 +65 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.js +320 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/state.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.d.ts +4 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.js +762 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.d.ts +2 -9
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.js +1 -8
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/types.d.ts +7 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/types.d.ts +265 -425
- 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/session/types.js +7 -7
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts +2 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js +26 -29
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/telemetry.d.ts +43 -64
- 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/telemetry.js +26 -45
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/telemetry.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/bash.d.ts +4 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/bash.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/bash.js +93 -66
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/bash.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js +13 -17
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/file-mutation-queue.d.ts +1 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/file-mutation-queue.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/file-mutation-queue.js +5 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/file-mutation-queue.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/path-utils.d.ts +2 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/path-utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/path-utils.js +5 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/path-utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/read.d.ts +1 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/read.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/read.js +6 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/read.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js +8 -12
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/write.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +45 -128
- 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/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts +5 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js +192 -65
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.d.ts +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/truncate.js +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/index.d.ts +1 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js +6 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/search/index.d.ts +16 -24
- package/node_modules/@earendil-works/pi-agent-core/dist/search/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/search/index.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/search/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/search/scanning.d.ts +29 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/search/scanning.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/search/scanning.js +103 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/search/scanning.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +0 -2
- 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 +6 -27
- package/node_modules/@earendil-works/pi-ai/README.md +4 -39
- 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 +1 -8
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-gateway-binding.d.ts +69 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-gateway-binding.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-gateway-binding.js +159 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-gateway-binding.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.d.ts +0 -11
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/measure.js +0 -18
- 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.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +1 -5
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +1 -4
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +3 -6
- 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-responses-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +1 -4
- 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.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +3 -13
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.js +1 -2
- package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -2
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -2
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +2 -5
- package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/openai-responses-compat.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/openai-responses-compat.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/openai-responses-compat.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js +0 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare-ai-gateway.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.js +1 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.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/azure-openai-responses.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/deepseek.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.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/qwen-token-plan-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-individual.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +5 -5
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +3 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.js +4 -5
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +6 -16
- 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/event-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js +5 -25
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts +1 -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 +1 -5
- 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/retry-profile/types.d.ts +1 -10
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry-profile/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts +2 -13
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +7 -18
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/uuid.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/uuid.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/uuid.js +31 -36
- package/node_modules/@earendil-works/pi-ai/dist/utils/uuid.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +6 -6
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/README.md +4 -53
- package/node_modules/@earendil-works/pi-tui/dist/alt-screen-search.d.ts +1 -21
- package/node_modules/@earendil-works/pi-tui/dist/alt-screen-search.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/alt-screen-search.js +42 -199
- package/node_modules/@earendil-works/pi-tui/dist/alt-screen-search.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts +1 -3
- package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.js +0 -28
- package/node_modules/@earendil-works/pi-tui/dist/components/box.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +1 -6
- 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 +18 -98
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts +1 -12
- package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.js +6 -40
- package/node_modules/@earendil-works/pi-tui/dist/components/input.js.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/latex.js +0 -7
- package/node_modules/@earendil-works/pi-tui/dist/components/latex.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts +0 -3
- 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 +8 -20
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.d.ts +3 -6
- 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 +1 -6
- 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 +1 -4
- 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 +2 -48
- 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 +1 -5
- 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 +5 -54
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -3
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js +0 -3
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/layout.d.ts +1 -3
- package/node_modules/@earendil-works/pi-tui/dist/layout.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/layout.js +9 -32
- package/node_modules/@earendil-works/pi-tui/dist/layout.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts +1 -2
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +44 -3
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.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 +20 -2
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts +1 -31
- 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 +41 -335
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +5 -83
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +4 -118
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +0 -2
- package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/utils.js +0 -9
- package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/native/darwin/README.md +6 -8
- package/node_modules/@earendil-works/pi-tui/native/darwin/build.sh +5 -12
- package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-arm64/{darwin-platform.node → darwin-modifiers.node} +0 -0
- package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-x64/{darwin-platform.node → darwin-modifiers.node} +0 -0
- package/node_modules/@earendil-works/pi-tui/native/darwin/src/darwin-modifiers.c +70 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/README.md +7 -18
- package/node_modules/@earendil-works/pi-tui/native/win32/build.mjs +4 -7
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/src/win32-console-mode.c +119 -0
- package/node_modules/@earendil-works/pi-tui/package.json +3 -10
- package/node_modules/@google/genai/dist/genai.d.ts +278 -1788
- package/node_modules/@google/genai/dist/index.cjs +299 -319
- package/node_modules/@google/genai/dist/index.mjs +299 -319
- package/node_modules/@google/genai/dist/index.mjs.map +1 -1
- package/node_modules/@google/genai/dist/node/index.cjs +300 -320
- package/node_modules/@google/genai/dist/node/index.mjs +300 -320
- package/node_modules/@google/genai/dist/node/index.mjs.map +1 -1
- package/node_modules/@google/genai/dist/node/node.d.ts +278 -1788
- package/node_modules/@google/genai/dist/tokenizer/node.cjs +2 -49
- package/node_modules/@google/genai/dist/tokenizer/node.d.ts +3 -43
- package/node_modules/@google/genai/dist/tokenizer/node.mjs +2 -49
- package/node_modules/@google/genai/dist/tokenizer/node.mjs.map +1 -1
- package/node_modules/@google/genai/dist/vertex_internal/index.cjs +3 -39
- package/node_modules/@google/genai/dist/vertex_internal/index.cjs.map +1 -1
- package/node_modules/@google/genai/dist/vertex_internal/index.d.ts +9 -51
- package/node_modules/@google/genai/dist/vertex_internal/index.js +3 -39
- package/node_modules/@google/genai/dist/vertex_internal/index.js.map +1 -1
- package/node_modules/@google/genai/dist/web/index.mjs +299 -319
- package/node_modules/@google/genai/dist/web/index.mjs.map +1 -1
- package/node_modules/@google/genai/dist/web/web.d.ts +278 -1788
- package/node_modules/@google/genai/package.json +1 -1
- package/node_modules/@mariozechner/clipboard/.yarnrc.yml +1 -0
- package/node_modules/@mariozechner/clipboard/Cargo.toml +45 -0
- package/node_modules/@mariozechner/clipboard/README.md +60 -0
- package/node_modules/@mariozechner/clipboard/build.rs +5 -0
- package/node_modules/@mariozechner/clipboard/exp.ts +12 -0
- package/node_modules/@mariozechner/clipboard/index.d.ts +37 -0
- package/node_modules/@mariozechner/clipboard/index.js +606 -0
- package/node_modules/@mariozechner/clipboard/package.json +45 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/common.rs +307 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/mod.rs +93 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/platform/ios.rs +313 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/platform/macos.rs +471 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/platform/mod.rs +252 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/platform/wayland.rs +431 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/platform/win.rs +712 -0
- package/node_modules/@mariozechner/clipboard/src/clipboard_rs/platform/x11.rs +916 -0
- package/node_modules/@mariozechner/clipboard/src/lib.rs +194 -0
- package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +4 -11
- package/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +0 -1
- package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +3 -2
- package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +1 -8
- package/node_modules/@smithy/node-http-handler/package.json +2 -2
- package/node_modules/ignore/README.md +0 -52
- package/node_modules/ignore/index.js +129 -785
- package/node_modules/ignore/legacy.js +98 -660
- package/node_modules/ignore/package.json +4 -10
- package/node_modules/marked/README.md +0 -1
- package/node_modules/marked/lib/marked.d.ts +0 -7
- package/node_modules/marked/lib/marked.esm.js +30 -30
- package/node_modules/marked/lib/marked.esm.js.map +3 -3
- package/node_modules/marked/lib/marked.umd.js +30 -30
- package/node_modules/marked/lib/marked.umd.js.map +3 -3
- package/node_modules/marked/man/marked.1 +1 -1
- package/node_modules/marked/package.json +2 -2
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +5 -7
- package/node_modules/typebox/build/format/iri.mjs +1 -5
- package/node_modules/typebox/build/guard/emit.mjs +4 -2
- package/node_modules/typebox/build/guard/guard.mjs +18 -6
- package/node_modules/typebox/build/guard/string.mjs +24 -16
- package/node_modules/typebox/build/schema/compile.d.mts +2 -3
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -1
- package/node_modules/typebox/build/schema/engine/_context.mjs +14 -9
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +2 -6
- package/node_modules/typebox/build/schema/engine/_stack.mjs +32 -135
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -16
- package/node_modules/typebox/build/schema/engine/allOf.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/if.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +3 -1
- package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/schema.mjs +0 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +2 -2
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +13 -7
- package/node_modules/typebox/build/schema/parse.d.mts +0 -1
- package/node_modules/typebox/build/schema/parse.mjs +5 -10
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +3 -34
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +73 -198
- package/node_modules/typebox/build/schema/schema.d.mts +0 -1
- package/node_modules/typebox/build/schema/schema.mjs +0 -1
- package/node_modules/typebox/build/value/errors/errors.d.mts +12 -2
- package/node_modules/typebox/build/value/errors/errors.mjs +7 -2
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +5 -9
- package/node_modules/undici/docs/docs/api/Client.md +0 -4
- package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +2 -3
- package/node_modules/undici/docs/docs/api/EventSource.md +0 -4
- package/node_modules/undici/docs/docs/api/Interceptors.md +3 -7
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +1 -7
- package/node_modules/undici/lib/cache/memory-cache-store.js +2 -2
- package/node_modules/undici/lib/core/symbols.js +0 -2
- package/node_modules/undici/lib/dispatcher/agent.js +2 -7
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +4 -7
- package/node_modules/undici/lib/dispatcher/client-h1.js +4 -12
- package/node_modules/undici/lib/dispatcher/client-h2.js +3 -43
- package/node_modules/undici/lib/dispatcher/client.js +2 -3
- package/node_modules/undici/lib/dispatcher/dispatcher-base.js +1 -13
- package/node_modules/undici/lib/dispatcher/dispatcher.js +1 -15
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +0 -3
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +3 -10
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +1 -18
- package/node_modules/undici/lib/dispatcher/retry-agent.js +0 -3
- package/node_modules/undici/lib/dispatcher/round-robin-pool.js +1 -1
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +21 -91
- package/node_modules/undici/lib/handler/cache-handler.js +5 -29
- package/node_modules/undici/lib/handler/decorator-handler.js +1 -7
- package/node_modules/undici/lib/handler/deduplication-handler.js +6 -12
- package/node_modules/undici/lib/handler/redirect-handler.js +4 -21
- package/node_modules/undici/lib/handler/retry-handler.js +30 -148
- package/node_modules/undici/lib/interceptor/cache.js +12 -65
- package/node_modules/undici/lib/interceptor/decompress.js +13 -115
- package/node_modules/undici/lib/interceptor/deduplicate.js +4 -5
- package/node_modules/undici/lib/interceptor/dns.js +0 -7
- package/node_modules/undici/lib/interceptor/dump.js +23 -10
- package/node_modules/undici/lib/mock/mock-agent.js +1 -13
- package/node_modules/undici/lib/mock/mock-utils.js +10 -11
- package/node_modules/undici/lib/util/cache.js +3 -45
- package/node_modules/undici/lib/web/cookies/parse.js +147 -150
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +1 -28
- package/node_modules/undici/lib/web/eventsource/eventsource.js +3 -13
- package/node_modules/undici/lib/web/fetch/index.js +0 -6
- package/node_modules/undici/lib/web/fetch/request.js +3 -2
- package/node_modules/undici/lib/web/fetch/util.js +1 -6
- package/node_modules/undici/lib/web/webidl/index.js +3 -3
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -5
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -8
- package/node_modules/undici/package.json +3 -3
- package/node_modules/undici/types/client.d.ts +0 -10
- package/node_modules/undici/types/interceptors.d.ts +0 -2
- package/node_modules/undici/types/mock-agent.d.ts +10 -11
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +0 -2
- package/package.json +49 -70
- package/vendor/pi-client/client.d.ts +15 -20
- package/vendor/pi-client/client.d.ts.map +1 -1
- package/vendor/pi-client/client.js +245 -248
- package/vendor/pi-client/client.js.map +1 -1
- package/vendor/pi-client/connection.d.ts +3 -4
- package/vendor/pi-client/connection.d.ts.map +1 -1
- package/vendor/pi-client/connection.js +9 -13
- package/vendor/pi-client/connection.js.map +1 -1
- package/vendor/pi-client/errors.d.ts +15 -6
- package/vendor/pi-client/errors.d.ts.map +1 -1
- package/vendor/pi-client/errors.js +25 -10
- package/vendor/pi-client/errors.js.map +1 -1
- package/vendor/pi-client/index.d.ts +4 -3
- package/vendor/pi-client/index.d.ts.map +1 -1
- package/vendor/pi-client/index.js +2 -2
- package/vendor/pi-client/index.js.map +1 -1
- package/vendor/pi-client/session-handle.d.ts +54 -0
- package/vendor/pi-client/session-handle.d.ts.map +1 -0
- package/vendor/pi-client/session-handle.js +50 -0
- package/vendor/pi-client/session-handle.js.map +1 -0
- package/vendor/pi-client/state.d.ts +22 -0
- package/vendor/pi-client/state.d.ts.map +1 -0
- package/vendor/pi-client/state.js +145 -0
- package/vendor/pi-client/state.js.map +1 -0
- package/vendor/pi-client/types.d.ts +8 -14
- package/vendor/pi-client/types.d.ts.map +1 -1
- package/vendor/pi-client/types.js.map +1 -1
- package/vendor/pi-client/unix.d.ts +1 -14
- package/vendor/pi-client/unix.d.ts.map +1 -1
- package/vendor/pi-client/unix.js +8 -138
- package/vendor/pi-client/unix.js.map +1 -1
- package/vendor/pi-protocol/codec.d.ts +4 -2
- package/vendor/pi-protocol/codec.d.ts.map +1 -1
- package/vendor/pi-protocol/codec.js +34 -7
- package/vendor/pi-protocol/codec.js.map +1 -1
- package/vendor/pi-protocol/framing.d.ts +2 -0
- package/vendor/pi-protocol/framing.d.ts.map +1 -1
- package/vendor/pi-protocol/framing.js +15 -0
- package/vendor/pi-protocol/framing.js.map +1 -1
- package/vendor/pi-protocol/index.d.ts +1 -1
- package/vendor/pi-protocol/index.d.ts.map +1 -1
- package/vendor/pi-protocol/index.js +1 -1
- package/vendor/pi-protocol/index.js.map +1 -1
- package/vendor/pi-protocol/schemas.d.ts +13739 -0
- package/vendor/pi-protocol/schemas.d.ts.map +1 -0
- package/vendor/pi-protocol/schemas.js +386 -0
- package/vendor/pi-protocol/schemas.js.map +1 -0
- package/dist/bun/runtime-setup.d.ts +0 -2
- package/dist/bun/runtime-setup.d.ts.map +0 -1
- package/dist/bun/runtime-setup.js +0 -9
- package/dist/bun/runtime-setup.js.map +0 -1
- package/dist/bun/sandbox-env-setup.d.ts +0 -2
- package/dist/bun/sandbox-env-setup.d.ts.map +0 -1
- package/dist/bun/sandbox-env-setup.js +0 -4
- package/dist/bun/sandbox-env-setup.js.map +0 -1
- package/dist/cli/setup.d.ts +0 -2
- package/dist/cli/setup.d.ts.map +0 -1
- package/dist/cli/setup.js +0 -12
- package/dist/cli/setup.js.map +0 -1
- package/dist/core/cursor-history-admission.d.ts +0 -50
- package/dist/core/cursor-history-admission.d.ts.map +0 -1
- package/dist/core/cursor-history-admission.js +0 -130
- package/dist/core/cursor-history-admission.js.map +0 -1
- package/dist/core/tools/renderers/bash.d.ts +0 -12
- package/dist/core/tools/renderers/bash.d.ts.map +0 -1
- package/dist/core/tools/renderers/bash.js +0 -156
- package/dist/core/tools/renderers/bash.js.map +0 -1
- package/dist/core/tools/renderers/edit.d.ts +0 -23
- package/dist/core/tools/renderers/edit.d.ts.map +0 -1
- package/dist/core/tools/renderers/edit.js +0 -172
- package/dist/core/tools/renderers/edit.js.map +0 -1
- package/dist/core/tools/renderers/find.d.ts +0 -10
- package/dist/core/tools/renderers/find.d.ts.map +0 -1
- package/dist/core/tools/renderers/find.js +0 -64
- package/dist/core/tools/renderers/find.js.map +0 -1
- package/dist/core/tools/renderers/grep.d.ts +0 -10
- package/dist/core/tools/renderers/grep.d.ts.map +0 -1
- package/dist/core/tools/renderers/grep.js +0 -69
- package/dist/core/tools/renderers/grep.js.map +0 -1
- package/dist/core/tools/renderers/index.d.ts +0 -28
- package/dist/core/tools/renderers/index.d.ts.map +0 -1
- package/dist/core/tools/renderers/index.js +0 -47
- package/dist/core/tools/renderers/index.js.map +0 -1
- package/dist/core/tools/renderers/ls.d.ts +0 -10
- package/dist/core/tools/renderers/ls.d.ts.map +0 -1
- package/dist/core/tools/renderers/ls.js +0 -58
- package/dist/core/tools/renderers/ls.js.map +0 -1
- package/dist/core/tools/renderers/read.d.ts +0 -19
- package/dist/core/tools/renderers/read.d.ts.map +0 -1
- package/dist/core/tools/renderers/read.js +0 -149
- package/dist/core/tools/renderers/read.js.map +0 -1
- package/dist/core/tools/renderers/write.d.ts +0 -10
- package/dist/core/tools/renderers/write.d.ts.map +0 -1
- package/dist/core/tools/renderers/write.js +0 -162
- package/dist/core/tools/renderers/write.js.map +0 -1
- package/dist/modes/interactive/chat-viewport.d.ts +0 -22
- package/dist/modes/interactive/chat-viewport.d.ts.map +0 -1
- package/dist/modes/interactive/chat-viewport.js +0 -29
- package/dist/modes/interactive/chat-viewport.js.map +0 -1
- package/dist/modes/interactive/components/ask-user-answer-key.d.ts +0 -14
- package/dist/modes/interactive/components/ask-user-answer-key.d.ts.map +0 -1
- package/dist/modes/interactive/components/ask-user-answer-key.js +0 -65
- package/dist/modes/interactive/components/ask-user-answer-key.js.map +0 -1
- package/dist/modes/interactive/theme/theme-json.d.ts +0 -84
- package/dist/modes/interactive/theme/theme-json.d.ts.map +0 -1
- package/dist/modes/interactive/theme/theme-json.js +0 -130
- package/dist/modes/interactive/theme/theme-json.js.map +0 -1
- package/dist/modes/interactive/tui-renderer.d.ts +0 -21
- package/dist/modes/interactive/tui-renderer.d.ts.map +0 -1
- package/dist/modes/interactive/tui-renderer.js +0 -67
- package/dist/modes/interactive/tui-renderer.js.map +0 -1
- package/dist/modes/rpc/session-path-reservations.d.ts +0 -30
- package/dist/modes/rpc/session-path-reservations.d.ts.map +0 -1
- package/dist/modes/rpc/session-path-reservations.js +0 -58
- package/dist/modes/rpc/session-path-reservations.js.map +0 -1
- package/dist/modes/rpc/session-worker-credit.d.ts +0 -17
- package/dist/modes/rpc/session-worker-credit.d.ts.map +0 -1
- package/dist/modes/rpc/session-worker-credit.js +0 -39
- package/dist/modes/rpc/session-worker-credit.js.map +0 -1
- package/dist/modes/rpc/session-worker-signals.d.ts +0 -7
- package/dist/modes/rpc/session-worker-signals.d.ts.map +0 -1
- package/dist/modes/rpc/session-worker-signals.js +0 -19
- package/dist/modes/rpc/session-worker-signals.js.map +0 -1
- package/dist/utils/clipboard-command.d.ts +0 -7
- package/dist/utils/clipboard-command.d.ts.map +0 -1
- package/dist/utils/clipboard-command.js +0 -45
- package/dist/utils/clipboard-command.js.map +0 -1
- package/examples/plugins/pi-example-plugin/README.md +0 -38
- package/examples/plugins/pi-example-plugin/package.json +0 -10
- package/examples/plugins/pi-example-plugin/src/contract.ts +0 -13
- package/examples/plugins/pi-example-plugin/src/session.ts +0 -23
- package/examples/plugins/pi-example-plugin/src/tui.ts +0 -31
- package/node_modules/@aws-sdk/core/dist-es/submodules/util/hasOwn.js +0 -3
- package/node_modules/@aws-sdk/core/dist-types/submodules/util/hasOwn.d.ts +0 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/hasOwn.d.ts +0 -1
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/LICENSE +0 -201
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/README.md +0 -62
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +0 -158
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/constants.js +0 -2
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromEnvSigningName.js +0 -16
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +0 -84
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js +0 -8
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +0 -11
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +0 -10
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/index.js +0 -4
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/nodeProvider.js +0 -5
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js +0 -7
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js +0 -7
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js +0 -8
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/constants.d.ts +0 -8
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/fromEnvSigningName.d.ts +0 -18
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/fromSso.d.ts +0 -12
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/fromStatic.d.ts +0 -9
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/getNewSsoOidcToken.d.ts +0 -8
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/getSsoOidcClient.d.ts +0 -7
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/index.d.ts +0 -7
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/nodeProvider.d.ts +0 -18
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/constants.d.ts +0 -3
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromEnvSigningName.d.ts +0 -8
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromSso.d.ts +0 -10
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromStatic.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getNewSsoOidcToken.d.ts +0 -9
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getSsoOidcClient.d.ts +0 -7
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/index.d.ts +0 -7
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/nodeProvider.d.ts +0 -3
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/validateTokenExpiry.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/validateTokenKey.d.ts +0 -1
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/writeSSOTokenToFile.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/validateTokenExpiry.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/validateTokenKey.d.ts +0 -4
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/writeSSOTokenToFile.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +0 -69
- package/node_modules/@earendil-works/chord/README.md +0 -205
- package/node_modules/@earendil-works/chord/dist/api.d.ts +0 -15
- package/node_modules/@earendil-works/chord/dist/api.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/api.js +0 -72
- package/node_modules/@earendil-works/chord/dist/api.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/bundler.d.ts +0 -6
- package/node_modules/@earendil-works/chord/dist/bundler.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/bundler.js +0 -3
- package/node_modules/@earendil-works/chord/dist/bundler.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/context/index.d.ts +0 -24
- package/node_modules/@earendil-works/chord/dist/context/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/context/index.js +0 -97
- package/node_modules/@earendil-works/chord/dist/context/index.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/delta/index.d.ts +0 -119
- package/node_modules/@earendil-works/chord/dist/delta/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/delta/index.js +0 -1209
- package/node_modules/@earendil-works/chord/dist/delta/index.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/facets/host.d.ts +0 -12
- package/node_modules/@earendil-works/chord/dist/facets/host.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/facets/host.js +0 -762
- package/node_modules/@earendil-works/chord/dist/facets/host.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/facets/loader.d.ts +0 -3
- package/node_modules/@earendil-works/chord/dist/facets/loader.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/facets/loader.js +0 -5
- package/node_modules/@earendil-works/chord/dist/facets/loader.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/index.d.ts +0 -11
- package/node_modules/@earendil-works/chord/dist/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/index.js +0 -10
- package/node_modules/@earendil-works/chord/dist/index.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/json.d.ts +0 -4
- package/node_modules/@earendil-works/chord/dist/json.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/json.js +0 -57
- package/node_modules/@earendil-works/chord/dist/json.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/bundle-loader.d.ts +0 -30
- package/node_modules/@earendil-works/chord/dist/node/bundle-loader.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/bundle-loader.js +0 -377
- package/node_modules/@earendil-works/chord/dist/node/bundle-loader.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/bundle.d.ts +0 -26
- package/node_modules/@earendil-works/chord/dist/node/bundle.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/bundle.js +0 -183
- package/node_modules/@earendil-works/chord/dist/node/bundle.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/manifest.d.ts +0 -36
- package/node_modules/@earendil-works/chord/dist/node/manifest.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/manifest.js +0 -6
- package/node_modules/@earendil-works/chord/dist/node/manifest.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/package.d.ts +0 -15
- package/node_modules/@earendil-works/chord/dist/node/package.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node/package.js +0 -199
- package/node_modules/@earendil-works/chord/dist/node/package.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node.d.ts +0 -5
- package/node_modules/@earendil-works/chord/dist/node.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/node.js +0 -3
- package/node_modules/@earendil-works/chord/dist/node.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/consumer.d.ts +0 -11
- package/node_modules/@earendil-works/chord/dist/services/consumer.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/consumer.js +0 -535
- package/node_modules/@earendil-works/chord/dist/services/consumer.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/errors.d.ts +0 -8
- package/node_modules/@earendil-works/chord/dist/services/errors.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/errors.js +0 -21
- package/node_modules/@earendil-works/chord/dist/services/errors.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/handle.d.ts +0 -15
- package/node_modules/@earendil-works/chord/dist/services/handle.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/handle.js +0 -99
- package/node_modules/@earendil-works/chord/dist/services/handle.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/instances.d.ts +0 -25
- package/node_modules/@earendil-works/chord/dist/services/instances.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/instances.js +0 -137
- package/node_modules/@earendil-works/chord/dist/services/instances.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/loopback.d.ts +0 -5
- package/node_modules/@earendil-works/chord/dist/services/loopback.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/loopback.js +0 -15
- package/node_modules/@earendil-works/chord/dist/services/loopback.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/provider.d.ts +0 -37
- package/node_modules/@earendil-works/chord/dist/services/provider.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/provider.js +0 -472
- package/node_modules/@earendil-works/chord/dist/services/provider.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/state-codec.d.ts +0 -15
- package/node_modules/@earendil-works/chord/dist/services/state-codec.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/state-codec.js +0 -115
- package/node_modules/@earendil-works/chord/dist/services/state-codec.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/state-internals.d.ts +0 -11
- package/node_modules/@earendil-works/chord/dist/services/state-internals.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/state-internals.js +0 -10
- package/node_modules/@earendil-works/chord/dist/services/state-internals.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/state.d.ts +0 -23
- package/node_modules/@earendil-works/chord/dist/services/state.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/state.js +0 -124
- package/node_modules/@earendil-works/chord/dist/services/state.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/wire.d.ts +0 -60
- package/node_modules/@earendil-works/chord/dist/services/wire.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/services/wire.js +0 -173
- package/node_modules/@earendil-works/chord/dist/services/wire.js.map +0 -1
- package/node_modules/@earendil-works/chord/dist/types.d.ts +0 -203
- package/node_modules/@earendil-works/chord/dist/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/chord/dist/types.js +0 -2
- package/node_modules/@earendil-works/chord/dist/types.js.map +0 -1
- package/node_modules/@earendil-works/chord/package.json +0 -73
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/config.d.ts +0 -9
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/config.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/config.js +0 -35
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/config.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/context.d.ts +0 -9
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/context.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/context.js +0 -13
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/context.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/assistant.d.ts +0 -42
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/assistant.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/assistant.js +0 -82
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/assistant.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/effect-gate.d.ts +0 -22
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/effect-gate.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/effect-gate.js +0 -48
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/effect-gate.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/tools.d.ts +0 -67
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/tools.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/tools.js +0 -121
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution/tools.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/hooks.d.ts +0 -38
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/hooks.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/hooks.js +0 -404
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/hooks.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/boundary.d.ts +0 -28
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/boundary.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/boundary.js +0 -173
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/boundary.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/checkpoint.d.ts +0 -8
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/checkpoint.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/checkpoint.js +0 -133
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/checkpoint.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/deferred.d.ts +0 -15
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/deferred.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/deferred.js +0 -179
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/deferred.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/generation.d.ts +0 -8
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/generation.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/generation.js +0 -205
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/generation.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/reconcile.d.ts +0 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/reconcile.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/reconcile.js +0 -140
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/reconcile.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/recovery.d.ts +0 -8
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/recovery.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/recovery.js +0 -85
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/recovery.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/response.d.ts +0 -23
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/response.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/response.js +0 -394
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/response.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/retry.d.ts +0 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/retry.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/retry.js +0 -34
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/retry.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/structural.d.ts +0 -32
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/structural.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/structural.js +0 -929
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/structural.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/terminal.d.ts +0 -7
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/terminal.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/terminal.js +0 -49
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/terminal.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tool-placement.d.ts +0 -14
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tool-placement.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tool-placement.js +0 -244
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tool-placement.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tools.d.ts +0 -6
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tools.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tools.js +0 -449
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive/tools.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive.d.ts +0 -6
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive.js +0 -93
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/drive.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/harness.d.ts +0 -59
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/harness.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/harness.js +0 -302
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/harness.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/index.d.ts +0 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/index.js +0 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/index.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/lane.d.ts +0 -118
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/lane.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/lane.js +0 -1559
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/lane.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/progress.d.ts +0 -15
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/progress.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/progress.js +0 -66
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/progress.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/reducer.d.ts +0 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/reducer.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/reducer.js +0 -240
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/reducer.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/restore.d.ts +0 -24
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/restore.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/restore.js +0 -117
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/restore.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/transcript.d.ts +0 -21
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/transcript.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/transcript.js +0 -72
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/transcript.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/types.d.ts +0 -105
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/types.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/types.js +0 -50
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/runtime/types.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/commit.d.ts +0 -53
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/commit.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/commit.js +0 -57
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/commit.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork-policy.d.ts +0 -21
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork-policy.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork-policy.js +0 -55
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork-policy.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.d.ts +0 -16
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.js +0 -79
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/in-memory-storage-state.d.ts +0 -39
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/in-memory-storage-state.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/in-memory-storage-state.js +0 -269
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/in-memory-storage-state.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/fork.d.ts +0 -38
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/fork.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/fork.js +0 -266
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/fork.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/index.d.ts +0 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/index.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/index.js +0 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/index.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/io.d.ts +0 -14
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/io.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/io.js +0 -86
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/io.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/legacy-v3.d.ts +0 -44
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/legacy-v3.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/legacy-v3.js +0 -454
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl/legacy-v3.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/mutation-line.d.ts +0 -8
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/mutation-line.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/mutation-line.js +0 -22
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/mutation-line.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/datasets.d.ts +0 -12
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/datasets.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/datasets.js +0 -24
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/datasets.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/session-repo.d.ts +0 -42
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/session-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/session-repo.js +0 -127
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/session-repo.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/storage.d.ts +0 -25
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/storage.js +0 -114
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/benchmark/storage.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/session-repo.d.ts +0 -23
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/session-repo.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/session-repo.js +0 -809
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/session-repo.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/storage.d.ts +0 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/storage.js +0 -600
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/conformance/storage.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/gating-storage.d.ts +0 -26
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/gating-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/gating-storage.js +0 -103
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/gating-storage.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/instrumented-storage.d.ts +0 -11
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/instrumented-storage.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/instrumented-storage.js +0 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/instrumented-storage.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/storage-decorator.d.ts +0 -20
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/storage-decorator.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/storage-decorator.js +0 -40
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/testing/storage-decorator.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/values.d.ts +0 -95
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/values.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/values.js +0 -81
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/values.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/adaptive-publisher.d.ts +0 -24
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/adaptive-publisher.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/adaptive-publisher.js +0 -79
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/adaptive-publisher.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/output-capture.d.ts +0 -31
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/output-capture.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/output-capture.js +0 -217
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/output-capture.js.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/usage.d.ts +0 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/usage.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/usage.js +0 -33
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/usage.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-ai-binding.d.ts +0 -77
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-ai-binding.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-ai-binding.js +0 -72
- package/node_modules/@earendil-works/pi-ai/dist/api/cloudflare-ai-binding.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor/context-limit-store.d.ts +0 -32
- package/node_modules/@earendil-works/pi-ai/dist/cursor/context-limit-store.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor/context-limit-store.js +0 -62
- package/node_modules/@earendil-works/pi-ai/dist/cursor/context-limit-store.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-headers.d.ts +0 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-headers.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-headers.js +0 -22
- package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-headers.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/assistant-message-frame.d.ts +0 -77
- package/node_modules/@earendil-works/pi-ai/dist/utils/assistant-message-frame.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/assistant-message-frame.js +0 -427
- package/node_modules/@earendil-works/pi-ai/dist/utils/assistant-message-frame.js.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/cursor-context-limit.d.ts +0 -12
- package/node_modules/@earendil-works/pi-ai/dist/utils/cursor-context-limit.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/cursor-context-limit.js +0 -93
- package/node_modules/@earendil-works/pi-ai/dist/utils/cursor-context-limit.js.map +0 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/mouse-region.d.ts +0 -12
- package/node_modules/@earendil-works/pi-tui/dist/components/mouse-region.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/mouse-region.js +0 -19
- package/node_modules/@earendil-works/pi-tui/dist/components/mouse-region.js.map +0 -1
- package/node_modules/@earendil-works/pi-tui/dist/native-platform.d.ts +0 -18
- package/node_modules/@earendil-works/pi-tui/dist/native-platform.d.ts.map +0 -1
- package/node_modules/@earendil-works/pi-tui/dist/native-platform.js +0 -42
- package/node_modules/@earendil-works/pi-tui/dist/native-platform.js.map +0 -1
- package/node_modules/@earendil-works/pi-tui/native/clipboard.h +0 -170
- package/node_modules/@earendil-works/pi-tui/native/darwin/src/darwin-platform.m +0 -93
- package/node_modules/@earendil-works/pi-tui/native/linux/README.md +0 -23
- package/node_modules/@earendil-works/pi-tui/native/linux/build.sh +0 -65
- package/node_modules/@earendil-works/pi-tui/native/linux/prebuilds/linux-arm64/linux-platform-x11.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/linux/prebuilds/linux-x64/linux-platform-x11.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/linux/src/clipboard-worker.h +0 -70
- package/node_modules/@earendil-works/pi-tui/native/linux/src/linux-platform-x11.c +0 -274
- package/node_modules/@earendil-works/pi-tui/native/napi.h +0 -89
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-platform.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-platform.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/src/win32-platform.c +0 -241
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/LICENSE +0 -201
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/README.md +0 -115
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-cjs/index.js +0 -96
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/abort-handler.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/abort.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/auth/HttpApiKeyAuth.js +0 -5
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/auth/HttpAuthScheme.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/auth/HttpAuthSchemeProvider.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/auth/HttpSigner.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/auth/IdentityProviderConfig.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/auth/auth.js +0 -5
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/auth/index.js +0 -2
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/blob/blob-payload-input-types.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/checksum.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/client.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/command.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/connection/config.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/connection/index.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/connection/manager.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/connection/pool.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/crypto.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/downlevel-ts3.4/transform/type-transform.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/encode.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoint.js +0 -5
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoints/EndpointParameterInstructions.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoints/EndpointRuleObject.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoints/ErrorRuleObject.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoints/RuleSetObject.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoints/TreeRuleObject.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoints/index.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/endpoints/shared.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/eventStream.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/extensions/checksum.js +0 -38
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/extensions/defaultClientConfiguration.js +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/extensions/defaultExtensionConfiguration.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/extensions/index.js +0 -2
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/extensions/retry.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/externals-check/browser-externals-check.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/feature-ids.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/http/httpHandlerInitialization.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/http.js +0 -5
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/identity/apiKeyIdentity.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/identity/awsCredentialIdentity.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/identity/identity.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/identity/index.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/identity/tokenIdentity.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/index.js +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/logger.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/metrics.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/middleware.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/pagination.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/profile.js +0 -6
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/response.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/retry.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/schema/schema-deprecated.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/schema/schema.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/schema/sentinels.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/schema/static-schemas.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/schema/traits.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/serde.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/shapes.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/signature.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/stream.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-common-types.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-payload-input-types.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/streaming-payload/streaming-blob-payload-output-types.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/transfer.js +0 -6
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/transform/client-method-transforms.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/transform/client-payload-blob-type-narrow.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/transform/exact.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/transform/mutable.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/transform/no-undefined.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/transform/type-transform.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/uri.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/util.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-es/waiter.js +0 -1
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/abort-handler.d.ts +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/abort.d.ts +0 -48
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/auth/HttpApiKeyAuth.d.ts +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/auth/HttpAuthScheme.d.ts +0 -49
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/auth/HttpAuthSchemeProvider.d.ts +0 -20
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/auth/HttpSigner.d.ts +0 -41
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/auth/IdentityProviderConfig.d.ts +0 -14
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/auth/auth.d.ts +0 -59
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/auth/index.d.ts +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/blob/blob-payload-input-types.d.ts +0 -37
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/checksum.d.ts +0 -61
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/client.d.ts +0 -57
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/command.d.ts +0 -28
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/connection/config.d.ts +0 -15
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/connection/index.d.ts +0 -3
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/connection/manager.d.ts +0 -34
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/connection/pool.d.ts +0 -32
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/crypto.d.ts +0 -58
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/downlevel-ts3.4/transform/type-transform.d.ts +0 -24
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/encode.d.ts +0 -31
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoint.d.ts +0 -77
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoints/EndpointParameterInstructions.d.ts +0 -41
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoints/EndpointRuleObject.d.ts +0 -27
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoints/ErrorRuleObject.d.ts +0 -10
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoints/RuleSetObject.d.ts +0 -28
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoints/TreeRuleObject.d.ts +0 -16
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoints/index.d.ts +0 -5
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/endpoints/shared.d.ts +0 -55
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/eventStream.d.ts +0 -137
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/extensions/checksum.d.ts +0 -58
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/extensions/defaultClientConfiguration.d.ts +0 -32
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/extensions/defaultExtensionConfiguration.d.ts +0 -9
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/extensions/index.d.ts +0 -6
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/extensions/retry.d.ts +0 -18
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/externals-check/browser-externals-check.d.ts +0 -35
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/feature-ids.d.ts +0 -16
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/http/httpHandlerInitialization.d.ts +0 -142
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/http.d.ts +0 -110
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/identity/apiKeyIdentity.d.ts +0 -14
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/identity/awsCredentialIdentity.d.ts +0 -31
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/identity/identity.d.ts +0 -15
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/identity/index.d.ts +0 -4
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/identity/tokenIdentity.d.ts +0 -14
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/index.d.ts +0 -52
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/logger.d.ts +0 -13
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/metrics.d.ts +0 -93
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/middleware.d.ts +0 -541
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/pagination.d.ts +0 -33
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/profile.d.ts +0 -30
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/response.d.ts +0 -40
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/retry.d.ts +0 -162
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/schema/schema-deprecated.d.ts +0 -143
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/schema/schema.d.ts +0 -236
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/schema/sentinels.d.ts +0 -65
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/schema/static-schemas.d.ts +0 -99
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/schema/traits.d.ts +0 -46
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/serde.d.ts +0 -114
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/shapes.d.ts +0 -79
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/signature.d.ts +0 -172
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/stream.d.ts +0 -22
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/streaming-payload/streaming-blob-common-types.d.ts +0 -28
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/streaming-payload/streaming-blob-payload-input-types.d.ts +0 -54
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/streaming-payload/streaming-blob-payload-output-types.d.ts +0 -41
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/transfer.d.ts +0 -42
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/transform/client-method-transforms.d.ts +0 -26
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/transform/client-payload-blob-type-narrow.d.ts +0 -73
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/transform/exact.d.ts +0 -6
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/transform/mutable.d.ts +0 -6
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/transform/no-undefined.d.ts +0 -68
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/transform/type-transform.d.ts +0 -39
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/abort-handler.d.ts +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/abort.d.ts +0 -45
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/auth/HttpApiKeyAuth.d.ts +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/auth/HttpAuthScheme.d.ts +0 -49
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/auth/HttpAuthSchemeProvider.d.ts +0 -20
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/auth/HttpSigner.d.ts +0 -41
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/auth/IdentityProviderConfig.d.ts +0 -14
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/auth/auth.d.ts +0 -59
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/auth/index.d.ts +0 -7
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/blob/blob-payload-input-types.d.ts +0 -37
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/checksum.d.ts +0 -61
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/client.d.ts +0 -57
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/command.d.ts +0 -28
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/connection/config.d.ts +0 -15
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/connection/index.d.ts +0 -3
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/connection/manager.d.ts +0 -34
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/connection/pool.d.ts +0 -32
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/crypto.d.ts +0 -58
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/downlevel-ts3.4/transform/type-transform.d.ts +0 -40
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/encode.d.ts +0 -31
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoint.d.ts +0 -77
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoints/EndpointParameterInstructions.d.ts +0 -41
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoints/EndpointRuleObject.d.ts +0 -27
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoints/ErrorRuleObject.d.ts +0 -10
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoints/RuleSetObject.d.ts +0 -28
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoints/TreeRuleObject.d.ts +0 -16
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoints/index.d.ts +0 -5
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/endpoints/shared.d.ts +0 -55
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/eventStream.d.ts +0 -137
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/extensions/checksum.d.ts +0 -58
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/extensions/defaultClientConfiguration.d.ts +0 -32
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/extensions/defaultExtensionConfiguration.d.ts +0 -9
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/extensions/index.d.ts +0 -6
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/extensions/retry.d.ts +0 -18
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/externals-check/browser-externals-check.d.ts +0 -35
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/feature-ids.d.ts +0 -16
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/http/httpHandlerInitialization.d.ts +0 -142
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/http.d.ts +0 -110
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/identity/apiKeyIdentity.d.ts +0 -14
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/identity/awsCredentialIdentity.d.ts +0 -31
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/identity/identity.d.ts +0 -15
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/identity/index.d.ts +0 -4
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/identity/tokenIdentity.d.ts +0 -14
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/index.d.ts +0 -52
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/logger.d.ts +0 -13
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/metrics.d.ts +0 -93
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/middleware.d.ts +0 -541
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/pagination.d.ts +0 -33
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/profile.d.ts +0 -30
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/response.d.ts +0 -40
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/retry.d.ts +0 -162
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/schema/schema-deprecated.d.ts +0 -149
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/schema/schema.d.ts +0 -251
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/schema/sentinels.d.ts +0 -65
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/schema/static-schemas.d.ts +0 -118
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/schema/traits.d.ts +0 -46
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/serde.d.ts +0 -114
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/shapes.d.ts +0 -79
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/signature.d.ts +0 -172
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/stream.d.ts +0 -22
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/streaming-payload/streaming-blob-common-types.d.ts +0 -28
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/streaming-payload/streaming-blob-payload-input-types.d.ts +0 -54
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/streaming-payload/streaming-blob-payload-output-types.d.ts +0 -41
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/transfer.d.ts +0 -42
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/transform/client-method-transforms.d.ts +0 -26
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/transform/client-payload-blob-type-narrow.d.ts +0 -77
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/transform/exact.d.ts +0 -14
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/transform/mutable.d.ts +0 -6
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/transform/no-undefined.d.ts +0 -88
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/transform/type-transform.d.ts +0 -40
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/uri.d.ts +0 -17
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/util.d.ts +0 -192
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/ts3.4/waiter.d.ts +0 -35
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/uri.d.ts +0 -17
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/util.d.ts +0 -176
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/dist-types/waiter.d.ts +0 -35
- package/node_modules/@smithy/node-http-handler/node_modules/@smithy/types/package.json +0 -50
- package/node_modules/esbuild/LICENSE.md +0 -21
- package/node_modules/esbuild/README.md +0 -3
- package/node_modules/esbuild/bin/esbuild +0 -223
- package/node_modules/esbuild/install.js +0 -300
- package/node_modules/esbuild/lib/main.d.ts +0 -720
- package/node_modules/esbuild/lib/main.js +0 -2536
- package/node_modules/esbuild/package.json +0 -47
- package/node_modules/typebox/build/schema/intern/index.d.mts +0 -1
- package/node_modules/typebox/build/schema/intern/index.mjs +0 -1
- package/node_modules/typebox/build/schema/intern/intern.d.mts +0 -14
- package/node_modules/typebox/build/schema/intern/intern.mjs +0 -259
- package/vendor/pi-protocol/protocol.d.ts +0 -167
- package/vendor/pi-protocol/protocol.d.ts.map +0 -1
- package/vendor/pi-protocol/protocol.js +0 -85
- package/vendor/pi-protocol/protocol.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-handler.js","sourceRoot":"","sources":["../../../src/modes/rpc/connection-handler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Per-connection RPC handler.\n *\n * This is the transport-independent core extracted from `runRpcMode`. It owns\n * exactly one AgentSession runtime and speaks the JSONL RPC protocol over an\n * injected output sink and a caller-driven line feed. It knows nothing about\n * `process.stdout`, `process.stdin`, or process signals — those belong to the\n * host (classic single-connection stdio in `rpc-mode.ts` or another transport\n * adapter).\n *\n * Behaviour is byte-for-byte identical to the original `runRpcMode` command\n * loop: the same responses, the same event stream, the same extension-UI\n * bridge, the same backpressure discipline. The only difference is that writes\n * go to `sink.writeRaw` instead of `writeRawStdout`, and the caller decides how\n * (and whether) to end the process.\n */\n\nimport * as crypto from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\nimport { basename, dirname, extname } from \"node:path\";\nimport type { ImageContent } from \"@earendil-works/pi-ai\";\nimport type { OAuthProviderId } from \"@earendil-works/pi-ai/compat\";\nimport { VERSION } from \"../../config.ts\";\nimport type { AgentAbortSource } from \"../../core/agent-abort-provenance.ts\";\nimport type { AgentSession, PromptDisposition } from \"../../core/agent-session.ts\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.ts\";\nimport { buildLoginProviderInfos } from \"../../core/auth-providers.ts\";\nimport {\n\tgetCredentialAccounts,\n\tpinCredentialAccount,\n\tremoveCredentialAccount,\n} from \"../../core/credential-accounts.ts\";\nimport { AssistantEditError, SessionStreamingError } from \"../../core/edited-assistant-message.ts\";\nimport {\n\temitProviderAccountsChanged,\n\tsubscribeProviderAccountEvents,\n} from \"../../core/extensions/builtin/claude-sdk-oauth/account-events.ts\";\nimport { CLAUDE_SDK_OAUTH_PROVIDER_ID } from \"../../core/extensions/builtin/claude-sdk-oauth/account-management.ts\";\nimport {\n\tisMcpControlInventoryChanged,\n\tMCP_CONTROL_INVENTORY_CHANGED_EVENT,\n\tMCP_CONTROL_INVENTORY_REQUEST_EVENT,\n\ttype McpControlInventoryRequest,\n} from \"../../core/extensions/builtin/mcp/control-inventory.ts\";\nimport type { McpWireStatusServer, McpWireStatusSnapshot } from \"../../core/extensions/builtin/mcp/service-types.ts\";\nimport {\n\tapplyFastMode,\n\ttype FastModeContext,\n\tresolveServiceTierMemoryModel,\n} from \"../../core/extensions/builtin/service-tier.ts\";\nimport type {\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tWorkingIndicatorOptions,\n} from \"../../core/extensions/index.ts\";\nimport { FooterDataProvider } from \"../../core/footer-data-provider.ts\";\nimport { getSupportedThinkingLevels } from \"../../core/thinking-levels.ts\";\nimport { ProjectTrustStore } from \"../../core/trust-manager.ts\";\nimport { type Theme, theme } from \"../interactive/theme/theme.ts\";\nimport { ConnectionQuestionBridge, degradeQuestion, sessionQuestionBridges } from \"./connection-question-bridge.ts\";\nimport {\n\tAUTO_TITLE_SESSIONS_CAPABILITY,\n\tbuildCustomUnsupportedRequest,\n\tDEFAULT_CUSTOM_EXTENSION_LABEL,\n\tEXTENSION_EVENTS_CAPABILITY,\n\tMEDIA_PLACEHOLDERS_CAPABILITY,\n\tQUESTION_CAPABILITY,\n\tRENDERED_COMPONENTS_CAPABILITY,\n} from \"./custom-capability.ts\";\nimport { createRpcEventOutputBuffer } from \"./event-output-buffer.ts\";\nimport { createRpcLoginPromptCallbacks } from \"./login-prompts.ts\";\nimport { buildRpcCommandsForSession, createCommandsChangedEvent, rpcCommandListDigest } from \"./rpc-command-surface.ts\";\nimport { rpcCommandPayloadError, rpcCommandShapeError, rpcMessageLengthError } from \"./rpc-input-validation.ts\";\nimport type {\n\tRpcAuthProvider,\n\tRpcCommand,\n\tRpcCommandInvocationEvent,\n\tRpcExtensionEvent,\n\tRpcExtensionUIProgress,\n\tRpcExtensionUIRequest,\n\tRpcExtensionUIResponse,\n\tRpcLoadedExtension,\n\tRpcLoadedMcpServer,\n\tRpcMcpServerStatus,\n\tRpcResponse,\n\tRpcSessionReplacedEvent,\n\tRpcSessionState,\n\tRpcSkillInvocationEvent,\n} from \"./rpc-types.ts\";\nimport { RPC_ERROR_MEDIA_NOT_FOUND } from \"./rpc-types.ts\";\nimport { RENDERED_COMPONENT_RECORD } from \"./session-event-writer.ts\";\nimport { SessionExtensionUiRequests } from \"./session-extension-ui-requests.ts\";\nimport { createLiveComponentRenderer, type LiveComponentRenderer } from \"./widget-line-renderer.ts\";\n\n/** Additive per-connection options. Absent = classic default (byte-identical). */\nexport interface RpcConnectionOptions {\n\t/** Client capability flags from the handshake (e.g. custom_unsupported opt-in). */\n\tcapabilities?: readonly string[];\n\t/** Called instead of requesting process shutdown for a session-owned binding. */\n\tshutdownHandler?: () => void;\n\t/** Session registries own runtime disposal themselves. */\n\tdisposeRuntime?: boolean;\n\t/** Shared workers flush synchronously into their bounded IPC credit channel. */\n\teventFlushScheduler?: (flush: () => void) => void;\n\t/** Multi-session routing handle. Absent preserves classic wire output exactly. */\n\tsessionId?: string;\n\tfooterDataProviderFactory?: (session: AgentSession) => FooterDataProvider;\n\tsharedWidth?: {\n\t\tgetWidth: () => number;\n\t\tsetWidth: (connectionId: string | undefined, width: number) => void;\n\t\tclearWidth: (connectionId: string | undefined) => void;\n\t\tsetCapabilities?: (connectionId: string | undefined, capabilities: readonly string[]) => void;\n\t\thasRenderedComponents?: (sessionId: string) => boolean;\n\t\tconnectionId: () => string | undefined;\n\t\tonChange?: () => void;\n\t};\n}\n\n/**\n * The output side of a connection. `writeRaw` receives already-serialized JSONL\n * text (LF-terminated). `waitForBackpressure` lets the host apply flow control\n * (stdout drain in classic mode, or the transport's own `drain` signal).\n */\nfunction createFooterDataProvider(session: AgentSession): FooterDataProvider {\n\treturn new FooterDataProvider(session.sessionManager.getCwd());\n}\n\nexport interface RpcConnectionSink {\n\twriteRaw(chunk: string): void;\n\twaitForBackpressure(): Promise<void>;\n\t/** Tears the transport down once its event queue can no longer deliver (overflow, write failure). */\n\tclose?(): void;\n}\n\nexport interface RpcConnectionHandler {\n\t/**\n\t * Resolves once the initial session bind completes. Awaiting it guarantees the\n\t * extension UI context is installed (used by tests that drive ctx.ui directly).\n\t */\n\treadonly ready: Promise<void>;\n\t/** Feed one inbound JSONL line (command or extension_ui_response). */\n\thandleInputLine(line: string): Promise<void>;\n\trerenderComponents(): void;\n\t/**\n\t * True once an extension requested shutdown via the shutdown handler. The\n\t * host polls this after each command and decides how to tear down.\n\t */\n\tisShutdownRequested(): boolean;\n\t/** Cancel UI requests that can no longer be answered by this connection. */\n\tcancelPendingExtensionUiRequests(): void;\n\t/** Tear down subscriptions and dispose the runtime. Never calls process.exit. */\n\tdispose(): Promise<void>;\n}\n\nfunction loadedExtensionName(path: string): string {\n\tconst synthetic = /^<(?:builtin|inline):([^>]+)>$/.exec(path);\n\tif (synthetic) return synthetic[1];\n\tconst withoutExtension = basename(path, extname(path));\n\tif (withoutExtension !== \"index\") return withoutExtension;\n\tconst parent = dirname(path);\n\tconst parentName = basename(parent);\n\treturn parentName === \"src\" || parentName === \"dist\" ? basename(dirname(parent)) : parentName;\n}\n\nfunction loadedExtensions(session: AgentSession): RpcLoadedExtension[] {\n\treturn session.resourceLoader.getExtensions().extensions.map((extension) => ({\n\t\tname: loadedExtensionName(extension.path),\n\t\tpath: extension.path,\n\t\tsourceInfo: extension.sourceInfo,\n\t\tenabled: true,\n\t}));\n}\n\nfunction loadedMcpStatus(server: McpWireStatusServer): RpcMcpServerStatus {\n\tif (server.status !== undefined) return server.status;\n\tif (server.serverInfo !== null) return \"connected\";\n\tif (server.authStatus === \"notLoggedIn\") return \"needs_auth\";\n\treturn \"enabled\";\n}\n\n/**\n * Project one session into the wire state shape.\n *\n * Shared with `open_session` (session-command-router) so both surfaces answer with the SAME\n * fields: a second hand-rolled literal silently drifts, which is how `serviceTier`/`fastMode`\n * would otherwise be missing from an opened session's initial state.\n *\n * `lastAbortSource` is passed in rather than read from the session: `session.currentAbortSource`\n * is cleared once the turn settles, so only the caller that observed `agent_end` still knows\n * who owned the abort.\n */\nexport function buildRpcSessionState(session: AgentSession, lastAbortSource?: AgentAbortSource): RpcSessionState {\n\tconst cwd = session.sessionManager.getCwd();\n\t// Trust gates project-source settings (shell prefixes, project resources), so every\n\t// session state projection must have an authoritative store to consult.\n\tif (!session.agentDir) {\n\t\tthrow new Error(\"RPC session invariant violated: agentDir is required\");\n\t}\n\tconst projectTrusted = new ProjectTrustStore(session.agentDir).get(cwd) === true;\n\treturn {\n\t\tpendingQuestions: sessionQuestionBridges.get(session)?.pendingQuestions(),\n\t\tmodel: session.model,\n\t\tthinkingLevel: session.thinkingLevel,\n\t\t...(session.thinkingSelection ? { thinkingSelection: session.thinkingSelection } : {}),\n\t\t...(lastAbortSource ? { lastAbortSource } : {}),\n\t\tserviceTier: session.effectiveServiceTier,\n\t\tfastMode: session.isFastModeActive(),\n\t\tisStreaming: session.isStreaming,\n\t\tisCompacting: session.isCompacting,\n\t\tretryAttempt: session.retryAttempt,\n\t\tisBashRunning: session.isBashRunning,\n\t\tsteeringMode: session.steeringMode,\n\t\tfollowUpMode: session.followUpMode,\n\t\tsessionFile: session.sessionFile,\n\t\tsessionId: session.sessionId,\n\t\tsessionName: session.sessionName,\n\t\tcwd,\n\t\tprojectTrusted,\n\t\t...(session.sessionFile &&\n\t\t!existsSync(session.sessionFile) &&\n\t\tsession.sessionManager\n\t\t\t.getEntries()\n\t\t\t.some(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.type !== \"model_change\" &&\n\t\t\t\t\tentry.type !== \"model_change_rejected\" &&\n\t\t\t\t\tentry.type !== \"thinking_level_change\",\n\t\t\t)\n\t\t\t? { entries: session.sessionManager.getEntries() }\n\t\t\t: {}),\n\t\tsteering: typeof session.getSteeringMessages === \"function\" ? [...session.getSteeringMessages()] : [],\n\t\tfollowUp: typeof session.getFollowUpMessages === \"function\" ? [...session.getFollowUpMessages()] : [],\n\t\tordered: [\n\t\t\t...((\n\t\t\t\tsession as unknown as {\n\t\t\t\t\t_queuedInputOrder?: Array<{ text: string; mode: \"steer\" | \"followUp\"; enqueueOrder: number }>;\n\t\t\t\t}\n\t\t\t)._queuedInputOrder ?? []),\n\t\t].sort((a, b) => a.enqueueOrder - b.enqueueOrder),\n\t\tautoCompactionEnabled: session.autoCompactionEnabled,\n\t\tmessageCount: session.messages.length,\n\t\tpendingMessageCount: session.pendingMessageCount,\n\t\tusageTotals: session.sessionManager.getUsageTotals(),\n\t\tcontextUsage: typeof session.getContextUsage === \"function\" ? session.getContextUsage() : undefined,\n\t\tfavoriteModels: session.favoriteModels?.map((entry) => ({ ...entry })) ?? [],\n\t\tscopedModels: session.scopedModels?.map((entry) => ({ ...entry })) ?? [],\n\t};\n}\n\nfunction loadedMcpServers(snapshot: McpWireStatusSnapshot): RpcLoadedMcpServer[] {\n\treturn snapshot.servers.map((server) => ({\n\t\tname: server.name,\n\t\ttoolCount: server.tools.length,\n\t\tstatus: loadedMcpStatus(server),\n\t\tauthStatus: server.authStatus,\n\t}));\n}\n\nfunction loadedSurfacesFingerprint(\n\tsession: AgentSession,\n\textensions: readonly RpcLoadedExtension[],\n\tmcpServers: readonly RpcLoadedMcpServer[],\n): string {\n\treturn JSON.stringify({\n\t\tskills: session.resourceLoader.getSkills().skills.map((skill) => ({\n\t\t\tname: skill.name,\n\t\t\tpath: skill.filePath,\n\t\t\tsourceInfo: skill.sourceInfo,\n\t\t\tenabled: !skill.disableModelInvocation,\n\t\t})),\n\t\textensions,\n\t\tmcpServers,\n\t});\n}\n\n/**\n * Locate one media block inside a tool result by `(toolCallId, contentIndex)`.\n *\n * Durable session entries are searched first: they survive the live message window\n * being compacted or trimmed away. The live `session.messages` cover the window\n * between `tool_execution_end` and persistence. Returns `undefined` unless the index\n * lands on an actual image block, so a text block or an out-of-range index is\n * reported as `media_not_found` rather than as a differently-shaped success.\n */\nfunction findToolResultMedia(\n\tsession: AgentSession,\n\ttoolCallId: string,\n\tcontentIndex: number,\n): ImageContent | undefined {\n\tconst fromContent = (content: unknown): ImageContent | undefined => {\n\t\tif (!Array.isArray(content)) return undefined;\n\t\tconst block = content[contentIndex] as ImageContent | undefined;\n\t\treturn block?.type === \"image\" ? block : undefined;\n\t};\n\tconst matches = (message: unknown): message is { role: \"toolResult\"; toolCallId: string; content: unknown } => {\n\t\tconst candidate = message as { role?: unknown; toolCallId?: unknown } | null;\n\t\treturn candidate?.role === \"toolResult\" && candidate.toolCallId === toolCallId;\n\t};\n\n\tfor (const entry of session.sessionManager.getEntries()) {\n\t\tif (entry.type !== \"message\") continue;\n\t\tif (!matches(entry.message)) continue;\n\t\tconst found = fromContent(entry.message.content);\n\t\tif (found) return found;\n\t}\n\tfor (const message of session.messages) {\n\t\tif (!matches(message)) continue;\n\t\tconst found = fromContent(message.content);\n\t\tif (found) return found;\n\t}\n\treturn undefined;\n}\n\n/**\n * Create a per-connection RPC handler bound to one runtime host and one sink.\n *\n * This performs the initial `rebindSession()` and returns synchronously with a\n * handler whose `handleInputLine` is ready to use. Signal handling, stdin\n * wiring, and process exit are intentionally NOT done here.\n */\nexport function createRpcConnectionHandler(\n\truntimeHost: AgentSessionRuntime,\n\tsink: RpcConnectionSink,\n\toptions: RpcConnectionOptions = {},\n): RpcConnectionHandler {\n\tlet clientCapabilities = options.capabilities;\n\tconst routingSessionId = options.sessionId;\n\tconst clientWidth = () => options.sharedWidth?.getWidth() ?? 80;\n\tconst hasRenderedComponents = () =>\n\t\t(options.sharedWidth?.hasRenderedComponents?.(routingSessionId ?? \"\") ?? false) ||\n\t\t(clientCapabilities?.includes(RENDERED_COMPONENTS_CAPABILITY) ?? false);\n\tconst liveRenderers = new Map<string, LiveComponentRenderer>();\n\tconst retainedRendererFactories = new Map<string, () => void>();\n\tconst footerProviders = new Map<string, FooterDataProvider>();\n\tconst disposeRenderer = (key: string) => {\n\t\tliveRenderers.get(key)?.dispose();\n\t\tliveRenderers.delete(key);\n\t\tfooterProviders.get(key)?.dispose();\n\t\tfooterProviders.delete(key);\n\t};\n\tconst disposeAllRenderers = () => {\n\t\tfor (const renderer of liveRenderers.values()) renderer.dispose();\n\t\tfor (const provider of footerProviders.values()) provider.dispose();\n\t\tliveRenderers.clear();\n\t\tfooterProviders.clear();\n\t};\n\t// True only while THIS connection's own command drives a replacement; the issuer\n\t// already learns the new identity from its command response.\n\tlet replacementIssuedHere = false;\n\tlet session = runtimeHost.session;\n\tlet unsubscribe: (() => void) | undefined;\n\tlet unsubscribeBackpressure: (() => void) | undefined;\n\tlet unsubscribeLoadedSurfaces: (() => void) | undefined;\n\tlet unsubscribeExtensionEvents: (() => void) | undefined;\n\tlet mcpWireStatus: McpWireStatusSnapshot = { servers: [] };\n\t/** Abort owner of the last settled turn; `session.currentAbortSource` clears on settle. */\n\tlet lastAbortSource: AgentAbortSource | undefined;\n\tlet loadedSurfacesDigest: string | undefined;\n\tlet rpcCommandsDigest: string | undefined;\n\tlet suppressLoadedSurfaceEvents = false;\n\tconst eventOutput = createRpcEventOutputBuffer(sink.writeRaw, options.eventFlushScheduler);\n\n\tconst tagSessionRecord = <T extends object>(value: T): T | (T & { sessionId: string }) =>\n\t\troutingSessionId === undefined ? value : { ...value, sessionId: routingSessionId };\n\n\tconst output = (obj: RpcResponse | RpcExtensionUIRequest | object) => {\n\t\teventOutput.writeImmediate(tagSessionRecord(obj));\n\t};\n\n\tconst outputEvent = (event: object) => {\n\t\teventOutput.enqueueEvent(tagSessionRecord(event));\n\t};\n\n\tconst currentLoadedSurfaces = (): {\n\t\tdata: { extensions: RpcLoadedExtension[]; mcpServers: RpcLoadedMcpServer[] };\n\t\tdigest: string;\n\t} => {\n\t\tconst extensions = loadedExtensions(session);\n\t\tconst mcpServers = loadedMcpServers(mcpWireStatus);\n\t\treturn {\n\t\t\tdata: { extensions, mcpServers },\n\t\t\tdigest: loadedSurfacesFingerprint(session, extensions, mcpServers),\n\t\t};\n\t};\n\n\tconst recordLoadedSurfaces = (emitChange: boolean): ReturnType<typeof currentLoadedSurfaces> => {\n\t\tconst current = currentLoadedSurfaces();\n\t\tconst changed = loadedSurfacesDigest !== undefined && loadedSurfacesDigest !== current.digest;\n\t\tloadedSurfacesDigest = current.digest;\n\t\tif (emitChange && changed && !suppressLoadedSurfaceEvents) {\n\t\t\toutputEvent({ type: \"loaded_surfaces_changed\" });\n\t\t}\n\t\treturn current;\n\t};\n\n\tconst requestMcpWireStatus = async (): Promise<void> => {\n\t\tlet response: Promise<McpWireStatusSnapshot> | undefined;\n\t\tconst request: McpControlInventoryRequest = {\n\t\t\tsessionId: session.sessionId,\n\t\t\trespond(snapshot) {\n\t\t\t\tresponse ??= snapshot;\n\t\t\t},\n\t\t};\n\t\tsession.resourceLoader.emitExtensionEvent?.(MCP_CONTROL_INVENTORY_REQUEST_EVENT, request);\n\t\tmcpWireStatus = response === undefined ? { servers: [] } : await response;\n\t};\n\n\tconst subscribeLoadedSurfaceEvents = (): void => {\n\t\tunsubscribeLoadedSurfaces?.();\n\t\tunsubscribeLoadedSurfaces = session.resourceLoader.onExtensionEvent?.(\n\t\t\tMCP_CONTROL_INVENTORY_CHANGED_EVENT,\n\t\t\t(data) => {\n\t\t\t\tif (!isMcpControlInventoryChanged(data) || data.sessionId !== session.sessionId) return;\n\t\t\t\tmcpWireStatus = data.snapshot;\n\t\t\t\tif (!suppressLoadedSurfaceEvents) recordLoadedSurfaces(true);\n\t\t\t},\n\t\t);\n\t};\n\n\tconst unsubscribeProviderAccountEvents = subscribeProviderAccountEvents((event) => {\n\t\tif (event.type === \"accounts_changed\") {\n\t\t\toutputEvent({ type: \"auth_accounts_changed\", provider: event.provider });\n\t\t\treturn;\n\t\t}\n\t\toutputEvent({\n\t\t\ttype: \"account_failover\",\n\t\t\tprovider: event.provider,\n\t\t\tfrom: event.from,\n\t\t\tto: event.to,\n\t\t\treason: event.reason,\n\t\t});\n\t});\n\n\tconst waitForRpcBackpressure = async (): Promise<void> => {\n\t\teventOutput.flushEvents();\n\t\tawait sink.waitForBackpressure();\n\t};\n\n\tconst success = <T extends RpcCommand[\"type\"]>(id: string | undefined, command: T, data?: unknown): RpcResponse => {\n\t\tif (data === undefined) {\n\t\t\treturn { id, type: \"response\", command, success: true } as RpcResponse;\n\t\t}\n\t\treturn { id, type: \"response\", command, success: true, data } as RpcResponse;\n\t};\n\n\tconst error = (\n\t\tid: string | undefined,\n\t\tcommand: string,\n\t\tmessage: string,\n\t\terrorCode?: string,\n\t\terrorData?: unknown,\n\t): RpcResponse => {\n\t\treturn {\n\t\t\tid,\n\t\t\ttype: \"response\",\n\t\t\tcommand,\n\t\t\tsuccess: false,\n\t\t\terror: message,\n\t\t\t...(errorCode ? { errorCode } : {}),\n\t\t\t...(errorData === undefined ? {} : { errorData }),\n\t\t};\n\t};\n\n\t// Pending extension UI requests waiting for response\n\tconst pendingExtensionRequests = new SessionExtensionUiRequests();\n\tconst questions = new ConnectionQuestionBridge(output);\n\n\tlet shutdownRequested = false;\n\n\t// In-flight OAuth logins, keyed by provider. login_start registers one; the\n\t// login promise clears it on completion; login_cancel aborts it. The flow is\n\t// fire-command-then-subscribe: login_start responds immediately and the URL +\n\t// terminal result arrive as auth_login_url / auth_login_end events.\n\tconst activeLogins = new Map<string, AbortController>();\n\n\t/** Helper for dialog methods with signal/timeout support */\n\tfunction createDialogPromise<T>(\n\t\topts: ExtensionUIDialogOptions | undefined,\n\t\tdefaultValue: T,\n\t\trequest: Record<string, unknown>,\n\t\tparseResponse: (response: RpcExtensionUIResponse) => T,\n\t): Promise<T> {\n\t\tif (opts?.signal?.aborted) return Promise.resolve(defaultValue);\n\n\t\tconst id = crypto.randomUUID();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n\t\t\tconst cleanup = () => {\n\t\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\t\topts?.signal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\tpendingExtensionRequests.delete(id);\n\t\t\t};\n\n\t\t\tconst onAbort = () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(defaultValue);\n\t\t\t};\n\t\t\topts?.signal?.addEventListener(\"abort\", onAbort, { once: true });\n\n\t\t\tif (opts?.timeout) {\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tresolve(defaultValue);\n\t\t\t\t}, opts.timeout);\n\t\t\t}\n\n\t\t\tpendingExtensionRequests.set(id, {\n\t\t\t\tresolve: (response: RpcExtensionUIResponse) => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tresolve(parseResponse(response));\n\t\t\t\t},\n\t\t\t\treject,\n\t\t\t});\n\t\t\toutput({ type: \"extension_ui_request\", id, ...request } as RpcExtensionUIRequest);\n\t\t});\n\t}\n\n\t/**\n\t * Create an extension UI context that uses the RPC protocol.\n\t */\n\tconst createExtensionUIContext = (): ExtensionUIContext => ({\n\t\tquestion: (request, opts) =>\n\t\t\tclientCapabilities?.includes(QUESTION_CAPABILITY)\n\t\t\t\t? questions.ask(request, opts)\n\t\t\t\t: degradeQuestion(createExtensionUIContext(), request, opts),\n\t\tselect: (title, options, opts) =>\n\t\t\tcreateDialogPromise(opts, undefined, { method: \"select\", title, options, timeout: opts?.timeout }, (r) =>\n\t\t\t\t\"cancelled\" in r && r.cancelled ? undefined : \"value\" in r ? r.value : undefined,\n\t\t\t),\n\n\t\tconfirm: (title, message, opts) =>\n\t\t\tcreateDialogPromise(opts, false, { method: \"confirm\", title, message, timeout: opts?.timeout }, (r) =>\n\t\t\t\t\"cancelled\" in r && r.cancelled ? false : \"confirmed\" in r ? r.confirmed : false,\n\t\t\t),\n\n\t\tinput: (title, placeholder, opts) =>\n\t\t\tcreateDialogPromise(opts, undefined, { method: \"input\", title, placeholder, timeout: opts?.timeout }, (r) =>\n\t\t\t\t\"cancelled\" in r && r.cancelled ? undefined : \"value\" in r ? r.value : undefined,\n\t\t\t),\n\n\t\tnotify(message: string, type?: \"info\" | \"warning\" | \"error\"): void {\n\t\t\t// Fire and forget - no response needed\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"notify\",\n\t\t\t\tmessage,\n\t\t\t\tnotifyType: type,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tonTerminalInput(): () => void {\n\t\t\t// Raw terminal input not supported in RPC mode\n\t\t\treturn () => {};\n\t\t},\n\n\t\tsetStatus(key: string, text: string | undefined): void {\n\t\t\t// Fire and forget - no response needed\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"setStatus\",\n\t\t\t\tstatusKey: key,\n\t\t\t\tstatusText: text,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tsetWorkingMessage(_message?: string): void {\n\t\t\t// Working message not supported in RPC mode - requires TUI loader access\n\t\t},\n\n\t\tsetWorkingVisible(_visible: boolean): void {\n\t\t\t// Working visibility not supported in RPC mode - requires TUI loader access\n\t\t},\n\n\t\tsetWorkingIndicator(_options?: WorkingIndicatorOptions): void {\n\t\t\t// Working indicator customization not supported in RPC mode - requires TUI loader access\n\t\t},\n\n\t\tsetHiddenThinkingLabel(_label?: string): void {\n\t\t\t// Hidden thinking label not supported in RPC mode - requires TUI message rendering access\n\t\t},\n\n\t\tsetWidget(key: string, content: unknown, options?: ExtensionWidgetOptions): void {\n\t\t\tdisposeRenderer(key);\n\t\t\tretainedRendererFactories.delete(key);\n\t\t\tif (content === undefined || Array.isArray(content)) {\n\t\t\t\toutput({\n\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\tmethod: \"setWidget\",\n\t\t\t\t\twidgetKey: key,\n\t\t\t\t\twidgetLines: content as string[] | undefined,\n\t\t\t\t\twidgetPlacement: options?.placement,\n\t\t\t\t} as RpcExtensionUIRequest);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tretainedRendererFactories.set(key, () => {\n\t\t\t\tconst renderer = createLiveComponentRenderer({\n\t\t\t\t\tfactory: content as (\n\t\t\t\t\t\ttui: import(\"@earendil-works/pi-tui\").TUI,\n\t\t\t\t\t\tthm: Theme,\n\t\t\t\t\t) => import(\"@earendil-works/pi-tui\").Component,\n\t\t\t\t\tgetWidth: clientWidth,\n\t\t\t\t\temit: (widgetLines) =>\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\t\tmethod: \"setWidget\",\n\t\t\t\t\t\t\twidgetKey: key,\n\t\t\t\t\t\t\twidgetLines,\n\t\t\t\t\t\t\twidgetPlacement: options?.placement,\n\t\t\t\t\t\t\t[RENDERED_COMPONENT_RECORD]: true,\n\t\t\t\t\t\t} as RpcExtensionUIRequest),\n\t\t\t\t});\n\t\t\t\tif (renderer) liveRenderers.set(key, renderer);\n\t\t\t});\n\t\t\tif (hasRenderedComponents()) retainedRendererFactories.get(key)!();\n\t\t},\n\n\t\tsetFooter(factory: unknown): void {\n\t\t\tconst key = \"__footer__\";\n\t\t\tdisposeRenderer(key);\n\t\t\tretainedRendererFactories.delete(key);\n\t\t\tif (factory === undefined) {\n\t\t\t\tif (hasRenderedComponents())\n\t\t\t\t\toutput({\n\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\tmethod: \"setFooter\",\n\t\t\t\t\t\twidgetLines: undefined,\n\t\t\t\t\t} as RpcExtensionUIRequest);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tretainedRendererFactories.set(key, () => {\n\t\t\t\tconst provider = options.footerDataProviderFactory?.(session) ?? createFooterDataProvider(session);\n\t\t\t\tconst renderer = createLiveComponentRenderer({\n\t\t\t\t\tfactory: factory as never,\n\t\t\t\t\tfactoryArgs: [provider],\n\t\t\t\t\tgetWidth: clientWidth,\n\t\t\t\t\temit: (widgetLines) =>\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\t\tmethod: \"setFooter\",\n\t\t\t\t\t\t\twidgetLines,\n\t\t\t\t\t\t\t[RENDERED_COMPONENT_RECORD]: true,\n\t\t\t\t\t\t} as RpcExtensionUIRequest),\n\t\t\t\t});\n\t\t\t\tif (renderer) {\n\t\t\t\t\tliveRenderers.set(key, renderer);\n\t\t\t\t\tfooterProviders.set(key, provider);\n\t\t\t\t} else provider.dispose();\n\t\t\t});\n\t\t\tif (hasRenderedComponents()) retainedRendererFactories.get(key)!();\n\t\t},\n\n\t\tsetHeader(factory: unknown): void {\n\t\t\tconst key = \"__header__\";\n\t\t\tdisposeRenderer(key);\n\t\t\tretainedRendererFactories.delete(key);\n\t\t\tif (factory === undefined) {\n\t\t\t\tif (hasRenderedComponents())\n\t\t\t\t\toutput({\n\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\tmethod: \"setHeader\",\n\t\t\t\t\t\twidgetLines: undefined,\n\t\t\t\t\t} as RpcExtensionUIRequest);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tretainedRendererFactories.set(key, () => {\n\t\t\t\tconst renderer = createLiveComponentRenderer({\n\t\t\t\t\tfactory: factory as never,\n\t\t\t\t\tgetWidth: clientWidth,\n\t\t\t\t\temit: (widgetLines) =>\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\t\tmethod: \"setHeader\",\n\t\t\t\t\t\t\twidgetLines,\n\t\t\t\t\t\t\t[RENDERED_COMPONENT_RECORD]: true,\n\t\t\t\t\t\t} as RpcExtensionUIRequest),\n\t\t\t\t});\n\t\t\t\tif (renderer) liveRenderers.set(key, renderer);\n\t\t\t});\n\t\t\tif (hasRenderedComponents()) retainedRendererFactories.get(key)!();\n\t\t},\n\n\t\tsetTitle(title: string): void {\n\t\t\t// Fire and forget - host can implement terminal title control\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"setTitle\",\n\t\t\t\ttitle,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tasync custom() {\n\t\t\t// Custom UI cannot be rendered in RPC mode. By default this returns\n\t\t\t// undefined synchronously with NO wire message — byte-identical to the\n\t\t\t// original behavior. ONLY when the client advertised the\n\t\t\t// \"custom_unsupported\" capability do we emit an additive notice request\n\t\t\t// so an opt-in client can render a \"requires the classic TUI\" dialog before\n\t\t\t// returning undefined. The name is best-effort: ctx.ui.custom carries no\n\t\t\t// extension identity, so a generic label is used.\n\t\t\tconst request = buildCustomUnsupportedRequest(clientCapabilities, DEFAULT_CUSTOM_EXTENSION_LABEL);\n\t\t\tif (request) {\n\t\t\t\toutput(request);\n\t\t\t}\n\t\t\treturn undefined as never;\n\t\t},\n\n\t\tpasteToEditor(text: string): void {\n\t\t\t// Paste handling not supported in RPC mode - falls back to setEditorText\n\t\t\tthis.setEditorText(text);\n\t\t},\n\n\t\tsetEditorText(text: string): void {\n\t\t\t// Fire and forget - host can implement editor control\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"set_editor_text\",\n\t\t\t\ttext,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tgetEditorText(): string {\n\t\t\t// Synchronous method can't wait for RPC response\n\t\t\t// Host should track editor state locally if needed\n\t\t\treturn \"\";\n\t\t},\n\n\t\tasync editor(title: string, prefill?: string): Promise<string | undefined> {\n\t\t\tconst id = crypto.randomUUID();\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tpendingExtensionRequests.set(id, {\n\t\t\t\t\tresolve: (response: RpcExtensionUIResponse) => {\n\t\t\t\t\t\tif (\"cancelled\" in response && response.cancelled) {\n\t\t\t\t\t\t\tresolve(undefined);\n\t\t\t\t\t\t} else if (\"value\" in response) {\n\t\t\t\t\t\t\tresolve(response.value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve(undefined);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treject,\n\t\t\t\t});\n\t\t\t\toutput({ type: \"extension_ui_request\", id, method: \"editor\", title, prefill } as RpcExtensionUIRequest);\n\t\t\t});\n\t\t},\n\n\t\taddAutocompleteProvider(): void {\n\t\t\t// Autocomplete provider composition is not supported in RPC mode\n\t\t},\n\n\t\tsetEditorComponent(): void {\n\t\t\t// Custom editor components not supported in RPC mode\n\t\t},\n\n\t\tgetEditorComponent() {\n\t\t\t// Custom editor components not supported in RPC mode\n\t\t\treturn undefined;\n\t\t},\n\n\t\tget theme() {\n\t\t\treturn theme;\n\t\t},\n\n\t\tgetAllThemes() {\n\t\t\treturn [];\n\t\t},\n\n\t\tgetTheme(_name: string) {\n\t\t\treturn undefined;\n\t\t},\n\n\t\tsetTheme(_theme: string | Theme) {\n\t\t\t// Theme switching not supported in RPC mode\n\t\t\treturn { success: false, error: \"Theme switching not supported in RPC mode\" };\n\t\t},\n\n\t\tgetToolsExpanded() {\n\t\t\t// Tool expansion not supported in RPC mode - no TUI\n\t\t\treturn false;\n\t\t},\n\n\t\tsetToolsExpanded(_expanded: boolean) {\n\t\t\t// Tool expansion not supported in RPC mode - no TUI\n\t\t},\n\t});\n\n\tconst refreshLoadedSurfacesAfter = async (operation: () => Promise<void>, resetMcp: boolean): Promise<void> => {\n\t\tconst previousDigest = loadedSurfacesDigest;\n\t\tconst wasSuppressed = suppressLoadedSurfaceEvents;\n\t\tsuppressLoadedSurfaceEvents = true;\n\t\tif (resetMcp) mcpWireStatus = { servers: [] };\n\t\tlet commandsChanged: ReturnType<typeof createCommandsChangedEvent>;\n\t\ttry {\n\t\t\tawait operation();\n\t\t\tawait requestMcpWireStatus();\n\t\t\tloadedSurfacesDigest = currentLoadedSurfaces().digest;\n\t\t\tconst commands = buildRpcCommandsForSession(session);\n\t\t\tcommandsChanged = createCommandsChangedEvent(rpcCommandsDigest, commands);\n\t\t\trpcCommandsDigest = rpcCommandListDigest(commands);\n\t\t} finally {\n\t\t\tsuppressLoadedSurfaceEvents = wasSuppressed;\n\t\t}\n\t\tif (!wasSuppressed && commandsChanged) {\n\t\t\toutputEvent(commandsChanged);\n\t\t}\n\t\tif (!wasSuppressed && previousDigest !== undefined && previousDigest !== loadedSurfacesDigest) {\n\t\t\toutputEvent({ type: \"loaded_surfaces_changed\" });\n\t\t}\n\t};\n\n\truntimeHost.setRebindSession(async () => {\n\t\t// AgentSessionRuntime invokes this callback while completing a replacement.\n\t\t// Do not await extension binding here: extensions may wait for session work\n\t\t// that the replacement still owns. The command response must acknowledge the\n\t\t// committed replacement; derived surfaces refresh out of band afterwards.\n\t\tawait rebindSession(true);\n\t});\n\n\tconst rebindAfterLocalReplacement = async (): Promise<void> => {\n\t\treplacementIssuedHere = true;\n\t\ttry {\n\t\t\tawait rebindSession();\n\t\t} finally {\n\t\t\treplacementIssuedHere = false;\n\t\t}\n\t};\n\n\tconst rebindSession = async (deferRefresh = false): Promise<void> => {\n\t\tunsubscribeLoadedSurfaces?.();\n\t\tunsubscribeExtensionEvents?.();\n\t\tconst replacedSession = session !== runtimeHost.session;\n\t\tsession = runtimeHost.session;\n\t\tsessionQuestionBridges.set(session, questions);\n\t\tif (replacedSession) {\n\t\t\tlastAbortSource = undefined;\n\t\t\tif (routingSessionId !== undefined || !replacementIssuedHere) {\n\t\t\t\t// A replacement can be driven by ANY attached client, so every connection must be\n\t\t\t\t// told the live binding moved and given the new authoritative identity. Emitted\n\t\t\t\t// before the derived-surface refresh so a client cannot act on the old identity in\n\t\t\t\t// the window the refresh takes.\n\t\t\t\toutputEvent({\n\t\t\t\t\ttype: \"session_replaced\",\n\t\t\t\t\tdurableSessionId: session.sessionId,\n\t\t\t\t\tsessionFile: session.sessionFile,\n\t\t\t\t\tcwd: session.sessionManager.getCwd(),\n\t\t\t\t\tsessionName: session.sessionName,\n\t\t\t\t} satisfies RpcSessionReplacedEvent);\n\t\t\t}\n\t\t}\n\t\tunsubscribeExtensionEvents = clientCapabilities?.includes(EXTENSION_EVENTS_CAPABILITY)\n\t\t\t? session.extensionRunner.onRpcEvent(({ name, data }) => {\n\t\t\t\t\toutputEvent({ type: \"extension_event\", name, data } satisfies RpcExtensionEvent);\n\t\t\t\t})\n\t\t\t: undefined;\n\t\tsubscribeLoadedSurfaceEvents();\n\t\t// Subscribe to the replaced session before its bind runs, not after. The bind\n\t\t// is deferred by design - awaiting it would deadlock a client whose\n\t\t// session_start handler blocks on an extension_ui_request it cannot answer\n\t\t// while still awaiting the replacement response - and it still mutates the\n\t\t// session it owns: pi-rules appends a durable scan entry from session_start.\n\t\t// Those entries must reach every attached connection, and nothing else can\n\t\t// carry them, because the session file is not written until an assistant\n\t\t// message exists, so a client that misses the notification can never\n\t\t// reconstruct the session it is bound to. Installing here also drops the\n\t\t// previous session's subscription immediately instead of after the bind.\n\t\tinstallSessionSubscriptions();\n\t\tconst refresh = refreshLoadedSurfacesAfter(\n\t\t\t() =>\n\t\t\t\tsession.bindExtensions({\n\t\t\t\t\tuiContext: createExtensionUIContext(),\n\t\t\t\t\tmode: \"rpc\",\n\t\t\t\t\tcommandContextActions: {\n\t\t\t\t\t\twaitForIdle: () => session.agent.waitForIdle(),\n\t\t\t\t\t\tnewSession: async (options) => runtimeHost.newSession(options),\n\t\t\t\t\t\tfork: async (entryId, forkOptions) => {\n\t\t\t\t\t\t\tconst result = await runtimeHost.fork(entryId, forkOptions);\n\t\t\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\t\t\tconst result = await session.navigateTree(targetId, {\n\t\t\t\t\t\t\t\tsummarize: options?.summarize,\n\t\t\t\t\t\t\t\tcustomInstructions: options?.customInstructions,\n\t\t\t\t\t\t\t\treplaceInstructions: options?.replaceInstructions,\n\t\t\t\t\t\t\t\tlabel: options?.label,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t\t\t},\n\t\t\t\t\t\teditAssistantMessage: async (entryId, text, options) => {\n\t\t\t\t\t\t\tconst result = await session.editAssistantMessage(entryId, text, {\n\t\t\t\t\t\t\t\tsummarize: options?.summarize,\n\t\t\t\t\t\t\t\tcustomInstructions: options?.customInstructions,\n\t\t\t\t\t\t\t\texpectedLeafId: options?.expectedLeafId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn { cancelled: result.cancelled, unchanged: result.unchanged, entryId: result.entryId };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tswitchSession: async (sessionPath, options) => {\n\t\t\t\t\t\t\treturn runtimeHost.switchSession(sessionPath, options);\n\t\t\t\t\t\t},\n\t\t\t\t\t\treload: async () => {\n\t\t\t\t\t\t\tawait refreshLoadedSurfacesAfter(async () => {\n\t\t\t\t\t\t\t\tawait session.reload();\n\t\t\t\t\t\t\t}, false);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tshutdownHandler: () => {\n\t\t\t\t\t\tif (options.shutdownHandler) {\n\t\t\t\t\t\t\toptions.shutdownHandler();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tshutdownRequested = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonError: (err) => {\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: err.extensionPath,\n\t\t\t\t\t\t\tevent: err.event,\n\t\t\t\t\t\t\terror: err.error,\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\ttrue,\n\t\t);\n\t\tfunction installSessionSubscriptions(): void {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribeBackpressure?.();\n\t\t\tunsubscribe = session.subscribe((event) => {\n\t\t\t\tif (event.type === \"skill_invocation\") {\n\t\t\t\t\toutputEvent(event satisfies RpcSkillInvocationEvent);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (event.type === \"command_invocation\") {\n\t\t\t\t\toutputEvent(event satisfies RpcCommandInvocationEvent);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (event.type === \"thinking_level_changed\" || event.type === \"model_changed\") {\n\t\t\t\t\t// Core emits the effective level only; the selection provenance lives beside it\n\t\t\t\t\t// on the session and is what distinguishes an explicit choice from a default.\n\t\t\t\t\tconst thinkingSelection = session.thinkingSelection;\n\t\t\t\t\toutputEvent(thinkingSelection === undefined ? event : { ...event, thinkingSelection });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (event.type === \"agent_end\") {\n\t\t\t\t\t// The subscribe-path `agent_end` carries only { type, messages, willRetry };\n\t\t\t\t\t// the abort provenance the extension hook receives is stripped from it. Read\n\t\t\t\t\t// it from the session, which still reports the owner at this point, and retain\n\t\t\t\t\t// it for `get_state` because the getter clears once the turn settles.\n\t\t\t\t\tconst abortSource = session.currentAbortSource;\n\t\t\t\t\tif (abortSource !== undefined) lastAbortSource = abortSource;\n\t\t\t\t\toutputEvent(abortSource === undefined ? event : { ...event, aborted: true, abortSource });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\toutputEvent(event);\n\t\t\t});\n\t\t\tunsubscribeBackpressure = session.agent.subscribe(async () => {\n\t\t\t\tawait waitForRpcBackpressure();\n\t\t\t});\n\t\t}\n\t\tif (deferRefresh) {\n\t\t\t// The subscription is already installed on the replaced session above, so\n\t\t\t// the deferred refresh only needs its failure reported. Re-installing here\n\t\t\t// would replay the settings-source selection a second time.\n\t\t\tvoid refresh.catch((cause) => {\n\t\t\t\toutputEvent({ type: \"rpc_error\", error: String(cause) });\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tawait refresh;\n\t};\n\n\t/**\n\t * Drive an OAuth login for one provider as fire-command-then-subscribe.\n\t *\n\t * Reuses AuthStorage.login (the same callbacks the classic TUI uses). Only the\n\t * URL-based happy path is surfaced over RPC: onAuth emits an auth_login_url\n\t * event; success/failure/cancel emit a single auth_login_end event. Callbacks\n\t * that need interactive mid-flow input (onPrompt/onSelect) are answered over\n\t * the extension UI dialog channel, so clients may either answer the dialog or\n\t * finish through the browser/callback-server path. An unanswered dialog never\n\t * blocks that completion path: it is released the moment the login settles.\n\t * Secrets are never emitted: only the provider id, the auth URL, the prompt\n\t * text/option labels, and a success flag (plus a non-secret error message)\n\t * cross the wire; a client's answer is consumed in-process.\n\t */\n\tconst startLogin = async (provider: string): Promise<void> => {\n\t\t// A second login_start for the same provider aborts the prior attempt.\n\t\tactiveLogins.get(provider)?.abort();\n\t\tconst controller = new AbortController();\n\t\tconst settled = new AbortController();\n\t\tconst loginSignal = AbortSignal.any([controller.signal, settled.signal]);\n\t\tactiveLogins.set(provider, controller);\n\n\t\ttry {\n\t\t\tawait session.modelRegistry.authStorage.login(provider as OAuthProviderId, {\n\t\t\t\tonAuth: (info) => {\n\t\t\t\t\toutputEvent({ type: \"auth_login_url\", provider, url: info.url });\n\t\t\t\t},\n\t\t\t\tonDeviceCode: (info) => {\n\t\t\t\t\toutputEvent({ type: \"auth_login_url\", provider, url: info.verificationUri });\n\t\t\t\t},\n\t\t\t\t...createRpcLoginPromptCallbacks(createExtensionUIContext(), loginSignal),\n\t\t\t\tonProgress: () => {},\n\t\t\t\tsignal: controller.signal,\n\t\t\t});\n\t\t\tsession.modelRegistry.refresh();\n\t\t\tif (provider === CLAUDE_SDK_OAUTH_PROVIDER_ID) emitProviderAccountsChanged(provider);\n\t\t\toutputEvent({ type: \"auth_login_end\", provider, success: true });\n\t\t} catch (loginError: unknown) {\n\t\t\tconst message = loginError instanceof Error ? loginError.message : String(loginError);\n\t\t\toutputEvent({ type: \"auth_login_end\", provider, success: false, error: message });\n\t\t} finally {\n\t\t\t// Release any dialog still pending so it can never outlive the login.\n\t\t\tsettled.abort();\n\t\t\tif (activeLogins.get(provider) === controller) {\n\t\t\t\tactiveLogins.delete(provider);\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Host capabilities for `applyFastMode`, mirroring what the `/fast` command passes from its\n\t * extension context. The notification is dropped: a command response carries the message\n\t * (`data` on success, `error` on refusal), so a duplicate `extension_ui_request` would be noise.\n\t */\n\tconst fastModeContext = (): FastModeContext => ({\n\t\tcwd: session.cwd,\n\t\tagentDir: session.agentDir,\n\t\tmodel: session.model,\n\t\tmodelRegistry: session.modelRegistry,\n\t\tserviceTier: session.serviceTier,\n\t\tisProjectTrusted: () => session.settingsManager.isProjectTrusted(),\n\t\tnotify: () => {},\n\t\tsetSessionModel: async (model) => {\n\t\t\tif (!session.modelRuntime.hasConfiguredAuth(model.provider)) return false;\n\t\t\tawait session.setSessionModel(model);\n\t\t\treturn true;\n\t\t},\n\t\tsetSessionFastMode: (enabled) => session.setSessionFastMode(enabled),\n\t});\n\n\t// Handle a single command\n\tconst handleCommand = async (command: RpcCommand): Promise<RpcResponse | undefined> => {\n\t\tconst id = command.id;\n\n\t\tswitch (command.type) {\n\t\t\tcase \"get_protocol_info\":\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\ttype: \"response\",\n\t\t\t\t\tcommand: \"get_protocol_info\",\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tprotocolVersion: 1,\n\t\t\t\t\t\tserverVersion: VERSION,\n\t\t\t\t\t\tcapabilities: [\n\t\t\t\t\t\t\t...new Set([\n\t\t\t\t\t\t\t\t\"multi_session\",\n\t\t\t\t\t\t\t\tAUTO_TITLE_SESSIONS_CAPABILITY,\n\t\t\t\t\t\t\t\tMEDIA_PLACEHOLDERS_CAPABILITY,\n\t\t\t\t\t\t\t\t...(options.capabilities ?? []),\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tmode: \"classic\",\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\tcase \"open_session\":\n\t\t\t\treturn error(id, \"open_session\", \"multi_session_disabled\");\n\n\t\t\t// =================================================================\n\t\t\t// Prompting\n\t\t\t// =================================================================\n\n\t\t\tcase \"prompt\": {\n\t\t\t\tif (command.thinkingLevel !== undefined && session.isStreaming && command.streamingBehavior !== undefined) {\n\t\t\t\t\treturn error(\n\t\t\t\t\t\tid,\n\t\t\t\t\t\t\"prompt\",\n\t\t\t\t\t\t\"Cannot set thinkingLevel on a queued prompt; set it after the current turn completes.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// Start prompt handling immediately, but emit the authoritative response only after\n\t\t\t\t// prompt preflight succeeds. Queued and immediately handled prompts also count as success.\n\t\t\t\t// The disposition is captured for the wire: AgentSession always fires promptDisposition\n\t\t\t\t// strictly before preflightResult(true), so the success frame carries the final value.\n\t\t\t\tlet preflightSucceeded = false;\n\t\t\t\tlet disposition: PromptDisposition | undefined;\n\t\t\t\tvoid session\n\t\t\t\t\t.prompt(command.message, {\n\t\t\t\t\t\timages: command.images,\n\t\t\t\t\t\tstreamingBehavior: command.streamingBehavior,\n\t\t\t\t\t\tthinkingLevel: command.thinkingLevel,\n\t\t\t\t\t\tsessionTitlePrompt: command.sessionTitlePrompt,\n\t\t\t\t\t\texpandPromptTemplates: command.expandPromptTemplates,\n\t\t\t\t\t\tsource: \"rpc\",\n\t\t\t\t\t\tpromptDisposition: (nextDisposition) => {\n\t\t\t\t\t\t\tdisposition = nextDisposition;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpreflightResult: (didSucceed) => {\n\t\t\t\t\t\t\tif (didSucceed && !preflightSucceeded) {\n\t\t\t\t\t\t\t\tpreflightSucceeded = true;\n\t\t\t\t\t\t\t\toutput(success(id, \"prompt\", { ...(disposition !== undefined ? { disposition } : {}) }));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tif (!preflightSucceeded) {\n\t\t\t\t\t\t\toutput(error(id, \"prompt\", e.message));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tcase \"append_user_message\": {\n\t\t\t\tconst content = command.content as Parameters<AgentSession[\"sendUserMessage\"]>[0];\n\t\t\t\tconst message =\n\t\t\t\t\ttypeof content === \"string\"\n\t\t\t\t\t\t? { role: \"user\" as const, content, timestamp: Date.now() }\n\t\t\t\t\t\t: { role: \"user\" as const, content, timestamp: Date.now() };\n\t\t\t\tsession.sessionManager.appendMessage(message);\n\t\t\t\tsession.agent.state.messages = session.sessionManager.buildSessionContext().messages;\n\t\t\t\treturn success(id, \"append_user_message\");\n\t\t\t}\n\n\t\t\tcase \"append_session_entry\": {\n\t\t\t\tsession.appendSessionEntry(command.entry);\n\t\t\t\treturn success(id, \"append_session_entry\");\n\t\t\t}\n\n\t\t\tcase \"send_custom_message\": {\n\t\t\t\tawait session.sendCustomMessage(\n\t\t\t\t\t{\n\t\t\t\t\t\tcustomType: command.customType,\n\t\t\t\t\t\tcontent: command.content as Parameters<AgentSession[\"sendCustomMessage\"]>[0][\"content\"],\n\t\t\t\t\t\tdisplay: command.display,\n\t\t\t\t\t\tdetails: command.details,\n\t\t\t\t\t},\n\t\t\t\t\t{ triggerTurn: command.triggerTurn, deliverAs: command.deliverAs },\n\t\t\t\t);\n\t\t\t\treturn success(id, \"send_custom_message\");\n\t\t\t}\n\n\t\t\tcase \"steer\": {\n\t\t\t\tawait session.steer(command.message, command.images, {\n\t\t\t\t\tenqueueOrder: command.enqueueOrder,\n\t\t\t\t\tsource: \"rpc\",\n\t\t\t\t});\n\t\t\t\treturn success(id, \"steer\");\n\t\t\t}\n\n\t\t\tcase \"follow_up\": {\n\t\t\t\tawait session.followUp(command.message, command.images, {\n\t\t\t\t\tenqueueOrder: command.enqueueOrder,\n\t\t\t\t\tsource: \"rpc\",\n\t\t\t\t});\n\t\t\t\treturn success(id, \"follow_up\");\n\t\t\t}\n\n\t\t\tcase \"abort\": {\n\t\t\t\tvoid session.abort().catch((cause: unknown) => {\n\t\t\t\t\t// Abort is acknowledged once dispatched; report quiesce failures out of band.\n\t\t\t\t\toutputEvent({ type: \"rpc_error\", error: String(cause) });\n\t\t\t\t});\n\t\t\t\treturn success(id, \"abort\");\n\t\t\t}\n\n\t\t\tcase \"abort_compaction\": {\n\t\t\t\tsession.abortCompaction();\n\t\t\t\treturn success(id, \"abort_compaction\");\n\t\t\t}\n\n\t\t\tcase \"reload\": {\n\t\t\t\tconst result = await session.reload();\n\t\t\t\treturn success(id, \"reload\", result);\n\t\t\t}\n\n\t\t\tcase \"check_reload_veto\": {\n\t\t\t\treturn success(id, \"check_reload_veto\", await session.checkReloadVeto());\n\t\t\t}\n\n\t\t\tcase \"clear_queue\": {\n\t\t\t\tconst cleared = session.clearQueue({ abortWillFollow: command.abortWillFollow ?? false });\n\t\t\t\treturn success(id, \"clear_queue\", {\n\t\t\t\t\tsteering: cleared.steering,\n\t\t\t\t\tfollowUp: cleared.followUp,\n\t\t\t\t\tordered: [...cleared.ordered],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tcase \"get_steering_messages\":\n\t\t\t\treturn success(id, \"get_steering_messages\", { messages: [...session.getSteeringMessages()] });\n\n\t\t\tcase \"get_follow_up_messages\":\n\t\t\t\treturn success(id, \"get_follow_up_messages\", { messages: [...session.getFollowUpMessages()] });\n\n\t\t\tcase \"abort_branch_summary\":\n\t\t\t\tsession.abortBranchSummary();\n\t\t\t\treturn success(id, \"abort_branch_summary\");\n\n\t\t\tcase \"new_session\": {\n\t\t\t\tconst options = command.parentSession ? { parentSession: command.parentSession } : undefined;\n\t\t\t\tconst result = await runtimeHost.newSession(options);\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"new_session\", result);\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// State\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_client_info\":\n\t\t\t\tif (options.sharedWidth && command.capabilities !== undefined) {\n\t\t\t\t\tclientCapabilities = command.capabilities;\n\t\t\t\t\toptions.sharedWidth.setCapabilities?.(options.sharedWidth.connectionId(), command.capabilities);\n\t\t\t\t}\n\t\t\t\tif (Number.isFinite(command.width) && command.width > 0) {\n\t\t\t\t\tif (options.sharedWidth) {\n\t\t\t\t\t\toptions.sharedWidth.setWidth(options.sharedWidth.connectionId(), command.width);\n\t\t\t\t\t\toptions.sharedWidth.onChange?.();\n\t\t\t\t\t} else for (const renderer of liveRenderers.values()) renderer.rerender();\n\t\t\t\t}\n\t\t\t\treturn success(id, \"set_client_info\");\n\n\t\t\tcase \"get_state\":\n\t\t\t\treturn success(id, \"get_state\", buildRpcSessionState(session, lastAbortSource));\n\n\t\t\t// =================================================================\n\t\t\t// Model\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_model\": {\n\t\t\t\tconst models = await session.modelRegistry.getAvailable();\n\t\t\t\tconst model = models.find((m) => m.provider === command.provider && m.id === command.modelId);\n\t\t\t\tif (!model) {\n\t\t\t\t\treturn error(id, \"set_model\", `Model not found: ${command.provider}/${command.modelId}`);\n\t\t\t\t}\n\t\t\t\tconst systemPromptChange = await session.setModel(model);\n\t\t\t\treturn success(id, \"set_model\", { ...model, systemPromptName: systemPromptChange?.systemPromptName });\n\t\t\t}\n\n\t\t\tcase \"set_favorite_models\":\n\t\t\t\tsession.setFavoriteModels(command.models);\n\t\t\t\treturn success(id, \"set_favorite_models\");\n\n\t\t\tcase \"set_scoped_models\":\n\t\t\t\tsession.setScopedModels(command.models);\n\t\t\t\treturn success(id, \"set_scoped_models\");\n\n\t\t\tcase \"cycle_model\": {\n\t\t\t\tconst result = await session.cycleModel(command.direction);\n\t\t\t\tif (!result) {\n\t\t\t\t\treturn success(id, \"cycle_model\", null);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"cycle_model\", result);\n\t\t\t}\n\n\t\t\tcase \"get_available_models\": {\n\t\t\t\tconst models = await session.modelRegistry.getAvailable();\n\t\t\t\treturn success(id, \"get_available_models\", {\n\t\t\t\t\tmodels: models.map((model) => ({\n\t\t\t\t\t\t...model,\n\t\t\t\t\t\tsupportedThinkingLevels: getSupportedThinkingLevels(model),\n\t\t\t\t\t})),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Thinking\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_thinking_level\": {\n\t\t\t\tif (command.scope === \"turn\") {\n\t\t\t\t\t// Validate BEFORE mutating: the session clamps an unsupported level to a supported\n\t\t\t\t\t// neighbour, so applying first would leave a REJECTED request's clamped level in\n\t\t\t\t\t// place. A failed command must not change session state.\n\t\t\t\t\tif (!session.getAvailableThinkingLevels().includes(command.level)) {\n\t\t\t\t\t\treturn error(\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\"set_thinking_level\",\n\t\t\t\t\t\t\t`Thinking level ${command.level} is not supported by the active model.`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tsession.setSessionThinkingLevel(command.level);\n\t\t\t\t} else {\n\t\t\t\t\tsession.setThinkingLevel(command.level);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"set_thinking_level\");\n\t\t\t}\n\n\t\t\tcase \"cycle_thinking_level\": {\n\t\t\t\tconst level = session.cycleThinkingLevel();\n\t\t\t\tif (!level) {\n\t\t\t\t\treturn success(id, \"cycle_thinking_level\", null);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"cycle_thinking_level\", { level });\n\t\t\t}\n\n\t\t\tcase \"get_available_thinking_levels\":\n\t\t\t\treturn success(id, \"get_available_thinking_levels\", {\n\t\t\t\t\tlevels: session.getAvailableThinkingLevels(),\n\t\t\t\t});\n\n\t\t\t// =================================================================\n\t\t\t// Fast mode\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_fast_mode\": {\n\t\t\t\tif (typeof command.enabled !== \"boolean\") {\n\t\t\t\t\treturn error(id, \"set_fast_mode\", \"set_fast_mode requires a boolean 'enabled' field.\");\n\t\t\t\t}\n\t\t\t\tconst model = session.model;\n\t\t\t\tif (!model) {\n\t\t\t\t\treturn error(id, \"set_fast_mode\", \"No active model.\");\n\t\t\t\t}\n\t\t\t\t// Same entry point as the /fast command: persistence, `-fast` key normalization,\n\t\t\t\t// and pin precedence live in applyFastMode, never duplicated here.\n\t\t\t\tconst result = await applyFastMode(fastModeContext(), command.enabled);\n\t\t\t\tif (!result.applied) {\n\t\t\t\t\t// A refusal (non-Codex model, active `:priority` pin, failed model switch) has no\n\t\t\t\t\t// notification channel for a command response, so it is reported as an error\n\t\t\t\t\t// instead of a success that silently did nothing.\n\t\t\t\t\treturn error(id, \"set_fast_mode\", result.message);\n\t\t\t\t}\n\t\t\t\tconst memoryModel = resolveServiceTierMemoryModel(session.modelRegistry, session.model ?? model);\n\t\t\t\treturn success(id, \"set_fast_mode\", {\n\t\t\t\t\tenabled: result.enabled,\n\t\t\t\t\tserviceTier: result.recordedTier,\n\t\t\t\t\tprovider: memoryModel.provider,\n\t\t\t\t\tmodelId: memoryModel.id,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tcase \"get_fast_mode\":\n\t\t\t\treturn success(id, \"get_fast_mode\", {\n\t\t\t\t\tenabled: session.isFastModeActive(),\n\t\t\t\t\tserviceTier: session.effectiveServiceTier ?? null,\n\t\t\t\t});\n\n\t\t\t// =================================================================\n\t\t\t// Queue Modes\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_steering_mode\": {\n\t\t\t\tsession.setSteeringMode(command.mode);\n\t\t\t\treturn success(id, \"set_steering_mode\");\n\t\t\t}\n\n\t\t\tcase \"set_follow_up_mode\": {\n\t\t\t\tsession.setFollowUpMode(command.mode);\n\t\t\t\treturn success(id, \"set_follow_up_mode\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Compaction\n\t\t\t// =================================================================\n\n\t\t\tcase \"compact\": {\n\t\t\t\tconst result = await session.compact(command.customInstructions);\n\t\t\t\treturn success(id, \"compact\", result);\n\t\t\t}\n\n\t\t\tcase \"set_auto_compaction\": {\n\t\t\t\tsession.setAutoCompactionEnabled(command.enabled);\n\t\t\t\treturn success(id, \"set_auto_compaction\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Retry\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_auto_retry\": {\n\t\t\t\tsession.setAutoRetryEnabled(command.enabled);\n\t\t\t\treturn success(id, \"set_auto_retry\");\n\t\t\t}\n\n\t\t\tcase \"abort_retry\": {\n\t\t\t\tsession.abortRetry();\n\t\t\t\treturn success(id, \"abort_retry\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Bash\n\t\t\t// =================================================================\n\n\t\t\tcase \"navigate_tree\": {\n\t\t\t\tconst result = await session.navigateTree(command.targetId, {\n\t\t\t\t\tsummarize: command.summarize,\n\t\t\t\t\tcustomInstructions: command.customInstructions,\n\t\t\t\t\treplaceInstructions: command.replaceInstructions,\n\t\t\t\t\tlabel: command.label,\n\t\t\t\t});\n\t\t\t\treturn success(id, \"navigate_tree\", result);\n\t\t\t}\n\n\t\t\tcase \"record_bash_result\":\n\t\t\t\tsession.recordBashResult(command.command, command.result, {\n\t\t\t\t\texcludeFromContext: command.excludeFromContext,\n\t\t\t\t});\n\t\t\t\treturn success(id, \"record_bash_result\");\n\n\t\t\tcase \"set_label\":\n\t\t\t\tsession.sessionManager.appendLabelChange(command.entryId, command.label);\n\t\t\t\treturn success(id, \"set_label\");\n\n\t\t\tcase \"bash\": {\n\t\t\t\tif (routingSessionId !== undefined) outputEvent({ type: \"bash_start\" });\n\t\t\t\ttry {\n\t\t\t\t\tconst eventResult = await session.extensionRunner.emitUserBash({\n\t\t\t\t\t\ttype: \"user_bash\",\n\t\t\t\t\t\tcommand: command.command,\n\t\t\t\t\t\texcludeFromContext: command.excludeFromContext ?? false,\n\t\t\t\t\t\tcwd: session.sessionManager.getCwd(),\n\t\t\t\t\t});\n\t\t\t\t\tif (eventResult?.result) {\n\t\t\t\t\t\tsession.recordBashResult(command.command, eventResult.result, {\n\t\t\t\t\t\t\texcludeFromContext: command.excludeFromContext,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn success(id, \"bash\", eventResult.result);\n\t\t\t\t\t}\n\t\t\t\t\tconst result = await session.executeBash(command.command, undefined, {\n\t\t\t\t\t\texcludeFromContext: command.excludeFromContext,\n\t\t\t\t\t\tid: command.executionId,\n\t\t\t\t\t\t// Functions cannot cross JSONL. Host extensions may still provide the\n\t\t\t\t\t\t// executable operations object; client-supplied data is only a wire-safe hint.\n\t\t\t\t\t\toperations: eventResult?.operations,\n\t\t\t\t\t});\n\t\t\t\t\treturn success(id, \"bash\", result);\n\t\t\t\t} finally {\n\t\t\t\t\tif (routingSessionId !== undefined) outputEvent({ type: \"bash_end\" });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase \"abort_bash\": {\n\t\t\t\tsession.abortBash();\n\t\t\t\treturn success(id, \"abort_bash\");\n\t\t\t}\n\n\t\t\tcase \"cleanup_bash_output\":\n\t\t\t\tawait session.cleanupBashOutput(command.path);\n\t\t\t\treturn success(id, \"cleanup_bash_output\");\n\n\t\t\t// =================================================================\n\t\t\t// Session\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_session_stats\": {\n\t\t\t\tconst stats = session.getSessionStats();\n\t\t\t\treturn success(id, \"get_session_stats\", stats);\n\t\t\t}\n\n\t\t\tcase \"export_html\": {\n\t\t\t\tconst path = await session.exportToHtml(command.outputPath, { themeName: command.themeName });\n\t\t\t\treturn success(id, \"export_html\", { path });\n\t\t\t}\n\n\t\t\tcase \"export_jsonl\": {\n\t\t\t\treturn success(id, \"export_jsonl\", { path: session.exportToJsonl(command.outputPath) });\n\t\t\t}\n\n\t\t\tcase \"switch_session\": {\n\t\t\t\tconst result = await runtimeHost.switchSession(command.sessionPath, { cwdOverride: command.cwdOverride });\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"switch_session\", result);\n\t\t\t}\n\n\t\t\tcase \"fork\": {\n\t\t\t\tconst result = await runtimeHost.fork(command.entryId, { position: command.position });\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"fork\", { text: result.selectedText, cancelled: result.cancelled });\n\t\t\t}\n\n\t\t\tcase \"edit_assistant_message\": {\n\t\t\t\tif (\n\t\t\t\t\ttypeof command.entryId !== \"string\" ||\n\t\t\t\t\tcommand.entryId.length === 0 ||\n\t\t\t\t\ttypeof command.text !== \"string\"\n\t\t\t\t) {\n\t\t\t\t\treturn error(id, command.type, \"edit_assistant_message requires a non-empty entryId and a text string\");\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await session.editAssistantMessage(command.entryId, command.text, {\n\t\t\t\t\t\tsummarize: command.summarize,\n\t\t\t\t\t\tcustomInstructions: command.customInstructions,\n\t\t\t\t\t\texpectedLeafId: command.expectedLeafId,\n\t\t\t\t\t});\n\t\t\t\t\tconst leafId = session.sessionManager.getLeafId();\n\t\t\t\t\tif (result.unchanged) {\n\t\t\t\t\t\treturn success(id, command.type, { outcome: \"unchanged\", leafId });\n\t\t\t\t\t}\n\t\t\t\t\tif (result.cancelled) {\n\t\t\t\t\t\treturn success(id, command.type, {\n\t\t\t\t\t\t\toutcome: \"cancelled\",\n\t\t\t\t\t\t\tleafId,\n\t\t\t\t\t\t\t...(result.aborted ? { aborted: true } : {}),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tconst entry = result.entryId ? session.sessionManager.getEntry(result.entryId) : undefined;\n\t\t\t\t\tif (entry?.type !== \"message\" || leafId === null) {\n\t\t\t\t\t\treturn error(id, command.type, \"Edited assistant entry was not persisted\");\n\t\t\t\t\t}\n\t\t\t\t\treturn success(id, command.type, {\n\t\t\t\t\t\toutcome: \"edited\",\n\t\t\t\t\t\tentry,\n\t\t\t\t\t\tleafId,\n\t\t\t\t\t\t...(result.summaryEntry ? { summaryEntryId: result.summaryEntry.id } : {}),\n\t\t\t\t\t});\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err instanceof AssistantEditError || err instanceof SessionStreamingError) {\n\t\t\t\t\t\treturn error(id, command.type, err.message, err.code);\n\t\t\t\t\t}\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase \"clone\": {\n\t\t\t\tconst leafId = session.sessionManager.getLeafId();\n\t\t\t\tif (!leafId) {\n\t\t\t\t\treturn error(id, \"clone\", \"Cannot clone session: no current entry selected\");\n\t\t\t\t}\n\t\t\t\tconst result = await runtimeHost.fork(leafId, { position: \"at\" });\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"clone\", { cancelled: result.cancelled });\n\t\t\t}\n\n\t\t\tcase \"get_fork_messages\": {\n\t\t\t\tconst messages = session.getUserMessagesForForking();\n\t\t\t\treturn success(id, \"get_fork_messages\", { messages });\n\t\t\t}\n\n\t\t\tcase \"get_entries\": {\n\t\t\t\tconst sessionManager = session.sessionManager;\n\t\t\t\tlet entries = sessionManager.getEntries();\n\t\t\t\tif (command.since !== undefined) {\n\t\t\t\t\tconst sinceIndex = entries.findIndex((e) => e.id === command.since);\n\t\t\t\t\tif (sinceIndex === -1) {\n\t\t\t\t\t\treturn error(id, \"get_entries\", `Entry not found: ${command.since}`);\n\t\t\t\t\t}\n\t\t\t\t\tentries = entries.slice(sinceIndex + 1);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"get_entries\", { entries, leafId: sessionManager.getLeafId() });\n\t\t\t}\n\n\t\t\tcase \"get_tree\": {\n\t\t\t\tconst sessionManager = session.sessionManager;\n\t\t\t\treturn success(id, \"get_tree\", { tree: sessionManager.getTree(), leafId: sessionManager.getLeafId() });\n\t\t\t}\n\n\t\t\tcase \"get_last_assistant_text\": {\n\t\t\t\tconst text = session.getLastAssistantText();\n\t\t\t\treturn success(id, \"get_last_assistant_text\", { text });\n\t\t\t}\n\n\t\t\tcase \"import_jsonl\": {\n\t\t\t\tconst result = await runtimeHost.importFromJsonl(command.inputPath, command.cwdOverride);\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"import_jsonl\", result);\n\t\t\t}\n\n\t\t\tcase \"set_session_name\": {\n\t\t\t\tconst name = command.name.trim();\n\t\t\t\tif (!name) {\n\t\t\t\t\treturn error(id, \"set_session_name\", \"Session name cannot be empty\");\n\t\t\t\t}\n\t\t\t\tsession.setSessionName(name);\n\t\t\t\treturn success(id, \"set_session_name\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Messages\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_messages\": {\n\t\t\t\treturn success(id, \"get_messages\", { messages: session.messages });\n\t\t\t}\n\n\t\t\t// On-demand fetch of a media block a `media_placeholders` client received as\n\t\t\t// an `image_ref` stub. Durable session entries first (they survive the live\n\t\t\t// message window being compacted away), then the live messages for a result\n\t\t\t// that has not been persisted yet.\n\t\t\tcase \"get_media\": {\n\t\t\t\tconst { toolCallId, contentIndex } = command;\n\t\t\t\tconst content = findToolResultMedia(session, toolCallId, contentIndex);\n\t\t\t\tif (!content) {\n\t\t\t\t\treturn error(id, \"get_media\", RPC_ERROR_MEDIA_NOT_FOUND, RPC_ERROR_MEDIA_NOT_FOUND);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"get_media\", { toolCallId, contentIndex, content });\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Commands (available for invocation via prompt)\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_commands\": {\n\t\t\t\treturn success(id, \"get_commands\", { commands: buildRpcCommandsForSession(session) });\n\t\t\t}\n\n\t\t\tcase \"get_loaded_surfaces\": {\n\t\t\t\tawait requestMcpWireStatus();\n\t\t\t\tconst inventory = recordLoadedSurfaces(true);\n\t\t\t\treturn success(id, \"get_loaded_surfaces\", inventory.data);\n\t\t\t}\n\n\t\t\tcase \"extension_request\": {\n\t\t\t\tconst name = command.name.trim();\n\t\t\t\tif (name.length === 0) {\n\t\t\t\t\treturn error(id, \"extension_request\", \"Extension RPC request name cannot be empty\");\n\t\t\t\t}\n\t\t\t\tconst data = await session.extensionRunner.requestRpc(name, command.data);\n\t\t\t\treturn success(id, \"extension_request\", data);\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Auth (task 13)\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_auth_providers\": {\n\t\t\t\tconst modelRegistry = session.modelRegistry;\n\t\t\t\tconst oauthInfos = buildLoginProviderInfos(modelRegistry, \"oauth\");\n\t\t\t\tconst apiKeyInfos = buildLoginProviderInfos(modelRegistry, \"api_key\");\n\t\t\t\tconst providers: RpcAuthProvider[] = [...oauthInfos, ...apiKeyInfos].map((info) => ({\n\t\t\t\t\tid: info.id,\n\t\t\t\t\tname: info.name,\n\t\t\t\t\tauthType: info.authType,\n\t\t\t\t\tstatus: modelRegistry.getProviderAuthStatus(info.id),\n\t\t\t\t}));\n\t\t\t\treturn success(id, \"get_auth_providers\", { providers });\n\t\t\t}\n\n\t\t\tcase \"login_start\": {\n\t\t\t\t// Respond IMMEDIATELY: success:true means the flow has started. The\n\t\t\t\t// URL and terminal result are delivered via auth_login_url /\n\t\t\t\t// auth_login_end events, because an interactive OAuth round-trip\n\t\t\t\t// cannot fit within the request timeout.\n\t\t\t\tvoid startLogin(command.provider);\n\t\t\t\treturn success(id, \"login_start\");\n\t\t\t}\n\n\t\t\tcase \"login_cancel\": {\n\t\t\t\tconst controller = activeLogins.get(command.provider);\n\t\t\t\tcontroller?.abort();\n\t\t\t\treturn success(id, \"login_cancel\");\n\t\t\t}\n\n\t\t\tcase \"login_api_key\": {\n\t\t\t\tsession.modelRegistry.authStorage.set(command.provider, { type: \"api_key\", key: command.key });\n\t\t\t\tsession.modelRegistry.refresh();\n\t\t\t\treturn success(id, \"login_api_key\");\n\t\t\t}\n\n\t\t\tcase \"logout\": {\n\t\t\t\tsession.modelRegistry.authStorage.logout(command.provider);\n\t\t\t\tsession.modelRegistry.refresh();\n\t\t\t\treturn success(id, \"logout\");\n\t\t\t}\n\n\t\t\tcase \"get_provider_accounts\": {\n\t\t\t\tconst accounts = await getCredentialAccounts(session.modelRegistry.authStorage, command.provider);\n\t\t\t\treturn success(id, \"get_provider_accounts\", { accounts });\n\t\t\t}\n\n\t\t\tcase \"account_pin\": {\n\t\t\t\tawait pinCredentialAccount(session.modelRegistry.authStorage, command.provider, command.name);\n\t\t\t\treturn success(id, \"account_pin\");\n\t\t\t}\n\n\t\t\tcase \"account_remove\": {\n\t\t\t\tawait removeCredentialAccount(session.modelRegistry.authStorage, command.provider, command.name);\n\t\t\t\treturn success(id, \"account_remove\");\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tconst unknownCommand = command as { type: string };\n\t\t\t\treturn error(id, unknownCommand.type, `Unknown command: ${unknownCommand.type}`);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleInputLine = async (line: string): Promise<void> => {\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(line);\n\t\t} catch (parseError: unknown) {\n\t\t\toutput(\n\t\t\t\terror(\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"parse\",\n\t\t\t\t\t`Failed to parse command: ${parseError instanceof Error ? parseError.message : String(parseError)}`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tawait waitForRpcBackpressure();\n\t\t\treturn;\n\t\t}\n\n\t\tconst shapeError = rpcCommandShapeError(parsed);\n\t\tif (shapeError) {\n\t\t\toutput(error(undefined, \"parse\", shapeError));\n\t\t\tawait waitForRpcBackpressure();\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\ttypeof parsed === \"object\" &&\n\t\t\tparsed !== null &&\n\t\t\t\"type\" in parsed &&\n\t\t\tparsed.type === \"extension_ui_progress\"\n\t\t) {\n\t\t\tquestions.progress(parsed as RpcExtensionUIProgress);\n\t\t\treturn;\n\t\t}\n\n\t\t// Handle extension UI responses\n\t\tif (\n\t\t\ttypeof parsed === \"object\" &&\n\t\t\tparsed !== null &&\n\t\t\t\"type\" in parsed &&\n\t\t\tparsed.type === \"extension_ui_response\"\n\t\t) {\n\t\t\tconst response = parsed as RpcExtensionUIResponse;\n\t\t\tconst result = questions.respond(response);\n\t\t\tif (typeof result === \"string\") output(error(response.id, \"extension_ui_response\", result));\n\t\t\tif (result) return;\n\t\t\tif (!pendingExtensionRequests.resolve(response) && routingSessionId !== undefined) {\n\t\t\t\t// This binding owns exactly one session's request map. A response not\n\t\t\t\t// requested here is a routed protocol error, never a cross-session match.\n\t\t\t\toutput(error(undefined, \"extension_ui_response\", \"unknown_extension_ui_request\"));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst command = parsed as RpcCommand;\n\t\tconst payloadError = rpcCommandPayloadError(command);\n\t\tconst messageLengthError = rpcMessageLengthError(command);\n\t\tif (payloadError || messageLengthError) {\n\t\t\toutput(error(command.id, command.type, payloadError ?? messageLengthError!));\n\t\t\tawait waitForRpcBackpressure();\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tconst response = await handleCommand(command);\n\t\t\tif (response) {\n\t\t\t\toutput(response);\n\t\t\t\tawait waitForRpcBackpressure();\n\t\t\t}\n\t\t} catch (commandError: unknown) {\n\t\t\tconst missingCwd =\n\t\t\t\tcommandError instanceof Error && commandError.name === \"MissingSessionCwdError\" && \"issue\" in commandError;\n\t\t\toutput(\n\t\t\t\terror(\n\t\t\t\t\tcommand.id,\n\t\t\t\t\tcommand.type,\n\t\t\t\t\tcommandError instanceof Error ? commandError.message : String(commandError),\n\t\t\t\t\tmissingCwd ? \"missing_session_cwd\" : undefined,\n\t\t\t\t\tmissingCwd ? commandError.issue : undefined,\n\t\t\t\t),\n\t\t\t);\n\t\t\tawait waitForRpcBackpressure();\n\t\t}\n\t};\n\n\tconst dispose = async (): Promise<void> => {\n\t\tdisposeAllRenderers();\n\t\tquestions.cancelAll();\n\t\tpendingExtensionRequests.close();\n\t\tunsubscribeProviderAccountEvents();\n\t\tunsubscribe?.();\n\t\tunsubscribeBackpressure?.();\n\t\tunsubscribeLoadedSurfaces?.();\n\t\tunsubscribeExtensionEvents?.();\n\t\tunsubscribe = undefined;\n\t\tunsubscribeBackpressure = undefined;\n\t\tunsubscribeLoadedSurfaces = undefined;\n\t\tunsubscribeExtensionEvents = undefined;\n\t\tif (options.disposeRuntime !== false) {\n\t\t\tawait runtimeHost.dispose();\n\t\t}\n\t};\n\n\t// Perform the initial bind synchronously-scheduled so the handler is ready\n\t// as soon as the caller awaits `ready`.\n\tconst ready = rebindSession();\n\n\treturn {\n\t\tready,\n\t\tasync handleInputLine(line: string) {\n\t\t\tawait ready;\n\t\t\tawait handleInputLine(line);\n\t\t},\n\t\trerenderComponents() {\n\t\t\tif (!hasRenderedComponents()) {\n\t\t\t\tdisposeAllRenderers();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (const [key, createRenderer] of retainedRendererFactories) if (!liveRenderers.has(key)) createRenderer();\n\t\t\tfor (const renderer of liveRenderers.values()) renderer.rerender();\n\t\t},\n\t\tisShutdownRequested() {\n\t\t\treturn shutdownRequested;\n\t\t},\n\t\tcancelPendingExtensionUiRequests() {\n\t\t\tquestions.cancelAll();\n\t\t\tpendingExtensionRequests.cancelAll();\n\t\t},\n\t\tasync dispose() {\n\t\t\tawait ready;\n\t\t\tawait dispose();\n\t\t},\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"connection-handler.js","sourceRoot":"","sources":["../../../src/modes/rpc/connection-handler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Per-connection RPC handler.\n *\n * This is the transport-independent core extracted from `runRpcMode`. It owns\n * exactly one AgentSession runtime and speaks the JSONL RPC protocol over an\n * injected output sink and a caller-driven line feed. It knows nothing about\n * `process.stdout`, `process.stdin`, or process signals — those belong to the\n * host (classic single-connection stdio in `rpc-mode.ts` or another transport\n * adapter).\n *\n * Behaviour is byte-for-byte identical to the original `runRpcMode` command\n * loop: the same responses, the same event stream, the same extension-UI\n * bridge, the same backpressure discipline. The only difference is that writes\n * go to `sink.writeRaw` instead of `writeRawStdout`, and the caller decides how\n * (and whether) to end the process.\n */\n\nimport * as crypto from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\nimport { basename, dirname, extname } from \"node:path\";\nimport type { ImageContent } from \"@earendil-works/pi-ai\";\nimport type { OAuthProviderId } from \"@earendil-works/pi-ai/compat\";\nimport { VERSION } from \"../../config.ts\";\nimport type { AgentAbortSource } from \"../../core/agent-abort-provenance.ts\";\nimport type { AgentSession, PromptDisposition } from \"../../core/agent-session.ts\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.ts\";\nimport { buildLoginProviderInfos } from \"../../core/auth-providers.ts\";\nimport {\n\tgetCredentialAccounts,\n\tpinCredentialAccount,\n\tremoveCredentialAccount,\n} from \"../../core/credential-accounts.ts\";\nimport { AssistantEditError, SessionStreamingError } from \"../../core/edited-assistant-message.ts\";\nimport {\n\temitProviderAccountsChanged,\n\tsubscribeProviderAccountEvents,\n} from \"../../core/extensions/builtin/claude-sdk-oauth/account-events.ts\";\nimport { CLAUDE_SDK_OAUTH_PROVIDER_ID } from \"../../core/extensions/builtin/claude-sdk-oauth/account-management.ts\";\nimport {\n\tisMcpControlInventoryChanged,\n\tMCP_CONTROL_INVENTORY_CHANGED_EVENT,\n\tMCP_CONTROL_INVENTORY_REQUEST_EVENT,\n\ttype McpControlInventoryRequest,\n} from \"../../core/extensions/builtin/mcp/control-inventory.ts\";\nimport type { McpWireStatusServer, McpWireStatusSnapshot } from \"../../core/extensions/builtin/mcp/service-types.ts\";\nimport {\n\tapplyFastMode,\n\ttype FastModeContext,\n\tresolveServiceTierMemoryModel,\n} from \"../../core/extensions/builtin/service-tier.ts\";\nimport type {\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tWorkingIndicatorOptions,\n} from \"../../core/extensions/index.ts\";\nimport { FooterDataProvider } from \"../../core/footer-data-provider.ts\";\nimport { getSupportedThinkingLevels } from \"../../core/thinking-levels.ts\";\nimport { ProjectTrustStore } from \"../../core/trust-manager.ts\";\nimport { type Theme, theme } from \"../interactive/theme/theme.ts\";\nimport { ConnectionQuestionBridge, degradeQuestion, sessionQuestionBridges } from \"./connection-question-bridge.ts\";\nimport {\n\tAUTO_TITLE_SESSIONS_CAPABILITY,\n\tbuildCustomUnsupportedRequest,\n\tDEFAULT_CUSTOM_EXTENSION_LABEL,\n\tEXTENSION_EVENTS_CAPABILITY,\n\tMEDIA_PLACEHOLDERS_CAPABILITY,\n\tQUESTION_CAPABILITY,\n\tRENDERED_COMPONENTS_CAPABILITY,\n} from \"./custom-capability.ts\";\nimport { createRpcEventOutputBuffer } from \"./event-output-buffer.ts\";\nimport { createRpcLoginPromptCallbacks } from \"./login-prompts.ts\";\nimport { buildRpcCommandsForSession, createCommandsChangedEvent, rpcCommandListDigest } from \"./rpc-command-surface.ts\";\nimport { rpcCommandPayloadError, rpcCommandShapeError, rpcMessageLengthError } from \"./rpc-input-validation.ts\";\nimport type {\n\tRpcAuthProvider,\n\tRpcCommand,\n\tRpcCommandInvocationEvent,\n\tRpcExtensionEvent,\n\tRpcExtensionUIProgress,\n\tRpcExtensionUIRequest,\n\tRpcExtensionUIResponse,\n\tRpcLoadedExtension,\n\tRpcLoadedMcpServer,\n\tRpcMcpServerStatus,\n\tRpcResponse,\n\tRpcSessionReplacedEvent,\n\tRpcSessionState,\n\tRpcSkillInvocationEvent,\n} from \"./rpc-types.ts\";\nimport { RPC_ERROR_MEDIA_NOT_FOUND } from \"./rpc-types.ts\";\nimport { RENDERED_COMPONENT_RECORD } from \"./session-event-writer.ts\";\nimport { SessionExtensionUiRequests } from \"./session-extension-ui-requests.ts\";\nimport { createLiveComponentRenderer, type LiveComponentRenderer } from \"./widget-line-renderer.ts\";\n\n/** Additive per-connection options. Absent = classic default (byte-identical). */\nexport interface RpcConnectionOptions {\n\t/** Client capability flags from the handshake (e.g. custom_unsupported opt-in). */\n\tcapabilities?: readonly string[];\n\t/** Called instead of requesting process shutdown for a session-owned binding. */\n\tshutdownHandler?: () => void;\n\t/** Session registries own runtime disposal themselves. */\n\tdisposeRuntime?: boolean;\n\t/** Shared workers flush synchronously into their bounded IPC credit channel. */\n\teventFlushScheduler?: (flush: () => void) => void;\n\t/** Multi-session routing handle. Absent preserves classic wire output exactly. */\n\tsessionId?: string;\n\tfooterDataProviderFactory?: (session: AgentSession) => FooterDataProvider;\n\tsharedWidth?: {\n\t\tgetWidth: () => number;\n\t\tsetWidth: (connectionId: string | undefined, width: number) => void;\n\t\tclearWidth: (connectionId: string | undefined) => void;\n\t\tsetCapabilities?: (connectionId: string | undefined, capabilities: readonly string[]) => void;\n\t\thasRenderedComponents?: (sessionId: string) => boolean;\n\t\tconnectionId: () => string | undefined;\n\t\tonChange?: () => void;\n\t};\n}\n\n/**\n * The output side of a connection. `writeRaw` receives already-serialized JSONL\n * text (LF-terminated). `waitForBackpressure` lets the host apply flow control\n * (stdout drain in classic mode, or the transport's own `drain` signal).\n */\nfunction createFooterDataProvider(session: AgentSession): FooterDataProvider {\n\treturn new FooterDataProvider(session.sessionManager.getCwd());\n}\n\nexport interface RpcConnectionSink {\n\twriteRaw(chunk: string): void;\n\twaitForBackpressure(): Promise<void>;\n\t/** Tears the transport down once its event queue can no longer deliver (overflow, write failure). */\n\tclose?(): void;\n}\n\nexport interface RpcConnectionHandler {\n\t/**\n\t * Resolves once the initial session bind completes. Awaiting it guarantees the\n\t * extension UI context is installed (used by tests that drive ctx.ui directly).\n\t */\n\treadonly ready: Promise<void>;\n\t/** Feed one inbound JSONL line (command or extension_ui_response). */\n\thandleInputLine(line: string): Promise<void>;\n\trerenderComponents(): void;\n\t/**\n\t * True once an extension requested shutdown via the shutdown handler. The\n\t * host polls this after each command and decides how to tear down.\n\t */\n\tisShutdownRequested(): boolean;\n\t/** Cancel UI requests that can no longer be answered by this connection. */\n\tcancelPendingExtensionUiRequests(): void;\n\t/** Tear down subscriptions and dispose the runtime. Never calls process.exit. */\n\tdispose(): Promise<void>;\n}\n\nfunction loadedExtensionName(path: string): string {\n\tconst synthetic = /^<(?:builtin|inline):([^>]+)>$/.exec(path);\n\tif (synthetic) return synthetic[1];\n\tconst withoutExtension = basename(path, extname(path));\n\tif (withoutExtension !== \"index\") return withoutExtension;\n\tconst parent = dirname(path);\n\tconst parentName = basename(parent);\n\treturn parentName === \"src\" || parentName === \"dist\" ? basename(dirname(parent)) : parentName;\n}\n\nfunction loadedExtensions(session: AgentSession): RpcLoadedExtension[] {\n\treturn session.resourceLoader.getExtensions().extensions.map((extension) => ({\n\t\tname: loadedExtensionName(extension.path),\n\t\tpath: extension.path,\n\t\tsourceInfo: extension.sourceInfo,\n\t\tenabled: true,\n\t}));\n}\n\nfunction loadedMcpStatus(server: McpWireStatusServer): RpcMcpServerStatus {\n\tif (server.status !== undefined) return server.status;\n\tif (server.serverInfo !== null) return \"connected\";\n\tif (server.authStatus === \"notLoggedIn\") return \"needs_auth\";\n\treturn \"enabled\";\n}\n\n/**\n * Project one session into the wire state shape.\n *\n * Shared with `open_session` (session-command-router) so both surfaces answer with the SAME\n * fields: a second hand-rolled literal silently drifts, which is how `serviceTier`/`fastMode`\n * would otherwise be missing from an opened session's initial state.\n *\n * `lastAbortSource` is passed in rather than read from the session: `session.currentAbortSource`\n * is cleared once the turn settles, so only the caller that observed `agent_end` still knows\n * who owned the abort.\n */\nexport function buildRpcSessionState(session: AgentSession, lastAbortSource?: AgentAbortSource): RpcSessionState {\n\tconst cwd = session.sessionManager.getCwd();\n\t// Trust gates project-source settings (shell prefixes, project resources), so every\n\t// session state projection must have an authoritative store to consult.\n\tif (!session.agentDir) {\n\t\tthrow new Error(\"RPC session invariant violated: agentDir is required\");\n\t}\n\tconst projectTrusted = new ProjectTrustStore(session.agentDir).get(cwd) === true;\n\treturn {\n\t\tpendingQuestions: sessionQuestionBridges.get(session)?.pendingQuestions(),\n\t\tmodel: session.model,\n\t\tthinkingLevel: session.thinkingLevel,\n\t\t...(session.thinkingSelection ? { thinkingSelection: session.thinkingSelection } : {}),\n\t\t...(lastAbortSource ? { lastAbortSource } : {}),\n\t\tserviceTier: session.effectiveServiceTier,\n\t\tfastMode: session.isFastModeActive(),\n\t\tisStreaming: session.isStreaming,\n\t\tisCompacting: session.isCompacting,\n\t\tretryAttempt: session.retryAttempt,\n\t\tisBashRunning: session.isBashRunning,\n\t\tsteeringMode: session.steeringMode,\n\t\tfollowUpMode: session.followUpMode,\n\t\tsessionFile: session.sessionFile,\n\t\tsessionId: session.sessionId,\n\t\tsessionName: session.sessionName,\n\t\tcwd,\n\t\tprojectTrusted,\n\t\t...(session.sessionFile &&\n\t\t!existsSync(session.sessionFile) &&\n\t\tsession.sessionManager\n\t\t\t.getEntries()\n\t\t\t.some(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.type !== \"model_change\" &&\n\t\t\t\t\tentry.type !== \"model_change_rejected\" &&\n\t\t\t\t\tentry.type !== \"thinking_level_change\",\n\t\t\t)\n\t\t\t? { entries: session.sessionManager.getEntries() }\n\t\t\t: {}),\n\t\tsteering: typeof session.getSteeringMessages === \"function\" ? [...session.getSteeringMessages()] : [],\n\t\tfollowUp: typeof session.getFollowUpMessages === \"function\" ? [...session.getFollowUpMessages()] : [],\n\t\tordered: [\n\t\t\t...((\n\t\t\t\tsession as unknown as {\n\t\t\t\t\t_queuedInputOrder?: Array<{ text: string; mode: \"steer\" | \"followUp\"; enqueueOrder: number }>;\n\t\t\t\t}\n\t\t\t)._queuedInputOrder ?? []),\n\t\t].sort((a, b) => a.enqueueOrder - b.enqueueOrder),\n\t\tautoCompactionEnabled: session.autoCompactionEnabled,\n\t\tmessageCount: session.messages.length,\n\t\tpendingMessageCount: session.pendingMessageCount,\n\t\tusageTotals: session.sessionManager.getUsageTotals(),\n\t\tcontextUsage: typeof session.getContextUsage === \"function\" ? session.getContextUsage() : undefined,\n\t\tfavoriteModels: session.favoriteModels?.map((entry) => ({ ...entry })) ?? [],\n\t\tscopedModels: session.scopedModels?.map((entry) => ({ ...entry })) ?? [],\n\t};\n}\n\nfunction loadedMcpServers(snapshot: McpWireStatusSnapshot): RpcLoadedMcpServer[] {\n\treturn snapshot.servers.map((server) => ({\n\t\tname: server.name,\n\t\ttoolCount: server.tools.length,\n\t\tstatus: loadedMcpStatus(server),\n\t\tauthStatus: server.authStatus,\n\t}));\n}\n\nfunction loadedSurfacesFingerprint(\n\tsession: AgentSession,\n\textensions: readonly RpcLoadedExtension[],\n\tmcpServers: readonly RpcLoadedMcpServer[],\n): string {\n\treturn JSON.stringify({\n\t\tskills: session.resourceLoader.getSkills().skills.map((skill) => ({\n\t\t\tname: skill.name,\n\t\t\tpath: skill.filePath,\n\t\t\tsourceInfo: skill.sourceInfo,\n\t\t\tenabled: !skill.disableModelInvocation,\n\t\t})),\n\t\textensions,\n\t\tmcpServers,\n\t});\n}\n\n/**\n * Locate one media block inside a tool result by `(toolCallId, contentIndex)`.\n *\n * Durable session entries are searched first: they survive the live message window\n * being compacted or trimmed away. The live `session.messages` cover the window\n * between `tool_execution_end` and persistence. Returns `undefined` unless the index\n * lands on an actual image block, so a text block or an out-of-range index is\n * reported as `media_not_found` rather than as a differently-shaped success.\n */\nfunction findToolResultMedia(\n\tsession: AgentSession,\n\ttoolCallId: string,\n\tcontentIndex: number,\n): ImageContent | undefined {\n\tconst fromContent = (content: unknown): ImageContent | undefined => {\n\t\tif (!Array.isArray(content)) return undefined;\n\t\tconst block = content[contentIndex] as ImageContent | undefined;\n\t\treturn block?.type === \"image\" ? block : undefined;\n\t};\n\tconst matches = (message: unknown): message is { role: \"toolResult\"; toolCallId: string; content: unknown } => {\n\t\tconst candidate = message as { role?: unknown; toolCallId?: unknown } | null;\n\t\treturn candidate?.role === \"toolResult\" && candidate.toolCallId === toolCallId;\n\t};\n\n\tfor (const entry of session.sessionManager.getEntries()) {\n\t\tif (entry.type !== \"message\") continue;\n\t\tif (!matches(entry.message)) continue;\n\t\tconst found = fromContent(entry.message.content);\n\t\tif (found) return found;\n\t}\n\tfor (const message of session.messages) {\n\t\tif (!matches(message)) continue;\n\t\tconst found = fromContent(message.content);\n\t\tif (found) return found;\n\t}\n\treturn undefined;\n}\n\n/**\n * Create a per-connection RPC handler bound to one runtime host and one sink.\n *\n * This performs the initial `rebindSession()` and returns synchronously with a\n * handler whose `handleInputLine` is ready to use. Signal handling, stdin\n * wiring, and process exit are intentionally NOT done here.\n */\nexport function createRpcConnectionHandler(\n\truntimeHost: AgentSessionRuntime,\n\tsink: RpcConnectionSink,\n\toptions: RpcConnectionOptions = {},\n): RpcConnectionHandler {\n\tlet clientCapabilities = options.capabilities;\n\tconst routingSessionId = options.sessionId;\n\tconst clientWidth = () => options.sharedWidth?.getWidth() ?? 80;\n\tconst hasRenderedComponents = () =>\n\t\t(options.sharedWidth?.hasRenderedComponents?.(routingSessionId ?? \"\") ?? false) ||\n\t\t(clientCapabilities?.includes(RENDERED_COMPONENTS_CAPABILITY) ?? false);\n\tconst liveRenderers = new Map<string, LiveComponentRenderer>();\n\tconst retainedRendererFactories = new Map<string, () => void>();\n\tconst footerProviders = new Map<string, FooterDataProvider>();\n\tconst disposeRenderer = (key: string) => {\n\t\tliveRenderers.get(key)?.dispose();\n\t\tliveRenderers.delete(key);\n\t\tfooterProviders.get(key)?.dispose();\n\t\tfooterProviders.delete(key);\n\t};\n\tconst disposeAllRenderers = () => {\n\t\tfor (const renderer of liveRenderers.values()) renderer.dispose();\n\t\tfor (const provider of footerProviders.values()) provider.dispose();\n\t\tliveRenderers.clear();\n\t\tfooterProviders.clear();\n\t};\n\t// True only while THIS connection's own command drives a replacement; the issuer\n\t// already learns the new identity from its command response.\n\tlet replacementIssuedHere = false;\n\tlet session = runtimeHost.session;\n\tlet unsubscribe: (() => void) | undefined;\n\tlet unsubscribeBackpressure: (() => void) | undefined;\n\tlet unsubscribeLoadedSurfaces: (() => void) | undefined;\n\tlet unsubscribeExtensionEvents: (() => void) | undefined;\n\tlet mcpWireStatus: McpWireStatusSnapshot = { servers: [] };\n\t/** Abort owner of the last settled turn; `session.currentAbortSource` clears on settle. */\n\tlet lastAbortSource: AgentAbortSource | undefined;\n\tlet loadedSurfacesDigest: string | undefined;\n\tlet rpcCommandsDigest: string | undefined;\n\tlet suppressLoadedSurfaceEvents = false;\n\tconst eventOutput = createRpcEventOutputBuffer(sink.writeRaw, options.eventFlushScheduler);\n\n\tconst tagSessionRecord = <T extends object>(value: T): T | (T & { sessionId: string }) =>\n\t\troutingSessionId === undefined ? value : { ...value, sessionId: routingSessionId };\n\n\tconst output = (obj: RpcResponse | RpcExtensionUIRequest | object) => {\n\t\teventOutput.writeImmediate(tagSessionRecord(obj));\n\t};\n\n\tconst outputEvent = (event: object) => {\n\t\teventOutput.enqueueEvent(tagSessionRecord(event));\n\t};\n\n\tconst currentLoadedSurfaces = (): {\n\t\tdata: { extensions: RpcLoadedExtension[]; mcpServers: RpcLoadedMcpServer[] };\n\t\tdigest: string;\n\t} => {\n\t\tconst extensions = loadedExtensions(session);\n\t\tconst mcpServers = loadedMcpServers(mcpWireStatus);\n\t\treturn {\n\t\t\tdata: { extensions, mcpServers },\n\t\t\tdigest: loadedSurfacesFingerprint(session, extensions, mcpServers),\n\t\t};\n\t};\n\n\tconst recordLoadedSurfaces = (emitChange: boolean): ReturnType<typeof currentLoadedSurfaces> => {\n\t\tconst current = currentLoadedSurfaces();\n\t\tconst changed = loadedSurfacesDigest !== undefined && loadedSurfacesDigest !== current.digest;\n\t\tloadedSurfacesDigest = current.digest;\n\t\tif (emitChange && changed && !suppressLoadedSurfaceEvents) {\n\t\t\toutputEvent({ type: \"loaded_surfaces_changed\" });\n\t\t}\n\t\treturn current;\n\t};\n\n\tconst requestMcpWireStatus = async (): Promise<void> => {\n\t\tlet response: Promise<McpWireStatusSnapshot> | undefined;\n\t\tconst request: McpControlInventoryRequest = {\n\t\t\tsessionId: session.sessionId,\n\t\t\trespond(snapshot) {\n\t\t\t\tresponse ??= snapshot;\n\t\t\t},\n\t\t};\n\t\tsession.resourceLoader.emitExtensionEvent?.(MCP_CONTROL_INVENTORY_REQUEST_EVENT, request);\n\t\tmcpWireStatus = response === undefined ? { servers: [] } : await response;\n\t};\n\n\tconst subscribeLoadedSurfaceEvents = (): void => {\n\t\tunsubscribeLoadedSurfaces?.();\n\t\tunsubscribeLoadedSurfaces = session.resourceLoader.onExtensionEvent?.(\n\t\t\tMCP_CONTROL_INVENTORY_CHANGED_EVENT,\n\t\t\t(data) => {\n\t\t\t\tif (!isMcpControlInventoryChanged(data) || data.sessionId !== session.sessionId) return;\n\t\t\t\tmcpWireStatus = data.snapshot;\n\t\t\t\tif (!suppressLoadedSurfaceEvents) recordLoadedSurfaces(true);\n\t\t\t},\n\t\t);\n\t};\n\n\tconst unsubscribeProviderAccountEvents = subscribeProviderAccountEvents((event) => {\n\t\tif (event.type === \"accounts_changed\") {\n\t\t\toutputEvent({ type: \"auth_accounts_changed\", provider: event.provider });\n\t\t\treturn;\n\t\t}\n\t\toutputEvent({\n\t\t\ttype: \"account_failover\",\n\t\t\tprovider: event.provider,\n\t\t\tfrom: event.from,\n\t\t\tto: event.to,\n\t\t\treason: event.reason,\n\t\t});\n\t});\n\n\tconst waitForRpcBackpressure = async (): Promise<void> => {\n\t\teventOutput.flushEvents();\n\t\tawait sink.waitForBackpressure();\n\t};\n\n\tconst success = <T extends RpcCommand[\"type\"]>(id: string | undefined, command: T, data?: unknown): RpcResponse => {\n\t\tif (data === undefined) {\n\t\t\treturn { id, type: \"response\", command, success: true } as RpcResponse;\n\t\t}\n\t\treturn { id, type: \"response\", command, success: true, data } as RpcResponse;\n\t};\n\n\tconst error = (\n\t\tid: string | undefined,\n\t\tcommand: string,\n\t\tmessage: string,\n\t\terrorCode?: string,\n\t\terrorData?: unknown,\n\t): RpcResponse => {\n\t\treturn {\n\t\t\tid,\n\t\t\ttype: \"response\",\n\t\t\tcommand,\n\t\t\tsuccess: false,\n\t\t\terror: message,\n\t\t\t...(errorCode ? { errorCode } : {}),\n\t\t\t...(errorData === undefined ? {} : { errorData }),\n\t\t};\n\t};\n\n\t// Pending extension UI requests waiting for response\n\tconst pendingExtensionRequests = new SessionExtensionUiRequests();\n\tconst questions = new ConnectionQuestionBridge(output);\n\n\tlet shutdownRequested = false;\n\n\t// In-flight OAuth logins, keyed by provider. login_start registers one; the\n\t// login promise clears it on completion; login_cancel aborts it. The flow is\n\t// fire-command-then-subscribe: login_start responds immediately and the URL +\n\t// terminal result arrive as auth_login_url / auth_login_end events.\n\tconst activeLogins = new Map<string, AbortController>();\n\n\t/** Helper for dialog methods with signal/timeout support */\n\tfunction createDialogPromise<T>(\n\t\topts: ExtensionUIDialogOptions | undefined,\n\t\tdefaultValue: T,\n\t\trequest: Record<string, unknown>,\n\t\tparseResponse: (response: RpcExtensionUIResponse) => T,\n\t): Promise<T> {\n\t\tif (opts?.signal?.aborted) return Promise.resolve(defaultValue);\n\n\t\tconst id = crypto.randomUUID();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n\t\t\tconst cleanup = () => {\n\t\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\t\topts?.signal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\tpendingExtensionRequests.delete(id);\n\t\t\t};\n\n\t\t\tconst onAbort = () => {\n\t\t\t\tcleanup();\n\t\t\t\tresolve(defaultValue);\n\t\t\t};\n\t\t\topts?.signal?.addEventListener(\"abort\", onAbort, { once: true });\n\n\t\t\tif (opts?.timeout) {\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tresolve(defaultValue);\n\t\t\t\t}, opts.timeout);\n\t\t\t}\n\n\t\t\tpendingExtensionRequests.set(id, {\n\t\t\t\tresolve: (response: RpcExtensionUIResponse) => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tresolve(parseResponse(response));\n\t\t\t\t},\n\t\t\t\treject,\n\t\t\t});\n\t\t\toutput({ type: \"extension_ui_request\", id, ...request } as RpcExtensionUIRequest);\n\t\t});\n\t}\n\n\t/**\n\t * Create an extension UI context that uses the RPC protocol.\n\t */\n\tconst createExtensionUIContext = (): ExtensionUIContext => ({\n\t\tquestion: (request, opts) =>\n\t\t\tclientCapabilities?.includes(QUESTION_CAPABILITY)\n\t\t\t\t? questions.ask(request, opts)\n\t\t\t\t: degradeQuestion(createExtensionUIContext(), request, opts),\n\t\tselect: (title, options, opts) =>\n\t\t\tcreateDialogPromise(opts, undefined, { method: \"select\", title, options, timeout: opts?.timeout }, (r) =>\n\t\t\t\t\"cancelled\" in r && r.cancelled ? undefined : \"value\" in r ? r.value : undefined,\n\t\t\t),\n\n\t\tconfirm: (title, message, opts) =>\n\t\t\tcreateDialogPromise(opts, false, { method: \"confirm\", title, message, timeout: opts?.timeout }, (r) =>\n\t\t\t\t\"cancelled\" in r && r.cancelled ? false : \"confirmed\" in r ? r.confirmed : false,\n\t\t\t),\n\n\t\tinput: (title, placeholder, opts) =>\n\t\t\tcreateDialogPromise(opts, undefined, { method: \"input\", title, placeholder, timeout: opts?.timeout }, (r) =>\n\t\t\t\t\"cancelled\" in r && r.cancelled ? undefined : \"value\" in r ? r.value : undefined,\n\t\t\t),\n\n\t\tnotify(message: string, type?: \"info\" | \"warning\" | \"error\"): void {\n\t\t\t// Fire and forget - no response needed\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"notify\",\n\t\t\t\tmessage,\n\t\t\t\tnotifyType: type,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tonTerminalInput(): () => void {\n\t\t\t// Raw terminal input not supported in RPC mode\n\t\t\treturn () => {};\n\t\t},\n\n\t\tsetStatus(key: string, text: string | undefined): void {\n\t\t\t// Fire and forget - no response needed\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"setStatus\",\n\t\t\t\tstatusKey: key,\n\t\t\t\tstatusText: text,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tsetWorkingMessage(_message?: string): void {\n\t\t\t// Working message not supported in RPC mode - requires TUI loader access\n\t\t},\n\n\t\tsetWorkingVisible(_visible: boolean): void {\n\t\t\t// Working visibility not supported in RPC mode - requires TUI loader access\n\t\t},\n\n\t\tsetWorkingIndicator(_options?: WorkingIndicatorOptions): void {\n\t\t\t// Working indicator customization not supported in RPC mode - requires TUI loader access\n\t\t},\n\n\t\tsetHiddenThinkingLabel(_label?: string): void {\n\t\t\t// Hidden thinking label not supported in RPC mode - requires TUI message rendering access\n\t\t},\n\n\t\tsetWidget(key: string, content: unknown, options?: ExtensionWidgetOptions): void {\n\t\t\tdisposeRenderer(key);\n\t\t\tretainedRendererFactories.delete(key);\n\t\t\tif (content === undefined || Array.isArray(content)) {\n\t\t\t\toutput({\n\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\tmethod: \"setWidget\",\n\t\t\t\t\twidgetKey: key,\n\t\t\t\t\twidgetLines: content as string[] | undefined,\n\t\t\t\t\twidgetPlacement: options?.placement,\n\t\t\t\t} as RpcExtensionUIRequest);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tretainedRendererFactories.set(key, () => {\n\t\t\t\tconst renderer = createLiveComponentRenderer({\n\t\t\t\t\tfactory: content as (\n\t\t\t\t\t\ttui: import(\"@earendil-works/pi-tui\").TUI,\n\t\t\t\t\t\tthm: Theme,\n\t\t\t\t\t) => import(\"@earendil-works/pi-tui\").Component,\n\t\t\t\t\tgetWidth: clientWidth,\n\t\t\t\t\temit: (widgetLines) =>\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\t\tmethod: \"setWidget\",\n\t\t\t\t\t\t\twidgetKey: key,\n\t\t\t\t\t\t\twidgetLines,\n\t\t\t\t\t\t\twidgetPlacement: options?.placement,\n\t\t\t\t\t\t\t[RENDERED_COMPONENT_RECORD]: true,\n\t\t\t\t\t\t} as RpcExtensionUIRequest),\n\t\t\t\t});\n\t\t\t\tif (renderer) liveRenderers.set(key, renderer);\n\t\t\t});\n\t\t\tif (hasRenderedComponents()) retainedRendererFactories.get(key)!();\n\t\t},\n\n\t\tsetFooter(factory: unknown): void {\n\t\t\tconst key = \"__footer__\";\n\t\t\tdisposeRenderer(key);\n\t\t\tretainedRendererFactories.delete(key);\n\t\t\tif (factory === undefined) {\n\t\t\t\tif (hasRenderedComponents())\n\t\t\t\t\toutput({\n\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\tmethod: \"setFooter\",\n\t\t\t\t\t\twidgetLines: undefined,\n\t\t\t\t\t} as RpcExtensionUIRequest);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tretainedRendererFactories.set(key, () => {\n\t\t\t\tconst provider = options.footerDataProviderFactory?.(session) ?? createFooterDataProvider(session);\n\t\t\t\tconst renderer = createLiveComponentRenderer({\n\t\t\t\t\tfactory: factory as never,\n\t\t\t\t\tfactoryArgs: [provider],\n\t\t\t\t\tgetWidth: clientWidth,\n\t\t\t\t\temit: (widgetLines) =>\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\t\tmethod: \"setFooter\",\n\t\t\t\t\t\t\twidgetLines,\n\t\t\t\t\t\t\t[RENDERED_COMPONENT_RECORD]: true,\n\t\t\t\t\t\t} as RpcExtensionUIRequest),\n\t\t\t\t});\n\t\t\t\tif (renderer) {\n\t\t\t\t\tliveRenderers.set(key, renderer);\n\t\t\t\t\tfooterProviders.set(key, provider);\n\t\t\t\t} else provider.dispose();\n\t\t\t});\n\t\t\tif (hasRenderedComponents()) retainedRendererFactories.get(key)!();\n\t\t},\n\n\t\tsetHeader(factory: unknown): void {\n\t\t\tconst key = \"__header__\";\n\t\t\tdisposeRenderer(key);\n\t\t\tretainedRendererFactories.delete(key);\n\t\t\tif (factory === undefined) {\n\t\t\t\tif (hasRenderedComponents())\n\t\t\t\t\toutput({\n\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\tmethod: \"setHeader\",\n\t\t\t\t\t\twidgetLines: undefined,\n\t\t\t\t\t} as RpcExtensionUIRequest);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tretainedRendererFactories.set(key, () => {\n\t\t\t\tconst renderer = createLiveComponentRenderer({\n\t\t\t\t\tfactory: factory as never,\n\t\t\t\t\tgetWidth: clientWidth,\n\t\t\t\t\temit: (widgetLines) =>\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\t\t\tmethod: \"setHeader\",\n\t\t\t\t\t\t\twidgetLines,\n\t\t\t\t\t\t\t[RENDERED_COMPONENT_RECORD]: true,\n\t\t\t\t\t\t} as RpcExtensionUIRequest),\n\t\t\t\t});\n\t\t\t\tif (renderer) liveRenderers.set(key, renderer);\n\t\t\t});\n\t\t\tif (hasRenderedComponents()) retainedRendererFactories.get(key)!();\n\t\t},\n\n\t\tsetTitle(title: string): void {\n\t\t\t// Fire and forget - host can implement terminal title control\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"setTitle\",\n\t\t\t\ttitle,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tasync custom() {\n\t\t\t// Custom UI cannot be rendered in RPC mode. By default this returns\n\t\t\t// undefined synchronously with NO wire message — byte-identical to the\n\t\t\t// original behavior. ONLY when the client advertised the\n\t\t\t// \"custom_unsupported\" capability do we emit an additive notice request\n\t\t\t// so an opt-in client can render a \"requires the classic TUI\" dialog before\n\t\t\t// returning undefined. The name is best-effort: ctx.ui.custom carries no\n\t\t\t// extension identity, so a generic label is used.\n\t\t\tconst request = buildCustomUnsupportedRequest(clientCapabilities, DEFAULT_CUSTOM_EXTENSION_LABEL);\n\t\t\tif (request) {\n\t\t\t\toutput(request);\n\t\t\t}\n\t\t\treturn undefined as never;\n\t\t},\n\n\t\tpasteToEditor(text: string): void {\n\t\t\t// Paste handling not supported in RPC mode - falls back to setEditorText\n\t\t\tthis.setEditorText(text);\n\t\t},\n\n\t\tsetEditorText(text: string): void {\n\t\t\t// Fire and forget - host can implement editor control\n\t\t\toutput({\n\t\t\t\ttype: \"extension_ui_request\",\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tmethod: \"set_editor_text\",\n\t\t\t\ttext,\n\t\t\t} as RpcExtensionUIRequest);\n\t\t},\n\n\t\tgetEditorText(): string {\n\t\t\t// Synchronous method can't wait for RPC response\n\t\t\t// Host should track editor state locally if needed\n\t\t\treturn \"\";\n\t\t},\n\n\t\tasync editor(title: string, prefill?: string): Promise<string | undefined> {\n\t\t\tconst id = crypto.randomUUID();\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tpendingExtensionRequests.set(id, {\n\t\t\t\t\tresolve: (response: RpcExtensionUIResponse) => {\n\t\t\t\t\t\tif (\"cancelled\" in response && response.cancelled) {\n\t\t\t\t\t\t\tresolve(undefined);\n\t\t\t\t\t\t} else if (\"value\" in response) {\n\t\t\t\t\t\t\tresolve(response.value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve(undefined);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\treject,\n\t\t\t\t});\n\t\t\t\toutput({ type: \"extension_ui_request\", id, method: \"editor\", title, prefill } as RpcExtensionUIRequest);\n\t\t\t});\n\t\t},\n\n\t\taddAutocompleteProvider(): void {\n\t\t\t// Autocomplete provider composition is not supported in RPC mode\n\t\t},\n\n\t\tsetEditorComponent(): void {\n\t\t\t// Custom editor components not supported in RPC mode\n\t\t},\n\n\t\tgetEditorComponent() {\n\t\t\t// Custom editor components not supported in RPC mode\n\t\t\treturn undefined;\n\t\t},\n\n\t\tget theme() {\n\t\t\treturn theme;\n\t\t},\n\n\t\tgetAllThemes() {\n\t\t\treturn [];\n\t\t},\n\n\t\tgetTheme(_name: string) {\n\t\t\treturn undefined;\n\t\t},\n\n\t\tsetTheme(_theme: string | Theme) {\n\t\t\t// Theme switching not supported in RPC mode\n\t\t\treturn { success: false, error: \"Theme switching not supported in RPC mode\" };\n\t\t},\n\n\t\tgetToolsExpanded() {\n\t\t\t// Tool expansion not supported in RPC mode - no TUI\n\t\t\treturn false;\n\t\t},\n\n\t\tsetToolsExpanded(_expanded: boolean) {\n\t\t\t// Tool expansion not supported in RPC mode - no TUI\n\t\t},\n\t});\n\n\tconst refreshLoadedSurfacesAfter = async (operation: () => Promise<void>, resetMcp: boolean): Promise<void> => {\n\t\tconst previousDigest = loadedSurfacesDigest;\n\t\tconst wasSuppressed = suppressLoadedSurfaceEvents;\n\t\tsuppressLoadedSurfaceEvents = true;\n\t\tif (resetMcp) mcpWireStatus = { servers: [] };\n\t\tlet commandsChanged: ReturnType<typeof createCommandsChangedEvent>;\n\t\ttry {\n\t\t\tawait operation();\n\t\t\tawait requestMcpWireStatus();\n\t\t\tloadedSurfacesDigest = currentLoadedSurfaces().digest;\n\t\t\tconst commands = buildRpcCommandsForSession(session);\n\t\t\tcommandsChanged = createCommandsChangedEvent(rpcCommandsDigest, commands);\n\t\t\trpcCommandsDigest = rpcCommandListDigest(commands);\n\t\t} finally {\n\t\t\tsuppressLoadedSurfaceEvents = wasSuppressed;\n\t\t}\n\t\tif (!wasSuppressed && commandsChanged) {\n\t\t\toutputEvent(commandsChanged);\n\t\t}\n\t\tif (!wasSuppressed && previousDigest !== undefined && previousDigest !== loadedSurfacesDigest) {\n\t\t\toutputEvent({ type: \"loaded_surfaces_changed\" });\n\t\t}\n\t};\n\n\truntimeHost.setRebindSession(async () => {\n\t\t// AgentSessionRuntime invokes this callback while completing a replacement.\n\t\t// Do not await extension binding here: extensions may wait for session work\n\t\t// that the replacement still owns. The command response must acknowledge the\n\t\t// committed replacement; derived surfaces refresh out of band afterwards.\n\t\tawait rebindSession(true);\n\t});\n\n\tconst rebindAfterLocalReplacement = async (): Promise<void> => {\n\t\treplacementIssuedHere = true;\n\t\ttry {\n\t\t\tawait rebindSession();\n\t\t} finally {\n\t\t\treplacementIssuedHere = false;\n\t\t}\n\t};\n\n\tconst rebindSession = async (deferRefresh = false): Promise<void> => {\n\t\tunsubscribeLoadedSurfaces?.();\n\t\tunsubscribeExtensionEvents?.();\n\t\tconst replacedSession = session !== runtimeHost.session;\n\t\tsession = runtimeHost.session;\n\t\tsessionQuestionBridges.set(session, questions);\n\t\tif (replacedSession) {\n\t\t\tlastAbortSource = undefined;\n\t\t\tif (routingSessionId !== undefined || !replacementIssuedHere) {\n\t\t\t\t// A replacement can be driven by ANY attached client, so every connection must be\n\t\t\t\t// told the live binding moved and given the new authoritative identity. Emitted\n\t\t\t\t// before the derived-surface refresh so a client cannot act on the old identity in\n\t\t\t\t// the window the refresh takes.\n\t\t\t\toutputEvent({\n\t\t\t\t\ttype: \"session_replaced\",\n\t\t\t\t\tdurableSessionId: session.sessionId,\n\t\t\t\t\tsessionFile: session.sessionFile,\n\t\t\t\t\tcwd: session.sessionManager.getCwd(),\n\t\t\t\t\tsessionName: session.sessionName,\n\t\t\t\t} satisfies RpcSessionReplacedEvent);\n\t\t\t}\n\t\t}\n\t\tunsubscribeExtensionEvents = clientCapabilities?.includes(EXTENSION_EVENTS_CAPABILITY)\n\t\t\t? session.extensionRunner.onRpcEvent(({ name, data }) => {\n\t\t\t\t\toutputEvent({ type: \"extension_event\", name, data } satisfies RpcExtensionEvent);\n\t\t\t\t})\n\t\t\t: undefined;\n\t\tsubscribeLoadedSurfaceEvents();\n\t\t// Subscribe to the replaced session before its bind runs, not after. The bind\n\t\t// is deferred by design - awaiting it would deadlock a client whose\n\t\t// session_start handler blocks on an extension_ui_request it cannot answer\n\t\t// while still awaiting the replacement response - and it still mutates the\n\t\t// session it owns: pi-rules appends a durable scan entry from session_start.\n\t\t// Those entries must reach every attached connection, and nothing else can\n\t\t// carry them, because the session file is not written until an assistant\n\t\t// message exists, so a client that misses the notification can never\n\t\t// reconstruct the session it is bound to. Installing here also drops the\n\t\t// previous session's subscription immediately instead of after the bind.\n\t\tinstallSessionSubscriptions();\n\t\tconst refresh = refreshLoadedSurfacesAfter(\n\t\t\t() =>\n\t\t\t\tsession.bindExtensions({\n\t\t\t\t\tuiContext: createExtensionUIContext(),\n\t\t\t\t\tmode: \"rpc\",\n\t\t\t\t\tcommandContextActions: {\n\t\t\t\t\t\twaitForIdle: () => session.agent.waitForIdle(),\n\t\t\t\t\t\tnewSession: async (options) => runtimeHost.newSession(options),\n\t\t\t\t\t\tfork: async (entryId, forkOptions) => {\n\t\t\t\t\t\t\tconst result = await runtimeHost.fork(entryId, forkOptions);\n\t\t\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnavigateTree: async (targetId, options) => {\n\t\t\t\t\t\t\tconst result = await session.navigateTree(targetId, {\n\t\t\t\t\t\t\t\tsummarize: options?.summarize,\n\t\t\t\t\t\t\t\tcustomInstructions: options?.customInstructions,\n\t\t\t\t\t\t\t\treplaceInstructions: options?.replaceInstructions,\n\t\t\t\t\t\t\t\tlabel: options?.label,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn { cancelled: result.cancelled };\n\t\t\t\t\t\t},\n\t\t\t\t\t\teditAssistantMessage: async (entryId, text, options) => {\n\t\t\t\t\t\t\tconst result = await session.editAssistantMessage(entryId, text, {\n\t\t\t\t\t\t\t\tsummarize: options?.summarize,\n\t\t\t\t\t\t\t\tcustomInstructions: options?.customInstructions,\n\t\t\t\t\t\t\t\texpectedLeafId: options?.expectedLeafId,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn { cancelled: result.cancelled, unchanged: result.unchanged, entryId: result.entryId };\n\t\t\t\t\t\t},\n\t\t\t\t\t\tswitchSession: async (sessionPath, options) => {\n\t\t\t\t\t\t\treturn runtimeHost.switchSession(sessionPath, options);\n\t\t\t\t\t\t},\n\t\t\t\t\t\treload: async () => {\n\t\t\t\t\t\t\tawait refreshLoadedSurfacesAfter(async () => {\n\t\t\t\t\t\t\t\tawait session.reload();\n\t\t\t\t\t\t\t}, false);\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tshutdownHandler: () => {\n\t\t\t\t\t\tif (options.shutdownHandler) {\n\t\t\t\t\t\t\toptions.shutdownHandler();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tshutdownRequested = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonError: (err) => {\n\t\t\t\t\t\toutput({\n\t\t\t\t\t\t\ttype: \"extension_error\",\n\t\t\t\t\t\t\textensionPath: err.extensionPath,\n\t\t\t\t\t\t\tevent: err.event,\n\t\t\t\t\t\t\terror: err.error,\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\ttrue,\n\t\t);\n\t\tfunction installSessionSubscriptions(): void {\n\t\t\tunsubscribe?.();\n\t\t\tunsubscribeBackpressure?.();\n\t\t\tunsubscribe = session.subscribe((event) => {\n\t\t\t\tif (event.type === \"skill_invocation\") {\n\t\t\t\t\toutputEvent(event satisfies RpcSkillInvocationEvent);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (event.type === \"command_invocation\") {\n\t\t\t\t\toutputEvent(event satisfies RpcCommandInvocationEvent);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (event.type === \"thinking_level_changed\" || event.type === \"model_changed\") {\n\t\t\t\t\t// Core emits the effective level only; the selection provenance lives beside it\n\t\t\t\t\t// on the session and is what distinguishes an explicit choice from a default.\n\t\t\t\t\tconst thinkingSelection = session.thinkingSelection;\n\t\t\t\t\toutputEvent(thinkingSelection === undefined ? event : { ...event, thinkingSelection });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (event.type === \"agent_end\") {\n\t\t\t\t\t// The subscribe-path `agent_end` carries only { type, messages, willRetry };\n\t\t\t\t\t// the abort provenance the extension hook receives is stripped from it. Read\n\t\t\t\t\t// it from the session, which still reports the owner at this point, and retain\n\t\t\t\t\t// it for `get_state` because the getter clears once the turn settles.\n\t\t\t\t\tconst abortSource = session.currentAbortSource;\n\t\t\t\t\tif (abortSource !== undefined) lastAbortSource = abortSource;\n\t\t\t\t\toutputEvent(abortSource === undefined ? event : { ...event, aborted: true, abortSource });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\toutputEvent(event);\n\t\t\t});\n\t\t\tunsubscribeBackpressure = session.agent.subscribe(async () => {\n\t\t\t\tawait waitForRpcBackpressure();\n\t\t\t});\n\t\t}\n\t\tif (deferRefresh) {\n\t\t\t// The subscription is already installed on the replaced session above, so\n\t\t\t// the deferred refresh only needs its failure reported. Re-installing here\n\t\t\t// would replay the settings-source selection a second time.\n\t\t\tvoid refresh.catch((cause) => {\n\t\t\t\toutputEvent({ type: \"rpc_error\", error: String(cause) });\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tawait refresh;\n\t};\n\n\t/**\n\t * Drive an OAuth login for one provider as fire-command-then-subscribe.\n\t *\n\t * Reuses AuthStorage.login (the same callbacks the classic TUI uses). Only the\n\t * URL-based happy path is surfaced over RPC: onAuth emits an auth_login_url\n\t * event; success/failure/cancel emit a single auth_login_end event. Callbacks\n\t * that need interactive mid-flow input (onPrompt/onSelect) are answered over\n\t * the extension UI dialog channel, so clients may either answer the dialog or\n\t * finish through the browser/callback-server path. An unanswered dialog never\n\t * blocks that completion path: it is released the moment the login settles.\n\t * Secrets are never emitted: only the provider id, the auth URL, the prompt\n\t * text/option labels, and a success flag (plus a non-secret error message)\n\t * cross the wire; a client's answer is consumed in-process.\n\t */\n\tconst startLogin = async (provider: string): Promise<void> => {\n\t\t// A second login_start for the same provider aborts the prior attempt.\n\t\tactiveLogins.get(provider)?.abort();\n\t\tconst controller = new AbortController();\n\t\tconst settled = new AbortController();\n\t\tconst loginSignal = AbortSignal.any([controller.signal, settled.signal]);\n\t\tactiveLogins.set(provider, controller);\n\n\t\ttry {\n\t\t\tawait session.modelRegistry.authStorage.login(provider as OAuthProviderId, {\n\t\t\t\tonAuth: (info) => {\n\t\t\t\t\toutputEvent({ type: \"auth_login_url\", provider, url: info.url });\n\t\t\t\t},\n\t\t\t\tonDeviceCode: (info) => {\n\t\t\t\t\toutputEvent({ type: \"auth_login_url\", provider, url: info.verificationUri });\n\t\t\t\t},\n\t\t\t\t...createRpcLoginPromptCallbacks(createExtensionUIContext(), loginSignal),\n\t\t\t\tonProgress: () => {},\n\t\t\t\tsignal: controller.signal,\n\t\t\t});\n\t\t\tsession.modelRegistry.refresh();\n\t\t\tif (provider === CLAUDE_SDK_OAUTH_PROVIDER_ID) emitProviderAccountsChanged(provider);\n\t\t\toutputEvent({ type: \"auth_login_end\", provider, success: true });\n\t\t} catch (loginError: unknown) {\n\t\t\tconst message = loginError instanceof Error ? loginError.message : String(loginError);\n\t\t\toutputEvent({ type: \"auth_login_end\", provider, success: false, error: message });\n\t\t} finally {\n\t\t\t// Release any dialog still pending so it can never outlive the login.\n\t\t\tsettled.abort();\n\t\t\tif (activeLogins.get(provider) === controller) {\n\t\t\t\tactiveLogins.delete(provider);\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Host capabilities for `applyFastMode`, mirroring what the `/fast` command passes from its\n\t * extension context. The notification is dropped: a command response carries the message\n\t * (`data` on success, `error` on refusal), so a duplicate `extension_ui_request` would be noise.\n\t */\n\tconst fastModeContext = (): FastModeContext => ({\n\t\tcwd: session.cwd,\n\t\tagentDir: session.agentDir,\n\t\tmodel: session.model,\n\t\tmodelRegistry: session.modelRegistry,\n\t\tserviceTier: session.serviceTier,\n\t\tisProjectTrusted: () => session.settingsManager.isProjectTrusted(),\n\t\tnotify: () => {},\n\t\tsetSessionModel: async (model) => {\n\t\t\tif (!session.modelRuntime.hasConfiguredAuth(model.provider)) return false;\n\t\t\tawait session.setSessionModel(model);\n\t\t\treturn true;\n\t\t},\n\t\tsetSessionFastMode: (enabled) => session.setSessionFastMode(enabled),\n\t});\n\n\t// Handle a single command\n\tconst handleCommand = async (command: RpcCommand): Promise<RpcResponse | undefined> => {\n\t\tconst id = command.id;\n\n\t\tswitch (command.type) {\n\t\t\tcase \"get_protocol_info\":\n\t\t\t\treturn {\n\t\t\t\t\tid,\n\t\t\t\t\ttype: \"response\",\n\t\t\t\t\tcommand: \"get_protocol_info\",\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tprotocolVersion: 1,\n\t\t\t\t\t\tserverVersion: VERSION,\n\t\t\t\t\t\tcapabilities: [\n\t\t\t\t\t\t\t...new Set([\n\t\t\t\t\t\t\t\t\"multi_session\",\n\t\t\t\t\t\t\t\tAUTO_TITLE_SESSIONS_CAPABILITY,\n\t\t\t\t\t\t\t\tMEDIA_PLACEHOLDERS_CAPABILITY,\n\t\t\t\t\t\t\t\t...(options.capabilities ?? []),\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tmode: \"classic\",\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\tcase \"open_session\":\n\t\t\t\treturn error(id, \"open_session\", \"multi_session_disabled\");\n\n\t\t\t// =================================================================\n\t\t\t// Prompting\n\t\t\t// =================================================================\n\n\t\t\tcase \"prompt\": {\n\t\t\t\tif (command.thinkingLevel !== undefined && session.isStreaming && command.streamingBehavior !== undefined) {\n\t\t\t\t\treturn error(\n\t\t\t\t\t\tid,\n\t\t\t\t\t\t\"prompt\",\n\t\t\t\t\t\t\"Cannot set thinkingLevel on a queued prompt; set it after the current turn completes.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// Start prompt handling immediately, but emit the authoritative response only after\n\t\t\t\t// prompt preflight succeeds. Queued and immediately handled prompts also count as success.\n\t\t\t\t// The disposition is captured for the wire: AgentSession always fires promptDisposition\n\t\t\t\t// strictly before preflightResult(true), so the success frame carries the final value.\n\t\t\t\tlet preflightSucceeded = false;\n\t\t\t\tlet disposition: PromptDisposition | undefined;\n\t\t\t\tvoid session\n\t\t\t\t\t.prompt(command.message, {\n\t\t\t\t\t\timages: command.images,\n\t\t\t\t\t\tstreamingBehavior: command.streamingBehavior,\n\t\t\t\t\t\tthinkingLevel: command.thinkingLevel,\n\t\t\t\t\t\tsessionTitlePrompt: command.sessionTitlePrompt,\n\t\t\t\t\t\texpandPromptTemplates: command.expandPromptTemplates,\n\t\t\t\t\t\tsource: \"rpc\",\n\t\t\t\t\t\tpromptDisposition: (nextDisposition) => {\n\t\t\t\t\t\t\tdisposition = nextDisposition;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpreflightResult: (didSucceed) => {\n\t\t\t\t\t\t\tif (didSucceed && !preflightSucceeded) {\n\t\t\t\t\t\t\t\tpreflightSucceeded = true;\n\t\t\t\t\t\t\t\toutput(success(id, \"prompt\", { ...(disposition !== undefined ? { disposition } : {}) }));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tif (!preflightSucceeded) {\n\t\t\t\t\t\t\toutput(error(id, \"prompt\", e.message));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tcase \"append_user_message\": {\n\t\t\t\tconst content = command.content as Parameters<AgentSession[\"sendUserMessage\"]>[0];\n\t\t\t\tconst message =\n\t\t\t\t\ttypeof content === \"string\"\n\t\t\t\t\t\t? { role: \"user\" as const, content, timestamp: Date.now() }\n\t\t\t\t\t\t: { role: \"user\" as const, content, timestamp: Date.now() };\n\t\t\t\tsession.sessionManager.appendMessage(message);\n\t\t\t\tsession.agent.state.messages = session.sessionManager.buildSessionContext().messages;\n\t\t\t\treturn success(id, \"append_user_message\");\n\t\t\t}\n\n\t\t\tcase \"append_session_entry\": {\n\t\t\t\tsession.appendSessionEntry(command.entry);\n\t\t\t\treturn success(id, \"append_session_entry\");\n\t\t\t}\n\n\t\t\tcase \"send_custom_message\": {\n\t\t\t\tawait session.sendCustomMessage(\n\t\t\t\t\t{\n\t\t\t\t\t\tcustomType: command.customType,\n\t\t\t\t\t\tcontent: command.content as Parameters<AgentSession[\"sendCustomMessage\"]>[0][\"content\"],\n\t\t\t\t\t\tdisplay: command.display,\n\t\t\t\t\t\tdetails: command.details,\n\t\t\t\t\t},\n\t\t\t\t\t{ triggerTurn: command.triggerTurn, deliverAs: command.deliverAs },\n\t\t\t\t);\n\t\t\t\treturn success(id, \"send_custom_message\");\n\t\t\t}\n\n\t\t\tcase \"steer\": {\n\t\t\t\tawait session.steer(command.message, command.images, { enqueueOrder: command.enqueueOrder });\n\t\t\t\treturn success(id, \"steer\");\n\t\t\t}\n\n\t\t\tcase \"follow_up\": {\n\t\t\t\tawait session.followUp(command.message, command.images, { enqueueOrder: command.enqueueOrder });\n\t\t\t\treturn success(id, \"follow_up\");\n\t\t\t}\n\n\t\t\tcase \"abort\": {\n\t\t\t\tvoid session.abort().catch((cause: unknown) => {\n\t\t\t\t\t// Abort is acknowledged once dispatched; report quiesce failures out of band.\n\t\t\t\t\toutputEvent({ type: \"rpc_error\", error: String(cause) });\n\t\t\t\t});\n\t\t\t\treturn success(id, \"abort\");\n\t\t\t}\n\n\t\t\tcase \"abort_compaction\": {\n\t\t\t\tsession.abortCompaction();\n\t\t\t\treturn success(id, \"abort_compaction\");\n\t\t\t}\n\n\t\t\tcase \"reload\": {\n\t\t\t\tconst result = await session.reload();\n\t\t\t\treturn success(id, \"reload\", result);\n\t\t\t}\n\n\t\t\tcase \"check_reload_veto\": {\n\t\t\t\treturn success(id, \"check_reload_veto\", await session.checkReloadVeto());\n\t\t\t}\n\n\t\t\tcase \"clear_queue\": {\n\t\t\t\tconst cleared = session.clearQueue({ abortWillFollow: command.abortWillFollow ?? false });\n\t\t\t\treturn success(id, \"clear_queue\", {\n\t\t\t\t\tsteering: cleared.steering,\n\t\t\t\t\tfollowUp: cleared.followUp,\n\t\t\t\t\tordered: [...cleared.ordered],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tcase \"get_steering_messages\":\n\t\t\t\treturn success(id, \"get_steering_messages\", { messages: [...session.getSteeringMessages()] });\n\n\t\t\tcase \"get_follow_up_messages\":\n\t\t\t\treturn success(id, \"get_follow_up_messages\", { messages: [...session.getFollowUpMessages()] });\n\n\t\t\tcase \"abort_branch_summary\":\n\t\t\t\tsession.abortBranchSummary();\n\t\t\t\treturn success(id, \"abort_branch_summary\");\n\n\t\t\tcase \"new_session\": {\n\t\t\t\tconst options = command.parentSession ? { parentSession: command.parentSession } : undefined;\n\t\t\t\tconst result = await runtimeHost.newSession(options);\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"new_session\", result);\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// State\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_client_info\":\n\t\t\t\tif (options.sharedWidth && command.capabilities !== undefined) {\n\t\t\t\t\tclientCapabilities = command.capabilities;\n\t\t\t\t\toptions.sharedWidth.setCapabilities?.(options.sharedWidth.connectionId(), command.capabilities);\n\t\t\t\t}\n\t\t\t\tif (Number.isFinite(command.width) && command.width > 0) {\n\t\t\t\t\tif (options.sharedWidth) {\n\t\t\t\t\t\toptions.sharedWidth.setWidth(options.sharedWidth.connectionId(), command.width);\n\t\t\t\t\t\toptions.sharedWidth.onChange?.();\n\t\t\t\t\t} else for (const renderer of liveRenderers.values()) renderer.rerender();\n\t\t\t\t}\n\t\t\t\treturn success(id, \"set_client_info\");\n\n\t\t\tcase \"get_state\":\n\t\t\t\treturn success(id, \"get_state\", buildRpcSessionState(session, lastAbortSource));\n\n\t\t\t// =================================================================\n\t\t\t// Model\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_model\": {\n\t\t\t\tconst models = await session.modelRegistry.getAvailable();\n\t\t\t\tconst model = models.find((m) => m.provider === command.provider && m.id === command.modelId);\n\t\t\t\tif (!model) {\n\t\t\t\t\treturn error(id, \"set_model\", `Model not found: ${command.provider}/${command.modelId}`);\n\t\t\t\t}\n\t\t\t\tconst systemPromptChange = await session.setModel(model);\n\t\t\t\treturn success(id, \"set_model\", { ...model, systemPromptName: systemPromptChange?.systemPromptName });\n\t\t\t}\n\n\t\t\tcase \"set_favorite_models\":\n\t\t\t\tsession.setFavoriteModels(command.models);\n\t\t\t\treturn success(id, \"set_favorite_models\");\n\n\t\t\tcase \"set_scoped_models\":\n\t\t\t\tsession.setScopedModels(command.models);\n\t\t\t\treturn success(id, \"set_scoped_models\");\n\n\t\t\tcase \"cycle_model\": {\n\t\t\t\tconst result = await session.cycleModel(command.direction);\n\t\t\t\tif (!result) {\n\t\t\t\t\treturn success(id, \"cycle_model\", null);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"cycle_model\", result);\n\t\t\t}\n\n\t\t\tcase \"get_available_models\": {\n\t\t\t\tconst models = await session.modelRegistry.getAvailable();\n\t\t\t\treturn success(id, \"get_available_models\", {\n\t\t\t\t\tmodels: models.map((model) => ({\n\t\t\t\t\t\t...model,\n\t\t\t\t\t\tsupportedThinkingLevels: getSupportedThinkingLevels(model),\n\t\t\t\t\t})),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Thinking\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_thinking_level\": {\n\t\t\t\tif (command.scope === \"turn\") {\n\t\t\t\t\t// Validate BEFORE mutating: the session clamps an unsupported level to a supported\n\t\t\t\t\t// neighbour, so applying first would leave a REJECTED request's clamped level in\n\t\t\t\t\t// place. A failed command must not change session state.\n\t\t\t\t\tif (!session.getAvailableThinkingLevels().includes(command.level)) {\n\t\t\t\t\t\treturn error(\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\"set_thinking_level\",\n\t\t\t\t\t\t\t`Thinking level ${command.level} is not supported by the active model.`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tsession.setSessionThinkingLevel(command.level);\n\t\t\t\t} else {\n\t\t\t\t\tsession.setThinkingLevel(command.level);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"set_thinking_level\");\n\t\t\t}\n\n\t\t\tcase \"cycle_thinking_level\": {\n\t\t\t\tconst level = session.cycleThinkingLevel();\n\t\t\t\tif (!level) {\n\t\t\t\t\treturn success(id, \"cycle_thinking_level\", null);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"cycle_thinking_level\", { level });\n\t\t\t}\n\n\t\t\tcase \"get_available_thinking_levels\":\n\t\t\t\treturn success(id, \"get_available_thinking_levels\", {\n\t\t\t\t\tlevels: session.getAvailableThinkingLevels(),\n\t\t\t\t});\n\n\t\t\t// =================================================================\n\t\t\t// Fast mode\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_fast_mode\": {\n\t\t\t\tif (typeof command.enabled !== \"boolean\") {\n\t\t\t\t\treturn error(id, \"set_fast_mode\", \"set_fast_mode requires a boolean 'enabled' field.\");\n\t\t\t\t}\n\t\t\t\tconst model = session.model;\n\t\t\t\tif (!model) {\n\t\t\t\t\treturn error(id, \"set_fast_mode\", \"No active model.\");\n\t\t\t\t}\n\t\t\t\t// Same entry point as the /fast command: persistence, `-fast` key normalization,\n\t\t\t\t// and pin precedence live in applyFastMode, never duplicated here.\n\t\t\t\tconst result = await applyFastMode(fastModeContext(), command.enabled);\n\t\t\t\tif (!result.applied) {\n\t\t\t\t\t// A refusal (non-Codex model, active `:priority` pin, failed model switch) has no\n\t\t\t\t\t// notification channel for a command response, so it is reported as an error\n\t\t\t\t\t// instead of a success that silently did nothing.\n\t\t\t\t\treturn error(id, \"set_fast_mode\", result.message);\n\t\t\t\t}\n\t\t\t\tconst memoryModel = resolveServiceTierMemoryModel(session.modelRegistry, session.model ?? model);\n\t\t\t\treturn success(id, \"set_fast_mode\", {\n\t\t\t\t\tenabled: result.enabled,\n\t\t\t\t\tserviceTier: result.recordedTier,\n\t\t\t\t\tprovider: memoryModel.provider,\n\t\t\t\t\tmodelId: memoryModel.id,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tcase \"get_fast_mode\":\n\t\t\t\treturn success(id, \"get_fast_mode\", {\n\t\t\t\t\tenabled: session.isFastModeActive(),\n\t\t\t\t\tserviceTier: session.effectiveServiceTier ?? null,\n\t\t\t\t});\n\n\t\t\t// =================================================================\n\t\t\t// Queue Modes\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_steering_mode\": {\n\t\t\t\tsession.setSteeringMode(command.mode);\n\t\t\t\treturn success(id, \"set_steering_mode\");\n\t\t\t}\n\n\t\t\tcase \"set_follow_up_mode\": {\n\t\t\t\tsession.setFollowUpMode(command.mode);\n\t\t\t\treturn success(id, \"set_follow_up_mode\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Compaction\n\t\t\t// =================================================================\n\n\t\t\tcase \"compact\": {\n\t\t\t\tconst result = await session.compact(command.customInstructions);\n\t\t\t\treturn success(id, \"compact\", result);\n\t\t\t}\n\n\t\t\tcase \"set_auto_compaction\": {\n\t\t\t\tsession.setAutoCompactionEnabled(command.enabled);\n\t\t\t\treturn success(id, \"set_auto_compaction\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Retry\n\t\t\t// =================================================================\n\n\t\t\tcase \"set_auto_retry\": {\n\t\t\t\tsession.setAutoRetryEnabled(command.enabled);\n\t\t\t\treturn success(id, \"set_auto_retry\");\n\t\t\t}\n\n\t\t\tcase \"abort_retry\": {\n\t\t\t\tsession.abortRetry();\n\t\t\t\treturn success(id, \"abort_retry\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Bash\n\t\t\t// =================================================================\n\n\t\t\tcase \"navigate_tree\": {\n\t\t\t\tconst result = await session.navigateTree(command.targetId, {\n\t\t\t\t\tsummarize: command.summarize,\n\t\t\t\t\tcustomInstructions: command.customInstructions,\n\t\t\t\t\treplaceInstructions: command.replaceInstructions,\n\t\t\t\t\tlabel: command.label,\n\t\t\t\t});\n\t\t\t\treturn success(id, \"navigate_tree\", result);\n\t\t\t}\n\n\t\t\tcase \"record_bash_result\":\n\t\t\t\tsession.recordBashResult(command.command, command.result, {\n\t\t\t\t\texcludeFromContext: command.excludeFromContext,\n\t\t\t\t});\n\t\t\t\treturn success(id, \"record_bash_result\");\n\n\t\t\tcase \"set_label\":\n\t\t\t\tsession.sessionManager.appendLabelChange(command.entryId, command.label);\n\t\t\t\treturn success(id, \"set_label\");\n\n\t\t\tcase \"bash\": {\n\t\t\t\tif (routingSessionId !== undefined) outputEvent({ type: \"bash_start\" });\n\t\t\t\ttry {\n\t\t\t\t\tconst eventResult = await session.extensionRunner.emitUserBash({\n\t\t\t\t\t\ttype: \"user_bash\",\n\t\t\t\t\t\tcommand: command.command,\n\t\t\t\t\t\texcludeFromContext: command.excludeFromContext ?? false,\n\t\t\t\t\t\tcwd: session.sessionManager.getCwd(),\n\t\t\t\t\t});\n\t\t\t\t\tif (eventResult?.result) {\n\t\t\t\t\t\tsession.recordBashResult(command.command, eventResult.result, {\n\t\t\t\t\t\t\texcludeFromContext: command.excludeFromContext,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn success(id, \"bash\", eventResult.result);\n\t\t\t\t\t}\n\t\t\t\t\tconst result = await session.executeBash(command.command, undefined, {\n\t\t\t\t\t\texcludeFromContext: command.excludeFromContext,\n\t\t\t\t\t\tid: command.executionId,\n\t\t\t\t\t\t// Functions cannot cross JSONL. Host extensions may still provide the\n\t\t\t\t\t\t// executable operations object; client-supplied data is only a wire-safe hint.\n\t\t\t\t\t\toperations: eventResult?.operations,\n\t\t\t\t\t});\n\t\t\t\t\treturn success(id, \"bash\", result);\n\t\t\t\t} finally {\n\t\t\t\t\tif (routingSessionId !== undefined) outputEvent({ type: \"bash_end\" });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase \"abort_bash\": {\n\t\t\t\tsession.abortBash();\n\t\t\t\treturn success(id, \"abort_bash\");\n\t\t\t}\n\n\t\t\tcase \"cleanup_bash_output\":\n\t\t\t\tawait session.cleanupBashOutput(command.path);\n\t\t\t\treturn success(id, \"cleanup_bash_output\");\n\n\t\t\t// =================================================================\n\t\t\t// Session\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_session_stats\": {\n\t\t\t\tconst stats = session.getSessionStats();\n\t\t\t\treturn success(id, \"get_session_stats\", stats);\n\t\t\t}\n\n\t\t\tcase \"export_html\": {\n\t\t\t\tconst path = await session.exportToHtml(command.outputPath, { themeName: command.themeName });\n\t\t\t\treturn success(id, \"export_html\", { path });\n\t\t\t}\n\n\t\t\tcase \"export_jsonl\": {\n\t\t\t\treturn success(id, \"export_jsonl\", { path: session.exportToJsonl(command.outputPath) });\n\t\t\t}\n\n\t\t\tcase \"switch_session\": {\n\t\t\t\tconst result = await runtimeHost.switchSession(command.sessionPath, { cwdOverride: command.cwdOverride });\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"switch_session\", result);\n\t\t\t}\n\n\t\t\tcase \"fork\": {\n\t\t\t\tconst result = await runtimeHost.fork(command.entryId, { position: command.position });\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"fork\", { text: result.selectedText, cancelled: result.cancelled });\n\t\t\t}\n\n\t\t\tcase \"edit_assistant_message\": {\n\t\t\t\tif (\n\t\t\t\t\ttypeof command.entryId !== \"string\" ||\n\t\t\t\t\tcommand.entryId.length === 0 ||\n\t\t\t\t\ttypeof command.text !== \"string\"\n\t\t\t\t) {\n\t\t\t\t\treturn error(id, command.type, \"edit_assistant_message requires a non-empty entryId and a text string\");\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await session.editAssistantMessage(command.entryId, command.text, {\n\t\t\t\t\t\tsummarize: command.summarize,\n\t\t\t\t\t\tcustomInstructions: command.customInstructions,\n\t\t\t\t\t\texpectedLeafId: command.expectedLeafId,\n\t\t\t\t\t});\n\t\t\t\t\tconst leafId = session.sessionManager.getLeafId();\n\t\t\t\t\tif (result.unchanged) {\n\t\t\t\t\t\treturn success(id, command.type, { outcome: \"unchanged\", leafId });\n\t\t\t\t\t}\n\t\t\t\t\tif (result.cancelled) {\n\t\t\t\t\t\treturn success(id, command.type, {\n\t\t\t\t\t\t\toutcome: \"cancelled\",\n\t\t\t\t\t\t\tleafId,\n\t\t\t\t\t\t\t...(result.aborted ? { aborted: true } : {}),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tconst entry = result.entryId ? session.sessionManager.getEntry(result.entryId) : undefined;\n\t\t\t\t\tif (entry?.type !== \"message\" || leafId === null) {\n\t\t\t\t\t\treturn error(id, command.type, \"Edited assistant entry was not persisted\");\n\t\t\t\t\t}\n\t\t\t\t\treturn success(id, command.type, {\n\t\t\t\t\t\toutcome: \"edited\",\n\t\t\t\t\t\tentry,\n\t\t\t\t\t\tleafId,\n\t\t\t\t\t\t...(result.summaryEntry ? { summaryEntryId: result.summaryEntry.id } : {}),\n\t\t\t\t\t});\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err instanceof AssistantEditError || err instanceof SessionStreamingError) {\n\t\t\t\t\t\treturn error(id, command.type, err.message, err.code);\n\t\t\t\t\t}\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcase \"clone\": {\n\t\t\t\tconst leafId = session.sessionManager.getLeafId();\n\t\t\t\tif (!leafId) {\n\t\t\t\t\treturn error(id, \"clone\", \"Cannot clone session: no current entry selected\");\n\t\t\t\t}\n\t\t\t\tconst result = await runtimeHost.fork(leafId, { position: \"at\" });\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"clone\", { cancelled: result.cancelled });\n\t\t\t}\n\n\t\t\tcase \"get_fork_messages\": {\n\t\t\t\tconst messages = session.getUserMessagesForForking();\n\t\t\t\treturn success(id, \"get_fork_messages\", { messages });\n\t\t\t}\n\n\t\t\tcase \"get_entries\": {\n\t\t\t\tconst sessionManager = session.sessionManager;\n\t\t\t\tlet entries = sessionManager.getEntries();\n\t\t\t\tif (command.since !== undefined) {\n\t\t\t\t\tconst sinceIndex = entries.findIndex((e) => e.id === command.since);\n\t\t\t\t\tif (sinceIndex === -1) {\n\t\t\t\t\t\treturn error(id, \"get_entries\", `Entry not found: ${command.since}`);\n\t\t\t\t\t}\n\t\t\t\t\tentries = entries.slice(sinceIndex + 1);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"get_entries\", { entries, leafId: sessionManager.getLeafId() });\n\t\t\t}\n\n\t\t\tcase \"get_tree\": {\n\t\t\t\tconst sessionManager = session.sessionManager;\n\t\t\t\treturn success(id, \"get_tree\", { tree: sessionManager.getTree(), leafId: sessionManager.getLeafId() });\n\t\t\t}\n\n\t\t\tcase \"get_last_assistant_text\": {\n\t\t\t\tconst text = session.getLastAssistantText();\n\t\t\t\treturn success(id, \"get_last_assistant_text\", { text });\n\t\t\t}\n\n\t\t\tcase \"import_jsonl\": {\n\t\t\t\tconst result = await runtimeHost.importFromJsonl(command.inputPath, command.cwdOverride);\n\t\t\t\tif (routingSessionId === undefined && !result.cancelled && session !== runtimeHost.session)\n\t\t\t\t\tawait rebindAfterLocalReplacement();\n\t\t\t\treturn success(id, \"import_jsonl\", result);\n\t\t\t}\n\n\t\t\tcase \"set_session_name\": {\n\t\t\t\tconst name = command.name.trim();\n\t\t\t\tif (!name) {\n\t\t\t\t\treturn error(id, \"set_session_name\", \"Session name cannot be empty\");\n\t\t\t\t}\n\t\t\t\tsession.setSessionName(name);\n\t\t\t\treturn success(id, \"set_session_name\");\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Messages\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_messages\": {\n\t\t\t\treturn success(id, \"get_messages\", { messages: session.messages });\n\t\t\t}\n\n\t\t\t// On-demand fetch of a media block a `media_placeholders` client received as\n\t\t\t// an `image_ref` stub. Durable session entries first (they survive the live\n\t\t\t// message window being compacted away), then the live messages for a result\n\t\t\t// that has not been persisted yet.\n\t\t\tcase \"get_media\": {\n\t\t\t\tconst { toolCallId, contentIndex } = command;\n\t\t\t\tconst content = findToolResultMedia(session, toolCallId, contentIndex);\n\t\t\t\tif (!content) {\n\t\t\t\t\treturn error(id, \"get_media\", RPC_ERROR_MEDIA_NOT_FOUND, RPC_ERROR_MEDIA_NOT_FOUND);\n\t\t\t\t}\n\t\t\t\treturn success(id, \"get_media\", { toolCallId, contentIndex, content });\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Commands (available for invocation via prompt)\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_commands\": {\n\t\t\t\treturn success(id, \"get_commands\", { commands: buildRpcCommandsForSession(session) });\n\t\t\t}\n\n\t\t\tcase \"get_loaded_surfaces\": {\n\t\t\t\tawait requestMcpWireStatus();\n\t\t\t\tconst inventory = recordLoadedSurfaces(true);\n\t\t\t\treturn success(id, \"get_loaded_surfaces\", inventory.data);\n\t\t\t}\n\n\t\t\tcase \"extension_request\": {\n\t\t\t\tconst name = command.name.trim();\n\t\t\t\tif (name.length === 0) {\n\t\t\t\t\treturn error(id, \"extension_request\", \"Extension RPC request name cannot be empty\");\n\t\t\t\t}\n\t\t\t\tconst data = await session.extensionRunner.requestRpc(name, command.data);\n\t\t\t\treturn success(id, \"extension_request\", data);\n\t\t\t}\n\n\t\t\t// =================================================================\n\t\t\t// Auth (task 13)\n\t\t\t// =================================================================\n\n\t\t\tcase \"get_auth_providers\": {\n\t\t\t\tconst modelRegistry = session.modelRegistry;\n\t\t\t\tconst oauthInfos = buildLoginProviderInfos(modelRegistry, \"oauth\");\n\t\t\t\tconst apiKeyInfos = buildLoginProviderInfos(modelRegistry, \"api_key\");\n\t\t\t\tconst providers: RpcAuthProvider[] = [...oauthInfos, ...apiKeyInfos].map((info) => ({\n\t\t\t\t\tid: info.id,\n\t\t\t\t\tname: info.name,\n\t\t\t\t\tauthType: info.authType,\n\t\t\t\t\tstatus: modelRegistry.getProviderAuthStatus(info.id),\n\t\t\t\t}));\n\t\t\t\treturn success(id, \"get_auth_providers\", { providers });\n\t\t\t}\n\n\t\t\tcase \"login_start\": {\n\t\t\t\t// Respond IMMEDIATELY: success:true means the flow has started. The\n\t\t\t\t// URL and terminal result are delivered via auth_login_url /\n\t\t\t\t// auth_login_end events, because an interactive OAuth round-trip\n\t\t\t\t// cannot fit within the request timeout.\n\t\t\t\tvoid startLogin(command.provider);\n\t\t\t\treturn success(id, \"login_start\");\n\t\t\t}\n\n\t\t\tcase \"login_cancel\": {\n\t\t\t\tconst controller = activeLogins.get(command.provider);\n\t\t\t\tcontroller?.abort();\n\t\t\t\treturn success(id, \"login_cancel\");\n\t\t\t}\n\n\t\t\tcase \"login_api_key\": {\n\t\t\t\tsession.modelRegistry.authStorage.set(command.provider, { type: \"api_key\", key: command.key });\n\t\t\t\tsession.modelRegistry.refresh();\n\t\t\t\treturn success(id, \"login_api_key\");\n\t\t\t}\n\n\t\t\tcase \"logout\": {\n\t\t\t\tsession.modelRegistry.authStorage.logout(command.provider);\n\t\t\t\tsession.modelRegistry.refresh();\n\t\t\t\treturn success(id, \"logout\");\n\t\t\t}\n\n\t\t\tcase \"get_provider_accounts\": {\n\t\t\t\tconst accounts = await getCredentialAccounts(session.modelRegistry.authStorage, command.provider);\n\t\t\t\treturn success(id, \"get_provider_accounts\", { accounts });\n\t\t\t}\n\n\t\t\tcase \"account_pin\": {\n\t\t\t\tawait pinCredentialAccount(session.modelRegistry.authStorage, command.provider, command.name);\n\t\t\t\treturn success(id, \"account_pin\");\n\t\t\t}\n\n\t\t\tcase \"account_remove\": {\n\t\t\t\tawait removeCredentialAccount(session.modelRegistry.authStorage, command.provider, command.name);\n\t\t\t\treturn success(id, \"account_remove\");\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\tconst unknownCommand = command as { type: string };\n\t\t\t\treturn error(id, unknownCommand.type, `Unknown command: ${unknownCommand.type}`);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleInputLine = async (line: string): Promise<void> => {\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(line);\n\t\t} catch (parseError: unknown) {\n\t\t\toutput(\n\t\t\t\terror(\n\t\t\t\t\tundefined,\n\t\t\t\t\t\"parse\",\n\t\t\t\t\t`Failed to parse command: ${parseError instanceof Error ? parseError.message : String(parseError)}`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tawait waitForRpcBackpressure();\n\t\t\treturn;\n\t\t}\n\n\t\tconst shapeError = rpcCommandShapeError(parsed);\n\t\tif (shapeError) {\n\t\t\toutput(error(undefined, \"parse\", shapeError));\n\t\t\tawait waitForRpcBackpressure();\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\ttypeof parsed === \"object\" &&\n\t\t\tparsed !== null &&\n\t\t\t\"type\" in parsed &&\n\t\t\tparsed.type === \"extension_ui_progress\"\n\t\t) {\n\t\t\tquestions.progress(parsed as RpcExtensionUIProgress);\n\t\t\treturn;\n\t\t}\n\n\t\t// Handle extension UI responses\n\t\tif (\n\t\t\ttypeof parsed === \"object\" &&\n\t\t\tparsed !== null &&\n\t\t\t\"type\" in parsed &&\n\t\t\tparsed.type === \"extension_ui_response\"\n\t\t) {\n\t\t\tconst response = parsed as RpcExtensionUIResponse;\n\t\t\tconst result = questions.respond(response);\n\t\t\tif (typeof result === \"string\") output(error(response.id, \"extension_ui_response\", result));\n\t\t\tif (result) return;\n\t\t\tif (!pendingExtensionRequests.resolve(response) && routingSessionId !== undefined) {\n\t\t\t\t// This binding owns exactly one session's request map. A response not\n\t\t\t\t// requested here is a routed protocol error, never a cross-session match.\n\t\t\t\toutput(error(undefined, \"extension_ui_response\", \"unknown_extension_ui_request\"));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst command = parsed as RpcCommand;\n\t\tconst payloadError = rpcCommandPayloadError(command);\n\t\tconst messageLengthError = rpcMessageLengthError(command);\n\t\tif (payloadError || messageLengthError) {\n\t\t\toutput(error(command.id, command.type, payloadError ?? messageLengthError!));\n\t\t\tawait waitForRpcBackpressure();\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tconst response = await handleCommand(command);\n\t\t\tif (response) {\n\t\t\t\toutput(response);\n\t\t\t\tawait waitForRpcBackpressure();\n\t\t\t}\n\t\t} catch (commandError: unknown) {\n\t\t\tconst missingCwd =\n\t\t\t\tcommandError instanceof Error && commandError.name === \"MissingSessionCwdError\" && \"issue\" in commandError;\n\t\t\toutput(\n\t\t\t\terror(\n\t\t\t\t\tcommand.id,\n\t\t\t\t\tcommand.type,\n\t\t\t\t\tcommandError instanceof Error ? commandError.message : String(commandError),\n\t\t\t\t\tmissingCwd ? \"missing_session_cwd\" : undefined,\n\t\t\t\t\tmissingCwd ? commandError.issue : undefined,\n\t\t\t\t),\n\t\t\t);\n\t\t\tawait waitForRpcBackpressure();\n\t\t}\n\t};\n\n\tconst dispose = async (): Promise<void> => {\n\t\tdisposeAllRenderers();\n\t\tquestions.cancelAll();\n\t\tpendingExtensionRequests.close();\n\t\tunsubscribeProviderAccountEvents();\n\t\tunsubscribe?.();\n\t\tunsubscribeBackpressure?.();\n\t\tunsubscribeLoadedSurfaces?.();\n\t\tunsubscribeExtensionEvents?.();\n\t\tunsubscribe = undefined;\n\t\tunsubscribeBackpressure = undefined;\n\t\tunsubscribeLoadedSurfaces = undefined;\n\t\tunsubscribeExtensionEvents = undefined;\n\t\tif (options.disposeRuntime !== false) {\n\t\t\tawait runtimeHost.dispose();\n\t\t}\n\t};\n\n\t// Perform the initial bind synchronously-scheduled so the handler is ready\n\t// as soon as the caller awaits `ready`.\n\tconst ready = rebindSession();\n\n\treturn {\n\t\tready,\n\t\tasync handleInputLine(line: string) {\n\t\t\tawait ready;\n\t\t\tawait handleInputLine(line);\n\t\t},\n\t\trerenderComponents() {\n\t\t\tif (!hasRenderedComponents()) {\n\t\t\t\tdisposeAllRenderers();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (const [key, createRenderer] of retainedRendererFactories) if (!liveRenderers.has(key)) createRenderer();\n\t\t\tfor (const renderer of liveRenderers.values()) renderer.rerender();\n\t\t},\n\t\tisShutdownRequested() {\n\t\t\treturn shutdownRequested;\n\t\t},\n\t\tcancelPendingExtensionUiRequests() {\n\t\t\tquestions.cancelAll();\n\t\t\tpendingExtensionRequests.cancelAll();\n\t\t},\n\t\tasync dispose() {\n\t\t\tawait ready;\n\t\t\tawait dispose();\n\t\t},\n\t};\n}\n"]}
|