@code-yeongyu/senpi 2026.8.18 → 2026.8.20-2
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 +251 -0
- package/dist/cli/args.d.ts +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +4 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli-main.js +4 -0
- package/dist/cli-main.js.map +1 -1
- package/dist/cli.js +31 -3
- package/dist/cli.js.map +1 -1
- package/dist/compile-cache.d.ts +2 -0
- package/dist/compile-cache.d.ts.map +1 -0
- package/dist/compile-cache.js +33 -0
- package/dist/compile-cache.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +4 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +54 -25
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +469 -87
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +3 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +26 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +195 -52
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/cursor-exec-bridge-session.d.ts +14 -2
- package/dist/core/cursor-exec-bridge-session.d.ts.map +1 -1
- package/dist/core/cursor-exec-bridge-session.js +20 -4
- package/dist/core/cursor-exec-bridge-session.js.map +1 -1
- package/dist/core/cursor-exec-bridge.d.ts +11 -3
- package/dist/core/cursor-exec-bridge.d.ts.map +1 -1
- package/dist/core/cursor-exec-bridge.js +53 -20
- package/dist/core/cursor-exec-bridge.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/custom-tools.d.ts +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/custom-tools.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/custom-tools.js +5 -2
- package/dist/core/extensions/builtin/claude-sdk-oauth/custom-tools.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.d.ts +2 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.js +15 -6
- package/dist/core/extensions/builtin/claude-sdk-oauth/executable.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts +3 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.js +18 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/index.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.d.ts +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js +7 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.d.ts +8 -5
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.js +24 -2
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.lazy.d.ts +39 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.lazy.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.lazy.js +31 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.lazy.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding-store.d.ts +29 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding-store.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding-store.js +112 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding-store.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.d.ts +37 -23
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.js +119 -33
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.d.ts +3 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.js +55 -2
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.d.ts +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.js +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.d.ts +11 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.js +35 -2
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js +78 -11
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-restored-admission.d.ts +8 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-restored-admission.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-restored-admission.js +11 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-restored-admission.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js +17 -55
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts +13 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js +18 -5
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.d.ts +11 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.d.ts.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.js +75 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-attempt.js.map +1 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts +8 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js +18 -0
- package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream.d.ts.map +1 -1
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js +5 -2
- package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/index.js +5 -0
- package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/log.d.ts +1 -1
- package/dist/core/extensions/builtin/compaction/log.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/log.js +1 -0
- package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.d.ts +1 -0
- package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
- package/dist/core/extensions/builtin/compaction/speculative.js +4 -0
- package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/index.js +13 -10
- package/dist/core/extensions/builtin/config-reload/index.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/watch-engine.d.ts +8 -1
- package/dist/core/extensions/builtin/config-reload/watch-engine.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/watch-engine.js +98 -18
- package/dist/core/extensions/builtin/config-reload/watch-engine.js.map +1 -1
- package/dist/core/extensions/builtin/config-reload/watch-event-source.d.ts +1 -1
- package/dist/core/extensions/builtin/config-reload/watch-event-source.d.ts.map +1 -1
- package/dist/core/extensions/builtin/config-reload/watch-event-source.js +7 -2
- package/dist/core/extensions/builtin/config-reload/watch-event-source.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.d.ts +7 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.js +10 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.d.ts +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.js +29 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.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 +30 -24
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.d.ts +14 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.js +58 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.d.ts +12 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.js +20 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.d.ts +11 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.js +6 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.js.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-model.d.ts +3 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-model.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-model.js +5 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-model.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.d.ts.map +1 -1
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js +11 -4
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js.map +1 -1
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts +8 -0
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js +10 -0
- package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js.map +1 -1
- package/dist/core/extensions/builtin/goal/elapsed-ticker.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/elapsed-ticker.js +15 -1
- package/dist/core/extensions/builtin/goal/elapsed-ticker.js.map +1 -1
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +28 -25
- package/dist/core/extensions/builtin/goal/index.js.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts +9 -0
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.js +16 -0
- package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/reload-reengagement.d.ts +30 -0
- package/dist/core/extensions/builtin/goal/reload-reengagement.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/reload-reengagement.js +36 -0
- package/dist/core/extensions/builtin/goal/reload-reengagement.js.map +1 -0
- package/dist/core/extensions/builtin/goal/stale-context.d.ts +9 -0
- package/dist/core/extensions/builtin/goal/stale-context.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/stale-context.js +11 -0
- package/dist/core/extensions/builtin/goal/stale-context.js.map +1 -0
- package/dist/core/extensions/builtin/goal/wait-ticker.d.ts +8 -0
- package/dist/core/extensions/builtin/goal/wait-ticker.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/wait-ticker.js +37 -3
- package/dist/core/extensions/builtin/goal/wait-ticker.js.map +1 -1
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +2 -0
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/loop/command-registration.d.ts +7 -0
- package/dist/core/extensions/builtin/loop/command-registration.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/command-registration.js +13 -0
- package/dist/core/extensions/builtin/loop/command-registration.js.map +1 -0
- package/dist/core/extensions/builtin/loop/command.d.ts +41 -0
- package/dist/core/extensions/builtin/loop/command.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/command.js +281 -0
- package/dist/core/extensions/builtin/loop/command.js.map +1 -0
- package/dist/core/extensions/builtin/loop/cron-planner.d.ts +23 -0
- package/dist/core/extensions/builtin/loop/cron-planner.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/cron-planner.js +88 -0
- package/dist/core/extensions/builtin/loop/cron-planner.js.map +1 -0
- package/dist/core/extensions/builtin/loop/index.d.ts +134 -0
- package/dist/core/extensions/builtin/loop/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/index.js +742 -0
- package/dist/core/extensions/builtin/loop/index.js.map +1 -0
- package/dist/core/extensions/builtin/loop/loopfile.d.ts +40 -0
- package/dist/core/extensions/builtin/loop/loopfile.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/loopfile.js +102 -0
- package/dist/core/extensions/builtin/loop/loopfile.js.map +1 -0
- package/dist/core/extensions/builtin/loop/parse.d.ts +45 -0
- package/dist/core/extensions/builtin/loop/parse.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/parse.js +92 -0
- package/dist/core/extensions/builtin/loop/parse.js.map +1 -0
- package/dist/core/extensions/builtin/loop/scheduler.d.ts +225 -0
- package/dist/core/extensions/builtin/loop/scheduler.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/scheduler.js +708 -0
- package/dist/core/extensions/builtin/loop/scheduler.js.map +1 -0
- package/dist/core/extensions/builtin/loop/status.d.ts +24 -0
- package/dist/core/extensions/builtin/loop/status.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/status.js +113 -0
- package/dist/core/extensions/builtin/loop/status.js.map +1 -0
- package/dist/core/extensions/builtin/loop/store.d.ts +49 -0
- package/dist/core/extensions/builtin/loop/store.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/store.js +424 -0
- package/dist/core/extensions/builtin/loop/store.js.map +1 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.d.ts +64 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.js +183 -0
- package/dist/core/extensions/builtin/loop/tick-prompt.js.map +1 -0
- package/dist/core/extensions/builtin/loop/tools.d.ts +122 -0
- package/dist/core/extensions/builtin/loop/tools.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/tools.js +155 -0
- package/dist/core/extensions/builtin/loop/tools.js.map +1 -0
- package/dist/core/extensions/builtin/loop/types.d.ts +206 -0
- package/dist/core/extensions/builtin/loop/types.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop/types.js +37 -0
- package/dist/core/extensions/builtin/loop/types.js.map +1 -0
- package/dist/core/extensions/builtin/mcp/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/mcp/index.js +12 -1
- package/dist/core/extensions/builtin/mcp/index.js.map +1 -1
- package/dist/core/extensions/builtin/prompt-url-widget.d.ts.map +1 -1
- package/dist/core/extensions/builtin/prompt-url-widget.js +7 -15
- package/dist/core/extensions/builtin/prompt-url-widget.js.map +1 -1
- package/dist/core/extensions/builtin/rules/ui/rules-banner.d.ts.map +1 -1
- package/dist/core/extensions/builtin/rules/ui/rules-banner.js +21 -25
- package/dist/core/extensions/builtin/rules/ui/rules-banner.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/todotools/index.js +20 -0
- package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.d.ts +3 -0
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.d.ts.map +1 -0
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.js +22 -0
- package/dist/core/extensions/builtin/todotools/native-todo-mirror.js.map +1 -0
- package/dist/core/extensions/builtin/webfetch/webfetch/content.lazy.d.ts +17 -0
- package/dist/core/extensions/builtin/webfetch/webfetch/content.lazy.d.ts.map +1 -0
- package/dist/core/extensions/builtin/webfetch/webfetch/content.lazy.js +22 -0
- package/dist/core/extensions/builtin/webfetch/webfetch/content.lazy.js.map +1 -0
- package/dist/core/extensions/builtin/webfetch/webfetch/tool.js +3 -3
- package/dist/core/extensions/builtin/webfetch/webfetch/tool.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +10 -5
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +30 -3
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +5 -10
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/messages.d.ts +9 -2
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +13 -18
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-registry.d.ts +2 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +4 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +15 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +137 -43
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +7 -0
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +17 -0
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +8 -4
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/provider-composer.d.ts +8 -0
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/provider-timeout-retry.d.ts.map +1 -1
- package/dist/core/provider-timeout-retry.js +29 -1
- package/dist/core/provider-timeout-retry.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/retry-fallback/chains.d.ts +1 -0
- package/dist/core/retry-fallback/chains.d.ts.map +1 -1
- package/dist/core/retry-fallback/chains.js +3 -0
- package/dist/core/retry-fallback/chains.js.map +1 -1
- package/dist/core/retry-fallback/controller.d.ts +2 -0
- package/dist/core/retry-fallback/controller.d.ts.map +1 -1
- package/dist/core/retry-fallback/controller.js.map +1 -1
- package/dist/core/retry-fallback/expansion.d.ts +8 -0
- package/dist/core/retry-fallback/expansion.d.ts.map +1 -1
- package/dist/core/retry-fallback/expansion.js +2 -0
- package/dist/core/retry-fallback/expansion.js.map +1 -1
- package/dist/core/retry-fallback/hint-policy.d.ts +3 -2
- package/dist/core/retry-fallback/hint-policy.d.ts.map +1 -1
- package/dist/core/retry-fallback/hint-policy.js +19 -8
- package/dist/core/retry-fallback/hint-policy.js.map +1 -1
- package/dist/core/retry-fallback/settings.js.map +1 -1
- package/dist/core/sdk.d.ts +5 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +47 -12
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-discovery.d.ts +16 -0
- package/dist/core/session-discovery.d.ts.map +1 -0
- package/dist/core/session-discovery.js +101 -0
- package/dist/core/session-discovery.js.map +1 -0
- package/dist/core/session-manager.d.ts +7 -3
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +19 -176
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-record.d.ts +14 -0
- package/dist/core/session-record.d.ts.map +1 -0
- package/dist/core/session-record.js +47 -0
- package/dist/core/session-record.js.map +1 -0
- package/dist/core/session-summary-cache.d.ts +40 -0
- package/dist/core/session-summary-cache.d.ts.map +1 -0
- package/dist/core/session-summary-cache.js +79 -0
- package/dist/core/session-summary-cache.js.map +1 -0
- package/dist/core/session-summary-lru.d.ts +54 -0
- package/dist/core/session-summary-lru.d.ts.map +1 -0
- package/dist/core/session-summary-lru.js +72 -0
- package/dist/core/session-summary-lru.js.map +1 -0
- package/dist/core/session-summary.d.ts +29 -0
- package/dist/core/session-summary.d.ts.map +1 -0
- package/dist/core/session-summary.js +90 -0
- package/dist/core/session-summary.js.map +1 -0
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +14 -3
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +17 -2
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -6
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/inspector-policy.d.ts +6 -0
- package/dist/inspector-policy.d.ts.map +1 -1
- package/dist/inspector-policy.js +6 -1
- package/dist/inspector-policy.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +10 -4
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js +8 -8
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/progressive-transcript-container.d.ts +72 -0
- package/dist/modes/interactive/components/progressive-transcript-container.d.ts.map +1 -0
- package/dist/modes/interactive/components/progressive-transcript-container.js +150 -0
- package/dist/modes/interactive/components/progressive-transcript-container.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js +8 -2
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/editor-paste-transfer.d.ts +10 -1
- package/dist/modes/interactive/editor-paste-transfer.d.ts.map +1 -1
- package/dist/modes/interactive/editor-paste-transfer.js +27 -2
- package/dist/modes/interactive/editor-paste-transfer.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +73 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +562 -128
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/split-trailing-assistant-text.d.ts +7 -0
- package/dist/modes/interactive/split-trailing-assistant-text.d.ts.map +1 -0
- package/dist/modes/interactive/split-trailing-assistant-text.js +19 -0
- package/dist/modes/interactive/split-trailing-assistant-text.js.map +1 -0
- package/dist/modes/interactive/tips/catalog/dag-tips.d.ts +7 -0
- package/dist/modes/interactive/tips/catalog/dag-tips.d.ts.map +1 -0
- package/dist/modes/interactive/tips/catalog/dag-tips.js +57 -0
- package/dist/modes/interactive/tips/catalog/dag-tips.js.map +1 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.d.ts +7 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.d.ts.map +1 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.js +100 -0
- package/dist/modes/interactive/tips/catalog/memory-tips.js.map +1 -0
- package/dist/modes/interactive/tips/registry.d.ts.map +1 -1
- package/dist/modes/interactive/tips/registry.js +4 -0
- package/dist/modes/interactive/tips/registry.js.map +1 -1
- package/dist/senpi +31 -3
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/docs/compaction.md +17 -0
- package/docs/custom-provider.md +5 -2
- package/docs/extensions.md +11 -2
- package/docs/llama-cpp.md +2 -0
- package/docs/models.md +8 -2
- package/docs/providers.md +9 -6
- package/docs/settings.md +22 -2
- package/docs/skills.md +4 -3
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +2 -2
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/subagent/index.ts +6 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-cjs/index.js +38 -13
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-es/index.js +1 -1
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-es/schemas/schemas_0.js +34 -12
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/commands/ConverseCommand.d.ts +29 -0
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/commands/ConverseStreamCommand.d.ts +15 -0
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/commands/CountTokensCommand.d.ts +14 -0
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/index.d.ts +1 -1
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/models/models_0.d.ts +119 -1
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/runtimeConfig.browser.d.ts +46 -46
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/runtimeConfig.d.ts +36 -36
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/runtimeConfig.native.d.ts +48 -48
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/runtimeConfig.shared.d.ts +2 -2
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/schemas/schemas_0.d.ts +3 -0
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/ts3.4/index.d.ts +1 -1
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/ts3.4/models/models_0.d.ts +76 -0
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/ts3.4/runtimeConfig.browser.d.ts +70 -72
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/ts3.4/runtimeConfig.d.ts +68 -68
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/ts3.4/runtimeConfig.native.d.ts +86 -88
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/ts3.4/runtimeConfig.shared.d.ts +3 -3
- package/node_modules/@aws-sdk/client-bedrock-runtime/dist-types/ts3.4/schemas/schemas_0.d.ts +3 -0
- package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +14 -14
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +1328 -411
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +8 -5
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +2 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +3 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonSettings.js +1 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +20 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +1 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +160 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +193 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +103 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +20 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +200 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +519 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/jsonReviver.js +93 -9
- package/node_modules/@aws-sdk/core/dist-types/submodules/client/util-endpoints/lib/aws/partitions.d.ts +54 -54
- package/node_modules/@aws-sdk/core/dist-types/submodules/client/util-user-agent-browser/defaultUserAgent.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/client/util-user-agent-browser/defaultUserAgent.native.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/client/util-user-agent-node/defaultUserAgent.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +9 -6
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +4 -3
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +5 -3
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +7 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +7 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/api-extractor-type-index.d.ts +4 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/index.d.ts +61 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConfigResolver.d.ts +13 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/AccountIdEndpointModeConstants.d.ts +4 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/NodeAccountIdEndpointModeConfigOptions.d.ts +5 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/account-id-endpoint/index.d.ts +16 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/emitWarningIfUnsupportedVersion.d.ts +4 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.browser.d.ts +107 -47
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.d.ts +112 -39
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/index.native.d.ts +107 -48
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/longPollMiddleware.d.ts +13 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-host-header/hostHeaderMiddleware.d.ts +25 -35
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-logger/loggerMiddleware.d.ts +14 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/configuration.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.browser.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.browser.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.d.ts +2 -10
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-recursion-detection/recursionDetectionMiddleware.native.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/check-features.d.ts +16 -20
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/configurations.d.ts +21 -44
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/constants.d.ts +7 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/encode-features.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/middleware-user-agent/user-agent-middleware.d.ts +18 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/awsRegionConfig.d.ts +8 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/extensions.d.ts +14 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.browser.d.ts +1 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.d.ts +7 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/region-config-resolver/stsRegionDefaultResolver.native.d.ts +1 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setCredentialFeature.d.ts +6 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setFeature.d.ts +6 -12
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/setTokenFeature.d.ts +6 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/aws.d.ts +2 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/isVirtualHostableS3Bucket.d.ts +4 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/parseArn.d.ts +2 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partition.d.ts +28 -38
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/aws/partitions.d.ts +647 -638
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/lib/isIpAddress.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/resolveDefaultAwsRegionalEndpointsConfig.d.ts +29 -56
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/resolveEndpoint.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/EndpointError.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/EndpointRuleObject.d.ts +6 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/ErrorRuleObject.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/RuleSetObject.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/TreeRuleObject.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-endpoints/types/shared.d.ts +12 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/configurations.d.ts +4 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/createUserAgentStringParsingProvider.d.ts +7 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.browser.d.ts +7 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.d.ts +15 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-browser/defaultUserAgent.native.d.ts +10 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/crt-availability.d.ts +3 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/defaultUserAgent.d.ts +14 -28
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/getRuntimeUserAgentPair.d.ts +2 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/is-crt-available.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/client/util-user-agent-node/nodeAppIdConfigOptions.d.ts +4 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.d.ts +9 -10
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.d.ts +39 -44
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.d.ts +2 -5
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.browser.d.ts +1 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-defaults.d.ts +1 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/clock-skew-node-config.d.ts +4 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/index.d.ts +23 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.d.ts +13 -38
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.d.ts +57 -133
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.browser.d.ts +32 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/index.d.ts +32 -9
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.d.ts +1 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.d.ts +1 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getDateHeader.d.ts +2 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.d.ts +1 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.d.ts +6 -26
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/index.d.ts +4 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/httpAuthSchemes/utils/isClockSkewed.d.ts +1 -9
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +5 -8
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +40 -74
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +9 -24
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +36 -25
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/coercing-serializers.d.ts +3 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/common.d.ts +5 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +30 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +22 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +22 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +50 -29
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +52 -36
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/awsExpectUnion.d.ts +1 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +11 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +13 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +18 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +27 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +9 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +15 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +39 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +7 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +7 -15
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +2 -11
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +14 -22
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +18 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +57 -49
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QuerySerializerSettings.d.ts +7 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/QueryShapeSerializer.d.ts +21 -16
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +1 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +47 -31
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlCodec.d.ts +17 -14
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlShapeDeserializer.d.ts +15 -20
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/XmlShapeSerializer.d.ts +21 -21
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/parseXmlBody.d.ts +4 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/simpleFormatXml.d.ts +1 -6
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/index.d.ts +3 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/util-arn-parser/arn.d.ts +14 -32
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/util-format-url/format-url.d.ts +4 -2
- package/node_modules/@aws-sdk/core/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-http/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
- package/node_modules/@aws-sdk/credential-provider-login/dist-cjs/index.js +35 -28
- package/node_modules/@aws-sdk/credential-provider-login/dist-es/LoginCredentialsFetcher.js +35 -28
- package/node_modules/@aws-sdk/credential-provider-login/dist-types/LoginCredentialsFetcher.d.ts +1 -0
- package/node_modules/@aws-sdk/credential-provider-login/dist-types/ts3.4/LoginCredentialsFetcher.d.ts +1 -0
- package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +6 -6
- package/node_modules/@aws-sdk/eventstream-handler-node/package.json +4 -4
- package/node_modules/@aws-sdk/middleware-eventstream/package.json +4 -4
- package/node_modules/@aws-sdk/middleware-websocket/package.json +7 -7
- 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/dist-types/submodules/cognito-identity/runtimeConfig.browser.d.ts +42 -42
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.d.ts +42 -42
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.native.d.ts +41 -41
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.shared.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +43 -43
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +43 -43
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +42 -42
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.shared.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.browser.d.ts +42 -42
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.d.ts +42 -42
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.native.d.ts +41 -41
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.shared.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +42 -42
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +42 -42
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +41 -41
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +44 -44
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +35 -35
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +43 -43
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.browser.d.ts +64 -66
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.d.ts +65 -65
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.native.d.ts +68 -70
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.shared.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +67 -69
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +66 -66
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +71 -73
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.shared.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.browser.d.ts +64 -66
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.d.ts +65 -65
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.native.d.ts +68 -70
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.shared.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +64 -66
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +65 -65
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +68 -70
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +68 -70
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +68 -68
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +72 -74
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/package.json +8 -8
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +4 -4
- package/node_modules/@aws-sdk/token-providers/package.json +6 -6
- package/node_modules/@aws-sdk/types/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
- package/node_modules/@bufbuild/protobuf/README.md +12 -15
- package/node_modules/@bufbuild/protobuf/dist/commonjs/create.js +199 -162
- package/node_modules/@bufbuild/protobuf/dist/commonjs/from-binary.js +321 -153
- package/node_modules/@bufbuild/protobuf/dist/commonjs/from-json.js +601 -303
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/message.d.ts +49 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/message.js +157 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-check.d.ts +27 -1
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-check.js +80 -56
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect.js +3 -80
- package/node_modules/@bufbuild/protobuf/dist/commonjs/registry.js +12 -3
- package/node_modules/@bufbuild/protobuf/dist/commonjs/to-binary.d.ts +4 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/to-binary.js +365 -127
- package/node_modules/@bufbuild/protobuf/dist/commonjs/to-json.js +393 -159
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/base64-encoding.d.ts +3 -1
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/base64-encoding.js +40 -8
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/binary-encoding.d.ts +37 -19
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/binary-encoding.js +281 -85
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/index.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/index.js +4 -1
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-encoding.d.ts +19 -2
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-encoding.js +47 -13
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/varint.d.ts +4 -4
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/varint.js +35 -23
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/json.d.ts +28 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/json.js +44 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/wrappers.js +12 -12
- package/node_modules/@bufbuild/protobuf/dist/esm/create.js +199 -162
- package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js +321 -153
- package/node_modules/@bufbuild/protobuf/dist/esm/from-json.js +602 -304
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/message.d.ts +49 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/message.js +152 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.d.ts +27 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js +79 -57
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js +1 -78
- package/node_modules/@bufbuild/protobuf/dist/esm/registry.js +12 -3
- package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.d.ts +4 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js +365 -127
- package/node_modules/@bufbuild/protobuf/dist/esm/to-json.js +393 -159
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.d.ts +3 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js +40 -8
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts +37 -19
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js +283 -87
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.js +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts +19 -2
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js +46 -13
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.d.ts +4 -4
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js +35 -23
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/json.d.ts +28 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/json.js +41 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js +12 -12
- package/node_modules/@bufbuild/protobuf/package.json +2 -2
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +64 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-string-parser/LICENSE +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-string-parser/README.md +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-string-parser/lib/index.d.ts +41 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-string-parser/lib/index.js +287 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-string-parser/lib/index.js.map +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-string-parser/package.json +31 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/LICENSE +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/README.md +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/lib/identifier-browser.js +63 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/lib/identifier-browser.js.map +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/lib/identifier.js +61 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/lib/index.d.ts +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/lib/index.js +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/lib/index.js.map +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/helper-validator-identifier/package.json +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/LICENSE +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/README.md +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/bin/babel-parser.js +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/lib/index.d.ts +1035 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/lib/index.js +14276 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/lib/index.js.map +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/package.json +57 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/parser/typings/babel-parser.d.ts +624 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/LICENSE +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/README.md +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/lib/index-legacy.d.ts +2743 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/lib/index.d.ts +3643 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/lib/index.js +11178 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/lib/index.js.flow +2596 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/lib/index.js.map +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/@babel/types/package.json +38 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/code.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/code.mjs +65 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/compile.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/compile.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/index.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/index.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/validator.d.mts +35 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/compile/validator.mjs +91 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/error/errors.d.mts +208 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/error/errors.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/error/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/error/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/_idna.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/_idna.mjs +246 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/_puny.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/_puny.mjs +77 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/_registry.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/_registry.mjs +96 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/date.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/date.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/date_time.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/date_time.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/duration.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/duration.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/email.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/email.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/format.d.mts +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/format.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/hostname.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/hostname.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/idn_email.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/idn_email.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/idn_hostname.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/idn_hostname.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/index.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/index.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/ipv4.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/ipv4.mjs +38 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/ipv6.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/ipv6.mjs +67 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/iri.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/iri.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/iri_reference.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/iri_reference.mjs +60 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/json_pointer.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/json_pointer.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/json_pointer_uri_fragment.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/regex.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/regex.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/relative_json_pointer.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/relative_json_pointer.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/time.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/time.mjs +27 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uri.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uri.mjs +135 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uri_reference.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uri_reference.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uri_template.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uri_template.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/url.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/url.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uuid.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/format/uuid.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/emit.d.mts +56 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/emit.mjs +193 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/globals.d.mts +35 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/globals.mjs +90 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/guard.d.mts +71 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/guard.mjs +233 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/index.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/index.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/native.d.mts +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/native.mjs +60 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/string.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/guard/string.mjs +176 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/index.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/index.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/build.d.mts +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/build.mjs +118 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/check.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/check.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/compile.d.mts +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/compile.mjs +46 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_context.d.mts +35 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_context.mjs +129 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_exact_optional.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_exact_optional.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_externals.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_externals.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_functions.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_functions.mjs +65 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_reducer.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_reducer.mjs +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_refine.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_refine.mjs +29 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_stack.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_stack.mjs +107 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_unique.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/_unique.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/additionalItems.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/additionalItems.mjs +60 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/additionalProperties.mjs +110 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/allOf.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/allOf.mjs +47 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/anyOf.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/anyOf.mjs +52 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/boolean.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/boolean.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/const.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/const.mjs +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/contains.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/contains.mjs +54 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dependencies.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dependencies.mjs +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dependentRequired.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +38 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/dynamicRef.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/enum.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/enum.mjs +33 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/format.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/format.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/if.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/if.mjs +47 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/index.d.mts +48 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/index.mjs +54 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/items.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/items.mjs +88 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxContains.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxContains.mjs +42 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxItems.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxItems.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxLength.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxLength.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxProperties.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maxProperties.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maximum.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/maximum.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minContains.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minContains.mjs +51 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minItems.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minItems.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minLength.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minLength.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minProperties.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minProperties.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minimum.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/minimum.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/multipleOf.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/multipleOf.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/not.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/not.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/oneOf.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/oneOf.mjs +59 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/pattern.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/pattern.mjs +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/patternProperties.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/patternProperties.mjs +44 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/prefixItems.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/prefixItems.mjs +35 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/properties.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/properties.mjs +75 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/propertyNames.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/propertyNames.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/recursiveRef.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/ref.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/ref.mjs +52 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/required.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/required.mjs +32 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/schema.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/schema.mjs +347 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/type.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/type.mjs +70 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +51 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +51 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/engine/uniqueItems.mjs +51 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/errors.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/errors.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/index.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/index.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/parse.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/parse.mjs +27 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/pointer/index.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/pointer/index.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/pointer/pointer.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/pointer/pointer.mjs +106 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/pointer/pointer_get.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/pointer/pointer_get.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/resolve/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/resolve/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/resolve/ref.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/resolve/ref.mjs +146 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/resolve/resolve.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/resolve/resolve.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/schema.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/schema.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/_canonical.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/_canonical.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/_comparer.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/_comparer.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/_elements.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/_elements.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/additionalProperties.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/additionalProperties.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/allOf.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/allOf.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/anyOf.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/anyOf.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/const.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/const.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/enum.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/enum.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/if.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/if.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/items.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/items.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/oneOf.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/oneOf.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/patternProperties.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/patternProperties.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/prefixItems.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/prefixItems.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/properties.d.mts +32 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/properties.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/ref.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/ref.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/required.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/required.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/schema.d.mts +56 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/schema.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/static.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/static.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/type.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/type.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/unevaluatedProperties.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/static/unevaluatedProperties.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/_refine.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/_refine.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/additionalItems.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/additionalItems.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/additionalProperties.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/additionalProperties.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/allOf.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/allOf.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/anchor.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/anchor.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/anyOf.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/anyOf.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/const.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/const.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/contains.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/contains.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/contentEncoding.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/contentEncoding.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/contentMediaType.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/contentMediaType.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/default.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/default.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/defs.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/defs.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dependencies.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dependencies.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dependentRequired.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dependentRequired.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dependentSchemas.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dependentSchemas.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dynamicAnchor.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dynamicAnchor.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dynamicRef.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/dynamicRef.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/else.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/else.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/enum.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/enum.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/exclusiveMaximum.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/exclusiveMaximum.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/exclusiveMinimum.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/exclusiveMinimum.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/format.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/format.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/id.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/id.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/if.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/if.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/index.d.mts +53 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/index.mjs +59 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/items.d.mts +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/items.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxContains.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxContains.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxItems.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxItems.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxLength.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxLength.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxProperties.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maxProperties.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maximum.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/maximum.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minContains.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minContains.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minItems.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minItems.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minLength.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minLength.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minProperties.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minProperties.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minimum.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/minimum.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/multipleOf.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/multipleOf.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/not.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/not.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/oneOf.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/oneOf.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/pattern.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/pattern.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/patternProperties.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/patternProperties.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/prefixItems.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/prefixItems.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/properties.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/properties.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/propertyNames.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/propertyNames.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/recursiveAnchor.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/recursiveAnchor.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/recursiveRef.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/recursiveRef.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/ref.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/ref.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/required.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/required.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/schema.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/schema.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/then.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/then.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/type.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/type.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/unevaluatedItems.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/unevaluatedItems.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/unevaluatedProperties.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/unevaluatedProperties.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/uniqueItems.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/schema/types/uniqueItems.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/arguments/arguments.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/arguments/arguments.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/arguments/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/arguments/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/environment/environment.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/environment/environment.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/environment/evaluate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/environment/evaluate.mjs +37 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/environment/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/environment/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/hashing/hash.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/hashing/hash.mjs +232 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/hashing/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/hashing/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/index.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/index.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/_config.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/_config.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/_locale.d.mts +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/_locale.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ar_001.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ar_001.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/bn_BD.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/bn_BD.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/cs_CZ.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/cs_CZ.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/de_DE.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/de_DE.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/el_GR.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/el_GR.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/en_US.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/en_US.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_419.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_419.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_AR.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_AR.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_ES.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_ES.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_MX.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/es_MX.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fa_IR.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fa_IR.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fil_PH.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fil_PH.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fr_CA.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fr_CA.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fr_FR.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/fr_FR.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ha_NG.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ha_NG.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/hi_IN.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/hi_IN.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/hu_HU.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/hu_HU.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/id_ID.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/id_ID.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/it_IT.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/it_IT.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ja_JP.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ja_JP.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ko_KR.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ko_KR.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ms_MY.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ms_MY.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/nl_NL.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/nl_NL.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/pl_PL.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/pl_PL.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/pt_BR.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/pt_BR.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/pt_PT.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/pt_PT.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ro_RO.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ro_RO.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ru_RU.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ru_RU.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/sv_SE.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/sv_SE.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/sw_TZ.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/sw_TZ.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/th_TH.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/th_TH.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/tr_TR.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/tr_TR.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/uk_UA.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/uk_UA.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ur_PK.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/ur_PK.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/vi_VN.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/vi_VN.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/yo_NG.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/yo_NG.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/zh_Hans.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/zh_Hans.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/zh_Hant.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/locale/zh_Hant.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/assign.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/assign.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/clone.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/clone.mjs +110 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/create.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/create.mjs +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/discard.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/discard.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/memory.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/memory.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/metrics.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/metrics.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/update.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/memory/update.mjs +32 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/settings/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/settings/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/settings/settings.d.mts +71 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/settings/settings.mjs +34 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/system.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/system.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/unreachable/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/unreachable/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/unreachable/unreachable.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/system/unreachable/unreachable.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_add_immutable.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_add_immutable.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_add_optional.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_add_optional.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_add_readonly.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_add_readonly.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_remove_immutable.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_remove_immutable.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_remove_optional.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_remove_optional.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_remove_readonly.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/_remove_readonly.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/capitalize.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/capitalize.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/conditional.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/conditional.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/constructor_parameters.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/constructor_parameters.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/evaluate.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/evaluate.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/exclude.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/exclude.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/extract.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/extract.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/index.d.mts +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/index.mjs +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/indexed.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/indexed.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/instance_type.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/instance_type.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/interface.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/interface.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/keyof.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/keyof.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/lowercase.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/lowercase.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/mapped.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/mapped.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/module.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/module.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/non_nullable.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/non_nullable.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/omit.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/omit.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/parameters.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/parameters.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/partial.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/partial.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/pick.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/pick.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/readonly_object.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/readonly_object.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/required.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/required.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/return_type.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/return_type.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/uncapitalize.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/uncapitalize.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/uppercase.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/uppercase.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/with.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/action/with.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +53 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/instantiate.d.mts +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/instantiate.mjs +49 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/resolve_arguments.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/resolve_arguments.mjs +33 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/resolve_target.d.mts +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/call/resolve_target.mjs +27 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/conditional/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/conditional/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/conditional/instantiate.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/conditional/instantiate.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/constructor_parameters/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/constructor_parameters/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/candidates.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/candidates.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/check.d.mts +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/check.mjs +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/dependencies.d.mts +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/dependencies.mjs +47 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/extends.d.mts +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/extends.mjs +47 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/index.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/index.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/instantiate.d.mts +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/instantiate.mjs +31 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/target.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/cyclic/target.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/enum/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/enum/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/enum/typescript_enum_to_enum_values.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/enum/typescript_enum_to_enum_values.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +43 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/compare.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +34 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/composite.mjs +67 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +53 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/index.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/index.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/instantiate.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/instantiate.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/exclude/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/exclude/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/exclude/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/exclude/instantiate.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/exclude/operation.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/exclude/operation.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/extract/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/extract/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/extract/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/extract/instantiate.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/extract/operation.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/extract/operation.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/index.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/index.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/keys.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/keys.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/keys_to_indexer.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/keys_to_indexer.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/union.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/helpers/union.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/immutable/instantiate_remove.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/immutable/instantiate_remove.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/index.d.mts +31 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/index.mjs +37 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_cyclic.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_cyclic.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_dependent.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_dependent.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_enum.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_enum.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_intersect.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_literal.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_literal.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_template_literal.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_template_literal.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_type.d.mts +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_type.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_union.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/from_union.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/to_indexable.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/to_indexable.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/to_indexable_keys.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexable/to_indexable_keys.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/array_indexer.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/array_indexer.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_array.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_array.mjs +35 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_object.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_object.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_tuple.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_tuple.mjs +35 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_type.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/from_type.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/instantiate.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/indexed/instantiate.mjs +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/instance_type/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/instance_type/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/instance_type/instantiate.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/instance_type/instantiate.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/instantiate.d.mts +178 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/instantiate.mjs +158 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/interface/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/interface/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/interface/instantiate.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/interface/instantiate.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_literal.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_literal.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_type.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_type.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_union.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/from_union.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/instantiate.d.mts +38 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/instantiate.mjs +52 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/mapping.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/intrinsics/mapping.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_any.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_any.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_array.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_array.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_object.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_object.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_record.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_record.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_tuple.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_tuple.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_type.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/from_type.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/instantiate.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/keyof/instantiate.mjs +29 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/instantiate.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/instantiate.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/mapped_operation.d.mts +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/mapped_operation.mjs +42 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/mapped_variants.d.mts +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/mapped/mapped_variants.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/module/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/module/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/module/instantiate.d.mts +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/module/instantiate.mjs +36 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/non_nullable/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/non_nullable/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/non_nullable/instantiate.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/non_nullable/instantiate.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/collapse.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/collapse.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_cyclic.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_cyclic.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_dependent.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_dependent.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_intersect.d.mts +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_intersect.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_object.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_object.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_tuple.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_tuple.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_type.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_type.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_union.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/from_union.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/object/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/omit/from_type.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/omit/from_type.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/omit/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/omit/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/omit/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/omit/instantiate.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/optional/instantiate_remove.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/optional/instantiate_remove.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/parameters/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/parameters/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/parameters/instantiate.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/parameters/instantiate.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_cyclic.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_cyclic.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_dependent.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_dependent.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_intersect.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_object.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_object.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_type.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_type.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_union.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/from_union.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/partial/instantiate.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/patterns/index.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/patterns/index.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/patterns/pattern.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/patterns/pattern.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/patterns/template.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/patterns/template.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/pick/from_type.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/pick/from_type.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/pick/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/pick/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/pick/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/pick/instantiate.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/priority/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/priority/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/priority/priority.d.mts +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/priority/priority.mjs +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly/instantiate_remove.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly/instantiate_remove.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_array.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_array.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_cyclic.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_cyclic.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_dependent.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_dependent.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_intersect.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_object.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_object.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_tuple.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_tuple.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_type.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_type.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_union.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/from_union.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/readonly_object/instantiate.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key.d.mts +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key.mjs +40 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_any.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_any.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_boolean.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_boolean.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_enum.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_enum.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_integer.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_integer.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_intersect.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_literal.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_literal.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_number.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_number.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_string.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_string.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_template_literal.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_template_literal.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_union.d.mts +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/from_key_union.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/instantiate.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/record_create.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/record/record_create.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/ref/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/ref/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/ref/instantiate.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/ref/instantiate.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_cyclic.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_cyclic.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_dependent.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_dependent.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_intersect.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_object.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_object.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_type.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_type.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_union.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/from_union.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/required/instantiate.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/rest/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/rest/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/rest/spread.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/rest/spread.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/return_type/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/return_type/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/return_type/instantiate.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/return_type/instantiate.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/create.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/create.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/decode.d.mts +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/decode.mjs +81 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/encode.d.mts +33 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/encode.mjs +81 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/index.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/index.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/instantiate.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/instantiate.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/is_finite.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/is_finite.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/is_pattern.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/is_pattern.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/static.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/template_literal/static.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/this/expand_this.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/this/expand_this.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/tuple/to_object.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/tuple/to_object.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/with/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/with/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/with/instantiate.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/engine/with/instantiate.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/any.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/any.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/array.d.mts +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/array.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/bigint.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/bigint.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/boolean.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/boolean.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/constructor.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/constructor.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/dependent.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/dependent.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/enum.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/enum.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/extends.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/extends.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/extends_left.d.mts +53 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/extends_left.mjs +80 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/extends_right.d.mts +27 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/extends_right.mjs +49 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/function.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/function.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/index.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/index.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/inference.d.mts +34 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/inference.mjs +62 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/integer.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/integer.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/intersect.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/intersect.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/literal.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/literal.mjs +44 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/never.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/never.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/null.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/null.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/number.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/number.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/object.d.mts +32 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/object.mjs +109 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/parameters.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/parameters.mjs +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/record.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/record.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/result.d.mts +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/result.mjs +36 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/return_type.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/return_type.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/string.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/string.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/symbol.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/symbol.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/template_literal.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/template_literal.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/tuple.d.mts +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/tuple.mjs +61 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/undefined.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/undefined.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/union.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/union.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/unknown.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/unknown.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/void.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/extends/void.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/index.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/index.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/mapping.d.mts +353 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/mapping.mjs +535 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/parser.d.mts +262 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/parser.mjs +136 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/script.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/script.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/bigint.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/bigint.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/const.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/const.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/ident.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/ident.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/index.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/index.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/integer.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/integer.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/char.d.mts +75 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/char.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/guard.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/guard.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/many.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/many.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/match.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/match.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/optional.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/optional.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/take.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/take.mjs +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/trim.d.mts +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/internal/trim.mjs +34 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/number.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/number.mjs +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/rest.d.mts +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/rest.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/span.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/span.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/string.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/string.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/unsigned_integer.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/unsigned_integer.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/unsigned_number.d.mts +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/unsigned_number.mjs +38 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/until.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/until.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/until_1.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/script/token/until_1.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_codec.d.mts +30 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_codec.mjs +60 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_immutable.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_immutable.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_optional.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_optional.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_readonly.d.mts +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_readonly.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_refine.d.mts +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/_refine.mjs +36 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/any.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/any.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/array.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/array.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/bigint.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/bigint.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/boolean.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/boolean.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/call.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/call.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/constructor.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/constructor.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/cyclic.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/cyclic.mjs +29 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/deferred.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/deferred.mjs +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/dependent.d.mts +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/dependent.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/enum.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/enum.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/function.d.mts +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/function.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/generic.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/generic.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/identifier.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/identifier.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/index.d.mts +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/index.mjs +51 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/infer.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/infer.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/integer.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/integer.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/intersect.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/intersect.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/literal.d.mts +31 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/literal.mjs +62 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/never.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/never.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/null.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/null.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/number.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/number.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/object.d.mts +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/object.mjs +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/parameter.d.mts +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/parameter.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/properties.d.mts +43 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/properties.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/record.d.mts +52 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/record.mjs +66 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/ref.d.mts +19 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/ref.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/rest.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/rest.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/schema.d.mts +176 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/schema.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/static.d.mts +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/static.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/string.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/string.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/symbol.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/symbol.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/template_literal.d.mts +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/template_literal.mjs +37 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/this.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/this.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/tuple.d.mts +38 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/tuple.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/undefined.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/undefined.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/union.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/union.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/unknown.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/unknown.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/unsafe.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/unsafe.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/void.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/type/types/void.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/typebox.d.mts +69 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/typebox.mjs +85 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/assert/assert.d.mts +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/assert/assert.mjs +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/assert/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/assert/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/check/check.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/check/check.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/check/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/check/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/additional.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/additional.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/clean.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/clean.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_array.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_array.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_cyclic.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_cyclic.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_intersect.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_intersect.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_object.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_object.mjs +31 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_record.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_record.mjs +32 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_ref.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_ref.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_tuple.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_tuple.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_type.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_type.mjs +21 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_union.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/from_union.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clean/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clone/clone.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clone/clone.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clone/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/clone/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/callback.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/callback.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/decode.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/decode.mjs +52 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/encode.d.mts +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/encode.mjs +52 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_array.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_array.mjs +35 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_cyclic.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_cyclic.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_intersect.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_intersect.mjs +58 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_object.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_object.mjs +42 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_record.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_record.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_ref.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_ref.mjs +31 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_tuple.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_tuple.mjs +32 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_type.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_type.mjs +22 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_union.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/from_union.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/has.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/has.mjs +93 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/index.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/codec/index.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/convert.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/convert.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_additional.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_additional.mjs +18 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_array.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_array.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_bigint.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_bigint.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_boolean.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_boolean.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_cyclic.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_cyclic.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_enum.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_enum.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_integer.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_integer.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_intersect.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_literal.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_literal.mjs +44 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_null.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_null.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_number.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_number.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_object.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_object.mjs +28 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_record.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_record.mjs +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_ref.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_ref.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_string.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_string.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_template_literal.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_template_literal.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_tuple.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_tuple.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_type.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_type.mjs +43 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_undefined.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_undefined.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_union.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_union.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_void.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/from_void.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_array.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_array.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_bigint.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_bigint.mjs +45 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_boolean.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_boolean.mjs +41 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_null.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_null.mjs +44 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_number.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_number.mjs +44 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_result.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_result.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_string.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_string.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_undefined.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/convert/try/try_undefined.mjs +44 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/create.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/create.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/error.d.mts +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/error.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_array.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_array.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_bigint.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_bigint.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_boolean.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_boolean.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_constructor.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_constructor.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_cyclic.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_cyclic.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_default.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_default.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_enum.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_enum.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_function.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_function.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_integer.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_integer.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_intersect.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_literal.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_literal.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_never.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_never.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_null.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_null.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_number.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_number.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_object.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_object.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_record.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_record.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_ref.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_ref.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_string.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_string.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_symbol.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_symbol.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_template_literal.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_template_literal.mjs +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_tuple.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_tuple.mjs +5 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_type.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_type.mjs +61 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_undefined.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_undefined.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_union.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_union.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_void.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/from_void.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/index.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/create/index.mjs +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/default.d.mts +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/default.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_array.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_array.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_cyclic.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_cyclic.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_default.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_default.mjs +13 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_intersect.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_intersect.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_object.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_object.mjs +32 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_record.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_record.mjs +26 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_ref.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_ref.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_tuple.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_tuple.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_type.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_type.mjs +25 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_union.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/from_union.mjs +14 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/default/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/diff.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/diff.mjs +135 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/edit.d.mts +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/edit.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/index.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/index.mjs +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/patch.d.mts +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/delta/patch.mjs +42 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/equal/equal.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/equal/equal.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/equal/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/equal/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/errors/errors.d.mts +16 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/errors/errors.mjs +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/errors/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/errors/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/hash/hash.d.mts +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/hash/hash.mjs +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/hash/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/hash/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/index.d.mts +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/index.mjs +29 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/parse/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/parse/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/parse/parse.d.mts +11 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/parse/parse.mjs +47 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/pipeline/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/pipeline/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/pipeline/pipeline.d.mts +10 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/pipeline/pipeline.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/pointer/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/pointer/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/error.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/error.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_array.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_array.mjs +39 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_enum.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_enum.mjs +6 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_intersect.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_intersect.mjs +8 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_object.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_object.mjs +33 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_record.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_record.mjs +33 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_ref.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_ref.mjs +9 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_template_literal.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_template_literal.mjs +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_tuple.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_tuple.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_type.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_type.mjs +88 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_union.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_union.mjs +24 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_unknown.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/from_unknown.mjs +12 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/index.d.mts +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/index.mjs +1 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/repair.d.mts +17 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/repair/repair.mjs +20 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/index.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/index.mjs +4 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/optional_undefined.d.mts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/optional_undefined.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/union_priority_sort.d.mts +7 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/union_priority_sort.mjs +72 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/union_score_select.d.mts +3 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/shared/union_score_select.mjs +51 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/value.d.mts +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/build/value/value.mjs +15 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/license +23 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/package.json +87 -0
- package/node_modules/@code-yeongyu/senpi-codemode/node_modules/typebox/readme.md +363 -0
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/render.ts +11 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts +3 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +94 -20
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +7 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +12 -3
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts +8 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js +25 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/assistant-terminal-state.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts +3 -2
- 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 +13 -3
- 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/tools/edit.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/tools/edit.js +14 -1
- 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/proxy.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +9 -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 -6
- package/node_modules/@earendil-works/pi-ai/README.md +5 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts +7 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +21 -4
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +7 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +39 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.d.ts +22 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/reasoning-params.d.ts +20 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/reasoning-params.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/reasoning-params.js +26 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/reasoning-params.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.d.ts +7 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +7 -3
- 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 +363 -218
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-conversation-rotation.d.ts +37 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-conversation-rotation.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-conversation-rotation.js +110 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-conversation-rotation.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-task-args.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-task-args.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-task-args.js +17 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-task-args.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +14 -11
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts +5 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +16 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +13 -10
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +4 -1
- 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 +4 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +45 -29
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +8 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +18 -9
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/device-code.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js +22 -9
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.d.ts +25 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.js +134 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/catalog-grouping.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/cursor-variant-aliases.json +1893 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/model-capabilities.d.ts +47 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/model-capabilities.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/model-capabilities.js +208 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/model-capabilities.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.d.ts +21 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.js +99 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/selection-descriptor.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.d.ts +8 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.js +76 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor/store-migration.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +5 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +4 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.d.ts +13 -0
- package/node_modules/@earendil-works/pi-ai/dist/model.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +6 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js +9 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.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 +40 -11
- 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/amazon-bedrock.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/anthropic.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/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.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/openai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.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-individual.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-ams.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi-token-plan-sgp.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xiaomi.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js +1 -5
- package/node_modules/@earendil-works/pi-ai/dist/providers/xai.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js +21 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/anthropic-xml/tool-resolver.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-message-snapshot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-message-snapshot.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-message-snapshot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +45 -4
- 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/overflow.d.ts +30 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +48 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.d.ts +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.js +7 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/pi-user-agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts +2 -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 +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +8 -9
- package/node_modules/@earendil-works/pi-pty/dist/loader.d.ts +6 -0
- package/node_modules/@earendil-works/pi-pty/dist/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/loader.js +11 -0
- package/node_modules/@earendil-works/pi-pty/dist/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.d.ts +15 -0
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.js +27 -0
- package/node_modules/@earendil-works/pi-pty/dist/quarantine.js.map +1 -0
- package/node_modules/@earendil-works/pi-pty/package.json +2 -2
- package/node_modules/@earendil-works/pi-telemetry/package.json +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +73 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +173 -17
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.js +5 -4
- package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts +69 -0
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.d.ts +46 -0
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.js +130 -0
- package/node_modules/@earendil-works/pi-tui/dist/image-markers.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js +2 -0
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.d.ts +3 -0
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.js +23 -7
- package/node_modules/@earendil-works/pi-tui/dist/paste-markers.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js +5 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui-alt-screen.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +1562 -339
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +23 -23
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +23 -23
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +17 -13
- package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +0 -10
- package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +4 -205
- package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +1 -2
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-encode.js +1 -1
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v1/CborShapeDeserializer.js +113 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v1/CborShapeSerializer.js +103 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v2/CborShapeDeserializer2.js +621 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v2/CborShapeSerializer2.js +602 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/index.js +5 -1
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +4 -4
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/HeaderMarshaller.js +19 -19
- package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +3 -4
- package/node_modules/@smithy/core/dist-es/submodules/protocols/middleware-content-length/contentLengthMiddleware.js +6 -4
- package/node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/extensions/httpExtensionConfiguration.js +8 -5
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ListSchema.js +0 -2
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/MapSchema.js +0 -2
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/OperationSchema.js +0 -2
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/SimpleSchema.js +0 -2
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/StructureSchema.js +0 -2
- package/node_modules/@smithy/core/dist-types/submodules/cbor/CborCodec.d.ts +5 -27
- package/node_modules/@smithy/core/dist-types/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v1/CborShapeDeserializer.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v1/CborShapeSerializer.d.ts +15 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v2/CborShapeDeserializer2.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/codec-v2/CborShapeSerializer2.d.ts +35 -0
- package/node_modules/@smithy/core/dist-types/submodules/cbor/index.d.ts +5 -1
- package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/extensions/defaultExtensionConfiguration.d.ts +1 -7
- package/node_modules/@smithy/core/dist-types/submodules/config/config-resolver/regionConfig/checkRegion.d.ts +2 -1
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/util-endpoints/utils/evaluateCondition.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/util-endpoints/utils/evaluateConditions.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/util-endpoints/utils/evaluateExpression.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/util-endpoints/utils/evaluateRules.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/util-endpoints/utils/getEndpointProperties.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/endpoints/util-endpoints/utils/getReferenceValue.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/event-streams/EventStreamSerde.d.ts +14 -2
- package/node_modules/@smithy/core/dist-types/submodules/protocols/protocol-http/extensions/httpExtensionConfiguration.d.ts +7 -2
- package/node_modules/@smithy/core/dist-types/submodules/retry/util-retry/retries-2026-config.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/submodules/schema/TypeRegistry.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/submodules/serde/parse-utils.d.ts +5 -5
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/CborCodec.d.ts +5 -27
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v1/CborShapeDeserializer.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v1/CborShapeSerializer.d.ts +15 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v2/CborShapeDeserializer2.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/codec-v2/CborShapeSerializer2.d.ts +35 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/index.d.ts +5 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/client/smithy-client/extensions/defaultExtensionConfiguration.d.ts +1 -7
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/config/config-resolver/regionConfig/checkRegion.d.ts +2 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/util-endpoints/utils/evaluateCondition.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/util-endpoints/utils/evaluateConditions.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/util-endpoints/utils/evaluateExpression.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/util-endpoints/utils/evaluateRules.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/util-endpoints/utils/getEndpointProperties.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/endpoints/util-endpoints/utils/getReferenceValue.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/event-streams/EventStreamSerde.d.ts +14 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/protocol-http/extensions/httpExtensionConfiguration.d.ts +7 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/retry/util-retry/retries-2026-config.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/TypeRegistry.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/serde/parse-utils.d.ts +5 -5
- package/node_modules/@smithy/core/package.json +4 -11
- package/node_modules/@smithy/credential-provider-imds/package.json +4 -12
- package/node_modules/@smithy/fetch-http-handler/package.json +5 -13
- package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +9 -2
- package/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +9 -2
- package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +1 -1
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +1 -1
- package/node_modules/@smithy/node-http-handler/package.json +5 -13
- package/node_modules/@smithy/signature-v4/dist-cjs/index.js +9 -9
- package/node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js +9 -9
- package/node_modules/@smithy/signature-v4/package.json +4 -12
- package/node_modules/@smithy/types/dist-types/schema/sentinels.d.ts +14 -14
- package/node_modules/@smithy/types/package.json +29 -39
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/child_process.d.ts +0 -1
- package/node_modules/@types/node/crypto.d.ts +7 -7
- package/node_modules/@types/node/dns/promises.d.ts +5 -5
- package/node_modules/@types/node/dns.d.ts +5 -5
- package/node_modules/@types/node/fs.d.ts +7 -0
- package/node_modules/@types/node/http.d.ts +30 -0
- package/node_modules/@types/node/http2.d.ts +4 -4
- package/node_modules/@types/node/os.d.ts +30 -30
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/node/perf_hooks.d.ts +2 -1
- package/node_modules/@types/node/process.d.ts +42 -43
- package/node_modules/@types/node/quic.d.ts +1049 -84
- package/node_modules/@types/node/sqlite.d.ts +14 -1
- package/node_modules/@types/node/stream/iter.d.ts +3 -2
- package/node_modules/@types/node/test.d.ts +61 -0
- package/node_modules/@types/node/v8.d.ts +20 -23
- package/package.json +36 -36
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonCodec.js +0 -20
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +0 -160
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +0 -190
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.js +0 -180
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/ByteJsonShapeSerializer.js +0 -483
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonCodec.d.ts +0 -19
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +0 -13
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +0 -28
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.d.ts +0 -29
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/experimental/ByteJsonShapeSerializer.d.ts +0 -57
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonCodec.d.ts +0 -19
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeDeserializer.d.ts +0 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +0 -28
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/BufferJsonShapeDeserializer.d.ts +0 -29
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/experimental/ByteJsonShapeSerializer.d.ts +0 -57
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/LICENSE +0 -201
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/README.md +0 -9
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-cjs/index.js +0 -840
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +0 -19
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/constants.js +0 -1
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +0 -9
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +0 -50
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/index.js +0 -3
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +0 -241
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +0 -136
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +0 -46
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +0 -173
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2.js +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-https.js +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +0 -36
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js +0 -21
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +0 -22
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +0 -23
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/timing.js +0 -4
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +0 -63
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +0 -10
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/constants.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +0 -4
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/http2/ClientHttp2SessionRef.d.ts +0 -46
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +0 -3
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +0 -47
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +0 -46
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +0 -36
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +0 -76
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/node-http2.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/node-https.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +0 -6
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +0 -6
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +0 -9
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +0 -10
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/constants.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +0 -4
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/http2/ClientHttp2SessionRef.d.ts +0 -46
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/index.d.ts +0 -3
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +0 -47
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +0 -46
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +0 -36
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +0 -76
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-https.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +0 -6
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +0 -6
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +0 -9
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +0 -12
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +0 -12
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +0 -64
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/LICENSE +0 -201
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/README.md +0 -9
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-cjs/index.js +0 -840
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +0 -19
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/constants.js +0 -1
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +0 -9
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +0 -50
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/index.js +0 -3
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +0 -241
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +0 -136
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +0 -46
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +0 -173
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-https.js +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +0 -36
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js +0 -21
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +0 -22
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +0 -23
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/timing.js +0 -4
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +0 -63
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +0 -10
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/constants.d.ts +0 -5
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +0 -4
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/http2/ClientHttp2SessionRef.d.ts +0 -46
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +0 -3
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +0 -47
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +0 -46
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +0 -36
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +0 -76
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/node-http2.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/node-https.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +0 -6
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +0 -6
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +0 -9
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +0 -10
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/constants.d.ts +0 -5
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +0 -4
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/http2/ClientHttp2SessionRef.d.ts +0 -46
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/index.d.ts +0 -3
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +0 -47
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +0 -46
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +0 -36
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +0 -76
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-https.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +0 -6
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +0 -6
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +0 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +0 -9
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +0 -12
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +0 -12
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-agent.js","sourceRoot":"","sources":["../../src/api/cursor-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Cursor agent protocol (`agent.v1.AgentService/Run`) over HTTP/2 Connect.\n *\n * Ported from upstream oh-my-pi's Cursor provider and adapted to senpi's\n * provider-neutral API architecture. The protocol is server-driven: the\n * client opens one `Run` stream per assistant turn, the server streams\n * interaction updates (text/thinking/tool-call deltas) and, mid-turn, sends\n * `ExecServerMessage` frames asking the CLIENT to execute a tool and blocks\n * until the answer arrives on the same stream. Tool execution is therefore\n * bridged through injected {@link CursorExecHandlers}; each bridged call is\n * synthesized into the assistant message as an already-resolved `toolCall`\n * block (marked {@link kCursorExecResolved} so the agent loop never re-runs\n * it) and paired with a `ToolResultMessage` delivered via `onToolResult`.\n *\n * NOTE: This module is Node-only (node:http2) and must only be reached\n * through the lazy wrapper (`cursor-agent.lazy.ts`).\n */\n\nimport { createHash, randomUUID } from \"node:crypto\";\nimport * as http2 from \"node:http2\";\nimport { create, fromBinary, fromJson, type JsonValue as PbJsonValue, toBinary, toJson } from \"@bufbuild/protobuf\";\nimport { ValueSchema } from \"@bufbuild/protobuf/wkt\";\nimport { calculateCost } from \"../models.ts\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tSimpleStreamOptions,\n\tStreamFunction,\n\tTextContent,\n\tThinkingContent,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n} from \"../types.ts\";\nimport {\n\ttype CursorExecResolvedCarrier,\n\tclearStreamingPartialJson,\n\tkCursorExecResolved,\n\tkStreamingBlockIndex,\n\tkStreamingBlockKind,\n\tkStreamingEnvelopeId,\n\tkStreamingLastParseLen,\n\tkStreamingPartialJson,\n} from \"../utils/block-symbols.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { providerHeadersToRecord } from \"../utils/headers.ts\";\nimport { parseJsonWithRepair, parseStreamingJson } from \"../utils/json-parse.ts\";\nimport { sanitizeSurrogates } from \"../utils/sanitize-unicode.ts\";\nimport { deterministicUuid } from \"./cursor-agent/deterministic-id.ts\";\nimport { armExecHeartbeat } from \"./cursor-agent/exec-lifecycle.ts\";\nimport {\n\tbuildMcpStateResult,\n\tbuildNeutralHookResult,\n\tbuildPiBashError,\n\tbuildPiBashResult,\n\tbuildPiEditError,\n\tbuildPiEditRejected,\n\tbuildPiEditResult,\n\tbuildPiFindError,\n\tbuildPiFindResult,\n\tbuildPiGrepError,\n\tbuildPiGrepResult,\n\tbuildPiLsError,\n\tbuildPiLsResult,\n\tbuildPiReadError,\n\tbuildPiReadResult,\n\tbuildPiWriteError,\n\tbuildPiWriteRejected,\n\tbuildPiWriteResult,\n} from \"./cursor-agent/exec-modern.ts\";\nimport {\n\tAgentClientMessageSchema,\n\tAgentConversationTurnStructureSchema,\n\tAgentRunRequestSchema,\n\ttype AgentServerMessage,\n\tAgentServerMessageSchema,\n\tAgentStoreConflictErrorSchema,\n\tAgentStoreConflictResultSchema,\n\tAssistantMessageSchema,\n\tBackgroundShellSpawnResultSchema,\n\tCanvasDiagnosticsErrorSchema,\n\tCanvasDiagnosticsResultSchema,\n\tClientHeartbeatSchema,\n\tComputerUseErrorSchema,\n\tComputerUseResultSchema,\n\tConversationActionSchema,\n\tConversationSearchErrorSchema,\n\tConversationSearchResultSchema,\n\ttype ConversationStateStructure,\n\tConversationStateStructureSchema,\n\ttype ConversationStep,\n\tConversationStepSchema,\n\tConversationTurnStructureSchema,\n\tDeleteErrorSchema,\n\tDeleteRejectedSchema,\n\tDeleteResultSchema,\n\tDeleteSuccessSchema,\n\tDiagnosticsErrorSchema,\n\tDiagnosticsRejectedSchema,\n\tDiagnosticsResultSchema,\n\tDiagnosticsSuccessSchema,\n\tExecClientControlMessageSchema,\n\tExecClientHeartbeatSchema,\n\ttype ExecClientMessage,\n\tExecClientMessageSchema,\n\tExecClientStreamCloseSchema,\n\tExecClientThrowSchema,\n\ttype ExecServerMessage,\n\tFetchErrorSchema,\n\tFetchResultSchema,\n\tForceBackgroundShellResultSchema,\n\tForceBackgroundShellStatus,\n\tForceBackgroundSubagentResultSchema,\n\tForceBackgroundSubagentStatus,\n\tGetBlobResultSchema,\n\tGetUsableModelsRequestSchema,\n\tGetUsableModelsResponseSchema,\n\tGrepContentMatchSchema,\n\tGrepContentResultSchema,\n\tGrepCountResultSchema,\n\tGrepErrorSchema,\n\ttype GrepFileCount,\n\tGrepFileCountSchema,\n\tGrepFileMatchSchema,\n\tGrepFilesResultSchema,\n\tGrepResultSchema,\n\tGrepSuccessSchema,\n\ttype GrepUnionResult,\n\tGrepUnionResultSchema,\n\tKvClientMessageSchema,\n\ttype KvServerMessage,\n\tListMcpResourcesExecResultSchema,\n\tListMcpResourcesSuccessSchema,\n\ttype LsDirectoryTreeNode,\n\ttype LsDirectoryTreeNode_File,\n\tLsDirectoryTreeNode_FileSchema,\n\tLsDirectoryTreeNodeSchema,\n\tLsErrorSchema,\n\tLsRejectedSchema,\n\tLsResultSchema,\n\tLsSuccessSchema,\n\tMcpAllowlistPrecheckResultSchema,\n\tMcpApprovedSchema,\n\tMcpArgsSchema,\n\tMcpErrorSchema,\n\tMcpImageContentSchema,\n\tMcpRejectedSchema,\n\tMcpResultSchema,\n\tMcpSuccessSchema,\n\tMcpTextContentSchema,\n\tMcpToolCallSchema,\n\ttype McpToolDefinition,\n\tMcpToolDefinitionSchema,\n\tMcpToolErrorSchema,\n\tMcpToolNotFoundSchema,\n\tMcpToolResultContentItemSchema,\n\tMcpToolResultSchema,\n\tModelDetailsSchema,\n\tReadErrorSchema,\n\tReadMcpResourceExecResultSchema,\n\tReadMcpResourceNotFoundSchema,\n\tReadRejectedSchema,\n\tReadResultSchema,\n\tReadSuccessSchema,\n\tRecordScreenFailureSchema,\n\tRecordScreenResultSchema,\n\tRequestContextResultSchema,\n\tRequestContextSchema,\n\tRequestContextSuccessSchema,\n\tRequestedModelSchema,\n\tResumeActionSchema,\n\tSelectedContextSchema,\n\tSelectedImageSchema,\n\tSetBlobResultSchema,\n\tShellAllowlistPrecheckResultSchema,\n\ttype ShellArgs,\n\tShellFailureSchema,\n\tShellRejectedSchema,\n\ttype ShellResult,\n\tShellResultSchema,\n\ttype ShellStream,\n\tShellStreamExitSchema,\n\tShellStreamSchema,\n\tShellStreamStartSchema,\n\tShellStreamStderrSchema,\n\tShellStreamStdoutSchema,\n\tShellSuccessSchema,\n\tSmartModeClassifierErrorSchema,\n\tSmartModeClassifierResultSchema,\n\tSubagentAwaitNotFoundSchema,\n\tSubagentAwaitResultSchema,\n\tSubagentErrorSchema,\n\tSubagentResultSchema,\n\tToolCallSchema,\n\tUserMessageActionSchema,\n\tUserMessageSchema,\n\tWebFetchAllowlistPrecheckResultSchema,\n\tWriteErrorSchema,\n\tWriteRejectedSchema,\n\tWriteResultSchema,\n\tWriteShellStdinErrorSchema,\n\tWriteShellStdinResultSchema,\n\tWriteSuccessSchema,\n} from \"./cursor-agent/gen/agent_pb.ts\";\nimport {\n\tcomposeShellCommand,\n\tomitUndefinedArgs,\n\tpiLimit,\n\tpiLsPath,\n\tpiReadArgs,\n\tpiTimeout,\n} from \"./cursor-agent/pi-args.ts\";\nimport type {\n\tCursorAgentOptions,\n\tCursorExecHandlerResult,\n\tCursorExecHandlers,\n\tCursorExecPairing,\n\tCursorMcpCall,\n\tCursorShellStreamCallbacks,\n\tCursorToolResultHandler,\n} from \"./cursor-agent/types.ts\";\n\nexport type {\n\tCursorAgentOptions,\n\tCursorExecHandlerResult,\n\tCursorExecHandlers,\n\tCursorExecPairing,\n\tCursorMcpCall,\n\tCursorPiCall,\n\tCursorShellStreamCallbacks,\n\tCursorToolResultHandler,\n} from \"./cursor-agent/types.ts\";\n\nexport const CURSOR_API_URL = \"https://api2.cursor.sh\";\nexport const CURSOR_CLIENT_VERSION = \"cli-2026.07.23-e383d2b\";\nconst EXEC_HEARTBEAT_INTERVAL_MS = 3000;\n\n/**\n * HTTP/1 connection-specific headers that HTTP/2 forbids. Node's\n * `http2.request()` throws on these rather than dropping them.\n */\nconst HTTP2_FORBIDDEN_HEADERS = new Set([\n\t\"connection\",\n\t\"keep-alive\",\n\t\"proxy-connection\",\n\t\"transfer-encoding\",\n\t\"upgrade\",\n\t\"http2-settings\",\n]);\n\n/**\n * Header names the Cursor request sets for itself. A caller copy in ANY\n * casing has to go: the spread below adds the fixed lower-case name\n * regardless, and two spellings of one field are a duplicate (node throws\n * `ERR_HTTP2_HEADER_SINGLE_VALUE`) rather than an override.\n */\nconst CURSOR_RESERVED_HEADERS = new Set([\n\t\"content-type\",\n\t\"connect-protocol-version\",\n\t\"te\",\n\t\"authorization\",\n\t\"x-ghost-mode\",\n\t\"x-cursor-client-version\",\n\t\"x-cursor-client-type\",\n\t\"x-request-id\",\n\t// Transport-owned: a plain `host` header suppresses the `:authority` node\n\t// derives from the URL, silently retargeting the request.\n\t\"host\",\n\t// The Connect body is streamed after the headers (initial frame,\n\t// heartbeats, tool responses), so no caller-supplied length can describe it.\n\t\"content-length\",\n]);\n\n/** Reduce caller-supplied headers to what this HTTP/2 request can legally carry. */\nexport function sanitizeCursorCallerHeaders(headers: Record<string, string> | undefined): Record<string, string> {\n\tconst sanitized: Record<string, string> = {};\n\tfor (const [name, value] of Object.entries(headers ?? {})) {\n\t\tconst field = name.toLowerCase();\n\t\tif (field.startsWith(\":\")) continue;\n\t\tif (HTTP2_FORBIDDEN_HEADERS.has(field)) continue;\n\t\tif (CURSOR_RESERVED_HEADERS.has(field)) continue;\n\t\tsanitized[field] = value;\n\t}\n\treturn sanitized;\n}\n\n/**\n * Text for a recognised frame this client answers with its own typed error\n * variant. Phrased as a client capability statement, not a tool failure: the\n * model reads it and should route around the capability, not retry the call.\n */\nconst NOT_IMPLEMENTED_SUFFIX = \"not implemented by this client\";\nconst NOT_IMPLEMENTED = \"Not implemented by this client\";\n/** Bare gRPC `resource_exhausted` end-streams (also inside a Connect error message). */\nconst RESOURCE_EXHAUSTED_PATTERN = /resource.?exhausted/i;\n\nconst conversationStateCache = new Map<string, ConversationStateStructure>();\nconst conversationBlobStores = new Map<string, Map<string, Uint8Array>>();\n/**\n * Base conversation id → rotated wire id. Cursor's backend can pin a\n * per-conversation rejection (bare `resource_exhausted`, zero tokens) to one\n * conversationId forever. On the first such failure the id is rotated once\n * and the cached state migrates, so the retry loop's next attempt starts a\n * fresh conversation. Keyed by the base id so a failed rotation never repeats.\n */\nconst rotatedConversationIds = new Map<string, string>();\n\nconst CONNECT_END_STREAM_FLAG = 0b00000010;\n\nfunction log(type: string, subtype?: string, data?: unknown): void {\n\tif (!process.env.DEBUG_CURSOR) return;\n\tconst verbose = process.env.DEBUG_CURSOR === \"2\" || process.env.DEBUG_CURSOR === \"verbose\";\n\tlet dataStr = \"\";\n\tif (verbose && data !== undefined) {\n\t\ttry {\n\t\t\tdataStr = ` ${JSON.stringify(data, (_key, value) => {\n\t\t\t\tif (value instanceof Uint8Array) return `bytes(${value.length})`;\n\t\t\t\tif (typeof value === \"bigint\") return value.toString();\n\t\t\t\treturn value;\n\t\t\t})?.slice(0, 500)}`;\n\t\t} catch {\n\t\t\tdataStr = \" [unserializable]\";\n\t\t}\n\t}\n\tconsole.error(`[CURSOR] ${type}${subtype ? `: ${subtype}` : \"\"}${dataStr}`);\n}\n\nexport function frameConnectMessage(data: Uint8Array, flags = 0): Buffer {\n\tconst frame = Buffer.alloc(5 + data.length);\n\tframe[0] = flags;\n\tframe.writeUInt32BE(data.length, 1);\n\tframe.set(data, 5);\n\treturn frame;\n}\n\nfunction parseConnectEndStream(data: Uint8Array): Error | null {\n\ttry {\n\t\tconst payload = JSON.parse(new TextDecoder().decode(data));\n\t\tconst error = payload?.error;\n\t\tif (error) {\n\t\t\tconst code = typeof error.code === \"string\" ? error.code : \"unknown\";\n\t\t\tconst message = typeof error.message === \"string\" ? error.message : \"Unknown error\";\n\t\t\treturn new Error(`Connect error ${code}: ${message}`);\n\t\t}\n\t\treturn null;\n\t} catch {\n\t\treturn new Error(\"Failed to parse Connect end stream\");\n\t}\n}\n\n/**\n * Maps an opaque HTTP/2 negotiation failure into an actionable error. The\n * Cursor run RPC is HTTP/2-only (the ALB rejects HTTP/1.1 with 464), so a\n * TLS-intercepting proxy that strips ALPN kills the run with no h1 fallback.\n */\nexport function mapH2TransportError(error: unknown, baseUrl: string): unknown {\n\tconst code = (error as { code?: unknown } | null)?.code;\n\tconst message = error instanceof Error ? error.message : String(error);\n\tif (code === \"ERR_HTTP2_ERROR\" && /h2 is not supported/i.test(message)) {\n\t\treturn new Error(\n\t\t\t`Cursor run transport could not negotiate HTTP/2 with ${baseUrl}: \"h2 is not supported\". ` +\n\t\t\t\t\"This host serves the run RPC over HTTP/2 only, and the TLS handshake did not negotiate \" +\n\t\t\t\t\"h2 via ALPN — typically an ALPN-stripping TLS-intercepting proxy. \" +\n\t\t\t\t\"Front the provider with a local HTTP/2 bridge and point the model's baseUrl at it.\",\n\t\t);\n\t}\n\treturn error;\n}\n\nexport const stream: StreamFunction<\"cursor-agent\", CursorAgentOptions> = (\n\tmodel: Model<\"cursor-agent\">,\n\tcontext: Context,\n\toptions?: CursorAgentOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\n\t(async () => {\n\t\tconst output: AssistantMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [],\n\t\t\tapi: \"cursor-agent\" as Api,\n\t\t\tprovider: model.provider,\n\t\t\tmodel: model.id,\n\t\t\tusage: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotalTokens: 0,\n\t\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t\t},\n\t\t\tstopReason: \"stop\",\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\t// Declared outside the `try` because BOTH exits must drain it: an exec\n\t\t// handler decoded from the last chunk can still be running when the\n\t\t// transport fails, and the error path finalizes the synthesized call\n\t\t// just like the success path does.\n\t\tconst inFlightDispatches = new Set<Promise<void>>();\n\t\t// A dispatch can spawn another, so re-check rather than awaiting one\n\t\t// snapshot. The wait is bounded by the abort signal: exec handlers have\n\t\t// no cancellation contract, so a hung tool must not hold the terminal\n\t\t// event hostage after the user already gave up on the turn.\n\t\tlet abortSettled: Promise<void> | undefined;\n\t\tconst drainInFlightDispatches = async (): Promise<void> => {\n\t\t\tconst signal = options?.signal;\n\t\t\twhile (inFlightDispatches.size > 0) {\n\t\t\t\tif (signal?.aborted) return;\n\t\t\t\tconst settled = Promise.all([...inFlightDispatches]);\n\t\t\t\tif (!signal) {\n\t\t\t\t\tawait settled;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tabortSettled ??= new Promise<void>((resolve) =>\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => resolve(), { once: true }),\n\t\t\t\t);\n\t\t\t\tawait Promise.race([settled, abortSettled]);\n\t\t\t}\n\t\t};\n\n\t\tlet h2Client: http2.ClientHttp2Session | null = null;\n\t\tlet h2Request: http2.ClientHttp2Stream | null = null;\n\t\tlet heartbeatTimer: NodeJS.Timeout | null = null;\n\t\tlet h2Settled = false;\n\t\tlet sawTurnEnded = false;\n\t\tlet endStreamError: Error | null = null;\n\t\t// Reachable from the catch: a stream that dies mid-turn must still close\n\t\t// and pair the blocks it left open.\n\t\tlet openBlockState: BlockState | undefined;\n\t\tlet resolveH2: () => void = () => {};\n\t\tlet rejectH2: (error: unknown) => void = () => {};\n\t\tconst h2Completion = new Promise<void>((resolve, reject) => {\n\t\t\tresolveH2 = resolve;\n\t\t\trejectH2 = reject;\n\t\t});\n\t\tconst settleH2 = (error?: unknown): void => {\n\t\t\tif (h2Settled) return;\n\t\t\th2Settled = true;\n\t\t\tif (error !== undefined) {\n\t\t\t\trejectH2(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (endStreamError) {\n\t\t\t\trejectH2(endStreamError);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!sawTurnEnded) {\n\t\t\t\trejectH2(new Error(\"Cursor stream ended before turnEnded\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolveH2();\n\t\t};\n\n\t\t// Hoisted out of the try block: the rotation in the catch path needs\n\t\t// both ids, and the catch block cannot see try-scoped consts.\n\t\tlet baseConversationId: string | undefined;\n\t\tlet conversationId: string | undefined;\n\t\tlet usageState: UsageState | undefined;\n\t\ttry {\n\t\t\tconst apiKey = options?.apiKey;\n\t\t\tif (!apiKey) {\n\t\t\t\tthrow new Error(\"Cursor access token is required; run /login cursor\");\n\t\t\t}\n\n\t\t\tbaseConversationId = options?.conversationId ?? options?.sessionId ?? randomUUID();\n\t\t\tconversationId = rotatedConversationIds.get(baseConversationId) ?? baseConversationId;\n\t\t\tconst blobStore = conversationBlobStores.get(conversationId) ?? new Map<string, Uint8Array>();\n\t\t\tconversationBlobStores.set(conversationId, blobStore);\n\t\t\tconst cachedState = conversationStateCache.get(conversationId);\n\t\t\tconst { requestBytes, conversationState } = await buildGrpcRequest(model, context, options, {\n\t\t\t\tconversationId,\n\t\t\t\tblobStore,\n\t\t\t\tconversationState: cachedState,\n\t\t\t});\n\t\t\tconversationStateCache.set(conversationId, conversationState);\n\t\t\tconst requestContextTools = buildMcpToolDefinitions(context.tools);\n\n\t\t\tconst baseUrl = model.baseUrl || CURSOR_API_URL;\n\t\t\tconst requestPath = \"/agent.v1.AgentService/Run\";\n\t\t\t// Caller headers are additive, and are spread FIRST so the protocol\n\t\t\t// framing, auth, and request id below always win.\n\t\t\tconst callerHeaders = sanitizeCursorCallerHeaders(providerHeadersToRecord(options?.headers));\n\t\t\tconst requestHeaders = {\n\t\t\t\t...callerHeaders,\n\t\t\t\t\":method\": \"POST\",\n\t\t\t\t\":path\": requestPath,\n\t\t\t\t\"content-type\": \"application/connect+proto\",\n\t\t\t\t\"connect-protocol-version\": \"1\",\n\t\t\t\tte: \"trailers\",\n\t\t\t\tauthorization: `Bearer ${apiKey}`,\n\t\t\t\t\"x-ghost-mode\": \"true\",\n\t\t\t\t\"x-cursor-client-version\": CURSOR_CLIENT_VERSION,\n\t\t\t\t\"x-cursor-client-type\": \"cli\",\n\t\t\t\t\"x-request-id\": randomUUID(),\n\t\t\t};\n\n\t\t\th2Client = http2.connect(baseUrl);\n\t\t\th2Client.on(\"error\", (error) => settleH2(mapH2TransportError(error, baseUrl)));\n\n\t\t\th2Request = h2Client.request(requestHeaders);\n\n\t\t\tstream.push({ type: \"start\", partial: output });\n\n\t\t\tlet pendingBuffer: Buffer = Buffer.alloc(0);\n\t\t\tlet currentTextBlock: (TextContent & { [kStreamingBlockIndex]: number }) | null = null;\n\t\t\tlet currentThinkingBlock: (ThinkingContent & { [kStreamingBlockIndex]: number }) | null = null;\n\t\t\tlet currentToolCall: ToolCallState | null = null;\n\t\t\tconst resolvedMcpToolCallIds = new Set<string>();\n\t\t\tusageState = { sawTokenDelta: false };\n\n\t\t\tconst state: BlockState = {\n\t\t\t\tget currentTextBlock() {\n\t\t\t\t\treturn currentTextBlock;\n\t\t\t\t},\n\t\t\t\tget currentThinkingBlock() {\n\t\t\t\t\treturn currentThinkingBlock;\n\t\t\t\t},\n\t\t\t\tget currentToolCall() {\n\t\t\t\t\treturn currentToolCall;\n\t\t\t\t},\n\t\t\t\topenToolCalls: new Map<string, ToolCallState>(),\n\t\t\t\tresolvedMcpToolCallIds,\n\t\t\t\tsetTextBlock: (b) => {\n\t\t\t\t\tcurrentTextBlock = b;\n\t\t\t\t},\n\t\t\t\tsetThinkingBlock: (b) => {\n\t\t\t\t\tcurrentThinkingBlock = b;\n\t\t\t\t},\n\t\t\t\tsetToolCall: (t) => {\n\t\t\t\t\tcurrentToolCall = t;\n\t\t\t\t},\n\t\t\t\tonToolResult: options?.onToolResult ?? options?.execHandlers?.onToolResult,\n\t\t\t};\n\t\t\topenBlockState = state;\n\n\t\t\tconst onConversationCheckpoint = (checkpoint: ConversationStateStructure) => {\n\t\t\t\tconversationStateCache.set(conversationId!, checkpoint);\n\t\t\t};\n\n\t\t\th2Request.on(\"data\", (chunk: Buffer) => {\n\t\t\t\t// Steady state drains fully per chunk; alias the fresh h2 chunk\n\t\t\t\t// instead of copying it through Buffer.concat.\n\t\t\t\tpendingBuffer = pendingBuffer.length === 0 ? chunk : Buffer.concat([pendingBuffer, chunk]);\n\n\t\t\t\twhile (pendingBuffer.length >= 5) {\n\t\t\t\t\tconst flags = pendingBuffer[0];\n\t\t\t\t\tconst msgLen = pendingBuffer.readUInt32BE(1);\n\t\t\t\t\tif (pendingBuffer.length < 5 + msgLen) break;\n\n\t\t\t\t\tconst messageBytes = pendingBuffer.subarray(5, 5 + msgLen);\n\t\t\t\t\tpendingBuffer = pendingBuffer.subarray(5 + msgLen);\n\n\t\t\t\t\tif (flags & CONNECT_END_STREAM_FLAG) {\n\t\t\t\t\t\tconst endError = parseConnectEndStream(messageBytes);\n\t\t\t\t\t\tif (endError) {\n\t\t\t\t\t\t\tendStreamError = endError;\n\t\t\t\t\t\t\th2Request?.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst serverMessage = fromBinary(AgentServerMessageSchema, messageBytes);\n\t\t\t\t\t\tconst isTurnEnded =\n\t\t\t\t\t\t\tserverMessage.message.case === \"interactionUpdate\" &&\n\t\t\t\t\t\t\tserverMessage.message.value.message?.case === \"turnEnded\";\n\t\t\t\t\t\t// Dispatch is fire-and-forget so the socket keeps draining\n\t\t\t\t\t\t// while a handler runs, but the promise is tracked: `done`\n\t\t\t\t\t\t// must not be pushed while an exec handler is still resolving,\n\t\t\t\t\t\t// or the buffered tool result is delivered after the turn\n\t\t\t\t\t\t// already finalized and the call is left unpaired.\n\t\t\t\t\t\tconst dispatch = handleServerMessage(\n\t\t\t\t\t\t\tserverMessage,\n\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\tstream,\n\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\tblobStore,\n\t\t\t\t\t\t\th2Request!,\n\t\t\t\t\t\t\toptions?.execHandlers,\n\t\t\t\t\t\t\tstate.onToolResult,\n\t\t\t\t\t\t\tusageState!,\n\t\t\t\t\t\t\trequestContextTools,\n\t\t\t\t\t\t\tonConversationCheckpoint,\n\t\t\t\t\t\t).catch((error) => {\n\t\t\t\t\t\t\tlog(\"error\", \"handleServerMessage\", { error: String(error) });\n\t\t\t\t\t\t});\n\t\t\t\t\t\tinFlightDispatches.add(dispatch);\n\t\t\t\t\t\tvoid dispatch.finally(() => inFlightDispatches.delete(dispatch));\n\n\t\t\t\t\t\t// Application completion is not protocol success; wait for a\n\t\t\t\t\t\t// clean HTTP/2 end.\n\t\t\t\t\t\tif (isTurnEnded) {\n\t\t\t\t\t\t\tsawTurnEnded = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tlog(\"error\", \"parseServerMessage\", { error: String(e) });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst sendHeartbeat = () => {\n\t\t\t\tif (!h2Request || h2Request.closed) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst heartbeatMessage = create(AgentClientMessageSchema, {\n\t\t\t\t\tmessage: { case: \"clientHeartbeat\", value: create(ClientHeartbeatSchema, {}) },\n\t\t\t\t});\n\t\t\t\tconst heartbeatBytes = toBinary(AgentClientMessageSchema, heartbeatMessage);\n\t\t\t\th2Request.write(frameConnectMessage(heartbeatBytes));\n\t\t\t};\n\n\t\t\th2Request.on(\"trailers\", (trailers) => {\n\t\t\t\tconst status = trailers[\"grpc-status\"];\n\t\t\t\tconst msg = trailers[\"grpc-message\"];\n\t\t\t\tif (status && status !== \"0\" && !endStreamError) {\n\t\t\t\t\tendStreamError = new Error(`gRPC error ${status}: ${decodeURIComponent(String(msg || \"\"))}`);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\th2Request.on(\"end\", () => {\n\t\t\t\tsettleH2();\n\t\t\t});\n\n\t\t\th2Request.on(\"error\", (error) => {\n\t\t\t\tsettleH2(mapH2TransportError(error, baseUrl));\n\t\t\t});\n\n\t\t\tif (options?.signal) {\n\t\t\t\toptions.signal.addEventListener(\"abort\", () => {\n\t\t\t\t\th2Request?.close();\n\t\t\t\t\tsettleH2(new Error(\"Request was aborted\"));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\th2Request.write(frameConnectMessage(requestBytes));\n\t\t\theartbeatTimer = setInterval(sendHeartbeat, 5000);\n\t\t\tawait h2Completion;\n\t\t\t// The transport is done, but a handler decoded from the last chunk\n\t\t\t// may still be running. Pushing `done` now would let the host drain\n\t\t\t// its buffered tool results before such a handler reserved its entry,\n\t\t\t// leaving the call unpaired and stripped from rebuilt transcripts.\n\t\t\tawait drainInFlightDispatches();\n\n\t\t\tendCurrentTextBlock(output, stream, state);\n\t\t\tendCurrentThinkingBlock(output, stream, state);\n\t\t\tflushOpenToolCalls(output, stream, state);\n\n\t\t\tcalculateCost(model, output.usage);\n\n\t\t\tstream.push({\n\t\t\t\ttype: \"done\",\n\t\t\t\treason: output.stopReason as \"stop\" | \"length\" | \"toolUse\",\n\t\t\t\tmessage: output,\n\t\t\t});\n\t\t\tstream.end();\n\t\t} catch (error) {\n\t\t\t// Same reason as the success path: a handler still running would land\n\t\t\t// its real result after the turn finalized and be discarded — even\n\t\t\t// though the tool may already have run side effects. On abort the\n\t\t\t// drain returns immediately.\n\t\t\tawait drainInFlightDispatches();\n\t\t\t// A stream that dies mid-turn leaves blocks open. Closing them here\n\t\t\t// settles their live cards and pairs the server-owned calls that\n\t\t\t// nothing else answers — an unpaired call is stripped from every\n\t\t\t// rebuilt transcript.\n\t\t\tif (openBlockState) {\n\t\t\t\tendCurrentTextBlock(output, stream, openBlockState);\n\t\t\t\tendCurrentThinkingBlock(output, stream, openBlockState);\n\t\t\t\tflushOpenToolCalls(output, stream, openBlockState);\n\t\t\t}\n\t\t\tconst message = error instanceof Error ? error.message : JSON.stringify(error);\n\t\t\t// A server-side per-conversation rejection surfaces as a bare\n\t\t\t// resource_exhausted with zero tokens — the conversation is poisoned,\n\t\t\t// not the account. Rotate the wire id once and migrate cached state\n\t\t\t// so the caller's retry loop starts a fresh conversation.\n\t\t\tif (\n\t\t\t\tconversationId !== undefined &&\n\t\t\t\tbaseConversationId !== undefined &&\n\t\t\t\tusageState !== undefined &&\n\t\t\t\t!usageState.sawTokenDelta &&\n\t\t\t\tRESOURCE_EXHAUSTED_PATTERN.test(message) &&\n\t\t\t\t!rotatedConversationIds.has(baseConversationId)\n\t\t\t) {\n\t\t\t\tconst rotated = randomUUID();\n\t\t\t\trotatedConversationIds.set(baseConversationId, rotated);\n\t\t\t\tconst cached = conversationStateCache.get(conversationId);\n\t\t\t\tif (cached) conversationStateCache.set(rotated, cached);\n\t\t\t\tconst blobs = conversationBlobStores.get(conversationId);\n\t\t\t\tif (blobs) conversationBlobStores.set(rotated, blobs);\n\t\t\t}\n\t\t\toutput.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\t\t\toutput.errorMessage = message;\n\t\t\tstream.push({ type: \"error\", reason: output.stopReason, error: output });\n\t\t\tstream.end();\n\t\t} finally {\n\t\t\tif (heartbeatTimer) {\n\t\t\t\tclearInterval(heartbeatTimer);\n\t\t\t\theartbeatTimer = null;\n\t\t\t}\n\t\t\th2Request?.close();\n\t\t\th2Client?.close();\n\t\t}\n\t})();\n\n\treturn stream;\n};\n\n/**\n * `streamSimple` for Cursor: reasoning/thinking is managed server-side per\n * model (there is no client thinking knob on the Run request), so the simple\n * options map through unchanged.\n */\nexport const streamSimple: StreamFunction<\"cursor-agent\", SimpleStreamOptions> = (\n\tmodel: Model<\"cursor-agent\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\treturn stream(model, context, options as CursorAgentOptions);\n};\n\nexport type ToolCallState = ToolCall & {\n\t[kStreamingBlockIndex]: number;\n\t[kStreamingPartialJson]?: string;\n\t[kStreamingLastParseLen]?: number;\n\t[kStreamingBlockKind]: \"mcp\" | \"todo\" | \"cursor-exec\" | \"connect-scm\";\n\t[kStreamingEnvelopeId]?: string;\n\t[kCursorExecResolved]?: true;\n};\n\nexport interface BlockState {\n\tcurrentTextBlock: (TextContent & { [kStreamingBlockIndex]: number }) | null;\n\tcurrentThinkingBlock: (ThinkingContent & { [kStreamingBlockIndex]: number }) | null;\n\tcurrentToolCall: ToolCallState | null;\n\t/**\n\t * Open streamed tool-call blocks, keyed by the interaction envelope's\n\t * `call_id`. Cursor interleaves calls: two `toolCallStarted` frames can\n\t * arrive before either completes.\n\t */\n\topenToolCalls: Map<string, ToolCallState>;\n\t/** MCP call IDs synthesized from exec frames before their redundant streamed block arrives. */\n\tresolvedMcpToolCallIds: Set<string>;\n\tsetTextBlock: (b: (TextContent & { [kStreamingBlockIndex]: number }) | null) => void;\n\tsetThinkingBlock: (b: (ThinkingContent & { [kStreamingBlockIndex]: number }) | null) => void;\n\tsetToolCall: (t: ToolCallState | null) => void;\n\t/**\n\t * Persist a paired `toolResult` for a server-resolved call. Native todo\n\t * calls never travel the exec channel, so without this the resolved block\n\t * has no matching result and every transcript rebuild strips it as dangling.\n\t */\n\tonToolResult?: CursorToolResultHandler;\n}\n\nfunction markCursorExecResolved(block: CursorExecResolvedCarrier): void {\n\tblock[kCursorExecResolved] = true;\n}\n\nexport interface UsageState {\n\tsawTokenDelta: boolean;\n}\n\n/** Exported for tests: drives one Cursor server message through the stream (exec waits mark the stream busy). */\nexport async function handleServerMessage(\n\tmsg: AgentServerMessage,\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n\tblobStore: Map<string, Uint8Array>,\n\th2Request: http2.ClientHttp2Stream,\n\texecHandlers: CursorExecHandlers | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n\tusageState: UsageState,\n\trequestContextTools: McpToolDefinition[],\n\tonConversationCheckpoint?: (checkpoint: ConversationStateStructure) => void,\n): Promise<void> {\n\tconst msgCase = msg.message.case;\n\n\tlog(\"serverMessage\", msgCase);\n\n\tif (msgCase === \"interactionUpdate\") {\n\t\tprocessInteractionUpdate(msg.message.value, output, stream, state, usageState);\n\t} else if (msgCase === \"kvServerMessage\") {\n\t\thandleKvServerMessage(msg.message.value as KvServerMessage, blobStore, h2Request);\n\t} else if (msgCase === \"execServerMessage\") {\n\t\t// The server is waiting on OUR local tool result during this window — no\n\t\t// AssistantMessageEvent flows until the handler finishes. Mark the wait\n\t\t// as local work so idle watchdogs attribute the silence to the tool run\n\t\t// instead of aborting a healthy stream.\n\t\tawait stream.trackLocalWork(\n\t\t\thandleExecServerMessage(\n\t\t\t\tmsg.message.value as ExecServerMessage,\n\t\t\t\th2Request,\n\t\t\t\texecHandlers,\n\t\t\t\tonToolResult,\n\t\t\t\trequestContextTools,\n\t\t\t\toutput,\n\t\t\t\tstream,\n\t\t\t\tstate,\n\t\t\t),\n\t\t);\n\t} else if (msgCase === \"conversationCheckpointUpdate\") {\n\t\tonConversationCheckpoint?.(msg.message.value);\n\t}\n}\n\nfunction handleKvServerMessage(\n\tkvMsg: KvServerMessage,\n\tblobStore: Map<string, Uint8Array>,\n\th2Request: http2.ClientHttp2Stream,\n): void {\n\tconst kvCase = kvMsg.message.case;\n\n\tif (kvCase === \"getBlobArgs\") {\n\t\tconst blobId = kvMsg.message.value.blobId;\n\t\tconst blobIdKey = Buffer.from(blobId).toString(\"hex\");\n\t\tconst blobData = blobStore.get(blobIdKey);\n\t\tconst response = create(KvClientMessageSchema, {\n\t\t\tid: kvMsg.id,\n\t\t\tmessage: {\n\t\t\t\tcase: \"getBlobResult\",\n\t\t\t\tvalue: create(GetBlobResultSchema, blobData ? { blobData } : {}),\n\t\t\t},\n\t\t});\n\t\tconst kvClientMessage = create(AgentClientMessageSchema, {\n\t\t\tmessage: { case: \"kvClientMessage\", value: response },\n\t\t});\n\t\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, kvClientMessage)));\n\t\tlog(\"kvClient\", \"getBlobResult\", { blobId: blobIdKey.slice(0, 40) });\n\t} else if (kvCase === \"setBlobArgs\") {\n\t\tconst { blobId, blobData } = kvMsg.message.value;\n\t\tconst blobIdKey = Buffer.from(blobId).toString(\"hex\");\n\t\tblobStore.set(blobIdKey, blobData);\n\t\tconst response = create(KvClientMessageSchema, {\n\t\t\tid: kvMsg.id,\n\t\t\tmessage: {\n\t\t\t\tcase: \"setBlobResult\",\n\t\t\t\tvalue: create(SetBlobResultSchema, {}),\n\t\t\t},\n\t\t});\n\t\tconst kvClientMessage = create(AgentClientMessageSchema, {\n\t\t\tmessage: { case: \"kvClientMessage\", value: response },\n\t\t});\n\t\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, kvClientMessage)));\n\t\tlog(\"kvClient\", \"setBlobResult\", { blobId: blobIdKey.slice(0, 40) });\n\t}\n}\n\nfunction sendShellStreamEvent(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\tevent: ShellStream[\"event\"],\n): void {\n\tsendExecClientMessage(h2Request, execMsg, \"shellStream\", create(ShellStreamSchema, { event }));\n}\n\nfunction sanitizeShellExecResult(execResult: ShellResult): ShellResult {\n\tconst result = execResult.result;\n\tif (!result) return execResult;\n\n\tswitch (result.case) {\n\t\tcase \"success\":\n\t\tcase \"failure\": {\n\t\t\tconst value = result.value;\n\t\t\treturn {\n\t\t\t\t...execResult,\n\t\t\t\tresult: {\n\t\t\t\t\tcase: result.case,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstdout: value.stdout ? sanitizeSurrogates(value.stdout) : value.stdout,\n\t\t\t\t\t\tstderr: value.stderr ? sanitizeSurrogates(value.stderr) : value.stderr,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} as ShellResult;\n\t\t}\n\t\tdefault:\n\t\t\treturn execResult;\n\t}\n}\n\nasync function handleShellStreamArgs(\n\targs: ShellArgs,\n\texecMsg: ExecServerMessage,\n\th2Request: http2.ClientHttp2Stream,\n\texecHandlers: CursorExecHandlers | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n): Promise<void> {\n\tconst normalizedWorkingDirectory = args.workingDirectory || process.cwd();\n\tconst normalizedArgs: ShellArgs = { ...args, workingDirectory: normalizedWorkingDirectory };\n\n\tsendShellStreamEvent(h2Request, execMsg, { case: \"start\", value: create(ShellStreamStartSchema, {}) });\n\n\t// Buffer for incomplete ANSI sequences across chunks.\n\tlet stdoutBuffer = \"\";\n\tlet stderrBuffer = \"\";\n\n\tconst incompleteEscapeRegex = /\\x1b(|\\[|\\[\\d*|\\[\\?|\\[\\?\\d*|\\]\\d*;?)$/;\n\n\tconst flushStdout = () => {\n\t\tif (stdoutBuffer) {\n\t\t\tlet safeEnd = stdoutBuffer.length;\n\t\t\tconst match = stdoutBuffer.match(incompleteEscapeRegex);\n\t\t\tif (match && match[0].length > 0) {\n\t\t\t\tsafeEnd = stdoutBuffer.length - match[0].length;\n\t\t\t}\n\t\t\tconst toSend = stdoutBuffer.slice(0, safeEnd);\n\t\t\tconst remaining = stdoutBuffer.slice(safeEnd);\n\t\t\tif (toSend) {\n\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\tcase: \"stdout\",\n\t\t\t\t\tvalue: create(ShellStreamStdoutSchema, { data: sanitizeSurrogates(toSend) }),\n\t\t\t\t});\n\t\t\t}\n\t\t\tstdoutBuffer = remaining;\n\t\t}\n\t};\n\n\tconst flushStderr = () => {\n\t\tif (stderrBuffer) {\n\t\t\tlet safeEnd = stderrBuffer.length;\n\t\t\tconst match = stderrBuffer.match(incompleteEscapeRegex);\n\t\t\tif (match && match[0].length > 0) {\n\t\t\t\tsafeEnd = stderrBuffer.length - match[0].length;\n\t\t\t}\n\t\t\tconst toSend = stderrBuffer.slice(0, safeEnd);\n\t\t\tconst remaining = stderrBuffer.slice(safeEnd);\n\t\t\tif (toSend) {\n\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\tcase: \"stderr\",\n\t\t\t\t\tvalue: create(ShellStreamStderrSchema, { data: sanitizeSurrogates(toSend) }),\n\t\t\t\t});\n\t\t\t}\n\t\t\tstderrBuffer = remaining;\n\t\t}\n\t};\n\n\tlet stdoutFlushTimer: NodeJS.Timeout | null = null;\n\tlet stderrFlushTimer: NodeJS.Timeout | null = null;\n\n\tconst scheduleStdoutFlush = () => {\n\t\tif (!stdoutFlushTimer) {\n\t\t\tstdoutFlushTimer = setTimeout(() => {\n\t\t\t\tstdoutFlushTimer = null;\n\t\t\t\tflushStdout();\n\t\t\t}, 100);\n\t\t}\n\t};\n\n\tconst scheduleStderrFlush = () => {\n\t\tif (!stderrFlushTimer) {\n\t\t\tstderrFlushTimer = setTimeout(() => {\n\t\t\t\tstderrFlushTimer = null;\n\t\t\t\tflushStderr();\n\t\t\t}, 100);\n\t\t}\n\t};\n\n\tconst streamCallbacks: CursorShellStreamCallbacks = {\n\t\tonStdout(data: string) {\n\t\t\tstdoutBuffer += data;\n\t\t\tif (stdoutBuffer.includes(\"\\n\") || stdoutBuffer.length > 4096) {\n\t\t\t\tif (stdoutFlushTimer) {\n\t\t\t\t\tclearTimeout(stdoutFlushTimer);\n\t\t\t\t\tstdoutFlushTimer = null;\n\t\t\t\t}\n\t\t\t\tflushStdout();\n\t\t\t} else {\n\t\t\t\tscheduleStdoutFlush();\n\t\t\t}\n\t\t},\n\t\tonStderr(data: string) {\n\t\t\tstderrBuffer += data;\n\t\t\tif (stderrBuffer.includes(\"\\n\") || stderrBuffer.length > 4096) {\n\t\t\t\tif (stderrFlushTimer) {\n\t\t\t\t\tclearTimeout(stderrFlushTimer);\n\t\t\t\t\tstderrFlushTimer = null;\n\t\t\t\t}\n\t\t\t\tflushStderr();\n\t\t\t} else {\n\t\t\t\tscheduleStderrFlush();\n\t\t\t}\n\t\t},\n\t};\n\n\t// Prefer the streaming handler — it forwards output chunks in real time.\n\tconst streamHandler = execHandlers?.shellStream?.bind(execHandlers);\n\tconst batchHandler = execHandlers?.shell?.bind(execHandlers);\n\tconst handler = streamHandler ? (shellArgs: ShellArgs) => streamHandler(shellArgs, streamCallbacks) : batchHandler;\n\n\tconst { execResult } = await resolveExecHandler(\n\t\tnormalizedArgs,\n\t\thandler as typeof batchHandler,\n\t\tonToolResult,\n\t\t(toolResult) => buildShellResultFromToolResult(normalizedArgs, toolResult),\n\t\t(reason) => buildShellRejectedResult(normalizedArgs.command, normalizedArgs.workingDirectory, reason),\n\t\t(error) => buildShellFailureResult(normalizedArgs.command, normalizedArgs.workingDirectory, error),\n\t\t{ toolCallId: args.toolCallId, toolName: \"bash\" },\n\t);\n\n\t// When using the batch handler (no shellStream), send buffered stdout/stderr\n\t// after execution completes. With shellStream these were already sent live.\n\tconst sendBufferedOutput = !streamHandler;\n\tconst sanitizedExecResult = sanitizeShellExecResult(execResult);\n\n\tif (stdoutFlushTimer) clearTimeout(stdoutFlushTimer);\n\tif (stderrFlushTimer) clearTimeout(stderrFlushTimer);\n\tflushStdout();\n\tflushStderr();\n\n\tsendShellStreamExitFromResult(h2Request, execMsg, sanitizedExecResult, sendBufferedOutput);\n\t// Cursor can keep the turn pending when it receives only stream deltas.\n\t// Send the final structured shellResult as completion acknowledgement.\n\tsendExecClientMessage(h2Request, execMsg, \"shellResult\", sanitizedExecResult);\n}\n\nfunction sendShellStreamExitFromResult(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\texecResult: ShellResult,\n\tsendBufferedOutput: boolean,\n): void {\n\tconst result = execResult.result;\n\tswitch (result.case) {\n\t\tcase \"success\": {\n\t\t\tconst value = result.value;\n\t\t\tif (sendBufferedOutput) {\n\t\t\t\tif (value.stdout) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stdout\",\n\t\t\t\t\t\tvalue: create(ShellStreamStdoutSchema, { data: sanitizeSurrogates(value.stdout) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value.stderr) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stderr\",\n\t\t\t\t\t\tvalue: create(ShellStreamStderrSchema, { data: sanitizeSurrogates(value.stderr) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: value.exitCode,\n\t\t\t\t\tcwd: value.workingDirectory,\n\t\t\t\t\taborted: false,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"failure\": {\n\t\t\tconst value = result.value;\n\t\t\tif (sendBufferedOutput) {\n\t\t\t\tif (value.stdout) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stdout\",\n\t\t\t\t\t\tvalue: create(ShellStreamStdoutSchema, { data: sanitizeSurrogates(value.stdout) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value.stderr) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stderr\",\n\t\t\t\t\t\tvalue: create(ShellStreamStderrSchema, { data: sanitizeSurrogates(value.stderr) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: value.exitCode,\n\t\t\t\t\tcwd: value.workingDirectory,\n\t\t\t\t\taborted: value.aborted,\n\t\t\t\t\tabortReason: value.abortReason,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"rejected\": {\n\t\t\tsendShellStreamEvent(h2Request, execMsg, { case: \"rejected\", value: result.value });\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: 1,\n\t\t\t\t\tcwd: result.value.workingDirectory,\n\t\t\t\t\taborted: false,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"timeout\": {\n\t\t\tconst value = result.value;\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"stderr\",\n\t\t\t\tvalue: create(ShellStreamStderrSchema, {\n\t\t\t\t\tdata: `Command timed out after ${value.timeoutMs}ms`,\n\t\t\t\t}),\n\t\t\t});\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: 1,\n\t\t\t\t\tcwd: value.workingDirectory,\n\t\t\t\t\taborted: true,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"permissionDenied\": {\n\t\t\tsendShellStreamEvent(h2Request, execMsg, { case: \"permissionDenied\", value: result.value });\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: 1,\n\t\t\t\t\tcwd: result.value.workingDirectory,\n\t\t\t\t\taborted: false,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tdefault:\n\t\t\treturn;\n\t}\n}\n\ntype ExecDispatchContext = {\n\treadonly execMsg: ExecServerMessage;\n\treadonly h2Request: http2.ClientHttp2Stream;\n\treadonly execHandlers: CursorExecHandlers | undefined;\n\treadonly onToolResult: CursorToolResultHandler | undefined;\n\treadonly requestContextTools: McpToolDefinition[];\n\treadonly output: AssistantMessage;\n\treadonly stream: AssistantMessageEventStream;\n\treadonly state: BlockState;\n};\n\nasync function handleExecServerMessage(\n\texecMsg: ExecServerMessage,\n\th2Request: http2.ClientHttp2Stream,\n\texecHandlers: CursorExecHandlers | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n\trequestContextTools: McpToolDefinition[],\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n): Promise<void> {\n\tconst execCase = execMsg.message.case;\n\tlog(\"exec\", \"dispatch\", { execCase, execId: execMsg.execId, hasHandlers: !!execHandlers });\n\tif (!execCase) {\n\t\t// A frame carrying a oneof number this build's `agent.proto` does not\n\t\t// model at all. Returning silently strands the exec id — the server\n\t\t// waits on a reply that never comes.\n\t\tlog(\"warn\", \"unknownExecVariant\", { id: execMsg.id, execId: execMsg.execId });\n\t\tsendExecClientThrow(h2Request, execMsg, \"Unknown exec message variant\", \"unknown_exec_variant\");\n\t\tsendExecClientStreamClose(h2Request, execMsg);\n\t\treturn;\n\t}\n\n\tconst stopExecHeartbeat = armCursorExecHeartbeat(h2Request, execMsg);\n\ttry {\n\t\tawait dispatchExecServerMessage({\n\t\t\texecMsg,\n\t\t\th2Request,\n\t\t\texecHandlers,\n\t\t\tonToolResult,\n\t\t\trequestContextTools,\n\t\t\toutput,\n\t\t\tstream,\n\t\t\tstate,\n\t\t});\n\t} catch (error) {\n\t\tlog(\"error\", \"execDispatch\", {\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\tid: execMsg.id,\n\t\t\texecId: execMsg.execId,\n\t\t});\n\t\tsendExecClientThrow(h2Request, execMsg, \"Local exec dispatch failed\", \"exec_dispatch_failed\");\n\t} finally {\n\t\tstopExecHeartbeat();\n\t\tsendExecClientStreamClose(h2Request, execMsg);\n\t}\n}\n\nasync function dispatchExecServerMessage(context: ExecDispatchContext): Promise<void> {\n\tconst { execMsg, h2Request, execHandlers, onToolResult, requestContextTools, output, stream, state } = context;\n\tconst execCase = execMsg.message.case;\n\tif (!execCase) throw new Error(\"Expected a recognized exec message\");\n\tif (execCase === \"requestContextArgs\") {\n\t\tconst requestContext = create(RequestContextSchema, {\n\t\t\trules: [],\n\t\t\trepositoryInfo: [],\n\t\t\ttools: requestContextTools,\n\t\t\tgitRepos: [],\n\t\t\tprojectLayouts: [],\n\t\t\tmcpInstructions: [],\n\t\t\tfileContents: {},\n\t\t\tcustomSubagents: [],\n\t\t});\n\n\t\tconst requestContextResult = create(RequestContextResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"success\",\n\t\t\t\tvalue: create(RequestContextSuccessSchema, { requestContext }),\n\t\t\t},\n\t\t});\n\n\t\tsendExecClientMessage(h2Request, execMsg, \"requestContextResult\", requestContextResult);\n\t\treturn;\n\t}\n\n\tswitch (execCase) {\n\t\tcase \"readArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"read\", {\n\t\t\t\tpath: args.path,\n\t\t\t\toffset: args.offset,\n\t\t\t\tlimit: args.limit,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.read?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) =>\n\t\t\t\t\tbuildReadResultFromToolResult(\n\t\t\t\t\t\targs.path,\n\t\t\t\t\t\ttoolResult,\n\t\t\t\t\t\targs.offset !== undefined || args.limit !== undefined,\n\t\t\t\t\t),\n\t\t\t\t(reason) => buildReadRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildReadErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"read\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"readResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"lsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\t// The bridge maps `ls` onto the local `ls` tool; mirror that here so\n\t\t\t// the synthesized block matches the toolResult's `toolName`.\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"ls\", { path: piLsPath(args.path) });\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.ls?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildLsResultFromToolResult(args.path, toolResult),\n\t\t\t\t(reason) => buildLsRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildLsErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"ls\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"lsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"grepArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\t// Cursor's model sometimes emits `grepArgs` with an empty `pattern`\n\t\t\t// and a non-empty `glob`, expecting grep to list files matching the\n\t\t\t// glob. Reject that up front with an actionable error.\n\t\t\tconst emptyPatternError = emptyGrepPatternRejection(args.pattern, args.glob);\n\t\t\tif (emptyPatternError !== null) {\n\t\t\t\tsendExecClientMessage(h2Request, execMsg, \"grepResult\", buildGrepErrorResult(emptyPatternError));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Mirror the coding-agent bridge's arg mapping so live UI (from\n\t\t\t// `tool_execution_start`) and rebuilt transcript display identical args.\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"grep\", {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || undefined,\n\t\t\t\tglob: args.glob || undefined,\n\t\t\t\tignoreCase: args.caseInsensitive === true ? true : undefined,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.grep?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildGrepResultFromToolResult(args, toolResult),\n\t\t\t\t(reason) => buildGrepErrorResult(reason),\n\t\t\t\t(error) => buildGrepErrorResult(error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"grep\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"grepResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"writeArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\t// Match the bridge: prefer `fileText`, fall back to decoded `fileBytes`.\n\t\t\tconst content = args.fileText ?? new TextDecoder().decode(args.fileBytes ?? new Uint8Array());\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"write\", {\n\t\t\t\tpath: args.path,\n\t\t\t\tcontent,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.write?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) =>\n\t\t\t\t\tbuildWriteResultFromToolResult(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: args.path,\n\t\t\t\t\t\t\tfileText: args.fileText,\n\t\t\t\t\t\t\tfileBytes: args.fileBytes,\n\t\t\t\t\t\t\treturnFileContentAfterWrite: args.returnFileContentAfterWrite,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttoolResult,\n\t\t\t\t\t),\n\t\t\t\t(reason) => buildWriteRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildWriteErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"write\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"writeResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"deleteArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"delete\", { path: args.path });\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.delete?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildDeleteResultFromToolResult(args.path, toolResult),\n\t\t\t\t(reason) => buildDeleteRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildDeleteErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"delete\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"deleteResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"shellArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst normalizedArgs: ShellArgs = { ...args, workingDirectory: args.workingDirectory || process.cwd() };\n\t\t\tconst shellTimeout = args.timeout && args.timeout > 0 ? args.timeout : undefined;\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"bash\", {\n\t\t\t\tcommand: composeShellCommand(args.command, args.workingDirectory || undefined),\n\t\t\t\ttimeout: shellTimeout,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\tnormalizedArgs,\n\t\t\t\texecHandlers?.shell?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildShellResultFromToolResult(normalizedArgs, toolResult),\n\t\t\t\t(reason) => buildShellRejectedResult(normalizedArgs.command, normalizedArgs.workingDirectory, reason),\n\t\t\t\t(error) => buildShellFailureResult(normalizedArgs.command, normalizedArgs.workingDirectory, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"bash\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"shellResult\", sanitizeShellExecResult(execResult));\n\t\t\treturn;\n\t\t}\n\t\tcase \"shellStreamArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst shellStreamTimeout = args.timeout && args.timeout > 0 ? args.timeout : undefined;\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"bash\", {\n\t\t\t\tcommand: composeShellCommand(args.command, args.workingDirectory || undefined),\n\t\t\t\ttimeout: shellStreamTimeout,\n\t\t\t});\n\t\t\tawait handleShellStreamArgs(args, execMsg, h2Request, execHandlers, onToolResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"backgroundShellSpawnArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(BackgroundShellSpawnResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"rejected\",\n\t\t\t\t\tvalue: create(ShellRejectedSchema, {\n\t\t\t\t\t\tcommand: args.command,\n\t\t\t\t\t\tworkingDirectory: args.workingDirectory,\n\t\t\t\t\t\treason: \"Not implemented\",\n\t\t\t\t\t\tisReadonly: false,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"backgroundShellSpawnResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"writeShellStdinArgs\": {\n\t\t\tconst execResult = create(WriteShellStdinResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(WriteShellStdinErrorSchema, {\n\t\t\t\t\t\terror: \"Not implemented\",\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"writeShellStdinResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"fetchArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(FetchResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(FetchErrorSchema, {\n\t\t\t\t\t\turl: args.url,\n\t\t\t\t\t\terror: \"Not implemented\",\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"fetchResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"diagnosticsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.diagnostics?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildDiagnosticsResultFromToolResult(args.path, toolResult),\n\t\t\t\t(reason) => buildDiagnosticsRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildDiagnosticsErrorResult(args.path, error),\n\t\t\t\t// senpi has no local diagnostics tool; the frame is answered with a\n\t\t\t\t// refusal and no block is synthesized (nothing ran).\n\t\t\t\tnull,\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"diagnosticsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"mcpArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst mcpCall = decodeMcpCall(args);\n\t\t\t// An approval probe, not an invocation: the frame asks whether the\n\t\t\t// call would be permitted. Only a definite allow is approved; without\n\t\t\t// a handler there is nothing to decide with, so it is refused. Either\n\t\t\t// way no block is synthesized — nothing ran.\n\t\t\tif (mcpCall.approvalOnly) {\n\t\t\t\tconst approved = (await execHandlers?.mcpApprovalPreflight?.(mcpCall)) === true;\n\t\t\t\tsendExecClientMessage(\n\t\t\t\t\th2Request,\n\t\t\t\t\texecMsg,\n\t\t\t\t\t\"mcpResult\",\n\t\t\t\t\tcreate(McpResultSchema, {\n\t\t\t\t\t\tresult: approved\n\t\t\t\t\t\t\t? { case: \"approved\", value: create(McpApprovedSchema, {}) }\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tcase: \"rejected\",\n\t\t\t\t\t\t\t\t\tvalue: create(McpRejectedSchema, {\n\t\t\t\t\t\t\t\t\t\treason: `Tool \"${mcpCall.toolName || mcpCall.name}\" is not approved to run without asking.`,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (execHandlers?.mcp) {\n\t\t\t\tconst existingBlock = output.content.find(\n\t\t\t\t\t(block) => block.type === \"toolCall\" && block.id === mcpCall.toolCallId,\n\t\t\t\t);\n\t\t\t\tif (existingBlock) {\n\t\t\t\t\tmarkCursorExecResolved(existingBlock);\n\t\t\t\t} else {\n\t\t\t\t\tsynthesizeCursorExecToolCall(\n\t\t\t\t\t\toutput,\n\t\t\t\t\t\tstream,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tmcpCall.toolCallId,\n\t\t\t\t\t\tmcpCall.toolName || mcpCall.name,\n\t\t\t\t\t\tmcpCall.args,\n\t\t\t\t\t);\n\t\t\t\t\tstate.resolvedMcpToolCallIds.add(mcpCall.toolCallId);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\tmcpCall,\n\t\t\t\texecHandlers?.mcp?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildMcpResultFromToolResult(mcpCall, toolResult),\n\t\t\t\t(_reason) => buildMcpToolNotFoundResult(mcpCall),\n\t\t\t\t(error) => buildMcpErrorResult(error),\n\t\t\t\texecHandlers?.mcp ? { toolCallId: mcpCall.toolCallId, toolName: mcpCall.toolName } : null,\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"mcpResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"listMcpResourcesExecArgs\": {\n\t\t\t// This client hosts no MCP resources; the honest answer is an explicit\n\t\t\t// empty success. An unset-oneof result would read as \"the call\n\t\t\t// produced nothing\".\n\t\t\tconst execResult = create(ListMcpResourcesExecResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"success\",\n\t\t\t\t\tvalue: create(ListMcpResourcesSuccessSchema, { resources: [] }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"listMcpResourcesExecResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"readMcpResourceExecArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(ReadMcpResourceExecResultSchema, {\n\t\t\t\tresult: { case: \"notFound\", value: create(ReadMcpResourceNotFoundSchema, { uri: args.uri }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"readMcpResourceExecResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"recordScreenArgs\": {\n\t\t\tconst execResult = create(RecordScreenResultSchema, {\n\t\t\t\tresult: { case: \"failure\", value: create(RecordScreenFailureSchema, { error: NOT_IMPLEMENTED }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"recordScreenResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"computerUseArgs\": {\n\t\t\tconst execResult = create(ComputerUseResultSchema, {\n\t\t\t\tresult: { case: \"error\", value: create(ComputerUseErrorSchema, { error: NOT_IMPLEMENTED }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"computerUseResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piReadArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tconst readArgs = piReadArgs(args.path, args.offset, args.limit);\n\t\t\tsynthesizeCursorExecToolCall(\n\t\t\t\toutput,\n\t\t\t\tstream,\n\t\t\t\tstate,\n\t\t\t\ttoolCallId,\n\t\t\t\t\"read\",\n\t\t\t\treadArgs ?? { path: args.path, offset: args.offset, limit: 0 },\n\t\t\t);\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piRead?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiReadResult,\n\t\t\t\tbuildPiReadError,\n\t\t\t\tbuildPiReadError,\n\t\t\t\t{ toolCallId, toolName: \"read\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piReadResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piBashArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"bash\", {\n\t\t\t\tcommand: args.command,\n\t\t\t\ttimeout: piTimeout(args.timeout),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piBash?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiBashResult,\n\t\t\t\tbuildPiBashError,\n\t\t\t\tbuildPiBashError,\n\t\t\t\t{ toolCallId, toolName: \"bash\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piBashResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piEditArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\t// `PiEditReplacement[]` maps 1:1 onto the local `edit` tool's\n\t\t\t// `edits[{oldText,newText}]` shape.\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"edit\", {\n\t\t\t\tpath: args.path,\n\t\t\t\tedits: args.edits.map((edit) => ({ oldText: edit.oldText, newText: edit.newText })),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piEdit?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiEditResult,\n\t\t\t\tbuildPiEditRejected,\n\t\t\t\tbuildPiEditError,\n\t\t\t\t{ toolCallId, toolName: \"edit\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piEditResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piWriteArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"write\", {\n\t\t\t\tpath: args.path,\n\t\t\t\tcontent: args.content,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piWrite?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiWriteResult,\n\t\t\t\tbuildPiWriteRejected,\n\t\t\t\tbuildPiWriteError,\n\t\t\t\t{ toolCallId, toolName: \"write\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piWriteResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piGrepArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"grep\", {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || undefined,\n\t\t\t\tglob: args.glob || undefined,\n\t\t\t\tignoreCase: args.ignoreCase === true ? true : undefined,\n\t\t\t\tliteral: args.literal === true ? true : undefined,\n\t\t\t\tcontext: args.context,\n\t\t\t\tlimit: piLimit(args.limit),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piGrep?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiGrepResult,\n\t\t\t\tbuildPiGrepError,\n\t\t\t\tbuildPiGrepError,\n\t\t\t\t{ toolCallId, toolName: \"grep\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piGrepResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piFindArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"find\", {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || undefined,\n\t\t\t\tlimit: piLimit(args.limit),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piFind?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiFindResult,\n\t\t\t\tbuildPiFindError,\n\t\t\t\tbuildPiFindError,\n\t\t\t\t{ toolCallId, toolName: \"find\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piFindResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piLsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"ls\", {\n\t\t\t\tpath: piLsPath(args.path),\n\t\t\t\tlimit: piLimit(args.limit),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piLs?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiLsResult,\n\t\t\t\tbuildPiLsError,\n\t\t\t\tbuildPiLsError,\n\t\t\t\t{ toolCallId, toolName: \"ls\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piLsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"miniSweAgentBashArgs\": {\n\t\t\t// Same `ShellArgs`/`ShellResult` pair as `shellArgs`, under its own\n\t\t\t// frame number, so the existing shell handler answers it unchanged.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst normalizedArgs: ShellArgs = { ...args, workingDirectory: args.workingDirectory || process.cwd() };\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"bash\", {\n\t\t\t\tcommand: composeShellCommand(args.command, args.workingDirectory || undefined),\n\t\t\t\ttimeout: args.timeout && args.timeout > 0 ? args.timeout : undefined,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\tnormalizedArgs,\n\t\t\t\texecHandlers?.shell?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildShellResultFromToolResult(normalizedArgs, toolResult),\n\t\t\t\t(reason) => buildShellRejectedResult(normalizedArgs.command, normalizedArgs.workingDirectory, reason),\n\t\t\t\t(error) => buildShellFailureResult(normalizedArgs.command, normalizedArgs.workingDirectory, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"bash\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"miniSweAgentBashResult\", sanitizeShellExecResult(execResult));\n\t\t\treturn;\n\t\t}\n\t\tcase \"redactedReadArgs\": {\n\t\t\t// The server expects the client to strip secrets from the content\n\t\t\t// first. No redaction is implemented here, and serving a plain read\n\t\t\t// would hand back exactly the unredacted bytes the frame exists to\n\t\t\t// withhold.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"redactedReadResult\",\n\t\t\t\tbuildReadErrorResult(args.path, \"Secret redaction is not implemented by this client\"),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"mcpStateExecArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"mcpStateExecResult\",\n\t\t\t\tbuildMcpStateResult(requestContextTools, args.serverIdentifiers),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"executeHookArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = buildNeutralHookResult(args.request);\n\t\t\tif (!execResult) {\n\t\t\t\tsendExecClientThrow(\n\t\t\t\t\th2Request,\n\t\t\t\t\texecMsg,\n\t\t\t\t\t`Unsupported hook request: ${args.request?.request.case ?? \"unset\"}`,\n\t\t\t\t\t\"unknown_hook_request\",\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"executeHookResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"subagentArgs\": {\n\t\t\tconst execResult = create(SubagentResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(SubagentErrorSchema, { error: `Subagents are ${NOT_IMPLEMENTED_SUFFIX}` }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"subagentResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"subagentAwaitArgs\": {\n\t\t\t// No subagent was ever spawned, so every awaited id is genuinely unknown.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(SubagentAwaitResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"notFound\",\n\t\t\t\t\tvalue: create(SubagentAwaitNotFoundSchema, { agentId: args.agentId }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"subagentAwaitResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"forceBackgroundShellArgs\": {\n\t\t\t// Backgrounding targets a running tool call by id. This client runs\n\t\t\t// every shell to completion in band, so there is never one to move.\n\t\t\tconst execResult = create(ForceBackgroundShellResultSchema, {\n\t\t\t\tstatus: ForceBackgroundShellStatus.NOT_FOUND,\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"forceBackgroundShellResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"forceBackgroundSubagentArgs\": {\n\t\t\tconst execResult = create(ForceBackgroundSubagentResultSchema, {\n\t\t\t\tstatus: ForceBackgroundSubagentStatus.NOT_FOUND,\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"forceBackgroundSubagentResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"smartModeClassifierArgs\": {\n\t\t\t// The classifier decides whether a risky action needs approval.\n\t\t\t// Answering `ALLOW` would silently wave through actions the server\n\t\t\t// asked us to judge, so the honest answer is that no classifier\n\t\t\t// exists here.\n\t\t\tconst execResult = create(SmartModeClassifierResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(SmartModeClassifierErrorSchema, {\n\t\t\t\t\t\terror: `Smart-mode classification is ${NOT_IMPLEMENTED_SUFFIX}`,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"smartModeClassifierResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"canvasDiagnosticsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(CanvasDiagnosticsResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(CanvasDiagnosticsErrorSchema, {\n\t\t\t\t\t\tpath: args.path,\n\t\t\t\t\t\terror: `Canvas diagnostics are ${NOT_IMPLEMENTED_SUFFIX}`,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"canvasDiagnosticsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"shellAllowlistPrecheckArgs\": {\n\t\t\t// The prechecks ask \"is this pre-approved, so may it skip the approval\n\t\t\t// prompt?\". This client keeps no allowlist, so the answer is always\n\t\t\t// no: `false` costs an approval round-trip, `true` would grant one\n\t\t\t// that was never configured.\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"shellAllowlistPrecheckResult\",\n\t\t\t\tcreate(ShellAllowlistPrecheckResultSchema, { allowlisted: false }),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"mcpAllowlistPrecheckArgs\": {\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"mcpAllowlistPrecheckResult\",\n\t\t\t\tcreate(McpAllowlistPrecheckResultSchema, { allowlisted: false }),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"webFetchAllowlistPrecheckArgs\": {\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"webFetchAllowlistPrecheckResult\",\n\t\t\t\tcreate(WebFetchAllowlistPrecheckResultSchema, { allowlisted: false }),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"conversationSearchArgs\": {\n\t\t\t// Cursor conversation history lives server-side; this client keeps no\n\t\t\t// local index of it to search. The streamed envelope announces this\n\t\t\t// call but the interaction decoder builds no block for it, so the\n\t\t\t// block and its paired result are synthesized here.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = args.toolCallId || randomUUID();\n\t\t\tconst error = `Conversation search is ${NOT_IMPLEMENTED_SUFFIX}`;\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"search_conversations\", {\n\t\t\t\tquery: args.query,\n\t\t\t\tlimit: args.limit,\n\t\t\t});\n\t\t\tawait pairSynthesizedExecResult(state, onToolResult, toolCallId, \"search_conversations\", error);\n\t\t\tconst execResult = create(ConversationSearchResultSchema, {\n\t\t\t\tresult: { case: \"error\", value: create(ConversationSearchErrorSchema, { error }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"conversationSearchResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"agentStoreConflictArgs\": {\n\t\t\t// The agent store is Cursor's own on-disk journal; this client never\n\t\t\t// writes one, so it has no conflict events to replay.\n\t\t\tconst execResult = create(AgentStoreConflictResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(AgentStoreConflictErrorSchema, {\n\t\t\t\t\t\terror: `Agent store conflicts are ${NOT_IMPLEMENTED_SUFFIX}`,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"agentStoreConflictResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"gitDiffRequest\": {\n\t\t\t// `GetDiffResponse` has no error variant, so any in-band answer is a\n\t\t\t// claim that a diff was computed; a `throw` is the only truthful reply.\n\t\t\tsendExecClientThrow(h2Request, execMsg, `Git diff is ${NOT_IMPLEMENTED_SUFFIX}`, \"exec_variant_unsupported\");\n\t\t\treturn;\n\t\t}\n\t\tdefault: {\n\t\t\t// A frame number this build recognises structurally but has no answer\n\t\t\t// for. Distinct from the unset-case path above: there the client\n\t\t\t// cannot even name the frame.\n\t\t\tlog(\"warn\", \"unhandledExecMessage\", { execCase });\n\t\t\tsendExecClientThrow(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t`No handler for exec message of type ${execCase}`,\n\t\t\t\t\"exec_variant_unsupported\",\n\t\t\t);\n\t\t}\n\t}\n}\n\nfunction armCursorExecHeartbeat(h2Request: http2.ClientHttp2Stream, execMsg: ExecServerMessage): () => void {\n\treturn armExecHeartbeat({\n\t\tintervalMs: EXEC_HEARTBEAT_INTERVAL_MS,\n\t\tisClosed: () => h2Request.closed,\n\t\twriteHeartbeat: (onComplete) => {\n\t\t\tconst controlMessage = create(ExecClientControlMessageSchema, {\n\t\t\t\tmessage: {\n\t\t\t\t\tcase: \"heartbeat\",\n\t\t\t\t\tvalue: create(ExecClientHeartbeatSchema, { id: execMsg.id }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\t\t\tmessage: { case: \"execClientControlMessage\", value: controlMessage },\n\t\t\t});\n\t\t\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)), onComplete);\n\t\t\tlog(\"execClientControl\", \"heartbeat\", { id: execMsg.id, execId: execMsg.execId });\n\t\t},\n\t});\n}\n\n/**\n * Send one typed answer on the exec channel.\n *\n * `ExecClientMessage[\"message\"]` is a discriminated union pairing each case\n * with its own result type, so the generic is keyed on the case: passing a\n * `ReadResult` under `\"shellResult\"` is a compile error rather than a wire\n * message the server rejects at runtime.\n */\nfunction sendExecClientMessage<TCase extends NonNullable<ExecClientMessage[\"message\"][\"case\"]>>(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\tmessageCase: TCase,\n\tvalue: Extract<ExecClientMessage[\"message\"], { case: TCase }>[\"value\"],\n): void {\n\tconst execClientMessage = create(ExecClientMessageSchema, {\n\t\tid: execMsg.id,\n\t\texecId: execMsg.execId,\n\t\tmessage: { case: messageCase, value } as ExecClientMessage[\"message\"],\n\t});\n\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"execClientMessage\", value: execClientMessage },\n\t});\n\n\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)));\n\n\tlog(\"execClientMessage\", messageCase);\n}\n\n/**\n * Fail one exec frame in band.\n *\n * `ExecClientThrow` is the protocol's failure channel for a frame that cannot\n * be answered at all — as opposed to a frame answered with its own typed\n * error variant, which means \"the tool ran and failed\". The server surfaces\n * the error to the model instead of blocking on a reply that never comes.\n */\nfunction sendExecClientThrow(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\terror: string,\n\terrorCode?: string,\n): void {\n\tconst controlMessage = create(ExecClientControlMessageSchema, {\n\t\tmessage: {\n\t\t\tcase: \"throw\",\n\t\t\tvalue: create(ExecClientThrowSchema, { id: execMsg.id, error, errorCode }),\n\t\t},\n\t});\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"execClientControlMessage\", value: controlMessage },\n\t});\n\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)));\n\tlog(\"execClientControl\", \"throw\", { id: execMsg.id, execId: execMsg.execId, error, errorCode });\n}\n\nfunction sendExecClientStreamClose(h2Request: http2.ClientHttp2Stream, execMsg: ExecServerMessage): void {\n\tconst closeMessage = create(ExecClientControlMessageSchema, {\n\t\tmessage: {\n\t\t\tcase: \"streamClose\",\n\t\t\tvalue: create(ExecClientStreamCloseSchema, {\n\t\t\t\tid: execMsg.id,\n\t\t\t}),\n\t\t},\n\t});\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"execClientControlMessage\", value: closeMessage },\n\t});\n\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)));\n\tlog(\"execClientControl\", \"streamClose\", { id: execMsg.id, execId: execMsg.execId });\n}\n\n/**\n * Exported for tests: dispatches one exec frame onto its handler.\n *\n * Every exit pairs a `toolResult`. The synthesized block was already marked\n * `kCursorExecResolved` before this runs, so the agent loop emits no\n * placeholder for it: a path that returns without a result leaves the call\n * unpaired and transcript rebuilds strip the whole interaction. The three\n * result-less paths — no handler installed, a handler that produced nothing,\n * and a thrown handler — therefore synthesize one from the same text the\n * server sees in `execResult`.\n *\n * `pairing` is required so a new callsite cannot silently recreate the\n * orphan, and nullable for the callers whose block is NOT pre-resolved (MCP\n * without an `mcp` handler, which the agent loop runs locally and pairs\n * itself, and frames that never synthesize a block).\n */\nexport async function resolveExecHandler<TArgs, TResult>(\n\targs: TArgs,\n\thandler: ((args: TArgs) => Promise<CursorExecHandlerResult<TResult>>) | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n\tbuildFromToolResult: (toolResult: ToolResultMessage) => TResult,\n\tbuildRejected: (reason: string) => TResult,\n\tbuildError: (error: string) => TResult,\n\tpairing: CursorExecPairing | null,\n): Promise<{ execResult: TResult; toolResult?: ToolResultMessage }> {\n\tconst pair = async (text: string, isError: boolean): Promise<ToolResultMessage | undefined> => {\n\t\tif (!pairing) return undefined;\n\t\tconst synthesized: ToolResultMessage = {\n\t\t\trole: \"toolResult\",\n\t\t\ttoolCallId: pairing.toolCallId,\n\t\t\ttoolName: pairing.toolName,\n\t\t\tcontent: [{ type: \"text\", text }],\n\t\t\tisError,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t\treturn await applyToolResultHandler(synthesized, onToolResult);\n\t};\n\n\tif (!handler) {\n\t\tconst reason = \"Tool not available\";\n\t\treturn { execResult: buildRejected(reason), toolResult: await pair(reason, true) };\n\t}\n\n\ttry {\n\t\tconst handlerResult = await handler(args);\n\t\tconst { execResult, toolResult } = splitExecHandlerResult(handlerResult);\n\t\tconst finalToolResult = await applyToolResultHandler(toolResult, onToolResult);\n\n\t\tif (execResult) {\n\t\t\t// TResult-only is a supported return form, so the transcript entry\n\t\t\t// has to be synthesized here, derived from the raw result so the two\n\t\t\t// views stay consistent.\n\t\t\treturn {\n\t\t\t\texecResult,\n\t\t\t\ttoolResult: finalToolResult ?? (await pair(...describeExecResult(execResult))),\n\t\t\t};\n\t\t}\n\t\tif (finalToolResult) {\n\t\t\treturn { execResult: buildFromToolResult(finalToolResult), toolResult: finalToolResult };\n\t\t}\n\t\tconst reason = \"Tool returned no result\";\n\t\treturn { execResult: buildRejected(reason), toolResult: await pair(reason, true) };\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\treturn { execResult: buildError(message), toolResult: await pair(message, true) };\n\t}\n}\n\n/**\n * Derive the transcript state of an exec result the handler returned in the\n * TResult-only form, which carries no `toolResult` to copy it from.\n *\n * Every exec result in `agent.proto` is a `oneof result` whose success\n * variant is named `success` — the rest are failures. MCP is the one shape\n * where `success` is not enough: `McpSuccess.is_error` carries an\n * application-level tool failure inside the success variant.\n */\nfunction describeExecResult(execResult: unknown): [text: string, isError: boolean] {\n\tconst result = (execResult as { result?: { case?: string; value?: unknown } } | null)?.result;\n\tconst variant = result?.case;\n\tif (variant === \"success\") {\n\t\tconst success = result?.value as { isError?: boolean; content?: unknown[] } | undefined;\n\t\tif (!success?.isError) return [\"Tool produced no transcript result\", false];\n\t\treturn [mcpContentToText(success.content) || \"MCP tool reported an error\", true];\n\t}\n\tif (!variant) return [\"Tool produced no transcript result\", false];\n\tconst value = result?.value as { error?: string; reason?: string } | undefined;\n\treturn [value?.error || value?.reason || `Tool call ${variant}`, true];\n}\n\n/** Flatten `McpSuccess.content` into transcript text. */\nfunction mcpContentToText(content: unknown[] | undefined): string {\n\tif (!Array.isArray(content)) return \"\";\n\tconst parts: string[] = [];\n\tfor (const item of content) {\n\t\tconst inner = (item as { content?: { case?: string; value?: { text?: string } } } | null)?.content;\n\t\tif (inner?.case === \"text\" && inner.value?.text) parts.push(inner.value.text);\n\t}\n\treturn parts.join(\"\\n\");\n}\n\nfunction splitExecHandlerResult<TResult>(result: CursorExecHandlerResult<TResult>): {\n\texecResult?: TResult;\n\ttoolResult?: ToolResultMessage;\n} {\n\tif (isToolResultMessage(result)) {\n\t\treturn { toolResult: result };\n\t}\n\tif (result && typeof result === \"object\") {\n\t\tconst record = result as Record<string, unknown>;\n\t\tif (\"execResult\" in record) {\n\t\t\tconst { execResult, toolResult } = record as {\n\t\t\t\texecResult: TResult;\n\t\t\t\ttoolResult?: ToolResultMessage;\n\t\t\t};\n\t\t\treturn { execResult, toolResult };\n\t\t}\n\t\tif (\"toolResult\" in record && !isToolResultMessage(record)) {\n\t\t\tconst { result: execResult, toolResult } = record as {\n\t\t\t\tresult?: TResult;\n\t\t\t\ttoolResult?: ToolResultMessage;\n\t\t\t};\n\t\t\treturn { execResult, toolResult };\n\t\t}\n\t\tif (\"result\" in record && !(\"$typeName\" in record)) {\n\t\t\tconst { result: execResult, toolResult } = record as {\n\t\t\t\tresult: TResult;\n\t\t\t\ttoolResult?: ToolResultMessage;\n\t\t\t};\n\t\t\treturn { execResult, toolResult };\n\t\t}\n\t}\n\treturn { execResult: result as TResult };\n}\n\nfunction isToolResultMessage(value: unknown): value is ToolResultMessage {\n\treturn !!value && typeof value === \"object\" && (value as ToolResultMessage).role === \"toolResult\";\n}\n\nasync function applyToolResultHandler(\n\ttoolResult: ToolResultMessage | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n): Promise<ToolResultMessage | undefined> {\n\tif (!toolResult || !onToolResult) {\n\t\treturn toolResult;\n\t}\n\tconst updated = await onToolResult(toolResult);\n\treturn updated ?? toolResult;\n}\n\nfunction toolResultToText(toolResult: ToolResultMessage): string {\n\treturn toolResult.content.map((item) => (item.type === \"text\" ? item.text : `[${item.mimeType} image]`)).join(\"\\n\");\n}\n\nfunction toolResultWasTruncated(toolResult: ToolResultMessage): boolean {\n\tif (!toolResult.details || typeof toolResult.details !== \"object\") {\n\t\treturn false;\n\t}\n\tconst truncation = (toolResult.details as { truncation?: { truncated?: boolean } }).truncation;\n\treturn !!truncation?.truncated;\n}\n\nfunction toolResultDetailBoolean(toolResult: ToolResultMessage, key: string): boolean {\n\tif (!toolResult.details || typeof toolResult.details !== \"object\") {\n\t\treturn false;\n\t}\n\tconst value = (toolResult.details as Record<string, unknown>)[key];\n\treturn typeof value === \"boolean\" ? value : false;\n}\n\n/** The file's own line count, when the tool recorded one. */\nfunction readTotalLinesFromDetails(toolResult: ToolResultMessage): number | undefined {\n\tconst details = toolResult.details;\n\tif (!details || typeof details !== \"object\") return undefined;\n\tconst direct = \"totalLines\" in details ? details.totalLines : undefined;\n\tif (typeof direct === \"number\" && Number.isFinite(direct)) return direct;\n\tconst meta = \"meta\" in details ? details.meta : undefined;\n\tif (!meta || typeof meta !== \"object\") return undefined;\n\tconst truncation = \"truncation\" in meta ? meta.truncation : undefined;\n\tif (!truncation || typeof truncation !== \"object\") return undefined;\n\tconst totalLines = \"totalLines\" in truncation ? truncation.totalLines : undefined;\n\treturn typeof totalLines === \"number\" && Number.isFinite(totalLines) ? totalLines : undefined;\n}\n\nfunction readFileSizeFromDetails(toolResult: ToolResultMessage): number | undefined {\n\tconst details = toolResult.details;\n\tif (!details || typeof details !== \"object\" || !(\"fileSize\" in details)) return undefined;\n\tconst { fileSize } = details;\n\treturn typeof fileSize === \"number\" && Number.isSafeInteger(fileSize) && fileSize >= 0 ? fileSize : undefined;\n}\n\nfunction buildReadResultFromToolResult(path: string, toolResult: ToolResultMessage, rangeApplied = false) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildReadErrorResult(path, text || \"Read failed\");\n\t}\n\t// Counting the payload is only the file's length when the payload is the\n\t// whole file: under a windowed read, answering a 20-line page of a 100-line\n\t// file with `total_lines: 20` tells a paginating server it reached the end.\n\tconst totalLines = readTotalLinesFromDetails(toolResult) ?? (rangeApplied ? 0 : text ? text.split(\"\\n\").length : 0);\n\treturn create(ReadResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(ReadSuccessSchema, {\n\t\t\t\tpath,\n\t\t\t\ttotalLines,\n\t\t\t\tfileSize: BigInt(readFileSizeFromDetails(toolResult) ?? Buffer.byteLength(text, \"utf-8\")),\n\t\t\t\ttruncated: toolResultWasTruncated(toolResult),\n\t\t\t\toutput: { case: \"content\", value: text },\n\t\t\t\trangeApplied,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildReadErrorResult(path: string, error: string) {\n\treturn create(ReadResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(ReadErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildReadRejectedResult(path: string, reason: string) {\n\treturn create(ReadResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(ReadRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildWriteResultFromToolResult(\n\targs: { path: string; fileText?: string; fileBytes?: Uint8Array; returnFileContentAfterWrite?: boolean },\n\ttoolResult: ToolResultMessage,\n) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildWriteErrorResult(args.path, text || \"Write failed\");\n\t}\n\tconst fileText = args.fileText ?? \"\";\n\tconst fileSize = args.fileBytes?.length ?? Buffer.byteLength(fileText, \"utf-8\");\n\tconst linesCreated = fileText ? fileText.split(\"\\n\").length : 0;\n\treturn create(WriteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(WriteSuccessSchema, {\n\t\t\t\tpath: args.path,\n\t\t\t\tlinesCreated,\n\t\t\t\tfileSize,\n\t\t\t\tfileContentAfterWrite: args.returnFileContentAfterWrite ? fileText : undefined,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildWriteErrorResult(path: string, error: string) {\n\treturn create(WriteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(WriteErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildWriteRejectedResult(path: string, reason: string) {\n\treturn create(WriteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(WriteRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildDeleteResultFromToolResult(path: string, toolResult: ToolResultMessage) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildDeleteErrorResult(path, text || \"Delete failed\");\n\t}\n\treturn create(DeleteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(DeleteSuccessSchema, {\n\t\t\t\tpath,\n\t\t\t\tdeletedFile: path,\n\t\t\t\tfileSize: BigInt(0),\n\t\t\t\tprevContent: \"\",\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildDeleteErrorResult(path: string, error: string) {\n\treturn create(DeleteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(DeleteErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildDeleteRejectedResult(path: string, reason: string) {\n\treturn create(DeleteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(DeleteRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildShellResultFromToolResult(\n\targs: { command: string; workingDirectory: string },\n\ttoolResult: ToolResultMessage,\n) {\n\tconst output = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildShellFailureResult(args.command, args.workingDirectory, output || \"Shell failed\");\n\t}\n\treturn create(ShellResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(ShellSuccessSchema, {\n\t\t\t\tcommand: args.command,\n\t\t\t\tworkingDirectory: args.workingDirectory,\n\t\t\t\texitCode: 0,\n\t\t\t\tsignal: \"\",\n\t\t\t\tstdout: output,\n\t\t\t\tstderr: \"\",\n\t\t\t\texecutionTime: 0,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildShellFailureResult(command: string, workingDirectory: string, error: string) {\n\treturn create(ShellResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"failure\",\n\t\t\tvalue: create(ShellFailureSchema, {\n\t\t\t\tcommand,\n\t\t\t\tworkingDirectory,\n\t\t\t\texitCode: 1,\n\t\t\t\tsignal: \"\",\n\t\t\t\tstdout: \"\",\n\t\t\t\tstderr: error,\n\t\t\t\texecutionTime: 0,\n\t\t\t\taborted: false,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildShellRejectedResult(command: string, workingDirectory: string, reason: string) {\n\treturn create(ShellResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(ShellRejectedSchema, {\n\t\t\t\tcommand,\n\t\t\t\tworkingDirectory,\n\t\t\t\treason,\n\t\t\t\tisReadonly: false,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildLsResultFromToolResult(path: string, toolResult: ToolResultMessage) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildLsErrorResult(path, text || \"Ls failed\");\n\t}\n\tconst rootPath = path || \".\";\n\tconst entries = text\n\t\t.split(\"\\n\")\n\t\t.map((line) => line.trim())\n\t\t.filter((line) => line.length > 0 && !line.startsWith(\"[\"));\n\tconst childrenDirs: LsDirectoryTreeNode[] = [];\n\tconst childrenFiles: LsDirectoryTreeNode_File[] = [];\n\n\tfor (const entry of entries) {\n\t\tconst name = entry.split(\" (\")[0];\n\t\tif (name.endsWith(\"/\")) {\n\t\t\tconst dirName = name.slice(0, -1);\n\t\t\tchildrenDirs.push(\n\t\t\t\tcreate(LsDirectoryTreeNodeSchema, {\n\t\t\t\t\tabsPath: `${rootPath.replace(/\\/$/, \"\")}/${dirName}`,\n\t\t\t\t\tchildrenDirs: [],\n\t\t\t\t\tchildrenFiles: [],\n\t\t\t\t\tchildrenWereProcessed: false,\n\t\t\t\t\tfullSubtreeExtensionCounts: {},\n\t\t\t\t\tnumFiles: 0,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tchildrenFiles.push(create(LsDirectoryTreeNode_FileSchema, { name }));\n\t\t}\n\t}\n\n\tconst root = create(LsDirectoryTreeNodeSchema, {\n\t\tabsPath: rootPath,\n\t\tchildrenDirs,\n\t\tchildrenFiles,\n\t\tchildrenWereProcessed: true,\n\t\tfullSubtreeExtensionCounts: {},\n\t\tnumFiles: childrenFiles.length,\n\t});\n\n\treturn create(LsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(LsSuccessSchema, { directoryTreeRoot: root }),\n\t\t},\n\t});\n}\n\nfunction buildLsErrorResult(path: string, error: string) {\n\treturn create(LsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(LsErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildLsRejectedResult(path: string, reason: string) {\n\treturn create(LsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(LsRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildGrepResultFromToolResult(\n\targs: { pattern: string; path?: string; outputMode?: string; offset?: number },\n\ttoolResult: ToolResultMessage,\n) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildGrepErrorResult(text || \"Grep failed\");\n\t}\n\n\tconst outputMode = args.outputMode || \"content\";\n\tconst clientTruncated = toolResultDetailBoolean(toolResult, \"truncated\");\n\tconst lines = text\n\t\t.split(\"\\n\")\n\t\t.map((line) => line.trimEnd())\n\t\t.filter((line) => line.length > 0 && !line.startsWith(\"[\") && !line.toLowerCase().startsWith(\"no matches\"));\n\n\tconst workspaceKey = args.path || \".\";\n\tlet unionResult: GrepUnionResult;\n\n\tif (outputMode === \"files_with_matches\") {\n\t\tconst files = lines;\n\t\tunionResult = create(GrepUnionResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"files\",\n\t\t\t\tvalue: create(GrepFilesResultSchema, {\n\t\t\t\t\tfiles,\n\t\t\t\t\ttotalFiles: files.length,\n\t\t\t\t\tclientTruncated,\n\t\t\t\t\tripgrepTruncated: false,\n\t\t\t\t\toffsetApplied: args.offset,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\t} else if (outputMode === \"count\") {\n\t\tconst counts = lines\n\t\t\t.map((line) => {\n\t\t\t\tconst separatorIndex = line.lastIndexOf(\":\");\n\t\t\t\tif (separatorIndex === -1) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tconst file = line.slice(0, separatorIndex);\n\t\t\t\tconst count = Number.parseInt(line.slice(separatorIndex + 1), 10);\n\t\t\t\tif (!file || Number.isNaN(count)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn create(GrepFileCountSchema, { file, count });\n\t\t\t})\n\t\t\t.filter((entry): entry is GrepFileCount => entry !== null);\n\t\tconst totalMatches = counts.reduce((sum, entry) => sum + entry.count, 0);\n\t\tunionResult = create(GrepUnionResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"count\",\n\t\t\t\tvalue: create(GrepCountResultSchema, {\n\t\t\t\t\tcounts,\n\t\t\t\t\ttotalFiles: counts.length,\n\t\t\t\t\ttotalMatches,\n\t\t\t\t\tclientTruncated,\n\t\t\t\t\tripgrepTruncated: false,\n\t\t\t\t\toffsetApplied: args.offset,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\t} else {\n\t\tconst matchMap = new Map<string, Array<{ line: number; content: string; isContextLine: boolean }>>();\n\t\tlet totalMatchedLines = 0;\n\n\t\tfor (const line of lines) {\n\t\t\tconst matchLine = line.match(/^(.+?):(\\d+):\\s?(.*)$/);\n\t\t\tconst contextLine = line.match(/^(.+?)-(\\d+)-\\s?(.*)$/);\n\t\t\tconst match = matchLine ?? contextLine;\n\t\t\tif (!match) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst [, file, lineNumber, content] = match;\n\t\t\tconst isContextLine = Boolean(contextLine);\n\t\t\tconst list = matchMap.get(file) ?? [];\n\t\t\tlist.push({ line: Number(lineNumber), content, isContextLine });\n\t\t\tmatchMap.set(file, list);\n\t\t\tif (!isContextLine) {\n\t\t\t\ttotalMatchedLines += 1;\n\t\t\t}\n\t\t}\n\n\t\tconst matches = Array.from(matchMap.entries()).map(([file, fileMatches]) =>\n\t\t\tcreate(GrepFileMatchSchema, {\n\t\t\t\tfile,\n\t\t\t\tmatches: fileMatches.map((entry) =>\n\t\t\t\t\tcreate(GrepContentMatchSchema, {\n\t\t\t\t\t\tlineNumber: entry.line,\n\t\t\t\t\t\tcontent: entry.content,\n\t\t\t\t\t\tcontentTruncated: false,\n\t\t\t\t\t\tisContextLine: entry.isContextLine,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t}),\n\t\t);\n\t\tconst totalLines = matches.reduce((sum, entry) => sum + entry.matches.length, 0);\n\t\tunionResult = create(GrepUnionResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"content\",\n\t\t\t\tvalue: create(GrepContentResultSchema, {\n\t\t\t\t\tmatches,\n\t\t\t\t\ttotalLines,\n\t\t\t\t\ttotalMatchedLines,\n\t\t\t\t\tclientTruncated,\n\t\t\t\t\tripgrepTruncated: false,\n\t\t\t\t\toffsetApplied: args.offset,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\t}\n\n\treturn create(GrepResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(GrepSuccessSchema, {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || \"\",\n\t\t\t\toutputMode,\n\t\t\t\tworkspaceResults: { [workspaceKey]: unionResult },\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildGrepErrorResult(error: string) {\n\treturn create(GrepResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(GrepErrorSchema, { error }),\n\t\t},\n\t});\n}\n\n/**\n * Reject a Cursor exec-channel `grepArgs` frame whose `pattern` is empty or\n * whitespace-only. Returns an actionable error message (with a `glob`-aware\n * hint when the model likely meant to list files) or `null` when the pattern\n * is valid and grep should run. Exported for tests.\n */\nexport function emptyGrepPatternRejection(pattern: string | undefined, glob: string | undefined): string | null {\n\tif (pattern && pattern.trim().length > 0) return null;\n\tif (glob && glob.length > 0) {\n\t\treturn (\n\t\t\t`grep pattern is required (received an empty pattern). To list files matching \"${glob}\", ` +\n\t\t\t`pass a non-empty regex (e.g. \".\") and set path to that glob, or use the ls/read tool instead.`\n\t\t);\n\t}\n\treturn \"grep pattern is required (received an empty pattern).\";\n}\n\nfunction buildDiagnosticsResultFromToolResult(path: string, toolResult: ToolResultMessage) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildDiagnosticsErrorResult(path, text || \"Diagnostics failed\");\n\t}\n\treturn create(DiagnosticsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(DiagnosticsSuccessSchema, {\n\t\t\t\tpath,\n\t\t\t\tdiagnostics: [],\n\t\t\t\ttotalDiagnostics: 0,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildDiagnosticsErrorResult(_path: string, error: string) {\n\treturn create(DiagnosticsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(DiagnosticsErrorSchema, { error }),\n\t\t},\n\t});\n}\n\nfunction buildDiagnosticsRejectedResult(path: string, reason: string) {\n\treturn create(DiagnosticsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(DiagnosticsRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction parseToolArgsJson(text: string): unknown {\n\tconst trimmed = text.trim();\n\tif (!trimmed) {\n\t\treturn text;\n\t}\n\ttry {\n\t\treturn parseJsonWithRepair<unknown>(trimmed);\n\t} catch {\n\t\treturn text;\n\t}\n}\n\nfunction decodeMcpArgValue(value: Uint8Array): unknown {\n\ttry {\n\t\tconst parsedValue = fromBinary(ValueSchema, value);\n\t\tconst jsonValue = toJson(ValueSchema, parsedValue) as PbJsonValue;\n\t\tif (typeof jsonValue === \"string\") {\n\t\t\treturn parseToolArgsJson(jsonValue);\n\t\t}\n\t\treturn jsonValue;\n\t} catch {}\n\tconst text = new TextDecoder().decode(value);\n\treturn parseToolArgsJson(text);\n}\n\nfunction decodeMcpArgsMap(args?: Record<string, Uint8Array>): Record<string, unknown> | undefined {\n\tif (!args) {\n\t\treturn undefined;\n\t}\n\tconst decoded: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(args)) {\n\t\tdecoded[key] = decodeMcpArgValue(value);\n\t}\n\treturn decoded;\n}\n\nfunction decodeMcpCall(args: {\n\tname: string;\n\targs: Record<string, Uint8Array>;\n\ttoolCallId: string;\n\tproviderIdentifier: string;\n\ttoolName: string;\n\tsmartModeApprovalOnly?: boolean;\n}): CursorMcpCall {\n\tconst decodedArgs: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(args.args ?? {})) {\n\t\tdecodedArgs[key] = decodeMcpArgValue(value);\n\t}\n\treturn {\n\t\tname: args.name,\n\t\tproviderIdentifier: args.providerIdentifier,\n\t\ttoolName: args.toolName || args.name,\n\t\ttoolCallId: args.toolCallId,\n\t\targs: decodedArgs,\n\t\trawArgs: args.args ?? {},\n\t\tapprovalOnly: args.smartModeApprovalOnly === true,\n\t};\n}\n\n/**\n * Map Cursor's `TodoStatus` enum onto display statuses. Cancelled (4) maps to\n * `abandoned` rather than collapsing to `pending`, which would resurrect a\n * task the model explicitly cancelled.\n */\nfunction mapTodoStatusValue(status?: number): \"pending\" | \"in_progress\" | \"completed\" | \"abandoned\" {\n\tswitch (status) {\n\t\tcase 2:\n\t\t\treturn \"in_progress\";\n\t\tcase 3:\n\t\t\treturn \"completed\";\n\t\tcase 4:\n\t\t\treturn \"abandoned\";\n\t\tdefault:\n\t\t\treturn \"pending\";\n\t}\n}\n\ninterface CursorTodoItem {\n\tid?: string;\n\tcontent?: string;\n\tstatus?: number;\n\tdependencies?: string[];\n}\n\ninterface CursorTodoResult {\n\tresult?: {\n\t\tcase?: \"success\" | \"error\";\n\t\tvalue?: { todos?: CursorTodoItem[]; totalCount?: number; wasMerge?: boolean; error?: string };\n\t};\n}\n\ninterface CursorUpdateTodosCall {\n\targs?: { todos?: CursorTodoItem[]; merge?: boolean };\n\tresult?: CursorTodoResult;\n}\n\ninterface CursorReadTodosCall {\n\targs?: { statusFilter?: number[]; idFilter?: string[] };\n\tresult?: CursorTodoResult;\n}\n\n/**\n * `ToolCall` is a protobuf oneof, so a decoded message exposes the selected\n * variant as `tool: { case, value }` — NOT as a named property. Hand-built\n * fixtures use the flattened form, so both are accepted here.\n */\ninterface CursorTodoToolCall {\n\ttool?: { case?: string; value?: unknown };\n\tupdateTodosToolCall?: CursorUpdateTodosCall;\n\treadTodosToolCall?: CursorReadTodosCall;\n}\n\nfunction selectTodoCalls(toolCall: CursorTodoToolCall): {\n\tupdate?: CursorUpdateTodosCall;\n\tread?: CursorReadTodosCall;\n} {\n\tconst oneof = toolCall.tool;\n\tif (oneof?.case === \"updateTodosToolCall\") return { update: oneof.value as CursorUpdateTodosCall };\n\tif (oneof?.case === \"readTodosToolCall\") return { read: oneof.value as CursorReadTodosCall };\n\treturn { update: toolCall.updateTodosToolCall, read: toolCall.readTodosToolCall };\n}\n\nfunction mapTodoSnapshot(todos: CursorTodoItem[]) {\n\treturn todos.map((todo) => ({\n\t\tcontent: typeof todo.content === \"string\" ? todo.content : \"\",\n\t\tstatus: mapTodoStatusValue(typeof todo.status === \"number\" ? todo.status : undefined),\n\t}));\n}\n\ninterface CursorMcpToolCall {\n\targs?: {\n\t\tname?: string;\n\t\ttoolName?: string;\n\t\ttoolCallId?: string;\n\t\targs?: Record<string, Uint8Array>;\n\t};\n}\n\ninterface CursorMcpToolCallCarrier {\n\ttool?: { case?: string; value?: unknown };\n\tmcpToolCall?: CursorMcpToolCall;\n}\n\n/**\n * `ToolCall.tool` is a protobuf oneof: a wire-decoded message exposes the\n * variant as `{ case, value }` and NEVER as a flattened property. The flat\n * fallback is kept for hand-shaped test fixtures.\n */\nfunction selectMcpCall(toolCall: CursorMcpToolCallCarrier | undefined): CursorMcpToolCall | undefined {\n\tconst oneof = toolCall?.tool;\n\tif (oneof?.case === \"mcpToolCall\") return oneof.value as CursorMcpToolCall;\n\treturn toolCall?.mcpToolCall;\n}\n\n/**\n * The streamed `ToolCall` variants whose block the exec channel owns.\n *\n * Each of these is announced on the interaction stream AND dispatched as its\n * own `ExecServerMessage` frame, so the block is synthesized once, by the\n * exec handler, which is the side that has the result.\n */\nconst EXEC_OWNED_TOOL_CALL_CASES: ReadonlySet<string> = new Set([\n\t\"piReadToolCall\",\n\t\"piBashToolCall\",\n\t\"piEditToolCall\",\n\t\"piWriteToolCall\",\n\t\"piGrepToolCall\",\n\t\"piFindToolCall\",\n\t\"piLsToolCall\",\n\t\"listMcpResourcesToolCall\",\n\t\"readMcpResourceToolCall\",\n]);\n\nfunction isExecOwnedToolCall(toolCall: { tool?: { case?: string } } | undefined): boolean {\n\tconst variant = toolCall?.tool?.case;\n\treturn variant !== undefined && EXEC_OWNED_TOOL_CALL_CASES.has(variant);\n}\n\n/**\n * Close every tool-call block still open when the stream ends.\n *\n * Not just the last one started: with interleaved calls several can be open\n * at once, and an unclosed block leaves its live card animating and its call\n * unpaired. Only blocks fed by a streamed argument buffer get reparsed.\n * Server-owned blocks (`connect-scm`, `todo`) are also paired here: they are\n * stamped resolved the moment they open, so only their completion frame pairs\n * a result — a transport that closes before that frame would leave the call\n * unpaired. MCP blocks are excluded even when resolved: the exec dispatch\n * that marked them owns their result.\n */\nexport function flushOpenToolCalls(\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n): void {\n\tconst openBlocks = new Set<ToolCallState>(state.openToolCalls.values());\n\tif (state.currentToolCall) openBlocks.add(state.currentToolCall);\n\tfor (const block of openBlocks) {\n\t\tconst idx = output.content.indexOf(block);\n\t\tconst partialJson = block[kStreamingPartialJson];\n\t\tif (partialJson !== undefined) {\n\t\t\tblock.arguments = parseStreamingJson(partialJson);\n\t\t\tclearStreamingPartialJson(block);\n\t\t}\n\t\tconst kind = block[kStreamingBlockKind];\n\t\tif (kind === \"connect-scm\" || kind === \"todo\") {\n\t\t\tvoid state.onToolResult?.({\n\t\t\t\trole: \"toolResult\",\n\t\t\t\ttoolCallId: block.id,\n\t\t\t\ttoolName: block.name,\n\t\t\t\tcontent: [{ type: \"text\", text: \"The connection to Cursor closed before this call completed.\" }],\n\t\t\t\tisError: true,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t});\n\t\t}\n\t\tstream.push({ type: \"toolcall_end\", contentIndex: idx, toolCall: block, partial: output });\n\t}\n\tstate.openToolCalls.clear();\n\tstate.setToolCall(null);\n}\n\n/**\n * Retain a freshly opened streamed tool-call block, keyed by the interaction\n * envelope's `call_id`. `currentToolCall` is still set as the fallback for\n * frames that carry no `call_id`.\n */\nfunction retainStreamedCall(state: BlockState, block: ToolCallState, envelopeId: string | undefined): void {\n\tif (envelopeId) state.openToolCalls.set(envelopeId, block);\n\tstate.setToolCall(block);\n}\n\n/**\n * The open block a streamed update addresses, or `null` to ignore the update.\n *\n * Cursor interleaves calls: `start A, start B, complete A` is legal, so the\n * update must reach block A even though B opened last. An id naming no open\n * block is ignored rather than misapplied. A missing id falls back to the\n * current block.\n */\nfunction resolveStreamedCall(state: BlockState, envelopeId: string | undefined): ToolCallState | null {\n\tif (!envelopeId) return state.currentToolCall;\n\tconst keyed = state.openToolCalls.get(envelopeId);\n\tif (keyed) return keyed;\n\tconst current = state.currentToolCall;\n\treturn current && current[kStreamingEnvelopeId] === undefined ? current : null;\n}\n\n/** Release a settled block from both the keyed map and the current slot. */\nfunction releaseStreamedCall(state: BlockState, block: ToolCallState): void {\n\tconst envelopeId = block[kStreamingEnvelopeId];\n\tif (envelopeId) state.openToolCalls.delete(envelopeId);\n\tif (state.currentToolCall === block) state.setToolCall(null);\n}\n\ninterface CursorConnectScmRepository {\n\towner?: string;\n\trepo?: string;\n}\n\ninterface CursorConnectScmCall {\n\targs?: {\n\t\ttoolCallId?: string;\n\t\ttarget?: { case?: string; value?: { repository?: CursorConnectScmRepository } };\n\t\tgithub?: { repository?: CursorConnectScmRepository };\n\t};\n\tresult?: { result?: { case?: string; value?: { error?: string; reason?: string } } };\n}\n\ninterface CursorConnectScmCarrier {\n\ttool?: { case?: string; value?: unknown };\n\tconnectScmToolCall?: CursorConnectScmCall;\n}\n\nfunction selectConnectScmCall(toolCall: CursorConnectScmCarrier | undefined): CursorConnectScmCall | undefined {\n\tconst oneof = toolCall?.tool;\n\tif (oneof?.case === \"connectScmToolCall\") return oneof.value as CursorConnectScmCall;\n\treturn toolCall?.connectScmToolCall;\n}\n\nfunction selectConnectScmRepository(call: CursorConnectScmCall | undefined): CursorConnectScmRepository | undefined {\n\tconst target = call?.args?.target;\n\tif (target?.case === \"github\") return target.value?.repository;\n\treturn call?.args?.github?.repository;\n}\n\n/** Render a settled `ConnectScmResult` as the text of its paired tool result. */\nfunction describeConnectScmResult(call: CursorConnectScmCall | undefined): { text: string; isError: boolean } {\n\tconst result = call?.result?.result;\n\tswitch (result?.case) {\n\t\tcase \"success\":\n\t\t\treturn { text: \"SCM connected\", isError: false };\n\t\tcase \"error\":\n\t\t\treturn { text: result.value?.error || \"SCM connection failed\", isError: true };\n\t\tcase \"rejected\":\n\t\t\treturn { text: result.value?.reason || \"SCM connection rejected\", isError: true };\n\t\tdefault:\n\t\t\treturn { text: \"SCM connection reported no result\", isError: true };\n\t}\n}\n\n/**\n * Extract the authoritative full todo list from a completed native todo call.\n * Only `result.success.todos` is authoritative; filtered/partial/ambiguous\n * responses return `null`, which the caller MUST treat as \"nothing to mirror\".\n */\nfunction extractTodoSnapshot(\n\ttoolCall: CursorTodoToolCall,\n): { todos: ReturnType<typeof mapTodoSnapshot>; merged: boolean } | null {\n\tconst { update, read } = selectTodoCalls(toolCall);\n\tif (read && ((read.args?.statusFilter?.length ?? 0) > 0 || (read.args?.idFilter?.length ?? 0) > 0)) {\n\t\treturn null;\n\t}\n\tconst call = update ?? read;\n\tif (!call) return null;\n\tconst result = call.result?.result;\n\tif (result?.case !== \"success\") return null;\n\tconst todos = result.value?.todos;\n\tif (!todos) return null;\n\tconst totalCount = result.value?.totalCount;\n\tif (typeof totalCount === \"number\" && totalCount !== todos.length) {\n\t\treturn null;\n\t}\n\tif (read && todos.length === 0) {\n\t\treturn null;\n\t}\n\tconst mapped = mapTodoSnapshot(todos);\n\tif (mapped.some((todo) => todo.content.length === 0)) return null;\n\treturn {\n\t\ttodos: mapped,\n\t\tmerged: result.value?.wasMerge === true,\n\t};\n}\n\n/** Error text when the server itself rejected the call. */\nfunction extractTodoError(toolCall: CursorTodoToolCall): string | null {\n\tconst { update, read } = selectTodoCalls(toolCall);\n\tconst result = (update ?? read)?.result?.result;\n\tif (result?.case !== \"error\") return null;\n\tconst error = result.value?.error;\n\treturn typeof error === \"string\" && error.length > 0 ? error : \"Todo operation failed\";\n}\n\n/** Args echoed onto the synthesized display block, for rendering only. */\nfunction buildTodoDisplayArgs(toolCall: CursorTodoToolCall): {\n\ttodos: ReturnType<typeof mapTodoSnapshot>;\n\tmerge?: boolean;\n} {\n\tconst args = selectTodoCalls(toolCall).update?.args;\n\treturn {\n\t\ttodos: args?.todos ? mapTodoSnapshot(args.todos) : [],\n\t\tmerge: args?.merge === true ? true : undefined,\n\t};\n}\n\n/**\n * Paired result for a server-resolved native todo call. Nothing else would\n * produce a `toolResult` for the block — and transcript rebuilds strip any\n * `toolCall` left unpaired.\n */\nfunction buildTodoToolResult(\n\ttoolCallId: string,\n\tsnapshot: { todos: ReturnType<typeof mapTodoSnapshot> } | null,\n\terror: string | null,\n): ToolResultMessage {\n\tconst text = error ?? (snapshot ? formatTodoSnapshotSummary(snapshot.todos) : \"Todo snapshot not mirrored\");\n\treturn {\n\t\trole: \"toolResult\",\n\t\ttoolCallId,\n\t\ttoolName: \"todo\",\n\t\tcontent: [{ type: \"text\", text }],\n\t\tisError: error !== null,\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nfunction formatTodoSnapshotSummary(todos: { status: string }[]): string {\n\tif (todos.length === 0) return \"No todos\";\n\tconst done = todos.filter((todo) => todo.status === \"completed\").length;\n\treturn `${done}/${todos.length} tasks completed`;\n}\n\nfunction buildMcpResultFromToolResult(_mcpCall: CursorMcpCall, toolResult: ToolResultMessage) {\n\tif (toolResult.isError) {\n\t\treturn buildMcpErrorResult(toolResultToText(toolResult) || \"MCP tool failed\");\n\t}\n\tconst content = toolResult.content.map((item) => {\n\t\tif (item.type === \"image\") {\n\t\t\treturn create(McpToolResultContentItemSchema, {\n\t\t\t\tcontent: {\n\t\t\t\t\tcase: \"image\",\n\t\t\t\t\tvalue: create(McpImageContentSchema, {\n\t\t\t\t\t\tdata: Uint8Array.from(Buffer.from(item.data, \"base64\")),\n\t\t\t\t\t\tmimeType: item.mimeType,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\treturn create(McpToolResultContentItemSchema, {\n\t\t\tcontent: {\n\t\t\t\tcase: \"text\",\n\t\t\t\tvalue: create(McpTextContentSchema, { text: item.text }),\n\t\t\t},\n\t\t});\n\t});\n\n\treturn create(McpResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(McpSuccessSchema, {\n\t\t\t\tcontent,\n\t\t\t\tisError: false,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildMcpToolNotFoundResult(mcpCall: CursorMcpCall) {\n\treturn create(McpResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"toolNotFound\",\n\t\t\tvalue: create(McpToolNotFoundSchema, { name: mcpCall.toolName, availableTools: [] }),\n\t\t},\n\t});\n}\n\nfunction buildMcpErrorResult(error: string) {\n\treturn create(McpResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(McpErrorSchema, { error }),\n\t\t},\n\t});\n}\n\n/**\n * Merge the decoded completion-frame `McpArgs` map into the args assembled\n * from streamed `args_text_delta` snapshots.\n *\n * The completion frame is authoritative for the scalars it carries — but it\n * can omit oversized parameters entirely and can downgrade a structured value\n * to its raw string fallback. Rules per key:\n * - completion key absent → keep the streamed value.\n * - completion is a string while the streamed value is structured → keep the\n * streamed value (the completion frame downgraded it).\n * - otherwise → completion wins.\n */\nexport function mergeCursorMcpToolCallArgs(\n\tstreamed: Record<string, unknown> | undefined,\n\tcompletion: Record<string, unknown> | undefined,\n): Record<string, unknown> {\n\tconst merged: Record<string, unknown> = { ...(streamed ?? {}) };\n\tif (!completion) return merged;\n\tfor (const [key, completionValue] of Object.entries(completion)) {\n\t\tconst streamedValue = merged[key];\n\t\tif (typeof completionValue === \"string\" && streamedValue !== null && typeof streamedValue === \"object\") {\n\t\t\tcontinue;\n\t\t}\n\t\tmerged[key] = completionValue;\n\t}\n\treturn merged;\n}\n\nfunction endCurrentTextBlock(output: AssistantMessage, stream: AssistantMessageEventStream, state: BlockState): void {\n\tconst block = state.currentTextBlock;\n\tif (!block) return;\n\tconst idx = output.content.indexOf(block);\n\tstream.push({\n\t\ttype: \"text_end\",\n\t\tcontentIndex: idx,\n\t\tcontent: block.text,\n\t\tpartial: output,\n\t});\n\tstate.setTextBlock(null);\n}\n\nfunction endCurrentThinkingBlock(\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n): void {\n\tconst block = state.currentThinkingBlock;\n\tif (!block) return;\n\tconst idx = output.content.indexOf(block);\n\tstream.push({\n\t\ttype: \"thinking_end\",\n\t\tcontentIndex: idx,\n\t\tcontent: block.thinking,\n\t\tpartial: output,\n\t});\n\tstate.setThinkingBlock(null);\n}\n\n/**\n * Synthesize a completed `toolCall` content block for a Cursor exec-channel\n * native tool or for an MCP exec frame whose corresponding interaction block\n * is absent.\n *\n * Args arrive complete on the exec message, so the block opens and closes in\n * one step. Without this the persisted assistant message carries only\n * text/thinking blocks, and on replay the following `toolResult` messages\n * have no matching `toolCall.id`.\n *\n * The block is stamped with {@link kCursorExecResolved} so the agent loop's\n * execution pass skips it — Cursor's server-driven exec channel already ran\n * the tool via the bridge and buffered the result. Exported for tests.\n */\nexport function synthesizeCursorExecToolCall(\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n\ttoolCallId: string,\n\ttoolName: string,\n\targs: Record<string, unknown>,\n): void {\n\tendCurrentTextBlock(output, stream, state);\n\tendCurrentThinkingBlock(output, stream, state);\n\tconst block: ToolCallState = {\n\t\ttype: \"toolCall\",\n\t\tid: toolCallId,\n\t\tname: toolName,\n\t\targuments: omitUndefinedArgs(args),\n\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t[kStreamingBlockKind]: \"cursor-exec\",\n\t\t[kCursorExecResolved]: true,\n\t};\n\toutput.content.push(block);\n\tconst idx = output.content.length - 1;\n\tstream.push({ type: \"toolcall_start\", contentIndex: idx, partial: output });\n\tstream.push({ type: \"toolcall_end\", contentIndex: idx, toolCall: block, partial: output });\n}\n\n/**\n * Pair a `toolResult` for a synthesized block the client answered itself,\n * without ever consulting a handler. Frames answered from a fixed verdict —\n * no handler, no local execution — still need the pair: the block was stamped\n * {@link kCursorExecResolved}, so the agent loop emits no placeholder for it\n * and transcript rebuilds strip an unpaired call.\n */\nasync function pairSynthesizedExecResult(\n\tstate: BlockState,\n\tonToolResult: CursorToolResultHandler | undefined,\n\ttoolCallId: string,\n\ttoolName: string,\n\ttext: string,\n\tisError = true,\n): Promise<void> {\n\tconst synthesized: ToolResultMessage = {\n\t\trole: \"toolResult\",\n\t\ttoolCallId,\n\t\ttoolName,\n\t\tcontent: [{ type: \"text\", text }],\n\t\tisError,\n\t\ttimestamp: Date.now(),\n\t};\n\tconst sink = onToolResult ?? state.onToolResult;\n\tif (!sink) return;\n\tawait sink(synthesized);\n}\n\n/**\n * Throttle threshold for mid-stream argument JSON parses: reparse only when\n * the buffer grew by this much since the last successful parse, keeping total\n * parse work bounded while the authoritative full parse runs on completion.\n */\nconst STREAMING_ARGS_REPARSE_DELTA = 1024;\n\n/** Exported for tests: drives one Cursor interaction update through the streaming state machine. */\nexport function processInteractionUpdate(\n\tupdate: any,\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n\tusageState: UsageState,\n): void {\n\tconst updateCase = update.message?.case;\n\n\tlog(\"interactionUpdate\", updateCase);\n\n\tif (updateCase === \"textDelta\") {\n\t\tconst delta = update.message.value.text || \"\";\n\t\tif (!state.currentTextBlock) {\n\t\t\tconst block: TextContent & { [kStreamingBlockIndex]: number } = {\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: \"\",\n\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t};\n\t\t\toutput.content.push(block);\n\t\t\tstate.setTextBlock(block);\n\t\t\tstream.push({ type: \"text_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t}\n\t\tstate.currentTextBlock!.text += delta;\n\t\tconst idx = output.content.indexOf(state.currentTextBlock!);\n\t\tstream.push({ type: \"text_delta\", contentIndex: idx, delta, partial: output });\n\t} else if (updateCase === \"thinkingDelta\") {\n\t\tconst delta = update.message.value.text || \"\";\n\t\tif (!state.currentThinkingBlock) {\n\t\t\tconst block: ThinkingContent & { [kStreamingBlockIndex]: number } = {\n\t\t\t\ttype: \"thinking\",\n\t\t\t\tthinking: \"\",\n\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t};\n\t\t\toutput.content.push(block);\n\t\t\tstate.setThinkingBlock(block);\n\t\t\tstream.push({ type: \"thinking_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t}\n\t\tstate.currentThinkingBlock!.thinking += delta;\n\t\tconst idx = output.content.indexOf(state.currentThinkingBlock!);\n\t\tstream.push({ type: \"thinking_delta\", contentIndex: idx, delta, partial: output });\n\t} else if (updateCase === \"thinkingCompleted\") {\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t} else if (updateCase === \"toolCallStarted\" && selectConnectScmCall(update.message.value.toolCall)) {\n\t\t// `connect_scm` is resolved entirely server-side and has NO exec frame:\n\t\t// the streamed pair is the only signal this client sees. The\n\t\t// authoritative outcome rides on the COMPLETION's `result` oneof, so the\n\t\t// block is opened here and settled there.\n\t\tendCurrentTextBlock(output, stream, state);\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t\tconst scmCall = selectConnectScmCall(update.message.value.toolCall);\n\t\tconst repository = selectConnectScmRepository(scmCall);\n\t\tconst block: ToolCallState = {\n\t\t\ttype: \"toolCall\",\n\t\t\tid: scmCall?.args?.toolCallId || update.message.value.callId || randomUUID(),\n\t\t\tname: \"connect_scm\",\n\t\t\targuments: repository ? { owner: repository.owner, repo: repository.repo } : {},\n\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t[kStreamingBlockKind]: \"connect-scm\",\n\t\t\t[kStreamingEnvelopeId]: update.message.value.callId || undefined,\n\t\t\t[kCursorExecResolved]: true,\n\t\t};\n\t\toutput.content.push(block);\n\t\tretainStreamedCall(state, block, update.message.value.callId);\n\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t} else if (updateCase === \"toolCallStarted\" && isExecOwnedToolCall(update.message.value.toolCall)) {\n\t\t// The exec channel already synthesized this block (and marked it\n\t\t// resolved) when it ran the tool locally, so the streamed announcement\n\t\t// must not create a second one.\n\t\tendCurrentTextBlock(output, stream, state);\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t\tlog(\"exec\", \"streamedToolCallOwnedByExec\", { case: update.message.value.toolCall?.tool?.case });\n\t} else if (updateCase === \"toolCallStarted\") {\n\t\tendCurrentTextBlock(output, stream, state);\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t\tconst toolCall = update.message.value.toolCall;\n\t\tif (toolCall) {\n\t\t\tconst mcpCall = selectMcpCall(toolCall);\n\t\t\tif (mcpCall) {\n\t\t\t\tconst args = mcpCall.args || {};\n\t\t\t\tconst id = args.toolCallId || randomUUID();\n\t\t\t\tconst resolvedByExec = state.resolvedMcpToolCallIds.delete(id);\n\t\t\t\tif (resolvedByExec && output.content.some((block) => block.type === \"toolCall\" && block.id === id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst block: ToolCallState = {\n\t\t\t\t\ttype: \"toolCall\",\n\t\t\t\t\tid,\n\t\t\t\t\t// Same precedence as `decodeMcpCall` (`toolName || name`), which\n\t\t\t\t\t// is what the exec channel pairs its result under.\n\t\t\t\t\tname: args.toolName || args.name || \"\",\n\t\t\t\t\targuments: {},\n\t\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t\t\t[kStreamingPartialJson]: \"\",\n\t\t\t\t\t[kStreamingBlockKind]: \"mcp\",\n\t\t\t\t\t[kStreamingEnvelopeId]: update.message.value.callId || undefined,\n\t\t\t\t};\n\t\t\t\tif (resolvedByExec) {\n\t\t\t\t\tmarkCursorExecResolved(block);\n\t\t\t\t}\n\t\t\t\toutput.content.push(block);\n\t\t\t\tretainStreamedCall(state, block, update.message.value.callId);\n\t\t\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Cursor resolves `update_todos` / `read_todos` server-side and\n\t\t\t// settles them on the tool call's `result`. Both blocks are stamped\n\t\t\t// resolved so the agent loop never runs them locally.\n\t\t\tconst todoCalls = selectTodoCalls(toolCall);\n\t\t\tif (todoCalls.update || todoCalls.read) {\n\t\t\t\tconst callId = update.message.value.callId || randomUUID();\n\t\t\t\tconst block: ToolCallState = {\n\t\t\t\t\ttype: \"toolCall\",\n\t\t\t\t\tid: callId,\n\t\t\t\t\tname: \"todo\",\n\t\t\t\t\targuments: buildTodoDisplayArgs(toolCall),\n\t\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t\t\t[kStreamingBlockKind]: \"todo\",\n\t\t\t\t\t[kStreamingEnvelopeId]: update.message.value.callId || undefined,\n\t\t\t\t\t[kCursorExecResolved]: true,\n\t\t\t\t};\n\t\t\t\toutput.content.push(block);\n\t\t\t\tretainStreamedCall(state, block, update.message.value.callId);\n\t\t\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t}\n\t\t}\n\t} else if (updateCase === \"toolCallDelta\" || updateCase === \"partialToolCall\") {\n\t\t// An argument delta belonging to a different call must not be appended\n\t\t// to this block's buffer, which would corrupt the JSON both parse.\n\t\tconst target = resolveStreamedCall(state, update.message.value.callId);\n\t\tif (target?.[kStreamingBlockKind] === \"mcp\") {\n\t\t\t// Cursor's `args_text_delta` is \"aggregated args text so far\": each\n\t\t\t// delta is a cumulative snapshot. Strip the prefix we already have to\n\t\t\t// recover the new suffix; fall back to treating the value as an\n\t\t\t// incremental fragment when it doesn't extend the buffer.\n\t\t\tconst snapshot: string = update.message.value.argsTextDelta || \"\";\n\t\t\tconst current = target[kStreamingPartialJson] ?? \"\";\n\t\t\tconst chunk = snapshot.startsWith(current) ? snapshot.slice(current.length) : snapshot;\n\t\t\tif (chunk.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst nextBuffer = current + chunk;\n\t\t\ttarget[kStreamingPartialJson] = nextBuffer;\n\t\t\t// Throttle mid-stream parses to keep total parse work bounded; the\n\t\t\t// authoritative full parse runs in `toolCallCompleted`.\n\t\t\tconst lastParseLen = target[kStreamingLastParseLen] ?? 0;\n\t\t\tif (nextBuffer.length - lastParseLen >= STREAMING_ARGS_REPARSE_DELTA) {\n\t\t\t\ttarget.arguments = parseStreamingJson(nextBuffer);\n\t\t\t\ttarget[kStreamingLastParseLen] = nextBuffer.length;\n\t\t\t}\n\t\t\tconst idx = output.content.indexOf(target);\n\t\t\tstream.push({ type: \"toolcall_delta\", contentIndex: idx, delta: chunk, partial: output });\n\t\t}\n\t} else if (updateCase === \"toolCallCompleted\") {\n\t\t// Correlate on the envelope's `call_id`, NOT the block id: MCP, Pi and\n\t\t// SCM blocks are filed under the id inside the call's `args`, and that\n\t\t// need not equal the envelope id.\n\t\tconst settled = resolveStreamedCall(state, update.message.value.callId);\n\t\tif (settled) {\n\t\t\tconst toolCall = update.message.value.toolCall;\n\t\t\tif (settled[kStreamingBlockKind] === \"mcp\") {\n\t\t\t\t// Authoritative full parse of the accumulated argument buffer.\n\t\t\t\tconst partial = settled[kStreamingPartialJson];\n\t\t\t\tif (partial !== undefined) {\n\t\t\t\t\tsettled.arguments = parseStreamingJson(partial);\n\t\t\t\t}\n\t\t\t\tconst decodedArgs = decodeMcpArgsMap(selectMcpCall(toolCall)?.args?.args);\n\t\t\t\tsettled.arguments = mergeCursorMcpToolCallArgs(\n\t\t\t\t\tsettled.arguments as Record<string, unknown> | undefined,\n\t\t\t\t\tdecodedArgs,\n\t\t\t\t);\n\t\t\t} else if (settled[kStreamingBlockKind] === \"connect-scm\") {\n\t\t\t\t// The authoritative outcome arrives only here. Late args are merged\n\t\t\t\t// too — a start frame may announce the call before the target\n\t\t\t\t// repository is known.\n\t\t\t\tconst scmCall = selectConnectScmCall(toolCall);\n\t\t\t\tconst repository = selectConnectScmRepository(scmCall);\n\t\t\t\tif (repository) {\n\t\t\t\t\tsettled.arguments = { owner: repository.owner, repo: repository.repo };\n\t\t\t\t}\n\t\t\t\tconst { text, isError } = describeConnectScmResult(scmCall);\n\t\t\t\tvoid state.onToolResult?.({\n\t\t\t\t\trole: \"toolResult\",\n\t\t\t\t\ttoolCallId: settled.id,\n\t\t\t\t\ttoolName: \"connect_scm\",\n\t\t\t\t\tcontent: [{ type: \"text\", text }],\n\t\t\t\t\tisError,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t});\n\t\t\t} else if (settled[kStreamingBlockKind] === \"todo\") {\n\t\t\t\t// Only the server's success snapshot is authoritative. A completion\n\t\t\t\t// frame whose optional `toolCall` is absent still settles: the block\n\t\t\t\t// is already marked resolved, so nothing downstream pairs it.\n\t\t\t\tconst snapshot = toolCall ? extractTodoSnapshot(toolCall) : null;\n\t\t\t\tconst error = toolCall ? extractTodoError(toolCall) : null;\n\t\t\t\tif (snapshot) {\n\t\t\t\t\tsettled.arguments = { todos: snapshot.todos, merged: snapshot.merged };\n\t\t\t\t}\n\t\t\t\tvoid state.onToolResult?.(buildTodoToolResult(settled.id, snapshot, error));\n\t\t\t}\n\t\t\tconst idx = output.content.indexOf(settled);\n\t\t\tclearStreamingPartialJson(settled);\n\t\t\tstream.push({ type: \"toolcall_end\", contentIndex: idx, toolCall: settled, partial: output });\n\t\t\treleaseStreamedCall(state, settled);\n\t\t}\n\t} else if (updateCase === \"turnEnded\") {\n\t\toutput.stopReason = \"stop\";\n\t} else if (updateCase === \"tokenDelta\") {\n\t\tconst tokenDelta = update.message.value;\n\t\tusageState.sawTokenDelta = true;\n\t\toutput.usage.output += tokenDelta.tokens || 0;\n\t\toutput.usage.totalTokens = output.usage.input + output.usage.output;\n\t}\n}\n\nfunction createBlobId(data: Uint8Array): Uint8Array {\n\treturn new Uint8Array(createHash(\"sha256\").update(data).digest());\n}\n\nfunction storeCursorBlob(blobStore: Map<string, Uint8Array>, data: Uint8Array): Uint8Array {\n\tconst blobId = createBlobId(data);\n\tblobStore.set(Buffer.from(blobId).toString(\"hex\"), data);\n\treturn blobId;\n}\n\nfunction readCursorBlob(blobStore: Map<string, Uint8Array>, blobId: Uint8Array): Uint8Array {\n\tconst data = blobStore.get(Buffer.from(blobId).toString(\"hex\"));\n\tif (!data) {\n\t\tthrow new Error(\"Cursor blob not found\");\n\t}\n\treturn data;\n}\n\n/**\n * Local tools Cursor already drives natively over the exec channel, so\n * advertising them again as MCP tools would give the model two ways to call\n * the same thing.\n */\nconst CURSOR_NATIVE_TOOL_NAMES = new Set([\"bash\", \"read\", \"write\", \"delete\", \"ls\", \"grep\", \"todo\"]);\n\n/** Strip TypeBox symbol metadata down to a plain JSON Schema document. */\nfunction toolParametersToJsonSchema(tool: Tool): unknown {\n\ttry {\n\t\treturn JSON.parse(JSON.stringify(tool.parameters));\n\t} catch {\n\t\treturn { type: \"object\", properties: {}, required: [] };\n\t}\n}\n\nexport function buildMcpToolDefinitions(tools: Tool[] | undefined): McpToolDefinition[] {\n\tif (!tools || tools.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst advertisedTools = tools.filter((tool) => !CURSOR_NATIVE_TOOL_NAMES.has(tool.name));\n\tif (advertisedTools.length === 0) {\n\t\treturn [];\n\t}\n\n\treturn advertisedTools.map((tool) => {\n\t\tconst jsonSchema = toolParametersToJsonSchema(tool);\n\t\tconst schemaValue: PbJsonValue =\n\t\t\tjsonSchema && typeof jsonSchema === \"object\"\n\t\t\t\t? (jsonSchema as PbJsonValue)\n\t\t\t\t: { type: \"object\", properties: {}, required: [] };\n\t\tconst inputSchema = toBinary(ValueSchema, fromJson(ValueSchema, schemaValue));\n\t\treturn create(McpToolDefinitionSchema, {\n\t\t\tname: tool.name,\n\t\t\tdescription: tool.description || \"\",\n\t\t\tproviderIdentifier: \"pi-agent\",\n\t\t\ttoolName: tool.name,\n\t\t\tinputSchema,\n\t\t});\n\t});\n}\n\n/** Extract text content from a user message. */\nfunction extractUserMessageText(msg: Message): string {\n\tif (msg.role !== \"user\") return \"\";\n\tconst content = msg.content;\n\tif (typeof content === \"string\") return content.trim();\n\tconst text = content\n\t\t.filter((c): c is TextContent => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n\treturn text.trim();\n}\n\nfunction hasUserMessageImages(msg: Message): boolean {\n\treturn msg.role === \"user\" && Array.isArray(msg.content) && msg.content.some((item) => item.type === \"image\");\n}\n\ntype CursorRootPromptContentPart = { type: \"text\"; text: string } | { type: \"image\"; image: string; mediaType: string };\n\nfunction buildCursorRootPromptContent(content: string | (TextContent | ImageContent)[]): CursorRootPromptContentPart[] {\n\tif (typeof content === \"string\") {\n\t\tconst text = content.trim();\n\t\treturn text ? [{ type: \"text\", text }] : [];\n\t}\n\tconst parts: CursorRootPromptContentPart[] = [];\n\tfor (const item of content) {\n\t\tif (item.type === \"text\") {\n\t\t\tconst text = item.text.trim();\n\t\t\tif (text) {\n\t\t\t\tparts.push({ type: \"text\", text });\n\t\t\t}\n\t\t} else {\n\t\t\tparts.push({ type: \"image\", image: `data:${item.mimeType};base64,${item.data}`, mediaType: item.mimeType });\n\t\t}\n\t}\n\treturn parts;\n}\n\nfunction cursorUserContentKey(content: string | (TextContent | ImageContent)[]): string {\n\tif (typeof content === \"string\") {\n\t\treturn content.trim();\n\t}\n\tconst hash = createHash(\"sha256\");\n\tfor (const item of content) {\n\t\thash.update(item.type);\n\t\tif (item.type === \"text\") {\n\t\t\thash.update(item.text);\n\t\t} else {\n\t\t\thash.update(item.mimeType);\n\t\t\thash.update(item.data);\n\t\t}\n\t}\n\treturn hash.digest(\"hex\");\n}\n\ntype CursorRootPromptAssistantContentPart =\n\t| { type: \"text\"; text: string }\n\t| { type: \"tool-call\"; toolCallId: string; toolName: string; args: Record<string, unknown> };\n\nfunction buildCursorAssistantContent(msg: AssistantMessage): CursorRootPromptAssistantContentPart[] {\n\tconst content: CursorRootPromptAssistantContentPart[] = [];\n\tfor (const item of msg.content) {\n\t\tif (item.type === \"text\") {\n\t\t\tif (item.text) content.push({ type: \"text\", text: item.text });\n\t\t} else if (item.type === \"toolCall\") {\n\t\t\tcontent.push({\n\t\t\t\ttype: \"tool-call\",\n\t\t\t\ttoolCallId: item.id,\n\t\t\t\ttoolName: item.name,\n\t\t\t\targs: item.arguments,\n\t\t\t});\n\t\t}\n\t\t// Thinking is never replayed: Cursor manages reasoning server-side and\n\t\t// foreign/hidden reasoning must not leak into history as native thinking.\n\t}\n\treturn content;\n}\n\n/**\n * Index of the last user message in `messages`, or -1 if none. Used to\n * exclude the current user turn from history builders — it goes in the\n * `userMessageAction`, not in history structures.\n */\nfunction findLastUserMessageIndex(messages: Message[]): number {\n\tfor (let i = messages.length - 1; i >= 0; i--) {\n\t\tif (messages[i].role === \"user\") {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n/**\n * Build one Cursor system-message JSON blob per system prompt. When no system\n * prompt is provided, returns a single default greeting so we never emit an\n * empty `rootPromptMessagesJson` head.\n */\nexport function buildCursorSystemPromptJsons(systemPrompt: string | undefined): string[] {\n\tconst trimmed = systemPrompt?.trim();\n\tif (!trimmed) {\n\t\treturn [JSON.stringify({ role: \"system\", content: \"You are a helpful assistant.\" })];\n\t}\n\treturn [JSON.stringify({ role: \"system\", content: trimmed })];\n}\n\n/**\n * Build `ConversationStateStructure.rootPromptMessagesJson` blob IDs for the\n * system prompt plus prior conversation history, as JSON blobs matching\n * Cursor's internal Vercel-AI-SDK-shaped message format.\n *\n * Cursor's server uses `rootPromptMessagesJson` (not `turns[]`) to build the\n * actual model prompt; `turns[]` is UI/display metadata. The active user\n * message is excluded because it is sent in the action.\n */\nfunction buildRootPromptMessagesJson(\n\tmessages: Message[],\n\tsystemPromptIds: Uint8Array[],\n\tblobStore: Map<string, Uint8Array>,\n\tactiveUserMessageIndex = findLastUserMessageIndex(messages),\n): Uint8Array[] {\n\tconst entries: Uint8Array[] = [...systemPromptIds];\n\tconst pushJson = (obj: unknown) => {\n\t\tconst bytes = new TextEncoder().encode(JSON.stringify(obj));\n\t\tentries.push(storeCursorBlob(blobStore, bytes));\n\t};\n\n\tfor (let i = 0; i < messages.length; i++) {\n\t\tif (i === activeUserMessageIndex) break;\n\t\tconst msg = messages[i];\n\t\tif (msg.role === \"user\") {\n\t\t\tconst content = buildCursorRootPromptContent(msg.content);\n\t\t\tif (content.length === 0) continue;\n\t\t\tpushJson({ role: \"user\", content });\n\t\t} else if (msg.role === \"assistant\") {\n\t\t\tconst content = buildCursorAssistantContent(msg);\n\t\t\tif (content.length === 0) continue;\n\t\t\tpushJson({ role: \"assistant\", content });\n\t\t} else if (msg.role === \"toolResult\") {\n\t\t\t// Emit even when the result text is empty: the assistant `tool-call`\n\t\t\t// is already in history, so dropping the pair would replay an\n\t\t\t// orphaned call.\n\t\t\tpushJson({\n\t\t\t\trole: \"tool\",\n\t\t\t\tid: msg.toolCallId,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\ttoolName: msg.toolName,\n\t\t\t\t\t\ttoolCallId: msg.toolCallId,\n\t\t\t\t\t\tresult: toolResultToText(msg),\n\t\t\t\t\t\t...(msg.isError ? { isError: true } : {}),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t}\n\n\treturn entries;\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n}\n\nfunction isJsonValue(value: unknown): value is PbJsonValue {\n\tif (value === null || typeof value === \"string\" || typeof value === \"boolean\") return true;\n\tif (typeof value === \"number\") return Number.isFinite(value);\n\tif (Array.isArray(value)) return value.every(isJsonValue);\n\tif (!isPlainRecord(value)) return false;\n\tfor (const key in value) {\n\t\tif (!isJsonValue(value[key])) return false;\n\t}\n\treturn true;\n}\n\nfunction encodeCursorMcpArguments(toolCall: ToolCall): Record<string, Uint8Array> {\n\tconst encoded: Record<string, Uint8Array> = {};\n\tfor (const name in toolCall.arguments) {\n\t\tconst value = toolCall.arguments[name];\n\t\tif (value === undefined) continue;\n\t\tif (!isJsonValue(value)) {\n\t\t\tthrow new Error(`Cursor tool argument ${toolCall.name}.${name} is not JSON-serializable`);\n\t\t}\n\t\tencoded[name] = toBinary(ValueSchema, fromJson(ValueSchema, value));\n\t}\n\treturn encoded;\n}\n\nfunction createCursorMcpResult(result: ToolResultMessage) {\n\tif (result.isError) {\n\t\treturn create(McpToolResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"error\",\n\t\t\t\tvalue: create(McpToolErrorSchema, { error: toolResultToText(result) }),\n\t\t\t},\n\t\t});\n\t}\n\treturn create(McpToolResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(McpSuccessSchema, {\n\t\t\t\tcontent: result.content.map((item) =>\n\t\t\t\t\titem.type === \"text\"\n\t\t\t\t\t\t? create(McpToolResultContentItemSchema, {\n\t\t\t\t\t\t\t\tcontent: { case: \"text\", value: create(McpTextContentSchema, { text: item.text }) },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: create(McpToolResultContentItemSchema, {\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcase: \"image\",\n\t\t\t\t\t\t\t\t\tvalue: create(McpImageContentSchema, {\n\t\t\t\t\t\t\t\t\t\tdata: Uint8Array.from(Buffer.from(item.data, \"base64\")),\n\t\t\t\t\t\t\t\t\t\tmimeType: item.mimeType,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction createCursorToolCallStep(toolCall: ToolCall, result: ToolResultMessage | undefined) {\n\tconst mcpCall = create(McpToolCallSchema, {\n\t\targs: create(McpArgsSchema, {\n\t\t\tname: toolCall.name,\n\t\t\targs: encodeCursorMcpArguments(toolCall),\n\t\t\ttoolCallId: toolCall.id,\n\t\t\tproviderIdentifier: \"pi-agent\",\n\t\t\ttoolName: toolCall.name,\n\t\t}),\n\t\t...(result ? { result: createCursorMcpResult(result) } : {}),\n\t});\n\treturn create(ConversationStepSchema, {\n\t\tmessage: {\n\t\t\tcase: \"toolCall\",\n\t\t\tvalue: create(ToolCallSchema, {\n\t\t\t\ttool: { case: \"mcpToolCall\", value: mcpCall },\n\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t}),\n\t\t},\n\t});\n}\n\n/**\n * Convert context.messages to Cursor's ConversationTurnStructure blob IDs.\n * Groups messages into turns: each turn is a user message followed by the\n * assistant's response. Excludes the active user message (which goes in the\n * action).\n */\nfunction buildConversationTurns(\n\tmessages: Message[],\n\tblobStore: Map<string, Uint8Array>,\n\tactiveUserMessageIndex = findLastUserMessageIndex(messages),\n): Uint8Array[] {\n\tconst turns: Uint8Array[] = [];\n\tconst historyEnd = activeUserMessageIndex >= 0 ? activeUserMessageIndex : messages.length;\n\tconst toolResults = new Map<string, ToolResultMessage>();\n\tconst pairedToolCallIds = new Set<string>();\n\tfor (let index = 0; index < historyEnd; index++) {\n\t\tconst message = messages[index];\n\t\tif (message.role === \"toolResult\") {\n\t\t\ttoolResults.set(message.toolCallId, message);\n\t\t} else if (message.role === \"assistant\") {\n\t\t\tfor (const item of message.content) {\n\t\t\t\tif (item.type === \"toolCall\") pairedToolCallIds.add(item.id);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet i = 0;\n\twhile (i < messages.length) {\n\t\tconst msg = messages[i];\n\t\tif (msg.role !== \"user\") {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (i === activeUserMessageIndex) break;\n\n\t\tconst userText = extractUserMessageText(msg);\n\t\tif (userText.length === 0 && !hasUserMessageImages(msg)) {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst userMessage = createCursorUserMessage(\n\t\t\tmsg.content,\n\t\t\tuserText,\n\t\t\tdeterministicUuid(`u:${turns.length}:${cursorUserContentKey(msg.content)}`),\n\t\t);\n\t\tconst userMessageBlobId = storeCursorBlob(blobStore, toBinary(UserMessageSchema, userMessage));\n\t\tconst stepBlobIds: Uint8Array[] = [];\n\t\ti++;\n\n\t\twhile (i < messages.length && messages[i].role !== \"user\") {\n\t\t\tconst stepMsg = messages[i];\n\t\t\tif (stepMsg.role === \"assistant\") {\n\t\t\t\tfor (const item of stepMsg.content) {\n\t\t\t\t\tlet step: ConversationStep;\n\t\t\t\t\tif (item.type === \"text\") {\n\t\t\t\t\t\tif (!item.text) continue;\n\t\t\t\t\t\tstep = create(ConversationStepSchema, {\n\t\t\t\t\t\t\tmessage: {\n\t\t\t\t\t\t\t\tcase: \"assistantMessage\",\n\t\t\t\t\t\t\t\tvalue: create(AssistantMessageSchema, { text: item.text }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (item.type === \"thinking\") {\n\t\t\t\t\t\t// Foreign/hidden reasoning never leaks into Cursor's turn\n\t\t\t\t\t\t// history as native thinking.\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (item.type === \"toolCall\") {\n\t\t\t\t\t\tstep = createCursorToolCallStep(item, toolResults.get(item.id));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstepBlobIds.push(storeCursorBlob(blobStore, toBinary(ConversationStepSchema, step)));\n\t\t\t\t}\n\t\t\t} else if (stepMsg.role === \"toolResult\" && !pairedToolCallIds.has(stepMsg.toolCallId)) {\n\t\t\t\tconst text = toolResultToText(stepMsg);\n\t\t\t\tif (text) {\n\t\t\t\t\tconst prefix = stepMsg.isError ? \"[Tool Error]\" : \"[Tool Result]\";\n\t\t\t\t\tconst step = create(ConversationStepSchema, {\n\t\t\t\t\t\tmessage: {\n\t\t\t\t\t\t\tcase: \"assistantMessage\",\n\t\t\t\t\t\t\tvalue: create(AssistantMessageSchema, { text: `${prefix}\\n${text}` }),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tstepBlobIds.push(storeCursorBlob(blobStore, toBinary(ConversationStepSchema, step)));\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\n\t\tconst agentTurn = create(AgentConversationTurnStructureSchema, {\n\t\t\tuserMessage: userMessageBlobId,\n\t\t\tsteps: stepBlobIds,\n\t\t});\n\t\tconst turn = create(ConversationTurnStructureSchema, {\n\t\t\tturn: {\n\t\t\t\tcase: \"agentConversationTurn\",\n\t\t\t\tvalue: agentTurn,\n\t\t\t},\n\t\t});\n\t\tturns.push(storeCursorBlob(blobStore, toBinary(ConversationTurnStructureSchema, turn)));\n\t}\n\n\treturn turns;\n}\n\n/** Exported for tests: decodes Cursor history blobs built from conversation messages. */\nexport function buildCursorHistoryForTest(\n\tmessages: Message[],\n\tactiveUserMessageIndex = findLastUserMessageIndex(messages),\n): {\n\trootPromptMessagesJson: unknown[];\n\tturnUserMessagesJson: unknown[];\n\tturnStepMessagesJson: unknown[][];\n} {\n\tconst blobStore = new Map<string, Uint8Array>();\n\tconst rootPromptMessagesJson = buildRootPromptMessagesJson(messages, [], blobStore, activeUserMessageIndex).map(\n\t\t(blobId) => JSON.parse(new TextDecoder().decode(readCursorBlob(blobStore, blobId))),\n\t);\n\tconst turnUserMessagesJson: unknown[] = [];\n\tconst turnStepMessagesJson: unknown[][] = [];\n\tfor (const turnBlobId of buildConversationTurns(messages, blobStore, activeUserMessageIndex)) {\n\t\tconst turn = fromBinary(ConversationTurnStructureSchema, readCursorBlob(blobStore, turnBlobId));\n\t\tif (turn.turn.case !== \"agentConversationTurn\") {\n\t\t\tcontinue;\n\t\t}\n\t\tconst userMessage = fromBinary(UserMessageSchema, readCursorBlob(blobStore, turn.turn.value.userMessage));\n\t\tturnUserMessagesJson.push(toJson(UserMessageSchema, userMessage));\n\t\tturnStepMessagesJson.push(\n\t\t\tturn.turn.value.steps.map((stepBlobId) => {\n\t\t\t\tconst step = fromBinary(ConversationStepSchema, readCursorBlob(blobStore, stepBlobId));\n\t\t\t\treturn toJson(ConversationStepSchema, step);\n\t\t\t}),\n\t\t);\n\t}\n\treturn { rootPromptMessagesJson, turnUserMessagesJson, turnStepMessagesJson };\n}\n\nfunction createCursorUserMessage(\n\tcontent: string | (TextContent | ImageContent)[],\n\ttext: string,\n\tmessageId = randomUUID() as string,\n) {\n\tconst images = typeof content === \"string\" ? [] : extractImages(content);\n\treturn create(UserMessageSchema, {\n\t\ttext,\n\t\tmessageId,\n\t\t...(images.length > 0\n\t\t\t? {\n\t\t\t\t\tselectedContext: create(SelectedContextSchema, {\n\t\t\t\t\t\tselectedImages: images,\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t: {}),\n\t});\n}\n\nfunction extractImages(content: (TextContent | ImageContent)[]) {\n\treturn content\n\t\t.filter((item): item is ImageContent => item.type === \"image\")\n\t\t.map((image) =>\n\t\t\tcreate(SelectedImageSchema, {\n\t\t\t\tuuid: randomUUID(),\n\t\t\t\tmimeType: image.mimeType,\n\t\t\t\tdataOrBlobId: {\n\t\t\t\t\tcase: \"data\",\n\t\t\t\t\tvalue: Uint8Array.from(Buffer.from(image.data, \"base64\")),\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n}\n\nasync function buildGrpcRequest(\n\tmodel: Model<\"cursor-agent\">,\n\tcontext: Context,\n\toptions: CursorAgentOptions | undefined,\n\tstate: {\n\t\tconversationId: string;\n\t\tblobStore: Map<string, Uint8Array>;\n\t\tconversationState?: ConversationStateStructure;\n\t},\n): Promise<{\n\trequestBytes: Uint8Array;\n\tblobStore: Map<string, Uint8Array>;\n\tconversationState: ConversationStateStructure;\n}> {\n\tconst blobStore = state.blobStore;\n\n\tconst systemPromptIds = buildCursorSystemPromptJsons(context.systemPrompt).map((json) =>\n\t\tstoreCursorBlob(blobStore, new TextEncoder().encode(json)),\n\t);\n\n\tconst activeUserMessageIndex = context.messages.length - 1;\n\tconst activeMessage = context.messages[activeUserMessageIndex];\n\tconst activeUserMessage = activeMessage?.role === \"user\" ? activeMessage : undefined;\n\tlet userContent: string | (TextContent | ImageContent)[] | undefined;\n\tlet userText = \"\";\n\tlet hasUserImages = false;\n\tif (activeUserMessage) {\n\t\tuserContent = activeUserMessage.content;\n\t\tif (typeof userContent === \"string\") {\n\t\t\tuserText = userContent.trim();\n\t\t} else {\n\t\t\tuserText = extractText(userContent);\n\t\t\thasUserImages = hasImages(userContent);\n\t\t}\n\t}\n\n\tconst action = create(ConversationActionSchema, {\n\t\taction:\n\t\t\tuserContent && (userText.trim().length > 0 || hasUserImages)\n\t\t\t\t? {\n\t\t\t\t\t\tcase: \"userMessageAction\",\n\t\t\t\t\t\tvalue: create(UserMessageActionSchema, {\n\t\t\t\t\t\t\tuserMessage: createCursorUserMessage(userContent, userText),\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tcase: \"resumeAction\",\n\t\t\t\t\t\tvalue: create(ResumeActionSchema, {}),\n\t\t\t\t\t},\n\t});\n\n\t// Build conversation turns from prior messages, excluding only the active\n\t// user message when the request is sending one. Resume actions must\n\t// preserve trailing tool results.\n\tconst turns = buildConversationTurns(context.messages, blobStore, activeUserMessage ? activeUserMessageIndex : -1);\n\n\t// Cursor's server uses `rootPromptMessagesJson` (not `turns[]`) to build\n\t// the actual model prompt; without it multi-turn conversations lose prior\n\t// context.\n\tconst rootPromptMessagesJson = buildRootPromptMessagesJson(\n\t\tcontext.messages,\n\t\tsystemPromptIds,\n\t\tblobStore,\n\t\tactiveUserMessage ? activeUserMessageIndex : -1,\n\t);\n\n\t// Preserve cached non-history state fields (todos, file states, summaries)\n\t// when the system prompt is unchanged; otherwise start fresh.\n\tconst cachedPromptHead = state.conversationState?.rootPromptMessagesJson?.slice(0, systemPromptIds.length) ?? [];\n\tconst hasMatchingPrompt =\n\t\tcachedPromptHead.length === systemPromptIds.length &&\n\t\tsystemPromptIds.every((id, idx) => Buffer.from(cachedPromptHead[idx]).equals(id));\n\tconst baseState =\n\t\tstate.conversationState && hasMatchingPrompt\n\t\t\t? state.conversationState\n\t\t\t: create(ConversationStateStructureSchema, {\n\t\t\t\t\trootPromptMessagesJson: systemPromptIds,\n\t\t\t\t\tturns: [],\n\t\t\t\t\ttodos: [],\n\t\t\t\t\tpendingToolCalls: [],\n\t\t\t\t\tpreviousWorkspaceUris: [],\n\t\t\t\t\tfileStates: {},\n\t\t\t\t\tfileStatesV2: {},\n\t\t\t\t\tsummaryArchives: [],\n\t\t\t\t\tturnTimings: [],\n\t\t\t\t\tsubagentStates: {},\n\t\t\t\t\tselfSummaryCount: 0,\n\t\t\t\t\treadPaths: [],\n\t\t\t\t});\n\n\t// Always override `rootPromptMessagesJson` and `turns` with content freshly\n\t// built from `context.messages`: the server-echoed checkpoint replaces\n\t// historical user entries with empty placeholders.\n\tconst conversationState = create(ConversationStateStructureSchema, {\n\t\t...baseState,\n\t\trootPromptMessagesJson,\n\t\tturns,\n\t});\n\n\tconst wireModelId = model.upstreamModelId ?? model.id;\n\tconst cursorMaxMode = model.compat?.cursorMaxMode === true;\n\tconst modelDetails = create(ModelDetailsSchema, {\n\t\tmodelId: wireModelId,\n\t\tdisplayModelId: model.id,\n\t\tdisplayName: model.name,\n\t\t...(cursorMaxMode ? { maxMode: true } : undefined),\n\t});\n\tconst requestedModel = create(RequestedModelSchema, {\n\t\tmodelId: wireModelId,\n\t\tmaxMode: cursorMaxMode,\n\t});\n\n\tconst runRequest = create(AgentRunRequestSchema, {\n\t\tconversationState,\n\t\taction,\n\t\tmodelDetails,\n\t\trequestedModel,\n\t\tconversationId: state.conversationId,\n\t});\n\n\tif (options?.customSystemPrompt) {\n\t\trunRequest.customSystemPrompt = options.customSystemPrompt;\n\t}\n\n\tawait options?.onPayload?.(runRequest, model as Model<Api>);\n\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"runRequest\", value: runRequest },\n\t});\n\n\tconst requestBytes = toBinary(AgentClientMessageSchema, clientMessage);\n\n\tlog(\"info\", \"builtRunRequest\", {\n\t\tbytes: requestBytes.length,\n\t\ttools: context.tools?.length ?? 0,\n\t});\n\n\treturn { requestBytes, blobStore, conversationState };\n}\n\nfunction hasImages(content: (TextContent | ImageContent)[]): boolean {\n\treturn content.some((item) => item.type === \"image\");\n}\n\nfunction extractText(content: (TextContent | ImageContent)[]): string {\n\treturn content\n\t\t.filter((c): c is TextContent => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Model discovery (GetUsableModels)\n// ---------------------------------------------------------------------------\n\nconst CURSOR_GET_USABLE_MODELS_PATH = \"/agent.v1.AgentService/GetUsableModels\";\nconst CURSOR_DEFAULT_CONTEXT_WINDOW = 200_000;\nconst CURSOR_DEFAULT_MAX_TOKENS = 64_000;\n/**\n * `GetUsableModels` carries no context-window field, so the 1M ceiling is\n * recovered from the signals Cursor does send: display-name \"1M\" labels and\n * the max-mode flag on Claude/Gemini families.\n */\nconst CURSOR_1M_CONTEXT_WINDOW = 1_000_000;\nconst CURSOR_1M_NAME_PATTERN = /\\b1m\\b/i;\nconst CURSOR_MAX_MODE_1M_ID_PATTERN = /claude|gemini/;\n/**\n * Model-id families whose native catalogs are multimodal. Cursor-only or\n * text-only families (`composer-*`, `grok-code-*`) stay outside this pattern.\n */\nconst CURSOR_MULTIMODAL_ID_PATTERN = /claude|gemini|gpt-|codex/;\n\nexport interface CursorDiscoveredModel {\n\tid: string;\n\tname: string;\n\treasoning: boolean;\n\tinput: (\"text\" | \"image\")[];\n\tcontextWindow: number;\n\tmaxTokens: number;\n\tcursorMaxMode: boolean;\n}\n\n/**\n * Fetches Cursor models through `GetUsableModels` (unary protobuf over\n * HTTP/2; the ALB rejects HTTP/1.1 with 464) and normalizes them.\n *\n * Returns `null` on request/decode failures; `[]` only when the endpoint\n * responds successfully with no usable models.\n */\nexport async function fetchCursorUsableModels(options: {\n\tapiKey: string;\n\tbaseUrl?: string;\n\ttimeoutMs?: number;\n\tsignal?: AbortSignal;\n}): Promise<CursorDiscoveredModel[] | null> {\n\tconst timeoutMs = options.timeoutMs ?? 10_000;\n\ttry {\n\t\tconst requestPayload = create(GetUsableModelsRequestSchema, { customModelIds: [] });\n\t\tconst body = toBinary(GetUsableModelsRequestSchema, requestPayload);\n\t\tconst baseUrl = (options.baseUrl ?? CURSOR_API_URL).replace(/\\/+$/, \"\");\n\n\t\tconst responseBuffer = await new Promise<Uint8Array | null>((resolve) => {\n\t\t\tconst client = http2.connect(baseUrl);\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tclient.destroy();\n\t\t\t\tresolve(null);\n\t\t\t}, timeoutMs);\n\t\t\tconst abort = () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tclient.destroy();\n\t\t\t\tresolve(null);\n\t\t\t};\n\t\t\toptions.signal?.addEventListener(\"abort\", abort, { once: true });\n\n\t\t\tclient.on(\"error\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tresolve(null);\n\t\t\t});\n\n\t\t\tconst req = client.request({\n\t\t\t\t\":method\": \"POST\",\n\t\t\t\t\":path\": CURSOR_GET_USABLE_MODELS_PATH,\n\t\t\t\t\"content-type\": \"application/proto\",\n\t\t\t\tte: \"trailers\",\n\t\t\t\tauthorization: `Bearer ${options.apiKey}`,\n\t\t\t\t\"x-ghost-mode\": \"true\",\n\t\t\t\t\"x-cursor-client-version\": CURSOR_CLIENT_VERSION,\n\t\t\t\t\"x-cursor-client-type\": \"cli\",\n\t\t\t});\n\n\t\t\tconst chunks: Buffer[] = [];\n\t\t\treq.on(\"data\", (chunk: Buffer) => chunks.push(chunk));\n\t\t\treq.on(\"end\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tclient.close();\n\t\t\t\tresolve(new Uint8Array(Buffer.concat(chunks)));\n\t\t\t});\n\t\t\treq.on(\"error\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tclient.close();\n\t\t\t\tresolve(null);\n\t\t\t});\n\t\t\treq.on(\"response\", (headers) => {\n\t\t\t\tconst status = Number(headers[\":status\"] ?? 0);\n\t\t\t\tif (status < 200 || status >= 300) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\tclient.close();\n\t\t\t\t\tresolve(null);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (body.length > 0) {\n\t\t\t\treq.end(Buffer.from(body));\n\t\t\t} else {\n\t\t\t\treq.end();\n\t\t\t}\n\t\t});\n\n\t\tif (!responseBuffer || responseBuffer.length === 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst decoded = decodeGetUsableModelsResponse(responseBuffer);\n\t\tif (!decoded) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst byId = new Map<string, CursorDiscoveredModel>();\n\t\tfor (const model of decoded.models ?? []) {\n\t\t\tconst id = model.modelId?.trim();\n\t\t\tif (!id) continue;\n\t\t\tconst name = pickModelDisplayName(model, id);\n\t\t\tconst labeled1M =\n\t\t\t\tCURSOR_1M_NAME_PATTERN.test(id) ||\n\t\t\t\t[model.displayName, model.displayNameShort, model.displayModelId, ...(model.aliases ?? [])].some(\n\t\t\t\t\t(candidate) => typeof candidate === \"string\" && CURSOR_1M_NAME_PATTERN.test(candidate),\n\t\t\t\t);\n\t\t\tconst maxMode = model.maxMode === true;\n\t\t\tconst contextWindow =\n\t\t\t\tlabeled1M || (maxMode && CURSOR_MAX_MODE_1M_ID_PATTERN.test(id))\n\t\t\t\t\t? CURSOR_1M_CONTEXT_WINDOW\n\t\t\t\t\t: CURSOR_DEFAULT_CONTEXT_WINDOW;\n\t\t\tbyId.set(id, {\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\treasoning: Boolean(model.thinkingDetails),\n\t\t\t\tinput: CURSOR_MULTIMODAL_ID_PATTERN.test(id.toLowerCase()) ? [\"text\", \"image\"] : [\"text\"],\n\t\t\t\tcontextWindow,\n\t\t\t\tmaxTokens: CURSOR_DEFAULT_MAX_TOKENS,\n\t\t\t\tcursorMaxMode: maxMode,\n\t\t\t});\n\t\t}\n\t\treturn [...byId.values()].sort((a, b) => a.id.localeCompare(b.id));\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction decodeGetUsableModelsResponse(payload: Uint8Array) {\n\tconst framedBody = decodeConnectUnaryBody(payload);\n\tif (framedBody) {\n\t\ttry {\n\t\t\treturn fromBinary(GetUsableModelsResponseSchema, framedBody);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n\ttry {\n\t\treturn fromBinary(GetUsableModelsResponseSchema, payload);\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction decodeConnectUnaryBody(payload: Uint8Array): Uint8Array | null {\n\tif (payload.length < 5) {\n\t\treturn null;\n\t}\n\n\tlet offset = 0;\n\twhile (offset + 5 <= payload.length) {\n\t\tconst flags = payload[offset];\n\t\tconst view = new DataView(payload.buffer, payload.byteOffset + offset, payload.byteLength - offset);\n\t\tconst messageLength = view.getUint32(1, false);\n\t\tconst frameEnd = offset + 5 + messageLength;\n\t\tif (frameEnd > payload.length) {\n\t\t\treturn null;\n\t\t}\n\t\tconst compressionFlagSet = (flags & 0b0000_0001) !== 0;\n\t\tif (compressionFlagSet) {\n\t\t\treturn null;\n\t\t}\n\t\tconst endStreamFlagSet = (flags & 0b0000_0010) !== 0;\n\t\tif (!endStreamFlagSet) {\n\t\t\treturn payload.subarray(offset + 5, frameEnd);\n\t\t}\n\n\t\toffset = frameEnd;\n\t}\n\n\treturn null;\n}\n\nfunction pickModelDisplayName(\n\tmodel: { displayName?: string; displayNameShort?: string; displayModelId?: string; aliases?: string[] },\n\tfallbackId: string,\n): string {\n\tconst candidates = [model.displayName, model.displayNameShort, model.displayModelId, ...(model.aliases ?? [])];\n\tfor (const candidate of candidates) {\n\t\tif (typeof candidate !== \"string\") {\n\t\t\tcontinue;\n\t\t}\n\t\tconst trimmed = candidate.trim();\n\t\tif (trimmed) {\n\t\t\treturn trimmed;\n\t\t}\n\t}\n\treturn fallbackId;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"cursor-agent.js","sourceRoot":"","sources":["../../src/api/cursor-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Cursor agent protocol (`agent.v1.AgentService/Run`) over HTTP/2 Connect.\n *\n * Ported from upstream oh-my-pi's Cursor provider and adapted to senpi's\n * provider-neutral API architecture. The protocol is server-driven: the\n * client opens one `Run` stream per assistant turn, the server streams\n * interaction updates (text/thinking/tool-call deltas) and, mid-turn, sends\n * `ExecServerMessage` frames asking the CLIENT to execute a tool and blocks\n * until the answer arrives on the same stream. Tool execution is therefore\n * bridged through injected {@link CursorExecHandlers}; each bridged call is\n * synthesized into the assistant message as an already-resolved `toolCall`\n * block (marked {@link kCursorExecResolved} so the agent loop never re-runs\n * it) and paired with a `ToolResultMessage` delivered via `onToolResult`.\n *\n * NOTE: This module is Node-only (node:http2) and must only be reached\n * through the lazy wrapper (`cursor-agent.lazy.ts`).\n */\n\nimport { createHash, randomUUID } from \"node:crypto\";\nimport * as http2 from \"node:http2\";\nimport { create, fromBinary, fromJson, type JsonValue as PbJsonValue, toBinary, toJson } from \"@bufbuild/protobuf\";\nimport { ValueSchema } from \"@bufbuild/protobuf/wkt\";\nimport { calculateCost } from \"../models.ts\";\nimport type {\n\tApi,\n\tAssistantMessage,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tSimpleStreamOptions,\n\tStreamFunction,\n\tTextContent,\n\tThinkingContent,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n} from \"../types.ts\";\nimport {\n\ttype CursorExecResolvedCarrier,\n\tclearStreamingPartialJson,\n\tkCursorExecResolved,\n\tkStreamingBlockIndex,\n\tkStreamingBlockKind,\n\tkStreamingEnvelopeId,\n\tkStreamingLastParseLen,\n\tkStreamingPartialJson,\n} from \"../utils/block-symbols.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { providerHeadersToRecord } from \"../utils/headers.ts\";\nimport { parseJsonWithRepair, parseStreamingJson } from \"../utils/json-parse.ts\";\nimport { sanitizeSurrogates } from \"../utils/sanitize-unicode.ts\";\nimport { deterministicUuid } from \"./cursor-agent/deterministic-id.ts\";\nimport { armExecHeartbeat } from \"./cursor-agent/exec-lifecycle.ts\";\nimport {\n\tbuildMcpStateResult,\n\tbuildNeutralHookResult,\n\tbuildPiBashError,\n\tbuildPiBashResult,\n\tbuildPiEditError,\n\tbuildPiEditRejected,\n\tbuildPiEditResult,\n\tbuildPiFindError,\n\tbuildPiFindResult,\n\tbuildPiGrepError,\n\tbuildPiGrepResult,\n\tbuildPiLsError,\n\tbuildPiLsResult,\n\tbuildPiReadError,\n\tbuildPiReadResult,\n\tbuildPiWriteError,\n\tbuildPiWriteRejected,\n\tbuildPiWriteResult,\n} from \"./cursor-agent/exec-modern.ts\";\nimport {\n\tAgentClientMessageSchema,\n\tAgentConversationTurnStructureSchema,\n\tAgentRunRequestSchema,\n\ttype AgentServerMessage,\n\tAgentServerMessageSchema,\n\tAgentStoreConflictErrorSchema,\n\tAgentStoreConflictResultSchema,\n\tAssistantMessageSchema,\n\tBackgroundShellSpawnResultSchema,\n\tCanvasDiagnosticsErrorSchema,\n\tCanvasDiagnosticsResultSchema,\n\tClientHeartbeatSchema,\n\tComputerUseErrorSchema,\n\tComputerUseResultSchema,\n\tConversationActionSchema,\n\tConversationSearchErrorSchema,\n\tConversationSearchResultSchema,\n\ttype ConversationStateStructure,\n\tConversationStateStructureSchema,\n\ttype ConversationStep,\n\tConversationStepSchema,\n\tConversationTurnStructureSchema,\n\tDeleteErrorSchema,\n\tDeleteRejectedSchema,\n\tDeleteResultSchema,\n\tDeleteSuccessSchema,\n\tDiagnosticsErrorSchema,\n\tDiagnosticsRejectedSchema,\n\tDiagnosticsResultSchema,\n\tDiagnosticsSuccessSchema,\n\tExecClientControlMessageSchema,\n\tExecClientHeartbeatSchema,\n\ttype ExecClientMessage,\n\tExecClientMessageSchema,\n\tExecClientStreamCloseSchema,\n\tExecClientThrowSchema,\n\ttype ExecServerMessage,\n\tFetchErrorSchema,\n\tFetchResultSchema,\n\tForceBackgroundShellResultSchema,\n\tForceBackgroundShellStatus,\n\tForceBackgroundSubagentResultSchema,\n\tForceBackgroundSubagentStatus,\n\tGetBlobResultSchema,\n\tGetUsableModelsRequestSchema,\n\tGetUsableModelsResponseSchema,\n\tGrepContentMatchSchema,\n\tGrepContentResultSchema,\n\tGrepCountResultSchema,\n\tGrepErrorSchema,\n\ttype GrepFileCount,\n\tGrepFileCountSchema,\n\tGrepFileMatchSchema,\n\tGrepFilesResultSchema,\n\tGrepResultSchema,\n\tGrepSuccessSchema,\n\ttype GrepUnionResult,\n\tGrepUnionResultSchema,\n\tKvClientMessageSchema,\n\ttype KvServerMessage,\n\tListMcpResourcesExecResultSchema,\n\tListMcpResourcesSuccessSchema,\n\ttype LsDirectoryTreeNode,\n\ttype LsDirectoryTreeNode_File,\n\tLsDirectoryTreeNode_FileSchema,\n\tLsDirectoryTreeNodeSchema,\n\tLsErrorSchema,\n\tLsRejectedSchema,\n\tLsResultSchema,\n\tLsSuccessSchema,\n\tMcpAllowlistPrecheckResultSchema,\n\tMcpApprovedSchema,\n\tMcpArgsSchema,\n\tMcpErrorSchema,\n\tMcpImageContentSchema,\n\tMcpRejectedSchema,\n\tMcpResultSchema,\n\tMcpSuccessSchema,\n\tMcpTextContentSchema,\n\tMcpToolCallSchema,\n\ttype McpToolDefinition,\n\tMcpToolDefinitionSchema,\n\tMcpToolErrorSchema,\n\tMcpToolNotFoundSchema,\n\tMcpToolResultContentItemSchema,\n\tMcpToolResultSchema,\n\tModelDetailsSchema,\n\tReadErrorSchema,\n\tReadMcpResourceExecResultSchema,\n\tReadMcpResourceNotFoundSchema,\n\tReadRejectedSchema,\n\tReadResultSchema,\n\tReadSuccessSchema,\n\tRecordScreenFailureSchema,\n\tRecordScreenResultSchema,\n\tRequestContextResultSchema,\n\tRequestContextSchema,\n\tRequestContextSuccessSchema,\n\tResumeActionSchema,\n\tSelectedContextSchema,\n\tSelectedImageSchema,\n\tSetBlobResultSchema,\n\tShellAllowlistPrecheckResultSchema,\n\ttype ShellArgs,\n\tShellFailureSchema,\n\tShellRejectedSchema,\n\ttype ShellResult,\n\tShellResultSchema,\n\ttype ShellStream,\n\tShellStreamExitSchema,\n\tShellStreamSchema,\n\tShellStreamStartSchema,\n\tShellStreamStderrSchema,\n\tShellStreamStdoutSchema,\n\tShellSuccessSchema,\n\tSmartModeClassifierErrorSchema,\n\tSmartModeClassifierResultSchema,\n\tSubagentAwaitNotFoundSchema,\n\tSubagentAwaitResultSchema,\n\tSubagentErrorSchema,\n\tSubagentResultSchema,\n\tToolCallSchema,\n\ttype TurnEndedUpdate,\n\tUserMessageActionSchema,\n\tUserMessageSchema,\n\tWebFetchAllowlistPrecheckResultSchema,\n\tWriteErrorSchema,\n\tWriteRejectedSchema,\n\tWriteResultSchema,\n\tWriteShellStdinErrorSchema,\n\tWriteShellStdinResultSchema,\n\tWriteSuccessSchema,\n} from \"./cursor-agent/gen/agent_pb.ts\";\nimport {\n\tcomposeShellCommand,\n\tomitUndefinedArgs,\n\tpiLimit,\n\tpiLsPath,\n\tpiReadArgs,\n\tpiTimeout,\n} from \"./cursor-agent/pi-args.ts\";\nimport { buildRequestedModel } from \"./cursor-agent/reasoning-params.ts\";\nimport type {\n\tCursorAgentOptions,\n\tCursorExecHandlerResult,\n\tCursorExecHandlers,\n\tCursorExecPairing,\n\tCursorMcpCall,\n\tCursorShellStreamCallbacks,\n\tCursorToolResultHandler,\n} from \"./cursor-agent/types.ts\";\nimport {\n\tCURSOR_CONVERSATION_POISONED_MESSAGE,\n\tcreateConversationRotationStore,\n\tisZeroTokenResourceExhausted,\n\tresolveConversationRotationPersistPath,\n} from \"./cursor-conversation-rotation.ts\";\nimport { keepUsableCursorTaskArgs } from \"./cursor-task-args.ts\";\n\nexport type {\n\tCursorAgentOptions,\n\tCursorExecHandlerResult,\n\tCursorExecHandlers,\n\tCursorExecPairing,\n\tCursorMcpCall,\n\tCursorPiCall,\n\tCursorShellStreamCallbacks,\n\tCursorToolResultHandler,\n} from \"./cursor-agent/types.ts\";\n\nexport const CURSOR_API_URL = \"https://api2.cursor.sh\";\nexport const CURSOR_CLIENT_VERSION = \"cli-2026.07.23-e383d2b\";\nconst EXEC_HEARTBEAT_INTERVAL_MS = 3000;\n\n/**\n * HTTP/1 connection-specific headers that HTTP/2 forbids. Node's\n * `http2.request()` throws on these rather than dropping them.\n */\nconst HTTP2_FORBIDDEN_HEADERS = new Set([\n\t\"connection\",\n\t\"keep-alive\",\n\t\"proxy-connection\",\n\t\"transfer-encoding\",\n\t\"upgrade\",\n\t\"http2-settings\",\n]);\n\n/**\n * Header names the Cursor request sets for itself. A caller copy in ANY\n * casing has to go: the spread below adds the fixed lower-case name\n * regardless, and two spellings of one field are a duplicate (node throws\n * `ERR_HTTP2_HEADER_SINGLE_VALUE`) rather than an override.\n */\nconst CURSOR_RESERVED_HEADERS = new Set([\n\t\"content-type\",\n\t\"connect-protocol-version\",\n\t\"te\",\n\t\"authorization\",\n\t\"x-ghost-mode\",\n\t\"x-cursor-client-version\",\n\t\"x-cursor-client-type\",\n\t\"x-request-id\",\n\t// Transport-owned: a plain `host` header suppresses the `:authority` node\n\t// derives from the URL, silently retargeting the request.\n\t\"host\",\n\t// The Connect body is streamed after the headers (initial frame,\n\t// heartbeats, tool responses), so no caller-supplied length can describe it.\n\t\"content-length\",\n]);\n\n/** Reduce caller-supplied headers to what this HTTP/2 request can legally carry. */\nexport function sanitizeCursorCallerHeaders(headers: Record<string, string> | undefined): Record<string, string> {\n\tconst sanitized: Record<string, string> = {};\n\tfor (const [name, value] of Object.entries(headers ?? {})) {\n\t\tconst field = name.toLowerCase();\n\t\tif (field.startsWith(\":\")) continue;\n\t\tif (HTTP2_FORBIDDEN_HEADERS.has(field)) continue;\n\t\tif (CURSOR_RESERVED_HEADERS.has(field)) continue;\n\t\tsanitized[field] = value;\n\t}\n\treturn sanitized;\n}\n\n/**\n * Text for a recognised frame this client answers with its own typed error\n * variant. Phrased as a client capability statement, not a tool failure: the\n * model reads it and should route around the capability, not retry the call.\n */\nconst NOT_IMPLEMENTED_SUFFIX = \"not implemented by this client\";\nconst NOT_IMPLEMENTED = \"Not implemented by this client\";\n/** Bare gRPC `resource_exhausted` end-streams (also inside a Connect error message). */\nconst conversationStateCache = new Map<string, ConversationStateStructure>();\nconst conversationBlobStores = new Map<string, Map<string, Uint8Array>>();\n/**\n * Base conversation id → rotated wire id. Cursor's backend can pin a\n * per-conversation rejection (bare `resource_exhausted`, zero tokens) to one\n * conversationId forever. On the first such failure the id is rotated once\n * and the cached state migrates, so the retry loop's next attempt starts a\n * fresh conversation. Keyed by the base id so a failed rotation never repeats.\n */\nlet conversationRotationStore = createConversationRotationStore({\n\tpersistPath: resolveConversationRotationPersistPath(),\n});\nlet conversationRotationPersistPath = resolveConversationRotationPersistPath();\nfunction rotationStore() {\n\tconst persistPath = resolveConversationRotationPersistPath();\n\tif (persistPath !== conversationRotationPersistPath) {\n\t\tconversationRotationPersistPath = persistPath;\n\t\tconversationRotationStore = createConversationRotationStore({ persistPath });\n\t}\n\treturn conversationRotationStore;\n}\n\nconst CONNECT_END_STREAM_FLAG = 0b00000010;\n\nfunction log(type: string, subtype?: string, data?: unknown): void {\n\tif (!process.env.DEBUG_CURSOR) return;\n\tconst verbose = process.env.DEBUG_CURSOR === \"2\" || process.env.DEBUG_CURSOR === \"verbose\";\n\tlet dataStr = \"\";\n\tif (verbose && data !== undefined) {\n\t\ttry {\n\t\t\tdataStr = ` ${JSON.stringify(data, (_key, value) => {\n\t\t\t\tif (value instanceof Uint8Array) return `bytes(${value.length})`;\n\t\t\t\tif (typeof value === \"bigint\") return value.toString();\n\t\t\t\treturn value;\n\t\t\t})?.slice(0, 500)}`;\n\t\t} catch {\n\t\t\tdataStr = \" [unserializable]\";\n\t\t}\n\t}\n\tconsole.error(`[CURSOR] ${type}${subtype ? `: ${subtype}` : \"\"}${dataStr}`);\n}\n\nexport function frameConnectMessage(data: Uint8Array, flags = 0): Buffer {\n\tconst frame = Buffer.alloc(5 + data.length);\n\tframe[0] = flags;\n\tframe.writeUInt32BE(data.length, 1);\n\tframe.set(data, 5);\n\treturn frame;\n}\n\nfunction parseConnectEndStream(data: Uint8Array): Error | null {\n\ttry {\n\t\tconst payload = JSON.parse(new TextDecoder().decode(data));\n\t\tconst error = payload?.error;\n\t\tif (error) {\n\t\t\tconst code = typeof error.code === \"string\" ? error.code : \"unknown\";\n\t\t\tconst message = typeof error.message === \"string\" ? error.message : \"Unknown error\";\n\t\t\treturn new Error(`Connect error ${code}: ${message}`);\n\t\t}\n\t\treturn null;\n\t} catch {\n\t\treturn new Error(\"Failed to parse Connect end stream\");\n\t}\n}\n\n/**\n * Maps an opaque HTTP/2 negotiation failure into an actionable error. The\n * Cursor run RPC is HTTP/2-only (the ALB rejects HTTP/1.1 with 464), so a\n * TLS-intercepting proxy that strips ALPN kills the run with no h1 fallback.\n */\nexport function mapH2TransportError(error: unknown, baseUrl: string): unknown {\n\tconst code = (error as { code?: unknown } | null)?.code;\n\tconst message = error instanceof Error ? error.message : String(error);\n\tif (code === \"ERR_HTTP2_ERROR\" && /h2 is not supported/i.test(message)) {\n\t\treturn new Error(\n\t\t\t`Cursor run transport could not negotiate HTTP/2 with ${baseUrl}: \"h2 is not supported\". ` +\n\t\t\t\t\"This host serves the run RPC over HTTP/2 only, and the TLS handshake did not negotiate \" +\n\t\t\t\t\"h2 via ALPN — typically an ALPN-stripping TLS-intercepting proxy. \" +\n\t\t\t\t\"Front the provider with a local HTTP/2 bridge and point the model's baseUrl at it.\",\n\t\t);\n\t}\n\treturn error;\n}\n\nexport const stream: StreamFunction<\"cursor-agent\", CursorAgentOptions> = (\n\tmodel: Model<\"cursor-agent\">,\n\tcontext: Context,\n\toptions?: CursorAgentOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\n\t(async () => {\n\t\tconst output: AssistantMessage = {\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [],\n\t\t\tapi: \"cursor-agent\" as Api,\n\t\t\tprovider: model.provider,\n\t\t\tmodel: model.id,\n\t\t\tusage: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotalTokens: 0,\n\t\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t\t},\n\t\t\tstopReason: \"stop\",\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\n\t\t// Declared outside the `try` because BOTH exits must drain it: an exec\n\t\t// handler decoded from the last chunk can still be running when the\n\t\t// transport fails, and the error path finalizes the synthesized call\n\t\t// just like the success path does.\n\t\tconst inFlightDispatches = new Set<Promise<void>>();\n\t\t// A dispatch can spawn another, so re-check rather than awaiting one\n\t\t// snapshot. The wait is bounded by the abort signal: exec handlers have\n\t\t// no cancellation contract, so a hung tool must not hold the terminal\n\t\t// event hostage after the user already gave up on the turn.\n\t\tlet abortSettled: Promise<void> | undefined;\n\t\tconst drainInFlightDispatches = async (): Promise<void> => {\n\t\t\tconst signal = options?.signal;\n\t\t\twhile (inFlightDispatches.size > 0) {\n\t\t\t\tif (signal?.aborted) return;\n\t\t\t\tconst settled = Promise.all([...inFlightDispatches]);\n\t\t\t\tif (!signal) {\n\t\t\t\t\tawait settled;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tabortSettled ??= new Promise<void>((resolve) =>\n\t\t\t\t\tsignal.addEventListener(\"abort\", () => resolve(), { once: true }),\n\t\t\t\t);\n\t\t\t\tawait Promise.race([settled, abortSettled]);\n\t\t\t}\n\t\t};\n\n\t\tlet h2Client: http2.ClientHttp2Session | null = null;\n\t\tlet h2Request: http2.ClientHttp2Stream | null = null;\n\t\tlet heartbeatTimer: NodeJS.Timeout | null = null;\n\t\tlet h2Settled = false;\n\t\tlet sawTurnEnded = false;\n\t\tlet endStreamError: Error | null = null;\n\t\t// Reachable from the catch: a stream that dies mid-turn must still close\n\t\t// and pair the blocks it left open.\n\t\tlet openBlockState: BlockState | undefined;\n\t\tlet resolveH2: () => void = () => {};\n\t\tlet rejectH2: (error: unknown) => void = () => {};\n\t\tconst settleH2 = (error?: unknown): void => {\n\t\t\tif (h2Settled) return;\n\t\t\th2Settled = true;\n\t\t\tif (error !== undefined) {\n\t\t\t\trejectH2(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (endStreamError) {\n\t\t\t\trejectH2(endStreamError);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!sawTurnEnded) {\n\t\t\t\trejectH2(new Error(\"Cursor stream ended before turnEnded\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolveH2();\n\t\t};\n\n\t\t// Hoisted out of the try block: the rotation in the catch path needs\n\t\t// both ids, and the catch block cannot see try-scoped consts.\n\t\tlet baseConversationId: string | undefined;\n\t\tlet conversationId: string | undefined;\n\t\tlet usageState: UsageState | undefined;\n\t\tlet retryPoisonedConversation = false;\n\t\tlet attempt = 0;\n\t\tdo {\n\t\t\tretryPoisonedConversation = false;\n\t\t\tattempt += 1;\n\t\t\th2Settled = false;\n\t\t\tsawTurnEnded = false;\n\t\t\tendStreamError = null;\n\t\t\topenBlockState = undefined;\n\t\t\tconst h2Completion = new Promise<void>((resolve, reject) => {\n\t\t\t\tresolveH2 = resolve;\n\t\t\t\trejectH2 = reject;\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tconst apiKey = options?.apiKey;\n\t\t\t\tif (!apiKey) {\n\t\t\t\t\tthrow new Error(\"Cursor access token is required; run /login cursor\");\n\t\t\t\t}\n\n\t\t\t\tbaseConversationId = options?.conversationId ?? options?.sessionId ?? randomUUID();\n\t\t\t\tconversationId = rotationStore().getWireId(baseConversationId);\n\t\t\t\tconst blobStore = conversationBlobStores.get(conversationId) ?? new Map<string, Uint8Array>();\n\t\t\t\tconversationBlobStores.set(conversationId, blobStore);\n\t\t\t\tconst cachedState = conversationStateCache.get(conversationId);\n\t\t\t\tconst { requestBytes, conversationState } = await buildGrpcRequest(model, context, options, {\n\t\t\t\t\tconversationId,\n\t\t\t\t\tblobStore,\n\t\t\t\t\tconversationState: cachedState,\n\t\t\t\t});\n\t\t\t\tconversationStateCache.set(conversationId, conversationState);\n\t\t\t\tconst requestContextTools = buildMcpToolDefinitions(context.tools);\n\n\t\t\t\tconst baseUrl = model.baseUrl || CURSOR_API_URL;\n\t\t\t\tconst requestPath = \"/agent.v1.AgentService/Run\";\n\t\t\t\t// Caller headers are additive, and are spread FIRST so the protocol\n\t\t\t\t// framing, auth, and request id below always win.\n\t\t\t\tconst callerHeaders = sanitizeCursorCallerHeaders(providerHeadersToRecord(options?.headers));\n\t\t\t\tconst requestHeaders = {\n\t\t\t\t\t...callerHeaders,\n\t\t\t\t\t\":method\": \"POST\",\n\t\t\t\t\t\":path\": requestPath,\n\t\t\t\t\t\"content-type\": \"application/connect+proto\",\n\t\t\t\t\t\"connect-protocol-version\": \"1\",\n\t\t\t\t\tte: \"trailers\",\n\t\t\t\t\tauthorization: `Bearer ${apiKey}`,\n\t\t\t\t\t\"x-ghost-mode\": \"true\",\n\t\t\t\t\t\"x-cursor-client-version\": CURSOR_CLIENT_VERSION,\n\t\t\t\t\t\"x-cursor-client-type\": \"cli\",\n\t\t\t\t\t\"x-request-id\": randomUUID(),\n\t\t\t\t};\n\n\t\t\t\th2Client = http2.connect(baseUrl);\n\t\t\t\th2Client.on(\"error\", (error) => settleH2(mapH2TransportError(error, baseUrl)));\n\n\t\t\t\th2Request = h2Client.request(requestHeaders);\n\n\t\t\t\tif (attempt === 1) {\n\t\t\t\t\tstream.push({ type: \"start\", partial: output });\n\t\t\t\t}\n\n\t\t\t\tlet pendingBuffer: Buffer = Buffer.alloc(0);\n\t\t\t\tlet currentTextBlock: (TextContent & { [kStreamingBlockIndex]: number }) | null = null;\n\t\t\t\tlet currentThinkingBlock: (ThinkingContent & { [kStreamingBlockIndex]: number }) | null = null;\n\t\t\t\tlet currentToolCall: ToolCallState | null = null;\n\t\t\t\tconst resolvedMcpToolCallIds = new Set<string>();\n\t\t\t\tusageState = { sawTokenDelta: false, sawTurnEndedUsage: false };\n\n\t\t\t\tconst state: BlockState = {\n\t\t\t\t\tget currentTextBlock() {\n\t\t\t\t\t\treturn currentTextBlock;\n\t\t\t\t\t},\n\t\t\t\t\tget currentThinkingBlock() {\n\t\t\t\t\t\treturn currentThinkingBlock;\n\t\t\t\t\t},\n\t\t\t\t\tget currentToolCall() {\n\t\t\t\t\t\treturn currentToolCall;\n\t\t\t\t\t},\n\t\t\t\t\topenToolCalls: new Map<string, ToolCallState>(),\n\t\t\t\t\tresolvedMcpToolCallIds,\n\t\t\t\t\tsetTextBlock: (b) => {\n\t\t\t\t\t\tcurrentTextBlock = b;\n\t\t\t\t\t},\n\t\t\t\t\tsetThinkingBlock: (b) => {\n\t\t\t\t\t\tcurrentThinkingBlock = b;\n\t\t\t\t\t},\n\t\t\t\t\tsetToolCall: (t) => {\n\t\t\t\t\t\tcurrentToolCall = t;\n\t\t\t\t\t},\n\t\t\t\t\tonToolResult: options?.onToolResult ?? options?.execHandlers?.onToolResult,\n\t\t\t\t};\n\t\t\t\topenBlockState = state;\n\n\t\t\t\tconst onConversationCheckpoint = (checkpoint: ConversationStateStructure) => {\n\t\t\t\t\tconversationStateCache.set(conversationId!, checkpoint);\n\t\t\t\t};\n\n\t\t\t\th2Request.on(\"data\", (chunk: Buffer) => {\n\t\t\t\t\t// Steady state drains fully per chunk; alias the fresh h2 chunk\n\t\t\t\t\t// instead of copying it through Buffer.concat.\n\t\t\t\t\tpendingBuffer = pendingBuffer.length === 0 ? chunk : Buffer.concat([pendingBuffer, chunk]);\n\n\t\t\t\t\twhile (pendingBuffer.length >= 5) {\n\t\t\t\t\t\tconst flags = pendingBuffer[0];\n\t\t\t\t\t\tconst msgLen = pendingBuffer.readUInt32BE(1);\n\t\t\t\t\t\tif (pendingBuffer.length < 5 + msgLen) break;\n\n\t\t\t\t\t\tconst messageBytes = pendingBuffer.subarray(5, 5 + msgLen);\n\t\t\t\t\t\tpendingBuffer = pendingBuffer.subarray(5 + msgLen);\n\n\t\t\t\t\t\tif (flags & CONNECT_END_STREAM_FLAG) {\n\t\t\t\t\t\t\tconst endError = parseConnectEndStream(messageBytes);\n\t\t\t\t\t\t\tif (endError) {\n\t\t\t\t\t\t\t\tendStreamError = endError;\n\t\t\t\t\t\t\t\th2Request?.close();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst serverMessage = fromBinary(AgentServerMessageSchema, messageBytes);\n\t\t\t\t\t\t\tconst isTurnEnded =\n\t\t\t\t\t\t\t\tserverMessage.message.case === \"interactionUpdate\" &&\n\t\t\t\t\t\t\t\tserverMessage.message.value.message?.case === \"turnEnded\";\n\t\t\t\t\t\t\t// Dispatch is fire-and-forget so the socket keeps draining\n\t\t\t\t\t\t\t// while a handler runs, but the promise is tracked: `done`\n\t\t\t\t\t\t\t// must not be pushed while an exec handler is still resolving,\n\t\t\t\t\t\t\t// or the buffered tool result is delivered after the turn\n\t\t\t\t\t\t\t// already finalized and the call is left unpaired.\n\t\t\t\t\t\t\tconst dispatch = handleServerMessage(\n\t\t\t\t\t\t\t\tserverMessage,\n\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\tstream,\n\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\tblobStore,\n\t\t\t\t\t\t\t\th2Request!,\n\t\t\t\t\t\t\t\toptions?.execHandlers,\n\t\t\t\t\t\t\t\tstate.onToolResult,\n\t\t\t\t\t\t\t\tusageState!,\n\t\t\t\t\t\t\t\trequestContextTools,\n\t\t\t\t\t\t\t\tonConversationCheckpoint,\n\t\t\t\t\t\t\t).catch((error) => {\n\t\t\t\t\t\t\t\tlog(\"error\", \"handleServerMessage\", { error: String(error) });\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tinFlightDispatches.add(dispatch);\n\t\t\t\t\t\t\tvoid dispatch.finally(() => inFlightDispatches.delete(dispatch));\n\n\t\t\t\t\t\t\t// Application completion is not protocol success; wait for a\n\t\t\t\t\t\t\t// clean HTTP/2 end.\n\t\t\t\t\t\t\tif (isTurnEnded) {\n\t\t\t\t\t\t\t\tsawTurnEnded = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tlog(\"error\", \"parseServerMessage\", { error: String(e) });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tconst sendHeartbeat = () => {\n\t\t\t\t\tif (!h2Request || h2Request.closed) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst heartbeatMessage = create(AgentClientMessageSchema, {\n\t\t\t\t\t\tmessage: { case: \"clientHeartbeat\", value: create(ClientHeartbeatSchema, {}) },\n\t\t\t\t\t});\n\t\t\t\t\tconst heartbeatBytes = toBinary(AgentClientMessageSchema, heartbeatMessage);\n\t\t\t\t\th2Request.write(frameConnectMessage(heartbeatBytes));\n\t\t\t\t};\n\n\t\t\t\th2Request.on(\"trailers\", (trailers) => {\n\t\t\t\t\tconst status = trailers[\"grpc-status\"];\n\t\t\t\t\tconst msg = trailers[\"grpc-message\"];\n\t\t\t\t\tif (status && status !== \"0\" && !endStreamError) {\n\t\t\t\t\t\tendStreamError = new Error(`gRPC error ${status}: ${decodeURIComponent(String(msg || \"\"))}`);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\th2Request.on(\"end\", () => {\n\t\t\t\t\tsettleH2();\n\t\t\t\t});\n\n\t\t\t\th2Request.on(\"error\", (error) => {\n\t\t\t\t\tsettleH2(mapH2TransportError(error, baseUrl));\n\t\t\t\t});\n\n\t\t\t\tif (options?.signal) {\n\t\t\t\t\toptions.signal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\th2Request?.close();\n\t\t\t\t\t\tsettleH2(new Error(\"Request was aborted\"));\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\th2Request.write(frameConnectMessage(requestBytes));\n\t\t\t\theartbeatTimer = setInterval(sendHeartbeat, 5000);\n\t\t\t\tawait h2Completion;\n\t\t\t\t// The transport is done, but a handler decoded from the last chunk\n\t\t\t\t// may still be running. Pushing `done` now would let the host drain\n\t\t\t\t// its buffered tool results before such a handler reserved its entry,\n\t\t\t\t// leaving the call unpaired and stripped from rebuilt transcripts.\n\t\t\t\tawait drainInFlightDispatches();\n\n\t\t\t\tendCurrentTextBlock(output, stream, state);\n\t\t\t\tendCurrentThinkingBlock(output, stream, state);\n\t\t\t\tflushOpenToolCalls(output, stream, state);\n\n\t\t\t\tcalculateCost(model, output.usage);\n\n\t\t\t\tstream.push({\n\t\t\t\t\ttype: \"done\",\n\t\t\t\t\treason: output.stopReason as \"stop\" | \"length\" | \"toolUse\",\n\t\t\t\t\tmessage: output,\n\t\t\t\t});\n\t\t\t\tstream.end();\n\t\t\t} catch (error) {\n\t\t\t\t// Same reason as the success path: a handler still running would land\n\t\t\t\t// its real result after the turn finalized and be discarded — even\n\t\t\t\t// though the tool may already have run side effects. On abort the\n\t\t\t\t// drain returns immediately.\n\t\t\t\tawait drainInFlightDispatches();\n\t\t\t\t// A stream that dies mid-turn leaves blocks open. Closing them here\n\t\t\t\t// settles their live cards and pairs the server-owned calls that\n\t\t\t\t// nothing else answers — an unpaired call is stripped from every\n\t\t\t\t// rebuilt transcript.\n\t\t\t\tif (openBlockState) {\n\t\t\t\t\tendCurrentTextBlock(output, stream, openBlockState);\n\t\t\t\t\tendCurrentThinkingBlock(output, stream, openBlockState);\n\t\t\t\t\tflushOpenToolCalls(output, stream, openBlockState);\n\t\t\t\t}\n\t\t\t\tlet message = error instanceof Error ? error.message : JSON.stringify(error);\n\t\t\t\t// A server-side per-conversation rejection surfaces as a bare\n\t\t\t\t// resource_exhausted with zero tokens. That has two distinct causes:\n\t\t\t\t// an oversized payload, and a genuinely poisoned conversationId.\n\t\t\t\t// Only the second is fixed by rotating the wire id.\n\t\t\t\t//\n\t\t\t\t// The FIRST 0-token RE for a base conversation always surfaces without\n\t\t\t\t// rotating, so the session layer gets first refusal: agent-session\n\t\t\t\t// classifies a surfaced 0-token RE as overflow and compacts before\n\t\t\t\t// retrying. Rotating here instead would swallow the error, make that\n\t\t\t\t// compaction dead code, and burn the 3-rotation budget replaying the\n\t\t\t\t// same oversized payload. Once that surface has happened (the flag is\n\t\t\t\t// persisted with the wire id), compaction has had its turn and further\n\t\t\t\t// 0-token REs rotate and retry in-call, up to the cap.\n\t\t\t\tif (\n\t\t\t\t\tconversationId !== undefined &&\n\t\t\t\t\tbaseConversationId !== undefined &&\n\t\t\t\t\tusageState !== undefined &&\n\t\t\t\t\tisZeroTokenResourceExhausted(message, usageState.sawTokenDelta)\n\t\t\t\t) {\n\t\t\t\t\tif (rotationStore().shouldSkip(baseConversationId)) {\n\t\t\t\t\t\t// The base conversation burned its rotation cap; another wire id\n\t\t\t\t\t\t// will not help, so surface the poisoned-conversation error and\n\t\t\t\t\t\t// let the session move to a different provider.\n\t\t\t\t\t\tmessage = CURSOR_CONVERSATION_POISONED_MESSAGE;\n\t\t\t\t\t} else if (rotationStore().shouldSurfaceBeforeRotating(baseConversationId)) {\n\t\t\t\t\t\t// First 0-token RE for this conversation: surface it so the\n\t\t\t\t\t\t// session layer can compact. If the payload really was oversized,\n\t\t\t\t\t\t// the compacted retry succeeds and no rotation is ever spent.\n\t\t\t\t\t\trotationStore().markSurfaced(baseConversationId, conversationId);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst decision = rotationStore().recordZeroTokenPoison(baseConversationId, conversationId);\n\t\t\t\t\t\tif (decision.kind === \"rotated\") {\n\t\t\t\t\t\t\tconst cached = conversationStateCache.get(conversationId);\n\t\t\t\t\t\t\tif (cached) conversationStateCache.set(decision.wireId, cached);\n\t\t\t\t\t\t\tconst blobs = conversationBlobStores.get(conversationId);\n\t\t\t\t\t\t\tif (blobs) conversationBlobStores.set(decision.wireId, blobs);\n\t\t\t\t\t\t\tretryPoisonedConversation = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmessage = CURSOR_CONVERSATION_POISONED_MESSAGE;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!retryPoisonedConversation) {\n\t\t\t\t\toutput.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\t\t\t\t\toutput.errorMessage = message;\n\t\t\t\t\tstream.push({ type: \"error\", reason: output.stopReason, error: output });\n\t\t\t\t\tstream.end();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (heartbeatTimer) {\n\t\t\t\t\tclearInterval(heartbeatTimer);\n\t\t\t\t\theartbeatTimer = null;\n\t\t\t\t}\n\t\t\t\th2Request?.close();\n\t\t\t\th2Client?.close();\n\t\t\t\th2Request = null;\n\t\t\t\th2Client = null;\n\t\t\t}\n\t\t} while (retryPoisonedConversation);\n\t})();\n\n\treturn stream;\n};\n\n/**\n * `streamSimple` for Cursor: an explicit thinking selection (`options.thinkingSelection`)\n * is rendered into `RequestedModel.parameters`; reasoning output itself streams back as\n * `ThinkingContent` regardless of the selection.\n */\nexport const streamSimple: StreamFunction<\"cursor-agent\", SimpleStreamOptions> = (\n\tmodel: Model<\"cursor-agent\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\treturn stream(model, context, options as CursorAgentOptions);\n};\n\nexport type ToolCallState = ToolCall & {\n\t[kStreamingBlockIndex]: number;\n\t[kStreamingPartialJson]?: string;\n\t[kStreamingLastParseLen]?: number;\n\t[kStreamingBlockKind]: \"mcp\" | \"todo\" | \"cursor-exec\" | \"connect-scm\";\n\t[kStreamingEnvelopeId]?: string;\n\t[kCursorExecResolved]?: true;\n};\n\nexport interface BlockState {\n\tcurrentTextBlock: (TextContent & { [kStreamingBlockIndex]: number }) | null;\n\tcurrentThinkingBlock: (ThinkingContent & { [kStreamingBlockIndex]: number }) | null;\n\tcurrentToolCall: ToolCallState | null;\n\t/**\n\t * Open streamed tool-call blocks, keyed by the interaction envelope's\n\t * `call_id`. Cursor interleaves calls: two `toolCallStarted` frames can\n\t * arrive before either completes.\n\t */\n\topenToolCalls: Map<string, ToolCallState>;\n\t/** MCP call IDs synthesized from exec frames before their redundant streamed block arrives. */\n\tresolvedMcpToolCallIds: Set<string>;\n\tsetTextBlock: (b: (TextContent & { [kStreamingBlockIndex]: number }) | null) => void;\n\tsetThinkingBlock: (b: (ThinkingContent & { [kStreamingBlockIndex]: number }) | null) => void;\n\tsetToolCall: (t: ToolCallState | null) => void;\n\t/**\n\t * Persist a paired `toolResult` for a server-resolved call. Native todo\n\t * calls never travel the exec channel, so without this the resolved block\n\t * has no matching result and every transcript rebuild strips it as dangling.\n\t */\n\tonToolResult?: CursorToolResultHandler;\n}\n\nfunction markCursorExecResolved(block: CursorExecResolvedCarrier): void {\n\tblock[kCursorExecResolved] = true;\n}\n\nexport interface UsageState {\n\tsawTokenDelta: boolean;\n\tsawTurnEndedUsage: boolean;\n\t/** Last checkpoint `usedTokens`; conversation window, not billed cache. */\n\tliveUsedTokens?: number;\n}\n\n/** Exported for tests: drives one Cursor server message through the stream (exec waits mark the stream busy). */\nexport async function handleServerMessage(\n\tmsg: AgentServerMessage,\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n\tblobStore: Map<string, Uint8Array>,\n\th2Request: http2.ClientHttp2Stream,\n\texecHandlers: CursorExecHandlers | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n\tusageState: UsageState,\n\trequestContextTools: McpToolDefinition[],\n\tonConversationCheckpoint?: (checkpoint: ConversationStateStructure) => void,\n): Promise<void> {\n\tconst msgCase = msg.message.case;\n\n\tlog(\"serverMessage\", msgCase);\n\n\tif (msgCase === \"interactionUpdate\") {\n\t\tprocessInteractionUpdate(msg.message.value, output, stream, state, usageState);\n\t} else if (msgCase === \"kvServerMessage\") {\n\t\thandleKvServerMessage(msg.message.value as KvServerMessage, blobStore, h2Request);\n\t} else if (msgCase === \"execServerMessage\") {\n\t\t// The server is waiting on OUR local tool result during this window — no\n\t\t// AssistantMessageEvent flows until the handler finishes. Mark the wait\n\t\t// as local work so idle watchdogs attribute the silence to the tool run\n\t\t// instead of aborting a healthy stream.\n\t\tawait stream.trackLocalWork(\n\t\t\thandleExecServerMessage(\n\t\t\t\tmsg.message.value as ExecServerMessage,\n\t\t\t\th2Request,\n\t\t\t\texecHandlers,\n\t\t\t\tonToolResult,\n\t\t\t\trequestContextTools,\n\t\t\t\toutput,\n\t\t\t\tstream,\n\t\t\t\tstate,\n\t\t\t),\n\t\t);\n\t} else if (msgCase === \"conversationCheckpointUpdate\") {\n\t\tapplyCheckpointTokenDetails(msg.message.value, output, usageState);\n\t\tonConversationCheckpoint?.(msg.message.value);\n\t}\n}\n\nfunction handleKvServerMessage(\n\tkvMsg: KvServerMessage,\n\tblobStore: Map<string, Uint8Array>,\n\th2Request: http2.ClientHttp2Stream,\n): void {\n\tconst kvCase = kvMsg.message.case;\n\n\tif (kvCase === \"getBlobArgs\") {\n\t\tconst blobId = kvMsg.message.value.blobId;\n\t\tconst blobIdKey = Buffer.from(blobId).toString(\"hex\");\n\t\tconst blobData = blobStore.get(blobIdKey);\n\t\tconst response = create(KvClientMessageSchema, {\n\t\t\tid: kvMsg.id,\n\t\t\tmessage: {\n\t\t\t\tcase: \"getBlobResult\",\n\t\t\t\tvalue: create(GetBlobResultSchema, blobData ? { blobData } : {}),\n\t\t\t},\n\t\t});\n\t\tconst kvClientMessage = create(AgentClientMessageSchema, {\n\t\t\tmessage: { case: \"kvClientMessage\", value: response },\n\t\t});\n\t\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, kvClientMessage)));\n\t\tlog(\"kvClient\", \"getBlobResult\", { blobId: blobIdKey.slice(0, 40) });\n\t} else if (kvCase === \"setBlobArgs\") {\n\t\tconst { blobId, blobData } = kvMsg.message.value;\n\t\tconst blobIdKey = Buffer.from(blobId).toString(\"hex\");\n\t\tblobStore.set(blobIdKey, blobData);\n\t\tconst response = create(KvClientMessageSchema, {\n\t\t\tid: kvMsg.id,\n\t\t\tmessage: {\n\t\t\t\tcase: \"setBlobResult\",\n\t\t\t\tvalue: create(SetBlobResultSchema, {}),\n\t\t\t},\n\t\t});\n\t\tconst kvClientMessage = create(AgentClientMessageSchema, {\n\t\t\tmessage: { case: \"kvClientMessage\", value: response },\n\t\t});\n\t\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, kvClientMessage)));\n\t\tlog(\"kvClient\", \"setBlobResult\", { blobId: blobIdKey.slice(0, 40) });\n\t}\n}\n\nfunction sendShellStreamEvent(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\tevent: ShellStream[\"event\"],\n): void {\n\tsendExecClientMessage(h2Request, execMsg, \"shellStream\", create(ShellStreamSchema, { event }));\n}\n\nfunction sanitizeShellExecResult(execResult: ShellResult): ShellResult {\n\tconst result = execResult.result;\n\tif (!result) return execResult;\n\n\tswitch (result.case) {\n\t\tcase \"success\":\n\t\tcase \"failure\": {\n\t\t\tconst value = result.value;\n\t\t\treturn {\n\t\t\t\t...execResult,\n\t\t\t\tresult: {\n\t\t\t\t\tcase: result.case,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\tstdout: value.stdout ? sanitizeSurrogates(value.stdout) : value.stdout,\n\t\t\t\t\t\tstderr: value.stderr ? sanitizeSurrogates(value.stderr) : value.stderr,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} as ShellResult;\n\t\t}\n\t\tdefault:\n\t\t\treturn execResult;\n\t}\n}\n\nasync function handleShellStreamArgs(\n\targs: ShellArgs,\n\texecMsg: ExecServerMessage,\n\th2Request: http2.ClientHttp2Stream,\n\texecHandlers: CursorExecHandlers | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n): Promise<void> {\n\tconst normalizedWorkingDirectory = args.workingDirectory || process.cwd();\n\tconst normalizedArgs: ShellArgs = { ...args, workingDirectory: normalizedWorkingDirectory };\n\n\tsendShellStreamEvent(h2Request, execMsg, { case: \"start\", value: create(ShellStreamStartSchema, {}) });\n\n\t// Buffer for incomplete ANSI sequences across chunks.\n\tlet stdoutBuffer = \"\";\n\tlet stderrBuffer = \"\";\n\n\tconst incompleteEscapeRegex = /\\x1b(|\\[|\\[\\d*|\\[\\?|\\[\\?\\d*|\\]\\d*;?)$/;\n\n\tconst flushStdout = () => {\n\t\tif (stdoutBuffer) {\n\t\t\tlet safeEnd = stdoutBuffer.length;\n\t\t\tconst match = stdoutBuffer.match(incompleteEscapeRegex);\n\t\t\tif (match && match[0].length > 0) {\n\t\t\t\tsafeEnd = stdoutBuffer.length - match[0].length;\n\t\t\t}\n\t\t\tconst toSend = stdoutBuffer.slice(0, safeEnd);\n\t\t\tconst remaining = stdoutBuffer.slice(safeEnd);\n\t\t\tif (toSend) {\n\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\tcase: \"stdout\",\n\t\t\t\t\tvalue: create(ShellStreamStdoutSchema, { data: sanitizeSurrogates(toSend) }),\n\t\t\t\t});\n\t\t\t}\n\t\t\tstdoutBuffer = remaining;\n\t\t}\n\t};\n\n\tconst flushStderr = () => {\n\t\tif (stderrBuffer) {\n\t\t\tlet safeEnd = stderrBuffer.length;\n\t\t\tconst match = stderrBuffer.match(incompleteEscapeRegex);\n\t\t\tif (match && match[0].length > 0) {\n\t\t\t\tsafeEnd = stderrBuffer.length - match[0].length;\n\t\t\t}\n\t\t\tconst toSend = stderrBuffer.slice(0, safeEnd);\n\t\t\tconst remaining = stderrBuffer.slice(safeEnd);\n\t\t\tif (toSend) {\n\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\tcase: \"stderr\",\n\t\t\t\t\tvalue: create(ShellStreamStderrSchema, { data: sanitizeSurrogates(toSend) }),\n\t\t\t\t});\n\t\t\t}\n\t\t\tstderrBuffer = remaining;\n\t\t}\n\t};\n\n\tlet stdoutFlushTimer: NodeJS.Timeout | null = null;\n\tlet stderrFlushTimer: NodeJS.Timeout | null = null;\n\n\tconst scheduleStdoutFlush = () => {\n\t\tif (!stdoutFlushTimer) {\n\t\t\tstdoutFlushTimer = setTimeout(() => {\n\t\t\t\tstdoutFlushTimer = null;\n\t\t\t\tflushStdout();\n\t\t\t}, 100);\n\t\t}\n\t};\n\n\tconst scheduleStderrFlush = () => {\n\t\tif (!stderrFlushTimer) {\n\t\t\tstderrFlushTimer = setTimeout(() => {\n\t\t\t\tstderrFlushTimer = null;\n\t\t\t\tflushStderr();\n\t\t\t}, 100);\n\t\t}\n\t};\n\n\tconst streamCallbacks: CursorShellStreamCallbacks = {\n\t\tonStdout(data: string) {\n\t\t\tstdoutBuffer += data;\n\t\t\tif (stdoutBuffer.includes(\"\\n\") || stdoutBuffer.length > 4096) {\n\t\t\t\tif (stdoutFlushTimer) {\n\t\t\t\t\tclearTimeout(stdoutFlushTimer);\n\t\t\t\t\tstdoutFlushTimer = null;\n\t\t\t\t}\n\t\t\t\tflushStdout();\n\t\t\t} else {\n\t\t\t\tscheduleStdoutFlush();\n\t\t\t}\n\t\t},\n\t\tonStderr(data: string) {\n\t\t\tstderrBuffer += data;\n\t\t\tif (stderrBuffer.includes(\"\\n\") || stderrBuffer.length > 4096) {\n\t\t\t\tif (stderrFlushTimer) {\n\t\t\t\t\tclearTimeout(stderrFlushTimer);\n\t\t\t\t\tstderrFlushTimer = null;\n\t\t\t\t}\n\t\t\t\tflushStderr();\n\t\t\t} else {\n\t\t\t\tscheduleStderrFlush();\n\t\t\t}\n\t\t},\n\t};\n\n\t// Prefer the streaming handler — it forwards output chunks in real time.\n\tconst streamHandler = execHandlers?.shellStream?.bind(execHandlers);\n\tconst batchHandler = execHandlers?.shell?.bind(execHandlers);\n\tconst handler = streamHandler ? (shellArgs: ShellArgs) => streamHandler(shellArgs, streamCallbacks) : batchHandler;\n\n\tconst { execResult } = await resolveExecHandler(\n\t\tnormalizedArgs,\n\t\thandler as typeof batchHandler,\n\t\tonToolResult,\n\t\t(toolResult) => buildShellResultFromToolResult(normalizedArgs, toolResult),\n\t\t(reason) => buildShellRejectedResult(normalizedArgs.command, normalizedArgs.workingDirectory, reason),\n\t\t(error) => buildShellFailureResult(normalizedArgs.command, normalizedArgs.workingDirectory, error),\n\t\t{ toolCallId: args.toolCallId, toolName: \"bash\" },\n\t);\n\n\t// When using the batch handler (no shellStream), send buffered stdout/stderr\n\t// after execution completes. With shellStream these were already sent live.\n\tconst sendBufferedOutput = !streamHandler;\n\tconst sanitizedExecResult = sanitizeShellExecResult(execResult);\n\n\tif (stdoutFlushTimer) clearTimeout(stdoutFlushTimer);\n\tif (stderrFlushTimer) clearTimeout(stderrFlushTimer);\n\tflushStdout();\n\tflushStderr();\n\n\tsendShellStreamExitFromResult(h2Request, execMsg, sanitizedExecResult, sendBufferedOutput);\n\t// Cursor can keep the turn pending when it receives only stream deltas.\n\t// Send the final structured shellResult as completion acknowledgement.\n\tsendExecClientMessage(h2Request, execMsg, \"shellResult\", sanitizedExecResult);\n}\n\nfunction sendShellStreamExitFromResult(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\texecResult: ShellResult,\n\tsendBufferedOutput: boolean,\n): void {\n\tconst result = execResult.result;\n\tswitch (result.case) {\n\t\tcase \"success\": {\n\t\t\tconst value = result.value;\n\t\t\tif (sendBufferedOutput) {\n\t\t\t\tif (value.stdout) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stdout\",\n\t\t\t\t\t\tvalue: create(ShellStreamStdoutSchema, { data: sanitizeSurrogates(value.stdout) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value.stderr) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stderr\",\n\t\t\t\t\t\tvalue: create(ShellStreamStderrSchema, { data: sanitizeSurrogates(value.stderr) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: value.exitCode,\n\t\t\t\t\tcwd: value.workingDirectory,\n\t\t\t\t\taborted: false,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"failure\": {\n\t\t\tconst value = result.value;\n\t\t\tif (sendBufferedOutput) {\n\t\t\t\tif (value.stdout) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stdout\",\n\t\t\t\t\t\tvalue: create(ShellStreamStdoutSchema, { data: sanitizeSurrogates(value.stdout) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value.stderr) {\n\t\t\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\t\t\tcase: \"stderr\",\n\t\t\t\t\t\tvalue: create(ShellStreamStderrSchema, { data: sanitizeSurrogates(value.stderr) }),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: value.exitCode,\n\t\t\t\t\tcwd: value.workingDirectory,\n\t\t\t\t\taborted: value.aborted,\n\t\t\t\t\tabortReason: value.abortReason,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"rejected\": {\n\t\t\tsendShellStreamEvent(h2Request, execMsg, { case: \"rejected\", value: result.value });\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: 1,\n\t\t\t\t\tcwd: result.value.workingDirectory,\n\t\t\t\t\taborted: false,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"timeout\": {\n\t\t\tconst value = result.value;\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"stderr\",\n\t\t\t\tvalue: create(ShellStreamStderrSchema, {\n\t\t\t\t\tdata: `Command timed out after ${value.timeoutMs}ms`,\n\t\t\t\t}),\n\t\t\t});\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: 1,\n\t\t\t\t\tcwd: value.workingDirectory,\n\t\t\t\t\taborted: true,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tcase \"permissionDenied\": {\n\t\t\tsendShellStreamEvent(h2Request, execMsg, { case: \"permissionDenied\", value: result.value });\n\t\t\tsendShellStreamEvent(h2Request, execMsg, {\n\t\t\t\tcase: \"exit\",\n\t\t\t\tvalue: create(ShellStreamExitSchema, {\n\t\t\t\t\tcode: 1,\n\t\t\t\t\tcwd: result.value.workingDirectory,\n\t\t\t\t\taborted: false,\n\t\t\t\t}),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tdefault:\n\t\t\treturn;\n\t}\n}\n\ntype ExecDispatchContext = {\n\treadonly execMsg: ExecServerMessage;\n\treadonly h2Request: http2.ClientHttp2Stream;\n\treadonly execHandlers: CursorExecHandlers | undefined;\n\treadonly onToolResult: CursorToolResultHandler | undefined;\n\treadonly requestContextTools: McpToolDefinition[];\n\treadonly output: AssistantMessage;\n\treadonly stream: AssistantMessageEventStream;\n\treadonly state: BlockState;\n};\n\nasync function handleExecServerMessage(\n\texecMsg: ExecServerMessage,\n\th2Request: http2.ClientHttp2Stream,\n\texecHandlers: CursorExecHandlers | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n\trequestContextTools: McpToolDefinition[],\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n): Promise<void> {\n\tconst execCase = execMsg.message.case;\n\tlog(\"exec\", \"dispatch\", { execCase, execId: execMsg.execId, hasHandlers: !!execHandlers });\n\tif (!execCase) {\n\t\t// A frame carrying a oneof number this build's `agent.proto` does not\n\t\t// model at all. Returning silently strands the exec id — the server\n\t\t// waits on a reply that never comes.\n\t\tlog(\"warn\", \"unknownExecVariant\", { id: execMsg.id, execId: execMsg.execId });\n\t\tsendExecClientThrow(h2Request, execMsg, \"Unknown exec message variant\", \"unknown_exec_variant\");\n\t\tsendExecClientStreamClose(h2Request, execMsg);\n\t\treturn;\n\t}\n\n\tconst stopExecHeartbeat = armCursorExecHeartbeat(h2Request, execMsg);\n\ttry {\n\t\tawait dispatchExecServerMessage({\n\t\t\texecMsg,\n\t\t\th2Request,\n\t\t\texecHandlers,\n\t\t\tonToolResult,\n\t\t\trequestContextTools,\n\t\t\toutput,\n\t\t\tstream,\n\t\t\tstate,\n\t\t});\n\t} catch (error) {\n\t\tlog(\"error\", \"execDispatch\", {\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\tid: execMsg.id,\n\t\t\texecId: execMsg.execId,\n\t\t});\n\t\tsendExecClientThrow(h2Request, execMsg, \"Local exec dispatch failed\", \"exec_dispatch_failed\");\n\t} finally {\n\t\tstopExecHeartbeat();\n\t\tsendExecClientStreamClose(h2Request, execMsg);\n\t}\n}\n\nasync function dispatchExecServerMessage(context: ExecDispatchContext): Promise<void> {\n\tconst { execMsg, h2Request, execHandlers, onToolResult, requestContextTools, output, stream, state } = context;\n\tconst execCase = execMsg.message.case;\n\tif (!execCase) throw new Error(\"Expected a recognized exec message\");\n\tif (execCase === \"requestContextArgs\") {\n\t\tconst requestContext = create(RequestContextSchema, {\n\t\t\trules: [],\n\t\t\trepositoryInfo: [],\n\t\t\ttools: requestContextTools,\n\t\t\tgitRepos: [],\n\t\t\tprojectLayouts: [],\n\t\t\tmcpInstructions: [],\n\t\t\tfileContents: {},\n\t\t\tcustomSubagents: [],\n\t\t});\n\n\t\tconst requestContextResult = create(RequestContextResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"success\",\n\t\t\t\tvalue: create(RequestContextSuccessSchema, { requestContext }),\n\t\t\t},\n\t\t});\n\n\t\tsendExecClientMessage(h2Request, execMsg, \"requestContextResult\", requestContextResult);\n\t\treturn;\n\t}\n\n\tswitch (execCase) {\n\t\tcase \"readArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"read\", {\n\t\t\t\tpath: args.path,\n\t\t\t\toffset: args.offset,\n\t\t\t\tlimit: args.limit,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.read?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) =>\n\t\t\t\t\tbuildReadResultFromToolResult(\n\t\t\t\t\t\targs.path,\n\t\t\t\t\t\ttoolResult,\n\t\t\t\t\t\targs.offset !== undefined || args.limit !== undefined,\n\t\t\t\t\t),\n\t\t\t\t(reason) => buildReadRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildReadErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"read\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"readResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"lsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\t// The bridge maps `ls` onto the local `ls` tool; mirror that here so\n\t\t\t// the synthesized block matches the toolResult's `toolName`.\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"ls\", { path: piLsPath(args.path) });\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.ls?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildLsResultFromToolResult(args.path, toolResult),\n\t\t\t\t(reason) => buildLsRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildLsErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"ls\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"lsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"grepArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\t// Cursor's model sometimes emits `grepArgs` with an empty `pattern`\n\t\t\t// and a non-empty `glob`, expecting grep to list files matching the\n\t\t\t// glob. Reject that up front with an actionable error.\n\t\t\tconst emptyPatternError = emptyGrepPatternRejection(args.pattern, args.glob);\n\t\t\tif (emptyPatternError !== null) {\n\t\t\t\tsendExecClientMessage(h2Request, execMsg, \"grepResult\", buildGrepErrorResult(emptyPatternError));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Mirror the coding-agent bridge's arg mapping so live UI (from\n\t\t\t// `tool_execution_start`) and rebuilt transcript display identical args.\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"grep\", {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || undefined,\n\t\t\t\tglob: args.glob || undefined,\n\t\t\t\tignoreCase: args.caseInsensitive === true ? true : undefined,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.grep?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildGrepResultFromToolResult(args, toolResult),\n\t\t\t\t(reason) => buildGrepErrorResult(reason),\n\t\t\t\t(error) => buildGrepErrorResult(error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"grep\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"grepResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"writeArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\t// Match the bridge: prefer `fileText`, fall back to decoded `fileBytes`.\n\t\t\tconst content = args.fileText ?? new TextDecoder().decode(args.fileBytes ?? new Uint8Array());\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"write\", {\n\t\t\t\tpath: args.path,\n\t\t\t\tcontent,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.write?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) =>\n\t\t\t\t\tbuildWriteResultFromToolResult(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: args.path,\n\t\t\t\t\t\t\tfileText: args.fileText,\n\t\t\t\t\t\t\tfileBytes: args.fileBytes,\n\t\t\t\t\t\t\treturnFileContentAfterWrite: args.returnFileContentAfterWrite,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttoolResult,\n\t\t\t\t\t),\n\t\t\t\t(reason) => buildWriteRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildWriteErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"write\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"writeResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"deleteArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"delete\", { path: args.path });\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.delete?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildDeleteResultFromToolResult(args.path, toolResult),\n\t\t\t\t(reason) => buildDeleteRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildDeleteErrorResult(args.path, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"delete\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"deleteResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"shellArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst normalizedArgs: ShellArgs = { ...args, workingDirectory: args.workingDirectory || process.cwd() };\n\t\t\tconst shellTimeout = args.timeout && args.timeout > 0 ? args.timeout : undefined;\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"bash\", {\n\t\t\t\tcommand: composeShellCommand(args.command, args.workingDirectory || undefined),\n\t\t\t\ttimeout: shellTimeout,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\tnormalizedArgs,\n\t\t\t\texecHandlers?.shell?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildShellResultFromToolResult(normalizedArgs, toolResult),\n\t\t\t\t(reason) => buildShellRejectedResult(normalizedArgs.command, normalizedArgs.workingDirectory, reason),\n\t\t\t\t(error) => buildShellFailureResult(normalizedArgs.command, normalizedArgs.workingDirectory, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"bash\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"shellResult\", sanitizeShellExecResult(execResult));\n\t\t\treturn;\n\t\t}\n\t\tcase \"shellStreamArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst shellStreamTimeout = args.timeout && args.timeout > 0 ? args.timeout : undefined;\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"bash\", {\n\t\t\t\tcommand: composeShellCommand(args.command, args.workingDirectory || undefined),\n\t\t\t\ttimeout: shellStreamTimeout,\n\t\t\t});\n\t\t\tawait handleShellStreamArgs(args, execMsg, h2Request, execHandlers, onToolResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"backgroundShellSpawnArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(BackgroundShellSpawnResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"rejected\",\n\t\t\t\t\tvalue: create(ShellRejectedSchema, {\n\t\t\t\t\t\tcommand: args.command,\n\t\t\t\t\t\tworkingDirectory: args.workingDirectory,\n\t\t\t\t\t\treason: \"Not implemented\",\n\t\t\t\t\t\tisReadonly: false,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"backgroundShellSpawnResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"writeShellStdinArgs\": {\n\t\t\tconst execResult = create(WriteShellStdinResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(WriteShellStdinErrorSchema, {\n\t\t\t\t\t\terror: \"Not implemented\",\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"writeShellStdinResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"fetchArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(FetchResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(FetchErrorSchema, {\n\t\t\t\t\t\turl: args.url,\n\t\t\t\t\t\terror: \"Not implemented\",\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"fetchResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"diagnosticsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\targs,\n\t\t\t\texecHandlers?.diagnostics?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildDiagnosticsResultFromToolResult(args.path, toolResult),\n\t\t\t\t(reason) => buildDiagnosticsRejectedResult(args.path, reason),\n\t\t\t\t(error) => buildDiagnosticsErrorResult(args.path, error),\n\t\t\t\t// senpi has no local diagnostics tool; the frame is answered with a\n\t\t\t\t// refusal and no block is synthesized (nothing ran).\n\t\t\t\tnull,\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"diagnosticsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"mcpArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst mcpCall = decodeMcpCall(args);\n\t\t\t// An approval probe, not an invocation: the frame asks whether the\n\t\t\t// call would be permitted. Only a definite allow is approved; without\n\t\t\t// a handler there is nothing to decide with, so it is refused. Either\n\t\t\t// way no block is synthesized — nothing ran.\n\t\t\tif (mcpCall.approvalOnly) {\n\t\t\t\tconst approved = (await execHandlers?.mcpApprovalPreflight?.(mcpCall)) === true;\n\t\t\t\tsendExecClientMessage(\n\t\t\t\t\th2Request,\n\t\t\t\t\texecMsg,\n\t\t\t\t\t\"mcpResult\",\n\t\t\t\t\tcreate(McpResultSchema, {\n\t\t\t\t\t\tresult: approved\n\t\t\t\t\t\t\t? { case: \"approved\", value: create(McpApprovedSchema, {}) }\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\tcase: \"rejected\",\n\t\t\t\t\t\t\t\t\tvalue: create(McpRejectedSchema, {\n\t\t\t\t\t\t\t\t\t\treason: `Tool \"${mcpCall.toolName || mcpCall.name}\" is not approved to run without asking.`,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (execHandlers?.mcp) {\n\t\t\t\tconst existingBlock = output.content.find(\n\t\t\t\t\t(block) => block.type === \"toolCall\" && block.id === mcpCall.toolCallId,\n\t\t\t\t);\n\t\t\t\tif (existingBlock) {\n\t\t\t\t\tmarkCursorExecResolved(existingBlock);\n\t\t\t\t} else {\n\t\t\t\t\tsynthesizeCursorExecToolCall(\n\t\t\t\t\t\toutput,\n\t\t\t\t\t\tstream,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tmcpCall.toolCallId,\n\t\t\t\t\t\tmcpCall.toolName || mcpCall.name,\n\t\t\t\t\t\tmcpCall.args,\n\t\t\t\t\t);\n\t\t\t\t\tstate.resolvedMcpToolCallIds.add(mcpCall.toolCallId);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\tmcpCall,\n\t\t\t\texecHandlers?.mcp?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildMcpResultFromToolResult(mcpCall, toolResult),\n\t\t\t\t(_reason) => buildMcpToolNotFoundResult(mcpCall),\n\t\t\t\t(error) => buildMcpErrorResult(error),\n\t\t\t\texecHandlers?.mcp ? { toolCallId: mcpCall.toolCallId, toolName: mcpCall.toolName } : null,\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"mcpResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"listMcpResourcesExecArgs\": {\n\t\t\t// This client hosts no MCP resources; the honest answer is an explicit\n\t\t\t// empty success. An unset-oneof result would read as \"the call\n\t\t\t// produced nothing\".\n\t\t\tconst execResult = create(ListMcpResourcesExecResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"success\",\n\t\t\t\t\tvalue: create(ListMcpResourcesSuccessSchema, { resources: [] }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"listMcpResourcesExecResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"readMcpResourceExecArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(ReadMcpResourceExecResultSchema, {\n\t\t\t\tresult: { case: \"notFound\", value: create(ReadMcpResourceNotFoundSchema, { uri: args.uri }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"readMcpResourceExecResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"recordScreenArgs\": {\n\t\t\tconst execResult = create(RecordScreenResultSchema, {\n\t\t\t\tresult: { case: \"failure\", value: create(RecordScreenFailureSchema, { error: NOT_IMPLEMENTED }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"recordScreenResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"computerUseArgs\": {\n\t\t\tconst execResult = create(ComputerUseResultSchema, {\n\t\t\t\tresult: { case: \"error\", value: create(ComputerUseErrorSchema, { error: NOT_IMPLEMENTED }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"computerUseResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piReadArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tconst readArgs = piReadArgs(args.path, args.offset, args.limit);\n\t\t\tsynthesizeCursorExecToolCall(\n\t\t\t\toutput,\n\t\t\t\tstream,\n\t\t\t\tstate,\n\t\t\t\ttoolCallId,\n\t\t\t\t\"read\",\n\t\t\t\treadArgs ?? { path: args.path, offset: args.offset, limit: 0 },\n\t\t\t);\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piRead?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiReadResult,\n\t\t\t\tbuildPiReadError,\n\t\t\t\tbuildPiReadError,\n\t\t\t\t{ toolCallId, toolName: \"read\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piReadResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piBashArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"bash\", {\n\t\t\t\tcommand: args.command,\n\t\t\t\ttimeout: piTimeout(args.timeout),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piBash?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiBashResult,\n\t\t\t\tbuildPiBashError,\n\t\t\t\tbuildPiBashError,\n\t\t\t\t{ toolCallId, toolName: \"bash\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piBashResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piEditArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\t// `PiEditReplacement[]` maps 1:1 onto the local `edit` tool's\n\t\t\t// `edits[{oldText,newText}]` shape.\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"edit\", {\n\t\t\t\tpath: args.path,\n\t\t\t\tedits: args.edits.map((edit) => ({ oldText: edit.oldText, newText: edit.newText })),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piEdit?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiEditResult,\n\t\t\t\tbuildPiEditRejected,\n\t\t\t\tbuildPiEditError,\n\t\t\t\t{ toolCallId, toolName: \"edit\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piEditResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piWriteArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"write\", {\n\t\t\t\tpath: args.path,\n\t\t\t\tcontent: args.content,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piWrite?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiWriteResult,\n\t\t\t\tbuildPiWriteRejected,\n\t\t\t\tbuildPiWriteError,\n\t\t\t\t{ toolCallId, toolName: \"write\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piWriteResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piGrepArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"grep\", {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || undefined,\n\t\t\t\tglob: args.glob || undefined,\n\t\t\t\tignoreCase: args.ignoreCase === true ? true : undefined,\n\t\t\t\tliteral: args.literal === true ? true : undefined,\n\t\t\t\tcontext: args.context,\n\t\t\t\tlimit: piLimit(args.limit),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piGrep?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiGrepResult,\n\t\t\t\tbuildPiGrepError,\n\t\t\t\tbuildPiGrepError,\n\t\t\t\t{ toolCallId, toolName: \"grep\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piGrepResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piFindArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"find\", {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || undefined,\n\t\t\t\tlimit: piLimit(args.limit),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piFind?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiFindResult,\n\t\t\t\tbuildPiFindError,\n\t\t\t\tbuildPiFindError,\n\t\t\t\t{ toolCallId, toolName: \"find\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piFindResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"piLsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = randomUUID();\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"ls\", {\n\t\t\t\tpath: piLsPath(args.path),\n\t\t\t\tlimit: piLimit(args.limit),\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\t{ args, toolCallId },\n\t\t\t\texecHandlers?.piLs?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\tbuildPiLsResult,\n\t\t\t\tbuildPiLsError,\n\t\t\t\tbuildPiLsError,\n\t\t\t\t{ toolCallId, toolName: \"ls\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"piLsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"miniSweAgentBashArgs\": {\n\t\t\t// Same `ShellArgs`/`ShellResult` pair as `shellArgs`, under its own\n\t\t\t// frame number, so the existing shell handler answers it unchanged.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tif (!args.toolCallId) args.toolCallId = randomUUID();\n\t\t\tconst normalizedArgs: ShellArgs = { ...args, workingDirectory: args.workingDirectory || process.cwd() };\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, args.toolCallId, \"bash\", {\n\t\t\t\tcommand: composeShellCommand(args.command, args.workingDirectory || undefined),\n\t\t\t\ttimeout: args.timeout && args.timeout > 0 ? args.timeout : undefined,\n\t\t\t});\n\t\t\tconst { execResult } = await resolveExecHandler(\n\t\t\t\tnormalizedArgs,\n\t\t\t\texecHandlers?.shell?.bind(execHandlers),\n\t\t\t\tonToolResult,\n\t\t\t\t(toolResult) => buildShellResultFromToolResult(normalizedArgs, toolResult),\n\t\t\t\t(reason) => buildShellRejectedResult(normalizedArgs.command, normalizedArgs.workingDirectory, reason),\n\t\t\t\t(error) => buildShellFailureResult(normalizedArgs.command, normalizedArgs.workingDirectory, error),\n\t\t\t\t{ toolCallId: args.toolCallId, toolName: \"bash\" },\n\t\t\t);\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"miniSweAgentBashResult\", sanitizeShellExecResult(execResult));\n\t\t\treturn;\n\t\t}\n\t\tcase \"redactedReadArgs\": {\n\t\t\t// The server expects the client to strip secrets from the content\n\t\t\t// first. No redaction is implemented here, and serving a plain read\n\t\t\t// would hand back exactly the unredacted bytes the frame exists to\n\t\t\t// withhold.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"redactedReadResult\",\n\t\t\t\tbuildReadErrorResult(args.path, \"Secret redaction is not implemented by this client\"),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"mcpStateExecArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"mcpStateExecResult\",\n\t\t\t\tbuildMcpStateResult(requestContextTools, args.serverIdentifiers),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"executeHookArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = buildNeutralHookResult(args.request);\n\t\t\tif (!execResult) {\n\t\t\t\tsendExecClientThrow(\n\t\t\t\t\th2Request,\n\t\t\t\t\texecMsg,\n\t\t\t\t\t`Unsupported hook request: ${args.request?.request.case ?? \"unset\"}`,\n\t\t\t\t\t\"unknown_hook_request\",\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"executeHookResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"subagentArgs\": {\n\t\t\tconst execResult = create(SubagentResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(SubagentErrorSchema, { error: `Subagents are ${NOT_IMPLEMENTED_SUFFIX}` }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"subagentResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"subagentAwaitArgs\": {\n\t\t\t// No subagent was ever spawned, so every awaited id is genuinely unknown.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(SubagentAwaitResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"notFound\",\n\t\t\t\t\tvalue: create(SubagentAwaitNotFoundSchema, { agentId: args.agentId }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"subagentAwaitResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"forceBackgroundShellArgs\": {\n\t\t\t// Backgrounding targets a running tool call by id. This client runs\n\t\t\t// every shell to completion in band, so there is never one to move.\n\t\t\tconst execResult = create(ForceBackgroundShellResultSchema, {\n\t\t\t\tstatus: ForceBackgroundShellStatus.NOT_FOUND,\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"forceBackgroundShellResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"forceBackgroundSubagentArgs\": {\n\t\t\tconst execResult = create(ForceBackgroundSubagentResultSchema, {\n\t\t\t\tstatus: ForceBackgroundSubagentStatus.NOT_FOUND,\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"forceBackgroundSubagentResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"smartModeClassifierArgs\": {\n\t\t\t// The classifier decides whether a risky action needs approval.\n\t\t\t// Answering `ALLOW` would silently wave through actions the server\n\t\t\t// asked us to judge, so the honest answer is that no classifier\n\t\t\t// exists here.\n\t\t\tconst execResult = create(SmartModeClassifierResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(SmartModeClassifierErrorSchema, {\n\t\t\t\t\t\terror: `Smart-mode classification is ${NOT_IMPLEMENTED_SUFFIX}`,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"smartModeClassifierResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"canvasDiagnosticsArgs\": {\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst execResult = create(CanvasDiagnosticsResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(CanvasDiagnosticsErrorSchema, {\n\t\t\t\t\t\tpath: args.path,\n\t\t\t\t\t\terror: `Canvas diagnostics are ${NOT_IMPLEMENTED_SUFFIX}`,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"canvasDiagnosticsResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"shellAllowlistPrecheckArgs\": {\n\t\t\t// The prechecks ask \"is this pre-approved, so may it skip the approval\n\t\t\t// prompt?\". This client keeps no allowlist, so the answer is always\n\t\t\t// no: `false` costs an approval round-trip, `true` would grant one\n\t\t\t// that was never configured.\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"shellAllowlistPrecheckResult\",\n\t\t\t\tcreate(ShellAllowlistPrecheckResultSchema, { allowlisted: false }),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"mcpAllowlistPrecheckArgs\": {\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"mcpAllowlistPrecheckResult\",\n\t\t\t\tcreate(McpAllowlistPrecheckResultSchema, { allowlisted: false }),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"webFetchAllowlistPrecheckArgs\": {\n\t\t\tsendExecClientMessage(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t\"webFetchAllowlistPrecheckResult\",\n\t\t\t\tcreate(WebFetchAllowlistPrecheckResultSchema, { allowlisted: false }),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"conversationSearchArgs\": {\n\t\t\t// Cursor conversation history lives server-side; this client keeps no\n\t\t\t// local index of it to search. The streamed envelope announces this\n\t\t\t// call but the interaction decoder builds no block for it, so the\n\t\t\t// block and its paired result are synthesized here.\n\t\t\tconst args = execMsg.message.value;\n\t\t\tconst toolCallId = args.toolCallId || randomUUID();\n\t\t\tconst error = `Conversation search is ${NOT_IMPLEMENTED_SUFFIX}`;\n\t\t\tsynthesizeCursorExecToolCall(output, stream, state, toolCallId, \"search_conversations\", {\n\t\t\t\tquery: args.query,\n\t\t\t\tlimit: args.limit,\n\t\t\t});\n\t\t\tawait pairSynthesizedExecResult(state, onToolResult, toolCallId, \"search_conversations\", error);\n\t\t\tconst execResult = create(ConversationSearchResultSchema, {\n\t\t\t\tresult: { case: \"error\", value: create(ConversationSearchErrorSchema, { error }) },\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"conversationSearchResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"agentStoreConflictArgs\": {\n\t\t\t// The agent store is Cursor's own on-disk journal; this client never\n\t\t\t// writes one, so it has no conflict events to replay.\n\t\t\tconst execResult = create(AgentStoreConflictResultSchema, {\n\t\t\t\tresult: {\n\t\t\t\t\tcase: \"error\",\n\t\t\t\t\tvalue: create(AgentStoreConflictErrorSchema, {\n\t\t\t\t\t\terror: `Agent store conflicts are ${NOT_IMPLEMENTED_SUFFIX}`,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tsendExecClientMessage(h2Request, execMsg, \"agentStoreConflictResult\", execResult);\n\t\t\treturn;\n\t\t}\n\t\tcase \"gitDiffRequest\": {\n\t\t\t// `GetDiffResponse` has no error variant, so any in-band answer is a\n\t\t\t// claim that a diff was computed; a `throw` is the only truthful reply.\n\t\t\tsendExecClientThrow(h2Request, execMsg, `Git diff is ${NOT_IMPLEMENTED_SUFFIX}`, \"exec_variant_unsupported\");\n\t\t\treturn;\n\t\t}\n\t\tdefault: {\n\t\t\t// A frame number this build recognises structurally but has no answer\n\t\t\t// for. Distinct from the unset-case path above: there the client\n\t\t\t// cannot even name the frame.\n\t\t\tlog(\"warn\", \"unhandledExecMessage\", { execCase });\n\t\t\tsendExecClientThrow(\n\t\t\t\th2Request,\n\t\t\t\texecMsg,\n\t\t\t\t`No handler for exec message of type ${execCase}`,\n\t\t\t\t\"exec_variant_unsupported\",\n\t\t\t);\n\t\t}\n\t}\n}\n\nfunction armCursorExecHeartbeat(h2Request: http2.ClientHttp2Stream, execMsg: ExecServerMessage): () => void {\n\treturn armExecHeartbeat({\n\t\tintervalMs: EXEC_HEARTBEAT_INTERVAL_MS,\n\t\tisClosed: () => h2Request.closed,\n\t\twriteHeartbeat: (onComplete) => {\n\t\t\tconst controlMessage = create(ExecClientControlMessageSchema, {\n\t\t\t\tmessage: {\n\t\t\t\t\tcase: \"heartbeat\",\n\t\t\t\t\tvalue: create(ExecClientHeartbeatSchema, { id: execMsg.id }),\n\t\t\t\t},\n\t\t\t});\n\t\t\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\t\t\tmessage: { case: \"execClientControlMessage\", value: controlMessage },\n\t\t\t});\n\t\t\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)), onComplete);\n\t\t\tlog(\"execClientControl\", \"heartbeat\", { id: execMsg.id, execId: execMsg.execId });\n\t\t},\n\t});\n}\n\n/**\n * Send one typed answer on the exec channel.\n *\n * `ExecClientMessage[\"message\"]` is a discriminated union pairing each case\n * with its own result type, so the generic is keyed on the case: passing a\n * `ReadResult` under `\"shellResult\"` is a compile error rather than a wire\n * message the server rejects at runtime.\n */\nfunction sendExecClientMessage<TCase extends NonNullable<ExecClientMessage[\"message\"][\"case\"]>>(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\tmessageCase: TCase,\n\tvalue: Extract<ExecClientMessage[\"message\"], { case: TCase }>[\"value\"],\n): void {\n\tconst execClientMessage = create(ExecClientMessageSchema, {\n\t\tid: execMsg.id,\n\t\texecId: execMsg.execId,\n\t\tmessage: { case: messageCase, value } as ExecClientMessage[\"message\"],\n\t});\n\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"execClientMessage\", value: execClientMessage },\n\t});\n\n\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)));\n\n\tlog(\"execClientMessage\", messageCase);\n}\n\n/**\n * Fail one exec frame in band.\n *\n * `ExecClientThrow` is the protocol's failure channel for a frame that cannot\n * be answered at all — as opposed to a frame answered with its own typed\n * error variant, which means \"the tool ran and failed\". The server surfaces\n * the error to the model instead of blocking on a reply that never comes.\n */\nfunction sendExecClientThrow(\n\th2Request: http2.ClientHttp2Stream,\n\texecMsg: ExecServerMessage,\n\terror: string,\n\terrorCode?: string,\n): void {\n\tconst controlMessage = create(ExecClientControlMessageSchema, {\n\t\tmessage: {\n\t\t\tcase: \"throw\",\n\t\t\tvalue: create(ExecClientThrowSchema, { id: execMsg.id, error, errorCode }),\n\t\t},\n\t});\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"execClientControlMessage\", value: controlMessage },\n\t});\n\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)));\n\tlog(\"execClientControl\", \"throw\", { id: execMsg.id, execId: execMsg.execId, error, errorCode });\n}\n\nfunction sendExecClientStreamClose(h2Request: http2.ClientHttp2Stream, execMsg: ExecServerMessage): void {\n\tconst closeMessage = create(ExecClientControlMessageSchema, {\n\t\tmessage: {\n\t\t\tcase: \"streamClose\",\n\t\t\tvalue: create(ExecClientStreamCloseSchema, {\n\t\t\t\tid: execMsg.id,\n\t\t\t}),\n\t\t},\n\t});\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"execClientControlMessage\", value: closeMessage },\n\t});\n\th2Request.write(frameConnectMessage(toBinary(AgentClientMessageSchema, clientMessage)));\n\tlog(\"execClientControl\", \"streamClose\", { id: execMsg.id, execId: execMsg.execId });\n}\n\n/**\n * Exported for tests: dispatches one exec frame onto its handler.\n *\n * Every exit pairs a `toolResult`. The synthesized block was already marked\n * `kCursorExecResolved` before this runs, so the agent loop emits no\n * placeholder for it: a path that returns without a result leaves the call\n * unpaired and transcript rebuilds strip the whole interaction. The three\n * result-less paths — no handler installed, a handler that produced nothing,\n * and a thrown handler — therefore synthesize one from the same text the\n * server sees in `execResult`.\n *\n * `pairing` is required so a new callsite cannot silently recreate the\n * orphan, and nullable for the callers whose block is NOT pre-resolved (MCP\n * without an `mcp` handler, which the agent loop runs locally and pairs\n * itself, and frames that never synthesize a block).\n */\nexport async function resolveExecHandler<TArgs, TResult>(\n\targs: TArgs,\n\thandler: ((args: TArgs) => Promise<CursorExecHandlerResult<TResult>>) | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n\tbuildFromToolResult: (toolResult: ToolResultMessage) => TResult,\n\tbuildRejected: (reason: string) => TResult,\n\tbuildError: (error: string) => TResult,\n\tpairing: CursorExecPairing | null,\n): Promise<{ execResult: TResult; toolResult?: ToolResultMessage }> {\n\tconst pair = async (text: string, isError: boolean): Promise<ToolResultMessage | undefined> => {\n\t\tif (!pairing) return undefined;\n\t\tconst synthesized: ToolResultMessage = {\n\t\t\trole: \"toolResult\",\n\t\t\ttoolCallId: pairing.toolCallId,\n\t\t\ttoolName: pairing.toolName,\n\t\t\tcontent: [{ type: \"text\", text }],\n\t\t\tisError,\n\t\t\ttimestamp: Date.now(),\n\t\t};\n\t\treturn await applyToolResultHandler(synthesized, onToolResult);\n\t};\n\n\tif (!handler) {\n\t\tconst reason = \"Tool not available\";\n\t\treturn { execResult: buildRejected(reason), toolResult: await pair(reason, true) };\n\t}\n\n\ttry {\n\t\tconst handlerResult = await handler(args);\n\t\tconst { execResult, toolResult } = splitExecHandlerResult(handlerResult);\n\t\tconst finalToolResult = await applyToolResultHandler(toolResult, onToolResult);\n\n\t\tif (execResult) {\n\t\t\t// TResult-only is a supported return form, so the transcript entry\n\t\t\t// has to be synthesized here, derived from the raw result so the two\n\t\t\t// views stay consistent.\n\t\t\treturn {\n\t\t\t\texecResult,\n\t\t\t\ttoolResult: finalToolResult ?? (await pair(...describeExecResult(execResult))),\n\t\t\t};\n\t\t}\n\t\tif (finalToolResult) {\n\t\t\treturn { execResult: buildFromToolResult(finalToolResult), toolResult: finalToolResult };\n\t\t}\n\t\tconst reason = \"Tool returned no result\";\n\t\treturn { execResult: buildRejected(reason), toolResult: await pair(reason, true) };\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\treturn { execResult: buildError(message), toolResult: await pair(message, true) };\n\t}\n}\n\n/**\n * Derive the transcript state of an exec result the handler returned in the\n * TResult-only form, which carries no `toolResult` to copy it from.\n *\n * Every exec result in `agent.proto` is a `oneof result` whose success\n * variant is named `success` — the rest are failures. MCP is the one shape\n * where `success` is not enough: `McpSuccess.is_error` carries an\n * application-level tool failure inside the success variant.\n */\nfunction describeExecResult(execResult: unknown): [text: string, isError: boolean] {\n\tconst result = (execResult as { result?: { case?: string; value?: unknown } } | null)?.result;\n\tconst variant = result?.case;\n\tif (variant === \"success\") {\n\t\tconst success = result?.value as { isError?: boolean; content?: unknown[] } | undefined;\n\t\tif (!success?.isError) return [\"Tool produced no transcript result\", false];\n\t\treturn [mcpContentToText(success.content) || \"MCP tool reported an error\", true];\n\t}\n\tif (!variant) return [\"Tool produced no transcript result\", false];\n\tconst value = result?.value as { error?: string; reason?: string } | undefined;\n\treturn [value?.error || value?.reason || `Tool call ${variant}`, true];\n}\n\n/** Flatten `McpSuccess.content` into transcript text. */\nfunction mcpContentToText(content: unknown[] | undefined): string {\n\tif (!Array.isArray(content)) return \"\";\n\tconst parts: string[] = [];\n\tfor (const item of content) {\n\t\tconst inner = (item as { content?: { case?: string; value?: { text?: string } } } | null)?.content;\n\t\tif (inner?.case === \"text\" && inner.value?.text) parts.push(inner.value.text);\n\t}\n\treturn parts.join(\"\\n\");\n}\n\nfunction splitExecHandlerResult<TResult>(result: CursorExecHandlerResult<TResult>): {\n\texecResult?: TResult;\n\ttoolResult?: ToolResultMessage;\n} {\n\tif (isToolResultMessage(result)) {\n\t\treturn { toolResult: result };\n\t}\n\tif (result && typeof result === \"object\") {\n\t\tconst record = result as Record<string, unknown>;\n\t\tif (\"execResult\" in record) {\n\t\t\tconst { execResult, toolResult } = record as {\n\t\t\t\texecResult: TResult;\n\t\t\t\ttoolResult?: ToolResultMessage;\n\t\t\t};\n\t\t\treturn { execResult, toolResult };\n\t\t}\n\t\tif (\"toolResult\" in record && !isToolResultMessage(record)) {\n\t\t\tconst { result: execResult, toolResult } = record as {\n\t\t\t\tresult?: TResult;\n\t\t\t\ttoolResult?: ToolResultMessage;\n\t\t\t};\n\t\t\treturn { execResult, toolResult };\n\t\t}\n\t\tif (\"result\" in record && !(\"$typeName\" in record)) {\n\t\t\tconst { result: execResult, toolResult } = record as {\n\t\t\t\tresult: TResult;\n\t\t\t\ttoolResult?: ToolResultMessage;\n\t\t\t};\n\t\t\treturn { execResult, toolResult };\n\t\t}\n\t}\n\treturn { execResult: result as TResult };\n}\n\nfunction isToolResultMessage(value: unknown): value is ToolResultMessage {\n\treturn !!value && typeof value === \"object\" && (value as ToolResultMessage).role === \"toolResult\";\n}\n\nasync function applyToolResultHandler(\n\ttoolResult: ToolResultMessage | undefined,\n\tonToolResult: CursorToolResultHandler | undefined,\n): Promise<ToolResultMessage | undefined> {\n\tif (!toolResult || !onToolResult) {\n\t\treturn toolResult;\n\t}\n\tconst updated = await onToolResult(toolResult);\n\treturn updated ?? toolResult;\n}\n\nfunction toolResultToText(toolResult: ToolResultMessage): string {\n\treturn toolResult.content.map((item) => (item.type === \"text\" ? item.text : `[${item.mimeType} image]`)).join(\"\\n\");\n}\n\nfunction toolResultWasTruncated(toolResult: ToolResultMessage): boolean {\n\tif (!toolResult.details || typeof toolResult.details !== \"object\") {\n\t\treturn false;\n\t}\n\tconst truncation = (toolResult.details as { truncation?: { truncated?: boolean } }).truncation;\n\treturn !!truncation?.truncated;\n}\n\nfunction toolResultDetailBoolean(toolResult: ToolResultMessage, key: string): boolean {\n\tif (!toolResult.details || typeof toolResult.details !== \"object\") {\n\t\treturn false;\n\t}\n\tconst value = (toolResult.details as Record<string, unknown>)[key];\n\treturn typeof value === \"boolean\" ? value : false;\n}\n\n/** The file's own line count, when the tool recorded one. */\nfunction readTotalLinesFromDetails(toolResult: ToolResultMessage): number | undefined {\n\tconst details = toolResult.details;\n\tif (!details || typeof details !== \"object\") return undefined;\n\tconst direct = \"totalLines\" in details ? details.totalLines : undefined;\n\tif (typeof direct === \"number\" && Number.isFinite(direct)) return direct;\n\tconst meta = \"meta\" in details ? details.meta : undefined;\n\tif (!meta || typeof meta !== \"object\") return undefined;\n\tconst truncation = \"truncation\" in meta ? meta.truncation : undefined;\n\tif (!truncation || typeof truncation !== \"object\") return undefined;\n\tconst totalLines = \"totalLines\" in truncation ? truncation.totalLines : undefined;\n\treturn typeof totalLines === \"number\" && Number.isFinite(totalLines) ? totalLines : undefined;\n}\n\nfunction readFileSizeFromDetails(toolResult: ToolResultMessage): number | undefined {\n\tconst details = toolResult.details;\n\tif (!details || typeof details !== \"object\" || !(\"fileSize\" in details)) return undefined;\n\tconst { fileSize } = details;\n\treturn typeof fileSize === \"number\" && Number.isSafeInteger(fileSize) && fileSize >= 0 ? fileSize : undefined;\n}\n\nfunction buildReadResultFromToolResult(path: string, toolResult: ToolResultMessage, rangeApplied = false) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildReadErrorResult(path, text || \"Read failed\");\n\t}\n\t// Counting the payload is only the file's length when the payload is the\n\t// whole file: under a windowed read, answering a 20-line page of a 100-line\n\t// file with `total_lines: 20` tells a paginating server it reached the end.\n\tconst totalLines = readTotalLinesFromDetails(toolResult) ?? (rangeApplied ? 0 : text ? text.split(\"\\n\").length : 0);\n\treturn create(ReadResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(ReadSuccessSchema, {\n\t\t\t\tpath,\n\t\t\t\ttotalLines,\n\t\t\t\tfileSize: BigInt(readFileSizeFromDetails(toolResult) ?? Buffer.byteLength(text, \"utf-8\")),\n\t\t\t\ttruncated: toolResultWasTruncated(toolResult),\n\t\t\t\toutput: { case: \"content\", value: text },\n\t\t\t\trangeApplied,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildReadErrorResult(path: string, error: string) {\n\treturn create(ReadResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(ReadErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildReadRejectedResult(path: string, reason: string) {\n\treturn create(ReadResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(ReadRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildWriteResultFromToolResult(\n\targs: { path: string; fileText?: string; fileBytes?: Uint8Array; returnFileContentAfterWrite?: boolean },\n\ttoolResult: ToolResultMessage,\n) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildWriteErrorResult(args.path, text || \"Write failed\");\n\t}\n\tconst fileText = args.fileText ?? \"\";\n\tconst fileSize = args.fileBytes?.length ?? Buffer.byteLength(fileText, \"utf-8\");\n\tconst linesCreated = fileText ? fileText.split(\"\\n\").length : 0;\n\treturn create(WriteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(WriteSuccessSchema, {\n\t\t\t\tpath: args.path,\n\t\t\t\tlinesCreated,\n\t\t\t\tfileSize,\n\t\t\t\tfileContentAfterWrite: args.returnFileContentAfterWrite ? fileText : undefined,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildWriteErrorResult(path: string, error: string) {\n\treturn create(WriteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(WriteErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildWriteRejectedResult(path: string, reason: string) {\n\treturn create(WriteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(WriteRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildDeleteResultFromToolResult(path: string, toolResult: ToolResultMessage) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildDeleteErrorResult(path, text || \"Delete failed\");\n\t}\n\treturn create(DeleteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(DeleteSuccessSchema, {\n\t\t\t\tpath,\n\t\t\t\tdeletedFile: path,\n\t\t\t\tfileSize: BigInt(0),\n\t\t\t\tprevContent: \"\",\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildDeleteErrorResult(path: string, error: string) {\n\treturn create(DeleteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(DeleteErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildDeleteRejectedResult(path: string, reason: string) {\n\treturn create(DeleteResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(DeleteRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildShellResultFromToolResult(\n\targs: { command: string; workingDirectory: string },\n\ttoolResult: ToolResultMessage,\n) {\n\tconst output = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildShellFailureResult(args.command, args.workingDirectory, output || \"Shell failed\");\n\t}\n\treturn create(ShellResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(ShellSuccessSchema, {\n\t\t\t\tcommand: args.command,\n\t\t\t\tworkingDirectory: args.workingDirectory,\n\t\t\t\texitCode: 0,\n\t\t\t\tsignal: \"\",\n\t\t\t\tstdout: output,\n\t\t\t\tstderr: \"\",\n\t\t\t\texecutionTime: 0,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildShellFailureResult(command: string, workingDirectory: string, error: string) {\n\treturn create(ShellResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"failure\",\n\t\t\tvalue: create(ShellFailureSchema, {\n\t\t\t\tcommand,\n\t\t\t\tworkingDirectory,\n\t\t\t\texitCode: 1,\n\t\t\t\tsignal: \"\",\n\t\t\t\tstdout: \"\",\n\t\t\t\tstderr: error,\n\t\t\t\texecutionTime: 0,\n\t\t\t\taborted: false,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildShellRejectedResult(command: string, workingDirectory: string, reason: string) {\n\treturn create(ShellResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(ShellRejectedSchema, {\n\t\t\t\tcommand,\n\t\t\t\tworkingDirectory,\n\t\t\t\treason,\n\t\t\t\tisReadonly: false,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildLsResultFromToolResult(path: string, toolResult: ToolResultMessage) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildLsErrorResult(path, text || \"Ls failed\");\n\t}\n\tconst rootPath = path || \".\";\n\tconst entries = text\n\t\t.split(\"\\n\")\n\t\t.map((line) => line.trim())\n\t\t.filter((line) => line.length > 0 && !line.startsWith(\"[\"));\n\tconst childrenDirs: LsDirectoryTreeNode[] = [];\n\tconst childrenFiles: LsDirectoryTreeNode_File[] = [];\n\n\tfor (const entry of entries) {\n\t\tconst name = entry.split(\" (\")[0];\n\t\tif (name.endsWith(\"/\")) {\n\t\t\tconst dirName = name.slice(0, -1);\n\t\t\tchildrenDirs.push(\n\t\t\t\tcreate(LsDirectoryTreeNodeSchema, {\n\t\t\t\t\tabsPath: `${rootPath.replace(/\\/$/, \"\")}/${dirName}`,\n\t\t\t\t\tchildrenDirs: [],\n\t\t\t\t\tchildrenFiles: [],\n\t\t\t\t\tchildrenWereProcessed: false,\n\t\t\t\t\tfullSubtreeExtensionCounts: {},\n\t\t\t\t\tnumFiles: 0,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tchildrenFiles.push(create(LsDirectoryTreeNode_FileSchema, { name }));\n\t\t}\n\t}\n\n\tconst root = create(LsDirectoryTreeNodeSchema, {\n\t\tabsPath: rootPath,\n\t\tchildrenDirs,\n\t\tchildrenFiles,\n\t\tchildrenWereProcessed: true,\n\t\tfullSubtreeExtensionCounts: {},\n\t\tnumFiles: childrenFiles.length,\n\t});\n\n\treturn create(LsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(LsSuccessSchema, { directoryTreeRoot: root }),\n\t\t},\n\t});\n}\n\nfunction buildLsErrorResult(path: string, error: string) {\n\treturn create(LsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(LsErrorSchema, { path, error }),\n\t\t},\n\t});\n}\n\nfunction buildLsRejectedResult(path: string, reason: string) {\n\treturn create(LsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(LsRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction buildGrepResultFromToolResult(\n\targs: { pattern: string; path?: string; outputMode?: string; offset?: number },\n\ttoolResult: ToolResultMessage,\n) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildGrepErrorResult(text || \"Grep failed\");\n\t}\n\n\tconst outputMode = args.outputMode || \"content\";\n\tconst clientTruncated = toolResultDetailBoolean(toolResult, \"truncated\");\n\tconst lines = text\n\t\t.split(\"\\n\")\n\t\t.map((line) => line.trimEnd())\n\t\t.filter((line) => line.length > 0 && !line.startsWith(\"[\") && !line.toLowerCase().startsWith(\"no matches\"));\n\n\tconst workspaceKey = args.path || \".\";\n\tlet unionResult: GrepUnionResult;\n\n\tif (outputMode === \"files_with_matches\") {\n\t\tconst files = lines;\n\t\tunionResult = create(GrepUnionResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"files\",\n\t\t\t\tvalue: create(GrepFilesResultSchema, {\n\t\t\t\t\tfiles,\n\t\t\t\t\ttotalFiles: files.length,\n\t\t\t\t\tclientTruncated,\n\t\t\t\t\tripgrepTruncated: false,\n\t\t\t\t\toffsetApplied: args.offset,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\t} else if (outputMode === \"count\") {\n\t\tconst counts = lines\n\t\t\t.map((line) => {\n\t\t\t\tconst separatorIndex = line.lastIndexOf(\":\");\n\t\t\t\tif (separatorIndex === -1) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tconst file = line.slice(0, separatorIndex);\n\t\t\t\tconst count = Number.parseInt(line.slice(separatorIndex + 1), 10);\n\t\t\t\tif (!file || Number.isNaN(count)) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn create(GrepFileCountSchema, { file, count });\n\t\t\t})\n\t\t\t.filter((entry): entry is GrepFileCount => entry !== null);\n\t\tconst totalMatches = counts.reduce((sum, entry) => sum + entry.count, 0);\n\t\tunionResult = create(GrepUnionResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"count\",\n\t\t\t\tvalue: create(GrepCountResultSchema, {\n\t\t\t\t\tcounts,\n\t\t\t\t\ttotalFiles: counts.length,\n\t\t\t\t\ttotalMatches,\n\t\t\t\t\tclientTruncated,\n\t\t\t\t\tripgrepTruncated: false,\n\t\t\t\t\toffsetApplied: args.offset,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\t} else {\n\t\tconst matchMap = new Map<string, Array<{ line: number; content: string; isContextLine: boolean }>>();\n\t\tlet totalMatchedLines = 0;\n\n\t\tfor (const line of lines) {\n\t\t\tconst matchLine = line.match(/^(.+?):(\\d+):\\s?(.*)$/);\n\t\t\tconst contextLine = line.match(/^(.+?)-(\\d+)-\\s?(.*)$/);\n\t\t\tconst match = matchLine ?? contextLine;\n\t\t\tif (!match) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst [, file, lineNumber, content] = match;\n\t\t\tconst isContextLine = Boolean(contextLine);\n\t\t\tconst list = matchMap.get(file) ?? [];\n\t\t\tlist.push({ line: Number(lineNumber), content, isContextLine });\n\t\t\tmatchMap.set(file, list);\n\t\t\tif (!isContextLine) {\n\t\t\t\ttotalMatchedLines += 1;\n\t\t\t}\n\t\t}\n\n\t\tconst matches = Array.from(matchMap.entries()).map(([file, fileMatches]) =>\n\t\t\tcreate(GrepFileMatchSchema, {\n\t\t\t\tfile,\n\t\t\t\tmatches: fileMatches.map((entry) =>\n\t\t\t\t\tcreate(GrepContentMatchSchema, {\n\t\t\t\t\t\tlineNumber: entry.line,\n\t\t\t\t\t\tcontent: entry.content,\n\t\t\t\t\t\tcontentTruncated: false,\n\t\t\t\t\t\tisContextLine: entry.isContextLine,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t}),\n\t\t);\n\t\tconst totalLines = matches.reduce((sum, entry) => sum + entry.matches.length, 0);\n\t\tunionResult = create(GrepUnionResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"content\",\n\t\t\t\tvalue: create(GrepContentResultSchema, {\n\t\t\t\t\tmatches,\n\t\t\t\t\ttotalLines,\n\t\t\t\t\ttotalMatchedLines,\n\t\t\t\t\tclientTruncated,\n\t\t\t\t\tripgrepTruncated: false,\n\t\t\t\t\toffsetApplied: args.offset,\n\t\t\t\t}),\n\t\t\t},\n\t\t});\n\t}\n\n\treturn create(GrepResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(GrepSuccessSchema, {\n\t\t\t\tpattern: args.pattern,\n\t\t\t\tpath: args.path || \"\",\n\t\t\t\toutputMode,\n\t\t\t\tworkspaceResults: { [workspaceKey]: unionResult },\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildGrepErrorResult(error: string) {\n\treturn create(GrepResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(GrepErrorSchema, { error }),\n\t\t},\n\t});\n}\n\n/**\n * Reject a Cursor exec-channel `grepArgs` frame whose `pattern` is empty or\n * whitespace-only. Returns an actionable error message (with a `glob`-aware\n * hint when the model likely meant to list files) or `null` when the pattern\n * is valid and grep should run. Exported for tests.\n */\nexport function emptyGrepPatternRejection(pattern: string | undefined, glob: string | undefined): string | null {\n\tif (pattern && pattern.trim().length > 0) return null;\n\tif (glob && glob.length > 0) {\n\t\treturn (\n\t\t\t`grep pattern is required (received an empty pattern). To list files matching \"${glob}\", ` +\n\t\t\t`pass a non-empty regex (e.g. \".\") and set path to that glob, or use the ls/read tool instead.`\n\t\t);\n\t}\n\treturn \"grep pattern is required (received an empty pattern).\";\n}\n\nfunction buildDiagnosticsResultFromToolResult(path: string, toolResult: ToolResultMessage) {\n\tconst text = toolResultToText(toolResult);\n\tif (toolResult.isError) {\n\t\treturn buildDiagnosticsErrorResult(path, text || \"Diagnostics failed\");\n\t}\n\treturn create(DiagnosticsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(DiagnosticsSuccessSchema, {\n\t\t\t\tpath,\n\t\t\t\tdiagnostics: [],\n\t\t\t\ttotalDiagnostics: 0,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildDiagnosticsErrorResult(_path: string, error: string) {\n\treturn create(DiagnosticsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(DiagnosticsErrorSchema, { error }),\n\t\t},\n\t});\n}\n\nfunction buildDiagnosticsRejectedResult(path: string, reason: string) {\n\treturn create(DiagnosticsResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"rejected\",\n\t\t\tvalue: create(DiagnosticsRejectedSchema, { path, reason }),\n\t\t},\n\t});\n}\n\nfunction parseToolArgsJson(text: string): unknown {\n\tconst trimmed = text.trim();\n\tif (!trimmed) {\n\t\treturn text;\n\t}\n\ttry {\n\t\treturn parseJsonWithRepair<unknown>(trimmed);\n\t} catch {\n\t\treturn text;\n\t}\n}\n\nfunction decodeMcpArgValue(value: Uint8Array): unknown {\n\ttry {\n\t\tconst parsedValue = fromBinary(ValueSchema, value);\n\t\tconst jsonValue = toJson(ValueSchema, parsedValue) as PbJsonValue;\n\t\tif (typeof jsonValue === \"string\") {\n\t\t\treturn parseToolArgsJson(jsonValue);\n\t\t}\n\t\treturn jsonValue;\n\t} catch {}\n\tconst text = new TextDecoder().decode(value);\n\treturn parseToolArgsJson(text);\n}\n\nfunction decodeMcpArgsMap(args?: Record<string, Uint8Array>): Record<string, unknown> | undefined {\n\tif (!args) {\n\t\treturn undefined;\n\t}\n\tconst decoded: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(args)) {\n\t\tdecoded[key] = decodeMcpArgValue(value);\n\t}\n\treturn decoded;\n}\n\nfunction decodeMcpCall(args: {\n\tname: string;\n\targs: Record<string, Uint8Array>;\n\ttoolCallId: string;\n\tproviderIdentifier: string;\n\ttoolName: string;\n\tsmartModeApprovalOnly?: boolean;\n}): CursorMcpCall {\n\tconst decodedArgs: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(args.args ?? {})) {\n\t\tdecodedArgs[key] = decodeMcpArgValue(value);\n\t}\n\treturn {\n\t\tname: args.name,\n\t\tproviderIdentifier: args.providerIdentifier,\n\t\ttoolName: args.toolName || args.name,\n\t\ttoolCallId: args.toolCallId,\n\t\targs: decodedArgs,\n\t\trawArgs: args.args ?? {},\n\t\tapprovalOnly: args.smartModeApprovalOnly === true,\n\t};\n}\n\n/**\n * Map Cursor's `TodoStatus` enum onto display statuses. Cancelled (4) maps to\n * `abandoned` rather than collapsing to `pending`, which would resurrect a\n * task the model explicitly cancelled.\n */\nfunction mapTodoStatusValue(status?: number): \"pending\" | \"in_progress\" | \"completed\" | \"abandoned\" {\n\tswitch (status) {\n\t\tcase 2:\n\t\t\treturn \"in_progress\";\n\t\tcase 3:\n\t\t\treturn \"completed\";\n\t\tcase 4:\n\t\t\treturn \"abandoned\";\n\t\tdefault:\n\t\t\treturn \"pending\";\n\t}\n}\n\ninterface CursorTodoItem {\n\tid?: string;\n\tcontent?: string;\n\tstatus?: number;\n\tdependencies?: string[];\n}\n\ninterface CursorTodoResult {\n\tresult?: {\n\t\tcase?: \"success\" | \"error\";\n\t\tvalue?: { todos?: CursorTodoItem[]; totalCount?: number; wasMerge?: boolean; error?: string };\n\t};\n}\n\ninterface CursorUpdateTodosCall {\n\targs?: { todos?: CursorTodoItem[]; merge?: boolean };\n\tresult?: CursorTodoResult;\n}\n\ninterface CursorReadTodosCall {\n\targs?: { statusFilter?: number[]; idFilter?: string[] };\n\tresult?: CursorTodoResult;\n}\n\n/**\n * `ToolCall` is a protobuf oneof, so a decoded message exposes the selected\n * variant as `tool: { case, value }` — NOT as a named property. Hand-built\n * fixtures use the flattened form, so both are accepted here.\n */\ninterface CursorTodoToolCall {\n\ttool?: { case?: string; value?: unknown };\n\tupdateTodosToolCall?: CursorUpdateTodosCall;\n\treadTodosToolCall?: CursorReadTodosCall;\n}\n\nfunction selectTodoCalls(toolCall: CursorTodoToolCall): {\n\tupdate?: CursorUpdateTodosCall;\n\tread?: CursorReadTodosCall;\n} {\n\tconst oneof = toolCall.tool;\n\tif (oneof?.case === \"updateTodosToolCall\") return { update: oneof.value as CursorUpdateTodosCall };\n\tif (oneof?.case === \"readTodosToolCall\") return { read: oneof.value as CursorReadTodosCall };\n\treturn { update: toolCall.updateTodosToolCall, read: toolCall.readTodosToolCall };\n}\n\nfunction mapTodoSnapshot(todos: CursorTodoItem[]) {\n\treturn todos.map((todo) => ({\n\t\tcontent: typeof todo.content === \"string\" ? todo.content : \"\",\n\t\tstatus: mapTodoStatusValue(typeof todo.status === \"number\" ? todo.status : undefined),\n\t}));\n}\n\ninterface CursorMcpToolCall {\n\targs?: {\n\t\tname?: string;\n\t\ttoolName?: string;\n\t\ttoolCallId?: string;\n\t\targs?: Record<string, Uint8Array>;\n\t};\n}\n\ninterface CursorMcpToolCallCarrier {\n\ttool?: { case?: string; value?: unknown };\n\tmcpToolCall?: CursorMcpToolCall;\n}\n\n/**\n * `ToolCall.tool` is a protobuf oneof: a wire-decoded message exposes the\n * variant as `{ case, value }` and NEVER as a flattened property. The flat\n * fallback is kept for hand-shaped test fixtures.\n */\nfunction selectMcpCall(toolCall: CursorMcpToolCallCarrier | undefined): CursorMcpToolCall | undefined {\n\tconst oneof = toolCall?.tool;\n\tif (oneof?.case === \"mcpToolCall\") return oneof.value as CursorMcpToolCall;\n\treturn toolCall?.mcpToolCall;\n}\n\n/**\n * The streamed `ToolCall` variants whose block the exec channel owns.\n *\n * Each of these is announced on the interaction stream AND dispatched as its\n * own `ExecServerMessage` frame, so the block is synthesized once, by the\n * exec handler, which is the side that has the result.\n */\nconst EXEC_OWNED_TOOL_CALL_CASES: ReadonlySet<string> = new Set([\n\t\"piReadToolCall\",\n\t\"piBashToolCall\",\n\t\"piEditToolCall\",\n\t\"piWriteToolCall\",\n\t\"piGrepToolCall\",\n\t\"piFindToolCall\",\n\t\"piLsToolCall\",\n\t\"listMcpResourcesToolCall\",\n\t\"readMcpResourceToolCall\",\n]);\n\nfunction isExecOwnedToolCall(toolCall: { tool?: { case?: string } } | undefined): boolean {\n\tconst variant = toolCall?.tool?.case;\n\treturn variant !== undefined && EXEC_OWNED_TOOL_CALL_CASES.has(variant);\n}\n\n/**\n * Close every tool-call block still open when the stream ends.\n *\n * Not just the last one started: with interleaved calls several can be open\n * at once, and an unclosed block leaves its live card animating and its call\n * unpaired. Only blocks fed by a streamed argument buffer get reparsed.\n * Server-owned blocks (`connect-scm`, `todo`) are also paired here: they are\n * stamped resolved the moment they open, so only their completion frame pairs\n * a result — a transport that closes before that frame would leave the call\n * unpaired. MCP blocks are excluded even when resolved: the exec dispatch\n * that marked them owns their result.\n */\nexport function flushOpenToolCalls(\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n): void {\n\tconst openBlocks = new Set<ToolCallState>(state.openToolCalls.values());\n\tif (state.currentToolCall) openBlocks.add(state.currentToolCall);\n\tfor (const block of openBlocks) {\n\t\tconst idx = output.content.indexOf(block);\n\t\tconst partialJson = block[kStreamingPartialJson];\n\t\tif (partialJson !== undefined) {\n\t\t\tblock.arguments = parseStreamingJson(partialJson);\n\t\t\tclearStreamingPartialJson(block);\n\t\t}\n\t\tconst kind = block[kStreamingBlockKind];\n\t\tif (kind === \"connect-scm\" || kind === \"todo\") {\n\t\t\tvoid state.onToolResult?.({\n\t\t\t\trole: \"toolResult\",\n\t\t\t\ttoolCallId: block.id,\n\t\t\t\ttoolName: block.name,\n\t\t\t\tcontent: [{ type: \"text\", text: \"The connection to Cursor closed before this call completed.\" }],\n\t\t\t\tisError: true,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t});\n\t\t}\n\t\tstream.push({ type: \"toolcall_end\", contentIndex: idx, toolCall: block, partial: output });\n\t}\n\tstate.openToolCalls.clear();\n\tstate.setToolCall(null);\n}\n\n/**\n * Retain a freshly opened streamed tool-call block, keyed by the interaction\n * envelope's `call_id`. `currentToolCall` is still set as the fallback for\n * frames that carry no `call_id`.\n */\nfunction retainStreamedCall(state: BlockState, block: ToolCallState, envelopeId: string | undefined): void {\n\tif (envelopeId) state.openToolCalls.set(envelopeId, block);\n\tstate.setToolCall(block);\n}\n\n/**\n * The open block a streamed update addresses, or `null` to ignore the update.\n *\n * Cursor interleaves calls: `start A, start B, complete A` is legal, so the\n * update must reach block A even though B opened last. An id naming no open\n * block is ignored rather than misapplied. A missing id falls back to the\n * current block.\n */\nfunction resolveStreamedCall(state: BlockState, envelopeId: string | undefined): ToolCallState | null {\n\tif (!envelopeId) return state.currentToolCall;\n\tconst keyed = state.openToolCalls.get(envelopeId);\n\tif (keyed) return keyed;\n\tconst current = state.currentToolCall;\n\treturn current && current[kStreamingEnvelopeId] === undefined ? current : null;\n}\n\n/** Release a settled block from both the keyed map and the current slot. */\nfunction releaseStreamedCall(state: BlockState, block: ToolCallState): void {\n\tconst envelopeId = block[kStreamingEnvelopeId];\n\tif (envelopeId) state.openToolCalls.delete(envelopeId);\n\tif (state.currentToolCall === block) state.setToolCall(null);\n}\n\ninterface CursorConnectScmRepository {\n\towner?: string;\n\trepo?: string;\n}\n\ninterface CursorConnectScmCall {\n\targs?: {\n\t\ttoolCallId?: string;\n\t\ttarget?: { case?: string; value?: { repository?: CursorConnectScmRepository } };\n\t\tgithub?: { repository?: CursorConnectScmRepository };\n\t};\n\tresult?: { result?: { case?: string; value?: { error?: string; reason?: string } } };\n}\n\ninterface CursorConnectScmCarrier {\n\ttool?: { case?: string; value?: unknown };\n\tconnectScmToolCall?: CursorConnectScmCall;\n}\n\nfunction selectConnectScmCall(toolCall: CursorConnectScmCarrier | undefined): CursorConnectScmCall | undefined {\n\tconst oneof = toolCall?.tool;\n\tif (oneof?.case === \"connectScmToolCall\") return oneof.value as CursorConnectScmCall;\n\treturn toolCall?.connectScmToolCall;\n}\n\nfunction selectConnectScmRepository(call: CursorConnectScmCall | undefined): CursorConnectScmRepository | undefined {\n\tconst target = call?.args?.target;\n\tif (target?.case === \"github\") return target.value?.repository;\n\treturn call?.args?.github?.repository;\n}\n\n/** Render a settled `ConnectScmResult` as the text of its paired tool result. */\nfunction describeConnectScmResult(call: CursorConnectScmCall | undefined): { text: string; isError: boolean } {\n\tconst result = call?.result?.result;\n\tswitch (result?.case) {\n\t\tcase \"success\":\n\t\t\treturn { text: \"SCM connected\", isError: false };\n\t\tcase \"error\":\n\t\t\treturn { text: result.value?.error || \"SCM connection failed\", isError: true };\n\t\tcase \"rejected\":\n\t\t\treturn { text: result.value?.reason || \"SCM connection rejected\", isError: true };\n\t\tdefault:\n\t\t\treturn { text: \"SCM connection reported no result\", isError: true };\n\t}\n}\n\n/**\n * Extract the authoritative full todo list from a completed native todo call.\n * Only `result.success.todos` is authoritative; filtered/partial/ambiguous\n * responses return `null`, which the caller MUST treat as \"nothing to mirror\".\n */\nfunction extractTodoSnapshot(\n\ttoolCall: CursorTodoToolCall,\n): { todos: ReturnType<typeof mapTodoSnapshot>; merged: boolean } | null {\n\tconst { update, read } = selectTodoCalls(toolCall);\n\tif (read && ((read.args?.statusFilter?.length ?? 0) > 0 || (read.args?.idFilter?.length ?? 0) > 0)) {\n\t\treturn null;\n\t}\n\tconst call = update ?? read;\n\tif (!call) return null;\n\tconst result = call.result?.result;\n\tif (result?.case !== \"success\") return null;\n\tconst todos = result.value?.todos;\n\tif (!todos) return null;\n\tconst totalCount = result.value?.totalCount;\n\tif (typeof totalCount === \"number\" && totalCount !== todos.length) {\n\t\treturn null;\n\t}\n\tif (read && todos.length === 0) {\n\t\treturn null;\n\t}\n\tconst mapped = mapTodoSnapshot(todos);\n\tif (mapped.some((todo) => todo.content.length === 0)) return null;\n\treturn {\n\t\ttodos: mapped,\n\t\tmerged: result.value?.wasMerge === true,\n\t};\n}\n\n/** Error text when the server itself rejected the call. */\nfunction extractTodoError(toolCall: CursorTodoToolCall): string | null {\n\tconst { update, read } = selectTodoCalls(toolCall);\n\tconst result = (update ?? read)?.result?.result;\n\tif (result?.case !== \"error\") return null;\n\tconst error = result.value?.error;\n\treturn typeof error === \"string\" && error.length > 0 ? error : \"Todo operation failed\";\n}\n\n/** Args echoed onto the synthesized display block, for rendering only. */\nfunction buildTodoDisplayArgs(toolCall: CursorTodoToolCall): {\n\ttodos: ReturnType<typeof mapTodoSnapshot>;\n\tmerge?: boolean;\n} {\n\tconst args = selectTodoCalls(toolCall).update?.args;\n\treturn {\n\t\ttodos: args?.todos ? mapTodoSnapshot(args.todos) : [],\n\t\tmerge: args?.merge === true ? true : undefined,\n\t};\n}\n\n/**\n * Paired result for a server-resolved native todo call. Nothing else would\n * produce a `toolResult` for the block — and transcript rebuilds strip any\n * `toolCall` left unpaired.\n */\nfunction buildTodoToolResult(\n\ttoolCallId: string,\n\tsnapshot: { todos: ReturnType<typeof mapTodoSnapshot> } | null,\n\terror: string | null,\n): ToolResultMessage {\n\tconst text = error ?? (snapshot ? formatTodoSnapshotSummary(snapshot.todos) : \"Todo snapshot not mirrored\");\n\treturn {\n\t\trole: \"toolResult\",\n\t\ttoolCallId,\n\t\ttoolName: \"todo\",\n\t\tcontent: [{ type: \"text\", text }],\n\t\tisError: error !== null,\n\t\ttimestamp: Date.now(),\n\t};\n}\n\nfunction formatTodoSnapshotSummary(todos: { status: string }[]): string {\n\tif (todos.length === 0) return \"No todos\";\n\tconst done = todos.filter((todo) => todo.status === \"completed\").length;\n\treturn `${done}/${todos.length} tasks completed`;\n}\n\nfunction buildMcpResultFromToolResult(_mcpCall: CursorMcpCall, toolResult: ToolResultMessage) {\n\tif (toolResult.isError) {\n\t\treturn buildMcpErrorResult(toolResultToText(toolResult) || \"MCP tool failed\");\n\t}\n\tconst content = toolResult.content.map((item) => {\n\t\tif (item.type === \"image\") {\n\t\t\treturn create(McpToolResultContentItemSchema, {\n\t\t\t\tcontent: {\n\t\t\t\t\tcase: \"image\",\n\t\t\t\t\tvalue: create(McpImageContentSchema, {\n\t\t\t\t\t\tdata: Uint8Array.from(Buffer.from(item.data, \"base64\")),\n\t\t\t\t\t\tmimeType: item.mimeType,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\treturn create(McpToolResultContentItemSchema, {\n\t\t\tcontent: {\n\t\t\t\tcase: \"text\",\n\t\t\t\tvalue: create(McpTextContentSchema, { text: item.text }),\n\t\t\t},\n\t\t});\n\t});\n\n\treturn create(McpResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(McpSuccessSchema, {\n\t\t\t\tcontent,\n\t\t\t\tisError: false,\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction buildMcpToolNotFoundResult(mcpCall: CursorMcpCall) {\n\treturn create(McpResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"toolNotFound\",\n\t\t\tvalue: create(McpToolNotFoundSchema, { name: mcpCall.toolName, availableTools: [] }),\n\t\t},\n\t});\n}\n\nfunction buildMcpErrorResult(error: string) {\n\treturn create(McpResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"error\",\n\t\t\tvalue: create(McpErrorSchema, { error }),\n\t\t},\n\t});\n}\n\n/**\n * Merge the decoded completion-frame `McpArgs` map into the args assembled\n * from streamed `args_text_delta` snapshots.\n *\n * The completion frame is authoritative for the scalars it carries — but it\n * can omit oversized parameters entirely and can downgrade a structured value\n * to its raw string fallback. Rules per key:\n * - completion key absent → keep the streamed value.\n * - completion is a string while the streamed value is structured → keep the\n * streamed value (the completion frame downgraded it).\n * - otherwise → completion wins.\n */\nexport function mergeCursorMcpToolCallArgs(\n\tstreamed: Record<string, unknown> | undefined,\n\tcompletion: Record<string, unknown> | undefined,\n): Record<string, unknown> {\n\tconst merged: Record<string, unknown> = { ...(streamed ?? {}) };\n\tif (!completion) return merged;\n\tfor (const [key, completionValue] of Object.entries(completion)) {\n\t\tconst streamedValue = merged[key];\n\t\tif (typeof completionValue === \"string\" && streamedValue !== null && typeof streamedValue === \"object\") {\n\t\t\tcontinue;\n\t\t}\n\t\tmerged[key] = completionValue;\n\t}\n\treturn merged;\n}\n\nfunction endCurrentTextBlock(output: AssistantMessage, stream: AssistantMessageEventStream, state: BlockState): void {\n\tconst block = state.currentTextBlock;\n\tif (!block) return;\n\tconst idx = output.content.indexOf(block);\n\tstream.push({\n\t\ttype: \"text_end\",\n\t\tcontentIndex: idx,\n\t\tcontent: block.text,\n\t\tpartial: output,\n\t});\n\tstate.setTextBlock(null);\n}\n\nfunction endCurrentThinkingBlock(\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n): void {\n\tconst block = state.currentThinkingBlock;\n\tif (!block) return;\n\tconst idx = output.content.indexOf(block);\n\tstream.push({\n\t\ttype: \"thinking_end\",\n\t\tcontentIndex: idx,\n\t\tcontent: block.thinking,\n\t\tpartial: output,\n\t});\n\tstate.setThinkingBlock(null);\n}\n\n/**\n * Synthesize a completed `toolCall` content block for a Cursor exec-channel\n * native tool or for an MCP exec frame whose corresponding interaction block\n * is absent.\n *\n * Args arrive complete on the exec message, so the block opens and closes in\n * one step. Without this the persisted assistant message carries only\n * text/thinking blocks, and on replay the following `toolResult` messages\n * have no matching `toolCall.id`.\n *\n * The block is stamped with {@link kCursorExecResolved} so the agent loop's\n * execution pass skips it — Cursor's server-driven exec channel already ran\n * the tool via the bridge and buffered the result. Exported for tests.\n */\nexport function synthesizeCursorExecToolCall(\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n\ttoolCallId: string,\n\ttoolName: string,\n\targs: Record<string, unknown>,\n): void {\n\tendCurrentTextBlock(output, stream, state);\n\tendCurrentThinkingBlock(output, stream, state);\n\tconst block: ToolCallState = {\n\t\ttype: \"toolCall\",\n\t\tid: toolCallId,\n\t\tname: toolName,\n\t\targuments: omitUndefinedArgs(args),\n\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t[kStreamingBlockKind]: \"cursor-exec\",\n\t\t[kCursorExecResolved]: true,\n\t};\n\toutput.content.push(block);\n\tconst idx = output.content.length - 1;\n\tstream.push({ type: \"toolcall_start\", contentIndex: idx, partial: output });\n\tstream.push({ type: \"toolcall_end\", contentIndex: idx, toolCall: block, partial: output });\n}\n\n/**\n * Pair a `toolResult` for a synthesized block the client answered itself,\n * without ever consulting a handler. Frames answered from a fixed verdict —\n * no handler, no local execution — still need the pair: the block was stamped\n * {@link kCursorExecResolved}, so the agent loop emits no placeholder for it\n * and transcript rebuilds strip an unpaired call.\n */\nasync function pairSynthesizedExecResult(\n\tstate: BlockState,\n\tonToolResult: CursorToolResultHandler | undefined,\n\ttoolCallId: string,\n\ttoolName: string,\n\ttext: string,\n\tisError = true,\n): Promise<void> {\n\tconst synthesized: ToolResultMessage = {\n\t\trole: \"toolResult\",\n\t\ttoolCallId,\n\t\ttoolName,\n\t\tcontent: [{ type: \"text\", text }],\n\t\tisError,\n\t\ttimestamp: Date.now(),\n\t};\n\tconst sink = onToolResult ?? state.onToolResult;\n\tif (!sink) return;\n\tawait sink(synthesized);\n}\n\n/**\n * Throttle threshold for mid-stream argument JSON parses: reparse only when\n * the buffer grew by this much since the last successful parse, keeping total\n * parse work bounded while the authoritative full parse runs on completion.\n */\nconst STREAMING_ARGS_REPARSE_DELTA = 1024;\n\n/** Exported for tests: drives one Cursor interaction update through the streaming state machine. */\nexport function processInteractionUpdate(\n\tupdate: any,\n\toutput: AssistantMessage,\n\tstream: AssistantMessageEventStream,\n\tstate: BlockState,\n\tusageState: UsageState,\n): void {\n\tconst updateCase = update.message?.case;\n\n\tlog(\"interactionUpdate\", updateCase);\n\n\tif (updateCase === \"textDelta\") {\n\t\tconst delta = update.message.value.text || \"\";\n\t\tif (!state.currentTextBlock) {\n\t\t\tconst block: TextContent & { [kStreamingBlockIndex]: number } = {\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: \"\",\n\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t};\n\t\t\toutput.content.push(block);\n\t\t\tstate.setTextBlock(block);\n\t\t\tstream.push({ type: \"text_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t}\n\t\tstate.currentTextBlock!.text += delta;\n\t\tconst idx = output.content.indexOf(state.currentTextBlock!);\n\t\tstream.push({ type: \"text_delta\", contentIndex: idx, delta, partial: output });\n\t} else if (updateCase === \"thinkingDelta\") {\n\t\tconst delta = update.message.value.text || \"\";\n\t\tif (!state.currentThinkingBlock) {\n\t\t\tconst block: ThinkingContent & { [kStreamingBlockIndex]: number } = {\n\t\t\t\ttype: \"thinking\",\n\t\t\t\tthinking: \"\",\n\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t};\n\t\t\toutput.content.push(block);\n\t\t\tstate.setThinkingBlock(block);\n\t\t\tstream.push({ type: \"thinking_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t}\n\t\tstate.currentThinkingBlock!.thinking += delta;\n\t\tconst idx = output.content.indexOf(state.currentThinkingBlock!);\n\t\tstream.push({ type: \"thinking_delta\", contentIndex: idx, delta, partial: output });\n\t} else if (updateCase === \"thinkingCompleted\") {\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t} else if (updateCase === \"toolCallStarted\" && selectConnectScmCall(update.message.value.toolCall)) {\n\t\t// `connect_scm` is resolved entirely server-side and has NO exec frame:\n\t\t// the streamed pair is the only signal this client sees. The\n\t\t// authoritative outcome rides on the COMPLETION's `result` oneof, so the\n\t\t// block is opened here and settled there.\n\t\tendCurrentTextBlock(output, stream, state);\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t\tconst scmCall = selectConnectScmCall(update.message.value.toolCall);\n\t\tconst repository = selectConnectScmRepository(scmCall);\n\t\tconst block: ToolCallState = {\n\t\t\ttype: \"toolCall\",\n\t\t\tid: scmCall?.args?.toolCallId || update.message.value.callId || randomUUID(),\n\t\t\tname: \"connect_scm\",\n\t\t\targuments: repository ? { owner: repository.owner, repo: repository.repo } : {},\n\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t[kStreamingBlockKind]: \"connect-scm\",\n\t\t\t[kStreamingEnvelopeId]: update.message.value.callId || undefined,\n\t\t\t[kCursorExecResolved]: true,\n\t\t};\n\t\toutput.content.push(block);\n\t\tretainStreamedCall(state, block, update.message.value.callId);\n\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t} else if (updateCase === \"toolCallStarted\" && isExecOwnedToolCall(update.message.value.toolCall)) {\n\t\t// The exec channel already synthesized this block (and marked it\n\t\t// resolved) when it ran the tool locally, so the streamed announcement\n\t\t// must not create a second one.\n\t\tendCurrentTextBlock(output, stream, state);\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t\tlog(\"exec\", \"streamedToolCallOwnedByExec\", { case: update.message.value.toolCall?.tool?.case });\n\t} else if (updateCase === \"toolCallStarted\") {\n\t\tendCurrentTextBlock(output, stream, state);\n\t\tendCurrentThinkingBlock(output, stream, state);\n\t\tconst toolCall = update.message.value.toolCall;\n\t\tif (toolCall) {\n\t\t\tconst mcpCall = selectMcpCall(toolCall);\n\t\t\tif (mcpCall) {\n\t\t\t\tconst args = mcpCall.args || {};\n\t\t\t\tconst id = args.toolCallId || randomUUID();\n\t\t\t\tconst resolvedByExec = state.resolvedMcpToolCallIds.delete(id);\n\t\t\t\tif (resolvedByExec && output.content.some((block) => block.type === \"toolCall\" && block.id === id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst block: ToolCallState = {\n\t\t\t\t\ttype: \"toolCall\",\n\t\t\t\t\tid,\n\t\t\t\t\t// Same precedence as `decodeMcpCall` (`toolName || name`), which\n\t\t\t\t\t// is what the exec channel pairs its result under.\n\t\t\t\t\tname: args.toolName || args.name || \"\",\n\t\t\t\t\targuments: {},\n\t\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t\t\t[kStreamingPartialJson]: \"\",\n\t\t\t\t\t[kStreamingBlockKind]: \"mcp\",\n\t\t\t\t\t[kStreamingEnvelopeId]: update.message.value.callId || undefined,\n\t\t\t\t};\n\t\t\t\tif (resolvedByExec) {\n\t\t\t\t\tmarkCursorExecResolved(block);\n\t\t\t\t}\n\t\t\t\toutput.content.push(block);\n\t\t\t\tretainStreamedCall(state, block, update.message.value.callId);\n\t\t\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Cursor resolves `update_todos` / `read_todos` server-side and\n\t\t\t// settles them on the tool call's `result`. Both blocks are stamped\n\t\t\t// resolved so the agent loop never runs them locally.\n\t\t\tconst todoCalls = selectTodoCalls(toolCall);\n\t\t\tif (todoCalls.update || todoCalls.read) {\n\t\t\t\tconst callId = update.message.value.callId || randomUUID();\n\t\t\t\tconst block: ToolCallState = {\n\t\t\t\t\ttype: \"toolCall\",\n\t\t\t\t\tid: callId,\n\t\t\t\t\tname: \"todo\",\n\t\t\t\t\targuments: buildTodoDisplayArgs(toolCall),\n\t\t\t\t\t[kStreamingBlockIndex]: output.content.length,\n\t\t\t\t\t[kStreamingBlockKind]: \"todo\",\n\t\t\t\t\t[kStreamingEnvelopeId]: update.message.value.callId || undefined,\n\t\t\t\t\t[kCursorExecResolved]: true,\n\t\t\t\t};\n\t\t\t\toutput.content.push(block);\n\t\t\t\tretainStreamedCall(state, block, update.message.value.callId);\n\t\t\t\tstream.push({ type: \"toolcall_start\", contentIndex: output.content.length - 1, partial: output });\n\t\t\t}\n\t\t}\n\t} else if (updateCase === \"toolCallDelta\" || updateCase === \"partialToolCall\") {\n\t\t// An argument delta belonging to a different call must not be appended\n\t\t// to this block's buffer, which would corrupt the JSON both parse.\n\t\tconst target = resolveStreamedCall(state, update.message.value.callId);\n\t\tif (target?.[kStreamingBlockKind] === \"mcp\") {\n\t\t\t// Cursor's `args_text_delta` is \"aggregated args text so far\": each\n\t\t\t// delta is a cumulative snapshot. Strip the prefix we already have to\n\t\t\t// recover the new suffix; fall back to treating the value as an\n\t\t\t// incremental fragment when it doesn't extend the buffer.\n\t\t\tconst snapshot: string = update.message.value.argsTextDelta || \"\";\n\t\t\tconst current = target[kStreamingPartialJson] ?? \"\";\n\t\t\tconst chunk = snapshot.startsWith(current) ? snapshot.slice(current.length) : snapshot;\n\t\t\tif (chunk.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst nextBuffer = current + chunk;\n\t\t\ttarget[kStreamingPartialJson] = nextBuffer;\n\t\t\t// Throttle mid-stream parses to keep total parse work bounded; the\n\t\t\t// authoritative full parse runs in `toolCallCompleted`.\n\t\t\tconst lastParseLen = target[kStreamingLastParseLen] ?? 0;\n\t\t\tif (nextBuffer.length - lastParseLen >= STREAMING_ARGS_REPARSE_DELTA) {\n\t\t\t\ttarget.arguments = parseStreamingJson(nextBuffer);\n\t\t\t\ttarget[kStreamingLastParseLen] = nextBuffer.length;\n\t\t\t}\n\t\t\tconst idx = output.content.indexOf(target);\n\t\t\tstream.push({ type: \"toolcall_delta\", contentIndex: idx, delta: chunk, partial: output });\n\t\t}\n\t} else if (updateCase === \"toolCallCompleted\") {\n\t\t// Correlate on the envelope's `call_id`, NOT the block id: MCP, Pi and\n\t\t// SCM blocks are filed under the id inside the call's `args`, and that\n\t\t// need not equal the envelope id.\n\t\tconst settled = resolveStreamedCall(state, update.message.value.callId);\n\t\tif (settled) {\n\t\t\tconst toolCall = update.message.value.toolCall;\n\t\t\tif (settled[kStreamingBlockKind] === \"mcp\") {\n\t\t\t\t// Authoritative full parse of the accumulated argument buffer.\n\t\t\t\tconst previousArgs = settled.arguments;\n\t\t\t\tconst partial = settled[kStreamingPartialJson];\n\t\t\t\tif (partial !== undefined) {\n\t\t\t\t\tsettled.arguments = parseStreamingJson(partial);\n\t\t\t\t}\n\t\t\t\tconst decodedArgs = decodeMcpArgsMap(selectMcpCall(toolCall)?.args?.args);\n\t\t\t\tsettled.arguments = mergeCursorMcpToolCallArgs(\n\t\t\t\t\tsettled.arguments as Record<string, unknown> | undefined,\n\t\t\t\t\tdecodedArgs,\n\t\t\t\t);\n\t\t\t\tif (settled.name === \"task\") {\n\t\t\t\t\tsettled.arguments = keepUsableCursorTaskArgs(previousArgs, settled.arguments);\n\t\t\t\t}\n\t\t\t} else if (settled[kStreamingBlockKind] === \"connect-scm\") {\n\t\t\t\t// The authoritative outcome arrives only here. Late args are merged\n\t\t\t\t// too — a start frame may announce the call before the target\n\t\t\t\t// repository is known.\n\t\t\t\tconst scmCall = selectConnectScmCall(toolCall);\n\t\t\t\tconst repository = selectConnectScmRepository(scmCall);\n\t\t\t\tif (repository) {\n\t\t\t\t\tsettled.arguments = { owner: repository.owner, repo: repository.repo };\n\t\t\t\t}\n\t\t\t\tconst { text, isError } = describeConnectScmResult(scmCall);\n\t\t\t\tvoid state.onToolResult?.({\n\t\t\t\t\trole: \"toolResult\",\n\t\t\t\t\ttoolCallId: settled.id,\n\t\t\t\t\ttoolName: \"connect_scm\",\n\t\t\t\t\tcontent: [{ type: \"text\", text }],\n\t\t\t\t\tisError,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t});\n\t\t\t} else if (settled[kStreamingBlockKind] === \"todo\") {\n\t\t\t\t// Only the server's success snapshot is authoritative. A completion\n\t\t\t\t// frame whose optional `toolCall` is absent still settles: the block\n\t\t\t\t// is already marked resolved, so nothing downstream pairs it.\n\t\t\t\tconst snapshot = toolCall ? extractTodoSnapshot(toolCall) : null;\n\t\t\t\tconst error = toolCall ? extractTodoError(toolCall) : null;\n\t\t\t\tif (snapshot) {\n\t\t\t\t\tsettled.arguments = { todos: snapshot.todos, merged: snapshot.merged };\n\t\t\t\t}\n\t\t\t\tvoid state.onToolResult?.(buildTodoToolResult(settled.id, snapshot, error));\n\t\t\t}\n\t\t\tconst idx = output.content.indexOf(settled);\n\t\t\tclearStreamingPartialJson(settled);\n\t\t\tstream.push({ type: \"toolcall_end\", contentIndex: idx, toolCall: settled, partial: output });\n\t\t\treleaseStreamedCall(state, settled);\n\t\t}\n\t} else if (updateCase === \"turnEnded\") {\n\t\toutput.stopReason = \"stop\";\n\t\tapplyBilledTurnEndedUsage(update.message.value, output, usageState);\n\t} else if (updateCase === \"tokenDelta\") {\n\t\tconst tokenDelta = update.message.value;\n\t\tusageState.sawTokenDelta = true;\n\t\toutput.usage.output += tokenDelta.tokens || 0;\n\t\toutput.usage.totalTokens =\n\t\t\toutput.usage.input + output.usage.output + output.usage.cacheRead + output.usage.cacheWrite;\n\t}\n}\n\n/**\n * Cursor's production schema (cursor-agent 2026.08.11) carries the billed\n * token split on `turnEnded`: 1 input, 2 output, 3 cache read, 4 cache write,\n * 5 reasoning (optional int64). Live probes against api2.cursor.sh show\n * input_tokens is cache-INCLUSIVE (turn 1: input 21357 ≈ cacheWrite 21354;\n * turn 2: input 17989 ≈ cacheRead 17575 + cacheWrite 411), so the uncached\n * remainder is backed out for senpi's exclusive `usage.input`. The billed\n * split is authoritative for context accounting; the tokenDelta-accumulated\n * output is kept only when the server omits the billed output field.\n * Reasoning tokens are deliberately not folded into output: no other field of\n * `Usage` represents them and double counting against the billed output must\n * be avoided.\n */\nfunction applyBilledTurnEndedUsage(update: TurnEndedUpdate, output: AssistantMessage, usageState: UsageState): void {\n\tconst { inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens } = update;\n\tif (\n\t\tinputTokens === undefined &&\n\t\toutputTokens === undefined &&\n\t\tcacheReadTokens === undefined &&\n\t\tcacheWriteTokens === undefined\n\t) {\n\t\treturn;\n\t}\n\tusageState.sawTurnEndedUsage = true;\n\tconst usage = output.usage;\n\tconst cacheRead = Number(cacheReadTokens ?? 0n);\n\tconst cacheWrite = Number(cacheWriteTokens ?? 0n);\n\tconst liveUsed = usageState.liveUsedTokens ?? 0;\n\t// Cursor sometimes reports dashboard-cumulative cache_read (millions) while\n\t// usedTokens stays at the real window (~150k). Folding that into totalTokens\n\t// forces a useless compact and then a 0-token resource_exhausted.\n\tif (liveUsed > 0 && cacheRead > liveUsed * 3) {\n\t\tif (outputTokens !== undefined) {\n\t\t\tusage.output = Number(outputTokens);\n\t\t}\n\t\tusage.cacheRead = 0;\n\t\tusage.cacheWrite = cacheWrite <= liveUsed ? cacheWrite : 0;\n\t\tusage.input = Math.max(0, liveUsed - usage.output - usage.cacheWrite);\n\t\tusage.totalTokens = liveUsed;\n\t\treturn;\n\t}\n\tusage.cacheRead = cacheRead;\n\tusage.cacheWrite = cacheWrite;\n\tusage.input = Math.max(0, Number(inputTokens ?? 0n) - usage.cacheRead - usage.cacheWrite);\n\tif (outputTokens !== undefined) {\n\t\tusage.output = Number(outputTokens);\n\t}\n\tusage.totalTokens = usage.input + usage.output + usage.cacheRead + usage.cacheWrite;\n}\n\n/**\n * A checkpoint's `tokenDetails.usedTokens` is the server's live conversation\n * size, sent mid-turn. It feeds context accounting while the turn streams,\n * but never overrides the billed turnEnded split once that arrived.\n */\nfunction applyCheckpointTokenDetails(\n\tcheckpoint: ConversationStateStructure,\n\toutput: AssistantMessage,\n\tusageState: UsageState,\n): void {\n\tif (usageState.sawTurnEndedUsage) return;\n\tconst usedTokens = checkpoint.tokenDetails?.usedTokens ?? 0;\n\tif (usedTokens <= 0) return;\n\tusageState.liveUsedTokens = usedTokens;\n\tconst usage = output.usage;\n\tusage.input = Math.max(0, usedTokens - usage.output - usage.cacheRead - usage.cacheWrite);\n\tusage.totalTokens = usage.input + usage.output + usage.cacheRead + usage.cacheWrite;\n}\n\nfunction createBlobId(data: Uint8Array): Uint8Array {\n\treturn new Uint8Array(createHash(\"sha256\").update(data).digest());\n}\n\nfunction storeCursorBlob(blobStore: Map<string, Uint8Array>, data: Uint8Array): Uint8Array {\n\tconst blobId = createBlobId(data);\n\tblobStore.set(Buffer.from(blobId).toString(\"hex\"), data);\n\treturn blobId;\n}\n\nfunction readCursorBlob(blobStore: Map<string, Uint8Array>, blobId: Uint8Array): Uint8Array {\n\tconst data = blobStore.get(Buffer.from(blobId).toString(\"hex\"));\n\tif (!data) {\n\t\tthrow new Error(\"Cursor blob not found\");\n\t}\n\treturn data;\n}\n\n/**\n * Local tools Cursor already drives natively over the exec channel, so\n * advertising them again as MCP tools would give the model two ways to call\n * the same thing.\n */\nconst CURSOR_NATIVE_TOOL_NAMES = new Set([\"bash\", \"read\", \"write\", \"delete\", \"ls\", \"grep\", \"todo\"]);\n\n/** Strip TypeBox symbol metadata down to a plain JSON Schema document. */\nfunction toolParametersToJsonSchema(tool: Tool): unknown {\n\ttry {\n\t\treturn JSON.parse(JSON.stringify(tool.parameters));\n\t} catch {\n\t\treturn { type: \"object\", properties: {}, required: [] };\n\t}\n}\n\n/**\n * JSON-Schema composition keywords Cursor's gateway cannot carry: an\n * advertised tool whose inputSchema contains `oneOf`, `anyOf`, or `allOf` is\n * rejected upstream with a wrapped provider 400 for the WHOLE request\n * (zero tokens, `resource_exhausted` end-stream). MCP tools imported from\n * external servers routinely ship such schemas (e.g. ast-grep's `scan`).\n * `not` is tolerated upstream and kept. Returns a new structure; the input is\n * never mutated.\n */\nconst CURSOR_UNSUPPORTED_SCHEMA_KEYS = new Set([\"oneOf\", \"anyOf\", \"allOf\"]);\n\nexport function sanitizeCursorToolSchema(schema: unknown): unknown {\n\tif (Array.isArray(schema)) return schema.map(sanitizeCursorToolSchema);\n\tif (schema === null || typeof schema !== \"object\") return schema;\n\tconst sanitized: Record<string, unknown> = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (CURSOR_UNSUPPORTED_SCHEMA_KEYS.has(key)) continue;\n\t\tsanitized[key] = sanitizeCursorToolSchema(value);\n\t}\n\treturn sanitized;\n}\n\nexport function buildMcpToolDefinitions(tools: Tool[] | undefined): McpToolDefinition[] {\n\tif (!tools || tools.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst advertisedTools = tools.filter((tool) => !CURSOR_NATIVE_TOOL_NAMES.has(tool.name));\n\tif (advertisedTools.length === 0) {\n\t\treturn [];\n\t}\n\n\treturn advertisedTools.map((tool) => {\n\t\tconst jsonSchema = sanitizeCursorToolSchema(toolParametersToJsonSchema(tool));\n\t\tconst schemaValue: PbJsonValue =\n\t\t\tjsonSchema && typeof jsonSchema === \"object\"\n\t\t\t\t? (jsonSchema as PbJsonValue)\n\t\t\t\t: { type: \"object\", properties: {}, required: [] };\n\t\tconst inputSchema = toBinary(ValueSchema, fromJson(ValueSchema, schemaValue));\n\t\treturn create(McpToolDefinitionSchema, {\n\t\t\tname: tool.name,\n\t\t\tdescription: tool.description || \"\",\n\t\t\tproviderIdentifier: \"pi-agent\",\n\t\t\ttoolName: tool.name,\n\t\t\tinputSchema,\n\t\t});\n\t});\n}\n\n/** Extract text content from a user message. */\nfunction extractUserMessageText(msg: Message): string {\n\tif (msg.role !== \"user\") return \"\";\n\tconst content = msg.content;\n\tif (typeof content === \"string\") return content.trim();\n\tconst text = content\n\t\t.filter((c): c is TextContent => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n\treturn text.trim();\n}\n\nfunction hasUserMessageImages(msg: Message): boolean {\n\treturn msg.role === \"user\" && Array.isArray(msg.content) && msg.content.some((item) => item.type === \"image\");\n}\n\ntype CursorRootPromptContentPart = { type: \"text\"; text: string } | { type: \"image\"; image: string; mediaType: string };\n\nfunction buildCursorRootPromptContent(content: string | (TextContent | ImageContent)[]): CursorRootPromptContentPart[] {\n\tif (typeof content === \"string\") {\n\t\tconst text = content.trim();\n\t\treturn text ? [{ type: \"text\", text }] : [];\n\t}\n\tconst parts: CursorRootPromptContentPart[] = [];\n\tfor (const item of content) {\n\t\tif (item.type === \"text\") {\n\t\t\tconst text = item.text.trim();\n\t\t\tif (text) {\n\t\t\t\tparts.push({ type: \"text\", text });\n\t\t\t}\n\t\t} else {\n\t\t\tparts.push({ type: \"image\", image: `data:${item.mimeType};base64,${item.data}`, mediaType: item.mimeType });\n\t\t}\n\t}\n\treturn parts;\n}\n\nfunction cursorUserContentKey(content: string | (TextContent | ImageContent)[]): string {\n\tif (typeof content === \"string\") {\n\t\treturn content.trim();\n\t}\n\tconst hash = createHash(\"sha256\");\n\tfor (const item of content) {\n\t\thash.update(item.type);\n\t\tif (item.type === \"text\") {\n\t\t\thash.update(item.text);\n\t\t} else {\n\t\t\thash.update(item.mimeType);\n\t\t\thash.update(item.data);\n\t\t}\n\t}\n\treturn hash.digest(\"hex\");\n}\n\ntype CursorRootPromptAssistantContentPart =\n\t| { type: \"text\"; text: string }\n\t| { type: \"tool-call\"; toolCallId: string; toolName: string; args: Record<string, unknown> };\n\nfunction buildCursorAssistantContent(msg: AssistantMessage): CursorRootPromptAssistantContentPart[] {\n\tconst content: CursorRootPromptAssistantContentPart[] = [];\n\tfor (const item of msg.content) {\n\t\tif (item.type === \"text\") {\n\t\t\tif (item.text) content.push({ type: \"text\", text: item.text });\n\t\t} else if (item.type === \"toolCall\") {\n\t\t\tcontent.push({\n\t\t\t\ttype: \"tool-call\",\n\t\t\t\ttoolCallId: item.id,\n\t\t\t\ttoolName: item.name,\n\t\t\t\targs: item.arguments,\n\t\t\t});\n\t\t}\n\t\t// Thinking is never replayed: Cursor manages reasoning server-side and\n\t\t// foreign/hidden reasoning must not leak into history as native thinking.\n\t}\n\treturn content;\n}\n\n/**\n * Index of the last user message in `messages`, or -1 if none. Used to\n * exclude the current user turn from history builders — it goes in the\n * `userMessageAction`, not in history structures.\n */\nfunction findLastUserMessageIndex(messages: Message[]): number {\n\tfor (let i = messages.length - 1; i >= 0; i--) {\n\t\tif (messages[i].role === \"user\") {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n/**\n * Build one Cursor system-message JSON blob per system prompt. When no system\n * prompt is provided, returns a single default greeting so we never emit an\n * empty `rootPromptMessagesJson` head.\n */\nexport function buildCursorSystemPromptJsons(systemPrompt: string | undefined): string[] {\n\tconst trimmed = systemPrompt?.trim();\n\tif (!trimmed) {\n\t\treturn [JSON.stringify({ role: \"system\", content: \"You are a helpful assistant.\" })];\n\t}\n\treturn [JSON.stringify({ role: \"system\", content: trimmed })];\n}\n\n/**\n * Build `ConversationStateStructure.rootPromptMessagesJson` blob IDs for the\n * system prompt plus prior conversation history, as JSON blobs matching\n * Cursor's internal Vercel-AI-SDK-shaped message format.\n *\n * Cursor's server uses `rootPromptMessagesJson` (not `turns[]`) to build the\n * actual model prompt; `turns[]` is UI/display metadata. The active user\n * message is excluded because it is sent in the action.\n */\nfunction buildRootPromptMessagesJson(\n\tmessages: Message[],\n\tsystemPromptIds: Uint8Array[],\n\tblobStore: Map<string, Uint8Array>,\n\tactiveUserMessageIndex = findLastUserMessageIndex(messages),\n): Uint8Array[] {\n\tconst entries: Uint8Array[] = [...systemPromptIds];\n\tconst pushJson = (obj: unknown) => {\n\t\tconst bytes = new TextEncoder().encode(JSON.stringify(obj));\n\t\tentries.push(storeCursorBlob(blobStore, bytes));\n\t};\n\n\tfor (let i = 0; i < messages.length; i++) {\n\t\tif (i === activeUserMessageIndex) break;\n\t\tconst msg = messages[i];\n\t\tif (msg.role === \"user\") {\n\t\t\tconst content = buildCursorRootPromptContent(msg.content);\n\t\t\tif (content.length === 0) continue;\n\t\t\tpushJson({ role: \"user\", content });\n\t\t} else if (msg.role === \"assistant\") {\n\t\t\tconst content = buildCursorAssistantContent(msg);\n\t\t\tif (content.length === 0) continue;\n\t\t\tpushJson({ role: \"assistant\", content });\n\t\t} else if (msg.role === \"toolResult\") {\n\t\t\t// Emit even when the result text is empty: the assistant `tool-call`\n\t\t\t// is already in history, so dropping the pair would replay an\n\t\t\t// orphaned call.\n\t\t\tpushJson({\n\t\t\t\trole: \"tool\",\n\t\t\t\tid: msg.toolCallId,\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\ttoolName: msg.toolName,\n\t\t\t\t\t\ttoolCallId: msg.toolCallId,\n\t\t\t\t\t\tresult: toolResultToText(msg),\n\t\t\t\t\t\t...(msg.isError ? { isError: true } : {}),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t}\n\n\treturn entries;\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n\tif (value === null || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n}\n\nfunction isJsonValue(value: unknown): value is PbJsonValue {\n\tif (value === null || typeof value === \"string\" || typeof value === \"boolean\") return true;\n\tif (typeof value === \"number\") return Number.isFinite(value);\n\tif (Array.isArray(value)) return value.every(isJsonValue);\n\tif (!isPlainRecord(value)) return false;\n\tfor (const key in value) {\n\t\tif (!isJsonValue(value[key])) return false;\n\t}\n\treturn true;\n}\n\nfunction encodeCursorMcpArguments(toolCall: ToolCall): Record<string, Uint8Array> {\n\tconst encoded: Record<string, Uint8Array> = {};\n\tfor (const name in toolCall.arguments) {\n\t\tconst value = toolCall.arguments[name];\n\t\tif (value === undefined) continue;\n\t\tif (!isJsonValue(value)) {\n\t\t\tthrow new Error(`Cursor tool argument ${toolCall.name}.${name} is not JSON-serializable`);\n\t\t}\n\t\tencoded[name] = toBinary(ValueSchema, fromJson(ValueSchema, value));\n\t}\n\treturn encoded;\n}\n\nfunction createCursorMcpResult(result: ToolResultMessage) {\n\tif (result.isError) {\n\t\treturn create(McpToolResultSchema, {\n\t\t\tresult: {\n\t\t\t\tcase: \"error\",\n\t\t\t\tvalue: create(McpToolErrorSchema, { error: toolResultToText(result) }),\n\t\t\t},\n\t\t});\n\t}\n\treturn create(McpToolResultSchema, {\n\t\tresult: {\n\t\t\tcase: \"success\",\n\t\t\tvalue: create(McpSuccessSchema, {\n\t\t\t\tcontent: result.content.map((item) =>\n\t\t\t\t\titem.type === \"text\"\n\t\t\t\t\t\t? create(McpToolResultContentItemSchema, {\n\t\t\t\t\t\t\t\tcontent: { case: \"text\", value: create(McpTextContentSchema, { text: item.text }) },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: create(McpToolResultContentItemSchema, {\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcase: \"image\",\n\t\t\t\t\t\t\t\t\tvalue: create(McpImageContentSchema, {\n\t\t\t\t\t\t\t\t\t\tdata: Uint8Array.from(Buffer.from(item.data, \"base64\")),\n\t\t\t\t\t\t\t\t\t\tmimeType: item.mimeType,\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t}),\n\t\t},\n\t});\n}\n\nfunction createCursorToolCallStep(toolCall: ToolCall, result: ToolResultMessage | undefined) {\n\tconst mcpCall = create(McpToolCallSchema, {\n\t\targs: create(McpArgsSchema, {\n\t\t\tname: toolCall.name,\n\t\t\targs: encodeCursorMcpArguments(toolCall),\n\t\t\ttoolCallId: toolCall.id,\n\t\t\tproviderIdentifier: \"pi-agent\",\n\t\t\ttoolName: toolCall.name,\n\t\t}),\n\t\t...(result ? { result: createCursorMcpResult(result) } : {}),\n\t});\n\treturn create(ConversationStepSchema, {\n\t\tmessage: {\n\t\t\tcase: \"toolCall\",\n\t\t\tvalue: create(ToolCallSchema, {\n\t\t\t\ttool: { case: \"mcpToolCall\", value: mcpCall },\n\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t}),\n\t\t},\n\t});\n}\n\n/**\n * Convert context.messages to Cursor's ConversationTurnStructure blob IDs.\n * Groups messages into turns: each turn is a user message followed by the\n * assistant's response. Excludes the active user message (which goes in the\n * action).\n */\nfunction buildConversationTurns(\n\tmessages: Message[],\n\tblobStore: Map<string, Uint8Array>,\n\tactiveUserMessageIndex = findLastUserMessageIndex(messages),\n): Uint8Array[] {\n\tconst turns: Uint8Array[] = [];\n\tconst historyEnd = activeUserMessageIndex >= 0 ? activeUserMessageIndex : messages.length;\n\tconst toolResults = new Map<string, ToolResultMessage>();\n\tconst pairedToolCallIds = new Set<string>();\n\tfor (let index = 0; index < historyEnd; index++) {\n\t\tconst message = messages[index];\n\t\tif (message.role === \"toolResult\") {\n\t\t\ttoolResults.set(message.toolCallId, message);\n\t\t} else if (message.role === \"assistant\") {\n\t\t\tfor (const item of message.content) {\n\t\t\t\tif (item.type === \"toolCall\") pairedToolCallIds.add(item.id);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet i = 0;\n\twhile (i < messages.length) {\n\t\tconst msg = messages[i];\n\t\tif (msg.role !== \"user\") {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (i === activeUserMessageIndex) break;\n\n\t\tconst userText = extractUserMessageText(msg);\n\t\tif (userText.length === 0 && !hasUserMessageImages(msg)) {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst userMessage = createCursorUserMessage(\n\t\t\tmsg.content,\n\t\t\tuserText,\n\t\t\tdeterministicUuid(`u:${turns.length}:${cursorUserContentKey(msg.content)}`),\n\t\t);\n\t\tconst userMessageBlobId = storeCursorBlob(blobStore, toBinary(UserMessageSchema, userMessage));\n\t\tconst stepBlobIds: Uint8Array[] = [];\n\t\ti++;\n\n\t\twhile (i < messages.length && messages[i].role !== \"user\") {\n\t\t\tconst stepMsg = messages[i];\n\t\t\tif (stepMsg.role === \"assistant\") {\n\t\t\t\tfor (const item of stepMsg.content) {\n\t\t\t\t\tlet step: ConversationStep;\n\t\t\t\t\tif (item.type === \"text\") {\n\t\t\t\t\t\tif (!item.text) continue;\n\t\t\t\t\t\tstep = create(ConversationStepSchema, {\n\t\t\t\t\t\t\tmessage: {\n\t\t\t\t\t\t\t\tcase: \"assistantMessage\",\n\t\t\t\t\t\t\t\tvalue: create(AssistantMessageSchema, { text: item.text }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (item.type === \"thinking\") {\n\t\t\t\t\t\t// Foreign/hidden reasoning never leaks into Cursor's turn\n\t\t\t\t\t\t// history as native thinking.\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (item.type === \"toolCall\") {\n\t\t\t\t\t\tstep = createCursorToolCallStep(item, toolResults.get(item.id));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstepBlobIds.push(storeCursorBlob(blobStore, toBinary(ConversationStepSchema, step)));\n\t\t\t\t}\n\t\t\t} else if (stepMsg.role === \"toolResult\" && !pairedToolCallIds.has(stepMsg.toolCallId)) {\n\t\t\t\tconst text = toolResultToText(stepMsg);\n\t\t\t\tif (text) {\n\t\t\t\t\tconst prefix = stepMsg.isError ? \"[Tool Error]\" : \"[Tool Result]\";\n\t\t\t\t\tconst step = create(ConversationStepSchema, {\n\t\t\t\t\t\tmessage: {\n\t\t\t\t\t\t\tcase: \"assistantMessage\",\n\t\t\t\t\t\t\tvalue: create(AssistantMessageSchema, { text: `${prefix}\\n${text}` }),\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tstepBlobIds.push(storeCursorBlob(blobStore, toBinary(ConversationStepSchema, step)));\n\t\t\t\t}\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\n\t\tconst agentTurn = create(AgentConversationTurnStructureSchema, {\n\t\t\tuserMessage: userMessageBlobId,\n\t\t\tsteps: stepBlobIds,\n\t\t});\n\t\tconst turn = create(ConversationTurnStructureSchema, {\n\t\t\tturn: {\n\t\t\t\tcase: \"agentConversationTurn\",\n\t\t\t\tvalue: agentTurn,\n\t\t\t},\n\t\t});\n\t\tturns.push(storeCursorBlob(blobStore, toBinary(ConversationTurnStructureSchema, turn)));\n\t}\n\n\treturn turns;\n}\n\n/** Exported for tests: decodes Cursor history blobs built from conversation messages. */\nexport function buildCursorHistoryForTest(\n\tmessages: Message[],\n\tactiveUserMessageIndex = findLastUserMessageIndex(messages),\n): {\n\trootPromptMessagesJson: unknown[];\n\tturnUserMessagesJson: unknown[];\n\tturnStepMessagesJson: unknown[][];\n} {\n\tconst blobStore = new Map<string, Uint8Array>();\n\tconst rootPromptMessagesJson = buildRootPromptMessagesJson(messages, [], blobStore, activeUserMessageIndex).map(\n\t\t(blobId) => JSON.parse(new TextDecoder().decode(readCursorBlob(blobStore, blobId))),\n\t);\n\tconst turnUserMessagesJson: unknown[] = [];\n\tconst turnStepMessagesJson: unknown[][] = [];\n\tfor (const turnBlobId of buildConversationTurns(messages, blobStore, activeUserMessageIndex)) {\n\t\tconst turn = fromBinary(ConversationTurnStructureSchema, readCursorBlob(blobStore, turnBlobId));\n\t\tif (turn.turn.case !== \"agentConversationTurn\") {\n\t\t\tcontinue;\n\t\t}\n\t\tconst userMessage = fromBinary(UserMessageSchema, readCursorBlob(blobStore, turn.turn.value.userMessage));\n\t\tturnUserMessagesJson.push(toJson(UserMessageSchema, userMessage));\n\t\tturnStepMessagesJson.push(\n\t\t\tturn.turn.value.steps.map((stepBlobId) => {\n\t\t\t\tconst step = fromBinary(ConversationStepSchema, readCursorBlob(blobStore, stepBlobId));\n\t\t\t\treturn toJson(ConversationStepSchema, step);\n\t\t\t}),\n\t\t);\n\t}\n\treturn { rootPromptMessagesJson, turnUserMessagesJson, turnStepMessagesJson };\n}\n\nfunction createCursorUserMessage(\n\tcontent: string | (TextContent | ImageContent)[],\n\ttext: string,\n\tmessageId = randomUUID() as string,\n) {\n\tconst images = typeof content === \"string\" ? [] : extractImages(content);\n\treturn create(UserMessageSchema, {\n\t\ttext,\n\t\tmessageId,\n\t\t...(images.length > 0\n\t\t\t? {\n\t\t\t\t\tselectedContext: create(SelectedContextSchema, {\n\t\t\t\t\t\tselectedImages: images,\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t: {}),\n\t});\n}\n\nfunction extractImages(content: (TextContent | ImageContent)[]) {\n\treturn content\n\t\t.filter((item): item is ImageContent => item.type === \"image\")\n\t\t.map((image) =>\n\t\t\tcreate(SelectedImageSchema, {\n\t\t\t\tuuid: randomUUID(),\n\t\t\t\tmimeType: image.mimeType,\n\t\t\t\tdataOrBlobId: {\n\t\t\t\t\tcase: \"data\",\n\t\t\t\t\tvalue: Uint8Array.from(Buffer.from(image.data, \"base64\")),\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n}\n\nasync function buildGrpcRequest(\n\tmodel: Model<\"cursor-agent\">,\n\tcontext: Context,\n\toptions: CursorAgentOptions | undefined,\n\tstate: {\n\t\tconversationId: string;\n\t\tblobStore: Map<string, Uint8Array>;\n\t\tconversationState?: ConversationStateStructure;\n\t},\n): Promise<{\n\trequestBytes: Uint8Array;\n\tblobStore: Map<string, Uint8Array>;\n\tconversationState: ConversationStateStructure;\n}> {\n\tconst blobStore = state.blobStore;\n\n\tconst systemPromptIds = buildCursorSystemPromptJsons(context.systemPrompt).map((json) =>\n\t\tstoreCursorBlob(blobStore, new TextEncoder().encode(json)),\n\t);\n\n\tconst activeUserMessageIndex = context.messages.length - 1;\n\tconst activeMessage = context.messages[activeUserMessageIndex];\n\tconst activeUserMessage = activeMessage?.role === \"user\" ? activeMessage : undefined;\n\tlet userContent: string | (TextContent | ImageContent)[] | undefined;\n\tlet userText = \"\";\n\tlet hasUserImages = false;\n\tif (activeUserMessage) {\n\t\tuserContent = activeUserMessage.content;\n\t\tif (typeof userContent === \"string\") {\n\t\t\tuserText = userContent.trim();\n\t\t} else {\n\t\t\tuserText = extractText(userContent);\n\t\t\thasUserImages = hasImages(userContent);\n\t\t}\n\t}\n\n\tconst action = create(ConversationActionSchema, {\n\t\taction:\n\t\t\tuserContent && (userText.trim().length > 0 || hasUserImages)\n\t\t\t\t? {\n\t\t\t\t\t\tcase: \"userMessageAction\",\n\t\t\t\t\t\tvalue: create(UserMessageActionSchema, {\n\t\t\t\t\t\t\tuserMessage: createCursorUserMessage(userContent, userText),\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tcase: \"resumeAction\",\n\t\t\t\t\t\tvalue: create(ResumeActionSchema, {}),\n\t\t\t\t\t},\n\t});\n\n\t// Build conversation turns from prior messages, excluding only the active\n\t// user message when the request is sending one. Resume actions must\n\t// preserve trailing tool results.\n\tconst turns = buildConversationTurns(context.messages, blobStore, activeUserMessage ? activeUserMessageIndex : -1);\n\n\t// Cursor's server uses `rootPromptMessagesJson` (not `turns[]`) to build\n\t// the actual model prompt; without it multi-turn conversations lose prior\n\t// context.\n\tconst rootPromptMessagesJson = buildRootPromptMessagesJson(\n\t\tcontext.messages,\n\t\tsystemPromptIds,\n\t\tblobStore,\n\t\tactiveUserMessage ? activeUserMessageIndex : -1,\n\t);\n\n\t// Preserve cached non-history state fields (todos, file states, summaries)\n\t// when the system prompt is unchanged; otherwise start fresh.\n\tconst cachedPromptHead = state.conversationState?.rootPromptMessagesJson?.slice(0, systemPromptIds.length) ?? [];\n\tconst hasMatchingPrompt =\n\t\tcachedPromptHead.length === systemPromptIds.length &&\n\t\tsystemPromptIds.every((id, idx) => Buffer.from(cachedPromptHead[idx]).equals(id));\n\tconst baseState =\n\t\tstate.conversationState && hasMatchingPrompt\n\t\t\t? state.conversationState\n\t\t\t: create(ConversationStateStructureSchema, {\n\t\t\t\t\trootPromptMessagesJson: systemPromptIds,\n\t\t\t\t\tturns: [],\n\t\t\t\t\ttodos: [],\n\t\t\t\t\tpendingToolCalls: [],\n\t\t\t\t\tpreviousWorkspaceUris: [],\n\t\t\t\t\tfileStates: {},\n\t\t\t\t\tfileStatesV2: {},\n\t\t\t\t\tsummaryArchives: [],\n\t\t\t\t\tturnTimings: [],\n\t\t\t\t\tsubagentStates: {},\n\t\t\t\t\tselfSummaryCount: 0,\n\t\t\t\t\treadPaths: [],\n\t\t\t\t});\n\n\t// Always override `rootPromptMessagesJson` and `turns` with content freshly\n\t// built from `context.messages`: the server-echoed checkpoint replaces\n\t// historical user entries with empty placeholders.\n\tconst conversationState = create(ConversationStateStructureSchema, {\n\t\t...baseState,\n\t\trootPromptMessagesJson,\n\t\tturns,\n\t});\n\n\tconst requestedModel = buildRequestedModel(model, options?.thinkingSelection);\n\tconst wireModelId = requestedModel.modelId;\n\tconst cursorMaxMode = model.compat?.cursorMaxMode === true;\n\tconst modelDetails = create(ModelDetailsSchema, {\n\t\tmodelId: wireModelId,\n\t\tdisplayModelId: model.id,\n\t\tdisplayName: model.name,\n\t\t...(cursorMaxMode ? { maxMode: true } : undefined),\n\t});\n\n\tconst runRequest = create(AgentRunRequestSchema, {\n\t\tconversationState,\n\t\taction,\n\t\tmodelDetails,\n\t\trequestedModel,\n\t\tconversationId: state.conversationId,\n\t});\n\n\tif (options?.customSystemPrompt) {\n\t\trunRequest.customSystemPrompt = options.customSystemPrompt;\n\t}\n\n\tawait options?.onPayload?.(runRequest, model as Model<Api>);\n\n\tconst clientMessage = create(AgentClientMessageSchema, {\n\t\tmessage: { case: \"runRequest\", value: runRequest },\n\t});\n\n\tconst requestBytes = toBinary(AgentClientMessageSchema, clientMessage);\n\n\tlog(\"info\", \"builtRunRequest\", {\n\t\tbytes: requestBytes.length,\n\t\ttools: context.tools?.length ?? 0,\n\t});\n\n\treturn { requestBytes, blobStore, conversationState };\n}\n\nfunction hasImages(content: (TextContent | ImageContent)[]): boolean {\n\treturn content.some((item) => item.type === \"image\");\n}\n\nfunction extractText(content: (TextContent | ImageContent)[]): string {\n\treturn content\n\t\t.filter((c): c is TextContent => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Model discovery (GetUsableModels)\n// ---------------------------------------------------------------------------\n\nconst CURSOR_GET_USABLE_MODELS_PATH = \"/agent.v1.AgentService/GetUsableModels\";\nconst CURSOR_DEFAULT_CONTEXT_WINDOW = 200_000;\nconst CURSOR_DEFAULT_MAX_TOKENS = 64_000;\n/**\n * `GetUsableModels` carries no context-window field, so the 1M ceiling is\n * recovered from the signals Cursor does send: display-name \"1M\" labels and\n * the max-mode flag on Claude/Gemini families.\n */\nconst CURSOR_1M_CONTEXT_WINDOW = 1_000_000;\nconst CURSOR_1M_NAME_PATTERN = /\\b1m\\b/i;\nconst CURSOR_MAX_MODE_1M_ID_PATTERN = /claude|gemini/;\n/**\n * Model-id families whose native catalogs are multimodal. Cursor-only or\n * text-only families (`composer-*`, `grok-code-*`) stay outside this pattern.\n */\nconst CURSOR_MULTIMODAL_ID_PATTERN = /claude|gemini|gpt-|codex/;\n\nexport interface CursorDiscoveredModel {\n\tid: string;\n\tname: string;\n\treasoning: boolean;\n\tinput: (\"text\" | \"image\")[];\n\tcontextWindow: number;\n\tmaxTokens: number;\n\tcursorMaxMode: boolean;\n}\n\n/**\n * Fetches Cursor models through `GetUsableModels` (unary protobuf over\n * HTTP/2; the ALB rejects HTTP/1.1 with 464) and normalizes them.\n *\n * Returns `null` on request/decode failures; `[]` only when the endpoint\n * responds successfully with no usable models.\n */\nexport async function fetchCursorUsableModels(options: {\n\tapiKey: string;\n\tbaseUrl?: string;\n\ttimeoutMs?: number;\n\tsignal?: AbortSignal;\n}): Promise<CursorDiscoveredModel[] | null> {\n\tconst timeoutMs = options.timeoutMs ?? 10_000;\n\ttry {\n\t\tconst requestPayload = create(GetUsableModelsRequestSchema, { customModelIds: [] });\n\t\tconst body = toBinary(GetUsableModelsRequestSchema, requestPayload);\n\t\tconst baseUrl = (options.baseUrl ?? CURSOR_API_URL).replace(/\\/+$/, \"\");\n\n\t\tconst responseBuffer = await new Promise<Uint8Array | null>((resolve) => {\n\t\t\tconst client = http2.connect(baseUrl);\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tclient.destroy();\n\t\t\t\tresolve(null);\n\t\t\t}, timeoutMs);\n\t\t\tconst abort = () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tclient.destroy();\n\t\t\t\tresolve(null);\n\t\t\t};\n\t\t\toptions.signal?.addEventListener(\"abort\", abort, { once: true });\n\n\t\t\tclient.on(\"error\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tresolve(null);\n\t\t\t});\n\n\t\t\tconst req = client.request({\n\t\t\t\t\":method\": \"POST\",\n\t\t\t\t\":path\": CURSOR_GET_USABLE_MODELS_PATH,\n\t\t\t\t\"content-type\": \"application/proto\",\n\t\t\t\tte: \"trailers\",\n\t\t\t\tauthorization: `Bearer ${options.apiKey}`,\n\t\t\t\t\"x-ghost-mode\": \"true\",\n\t\t\t\t\"x-cursor-client-version\": CURSOR_CLIENT_VERSION,\n\t\t\t\t\"x-cursor-client-type\": \"cli\",\n\t\t\t});\n\n\t\t\tconst chunks: Buffer[] = [];\n\t\t\treq.on(\"data\", (chunk: Buffer) => chunks.push(chunk));\n\t\t\treq.on(\"end\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tclient.close();\n\t\t\t\tresolve(new Uint8Array(Buffer.concat(chunks)));\n\t\t\t});\n\t\t\treq.on(\"error\", () => {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tclient.close();\n\t\t\t\tresolve(null);\n\t\t\t});\n\t\t\treq.on(\"response\", (headers) => {\n\t\t\t\tconst status = Number(headers[\":status\"] ?? 0);\n\t\t\t\tif (status < 200 || status >= 300) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\tclient.close();\n\t\t\t\t\tresolve(null);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (body.length > 0) {\n\t\t\t\treq.end(Buffer.from(body));\n\t\t\t} else {\n\t\t\t\treq.end();\n\t\t\t}\n\t\t});\n\n\t\tif (!responseBuffer || responseBuffer.length === 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst decoded = decodeGetUsableModelsResponse(responseBuffer);\n\t\tif (!decoded) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst byId = new Map<string, CursorDiscoveredModel>();\n\t\tfor (const model of decoded.models ?? []) {\n\t\t\tconst id = model.modelId?.trim();\n\t\t\tif (!id) continue;\n\t\t\tconst name = pickModelDisplayName(model, id);\n\t\t\tconst labeled1M =\n\t\t\t\tCURSOR_1M_NAME_PATTERN.test(id) ||\n\t\t\t\t[model.displayName, model.displayNameShort, model.displayModelId, ...(model.aliases ?? [])].some(\n\t\t\t\t\t(candidate) => typeof candidate === \"string\" && CURSOR_1M_NAME_PATTERN.test(candidate),\n\t\t\t\t);\n\t\t\tconst maxMode = model.maxMode === true;\n\t\t\tconst contextWindow =\n\t\t\t\tlabeled1M || (maxMode && CURSOR_MAX_MODE_1M_ID_PATTERN.test(id))\n\t\t\t\t\t? CURSOR_1M_CONTEXT_WINDOW\n\t\t\t\t\t: CURSOR_DEFAULT_CONTEXT_WINDOW;\n\t\t\tbyId.set(id, {\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\treasoning: Boolean(model.thinkingDetails),\n\t\t\t\tinput: CURSOR_MULTIMODAL_ID_PATTERN.test(id.toLowerCase()) ? [\"text\", \"image\"] : [\"text\"],\n\t\t\t\tcontextWindow,\n\t\t\t\tmaxTokens: CURSOR_DEFAULT_MAX_TOKENS,\n\t\t\t\tcursorMaxMode: maxMode,\n\t\t\t});\n\t\t}\n\t\treturn [...byId.values()].sort((a, b) => a.id.localeCompare(b.id));\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction decodeGetUsableModelsResponse(payload: Uint8Array) {\n\tconst framedBody = decodeConnectUnaryBody(payload);\n\tif (framedBody) {\n\t\ttry {\n\t\t\treturn fromBinary(GetUsableModelsResponseSchema, framedBody);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n\ttry {\n\t\treturn fromBinary(GetUsableModelsResponseSchema, payload);\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction decodeConnectUnaryBody(payload: Uint8Array): Uint8Array | null {\n\tif (payload.length < 5) {\n\t\treturn null;\n\t}\n\n\tlet offset = 0;\n\twhile (offset + 5 <= payload.length) {\n\t\tconst flags = payload[offset];\n\t\tconst view = new DataView(payload.buffer, payload.byteOffset + offset, payload.byteLength - offset);\n\t\tconst messageLength = view.getUint32(1, false);\n\t\tconst frameEnd = offset + 5 + messageLength;\n\t\tif (frameEnd > payload.length) {\n\t\t\treturn null;\n\t\t}\n\t\tconst compressionFlagSet = (flags & 0b0000_0001) !== 0;\n\t\tif (compressionFlagSet) {\n\t\t\treturn null;\n\t\t}\n\t\tconst endStreamFlagSet = (flags & 0b0000_0010) !== 0;\n\t\tif (!endStreamFlagSet) {\n\t\t\treturn payload.subarray(offset + 5, frameEnd);\n\t\t}\n\n\t\toffset = frameEnd;\n\t}\n\n\treturn null;\n}\n\nfunction pickModelDisplayName(\n\tmodel: { displayName?: string; displayNameShort?: string; displayModelId?: string; aliases?: string[] },\n\tfallbackId: string,\n): string {\n\tconst candidates = [model.displayName, model.displayNameShort, model.displayModelId, ...(model.aliases ?? [])];\n\tfor (const candidate of candidates) {\n\t\tif (typeof candidate !== \"string\") {\n\t\t\tcontinue;\n\t\t}\n\t\tconst trimmed = candidate.trim();\n\t\tif (trimmed) {\n\t\t\treturn trimmed;\n\t\t}\n\t}\n\treturn fallbackId;\n}\n"]}
|