@qqbrowser/qbot-dsh 0.0.15 → 0.1.1
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/config/agent-presets/code/agent.cordis.yml +2 -2
- package/config/agent-presets/standard/agent.cordis.yml +2 -2
- package/cordis.patch.yml +50 -0
- package/lib/args-w1okyL78.js +9 -0
- package/lib/bin.js +2 -2
- package/lib/client.js +1 -0
- package/lib/content-review-CqDoh3wY.js +1 -0
- package/lib/content-review.js +1 -0
- package/lib/dump-config-CIL0Goqj.js +1 -0
- package/lib/gateway-port-CSFbDyoZ.js +1 -0
- package/lib/index.js +1 -0
- package/lib/llm-gateway-openai.js +17 -0
- package/lib/native-protocol-DdrIh89-.js +2 -0
- package/lib/{plugin-DNAeLZbb.js → plugin-viWCLnSr.js} +1 -1
- package/lib/profile-boot-CxJUSdnu.js +1 -0
- package/lib/profile-boot-DCgBQ4qO.js +8 -0
- package/lib/qb-auth-C2ofR1zn.js +4 -0
- package/lib/qb-auth.js +1 -0
- package/lib/web-search-dsh.js +1 -0
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-cjs/index.js +7 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +3 -0
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +3 -0
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +1 -1
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-cjs/index.js +7 -2
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +3 -0
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +3 -0
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +1 -1
- package/node_modules/@deepseek-ai/cordis-plugin-hmr/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-default-model/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-instructions/lib/index.js +3 -3
- package/node_modules/@deepseek-ai/dsh-agent-instructions/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-loop/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-presets/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-tool-presentation/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-anonymous-user-id/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-api-gateway/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-api-remotes/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +12 -12
- package/node_modules/@deepseek-ai/dsh-app-boot/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-atomic-write/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-attachment/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-attachment/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-attachment-local/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-attachment-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml +6 -37
- package/node_modules/@deepseek-ai/dsh-base/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-bash-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-bash-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-brand/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-connection/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-connection/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-hmr/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-locale/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-modules/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-runtime/lib/client.js +4 -4
- package/node_modules/@deepseek-ai/dsh-client-runtime/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-schema-form/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-attachment/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +8 -8
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +3 -3
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-jobs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/index.js +22 -22
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-skill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-theme/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-tool/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-web/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-web-react/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-cmdline/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-cmdline/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-code-runtime/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-code-runtime-worker-thread/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-command-compact/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-command-feedback/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-command-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-commands/lib/typert.host.js +5 -2
- package/node_modules/@deepseek-ai/dsh-commands/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-compaction/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-compaction-basic/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/lib/client.js +4 -4
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/lib/typert.host.js +10 -4
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-credentials/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-credentials-local/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-credentials-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs-observation-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-fs-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-goal/lib/typert.host.js +5 -2
- package/node_modules/@deepseek-ai/dsh-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-goal-round-driver/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-headless/lib/index.js +4 -4
- package/node_modules/@deepseek-ai/dsh-headless/lib/startup.js +3 -3
- package/node_modules/@deepseek-ai/dsh-headless/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-home-paths/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-home-paths/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-apiproxy/lib/index.js +7 -7
- package/node_modules/@deepseek-ai/dsh-host-apiproxy/lib/types/api/rpc.schema.js +1 -1
- package/node_modules/@deepseek-ai/dsh-host-apiproxy/lib/types/api-proxy.js +1 -1
- package/node_modules/@deepseek-ai/dsh-host-apiproxy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-auto/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-browse/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-native/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-frontend-static/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-webserver/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-host-webserver/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-invariants/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-jobs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-jobs-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-launch-environment/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-llm/lib/types/assembler.js +1 -1
- package/node_modules/@deepseek-ai/dsh-llm/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm-retry/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-mcp-client/lib/index.js +3 -2
- package/node_modules/@deepseek-ai/dsh-mcp-client/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-message-feedback/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-native-command/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-output-retention/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-permission-presets/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-persona/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-plan-mode/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-pwsh-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-pwsh-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-repeat-tool-reminder/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-windows-acl/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-windows-acl/lib/runner.js +1 -1
- package/node_modules/@deepseek-ai/dsh-sandbox-windows-acl/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-schedule/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-scope/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-checkpoint-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-log-export/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-persistence/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-projection/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-query/lib/index.js +2 -2
- package/node_modules/@deepseek-ai/dsh-session-query/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-reference/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-stats/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-telemetry/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-telemetry-otel/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-title/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-session-title-llm/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-settings/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-settings-file/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-shell/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-shell-env/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-shell-env/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-skill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-skill-badge/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-skill-filesystem/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-spill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-spill-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-spill-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-storage/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-storage-domain/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent-fork-in-process/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent-in-process-driver/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subagent-spawn-in-process/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subprocess/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-subprocess/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-subprocess-local/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-system-prompt/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-terminal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-terminal-bash/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-terminal-bash/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-time-context/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-timeout/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tmux-context/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-token-meter/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-ask-user/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-bash/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-bash-persistent/lib/index.js +7 -10
- package/node_modules/@deepseek-ai/dsh-tool-bash-persistent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-call-timeout-policy/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-cordis/lib/index.js +9 -30
- package/node_modules/@deepseek-ai/dsh-tool-cordis/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-fs/lib/index.js +8 -8
- package/node_modules/@deepseek-ai/dsh-tool-fs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-fs-search/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-goal/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-jobs/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-pwsh/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-ralph/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-skill/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-str-replace-editor/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-subagent/lib/index.js +2 -2
- package/node_modules/@deepseek-ai/dsh-tool-subagent/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-subagent-control/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-subagent-report/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-todo/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-web/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-workflow/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tools/lib/index.js +15 -15
- package/node_modules/@deepseek-ai/dsh-tools/lib/types/code-mode.js +8 -8
- package/node_modules/@deepseek-ai/dsh-tools/lib/types/py-types.js +3 -3
- package/node_modules/@deepseek-ai/dsh-tools/lib/types/ts-types.js +4 -4
- package/node_modules/@deepseek-ai/dsh-tools/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-typert-loader/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-typert-protocol/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-typert-registry/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-user-approval/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-user-questions/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-web/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web-app/cordis.patch.yml +0 -1
- package/node_modules/@deepseek-ai/dsh-web-app/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-web-app/lib/startup.js +4 -5
- package/node_modules/@deepseek-ai/dsh-web-app/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/{index-BQQQ5Qt-.js → index-fPGOmJjK.js} +25 -25
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +1 -1
- package/node_modules/@deepseek-ai/dsh-web-frontend/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web-search-deepseek/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-workflow/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-workflow-worker-thread/lib/worker.cjs +9 -8
- package/node_modules/@deepseek-ai/dsh-workflow-worker-thread/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-workspace/package.json +1 -1
- package/node_modules/@deepseek-ai/node-addon-landlock-run/package.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +5 -5
- package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +4 -4
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +5 -5
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +6 -6
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +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/cloudflare-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.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/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/faux.js +5 -5
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@koromix/koffi-darwin-arm64/darwin_arm64/koffi.node +0 -0
- package/node_modules/@koromix/koffi-darwin-arm64/package.json +1 -1
- package/node_modules/@koromix/koffi-darwin-x64/darwin_x64/koffi.node +0 -0
- package/node_modules/@koromix/koffi-darwin-x64/package.json +1 -1
- package/node_modules/@koromix/koffi-win32-x64/package.json +1 -1
- package/node_modules/@koromix/koffi-win32-x64/win32_x64/koffi.node +0 -0
- package/node_modules/@smithy/core/dist-cjs/index.js +3 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +126 -39
- package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +14 -3
- package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +3 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +3 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +10 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +10 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +16 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.browser.js +4 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.js +4 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +4 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +4 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +4 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/transport/index.js +7 -0
- package/node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/DefaultIdentityProviderConfig.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-decode.js +29 -13
- package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-encode.js +12 -4
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v1/CborShapeDeserializer.js +9 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v1/CborShapeSerializer.js +7 -0
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v2/CborShapeDeserializer2.js +44 -15
- package/node_modules/@smithy/core/dist-es/submodules/cbor/codec-v2/CborShapeSerializer2.js +22 -4
- package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +5 -0
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/checksum.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/get-value-from-text-node.js +4 -1
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/object-mapping.js +6 -1
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/serde-json.js +4 -1
- package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/resolveEndpoint.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +7 -0
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/HeaderMarshaller.js +4 -1
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +9 -0
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +5 -0
- package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/parseRetryAfterHeader.js +4 -1
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/transport/hasOwn.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/transport/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/transport/toEndpointV1.js +3 -0
- package/node_modules/@smithy/core/package.json +1 -1
- package/node_modules/@smithy/signature-v4/dist-cjs/index.js +19 -7
- package/node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js +4 -1
- package/node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js +4 -1
- package/node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js +4 -1
- package/node_modules/@smithy/signature-v4/dist-es/headerUtil.js +10 -3
- package/node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js +4 -1
- package/node_modules/@smithy/signature-v4/dist-es/prepareRequest.js +4 -1
- package/node_modules/@smithy/signature-v4/package.json +1 -1
- package/node_modules/@tanstack/react-virtual/package.json +1 -1
- package/node_modules/@tanstack/virtual-core/dist/cjs/index.cjs +7 -1
- package/node_modules/@tanstack/virtual-core/dist/cjs/utils.cjs +14 -4
- package/node_modules/@tanstack/virtual-core/dist/esm/index.js +1 -1
- package/node_modules/@tanstack/virtual-core/dist/esm/utils.js +2 -2
- package/node_modules/@tanstack/virtual-core/package.json +1 -1
- package/node_modules/hono/dist/cjs/client/utils.js +1 -1
- package/node_modules/hono/dist/cjs/context.js +4 -0
- package/node_modules/hono/dist/cjs/middleware/cors/index.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/csrf/index.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/etag/digest.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/etag/index.js +2 -2
- package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +3 -1
- package/node_modules/hono/dist/cjs/router/linear-router/router.js +7 -2
- package/node_modules/hono/dist/cjs/router/pattern-router/router.js +3 -9
- package/node_modules/hono/dist/cjs/router/trie-router/node.js +43 -67
- package/node_modules/hono/dist/cjs/router/trie-router/router.js +3 -11
- package/node_modules/hono/dist/cjs/utils/ipaddr.js +5 -3
- package/node_modules/hono/dist/client/utils.js +1 -1
- package/node_modules/hono/dist/middleware/cors/index.js +1 -1
- package/node_modules/hono/dist/middleware/csrf/index.js +1 -1
- package/node_modules/hono/dist/middleware/etag/digest.js +1 -1
- package/node_modules/hono/dist/middleware/etag/index.js +1 -1
- package/node_modules/hono/dist/middleware/pretty-json/index.js +1 -1
- package/node_modules/hono/dist/router/linear-router/router.js +1 -1
- package/node_modules/hono/dist/router/pattern-router/router.js +1 -1
- package/node_modules/hono/dist/router/trie-router/node.js +1 -1
- package/node_modules/hono/dist/router/trie-router/router.js +1 -1
- package/node_modules/hono/dist/utils/ipaddr.js +1 -1
- package/node_modules/hono/package.json +1 -1
- package/node_modules/koffi/package.json +1 -1
- package/node_modules/koffi/src/koffi/index.cjs +1 -1
- package/node_modules/koffi/src/koffi/index.js +1 -1
- package/node_modules/koffi/src/koffi/indirect.cjs +1 -1
- package/node_modules/koffi/src/koffi/indirect.js +1 -1
- package/node_modules/negotiator/lib/accept.js +54 -0
- package/node_modules/negotiator/lib/charset.js +10 -34
- package/node_modules/negotiator/lib/encoding.js +9 -30
- package/node_modules/negotiator/lib/language.js +15 -36
- package/node_modules/negotiator/lib/mediaType.js +16 -134
- package/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
- package/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
- package/node_modules/negotiator/node_modules/content-type/package.json +1 -0
- package/node_modules/negotiator/package.json +1 -1
- package/node_modules/node-pty/lib/conpty_console_list_agent.js +11 -2
- package/node_modules/node-pty/lib/index.js +6 -6
- package/node_modules/node-pty/lib/shared/conout.js +2 -3
- package/node_modules/node-pty/lib/terminal.js +2 -2
- package/node_modules/node-pty/lib/unixTerminal.js +11 -6
- package/node_modules/node-pty/lib/utils.js +6 -7
- package/node_modules/node-pty/lib/windowsConoutConnection.js +24 -18
- package/node_modules/node-pty/lib/windowsPtyAgent.js +125 -101
- package/node_modules/node-pty/lib/windowsTerminal.js +14 -4
- package/node_modules/node-pty/lib/worker/conoutSocketWorker.js +3 -3
- package/node_modules/node-pty/package.json +1 -1
- package/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
- package/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
- package/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
- package/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/node_modules/node-pty/scripts/post-install.js +1 -5
- package/node_modules/node-pty/third_party/conpty/1.25.260303002/win10-arm64/OpenConsole.exe +0 -0
- package/node_modules/node-pty/third_party/conpty/{1.23.251008001 → 1.25.260303002}/win10-arm64/conpty.dll +0 -0
- package/node_modules/node-pty/third_party/conpty/1.25.260303002/win10-x64/OpenConsole.exe +0 -0
- package/node_modules/node-pty/third_party/conpty/1.25.260303002/win10-x64/conpty.dll +0 -0
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/_idna.mjs +1 -1
- package/node_modules/typebox/build/format/_puny.mjs +1 -1
- package/node_modules/typebox/build/format/uuid.mjs +1 -1
- package/node_modules/typebox/build/guard/emit.mjs +1 -1
- package/node_modules/typebox/build/guard/guard.mjs +1 -1
- package/node_modules/typebox/build/guard/string.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_guard.mjs +1 -0
- package/node_modules/typebox/build/schema/engine/boolean.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/index.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/schema.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
- package/node_modules/typebox/build/schema/types/_guard.mjs +1 -0
- package/node_modules/typebox/build/schema/types/index.mjs +1 -1
- package/node_modules/typebox/build/schema/types/schema.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ar_001.mjs +1 -1
- package/node_modules/typebox/build/system/locale/bn_BD.mjs +1 -1
- package/node_modules/typebox/build/system/locale/cs_CZ.mjs +1 -1
- package/node_modules/typebox/build/system/locale/de_DE.mjs +1 -1
- package/node_modules/typebox/build/system/locale/el_GR.mjs +1 -1
- package/node_modules/typebox/build/system/locale/en_US.mjs +1 -1
- package/node_modules/typebox/build/system/locale/es_419.mjs +1 -1
- package/node_modules/typebox/build/system/locale/es_AR.mjs +1 -1
- package/node_modules/typebox/build/system/locale/es_ES.mjs +1 -1
- package/node_modules/typebox/build/system/locale/es_MX.mjs +1 -1
- package/node_modules/typebox/build/system/locale/fa_IR.mjs +1 -1
- package/node_modules/typebox/build/system/locale/fil_PH.mjs +1 -1
- package/node_modules/typebox/build/system/locale/fr_CA.mjs +1 -1
- package/node_modules/typebox/build/system/locale/fr_FR.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ha_NG.mjs +1 -1
- package/node_modules/typebox/build/system/locale/hi_IN.mjs +1 -1
- package/node_modules/typebox/build/system/locale/hu_HU.mjs +1 -1
- package/node_modules/typebox/build/system/locale/id_ID.mjs +1 -1
- package/node_modules/typebox/build/system/locale/it_IT.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ja_JP.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ko_KR.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ms_MY.mjs +1 -1
- package/node_modules/typebox/build/system/locale/nl_NL.mjs +1 -1
- package/node_modules/typebox/build/system/locale/pl_PL.mjs +1 -1
- package/node_modules/typebox/build/system/locale/pt_BR.mjs +1 -1
- package/node_modules/typebox/build/system/locale/pt_PT.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ro_RO.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ru_RU.mjs +1 -1
- package/node_modules/typebox/build/system/locale/sv_SE.mjs +1 -1
- package/node_modules/typebox/build/system/locale/sw_TZ.mjs +1 -1
- package/node_modules/typebox/build/system/locale/th_TH.mjs +1 -1
- package/node_modules/typebox/build/system/locale/tr_TR.mjs +1 -1
- package/node_modules/typebox/build/system/locale/uk_UA.mjs +1 -1
- package/node_modules/typebox/build/system/locale/ur_PK.mjs +1 -1
- package/node_modules/typebox/build/system/locale/vi_VN.mjs +1 -1
- package/node_modules/typebox/build/system/locale/yo_NG.mjs +1 -1
- package/node_modules/typebox/build/system/locale/zh_Hans.mjs +1 -1
- package/node_modules/typebox/build/system/locale/zh_Hant.mjs +1 -1
- package/node_modules/typebox/build/system/memory/clone.mjs +1 -1
- package/node_modules/typebox/build/system/settings/settings.mjs +1 -1
- package/node_modules/typebox/build/type/action/_optional.mjs +1 -0
- package/node_modules/typebox/build/type/action/_readonly.mjs +1 -0
- package/node_modules/typebox/build/type/action/awaited.mjs +1 -0
- package/node_modules/typebox/build/type/action/conditional.mjs +1 -1
- package/node_modules/typebox/build/type/action/index.mjs +1 -1
- package/node_modules/typebox/build/type/action/mapped.mjs +1 -1
- package/node_modules/typebox/build/type/action/module.mjs +1 -1
- package/node_modules/typebox/build/type/action/options.mjs +1 -0
- package/node_modules/typebox/build/type/engine/awaited/instantiate.mjs +1 -0
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +1 -1
- package/node_modules/typebox/build/type/engine/call/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/call/resolve_arguments.mjs +1 -1
- package/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/cyclic/candidates.mjs +1 -1
- package/node_modules/typebox/build/type/engine/cyclic/check.mjs +1 -1
- package/node_modules/typebox/build/type/engine/cyclic/dependencies.mjs +1 -1
- package/node_modules/typebox/build/type/engine/cyclic/extends.mjs +1 -1
- package/node_modules/typebox/build/type/engine/cyclic/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/enum/enum_to_union.mjs +1 -0
- package/node_modules/typebox/build/type/engine/enum/index.mjs +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/exclude/operation.mjs +1 -1
- package/node_modules/typebox/build/type/engine/extract/operation.mjs +1 -1
- package/node_modules/typebox/build/type/engine/index.mjs +1 -1
- package/node_modules/typebox/build/type/engine/indexable/from_enum.mjs +1 -1
- package/node_modules/typebox/build/type/engine/indexable/from_template_literal.mjs +1 -1
- package/node_modules/typebox/build/type/engine/indexable/from_type.mjs +1 -1
- package/node_modules/typebox/build/type/engine/indexed/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.mjs +1 -1
- package/node_modules/typebox/build/type/engine/keyof/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/mapped/mapped_operation.mjs +1 -1
- package/node_modules/typebox/build/type/engine/mapped/mapped_variants.mjs +1 -1
- package/node_modules/typebox/build/type/engine/module/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/object/from_type.mjs +1 -1
- package/node_modules/typebox/build/type/engine/object/from_union.mjs +1 -1
- package/node_modules/typebox/build/type/engine/options/index.mjs +1 -0
- package/node_modules/typebox/build/type/engine/options/instantiate.mjs +1 -0
- package/node_modules/typebox/build/type/engine/parameters/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/partial/from_intersect.mjs +1 -1
- package/node_modules/typebox/build/type/engine/partial/from_object.mjs +1 -1
- package/node_modules/typebox/build/type/engine/partial/from_type.mjs +1 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_array.mjs +1 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_intersect.mjs +1 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_object.mjs +1 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_tuple.mjs +1 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_type.mjs +1 -1
- package/node_modules/typebox/build/type/engine/record/from_key_enum.mjs +1 -1
- package/node_modules/typebox/build/type/engine/record/from_key_template_literal.mjs +1 -1
- package/node_modules/typebox/build/type/engine/ref/instantiate.mjs +1 -1
- package/node_modules/typebox/build/type/engine/required/from_intersect.mjs +1 -1
- package/node_modules/typebox/build/type/engine/required/from_object.mjs +1 -1
- package/node_modules/typebox/build/type/engine/required/from_type.mjs +1 -1
- package/node_modules/typebox/build/type/engine/template_literal/decode.mjs +1 -1
- package/node_modules/typebox/build/type/engine/template_literal/encode.mjs +1 -1
- package/node_modules/typebox/build/type/engine/template_literal/is_finite.mjs +1 -1
- package/node_modules/typebox/build/type/engine/this/expand_this.mjs +1 -1
- package/node_modules/typebox/build/type/extends/async_iterator.mjs +1 -0
- package/node_modules/typebox/build/type/extends/enum.mjs +1 -1
- package/node_modules/typebox/build/type/extends/extends_left.mjs +1 -1
- package/node_modules/typebox/build/type/extends/extends_right.mjs +1 -1
- package/node_modules/typebox/build/type/extends/inference.mjs +1 -1
- package/node_modules/typebox/build/type/extends/iterator.mjs +1 -0
- package/node_modules/typebox/build/type/extends/object.mjs +1 -1
- package/node_modules/typebox/build/type/extends/parameters.mjs +1 -1
- package/node_modules/typebox/build/type/extends/promise.mjs +1 -0
- package/node_modules/typebox/build/type/extends/template_literal.mjs +1 -1
- package/node_modules/typebox/build/type/extends/tuple.mjs +1 -1
- package/node_modules/typebox/build/type/extends/union.mjs +1 -1
- package/node_modules/typebox/build/type/script/mapping.mjs +1 -1
- package/node_modules/typebox/build/type/script/parser.mjs +6 -6
- package/node_modules/typebox/build/type/script/script.mjs +1 -1
- package/node_modules/typebox/build/type/script/token/internal/guard.mjs +1 -1
- package/node_modules/typebox/build/type/script/token/until.mjs +1 -1
- package/node_modules/typebox/build/type/types/_immutable.mjs +1 -1
- package/node_modules/typebox/build/type/types/_optional.mjs +1 -1
- package/node_modules/typebox/build/type/types/_readonly.mjs +1 -1
- package/node_modules/typebox/build/type/types/_refine.mjs +1 -1
- package/node_modules/typebox/build/type/types/async_iterator.mjs +1 -0
- package/node_modules/typebox/build/type/types/base.mjs +1 -0
- package/node_modules/typebox/build/type/types/call.mjs +1 -1
- package/node_modules/typebox/build/type/types/deferred.mjs +1 -1
- package/node_modules/typebox/build/type/types/enum.mjs +1 -1
- package/node_modules/typebox/build/type/types/index.mjs +1 -1
- package/node_modules/typebox/build/type/types/iterator.mjs +1 -0
- package/node_modules/typebox/build/type/types/number.mjs +1 -1
- package/node_modules/typebox/build/type/types/promise.mjs +1 -0
- package/node_modules/typebox/build/type/types/record.mjs +1 -1
- package/node_modules/typebox/build/typebox.mjs +1 -1
- package/node_modules/typebox/build/value/clean/clean.mjs +1 -1
- package/node_modules/typebox/build/value/clean/from_base.mjs +1 -0
- package/node_modules/typebox/build/value/clean/from_intersect.mjs +1 -1
- package/node_modules/typebox/build/value/clean/from_type.mjs +1 -1
- package/node_modules/typebox/build/value/clean/from_union.mjs +1 -1
- package/node_modules/typebox/build/value/clone/clone.mjs +1 -1
- package/node_modules/typebox/build/value/codec/decode.mjs +1 -1
- package/node_modules/typebox/build/value/codec/encode.mjs +1 -1
- package/node_modules/typebox/build/value/codec/from_array.mjs +1 -1
- package/node_modules/typebox/build/value/codec/from_object.mjs +1 -1
- package/node_modules/typebox/build/value/codec/from_record.mjs +1 -1
- package/node_modules/typebox/build/value/codec/from_tuple.mjs +1 -1
- package/node_modules/typebox/build/value/codec/from_union.mjs +1 -1
- package/node_modules/typebox/build/value/convert/from_base.mjs +1 -0
- package/node_modules/typebox/build/value/convert/from_enum.mjs +1 -1
- package/node_modules/typebox/build/value/convert/from_template_literal.mjs +1 -1
- package/node_modules/typebox/build/value/convert/from_type.mjs +1 -1
- package/node_modules/typebox/build/value/create/from_async_iterator.mjs +1 -0
- package/node_modules/typebox/build/value/create/from_base.mjs +1 -0
- package/node_modules/typebox/build/value/create/from_enum.mjs +1 -1
- package/node_modules/typebox/build/value/create/from_iterator.mjs +1 -0
- package/node_modules/typebox/build/value/create/from_promise.mjs +1 -0
- package/node_modules/typebox/build/value/create/from_type.mjs +1 -1
- package/node_modules/typebox/build/value/default/from_base.mjs +1 -0
- package/node_modules/typebox/build/value/default/from_object.mjs +1 -1
- package/node_modules/typebox/build/value/default/from_type.mjs +1 -1
- package/node_modules/typebox/build/value/index.mjs +1 -1
- package/node_modules/typebox/build/value/mutate/error.mjs +1 -0
- package/node_modules/typebox/build/value/mutate/from_array.mjs +1 -0
- package/node_modules/typebox/build/value/mutate/from_object.mjs +1 -0
- package/node_modules/typebox/build/value/mutate/from_unknown.mjs +1 -0
- package/node_modules/typebox/build/value/mutate/from_value.mjs +1 -0
- package/node_modules/typebox/build/value/mutate/index.mjs +1 -0
- package/node_modules/typebox/build/value/mutate/mutate.mjs +1 -0
- package/node_modules/typebox/build/value/repair/from_base.mjs +1 -0
- package/node_modules/typebox/build/value/repair/from_enum.mjs +1 -1
- package/node_modules/typebox/build/value/repair/from_type.mjs +1 -1
- package/node_modules/typebox/build/value/shared/union_priority_sort.mjs +1 -1
- package/node_modules/typebox/build/value/value.mjs +1 -1
- package/node_modules/typebox/package.json +1 -1
- package/package.json +1 -1
- package/lib/args-DcHS9iff.js +0 -9
- package/lib/dump-config-xQTUTTDD.js +0 -1
- package/lib/profile-boot-BkordgJK.js +0 -1
- package/lib/profile-boot-DDo03lXi.js +0 -8
- package/node_modules/@deepseek-ai/dsh-content-review/LICENSE +0 -21
- package/node_modules/@deepseek-ai/dsh-content-review/lib/index.js +0 -1
- package/node_modules/@deepseek-ai/dsh-content-review/lib/invariant.js +0 -1
- package/node_modules/@deepseek-ai/dsh-content-review/package.json +0 -1
- package/node_modules/@deepseek-ai/dsh-home-quarantine-macos/LICENSE +0 -21
- package/node_modules/@deepseek-ai/dsh-home-quarantine-macos/lib/index.js +0 -1
- package/node_modules/@deepseek-ai/dsh-home-quarantine-macos/lib/invariant.js +0 -1
- package/node_modules/@deepseek-ai/dsh-home-quarantine-macos/package.json +0 -1
- package/node_modules/@deepseek-ai/dsh-llm-gateway-openai/LICENSE +0 -21
- package/node_modules/@deepseek-ai/dsh-llm-gateway-openai/lib/index.js +0 -17
- package/node_modules/@deepseek-ai/dsh-llm-gateway-openai/lib/invariant.js +0 -1
- package/node_modules/@deepseek-ai/dsh-llm-gateway-openai/package.json +0 -1
- package/node_modules/@deepseek-ai/dsh-qb-auth/LICENSE +0 -21
- package/node_modules/@deepseek-ai/dsh-qb-auth/lib/index.js +0 -4
- package/node_modules/@deepseek-ai/dsh-qb-auth/lib/invariant.js +0 -1
- package/node_modules/@deepseek-ai/dsh-qb-auth/package.json +0 -1
- package/node_modules/@deepseek-ai/dsh-web-search-dsh/LICENSE +0 -21
- package/node_modules/@deepseek-ai/dsh-web-search-dsh/lib/index.js +0 -1
- package/node_modules/@deepseek-ai/dsh-web-search-dsh/lib/invariant.js +0 -1
- package/node_modules/@deepseek-ai/dsh-web-search-dsh/package.json +0 -1
- package/node_modules/@napi-rs/xattr/LICENSE +0 -21
- package/node_modules/@napi-rs/xattr/index.js +0 -567
- package/node_modules/@napi-rs/xattr/package.json +0 -1
- package/node_modules/@napi-rs/xattr-darwin-arm64/package.json +0 -1
- package/node_modules/@napi-rs/xattr-darwin-arm64/xattr.darwin-arm64.node +0 -0
- package/node_modules/@napi-rs/xattr-darwin-x64/package.json +0 -1
- package/node_modules/@napi-rs/xattr-darwin-x64/xattr.darwin-x64.node +0 -0
- package/node_modules/@parcel/watcher/LICENSE +0 -21
- package/node_modules/@parcel/watcher/index.js +0 -44
- package/node_modules/@parcel/watcher/index.js.flow +0 -45
- package/node_modules/@parcel/watcher/package.json +0 -1
- package/node_modules/@parcel/watcher/scripts/build-from-source.js +0 -16
- package/node_modules/@parcel/watcher/wrapper.js +0 -88
- package/node_modules/@parcel/watcher-darwin-arm64/LICENSE +0 -21
- package/node_modules/@parcel/watcher-darwin-arm64/package.json +0 -1
- package/node_modules/@parcel/watcher-darwin-arm64/watcher.node +0 -0
- package/node_modules/@parcel/watcher-darwin-x64/LICENSE +0 -21
- package/node_modules/@parcel/watcher-darwin-x64/package.json +0 -1
- package/node_modules/@parcel/watcher-darwin-x64/watcher.node +0 -0
- package/node_modules/@parcel/watcher-win32-x64/LICENSE +0 -21
- package/node_modules/@parcel/watcher-win32-x64/package.json +0 -1
- package/node_modules/@parcel/watcher-win32-x64/watcher.node +0 -0
- package/node_modules/is-extglob/LICENSE +0 -21
- package/node_modules/is-extglob/index.js +0 -20
- package/node_modules/is-extglob/package.json +0 -1
- package/node_modules/is-glob/LICENSE +0 -21
- package/node_modules/is-glob/index.js +0 -150
- package/node_modules/is-glob/package.json +0 -1
- package/node_modules/node-pty/deps/winpty/.drone.yml +0 -15
- package/node_modules/node-pty/deps/winpty/LICENSE +0 -21
- package/node_modules/node-pty/deps/winpty/configure +0 -167
- package/node_modules/node-pty/deps/winpty/misc/ConinMode.ps1 +0 -116
- package/node_modules/node-pty/deps/winpty/misc/IdentifyConsoleWindow.ps1 +0 -51
- package/node_modules/node-pty/deps/winpty/misc/build32.sh +0 -9
- package/node_modules/node-pty/deps/winpty/misc/build64.sh +0 -9
- package/node_modules/node-pty/deps/winpty/misc/color-test.sh +0 -212
- package/node_modules/node-pty/deps/winpty/ship/build-pty4j-libpty.bat +0 -36
- package/node_modules/node-pty/deps/winpty/src/shared/GetCommitHash.bat +0 -13
- package/node_modules/node-pty/deps/winpty/src/shared/UpdateGenVersion.bat +0 -20
- package/node_modules/node-pty/deps/winpty/vcbuild.bat +0 -83
- package/node_modules/node-pty/lib/eventEmitter2.test.js +0 -30
- package/node_modules/node-pty/lib/terminal.test.js +0 -139
- package/node_modules/node-pty/lib/testUtils.test.js +0 -28
- package/node_modules/node-pty/lib/unixTerminal.test.js +0 -351
- package/node_modules/node-pty/lib/windowsPtyAgent.test.js +0 -90
- package/node_modules/node-pty/lib/windowsTerminal.test.js +0 -219
- package/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
- package/node_modules/node-pty/scripts/gen-compile-commands.js +0 -8
- package/node_modules/node-pty/scripts/increment-version.js +0 -54
- package/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
- package/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
- package/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
- package/node_modules/typebox/build/type/action/_add_immutable.mjs +0 -1
- package/node_modules/typebox/build/type/action/_add_optional.mjs +0 -1
- package/node_modules/typebox/build/type/action/_add_readonly.mjs +0 -1
- package/node_modules/typebox/build/type/action/_remove_immutable.mjs +0 -1
- package/node_modules/typebox/build/type/action/_remove_optional.mjs +0 -1
- package/node_modules/typebox/build/type/action/_remove_readonly.mjs +0 -1
- package/node_modules/typebox/build/type/action/with.mjs +0 -1
- package/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +0 -1
- package/node_modules/typebox/build/type/engine/immutable/instantiate_remove.mjs +0 -1
- package/node_modules/typebox/build/type/engine/indexable/from_dependent.mjs +0 -1
- package/node_modules/typebox/build/type/engine/object/from_dependent.mjs +0 -1
- package/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +0 -1
- package/node_modules/typebox/build/type/engine/optional/instantiate_remove.mjs +0 -1
- package/node_modules/typebox/build/type/engine/partial/from_dependent.mjs +0 -1
- package/node_modules/typebox/build/type/engine/priority/index.mjs +0 -1
- package/node_modules/typebox/build/type/engine/priority/priority.mjs +0 -1
- package/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +0 -1
- package/node_modules/typebox/build/type/engine/readonly/instantiate_remove.mjs +0 -1
- package/node_modules/typebox/build/type/engine/readonly_object/from_dependent.mjs +0 -1
- package/node_modules/typebox/build/type/engine/required/from_dependent.mjs +0 -1
- package/node_modules/typebox/build/type/engine/with/instantiate.mjs +0 -1
- package/node_modules/typebox/build/type/extends/dependent.mjs +0 -1
- package/node_modules/typebox/build/type/extends/record.mjs +0 -1
- package/node_modules/typebox/build/type/types/dependent.mjs +0 -1
- /package/node_modules/@deepseek-ai/dsh-sandbox-windows-acl/lib/{types-D2_FQYSK.js → types-DE3U0cmQ.js} +0 -0
- /package/node_modules/typebox/build/type/engine/{with → awaited}/index.mjs +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
`)){if(i==="")continue;let l;try{l=JSON.parse(i)}catch{continue}Gs(l,s)}return s}a(Hs,"imageRefsInArtifact");function xe(t){return t.replace(/[^A-Za-z0-9_-]/g,"_")}a(xe,"safeSessionIdSegment");function Zs(t){return`dsh-session-${xe(t)}.zip`}a(Zs,"sessionLogZipFilename");async function*xs(t,s,i,l,m){const b=new Map,f=a(w=>{for(const[I,A]of Hs(w))b.set(I,A)},"rememberMedia");if(f(s.content),yield{path:s.filename,content:s.content},l){const w=new Set([i]),I=a(async function*(R){for(const C of R){m?.throwIfAborted();const M=C.session.header.id;if(w.has(M))continue;w.add(M),await Ze(t,M,m);const T=await t.sessionPersistence.readRaw(M,m);if(m?.throwIfAborted(),T===void 0)throw new Error(`subagent "${M}" has no stored log artifact`);f(T.content),yield{path:`subagents/${xe(M)}/${T.filename}`,content:T.content},yield*I(C.descendants)}},"collect"),A=await t.sessionQuery.traceSession(i,m);m?.throwIfAborted(),yield*I(A.descendants)}for(const w of b.values()){m?.throwIfAborted();const I=await t.attachments.readImage(w,m);m?.throwIfAborted(),yield{path:Ws(w),data:I.data}}}a(xs,"sessionLogZipEntries");const Js=65536,Ys=65536,Ks=65536;var Xs=class{static{a(this,"ResponseCapacityGate")}releasePending;async wait(t,s){s.throwIfAborted(),!(t.desiredSize===null||t.desiredSize>0)&&(await new Promise(i=>{const l=a(()=>{this.releasePending=void 0,s.removeEventListener("abort",l),i()},"release");this.releasePending=l,s.addEventListener("abort",l,{once:!0})}),s.throwIfAborted())}pulled(){this.releasePending?.()}};async function qs(t,s,i,l,m){let b=0;do{m.throwIfAborted();const f=Math.min(b+Ys,s.byteLength),w=f>=s.byteLength;t.push(s.subarray(b,f),w),b=f,await l.wait(i,m)}while(b<s.byteLength)}a(qs,"pushBinaryChunks");async function en(t,s,i,l,m){const b=new TextEncoder;let f=0,w;do{m.throwIfAborted();let I=Math.min(f+Js,s.length);if(I<s.length&&I-f>1){const A=s.charCodeAt(I-1);A>=55296&&A<=56319&&(I-=1)}w=I>=s.length,t.push(b.encode(s.slice(f,I)),w),f=I,await l.wait(i,m)}while(!w)}a(en,"pushArtifactChunks");function tn(t,s,i,l,m,b){const f=new AbortController,w=AbortSignal.any([b,f.signal]);let I,A=!1;const R=new Xs,C=a(()=>{I===void 0||A||(A=!0,I.terminate())},"terminateZip");return new ReadableStream({start(M){const T=new Rs((U,N,ne)=>{if(U){M.error(U);return}N.byteLength>0&&M.enqueue(N),ne&&M.close()});I=T,(async()=>{try{for await(const U of xs(t,s,i,l,w)){const N=new Ms(U.path,{level:m});T.add(N),"content"in U?await en(N,U.content,M,R,w):await qs(N,U.data,M,R,w)}T.end()}catch(U){C(),M.error(U instanceof Error?U:new Error(String(U)))}})()},pull(){R.pulled()},cancel(M){f.abort(M instanceof Error?M:new Error("session log export stream cancelled")),C()}},{highWaterMark:Ks,size:a(M=>M.byteLength,"size")})}a(tn,"streamSessionLogZip");function Je(t,s){let i=0,l=0;for(const m of t){if(i===s)return t.slice(0,l);i++,l+=m.length}return t}a(Je,"truncateUnicodeCodePoints");const k=e.string().min(1),Ye=e.string().min(1),O=e.string().min(1),Ke=e.object({type:e.string(),seq:e.number().int().nonnegative(),time:e.number(),data:e.unknown(),sourceEventSeqs:e.array(e.number()).optional(),surfaceOp:e.unknown().optional(),ignorable:e.literal(!0).optional()}),sn=e.object({sessionId:k,updatedAt:e.number(),running:e.boolean(),blank:e.boolean(),parentSessionId:k.optional(),origin:e.literal("subagent").optional(),cwd:e.string().optional(),agentPreset:e.string().optional(),projections:e.lazy(()=>Pe).optional()}),nn=e.object({cursor:e.string().optional()}),on=e.object({items:e.array(sn)}),rn=e.object({query:e.string().trim().min(1).max(500).refine(t=>!t.includes("\0"),{message:"search query must not contain NUL"})}),an=e.object({sessionId:k,snippet:e.string().refine(t=>Je(t,240)===t,{message:"search snippet must contain at most 240 Unicode code points"})}),cn=e.object({items:e.array(an).max(20),hasMore:e.boolean()}),dn=e.object({workspaceId:O.optional(),cwd:e.string().optional(),sessionId:k.optional(),agentPreset:e.string().optional()}).refine(t=>t.workspaceId===void 0||t.cwd===void 0,{message:"session.create accepts workspaceId or cwd, not both"}),ln=e.object({sessionId:k,agentPreset:e.string().optional()}),pn=e.object({sessionId:k,title:e.string()}),un=e.object({title:e.string().min(1),seq:e.number().int().nonnegative()}),mn=e.object({sessionId:k,atSeq:e.number().int().nonnegative().optional()}),gn=e.object({sessionId:k}),hn=e.object({sessionId:k,beforeSeq:e.number().int().nonnegative().optional(),maxMessages:e.number().int().positive().optional()}),Xe=e.object({provider:e.string().min(1),model:e.string().min(1),reasoningEffort:e.string().min(1).optional()}),fn=e.object({id:e.string().min(1),name:e.string().min(1),description:e.string().optional()}),vn=e.object({efforts:e.array(fn).min(1),defaultEffort:e.string().min(1).optional()}),bn=e.object({id:e.string().min(1),name:e.string().min(1),description:e.string().optional(),reasoning:vn.optional()}),qe=e.object({id:e.string().min(1),name:e.string().min(1),models:e.array(bn)}),et=e.object({id:e.string().min(1),name:e.string().min(1),message:e.string()}),tt=e.discriminatedUnion("for",[e.object({for:e.literal("call"),view:e.looseObject({card:e.string()})}),e.object({for:e.literal("result"),view:e.looseObject({card:e.string()})})]),st=e.object({event:Ke,view:tt.optional()}),Pe=e.object({asOfSeq:e.number().int().min(-1),values:e.record(e.string(),e.unknown())}),yn=e.object({blank:e.boolean(),lastPromptAt:e.number().nullable()}),wn=e.object({maxImageBytes:e.number().int().positive(),maxImagesPerMessage:e.number().int().positive(),maxMessageImageBytes:e.number().int().positive(),maxImagePixels:e.number().int().positive(),mediaTypes:e.array(e.string())}),Sn=e.object({events:e.array(st),hasMore:e.boolean(),projections:Pe.optional()}),kn=e.object({sessionId:k}),In=e.object({current:Xe,routable:e.boolean(),groups:e.array(qe),failures:e.array(et)}),jn=e.object({sessionId:k,provider:e.string().min(1),model:e.string().min(1),reasoningEffort:e.string().min(1).optional()}),Pn=e.object({selected:Xe}),Ee=e.looseObject({type:e.string()}),nt=e.union([e.literal("image/png"),e.literal("image/jpeg"),e.literal("image/webp"),e.literal("image/gif")]),En=e.discriminatedUnion("type",[e.object({type:e.literal("text"),text:e.string()}),e.object({type:e.literal("image"),mediaType:nt,data:e.string(),name:e.string().optional()})]),An=e.object({sessionId:k,mode:e.union([e.literal("queue"),e.literal("steer")]),content:e.array(En),clientTimeZone:e.string().optional()}),Rn=e.object({accepted:e.literal(!0),command:e.object({kind:e.literal("success"),text:e.string().optional()}).optional()}),ot=e.string().min(1),Mn=e.object({attachmentId:ot,mediaType:nt,bytes:e.number().int().positive(),width:e.number().int().positive(),height:e.number().int().positive(),name:e.string().optional()}),Un=e.object({sessionId:k,attachmentId:ot}),Cn=e.object({attachment:Mn,data:e.string()}),Ln=e.object({sessionId:k,itemId:Ye,action:e.discriminatedUnion("kind",[e.object({kind:e.literal("edit"),content:e.array(Ee)}),e.object({kind:e.literal("remove")}),e.object({kind:e.literal("steer")})])}),Tn=e.object({accepted:e.literal(!0)}),Nn=e.object({sessionId:k}),Dn=e.object({accepted:e.literal(!0)}),Ae=e.string().min(1),$n=e.object({sessionId:k,approvalId:Ae,outcome:e.union([e.literal("allowed-once"),e.literal("rejected")])}),On=e.object({answers:e.array(e.object({id:e.string(),selected:e.array(e.string()),custom:e.string().optional()}))}),_n=e.object({sessionId:k,answer:On});function Vn(t){return t}a(Vn,"RpcId");const Bn=new Set([".html",".htm",".xhtml",".svg"]);function Fn(t){const s=t.replace(/LSHandlerPreferredVersions\s*=\s*\{[^}]*\};/g,""),i=/\{[^{}]*LSHandlerURLScheme\s*=\s*"?https"?;[^{}]*\}/.exec(s)?.[0];if(i!==void 0)return/LSHandlerRoleAll\s*=\s*"?([\w.-]+)"?;/.exec(i)?.[1]}a(Fn,"macBundleForHttps");async function zn(t,s,i,l,m){if(i==="darwin"){let b;try{const{stdout:f}=await l("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure"],s);b=Fn(f)}catch{return!1}return b===void 0?!1:(await l("open",["-b",b,t],s),!0)}if(i==="linux"){const b=m.BROWSER;return b===void 0||b===""?!1:(await l(b,[t],s),!0)}return!1}a(zn,"openInBrowser");function Qn(t){return`'${t.replace(/'/g,"''")}'`}a(Qn,"powershellLiteral");function pe(t){return t!==void 0&&t!==""}a(pe,"present");function rt(t){const s=t.env??process.env;return pe(s.WSL_DISTRO_NAME)||pe(s.WSL_INTEROP)?!0:(t.osRelease??Bs()).toLowerCase().includes("microsoft")}a(rt,"isWsl");async function at(t,s,i){await i("powershell.exe",["-NoProfile","-Command",`Invoke-Item -LiteralPath ${Qn(t)}`],s)}a(at,"openWindowsPath");async function Wn(t,s,i){const l=await i("wslpath",["-w",t],s);s.throwIfAborted();const m=l.stdout.replace(/[\r\n]+$/,"");if(m==="")throw new Error("wslpath returned no Windows path");await at(m,s,i)}a(Wn,"openWslPath");async function it(t,s,i,l={}){const m=l.platform??process.platform,b=l.run??Fs,f=l.env??process.env,w=m==="linux"&&rt(l);if(!(!w&&i==="default"&&Bn.has(ls(t).toLowerCase())&&await zn(t,s,m,b,f))){if(m==="darwin"){await b("open",i==="text-editor"?["-t",t]:[t],s);return}if(m==="win32"){await at(t,s,b);return}if(m==="linux"){if(w){await Wn(t,s,b);return}await b("xdg-open",[t],s);return}throw new Error(`native path opener is unsupported on ${m}`)}}a(it,"openNativePathWithIntent");function Gn(t={}){const s=t.platform??process.platform;if(s==="darwin"||s==="win32")return!0;if(s!=="linux")return!1;const i=t.env??process.env;return rt(t)||pe(i.DISPLAY)||pe(i.WAYLAND_DISPLAY)}a(Gn,"canOpenNativePath");function Hn(t,s,i={}){return it(t,s,"default",i)}a(Hn,"openNativePath");function Zn(t,s,i={}){return it(t,s,"text-editor",i)}a(Zn,"openNativeTextFile");const xn=50,Jn=["agent-loop","shell","locale","permission","ui-conversation","ui-theme","web-search-deepseek"],ct=100,dt=16,Yn=1024,lt=new Set(["user/message","assistant/message"]);function Kn(t){const s=Buffer.from(t,"base64");if(t.length===0||s.toString("base64")!==t)throw new K("Image upload is not canonical base64.","INVALID_IMAGE_BASE64");return new Uint8Array(s)}a(Kn,"decodeBase64");async function Xn(t,s){if(s.every(f=>f.type==="text"))return s.map(f=>({type:"text",text:f.text}));const i=t.attachments.imageLimits;if(s.filter(f=>f.type==="image").length>i.maxImagesPerMessage)throw new K("Prompt exceeds the configured image-count limit.","TOO_MANY_IMAGES");const l=s.map(f=>f.type==="text"?f:{part:f,data:Kn(f.data)}),m=l.filter(f=>"data"in f);if(m.reduce((f,w)=>f+w.data.byteLength,0)>i.maxMessageImageBytes)throw new K("Prompt exceeds the configured aggregate image-byte limit.","IMAGES_TOO_LARGE");for(const f of m)await t.attachments.validateImage({data:f.data,mediaType:f.part.mediaType,...f.part.name===void 0?{}:{name:f.part.name}});const b=[];for(const f of l){if(!("data"in f)){b.push({type:"text",text:f.text});continue}const w=await t.attachments.saveImage({data:f.data,mediaType:f.part.mediaType,...f.part.name===void 0?{}:{name:f.part.name}});b.push({type:"image",attachment:w})}return b}a(Xn,"durablePromptContent");function X(t,s){if(Array.isArray(t))for(const i of t){if(typeof i!="object"||i===null||Array.isArray(i))continue;const l=i;if(l.type==="image"&&typeof l.attachment=="object"&&l.attachment!==null){const m=l.attachment;if(s(m))return m}if(l.type==="tool-result"){const m=X(l.content,s);if(m!==void 0)return m}}}a(X,"imageBlockIn");function qn(t,s){const i=t.data,l=X(i.content,s);if(l!==void 0)return l;if(i.message!==void 0){const m=X(i.message.content,s);if(m!==void 0)return m}if(i.inserted!==void 0)for(const m of i.inserted){const b=X(m.content,s);if(b!==void 0)return b}if(t.type==="assistant/chunk"&&i.chunk?.type==="block-end")return X([i.chunk.block],s)}a(qn,"imageInEvent");function eo(t){return t.some(s=>We(s.content))}a(eo,"messagesHaveImage");function to(t,s){for(const i of t){const l=qn(i,m=>String(m.attachmentId)===s);if(l!==void 0)return l}}a(to,"referencedImage");const so=new Set(["ui-onboarding",As]),pt=/^[A-Za-z][A-Za-z0-9_+.-]*(?:\/[A-Za-z0-9_+.-]+)+$/;function ut(t){if(!(t.length===0||t.trim()!==t||t!=="UTC"&&!pt.test(t)))try{const s=new Intl.DateTimeFormat("en-US",{timeZone:t}).resolvedOptions().timeZone;return s!=="UTC"&&!pt.test(s)?void 0:s}catch{return}}a(ut,"canonicalClientTimeZone");function V(t){return t.aborted}a(V,"isAborted");function no(t,s,i){const l=s===void 0?[...t]:t.filter(f=>f.seq<s);let m=0,b=0;for(let f=l.length-1;f>=0;f--){const w=l[f];if(!lt.has(w.type)||!fs(w))continue;m++;const I=w.sourceEventSeqs,A=I!==void 0&&I.length>0?Math.min(w.seq,...I):w.seq;if(m>=i){b=A;break}}return{events:l.filter(f=>f.seq>=b),hasMore:b>0}}a(no,"paginate");function j(t,s){return{rpcId:t.rpcId,result:{ok:!0,value:s}}}a(j,"ok");async function mt(t){const s=await Promise.all(t.llm.listProviders().map(async i=>{try{const l=await t.llm.listModels(i.id),m=await Promise.all(l.map(async b=>{const f=await t.llm.resolveModelInfo(i.id,b.id),w=f.reasoning===void 0?void 0:{efforts:f.reasoning.efforts.map(I=>({id:I.id,name:I.name,...I.description===void 0?{}:{description:I.description}})),...f.reasoning.defaultEffort===void 0?{}:{defaultEffort:f.reasoning.defaultEffort}};return{id:b.id,name:b.name,...b.description===void 0?{}:{description:b.description},...w===void 0?{}:{reasoning:w}}}));return{kind:"group",group:{id:i.id,name:i.name,models:m}}}catch(l){return{kind:"failure",failure:{id:i.id,name:i.name,message:l instanceof Error?l.message:String(l)}}}}));return{groups:s.flatMap(i=>i.kind==="group"?[i.group]:[]).filter(i=>i.models.length>0),failures:s.flatMap(i=>i.kind==="failure"?[i.failure]:[])}}a(mt,"buildModelCatalog");function g(t,s){return{rpcId:t.rpcId,result:{ok:!1,error:s}}}a(g,"err");function gt(t,s){if(s instanceof He)return g(t,{code:"agent-preset-not-found",message:s.message,details:{agentPreset:s.presetId,available:[...s.available]}});if(s instanceof Es)return g(t,{code:"agent-preset-invalid",message:s.message,details:{agentPreset:s.presetId,reason:s.reason}})}a(gt,"presetFailure");var ht=class{static{a(this,"FrameQueue")}buffer=[];waiter;done=!1;push(t){this.done||(this.buffer.push(t),this.waiter?.())}end(){this.done=!0,this.waiter?.()}async*iterate(t,s){const i=a(()=>{this.end()},"onAbort");t.addEventListener("abort",i,{once:!0});try{for(;;){for(;this.buffer.length>0;)yield this.buffer.shift();if(this.done||t.aborted)return;await new Promise(l=>{this.waiter=l}),this.waiter=void 0}}finally{t.removeEventListener("abort",i),s()}}};function L(t){return{rpcId:B(),payload:t}}a(L,"frame");function oo(t,s){for(const[i,l]of s.entries())if(!vs(l))throw new Error(`forwarded host event "${t}" argument ${i} is not lossless JSON data`);return s}a(oo,"assertJsonArgs");function ft(t,s){t.push(L({type:"session/subscribed",sessionId:s.id,lastSeq:s.seq-1}))}a(ft,"subscribeSession");function ue(t){return t.map(s=>({id:s.id,kind:s.kind,label:s.label,status:s.status,...s.detail===void 0?{}:{detail:s.detail},startedAt:s.startedAt,...s.finishedAt===void 0?{}:{finishedAt:s.finishedAt}}))}a(ue,"jobViews");function vt(t){return!t.events.some(s=>s.type==="turn/start")}a(vt,"sessionBlank");function bt(t,s){const i=t.blank&&s.type!=="turn/start",l=s.type==="user/message"&&s.data.source.kind==="user"?s.time:t.lastPromptAt;return i===t.blank&&l===t.lastPromptAt?t:{blank:i,lastPromptAt:l}}a(bt,"applySessionListMetadata");function yt(t){let s={blank:!0,lastPromptAt:null};for(const i of t)s=bt(s,i);return s}a(yt,"sessionListMetadata");function wt(t,s){return Math.max(t.createdAt,s?.lastPromptAt??0)}a(wt,"sessionListUpdatedAt");function Re(t,s=[]){const i=Q({header:t,events:s});return{...t.parentSession===void 0?{}:{parentSessionId:t.parentSession},...t.origin===void 0?{}:{origin:t.origin},...t.cwd===void 0?{}:{cwd:t.cwd},...i===void 0?{}:{agentPreset:i}}}a(Re,"sessionListFields");function ro(t,s){const i=yt(t.events);return{sessionId:t.id,updatedAt:wt(t.header,i),running:s,blank:i.blank,...Re(t.header,t.events)}}a(ro,"summarize");async function ao(t,s,i,l,m){if(l===0)return;m?.throwIfAborted();const b=s.locate(i);if(b===void 0)return;m?.throwIfAborted();let f;try{f=(await cs(b.path)).size}catch{m?.throwIfAborted();return}if(!(f>l))try{const{events:w}=await s.readFrom(i.id,0,m);return m?.throwIfAborted(),yt(w)}catch(w){m?.throwIfAborted(),t.logger.warn(`session.list: blank probe for "${i.id}" failed (serving it as visible): ${String(w)}`);return}}a(ao,"probeColdSessionMetadata");async function io(t,s,i,l,m,b){const f=l?.blank===!1?void 0:await ao(t,s,i,m,b);return{sessionId:i.id,updatedAt:wt(i,f??l),running:!1,blank:l?.blank===!1?!1:f?.blank??!1,...Re(i)}}a(io,"summarizeCold");function St(t){return t instanceof Ns?{code:t.code,message:t.message,details:{path:t.path}}:{code:"internal",message:t instanceof Error?t.message:String(t),details:{}}}a(St,"directoryError");function kt(t){return{rpcId:t.rpcId,payload:{type:"approval/requested",sessionId:t.sessionId,approvalId:t.approvalId,toolName:t.toolName,...t.callId===void 0?{}:{callId:t.callId},...t.reason===void 0?{}:{reason:t.reason}}}}a(kt,"requestedFrame");function co(t,s){if(t.sessionId!==s.sessionId)return!1;const i=t.answer.answers;return i.length!==s.questions.length?!1:i.every((l,m)=>{const b=s.questions[m];if(l.id!==b.id||new Set(l.selected).size!==l.selected.length)return!1;const f=l.custom?.trim();if(f!==void 0&&f===""||b.multiSelect!==!0&&(f!==void 0&&l.selected.length>0||l.selected.length>1))return!1;const w=new Set(b.options?.map(I=>I.label)??[]);return l.selected.every(I=>w.has(I))})}a(co,"matchesQuestions");function It(t,s,i,l){try{if(s.type==="tool/call"){const{name:m,arguments:b}=s.data,f=t.tools.get(m,l)?.presentCall?.(JSON.parse(b));return f===void 0?void 0:{for:"call",view:f}}if(s.type==="tool/result"){const{message:m,meta:b}=s.data,[f]=m.content,w=m.source.callId,I=i(w);if(I===void 0)return;const A=t.tools.get(I.name,l)?.presentResult?.(I.args,{content:f.content,isError:f.isError===!0,...b===void 0?{}:{meta:b}});return A===void 0?void 0:{for:"result",view:A}}}catch(m){console.error(`api-proxy: presenter failed for ${s.type}, falling back to generic: ${String(m)}`)}}a(It,"viewFor");function jt(t,s){for(let i=t.length-1;i>=0;i--){const l=t[i];if(l.type!=="tool/call")continue;const m=l.data;if(m.callId===s)try{return{name:m.name,args:JSON.parse(m.arguments)}}catch{return}}}a(jt,"backscanArgs");function Pt(t,s,i,l,m){const b=no(s,i,l??xn);return{events:b.events.map(f=>{const w=It(t,f,I=>jt(b.events,I),m);return{event:f,...w===void 0?{}:{view:w}}}),hasMore:b.hasMore}}a(Pt,"historyPage");function Et(t,s){const i=t.get("sessionProjections");if(i!==void 0)return i.snapshot(s)}a(Et,"projectionsFor");function At(t,s,i){try{const l=i!==void 0?t.get("sessionProjections")?.snapshot(i):t.get("sessionProjectionCache")?.cachedSnapshot(s);return l!==void 0&&Object.keys(l.values).length>0?l:void 0}catch(l){t.logger.warn(`session.list: projection column for "${s.id}" failed (serving the row without it): ${String(l)}`);return}}a(At,"listProjectionsFor");function Rt(t,s){const i=t.get("sessionProjections");if(i!==void 0)return i.restore({},s,0).snapshot}a(Rt,"detachedProjectionsFor");function Mt(t,s,i){try{return i()}catch(l){t.logger.warn(`subagent.history: projections for "${s}" failed (serving the page without them): ${String(l)}`);return}}a(Mt,"subagentHistoryProjections");function lo(t,s,i){const l=t.payload.childSessionId;if(i.aborted)return g(t,{code:"cancelled",message:"subagent prompt was cancelled",details:{}});if(s instanceof W)switch(s.code){case"NOT_RESUMABLE":return g(t,{code:"subagent-not-resumable",message:"subagent cannot be resumed",details:{childSessionId:l}});case"UNAUTHORIZED":return g(t,{code:"subagent-unauthorized",message:"subagent does not belong to this parent",details:{childSessionId:l}});case"DRAINING":case"ACTIVATION_CLOSING":case"CONTINUATION_UNAVAILABLE":case"PERSISTENCE_UNAVAILABLE":return g(t,{code:"subagent-delivery-unavailable",message:"subagent follow-up is temporarily unavailable",details:{childSessionId:l}})}return g(t,{code:"internal",message:"subagent prompt failed",details:{}})}a(lo,"subagentPromptError");function Ut(){return{code:"internal",message:"subagent catalog is unavailable: this deployment does not mount the sessionProjections registry (load @deepseek-ai/dsh-session-projection)",details:{}}}a(Ut,"projectionsUnavailableError");async function Ct(t,s,i){const{parentSessionId:l,childSessionId:m,mode:b}=s;try{const f=(await t.subagents.listChildren(l,i)).find(w=>w.id===m);return f===void 0||f.kind==="child"&&f.mode!==b?{error:{code:"subagent-not-found",message:`session "${m}" is not a ${b} direct child of "${l}"`,details:{parentSessionId:l,childSessionId:m}}}:f.kind==="diagnostic"?{error:{code:"subagent-catalog-diagnostic",message:`subagent "${m}" is ${f.reason}`,details:{parentSessionId:l,childSessionId:m,reason:f.reason}}}:{entry:f}}catch(f){return i?.aborted||f instanceof W&&f.code==="CANCELLED"?{error:{code:"cancelled",message:"subagent catalog read was cancelled",details:{}}}:f instanceof W&&f.code==="SUBAGENT_CONTROL_PROJECTIONS_UNAVAILABLE"?{error:Ut()}:{error:{code:"internal",message:"subagent catalog read failed",details:{}}}}}a(Ct,"catalogChild");function me(t){return{code:"agent-preset-not-found",message:"this deployment composes no agent presets",details:{agentPreset:t,available:[]}}}a(me,"noRoster");function ge(t,s){return s instanceof He?{code:"agent-preset-not-found",message:s.message,details:{agentPreset:s.presetId,available:[...s.available]}}:s instanceof Ge?{code:"agent-preset-read-only",message:s.message,details:{agentPreset:t,reason:s.message}}:s instanceof js||s instanceof Ps?{code:"agent-preset-invalid",message:s.message,details:{agentPreset:t,reason:s.message}}:{code:"internal",message:`agent preset "${t}": ${String(s)}`,details:{}}}a(ge,"presetError");var Lt=class extends Error{static{a(this,"AgentPresetConflict")}sessionId;requestedPreset;existingPreset;constructor(t,s,i){super(i===void 0?`session "${t}" records no agent preset, so it cannot be adopted under one; a deployment composing no roster records none on any session — `:`session "${t}" already runs agent preset ${JSON.stringify(i)}; requested ${JSON.stringify(s)}. A session's preset is fixed at creation.`),this.sessionId=t,this.requestedPreset=s,this.existingPreset=i}},Me=class extends Error{static{a(this,"SessionCwdConflict")}sessionId;requestedCwd;existingCwd;constructor(t,s,i){super(`session "${t}" already exists with cwd ${JSON.stringify(i)}; requested ${JSON.stringify(s)}`),this.sessionId=t,this.requestedCwd=s,this.existingCwd=i}},Tt=class extends Error{static{a(this,"WorkspaceNameConflictError")}workspaceName;constructor(t){super(`workspace name '${t}' is already in use`),this.workspaceName=t,this.name="WorkspaceNameConflictError"}};function he(t,s){return g(t,{code:"workspace-not-found",message:`workspace "${s}" not found`,details:{workspaceId:s}})}a(he,"workspaceNotFound");function q(t){return{workspaceId:t.id,path:t.path,title:t.title,sessionIds:[...t.sessionIds],createdAt:t.createdAt,updatedAt:t.updatedAt}}a(q,"workspaceView");function po(t,s){const i=Is.parse(s);return{workspaceId:t,path:i.path,title:i.title,sessionIds:[...i.sessionIds],createdAt:i.createdAt,updatedAt:i.updatedAt}}a(po,"changedWorkspaceView");function Nt(t,s){const i=s.sessionExportCompressionLevel??6,l=s.coldBlankProbeMaxBytes??1024,m=a(()=>{const{provider:n,model:o}=s.defaultModelSelection();return{provider:n,model:o}},"agentOptions"),b=new WeakMap,f=new Map,w=new Map;let I=Promise.resolve();const A=new Map,R=new Map,C=new Set,M=new WeakMap;function T(n,o){const r=(M.get(n)??Promise.resolve()).then(o);return M.set(n,r.then(()=>{},()=>{})),r}a(T,"serializeImageAdmission");function U(n){const o=b.get(n);if(o!==void 0)return o;let r;const c={get current(){if(r!==void 0)return r;const d=n.session.requestHeader()?.config;return d===void 0?s.defaultModelSelection():{provider:d.provider,model:d.model,...d.reasoningEffort===void 0?{}:{reasoningEffort:d.reasoningEffort}}},set current(d){r=d},assembled:void 0};return ps(n.ctx,c),b.set(n,c),c}a(U,"selectionFor");function N(n){const o=n.agent;if(o===void 0)throw new Error("api-proxy: agent setup has no scoped agent");U(o)}a(N,"installSelection");function ne(n,o,r){if(!(o===void 0||o===r))throw new Lt(n,o,r)}a(ne,"assertPresetUnchanged");async function oe(n){const o=t.get("agentPresets");if(o===void 0)return{setup:a(c=>(N(c),Promise.resolve()),"setup")};const r=(await o.resolve(n)).id;return{agentPreset:r,setup:a(async c=>{N(c),await o.mount(c,r)},"setup")}}a(oe,"composeAgent");const F=a((n,o)=>_s(t,n,o),"hasSubagentOwner"),ve=a(n=>$s(n),"subagentOwnershipError"),be=a(n=>Vs(t,n),"inspectServable"),z=Os(t,{agentOptions:m,setup:a(async({meta:n,events:o})=>(await oe(Q({header:n,events:o}))).setup,"setup")});function re(n){const o=L(n);for(const r of C)r.push(o)}a(re,"broadcast"),t.inject(["sessionProjections"],n=>{n.sessionProjections.onChanged((o,r,c,d)=>{re({type:"session/projection",sessionId:o.id,key:r,value:c,seq:d})})}),t.inject(["sessionProjections"],n=>{n.sessionProjections.register({key:"sessionListMetadata",schema:yn,init:a(()=>({blank:!0,lastPromptAt:null}),"init"),apply:bt,view:a(o=>o,"view"),stateVersion:1})}),t.inject(["sessionProjections","attachments"],n=>{n.sessionProjections.register({key:"imageLimits",schema:wn,init:a(()=>null,"init"),apply:a(o=>o,"apply"),view:a(()=>n.attachments.imageLimits,"view"),stateVersion:1})});const Te=a((n,o)=>{const r=a(c=>{const d=c==="next-turn"?n.inbox.nextTurn:n.inbox.nextStep;return o?.target===c?d.toSpliced(o.start,o.removedCount??0,...o.inserted):d},"project");return[...r("next-turn").map(c=>({id:c.id,placement:"queued",message:c})),...r("next-step").map(c=>({id:c.id,placement:c.source.kind==="user"?"steering":"context",message:c}))]},"queueItems");t.on("session/event",(n,o)=>{if(o.type!=="agent/inbox/spliced")return;const r=t.agents.get(n.id);r?.session===n&&re({type:"session/queue",sessionId:n.id,items:Te(r,o.data)})});function ae(n,o){A.delete(n.rpcId),n.signal!==void 0&&n.onAbort!==void 0&&n.signal.removeEventListener("abort",n.onAbort),re({type:"question/resolved",sessionId:n.sessionId,questionRpcId:n.rpcId,outcome:o})}a(ae,"claimQuestion");const Zt=t.userQuestions.registerProvider({ask(n){const o=n.agent?.id;return o===void 0?Promise.reject(new ce("web user interaction requires an agent-owned session","ASK_MISSING_AGENT")):new Promise((r,c)=>{const d=B(),u={rpcId:d,sessionId:o,questions:n.questions,resolve:r,reject:c,...n.signal===void 0?{}:{signal:n.signal}},p=a(()=>{ae(u,"cancelled"),c(new ce("ask_user_question was aborted before the user answered","ASK_ABORTED"))},"onAbort");u.onAbort=p,A.set(d,u),n.signal?.addEventListener("abort",p,{once:!0});const h={rpcId:d,payload:{type:"question/requested",sessionId:o,questions:n.questions}};for(const v of C)v.push(h)})}});t.effect(()=>()=>{Zt();for(const n of[...A.values()])ae(n,"cancelled"),n.reject(new ce("web user-questions provider was disposed","ASK_ABORTED"))},"api-proxy: user-questions provider"),t.get("approval")!==void 0&&(t.effect(()=>()=>{for(const n of[...R.values()])n.resolve("cancelled")},"api-proxy: approval registry teardown"),t.on("approval/request",(n,o)=>{if(n.signal?.aborted===!0)return Promise.resolve("cancelled");const r=n.agent.session.events,c=new Set;for(const h of R.values())c.add(h.approvalId);const d=new Set;let u;for(let h=r.length-1;h>=0;h-=1){const v=r[h];if(v.type==="approval/decided")d.add(v.data.id);else if(v.type==="approval/asked"){if(d.has(v.data.id)||c.has(v.data.id)||(n.callId??null)!==(v.data.callId??null))continue;u=v.data.id;break}}if(u===void 0)return o();const p=u;return new Promise(h=>{const v=a(P=>{R.delete(E.rpcId)&&(n.signal?.removeEventListener("abort",y),re({type:"approval/resolved",sessionId:E.sessionId,approvalId:p,outcome:P}),h(P))},"settle"),y=a(()=>{v("cancelled")},"onAbort"),E={rpcId:B(),sessionId:n.agent.session.id,approvalId:p,toolName:n.toolName,...n.callId===void 0?{}:{callId:n.callId},...n.reason===void 0?{}:{reason:n.reason},resolve:v};R.set(E.rpcId,E),n.signal?.addEventListener("abort",y,{once:!0});const S=kt(E);for(const P of C)P.push(S)})}));async function Ne(n){const o=t.sessions.get(n);if(o!==void 0)return{id:o.id,header:o.header,events:[...o.events]};const r=await be(n);return{id:r.meta.id,header:r.meta,events:r.events}}a(Ne,"readSessionState");async function xt(n){const o=t.workspaceRegistry.list(),r=o.find(d=>d.sessionIds.includes(n.id));if(r!==void 0||n.header.origin!=="subagent")return r;const c=await t.sessionQuery.traceSession(n.id);for(const d of c.ancestors){const u=o.find(p=>p.sessionIds.includes(d.header.id));if(u!==void 0)return u}}a(xt,"forkWorkspace");async function Jt(n){const o=t.sessions.get(n);if(o!==void 0)return{kind:"attached",session:o};const r=await be(n);return{kind:"detached",header:r.meta,events:r.events}}a(Jt,"historySourceFor");function Yt(n){return n.kind==="detached"?{header:n.header,events:n.events}:{header:n.session.header,events:n.session.events}}a(Yt,"sourceSession");function Kt(n,o){if(n.kind==="detached"){const d=o?Rt(t,n.events):void 0;return{events:n.events,...d===void 0?{}:{projections:d}}}const r=[...n.session.events],c=o?Et(t,n.session):void 0;return{events:r,...c===void 0?{}:{projections:c}}}a(Kt,"historyCutOf");async function De(n,o){const r=t.get("agents")?.get(n);if(r!==void 0)return r;const c=t.get("agentPresets");if(c!==void 0)try{return await c.standingKeyFor(Q(o))}catch{return}}a(De,"presenterScopeFor");async function Xt(n,o,r,c){let d=w.get(n);d===void 0&&(d=(async()=>{const p=t.sessions.get(n),h=t.agents.get(n);if(p!==void 0&&F(p,h))throw new H(n);if(h!==void 0)return h;const v=r?t.get("sessionPersistence"):void 0,y=v===void 0?void 0:(await v.list()).find(S=>S.id===n);if(v!==void 0&&y!==void 0){const S=await v.inspect(n);if(F({header:S.meta},void 0))throw new H(n);if(S.meta.cwd!==o)throw new Me(n,o,S.meta.cwd);const P=Q({header:S.meta,events:S.events});return ne(n,c,P),(await t.agents.resume({resumeSessionId:n,agentOptions:m(),setup:(await oe(P)).setup})).agent}try{await is(o,{recursive:!0})}catch(S){throw new Error(`failed to ensure project directory "${o}": ${String(S)}`,{cause:S})}const E=await oe(c);return(await t.agents.create({sessionId:n,agentOptions:m(),meta:{cwd:o,...E.agentPreset===void 0?{}:{agentPreset:E.agentPreset}},setup:E.setup})).agent})().catch(p=>{const h=t.agents.get(n);if(h!==void 0){if(F(h.session,h))throw new H(n);return h}const v=t.sessions.get(n);throw v!==void 0&&F(v,void 0)?new H(n):p}).finally(()=>{w.delete(n)}),w.set(n,d));const u=await d;if(F(u.session,u))throw new H(n);if(ne(n,c,Q(u.session)),u.session.header.cwd!==o)throw new Me(n,o,u.session.header.cwd);return u}a(Xt,"ensureSession");function qt(n){const o=I.then(async()=>{const r=await t.workspaceRegistry.resolveByPath(n);return r!==void 0?{workspace:r,created:!1}:{workspace:await t.workspaceRegistry.create(n),created:!0}});return I=o.then(()=>{},()=>{}),o}a(qt,"ensureWorkspace");async function $e(n){n?.throwIfAborted();const o=a(u=>{const p=t.agents.get(u.id),h=At(t,u.header,u);return{...ro(u,p?.status==="running"),...h===void 0?{}:{projections:h}}},"summarizeAttached"),r=t.sessions.list().map(o);n?.throwIfAborted();const c=new Set(r.map(u=>u.sessionId)),d=t.get("sessionPersistence");if(d!==void 0){const u=(await d.list(n)).filter(p=>!c.has(p.id)&&p.cwd!==void 0);n?.throwIfAborted();for(let p=0;p<u.length;p+=dt){n?.throwIfAborted();const h=u.slice(p,p+dt),v=await Promise.allSettled(h.map(async P=>{const $=At(t,P,void 0),_=await io(t,d,P,$?.values.sessionListMetadata,l,n),J=t.sessions.get(P.id);return J!==void 0?o(J):{..._,...$===void 0?{}:{projections:$}}})),y=[];let E=!1,S;for(const P of v)P.status==="fulfilled"?y.push(P.value):E||(E=!0,S=P.reason);if(E)throw S;n?.throwIfAborted(),r.push(...y)}}return r.sort((u,p)=>p.updatedAt-u.updatedAt),r}a($e,"listVisibleSessionSummaries");function Oe(n){const o=t.get("agentPresets")?.serviceFor(n,"goals")??t.get("goals");return o===void 0?{error:{code:"internal",message:"goal service is absent: neither this session's agent preset nor the host composition mounts @deepseek-ai/dsh-goal",details:{}}}:o}a(Oe,"goalServiceFor");function _e(n,o){const r=o instanceof Us?{goalCode:o.code}:{};return g(n,{code:"internal",message:String(o),details:r})}a(_e,"goalError");async function x(n,o){const r=await z(n.payload.sessionId);if("error"in r)return g(n,r.error);const c=Oe(r.agent);if("error"in c)return g(n,c.error);try{const d=o(c,r.agent);return j(n,{ref:{id:d.id,revision:d.revision}})}catch(d){return _e(n,d)}}a(x,"mutateGoal");function Ve(n){const o=t.get("llm");return o===void 0||o.listProviders().some(r=>r.id===n)}a(Ve,"routeServed");async function es(n,o){const r=await z(o);if("error"in r)return{refused:g(n,r.error)};const c=r.agent,d=U(c).current;return Ve(d.provider)?{agent:c}:{refused:g(n,{code:"model-unavailable",message:`no adapter serves provider "${d.provider}"; select a model for this session`,details:{provider:d.provider,model:d.model}})}}a(es,"turnAgentFor");function ye(){return{code:"internal",message:"settings service is absent: this deployment does not mount a settings provider (e.g. @deepseek-ai/dsh-settings-file) in its composition",details:{}}}a(ye,"settingsAbsent");async function Be(n,o,r,c){try{return await c(o,r),j(n,{opened:!0})}catch(d){return r.aborted?g(n,{code:"cancelled",message:"path open was aborted",details:{}}):g(n,{code:"internal",message:`path open failed: ${d instanceof Error?d.message:String(d)}`,details:{}})}}a(Be,"openTarget");function Fe(n,o,r){return Be(n,o,r,s.openPath??((c,d)=>Hn(c,d)))}a(Fe,"openPath");function ts(n,o,r){return Be(n,o,r,s.openTextFile??((c,d)=>Zn(c,d)))}a(ts,"openTextFile");function we(){return s.canOpenPath!==void 0?s.canOpenPath():s.openPath!==void 0||Gn()}a(we,"canOpenPaths");function Se(){return{code:"internal",message:"credentials service is absent: this deployment does not mount a credential provider (e.g. @deepseek-ai/dsh-credentials-local) in its composition",details:{}}}a(Se,"credentialsAbsent");function ze(n){return{ns:String(n.ns),schema:n.schema,value:n.value,...n.base===void 0?{}:{base:n.base},...n.user===void 0?{}:{user:n.user},applies:n.applies,secrets:(n.secrets??[]).map(o=>({path:[...o.path],set:o.set})),revision:n.revision}}a(ze,"namespaceView");function ss(){return new Set(t.llm.listConfigurableProviders().map(n=>n.settingsNs))}a(ss,"modelProviderNamespaces");function Qe(){const n=ss();for(const o of Jn)n.add(o);for(const o of so)n.add(o);return n}a(Qe,"exposedNamespaces");function ns(n,o){return g(n,{code:"settings-not-exposed",message:`settings namespace "${o}" is not exposed to configuration clients`,details:{ns:o}})}a(ns,"notExposed");async function ke(n,o,r,c,d){const u=t.get("settings");if(u===void 0)return g(n,ye());const p=a(y=>y instanceof Cs?g(n,{code:"settings-conflict",message:y.message,details:{ns:o,expected:y.expected,actual:y.actual}}):g(n,{code:"settings-rejected",message:y instanceof Error?y.message:String(y),details:{ns:o}}),"rejected");let h;try{h=Ls(o)}catch(y){return p(y)}if(!Qe().has(o))return ns(n,o);try{r==="update"?await u.update(h,c,d):r==="replace"?await u.replace(h,c,d):await u.mutate(h,c,d)}catch(y){return p(y)}const v=u.describe({redactSecrets:!0}).find(y=>y.ns===h);return v===void 0?g(n,{code:"internal",message:`settings namespace "${o}" was disposed after the ${r}`,details:{}}):j(n,ze(v))}return a(ke,"settingsWrite"),{sessions:{async list(n){return j(n,{items:await $e()})},async search(n,o){const r=a(()=>g(n,{code:"cancelled",message:"session search was aborted",details:{}}),"cancelled");if(V(o))return r();const c=t.get("sessionQuery");if(c===void 0)return g(n,{code:"internal",message:"session search is unavailable: this deployment does not mount @deepseek-ai/dsh-session-query",details:{}});try{const d=await $e(o);if(V(o))return r();if(d.length===0)return j(n,{items:[],hasMore:!1});const u=new Set(d.map(P=>P.sessionId)),p=[],h=new Set,v=new Set;let y,E=0,S=20;for(;p.length<=20;){if(V(o))return r();if(E>=ct)throw new Error(`session search provider exceeded the ${ct}-call work budget`);E++;const P=y,$=S;let _;try{_=await c.searchSessions({query:n.payload.query,eventFilters:[{kind:"type",values:["user/message","assistant/message"]},{kind:"surface",values:["current"]}],limit:$,...P===void 0?{}:{cursor:P}},{signal:o})}catch(D){if(V(o))return r();if(P===void 0&&D instanceof Ie&&D.code==="SESSION_QUERY_INVALID_LIMIT"&&$>1){S=Math.max(1,Math.floor($/2));continue}if(P!==void 0&&D instanceof Ie&&D.code==="SESSION_QUERY_STALE_CURSOR"){p.length=0,h.clear(),v.clear(),y=void 0;continue}throw D}if(V(o))return r();const J=_.items.length;if(J>$)throw new Error(`session search provider returned ${J} items; maximum is ${$}`);for(const D of _.items){if(p.length>20||!u.has(D.header.id)||D.bestMatch.sessionId!==D.header.id||D.bestMatch.surface!=="current"||!lt.has(D.bestMatch.type)||h.has(D.header.id))continue;const os=Je(D.bestMatch.snippet,240);h.add(D.header.id),p.push({sessionId:D.header.id,snippet:os})}const Y=_.nextCursor;if(Y!==void 0){if(v.has(Y))throw new Error("session search provider repeated a continuation cursor");v.add(Y)}if(p.length>20||Y===void 0)break;y=Y}return j(n,{items:p.slice(0,20),hasMore:p.length>20})}catch(d){return V(o)||d instanceof Ie&&d.code==="SESSION_QUERY_ABORTED"?r():g(n,{code:"internal",message:`session search failed: ${String(d)}`,details:{}})}},async create(n){const o=n.payload.sessionId??`session-${B()}`;let r;if(n.payload.workspaceId!==void 0&&(r=t.workspaceRegistry.get(G(n.payload.workspaceId)),r===void 0))return g(n,{code:"workspace-not-found",message:`workspace "${n.payload.workspaceId}" not found`,details:{workspaceId:n.payload.workspaceId}});const c=r?.path??n.payload.cwd??s.cwd,d=n.payload.agentPreset;try{await Xt(o,c,n.payload.sessionId!==void 0,d)}catch(h){if(h instanceof Lt)return g(n,{code:"agent-preset-conflict",message:h.message,details:{sessionId:h.sessionId,requestedPreset:h.requestedPreset,...h.existingPreset===void 0?{}:{existingPreset:h.existingPreset}}});const v=gt(n,h);return v!==void 0?v:h instanceof Me?g(n,{code:"session-conflict",message:h.message,details:{sessionId:h.sessionId,requestedCwd:h.requestedCwd,...h.existingCwd===void 0?{}:{existingCwd:h.existingCwd}}}):h instanceof H?g(n,ve(h.sessionId)):g(n,{code:"internal",message:`failed to create session "${o}": ${String(h)}`,details:{}})}if(r!==void 0)try{await r.attachSession(o)}catch(h){return g(n,{code:"workspace-attach-failed",message:`session "${o}" was created but could not attach to workspace "${r.id}": ${String(h)}`,details:{sessionId:o,workspaceId:r.id}})}const u=t.agents.get(o),p=u===void 0?void 0:Q(u.session);return j(n,{sessionId:o,...p===void 0?{}:{agentPreset:p}})},async history(n){const{sessionId:o,beforeSeq:r,maxMessages:c}=n.payload;try{const d=await Jt(o),u=await De(o,Yt(d)),p=Kt(d,r===void 0),h=Pt(t,p.events,r,c,u);return j(n,{events:h.events,hasMore:h.hasMore,...p.projections===void 0?{}:{projections:p.projections}})}catch(d){return d instanceof de?g(n,{code:"session-not-found",message:d.message,details:{sessionId:o}}):g(n,{code:"internal",message:`history unavailable for session "${o}": ${String(d)}`,details:{}})}},async models(n){const{sessionId:o}=n.payload,r=await z(o);if("error"in r)return g(n,r.error);const c=U(r.agent).current,{groups:d,failures:u}=await mt(t),p=Ve(c.provider);return j(n,{current:{...c},routable:p,groups:d,failures:u})},async selectModel(n){const{sessionId:o,provider:r,model:c,reasoningEffort:d}=n.payload,u=await z(o);return"error"in u?g(n,u.error):T(u.agent,async()=>{try{const p=await t.llm.resolveCallConfig({provider:r,model:c,...d===void 0?{}:{reasoningEffort:us(d)}});if([...u.agent.inbox.nextTurn,...u.agent.inbox.nextStep].some(v=>We(v.content))||eo(u.agent.session.deriveMessages())){const v=await t.llm.resolveModelInfo(p.provider,p.model);if(v.inputModalities!==void 0&&!v.inputModalities.includes("image"))return g(n,{code:"model-unavailable",message:`Model "${p.model}" does not accept image input, but this session already contains images; select an image-capable model.`,details:{provider:r,model:c}})}const h={provider:p.provider,model:p.model,...p.reasoningEffort===void 0?{}:{reasoningEffort:p.reasoningEffort}};U(u.agent).current=h;try{await s.saveDefaultModelSelection?.(h)}catch(v){t.logger.warn(`api-proxy: the model switch applies to this session but was not saved as the default: ${String(v)}`)}return j(n,{selected:{...h}})}catch(p){return g(n,{code:"model-unavailable",message:p instanceof Error?p.message:String(p),details:{provider:r,model:c}})}})},async rename(n){const{sessionId:o,title:r}=n.payload,c=await z(o);if("error"in c)return g(n,c.error);const d=t.get("sessionTitle");if(d===void 0)return g(n,{code:"internal",message:"renaming is unavailable: this deployment mounts no session-title service",details:{}});try{const u=d.rename(c.agent.session,r);return j(n,{title:u.title,seq:u.eventSeq})}catch(u){return u instanceof Ts?g(n,{code:"title-invalid",message:u.message,details:{sessionId:o}}):g(n,{code:"internal",message:`failed to rename session "${o}": ${String(u)}`,details:{}})}},async fork(n){const{sessionId:o,atSeq:r}=n.payload;let c;try{c=await Ne(o)}catch(S){return S instanceof de?g(n,{code:"session-not-found",message:S.message,details:{sessionId:o}}):g(n,{code:"internal",message:`fork source unavailable for session "${o}": ${String(S)}`,details:{}})}const d=c.events,u=d.at(-1)?.seq??-1,p=(r===void 0?void 0:d.find(S=>S.type==="turn/end"&&S.seq>=r))??(r===void 0||r>u?d.findLast(S=>S.type==="turn/end"):void 0);if(p===void 0)return g(n,{code:"fork-unavailable",message:r!==void 0&&r<=u?`session "${o}" has not completed the turn containing event ${String(r)}`:`session "${o}" has no completed turn to fork from`,details:{sessionId:o}});let h=p.seq+1;for(;h<d.length&&d[h]?.type!=="turn/start";)h++;let v;try{v=await xt(c)}catch(S){return g(n,{code:"internal",message:`failed to resolve fork workspace for session "${o}": ${String(S)}`,details:{}})}const y=`session-${B()}`,E=await oe(Q(c));try{await t.agents.create({sessionId:y,seed:d.slice(0,h),meta:{...c.header.cwd===void 0?{}:{cwd:c.header.cwd},parentSession:c.id,seedLength:h,...E.agentPreset===void 0?{}:{agentPreset:E.agentPreset}},agentOptions:m(),setup:E.setup})}catch(S){return g(n,{code:"internal",message:`failed to fork session "${o}": ${String(S)}`,details:{}})}if(v!==void 0)try{await v.attachSession(y)}catch(S){return g(n,{code:"workspace-attach-failed",message:`session "${y}" was forked but could not attach to workspace "${v.id}": ${String(S)}`,details:{sessionId:y,workspaceId:v.id}})}return j(n,{sessionId:y})},async prompt(n){const{sessionId:o,mode:r,content:c,clientTimeZone:d}=n.payload,u=d===void 0?void 0:ut(d);if(d!==void 0&&u===void 0)return g(n,{code:"invalid-time-zone",message:"clientTimeZone must be UTC or a valid IANA Area/Location name",details:{value:d}});const p=await es(n,o);if("refused"in p)return p.refused;const h=p.agent,v={kind:"user",rpcId:n.rpcId,...u===void 0?{}:{clientTimeZone:u}},y=c.some(S=>S.type==="image"),E=a(async()=>{try{if(y){const $=U(h).current,_=await t.llm.resolveModelInfo($.provider,$.model);if(_.inputModalities!==void 0&&!_.inputModalities.includes("image"))return g(n,{code:"attachment-error",message:`Model "${$.model}" does not support image input.`,details:{reason:"MODEL_DOES_NOT_SUPPORT_IMAGES"}})}const S=await Xn(t,c),P=ms({content:S,source:v});r==="steer"?h.steer(P):h.followup(P)}catch(S){return S instanceof K?g(n,{code:"attachment-error",message:S.message,details:{reason:S.code}}):g(n,{code:"agent-busy",message:"prompt rejected",details:{reason:String(S)}})}return j(n,{accepted:!0})},"admit");return y?T(h,E):E()},async attachment(n){const{sessionId:o,attachmentId:r}=n.payload;let c;try{c=await Ne(o)}catch(u){return u instanceof de?g(n,{code:"session-not-found",message:u.message,details:{sessionId:o}}):g(n,{code:"internal",message:`attachment authorization unavailable for session "${o}": ${String(u)}`,details:{}})}const d=to(c.events,String(r));if(d===void 0)return g(n,{code:"attachment-error",message:"Image is not referenced by this session.",details:{reason:"ATTACHMENT_NOT_REFERENCED"}});try{const u=await t.attachments.readImage(d);return j(n,{attachment:u.ref,data:Buffer.from(u.data).toString("base64")})}catch(u){return u instanceof K?g(n,{code:"attachment-error",message:u.message,details:{reason:u.code}}):g(n,{code:"internal",message:"Unable to read image attachment.",details:{}})}},updateQueue(n){const{sessionId:o,itemId:r,action:c}=n.payload;if(c.kind==="edit"&&c.content.some(h=>h.type!=="text"))return Promise.resolve(g(n,{code:"attachment-error",message:"queue edits accept text content only",details:{reason:"QUEUE_EDIT_NON_TEXT"}}));const d=t.agents.get(o);if(d!==void 0&&F(d.session,d))return Promise.resolve(g(n,ve(o)));if(d===void 0)return Promise.resolve(g(n,{code:"queue-item-not-found",message:"queued item is no longer pending",details:{itemId:r}}));const u=d.inbox.nextTurn.some(h=>h.id===r)?"next-turn":d.inbox.nextStep.some(h=>h.id===r)?"next-step":void 0,p=u===void 0?void 0:(u==="next-turn"?d.inbox.nextTurn:d.inbox.nextStep).find(h=>h.id===r);return u===void 0||p===void 0?Promise.resolve(g(n,{code:"queue-item-not-found",message:"queued item is no longer pending",details:{itemId:r}})):c.kind==="steer"&&(u!=="next-turn"||d.status!=="running")?Promise.resolve(g(n,{code:"steer-unavailable",message:"current turn no longer accepts steering",details:{itemId:r}})):(c.kind==="edit"?d.inbox.replace(r,hs({...p,content:c.content})):(d.inbox.remove(r),c.kind==="steer"&&d.steer(p)),Promise.resolve(j(n,{accepted:!0})))},cancel(n){const{sessionId:o}=n.payload,r=t.agents.get(o);return r===void 0?Promise.resolve(g(n,{code:"session-not-found",message:`session "${o}" not found (not attached)`,details:{sessionId:o}})):F(r.session,r)?Promise.resolve(g(n,ve(o))):(r.cancel({kind:"user"},{keepInbox:!0}),Promise.resolve(j(n,{accepted:!0})))}},subagents:{async list(n,o){try{return j(n,{entries:(await t.subagents.listChildren(n.payload.parentSessionId,o)).map(r=>r.kind==="child"?{...r,activity:t.agents.get(r.id)?.status==="running"?"running":"inactive"}:r),parentAvailable:t.agents.get(n.payload.parentSessionId)!==void 0})}catch(r){return o?.aborted||r instanceof W&&r.code==="CANCELLED"?g(n,{code:"cancelled",message:"subagent catalog read was cancelled",details:{}}):r instanceof W&&r.code==="SUBAGENT_CONTROL_PROJECTIONS_UNAVAILABLE"?g(n,Ut()):g(n,{code:"internal",message:"subagent catalog read failed",details:{}})}},async history(n,o){const{parentSessionId:r,childSessionId:c,mode:d,beforeSeq:u,maxMessages:p}=n.payload,h=await Ct(t,{parentSessionId:r,childSessionId:c,mode:d},o);if(h.error!==void 0)return g(n,h.error);let v,y,E;const S=t.sessions.get(c);if(S!==void 0)v=S.header,y=[...S.events],E=u===void 0?Mt(t,c,()=>Et(t,S)):void 0;else try{const P=await be(c);v=P.meta,y=P.events,E=u===void 0?Mt(t,c,()=>Rt(t,P.events)):void 0}catch(P){return o?.aborted?g(n,{code:"cancelled",message:"subagent history read was cancelled",details:{}}):P instanceof de?g(n,{code:"subagent-not-found",message:"subagent disappeared during history read",details:{parentSessionId:r,childSessionId:c}}):g(n,{code:"internal",message:"subagent history read failed",details:{}})}return o?.aborted?g(n,{code:"cancelled",message:"subagent history read was cancelled",details:{}}):v.parentSession!==r?g(n,{code:"subagent-unauthorized",message:"subagent parent changed during history read",details:{childSessionId:c}}):j(n,{...Pt(t,y,u,p),...E===void 0?{}:{projections:E}})},async prompt(n,o){const{parentSessionId:r,childSessionId:c,content:d,clientTimeZone:u}=n.payload,p=u===void 0?void 0:ut(u);if(u!==void 0&&p===void 0)return g(n,{code:"invalid-time-zone",message:"clientTimeZone must be UTC or a valid IANA Area/Location name",details:{value:u}});const h=t.agents.get(r);if(h===void 0)return g(n,{code:"subagent-parent-unavailable",message:`parent session "${r}" is not live`,details:{parentSessionId:r}});const v=await Ct(t,{parentSessionId:r,childSessionId:c,mode:"continuable"},o);if(v.error!==void 0)return g(n,v.error);try{return j(n,{messageId:await t.subagents.followup(h,c,d,{source:{kind:"user",rpcId:n.rpcId,...p===void 0?{}:{clientTimeZone:p}},signal:o})})}catch(y){return lo(n,y,o)}},interrupt(n){const{parentSessionId:o,childSessionId:r}=n.payload;try{t.subagents.interrupt(r,{kind:"user",parentSessionId:o})}catch(c){return c instanceof W&&c.code==="UNAUTHORIZED"?Promise.resolve(g(n,{code:"subagent-unauthorized",message:"subagent does not belong to this parent",details:{childSessionId:r}})):Promise.resolve(g(n,{code:"internal",message:"subagent interrupt failed",details:{}}))}return Promise.resolve(j(n,{accepted:!0}))}},workspace:{list(n){return Promise.resolve(j(n,{items:t.workspaceRegistry.list().map(q),archivedSessionIds:[...t.workspaceRegistry.archivedSessionIds]}))},async create(n){const{path:o}=n.payload;try{const{workspace:r,created:c}=await qt(o);return j(n,{workspace:q(r),created:c})}catch(r){return g(n,{code:"workspace-invalid-path",message:`cannot create a workspace at "${o}": ${r instanceof Error?r.message:String(r)}`,details:{path:o}})}},async rename(n){const{payload:o}=n,r=t.workspaceRegistry.get(G(o.workspaceId));if(r===void 0)return he(n,o.workspaceId);const c=o.title.trim(),d=I.then(async()=>{if(c!==r.title){if(t.workspaceRegistry.list().some(u=>u.id!==r.id&&u.title===c))throw new Tt(c);await r.setTitle(c)}});I=d.then(()=>{},()=>{});try{await d}catch(u){if(u instanceof Tt)return g(n,{code:"workspace-name-conflict",message:u.message,details:{name:u.workspaceName}});throw u}return j(n,{workspace:q(r)})},async delete(n){const{workspaceId:o}=n.payload,r=I.then(()=>t.workspaceRegistry.delete(G(o)));return I=r.then(()=>{},()=>{}),await r?j(n,{deleted:!0}):he(n,o)},async insertBefore(n){const{workspaceId:o,beforeWorkspaceId:r}=n.payload;try{return j(n,{workspaceIds:[...await t.workspaceRegistry.insertBefore(G(o),r===void 0?void 0:G(r))]})}catch(c){if(!(c instanceof ws))throw c;return he(n,c.workspaceId)}},async insertSessionBefore(n){const{payload:o}=n,r=t.workspaceRegistry.get(G(o.workspaceId));if(r===void 0)return he(n,o.workspaceId);try{await r.insertSessionBefore(o.sessionId,o.beforeSessionId)}catch(c){if(!(c instanceof ys))throw c;return g(n,{code:"workspace-move-invalid",message:c.message,details:{workspaceId:o.workspaceId,sessionId:o.sessionId,...o.beforeSessionId===void 0?{}:{beforeSessionId:o.beforeSessionId}}})}return j(n,{workspace:q(r)})},async archiveSession(n){const{sessionId:o}=n.payload;try{await t.workspaceRegistry.archiveSession(o)}catch(r){if(!(r instanceof Ss))throw r;return g(n,{code:"session-not-found",message:r.message,details:{sessionId:o}})}return j(n,{archivedSessionIds:[...t.workspaceRegistry.archivedSessionIds]})}},host:{describe(n){const o=s.defaultModelSelection();return Promise.resolve(j(n,{version:"0.0.1",cwd:s.cwd,provider:o.provider,model:o.model,attachedSessions:t.agents.list().length,canOpenPath:we()}))},async pickDirectory(n,o){const r=t.directoryPicker.capability();if(r.kind!=="native")return g(n,{code:"directory-picker-unavailable",message:`host.pickDirectory needs the native capability; the composed picker serves "${r.kind}"`,details:{capability:r.kind}});try{return j(n,{path:await r.pick(o)})}catch(c){return o.aborted?g(n,{code:"cancelled",message:"directory picker was aborted",details:{}}):g(n,{code:"internal",message:`directory picker failed: ${c instanceof Error?c.message:String(c)}`,details:{}})}},async listDirectory(n,o){const r=t.directoryPicker.capability();if(r.kind!=="browse")return g(n,{code:"directory-picker-unavailable",message:`host.listDirectory needs the browse capability; the composed picker serves "${r.kind}"`,details:{capability:r.kind}});try{return j(n,await r.list(n.payload.path,o))}catch(c){return o.aborted?g(n,{code:"cancelled",message:"directory listing was aborted",details:{}}):g(n,St(c))}},async createDirectory(n){const o=t.directoryPicker.capability();if(o.kind!=="browse")return g(n,{code:"directory-picker-unavailable",message:`host.createDirectory needs the browse capability; the composed picker serves "${o.kind}"`,details:{capability:o.kind}});try{return j(n,{path:await o.createDirectory(n.payload.path,n.payload.name)})}catch(r){return g(n,St(r))}},async openPath(n,o){return Fe(n,n.payload.path,o)}},goals:{async create(n){const{objective:o,maxGoalRounds:r}=n.payload;return x(n,(c,d)=>c.create(d,{objective:o,...r!==void 0?{maxGoalRounds:r}:{}}))},async edit(n){const{ref:o,objective:r,maxGoalRounds:c}=n.payload;return x(n,(d,u)=>d.edit(u,o,{...r!==void 0?{objective:r}:{},...c!==void 0?{maxGoalRounds:c}:{}}))},async pause(n){return x(n,(o,r)=>o.pause(r,n.payload.ref))},async resume(n){return x(n,(o,r)=>o.resume(r,n.payload.ref))},async complete(n){return x(n,(o,r)=>o.complete(r,n.payload.ref))},async clear(n){const o=await z(n.payload.sessionId);if("error"in o)return g(n,o.error);const r=Oe(o.agent);if("error"in r)return g(n,r.error);try{return r.clear(o.agent,n.payload.ref),j(n,{cleared:!0})}catch(c){return _e(n,c)}}},agentPresets:{async list(n){const o=t.get("agentPresets");if(o===void 0)return j(n,{presets:[],authorable:!1,hasDocument:!1});const r=o.defaultId;return j(n,{presets:(await o.list()).map(c=>({id:c.id,trust:c.trust,isDefault:c.id===r,...c.name===void 0?{}:{name:c.name},...c.description===void 0?{}:{description:c.description},...c.broken===void 0?{}:{broken:c.broken}})),authorable:o.authorable,hasDocument:we()})},async select(n){const{sessionId:o,agentPreset:r}=n.payload,c=t.get("agentPresets");if(c===void 0)return g(n,{code:"agent-preset-not-found",message:"this deployment composes no agent presets",details:{agentPreset:r,available:[]}});const d=await z(o);if("error"in d)return g(n,d.error);const{agent:u}=d,p=a(async()=>{if(!vt(u.session))return g(n,{code:"agent-preset-locked",message:`session "${o}" has already started; its agent preset is fixed`,details:{sessionId:o,agentPreset:r}});try{const v=await c.recompose(u.ctx,r);return u.session.append("agent-preset/selected",{agentPreset:v.id}),j(n,{agentPreset:v.id})}catch(v){const y=gt(n,v);return y!==void 0?y:g(n,{code:"internal",message:`failed to select agent preset "${r}": ${String(v)}`,details:{}})}},"swap"),h=(f.get(o)??Promise.resolve()).then(p);f.set(o,h.catch(()=>{}));try{return await h}finally{f.get(o)===h&&f.delete(o)}},async read(n){const{agentPreset:o}=n.payload,r=t.get("agentPresets");if(r===void 0)return g(n,me(o));try{const c=await r.resolve(o);return j(n,{agentPreset:c.id,trust:c.trust,content:await r.read(c.id),...c.name===void 0?{}:{name:c.name},...c.description===void 0?{}:{description:c.description}})}catch(c){return g(n,ge(o,c))}},async copy(n){const{from:o,agentPreset:r,name:c}=n.payload,d=t.get("agentPresets");if(d===void 0)return g(n,me(r));try{return await d.copy(o,r,c),j(n,{agentPreset:r})}catch(u){return g(n,ge(r,u))}},async openDocument(n,o){const{agentPreset:r}=n.payload,c=t.get("agentPresets");if(c===void 0)return g(n,me(r));try{const d=await c.resolve(r);if(d.trust!=="user")throw new Ge(d.id,"it ships with the deployment");const u=ds(d.path);return we()?await Fe(n,u,o):j(n,{opened:!1,path:u})}catch(d){return g(n,ge(r,d))}},async remove(n){const{agentPreset:o}=n.payload,r=t.get("agentPresets");if(r===void 0)return g(n,me(o));try{return await r.remove(o),j(n,{})}catch(c){return g(n,ge(o,c))}}},skills:{async list(n){const{sessionId:o}=n.payload,r=t.sessions.get(o);if(r===void 0)return g(n,{code:"session-not-found",message:`session "${o}" not found (not attached)`,details:{sessionId:o}});if(r.header.cwd===void 0)return g(n,{code:"internal",message:`session "${o}" has no project cwd`,details:{}});const c=r.header.cwd,d=t.agents.get(o),u=t.get("agentPresets"),p=(d===void 0?void 0:u?.serviceFor(d,"skills"))??t.get("skills");if(p===void 0)return g(n,{code:"internal",message:"skill registry is absent: neither this session's agent preset nor the host composition mounts @deepseek-ai/dsh-skill",details:{}});const h=await De(o,r);try{return j(n,{skills:(await p.list({cwd:c,scope:h})).filter(bs).map(v=>({name:v.name,description:v.description,...v.whenToUse===void 0?{}:{whenToUse:v.whenToUse},modelInvocable:v.invocation.modelInvocable}))})}catch(v){return g(n,{code:"internal",message:`skill listing failed: ${String(v)}`,details:{}})}}},settings:{describe(n){const o=t.get("settings");if(o===void 0)return Promise.resolve(g(n,ye()));const r=Qe();return Promise.resolve(j(n,{writable:o.writable,hasDocument:o.documentPath!==void 0,namespaces:o.describe({redactSecrets:!0}).filter(c=>r.has(String(c.ns))).map(ze)}))},async openDocument(n,o){const r=t.get("settings");if(r===void 0)return g(n,ye());if(V(o))return g(n,{code:"cancelled",message:"settings document open was aborted",details:{}});let c;try{c=await r.prepareDocument()}catch(d){return V(o)?g(n,{code:"cancelled",message:"settings document preparation was aborted",details:{}}):g(n,{code:"internal",message:`settings document preparation failed: ${d instanceof Error?d.message:String(d)}`,details:{}})}return c===void 0?g(n,{code:"internal",message:"settings provider has no local document to open",details:{}}):V(o)?g(n,{code:"cancelled",message:"settings document open was aborted",details:{}}):ts(n,c,o)},update:a(n=>ke(n,n.payload.ns,"update",n.payload.patch,n.payload.expectedRevision),"update"),replace:a(n=>ke(n,n.payload.ns,"replace",n.payload.section,n.payload.expectedRevision),"replace"),mutate:a(n=>ke(n,n.payload.ns,"mutate",n.payload.ops,n.payload.expectedRevision),"mutate")},credentials:{async describe(n){const o=t.get("credentials");if(o===void 0)return g(n,Se());const r=await Promise.all(n.payload.refs.map(async c=>{const d=await o.describe(je(c));return[c,{configured:d.configured,...d.source===void 0?{}:{source:d.source},writable:d.writable}]}));return j(n,{credentials:Object.fromEntries(r)})},async set(n){const o=t.get("credentials");if(o===void 0)return g(n,Se());const{ref:r,value:c}=n.payload;try{await o.set(je(r),c)}catch(d){return g(n,{code:"credential-rejected",message:d instanceof Error?d.message:String(d),details:{ref:r}})}return j(n,{})},async unset(n){const o=t.get("credentials");if(o===void 0)return g(n,Se());const{ref:r}=n.payload;try{await o.unset(je(r))}catch(c){return g(n,{code:"credential-rejected",message:c instanceof Error?c.message:String(c),details:{ref:r}})}return j(n,{})}},llm:{providers(n){const o=t.llm.listProviders(),r=new Set(o.map(p=>p.id)),c=t.llm.listConfigurableProviders(),d=new Set(c.map(p=>p.provider)),u=c.map(p=>({provider:p.provider,displayName:p.displayName,settingsNs:p.settingsNs,settingsPath:[...p.settingsPath],active:r.has(p.provider),...p.declared===void 0?{}:{declared:p.declared}}));for(const p of o)d.has(p.id)||u.push({provider:p.id,displayName:p.name,settingsNs:"",settingsPath:[],active:!0});return Promise.resolve(j(n,{providers:u}))},async models(n){return j(n,await mt(t))},async discoverModels(n,o){const{settingsNs:r,provider:c,baseURL:d,api:u,apiKey:p}=n.payload;try{return j(n,{models:await t.llm.discoverModels(r,{...c===void 0?{}:{provider:c},...d===void 0?{}:{baseURL:d},...u===void 0?{}:{api:u},...p===void 0?{}:{apiKey:p},...o===void 0?{}:{signal:o}})})}catch(h){return g(n,{code:"model-discovery-failed",message:h instanceof Error?h.message:String(h),details:{settingsNs:r,...d===void 0?{}:{baseURL:d}}})}}},events:{mux(n,o){const r=new ht;C.add(r);for(const p of t.sessions.list())ft(r,p);for(const p of A.values())r.push({rpcId:p.rpcId,payload:{type:"question/requested",sessionId:p.sessionId,questions:p.questions}});for(const p of R.values())r.push(kt(p));for(const p of t.sessions.list()){const h=t.agents.get(p.id);h?.session===p&&h.inbox.hasPending&&r.push(L({type:"session/queue",sessionId:p.id,items:Te(h)}))}const c=t.get("jobs");if(c!==void 0)for(const p of t.sessions.list()){const h=ue(c.list(t.agents.get(p.id)));h.length>0&&r.push(L({type:"session/jobs",sessionId:p.id,jobs:h}))}const d=new Map,u=[t.on("session/event",(p,h)=>{if(h.type==="tool/call"){const y=h.data;try{let E=d.get(p.id);E===void 0&&d.set(p.id,E=new Map),E.set(y.callId,{name:y.name,args:JSON.parse(y.arguments)})}catch{}}else h.type==="turn/end"&&d.delete(p.id);const v=It(t,h,y=>d.get(p.id)?.get(y)??jt(p.events,y),t.agents.get(p.id));r.push(L({type:"session/event",sessionId:p.id,event:h,...v===void 0?{}:{view:v}}))}),t.on("session/created",p=>{ft(r,p);const h=c===void 0?[]:ue(c.list(t.agents.get(p.id)));h.length>0&&r.push(L({type:"session/jobs",sessionId:p.id,jobs:h}))}),t.on("session/disposed",p=>{d.delete(p.id)}),...c===void 0?[]:[c.onJobsChanged(p=>{if(p!==void 0){r.push(L({type:"session/jobs",sessionId:p.id,jobs:ue(c.list(p))}));return}for(const h of t.sessions.list())r.push(L({type:"session/jobs",sessionId:h.id,jobs:ue(c.list(t.agents.get(h.id)))}))})]];return r.iterate(o,()=>{C.delete(r);for(const p of u)p()})},host(n,o){const r=new ht,c=t.workspaceRegistry.list(),d=new Set(c.map(v=>String(v.id)));let u=c.map(v=>v.id),p=t.workspaceRegistry.archivedSessionIds;const h=[t.on("session/created",v=>{r.push(L({type:"host/session-added",sessionId:v.id,blank:vt(v),...Re(v.header,v.events)}))}),t.on("session/disposed",v=>{r.push(L({type:"host/session-removed",sessionId:v.id}))}),t.on("agent/status",({agent:v,status:y})=>{r.push(L({type:"host/session-status",sessionId:v.id,running:y==="running"}))}),t.on("agent/error",({agent:v,error:y})=>{r.push(L({type:"host/agent-error",sessionId:v.id,message:gs(y)}))}),t.on("domain/changed",v=>{if(v.domain==="workspace"){if(v.table===""){if(v.operation!=="put")return;const y=ks.parse(v.value),E=y.workspaceIds.length===u.length&&y.workspaceIds.every(S=>d.has(String(S)))&&y.workspaceIds.some((S,P)=>S!==u[P]);for(const S of y.workspaceIds){if(d.has(S))continue;const P=t.workspaceRegistry.get(S);if(P===void 0)throw new Error(`committed workspace registry references missing workspace "${S}"`);d.add(S),r.push(L({type:"host/workspace-changed",workspace:q(P)}))}u=[...y.workspaceIds],E&&r.push(L({type:"host/workspace-order-changed",workspaceIds:[...y.workspaceIds]})),(y.archivedSessionIds.length!==p.length||y.archivedSessionIds.some((S,P)=>S!==p[P]))&&(p=y.archivedSessionIds,r.push(L({type:"host/archived-sessions-changed",archivedSessionIds:[...y.archivedSessionIds]})));return}if(v.table==="workspaces"){if(v.operation==="deleted"){if(!d.delete(v.key))return;r.push(L({type:"host/workspace-removed",workspaceId:v.key}));return}d.has(v.key)&&r.push(L({type:"host/workspace-changed",workspace:po(v.key,v.value)}))}}}),...Ds.map(v=>t.on(v,((...y)=>{r.push(L({type:"host/remote-event",event:v,args:oo(v,y)}))})))];return r.iterate(o,()=>{for(const v of h)v()})}},downloads:{async sessionLog(n,o){const r=zs(t);if(r.sessionQuery===void 0||r.sessionPersistence===void 0||r.attachments===void 0)return new Response("session log export is unavailable: missing session-query, session-persistence, or attachments service",{status:500});if(!r.sessionPersistence.supportsRawArtifacts)return new Response("session log export is unavailable: the persistence backend does not expose per-session raw artifacts",{status:501});const c={sessionQuery:r.sessionQuery,sessionPersistence:r.sessionPersistence,attachments:r.attachments,sessions:r.sessions};let d;try{await Ze(r,n.sessionId,o),d=await r.sessionPersistence.readRaw(n.sessionId,o),o.throwIfAborted()}catch{return o.throwIfAborted(),new Response("session log export failed to prepare the stored artifact",{status:500})}return d===void 0?new Response("session not found",{status:404}):new Response(tn(c,d,n.sessionId,n.includeDescendants===!0,i,o),{headers:{"content-type":"application/zip","content-disposition":`attachment; filename="${Zs(n.sessionId)}"`}})}},respond(n){const o=R.get(n.rpcId);if(o!==void 0){if(!n.result.ok)return Promise.resolve({accepted:!1,reason:"bad-response"});const u=$n.safeParse(n.result.value);return!u.success||u.data.approvalId!==o.approvalId||u.data.sessionId!==o.sessionId?Promise.resolve({accepted:!1,reason:"bad-response"}):(o.resolve(u.data.outcome),Promise.resolve({accepted:!0}))}const r=A.get(n.rpcId);if(r===void 0)return Promise.resolve({accepted:!1,reason:"not-pending"});if(!n.result.ok)return n.result.error.code!=="cancelled"?Promise.resolve({accepted:!1,reason:"bad-response"}):(ae(r,"cancelled"),r.reject(new ce("the user cancelled ask_user_question","ASK_CANCELLED")),Promise.resolve({accepted:!0}));const c=_n.safeParse(n.result.value);if(!c.success)return Promise.resolve({accepted:!1,reason:"bad-response"});const d={sessionId:c.data.sessionId,answer:{answers:c.data.answer.answers.map(u=>({id:u.id,selected:u.selected,...u.custom===void 0?{}:{custom:u.custom}}))}};return co(d,r)?(ae(r,"answered"),r.resolve(d.answer),Promise.resolve({accepted:!0})):Promise.resolve({accepted:!1,reason:"bad-response"})}}}a(Nt,"createApiProxy");const uo=e.object({sessionId:k,includeDescendants:e.union([e.literal("true"),e.literal("false")]).optional()}).transform(t=>({sessionId:t.sessionId,...t.includeDescendants==="true"?{includeDescendants:!0}:{}})),ee=e.string(),Ue=e.discriminatedUnion("code",[e.object({code:e.literal("bad-request"),message:e.string(),details:e.object({issues:e.array(e.custom())})}),e.object({code:e.literal("cancelled"),message:e.string(),details:e.object({})}),e.object({code:e.literal("session-not-found"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("model-unavailable"),message:e.string(),details:e.object({provider:e.string(),model:e.string()})}),e.object({code:e.literal("session-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedCwd:e.string(),existingCwd:e.string().optional()})}),e.object({code:e.literal("invalid-time-zone"),message:e.string(),details:e.object({value:e.string()})}),e.object({code:e.literal("workspace-attach-failed"),message:e.string(),details:e.object({sessionId:e.string(),workspaceId:e.string()})}),e.object({code:e.literal("workspace-not-found"),message:e.string(),details:e.object({workspaceId:e.string()})}),e.object({code:e.literal("workspace-invalid-path"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("workspace-name-conflict"),message:e.string(),details:e.object({name:e.string()})}),e.object({code:e.literal("workspace-move-invalid"),message:e.string(),details:e.object({workspaceId:e.string(),sessionId:e.string(),beforeSessionId:e.string().optional()})}),e.object({code:e.literal("directory-unreadable"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-exists"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-create-failed"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-picker-unavailable"),message:e.string(),details:e.object({capability:e.string()})}),e.object({code:e.literal("agent-preset-read-only"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-preset-locked"),message:e.string(),details:e.object({sessionId:e.string(),agentPreset:e.string()})}),e.object({code:e.literal("agent-preset-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedPreset:e.string(),existingPreset:e.string().optional()})}),e.object({code:e.literal("agent-preset-not-found"),message:e.string(),details:e.object({agentPreset:e.string(),available:e.array(e.string())})}),e.object({code:e.literal("agent-preset-invalid"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-busy"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("attachment-error"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("queue-item-not-found"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("steer-unavailable"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("command-error"),message:e.string(),details:e.object({})}),e.object({code:e.literal("unknown-command"),message:e.string(),details:e.object({})}),e.object({code:e.literal("settings-rejected"),message:e.string(),details:e.object({ns:e.string()})}),e.object({code:e.literal("settings-not-exposed"),message:e.string(),details:e.object({ns:e.string()})}),e.object({code:e.literal("settings-conflict"),message:e.string(),details:e.object({ns:e.string(),expected:e.number(),actual:e.number()})}),e.object({code:e.literal("credential-rejected"),message:e.string(),details:e.object({ref:e.string()})}),e.object({code:e.literal("model-discovery-failed"),message:e.string(),details:e.object({settingsNs:e.string(),baseURL:e.string().optional()})}),e.object({code:e.literal("title-invalid"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("fork-unavailable"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("subagent-parent-unavailable"),message:e.string(),details:e.object({parentSessionId:e.string()})}),e.object({code:e.literal("subagent-not-found"),message:e.string(),details:e.object({parentSessionId:e.string(),childSessionId:e.string()})}),e.object({code:e.literal("subagent-catalog-diagnostic"),message:e.string(),details:e.object({parentSessionId:e.string(),childSessionId:e.string(),reason:e.union([e.literal("corrupt"),e.literal("unsupported"),e.literal("unavailable")])})}),e.object({code:e.literal("subagent-not-resumable"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("subagent-unauthorized"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("subagent-delivery-unavailable"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("internal"),message:e.string(),details:e.object({})})]);function Dt(t){return e.union([e.object({ok:e.literal(!0),value:t}),e.object({ok:e.literal(!1),error:Ue})])}a(Dt,"rpcResultSchema");const $t=e.object({type:e.literal("client-request"),rpcId:ee,method:e.string(),payload:e.unknown()}),Ot=e.object({type:e.literal("server-response"),rpcId:ee,result:Dt(e.unknown().optional())}),_t=e.object({type:e.literal("server-request"),rpcId:ee,method:e.string(),payload:e.unknown()}),Vt=e.object({type:e.literal("client-response"),rpcId:ee,result:Dt(e.unknown().optional())});e.discriminatedUnion("type",[$t,Ot,_t,Vt]);const mo=e.union([e.object({accepted:e.literal(!0)}),e.object({accepted:e.literal(!1),reason:e.union([e.literal("not-pending"),e.literal("bad-response")])})]),go=e.object({}),ho=e.object({version:e.string(),cwd:e.string(),provider:e.string().optional(),model:e.string().optional(),attachedSessions:e.number().int().nonnegative(),canOpenPath:e.boolean()}),fo=e.object({}),vo=e.object({path:e.string().nullable()}),Bt=e.object({name:e.string(),path:e.string(),hidden:e.boolean()}),bo=e.object({path:e.string().optional()}),yo=e.object({path:e.string(),home:e.string(),crumbs:e.array(Bt),entries:e.array(Bt),truncated:e.boolean()}),wo=e.object({path:e.string(),name:e.string()}).refine(t=>t.name.trim()!==""&&t.name!=="."&&t.name!==".."&&!/[/\\]/.test(t.name),{message:"host.createDirectory requires a single non-blank path segment name"}),So=e.object({path:e.string()}),ko=e.object({path:e.string().min(1)}),Io=e.object({opened:e.literal(!0)}),te=e.object({workspaceId:O,path:e.string(),title:e.string(),sessionIds:e.array(k),createdAt:e.string(),updatedAt:e.string()}),jo=e.object({}),Po=e.object({items:e.array(te),archivedSessionIds:e.array(k)}),Eo=e.object({path:e.string()}),Ao=e.object({workspace:te,created:e.boolean()}),Ro=e.object({workspaceId:O,title:e.string()}).refine(t=>t.title.trim()!=="",{message:"workspace.rename requires a non-blank title"}),Mo=e.object({workspace:te}),Uo=e.object({workspaceId:O}),Co=e.object({deleted:e.literal(!0)}),Lo=e.object({workspaceId:O,beforeWorkspaceId:O.optional()}),To=e.object({workspaceIds:e.array(O)}),No=e.object({workspaceId:O,sessionId:k,beforeSessionId:k.optional()}),Do=e.object({workspace:te}),$o=e.object({sessionId:k}),Oo=e.object({archivedSessionIds:e.array(k)}),_o=e.object({name:e.string().min(1),description:e.string(),whenToUse:e.string().optional(),modelInvocable:e.boolean()}),Vo=e.object({sessionId:k}),Bo=e.object({skills:e.array(_o)}),Fo=e.object({id:e.string().min(1),trust:e.union([e.literal("system"),e.literal("user")]),isDefault:e.boolean(),name:e.string().optional(),description:e.string().optional(),broken:e.string().min(1).optional()}),zo=e.object({}),Qo=e.object({presets:e.array(Fo),authorable:e.boolean(),hasDocument:e.boolean()}),Wo=e.object({sessionId:k,agentPreset:e.string().min(1)}),Go=e.object({agentPreset:e.string()}),Ho=e.object({agentPreset:e.string().min(1)}),Zo=e.object({agentPreset:e.string(),trust:e.union([e.literal("system"),e.literal("user")]),content:e.string(),name:e.string().optional(),description:e.string().optional()}),xo=e.object({from:e.string().min(1),agentPreset:e.string().min(1),name:e.string().optional()}),Jo=e.object({agentPreset:e.string()}),Yo=e.object({agentPreset:e.string().min(1)}),Ko=e.union([e.object({opened:e.literal(!0)}),e.object({opened:e.literal(!1),path:e.string()})]),Xo=e.object({agentPreset:e.string().min(1)}),qo=e.object({}),Z=e.object({id:e.string(),revision:e.number().int().positive()}),se=e.object({ref:Z}),er=e.object({sessionId:e.string(),objective:e.string().min(1),maxGoalRounds:e.number().int().positive().optional()}),tr=se,sr=e.object({sessionId:e.string(),ref:Z,objective:e.string().min(1).optional(),maxGoalRounds:e.number().int().positive().optional()}).refine(t=>t.objective!==void 0||t.maxGoalRounds!==void 0,{message:"goal.edit requires objective or maxGoalRounds"}),nr=se,or=e.object({sessionId:e.string(),ref:Z}),rr=se,ar=e.object({sessionId:e.string(),ref:Z}),ir=se,cr=e.object({sessionId:e.string(),ref:Z}),dr=se,lr=e.object({sessionId:e.string(),ref:Z}),pr=e.object({cleared:e.literal(!0)}),ur=e.object({path:e.array(e.string()),set:e.boolean()}),fe=e.object({ns:e.string().min(1),schema:e.unknown(),value:e.unknown(),base:e.unknown().optional(),user:e.unknown().optional(),applies:e.union([e.literal("live"),e.literal("restart")]),secrets:e.array(ur),revision:e.number()}),mr=e.object({}),gr=e.object({writable:e.boolean(),hasDocument:e.boolean(),namespaces:e.array(fe)}),hr=e.object({}),fr=e.object({opened:e.literal(!0)}),vr=e.object({ns:e.string().min(1),patch:e.record(e.string(),e.unknown()),expectedRevision:e.number().optional()}),br=fe,yr=e.object({ns:e.string().min(1),section:e.record(e.string(),e.unknown()),expectedRevision:e.number().optional()}),wr=e.discriminatedUnion("op",[e.object({op:e.literal("set"),path:e.array(e.string()),value:e.unknown()}),e.object({op:e.literal("unset"),path:e.array(e.string())})]),Sr=e.object({ns:e.string().min(1),ops:e.array(wr),expectedRevision:e.number().optional()}),kr=fe,Ir=fe,Ce=e.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/),jr=e.object({configured:e.boolean(),source:e.string().optional(),writable:e.boolean()}),Pr=e.object({refs:e.array(Ce).max(64)}),Er=e.object({credentials:e.record(e.string(),jr)}),Ar=e.object({ref:Ce,value:e.string().min(1)}),Rr=e.object({}),Mr=e.object({ref:Ce}),Ur=e.object({}),Cr=e.object({provider:e.string().min(1),displayName:e.string().min(1),settingsNs:e.string(),settingsPath:e.array(e.string()),active:e.boolean(),declared:e.boolean().optional()}),Lr=e.object({}),Tr=e.object({providers:e.array(Cr)}),Nr=e.object({}),Dr=e.object({groups:e.array(qe),failures:e.array(et)}),$r=e.object({id:e.string().min(1),name:e.string().min(1).optional(),contextWindow:e.number().int().positive().optional(),maxTokens:e.number().int().positive().optional()}),Or=e.object({settingsNs:e.string().min(1),provider:e.string().min(1).optional(),baseURL:e.string().min(1).optional(),api:e.string().min(1).optional(),apiKey:e.string().min(1).optional()}),_r=e.object({models:e.array($r)}),Vr=e.union([e.object({kind:e.literal("child"),id:k,mode:e.literal("one-shot"),activity:e.union([e.literal("running"),e.literal("inactive")]),hasChildren:e.boolean(),label:e.string().optional()}),e.object({kind:e.literal("child"),id:k,mode:e.literal("continuable"),activity:e.union([e.literal("running"),e.literal("inactive")]),hasChildren:e.boolean(),label:e.string()}),e.object({kind:e.literal("diagnostic"),id:k,reason:e.union([e.literal("corrupt"),e.literal("unsupported"),e.literal("unavailable")])})]),Br=e.object({parentSessionId:k}),Fr=e.object({entries:e.array(Vr),parentAvailable:e.boolean()}),zr=e.object({parentSessionId:k,childSessionId:k,mode:e.union([e.literal("one-shot"),e.literal("continuable")]),beforeSeq:e.number().int().nonnegative().optional(),maxMessages:e.number().int().positive().optional()}),Qr=e.object({events:e.array(st),hasMore:e.boolean(),projections:Pe.optional()}),Wr=e.object({parentSessionId:k,childSessionId:k,mode:e.literal("continuable"),content:e.array(Ee),clientTimeZone:e.string().optional()}),Gr=e.object({parentSessionId:k,childSessionId:k,mode:e.literal("continuable")}),Hr=e.object({accepted:e.literal(!0)}),Zr=e.string(),xr=e.object({messageId:Zr}),Ft={"session.list":{schema:nn,invoke:a((t,s)=>t.sessions.list(s),"invoke")},"session.search":{schema:rn,invoke:a((t,s,i)=>t.sessions.search(s,i),"invoke")},"session.create":{schema:dn,invoke:a((t,s)=>t.sessions.create(s),"invoke")},"session.history":{schema:hn,invoke:a((t,s)=>t.sessions.history(s),"invoke")},"session.models":{schema:kn,invoke:a((t,s)=>t.sessions.models(s),"invoke")},"session.selectModel":{schema:jn,invoke:a((t,s)=>t.sessions.selectModel(s),"invoke")},"session.rename":{schema:pn,invoke:a((t,s)=>t.sessions.rename(s),"invoke")},"session.fork":{schema:mn,invoke:a((t,s)=>t.sessions.fork(s),"invoke")},"session.prompt":{schema:An,invoke:a((t,s)=>t.sessions.prompt(s),"invoke")},"session.attachment":{schema:Un,invoke:a((t,s)=>t.sessions.attachment(s),"invoke")},"session.updateQueue":{schema:Ln,invoke:a((t,s)=>t.sessions.updateQueue(s),"invoke")},"session.cancel":{schema:Nn,invoke:a((t,s)=>t.sessions.cancel(s),"invoke")},"subagent.list":{schema:Br,invoke:a((t,s,i)=>t.subagents.list(s,i),"invoke")},"subagent.history":{schema:zr,invoke:a((t,s,i)=>t.subagents.history(s,i),"invoke")},"subagent.prompt":{schema:Wr,invoke:a((t,s,i)=>t.subagents.prompt(s,i),"invoke")},"subagent.interrupt":{schema:Gr,invoke:a((t,s)=>t.subagents.interrupt(s),"invoke")},"host.describe":{schema:go,invoke:a((t,s)=>t.host.describe(s),"invoke")},"host.pickDirectory":{schema:fo,invoke:a((t,s,i)=>t.host.pickDirectory(s,i),"invoke")},"host.listDirectory":{schema:bo,invoke:a((t,s,i)=>t.host.listDirectory(s,i),"invoke")},"host.createDirectory":{schema:wo,invoke:a((t,s)=>t.host.createDirectory(s),"invoke")},"host.openPath":{schema:ko,invoke:a((t,s,i)=>t.host.openPath(s,i),"invoke")},"workspace.list":{schema:jo,invoke:a((t,s)=>t.workspace.list(s),"invoke")},"workspace.create":{schema:Eo,invoke:a((t,s)=>t.workspace.create(s),"invoke")},"workspace.rename":{schema:Ro,invoke:a((t,s)=>t.workspace.rename(s),"invoke")},"workspace.delete":{schema:Uo,invoke:a((t,s)=>t.workspace.delete(s),"invoke")},"workspace.insertBefore":{schema:Lo,invoke:a((t,s)=>t.workspace.insertBefore(s),"invoke")},"workspace.insertSessionBefore":{schema:No,invoke:a((t,s)=>t.workspace.insertSessionBefore(s),"invoke")},"workspace.archiveSession":{schema:$o,invoke:a((t,s)=>t.workspace.archiveSession(s),"invoke")},"skill.list":{schema:Vo,invoke:a((t,s)=>t.skills.list(s),"invoke")},"agentPreset.list":{schema:zo,invoke:a((t,s)=>t.agentPresets.list(s),"invoke")},"agentPreset.select":{schema:Wo,invoke:a((t,s)=>t.agentPresets.select(s),"invoke")},"agentPreset.read":{schema:Ho,invoke:a((t,s)=>t.agentPresets.read(s),"invoke")},"agentPreset.copy":{schema:xo,invoke:a((t,s)=>t.agentPresets.copy(s),"invoke")},"agentPreset.openDocument":{schema:Yo,invoke:a((t,s,i)=>t.agentPresets.openDocument(s,i),"invoke")},"agentPreset.remove":{schema:Xo,invoke:a((t,s)=>t.agentPresets.remove(s),"invoke")},"goal.create":{schema:er,invoke:a((t,s)=>t.goals.create(s),"invoke")},"goal.edit":{schema:sr,invoke:a((t,s)=>t.goals.edit(s),"invoke")},"goal.pause":{schema:or,invoke:a((t,s)=>t.goals.pause(s),"invoke")},"goal.resume":{schema:ar,invoke:a((t,s)=>t.goals.resume(s),"invoke")},"goal.complete":{schema:cr,invoke:a((t,s)=>t.goals.complete(s),"invoke")},"goal.clear":{schema:lr,invoke:a((t,s)=>t.goals.clear(s),"invoke")},"settings.describe":{schema:mr,invoke:a((t,s)=>t.settings.describe(s),"invoke")},"settings.openDocument":{schema:hr,invoke:a((t,s,i)=>t.settings.openDocument(s,i),"invoke")},"settings.update":{schema:vr,invoke:a((t,s)=>t.settings.update(s),"invoke")},"settings.replace":{schema:yr,invoke:a((t,s)=>t.settings.replace(s),"invoke")},"settings.mutate":{schema:Sr,invoke:a((t,s)=>t.settings.mutate(s),"invoke")},"credentials.describe":{schema:Pr,invoke:a((t,s)=>t.credentials.describe(s),"invoke")},"credentials.set":{schema:Ar,invoke:a((t,s)=>t.credentials.set(s),"invoke")},"credentials.unset":{schema:Mr,invoke:a((t,s)=>t.credentials.unset(s),"invoke")},"llm.providers":{schema:Lr,invoke:a((t,s)=>t.llm.providers(s),"invoke")},"llm.models":{schema:Nr,invoke:a((t,s)=>t.llm.models(s),"invoke")},"llm.discoverModels":{schema:Or,invoke:a((t,s,i)=>t.llm.discoverModels(s,i),"invoke")}};function Jr(t){return Object.hasOwn(Ft,t)?t:void 0}a(Jr,"methodFor");const Yr="invalid-request";function Le(t,s){const i={type:"server-response",rpcId:t,result:{ok:!1,error:s}};return Response.json(i)}a(Le,"errorResponse");function Kr(t){const s={type:"server-response",rpcId:t.rpcId,result:t.result};return Response.json(s)}a(Kr,"fullResponse");async function Xr(t,s,i,l){const m=Ft[s],b=m.schema.safeParse(i.payload);if(!b.success)return Le(i.rpcId,{code:"bad-request",message:`invalid payload for ${s}`,details:{issues:b.error.issues}});try{return Kr(await m.invoke(t,{rpcId:i.rpcId,payload:b.data},l))}catch(f){return new Response(`handler failure: ${String(f)}`,{status:500})}}a(Xr,"handleUnary");function zt(t){return{type:"server-request",rpcId:t.rpcId,method:t.payload.type,payload:t.payload}}a(zt,"fullFrame");function Qt(t){const s=new TextEncoder,i=new ReadableStream({async start(l){try{l.enqueue(s.encode(`: connected
|
|
1
|
+
var ss=Object.defineProperty;var a=(t,s)=>ss(t,"name",{value:s,configurable:!0});import{Service as ns}from"@deepseek-ai/cordis";import ae from"@deepseek-ai/schemastery";import{randomUUID as B}from"node:crypto";import{mkdir as os,stat as rs}from"node:fs/promises";import{dirname as as,extname as is}from"node:path";import{installModelSelection as cs}from"@deepseek-ai/dsh-agent";import{AttachmentError as ke}from"@deepseek-ai/dsh-attachment";import{ReasoningEffortId as ds,contentHasImage as Qe,createUserMessage as ls,errorChain as us,freezeMessage as ps}from"@deepseek-ai/dsh-llm";import{isAppendSurfaceEvent as ms,isJsonValue as gs}from"@deepseek-ai/dsh-session";import{SessionQueryError as Ie}from"@deepseek-ai/dsh-session-query";import{SubagentError as W}from"@deepseek-ai/dsh-subagent";import{isUserInvocable as hs}from"@deepseek-ai/dsh-skill";import{WorkspaceId as H,WorkspaceMoveInvalidError as fs,WorkspaceOrderInvalidError as vs,WorkspaceUnknownSessionError as bs,workspaceDomainState as ys,workspaceRecord as ws}from"@deepseek-ai/dsh-workspace";import{InvalidPresetIdError as Ss,PresetExistsError as ks,PresetMountError as Is,PresetNotWritableError as We,UnknownPresetError as He,resolveSessionPreset as Q}from"@deepseek-ai/dsh-agent-presets";import{Zip as js,ZipDeflate as Ps}from"fflate";import{GoalError as Es}from"@deepseek-ai/dsh-goal";import{SettingsConflictError as Rs,settingsNamespace as As}from"@deepseek-ai/dsh-settings";import{credentialRef as je}from"@deepseek-ai/dsh-credentials";import{SessionTitleInvalidError as Us}from"@deepseek-ai/dsh-session-title";import{z as e}from"zod";import{UserQuestionError as ie}from"@deepseek-ai/dsh-user-questions";import{DirectoryPickerError as Ms}from"@deepseek-ai/dsh-host-directory-picker";import{API_REMOTE_FORWARDED_EVENTS as Cs,ApiRemoteSessionNotFound as ce,ApiRemoteSubagentSessionOwnership as Z,apiRemoteSubagentOwnershipError as Ls,createApiRemoteAgentResolver as Ds,hasApiRemoteSubagentOwner as $s,inspectApiRemoteSession as Ts}from"@deepseek-ai/dsh-api-remotes";import{release as Ns}from"node:os";import{runNativeCommand as Os}from"@deepseek-ai/dsh-native-command";function _s(t){return{sessionQuery:t.get("sessionQuery"),sessionPersistence:t.get("sessionPersistence"),attachments:t.get("attachments"),sessions:t.get("sessions")}}a(_s,"sessionLogExportDeps");async function Ze(t,s,i){i?.throwIfAborted();const l=t.sessions;if(l===void 0)return;const m=l.get(s);m!==void 0&&(await l.flush(m),i?.throwIfAborted())}a(Ze,"flushLiveSessionLog");const Vs={"image/png":"png","image/jpeg":"jpg","image/webp":"webp","image/gif":"gif"};function Bs(t){return`media/${String(t.attachmentId)}.${Vs[t.mediaType]}`}a(Bs,"mediaEntryPath");function de(t,s){if(!Array.isArray(t))return;const i=[];for(const l of t)i.push(l);for(;i.length>0;){const l=i.pop();if(typeof l!="object"||l===null||Array.isArray(l))continue;const m=l;if(m.type==="image"&&typeof m.attachment=="object"&&m.attachment!==null){const v=m.attachment;s.set(String(v.attachmentId),v)}if(Array.isArray(m.content))for(const v of m.content)i.push(v)}}a(de,"collectImageRefs");function Fs(t,s){const i=t.data;if(typeof i!="object"||i===null)return;const l=i;if(de(l.content,s),l.message!==void 0&&de(l.message.content,s),l.inserted!==void 0)for(const m of l.inserted)de(m.content,s);l.chunk?.type==="block-end"&&de([l.chunk.block],s)}a(Fs,"collectEventImageRefs");function zs(t){const s=new Map;for(const i of t.split(`
|
|
2
|
+
`)){if(i==="")continue;let l;try{l=JSON.parse(i)}catch{continue}Fs(l,s)}return s}a(zs,"imageRefsInArtifact");function Ge(t){return t.replace(/[^A-Za-z0-9_-]/g,"_")}a(Ge,"safeSessionIdSegment");function Qs(t){return`dsh-session-${Ge(t)}.zip`}a(Qs,"sessionLogZipFilename");async function*Ws(t,s,i,l,m){const v=new Map,b=a(y=>{for(const[k,R]of zs(y))v.set(k,R)},"rememberMedia");if(b(s.content),yield{path:s.filename,content:s.content},l){const y=new Set([i]),k=a(async function*(A){for(const C of A){m?.throwIfAborted();const U=C.session.header.id;if(y.has(U))continue;y.add(U),await Ze(t,U,m);const D=await t.sessionPersistence.readRaw(U,m);if(m?.throwIfAborted(),D===void 0)throw new Error(`subagent "${U}" has no stored log artifact`);b(D.content),yield{path:`subagents/${Ge(U)}/${D.filename}`,content:D.content},yield*k(C.descendants)}},"collect"),R=await t.sessionQuery.traceSession(i,m);m?.throwIfAborted(),yield*k(R.descendants)}for(const y of v.values()){m?.throwIfAborted();const k=await t.attachments.readImage(y,m);m?.throwIfAborted(),yield{path:Bs(y),data:k.data}}}a(Ws,"sessionLogZipEntries");const Hs=65536,Zs=65536,Gs=65536;var Js=class{static{a(this,"ResponseCapacityGate")}releasePending;async wait(t,s){s.throwIfAborted(),!(t.desiredSize===null||t.desiredSize>0)&&(await new Promise(i=>{const l=a(()=>{this.releasePending=void 0,s.removeEventListener("abort",l),i()},"release");this.releasePending=l,s.addEventListener("abort",l,{once:!0})}),s.throwIfAborted())}pulled(){this.releasePending?.()}};async function xs(t,s,i,l,m){let v=0;do{m.throwIfAborted();const b=Math.min(v+Zs,s.byteLength),y=b>=s.byteLength;t.push(s.subarray(v,b),y),v=b,await l.wait(i,m)}while(v<s.byteLength)}a(xs,"pushBinaryChunks");async function Ys(t,s,i,l,m){const v=new TextEncoder;let b=0,y;do{m.throwIfAborted();let k=Math.min(b+Hs,s.length);if(k<s.length&&k-b>1){const R=s.charCodeAt(k-1);R>=55296&&R<=56319&&(k-=1)}y=k>=s.length,t.push(v.encode(s.slice(b,k)),y),b=k,await l.wait(i,m)}while(!y)}a(Ys,"pushArtifactChunks");function Ks(t,s,i,l,m,v){const b=new AbortController,y=AbortSignal.any([v,b.signal]);let k,R=!1;const A=new Js,C=a(()=>{k===void 0||R||(R=!0,k.terminate())},"terminateZip");return new ReadableStream({start(U){const D=new js((M,$,se)=>{if(M){U.error(M);return}$.byteLength>0&&U.enqueue($),se&&U.close()});k=D,(async()=>{try{for await(const M of Ws(t,s,i,l,y)){const $=new Ps(M.path,{level:m});D.add($),"content"in M?await Ys($,M.content,U,A,y):await xs($,M.data,U,A,y)}D.end()}catch(M){C(),U.error(M instanceof Error?M:new Error(String(M)))}})()},pull(){A.pulled()},cancel(U){b.abort(U instanceof Error?U:new Error("session log export stream cancelled")),C()}},{highWaterMark:Gs,size:a(U=>U.byteLength,"size")})}a(Ks,"streamSessionLogZip");function Je(t,s){let i=0,l=0;for(const m of t){if(i===s)return t.slice(0,l);i++,l+=m.length}return t}a(Je,"truncateUnicodeCodePoints");const I=e.string().min(1),xe=e.string().min(1),O=e.string().min(1),Ye=e.object({type:e.string(),seq:e.number().int().nonnegative(),time:e.number(),data:e.unknown(),sourceEventSeqs:e.array(e.number()).optional(),surfaceOp:e.unknown().optional(),ignorable:e.literal(!0).optional()}),Xs=e.object({sessionId:I,updatedAt:e.number(),running:e.boolean(),blank:e.boolean(),parentSessionId:I.optional(),origin:e.literal("subagent").optional(),cwd:e.string().optional(),agentPreset:e.string().optional(),projections:e.lazy(()=>Pe).optional()}),qs=e.object({cursor:e.string().optional()}),en=e.object({items:e.array(Xs)}),tn=e.object({query:e.string().trim().min(1).max(500).refine(t=>!t.includes("\0"),{message:"search query must not contain NUL"})}),sn=e.object({sessionId:I,snippet:e.string().refine(t=>Je(t,240)===t,{message:"search snippet must contain at most 240 Unicode code points"})}),nn=e.object({items:e.array(sn).max(20),hasMore:e.boolean()}),on=e.object({workspaceId:O.optional(),cwd:e.string().optional(),sessionId:I.optional(),agentPreset:e.string().optional()}).refine(t=>t.workspaceId===void 0||t.cwd===void 0,{message:"session.create accepts workspaceId or cwd, not both"}),rn=e.object({sessionId:I,agentPreset:e.string().optional()}),an=e.object({sessionId:I,title:e.string()}),cn=e.object({title:e.string().min(1),seq:e.number().int().nonnegative()}),dn=e.object({sessionId:I,atSeq:e.number().int().nonnegative().optional()}),ln=e.object({sessionId:I}),un=e.object({sessionId:I,beforeSeq:e.number().int().nonnegative().optional(),maxMessages:e.number().int().positive().optional()}),Ke=e.object({provider:e.string().min(1),model:e.string().min(1),reasoningEffort:e.string().min(1).optional()}),pn=e.object({id:e.string().min(1),name:e.string().min(1),description:e.string().optional()}),mn=e.object({efforts:e.array(pn).min(1),defaultEffort:e.string().min(1).optional()}),gn=e.object({id:e.string().min(1),name:e.string().min(1),description:e.string().optional(),reasoning:mn.optional()}),Xe=e.object({id:e.string().min(1),name:e.string().min(1),models:e.array(gn)}),qe=e.object({id:e.string().min(1),name:e.string().min(1),message:e.string()}),et=e.discriminatedUnion("for",[e.object({for:e.literal("call"),view:e.looseObject({card:e.string()})}),e.object({for:e.literal("result"),view:e.looseObject({card:e.string()})})]),tt=e.object({event:Ye,view:et.optional()}),Pe=e.object({asOfSeq:e.number().int().min(-1),values:e.record(e.string(),e.unknown())}),hn=e.object({blank:e.boolean(),lastPromptAt:e.number().nullable()}),fn=e.object({maxImageBytes:e.number().int().positive(),maxImagesPerMessage:e.number().int().positive(),maxMessageImageBytes:e.number().int().positive(),maxImagePixels:e.number().int().positive(),mediaTypes:e.array(e.string())}),vn=e.object({events:e.array(tt),hasMore:e.boolean(),projections:Pe.optional()}),bn=e.object({sessionId:I}),yn=e.object({current:Ke,routable:e.boolean(),groups:e.array(Xe),failures:e.array(qe)}),wn=e.object({sessionId:I,provider:e.string().min(1),model:e.string().min(1),reasoningEffort:e.string().min(1).optional()}),Sn=e.object({selected:Ke}),Ee=e.looseObject({type:e.string()}),st=e.union([e.literal("image/png"),e.literal("image/jpeg"),e.literal("image/webp"),e.literal("image/gif")]),kn=e.discriminatedUnion("type",[e.object({type:e.literal("text"),text:e.string()}),e.object({type:e.literal("image"),mediaType:st,data:e.string(),name:e.string().optional()})]),In=e.object({sessionId:I,mode:e.union([e.literal("queue"),e.literal("steer")]),content:e.array(kn),clientTimeZone:e.string().optional()}),jn=e.object({accepted:e.literal(!0),command:e.object({kind:e.literal("success"),text:e.string().optional()}).optional()}),nt=e.string().min(1),Pn=e.object({attachmentId:nt,mediaType:st,bytes:e.number().int().positive(),width:e.number().int().positive(),height:e.number().int().positive(),name:e.string().optional()}),En=e.object({sessionId:I,attachmentId:nt}),Rn=e.object({attachment:Pn,data:e.string()}),An=e.object({sessionId:I,itemId:xe,action:e.discriminatedUnion("kind",[e.object({kind:e.literal("edit"),content:e.array(Ee)}),e.object({kind:e.literal("remove")}),e.object({kind:e.literal("steer")})])}),Un=e.object({accepted:e.literal(!0)}),Mn=e.object({sessionId:I}),Cn=e.object({accepted:e.literal(!0)}),Re=e.string().min(1),Ln=e.object({sessionId:I,approvalId:Re,outcome:e.union([e.literal("allowed-once"),e.literal("rejected")])}),Dn=e.object({answers:e.array(e.object({id:e.string(),selected:e.array(e.string()),custom:e.string().optional()}))}),$n=e.object({sessionId:I,answer:Dn});function Tn(t){return t}a(Tn,"RpcId");const Nn=new Set([".html",".htm",".xhtml",".svg"]);function On(t){const s=t.replace(/LSHandlerPreferredVersions\s*=\s*\{[^}]*\};/g,""),i=/\{[^{}]*LSHandlerURLScheme\s*=\s*"?https"?;[^{}]*\}/.exec(s)?.[0];if(i!==void 0)return/LSHandlerRoleAll\s*=\s*"?([\w.-]+)"?;/.exec(i)?.[1]}a(On,"macBundleForHttps");async function _n(t,s,i,l,m){if(i==="darwin"){let v;try{const{stdout:b}=await l("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure"],s);v=On(b)}catch{return!1}return v===void 0?!1:(await l("open",["-b",v,t],s),!0)}if(i==="linux"){const v=m.BROWSER;return v===void 0||v===""?!1:(await l(v,[t],s),!0)}return!1}a(_n,"openInBrowser");function Vn(t){return`'${t.replace(/'/g,"''")}'`}a(Vn,"powershellLiteral");function le(t){return t!==void 0&&t!==""}a(le,"present");function ot(t){const s=t.env??process.env;return le(s.WSL_DISTRO_NAME)||le(s.WSL_INTEROP)?!0:(t.osRelease??Ns()).toLowerCase().includes("microsoft")}a(ot,"isWsl");async function rt(t,s,i){await i("powershell.exe",["-NoProfile","-Command",`Invoke-Item -LiteralPath ${Vn(t)}`],s)}a(rt,"openWindowsPath");async function Bn(t,s,i){const l=await i("wslpath",["-w",t],s);s.throwIfAborted();const m=l.stdout.replace(/[\r\n]+$/,"");if(m==="")throw new Error("wslpath returned no Windows path");await rt(m,s,i)}a(Bn,"openWslPath");async function at(t,s,i,l={}){const m=l.platform??process.platform,v=l.run??Os,b=l.env??process.env,y=m==="linux"&&ot(l);if(!(!y&&i==="default"&&Nn.has(is(t).toLowerCase())&&await _n(t,s,m,v,b))){if(m==="darwin"){await v("open",i==="text-editor"?["-t",t]:[t],s);return}if(m==="win32"){await rt(t,s,v);return}if(m==="linux"){if(y){await Bn(t,s,v);return}await v("xdg-open",[t],s);return}throw new Error(`native path opener is unsupported on ${m}`)}}a(at,"openNativePathWithIntent");function Fn(t={}){const s=t.platform??process.platform;if(s==="darwin"||s==="win32")return!0;if(s!=="linux")return!1;const i=t.env??process.env;return ot(t)||le(i.DISPLAY)||le(i.WAYLAND_DISPLAY)}a(Fn,"canOpenNativePath");function zn(t,s,i={}){return at(t,s,"default",i)}a(zn,"openNativePath");function Qn(t,s,i={}){return at(t,s,"text-editor",i)}a(Qn,"openNativeTextFile");const Wn=50,it=100,ct=16,Hn=1024,dt=new Set(["user/message","assistant/message"]);function Zn(t){const s=Buffer.from(t,"base64");if(t.length===0||s.toString("base64")!==t)throw new ke("Image upload is not canonical base64.","INVALID_IMAGE_BASE64");return new Uint8Array(s)}a(Zn,"decodeBase64");async function Gn(t,s){if(s.every(y=>y.type==="text"))return s.map(y=>({type:"text",text:y.text}));const i=s.map(y=>y.type==="text"?y:{part:y,data:Zn(y.data)}),l=i.filter(y=>"data"in y),m=await t.attachments.saveImages(l.map(y=>({data:y.data,mediaType:y.part.mediaType,...y.part.name===void 0?{}:{name:y.part.name}}))),v=[];let b=0;for(const y of i){if(!("data"in y)){v.push({type:"text",text:y.text});continue}const k=m[b++];if(k===void 0)throw new Error("attachment batch result did not preserve input cardinality");v.push({type:"image",attachment:k})}return v}a(Gn,"durablePromptContent");function K(t,s){if(Array.isArray(t))for(const i of t){if(typeof i!="object"||i===null||Array.isArray(i))continue;const l=i;if(l.type==="image"&&typeof l.attachment=="object"&&l.attachment!==null){const m=l.attachment;if(s(m))return m}if(l.type==="tool-result"){const m=K(l.content,s);if(m!==void 0)return m}}}a(K,"imageBlockIn");function Jn(t,s){const i=t.data,l=K(i.content,s);if(l!==void 0)return l;if(i.message!==void 0){const m=K(i.message.content,s);if(m!==void 0)return m}if(i.inserted!==void 0)for(const m of i.inserted){const v=K(m.content,s);if(v!==void 0)return v}if(t.type==="assistant/chunk"&&i.chunk?.type==="block-end")return K([i.chunk.block],s)}a(Jn,"imageInEvent");function xn(t){return t.some(s=>Qe(s.content))}a(xn,"messagesHaveImage");function Yn(t,s){for(const i of t){const l=Jn(i,m=>String(m.attachmentId)===s);if(l!==void 0)return l}}a(Yn,"referencedImage");const lt=/^[A-Za-z][A-Za-z0-9_+.-]*(?:\/[A-Za-z0-9_+.-]+)+$/;function ut(t){if(!(t.length===0||t.trim()!==t||t!=="UTC"&&!lt.test(t)))try{const s=new Intl.DateTimeFormat("en-US",{timeZone:t}).resolvedOptions().timeZone;return s!=="UTC"&&!lt.test(s)?void 0:s}catch{return}}a(ut,"canonicalClientTimeZone");function V(t){return t.aborted}a(V,"isAborted");function Kn(t,s,i){const l=s===void 0?[...t]:t.filter(b=>b.seq<s);let m=0,v=0;for(let b=l.length-1;b>=0;b--){const y=l[b];if(!dt.has(y.type)||!ms(y))continue;m++;const k=y.sourceEventSeqs;let R=y.seq;if(k!==void 0)for(const A of k)A<R&&(R=A);if(m>=i){v=R;break}}return{events:l.filter(b=>b.seq>=v),hasMore:v>0}}a(Kn,"paginate");function j(t,s){return{rpcId:t.rpcId,result:{ok:!0,value:s}}}a(j,"ok");async function pt(t){const s=await Promise.all(t.llm.listProviders().map(async i=>{try{const l=await t.llm.listModels(i.id),m=await Promise.all(l.map(async v=>{const b=await t.llm.resolveModelInfo(i.id,v.id),y=b.reasoning===void 0?void 0:{efforts:b.reasoning.efforts.map(k=>({id:k.id,name:k.name,...k.description===void 0?{}:{description:k.description}})),...b.reasoning.defaultEffort===void 0?{}:{defaultEffort:b.reasoning.defaultEffort}};return{id:v.id,name:v.name,...v.description===void 0?{}:{description:v.description},...y===void 0?{}:{reasoning:y}}}));return{kind:"group",group:{id:i.id,name:i.name,models:m}}}catch(l){return{kind:"failure",failure:{id:i.id,name:i.name,message:l instanceof Error?l.message:String(l)}}}}));return{groups:s.flatMap(i=>i.kind==="group"?[i.group]:[]).filter(i=>i.models.length>0),failures:s.flatMap(i=>i.kind==="failure"?[i.failure]:[])}}a(pt,"buildModelCatalog");function g(t,s){return{rpcId:t.rpcId,result:{ok:!1,error:s}}}a(g,"err");function mt(t,s){if(s instanceof He)return g(t,{code:"agent-preset-not-found",message:s.message,details:{agentPreset:s.presetId,available:[...s.available]}});if(s instanceof Is)return g(t,{code:"agent-preset-invalid",message:s.message,details:{agentPreset:s.presetId,reason:s.reason}})}a(mt,"presetFailure");var gt=class{static{a(this,"FrameQueue")}buffer=[];waiter;done=!1;push(t){this.done||(this.buffer.push(t),this.waiter?.())}end(){this.done=!0,this.waiter?.()}async*iterate(t,s){const i=a(()=>{this.end()},"onAbort");t.addEventListener("abort",i,{once:!0});try{for(;;){for(;this.buffer.length>0;)yield this.buffer.shift();if(this.done||t.aborted)return;await new Promise(l=>{this.waiter=l}),this.waiter=void 0}}finally{t.removeEventListener("abort",i),s()}}};function L(t){return{rpcId:B(),payload:t}}a(L,"frame");function Xn(t,s){for(const[i,l]of s.entries())if(!gs(l))throw new Error(`forwarded host event "${t}" argument ${i} is not lossless JSON data`);return s}a(Xn,"assertJsonArgs");function ht(t,s){t.push(L({type:"session/subscribed",sessionId:s.id,lastSeq:s.seq-1}))}a(ht,"subscribeSession");function ue(t){return t.map(s=>({id:s.id,kind:s.kind,label:s.label,status:s.status,...s.detail===void 0?{}:{detail:s.detail},startedAt:s.startedAt,...s.finishedAt===void 0?{}:{finishedAt:s.finishedAt}}))}a(ue,"jobViews");function ft(t){return!t.events.some(s=>s.type==="turn/start")}a(ft,"sessionBlank");function vt(t,s){const i=t.blank&&s.type!=="turn/start",l=s.type==="user/message"&&s.data.source.kind==="user"?s.time:t.lastPromptAt;return i===t.blank&&l===t.lastPromptAt?t:{blank:i,lastPromptAt:l}}a(vt,"applySessionListMetadata");function bt(t){let s={blank:!0,lastPromptAt:null};for(const i of t)s=vt(s,i);return s}a(bt,"sessionListMetadata");function yt(t,s){return Math.max(t.createdAt,s?.lastPromptAt??0)}a(yt,"sessionListUpdatedAt");function Ae(t,s=[]){const i=Q({header:t,events:s});return{...t.parentSession===void 0?{}:{parentSessionId:t.parentSession},...t.origin===void 0?{}:{origin:t.origin},...t.cwd===void 0?{}:{cwd:t.cwd},...i===void 0?{}:{agentPreset:i}}}a(Ae,"sessionListFields");function qn(t,s){const i=bt(t.events);return{sessionId:t.id,updatedAt:yt(t.header,i),running:s,blank:i.blank,...Ae(t.header,t.events)}}a(qn,"summarize");async function eo(t,s,i,l,m){if(l===0)return;m?.throwIfAborted();const v=s.locate(i);if(v===void 0)return;m?.throwIfAborted();let b;try{b=(await rs(v.path)).size}catch{m?.throwIfAborted();return}if(!(b>l))try{const{events:y}=await s.readFrom(i.id,0,m);return m?.throwIfAborted(),bt(y)}catch(y){m?.throwIfAborted(),t.logger.warn(`session.list: blank probe for "${i.id}" failed (serving it as visible): ${String(y)}`);return}}a(eo,"probeColdSessionMetadata");async function to(t,s,i,l,m,v){const b=l?.blank===!1?void 0:await eo(t,s,i,m,v);return{sessionId:i.id,updatedAt:yt(i,b??l),running:!1,blank:l?.blank===!1?!1:b?.blank??!1,...Ae(i)}}a(to,"summarizeCold");function wt(t){return t instanceof Ms?{code:t.code,message:t.message,details:{path:t.path}}:{code:"internal",message:t instanceof Error?t.message:String(t),details:{}}}a(wt,"directoryError");function St(t){return{rpcId:t.rpcId,payload:{type:"approval/requested",sessionId:t.sessionId,approvalId:t.approvalId,toolName:t.toolName,...t.callId===void 0?{}:{callId:t.callId},...t.reason===void 0?{}:{reason:t.reason}}}}a(St,"requestedFrame");function so(t,s){if(t.sessionId!==s.sessionId)return!1;const i=t.answer.answers;return i.length!==s.questions.length?!1:i.every((l,m)=>{const v=s.questions[m];if(l.id!==v.id||new Set(l.selected).size!==l.selected.length)return!1;const b=l.custom?.trim();if(b!==void 0&&b===""||v.multiSelect!==!0&&(b!==void 0&&l.selected.length>0||l.selected.length>1))return!1;const y=new Set(v.options?.map(k=>k.label)??[]);return l.selected.every(k=>y.has(k))})}a(so,"matchesQuestions");function kt(t,s,i,l){try{if(s.type==="tool/call"){const{name:m,arguments:v}=s.data,b=t.tools.get(m,l)?.presentCall?.(JSON.parse(v));return b===void 0?void 0:{for:"call",view:b}}if(s.type==="tool/result"){const{message:m,meta:v}=s.data,[b]=m.content,y=m.source.callId,k=i(y);if(k===void 0)return;const R=t.tools.get(k.name,l)?.presentResult?.(k.args,{content:b.content,isError:b.isError===!0,...v===void 0?{}:{meta:v}});return R===void 0?void 0:{for:"result",view:R}}}catch(m){console.error(`api-proxy: presenter failed for ${s.type}, falling back to generic: ${String(m)}`)}}a(kt,"viewFor");function It(t,s){for(let i=t.length-1;i>=0;i--){const l=t[i];if(l.type!=="tool/call")continue;const m=l.data;if(m.callId===s)try{return{name:m.name,args:JSON.parse(m.arguments)}}catch{return}}}a(It,"backscanArgs");function jt(t,s,i,l,m){const v=Kn(s,i,l??Wn);return{events:v.events.map(b=>{const y=kt(t,b,k=>It(v.events,k),m);return{event:b,...y===void 0?{}:{view:y}}}),hasMore:v.hasMore}}a(jt,"historyPage");function Pt(t,s){const i=t.get("sessionProjections");if(i!==void 0)return i.snapshot(s)}a(Pt,"projectionsFor");function Et(t,s,i){try{const l=i!==void 0?t.get("sessionProjections")?.snapshot(i):t.get("sessionProjectionCache")?.cachedSnapshot(s);return l!==void 0&&Object.keys(l.values).length>0?l:void 0}catch(l){t.logger.warn(`session.list: projection column for "${s.id}" failed (serving the row without it): ${String(l)}`);return}}a(Et,"listProjectionsFor");function Rt(t,s){const i=t.get("sessionProjections");if(i!==void 0)return i.restore({},s,0).snapshot}a(Rt,"detachedProjectionsFor");function At(t,s,i){try{return i()}catch(l){t.logger.warn(`subagent.history: projections for "${s}" failed (serving the page without them): ${String(l)}`);return}}a(At,"subagentHistoryProjections");function no(t,s,i){const l=t.payload.childSessionId;if(i.aborted)return g(t,{code:"cancelled",message:"subagent prompt was cancelled",details:{}});if(s instanceof W)switch(s.code){case"NOT_RESUMABLE":return g(t,{code:"subagent-not-resumable",message:"subagent cannot be resumed",details:{childSessionId:l}});case"UNAUTHORIZED":return g(t,{code:"subagent-unauthorized",message:"subagent does not belong to this parent",details:{childSessionId:l}});case"DRAINING":case"ACTIVATION_CLOSING":case"CONTINUATION_UNAVAILABLE":case"PERSISTENCE_UNAVAILABLE":return g(t,{code:"subagent-delivery-unavailable",message:"subagent follow-up is temporarily unavailable",details:{childSessionId:l}})}return g(t,{code:"internal",message:"subagent prompt failed",details:{}})}a(no,"subagentPromptError");function Ut(){return{code:"internal",message:"subagent catalog is unavailable: this deployment does not mount the sessionProjections registry (load @deepseek-ai/dsh-session-projection)",details:{}}}a(Ut,"projectionsUnavailableError");async function Mt(t,s,i){const{parentSessionId:l,childSessionId:m,mode:v}=s;try{const b=(await t.subagents.listChildren(l,i)).find(y=>y.id===m);return b===void 0||b.kind==="child"&&b.mode!==v?{error:{code:"subagent-not-found",message:`session "${m}" is not a ${v} direct child of "${l}"`,details:{parentSessionId:l,childSessionId:m}}}:b.kind==="diagnostic"?{error:{code:"subagent-catalog-diagnostic",message:`subagent "${m}" is ${b.reason}`,details:{parentSessionId:l,childSessionId:m,reason:b.reason}}}:{entry:b}}catch(b){return i?.aborted||b instanceof W&&b.code==="CANCELLED"?{error:{code:"cancelled",message:"subagent catalog read was cancelled",details:{}}}:b instanceof W&&b.code==="SUBAGENT_CONTROL_PROJECTIONS_UNAVAILABLE"?{error:Ut()}:{error:{code:"internal",message:"subagent catalog read failed",details:{}}}}}a(Mt,"catalogChild");function pe(t){return{code:"agent-preset-not-found",message:"this deployment composes no agent presets",details:{agentPreset:t,available:[]}}}a(pe,"noRoster");function me(t,s){return s instanceof He?{code:"agent-preset-not-found",message:s.message,details:{agentPreset:s.presetId,available:[...s.available]}}:s instanceof We?{code:"agent-preset-read-only",message:s.message,details:{agentPreset:t,reason:s.message}}:s instanceof Ss||s instanceof ks?{code:"agent-preset-invalid",message:s.message,details:{agentPreset:t,reason:s.message}}:{code:"internal",message:`agent preset "${t}": ${String(s)}`,details:{}}}a(me,"presetError");var Ct=class extends Error{static{a(this,"AgentPresetConflict")}sessionId;requestedPreset;existingPreset;constructor(t,s,i){super(i===void 0?`session "${t}" records no agent preset, so it cannot be adopted under one; a deployment composing no roster records none on any session — `:`session "${t}" already runs agent preset ${JSON.stringify(i)}; requested ${JSON.stringify(s)}. A session's preset is fixed at creation.`),this.sessionId=t,this.requestedPreset=s,this.existingPreset=i}},Ue=class extends Error{static{a(this,"SessionCwdConflict")}sessionId;requestedCwd;existingCwd;constructor(t,s,i){super(`session "${t}" already exists with cwd ${JSON.stringify(i)}; requested ${JSON.stringify(s)}`),this.sessionId=t,this.requestedCwd=s,this.existingCwd=i}},Lt=class extends Error{static{a(this,"WorkspaceNameConflictError")}workspaceName;constructor(t){super(`workspace name '${t}' is already in use`),this.workspaceName=t,this.name="WorkspaceNameConflictError"}};function ge(t,s){return g(t,{code:"workspace-not-found",message:`workspace "${s}" not found`,details:{workspaceId:s}})}a(ge,"workspaceNotFound");function X(t){return{workspaceId:t.id,path:t.path,title:t.title,sessionIds:[...t.sessionIds],createdAt:t.createdAt,updatedAt:t.updatedAt}}a(X,"workspaceView");function oo(t,s){const i=ws.parse(s);return{workspaceId:t,path:i.path,title:i.title,sessionIds:[...i.sessionIds],createdAt:i.createdAt,updatedAt:i.updatedAt}}a(oo,"changedWorkspaceView");function Dt(t,s){const i=s.sessionExportCompressionLevel??6,l=s.coldBlankProbeMaxBytes??1024,m=a(()=>{const{provider:n,model:o}=s.defaultModelSelection();return{provider:n,model:o}},"agentOptions"),v=new WeakMap,b=new Map,y=new Map;let k=Promise.resolve();const R=new Map,A=new Map,C=new Set,U=new WeakMap;function D(n,o){const r=(U.get(n)??Promise.resolve()).then(o);return U.set(n,r.then(()=>{},()=>{})),r}a(D,"serializeImageAdmission");function M(n){const o=v.get(n);if(o!==void 0)return o;let r;const c={get current(){if(r!==void 0)return r;const d=n.session.requestHeader()?.config;return d===void 0?s.defaultModelSelection():{provider:d.provider,model:d.model,...d.reasoningEffort===void 0?{}:{reasoningEffort:d.reasoningEffort}}},set current(d){r=d},assembled:void 0};return cs(n.ctx,c),v.set(n,c),c}a(M,"selectionFor");function $(n){const o=n.agent;if(o===void 0)throw new Error("api-proxy: agent setup has no scoped agent");M(o)}a($,"installSelection");function se(n,o,r){if(!(o===void 0||o===r))throw new Ct(n,o,r)}a(se,"assertPresetUnchanged");async function ne(n){const o=t.get("agentPresets");if(o===void 0)return{setup:a(c=>($(c),Promise.resolve()),"setup")};const r=(await o.resolve(n)).id;return{agentPreset:r,setup:a(async c=>{$(c),await o.mount(c,r)},"setup")}}a(ne,"composeAgent");const F=a((n,o)=>$s(t,n,o),"hasSubagentOwner"),fe=a(n=>Ls(n),"subagentOwnershipError"),ve=a(n=>Ts(t,n),"inspectServable"),z=Ds(t,{agentOptions:m,setup:a(async({meta:n,events:o})=>(await ne(Q({header:n,events:o}))).setup,"setup")});function oe(n){const o=L(n);for(const r of C)r.push(o)}a(oe,"broadcast"),t.inject(["sessionProjections"],n=>{n.sessionProjections.onChanged((o,r,c,d)=>{oe({type:"session/projection",sessionId:o.id,key:r,value:c,seq:d})})}),t.inject(["sessionProjections"],n=>{n.sessionProjections.register({key:"sessionListMetadata",schema:hn,init:a(()=>({blank:!0,lastPromptAt:null}),"init"),apply:vt,view:a(o=>o,"view"),stateVersion:1})}),t.inject(["sessionProjections","attachments"],n=>{n.sessionProjections.register({key:"imageLimits",schema:fn,init:a(()=>null,"init"),apply:a(o=>o,"apply"),view:a(()=>n.attachments.imageLimits,"view"),stateVersion:1})});const De=a((n,o)=>{const r=a(c=>{const d=c==="next-turn"?n.inbox.nextTurn:n.inbox.nextStep;return o?.target===c?d.toSpliced(o.start,o.removedCount??0,...o.inserted):d},"project");return[...r("next-turn").map(c=>({id:c.id,placement:"queued",message:c})),...r("next-step").map(c=>({id:c.id,placement:c.source.kind==="user"?"steering":"context",message:c}))]},"queueItems");t.on("session/event",(n,o)=>{if(o.type!=="agent/inbox/spliced")return;const r=t.agents.get(n.id);r?.session===n&&oe({type:"session/queue",sessionId:n.id,items:De(r,o.data)})});function re(n,o){R.delete(n.rpcId),n.signal!==void 0&&n.onAbort!==void 0&&n.signal.removeEventListener("abort",n.onAbort),oe({type:"question/resolved",sessionId:n.sessionId,questionRpcId:n.rpcId,outcome:o})}a(re,"claimQuestion");const Zt=t.userQuestions.registerProvider({ask(n){const o=n.agent?.id;return o===void 0?Promise.reject(new ie("web user interaction requires an agent-owned session","ASK_MISSING_AGENT")):new Promise((r,c)=>{const d=B(),p={rpcId:d,sessionId:o,questions:n.questions,resolve:r,reject:c,...n.signal===void 0?{}:{signal:n.signal}},u=a(()=>{re(p,"cancelled"),c(new ie("ask_user_question was aborted before the user answered","ASK_ABORTED"))},"onAbort");p.onAbort=u,R.set(d,p),n.signal?.addEventListener("abort",u,{once:!0});const h={rpcId:d,payload:{type:"question/requested",sessionId:o,questions:n.questions}};for(const f of C)f.push(h)})}});t.effect(()=>()=>{Zt();for(const n of[...R.values()])re(n,"cancelled"),n.reject(new ie("web user-questions provider was disposed","ASK_ABORTED"))},"api-proxy: user-questions provider"),t.get("approval")!==void 0&&(t.effect(()=>()=>{for(const n of[...A.values()])n.resolve("cancelled")},"api-proxy: approval registry teardown"),t.on("approval/request",(n,o)=>{if(n.signal?.aborted===!0)return Promise.resolve("cancelled");const r=n.agent.session.events,c=new Set;for(const h of A.values())c.add(h.approvalId);const d=new Set;let p;for(let h=r.length-1;h>=0;h-=1){const f=r[h];if(f.type==="approval/decided")d.add(f.data.id);else if(f.type==="approval/asked"){if(d.has(f.data.id)||c.has(f.data.id)||(n.callId??null)!==(f.data.callId??null))continue;p=f.data.id;break}}if(p===void 0)return o();const u=p;return new Promise(h=>{const f=a(P=>{A.delete(E.rpcId)&&(n.signal?.removeEventListener("abort",w),oe({type:"approval/resolved",sessionId:E.sessionId,approvalId:u,outcome:P}),h(P))},"settle"),w=a(()=>{f("cancelled")},"onAbort"),E={rpcId:B(),sessionId:n.agent.session.id,approvalId:u,toolName:n.toolName,...n.callId===void 0?{}:{callId:n.callId},...n.reason===void 0?{}:{reason:n.reason},resolve:f};A.set(E.rpcId,E),n.signal?.addEventListener("abort",w,{once:!0});const S=St(E);for(const P of C)P.push(S)})}));async function $e(n){const o=t.sessions.get(n);if(o!==void 0)return{id:o.id,header:o.header,events:[...o.events]};const r=await ve(n);return{id:r.meta.id,header:r.meta,events:r.events}}a($e,"readSessionState");async function Gt(n){const o=t.workspaceRegistry.list(),r=o.find(d=>d.sessionIds.includes(n.id));if(r!==void 0||n.header.origin!=="subagent")return r;const c=await t.sessionQuery.traceSession(n.id);for(const d of c.ancestors){const p=o.find(u=>u.sessionIds.includes(d.header.id));if(p!==void 0)return p}}a(Gt,"forkWorkspace");async function Jt(n){const o=t.sessions.get(n);if(o!==void 0)return{kind:"attached",session:o};const r=await ve(n);return{kind:"detached",header:r.meta,events:r.events}}a(Jt,"historySourceFor");function xt(n){return n.kind==="detached"?{header:n.header,events:n.events}:{header:n.session.header,events:n.session.events}}a(xt,"sourceSession");function Yt(n,o){if(n.kind==="detached"){const d=o?Rt(t,n.events):void 0;return{events:n.events,...d===void 0?{}:{projections:d}}}const r=[...n.session.events],c=o?Pt(t,n.session):void 0;return{events:r,...c===void 0?{}:{projections:c}}}a(Yt,"historyCutOf");async function Te(n,o){const r=t.get("agents")?.get(n);if(r!==void 0)return r;const c=t.get("agentPresets");if(c!==void 0)try{return await c.standingKeyFor(Q(o))}catch{return}}a(Te,"presenterScopeFor");async function Kt(n,o,r,c){let d=y.get(n);d===void 0&&(d=(async()=>{const u=t.sessions.get(n),h=t.agents.get(n);if(u!==void 0&&F(u,h))throw new Z(n);if(h!==void 0)return h;const f=r?t.get("sessionPersistence"):void 0,w=f===void 0?void 0:(await f.list()).find(S=>S.id===n);if(f!==void 0&&w!==void 0){const S=await f.inspect(n);if(F({header:S.meta},void 0))throw new Z(n);if(S.meta.cwd!==o)throw new Ue(n,o,S.meta.cwd);const P=Q({header:S.meta,events:S.events});return se(n,c,P),(await t.agents.resume({resumeSessionId:n,agentOptions:m(),setup:(await ne(P)).setup})).agent}try{await os(o,{recursive:!0})}catch(S){throw new Error(`failed to ensure project directory "${o}": ${String(S)}`,{cause:S})}const E=await ne(c);return(await t.agents.create({sessionId:n,agentOptions:m(),meta:{cwd:o,...E.agentPreset===void 0?{}:{agentPreset:E.agentPreset}},setup:E.setup})).agent})().catch(u=>{const h=t.agents.get(n);if(h!==void 0){if(F(h.session,h))throw new Z(n);return h}const f=t.sessions.get(n);throw f!==void 0&&F(f,void 0)?new Z(n):u}).finally(()=>{y.delete(n)}),y.set(n,d));const p=await d;if(F(p.session,p))throw new Z(n);if(se(n,c,Q(p.session)),p.session.header.cwd!==o)throw new Ue(n,o,p.session.header.cwd);return p}a(Kt,"ensureSession");function Xt(n){const o=k.then(async()=>{const r=await t.workspaceRegistry.resolveByPath(n);return r!==void 0?{workspace:r,created:!1}:{workspace:await t.workspaceRegistry.create(n),created:!0}});return k=o.then(()=>{},()=>{}),o}a(Xt,"ensureWorkspace");async function Ne(n){n?.throwIfAborted();const o=a(p=>{const u=t.agents.get(p.id),h=Et(t,p.header,p);return{...qn(p,u?.status==="running"),...h===void 0?{}:{projections:h}}},"summarizeAttached"),r=t.sessions.list().map(o);n?.throwIfAborted();const c=new Set(r.map(p=>p.sessionId)),d=t.get("sessionPersistence");if(d!==void 0){const p=(await d.list(n)).filter(u=>!c.has(u.id)&&u.cwd!==void 0);n?.throwIfAborted();for(let u=0;u<p.length;u+=ct){n?.throwIfAborted();const h=p.slice(u,u+ct),f=await Promise.allSettled(h.map(async P=>{const N=Et(t,P,void 0),_=await to(t,d,P,N?.values.sessionListMetadata,l,n),x=t.sessions.get(P.id);return x!==void 0?o(x):{..._,...N===void 0?{}:{projections:N}}})),w=[];let E=!1,S;for(const P of f)P.status==="fulfilled"?w.push(P.value):E||(E=!0,S=P.reason);if(E)throw S;n?.throwIfAborted(),r.push(...w)}}return r.sort((p,u)=>u.updatedAt-p.updatedAt),r}a(Ne,"listVisibleSessionSummaries");function Oe(n){const o=t.get("agentPresets")?.serviceFor(n,"goals")??t.get("goals");return o===void 0?{error:{code:"internal",message:"goal service is absent: neither this session's agent preset nor the host composition mounts @deepseek-ai/dsh-goal",details:{}}}:o}a(Oe,"goalServiceFor");function _e(n,o){const r=o instanceof Es?{goalCode:o.code}:{};return g(n,{code:"internal",message:String(o),details:r})}a(_e,"goalError");async function J(n,o){const r=await z(n.payload.sessionId);if("error"in r)return g(n,r.error);const c=Oe(r.agent);if("error"in c)return g(n,c.error);try{const d=o(c,r.agent);return j(n,{ref:{id:d.id,revision:d.revision}})}catch(d){return _e(n,d)}}a(J,"mutateGoal");function Ve(n){const o=t.get("llm");return o===void 0||o.listProviders().some(r=>r.id===n)}a(Ve,"routeServed");async function qt(n,o){const r=await z(o);if("error"in r)return{refused:g(n,r.error)};const c=r.agent,d=M(c).current;return Ve(d.provider)?{agent:c}:{refused:g(n,{code:"model-unavailable",message:`no adapter serves provider "${d.provider}"; select a model for this session`,details:{provider:d.provider,model:d.model}})}}a(qt,"turnAgentFor");function be(){return{code:"internal",message:"settings service is absent: this deployment does not mount a settings provider (e.g. @deepseek-ai/dsh-settings-file) in its composition",details:{}}}a(be,"settingsAbsent");async function Be(n,o,r,c){try{return await c(o,r),j(n,{opened:!0})}catch(d){return r.aborted?g(n,{code:"cancelled",message:"path open was aborted",details:{}}):g(n,{code:"internal",message:`path open failed: ${d instanceof Error?d.message:String(d)}`,details:{}})}}a(Be,"openTarget");function Fe(n,o,r){return Be(n,o,r,s.openPath??((c,d)=>zn(c,d)))}a(Fe,"openPath");function es(n,o,r){return Be(n,o,r,s.openTextFile??((c,d)=>Qn(c,d)))}a(es,"openTextFile");function ye(){return s.canOpenPath!==void 0?s.canOpenPath():s.openPath!==void 0||Fn()}a(ye,"canOpenPaths");function we(){return{code:"internal",message:"credentials service is absent: this deployment does not mount a credential provider (e.g. @deepseek-ai/dsh-credentials-local) in its composition",details:{}}}a(we,"credentialsAbsent");function ze(n){return{ns:String(n.ns),schema:n.schema,value:n.value,...n.base===void 0?{}:{base:n.base},...n.user===void 0?{}:{user:n.user},applies:n.applies,secrets:(n.secrets??[]).map(o=>({path:[...o.path],set:o.set})),revision:n.revision}}a(ze,"namespaceView");async function Se(n,o,r,c,d){const p=t.get("settings");if(p===void 0)return g(n,be());const u=a(w=>w instanceof Rs?g(n,{code:"settings-conflict",message:w.message,details:{ns:o,expected:w.expected,actual:w.actual}}):g(n,{code:"settings-rejected",message:w instanceof Error?w.message:String(w),details:{ns:o}}),"rejected");let h;try{h=As(o)}catch(w){return u(w)}try{r==="update"?await p.update(h,c,d):r==="replace"?await p.replace(h,c,d):await p.mutate(h,c,d)}catch(w){return u(w)}const f=p.describe({redactSecrets:!0}).find(w=>w.ns===h);return f===void 0?g(n,{code:"internal",message:`settings namespace "${o}" was disposed after the ${r}`,details:{}}):j(n,ze(f))}return a(Se,"settingsWrite"),{sessions:{async list(n){return j(n,{items:await Ne()})},async search(n,o){const r=a(()=>g(n,{code:"cancelled",message:"session search was aborted",details:{}}),"cancelled");if(V(o))return r();const c=t.get("sessionQuery");if(c===void 0)return g(n,{code:"internal",message:"session search is unavailable: this deployment does not mount @deepseek-ai/dsh-session-query",details:{}});try{const d=await Ne(o);if(V(o))return r();if(d.length===0)return j(n,{items:[],hasMore:!1});const p=new Set(d.map(P=>P.sessionId)),u=[],h=new Set,f=new Set;let w,E=0,S=20;for(;u.length<=20;){if(V(o))return r();if(E>=it)throw new Error(`session search provider exceeded the ${it}-call work budget`);E++;const P=w,N=S;let _;try{_=await c.searchSessions({query:n.payload.query,eventFilters:[{kind:"type",values:["user/message","assistant/message"]},{kind:"surface",values:["current"]}],limit:N,...P===void 0?{}:{cursor:P}},{signal:o})}catch(T){if(V(o))return r();if(P===void 0&&T instanceof Ie&&T.code==="SESSION_QUERY_INVALID_LIMIT"&&N>1){S=Math.max(1,Math.floor(N/2));continue}if(P!==void 0&&T instanceof Ie&&T.code==="SESSION_QUERY_STALE_CURSOR"){u.length=0,h.clear(),f.clear(),w=void 0;continue}throw T}if(V(o))return r();const x=_.items.length;if(x>N)throw new Error(`session search provider returned ${x} items; maximum is ${N}`);for(const T of _.items){if(u.length>20||!p.has(T.header.id)||T.bestMatch.sessionId!==T.header.id||T.bestMatch.surface!=="current"||!dt.has(T.bestMatch.type)||h.has(T.header.id))continue;const ts=Je(T.bestMatch.snippet,240);h.add(T.header.id),u.push({sessionId:T.header.id,snippet:ts})}const Y=_.nextCursor;if(Y!==void 0){if(f.has(Y))throw new Error("session search provider repeated a continuation cursor");f.add(Y)}if(u.length>20||Y===void 0)break;w=Y}return j(n,{items:u.slice(0,20),hasMore:u.length>20})}catch(d){return V(o)||d instanceof Ie&&d.code==="SESSION_QUERY_ABORTED"?r():g(n,{code:"internal",message:`session search failed: ${String(d)}`,details:{}})}},async create(n){const o=n.payload.sessionId??`session-${B()}`;let r;if(n.payload.workspaceId!==void 0&&(r=t.workspaceRegistry.get(H(n.payload.workspaceId)),r===void 0))return g(n,{code:"workspace-not-found",message:`workspace "${n.payload.workspaceId}" not found`,details:{workspaceId:n.payload.workspaceId}});const c=r?.path??n.payload.cwd??s.cwd,d=n.payload.agentPreset;try{await Kt(o,c,n.payload.sessionId!==void 0,d)}catch(h){if(h instanceof Ct)return g(n,{code:"agent-preset-conflict",message:h.message,details:{sessionId:h.sessionId,requestedPreset:h.requestedPreset,...h.existingPreset===void 0?{}:{existingPreset:h.existingPreset}}});const f=mt(n,h);return f!==void 0?f:h instanceof Ue?g(n,{code:"session-conflict",message:h.message,details:{sessionId:h.sessionId,requestedCwd:h.requestedCwd,...h.existingCwd===void 0?{}:{existingCwd:h.existingCwd}}}):h instanceof Z?g(n,fe(h.sessionId)):g(n,{code:"internal",message:`failed to create session "${o}": ${String(h)}`,details:{}})}if(r!==void 0)try{await r.attachSession(o)}catch(h){return g(n,{code:"workspace-attach-failed",message:`session "${o}" was created but could not attach to workspace "${r.id}": ${String(h)}`,details:{sessionId:o,workspaceId:r.id}})}const p=t.agents.get(o),u=p===void 0?void 0:Q(p.session);return j(n,{sessionId:o,...u===void 0?{}:{agentPreset:u}})},async history(n){const{sessionId:o,beforeSeq:r,maxMessages:c}=n.payload;try{const d=await Jt(o),p=await Te(o,xt(d)),u=Yt(d,r===void 0),h=jt(t,u.events,r,c,p);return j(n,{events:h.events,hasMore:h.hasMore,...u.projections===void 0?{}:{projections:u.projections}})}catch(d){return d instanceof ce?g(n,{code:"session-not-found",message:d.message,details:{sessionId:o}}):g(n,{code:"internal",message:`history unavailable for session "${o}": ${String(d)}`,details:{}})}},async models(n){const{sessionId:o}=n.payload,r=await z(o);if("error"in r)return g(n,r.error);const c=M(r.agent).current,{groups:d,failures:p}=await pt(t),u=Ve(c.provider);return j(n,{current:{...c},routable:u,groups:d,failures:p})},async selectModel(n){const{sessionId:o,provider:r,model:c,reasoningEffort:d}=n.payload,p=await z(o);return"error"in p?g(n,p.error):D(p.agent,async()=>{try{const u=await t.llm.resolveCallConfig({provider:r,model:c,...d===void 0?{}:{reasoningEffort:ds(d)}});if([...p.agent.inbox.nextTurn,...p.agent.inbox.nextStep].some(f=>Qe(f.content))||xn(p.agent.session.deriveMessages())){const f=await t.llm.resolveModelInfo(u.provider,u.model);if(f.inputModalities!==void 0&&!f.inputModalities.includes("image"))return g(n,{code:"model-unavailable",message:`Model "${u.model}" does not accept image input, but this session already contains images; select an image-capable model.`,details:{provider:r,model:c}})}const h={provider:u.provider,model:u.model,...u.reasoningEffort===void 0?{}:{reasoningEffort:u.reasoningEffort}};M(p.agent).current=h;try{await s.saveDefaultModelSelection?.(h)}catch(f){t.logger.warn(`api-proxy: the model switch applies to this session but was not saved as the default: ${String(f)}`)}return j(n,{selected:{...h}})}catch(u){return g(n,{code:"model-unavailable",message:u instanceof Error?u.message:String(u),details:{provider:r,model:c}})}})},async rename(n){const{sessionId:o,title:r}=n.payload,c=await z(o);if("error"in c)return g(n,c.error);const d=t.get("sessionTitle");if(d===void 0)return g(n,{code:"internal",message:"renaming is unavailable: this deployment mounts no session-title service",details:{}});try{const p=d.rename(c.agent.session,r);return j(n,{title:p.title,seq:p.eventSeq})}catch(p){return p instanceof Us?g(n,{code:"title-invalid",message:p.message,details:{sessionId:o}}):g(n,{code:"internal",message:`failed to rename session "${o}": ${String(p)}`,details:{}})}},async fork(n){const{sessionId:o,atSeq:r}=n.payload;let c;try{c=await $e(o)}catch(S){return S instanceof ce?g(n,{code:"session-not-found",message:S.message,details:{sessionId:o}}):g(n,{code:"internal",message:`fork source unavailable for session "${o}": ${String(S)}`,details:{}})}const d=c.events,p=d.at(-1)?.seq??-1,u=(r===void 0?void 0:d.find(S=>S.type==="turn/end"&&S.seq>=r))??(r===void 0||r>p?d.findLast(S=>S.type==="turn/end"):void 0);if(u===void 0)return g(n,{code:"fork-unavailable",message:r!==void 0&&r<=p?`session "${o}" has not completed the turn containing event ${String(r)}`:`session "${o}" has no completed turn to fork from`,details:{sessionId:o}});let h=u.seq+1;for(;h<d.length&&d[h]?.type!=="turn/start";)h++;let f;try{f=await Gt(c)}catch(S){return g(n,{code:"internal",message:`failed to resolve fork workspace for session "${o}": ${String(S)}`,details:{}})}const w=`session-${B()}`,E=await ne(Q(c));try{await t.agents.create({sessionId:w,seed:d.slice(0,h),meta:{...c.header.cwd===void 0?{}:{cwd:c.header.cwd},parentSession:c.id,seedLength:h,...E.agentPreset===void 0?{}:{agentPreset:E.agentPreset}},agentOptions:m(),setup:E.setup})}catch(S){return g(n,{code:"internal",message:`failed to fork session "${o}": ${String(S)}`,details:{}})}if(f!==void 0)try{await f.attachSession(w)}catch(S){return g(n,{code:"workspace-attach-failed",message:`session "${w}" was forked but could not attach to workspace "${f.id}": ${String(S)}`,details:{sessionId:w,workspaceId:f.id}})}return j(n,{sessionId:w})},async prompt(n){const{sessionId:o,mode:r,content:c,clientTimeZone:d}=n.payload,p=d===void 0?void 0:ut(d);if(d!==void 0&&p===void 0)return g(n,{code:"invalid-time-zone",message:"clientTimeZone must be UTC or a valid IANA Area/Location name",details:{value:d}});const u=await qt(n,o);if("refused"in u)return u.refused;const h=u.agent,f={kind:"user",rpcId:n.rpcId,...p===void 0?{}:{clientTimeZone:p}},w=c.some(S=>S.type==="image"),E=a(async()=>{try{if(w){const N=M(h).current,_=await t.llm.resolveModelInfo(N.provider,N.model);if(_.inputModalities!==void 0&&!_.inputModalities.includes("image"))return g(n,{code:"attachment-error",message:`Model "${N.model}" does not support image input.`,details:{reason:"MODEL_DOES_NOT_SUPPORT_IMAGES"}})}const S=await Gn(t,c),P=ls({content:S,source:f});r==="steer"?h.steer(P):h.followup(P)}catch(S){return S instanceof ke?g(n,{code:"attachment-error",message:S.message,details:{reason:S.code}}):g(n,{code:"agent-busy",message:"prompt rejected",details:{reason:String(S)}})}return j(n,{accepted:!0})},"admit");return w?D(h,E):E()},async attachment(n){const{sessionId:o,attachmentId:r}=n.payload;let c;try{c=await $e(o)}catch(p){return p instanceof ce?g(n,{code:"session-not-found",message:p.message,details:{sessionId:o}}):g(n,{code:"internal",message:`attachment authorization unavailable for session "${o}": ${String(p)}`,details:{}})}const d=Yn(c.events,String(r));if(d===void 0)return g(n,{code:"attachment-error",message:"Image is not referenced by this session.",details:{reason:"ATTACHMENT_NOT_REFERENCED"}});try{const p=await t.attachments.readImage(d);return j(n,{attachment:p.ref,data:Buffer.from(p.data).toString("base64")})}catch(p){return p instanceof ke?g(n,{code:"attachment-error",message:p.message,details:{reason:p.code}}):g(n,{code:"internal",message:"Unable to read image attachment.",details:{}})}},updateQueue(n){const{sessionId:o,itemId:r,action:c}=n.payload;if(c.kind==="edit"&&c.content.some(h=>h.type!=="text"))return Promise.resolve(g(n,{code:"attachment-error",message:"queue edits accept text content only",details:{reason:"QUEUE_EDIT_NON_TEXT"}}));const d=t.agents.get(o);if(d!==void 0&&F(d.session,d))return Promise.resolve(g(n,fe(o)));if(d===void 0)return Promise.resolve(g(n,{code:"queue-item-not-found",message:"queued item is no longer pending",details:{itemId:r}}));const p=d.inbox.nextTurn.some(h=>h.id===r)?"next-turn":d.inbox.nextStep.some(h=>h.id===r)?"next-step":void 0,u=p===void 0?void 0:(p==="next-turn"?d.inbox.nextTurn:d.inbox.nextStep).find(h=>h.id===r);return p===void 0||u===void 0?Promise.resolve(g(n,{code:"queue-item-not-found",message:"queued item is no longer pending",details:{itemId:r}})):c.kind==="steer"&&(p!=="next-turn"||d.status!=="running")?Promise.resolve(g(n,{code:"steer-unavailable",message:"current turn no longer accepts steering",details:{itemId:r}})):(c.kind==="edit"?d.inbox.replace(r,ps({...u,content:c.content})):(d.inbox.remove(r),c.kind==="steer"&&d.steer(u)),Promise.resolve(j(n,{accepted:!0})))},cancel(n){const{sessionId:o}=n.payload,r=t.agents.get(o);return r===void 0?Promise.resolve(g(n,{code:"session-not-found",message:`session "${o}" not found (not attached)`,details:{sessionId:o}})):F(r.session,r)?Promise.resolve(g(n,fe(o))):(r.cancel({kind:"user"},{keepInbox:!0}),Promise.resolve(j(n,{accepted:!0})))}},subagents:{async list(n,o){try{return j(n,{entries:(await t.subagents.listChildren(n.payload.parentSessionId,o)).map(r=>r.kind==="child"?{...r,activity:t.agents.get(r.id)?.status==="running"?"running":"inactive"}:r),parentAvailable:t.agents.get(n.payload.parentSessionId)!==void 0})}catch(r){return o?.aborted||r instanceof W&&r.code==="CANCELLED"?g(n,{code:"cancelled",message:"subagent catalog read was cancelled",details:{}}):r instanceof W&&r.code==="SUBAGENT_CONTROL_PROJECTIONS_UNAVAILABLE"?g(n,Ut()):g(n,{code:"internal",message:"subagent catalog read failed",details:{}})}},async history(n,o){const{parentSessionId:r,childSessionId:c,mode:d,beforeSeq:p,maxMessages:u}=n.payload,h=await Mt(t,{parentSessionId:r,childSessionId:c,mode:d},o);if(h.error!==void 0)return g(n,h.error);let f,w,E;const S=t.sessions.get(c);if(S!==void 0)f=S.header,w=[...S.events],E=p===void 0?At(t,c,()=>Pt(t,S)):void 0;else try{const P=await ve(c);f=P.meta,w=P.events,E=p===void 0?At(t,c,()=>Rt(t,P.events)):void 0}catch(P){return o?.aborted?g(n,{code:"cancelled",message:"subagent history read was cancelled",details:{}}):P instanceof ce?g(n,{code:"subagent-not-found",message:"subagent disappeared during history read",details:{parentSessionId:r,childSessionId:c}}):g(n,{code:"internal",message:"subagent history read failed",details:{}})}return o?.aborted?g(n,{code:"cancelled",message:"subagent history read was cancelled",details:{}}):f.parentSession!==r?g(n,{code:"subagent-unauthorized",message:"subagent parent changed during history read",details:{childSessionId:c}}):j(n,{...jt(t,w,p,u),...E===void 0?{}:{projections:E}})},async prompt(n,o){const{parentSessionId:r,childSessionId:c,content:d,clientTimeZone:p}=n.payload,u=p===void 0?void 0:ut(p);if(p!==void 0&&u===void 0)return g(n,{code:"invalid-time-zone",message:"clientTimeZone must be UTC or a valid IANA Area/Location name",details:{value:p}});const h=t.agents.get(r);if(h===void 0)return g(n,{code:"subagent-parent-unavailable",message:`parent session "${r}" is not live`,details:{parentSessionId:r}});const f=await Mt(t,{parentSessionId:r,childSessionId:c,mode:"continuable"},o);if(f.error!==void 0)return g(n,f.error);try{return j(n,{messageId:await t.subagents.followup(h,c,d,{source:{kind:"user",rpcId:n.rpcId,...u===void 0?{}:{clientTimeZone:u}},signal:o})})}catch(w){return no(n,w,o)}},interrupt(n){const{parentSessionId:o,childSessionId:r}=n.payload;try{t.subagents.interrupt(r,{kind:"user",parentSessionId:o})}catch(c){return c instanceof W&&c.code==="UNAUTHORIZED"?Promise.resolve(g(n,{code:"subagent-unauthorized",message:"subagent does not belong to this parent",details:{childSessionId:r}})):Promise.resolve(g(n,{code:"internal",message:"subagent interrupt failed",details:{}}))}return Promise.resolve(j(n,{accepted:!0}))}},workspace:{list(n){return Promise.resolve(j(n,{items:t.workspaceRegistry.list().map(X),archivedSessionIds:[...t.workspaceRegistry.archivedSessionIds]}))},async create(n){const{path:o}=n.payload;try{const{workspace:r,created:c}=await Xt(o);return j(n,{workspace:X(r),created:c})}catch(r){return g(n,{code:"workspace-invalid-path",message:`cannot create a workspace at "${o}": ${r instanceof Error?r.message:String(r)}`,details:{path:o}})}},async rename(n){const{payload:o}=n,r=t.workspaceRegistry.get(H(o.workspaceId));if(r===void 0)return ge(n,o.workspaceId);const c=o.title.trim(),d=k.then(async()=>{if(c!==r.title){if(t.workspaceRegistry.list().some(p=>p.id!==r.id&&p.title===c))throw new Lt(c);await r.setTitle(c)}});k=d.then(()=>{},()=>{});try{await d}catch(p){if(p instanceof Lt)return g(n,{code:"workspace-name-conflict",message:p.message,details:{name:p.workspaceName}});throw p}return j(n,{workspace:X(r)})},async delete(n){const{workspaceId:o}=n.payload,r=k.then(()=>t.workspaceRegistry.delete(H(o)));return k=r.then(()=>{},()=>{}),await r?j(n,{deleted:!0}):ge(n,o)},async insertBefore(n){const{workspaceId:o,beforeWorkspaceId:r}=n.payload;try{return j(n,{workspaceIds:[...await t.workspaceRegistry.insertBefore(H(o),r===void 0?void 0:H(r))]})}catch(c){if(!(c instanceof vs))throw c;return ge(n,c.workspaceId)}},async insertSessionBefore(n){const{payload:o}=n,r=t.workspaceRegistry.get(H(o.workspaceId));if(r===void 0)return ge(n,o.workspaceId);try{await r.insertSessionBefore(o.sessionId,o.beforeSessionId)}catch(c){if(!(c instanceof fs))throw c;return g(n,{code:"workspace-move-invalid",message:c.message,details:{workspaceId:o.workspaceId,sessionId:o.sessionId,...o.beforeSessionId===void 0?{}:{beforeSessionId:o.beforeSessionId}}})}return j(n,{workspace:X(r)})},async archiveSession(n){const{sessionId:o}=n.payload;try{await t.workspaceRegistry.archiveSession(o)}catch(r){if(!(r instanceof bs))throw r;return g(n,{code:"session-not-found",message:r.message,details:{sessionId:o}})}return j(n,{archivedSessionIds:[...t.workspaceRegistry.archivedSessionIds]})}},host:{describe(n){const o=s.defaultModelSelection();return Promise.resolve(j(n,{version:"0.0.1",cwd:s.cwd,provider:o.provider,model:o.model,attachedSessions:t.agents.list().length,canOpenPath:ye()}))},async pickDirectory(n,o){const r=t.directoryPicker.capability();if(r.kind!=="native")return g(n,{code:"directory-picker-unavailable",message:`host.pickDirectory needs the native capability; the composed picker serves "${r.kind}"`,details:{capability:r.kind}});try{return j(n,{path:await r.pick(o)})}catch(c){return o.aborted?g(n,{code:"cancelled",message:"directory picker was aborted",details:{}}):g(n,{code:"internal",message:`directory picker failed: ${c instanceof Error?c.message:String(c)}`,details:{}})}},async listDirectory(n,o){const r=t.directoryPicker.capability();if(r.kind!=="browse")return g(n,{code:"directory-picker-unavailable",message:`host.listDirectory needs the browse capability; the composed picker serves "${r.kind}"`,details:{capability:r.kind}});try{return j(n,await r.list(n.payload.path,o))}catch(c){return o.aborted?g(n,{code:"cancelled",message:"directory listing was aborted",details:{}}):g(n,wt(c))}},async createDirectory(n){const o=t.directoryPicker.capability();if(o.kind!=="browse")return g(n,{code:"directory-picker-unavailable",message:`host.createDirectory needs the browse capability; the composed picker serves "${o.kind}"`,details:{capability:o.kind}});try{return j(n,{path:await o.createDirectory(n.payload.path,n.payload.name)})}catch(r){return g(n,wt(r))}},async openPath(n,o){return Fe(n,n.payload.path,o)}},goals:{async create(n){const{objective:o,maxGoalRounds:r}=n.payload;return J(n,(c,d)=>c.create(d,{objective:o,...r!==void 0?{maxGoalRounds:r}:{}}))},async edit(n){const{ref:o,objective:r,maxGoalRounds:c}=n.payload;return J(n,(d,p)=>d.edit(p,o,{...r!==void 0?{objective:r}:{},...c!==void 0?{maxGoalRounds:c}:{}}))},async pause(n){return J(n,(o,r)=>o.pause(r,n.payload.ref))},async resume(n){return J(n,(o,r)=>o.resume(r,n.payload.ref))},async complete(n){return J(n,(o,r)=>o.complete(r,n.payload.ref))},async clear(n){const o=await z(n.payload.sessionId);if("error"in o)return g(n,o.error);const r=Oe(o.agent);if("error"in r)return g(n,r.error);try{return r.clear(o.agent,n.payload.ref),j(n,{cleared:!0})}catch(c){return _e(n,c)}}},agentPresets:{async list(n){const o=t.get("agentPresets");if(o===void 0)return j(n,{presets:[],authorable:!1,hasDocument:!1});const r=o.defaultId;return j(n,{presets:(await o.list()).map(c=>({id:c.id,trust:c.trust,isDefault:c.id===r,...c.name===void 0?{}:{name:c.name},...c.description===void 0?{}:{description:c.description},...c.broken===void 0?{}:{broken:c.broken}})),authorable:o.authorable,hasDocument:ye()})},async select(n){const{sessionId:o,agentPreset:r}=n.payload,c=t.get("agentPresets");if(c===void 0)return g(n,{code:"agent-preset-not-found",message:"this deployment composes no agent presets",details:{agentPreset:r,available:[]}});const d=await z(o);if("error"in d)return g(n,d.error);const{agent:p}=d,u=a(async()=>{if(!ft(p.session))return g(n,{code:"agent-preset-locked",message:`session "${o}" has already started; its agent preset is fixed`,details:{sessionId:o,agentPreset:r}});try{const f=await c.recompose(p.ctx,r);return p.session.append("agent-preset/selected",{agentPreset:f.id}),j(n,{agentPreset:f.id})}catch(f){const w=mt(n,f);return w!==void 0?w:g(n,{code:"internal",message:`failed to select agent preset "${r}": ${String(f)}`,details:{}})}},"swap"),h=(b.get(o)??Promise.resolve()).then(u);b.set(o,h.catch(()=>{}));try{return await h}finally{b.get(o)===h&&b.delete(o)}},async read(n){const{agentPreset:o}=n.payload,r=t.get("agentPresets");if(r===void 0)return g(n,pe(o));try{const c=await r.resolve(o);return j(n,{agentPreset:c.id,trust:c.trust,content:await r.read(c.id),...c.name===void 0?{}:{name:c.name},...c.description===void 0?{}:{description:c.description}})}catch(c){return g(n,me(o,c))}},async copy(n){const{from:o,agentPreset:r,name:c}=n.payload,d=t.get("agentPresets");if(d===void 0)return g(n,pe(r));try{return await d.copy(o,r,c),j(n,{agentPreset:r})}catch(p){return g(n,me(r,p))}},async openDocument(n,o){const{agentPreset:r}=n.payload,c=t.get("agentPresets");if(c===void 0)return g(n,pe(r));try{const d=await c.resolve(r);if(d.trust!=="user")throw new We(d.id,"it ships with the deployment");const p=as(d.path);return ye()?await Fe(n,p,o):j(n,{opened:!1,path:p})}catch(d){return g(n,me(r,d))}},async remove(n){const{agentPreset:o}=n.payload,r=t.get("agentPresets");if(r===void 0)return g(n,pe(o));try{return await r.remove(o),j(n,{})}catch(c){return g(n,me(o,c))}}},skills:{async list(n){const{sessionId:o}=n.payload,r=t.sessions.get(o);if(r===void 0)return g(n,{code:"session-not-found",message:`session "${o}" not found (not attached)`,details:{sessionId:o}});if(r.header.cwd===void 0)return g(n,{code:"internal",message:`session "${o}" has no project cwd`,details:{}});const c=r.header.cwd,d=t.agents.get(o),p=t.get("agentPresets"),u=(d===void 0?void 0:p?.serviceFor(d,"skills"))??t.get("skills");if(u===void 0)return g(n,{code:"internal",message:"skill registry is absent: neither this session's agent preset nor the host composition mounts @deepseek-ai/dsh-skill",details:{}});const h=await Te(o,r);try{return j(n,{skills:(await u.list({cwd:c,scope:h})).filter(hs).map(f=>({name:f.name,description:f.description,...f.whenToUse===void 0?{}:{whenToUse:f.whenToUse},modelInvocable:f.invocation.modelInvocable}))})}catch(f){return g(n,{code:"internal",message:`skill listing failed: ${String(f)}`,details:{}})}}},settings:{describe(n){const o=t.get("settings");return o===void 0?Promise.resolve(g(n,be())):Promise.resolve(j(n,{writable:o.writable,hasDocument:o.documentPath!==void 0,namespaces:o.describe({redactSecrets:!0}).map(ze)}))},async openDocument(n,o){const r=t.get("settings");if(r===void 0)return g(n,be());if(V(o))return g(n,{code:"cancelled",message:"settings document open was aborted",details:{}});let c;try{c=await r.prepareDocument()}catch(d){return V(o)?g(n,{code:"cancelled",message:"settings document preparation was aborted",details:{}}):g(n,{code:"internal",message:`settings document preparation failed: ${d instanceof Error?d.message:String(d)}`,details:{}})}return c===void 0?g(n,{code:"internal",message:"settings provider has no local document to open",details:{}}):V(o)?g(n,{code:"cancelled",message:"settings document open was aborted",details:{}}):es(n,c,o)},update:a(n=>Se(n,n.payload.ns,"update",n.payload.patch,n.payload.expectedRevision),"update"),replace:a(n=>Se(n,n.payload.ns,"replace",n.payload.section,n.payload.expectedRevision),"replace"),mutate:a(n=>Se(n,n.payload.ns,"mutate",n.payload.ops,n.payload.expectedRevision),"mutate")},credentials:{async describe(n){const o=t.get("credentials");if(o===void 0)return g(n,we());const r=await Promise.all(n.payload.refs.map(async c=>{const d=await o.describe(je(c));return[c,{configured:d.configured,...d.source===void 0?{}:{source:d.source},writable:d.writable}]}));return j(n,{credentials:Object.fromEntries(r)})},async set(n){const o=t.get("credentials");if(o===void 0)return g(n,we());const{ref:r,value:c}=n.payload;try{await o.set(je(r),c)}catch(d){return g(n,{code:"credential-rejected",message:d instanceof Error?d.message:String(d),details:{ref:r}})}return j(n,{})},async unset(n){const o=t.get("credentials");if(o===void 0)return g(n,we());const{ref:r}=n.payload;try{await o.unset(je(r))}catch(c){return g(n,{code:"credential-rejected",message:c instanceof Error?c.message:String(c),details:{ref:r}})}return j(n,{})}},llm:{providers(n){const o=t.llm.listProviders(),r=new Set(o.map(u=>u.id)),c=t.llm.listConfigurableProviders(),d=new Set(c.map(u=>u.provider)),p=c.map(u=>({provider:u.provider,displayName:u.displayName,settingsNs:u.settingsNs,settingsPath:[...u.settingsPath],active:r.has(u.provider),...u.declared===void 0?{}:{declared:u.declared}}));for(const u of o)d.has(u.id)||p.push({provider:u.id,displayName:u.name,settingsNs:"",settingsPath:[],active:!0});return Promise.resolve(j(n,{providers:p}))},async models(n){return j(n,await pt(t))},async discoverModels(n,o){const{settingsNs:r,provider:c,baseURL:d,api:p,apiKey:u}=n.payload;try{return j(n,{models:await t.llm.discoverModels(r,{...c===void 0?{}:{provider:c},...d===void 0?{}:{baseURL:d},...p===void 0?{}:{api:p},...u===void 0?{}:{apiKey:u},...o===void 0?{}:{signal:o}})})}catch(h){return g(n,{code:"model-discovery-failed",message:h instanceof Error?h.message:String(h),details:{settingsNs:r,...d===void 0?{}:{baseURL:d}}})}}},events:{mux(n,o){const r=new gt;C.add(r);for(const u of t.sessions.list())ht(r,u);for(const u of R.values())r.push({rpcId:u.rpcId,payload:{type:"question/requested",sessionId:u.sessionId,questions:u.questions}});for(const u of A.values())r.push(St(u));for(const u of t.sessions.list()){const h=t.agents.get(u.id);h?.session===u&&h.inbox.hasPending&&r.push(L({type:"session/queue",sessionId:u.id,items:De(h)}))}const c=t.get("jobs");if(c!==void 0)for(const u of t.sessions.list()){const h=ue(c.list(t.agents.get(u.id)));h.length>0&&r.push(L({type:"session/jobs",sessionId:u.id,jobs:h}))}const d=new Map,p=[t.on("session/event",(u,h)=>{if(h.type==="tool/call"){const w=h.data;try{let E=d.get(u.id);E===void 0&&d.set(u.id,E=new Map),E.set(w.callId,{name:w.name,args:JSON.parse(w.arguments)})}catch{}}else h.type==="turn/end"&&d.delete(u.id);const f=kt(t,h,w=>d.get(u.id)?.get(w)??It(u.events,w),t.agents.get(u.id));r.push(L({type:"session/event",sessionId:u.id,event:h,...f===void 0?{}:{view:f}}))}),t.on("session/created",u=>{ht(r,u);const h=c===void 0?[]:ue(c.list(t.agents.get(u.id)));h.length>0&&r.push(L({type:"session/jobs",sessionId:u.id,jobs:h}))}),t.on("session/disposed",u=>{d.delete(u.id)}),...c===void 0?[]:[c.onJobsChanged(u=>{if(u!==void 0){r.push(L({type:"session/jobs",sessionId:u.id,jobs:ue(c.list(u))}));return}for(const h of t.sessions.list())r.push(L({type:"session/jobs",sessionId:h.id,jobs:ue(c.list(t.agents.get(h.id)))}))})]];return r.iterate(o,()=>{C.delete(r);for(const u of p)u()})},host(n,o){const r=new gt,c=t.workspaceRegistry.list(),d=new Set(c.map(f=>String(f.id)));let p=c.map(f=>f.id),u=t.workspaceRegistry.archivedSessionIds;const h=[t.on("session/created",f=>{r.push(L({type:"host/session-added",sessionId:f.id,blank:ft(f),...Ae(f.header,f.events)}))}),t.on("session/disposed",f=>{r.push(L({type:"host/session-removed",sessionId:f.id}))}),t.on("agent/status",({agent:f,status:w})=>{r.push(L({type:"host/session-status",sessionId:f.id,running:w==="running"}))}),t.on("agent/error",({agent:f,error:w})=>{r.push(L({type:"host/agent-error",sessionId:f.id,message:us(w)}))}),t.on("domain/changed",f=>{if(f.domain==="workspace"){if(f.table===""){if(f.operation!=="put")return;const w=ys.parse(f.value),E=w.workspaceIds.length===p.length&&w.workspaceIds.every(S=>d.has(String(S)))&&w.workspaceIds.some((S,P)=>S!==p[P]);for(const S of w.workspaceIds){if(d.has(S))continue;const P=t.workspaceRegistry.get(S);if(P===void 0)throw new Error(`committed workspace registry references missing workspace "${S}"`);d.add(S),r.push(L({type:"host/workspace-changed",workspace:X(P)}))}p=[...w.workspaceIds],E&&r.push(L({type:"host/workspace-order-changed",workspaceIds:[...w.workspaceIds]})),(w.archivedSessionIds.length!==u.length||w.archivedSessionIds.some((S,P)=>S!==u[P]))&&(u=w.archivedSessionIds,r.push(L({type:"host/archived-sessions-changed",archivedSessionIds:[...w.archivedSessionIds]})));return}if(f.table==="workspaces"){if(f.operation==="deleted"){if(!d.delete(f.key))return;r.push(L({type:"host/workspace-removed",workspaceId:f.key}));return}d.has(f.key)&&r.push(L({type:"host/workspace-changed",workspace:oo(f.key,f.value)}))}}}),...Cs.map(f=>t.on(f,((...w)=>{r.push(L({type:"host/remote-event",event:f,args:Xn(f,w)}))})))];return r.iterate(o,()=>{for(const f of h)f()})}},downloads:{async sessionLog(n,o){const r=_s(t);if(r.sessionQuery===void 0||r.sessionPersistence===void 0||r.attachments===void 0)return new Response("session log export is unavailable: missing session-query, session-persistence, or attachments service",{status:500});if(!r.sessionPersistence.supportsRawArtifacts)return new Response("session log export is unavailable: the persistence backend does not expose per-session raw artifacts",{status:501});const c={sessionQuery:r.sessionQuery,sessionPersistence:r.sessionPersistence,attachments:r.attachments,sessions:r.sessions};let d;try{await Ze(r,n.sessionId,o),d=await r.sessionPersistence.readRaw(n.sessionId,o),o.throwIfAborted()}catch{return o.throwIfAborted(),new Response("session log export failed to prepare the stored artifact",{status:500})}return d===void 0?new Response("session not found",{status:404}):new Response(Ks(c,d,n.sessionId,n.includeDescendants===!0,i,o),{headers:{"content-type":"application/zip","content-disposition":`attachment; filename="${Qs(n.sessionId)}"`}})}},respond(n){const o=A.get(n.rpcId);if(o!==void 0){if(!n.result.ok)return Promise.resolve({accepted:!1,reason:"bad-response"});const p=Ln.safeParse(n.result.value);return!p.success||p.data.approvalId!==o.approvalId||p.data.sessionId!==o.sessionId?Promise.resolve({accepted:!1,reason:"bad-response"}):(o.resolve(p.data.outcome),Promise.resolve({accepted:!0}))}const r=R.get(n.rpcId);if(r===void 0)return Promise.resolve({accepted:!1,reason:"not-pending"});if(!n.result.ok)return n.result.error.code!=="cancelled"?Promise.resolve({accepted:!1,reason:"bad-response"}):(re(r,"cancelled"),r.reject(new ie("the user cancelled ask_user_question","ASK_CANCELLED")),Promise.resolve({accepted:!0}));const c=$n.safeParse(n.result.value);if(!c.success)return Promise.resolve({accepted:!1,reason:"bad-response"});const d={sessionId:c.data.sessionId,answer:{answers:c.data.answer.answers.map(p=>({id:p.id,selected:p.selected,...p.custom===void 0?{}:{custom:p.custom}}))}};return so(d,r)?(re(r,"answered"),r.resolve(d.answer),Promise.resolve({accepted:!0})):Promise.resolve({accepted:!1,reason:"bad-response"})}}}a(Dt,"createApiProxy");const ro=e.object({sessionId:I,includeDescendants:e.union([e.literal("true"),e.literal("false")]).optional()}).transform(t=>({sessionId:t.sessionId,...t.includeDescendants==="true"?{includeDescendants:!0}:{}})),q=e.string(),Me=e.discriminatedUnion("code",[e.object({code:e.literal("bad-request"),message:e.string(),details:e.object({issues:e.array(e.custom())})}),e.object({code:e.literal("cancelled"),message:e.string(),details:e.object({})}),e.object({code:e.literal("session-not-found"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("model-unavailable"),message:e.string(),details:e.object({provider:e.string(),model:e.string()})}),e.object({code:e.literal("session-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedCwd:e.string(),existingCwd:e.string().optional()})}),e.object({code:e.literal("invalid-time-zone"),message:e.string(),details:e.object({value:e.string()})}),e.object({code:e.literal("workspace-attach-failed"),message:e.string(),details:e.object({sessionId:e.string(),workspaceId:e.string()})}),e.object({code:e.literal("workspace-not-found"),message:e.string(),details:e.object({workspaceId:e.string()})}),e.object({code:e.literal("workspace-invalid-path"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("workspace-name-conflict"),message:e.string(),details:e.object({name:e.string()})}),e.object({code:e.literal("workspace-move-invalid"),message:e.string(),details:e.object({workspaceId:e.string(),sessionId:e.string(),beforeSessionId:e.string().optional()})}),e.object({code:e.literal("directory-unreadable"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-exists"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-create-failed"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-picker-unavailable"),message:e.string(),details:e.object({capability:e.string()})}),e.object({code:e.literal("agent-preset-read-only"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-preset-locked"),message:e.string(),details:e.object({sessionId:e.string(),agentPreset:e.string()})}),e.object({code:e.literal("agent-preset-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedPreset:e.string(),existingPreset:e.string().optional()})}),e.object({code:e.literal("agent-preset-not-found"),message:e.string(),details:e.object({agentPreset:e.string(),available:e.array(e.string())})}),e.object({code:e.literal("agent-preset-invalid"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-busy"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("attachment-error"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("queue-item-not-found"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("steer-unavailable"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("command-error"),message:e.string(),details:e.object({})}),e.object({code:e.literal("unknown-command"),message:e.string(),details:e.object({})}),e.object({code:e.literal("settings-rejected"),message:e.string(),details:e.object({ns:e.string()})}),e.object({code:e.literal("settings-conflict"),message:e.string(),details:e.object({ns:e.string(),expected:e.number(),actual:e.number()})}),e.object({code:e.literal("credential-rejected"),message:e.string(),details:e.object({ref:e.string()})}),e.object({code:e.literal("model-discovery-failed"),message:e.string(),details:e.object({settingsNs:e.string(),baseURL:e.string().optional()})}),e.object({code:e.literal("title-invalid"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("fork-unavailable"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("subagent-parent-unavailable"),message:e.string(),details:e.object({parentSessionId:e.string()})}),e.object({code:e.literal("subagent-not-found"),message:e.string(),details:e.object({parentSessionId:e.string(),childSessionId:e.string()})}),e.object({code:e.literal("subagent-catalog-diagnostic"),message:e.string(),details:e.object({parentSessionId:e.string(),childSessionId:e.string(),reason:e.union([e.literal("corrupt"),e.literal("unsupported"),e.literal("unavailable")])})}),e.object({code:e.literal("subagent-not-resumable"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("subagent-unauthorized"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("subagent-delivery-unavailable"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("internal"),message:e.string(),details:e.object({})})]);function $t(t){return e.union([e.object({ok:e.literal(!0),value:t}),e.object({ok:e.literal(!1),error:Me})])}a($t,"rpcResultSchema");const Tt=e.object({type:e.literal("client-request"),rpcId:q,method:e.string(),payload:e.unknown()}),Nt=e.object({type:e.literal("server-response"),rpcId:q,result:$t(e.unknown().optional())}),Ot=e.object({type:e.literal("server-request"),rpcId:q,method:e.string(),payload:e.unknown()}),_t=e.object({type:e.literal("client-response"),rpcId:q,result:$t(e.unknown().optional())});e.discriminatedUnion("type",[Tt,Nt,Ot,_t]);const ao=e.union([e.object({accepted:e.literal(!0)}),e.object({accepted:e.literal(!1),reason:e.union([e.literal("not-pending"),e.literal("bad-response")])})]),io=e.object({}),co=e.object({version:e.string(),cwd:e.string(),provider:e.string().optional(),model:e.string().optional(),attachedSessions:e.number().int().nonnegative(),canOpenPath:e.boolean()}),lo=e.object({}),uo=e.object({path:e.string().nullable()}),Vt=e.object({name:e.string(),path:e.string(),hidden:e.boolean()}),po=e.object({path:e.string().optional()}),mo=e.object({path:e.string(),home:e.string(),crumbs:e.array(Vt),entries:e.array(Vt),truncated:e.boolean()}),go=e.object({path:e.string(),name:e.string()}).refine(t=>t.name.trim()!==""&&t.name!=="."&&t.name!==".."&&!/[/\\]/.test(t.name),{message:"host.createDirectory requires a single non-blank path segment name"}),ho=e.object({path:e.string()}),fo=e.object({path:e.string().min(1)}),vo=e.object({opened:e.literal(!0)}),ee=e.object({workspaceId:O,path:e.string(),title:e.string(),sessionIds:e.array(I),createdAt:e.string(),updatedAt:e.string()}),bo=e.object({}),yo=e.object({items:e.array(ee),archivedSessionIds:e.array(I)}),wo=e.object({path:e.string()}),So=e.object({workspace:ee,created:e.boolean()}),ko=e.object({workspaceId:O,title:e.string()}).refine(t=>t.title.trim()!=="",{message:"workspace.rename requires a non-blank title"}),Io=e.object({workspace:ee}),jo=e.object({workspaceId:O}),Po=e.object({deleted:e.literal(!0)}),Eo=e.object({workspaceId:O,beforeWorkspaceId:O.optional()}),Ro=e.object({workspaceIds:e.array(O)}),Ao=e.object({workspaceId:O,sessionId:I,beforeSessionId:I.optional()}),Uo=e.object({workspace:ee}),Mo=e.object({sessionId:I}),Co=e.object({archivedSessionIds:e.array(I)}),Lo=e.object({name:e.string().min(1),description:e.string(),whenToUse:e.string().optional(),modelInvocable:e.boolean()}),Do=e.object({sessionId:I}),$o=e.object({skills:e.array(Lo)}),To=e.object({id:e.string().min(1),trust:e.union([e.literal("system"),e.literal("user")]),isDefault:e.boolean(),name:e.string().optional(),description:e.string().optional(),broken:e.string().min(1).optional()}),No=e.object({}),Oo=e.object({presets:e.array(To),authorable:e.boolean(),hasDocument:e.boolean()}),_o=e.object({sessionId:I,agentPreset:e.string().min(1)}),Vo=e.object({agentPreset:e.string()}),Bo=e.object({agentPreset:e.string().min(1)}),Fo=e.object({agentPreset:e.string(),trust:e.union([e.literal("system"),e.literal("user")]),content:e.string(),name:e.string().optional(),description:e.string().optional()}),zo=e.object({from:e.string().min(1),agentPreset:e.string().min(1),name:e.string().optional()}),Qo=e.object({agentPreset:e.string()}),Wo=e.object({agentPreset:e.string().min(1)}),Ho=e.union([e.object({opened:e.literal(!0)}),e.object({opened:e.literal(!1),path:e.string()})]),Zo=e.object({agentPreset:e.string().min(1)}),Go=e.object({}),G=e.object({id:e.string(),revision:e.number().int().positive()}),te=e.object({ref:G}),Jo=e.object({sessionId:e.string(),objective:e.string().min(1),maxGoalRounds:e.number().int().positive().optional()}),xo=te,Yo=e.object({sessionId:e.string(),ref:G,objective:e.string().min(1).optional(),maxGoalRounds:e.number().int().positive().optional()}).refine(t=>t.objective!==void 0||t.maxGoalRounds!==void 0,{message:"goal.edit requires objective or maxGoalRounds"}),Ko=te,Xo=e.object({sessionId:e.string(),ref:G}),qo=te,er=e.object({sessionId:e.string(),ref:G}),tr=te,sr=e.object({sessionId:e.string(),ref:G}),nr=te,or=e.object({sessionId:e.string(),ref:G}),rr=e.object({cleared:e.literal(!0)}),ar=e.object({path:e.array(e.string()),set:e.boolean()}),he=e.object({ns:e.string().min(1),schema:e.unknown(),value:e.unknown(),base:e.unknown().optional(),user:e.unknown().optional(),applies:e.union([e.literal("live"),e.literal("restart")]),secrets:e.array(ar),revision:e.number()}),ir=e.object({}),cr=e.object({writable:e.boolean(),hasDocument:e.boolean(),namespaces:e.array(he)}),dr=e.object({}),lr=e.object({opened:e.literal(!0)}),ur=e.object({ns:e.string().min(1),patch:e.record(e.string(),e.unknown()),expectedRevision:e.number().optional()}),pr=he,mr=e.object({ns:e.string().min(1),section:e.record(e.string(),e.unknown()),expectedRevision:e.number().optional()}),gr=e.discriminatedUnion("op",[e.object({op:e.literal("set"),path:e.array(e.string()),value:e.unknown()}),e.object({op:e.literal("unset"),path:e.array(e.string())})]),hr=e.object({ns:e.string().min(1),ops:e.array(gr),expectedRevision:e.number().optional()}),fr=he,vr=he,Ce=e.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/),br=e.object({configured:e.boolean(),source:e.string().optional(),writable:e.boolean()}),yr=e.object({refs:e.array(Ce).max(64)}),wr=e.object({credentials:e.record(e.string(),br)}),Sr=e.object({ref:Ce,value:e.string().min(1)}),kr=e.object({}),Ir=e.object({ref:Ce}),jr=e.object({}),Pr=e.object({provider:e.string().min(1),displayName:e.string().min(1),settingsNs:e.string(),settingsPath:e.array(e.string()),active:e.boolean(),declared:e.boolean().optional()}),Er=e.object({}),Rr=e.object({providers:e.array(Pr)}),Ar=e.object({}),Ur=e.object({groups:e.array(Xe),failures:e.array(qe)}),Mr=e.object({id:e.string().min(1),name:e.string().min(1).optional(),contextWindow:e.number().int().positive().optional(),maxTokens:e.number().int().positive().optional()}),Cr=e.object({settingsNs:e.string().min(1),provider:e.string().min(1).optional(),baseURL:e.string().min(1).optional(),api:e.string().min(1).optional(),apiKey:e.string().min(1).optional()}),Lr=e.object({models:e.array(Mr)}),Dr=e.union([e.object({kind:e.literal("child"),id:I,mode:e.literal("one-shot"),activity:e.union([e.literal("running"),e.literal("inactive")]),hasChildren:e.boolean(),label:e.string().optional()}),e.object({kind:e.literal("child"),id:I,mode:e.literal("continuable"),activity:e.union([e.literal("running"),e.literal("inactive")]),hasChildren:e.boolean(),label:e.string()}),e.object({kind:e.literal("diagnostic"),id:I,reason:e.union([e.literal("corrupt"),e.literal("unsupported"),e.literal("unavailable")])})]),$r=e.object({parentSessionId:I}),Tr=e.object({entries:e.array(Dr),parentAvailable:e.boolean()}),Nr=e.object({parentSessionId:I,childSessionId:I,mode:e.union([e.literal("one-shot"),e.literal("continuable")]),beforeSeq:e.number().int().nonnegative().optional(),maxMessages:e.number().int().positive().optional()}),Or=e.object({events:e.array(tt),hasMore:e.boolean(),projections:Pe.optional()}),_r=e.object({parentSessionId:I,childSessionId:I,mode:e.literal("continuable"),content:e.array(Ee),clientTimeZone:e.string().optional()}),Vr=e.object({parentSessionId:I,childSessionId:I,mode:e.literal("continuable")}),Br=e.object({accepted:e.literal(!0)}),Fr=e.string(),zr=e.object({messageId:Fr}),Bt={"session.list":{schema:qs,invoke:a((t,s)=>t.sessions.list(s),"invoke")},"session.search":{schema:tn,invoke:a((t,s,i)=>t.sessions.search(s,i),"invoke")},"session.create":{schema:on,invoke:a((t,s)=>t.sessions.create(s),"invoke")},"session.history":{schema:un,invoke:a((t,s)=>t.sessions.history(s),"invoke")},"session.models":{schema:bn,invoke:a((t,s)=>t.sessions.models(s),"invoke")},"session.selectModel":{schema:wn,invoke:a((t,s)=>t.sessions.selectModel(s),"invoke")},"session.rename":{schema:an,invoke:a((t,s)=>t.sessions.rename(s),"invoke")},"session.fork":{schema:dn,invoke:a((t,s)=>t.sessions.fork(s),"invoke")},"session.prompt":{schema:In,invoke:a((t,s)=>t.sessions.prompt(s),"invoke")},"session.attachment":{schema:En,invoke:a((t,s)=>t.sessions.attachment(s),"invoke")},"session.updateQueue":{schema:An,invoke:a((t,s)=>t.sessions.updateQueue(s),"invoke")},"session.cancel":{schema:Mn,invoke:a((t,s)=>t.sessions.cancel(s),"invoke")},"subagent.list":{schema:$r,invoke:a((t,s,i)=>t.subagents.list(s,i),"invoke")},"subagent.history":{schema:Nr,invoke:a((t,s,i)=>t.subagents.history(s,i),"invoke")},"subagent.prompt":{schema:_r,invoke:a((t,s,i)=>t.subagents.prompt(s,i),"invoke")},"subagent.interrupt":{schema:Vr,invoke:a((t,s)=>t.subagents.interrupt(s),"invoke")},"host.describe":{schema:io,invoke:a((t,s)=>t.host.describe(s),"invoke")},"host.pickDirectory":{schema:lo,invoke:a((t,s,i)=>t.host.pickDirectory(s,i),"invoke")},"host.listDirectory":{schema:po,invoke:a((t,s,i)=>t.host.listDirectory(s,i),"invoke")},"host.createDirectory":{schema:go,invoke:a((t,s)=>t.host.createDirectory(s),"invoke")},"host.openPath":{schema:fo,invoke:a((t,s,i)=>t.host.openPath(s,i),"invoke")},"workspace.list":{schema:bo,invoke:a((t,s)=>t.workspace.list(s),"invoke")},"workspace.create":{schema:wo,invoke:a((t,s)=>t.workspace.create(s),"invoke")},"workspace.rename":{schema:ko,invoke:a((t,s)=>t.workspace.rename(s),"invoke")},"workspace.delete":{schema:jo,invoke:a((t,s)=>t.workspace.delete(s),"invoke")},"workspace.insertBefore":{schema:Eo,invoke:a((t,s)=>t.workspace.insertBefore(s),"invoke")},"workspace.insertSessionBefore":{schema:Ao,invoke:a((t,s)=>t.workspace.insertSessionBefore(s),"invoke")},"workspace.archiveSession":{schema:Mo,invoke:a((t,s)=>t.workspace.archiveSession(s),"invoke")},"skill.list":{schema:Do,invoke:a((t,s)=>t.skills.list(s),"invoke")},"agentPreset.list":{schema:No,invoke:a((t,s)=>t.agentPresets.list(s),"invoke")},"agentPreset.select":{schema:_o,invoke:a((t,s)=>t.agentPresets.select(s),"invoke")},"agentPreset.read":{schema:Bo,invoke:a((t,s)=>t.agentPresets.read(s),"invoke")},"agentPreset.copy":{schema:zo,invoke:a((t,s)=>t.agentPresets.copy(s),"invoke")},"agentPreset.openDocument":{schema:Wo,invoke:a((t,s,i)=>t.agentPresets.openDocument(s,i),"invoke")},"agentPreset.remove":{schema:Zo,invoke:a((t,s)=>t.agentPresets.remove(s),"invoke")},"goal.create":{schema:Jo,invoke:a((t,s)=>t.goals.create(s),"invoke")},"goal.edit":{schema:Yo,invoke:a((t,s)=>t.goals.edit(s),"invoke")},"goal.pause":{schema:Xo,invoke:a((t,s)=>t.goals.pause(s),"invoke")},"goal.resume":{schema:er,invoke:a((t,s)=>t.goals.resume(s),"invoke")},"goal.complete":{schema:sr,invoke:a((t,s)=>t.goals.complete(s),"invoke")},"goal.clear":{schema:or,invoke:a((t,s)=>t.goals.clear(s),"invoke")},"settings.describe":{schema:ir,invoke:a((t,s)=>t.settings.describe(s),"invoke")},"settings.openDocument":{schema:dr,invoke:a((t,s,i)=>t.settings.openDocument(s,i),"invoke")},"settings.update":{schema:ur,invoke:a((t,s)=>t.settings.update(s),"invoke")},"settings.replace":{schema:mr,invoke:a((t,s)=>t.settings.replace(s),"invoke")},"settings.mutate":{schema:hr,invoke:a((t,s)=>t.settings.mutate(s),"invoke")},"credentials.describe":{schema:yr,invoke:a((t,s)=>t.credentials.describe(s),"invoke")},"credentials.set":{schema:Sr,invoke:a((t,s)=>t.credentials.set(s),"invoke")},"credentials.unset":{schema:Ir,invoke:a((t,s)=>t.credentials.unset(s),"invoke")},"llm.providers":{schema:Er,invoke:a((t,s)=>t.llm.providers(s),"invoke")},"llm.models":{schema:Ar,invoke:a((t,s)=>t.llm.models(s),"invoke")},"llm.discoverModels":{schema:Cr,invoke:a((t,s,i)=>t.llm.discoverModels(s,i),"invoke")}};function Qr(t){return Object.hasOwn(Bt,t)?t:void 0}a(Qr,"methodFor");const Wr="invalid-request";function Le(t,s){const i={type:"server-response",rpcId:t,result:{ok:!1,error:s}};return Response.json(i)}a(Le,"errorResponse");function Hr(t){const s={type:"server-response",rpcId:t.rpcId,result:t.result};return Response.json(s)}a(Hr,"fullResponse");async function Zr(t,s,i,l){const m=Bt[s],v=m.schema.safeParse(i.payload);if(!v.success)return Le(i.rpcId,{code:"bad-request",message:`invalid payload for ${s}`,details:{issues:v.error.issues}});try{return Hr(await m.invoke(t,{rpcId:i.rpcId,payload:v.data},l))}catch(b){return new Response(`handler failure: ${String(b)}`,{status:500})}}a(Zr,"handleUnary");function Ft(t){return{type:"server-request",rpcId:t.rpcId,method:t.payload.type,payload:t.payload}}a(Ft,"fullFrame");function zt(t){const s=new TextEncoder,i=new ReadableStream({async start(l){try{l.enqueue(s.encode(`: connected
|
|
3
3
|
|
|
4
|
-
`));for await(const m of t)l.enqueue(s.encode(`data: ${JSON.stringify(
|
|
4
|
+
`));for await(const m of t)l.enqueue(s.encode(`data: ${JSON.stringify(Ft(m))}
|
|
5
5
|
|
|
6
|
-
`))}catch(m){const
|
|
6
|
+
`))}catch(m){const v={type:"stream/error",error:{code:"internal",message:String(m),details:{}}};try{l.enqueue(s.encode(`data: ${JSON.stringify(Ft({rpcId:B(),payload:v}))}
|
|
7
7
|
|
|
8
|
-
`))}catch{}}finally{try{l.close()}catch{}}}});return new Response(i,{headers:{"content-type":"text/event-stream","cache-control":"no-cache"}})}a(
|
|
8
|
+
`))}catch{}}finally{try{l.close()}catch{}}}});return new Response(i,{headers:{"content-type":"text/event-stream","cache-control":"no-cache"}})}a(zt,"sseResponse");function Gr(t){return{async fetch(s,i){const l=s instanceof Request?s:new Request(s,i),m=new URL(l.url),v=m.pathname;if(v==="/api/events.mux"&&l.method==="GET")return zt(t.events.mux({rpcId:B(),payload:{}},l.signal));if(v==="/api/events.host"&&l.method==="GET")return zt(t.events.host({rpcId:B(),payload:{}},l.signal));if(v==="/api/session.export"&&(l.method==="GET"||l.method==="HEAD")){const A=ro.safeParse(Object.fromEntries(m.searchParams));if(!A.success)return new Response("missing or invalid sessionId query parameter",{status:400});const C=await t.downloads.sessionLog(A.data,l.signal);return l.method==="GET"?C:(await C.body?.cancel(),new Response(null,{status:C.status,headers:C.headers}))}if(l.method!=="POST"||!v.startsWith("/api/"))return new Response("not found",{status:404});if(l.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase()!=="application/json")return new Response("content type must be application/json",{status:415});let b;try{b=await l.json()}catch{return new Response("body is not JSON",{status:400})}if(v==="/api/respond"){const A=_t.safeParse(b);return A.success?Response.json(await t.respond(A.data)):Response.json({accepted:!1,reason:"bad-response"})}const y=Qr(v.slice(5));if(y===void 0)return new Response("not found",{status:404});const k=Tt.safeParse(b);if(!k.success){const A=b?.rpcId;return Le(typeof A=="string"?A:Wr,{code:"bad-request",message:"invalid client-request message",details:{issues:k.error.issues}})}const R=k.data;return R.method!==y?Le(R.rpcId,{code:"bad-request",message:`method "${R.method}" does not match path "${y}"`,details:{issues:[]}}):Zr(t,y,R,l.signal)}}}a(Gr,"toFetchHandler");const Jr=e.string().min(1),xr=e.object({id:Jr,kind:e.string().min(1),label:e.string().min(1),status:e.union([e.literal("running"),e.literal("stopping"),e.literal("completed"),e.literal("killed"),e.literal("failed")]),detail:e.string().optional(),startedAt:e.number().int().nonnegative(),finishedAt:e.number().int().nonnegative().optional()}),Yr=e.object({id:e.string(),question:e.string(),header:e.string().optional(),detail:e.string().optional(),options:e.array(e.object({label:e.string(),description:e.string().optional()})).optional(),multiSelect:e.boolean().optional(),intent:e.discriminatedUnion("kind",[e.object({kind:e.literal("plan-review"),approve:e.string()})]).optional()}),Kr=e.object({id:e.string().min(1),role:e.union([e.literal("system"),e.literal("user"),e.literal("assistant")]),content:e.array(Ee),source:e.looseObject({kind:e.string()})}),Xr=e.discriminatedUnion("type",[e.object({type:e.literal("session/event"),sessionId:I,event:Ye,view:et.optional()}),e.object({type:e.literal("session/subscribed"),sessionId:I,lastSeq:e.number().int()}),e.object({type:e.literal("approval/requested"),sessionId:I,approvalId:Re,toolName:e.string(),callId:e.string().optional(),reason:e.string().optional()}),e.object({type:e.literal("approval/resolved"),sessionId:I,approvalId:Re,outcome:e.union([e.literal("allowed-once"),e.literal("rejected"),e.literal("cancelled"),e.literal("unavailable")])}),e.object({type:e.literal("question/requested"),sessionId:I,questions:e.array(Yr).min(1)}),e.object({type:e.literal("question/resolved"),sessionId:I,questionRpcId:q,outcome:e.union([e.literal("answered"),e.literal("cancelled")])}),e.object({type:e.literal("session/queue"),sessionId:I,items:e.array(e.object({id:xe,placement:e.union([e.literal("queued"),e.literal("steering"),e.literal("context")]),message:Kr}))}),e.object({type:e.literal("session/jobs"),sessionId:I,jobs:e.array(xr)}),e.object({type:e.literal("session/projection"),sessionId:I,key:e.string().min(1),value:e.unknown(),seq:e.number().int().nonnegative()}),e.object({type:e.literal("stream/error"),error:Me})]),qr=e.discriminatedUnion("type",[e.object({type:e.literal("host/session-added"),sessionId:I,blank:e.boolean(),parentSessionId:I.optional(),origin:e.literal("subagent").optional(),cwd:e.string().optional(),agentPreset:e.string().optional()}),e.object({type:e.literal("host/session-removed"),sessionId:I}),e.object({type:e.literal("host/session-status"),sessionId:I,running:e.boolean()}),e.object({type:e.literal("host/agent-error"),sessionId:I,message:e.string()}),e.object({type:e.literal("host/workspace-changed"),workspace:ee}),e.object({type:e.literal("host/workspace-removed"),workspaceId:O}),e.object({type:e.literal("host/workspace-order-changed"),workspaceIds:e.array(O)}),e.object({type:e.literal("host/archived-sessions-changed"),archivedSessionIds:e.array(I)}),e.object({type:e.literal("host/remote-event"),event:e.string().min(1),args:e.array(e.unknown())}),e.object({type:e.literal("stream/error"),error:Me})]),ea={"session.list":en,"session.search":nn,"session.create":rn,"session.history":vn,"session.models":yn,"session.selectModel":Sn,"session.rename":cn,"session.fork":ln,"session.prompt":jn,"session.attachment":Rn,"session.updateQueue":Un,"session.cancel":Cn,"subagent.list":Tr,"subagent.history":Or,"subagent.prompt":zr,"subagent.interrupt":Br,"host.describe":co,"host.pickDirectory":uo,"host.listDirectory":mo,"host.createDirectory":ho,"host.openPath":vo,"workspace.list":yo,"workspace.create":So,"workspace.rename":Io,"workspace.delete":Po,"workspace.insertBefore":Ro,"workspace.insertSessionBefore":Uo,"workspace.archiveSession":Co,"skill.list":$o,"agentPreset.list":Oo,"agentPreset.select":Vo,"agentPreset.read":Fo,"agentPreset.copy":Qo,"agentPreset.openDocument":Ho,"agentPreset.remove":Go,"goal.create":xo,"goal.edit":Ko,"goal.pause":qo,"goal.resume":tr,"goal.complete":nr,"goal.clear":rr,"settings.describe":cr,"settings.openDocument":lr,"settings.update":pr,"settings.replace":vr,"settings.mutate":fr,"credentials.describe":wr,"credentials.set":kr,"credentials.unset":jr,"llm.providers":Rr,"llm.models":Ur,"llm.discoverModels":Lr},ta=3e4,sa="http://dsh.internal";var Qt=class{static{a(this,"AbstractApiClient")}timeoutMs;envelopeBatch=[];flushScheduled=!1;envelopeListeners=new Set;constructor(t=ta){this.timeoutMs=t}subscribeEnvelopes(t){return this.envelopeListeners.add(t),()=>{this.envelopeListeners.delete(t)}}onEnvelope(t){this.envelopeListeners.size!==0&&(this.envelopeBatch.push(t),!this.flushScheduled&&(this.flushScheduled=!0,queueMicrotask(()=>{this.flushScheduled=!1;const s=this.envelopeBatch;this.envelopeBatch=[];for(const i of this.envelopeListeners)try{i(s)}catch(l){console.error("[apiproxy] envelope listener threw:",l)}})))}resolveBase(){const t=globalThis.location;return t?.origin!==void 0&&t.origin!=="null"?t.origin:sa}mintRpcId(){return crypto.randomUUID()}async postJson(t,s,i,l="default"){const m=l==="default"?i===void 0?AbortSignal.timeout(this.timeoutMs):AbortSignal.any([AbortSignal.timeout(this.timeoutMs),i]):i,v=await this.doFetch(new URL(t,this.resolveBase()),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(s),...m===void 0?{}:{signal:m}});if(!v.ok)throw new Error(`transport failure for ${t}: HTTP ${v.status}`);return v}async callUnary(t,s,i,l="default"){const m={type:"client-request",rpcId:this.mintRpcId(),method:t,payload:s};this.onEnvelope(m);const v=await this.postJson(`/api/${t}`,m,i,l),b=Nt.parse(await v.json());if(this.onEnvelope(b),b.rpcId!==m.rpcId)throw new Error(`rpcId mismatch for ${t}: sent ${m.rpcId}, got ${b.rpcId}`);if(!b.result.ok)return{rpcId:b.rpcId,result:b.result};const y=ea[t].parse(b.result.value);return{rpcId:b.rpcId,result:{ok:!0,value:y}}}openMux(t,s,i){return this.readSse("/api/events.mux",s,Xr,i)}openHost(t,s,i){return this.readSse("/api/events.host",s,qr,i)}async*readSse(t,s,i,l){const m=await this.doFetch(new URL(t,this.resolveBase()),{signal:s});if(!m.ok||m.body===null)throw new Error(`transport failure for ${t}: HTTP ${m.status}`);l?.();const v=m.body.getReader(),b=new TextDecoder;let y="";try{for(;;){const{done:k,value:R}=await v.read();if(k)return;y+=b.decode(R,{stream:!0});let A;for(;(A=y.indexOf(`
|
|
9
9
|
|
|
10
|
-
`))!==-1;){const C=
|
|
11
|
-
`).filter(
|
|
10
|
+
`))!==-1;){const C=y.slice(0,A);y=y.slice(A+2);const U=C.split(`
|
|
11
|
+
`).filter($=>$.startsWith("data: ")).map($=>$.slice(6)).join("");if(U==="")continue;let D,M;try{D=Ot.parse(JSON.parse(U)),M=i.parse(D.payload)}catch($){console.error(`[apiproxy] dropping malformed SSE frame on ${t}:`,$);continue}this.onEnvelope(D),yield{rpcId:D.rpcId,payload:M}}}}finally{await v.cancel().catch(()=>{})}}sessions={list:a((t,s)=>this.callUnary("session.list",t,s),"list"),search:a((t,s)=>this.callUnary("session.search",t,s),"search"),create:a((t,s)=>this.callUnary("session.create",t,s),"create"),history:a((t,s)=>this.callUnary("session.history",t,s),"history"),models:a((t,s)=>this.callUnary("session.models",t,s),"models"),selectModel:a((t,s)=>this.callUnary("session.selectModel",t,s),"selectModel"),rename:a((t,s)=>this.callUnary("session.rename",t,s),"rename"),fork:a((t,s)=>this.callUnary("session.fork",t,s),"fork"),prompt:a((t,s)=>this.callUnary("session.prompt",t,s),"prompt"),attachment:a((t,s)=>this.callUnary("session.attachment",t,s),"attachment"),updateQueue:a((t,s)=>this.callUnary("session.updateQueue",t,s),"updateQueue"),cancel:a((t,s)=>this.callUnary("session.cancel",t,s),"cancel")};subagents={list:a((t,s)=>this.callUnary("subagent.list",t,s),"list"),history:a((t,s)=>this.callUnary("subagent.history",t,s),"history"),prompt:a((t,s)=>this.callUnary("subagent.prompt",t,s),"prompt"),interrupt:a((t,s)=>this.callUnary("subagent.interrupt",t,s),"interrupt")};host={describe:a((t,s)=>this.callUnary("host.describe",t,s),"describe"),pickDirectory:a((t,s)=>this.callUnary("host.pickDirectory",t,s,"caller-signal-only"),"pickDirectory"),listDirectory:a((t,s)=>this.callUnary("host.listDirectory",t,s),"listDirectory"),createDirectory:a((t,s)=>this.callUnary("host.createDirectory",t,s),"createDirectory"),openPath:a((t,s)=>this.callUnary("host.openPath",t,s),"openPath")};workspace={list:a((t,s)=>this.callUnary("workspace.list",t,s),"list"),create:a((t,s)=>this.callUnary("workspace.create",t,s),"create"),rename:a((t,s)=>this.callUnary("workspace.rename",t,s),"rename"),delete:a((t,s)=>this.callUnary("workspace.delete",t,s),"delete"),insertBefore:a((t,s)=>this.callUnary("workspace.insertBefore",t,s),"insertBefore"),insertSessionBefore:a((t,s)=>this.callUnary("workspace.insertSessionBefore",t,s),"insertSessionBefore"),archiveSession:a((t,s)=>this.callUnary("workspace.archiveSession",t,s),"archiveSession")};skills={list:a((t,s)=>this.callUnary("skill.list",t,s),"list")};agentPresets={list:a((t,s)=>this.callUnary("agentPreset.list",t,s),"list"),select:a((t,s)=>this.callUnary("agentPreset.select",t,s),"select"),read:a((t,s)=>this.callUnary("agentPreset.read",t,s),"read"),copy:a((t,s)=>this.callUnary("agentPreset.copy",t,s),"copy"),openDocument:a((t,s)=>this.callUnary("agentPreset.openDocument",t,s),"openDocument"),remove:a((t,s)=>this.callUnary("agentPreset.remove",t,s),"remove")};goals={create:a((t,s)=>this.callUnary("goal.create",t,s),"create"),edit:a((t,s)=>this.callUnary("goal.edit",t,s),"edit"),pause:a((t,s)=>this.callUnary("goal.pause",t,s),"pause"),resume:a((t,s)=>this.callUnary("goal.resume",t,s),"resume"),complete:a((t,s)=>this.callUnary("goal.complete",t,s),"complete"),clear:a((t,s)=>this.callUnary("goal.clear",t,s),"clear")};settings={describe:a((t,s)=>this.callUnary("settings.describe",t,s),"describe"),openDocument:a((t,s)=>this.callUnary("settings.openDocument",t,s),"openDocument"),update:a((t,s)=>this.callUnary("settings.update",t,s),"update"),replace:a((t,s)=>this.callUnary("settings.replace",t,s),"replace"),mutate:a((t,s)=>this.callUnary("settings.mutate",t,s),"mutate")};credentials={describe:a((t,s)=>this.callUnary("credentials.describe",t,s),"describe"),set:a((t,s)=>this.callUnary("credentials.set",t,s),"set"),unset:a((t,s)=>this.callUnary("credentials.unset",t,s),"unset")};llm={providers:a((t,s)=>this.callUnary("llm.providers",t,s),"providers"),models:a((t,s)=>this.callUnary("llm.models",t,s),"models"),discoverModels:a((t,s)=>this.callUnary("llm.discoverModels",t,s),"discoverModels")};events={mux:a((t,s,i)=>this.openMux(t,s,i),"mux"),host:a((t,s,i)=>this.openHost(t,s,i),"host")};async respond(t,s){this.onEnvelope(t);const i=await this.postJson("/api/respond",t,s);return ao.parse(await i.json())}},na=class extends Qt{static{a(this,"InProcessApiClient")}handler;constructor(t,s){super(s),this.handler=t}doFetch(t,s){const i=s?.signal??void 0;return i===void 0?this.handler.fetch(t,s):i.aborted?Promise.reject(Wt(i)):new Promise((l,m)=>{const v=a(()=>{m(Wt(i))},"onAbort");i.addEventListener("abort",v,{once:!0}),this.handler.fetch(t,s).then(l,m).finally(()=>{i.removeEventListener("abort",v)})})}};function Wt(t){const s=t.reason;return s instanceof Error?s:typeof s=="string"?new Error(s):new Error("This operation was aborted")}a(Wt,"abortError");var Ht=class extends ns{static{a(this,"ApiProxyService")}static inject=["agentDefaultModel","agents","attachments","directoryPicker","llm","sessions","subagents","sessionQuery","tools","userQuestions","workspaceRegistry"];static Config=ae.object({nativeOpen:ae.boolean(),sessionExportCompressionLevel:ae.number().step(1).min(0).max(9).default(6),coldBlankProbeMaxBytes:ae.natural().default(Hn)});sessions;subagents;workspace;host;goals;skills;agentPresets;settings;credentials;llm;events;downloads;respond;constructor(t,s){super(t,"apiProxy");const i=Dt(t,{defaultModelSelection:a(()=>t.agentDefaultModel.currentSelection(),"defaultModelSelection"),saveDefaultModelSelection:a(l=>t.agentDefaultModel.saveSelection(l),"saveDefaultModelSelection"),cwd:process.cwd(),...s.nativeOpen===void 0?{}:{canOpenPath:a(()=>s.nativeOpen,"canOpenPath")},...s.sessionExportCompressionLevel===void 0?{}:{sessionExportCompressionLevel:s.sessionExportCompressionLevel},...s.coldBlankProbeMaxBytes===void 0?{}:{coldBlankProbeMaxBytes:s.coldBlankProbeMaxBytes}});this.sessions=i.sessions,this.subagents=i.subagents,this.workspace=i.workspace,this.host=i.host,this.goals=i.goals,this.skills=i.skills,this.agentPresets=i.agentPresets,this.settings=i.settings,this.credentials=i.credentials,this.llm=i.llm,this.events=i.events,this.downloads=i.downloads,this.respond=i.respond.bind(i)}};export{Qt as AbstractApiClient,Ht as ApiProxyService,Ht as default,na as InProcessApiClient,Tn as RpcId,Dt as createApiProxy,Gr as toFetchHandler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var r=Object.defineProperty;var s=(t,i)=>r(t,"name",{value:i,configurable:!0});import{z as e}from"zod";export const rpcIdSchema=e.string(),rpcErrorSchema=e.discriminatedUnion("code",[e.object({code:e.literal("bad-request"),message:e.string(),details:e.object({issues:e.array(e.custom())})}),e.object({code:e.literal("cancelled"),message:e.string(),details:e.object({})}),e.object({code:e.literal("session-not-found"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("model-unavailable"),message:e.string(),details:e.object({provider:e.string(),model:e.string()})}),e.object({code:e.literal("session-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedCwd:e.string(),existingCwd:e.string().optional()})}),e.object({code:e.literal("invalid-time-zone"),message:e.string(),details:e.object({value:e.string()})}),e.object({code:e.literal("workspace-attach-failed"),message:e.string(),details:e.object({sessionId:e.string(),workspaceId:e.string()})}),e.object({code:e.literal("workspace-not-found"),message:e.string(),details:e.object({workspaceId:e.string()})}),e.object({code:e.literal("workspace-invalid-path"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("workspace-name-conflict"),message:e.string(),details:e.object({name:e.string()})}),e.object({code:e.literal("workspace-move-invalid"),message:e.string(),details:e.object({workspaceId:e.string(),sessionId:e.string(),beforeSessionId:e.string().optional()})}),e.object({code:e.literal("directory-unreadable"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-exists"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-create-failed"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-picker-unavailable"),message:e.string(),details:e.object({capability:e.string()})}),e.object({code:e.literal("agent-preset-read-only"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-preset-locked"),message:e.string(),details:e.object({sessionId:e.string(),agentPreset:e.string()})}),e.object({code:e.literal("agent-preset-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedPreset:e.string(),existingPreset:e.string().optional()})}),e.object({code:e.literal("agent-preset-not-found"),message:e.string(),details:e.object({agentPreset:e.string(),available:e.array(e.string())})}),e.object({code:e.literal("agent-preset-invalid"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-busy"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("attachment-error"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("queue-item-not-found"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("steer-unavailable"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("command-error"),message:e.string(),details:e.object({})}),e.object({code:e.literal("unknown-command"),message:e.string(),details:e.object({})}),e.object({code:e.literal("settings-rejected"),message:e.string(),details:e.object({ns:e.string()})}),e.object({code:e.literal("settings-
|
|
1
|
+
var r=Object.defineProperty;var s=(t,i)=>r(t,"name",{value:i,configurable:!0});import{z as e}from"zod";export const rpcIdSchema=e.string(),rpcErrorSchema=e.discriminatedUnion("code",[e.object({code:e.literal("bad-request"),message:e.string(),details:e.object({issues:e.array(e.custom())})}),e.object({code:e.literal("cancelled"),message:e.string(),details:e.object({})}),e.object({code:e.literal("session-not-found"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("model-unavailable"),message:e.string(),details:e.object({provider:e.string(),model:e.string()})}),e.object({code:e.literal("session-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedCwd:e.string(),existingCwd:e.string().optional()})}),e.object({code:e.literal("invalid-time-zone"),message:e.string(),details:e.object({value:e.string()})}),e.object({code:e.literal("workspace-attach-failed"),message:e.string(),details:e.object({sessionId:e.string(),workspaceId:e.string()})}),e.object({code:e.literal("workspace-not-found"),message:e.string(),details:e.object({workspaceId:e.string()})}),e.object({code:e.literal("workspace-invalid-path"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("workspace-name-conflict"),message:e.string(),details:e.object({name:e.string()})}),e.object({code:e.literal("workspace-move-invalid"),message:e.string(),details:e.object({workspaceId:e.string(),sessionId:e.string(),beforeSessionId:e.string().optional()})}),e.object({code:e.literal("directory-unreadable"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-exists"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-create-failed"),message:e.string(),details:e.object({path:e.string()})}),e.object({code:e.literal("directory-picker-unavailable"),message:e.string(),details:e.object({capability:e.string()})}),e.object({code:e.literal("agent-preset-read-only"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-preset-locked"),message:e.string(),details:e.object({sessionId:e.string(),agentPreset:e.string()})}),e.object({code:e.literal("agent-preset-conflict"),message:e.string(),details:e.object({sessionId:e.string(),requestedPreset:e.string(),existingPreset:e.string().optional()})}),e.object({code:e.literal("agent-preset-not-found"),message:e.string(),details:e.object({agentPreset:e.string(),available:e.array(e.string())})}),e.object({code:e.literal("agent-preset-invalid"),message:e.string(),details:e.object({agentPreset:e.string(),reason:e.string()})}),e.object({code:e.literal("agent-busy"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("attachment-error"),message:e.string(),details:e.object({reason:e.string()})}),e.object({code:e.literal("queue-item-not-found"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("steer-unavailable"),message:e.string(),details:e.object({itemId:e.string()})}),e.object({code:e.literal("command-error"),message:e.string(),details:e.object({})}),e.object({code:e.literal("unknown-command"),message:e.string(),details:e.object({})}),e.object({code:e.literal("settings-rejected"),message:e.string(),details:e.object({ns:e.string()})}),e.object({code:e.literal("settings-conflict"),message:e.string(),details:e.object({ns:e.string(),expected:e.number(),actual:e.number()})}),e.object({code:e.literal("credential-rejected"),message:e.string(),details:e.object({ref:e.string()})}),e.object({code:e.literal("model-discovery-failed"),message:e.string(),details:e.object({settingsNs:e.string(),baseURL:e.string().optional()})}),e.object({code:e.literal("title-invalid"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("fork-unavailable"),message:e.string(),details:e.object({sessionId:e.string()})}),e.object({code:e.literal("subagent-parent-unavailable"),message:e.string(),details:e.object({parentSessionId:e.string()})}),e.object({code:e.literal("subagent-not-found"),message:e.string(),details:e.object({parentSessionId:e.string(),childSessionId:e.string()})}),e.object({code:e.literal("subagent-catalog-diagnostic"),message:e.string(),details:e.object({parentSessionId:e.string(),childSessionId:e.string(),reason:e.union([e.literal("corrupt"),e.literal("unsupported"),e.literal("unavailable")])})}),e.object({code:e.literal("subagent-not-resumable"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("subagent-unauthorized"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("subagent-delivery-unavailable"),message:e.string(),details:e.object({childSessionId:e.string()})}),e.object({code:e.literal("internal"),message:e.string(),details:e.object({})})]);export function rpcResultSchema(t){return e.union([e.object({ok:e.literal(!0),value:t}),e.object({ok:e.literal(!1),error:rpcErrorSchema})])}s(rpcResultSchema,"rpcResultSchema");export const clientRequestSchema=e.object({type:e.literal("client-request"),rpcId:rpcIdSchema,method:e.string(),payload:e.unknown()}),serverResponseSchema=e.object({type:e.literal("server-response"),rpcId:rpcIdSchema,result:rpcResultSchema(e.unknown().optional())}),serverRequestSchema=e.object({type:e.literal("server-request"),rpcId:rpcIdSchema,method:e.string(),payload:e.unknown()}),clientResponseSchema=e.object({type:e.literal("client-response"),rpcId:rpcIdSchema,result:rpcResultSchema(e.unknown().optional())}),rpcMessageSchema=e.discriminatedUnion("type",[clientRequestSchema,serverResponseSchema,serverRequestSchema,clientResponseSchema]),rpcReceiptSchema=e.union([e.object({accepted:e.literal(!0)}),e.object({accepted:e.literal(!1),reason:e.union([e.literal("not-pending"),e.literal("bad-response")])})]);
|