@xopcai/xopc 0.0.430 → 0.0.431
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/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js +3 -3
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +2 -2
- package/dist/extensions/telegram/src/outbound-sender.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +2 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +12 -12
- package/dist/extensions/weixin/src/messaging/debug-mode.js +5 -5
- package/dist/extensions/weixin/src/messaging/inbound.js +11 -11
- package/dist/gateway/static/root/assets/{index-C5BhE5cA.js → index-BmUSsdwn.js} +6 -6
- package/dist/gateway/static/root/index.html +1 -1
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.js +18 -18
- package/dist/src/agent/agent-scope.js +2 -2
- package/dist/src/agent/background-review/prompts.js +1 -1
- package/dist/src/agent/background-review/run-background-review.js +12 -12
- package/dist/src/agent/child-agent-factory.js +2 -2
- package/dist/src/agent/context/coordinator.js +2 -2
- package/dist/src/agent/context/execution-context.js +4 -4
- package/dist/src/agent/context/project-context.js +3 -3
- package/dist/src/agent/data-acquisition/service.js +1 -1
- package/dist/src/agent/embedded/codemode-extension.js +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.js +1 -1
- package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +6 -6
- package/dist/src/agent/embedded/run-turn.js +19 -19
- package/dist/src/agent/embedded/session-runner.js +4 -4
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
- package/dist/src/agent/embedded/xopc-tools-bridge.js +1 -1
- package/dist/src/agent/external-tools/cliProvider.js +4 -4
- package/dist/src/agent/external-tools/composio-provider.js +4 -4
- package/dist/src/agent/external-tools/endpoint-provider.js +6 -6
- package/dist/src/agent/external-tools/extension-provider.js +1 -1
- package/dist/src/agent/external-tools/gateway-tools.js +3 -3
- package/dist/src/agent/external-tools/memory-provider.js +1 -1
- package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
- package/dist/src/agent/image/generation/runtime.js +1 -1
- package/dist/src/agent/image/index.js +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.js +2 -2
- package/dist/src/agent/inbound/inbound-loop.js +2 -2
- package/dist/src/agent/independent-execution.js +2 -2
- package/dist/src/agent/index.js +3 -3
- package/dist/src/agent/mcp/connection-drafts.js +1 -1
- package/dist/src/agent/mcp/connection-setup.js +1 -1
- package/dist/src/agent/mcp/conversation-setup.js +1 -1
- package/dist/src/agent/mcp/discovery.js +2 -2
- package/dist/src/agent/mcp/transport.js +1 -1
- package/dist/src/agent/memory/index.js +1 -1
- package/dist/src/agent/orchestration/llm-turn-retry.js +1 -1
- package/dist/src/agent/prompt/response-language.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +3 -3
- package/dist/src/agent/prompt/system-prompt-params.js +1 -1
- package/dist/src/agent/sandbox/exec-policy.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +6 -6
- package/dist/src/agent/service/process-direct-streaming.js +6 -6
- package/dist/src/agent/service/webchat-tts.js +2 -2
- package/dist/src/agent/service.js +22 -22
- package/dist/src/agent/session/session-config-service.js +2 -2
- package/dist/src/agent/session/session-hydrator.js +1 -1
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/filesystem-watcher.js +1 -1
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +2 -2
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manager.js +1 -1
- package/dist/src/agent/skills/skill-sources.js +1 -1
- package/dist/src/agent/source-context/index.js +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +8 -8
- package/dist/src/agent/tools/create-share-tool.js +2 -2
- package/dist/src/agent/tools/delegate-tool.js +3 -3
- package/dist/src/agent/tools/exec-command.js +1 -1
- package/dist/src/agent/tools/executor.js +1 -1
- package/dist/src/agent/tools/factory.js +19 -19
- package/dist/src/agent/tools/fetch-text.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +2 -2
- package/dist/src/agent/tools/index.js +4 -4
- package/dist/src/agent/tools/list-dir.js +1 -1
- package/dist/src/agent/tools/personal-attention-tool.js +2 -2
- package/dist/src/agent/tools/personal-read-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-result-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-tool.js +4 -4
- package/dist/src/agent/tools/personal-result-tool.js +1 -1
- package/dist/src/agent/tools/personal-task-tool.js +5 -5
- package/dist/src/agent/tools/phone-use-tool.js +1 -1
- package/dist/src/agent/tools/publish-artifacts.js +1 -1
- package/dist/src/agent/tools/read.js +1 -1
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/agent/tools/send-media.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/task-collaboration-tool.js +2 -2
- package/dist/src/agent/tools/tts-tool.js +1 -1
- package/dist/src/agent/tools/user-context-tool.js +2 -2
- package/dist/src/agent/tools/web.js +1 -1
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.js +12 -12
- package/dist/src/agent/transcript/index.js +2 -2
- package/dist/src/agent/transcript/transcript-hygiene.js +2 -2
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-catalog/repository.js +1 -1
- package/dist/src/agent-matching/delegation-service.js +1 -1
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +1 -1
- package/dist/src/auth/oauth/openai.js +1 -1
- package/dist/src/auth/oauth/xopc-cloud.js +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/automations/api/routes.js +2 -2
- package/dist/src/automations/capabilities/drafts.js +1 -1
- package/dist/src/automations/capabilities/write.js +1 -1
- package/dist/src/automations/configuration-conversation.js +1 -1
- package/dist/src/automations/delivery/delivery-router.js +1 -1
- package/dist/src/automations/domain/index.js +1 -1
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/index.js +2 -2
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/automations/service/automation-service.js +2 -2
- package/dist/src/browser/native-messaging-host.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +2 -2
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/capabilities/store-connector.js +2 -2
- package/dist/src/channels/attachments/voice-stt-webchat.js +1 -1
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/outbound-sender.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +9 -9
- package/dist/src/channels/pairing/pairing-store.js +6 -6
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +2 -2
- package/dist/src/chat-commands/builtins/session.js +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +1 -1
- package/dist/src/chat-commands/builtins/tts.js +1 -1
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/chat-commands/index.js +3 -3
- package/dist/src/cli/commands/agent.js +7 -7
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
- package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
- package/dist/src/cli/commands/extension-agent-plugin.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +1 -1
- package/dist/src/cli/commands/extension.js +2 -2
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/models.js +3 -3
- package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/project.js +1 -1
- package/dist/src/cli/commands/skills.js +2 -2
- package/dist/src/cli/commands/tunnel.js +4 -4
- package/dist/src/cli/extension-cli-register.js +5 -5
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +3 -3
- package/dist/src/cli/utils/session.js +1 -1
- package/dist/src/computer/flows.js +1 -1
- package/dist/src/computer/model-adapter.js +1 -1
- package/dist/src/computer/runtime.js +4 -4
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/connectors/cli/authorization.js +1 -1
- package/dist/src/connectors/composio-sessions.js +1 -1
- package/dist/src/connectors/composio.js +1 -1
- package/dist/src/connectors/connected-source-ingestion.js +2 -2
- package/dist/src/connectors/connected-source-understanding.js +5 -5
- package/dist/src/connectors/connection-recovery-service.js +4 -4
- package/dist/src/connectors/content-enrichment.js +1 -1
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/connectors/instances.js +1 -1
- package/dist/src/connectors/runtime-adapter-registry.js +2 -2
- package/dist/src/discussions/live-worker.js +1 -1
- package/dist/src/discussions/sealer.js +1 -1
- package/dist/src/endpoint-tools/index.js +1 -1
- package/dist/src/endpoint-tools/runtime.js +2 -2
- package/dist/src/execution-environments/local-worktree-manager.js +1 -1
- package/dist/src/extensions/activation-context.js +3 -3
- package/dist/src/extensions/agent-plugins/auth.js +1 -1
- package/dist/src/extensions/agent-plugins/skill-catalog.js +3 -3
- package/dist/src/extensions/agent-plugins/source-http-fetch.js +1 -1
- package/dist/src/extensions/agent-plugins/validation.js +1 -1
- package/dist/src/extensions/api.js +3 -3
- package/dist/src/extensions/bundled-extension-activation.js +1 -1
- package/dist/src/extensions/index.js +3 -3
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/media.js +1 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/device-routes.js +1 -1
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/global-defaults-admin.js +2 -2
- package/dist/src/gateway/hono/app.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js +2 -2
- package/dist/src/gateway/hono/oauth-async.js +1 -1
- package/dist/src/gateway/hono/routes/agent-plugins.js +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +4 -4
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/context-sources.js +1 -1
- package/dist/src/gateway/hono/routes/endpoint-tools.js +1 -1
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/location-sharing.js +1 -1
- package/dist/src/gateway/hono/routes/mcp.js +1 -1
- package/dist/src/gateway/hono/routes/memory-learning.js +3 -3
- package/dist/src/gateway/hono/routes/models.js +4 -4
- package/dist/src/gateway/hono/routes/notes.js +3 -3
- package/dist/src/gateway/hono/routes/phone-dependencies.js +1 -1
- package/dist/src/gateway/hono/routes/phone-setup.js +2 -2
- package/dist/src/gateway/hono/routes/phone.js +2 -2
- package/dist/src/gateway/hono/routes/projects.js +5 -5
- package/dist/src/gateway/hono/routes/runtime-tools.js +1 -1
- package/dist/src/gateway/hono/routes/session-command-handler.js +2 -2
- package/dist/src/gateway/hono/routes/session-input-handler.js +5 -5
- package/dist/src/gateway/hono/routes/sessions.js +3 -3
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/side-chats.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +2 -2
- package/dist/src/gateway/hono/routes/user-model.js +7 -7
- package/dist/src/gateway/hono/routes/voice.js +7 -7
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/lock.js +11 -11
- package/dist/src/gateway/media-access.js +1 -1
- package/dist/src/gateway/mobile-privacy.js +2 -2
- package/dist/src/gateway/ports.js +6 -6
- package/dist/src/gateway/provider-model-setup.js +1 -1
- package/dist/src/gateway/server.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +2 -2
- package/dist/src/gateway/service/config-coordinator.js +2 -2
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service/run-gateway-agent.js +5 -5
- package/dist/src/gateway/service/session-command-service.js +2 -2
- package/dist/src/gateway/service/session-input-coordinator.js +1 -1
- package/dist/src/gateway/service.js +45 -45
- package/dist/src/gateway/session-context-summary.js +4 -4
- package/dist/src/gateway/session-reset-service.js +1 -1
- package/dist/src/gateway/workspace-editor-path.js +2 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +4 -4
- package/dist/src/home-intelligence/generator.js +2 -2
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/imports/importService.js +1 -1
- package/dist/src/imports/inventory.js +2 -2
- package/dist/src/imports/productImport.js +1 -1
- package/dist/src/imports/runtime.js +1 -1
- package/dist/src/infra/gateway-processes.js +2 -2
- package/dist/src/infra/path-env.js +3 -3
- package/dist/src/infra/update-global.js +9 -9
- package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
- package/dist/src/knowledge/index.js +1 -1
- package/dist/src/knowledge-memory/repository.js +1 -1
- package/dist/src/knowledge-memory/usage-policy.js +1 -1
- package/dist/src/local-apps/service.js +3 -3
- package/dist/src/mcp/gateway-http-client.js +1 -1
- package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
- package/dist/src/memory-learning/source-learning.js +5 -5
- package/dist/src/memory-learning/task-receipts.js +1 -1
- package/dist/src/notes/agent-context.js +4 -4
- package/dist/src/notes/index.js +1 -1
- package/dist/src/notes/service.js +3 -3
- package/dist/src/personal-agent/capability-service.js +2 -2
- package/dist/src/personal-agent/proactivity/routes.js +1 -1
- package/dist/src/personal-agent/proactivity/service.js +7 -7
- package/dist/src/personal-agent/prompt-context.js +7 -7
- package/dist/src/personal-agent/prompts.js +2 -2
- package/dist/src/personal-agent/reply-composer.js +9 -9
- package/dist/src/personal-agent/request-delivery.js +2 -2
- package/dist/src/personal-agent/request-service.js +7 -7
- package/dist/src/personal-agent/result-reader.js +1 -1
- package/dist/src/personal-agent/service.js +2 -2
- package/dist/src/phone/model-adapter.js +1 -1
- package/dist/src/phone/repository.js +1 -1
- package/dist/src/phone/runtime.js +4 -4
- package/dist/src/projects/index.js +2 -2
- package/dist/src/projects/project-agent-suggestion.js +1 -1
- package/dist/src/projects/project-service.js +2 -2
- package/dist/src/projects/project-skill-service.js +2 -2
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/providers/model-reference-auditor.js +1 -1
- package/dist/src/realtime/runtime.js +1 -1
- package/dist/src/remote-access/exposure-manager.js +1 -1
- package/dist/src/runtime-tools/archive.js +1 -1
- package/dist/src/runtime-tools/phone-dependencies.js +2 -2
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/store.js +5 -5
- package/dist/src/session/thinking-resolve.js +1 -1
- package/dist/src/share/hosted-session-share.js +2 -2
- package/dist/src/share/session-share-service.js +1 -1
- package/dist/src/share/share-store.js +1 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/share/site-proxy.js +1 -1
- package/dist/src/share/site-share-store.js +1 -1
- package/dist/src/storage/sqlite/connection.js +9 -9
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/write.js +2 -2
- package/dist/src/tasks/home-query-service.js +1 -1
- package/dist/src/tasks/index.js +5 -5
- package/dist/src/tasks/task-allocation-service.js +5 -5
- package/dist/src/tasks/task-application-service.js +5 -5
- package/dist/src/tasks/task-collaboration-delivery.js +1 -1
- package/dist/src/tasks/task-context-assembler.js +2 -2
- package/dist/src/tasks/task-contract-planner.js +2 -2
- package/dist/src/tasks/task-handoff-service.js +1 -1
- package/dist/src/tasks/task-handoff.js +4 -4
- package/dist/src/tasks/task-main-update-decision-service.js +3 -3
- package/dist/src/tasks/task-model-call.js +1 -1
- package/dist/src/tasks/task-research-result.js +4 -4
- package/dist/src/tasks/task-result-delivery-repository.js +1 -1
- package/dist/src/tasks/task-result-delivery-service.js +2 -2
- package/dist/src/tasks/task-run-coordinator.js +3 -3
- package/dist/src/tasks/task-run-dispatcher.js +1 -1
- package/dist/src/tui/backends/embedded-backend.js +12 -12
- package/dist/src/tui/backends/gateway-realtime-backend.js +2 -2
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/tui-commands.js +5 -5
- package/dist/src/tui/tui-picker-overlay.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +3 -3
- package/dist/src/tui/tui.js +4 -4
- package/dist/src/tunnel/gateway-lifecycle.js +1 -1
- package/dist/src/user-context/access-policy.js +2 -2
- package/dist/src/user-model/bootstrap.js +1 -1
- package/dist/src/user-model/capture/executor.js +1 -1
- package/dist/src/user-model/index.js +2 -2
- package/dist/src/user-model/usage-policy.js +1 -1
- package/dist/src/voice/realtime/memory-context.js +5 -5
- package/dist/src/voice/realtime/omniRoute.js +1 -1
- package/dist/src/voice/realtime/persona-context.js +1 -1
- package/dist/src/voice/realtime/runtime.js +4 -4
- package/dist/src/voice/stt/index.js +2 -2
- package/dist/src/voice/stt/preflight.js +1 -1
- package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
- package/dist/src/voice/stt/providers/bailian-plan-transcription.js +1 -1
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
- package/dist/src/voice/stt/transcribe-core.js +1 -1
- package/dist/src/voice/tts/index.js +3 -3
- package/dist/src/voice/tts/merge-config.js +1 -1
- package/dist/src/voice/tts/payload.js +1 -1
- package/dist/src/voice/tts/providers/bailian-plan-speech.js +1 -1
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
- package/dist/src/voice/tts/speak-core.js +1 -1
- package/dist/src/work-discovery/service.js +7 -7
- package/package.json +1 -1
|
@@ -3,9 +3,9 @@ import{i as e,n as t}from"./rolldown-runtime-aKtaBQYM.js";import{a as n,i as r,n
|
|
|
3
3
|
|
|
4
4
|
`,_V=/\r\n/g,vV=`xopc.npmPendingRestart`;function yV(e){let t=e?.postUpdate;if(!t||typeof t!=`object`)return!1;let n=t.restart;if(!n||typeof n!=`object`)return!1;let r=n;return r.ok===!0&&[`in-process`,`daemon`,`unmanaged`].includes(String(r.mode))}function bV(e,t){try{sessionStorage.setItem(vV,JSON.stringify({installedVersion:e,automaticRestart:t}))}catch{}window.dispatchEvent(new CustomEvent(`xopc:npm-update-installed`,{detail:{version:e,automaticRestart:t}})),t&&window.dispatchEvent(new Event(`gateway-restart-initiated`))}var xV=typeof window<`u`&&window.electronAPI?.updater!==void 0;function SV(){return null}function CV(e){if(!(!e||typeof window>`u`))try{let t=sessionStorage.getItem(vV);if(!t)return;let n=JSON.parse(t),r=typeof n.installedVersion==`string`?n.installedVersion.trim():``;r&&r===e&&sessionStorage.removeItem(vV)}catch{}}function wV(e){return CV(e.currentVersion),e}function TV(){let[e,t]=(0,Z.useState)(null),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(()=>SV()),[o,s]=(0,Z.useState)(xV?{state:`idle`}:SV()),c=(0,Z.useRef)(null),l=xV||i!==null;(0,Z.useEffect)(()=>{if(l)return;DV().then(e=>t(wV(e))).catch(()=>{});let e=e=>{let n=e.detail;if(n===null)t(e=>e&&wV({...e,updateAvailable:!1,latestVersion:null,channel:null}));else if(n&&typeof n==`object`){let e=n;t(wV({currentVersion:e.currentVersion??``,updateAvailable:!0,latestVersion:e.latestVersion??null,channel:e.channel??null}))}};return window.addEventListener(`update-available`,e),()=>window.removeEventListener(`update-available`,e)},[l]),(0,Z.useEffect)(()=>{if(!xV)return;let e=window.electronAPI.updater;return e.getStatus().then(e=>s(e)),e.onStatusChanged(e=>s(e))},[]),(0,Z.useEffect)(()=>{},[]),(0,Z.useEffect)(()=>()=>{c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]);let u=(0,Z.useCallback)(async()=>{if(l)return!1;try{let e=await x(w(`/api/update/check`),{method:`POST`});if(!e.ok)return!1;let n=await e.json();return n.payload?(t(wV(n.payload)),!0):!1}catch{return!1}},[l]),d=(0,Z.useCallback)(async()=>{if(l)return{ok:!1,error:`not-applicable`,message:`npm update is not used in the desktop app.`,status:400};r(!0);try{let e=await x(w(`/api/update/run/stream`),{method:`POST`,headers:{Accept:`text/event-stream`}});if(!e.ok||!e.body){let t=await e.text().catch(()=>``),n=`HTTP ${e.status}`;try{let e=JSON.parse(t);typeof e.message==`string`&&(n=e.message)}catch{t&&(n=t.slice(0,500))}return{ok:!1,error:e.status===409?`busy`:`unknown`,message:n,status:e.status}}let t=await OV(e.body);if(t.ok&&t.result){let e=t.result;if(e&&typeof e==`object`&&e.status===`ok`&&typeof e.installedVersion==`string`){let t=yV(e);bV(e.installedVersion,t)}else e&&typeof e==`object`&&e.status===`up-to-date`&&typeof e.latestVersion==`string`&&window.dispatchEvent(new CustomEvent(`xopc:npm-update-installed`,{detail:{version:e.latestVersion}}))}return t}catch(e){return{ok:!1,error:`network`,message:e instanceof Error?e.message:String(e),status:0}}finally{r(!1)}},[l]),f=(0,Z.useCallback)(()=>{if(xV){window.electronAPI.updater.check();return}},[i]),p=(0,Z.useCallback)(()=>{xV&&window.electronAPI.updater.quitAndInstall()},[]);return{npm:e,electron:xV?o:i??o,isElectron:l,checkNow:u,runNpmUpdate:d,npmUpdateRunning:n,electronCheck:f,electronQuitAndInstall:p}}var EV=null;async function DV(){return EV||(EV=(async()=>{let e=await x(w(`/api/update/status`));if(!e.ok)throw Error(`HTTP ${e.status}`);return(await e.json()).payload})().finally(()=>{EV=null}),EV)}async function OV(e){let t=e.getReader(),n=new TextDecoder,r=``,i=null,a=e=>{try{let t=JSON.parse(e);typeof t.line==`string`&&window.dispatchEvent(new CustomEvent(`xopc:npm-update-progress`,{detail:{line:t.line,source:t.source===`stderr`?`stderr`:`stdout`}}))}catch{}},o=e=>{let t=``,n=``;for(let r of e.split(`
|
|
5
5
|
`)){let e=r.replace(/\r$/,``);e.startsWith(`event:`)?t=e.slice(6).trim():e.startsWith(`data:`)&&(n+=e.slice(5).trimStart())}if(n){if(t===`progress`){a(n);return}if(t===`result`)try{let e=JSON.parse(n);i=e.ok?{ok:!0,result:e.result??null}:{ok:!1,error:String(e.error??`unknown`),message:String(e.message??`Update failed`),status:e.error===`busy`?409:400,result:e.result??null}}catch{i={ok:!1,error:`parse`,message:`Invalid update stream`,status:0}}}};try{let e=async()=>{if(i!==null)return i;let{done:a,value:s}=await t.read();if(a)return i;r+=n.decode(s,{stream:!0}),r=r.replace(_V,`
|
|
6
|
-
`);let c=r.split(gV);r=c.pop()??``;for(let e of c)e.length&&o(e);return e()},a=await e();if(a)return a}finally{t.releaseLock()}return i??{ok:!1,error:`no-result`,message:`Update stream ended without a result`,status:0}}var kV=`xopc.updateReminder.dismissed`,AV=typeof window<`u`&&window.electronAPI?.updater!==void 0,jV=`xopc:electron-update-recheck`;function MV(){if(typeof window>`u`)return{};try{let e=localStorage.getItem(kV);if(!e)return{};let t=JSON.parse(e);return t&&typeof t==`object`?t:{}}catch{return{}}}var NV=160;function PV(e){let t=e.trim();return t.length<=NV?t:`${t.slice(0,NV-1)}…`}function FV(){let{npm:e,electron:t,isElectron:n,electronQuitAndInstall:r,runNpmUpdate:i,npmUpdateRunning:a}=TV(),[o,s]=(0,Z.useState)(MV),[c,l]=(0,Z.useState)({downloading:!1,electronError:!1}),[u,d]=(0,Z.useState)(()=>{if(typeof window>`u`||AV)return null;try{let e=sessionStorage.getItem(vV);if(!e)return null;let t=JSON.parse(e),n=typeof t.installedVersion==`string`?t.installedVersion.trim():``;return n?{version:n,automatic:t.automaticRestart===!0}:null}catch{return null}}),f=(0,Z.useRef)(t?.state);f.current!==t?.state&&(f.current=t?.state,t?.state!==`downloading`&&c.downloading&&l(e=>({...e,downloading:!1})),t?.state!==`error`&&c.electronError&&l(e=>({...e,electronError:!1})));let p=(0,Z.useRef)(null);if(u&&e?.currentVersion===u.version&&p.current!==u.version){p.current=u.version;try{sessionStorage.removeItem(vV)}catch{}d(null)}(0,Z.useEffect)(()=>{if(n)return;let e=()=>{try{let e=sessionStorage.getItem(vV);if(!e){d(null);return}let t=JSON.parse(e),n=typeof t.installedVersion==`string`?t.installedVersion.trim():``;d(n?{version:n,automatic:t.automaticRestart===!0}:null)}catch{d(null)}};return e(),window.addEventListener(`xopc:npm-update-installed`,e),()=>window.removeEventListener(`xopc:npm-update-installed`,e)},[n]),(0,Z.useEffect)(()=>{let e=()=>{l(e=>({...e,downloading:!1})),s(e=>{let t={...e};delete t.electronReady;try{localStorage.setItem(kV,JSON.stringify(t))}catch{}return t})};return window.addEventListener(jV,e),()=>window.removeEventListener(jV,e)},[]),(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail?.version?.trim();t&&s(e=>{let n={...e,npm:t};try{localStorage.setItem(kV,JSON.stringify(n))}catch{}return n})};return window.addEventListener(`xopc:npm-update-installed`,e),()=>window.removeEventListener(`xopc:npm-update-installed`,e)},[]);let m=(0,Z.useMemo)(()=>n&&t?.state===`downloaded`&&t.version?o.electronReady===t.version?{kind:`none`}:{kind:`electron-ready`,version:t.version}:n&&t?.state===`downloading`&&!c.downloading?{kind:`electron-downloading`,percent:Math.round(t.percent??0)}:n&&t?.state===`error`&&t.message&&!c.electronError?{kind:`electron-error`,message:PV(t.message)}:!n&&u&&e&&e.currentVersion!==u.version?u.automatic?{kind:`npm-restarting`,version:u.version}:{kind:`npm-restart-required`,version:u.version}:!n&&e?.updateAvailable&&e.latestVersion?o.npm===e.latestVersion?{kind:`none`}:{kind:`npm`,version:e.latestVersion,channel:e.channel}:{kind:`none`},[o.npm,o.electronReady,t,c.downloading,c.electronError,n,e,u]);return{show:m,dismiss:(0,Z.useCallback)(()=>{if(m.kind===`electron-downloading`){l(e=>({...e,downloading:!0}));return}if(m.kind===`electron-error`){l(e=>({...e,electronError:!0}));return}if(m.kind===`npm-restart-required`||m.kind===`npm-restarting`){try{sessionStorage.removeItem(vV)}catch{}d(null);return}if(m.kind===`none`)return;let e={...o};m.kind===`npm`?e.npm=m.version:m.kind===`electron-ready`&&(e.electronReady=m.version);try{localStorage.setItem(kV,JSON.stringify(e))}catch{}s(e)},[o,m]),electronQuitAndInstall:r,runNpmUpdate:i,npmUpdateRunning:a}}var IV={version:`0.0.430`,commit:`7c4436745971b4b0979d5bab4c3cd5a4d2b32bb8`,buildTimeIso:`2026-10-29T02:50:55.525Z`},LV=`https://github.com/xopcai/xopc`,RV=new Intl.DateTimeFormat(`zh-CN`,{year:`numeric`,month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),zV=new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});function BV(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;try{return(t===`zh`?RV:zV).format(n)}catch{return n.toISOString()}}function VV({open:e,onOpenChange:t}){let n=E(e=>e.language),r=P(n),i=r.aboutDialog,a=r.updatePanel,{isElectron:o,electron:s,electronCheck:c,checkNow:l,npm:u,runNpmUpdate:d,npmUpdateRunning:f}=TV(),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(null),{data:x}=_u(async()=>{let e=await D(w(`/health`));return typeof e.version==`string`?e.version:null},[e],{enabled:e,initial:null,errorData:null}),S=(0,Z.useCallback)(e=>{e||(m(!1),g(!1),v(!1),b(null)),t(e)},[t]),C=(0,Z.useCallback)(async()=>{b(null);let e=P(n).updatePanel,t=await d();if(t.ok){_l({tone:`success`,title:e.updateSuccess,message:yV(t.result)?e.updateSuccessAutoRestartDetail:e.updateSuccessDetail,source:n===`zh`?`系统更新`:`System update`,dedupeKey:`system-update`});return}let r=t.error===`git-checkout`?e.updateErrorGit:t.error===`busy`?e.updateErrorBusy:e.updateErrorFailed;b(`${r}: ${t.message}`)},[d,n]),T=IV.commit,O=n===`zh`?`zh-CN`:`en-US`,k=BV(IV.buildTimeIso,O),A=new Date().getFullYear(),j=i.copyright.replace(`{year}`,String(A));return(0,$.jsx)(ee,{open:e,onOpenChange:S,children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[200] bg-scrim`}),(0,$.jsxs)(V,{className:Y(`xopc-dialog-content fixed left-1/2 top-1/2 z-[201] w-[min(100%-2rem,26rem)] -translate-x-1/2 -translate-y-1/2`,`rounded-2xl border border-edge bg-surface-overlay shadow-popover dark:border-edge`),onOpenAutoFocus:e=>e.preventDefault(),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 px-4 pt-3`,"aria-hidden":!0,children:[(0,$.jsx)(`span`,{className:`size-3 rounded-full bg-[#ff5f57]`}),(0,$.jsx)(`span`,{className:`size-3 rounded-full bg-[#febc2e]`}),(0,$.jsx)(`span`,{className:`size-3 rounded-full bg-[#28c840]`})]}),(0,$.jsxs)(`div`,{className:`px-6 pb-2 pt-1`,children:[(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":i.close,children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:2})})})}),(0,$.jsxs)(`div`,{className:`-mt-2 flex flex-col items-center text-center`,children:[(0,$.jsx)(Sl,{className:`size-[4.5rem]`,alt:r.appBrand}),(0,$.jsx)(H,{className:`mt-3 text-xl font-semibold tracking-tight text-fg`,children:r.appBrand}),(0,$.jsx)(R,{className:`sr-only`,children:i.windowTitle})]}),(0,$.jsxs)(`div`,{className:`mt-6 space-y-3 text-sm`,children:[(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] items-center gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-fg-muted`,children:i.versionLabel}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center justify-end gap-2 sm:justify-start`,children:[(0,$.jsx)(`span`,{className:`font-mono text-[13px] text-fg tabular-nums`,children:IV.version}),(0,$.jsx)(`button`,{type:`button`,className:Y(`shrink-0 rounded-md border border-edge bg-surface-base px-2 py-0.5 text-[11px] font-medium text-fg-muted`,`transition-colors hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`),onClick:()=>{o?(window.dispatchEvent(new CustomEvent(jV)),m(!0),c()):(m(!0),v(!1),g(!0),(async()=>{let e=await l();g(!1),e||v(!0)})())},disabled:o&&[`checking`,`available`,`downloading`,`downloaded`].includes(s?.state??``)||!o&&(h||f),children:o&&s?.state===`checking`||!o&&h?(0,$.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(ha,{className:`size-3 animate-spin`}),i.checkUpdatesChecking]}):i.checkUpdates})]})]}),o&&p&&(0,$.jsx)(HV,{state:s?.state,version:s?.version,percent:s?.percent,d:i}),!o&&p&&(0,$.jsx)(UV,{checking:h,checkFailed:_,npm:u,npmUpdateRunning:f,upgradeError:y,onUpgrade:C,d:i,tp:a}),(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`pt-0.5 text-fg-muted`,children:i.commitLabel}),(0,$.jsx)(`span`,{className:`break-all font-mono text-[11px] leading-snug text-fg`,children:T})]}),(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] items-baseline gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-fg-muted`,children:i.buildDateLabel}),(0,$.jsx)(`span`,{className:`text-right text-[13px] text-fg sm:text-left`,children:k})]}),(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] items-baseline gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-fg-muted`,children:i.gatewayVersionLabel}),(0,$.jsx)(`span`,{className:`text-right font-mono text-[13px] text-fg sm:text-left`,children:x??i.gatewayUnavailable})]}),(0,$.jsx)(`p`,{className:`pt-0.5 text-[11px] text-fg-subtle`,children:i.consoleBuildHint})]}),(0,$.jsxs)(`div`,{className:`mt-6 border-t border-edge-subtle pt-4 text-center text-[11px] leading-relaxed text-fg-muted`,children:[(0,$.jsx)(`p`,{children:(0,$.jsx)(`a`,{className:`text-accent-fg underline decoration-accent-fg/40 underline-offset-2 hover:decoration-accent-fg`,href:LV,target:`_blank`,rel:`noopener noreferrer`,children:i.repositoryLink})}),(0,$.jsx)(`p`,{className:`mt-2`,children:j})]})]})]})]})})}function HV(e){let t=(0,Q.c)(29),{state:n,version:r,percent:i,d:a}=e;if(!n||n===`idle`)return null;if(n===`checking`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ha,{className:`size-3.5 animate-spin`}),t[0]=e):e=t[0];let n;return t[1]===a.checkUpdatesChecking?n=t[2]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:a.checkUpdatesChecking})]}),t[1]=a.checkUpdatesChecking,t[2]=n),n}if(n===`not-available`){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(nr,{className:`size-3.5`}),t[3]=e):e=t[3];let n;return t[4]===a.checkUpdatesUpToDate?n=t[5]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-green-600 dark:text-green-400`,children:[e,(0,$.jsx)(`span`,{children:a.checkUpdatesUpToDate})]}),t[4]=a.checkUpdatesUpToDate,t[5]=n),n}if(n===`available`){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(vo,{className:`size-3.5`}),t[6]=e):e=t[6];let n;t[7]!==a.checkUpdatesAvailable||t[8]!==r?(n=a.checkUpdatesAvailable.replace(`{version}`,r??`?`),t[7]=a.checkUpdatesAvailable,t[8]=r,t[9]=n):n=t[9];let i;return t[10]===n?i=t[11]:(i=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-accent-fg`,children:[e,(0,$.jsx)(`span`,{children:n})]}),t[10]=n,t[11]=i),i}if(n===`downloading`){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Ur,{className:`size-3.5 motion-safe:animate-[bounce_1s_ease-out_infinite]`}),t[12]=e):e=t[12];let n=a.checkUpdatesDownloading,r;if(t[13]!==a.checkUpdatesDownloading||t[14]!==i){let e;t[16]===i?e=t[17]:(e=Math.round(i??0),t[16]=i,t[17]=e),r=n.replace(`{percent}`,String(e)),t[13]=a.checkUpdatesDownloading,t[14]=i,t[15]=r}else r=t[15];let o;return t[18]===r?o=t[19]:(o=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:r})]}),t[18]=r,t[19]=o),o}if(n===`downloaded`){let e;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Ur,{className:`size-3.5`}),t[20]=e):e=t[20];let n;t[21]!==a.checkUpdatesDownloaded||t[22]!==r?(n=a.checkUpdatesDownloaded.replace(`{version}`,r??`?`),t[21]=a.checkUpdatesDownloaded,t[22]=r,t[23]=n):n=t[23];let i;return t[24]===n?i=t[25]:(i=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] font-semibold text-accent-fg`,children:[e,(0,$.jsx)(`span`,{children:n})]}),t[24]=n,t[25]=i),i}if(n===`error`){let e;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(tr,{className:`size-3.5`}),t[26]=e):e=t[26];let n;return t[27]===a.checkUpdatesError?n=t[28]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-red-500 dark:text-red-400`,children:[e,(0,$.jsx)(`span`,{children:a.checkUpdatesError})]}),t[27]=a.checkUpdatesError,t[28]=n),n}return null}function UV(e){let t=(0,Q.c)(28),{checking:n,checkFailed:r,npm:i,npmUpdateRunning:a,upgradeError:o,onUpgrade:s,d:c,tp:l}=e;if(n){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ha,{className:`size-3.5 animate-spin`}),t[0]=e):e=t[0];let n;return t[1]===c.checkUpdatesChecking?n=t[2]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:c.checkUpdatesChecking})]}),t[1]=c.checkUpdatesChecking,t[2]=n),n}if(r){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(tr,{className:`size-3.5`}),t[3]=e):e=t[3];let n;return t[4]===c.checkUpdatesError?n=t[5]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-red-500 dark:text-red-400`,children:[e,(0,$.jsx)(`span`,{children:c.checkUpdatesError})]}),t[4]=c.checkUpdatesError,t[5]=n),n}if(a){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ha,{className:`size-3.5 animate-spin`}),t[6]=e):e=t[6];let n;return t[7]===l.updateRunning?n=t[8]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:l.updateRunning})]}),t[7]=l.updateRunning,t[8]=n),n}if(o){let e;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(tr,{className:`mt-0.5 size-3.5 shrink-0`}),t[9]=e):e=t[9];let n;return t[10]===o?n=t[11]:(n=(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-[12px] text-red-500 dark:text-red-400`,role:`alert`,children:[e,(0,$.jsx)(`span`,{children:o})]}),t[10]=o,t[11]=n),n}if(i?.updateAvailable&&i.latestVersion){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(vo,{className:`mt-0.5 size-3.5 shrink-0`}),t[12]=e):e=t[12];let n;t[13]!==i.latestVersion||t[14]!==l.reminderNpm?(n=l.reminderNpm.replace(`{{version}}`,i.latestVersion),t[13]=i.latestVersion,t[14]=l.reminderNpm,t[15]=n):n=t[15];let r;t[16]===n?r=t[17]:(r=(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-[12px] text-accent-fg`,children:[e,(0,$.jsx)(`span`,{children:n})]}),t[16]=n,t[17]=r);let a;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(a=Y(`w-full rounded-lg bg-accent px-3 py-1.5 text-center text-xs font-medium text-on-accent`,`hover:bg-accent/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,`disabled:pointer-events-none disabled:opacity-50`),t[18]=a):a=t[18];let o;t[19]!==s||t[20]!==l.updateNow?(o=(0,$.jsx)(`button`,{type:`button`,onClick:s,className:a,children:l.updateNow}),t[19]=s,t[20]=l.updateNow,t[21]=o):o=t[21];let c;return t[22]!==r||t[23]!==o?(c=(0,$.jsxs)(`div`,{className:`space-y-2`,children:[r,o]}),t[22]=r,t[23]=o,t[24]=c):c=t[24],c}let u;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(nr,{className:`size-3.5`}),t[25]=u):u=t[25];let d;return t[26]===c.checkUpdatesUpToDate?d=t[27]:(d=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-green-600 dark:text-green-400`,children:[u,(0,$.jsx)(`span`,{children:c.checkUpdatesUpToDate})]}),t[26]=c.checkUpdatesUpToDate,t[27]=d),d}var WV=Y(`flex w-full items-center gap-2 rounded-lg px-2.5 py-2 text-left text-sm font-medium leading-5 text-fg`,`transition-colors duration-150 ease-out`,`hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-overlay`),GV=Y(`overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-popover`,`dark:border-edge`);function KV(e){let t=(0,Q.c)(14),{selected:n,label:r,onSelect:i}=e,a=n&&`bg-accent-soft text-accent-fg hover:bg-accent-soft`,o;t[0]===a?o=t[1]:(o=Y(`touch-target flex w-full items-center justify-between gap-2 rounded-none px-3 py-2 text-left text-sm font-medium leading-5 text-fg`,`transition-colors duration-150 ease-out hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,a),t[0]=a,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:r}),t[2]=r,t[3]=s);let c=n?`opacity-100`:`opacity-0`,l;t[4]===c?l=t[5]:(l=Y(`size-4 shrink-0`,c),t[4]=c,t[5]=l);let u;t[6]===l?u=t[7]:(u=(0,$.jsx)(Vn,{className:l,strokeWidth:2,"aria-hidden":!0}),t[6]=l,t[7]=u);let d;return t[8]!==i||t[9]!==n||t[10]!==o||t[11]!==s||t[12]!==u?(d=(0,$.jsxs)(`button`,{type:`button`,"aria-pressed":n,className:o,onClick:i,children:[s,u]}),t[8]=i,t[9]=n,t[10]=o,t[11]=s,t[12]=u,t[13]=d):d=t[13],d}function qV(e){let t=(0,Q.c)(220),{onNavigate:n,onAboutClick:r,onSupportClick:i,onDeviceConnectClick:a}=e,[o,s]=(0,Z.useState)(null),[c,l]=(0,Z.useState)(null),u=E($V),d=E(QV),f=kl(ZV),p=kl(XV),m=Tl(YV),h=Tl(JV),g;t[0]===u?g=t[1]:(g=P(u),t[0]=u,t[1]=g);let _=g,v=_.appearanceSettings,b=u===`zh`?v.langOptionZh:v.langOptionEn,x=f===`light`?v.themeOptionLight:f===`dark`?v.themeOptionDark:v.themeOptionSystem,S=m===`compact`?v.fontScaleCompact:m===`large`?v.fontScaleLarge:v.fontScaleDefault,C=typeof window<`u`?window.electronAPI?.pet:void 0,w=!!C,T=c?.visible?v.hideDesktopPet:v.showDesktopPet,D,O;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>{if(!C)return;let e=!1;C.getState().then(t=>{e||l(t)});let t=C.onStateChanged(t=>{e||l(t)});return()=>{e=!0,t()}},O=[C],t[2]=D,t[3]=O):(D=t[2],O=t[3]),(0,Z.useEffect)(D,O);let k;t[4]===c?.visible?k=t[5]:(k=async()=>{C&&(c?.visible?await C.hide():await C.show(),l(await C.getState()))},t[4]=c?.visible,t[5]=k);let A=k,j;t[6]===o?j=t[7]:(j=e=>Y(`absolute left-full top-0 z-[60] min-w-[8.75rem] max-w-[min(calc(100vw-2rem),12rem)]`,`ml-2 sm:ml-2.5`,o===e?`block`:`hidden`),t[6]=o,t[7]=j);let M=j,N;t[8]===o?N=t[9]:(N=e=>Y(`absolute left-full top-0 z-[55] h-full w-8 sm:w-9`,o===e?`pointer-events-auto`:`pointer-events-none`),t[8]=o,t[9]=N);let F=N,I;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>s(null),t[10]=I):I=t[10];let L;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(L=()=>s(`lang`),t[11]=L):L=t[11];let R=o===`lang`&&`bg-surface-hover`,z;t[12]===R?z=t[13]:(z=Y(WV,R),t[12]=R,t[13]=z);let B=o===`lang`,V;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,$.jsx)(Ni,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[14]=V):V=t[14];let H;t[15]===v.languageTitle?H=t[16]:(H=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.languageTitle}),t[15]=v.languageTitle,t[16]=H);let ee;t[17]===b?ee=t[18]:(ee=(0,$.jsx)(`span`,{className:`max-w-20 truncate text-xs font-medium text-fg-muted`,children:b}),t[17]=b,t[18]=ee);let U;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(Wn,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[19]=U):U=t[19];let W;t[20]!==z||t[21]!==B||t[22]!==H||t[23]!==ee?(W=(0,$.jsxs)(`button`,{type:`button`,className:z,"aria-haspopup":`menu`,"aria-expanded":B,children:[V,H,ee,U]}),t[20]=z,t[21]=B,t[22]=H,t[23]=ee,t[24]=W):W=t[24];let G;t[25]===F?G=t[26]:(G=F(`lang`),t[25]=F,t[26]=G);let te;t[27]===G?te=t[28]:(te=(0,$.jsx)(`div`,{className:G,"aria-hidden":!0}),t[27]=G,t[28]=te);let ne;t[29]===M?ne=t[30]:(ne=M(`lang`),t[29]=M,t[30]=ne);let K=u===`en`,q;t[31]===d?q=t[32]:(q=()=>d(`en`),t[31]=d,t[32]=q);let re;t[33]!==v.langOptionEn||t[34]!==K||t[35]!==q?(re=(0,$.jsx)(KV,{selected:K,label:v.langOptionEn,onSelect:q}),t[33]=v.langOptionEn,t[34]=K,t[35]=q,t[36]=re):re=t[36];let ie=u===`zh`,ae;t[37]===d?ae=t[38]:(ae=()=>d(`zh`),t[37]=d,t[38]=ae);let oe;t[39]!==v.langOptionZh||t[40]!==ie||t[41]!==ae?(oe=(0,$.jsx)(KV,{selected:ie,label:v.langOptionZh,onSelect:ae}),t[39]=v.langOptionZh,t[40]=ie,t[41]=ae,t[42]=oe):oe=t[42];let se;t[43]!==re||t[44]!==oe?(se=(0,$.jsxs)(`div`,{className:GV,children:[re,oe]}),t[43]=re,t[44]=oe,t[45]=se):se=t[45];let ce;t[46]!==v.languageTitle||t[47]!==ne||t[48]!==se?(ce=(0,$.jsx)(`div`,{className:ne,role:`menu`,"aria-label":v.languageTitle,children:se}),t[46]=v.languageTitle,t[47]=ne,t[48]=se,t[49]=ce):ce=t[49];let le;t[50]!==W||t[51]!==te||t[52]!==ce?(le=(0,$.jsxs)(`div`,{className:`relative`,onMouseEnter:L,children:[W,te,ce]}),t[50]=W,t[51]=te,t[52]=ce,t[53]=le):le=t[53];let ue;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(ue=()=>s(`theme`),t[54]=ue):ue=t[54];let de=o===`theme`&&`bg-surface-hover`,fe;t[55]===de?fe=t[56]:(fe=Y(WV,de),t[55]=de,t[56]=fe);let pe=o===`theme`,me;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,$.jsx)(ik,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[57]=me):me=t[57];let he;t[58]===v.themeTitle?he=t[59]:(he=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.themeTitle}),t[58]=v.themeTitle,t[59]=he);let ge;t[60]===x?ge=t[61]:(ge=(0,$.jsx)(`span`,{className:`max-w-20 truncate text-xs font-medium text-fg-muted`,children:x}),t[60]=x,t[61]=ge);let _e;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(_e=(0,$.jsx)(Wn,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[62]=_e):_e=t[62];let ve;t[63]!==fe||t[64]!==pe||t[65]!==he||t[66]!==ge?(ve=(0,$.jsxs)(`button`,{type:`button`,className:fe,"aria-haspopup":`menu`,"aria-expanded":pe,children:[me,he,ge,_e]}),t[63]=fe,t[64]=pe,t[65]=he,t[66]=ge,t[67]=ve):ve=t[67];let ye;t[68]===F?ye=t[69]:(ye=F(`theme`),t[68]=F,t[69]=ye);let be;t[70]===ye?be=t[71]:(be=(0,$.jsx)(`div`,{className:ye,"aria-hidden":!0}),t[70]=ye,t[71]=be);let J;t[72]===M?J=t[73]:(J=M(`theme`),t[72]=M,t[73]=J);let xe=f===`light`,Se;t[74]===p?Se=t[75]:(Se=()=>p(`light`),t[74]=p,t[75]=Se);let Ce;t[76]!==v.themeOptionLight||t[77]!==xe||t[78]!==Se?(Ce=(0,$.jsx)(KV,{selected:xe,label:v.themeOptionLight,onSelect:Se}),t[76]=v.themeOptionLight,t[77]=xe,t[78]=Se,t[79]=Ce):Ce=t[79];let we=f===`dark`,Te;t[80]===p?Te=t[81]:(Te=()=>p(`dark`),t[80]=p,t[81]=Te);let Ee;t[82]!==v.themeOptionDark||t[83]!==we||t[84]!==Te?(Ee=(0,$.jsx)(KV,{selected:we,label:v.themeOptionDark,onSelect:Te}),t[82]=v.themeOptionDark,t[83]=we,t[84]=Te,t[85]=Ee):Ee=t[85];let De=f===`system`,Oe;t[86]===p?Oe=t[87]:(Oe=()=>p(`system`),t[86]=p,t[87]=Oe);let ke;t[88]!==v.themeOptionSystem||t[89]!==De||t[90]!==Oe?(ke=(0,$.jsx)(KV,{selected:De,label:v.themeOptionSystem,onSelect:Oe}),t[88]=v.themeOptionSystem,t[89]=De,t[90]=Oe,t[91]=ke):ke=t[91];let Ae;t[92]!==Ce||t[93]!==Ee||t[94]!==ke?(Ae=(0,$.jsxs)(`div`,{className:GV,children:[Ce,Ee,ke]}),t[92]=Ce,t[93]=Ee,t[94]=ke,t[95]=Ae):Ae=t[95];let je;t[96]!==v.themeTitle||t[97]!==J||t[98]!==Ae?(je=(0,$.jsx)(`div`,{className:J,role:`menu`,"aria-label":v.themeTitle,children:Ae}),t[96]=v.themeTitle,t[97]=J,t[98]=Ae,t[99]=je):je=t[99];let Me;t[100]!==ve||t[101]!==be||t[102]!==je?(Me=(0,$.jsxs)(`div`,{className:`relative`,onMouseEnter:ue,children:[ve,be,je]}),t[100]=ve,t[101]=be,t[102]=je,t[103]=Me):Me=t[103];let Ne;t[104]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=()=>s(`font`),t[104]=Ne):Ne=t[104];let Pe=o===`font`&&`bg-surface-hover`,Fe;t[105]===Pe?Fe=t[106]:(Fe=Y(WV,Pe),t[105]=Pe,t[106]=Fe);let Ie=o===`font`,Le;t[107]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,$.jsx)(sL,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[107]=Le):Le=t[107];let Re;t[108]===v.fontScaleTitle?Re=t[109]:(Re=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.fontScaleTitle}),t[108]=v.fontScaleTitle,t[109]=Re);let ze;t[110]===S?ze=t[111]:(ze=(0,$.jsx)(`span`,{className:`max-w-20 truncate text-xs font-medium text-fg-muted`,children:S}),t[110]=S,t[111]=ze);let Be;t[112]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,$.jsx)(Wn,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[112]=Be):Be=t[112];let Ve;t[113]!==Fe||t[114]!==Ie||t[115]!==Re||t[116]!==ze?(Ve=(0,$.jsxs)(`button`,{type:`button`,className:Fe,"aria-haspopup":`menu`,"aria-expanded":Ie,children:[Le,Re,ze,Be]}),t[113]=Fe,t[114]=Ie,t[115]=Re,t[116]=ze,t[117]=Ve):Ve=t[117];let He;t[118]===F?He=t[119]:(He=F(`font`),t[118]=F,t[119]=He);let Ue;t[120]===He?Ue=t[121]:(Ue=(0,$.jsx)(`div`,{className:He,"aria-hidden":!0}),t[120]=He,t[121]=Ue);let We;t[122]===M?We=t[123]:(We=M(`font`),t[122]=M,t[123]=We);let Ge=m===`compact`,Ke;t[124]===h?Ke=t[125]:(Ke=()=>h(`compact`),t[124]=h,t[125]=Ke);let qe;t[126]!==v.fontScaleCompact||t[127]!==Ge||t[128]!==Ke?(qe=(0,$.jsx)(KV,{selected:Ge,label:v.fontScaleCompact,onSelect:Ke}),t[126]=v.fontScaleCompact,t[127]=Ge,t[128]=Ke,t[129]=qe):qe=t[129];let Je=m==="default",Ye;t[130]===h?Ye=t[131]:(Ye=()=>h(`default`),t[130]=h,t[131]=Ye);let Xe;t[132]!==v.fontScaleDefault||t[133]!==Je||t[134]!==Ye?(Xe=(0,$.jsx)(KV,{selected:Je,label:v.fontScaleDefault,onSelect:Ye}),t[132]=v.fontScaleDefault,t[133]=Je,t[134]=Ye,t[135]=Xe):Xe=t[135];let Ze=m===`large`,Qe;t[136]===h?Qe=t[137]:(Qe=()=>h(`large`),t[136]=h,t[137]=Qe);let $e;t[138]!==v.fontScaleLarge||t[139]!==Ze||t[140]!==Qe?($e=(0,$.jsx)(KV,{selected:Ze,label:v.fontScaleLarge,onSelect:Qe}),t[138]=v.fontScaleLarge,t[139]=Ze,t[140]=Qe,t[141]=$e):$e=t[141];let et;t[142]!==qe||t[143]!==Xe||t[144]!==$e?(et=(0,$.jsxs)(`div`,{className:GV,children:[qe,Xe,$e]}),t[142]=qe,t[143]=Xe,t[144]=$e,t[145]=et):et=t[145];let tt;t[146]!==v.fontScaleTitle||t[147]!==We||t[148]!==et?(tt=(0,$.jsx)(`div`,{className:We,role:`menu`,"aria-label":v.fontScaleTitle,children:et}),t[146]=v.fontScaleTitle,t[147]=We,t[148]=et,t[149]=tt):tt=t[149];let nt;t[150]!==Ve||t[151]!==Ue||t[152]!==tt?(nt=(0,$.jsxs)(`div`,{className:`relative`,onMouseEnter:Ne,children:[Ve,Ue,tt]}),t[150]=Ve,t[151]=Ue,t[152]=tt,t[153]=nt):nt=t[153];let rt;t[154]!==T||t[155]!==A?(rt=w?(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:()=>void A(),onMouseEnter:()=>s(null),onFocus:()=>s(null),children:[(0,$.jsx)(Ok,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:T})]}):null,t[154]=T,t[155]=A,t[156]=rt):rt=t[156];let it;t[157]===a?it=t[158]:(it=()=>a?.(),t[157]=a,t[158]=it);let at,ot,st;t[159]===Symbol.for(`react.memo_cache_sentinel`)?(at=()=>s(null),ot=()=>s(null),st=(0,$.jsx)(Ra,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[159]=at,t[160]=ot,t[161]=st):(at=t[159],ot=t[160],st=t[161]);let ct;t[162]===_.endpointToolsSettings.deviceAccess.flow.title?ct=t[163]:(ct=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:_.endpointToolsSettings.deviceAccess.flow.title}),t[162]=_.endpointToolsSettings.deviceAccess.flow.title,t[163]=ct);let lt;t[164]!==it||t[165]!==ct?(lt=(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:it,onMouseEnter:at,onFocus:ot,children:[st,ct]}),t[164]=it,t[165]=ct,t[166]=lt):lt=t[166];let ut;t[167]===Symbol.for(`react.memo_cache_sentinel`)?(ut=(0,$.jsx)(`div`,{className:`my-2 h-px bg-edge-subtle`,role:`separator`}),t[167]=ut):ut=t[167];let dt;t[168]===r?dt=t[169]:(dt=()=>r?.(),t[168]=r,t[169]=dt);let ft,pt,mt;t[170]===Symbol.for(`react.memo_cache_sentinel`)?(ft=()=>s(null),pt=()=>s(null),mt=(0,$.jsx)(aa,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[170]=ft,t[171]=pt,t[172]=mt):(ft=t[170],pt=t[171],mt=t[172]);let ht;t[173]===v.aboutApp?ht=t[174]:(ht=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.aboutApp}),t[173]=v.aboutApp,t[174]=ht);let gt;t[175]!==dt||t[176]!==ht?(gt=(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:dt,onMouseEnter:ft,onFocus:pt,children:[mt,ht]}),t[175]=dt,t[176]=ht,t[177]=gt):gt=t[177];let _t;t[178]===u?_t=t[179]:(_t=zl(u),t[178]=u,t[179]=_t);let vt,yt,bt;t[180]===Symbol.for(`react.memo_cache_sentinel`)?(vt=()=>s(null),yt=()=>s(null),bt=(0,$.jsx)(Cn,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[180]=vt,t[181]=yt,t[182]=bt):(vt=t[180],yt=t[181],bt=t[182]);let xt;t[183]===_.sidebar.helpDocs?xt=t[184]:(xt=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:_.sidebar.helpDocs}),t[183]=_.sidebar.helpDocs,t[184]=xt);let St;t[185]===Symbol.for(`react.memo_cache_sentinel`)?(St=(0,$.jsx)(Kr,{className:`size-3.5 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[185]=St):St=t[185];let Ct;t[186]!==_t||t[187]!==xt?(Ct=(0,$.jsxs)(`a`,{href:_t,target:`_blank`,rel:`noopener noreferrer`,className:WV,onMouseEnter:vt,onFocus:yt,children:[bt,xt,St]}),t[186]=_t,t[187]=xt,t[188]=Ct):Ct=t[188];let wt;t[189]===i?wt=t[190]:(wt=()=>i?.(),t[189]=i,t[190]=wt);let Tt,Et,Dt;t[191]===Symbol.for(`react.memo_cache_sentinel`)?(Dt=()=>s(null),Tt=()=>s(null),Et=(0,$.jsx)(wD,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[191]=Tt,t[192]=Et,t[193]=Dt):(Tt=t[191],Et=t[192],Dt=t[193]);let Ot;t[194]===_.supportReport.menu?Ot=t[195]:(Ot=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:_.supportReport.menu}),t[194]=_.supportReport.menu,t[195]=Ot);let kt;t[196]!==Ot||t[197]!==wt?(kt=(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:wt,onMouseEnter:Dt,onFocus:Tt,children:[Et,Ot]}),t[196]=Ot,t[197]=wt,t[198]=kt):kt=t[198];let At,jt,Mt;t[199]===Symbol.for(`react.memo_cache_sentinel`)?(At=Y(WV,`text-accent-fg hover:bg-accent-soft hover:text-accent-fg`),jt=()=>s(null),Mt=()=>s(null),t[199]=At,t[200]=jt,t[201]=Mt):(At=t[199],jt=t[200],Mt=t[201]);let Nt;t[202]===n?Nt=t[203]:(Nt=()=>n?.(),t[202]=n,t[203]=Nt);let Pt;t[204]===Symbol.for(`react.memo_cache_sentinel`)?(Pt=(0,$.jsx)(Do,{className:`size-4 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[204]=Pt):Pt=t[204];let Ft;t[205]===v.openFullPreferences?Ft=t[206]:(Ft=(0,$.jsx)(`span`,{className:`min-w-0 flex-1`,children:v.openFullPreferences}),t[205]=v.openFullPreferences,t[206]=Ft);let It;t[207]!==Nt||t[208]!==Ft?(It=(0,$.jsxs)(y,{to:`/settings/overview`,className:At,onMouseEnter:jt,onFocus:Mt,onClick:Nt,children:[Pt,Ft]}),t[207]=Nt,t[208]=Ft,t[209]=It):It=t[209];let Lt;return t[210]!==kt||t[211]!==It||t[212]!==le||t[213]!==Me||t[214]!==nt||t[215]!==rt||t[216]!==lt||t[217]!==gt||t[218]!==Ct?(Lt=(0,$.jsxs)(`div`,{className:`w-[min(calc(100vw-2rem),13rem)] shrink-0 py-0.5`,onMouseLeave:I,children:[le,Me,nt,rt,lt,ut,gt,Ct,kt,It]}),t[210]=kt,t[211]=It,t[212]=le,t[213]=Me,t[214]=nt,t[215]=rt,t[216]=lt,t[217]=gt,t[218]=Ct,t[219]=Lt):Lt=t[219],Lt}function JV(e){return e.setPreference}function YV(e){return e.preference}function XV(e){return e.setPreference}function ZV(e){return e.preference}function QV(e){return e.setLanguage}function $V(e){return e.language}var eH=`open-support-report`;function tH(e={}){window.dispatchEvent(new CustomEvent(eH,{detail:e}))}function nH(){let e=(0,Q.c)(30),[t,n]=(0,Z.useState)(!1),r=E(sH)===`zh`,i=gl(oH),a=gl(aH),o=gl(iH),s;e[0]===i?s=e[1]:(s=i.filter(rH),e[0]=i,e[1]=s);let c=s.length,l=r?`通知`:`Notifications`,u=`${l}${c?` (${c})`:``}`,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,$.jsx)(en,{className:`size-[18px]`,"aria-hidden":!0}),e[2]=d):d=e[2];let f;e[3]===c?f=e[4]:(f=c?(0,$.jsx)(`span`,{className:`absolute right-2 top-2 size-1.5 rounded-full bg-accent`}):null,e[3]=c,e[4]=f);let p;e[5]!==u||e[6]!==f||e[7]!==l?(p=(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-label":u,title:l,className:`relative flex size-10 shrink-0 items-center justify-center rounded-xl text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-2 focus-visible:outline-accent`,children:[d,f]})}),e[5]=u,e[6]=f,e[7]=l,e[8]=p):p=e[8];let m;e[9]===l?m=e[10]:(m=(0,$.jsx)(`h2`,{className:`text-sm font-medium`,children:l}),e[9]=l,e[10]=m);let h;e[11]!==o||e[12]!==c||e[13]!==r?(h=c?(0,$.jsx)(`button`,{type:`button`,onClick:o,className:`text-xs text-fg-muted hover:text-fg`,children:r?`全部已读`:`Mark all read`}):null,e[11]=o,e[12]=c,e[13]=r,e[14]=h):h=e[14];let g;e[15]!==m||e[16]!==h?(g=(0,$.jsxs)(`header`,{className:`flex items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[m,h]}),e[15]=m,e[16]=h,e[17]=g):g=e[17];let _;e[18]!==i||e[19]!==a||e[20]!==r?(_=i.length?(0,$.jsx)(`ul`,{className:`min-h-0 overflow-y-auto overscroll-contain p-1`,children:i.map(e=>{let t=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(e.tone===`error`||e.tone===`warning`?tr:ir,{className:`mt-0.5 size-4 shrink-0 ${e.tone===`error`?`text-danger`:`text-fg-muted`}`,"aria-hidden":!0}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block text-sm ${e.read?`text-fg-muted`:`font-medium text-fg`}`,children:e.title}),e.message?(0,$.jsx)(`span`,{className:`mt-1 line-clamp-2 block text-xs leading-5 text-fg-muted`,children:e.message}):null,(0,$.jsx)(`time`,{dateTime:new Date(e.createdAt).toISOString(),className:`mt-1 block text-xs text-fg-subtle`,children:new Date(e.createdAt).toLocaleString(r?`zh-CN`:`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})})]}),e.read?null:(0,$.jsx)(`span`,{className:`mt-1.5 size-1.5 shrink-0 rounded-full bg-accent`})]});return(0,$.jsx)(`li`,{children:e.href?.startsWith(`/`)&&!e.href.startsWith(`//`)?(0,$.jsx)(y,{className:`flex w-full gap-3 rounded-lg px-3 py-3 text-left hover:bg-surface-hover focus-visible:outline-2 focus-visible:outline-accent`,to:e.href,onClick:()=>{a(e.id),n(!1)},children:t}):(0,$.jsx)(`div`,{className:`flex w-full gap-3 rounded-lg px-3 py-3 text-left hover:bg-surface-hover focus-visible:outline-2 focus-visible:outline-accent`,children:t})},e.id)})}):(0,$.jsx)(`p`,{className:`px-4 py-8 text-center text-sm text-fg-muted`,children:r?`暂无通知`:`No notifications yet`}),e[18]=i,e[19]=a,e[20]=r,e[21]=_):_=e[21];let v;e[22]!==g||e[23]!==_||e[24]!==l?(v=(0,$.jsx)(Jc,{children:(0,$.jsxs)(Yc,{"aria-label":l,side:`top`,align:`end`,sideOffset:8,collisionPadding:12,className:`z-[95] flex max-h-[min(32rem,calc(100dvh-2rem))] w-[min(23rem,calc(100vw-2rem))] flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-popover`,children:[g,_]})}),e[22]=g,e[23]=_,e[24]=l,e[25]=v):v=e[25];let b;return e[26]!==t||e[27]!==p||e[28]!==v?(b=(0,$.jsxs)(Xc,{open:t,onOpenChange:n,children:[p,v]}),e[26]=t,e[27]=p,e[28]=v,e[29]=b):b=e[29],b}function rH(e){return!e.read}function iH(e){return e.markAllRead}function aH(e){return e.markRead}function oH(e){return e.items}function sH(e){return e.language}var cH=(0,Z.lazy)(()=>s(()=>import(`./device-pairing-wizard-Wb1EKiXA.js`).then(e=>e.n).then(e=>({default:e.DevicePairingWizard})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52])));function lH({collapsed:e=!1,onNavigate:t}){let n=P(E(e=>e.language)),[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1);return(0,Z.useEffect)(()=>{s(()=>import(`./settings-page-B6vrcc6f.js`),__vite__mapDeps([53,1,2,3,4,5,6,54])),s(()=>import(`./sessions-page-C2CH-55n.js`),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,56,11,57,13,58,59,60,61,62,63,20,21,31,64,65,35,22,25,26,27,28,66,67,68,14,69,70,71,72,73,74,75,76,77,19,78,79,23,45,80,81,24,50,46,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,15,97,98,48,49,99,100,43,101])),s(()=>import(`./logs-page-McbSQwJI.js`),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,103,11,65,35,20,21,22,25,26,27,28,104,14,105,106,107,108,109,75,63,19,78,31,79,110,111,24,37,46,83,112,91,96,15,97,98])),s(()=>import(`./automations-page-BQwSCkmd.js`),__vite__mapDeps([113,2,1,114,4,3,5,6,7,8,9,115,11,116,117,35,103,10,65,20,21,22,25,26,27,28,100,12,36,118,119,58,108,120,121,14,122,74,19,29,30,31,32,37,123,124,125,59,126,49,127,109,75,128,97,129,77,130,131,132,133,134,78,79,135,136,137,138,139,140,110,111,81,141,45,23,80,24,142,87,83,112,143,89,62,90,50,46,144,13,145,146,147,148,149,150,151])),s(()=>import(`./capabilities-page-B8UgQ4dD.js`),__vite__mapDeps([152,1,2,4,3,5,6,22,20,21,153,142,154,155,75,11,24,9,25,8,26,27,156]))},[]),(0,$.jsxs)(`div`,{className:Y(`flex shrink-0 flex-col`,e&&`mt-auto`,e?`items-center px-1 py-2`:`p-3`),children:[c?(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(cH,{open:!0,onOpenChange:l})}):null,(0,$.jsxs)(Xc,{open:r,onOpenChange:i,children:[e?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,$.jsx)(y,{to:`/user-model`,onClick:()=>t?.(),className:`rounded-full outline-none ring-offset-surface-base transition-transform hover:opacity-95 active:scale-95 focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 motion-reduce:active:scale-100`,title:n.nav.profile,"aria-label":n.nav.profile,children:(0,$.jsx)(vu,{variant:`avatar`,className:`size-10`})}),(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:Y(`flex size-10 shrink-0 items-center justify-center rounded-xl text-fg-muted outline-none ring-offset-surface-base transition-colors`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2`,r&&`bg-accent-soft text-accent-fg`),"aria-expanded":r,"aria-haspopup":`dialog`,title:n.sidebar.appMenuAria,"aria-label":n.sidebar.appMenuAria,children:(0,$.jsx)(Do,{className:`size-[17px]`,strokeWidth:1.5})})}),(0,$.jsx)(nH,{})]}):(0,$.jsxs)(`div`,{className:`flex w-full min-w-0 items-center gap-1 rounded-xl p-1`,children:[(0,$.jsx)(y,{to:`/user-model`,onClick:()=>t?.(),className:Y(`flex size-10 shrink-0 items-center justify-center rounded-full text-left outline-none transition-transform duration-150 ease-out`,`hover:bg-surface-active/70`,`hover:opacity-95 active:scale-95`,`focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),title:n.nav.profile,"aria-label":n.nav.profile,children:(0,$.jsx)(vu,{variant:`avatar`,className:`size-10`})}),(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,className:Y(`flex min-h-10 min-w-0 flex-1 items-center gap-2 rounded-xl px-2 text-left text-fg-muted transition-colors`,`outline-none hover:bg-surface-hover hover:text-fg`,`focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,r&&`bg-accent-soft text-accent-fg`),"aria-expanded":r,"aria-haspopup":`dialog`,title:n.sidebar.appMenuAria,"aria-label":n.sidebar.appMenuAria,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-semibold leading-tight text-fg`,children:n.appBrand}),(0,$.jsx)(`div`,{className:`truncate text-xs text-fg-muted`,children:n.appearanceSettings.quickMenuHint})]}),(0,$.jsx)(Do,{className:`size-[18px] shrink-0`,strokeWidth:1.5})]})}),(0,$.jsx)(nH,{})]}),(0,$.jsx)(Jc,{children:(0,$.jsx)(Yc,{className:Y(`z-50 w-max max-w-[min(calc(100vw-1rem),28rem)] overflow-visible`,`rounded-xl border border-edge bg-surface-overlay p-2 shadow-popover dark:border-edge`),side:`top`,align:e?`center`:`end`,sideOffset:8,collisionPadding:12,onOpenAutoFocus:e=>e.preventDefault(),onCloseAutoFocus:e=>e.preventDefault(),children:(0,$.jsx)(qV,{onNavigate:()=>{i(!1),t?.()},onAboutClick:()=>{o(!0),i(!1)},onSupportClick:()=>{i(!1),tH()},onDeviceConnectClick:()=>{i(!1),l(!0)}})})})]}),(0,$.jsx)(VV,{open:a,onOpenChange:o})]})}function uH(e){return az[e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)]}var dH=3,fH=[`work`,`capabilities`,`automation`,`apps`],pH={work:Ln,capabilities:ca,automation:Qo,apps:vh};function mH(e,t,n=!1){return Y(`flex w-full items-center text-sm font-medium transition-colors duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,n?`gap-2 rounded-md px-2 py-1.5 text-left leading-5`:e?`justify-center rounded-xl p-2.5 leading-6`:`gap-2 rounded-lg px-3 py-2.5 text-left leading-6 md:py-1.5`,t?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`)}function hH(e){let t=(0,Q.c)(2),{Icon:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(n,{className:`size-4 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),t[0]=n,t[1]=r),r}function gH(e){let t=(0,Q.c)(34),{collapsed:n,onNavigate:r,visibleLimit:i}=e,a=n!==void 0&&n,o=i===void 0?dH:i,{pathname:s}=p(),c=E(CH),l=P(c),u=l.productNavigation,d;t[0]===s?d=t[1]:(d=Lc(s),t[0]=s,t[1]=d);let f=d,m=$s(),{profile:h,displayName:g}=yu(),_=ze(),[v,b]=(0,Z.useState)(!1),x=fH.map(e=>{let t=Rc.find(t=>t.id===e);return{id:e,label:u.domains[e],to:t.path,Icon:pH[e],active:f===e}}),S=Number.isFinite(o)?Math.min(x.length,Math.max(1,Math.round(o))):dH,C=x.slice(0,S),w=x.slice(S),T;t[2]===s?T=t[3]:(T=e=>e.activationEligible===!1?[]:(e.ui?.contributions?.pages??[]).filter(SH).map(t=>{let n=rr(e.id,t);return{id:`extension:${e.id}:${t.id}`,label:t.title,to:n,Icon:t.navIcon?uH(t.navIcon)??mo:mo,active:s===n||s.startsWith(`${n}/`)}}),t[2]=s,t[3]=T);let D=m.flatMap(T),O=w.some(xH)||D.some(bH),k;t[4]!==a||t[5]!==r?(k=(e,t)=>{let n=t!==void 0&&t;return(0,$.jsxs)(y,{to:e.to,"aria-current":e.active?`page`:void 0,className:mH(a,e.active,n),title:e.label,onMouseEnter:()=>hu(e.to),onFocus:()=>hu(e.to),onClick:()=>{b(!1),r?.()},children:[(0,$.jsx)(hH,{Icon:e.Icon}),!a||n?(0,$.jsx)(`span`,{className:`truncate`,children:e.label}):null]},e.id)},t[4]=a,t[5]=r,t[6]=k):k=t[6];let A=k,j=s===`/personal`?`page`:void 0,M;t[7]!==a||t[8]!==s?(M=Y(`relative`,mH(a,s===`/personal`)),t[7]=a,t[8]=s,t[9]=M):M=t[9];let N=h?.appearance??`loopi`,F=h?.agentId,I;t[10]!==N||t[11]!==F?(I=(0,$.jsx)(`span`,{className:`flex size-5 shrink-0 items-center justify-center`,"aria-hidden":!0,children:(0,$.jsx)(ao,{appearance:N,agentId:F,className:`size-5`})}),t[10]=N,t[11]=F,t[12]=I):I=t[12];let L;t[13]!==a||t[14]!==g?(L=!a&&(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:g}),t[13]=a,t[14]=g,t[15]=L):L=t[15];let R;t[16]!==a||t[17]!==c||t[18]!==_?(R=_>0&&(0,$.jsx)(`span`,{"aria-label":c===`zh`?`${_} 条未读消息`:`${_} unread messages`,className:Y(`shrink-0 rounded-full bg-accent/15 px-1.5 text-center text-[10px] font-semibold leading-5 tabular-nums text-accent`,a?`absolute right-0 top-0 min-w-4 leading-4`:`min-w-5`),children:Le(_)}),t[16]=a,t[17]=c,t[18]=_,t[19]=R):R=t[19];let z;t[20]!==g||t[21]!==r||t[22]!==I||t[23]!==L||t[24]!==R||t[25]!==j||t[26]!==M?(z=(0,$.jsxs)(y,{to:`/personal`,"aria-current":j,className:M,title:g,onMouseEnter:yH,onFocus:vH,onClick:r,children:[I,L,R]}),t[20]=g,t[21]=r,t[22]=I,t[23]=L,t[24]=R,t[25]=j,t[26]=M,t[27]=z):z=t[27];let B;t[28]===A?B=t[29]:(B=e=>A(e),t[28]=A,t[29]=B);let V=C.map(B),H=w.length>0||D.length>0?(0,$.jsxs)(Xc,{open:v,onOpenChange:b,children:[(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-label":l.sidebar.moreAppsAria,title:l.sidebar.moreApps,className:Y(`flex w-full items-center text-sm font-medium leading-6 transition-colors duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,a?`justify-center rounded-xl p-2.5`:`gap-2 rounded-lg px-3 py-2.5 text-left md:py-1.5`,v||O?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:[(0,$.jsx)(Gr,{className:`size-4 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),a?null:(0,$.jsx)(`span`,{className:`truncate`,children:l.sidebar.moreApps})]})}),(0,$.jsx)(Jc,{children:(0,$.jsx)(Yc,{side:`right`,align:`start`,sideOffset:8,collisionPadding:8,className:`z-50 max-h-[min(32rem,var(--radix-popover-content-available-height))] min-w-[14rem] max-w-[20rem] overflow-y-auto rounded-lg border border-edge bg-surface-overlay p-1 shadow-popover`,onOpenAutoFocus:_H,children:(0,$.jsxs)(`nav`,{className:`flex flex-col gap-1`,"aria-label":l.sidebar.moreAppsAria,children:[w.map(e=>A(e,!0)),D.length>0?(0,$.jsxs)(`section`,{"aria-labelledby":`sidebar-more-extension-apps`,children:[(0,$.jsx)(`div`,{id:`sidebar-more-extension-apps`,className:`px-2 pb-1 pt-1.5 text-[11px] font-semibold tracking-wide text-fg-subtle`,children:l.sidebar.extensionAppsHeading}),(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:D.map(e=>A(e,!0))})]}):null]})})})]}):null,ee;return t[30]!==z||t[31]!==V||t[32]!==H?(ee=(0,$.jsxs)($.Fragment,{children:[z,V,H]}),t[30]=z,t[31]=V,t[32]=H,t[33]=ee):ee=t[33],ee}function _H(e){return e.preventDefault()}function vH(){return hu(`/personal`)}function yH(){return hu(`/personal`)}function bH(e){return e.active}function xH(e){return e.active}function SH(e){return e.showInNav}function CH(e){return e.language}var wH={sources:[],purposes:[],activity:``,project:``,days:``,status:`visible`,agentId:``,details:!1};function TH(e){return!!(e.sources.length||e.purposes.length||e.activity||e.project||e.days||e.agentId||e.status!==`visible`)}function EH(e,t,n=Date.now()){return{search:t.trim()||void 0,sources:e.sources.length?e.sources:void 0,purposes:e.purposes.length?e.purposes:[...Ya],activity:e.activity||void 0,projectId:e.project&&e.project!==`__unassigned`?e.project:void 0,unassigned:e.project===`__unassigned`||void 0,updatedAfter:e.days?n-Number(e.days)*864e5:void 0,status:e.status===`visible`?void 0:e.status,excludeArchived:e.status!==`archived`,agentId:e.agentId||void 0,sortBy:`updatedAt`,sortOrder:`desc`}}function DH(e){return`xopc-session-filters-v1:${e}`}function OH(e){try{let t=Ja.safeParse({sources:e.sources,purposes:e.purposes,activity:e.activity||void 0,agentId:e.agentId||void 0});return t.success?{...wH,...t.data,sources:t.data.sources??[],purposes:t.data.purposes??[],activity:t.data.activity??``,agentId:t.data.agentId??``,project:typeof e.project==`string`?e.project:``,days:typeof e.days==`string`&&[``,`7`,`30`,`60`].includes(e.days)?e.days:``,status:e.status===`pinned`||e.status===`archived`?e.status:`visible`,details:e.details===!0}:{...wH}}catch{return{...wH}}}function kH(e){try{return OH(JSON.parse(localStorage.getItem(DH(e))??`{}`))}catch{return{...wH}}}function AH(e,t){try{localStorage.setItem(DH(e),JSON.stringify(t))}catch{}}async function jH(){let e=[];for(let t=0;;){let n=await _s({limit:100,offset:t,sortBy:`name`,sortOrder:`asc`});if(e.push(...n.items),t+=n.items.length,!n.items.length||t>=n.total)return e}}var MH=e=>`xopc-session-views-v1:${e}`;function NH(e){try{let t=JSON.parse(localStorage.getItem(MH(e))??`[]`);return Array.isArray(t)?t.filter(e=>e&&typeof e.id==`string`&&typeof e.name==`string`&&e.name.trim()).slice(0,20).map(e=>({id:e.id,name:e.name.slice(0,60),filters:OH(e.filters??{}),search:typeof e.search==`string`?e.search.slice(0,500):``})):[]}catch{return[]}}function PH(e,t){try{return localStorage.setItem(MH(e),JSON.stringify(t)),!0}catch{return!1}}var FH=`rounded-md px-2 py-1.5 text-xs text-fg-muted hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-50`,IH=`flex size-8 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`;function LH(e){let t=(0,Q.c)(10),{label:n,summary:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=(0,$.jsx)(`span`,{className:`shrink-0`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-right text-xs text-fg-muted`,title:r,children:r}),t[2]=r,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(Wn,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[4]=s):s=t[4];let c;return t[5]!==n||t[6]!==i||t[7]!==a||t[8]!==o?(c=(0,$.jsxs)(`button`,{type:`button`,onClick:i,className:`flex min-h-10 w-full min-w-0 items-center gap-3 rounded-md px-2 py-2 text-left text-sm hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":n,children:[a,o,s]}),t[5]=n,t[6]=i,t[7]=a,t[8]=o,t[9]=c):c=t[9],c}function RH(e){let t=(0,Q.c)(261),{filters:n,onChange:r,search:i,onSearch:a,labels:o,gateway:s,agents:c}=e,[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(`home`),[p,m]=(0,Z.useState)(``),h;t[0]===s?h=t[1]:(h=()=>NH(s),t[0]=s,t[1]=h);let[g,_]=(0,Z.useState)(h),[v,y]=(0,Z.useState)(``),[b,x]=(0,Z.useState)(!1),S=(0,Z.useRef)(null),C=(0,Z.useRef)(`home`),w=(0,Z.useId)(),T=(0,Z.useId)(),E;if(t[2]!==n||t[3]!==g||t[4]!==i){let e;t[6]!==n||t[7]!==i?(e=e=>e.search===i&&JSON.stringify(e.filters)===JSON.stringify(n),t[6]=n,t[7]=i,t[8]=e):e=t[8],E=g.find(e),t[2]=n,t[3]=g,t[4]=i,t[5]=E}else E=t[5];let D=E,O;t[9]!==n.project||t[10]!==s||t[11]!==l||t[12]!==d?(O=l&&d===`project`||n.project?[`session-filter-projects`,s]:null,t[9]=n.project,t[10]=s,t[11]=l,t[12]=d,t[13]=O):O=t[13];let{data:k,error:A,mutate:j}=oc(O,jH),M;t[14]!==n||t[15]!==r?(M=e=>r({...n,...e}),t[14]=n,t[15]=r,t[16]=M):M=t[16];let N=M,P;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(P=e=>{f(e),m(``),x(!1)},t[17]=P):P=t[17];let F=P,I;t[18]===d?I=t[19]:(I=()=>F(d===`save`?`views`:[`purposes`,`status`,`agent`].includes(d)?`advanced`:`home`),t[18]=d,t[19]=I);let L=I,R;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(R=e=>{u(e),e&&F(`home`)},t[20]=R):R=t[20];let z=R,B,V;t[21]!==l||t[22]!==d?(B=()=>{l&&C.current!==d&&(S.current?.querySelector(`[data-page-autofocus]`))?.focus(),C.current=d},V=[l,d],t[21]=l,t[22]=d,t[23]=B,t[24]=V):(B=t[23],V=t[24]),(0,Z.useLayoutEffect)(B,V);let H;t[25]===n?H=t[26]:(H=TH({...n,activity:``}),t[25]=n,t[26]=H);let ee=H,U=n.status!==`visible`,W;t[27]!==n.activity||t[28]!==n.agentId||t[29]!==n.days||t[30]!==n.project||t[31]!==n.purposes.length||t[32]!==n.sources.length||t[33]!==U?(W=[n.sources.length,n.purposes.length,n.project,n.days,n.agentId,n.activity,U].filter(Boolean),t[27]=n.activity,t[28]=n.agentId,t[29]=n.days,t[30]=n.project,t[31]=n.purposes.length,t[32]=n.sources.length,t[33]=U,t[34]=W):W=t[34];let G=W.length,te=n.status!==`visible`,ne;t[35]!==n.agentId||t[36]!==n.purposes.length||t[37]!==te?(ne=[n.purposes.length,n.agentId,te].filter(Boolean),t[35]=n.agentId,t[36]=n.purposes.length,t[37]=te,t[38]=ne):ne=t[38];let K=ne.length,q;t[39]===o.selectedCount?q=t[40]:(q=e=>o.selectedCount.replace(`{{count}}`,String(e)),t[39]=o.selectedCount,t[40]=q);let re=q,ie;t[41]!==n.sources||t[42]!==o.all||t[43]!==o.sources?(ie=n.sources.length?n.sources.map(e=>o.sources[e]).join(` · `):o.all,t[41]=n.sources,t[42]=o.all,t[43]=o.sources,t[44]=ie):ie=t[44];let ae=ie,oe;t[45]!==n.purposes||t[46]!==o.all||t[47]!==o.purposes?(oe=n.purposes.length?n.purposes.map(e=>o.purposes[e]).join(` · `):o.all,t[45]=n.purposes,t[46]=o.all,t[47]=o.purposes,t[48]=oe):oe=t[48];let se=oe,ce;t[49]!==n.project||t[50]!==o.unassigned||t[51]!==k?(ce=n.project===`__unassigned`?o.unassigned:k?.find(e=>e.id===n.project)?.name??n.project,t[49]=n.project,t[50]=o.unassigned,t[51]=k,t[52]=ce):ce=t[52];let le=ce,ue;t[53]!==n.days||t[54]!==o.anyTime||t[55]!==o.days?(ue=n.days?o.days.replace(`{{days}}`,n.days):o.anyTime,t[53]=n.days,t[54]=o.anyTime,t[55]=o.days,t[56]=ue):ue=t[56];let de=ue,fe;t[57]!==o.agent||t[58]!==o.filters||t[59]!==o.moreFilters||t[60]!==o.project||t[61]!==o.purposesLabel||t[62]!==o.saveView||t[63]!==o.savedViews||t[64]!==o.sourcesLabel||t[65]!==o.status||t[66]!==o.time?(fe={home:o.filters,sources:o.sourcesLabel,purposes:o.purposesLabel,project:o.project,time:o.time,status:o.status,agent:o.agent,advanced:o.moreFilters,views:o.savedViews,save:o.saveView},t[57]=o.agent,t[58]=o.filters,t[59]=o.moreFilters,t[60]=o.project,t[61]=o.purposesLabel,t[62]=o.saveView,t[63]=o.savedViews,t[64]=o.sourcesLabel,t[65]=o.status,t[66]=o.time,t[67]=fe):fe=t[67];let pe=fe,me,he,ge,_e,ve;if(t[68]!==c||t[69]!==L||t[70]!==n.agentId||t[71]!==n.days||t[72]!==n.project||t[73]!==n.purposes||t[74]!==n.sources||t[75]!==n.status||t[76]!==o||t[77]!==p||t[78]!==d||t[79]!==N||t[80]!==k){let e;if(t[86]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[86]=e):e=t[86],ve=e,d===`sources`){let e;t[87]===o.sources?e=t[88]:(e=e=>({value:e,label:o.sources[e]}),t[87]=o.sources,t[88]=e),he=Za.map(e),ve=n.sources;let r;t[89]===N?r=t[90]:(r=e=>N({sources:e}),t[89]=N,t[90]=r),me=r}else if(d===`purposes`){let e;t[91]===o.purposes?e=t[92]:(e=e=>({value:e,label:o.purposes[e]}),t[91]=o.purposes,t[92]=e),he=Ya.map(e),ve=n.purposes;let r;t[93]===N?r=t[94]:(r=e=>N({purposes:e}),t[93]=N,t[94]=r),me=r}else if(d===`project`){he=[{value:``,label:o.allProjects},{value:`__unassigned`,label:o.unassigned},...(k??[]).map(BH)],n.project&&!he.some(e=>e.value===n.project)&&he.push({value:n.project,label:n.project});let e;t[95]===n.project?e=t[96]:(e=[n.project],t[95]=n.project,t[96]=e),ve=e;let r;t[97]!==L||t[98]!==N?(r=e=>{let[t]=e;N({project:t}),L()},t[97]=L,t[98]=N,t[99]=r):r=t[99],me=r}else if(d===`time`){he=[{value:``,label:o.anyTime},...[`7`,`30`,`60`].map(e=>({value:e,label:o.days.replace(`{{days}}`,e)}))];let e;t[100]===n.days?e=t[101]:(e=[n.days],t[100]=n.days,t[101]=e),ve=e;let r;t[102]!==L||t[103]!==N?(r=e=>{let[t]=e;N({days:t}),L()},t[102]=L,t[103]=N,t[104]=r):r=t[104],me=r}else if(d===`status`){he=[`visible`,`pinned`,`archived`].map(e=>({value:e,label:o[e]}));let e;t[105]===n.status?e=t[106]:(e=[n.status],t[105]=n.status,t[106]=e),ve=e;let r;t[107]!==L||t[108]!==N?(r=e=>{let[t]=e;N({status:t}),L()},t[107]=L,t[108]=N,t[109]=r):r=t[109],me=r}else if(d===`agent`){he=[{value:``,label:o.allAgents},...c.map(zH)],n.agentId&&!he.some(e=>e.value===n.agentId)&&he.push({value:n.agentId,label:n.agentId});let e;t[110]===n.agentId?e=t[111]:(e=[n.agentId],t[110]=n.agentId,t[111]=e),ve=e;let r;t[112]!==L||t[113]!==N?(r=e=>{let[t]=e;N({agentId:t}),L()},t[112]=L,t[113]=N,t[114]=r):r=t[114],me=r}ge=d===`project`||d===`agent`,_e=he?.filter(e=>e.label.toLocaleLowerCase().includes(p.trim().toLocaleLowerCase())),t[68]=c,t[69]=L,t[70]=n.agentId,t[71]=n.days,t[72]=n.project,t[73]=n.purposes,t[74]=n.sources,t[75]=n.status,t[76]=o,t[77]=p,t[78]=d,t[79]=N,t[80]=k,t[81]=me,t[82]=he,t[83]=ge,t[84]=_e,t[85]=ve}else me=t[81],he=t[82],ge=t[83],_e=t[84],ve=t[85];let ye=_e,be;t[115]!==n.details||t[116]!==r||t[117]!==d||t[118]!==N?(be=()=>{d===`sources`?N({sources:[]}):d===`purposes`?N({purposes:[]}):r({...wH,details:n.details})},t[115]=n.details,t[116]=r,t[117]=d,t[118]=N,t[119]=be):be=t[119];let J=be,xe=l&&`bg-surface-hover opacity-100`,Se;t[120]===xe?Se=t[121]:(Se=Y(IH,`relative size-6 text-fg-subtle opacity-0 transition-[color,background-color,opacity] group-hover:opacity-100 group-focus-within:opacity-100 focus:opacity-100 [@media(hover:none)]:opacity-100`,xe),t[120]=xe,t[121]=Se);let Ce=`${o.filters}${G?` (${G})`:``}`,we;t[122]!==G||t[123]!==o.filters||t[124]!==re?(we=G?`${o.filters} · ${re(G)}`:o.filters,t[122]=G,t[123]=o.filters,t[124]=re,t[125]=we):we=t[125];let Te;t[126]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,$.jsx)(Gr,{className:`size-3.5`,"aria-hidden":!0}),t[126]=Te):Te=t[126];let Ee;t[127]!==G||t[128]!==i?(Ee=G>0||i.trim()?(0,$.jsx)(`span`,{className:`absolute top-0.5 right-0.5 size-1 rounded-full bg-fg-muted`,"aria-hidden":!0}):null,t[127]=G,t[128]=i,t[129]=Ee):Ee=t[129];let De;t[130]!==Se||t[131]!==Ce||t[132]!==we||t[133]!==Ee?(De=(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,className:Se,"aria-label":Ce,title:we,children:[Te,Ee]})}),t[130]=Se,t[131]=Ce,t[132]=we,t[133]=Ee,t[134]=De):De=t[134];let Oe;t[135]!==L||t[136]!==d?(Oe=e=>{d!==`home`&&(e.preventDefault(),L())},t[135]=L,t[136]=d,t[137]=Oe):Oe=t[137];let ke;t[138]!==L||t[139]!==o.back||t[140]!==d||t[141]!==ge?(ke=d===`home`?null:(0,$.jsx)(`button`,{type:`button`,className:IH,"aria-label":o.back,onClick:L,"data-page-autofocus":!ge&&d!==`save`?``:void 0,children:(0,$.jsx)(Ut,{className:`size-4`,"aria-hidden":!0})}),t[138]=L,t[139]=o.back,t[140]=d,t[141]=ge,t[142]=ke):ke=t[142];let Ae=pe[d],je;t[143]!==T||t[144]!==Ae?(je=(0,$.jsx)(`span`,{id:T,className:`min-w-0 flex-1 truncate px-1 font-medium`,children:Ae}),t[143]=T,t[144]=Ae,t[145]=je):je=t[145];let Me;t[146]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0}),t[146]=Me):Me=t[146];let Ne;t[147]===o.close?Ne=t[148]:(Ne=(0,$.jsx)(Zc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:IH,"aria-label":o.close,children:Me})}),t[147]=o.close,t[148]=Ne);let Pe;t[149]!==ke||t[150]!==je||t[151]!==Ne?(Pe=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 border-b border-edge px-2 py-2`,children:[ke,je,Ne]}),t[149]=ke,t[150]=je,t[151]=Ne,t[152]=Pe):Pe=t[152];let Fe;t[153]!==o.searchOptions||t[154]!==p||t[155]!==ge?(Fe=ge?(0,$.jsx)(`div`,{className:`shrink-0 px-3 pt-2`,children:(0,$.jsx)(`input`,{type:`search`,"data-page-autofocus":!0,value:p,onChange:e=>m(e.target.value),placeholder:o.searchOptions,"aria-label":o.searchOptions,className:`w-full rounded-md border border-edge bg-surface-base px-2 py-1.5 text-sm outline-none focus:border-edge-strong focus:ring-1 focus:ring-edge-strong`})}):null,t[153]=o.searchOptions,t[154]=p,t[155]=ge,t[156]=Fe):Fe=t[156];let Ie;t[157]!==o.search||t[158]!==a||t[159]!==d||t[160]!==i?(Ie=d===`home`?(0,$.jsx)(`div`,{className:`shrink-0 px-3 pt-2`,children:(0,$.jsxs)(`label`,{className:`flex min-w-0 items-center gap-2 rounded-md border border-edge bg-surface-base px-2 py-1.5 focus-within:border-edge-strong focus-within:ring-1 focus-within:ring-edge-strong`,children:[(0,$.jsx)(wo,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,$.jsx)(`input`,{type:`search`,value:i,onChange:e=>a(e.target.value),placeholder:o.search,"aria-label":o.search,className:`min-w-0 w-full bg-transparent text-sm text-fg outline-none`})]})}):null,t[157]=o.search,t[158]=a,t[159]=d,t[160]=i,t[161]=Ie):Ie=t[161];let Le;t[162]!==K||t[163]!==ee||t[164]!==n.activity||t[165]!==n.details||t[166]!==o||t[167]!==r||t[168]!==d||t[169]!==le||t[170]!==g.length||t[171]!==re||t[172]!==D?.name||t[173]!==ae||t[174]!==de?(Le=d===`home`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(bu,{className:`mb-2 flex gap-1 rounded-md bg-surface-base p-1`,role:`group`,"aria-label":o.filters,indicatorClassName:`rounded-md bg-surface-active`,children:[``,`manual`,`automatic`].map(e=>(0,$.jsx)(`button`,{type:`button`,"data-page-autofocus":e===``?``:void 0,className:Y(FH,`min-w-0 flex-1 px-1`,!ee&&n.activity===e&&`bg-surface-active text-fg`),"aria-pressed":!ee&&n.activity===e,onClick:()=>{r({...wH,details:n.details,activity:e}),u(!1)},children:e?o[e]:o.all},e))}),(0,$.jsx)(LH,{label:o.sourcesLabel,summary:ae,onClick:()=>F(`sources`)}),(0,$.jsx)(LH,{label:o.project,summary:le||o.allProjects,onClick:()=>F(`project`)}),(0,$.jsx)(LH,{label:o.time,summary:de,onClick:()=>F(`time`)}),(0,$.jsx)(`div`,{className:`my-2 border-t border-edge`}),(0,$.jsx)(LH,{label:o.moreFilters,summary:K?re(K):``,onClick:()=>F(`advanced`)}),(0,$.jsx)(LH,{label:o.savedViews,summary:D?.name??(g.length?String(g.length):``),onClick:()=>F(`views`)})]}):null,t[162]=K,t[163]=ee,t[164]=n.activity,t[165]=n.details,t[166]=o,t[167]=r,t[168]=d,t[169]=le,t[170]=g.length,t[171]=re,t[172]=D?.name,t[173]=ae,t[174]=de,t[175]=Le):Le=t[175];let Re;t[176]!==me||t[177]!==o.noOptions||t[178]!==o.projectError||t[179]!==o.retry||t[180]!==ye||t[181]!==he||t[182]!==d||t[183]!==A||t[184]!==k||t[185]!==j||t[186]!==pe||t[187]!==ve?(Re=he&&me?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Xn,{options:ye??[],values:ve,multiple:d===`sources`||d===`purposes`,onChange:me,ariaLabel:pe[d]}),d===`project`&&!k&&!A?(0,$.jsxs)(`div`,{"aria-busy":`true`,className:`space-y-3 p-2`,children:[(0,$.jsx)($o,{className:`h-5 w-3/4`}),(0,$.jsx)($o,{className:`h-5 w-2/3`})]}):null,d===`project`&&A?(0,$.jsxs)(`div`,{role:`alert`,className:`p-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{children:o.projectError}),(0,$.jsx)(`button`,{type:`button`,className:FH,onClick:()=>void j(),children:o.retry})]}):null,!ye?.length&&!(d===`project`&&!k)?(0,$.jsx)(`p`,{className:`p-2 text-xs text-fg-muted`,children:o.noOptions}):null]}):null,t[176]=me,t[177]=o.noOptions,t[178]=o.projectError,t[179]=o.retry,t[180]=ye,t[181]=he,t[182]=d,t[183]=A,t[184]=k,t[185]=j,t[186]=pe,t[187]=ve,t[188]=Re):Re=t[188];let ze;t[189]!==c||t[190]!==n.agentId||t[191]!==n.details||t[192]!==n.status||t[193]!==o||t[194]!==d||t[195]!==N||t[196]!==se?(ze=d===`advanced`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(LH,{label:o.purposesLabel,summary:se,onClick:()=>F(`purposes`)}),(0,$.jsx)(LH,{label:o.status,summary:o[n.status],onClick:()=>F(`status`)}),c.length>1||n.agentId?(0,$.jsx)(LH,{label:o.agent,summary:c.find(e=>e.id===n.agentId)?.name??(n.agentId||o.allAgents),onClick:()=>F(`agent`)}):null,(0,$.jsxs)(`label`,{className:`mt-2 flex min-h-10 items-center gap-3 border-t border-edge px-2 pt-2 text-sm`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:n.details,onChange:e=>N({details:e.target.checked})}),o.details]})]}):null,t[189]=c,t[190]=n.agentId,t[191]=n.details,t[192]=n.status,t[193]=o,t[194]=d,t[195]=N,t[196]=se,t[197]=ze):ze=t[197];let Be;t[198]!==s||t[199]!==o.deleteView||t[200]!==o.noViews||t[201]!==r||t[202]!==a||t[203]!==d||t[204]!==g||t[205]!==D?.id?(Be=d===`views`?(0,$.jsxs)($.Fragment,{children:[g.length?null:(0,$.jsx)(`p`,{className:`px-2 py-4 text-sm text-fg-muted`,children:o.noViews}),g.map(e=>(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex min-h-10 min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-2 text-left hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>{r(e.filters),a(e.search),u(!1)},"aria-pressed":D?.id===e.id,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.name,children:e.name}),D?.id===e.id?(0,$.jsx)(Vn,{className:`size-4 shrink-0`,"aria-hidden":!0}):null]}),(0,$.jsx)(`button`,{type:`button`,className:IH,"aria-label":o.deleteView.replace(`{{name}}`,e.name),onClick:()=>{let t=g.filter(t=>t.id!==e.id);PH(s,t)?(_(t),x(!1)):x(!0)},children:(0,$.jsx)(Ho,{className:`size-3.5`,"aria-hidden":!0})})]},e.id))]}):null,t[198]=s,t[199]=o.deleteView,t[200]=o.noViews,t[201]=r,t[202]=a,t[203]=d,t[204]=g,t[205]=D?.id,t[206]=Be):Be=t[206];let Ve;t[207]!==n||t[208]!==w||t[209]!==s||t[210]!==o.saveViewHint||t[211]!==o.viewLimit||t[212]!==o.viewName||t[213]!==d||t[214]!==g||t[215]!==i||t[216]!==v?(Ve=d===`save`?(0,$.jsxs)(`form`,{id:w,className:`space-y-3 p-1`,onSubmit:e=>{e.preventDefault();let t=v.trim();if(!t||g.length>=20)return;let r=[...g,{id:crypto.randomUUID(),name:t,filters:n,search:i}];if(!PH(s,r)){x(!0);return}_(r),y(``),F(`views`)},children:[(0,$.jsxs)(`label`,{className:`block space-y-2 text-sm`,children:[(0,$.jsx)(`span`,{children:o.viewName}),(0,$.jsx)(`input`,{"data-page-autofocus":!0,value:v,onChange:e=>y(e.target.value),maxLength:60,placeholder:o.viewName,"aria-label":o.viewName,className:`w-full rounded-md border border-edge bg-surface-base px-2 py-2 focus-visible:ring-2 focus-visible:ring-accent`})]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:o.saveViewHint}),g.length>=20?(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:o.viewLimit}):null]}):null,t[207]=n,t[208]=w,t[209]=s,t[210]=o.saveViewHint,t[211]=o.viewLimit,t[212]=o.viewName,t[213]=d,t[214]=g,t[215]=i,t[216]=v,t[217]=Ve):Ve=t[217];let He;t[218]!==o.viewSaveError||t[219]!==b?(He=b?(0,$.jsx)(`p`,{role:`alert`,className:`p-2 text-xs text-danger`,children:o.viewSaveError}):null,t[218]=o.viewSaveError,t[219]=b,t[220]=He):He=t[220];let Ue;t[221]!==d||t[222]!==Le||t[223]!==Re||t[224]!==ze||t[225]!==Be||t[226]!==Ve||t[227]!==He?(Ue=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-y-contain p-2`,"data-session-filter-scroll":!0,children:[Le,Re,ze,Be,Ve,He]},d),t[221]=d,t[222]=Le,t[223]=Re,t[224]=ze,t[225]=Be,t[226]=Ve,t[227]=He,t[228]=Ue):Ue=t[228];let We;t[229]!==J||t[230]!==G||t[231]!==o.clear||t[232]!==o.clearSelection||t[233]!==o.saveView||t[234]!==d||t[235]!==g.length||t[236]!==ve?(We=d===`home`||d===`sources`||d===`purposes`?(0,$.jsx)(`button`,{type:`button`,className:FH,disabled:d===`home`?!G:!ve.length,onClick:J,children:d===`home`?o.clear:o.clearSelection}):d===`views`?(0,$.jsx)(`button`,{type:`button`,className:FH,disabled:g.length>=20,onClick:()=>F(`save`),children:o.saveView}):(0,$.jsx)(`span`,{}),t[229]=J,t[230]=G,t[231]=o.clear,t[232]=o.clearSelection,t[233]=o.saveView,t[234]=d,t[235]=g.length,t[236]=ve,t[237]=We):We=t[237];let Ge;t[238]!==L||t[239]!==w||t[240]!==o.done||t[241]!==o.saveView||t[242]!==d||t[243]!==g.length||t[244]!==v?(Ge=d===`save`?(0,$.jsx)(`button`,{type:`submit`,form:w,className:Y(FH,`bg-surface-active text-fg`),disabled:!v.trim()||g.length>=20,children:o.saveView}):(0,$.jsx)(`button`,{type:`button`,className:Y(FH,`bg-surface-active text-fg`),onClick:()=>d===`home`?u(!1):L(),children:o.done}),t[238]=L,t[239]=w,t[240]=o.done,t[241]=o.saveView,t[242]=d,t[243]=g.length,t[244]=v,t[245]=Ge):Ge=t[245];let Ke;t[246]!==We||t[247]!==Ge?(Ke=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-edge px-3 py-2`,children:[We,Ge]}),t[246]=We,t[247]=Ge,t[248]=Ke):Ke=t[248];let qe;t[249]!==T||t[250]!==Oe||t[251]!==Pe||t[252]!==Fe||t[253]!==Ie||t[254]!==Ue||t[255]!==Ke?(qe=(0,$.jsx)(Jc,{children:(0,$.jsxs)(Yc,{ref:S,side:`bottom`,align:`start`,sideOffset:8,collisionPadding:12,sticky:`always`,"aria-labelledby":T,className:`z-50 flex h-[min(26rem,calc(100dvh-1.5rem))] max-h-[var(--radix-popover-content-available-height)] w-[min(20rem,calc(100vw-1.5rem))] max-w-[var(--radix-popover-content-available-width)] flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay text-sm text-fg shadow-popover`,onEscapeKeyDown:Oe,children:[Pe,Fe,Ie,Ue,Ke]})}),t[249]=T,t[250]=Oe,t[251]=Pe,t[252]=Fe,t[253]=Ie,t[254]=Ue,t[255]=Ke,t[256]=qe):qe=t[256];let Je;return t[257]!==l||t[258]!==De||t[259]!==qe?(Je=(0,$.jsx)(`div`,{className:`ml-auto shrink-0`,children:(0,$.jsxs)(Xc,{open:l,onOpenChange:z,children:[De,qe]})}),t[257]=l,t[258]=De,t[259]=qe,t[260]=Je):Je=t[260],Je}function zH(e){return{value:e.id,label:e.name||e.id}}function BH(e){return{value:e.id,label:e.name}}var VH=30;function HH(e,t){let n=(0,Q.c)(47),r;n[0]===e?r=n[1]:(r=()=>kH(e),n[0]=e,n[1]=r);let[i,a]=(0,Z.useState)(r),[o,s]=(0,Z.useState)(``),[c]=xu(o,250),[l,u]=(0,Z.useState)(!1),d;n[2]!==i||n[3]!==o?(d=TH(i)||!!o.trim(),n[2]=i,n[3]=o,n[4]=d):d=n[4];let f=d,p;n[5]!==f||n[6]!==e||n[7]!==t?(p=f&&t?[`session-filter-projects`,e]:null,n[5]=f,n[6]=e,n[7]=t,n[8]=p):p=n[8];let{data:m}=oc(p,jH),h;n[9]!==c||n[10]!==i?(h=EH(i,c),n[9]=c,n[10]=i,n[11]=h):h=n[11];let g=h,_;n[12]!==f||n[13]!==e||n[14]!==g||n[15]!==t?(_=(n,r)=>!t||!f||r&&!r.hasMore?null:[`session-discovery`,e,t,g,n],n[12]=f,n[13]=e,n[14]=g,n[15]=t,n[16]=_):_=n[16];let v;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(v={revalidateOnFocus:!1,revalidateOnReconnect:!1,keepPreviousData:!1},n[17]=v):v=n[17];let{data:y,error:b,isValidating:x,size:S,setSize:C,mutate:w}=cc(_,GH,v),T;n[18]===e?T=n[19]:(T=t=>{a(t),AH(e,t)},n[18]=e,n[19]=T);let E=T,D;n[20]===w?D=n[21]:(D=()=>{u(!1),w()},n[20]=w,n[21]=D);let O=D,k,A;n[22]===f?(k=n[23],A=n[24]):(k=()=>{if(!f)return;let e=()=>u(!0),t=[`session-list-refresh`,`session-created`,`session-updated`,`session-transcript-updated`,`project-updated`];return t.forEach(t=>window.addEventListener(t,e)),()=>t.forEach(t=>window.removeEventListener(t,e))},A=[f],n[22]=f,n[23]=k,n[24]=A),(0,Z.useEffect)(k,A);let j;n[25]===y?j=n[26]:(j=[...new Map(y?.flatMap(WH).map(UH)??[]).values()],n[25]=y,n[26]=j);let M=j,N=y?.[0]?.total??0,P=!b&&(!y||o!==c),F;n[27]===y?F=n[28]:(F=y?.at(-1)?.hasMore??!1,n[27]=y,n[28]=F);let I=x&&!!y,L;n[29]!==C||n[30]!==S?(L=()=>void C(S+1),n[29]=C,n[30]=S,n[31]=L):L=n[31];let R;return n[32]!==f||n[33]!==b||n[34]!==i||n[35]!==M||n[36]!==l||n[37]!==m||n[38]!==O||n[39]!==o||n[40]!==N||n[41]!==P||n[42]!==F||n[43]!==I||n[44]!==L||n[45]!==E?(R={projects:m,filters:i,updateFilters:E,search:o,setSearch:s,active:f,items:M,total:N,loading:P,error:b,hasMore:F,loadingMore:I,loadMore:L,refresh:O,pendingUpdate:l},n[32]=f,n[33]=b,n[34]=i,n[35]=M,n[36]=l,n[37]=m,n[38]=O,n[39]=o,n[40]=N,n[41]=P,n[42]=F,n[43]=I,n[44]=L,n[45]=E,n[46]=R):R=n[46],R}function UH(e){return[e.key,e]}function WH(e){return e.items}function GH(e){let[,,,t,n]=e;return As({...t,limit:VH,offset:n*VH})}function KH(e,t){if(!e||typeof e!=`object`)return!0;let n=e.key??e.conversationId;return typeof n!=`string`||!n.trim()||!t.has(n)}var qH=(0,Z.createContext)(!1),JH=(0,Z.createContext)({}),YH=(0,Z.memo)(function(e){let t=(0,Q.c)(27),{child:n,activeTaskId:r,onNavigate:i,sb:a}=e,o=p(),s;t[0]===n.activeConversationId?s=t[1]:(s=e=>n.activeConversationId?e.runs[n.activeConversationId]:void 0,t[0]=n.activeConversationId,t[1]=s);let c=mt(s),l;t[2]!==n.activeConversationId||t[3]!==n.taskId||t[4]!==o?(l=n.activeConversationId?`/chat/task/${encodeURIComponent(n.taskId)}`:Da(`${o.pathname}${o.search}`,n.taskId),t[2]=n.activeConversationId,t[3]=n.taskId,t[4]=o,t[5]=l):l=t[5];let u=r===n.taskId&&`bg-surface-active text-fg`,d;t[6]===u?d=t[7]:(d=Y(`ml-8 flex min-h-8 items-center gap-2 rounded-lg px-2 text-sm text-fg-muted hover:bg-surface-hover hover:text-fg`,u),t[6]=u,t[7]=d);let f;t[8]===i?f=t[9]:(f=()=>i?.(),t[8]=i,t[9]=f);let m;t[10]!==c||t[11]!==a?(m=c?.unread?(0,$.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-accent`,"aria-label":c.status===`failed`?a.taskSessionAgentFailed:a.taskSessionAgentCompleted}):null,t[10]=c,t[11]=a,t[12]=m):m=t[12];let h;t[13]===n.title?h=t[14]:(h=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.title}),t[13]=n.title,t[14]=h);let g=n.runStatus??n.phase,_;t[15]!==a||t[16]!==g?(_=sU(g,a),t[15]=a,t[16]=g,t[17]=_):_=t[17];let v;t[18]===_?v=t[19]:(v=(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:_}),t[18]=_,t[19]=v);let b;return t[20]!==v||t[21]!==l||t[22]!==d||t[23]!==f||t[24]!==m||t[25]!==h?(b=(0,$.jsxs)(y,{to:l,className:d,onClick:f,children:[m,h,v]}),t[20]=v,t[21]=l,t[22]=d,t[23]=f,t[24]=m,t[25]=h,t[26]=b):b=t[26],b}),XH=20,ZH=12,QH=5,$H=60,eU=`application/x-xopc-sidebar-item`;function tU(e,t,n,r){let i=e.filter(e=>e!==t),a=i.indexOf(n);return a<0?e:(i.splice(a+ +!!r,0,t),i)}function nU(e,t,n){if(!t?.length)return e;let r=new Map(t.map((e,t)=>[e,t]));return e.map((e,t)=>({item:e,index:t,rank:r.get(n(e))})).sort((e,t)=>e.rank!==void 0&&t.rank!==void 0?e.rank-t.rank:e.rank===void 0?t.rank===void 0?e.index-t.index:-1:1).map(({item:e})=>e)}function rU({spec:e,children:t}){let[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(null);return e?(0,$.jsxs)(`div`,{draggable:!0,className:Y(`relative cursor-grab transition-[opacity,transform] duration-200 ease-out active:cursor-grabbing`,n&&`opacity-50`),onDragStart:t=>{r(!0),t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(eU,JSON.stringify({containerId:e.containerId,itemId:e.itemId}))},onDragEnd:()=>{r(!1),a(null)},onDragOver:e=>{e.preventDefault();let t=e.currentTarget.getBoundingClientRect();a(e.clientY>=t.top+t.height/2?`after`:`before`)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||a(null)},onDrop:t=>{t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.clientY>=n.top+n.height/2;a(null);try{let n=JSON.parse(t.dataTransfer.getData(eU));if(n.containerId!==e.containerId||n.itemId===e.itemId)return;e.onReorder(e.containerId,tU(e.itemIds,n.itemId,e.itemId,r))}catch{}},children:[i===`before`?(0,$.jsx)(`span`,{className:`pointer-events-none absolute inset-x-1 top-0 z-30 h-0.5 rounded-full bg-accent`}):null,t,i===`after`?(0,$.jsx)(`span`,{className:`pointer-events-none absolute inset-x-1 bottom-0 z-30 h-0.5 rounded-full bg-accent`}):null]}):t}function iU(e,t){return e.name?.trim()||t}function aU(e){let t=/^\/chat\/([^/]+)$/.exec(e);if(!t)return;let n=decodeURIComponent(t[1]);if(n!==`new`)return n}function oU(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function sU(e,t){return e===`running`||e===`active`||e===`verifying`?t.delegatedTaskRunning:e===`completed`||e===`succeeded`||e===`closed`?t.delegatedTaskCompleted:e===`failed`?t.delegatedTaskFailed:e===`backlog`||e===`ready`||e===`queued`||e===`waiting`?t.delegatedTaskWaiting:e}function cU(e){let t=new Date(e.updatedAt).getTime();return Number.isFinite(t)?t:0}function lU(e){return Y(`group relative flex min-h-8 w-full min-w-0 items-center rounded-lg pr-1 text-left text-sm leading-5 transition-colors duration-200 ease-out`,`pl-6`,`focus-within:outline-none`,e?`bg-surface-active font-medium text-fg`:`font-normal text-fg-muted hover:bg-surface-hover hover:text-fg`)}var uU=`text-xs font-normal leading-5 text-fg-subtle`,dU=Y(uU,`transition-colors hover:text-fg-muted`);function fU(e){let t=(0,Q.c)(5),{indented:n}=e,r=n!==void 0&&n&&`pl-6`,i;t[0]===r?i=t[1]:(i=Y(`flex items-center gap-2 p-1.5`,r),t[0]=r,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)($o,{className:`h-3 w-4/5 animate-none`}),(0,$.jsx)($o,{className:`mt-1.5 h-2.5 w-2/5 animate-none`})]}),t[2]=a):a=t[2];let o;return t[3]===i?o=t[4]:(o=(0,$.jsx)(`div`,{className:i,children:a}),t[3]=i,t[4]=o),o}function pU(){let e=(0,Q.c)(3),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{children:[(0,$.jsx)($o,{className:`mb-1.5 h-2.5 w-14 animate-none`}),(0,$.jsx)(fU,{})]}),n=(0,$.jsx)($o,{className:`mb-1.5 h-2.5 w-16 animate-none`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 px-2 py-4`,"aria-busy":`true`,children:[t,(0,$.jsxs)(`div`,{children:[n,(0,$.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,$.jsx)(fU,{}),(0,$.jsx)(fU,{indented:!0}),(0,$.jsx)(fU,{indented:!0})]})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)($o,{className:`mb-1.5 h-2.5 w-12 animate-none`}),(0,$.jsx)(fU,{}),(0,$.jsx)(fU,{})]})]}),e[2]=r):r=e[2],r}var mU=(0,Z.memo)(function({session:e,isActive:t,onNavigate:n,mutate:r,onRequestRename:i,onRequestDelete:a,sb:o,sess:s,clipboard:c,defaultUnnamedTitle:l,contextLabel:u,sort:d,showTaskChildren:f=!0}){let m=(0,Z.useContext)(JH)[e.key],h=p(),g=/^\/chat\/task\/([^/]+)$/.exec(h.pathname)?.[1],_=m?.items.some(e=>e.taskId===g||e.activeConversationId===aU(h.pathname))??!1,[v,b]=(0,Z.useState)(_);(0,Z.useEffect)(()=>{_&&b(!0)},[_]);let x=(0,Z.useContext)(qH),S=qa(e),C=S.source!==`workbench`||S.purpose!==`chat`,w=K(e,o.sessionFilters),T=[w,u].filter(Boolean).join(` · `),[E,D]=(0,Z.useState)(!1),[O,k]=(0,Z.useState)(!1),A=Ie(e.key),j=mt(t=>t.runs[e.key]),M=iU(e,l),N=e.status===`pinned`,P=A||!!j?.unread,F=async()=>{if(!O){k(!0);try{N?await ks(e.key):await ws(e.key),D(!1),r()}catch{}finally{k(!1)}}},I=async()=>{let t=await il(e.key);if(D(!1),t){ki(`success`,o.taskChatIdCopied,void 0,{duration:2e3});return}ki(`warning`,c.copyFailed,void 0,{duration:4e3})};return(0,$.jsx)(rU,{spec:d,children:(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:lU(t),children:[f&&m?.total?(0,$.jsx)(`button`,{type:`button`,className:`absolute left-0 flex size-6 items-center justify-center text-fg-subtle hover:text-fg`,"aria-label":v?o.delegatedTasksCollapse:o.delegatedTasksExpand,"aria-expanded":v,onClick:()=>b(e=>!e),children:(0,$.jsx)(Hn,{className:Y(`size-3.5 transition-transform`,!v&&`-rotate-90`),"aria-hidden":!0})}):null,(0,$.jsxs)(y,{to:`/chat/${encodeURIComponent(e.key)}`,className:Y(`min-w-0 flex-1 self-stretch rounded-lg py-1 outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`flex min-w-0 items-center gap-2`,P?`pr-[4.75rem]`:`pr-12`),title:`${M} — ${T}`,"aria-label":`${M} — ${T}`,onClick:()=>n?.(),onDoubleClick:t=>{t.preventDefault(),t.stopPropagation(),i(e)},children:[C?(0,$.jsx)(`span`,{className:`flex size-4 shrink-0 items-center justify-center text-fg-muted`,title:w,children:(0,$.jsx)(Qa,{sourceChannel:e.sourceChannel,session:e,className:`size-3.5`})}):null,(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate`,children:M}),x?(0,$.jsx)(`span`,{className:`block truncate text-xs font-normal text-fg-muted`,children:T}):null]})]}),A?(0,$.jsxs)(`span`,{className:`pointer-events-none absolute right-2 top-1/2 z-10 flex size-2.5 -translate-y-1/2 items-center justify-center`,title:o.taskSessionAgentRunning,"aria-label":o.taskSessionAgentRunning,children:[(0,$.jsx)(`span`,{className:`absolute size-full animate-ping rounded-full bg-accent/70`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`relative size-2 rounded-full bg-accent`,"aria-hidden":!0})]}):j?.unread?(0,$.jsx)(`span`,{className:Y(`pointer-events-none absolute right-2 top-1/2 z-10 size-2.5 -translate-y-1/2 rounded-full`,j.status===`failed`?`bg-red-500`:`bg-emerald-500`),title:j.status===`failed`?o.taskSessionAgentFailed:o.taskSessionAgentCompleted,"aria-label":j.status===`failed`?o.taskSessionAgentFailed:o.taskSessionAgentCompleted}):null,(0,$.jsxs)(`div`,{className:Y(`pointer-events-none absolute inset-y-0 z-10 flex items-center opacity-0 transition-opacity`,`group-hover:pointer-events-auto group-hover:opacity-100 focus-within:pointer-events-auto focus-within:opacity-100`,P?`right-7`:`right-1`,E&&`pointer-events-auto opacity-100`),children:[(0,$.jsx)(`button`,{type:`button`,className:Y(`flex h-8 w-6 shrink-0 items-center justify-center rounded-lg text-fg-muted`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`disabled:cursor-wait`),"aria-label":N?s.unpin:s.pin,title:N?s.unpin:s.pin,"aria-pressed":N,disabled:O,onClick:()=>void F(),children:O?(0,$.jsx)(ha,{className:`size-4 animate-spin`,strokeWidth:1.75,"aria-hidden":!0}):N?(0,$.jsx)(so,{className:`size-4 rotate-45`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(oo,{className:`size-4 rotate-45`,strokeWidth:1.75,"aria-hidden":!0})}),(0,$.jsxs)(Xc,{open:E,onOpenChange:D,children:[(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:Y(`flex h-8 w-6 shrink-0 items-center justify-center rounded-lg text-fg-muted`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),"aria-label":o.taskSessionMenuAria,title:o.taskSessionMenuAria,"aria-expanded":E,children:(0,$.jsx)(Gr,{className:`size-4`,strokeWidth:2,"aria-hidden":!0})})}),(0,$.jsx)(Jc,{children:(0,$.jsxs)(Yc,{className:`z-50 w-[9.25rem] rounded-lg border border-edge bg-surface-overlay p-1 shadow-elevated dark:border-edge`,side:`bottom`,align:`end`,sideOffset:4,collisionPadding:12,onCloseAutoFocus:e=>e.preventDefault(),children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:()=>{D(!1),i(e)},children:[(0,$.jsx)(ro,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),o.taskRename]}),(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:()=>void I(),children:[(0,$.jsx)(Sr,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),o.taskCopyChatId]}),(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-red-600 transition-colors hover:bg-surface-hover dark:text-red-400`,onClick:()=>{D(!1),a(e.key)},children:[(0,$.jsx)(Ho,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),o.taskDeleteTask]})]})})]})]})]}),f&&v&&m?.items.map(e=>(0,$.jsx)(YH,{child:e,activeTaskId:g,onNavigate:n,sb:o},e.taskId))]})})});function hU(e){let t=(0,Q.c)(77),{project:n,onNavigate:r,onPinToggle:i,onRequestRename:a,onArchive:o,onRequestRemove:s,sb:c}=e,[l,u]=(0,Z.useState)(!1),d;t[0]!==n.effectiveWorkspaceRoot||t[1]!==n.workspaceRoot?(d=n.effectiveWorkspaceRoot?.trim()||n.workspaceRoot?.trim()||``,t[0]=n.effectiveWorkspaceRoot,t[1]=n.workspaceRoot,t[2]=d):d=t[2];let f=d,p=!!(f&&window.electronAPI?.shell?.openPath),m=!!n.pinnedAt,h;t[3]!==c.projectOpenInExplorerFailed||t[4]!==c.projectOpenInExplorerUnavailable||t[5]!==f?(h=async()=>{if(!f||!window.electronAPI?.shell?.openPath){ki(`warning`,c.projectOpenInExplorerUnavailable,void 0,{duration:3500}),u(!1);return}let e=await window.electronAPI.shell.openPath(f);u(!1),e.ok===!1&&ki(`warning`,e.error||c.projectOpenInExplorerFailed,void 0,{duration:4e3})},t[3]=c.projectOpenInExplorerFailed,t[4]=c.projectOpenInExplorerUnavailable,t[5]=f,t[6]=h):h=t[6];let g=h,_=l&&`opacity-100`,v;t[7]===_?v=t[8]:(v=Y(`relative z-10 flex size-7 shrink-0 items-center justify-center rounded-lg text-fg-subtle transition-opacity`,`opacity-0 group-hover:opacity-100 focus:opacity-100`,_,`hover:bg-surface-hover hover:text-fg-muted`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),t[7]=_,t[8]=v);let b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(Gr,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0}),t[9]=b):b=t[9];let x;t[10]!==l||t[11]!==c.projectMenuAria||t[12]!==v?(x=(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:v,"aria-label":c.projectMenuAria,title:c.projectMenuAria,"aria-expanded":l,children:b})}),t[10]=l,t[11]=c.projectMenuAria,t[12]=v,t[13]=x):x=t[13];let S=`/projects/${encodeURIComponent(n.id)}`,C;t[14]===r?C=t[15]:(C=()=>{u(!1),r?.()},t[14]=r,t[15]=C);let w;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(Kr,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[16]=w):w=t[16];let T;t[17]!==c.projectOpen||t[18]!==S||t[19]!==C?(T=(0,$.jsxs)(y,{to:S,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:C,children:[w,c.projectOpen]}),t[17]=c.projectOpen,t[18]=S,t[19]=C,t[20]=T):T=t[20];let E;t[21]===n.workspaceRoot?E=t[22]:(E=n.workspaceRoot?.trim(),t[21]=n.workspaceRoot,t[22]=E);let D=!!E,O;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>u(!1),t[23]=O):O=t[23];let k;t[24]!==n.id||t[25]!==D?(k=(0,$.jsx)(Cu,{hasProjectFolder:D,projectId:n.id,onStarted:O,className:`flex w-full rounded-md px-2 py-1.5 text-left text-xs font-medium text-fg hover:bg-surface-hover disabled:opacity-50`}),t[24]=n.id,t[25]=D,t[26]=k):k=t[26];let A;t[27]!==i||t[28]!==n?(A=()=>{u(!1),i(n)},t[27]=i,t[28]=n,t[29]=A):A=t[29];let j;t[30]===m?j=t[31]:(j=m?(0,$.jsx)(so,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(oo,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[30]=m,t[31]=j);let M=m?c.projectUnpin:c.projectPin,N;t[32]!==A||t[33]!==j||t[34]!==M?(N=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:A,children:[j,M]}),t[32]=A,t[33]=j,t[34]=M,t[35]=N):N=t[35];let P;t[36]===g?P=t[37]:(P=()=>void g(),t[36]=g,t[37]=P);let F=!p,I=p?void 0:c.projectOpenInExplorerUnavailable,L;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(vi,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[38]=L):L=t[38];let R;t[39]!==c.projectOpenInExplorer||t[40]!==P||t[41]!==F||t[42]!==I?(R=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover disabled:cursor-not-allowed disabled:text-fg-subtle disabled:hover:bg-transparent`,onClick:P,disabled:F,title:I,children:[L,c.projectOpenInExplorer]}),t[39]=c.projectOpenInExplorer,t[40]=P,t[41]=F,t[42]=I,t[43]=R):R=t[43];let z;t[44]!==a||t[45]!==n?(z=()=>{u(!1),a(n)},t[44]=a,t[45]=n,t[46]=z):z=t[46];let B;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(ro,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[47]=B):B=t[47];let V;t[48]!==c.projectRename||t[49]!==z?(V=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:z,children:[B,c.projectRename]}),t[48]=c.projectRename,t[49]=z,t[50]=V):V=t[50];let H;t[51]!==o||t[52]!==n?(H=()=>{u(!1),o(n)},t[51]=o,t[52]=n,t[53]=H):H=t[53];let ee;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,$.jsx)(q,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[54]=ee):ee=t[54];let U;t[55]!==c.projectArchive||t[56]!==H?(U=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:H,children:[ee,c.projectArchive]}),t[55]=c.projectArchive,t[56]=H,t[57]=U):U=t[57];let W;t[58]!==s||t[59]!==n?(W=()=>{u(!1),s(n)},t[58]=s,t[59]=n,t[60]=W):W=t[60];let G;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(Ho,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[61]=G):G=t[61];let te;t[62]!==c.projectRemove||t[63]!==W?(te=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-red-600 transition-colors hover:bg-surface-hover dark:text-red-400`,onClick:W,children:[G,c.projectRemove]}),t[62]=c.projectRemove,t[63]=W,t[64]=te):te=t[64];let ne;t[65]!==T||t[66]!==k||t[67]!==N||t[68]!==R||t[69]!==V||t[70]!==U||t[71]!==te?(ne=(0,$.jsx)(Jc,{children:(0,$.jsxs)(Yc,{className:`z-50 w-[12rem] rounded-lg border border-edge bg-surface-overlay p-1 shadow-elevated dark:border-edge`,side:`bottom`,align:`end`,sideOffset:4,collisionPadding:12,onCloseAutoFocus:gU,children:[T,k,N,R,V,U,te]})}),t[65]=T,t[66]=k,t[67]=N,t[68]=R,t[69]=V,t[70]=U,t[71]=te,t[72]=ne):ne=t[72];let K;return t[73]!==l||t[74]!==ne||t[75]!==x?(K=(0,$.jsxs)(Xc,{open:l,onOpenChange:u,children:[x,ne]}),t[73]=l,t[74]=ne,t[75]=x,t[76]=K):K=t[76],K}function gU(e){return e.preventDefault()}function _U(e){let t=(0,Q.c)(70),{group:n,isExpanded:r,isCollapsed:i,activeConversationId:a,onToggleExpanded:o,onToggleCollapsed:s,onCreateProjectChat:c,onToggleProjectPin:l,onRequestProjectRename:u,onArchiveProject:d,onRequestProjectRemove:f,onNavigate:p,mutate:m,onRequestRename:h,onRequestDelete:g,sb:_,sess:v,clipboard:y,defaultUnnamedTitle:b,excludedConversationIds:x,projectSort:S,onReorder:C}=e,w;t[0]!==x||t[1]!==n.sessions?(w=x?n.sessions.filter(e=>!x.has(e.key)):n.sessions,t[0]=x,t[1]=n.sessions,t[2]=w):w=t[2];let T=w,E;t[3]!==r||t[4]!==T?(E=r?T:T.slice(0,QH),t[3]=r,t[4]=T,t[5]=E):E=t[5];let D=E,O=T.length>QH,k=n.sessionHasMore||O,A=r&&!n.sessionHasMore&&O,j;t[6]===a?j=t[7]:(j=e=>e.key===a,t[6]=a,t[7]=j);let M=T.some(j),N=n.project.name,P=M?`text-fg`:`text-fg-muted`,F;t[8]===P?F=t[9]:(F=Y(`group flex h-7 min-w-0 items-center gap-1.5 rounded-lg px-2 text-sm font-medium leading-5`,P),t[8]=P,t[9]=F);let I;t[10]!==n.project.id||t[11]!==s?(I=()=>s(n.project.id),t[10]=n.project.id,t[11]=s,t[12]=I):I=t[12];let L=!i,R;t[13]===i?R=t[14]:(R=i?(0,$.jsx)(yi,{className:`size-3.5 shrink-0 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(vi,{className:`size-3.5 shrink-0 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=i,t[14]=R);let z;t[15]===n.project.name?z=t[16]:(z=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.project.name}),t[15]=n.project.name,t[16]=z);let B;t[17]!==n.project.name||t[18]!==z||t[19]!==I||t[20]!==L||t[21]!==R?(B=(0,$.jsxs)(`button`,{type:`button`,className:`flex h-7 min-w-0 flex-1 items-center gap-1 text-left hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,onClick:I,title:n.project.name,"aria-expanded":L,children:[R,z]}),t[17]=n.project.name,t[18]=z,t[19]=I,t[20]=L,t[21]=R,t[22]=B):B=t[22];let V;t[23]!==n.project||t[24]!==d||t[25]!==p||t[26]!==f||t[27]!==u||t[28]!==l||t[29]!==_?(V=(0,$.jsx)(hU,{project:n.project,onNavigate:p,onPinToggle:l,onRequestRename:u,onArchive:d,onRequestRemove:f,sb:_}),t[23]=n.project,t[24]=d,t[25]=p,t[26]=f,t[27]=u,t[28]=l,t[29]=_,t[30]=V):V=t[30];let H;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(H=Y(`flex size-7 shrink-0 items-center justify-center rounded-lg text-fg-subtle transition-opacity hover:bg-surface-hover hover:text-fg-muted`,`opacity-0 group-hover:opacity-100 focus:opacity-100`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),t[31]=H):H=t[31];let ee;t[32]!==n.project||t[33]!==c?(ee=()=>c(n.project),t[32]=n.project,t[33]=c,t[34]=ee):ee=t[34];let U;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(fo,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),t[35]=U):U=t[35];let W;t[36]!==_.projectNewChat||t[37]!==ee?(W=(0,$.jsx)(`button`,{type:`button`,className:H,onClick:ee,title:_.projectNewChat,"aria-label":_.projectNewChat,children:U}),t[36]=_.projectNewChat,t[37]=ee,t[38]=W):W=t[38];let G;t[39]!==B||t[40]!==V||t[41]!==W||t[42]!==F?(G=(0,$.jsxs)(`div`,{className:F,children:[B,V,W]}),t[39]=B,t[40]=V,t[41]=W,t[42]=F,t[43]=G):G=t[43];let te;t[44]!==a||t[45]!==k||t[46]!==y||t[47]!==b||t[48]!==n.project.id||t[49]!==n.sessionLoading||t[50]!==i||t[51]!==m||t[52]!==p||t[53]!==C||t[54]!==g||t[55]!==h||t[56]!==o||t[57]!==_||t[58]!==v||t[59]!==A||t[60]!==T||t[61]!==D?(te=i?null:(0,$.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[D.map(e=>(0,$.jsx)(mU,{session:e,isActive:a===e.key,onNavigate:p,mutate:m,onRequestRename:h,onRequestDelete:g,sb:_,sess:v,clipboard:y,defaultUnnamedTitle:b,sort:{containerId:`project:${n.project.id}`,itemId:e.key,itemIds:T.map(vU),onReorder:C}},e.key)),k?(0,$.jsxs)(`button`,{type:`button`,className:`ml-4 flex w-fit items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium text-fg-subtle transition-colors hover:bg-surface-hover hover:text-fg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,onClick:()=>o(n.project.id),disabled:n.sessionLoading,"aria-busy":n.sessionLoading||void 0,children:[n.sessionLoading?(0,$.jsx)(ha,{className:`size-3.5 animate-spin`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(Hn,{className:Y(`size-3.5 transition-transform duration-150 ease-out`,A&&`rotate-180`),strokeWidth:1.75,"aria-hidden":!0}),A?_.projectShowLess:_.projectShowMore]}):null]}),t[44]=a,t[45]=k,t[46]=y,t[47]=b,t[48]=n.project.id,t[49]=n.sessionLoading,t[50]=i,t[51]=m,t[52]=p,t[53]=C,t[54]=g,t[55]=h,t[56]=o,t[57]=_,t[58]=v,t[59]=A,t[60]=T,t[61]=D,t[62]=te):te=t[62];let ne;t[63]!==n.project.name||t[64]!==G||t[65]!==te?(ne=(0,$.jsxs)(`section`,{className:`flex flex-col gap-0.5`,"aria-label":N,children:[G,te]}),t[63]=n.project.name,t[64]=G,t[65]=te,t[66]=ne):ne=t[66];let K;return t[67]!==S||t[68]!==ne?(K=(0,$.jsx)(rU,{spec:S,children:ne}),t[67]=S,t[68]=ne,t[69]=K):K=t[69],K}function vU(e){return e.key}function yU(e){let t=(0,Q.c)(49),{sessions:n,hasMore:r,loadingMore:i,isCollapsed:a,onToggleCollapsed:o,onCreateChat:s,onLoadMore:c,activeConversationId:l,onNavigate:u,mutate:d,onRequestRename:f,onRequestDelete:p,sb:m,sess:h,clipboard:g,defaultUnnamedTitle:_,excludedConversationIds:v,onReorder:y,sortable:b}=e,x=b===void 0||b,S;t[0]!==v||t[1]!==n?(S=v?n.filter(e=>!v.has(e.key)):n,t[0]=v,t[1]=n,t[2]=S):S=t[2];let C=S;if(C.length===0&&!r)return null;let w=m.inboxHeading,T;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(T=Y(`flex min-w-0 flex-1 items-center gap-1 px-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,dU),t[3]=T):T=t[3];let E=!a,D=m.inboxHeading,O=a&&`-rotate-90`,k;t[4]===O?k=t[5]:(k=Y(`size-3.5 transition-transform duration-150 ease-out`,O),t[4]=O,t[5]=k);let A;t[6]===k?A=t[7]:(A=(0,$.jsx)(Hn,{className:k,strokeWidth:1.75,"aria-hidden":!0}),t[6]=k,t[7]=A);let j;t[8]!==o||t[9]!==m.inboxHeading||t[10]!==E||t[11]!==A?(j=(0,$.jsxs)(`button`,{type:`button`,className:T,onClick:o,"aria-expanded":E,children:[D,A]}),t[8]=o,t[9]=m.inboxHeading,t[10]=E,t[11]=A,t[12]=j):j=t[12];let M;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(M=Y(`flex size-7 shrink-0 items-center justify-center rounded-lg text-fg-subtle transition-opacity hover:bg-surface-hover hover:text-fg-muted`,`opacity-0 group-hover:opacity-100 focus:opacity-100`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),t[13]=M):M=t[13];let N;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(fo,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),t[14]=N):N=t[14];let P;t[15]!==_||t[16]!==s?(P=(0,$.jsx)(`button`,{type:`button`,className:M,onClick:s,title:_,"aria-label":_,children:N}),t[15]=_,t[16]=s,t[17]=P):P=t[17];let F;t[18]!==j||t[19]!==P?(F=(0,$.jsxs)(`div`,{className:`group flex min-w-0 items-center pb-1`,children:[j,P]}),t[18]=j,t[19]=P,t[20]=F):F=t[20];let I=a&&`hidden`,L;t[21]===I?L=t[22]:(L=Y(`flex flex-col gap-0.5`,I),t[21]=I,t[22]=L);let R;t[23]!==l||t[24]!==g||t[25]!==_||t[26]!==d||t[27]!==u||t[28]!==y||t[29]!==p||t[30]!==f||t[31]!==m||t[32]!==h||t[33]!==x||t[34]!==C?(R=C.map(e=>(0,$.jsx)(mU,{session:e,isActive:l===e.key,onNavigate:u,mutate:d,onRequestRename:f,onRequestDelete:p,sb:m,sess:h,clipboard:g,defaultUnnamedTitle:_,sort:x?{containerId:`inbox`,itemId:e.key,itemIds:C.map(bU),onReorder:y}:void 0},e.key)),t[23]=l,t[24]=g,t[25]=_,t[26]=d,t[27]=u,t[28]=y,t[29]=p,t[30]=f,t[31]=m,t[32]=h,t[33]=x,t[34]=C,t[35]=R):R=t[35];let z;t[36]!==r||t[37]!==i||t[38]!==c||t[39]!==m.projectShowMore?(z=r?(0,$.jsxs)(`button`,{type:`button`,className:`ml-4 flex w-fit items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium text-fg-subtle transition-colors hover:bg-surface-hover hover:text-fg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,onClick:c,disabled:i,"aria-busy":i||void 0,children:[i?(0,$.jsx)(ha,{className:`size-3.5 animate-spin`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(Hn,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),m.projectShowMore]}):null,t[36]=r,t[37]=i,t[38]=c,t[39]=m.projectShowMore,t[40]=z):z=t[40];let B;t[41]!==L||t[42]!==R||t[43]!==z?(B=(0,$.jsxs)(`div`,{className:L,children:[R,z]}),t[41]=L,t[42]=R,t[43]=z,t[44]=B):B=t[44];let V;return t[45]!==m.inboxHeading||t[46]!==F||t[47]!==B?(V=(0,$.jsxs)(`section`,{className:`flex flex-col gap-0.5`,"aria-label":w,children:[F,B]}),t[45]=m.inboxHeading,t[46]=F,t[47]=B,t[48]=V):V=t[48],V}function bU(e){return e.key}function xU(e){let t=(0,Q.c)(21),{sessions:n,activeConversationId:r,onNavigate:i,mutate:a,onRequestRename:o,onRequestDelete:s,sb:c,sess:l,clipboard:u,defaultUnnamedTitle:d,onReorder:f}=e;if(n.length===0)return null;let p=l.pinnedSessions,m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=Y(`px-2 pb-1`,uU),t[0]=m):m=t[0];let h;t[1]===l.pinnedSessions?h=t[2]:(h=(0,$.jsx)(`h2`,{className:m,children:l.pinnedSessions}),t[1]=l.pinnedSessions,t[2]=h);let g;t[3]!==r||t[4]!==u||t[5]!==d||t[6]!==a||t[7]!==i||t[8]!==f||t[9]!==s||t[10]!==o||t[11]!==c||t[12]!==l||t[13]!==n?(g=n.map(e=>(0,$.jsx)(mU,{session:e,isActive:r===e.key,onNavigate:i,mutate:a,onRequestRename:o,onRequestDelete:s,sb:c,sess:l,clipboard:u,defaultUnnamedTitle:d,sort:{containerId:`pinned`,itemId:e.key,itemIds:n.map(SU),onReorder:f}},e.key)),t[3]=r,t[4]=u,t[5]=d,t[6]=a,t[7]=i,t[8]=f,t[9]=s,t[10]=o,t[11]=c,t[12]=l,t[13]=n,t[14]=g):g=t[14];let _;t[15]===g?_=t[16]:(_=(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:g}),t[15]=g,t[16]=_);let v;return t[17]!==l.pinnedSessions||t[18]!==h||t[19]!==_?(v=(0,$.jsxs)(`section`,{className:`mb-3 flex flex-col gap-0.5`,"aria-label":p,children:[h,_]}),t[17]=l.pinnedSessions,t[18]=h,t[19]=_,t[20]=v):v=t[20],v}function SU(e){return e.key}function CU(e){let t=(0,Q.c)(4),{onNavigate:n,scrollHeader:r}=e,i=T(wU),a;return t[0]!==i||t[1]!==n||t[2]!==r?(a=(0,$.jsx)(TU,{gateway:i,onNavigate:n,scrollHeader:r},i),t[0]=i,t[1]=n,t[2]=r,t[3]=a):a=t[3],a}function wU(e){return e.baseUrl}function TU({onNavigate:e,gateway:t,scrollHeader:n}){let r=E(e=>e.language),i=P(r),a=i.sidebar,o=i.sessions,s=i.projectsPage,c=i.chat.workingDirectory,l=T(e=>e.conversationId),u=HH(t,l),d=a.sessionFilters,f=(0,Z.useRef)(null),m=(0,Z.useRef)(0);(0,Z.useLayoutEffect)(()=>{f.current&&(f.current.scrollTop=u.active?0:m.current)},[u.active]);let h=T(e=>e.openTokenDialog),{data:g,mutate:_}=oc(l?[`gateway-chat-agents`,l]:null,gc,{revalidateOnFocus:!1}),v=g?.defaultId??`main`;(0,Z.useEffect)(()=>{let e=()=>void _();return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[_]);let{pathname:y}=p(),x=b(),S=aU(y),C=(0,Z.useMemo)(()=>Date.now()-$H*24*60*60*1e3,[]),[w,D]=(0,Z.useState)(null),[O,k]=(0,Z.useState)(``),[A,j]=(0,Z.useState)(null),[M,N]=(0,Z.useState)(null),[F,L]=(0,Z.useState)(``),[U,W]=(0,Z.useState)(null),[G,te]=(0,Z.useState)(!1),[ne,K]=(0,Z.useState)(``),[q,re]=(0,Z.useState)(``),[ie,ae]=(0,Z.useState)(null),[oe,se]=(0,Z.useState)(!1),[ce,le]=(0,Z.useState)(!1),[ue,de]=(0,Z.useState)(()=>S),[fe,pe]=(0,Z.useState)(!1),[me,he]=(0,Z.useState)(!1),[ge,_e]=(0,Z.useState)(()=>new Set),[ve,ye]=(0,Z.useState)(()=>new Set),[be,J]=(0,Z.useState)({}),[xe,Se]=(0,Z.useState)({}),[Ce,we]=(0,Z.useState)(()=>new Set),[Te,Ee]=(0,Z.useState)([]),[De,Oe]=(0,Z.useState)(null),[ke,Ae]=(0,Z.useState)(!1),[je,Me]=(0,Z.useState)({}),Ne=(0,Z.useRef)(new Set),Pe=wu({initialPath:q,onPicked:re}),{data:Fe,size:Ie,setSize:Le,isValidating:Re,mutate:ze}=cc((e,t)=>!l||t&&!t.projects.hasMore?null:[`sidebar-chat-list`,l,ue??``,e],async([,,e,t])=>Es({projectLimit:ZH,projectOffset:t*ZH,sessionPreviewLimit:QH,inboxLimit:t===0?XH:1,inboxOffset:0,staleDays:$H,includeConversationId:e||void 0}),{keepPreviousData:!0,revalidateOnFocus:!1}),Be=(0,Z.useMemo)(()=>{let e=Fe??[],t=[],n=new Set;for(let r of e)for(let e of r.projects.items){if(n.has(e.project.id))continue;n.add(e.project.id);let r=be[e.project.id],i=r?.sessions??e.sessions;t.push({project:e.project,sessions:i,sessionTotal:r?.sessionTotal??e.sessionTotal,sessionHasMore:r?.hasMore??e.sessionHasMore,sessionLoading:Ce.has(e.project.id)})}return nU(t.map(e=>({...e,sessions:nU(e.sessions,je[`project:${e.project.id}`],e=>e.key)})),je.projects,e=>e.project.id)},[Fe,Ce,je,be]),Ve=(0,Z.useMemo)(()=>{let e={};for(let t of Fe??[])Object.assign(e,t.childrenByConversationId);return{...e,...xe}},[Fe,xe]),He=Fe?.[0]?.inbox,Ue=(0,Z.useMemo)(()=>{let e=[],t=new Set;for(let n of[...He?.items??[],...Te])t.has(n.key)||(t.add(n.key),e.push(n));return e.sort((e,t)=>cU(t)-cU(e)),nU(e,je.inbox??Fe?.[0]?.layouts.inbox?.itemIds,e=>e.key)},[Fe,He?.items,Te,je.inbox]),We=De??He?.hasMore??!1,Ge=(0,Z.useMemo)(()=>{let e=[],t=new Set;for(let n of Be)for(let r of n.sessions)t.has(r.key)||(t.add(r.key),e.push(r));for(let n of Ue)t.has(n.key)||(t.add(n.key),e.push(n));return e},[Ue,Be]),Ke=(0,Z.useMemo)(()=>new Set(Ge.map(e=>e.key)),[Ge]),qe=Be.length>0||Ue.length>0,Je=(0,Z.useMemo)(()=>nU(Fe?.[0]?.pinned??[],je.pinned,e=>e.key),[Fe,je.pinned]),Ye=(0,Z.useMemo)(()=>new Set(Je.map(e=>e.key)),[Je]),Xe=!!(Fe&&Ie>Fe.length),Ze=(Fe?.[Fe.length-1])?.projects.hasMore??!1,Qe=!!(l&&!Fe&&Re),$e=(0,Z.useCallback)(()=>{J({}),Ee([]),Oe(null),Se({}),ze()},[ze]),et=(0,Z.useCallback)((e,t)=>{if(Ne.current.has(e))return;let n=Fe?.[0]?.layouts[e]?.revision??0;Me(n=>({...n,[e]:t})),Ne.current.add(e),(async()=>{try{await Ts({containerId:e,itemIds:t,expectedRevision:n}),await ze()}catch{ki(`warning`,r===`zh`?`未能保存侧栏顺序,已恢复原位置`:`Could not save sidebar order; the previous order was restored`,void 0,{duration:3500})}finally{Ne.current.delete(e),Me(t=>{let n={...t};return delete n[e],n})}})()},[Fe,r,ze]),tt=(0,Z.useCallback)(e=>{let t=e.currentTarget;if(u.active||(m.current=t.scrollTop,!Ze||Xe))return;let{scrollTop:n,scrollHeight:r,clientHeight:i}=t;r-n-i>100||Le(e=>e+1)},[u.active,Ze,Xe,Le]);(0,Z.useEffect)(()=>{if(!l)return;let e=()=>{$e()},t=e=>{if(!e.detail?.key){$e();return}$e()},n=e=>{KH(e.detail,Ke)&&$e()};return window.addEventListener(`session-updated`,t),window.addEventListener(`session-created`,e),window.addEventListener(`project-updated`,e),window.addEventListener(`task-updated`,e),window.addEventListener(`session-transcript-updated`,n),()=>{window.removeEventListener(`session-updated`,t),window.removeEventListener(`session-created`,e),window.removeEventListener(`project-updated`,e),window.removeEventListener(`task-updated`,e),window.removeEventListener(`session-transcript-updated`,n)}},[l,$e,Ke]),(0,Z.useEffect)(()=>{!l||!S||!Fe||Ge.some(e=>e.key===S)||de(e=>e===S?e:S)},[S,Fe,Ge,l]);let nt=(0,Z.useCallback)(e=>{D(e.key),k(iU(e,i.chat.newSession))},[i.chat.newSession]),rt=async()=>{if(!w)return;let e=O.trim();if(e)try{await Ds(w,e),D(null),u.refresh(),$e()}catch{}},it=async e=>{try{await Os(e),u.refresh(),S===e&&x(`/chat/new?projectScope=none`,{state:{forceNewChat:!0}}),$e()}catch{}},at=(0,Z.useCallback)(e=>{N(e.id),L(e.name.trim())},[]),ot=async()=>{if(!M||!ht)return;let e=F.trim();if(e)try{await xs(M,e,ht.version),N(null),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:M}}))}catch{}},st=(0,Z.useCallback)(async e=>{try{await Ss(e.id,e.version),y===`/projects/${encodeURIComponent(e.id)}`&&x(`/projects`),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch{}},[x,y,$e]),ct=(0,Z.useCallback)(async e=>{try{e.pinnedAt?await gs(e.id,e.version):await vs(e.id,e.version),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch{}},[$e]),lt=async e=>{let t=e.id;try{await ys(t,e.version),y===`/projects/${encodeURIComponent(t)}`&&x(`/projects`),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:t}}))}catch{}},ut=(0,Z.useCallback)(e=>{let t=Be.find(t=>t.project.id===e);if(t){if(ve.has(e)&&!t.sessionHasMore){ye(t=>{let n=new Set(t);return n.delete(e),n});return}ye(t=>{let n=new Set(t);return n.add(e),n}),!(!t.sessionHasMore||Ce.has(e))&&(we(t=>new Set(t).add(e)),(async()=>{try{let n=await As({projectId:e,limit:5e3,offset:0,updatedAfter:C,includePinned:!0,includeConversationId:S,rootConversationsOnly:!0});Se(e=>({...e,...n.childrenByConversationId})),J(r=>{let i=r[e]?.sessions??t.sessions,a=new Set(i.map(e=>e.key)),o=[...i];for(let e of n.items)a.has(e.key)||(a.add(e.key),o.push(e));let s=nU(o,je[`project:${e}`]??Fe?.[0]?.layouts[`project:${e}`]?.itemIds,e=>e.key);return{...r,[e]:{sessions:s,sessionTotal:n.total,hasMore:!1}}})}finally{we(t=>{let n=new Set(t);return n.delete(e),n})}})())}},[S,Fe,ve,Ce,je,Be,C]),dt=(0,Z.useCallback)(e=>{_e(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ft=(0,Z.useCallback)(()=>{!We||ke||(Ae(!0),(async()=>{try{let e=await As({unassigned:!0,limit:5e3,offset:0,updatedAfter:C,includePinned:!0,includeConversationId:S,rootConversationsOnly:!0});Se(t=>({...t,...e.childrenByConversationId})),Ee(t=>{let n=new Set([...He?.items??[],...t].map(e=>e.key)),r=[...t];for(let t of e.items)n.has(t.key)||(n.add(t.key),r.push(t));return nU(r,je.inbox??Fe?.[0]?.layouts.inbox?.itemIds,e=>e.key)}),Oe(!1)}finally{Ae(!1)}})())},[S,Fe,He?.items,We,ke,je.inbox,C]),pt=(0,Z.useCallback)(t=>{mr(x,uc(t.id),{state:{forceNewChat:!0,agentId:t.defaultAgentId??v}},e)},[v,x,e]),mt=(0,Z.useCallback)(async e=>{e.preventDefault();let t=ne.trim(),n=q.trim();if(!(!t||oe)){se(!0),ae(null);try{let e=await bs({name:t,...n?{workspaceRoot:n}:{},autoUnderstand:!!n&&ce});K(``),re(``),le(!1),te(!1),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){ae(e instanceof Error?e.message:String(e))}finally{se(!1)}}},[ne,q,oe,$e,ce]),ht=M?Be.find(e=>e.project.id===M)?.project:void 0,gt=U?Be.find(e=>e.project.id===U)?.project:void 0;return l?(0,$.jsx)(qH,{value:u.filters.details,children:(0,$.jsx)(JH,{value:Ve,children:(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,$.jsxs)(`div`,{ref:f,className:`app-sidebar-nav-scroll min-h-0 flex-1 overflow-y-auto overscroll-y-contain pb-2`,onScroll:tt,children:[n,(0,$.jsx)(`div`,{hidden:u.active||Qe,className:`px-2`,children:(0,$.jsx)(xU,{sessions:Je,activeConversationId:S,onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,onReorder:et})}),(0,$.jsx)(`div`,{className:`px-2`,children:(0,$.jsxs)(`div`,{className:`group flex min-w-0 items-center gap-1.5 px-2 pb-1`,children:[(0,$.jsxs)(`button`,{type:`button`,className:Y(`flex shrink-0 items-center gap-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,dU),onClick:()=>pe(e=>!e),"aria-expanded":!fe,children:[a.projectsHeading,(0,$.jsx)(Hn,{className:Y(`size-3.5 transition-transform duration-150 ease-out`,fe&&`-rotate-90`),strokeWidth:1.75,"aria-hidden":!0})]}),(0,$.jsx)(RH,{filters:u.filters,onChange:u.updateFilters,search:u.search,onSearch:u.setSearch,labels:d,gateway:t,agents:g?.items??[]}),(0,$.jsx)(`button`,{type:`button`,className:Y(`flex size-6 shrink-0 items-center justify-center rounded-md text-fg-subtle opacity-0 transition-[color,background-color,opacity] hover:bg-surface-hover hover:text-fg focus:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`group-hover:opacity-100 group-focus-within:opacity-100 [@media(hover:none)]:opacity-100`,G&&`opacity-100`),onClick:()=>te(!0),"aria-label":s.createTitle,title:s.createTitle,children:(0,$.jsx)(fo,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0})})]})}),u.active?(0,$.jsxs)(`div`,{className:`px-2 py-2`,children:[u.pendingUpdate?(0,$.jsx)(`button`,{type:`button`,className:`mb-2 w-full rounded-md px-2 py-1 text-xs text-accent-fg hover:bg-surface-hover`,onClick:u.refresh,children:d.refresh}):null,u.error?(0,$.jsxs)(`div`,{role:`alert`,className:`space-y-2 p-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{children:d.error}),(0,$.jsx)(X,{variant:`secondary`,onClick:u.refresh,children:d.retry})]}):u.loading?(0,$.jsx)(pU,{}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`px-2 pb-2 text-xs text-fg-muted`,"aria-live":`polite`,children:d.results.replace(`{{count}}`,String(u.total))}),u.items.length?null:(0,$.jsx)(`p`,{className:`px-2 py-4 text-xs text-fg-muted`,children:d.empty}),(0,$.jsx)(qH,{value:!0,children:u.items.map(t=>(0,$.jsx)(mU,{session:t,isActive:t.key===S,showTaskChildren:!1,contextLabel:t.projectId?u.projects?.find(e=>e.id===t.projectId)?.name??Be.find(e=>e.project.id===t.projectId)?.project.name??t.projectId:d.unassigned,onNavigate:e,mutate:()=>{u.refresh(),$e()},onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession},t.key))}),u.loadingMore?(0,$.jsx)(fU,{}):u.hasMore?(0,$.jsx)(`button`,{type:`button`,className:`w-full rounded-md py-2 text-xs text-fg-muted hover:bg-surface-hover`,onClick:u.loadMore,children:d.more}):null]})]}):null,(0,$.jsxs)(`div`,{hidden:u.active,children:[Qe?(0,$.jsx)(pU,{}):qe?(0,$.jsxs)(`div`,{className:`flex flex-col px-2`,children:[Be.length>0?(0,$.jsx)(`div`,{className:`pb-1`,children:fe?null:Be.map(t=>(0,$.jsx)(_U,{group:t,isExpanded:ve.has(t.project.id),isCollapsed:ge.has(t.project.id),activeConversationId:S,onToggleExpanded:ut,onToggleCollapsed:dt,onCreateProjectChat:e=>void pt(e),onToggleProjectPin:e=>void ct(e),onRequestProjectRename:at,onArchiveProject:e=>void st(e),onRequestProjectRemove:e=>W(e.id),onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,excludedConversationIds:Ye,projectSort:{containerId:`projects`,itemId:t.project.id,itemIds:Be.map(e=>e.project.id),onReorder:et},onReorder:et},t.project.id))}):null,(0,$.jsx)(yU,{sessions:Ue.filter(e=>qa(e).source!==`system`),hasMore:We,loadingMore:ke,isCollapsed:me,onToggleCollapsed:()=>he(e=>!e),onCreateChat:()=>{mr(x,`/chat/new?projectScope=none`,{state:{forceNewChat:!0}},e)},onLoadMore:ft,activeConversationId:S,onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,excludedConversationIds:Ye,onReorder:et}),Ue.some(e=>qa(e).source===`system`)?(0,$.jsxs)(`details`,{className:`mt-3`,open:Ue.some(e=>e.key===S&&qa(e).source===`system`),children:[(0,$.jsx)(`summary`,{className:`cursor-pointer px-2 py-2 text-xs text-fg-muted`,children:r===`zh`?`系统活动`:`System activity`}),(0,$.jsx)(yU,{sessions:Ue.filter(e=>qa(e).source===`system`),hasMore:!1,loadingMore:ke,isCollapsed:!1,onToggleCollapsed:()=>void 0,onCreateChat:()=>{mr(x,`/chat/new?projectScope=none`,{state:{forceNewChat:!0}},e)},onLoadMore:ft,activeConversationId:S,onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,excludedConversationIds:Ye,onReorder:et,sortable:!1})]}):null]}):(0,$.jsx)(`div`,{className:`px-4 pb-2`,children:(0,$.jsx)(`p`,{className:`rounded-xl bg-surface-panel p-3 text-xs leading-relaxed text-fg-muted`,children:a.taskListEmpty})}),Xe?(0,$.jsx)(`div`,{className:`flex justify-center py-2`,"aria-busy":!0,children:(0,$.jsx)(ha,{className:`size-4 animate-spin text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})}):null]})]}),(0,$.jsx)(ee,{open:G,onOpenChange:e=>{oe||(te(e),e||ae(null))},children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(30rem,calc(100vh-2rem))] w-[min(36rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[(0,$.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:s.createTitle}),(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:s.createDescription})]}),(0,$.jsxs)(`form`,{onSubmit:mt,className:`flex min-h-0 flex-1 flex-col`,children:[(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,$.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[s.projectName,(0,$.jsx)(`input`,{autoFocus:!0,className:`h-10 rounded-lg border border-edge bg-surface-base px-3 font-normal outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:ne,onChange:e=>K(e.target.value),maxLength:160})]}),(0,$.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,$.jsx)(`span`,{className:`font-medium text-fg`,children:s.workspaceRoot}),(0,$.jsxs)(`button`,{type:`button`,className:`flex min-h-12 w-full items-center gap-3 rounded-lg border border-edge bg-surface-base px-3 py-2 text-left outline-none transition-colors hover:bg-surface-hover focus-visible:border-accent focus-visible:ring-2 focus-visible:ring-accent/20 disabled:cursor-not-allowed disabled:opacity-60`,onClick:Pe.pick,disabled:oe||Pe.picking,children:[Pe.picking?(0,$.jsx)(ha,{className:`size-5 shrink-0 animate-spin text-accent`,"aria-hidden":!0}):(0,$.jsx)(vi,{className:`size-5 shrink-0 text-accent`,"aria-hidden":!0}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:q?c.chooseFolder:c.selectWorkingDirectory}),(0,$.jsx)(`span`,{className:Y(`mt-0.5 block truncate font-mono text-xs font-normal`,q?`text-fg-muted`:`text-fg-subtle`),title:q||void 0,children:q||s.workspaceSelectionPlaceholder})]})]}),(0,$.jsx)(`p`,{className:`text-xs font-normal text-fg-muted`,children:s.workspaceSelectionHint})]}),(0,$.jsx)(Su,{checked:ce,onChange:le,disabled:oe||!q.trim()}),ie?(0,$.jsx)(`p`,{className:`rounded-lg bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:ie}):null]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(X,{type:`button`,variant:`ghost`,disabled:oe,children:s.cancel})}),(0,$.jsx)(X,{type:`submit`,variant:`primary`,disabled:oe||!ne.trim(),children:oe?s.home.creating:s.create})]})]})]})]})}),Pe.hasNativePicker?null:(0,$.jsx)(Jn,{open:Pe.modalOpen,onOpenChange:Pe.setModalOpen,initialAbsolutePath:q||void 0,onConfirm:Pe.confirmPick,wd:c}),(0,$.jsx)(ee,{open:w!==null,onOpenChange:e=>!e&&D(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:a.taskRenameTitle}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg-subtle`,htmlFor:`sidebar-rename-input`,children:a.taskRenamePlaceholder}),(0,$.jsx)(`input`,{id:`sidebar-rename-input`,type:`text`,value:O,onChange:e=>k(e.target.value),className:Y(`mt-1.5 w-full rounded-lg border border-edge bg-surface-base px-3 py-2 text-sm text-fg`,Cl,`dark:border-edge`),placeholder:i.chat.newSession,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),rt())}}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>D(null),children:a.taskRenameCancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,onClick:()=>void rt(),disabled:!O.trim(),children:a.taskRenameSave})]})]})]})}),(0,$.jsx)(ee,{open:A!==null,onOpenChange:e=>!e&&j(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:o.deleteSessionTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:A?oU(o.deleteSessionMessage,{name:Ge.find(e=>e.key===A)?.name?.trim()||i.chat.newSession}):``}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>j(null),children:o.cancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`bg-red-600 hover:bg-red-700`,onClick:()=>{A&&it(A),j(null)},children:o.delete})]})]})]})}),(0,$.jsx)(ee,{open:M!==null,onOpenChange:e=>!e&&N(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:a.projectRenameTitle}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg-subtle`,htmlFor:`sidebar-project-rename-input`,children:a.projectRenamePlaceholder}),(0,$.jsx)(`input`,{id:`sidebar-project-rename-input`,type:`text`,value:F,onChange:e=>L(e.target.value),className:Y(`mt-1.5 w-full rounded-lg border border-edge bg-surface-base px-3 py-2 text-sm text-fg`,Cl,`dark:border-edge`),placeholder:ht?.name??``,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),ot())}}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>N(null),children:a.taskRenameCancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,onClick:()=>void ot(),disabled:!F.trim(),children:a.taskRenameSave})]})]})]})}),(0,$.jsx)(ee,{open:U!==null,onOpenChange:e=>!e&&W(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,26rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:a.projectRemoveTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-relaxed text-fg-muted`,children:gt?oU(a.projectRemoveMessage,{name:gt.name}):``}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>W(null),children:o.cancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`bg-red-600 hover:bg-red-700`,onClick:()=>{gt&<(gt),W(null)},children:a.projectRemove})]})]})]})})]})})}):(0,$.jsxs)(`div`,{className:`app-sidebar-nav-scroll min-h-0 flex-1 overflow-y-auto overscroll-y-contain pb-2`,children:[n,(0,$.jsx)(`div`,{className:`flex flex-col gap-1.5 px-4 pt-4`,children:(0,$.jsxs)(`div`,{className:`rounded-xl bg-surface-panel p-3`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-muted`,children:a.taskListNeedToken}),(0,$.jsx)(X,{type:`button`,variant:`secondary`,className:`mt-3 h-8 w-full text-xs font-medium`,onClick:()=>{h(),e?.()},children:a.taskListAddToken})]})})]})}var EU=42,DU=1,OU=4,kU=3,AU=`xopc-web-sidebar-visible-app-count-v2`;function jU(e){return Math.min(OU,Math.max(DU,e))}function MU(){try{let e=Number.parseInt(globalThis.localStorage?.getItem(AU)??``,10);return Number.isFinite(e)?jU(e):kU}catch{return kU}}function NU({onNavigate:e,collapsed:t=!1}){let n=P(E(e=>e.language)),[r,i]=(0,Z.useState)(MU),a=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{try{globalThis.localStorage?.setItem(AU,String(r))}catch{}},[r]);function o(e){e.preventDefault(),a.current={clientY:e.clientY,visibleCount:r},e.currentTarget.setPointerCapture(e.pointerId)}function s(e){let t=a.current;if(!t)return;let n=Math.round((e.clientY-t.clientY)/EU);i(jU(t.visibleCount+n))}function c(e){a.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId)}function l(e){e.key===`ArrowDown`||e.key===`ArrowRight`?(e.preventDefault(),i(e=>jU(e+1))):e.key===`ArrowUp`||e.key===`ArrowLeft`?(e.preventDefault(),i(e=>jU(e-1))):e.key===`Home`?(e.preventDefault(),i(DU)):e.key===`End`&&(e.preventDefault(),i(OU))}return(0,$.jsxs)(`div`,{className:`app-sidebar-content flex min-h-0 flex-1 flex-col`,children:[(0,$.jsx)(`div`,{className:Y(`flex min-h-0 flex-1 flex-col overflow-hidden`,t&&`hidden`),"aria-hidden":t?!0:void 0,children:(0,$.jsx)(CU,{onNavigate:e,scrollHeader:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`app-sidebar-sticky-surface sticky top-0 z-20 px-4 pt-1.5 pb-0.5`,children:(0,$.jsxs)(gr,{to:`/chat/new`,state:{forceNewChat:!0},className:Y(`flex w-full items-center gap-2 rounded-lg px-3 py-2.5 text-left text-sm font-medium leading-6 transition-colors duration-200 ease-out md:py-1.5`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`text-fg-muted hover:bg-surface-hover hover:text-fg`),title:n.sidebar.newTask,onClick:()=>e?.(),children:[(0,$.jsx)(fo,{className:`size-4 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`truncate`,children:n.sidebar.newTask})]})}),(0,$.jsx)(`nav`,{className:`px-4`,"aria-label":`Main`,children:(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,$.jsx)(gH,{onNavigate:e,visibleLimit:r})})}),(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,"aria-label":n.sidebar.resizeApps,"aria-valuemin":DU,"aria-valuemax":OU,"aria-valuenow":r,tabIndex:0,className:`group flex h-3 touch-none cursor-row-resize items-center px-4 focus-visible:outline-none`,title:n.sidebar.resizeApps,onPointerDown:o,onPointerMove:s,onPointerUp:c,onPointerCancel:c,onKeyDown:l,children:(0,$.jsx)(`span`,{className:`h-px w-full bg-transparent transition-colors group-hover:bg-edge group-focus-visible:bg-accent`})}),(0,$.jsx)(`div`,{className:`h-2`,"aria-hidden":!0})]})})}),t?(0,$.jsx)(`nav`,{className:`min-h-0 flex-1 overflow-y-auto px-1.5 pb-2 pt-4`,"aria-label":`Main`,children:(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,$.jsx)(gH,{collapsed:!0,onNavigate:e,visibleLimit:kU})})}):null,(0,$.jsx)(lH,{collapsed:t,onNavigate:e})]})}var PU=`(min-width: 768px)`,FU=(0,Z.memo)(function(){let e=(0,Q.c)(42),t=E(IU),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n,i=Fe(LU),a=Fe(RU),o=Fe(zU),s=ke(BU),c=ke(VU),[l,u]=(0,Z.useState)(!1),d=Ht({runtime:Ve(),sidebarCollapsed:i,mobileNavOpen:s}),f;e[2]!==o||e[3]!==i?(f=e=>{if(i)return;e.preventDefault();let t=e.currentTarget,n=t.parentElement;t.setPointerCapture(e.pointerId),u(!0);let r=e.clientX,a=Fe.getState().expandedWidthPx,s=e.pointerId,c=0,l=a,d=a,f=()=>{c=0,d=l,n?.style.setProperty(`--sidebar-expanded-px`,`${d}px`)},p=e=>{l=Me(a+(e.clientX-r)),c===0&&(c=window.requestAnimationFrame(f))},m=()=>{c!==0&&(window.cancelAnimationFrame(c),f());try{t.releasePointerCapture(s)}catch{}u(!1),o(d),window.removeEventListener(`pointermove`,p),window.removeEventListener(`pointerup`,m),window.removeEventListener(`pointercancel`,m)};window.addEventListener(`pointermove`,p),window.addEventListener(`pointerup`,m),window.addEventListener(`pointercancel`,m)},e[2]=o,e[3]=i,e[4]=f):f=e[4];let p=f,m,h;e[5]===c?(m=e[6],h=e[7]):(m=()=>{let e=e=>{e.key===`Escape`&&c(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},h=[c],e[5]=c,e[6]=m,e[7]=h),(0,Z.useEffect)(m,h);let g,_;e[8]===c?(g=e[9],_=e[10]):(g=()=>{let e=window.matchMedia(PU),t=()=>{e.matches&&c(!1)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},_=[c],e[8]=c,e[9]=g,e[10]=_),(0,Z.useEffect)(g,_);let v,y;e[11]===s?(v=e[12],y=e[13]):(v=()=>{if(!s||!window.matchMedia(`(max-width: 767px)`).matches)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},y=[s],e[11]=s,e[12]=v,e[13]=y),(0,Z.useEffect)(v,y);let b;e[14]!==r||e[15]!==s||e[16]!==c?(b=s?(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-40 bg-scrim md:hidden`,"aria-label":r.closeMenu,onClick:()=>c(!1)}):null,e[14]=r,e[15]=s,e[16]=c,e[17]=b):b=e[17];let x=l&&`sidebar-width-resizing`,S=s?`max-md:translate-x-0`:`max-md:-translate-x-full`,C=i?`md:w-0 md:overflow-hidden md:border-0`:`app-sidebar-expanded-width`,w;e[18]!==x||e[19]!==S||e[20]!==C?(w=Y(`app-sidebar-push app-chrome-sidebar flex min-h-0 shrink-0 flex-col overflow-hidden bg-transparent`,x,`max-md:fixed max-md:left-0 max-md:top-0 max-md:z-50 max-md:h-[100dvh] max-md:w-[min(16rem,85vw)]`,`max-md:transition-transform max-md:duration-200 max-md:ease-out`,`motion-reduce:max-md:transition-none`,S,`md:relative md:h-full md:translate-x-0`,C),e[18]=x,e[19]=S,e[20]=C,e[21]=w):w=e[21];let T=i&&!s?!0:void 0,D=i&&!s?!0:void 0,O;e[22]!==a||e[23]!==i?(O=i?void 0:{"--sidebar-expanded-px":`${a}px`},e[22]=a,e[23]=i,e[24]=O):O=e[24];let k=d.sidebarChromeVisible?(0,$.jsxs)(`div`,{className:Y(`sidebar-chrome-row flex min-w-0`,xl,d.sidebarChromeDraggable&&`[-webkit-app-region:drag]`,d.sidebarLeadingInsetClass,i?`justify-center gap-1 px-1.5 max-md:flex`:Y(`justify-start gap-1`,d.sidebarLeadingInsetClass?`sidebar-chrome-row-darwin pr-3`:`px-3`),i&&`md:hidden`),children:[s?(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:Y(`size-8 shrink-0 rounded-xl p-0 md:hidden`,bl),"aria-label":r.closeMenu,title:r.closeMenu,onClick:()=>c(!1),children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:1.5,"aria-hidden":!0})}):null,d.sidebarQuickActionsVisible&&!i?(0,$.jsx)(QB,{sidebarToggleVariant:`sidebar`,className:`overflow-hidden`}):null]}):null,A;e[25]===c?A=e[26]:(A=(0,$.jsx)(NU,{collapsed:!1,onNavigate:()=>c(!1)}),e[25]=c,e[26]=A);let j;e[27]!==r||e[28]!==p||e[29]!==i?(j=i?null:(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":r.sidebar.resizeHandleAria,onPointerDown:p,className:Y(`pointer-events-auto absolute right-0 top-0 z-10 hidden h-full w-2 shrink-0 cursor-col-resize md:block`,`touch-none select-none`,bl)}),e[27]=r,e[28]=p,e[29]=i,e[30]=j):j=e[30];let M;e[31]!==w||e[32]!==T||e[33]!==D||e[34]!==O||e[35]!==k||e[36]!==A||e[37]!==j?(M=(0,$.jsxs)(`aside`,{id:`app-sidebar`,className:w,"aria-hidden":T,"data-collapsed":D,style:O,children:[k,A,j]}),e[31]=w,e[32]=T,e[33]=D,e[34]=O,e[35]=k,e[36]=A,e[37]=j,e[38]=M):M=e[38];let N;return e[39]!==M||e[40]!==b?(N=(0,$.jsxs)($.Fragment,{children:[b,M]}),e[39]=M,e[40]=b,e[41]=N):N=e[41],N});function IU(e){return e.language}function LU(e){return e.collapsed}function RU(e){return e.expandedWidthPx}function zU(e){return e.setExpandedWidthPx}function BU(e){return e.mobileNavOpen}function VU(e){return e.setMobileNavOpen}function HU(e){if(typeof e!=`string`||e.length>8192)throw Error(`Invalid browser URL`);let t=new URL(e);if(![`http:`,`https:`].includes(t.protocol)||t.username||t.password)throw Error(`Use an HTTP or HTTPS address without embedded credentials`);return t.href}function UU(e,t){let n=e.trim();if(!n)return null;if(/^https?:\/\//i.test(n))return HU(n);if(/^(localhost|127(?:\.\d+){3}|\[::1\])(?::\d+)?(?:[/?#]|$)/i.test(n))return HU(`http://${n}`);if(!/\s/.test(n)&&/^(?:[\w-]+\.)+[\w-]+(?::\d+)?(?:[/?#]|$)/i.test(n))return HU(`https://${n}`);if(/^[a-z][a-z\d+.-]*:/i.test(n))throw Error(`Only HTTP and HTTPS addresses are supported`);return t?{google:`https://www.google.com/search?q=`,bing:`https://www.bing.com/search?q=`,duckduckgo:`https://duckduckgo.com/?q=`}[t]+encodeURIComponent(n):null}var WU=O(e=>({tabs:{},update:t=>e(e=>({tabs:{...e.tabs,[t.workspaceTabId]:t}}))}));async function GU(e){let t=WU.getState().tabs[e];return t&&window.electronAPI?.browser&&!await window.electronAPI.browser.close(t.id)?!1:(WU.setState(t=>({tabs:Object.fromEntries(Object.entries(t.tabs).filter(([t])=>t!==e))})),!0)}T.subscribe((e,t)=>{(e.baseUrl!==t.baseUrl||t.conversationId&&e.conversationId!==t.conversationId)&&(WU.setState({tabs:{}}),window.electronAPI?.browser?.release().catch(()=>{}))});function KU(e,t,n){let r=(0,Q.c)(5),i,a;r[0]!==t||r[1]!==e||r[2]!==n?(i=()=>{let r=window.electronAPI?.browser,i=e.current;if(!r||!t||!i)return;let a=0,o=``,s=!1,c=()=>{if(a=0,s)return;let e=[...document.querySelectorAll(`[role="dialog"], [role="alertdialog"], [data-radix-popper-content-wrapper], [data-browser-occluder]`)].some(ZU),l=[i.closest(`[data-right-workspace]`),i.closest(`[role="tabpanel"]`)].filter(Boolean).some(YU),u=i.getBoundingClientRect(),d=n&&!e&&!l&&i.getClientRects().length>0&&document.visibilityState===`visible`?{x:u.x,y:u.y,width:u.width,height:u.height}:null,f=JSON.stringify(d);f!==o&&(o=f,r.present(t,d).catch(JU)),l&&(a=requestAnimationFrame(c))},l=()=>{a||=requestAnimationFrame(c)},u=new ResizeObserver(l);u.observe(i);let d=new MutationObserver(l);d.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`class`,`style`,`hidden`,`aria-hidden`,`data-state`]});let f=()=>{o=``,l()};return window.addEventListener(`focus`,f),window.addEventListener(`resize`,l),window.addEventListener(`scroll`,l,!0),document.addEventListener(`visibilitychange`,l),l(),()=>{s=!0,cancelAnimationFrame(a),u.disconnect(),d.disconnect(),window.removeEventListener(`focus`,f),window.removeEventListener(`resize`,l),window.removeEventListener(`scroll`,l,!0),document.removeEventListener(`visibilitychange`,l),r.present(t,null).catch(qU)}},a=[t,e,n],r[0]=t,r[1]=e,r[2]=n,r[3]=i,r[4]=a):(i=r[3],a=r[4]),(0,Z.useLayoutEffect)(i,a)}function qU(){}function JU(){}function YU(e){return e.getAnimations().some(XU)}function XU(e){return e.playState===`running`}function ZU(e){return e.getClientRects().length>0&&getComputedStyle(e).visibility!==`hidden`}function QU(e){let t=(0,Q.c)(94),{tab:n,scope:r,active:i}=e,a=(0,Z.useContext)(Ai),o=E(eW)===`zh`,s=T($U),c;t[0]===n.id?c=t[1]:(c=e=>e.tabs[n.id],t[0]=n.id,t[1]=c);let l=WU(c),u=(0,Z.useRef)(null),d=(0,Z.useRef)(null),[f,p]=(0,Z.useState)(n.initialUrl??``),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(),[b,x]=(0,Z.useState)(!1),S=window.electronAPI?.browser,C,w;t[2]!==s||t[3]!==r||t[4]!==n.id||t[5]!==n.initialUrl?(C=()=>{if(!S||!s)return;let e=!1;return S.ensure({workspaceTabId:n.id,scope:r,identity:s}).then(async t=>{if(e){Object.values(qc.getState().panes).some(e=>e.tabs.some(e=>e.id===n.id))||await S.close(t.id);return}WU.getState().update(t),!t.url&&n.initialUrl&&await S.navigate(t.id,n.initialUrl)}).catch(t=>{e||_(String(t.message??t))}),()=>{e=!0}},w=[S,s,r,n.id,n.initialUrl],t[2]=s,t[3]=r,t[4]=n.id,t[5]=n.initialUrl,t[6]=C,t[7]=w):(C=t[6],w=t[7]),(0,Z.useEffect)(C,w);let D;t[8]!==m||t[9]!==l?(D=()=>{!m&&l?.url&&p(l.url)},t[8]=m,t[9]=l,t[10]=D):D=t[10];let O=l?.url,k;t[11]!==m||t[12]!==O?(k=[m,O],t[11]=m,t[12]=O,t[13]=k):k=t[13],(0,Z.useEffect)(D,k),KU(u,l?.id,i&&!!l?.url&&!l?.error&&!l?.crashed&&!b);let A,j;t[14]!==i||t[15]!==n.id?(A=()=>{if(!i)return;let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`l`&&(e.preventDefault(),d.current?.focus(),d.current?.select())},t=e=>{e.detail===n.id&&(d.current?.focus(),d.current?.select())};return window.addEventListener(`browser-focus-address`,t),window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`browser-focus-address`,t)}},j=[i,n.id],t[14]=i,t[15]=n.id,t[16]=A,t[17]=j):(A=t[16],j=t[17]),(0,Z.useEffect)(A,j);let M;t[18]!==f||t[19]!==v||t[20]!==l?(M=async function(e){let t=e===void 0?v:e;if(!(!S||!l))try{let e=UU(f,t);if(!e){x(!!f.trim());return}x(!1),_(``),h(!1),await S.navigate(l.id,e)}catch(e){let t=e;_(t instanceof Error?t.message:String(t))}},t[18]=f,t[19]=v,t[20]=l,t[21]=M):M=t[21];let N=M,P;t[22]===l?P=t[23]:(P=function(e){!S||!l||(_(``),S.command(l.id,e).catch(e=>_(e instanceof Error?e.message:String(e))))},t[22]=l,t[23]=P);let F=P;if(!i){let e;return t[24]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`div`,{ref:u,hidden:!0}),t[24]=e):e=t[24],e}let I;t[25]===N?I=t[26]:(I=e=>{e.preventDefault(),N()},t[25]=N,t[26]=I);let L=o?`网页后退`:`Browser back`,R=!l?.canGoBack,z;t[27]===F?z=t[28]:(z=()=>F(`back`),t[27]=F,t[28]=z);let B;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(Ut,{className:`size-4`}),t[29]=B):B=t[29];let V;t[30]!==L||t[31]!==R||t[32]!==z?(V=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":L,disabled:R,onClick:z,children:B}),t[30]=L,t[31]=R,t[32]=z,t[33]=V):V=t[33];let H=o?`网页前进`:`Browser forward`,ee=!l?.canGoForward,U;t[34]===F?U=t[35]:(U=()=>F(`forward`),t[34]=F,t[35]=U);let W;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,$.jsx)(Wt,{className:`size-4`}),t[36]=W):W=t[36];let G;t[37]!==H||t[38]!==ee||t[39]!==U?(G=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":H,disabled:ee,onClick:U,children:W}),t[37]=H,t[38]=ee,t[39]=U,t[40]=G):G=t[40];let te=l?.loading?o?`停止加载网页`:`Stop loading page`:o?`刷新网页`:`Reload page`,ne=!l?.url&&!l?.loading,K;t[41]!==F||t[42]!==l?.loading?(K=()=>F(l?.loading?`stop`:`reload`),t[41]=F,t[42]=l?.loading,t[43]=K):K=t[43];let q;t[44]===l?.loading?q=t[45]:(q=l?.loading?(0,$.jsx)(Zo,{className:`size-4`}):(0,$.jsx)(bo,{className:`size-4`}),t[44]=l?.loading,t[45]=q);let re;t[46]!==te||t[47]!==ne||t[48]!==K||t[49]!==q?(re=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":te,disabled:ne,onClick:K,children:q}),t[46]=te,t[47]=ne,t[48]=K,t[49]=q,t[50]=re):re=t[50];let ie=o?`搜索或输入网址`:`Search or enter a URL`,ae,oe,se;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(ae=()=>h(!0),oe=()=>h(!1),se=e=>p(e.target.value),t[51]=ae,t[52]=oe,t[53]=se):(ae=t[51],oe=t[52],se=t[53]);let ce=o?`搜索或输入网址`:`Search or enter a URL`,le;t[54]!==f||t[55]!==ie||t[56]!==ce?(le=(0,$.jsx)(`input`,{ref:d,"aria-label":ie,autoComplete:`off`,spellCheck:!1,value:f,onFocus:ae,onBlur:oe,onChange:se,placeholder:ce,className:`h-9 min-w-0 flex-1 rounded-full border border-edge-subtle bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`}),t[54]=f,t[55]=ie,t[56]=ce,t[57]=le):le=t[57];let ue=a?.button,de=o?`在系统浏览器打开`:`Open in system browser`,fe=!l?.url,pe;t[58]===l?pe=t[59]:(pe=()=>{l?.url&&window.electronAPI?.shell?.openExternalUrl(l.url).catch(e=>_(e instanceof Error?e.message:String(e)))},t[58]=l,t[59]=pe);let me;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,$.jsx)(Kr,{className:`size-4`}),t[60]=me):me=t[60];let he;t[61]!==de||t[62]!==fe||t[63]!==pe?(he=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":de,disabled:fe,onClick:pe,children:me}),t[61]=de,t[62]=fe,t[63]=pe,t[64]=he):he=t[64];let ge;t[65]!==I||t[66]!==V||t[67]!==G||t[68]!==re||t[69]!==le||t[70]!==ue||t[71]!==he?(ge=(0,$.jsxs)(`form`,{"data-workspace-toolbar":!0,className:`flex h-14 shrink-0 items-center gap-1 bg-surface-inset px-2`,onSubmit:I,children:[V,G,re,le,ue,he]}),t[65]=I,t[66]=V,t[67]=G,t[68]=re,t[69]=le,t[70]=ue,t[71]=he,t[72]=ge):ge=t[72];let _e;t[73]===g?_e=t[74]:(_e=g?(0,$.jsx)(`p`,{role:`alert`,className:`border-b border-edge px-3 py-2 text-sm text-fg-muted`,children:g}):null,t[73]=g,t[74]=_e);let ve;t[75]===l?ve=t[76]:(ve=l?.notice?(0,$.jsx)(`p`,{role:`status`,className:`border-b border-edge px-3 py-2 text-xs text-fg-muted`,children:l.notice}):null,t[75]=l,t[76]=ve);let ye;t[77]!==b||t[78]!==N||t[79]!==o?(ye=b?(0,$.jsxs)(`div`,{role:`dialog`,"aria-label":o?`选择搜索引擎`:`Choose a search engine`,className:`border-b border-edge p-4 text-sm`,children:[(0,$.jsx)(`p`,{children:o?`选择搜索引擎后才会提交这次搜索。`:`Choose where to send this search.`}),(0,$.jsxs)(`div`,{className:`mt-3 flex gap-3`,children:[[`duckduckgo`,`google`,`bing`].map(e=>(0,$.jsx)(`button`,{type:`button`,className:`rounded-lg border border-edge px-3 py-2 hover:bg-surface-hover`,onClick:()=>{y(e),N(e)},children:e===`duckduckgo`?`DuckDuckGo`:e===`google`?`Google`:`Bing`},e)),(0,$.jsx)(`button`,{type:`button`,onClick:()=>x(!1),children:o?`取消`:`Cancel`})]})]}):null,t[77]=b,t[78]=N,t[79]=o,t[80]=ye):ye=t[80];let be;t[81]!==F||t[82]!==g||t[83]!==l||t[84]!==o?(be=!l&&g?(0,$.jsx)(`div`,{className:`p-8 text-sm text-fg-muted`,children:o?`无法创建浏览器标签。关闭其他网页后重试。`:`Browser tab could not be created. Close another page and try again.`}):l?l.error?(0,$.jsxs)(`div`,{role:`alert`,className:`p-8`,children:[(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l.error}),(0,$.jsx)(`button`,{type:`button`,className:`mt-4 text-accent`,onClick:()=>F(`reload`),children:o?`重试`:`Retry`})]}):l.url?null:(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 p-8 text-center text-fg-muted`,children:[(0,$.jsx)(Ni,{className:`size-9`}),(0,$.jsx)(`h2`,{className:`text-lg text-fg`,children:o?`浏览网页`:`Browse the web`}),(0,$.jsx)(`p`,{className:`text-sm`,children:o?`输入网址开始。网页内容不会自动发送到聊天。`:`Enter an address to begin. Pages are not automatically shared with chat.`})]}):(0,$.jsxs)(`div`,{className:`space-y-4 p-6`,children:[(0,$.jsx)($o,{className:`h-8 w-2/3`}),(0,$.jsx)($o,{className:`h-40 w-full`})]}),t[81]=F,t[82]=g,t[83]=l,t[84]=o,t[85]=be):be=t[85];let J;t[86]===be?J=t[87]:(J=(0,$.jsx)(`div`,{ref:u,className:`relative min-h-0 flex-1 overflow-hidden bg-surface-base`,"data-browser-surface":!0,children:be}),t[86]=be,t[87]=J);let xe;return t[88]!==ge||t[89]!==_e||t[90]!==ve||t[91]!==ye||t[92]!==J?(xe=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"data-browser-tab":!0,children:[ge,_e,ve,ye,J]}),t[88]=ge,t[89]=_e,t[90]=ve,t[91]=ye,t[92]=J,t[93]=xe):xe=t[93],xe}function $U(e){return e.conversationId}function eW(e){return e.language}function tW(){let e=(0,Q.c)(1),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,Z.useEffect)(nW,t)}function nW(){return window.electronAPI?.browser?.onEvent(rW)}function rW(e){if(e.kind===`state`)WU.getState().update(e.state),qc.getState().updateBrowserTitle(e.state.workspaceTabId,e.state.title);else if(e.kind===`focus-address`)window.dispatchEvent(new CustomEvent(`browser-focus-address`,{detail:e.workspaceTabId}));else{let t=qc.getState();Object.values(t.panes).flatMap(aW).filter(iW).length<24&&t.openBrowser(e.url,e.scope,e.sourceTabId)}}function iW(e){return e.kind===`browser`}function aW(e){return e.tabs}var oW=(0,Z.memo)(function({elevated:e=!1,embedded:t=!1,scope:n,onCloseTree:r}){let i=P(E(e=>e.language)),{pathname:a,search:o}=p(),{conversationId:s}=d(),c=a.startsWith(`/chat`)&&s&&s!==`new`?decodeURIComponent(s):null,l=It(e=>e.open),u=t||l,f=(0,Z.useRef)(u),m=It(e=>e.setOpen),h=(0,Z.useCallback)(e=>{t?e||r?.():m(e)},[t,r,m]),g=It(e=>e.conversationIdOverride),_=It(e=>e.widthPx),v=It(e=>e.setWidthPx),y=n?n.conversationId??null:g??c,b=n?n.projectId??null:!y&&a.startsWith(`/chat`)?new URLSearchParams(o).get(`projectId`):null,[x,S]=(0,Z.useState)(!1),[C,w]=(0,Z.useState)(!1),[T,D]=(0,Z.useState)(``),[O,k]=(0,Z.useState)([]),[A,j]=(0,Z.useState)(!1),[M,N]=(0,Z.useState)(null),[F,I]=(0,Z.useState)(null),[L,R]=(0,Z.useState)(null),z=ll(e=>e.path),B=ll(e=>e.setPath),V=(0,Z.useCallback)(e=>{B(e,null,b,y)},[y,B,b]),H=Ru(e=>e.agentId),ee=n?.agentId??H,{tree:U,rootResource:W,loading:G,error:te,loadRoot:ne,loadChildren:K,refreshDirectory:q,reset:re}=Lu(ee,y,b),ie=y?`session:${y}`:b?`project:${b}`:`agent:${ee}`,ae=(0,Z.useMemo)(()=>b?{projectId:b}:y==null?ee.trim()?{agentId:ee.trim()}:void 0:{conversationId:y},[y,b,ee]),oe=T.trim(),se=Vl(),ce=(0,Z.useCallback)((e,t)=>{We(e.dataTransfer,{name:t.name,path:t.path,...ae})},[ae]),{dialogOpen:le,loading:ue,result:de,error:fe,pendingParams:pe,createShareLink:me,confirmShareLink:he,handleOpenChange:ge}=Uc(),_e=(0,Z.useCallback)(e=>{if(!u)return;e.preventDefault();let t=e.currentTarget,n=t.closest(`#app-workspace-panel`);t.setPointerCapture(e.pointerId),S(!0);let r=e.clientX,i=It.getState().widthPx,a=e.pointerId,o=0,s=i,c=i,l=()=>{o=0,c=s,n?.style.setProperty(`--workspace-panel-px`,`${c}px`)},d=e=>{s=Te(i+(r-e.clientX)),o===0&&(o=window.requestAnimationFrame(l))},f=()=>{o!==0&&(window.cancelAnimationFrame(o),l());try{t.releasePointerCapture(a)}catch{}S(!1),v(c),window.removeEventListener(`pointermove`,d),window.removeEventListener(`pointerup`,f),window.removeEventListener(`pointercancel`,f)};window.addEventListener(`pointermove`,d),window.addEventListener(`pointerup`,f),window.addEventListener(`pointercancel`,f)},[u,v]);(0,Z.useEffect)(()=>{!t&&!a.startsWith(`/chat`)&&h(!1)},[t,a,h]),(0,Z.useEffect)(()=>{let e=f.current;if(f.current=u,!u){re(),e&&!t&&V(null);return}t||V(null),ne()},[t,u,ie,ne,re,V]),(0,Z.useEffect)(()=>{if(!u||t)return;let e=e=>{if(e.key===`Escape`){if(C){e.preventDefault(),e.stopPropagation(),D(``),w(!1);return}ll.getState().path||h(!1)}};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[t,C,u,h]),(0,Z.useEffect)(()=>{if(!u||!t&&!C||!oe){k([]),j(!1),N(null);return}let e=!1;j(!0),N(null),k([]);let n=window.setTimeout(()=>{ku(oe,ae,50).then(t=>{e||k(t)}).catch(t=>{e||N(t instanceof Error?t.message:String(t))}).finally(()=>{e||j(!1)})},180);return()=>{e=!0,window.clearTimeout(n)}},[t,C,oe,u,ae]),(0,Z.useEffect)(()=>{if(!u||t||!window.matchMedia(`(max-width: 767px)`).matches)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[t,u]);let ve=(0,Z.useCallback)(e=>{K(e)},[K]),ye=(0,Z.useCallback)(async(e,t,n)=>{switch(e){case`preview`:if(t.isDirectory)return;V(t.path);break;case`download`:if(t.isDirectory)return;try{let e=Ti(t.path);if(wi(Ei(e))!==`text`)Au(e,await(await Du(t.path,ae)).arrayBuffer(),_c(e)??`application/octet-stream`);else{let{content:n}=await Ou(t.path,ae);Mu(e,n)}}catch{}break;case`copyPath`:try{await il(t.path)&&ki(`success`,i.workspace.pathCopied,void 0,{duration:2500})}catch{}break;case`openDefault`:await Pu(()=>window.electronAPI?.shell?.openFileResource?.(t.fileId),i.workspace.openFileFailed);break;case`openWith`:await Pu(()=>window.electronAPI?.shell?.chooseAppAndOpenFileResource?.(t.fileId),i.workspace.openFileFailed);break;case`openWithApp`:if(!n)return;await Pu(()=>window.electronAPI?.shell?.openFileResourceWithApp?.(t.fileId,n),i.workspace.openFileFailed);break;case`revealInFolder`:await Pu(()=>window.electronAPI?.shell?.showFileResourceInFolder?.(t.fileId),i.workspace.revealFileFailed);break;case`trash`:I(t);break;case`delete`:t.isDirectory||R(t);break;case`share`:await me({path:t.path,...t.isDirectory?{kind:`directory`,directoryMode:`browse`}:{},...ae});break;default:break}},[me,i.workspace.openFileFailed,i.workspace.pathCopied,i.workspace.revealFileFailed,V,ae]),be=(0,Z.useCallback)(async()=>{let e=F;if(!e)return;let n=await window.electronAPI?.shell?.trashFileResource?.(e.fileId);if(!n?.ok){ki(`warning`,n?.error??i.workspace.trashFailed,void 0,{duration:4e3});return}!t&&z===e.path&&V(null),I(null),await ne(),ki(`success`,i.workspace.trashSuccess,void 0,{duration:2500})},[t,ne,i.workspace.trashFailed,i.workspace.trashSuccess,F,z,V]),J=(0,Z.useCallback)(async(e,t)=>{try{await Promise.all(e.map(e=>ju(e,t,ae))),await q(t).catch(()=>void 0),ki(`success`,i.workspace.uploadSuccess.replace(`{{count}}`,String(e.length)),void 0,{duration:2500})}catch(e){await q(t).catch(()=>void 0),ki(`warning`,`${i.workspace.uploadFailed}: ${e instanceof Error?e.message:String(e)}`,void 0,{duration:4e3})}},[i.workspace.uploadFailed,i.workspace.uploadSuccess,q,ae]),xe=(0,Z.useCallback)(async()=>{let e=L;if(e)try{await Nu(e.fileId),!t&&z===e.path&&V(null),R(null);let n=e.path.lastIndexOf(`/`);await q(n<0?``:e.path.slice(0,n)).catch(()=>void 0),ki(`success`,i.workspace.deleteSuccess,void 0,{duration:2500})}catch(e){ki(`warning`,`${i.workspace.deleteFailed}: ${e instanceof Error?e.message:String(e)}`,void 0,{duration:4e3})}},[t,i.workspace.deleteFailed,i.workspace.deleteSuccess,L,z,q,V]);return(0,$.jsxs)($.Fragment,{children:[u&&!t?(0,$.jsx)(`button`,{type:`button`,className:Y(`fixed inset-0 bg-scrim md:hidden`,e?`z-[109]`:`z-40`),"aria-label":i.closeMenu,onClick:()=>h(!1)}):null,(0,$.jsx)(`aside`,{id:t?void 0:`app-workspace-panel`,"aria-label":i.workspace.title,"aria-hidden":!u,className:t?`flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-surface-base`:Y(`flex min-h-0 flex-col overflow-hidden bg-surface-base`,`max-md:fixed max-md:right-0 max-md:top-0 max-md:h-[100dvh] max-md:shadow-popover max-md:w-[min(20rem,92vw)]`,u?`max-md:translate-x-0`:`max-md:pointer-events-none max-md:translate-x-full`,`md:relative md:h-full md:translate-x-0`,e&&u?`pointer-events-auto z-[110]`:`max-md:z-50`,!u&&`md:pointer-events-none md:w-0 md:min-w-0 md:max-w-0 md:overflow-hidden`,u&&`app-workspace-panel-expanded-width md:shrink-0`,u&&x&&`workspace-panel-rail-resizing`),style:!t&&u?{"--workspace-panel-px":`${_}px`}:void 0,children:u?(0,$.jsxs)(`div`,{className:Y(`relative flex h-full min-h-0 w-full min-w-0 flex-col overflow-x-hidden overflow-y-hidden bg-surface-base`),children:[t?null:(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":i.workspace.resizeHandleAria,onPointerDown:_e,className:Y(`pointer-events-auto absolute left-0 top-0 z-20 hidden h-full w-2 cursor-col-resize md:block`,`before:content-[''] before:pointer-events-none before:absolute before:left-1/2 before:top-0 before:z-0 before:h-full before:w-px before:-translate-x-1/2`,`before:bg-transparent before:transition-[background-color] before:duration-150`,`hover:bg-surface-hover/20 hover:before:bg-edge/65 dark:hover:before:bg-edge/75`,x&&`bg-surface-hover/30 before:!bg-edge/80 dark:before:!bg-edge/85`,`transition-[background-color] duration-150`,`touch-none select-none`,bl)}),(0,$.jsxs)(`div`,{className:Y(`flex h-11 shrink-0 items-center gap-2 px-4`,!t&&`border-b border-edge dark:border-edge`),children:[(0,$.jsx)(`h2`,{className:`sr-only`,children:i.workspace.title}),se?W?(0,$.jsx)(zr,{resourceId:W.fileId,displayName:W.name}):null:(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5 text-sm font-medium text-fg`,children:[(0,$.jsx)(yi,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`truncate`,children:i.workspace.title})]}),(0,$.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`,children:[t?null:(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:Y(`size-9 shrink-0 rounded-md p-0`,C&&`bg-surface-hover text-fg`),"aria-label":i.workspace.search,title:i.workspace.search,"aria-pressed":C,onClick:()=>w(!0),children:(0,$.jsx)(wo,{className:`size-4`,strokeWidth:1.75})}),(0,$.jsx)(Eu,{className:`size-9 shrink-0 rounded-md p-0`,loading:G,label:i.cron.refresh,onClick:ne}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 rounded-md p-0`,"aria-label":i.workspace.close,title:i.workspace.close,onClick:()=>h(!1),children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:1.75})})]})]}),t||C?(0,$.jsx)(`div`,{className:Y(`shrink-0 px-3 pb-2 pt-1`,!t&&`border-b border-edge`),children:(0,$.jsxs)(`div`,{className:`flex h-10 items-center gap-2 rounded-xl border border-edge bg-surface-panel px-3 focus-within:border-accent focus-within:ring-2 focus-within:ring-accent/20`,children:[(0,$.jsx)(wo,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`input`,{type:`text`,role:`searchbox`,value:T,onChange:e=>D(e.target.value),placeholder:i.workspace.searchPlaceholder,"aria-label":i.workspace.searchPlaceholder,className:`min-w-0 flex-1 bg-transparent text-sm text-fg outline-none placeholder:text-fg-subtle`}),!t||T?(0,$.jsx)(`button`,{type:`button`,className:`flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":i.workspace.clearSearch,title:i.workspace.clearSearch,onClick:()=>{D(``),w(!1)},children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}):null]})}):null,te?(0,$.jsxs)(`p`,{className:`shrink-0 px-4 py-2 text-xs text-red-600 dark:text-red-400`,children:[i.workspace.loadError,`: `,te]}):null,oe?(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-2`,children:A?(0,$.jsxs)(`div`,{className:`space-y-2 px-3 py-1`,children:[(0,$.jsx)($o,{className:`h-11 w-full`}),(0,$.jsx)($o,{className:`h-11 w-full`}),(0,$.jsx)($o,{className:`h-11 w-full`})]}):M?(0,$.jsxs)(`p`,{className:`px-3 py-2 text-xs text-red-600 dark:text-red-400`,children:[i.workspace.loadError,`: `,M]}):O.length===0?(0,$.jsx)(`p`,{className:`px-3 py-2 text-xs text-fg-muted`,children:i.workspace.noSearchResults}):O.map(e=>(0,$.jsxs)(`button`,{type:`button`,draggable:!0,className:Y(`flex w-full min-w-0 cursor-grab items-center gap-2 px-3 py-2 text-left active:cursor-grabbing hover:bg-surface-hover`,z===e.path&&`bg-accent-soft text-accent-fg`),onClick:()=>V(e.path),onDragStart:t=>ce(t,e),title:e.path,children:[(0,$.jsx)($r,{name:e.name}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm text-fg`,children:e.name}),(0,$.jsx)(`span`,{className:`block truncate text-xs text-fg-subtle`,children:e.path})]})]},e.path))}):(0,$.jsx)(ti,{tree:U,selectedPath:z,onSelectFile:e=>V(e),onExpandDir:ve,onAction:ye,onFileDragStart:ce,onUploadFiles:(e,t)=>void J(e,t),uploadDropHint:i.workspace.dropToUpload,actionLabels:{preview:i.workspace.preview,download:i.workspace.download,copyPath:i.workspace.copyPath,share:i.workspace.shareLink,delete:i.workspace.deleteFile,...se?{openDefault:i.workspace.openSystemApp,openDirectory:i.workspace.openInFileManager,openWith:i.workspace.chooseApp,revealInFolder:i.workspace.revealInFolder,trash:i.workspace.moveToTrash,recommendedApps:i.workspace.recommendedApps,desktopUpdateRequired:i.workspace.desktopUpdateRequired}:{}},emptyHint:i.workspace.emptyDir})]}):null}),(0,$.jsx)(Yo,{open:le,onOpenChange:ge,loading:ue,error:fe,result:de,pendingParams:pe,onConfirm:e=>void he(e)}),(0,$.jsx)(Tu,{open:!!F,title:i.workspace.trashConfirmTitle,description:i.workspace.trashConfirmDescription.replace(`{{name}}`,F?.name??``),confirmLabel:i.workspace.moveToTrash,cancelLabel:i.workspace.cancel,destructive:!0,onConfirm:()=>void be(),onCancel:()=>I(null)}),(0,$.jsx)(Tu,{open:!!L,title:i.workspace.deleteConfirmTitle,description:i.workspace.deleteConfirmDescription.replace(`{{name}}`,L?.name??``),confirmLabel:i.workspace.deleteFile,cancelLabel:i.workspace.cancel,destructive:!0,onConfirm:()=>void xe(),onCancel:()=>R(null)})]})}),sW=`xopc:side-chat-client-id`;function cW(){let e=sessionStorage.getItem(sW);if(e)return e;let t=crypto.randomUUID();return sessionStorage.setItem(sW,t),t}function lW(){return{"x-xopc-client-instance-id":cW()}}async function uW(e,t){return(await D(w(`/api/sessions/${encodeURIComponent(e)}/side-chats`),{method:`POST`,headers:lW(),body:JSON.stringify({clientInstanceId:cW(),selections:t})})).sideChat}async function dW(e){return(await D(w(`/api/side-chats/${e}`),{headers:lW()})).sideChat}async function fW(e){return(await D(w(`/api/side-chats/${e}/messages`),{headers:lW()})).messages}async function pW(e,t){return(await D(w(`/api/side-chats/${e}/config`),{method:`PATCH`,headers:lW(),body:JSON.stringify(t)})).sideChat}async function mW(e,t,n){return(await D(w(`/api/side-chats/${e}/inputs`),{method:`POST`,headers:lW(),body:JSON.stringify({content:t,attachments:n})})).payload.runId}async function hW(e,t){await D(w(`/api/side-chats/${e}/abort`),{method:`POST`,headers:lW(),body:JSON.stringify({runId:t})})}async function gW(e,t,n){await D(w(`/api/side-chats/${e}/clarify/${t}`),{method:`POST`,headers:lW(),body:JSON.stringify(n)})}async function _W(e){await D(w(`/api/side-chats/${e}`),{method:`DELETE`,headers:lW()})}async function vW(e){return(await D(w(`/api/side-chats/${e}/heartbeat`),{method:`POST`,headers:lW()})).sideChat}async function yW(e){return(await D(w(`/api/side-chats/${e}/extend`),{method:`POST`,headers:lW()})).sideChat}async function bW(e){return D(w(`/api/side-chats/${e}/promote`),{method:`POST`,headers:lW()})}var xW=`xopc:side-chat-close-confirm-disabled:v1`,SW=()=>{},CW=[];function wW(){try{return localStorage.getItem(xW)===`true`}catch{return!1}}function TW(){try{localStorage.setItem(xW,`true`)}catch{}}function EW(e){return e.role===`user`?e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
7
|
-
`).trim():``}function
|
|
8
|
-
`)}function OW(e,t){let n=e?.body?.code;return n===`INVALID_REQUEST`?t.errorInvalidRequest:n===`NOT_FOUND`?t.errorNotFound:n===`CONFLICT`?t.errorConflict:n===`LIMIT_REACHED`?t.errorLimitReached:n===`CAPACITY_REACHED`?t.errorCapacity:n===`PARENT_NOT_FOUND`?t.parentMissing:n===`INTERNAL_ERROR`?t.failed:e instanceof Error?e.message:String(e)}function kW(e,t){let n=[...e];for(let[e,r]of t){let i=EW(r),a=DW(r),o=r.timestamp??0;if(n.some(e=>e.role===`user`&&EW(e)===i&&DW(e)===a&&Math.abs((e.timestamp??o)-o)<6e4)){t.delete(e);continue}let s=n.findIndex(e=>(e.timestamp??1/0)>o);s<0?n.push(r):n.splice(s,0,r)}return n}function AW({parentConversationId:e,embedded:t=!1,visible:n=!0}){let r=qc(t=>t.panes[e]),i=P(E(e=>e.language)).sideChat,a=Ot(t=>t.panes[e]?.open===!0),o=Ot(e=>e.tabs),s=Ot(e=>e.readings),c=(0,Z.useMemo)(()=>o.filter(t=>t.parentConversationId===e),[o,e]),l=Ot(t=>t.panes[e]?.activeId??null),u=t?r?.activeId?.replace(/^side:/,``):l,d=Ot(e=>e.pendingCreate),f=Ot(e=>e.requestCreate),p=Ot(e=>e.claimPendingCreate),m=Ot(e=>e.finishCreate),h=Ot(e=>e.addTab),g=Ot(e=>e.removeTab),_=Ot(e=>e.setActive),v=Ot(e=>e.setOpen),y=Ot(e=>e.widthPx),b=Ot(e=>e.setWidthPx),x=Ot(e=>e.setTabRunId),S=T(e=>e.conversationId),C=c.find(e=>e.id===u)??null,w=Ot(t=>!!t.creatingRequests[e]),[D,O]=(0,Z.useState)(null),[k,A]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),[N,F]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{if(!d||d.parentConversationId!==e)return;let n=p(e,d.requestId);if(!n)return;O(null);let r=T.getState();qc.getState().setNotice(e,``);let a=qc.getState().panes[e]?.activeId;uW(n.parentConversationId,n.selections).then(n=>{if(T.getState().conversationId!==r.conversationId||T.getState().baseUrl!==r.baseUrl)return;let i=Ot.getState().panes[n.parentConversationId]?.open===!0,o=qc.getState(),s=!t||o.scope===e&&o.panes[e]?.open===!0&&o.panes[e]?.activeId===a;h({id:n.id,parentConversationId:n.parentConversationId,title:`Side chat`},s),i||v(n.parentConversationId,!1)}).catch(n=>{O(OW(n,i)),t&&qc.getState().setNotice(e,OW(n,i))}).finally(()=>{m(n.parentConversationId,n.requestId)})},[h,p,t,m,i,e,d,v]);let[I,L]=(0,Z.useState)(!1),R=(0,Z.useCallback)(async n=>{let r=Ot.getState().tabs.find(e=>e.id===n)?.promotedConversationId;L(!0);try{r||await _W(n),g(n),M(null)}catch(r){let a=r?.status;a===404||a===410?(g(n),M(null)):(O(OW(r,i)),t&&qc.getState().setNotice(e,OW(r,i)))}finally{L(!1)}},[t,i,e,g]),z=(0,Z.useCallback)(e=>{let t=Ot.getState(),n=t.tabs.find(t=>t.id===e),r=t.readings[e],i=t.drafts[e];if(n?.promotedConversationId){R(e);return}if(r&&!r.messages.length&&!r.truncated&&!i?.text.trim()&&!i?.attachments.length&&!n?.runId||wW()){R(e);return}F(!1),M(e)},[R]),B=(0,Z.useCallback)(e=>{e.preventDefault();let t=e.clientX,n=Ot.getState().widthPx,r=e.pointerId;e.currentTarget.setPointerCapture(r),A(!0);let i=e=>{let r=Math.min(760,Math.max(360,n+t-e.clientX));document.getElementById(`app-side-chat-panel`)?.style.setProperty(`--side-chat-panel-px`,`${r}px`)},a=e=>{let r=Math.min(760,Math.max(360,n+t-e.clientX));b(r),A(!1),window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,a)};window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a),window.addEventListener(`pointercancel`,a)},[b]);return(0,Z.useEffect)(()=>{if(!t)return;let e=e=>{let t=e.detail;c.some(e=>e.id===t)&&!I&&z(t)};return window.addEventListener(`workspace-close-sidechat`,e),()=>window.removeEventListener(`workspace-close-sidechat`,e)},[I,t,z,c]),!t&&!a?null:(0,$.jsxs)(`aside`,{id:!t||n?`app-side-chat-panel`:void 0,"aria-label":i.paneAria,className:Y(t?`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`:`relative flex min-h-0 shrink-0 flex-col overflow-hidden border-l border-edge bg-surface-base`,!t&&`max-md:fixed max-md:inset-y-0 max-md:right-0 max-md:z-50 max-md:w-[min(92vw,34rem)] max-md:shadow-popover`,!t&&`app-side-chat-expanded-width app-side-chat-panel-enter`,t&&!n&&`hidden`,k&&`side-chat-panel-resizing`),style:{"--side-chat-panel-px":`${y}px`},children:[t?null:(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":i.resizeAria,onPointerDown:B,className:`absolute left-0 top-0 z-20 hidden h-full w-2 cursor-col-resize touch-none md:block`}),(0,$.jsxs)(`div`,{"data-side-chat-header":!0,className:Y(`h-11 shrink-0 items-center gap-1 overflow-x-auto px-2`,t?`hidden`:`flex`),children:[c.map(e=>(0,$.jsxs)(`div`,{className:Y(`flex h-8 shrink-0 items-center rounded-lg pl-3 text-sm`,e.id===u?`bg-surface-hover text-fg`:`text-fg-muted`),children:[(0,$.jsxs)(`button`,{type:`button`,className:`max-w-40 truncate`,onClick:()=>_(e.id),children:[e.title===`Side chat`?i.title:e.title,e.ended?` · ${e.ended===`promoted`?i.savedLabel:i.endedLabel}`:``]}),(0,$.jsx)(`button`,{type:`button`,className:`flex size-8 items-center justify-center rounded-md hover:bg-surface-active`,"aria-label":i.closeAria,onClick:()=>z(e.id),children:(0,$.jsx)(Zo,{className:`size-3.5`})})]},e.id)),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 p-0`,"aria-label":i.newAria,title:i.newAria,disabled:w,onClick:()=>f(e),children:(0,$.jsx)(fo,{className:`size-4`})}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`ml-auto size-8 shrink-0 p-0`,"aria-label":i.closePaneAria,onClick:()=>v(e,!1),children:(0,$.jsx)(Wn,{className:`size-4`})})]}),D&&(C||t)?(0,$.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-4 py-2 text-xs text-fg-muted`,role:`status`,children:[(0,$.jsx)(`p`,{children:D}),o.filter(e=>!e.ended).map(e=>(0,$.jsx)(`button`,{type:`button`,className:`mr-2 mt-1 rounded border border-edge px-2 py-1`,onClick:()=>{_(e.id),window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{conversationId:e.parentConversationId}}))},children:e.title===`Side chat`?i.title:e.title},e.id))]}):null,t?c.filter(e=>!e.ended||s[e.id]||n&&r?.activeId===`side:${e.id}`).map(t=>(0,$.jsx)(jW,{sideChatId:t.id,token:S??void 0,initialRunId:t.runId,onRunIdChange:x,parentConversationId:e,visible:n&&r?.activeId===`side:${t.id}`},`${t.id}:${S??``}`)):C?(0,$.jsx)(jW,{sideChatId:C.id,token:S??void 0,initialRunId:C.runId,onRunIdChange:x,parentConversationId:e},`${C.id}:${S??``}`):(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center px-8 text-center`,children:[(0,$.jsx)(Na,{className:`mb-4 size-10 text-fg-muted`,strokeWidth:1.5}),(0,$.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:i.title}),(0,$.jsx)(`p`,{className:`mt-2 max-w-sm text-sm leading-6 text-fg-muted`,children:i.temporaryDescription}),w?(0,$.jsx)($o,{className:`mt-4 h-4 w-32`}):null,D?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`mt-4 text-xs text-red-600 dark:text-red-400`,role:`alert`,children:D}),(0,$.jsx)(X,{className:`mt-3`,disabled:w,onClick:()=>f(e),children:i.retryCreate})]}):null]}),(0,$.jsx)(Tu,{open:j!==null,title:c.find(e=>e.id===j)?.runId?i.stopCloseTitle:i.closeConfirmTitle,description:c.find(e=>e.id===j)?.runId?i.stopCloseDescription:i.closeConfirmDescription,confirmLabel:c.find(e=>e.id===j)?.runId?i.stopCloseAction:i.closeConfirmAction,cancelLabel:i.closeConfirmCancel,checkboxLabel:i.closeConfirmDontAskAgain,checkboxChecked:N,onCheckboxCheckedChange:F,destructive:!0,onConfirm:()=>{if(I)return;let e=j;e&&(N&&TW(),F(!1),R(e))},onCancel:()=>{M(null),F(!1)}})]})}function jW({sideChatId:e,token:t,initialRunId:n,onRunIdChange:r,parentConversationId:i,visible:a=!0}){let o=p(),[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(()=>Ot.getState().readings[e]?.messages??[]),d=Ot(t=>t.drafts[e]?.text??``),f=Ot(t=>t.drafts[e]?.attachments??CW),m=(0,Z.useCallback)(t=>Ot.getState().setDraftText(e,t),[e]),h=(0,Z.useCallback)(t=>{Ot.getState().setDraftAttachments(e,t)},[e]),[g,_]=(0,Z.useState)(()=>Ot.getState().tabs.find(t=>t.id===e)?.ended),[v,y]=(0,Z.useState)(!g),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(!1),[w,D]=(0,Z.useState)(!1),[O,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(!1),[M,N]=(0,Z.useState)(()=>Ot.getState().tabs.find(t=>t.id===e)?.promotedConversationId),[F,I]=(0,Z.useState)(!1),[L,R]=(0,Z.useState)(``),[z,B]=(0,Z.useState)(Date.now),[V,H]=(0,Z.useState)(0),ee=Ot(t=>t.tabs.find(t=>t.id===e)?.fresh),U=Ot(t=>t.readings[e]?.truncated??!1),W=(0,Z.useRef)(!0),G=(0,Z.useRef)(g),te=(0,Z.useRef)(T.getState()),ne=(0,Z.useCallback)(()=>te.current.conversationId===T.getState().conversationId&&te.current.baseUrl===T.getState().baseUrl,[]),K=(0,Z.useCallback)(()=>W.current&&ne(),[ne]);(0,Z.useEffect)(()=>(W.current=!0,()=>{W.current=!1}),[]);let[q,re]=(0,Z.useState)(!!n),[ie,ae]=(0,Z.useState)(n),[oe,se]=(0,Z.useState)(null),[ce,le]=(0,Z.useState)(null),[ue,de]=(0,Z.useState)(!1),[fe,pe]=(0,Z.useState)(null),me=(0,Z.useRef)(!1),he=(0,Z.useRef)(0),ge=(0,Z.useRef)(0),_e=(0,Z.useRef)(!1),ve=(0,Z.useRef)(!1),ye=(0,Z.useRef)(new Map),be=P(E(e=>e.language)),J=be.sideChat,xe=fc({conversationId:e,chat:be.chat,initialAttachments:f,onAttachmentsChange:h}),Se=Rt({receiveExternalFill:!1,conversationId:e,disabled:!a||!!g||b,initialValue:d,onValueChange:m,autoFocusKey:a?e:null,shouldSyncSelectionRef:me}),Ce=(0,Z.useRef)({}),{scrollRef:we,atBottom:Te,registerListContentRef:Ee,scrollToBottom:De,onScroll:Oe}=ot({hasToken:!0,showSessionLoading:!1,conversationId:e,chatMessages:l,streaming:q,hasMore:!1,loadingMore:!1,loadMoreMessages:SW});(0,Z.useEffect)(()=>{K()&&(l.length||!v)&&Ot.getState().rememberMessages(e,l)},[l,v,e,K]);let ke=(0,Z.useCallback)(t=>{!K()||G.current||(G.current=t,he.current+=1,_(t),re(!1),ae(void 0),le(null),c(null),R(``),se(null),x(!1),y(!1),u(e=>gt(e).messages),Ot.getState().markEnded(e,t))},[K,e]),Ae=(0,Z.useCallback)(e=>{if(!K()||ve.current)return;let t=e;t.body?.code===`EXPIRED`||t.status===410?ke(t.body?.reason===`waiting`?`waiting`:`idle`):t.status===404||t.body?.code===`NOT_FOUND`?ke(`unavailable`):x(!0),y(!1)},[ke,K]),je=(0,Z.useCallback)(t=>{if(!K()||G.current)return;let n=t.serverNow?Date.parse(t.serverNow):0;n&&n<ge.current||(ge.current=n,c(t),x(!1),t.serverNow&&H(Date.parse(t.serverNow)-Date.now()),B(Date.now()),re(t.status!==`idle`),ae(t.runId),r(e,t.runId),le(t.clarification??null))},[K,r,e]),Me=(0,Z.useCallback)(async()=>{let t=he.current;try{let[n,r]=await Promise.all([dW(e),fW(e)]);if(!K()||G.current)return;he.current===t&&(je(n),u(kW(Rs(r),ye.current))),y(!1)}catch(e){Ae(e)}},[je,Ae,K,e]);(0,Z.useEffect)(()=>{if(g)return;Me();let t=!1,n=async()=>{if(t||G.current)return;t=!0;let n=he.current;try{let t=await vW(e);t&&n===he.current&&je(t)}catch(e){Ae(e)}finally{t=!1}},r=window.setInterval(()=>{B(Date.now()),n()},3e4),i=()=>{document.visibilityState!==`hidden`&&Me()};return window.addEventListener(`online`,i),window.addEventListener(`pageshow`,i),document.addEventListener(`visibilitychange`,i),()=>{window.clearInterval(r),window.removeEventListener(`online`,i),window.removeEventListener(`pageshow`,i),document.removeEventListener(`visibilitychange`,i)}},[g,Me,je,Ae,e]),(0,Z.useEffect)(()=>{if(!g)return bc(`side-chat:${cW()}:${e}`,{onEvent:e=>{e.event===`expired`&&ke(e.data?.reason===`waiting`?`waiting`:`idle`)},onGap:()=>Me()})},[g,ke,Me,e]),(0,Z.useEffect)(()=>{if(!L)return;let e=window.setTimeout(()=>R(``),5e3);return()=>window.clearTimeout(e)},[L]);let Ne=(0,Z.useRef)(0),Pe=(0,Z.useRef)(a);Pe.current=a;let Fe=(0,Z.useRef)(!1);(0,Z.useEffect)(()=>{a&&(Ne.current=l.length,Fe.current=!1),Ot.getState().setTabStatus(e,{waiting:!!ce,disconnected:b,unread:!a&&(Fe.current||l.length>Ne.current)})},[ce,b,l,ie,e,a]);let Ie=s?.expiresAt?Date.parse(s.expiresAt)-(z+V):1/0,Le=!g&&!b&&Ie<=5*6e4,Re=async()=>{if(!(S||G.current)){C(!0);try{let t=await yW(e);if(!K()||G.current)return;je(t),se(null),R(J.extended)}catch(e){let t=e.status;(t===404||t===410)&&Ae(e),G.current||se(J.extendFailed)}finally{C(!1)}}},ze=async()=>{let t=i??Ot.getState().tabs.find(t=>t.id===e)?.parentConversationId;if(!(!t||w)){D(!0),se(null);try{let n=await uW(t,[]);if(!ne())return;Ot.getState().replaceTab(e,{id:n.id,parentConversationId:t,title:`Side chat`})}catch(e){if(!K())return;e.body?.code===`PARENT_NOT_FOUND`&&I(!0),se(OW(e,J))}finally{D(!1)}}},Be=(0,Z.useCallback)(e=>{he.current+=1,u(t=>{let n=structuredClone(t),r=n.at(-1);return r?.role!==`assistant`&&(r={role:`assistant`,content:[],timestamp:Date.now()},n.push(r)),e(r),n})},[]);(0,Z.useEffect)(()=>{if(!(!ie||g))return bc(`run:${ie}`,{onEvent:t=>{if(!K()||G.current)return;Pe.current||(Fe.current=!0);let n=t.data?.payload??{};t.event===`assistant_message_start`?Be(()=>{}):t.event===`assistant_delta`?Be(e=>Fs(e.content,String(n.delta??``),String(n.messageId??``))):t.event===`thinking_delta`?Be(e=>Hs(e.content,String(n.delta??``),!0)):t.event===`thinking_end`?Be(e=>Ns(e.content)):t.event===`tool_start`?Be(e=>js(e.content,String(n.toolName??`tool`),n.args,String(n.toolCallId??``),Date.now(),n.activity)):t.event===`tool_end`?Be(e=>Ps(e.content,String(n.toolName??`tool`),n.status===`error`,n.result,String(n.toolCallId??``),Date.now(),n.activity)):t.event===`clarify_request`?(le({...Vs(n),expiresAt:typeof n.expiresAt==`number`?n.expiresAt:void 0,requestId:String(n.requestId??``),kind:n.kind===`approval`?`approval`:`input`,question:String(n.question??``)}),pe(null),Me()):t.event===`error`?se(String(n.message??J.failed)):t.event===`run_end`&&(re(!1),ae(void 0),r(e,void 0),le(null),Me())},onGap:()=>Me()})},[g,K,Be,r,Me,ie,e,J.failed]);let Ve=()=>{let t=d.trim(),n=xe.wireAttachmentsPayload();if(!t&&n.length===0||q||_e.current||G.current||b)return;if(rt(t)>262144){se(J.draftTooLong);return}let i={text:d,attachments:[...xe.attachmentsRef.current]};_e.current=!0,Se.resetEditor(),xe.clearAttachments(),se(null),he.current+=1;let a=crypto.randomUUID(),o={role:`user`,content:[{type:`text`,text:t}],attachments:i.attachments,timestamp:Date.now(),renderKey:`side-chat-user:${a}`};ye.current.set(a,o),u(e=>[...e,o]),re(!0),mW(e,t,n).then(t=>{!ne()||G.current||(Ot.getState().setTabRunId(e,t),K()&&(ae(t),r(e,t)))}).catch(t=>{if(!ne())return;let n=Ot.getState();if(!K()&&!n.tabs.some(t=>t.id===e))return;let r=Ot.getState().drafts[e]??{text:``,attachments:[]},s={text:r.text?`${i.text}\n${r.text}`:i.text,attachments:[...i.attachments,...r.attachments]};K()?(Se.resetEditor({nextText:s.text}),xe.setAttachments(s.attachments)):(m(s.text),h(s.attachments)),ye.current.delete(a);let c=n.readings[e];if(c&&n.rememberMessages(e,c.messages.filter(e=>e.renderKey!==o.renderKey)),!K())return;u(e=>e.filter(e=>e.renderKey!==o.renderKey)),re(!1);let l=t.status;l===404||l===410?Ae(t):se(OW(t,J))}).finally(()=>{_e.current=!1})},He=async t=>{if(!(!ce||G.current)){de(!0),pe(null);try{await gW(e,ce.requestId,t),le(null),Me()}catch(e){e.status===410?Ae(e):pe(OW(e,J))}finally{de(!1)}}},Ue=async()=>{try{await hW(e,ie),K()&&le(null)}catch(e){if(!K())return;let t=e.status;t===404||t===410?Ae(e):se(OW(e,J))}},We=(0,Z.useCallback)(e=>{Se.resetEditor({nextText:e,focus:!0})},[Se.resetEditor]),Ke=`${o.pathname}${o.search}`,qe=(0,Z.useCallback)(async e=>{try{let t=await zi(e.trim(),`web`);ki(`success`,be.chat.messageSavedToNote,void 0,{href:Oa(Ke,t.id)})}catch(e){throw ki(`error`,e instanceof Error?e.message:be.notes.quickCaptureFailed),e}},[Ke,be.chat.messageSavedToNote,be.notes.quickCaptureFailed]),Je=(0,Z.useCallback)(async()=>{if(!(ve.current||q||G.current||l.length===0)){ve.current=!0,k(!0),j(!1),se(null);try{let t=await bW(e);if(!ne())return;G.current=`promoted`,_(`promoted`),N(t.conversationId),re(!1),ae(void 0),le(null),c(null),r(e,void 0),Ot.getState().markPromoted(e,t.conversationId),ki(`success`,J.savedTitle,void 0,{href:`/chat/${encodeURIComponent(t.conversationId)}`})}catch(e){if(!K())return;se(OW(e,J)||J.saveFailed)}finally{ve.current=!1,K()&&k(!1)}}},[K,l.length,r,q,ne,e,J]),Ye=(0,Z.useCallback)(()=>{if(d.trim()||f.length){j(!0);return}Je()},[f.length,d,Je]),Ze=(0,Z.useCallback)(async t=>{let n=await pW(e,t);K()&&!G.current&&c(n)},[K,e]);return Ce.current={adapters:[],send:Ve,runBusy:q,pendingFollowUpsCount:0,editingFollowUpId:null,onCancelEditFollowUp:()=>{},attachmentsLen:xe.attachments.length,contextRefsLen:0,isComposing:Se.isComposing,valueRef:Se.valueRef,adjustHeight:Se.adjustHeight,editorRef:Se.editorRef},(0,$.jsxs)(`div`,{hidden:!a,className:Y(`relative min-h-0 flex-1 flex-col`,a?`flex`:`hidden`),children:[(0,$.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,$.jsxs)(`div`,{ref:we,"data-side-chat-scroll-viewport":!0,onScroll:Oe,className:`chat-messages h-full overflow-y-auto overflow-x-hidden px-5 py-4 [overflow-anchor:none] [scrollbar-gutter:stable_both-edges]`,children:[v&&!l.length?(0,$.jsxs)(`div`,{className:`space-y-5`,"aria-busy":`true`,"aria-label":J.creating,children:[(0,$.jsx)($o,{className:`ml-auto h-12 w-3/4`}),(0,$.jsx)($o,{className:`h-4 w-full`}),(0,$.jsx)($o,{className:`h-4 w-4/5`})]}):l.length&&a?(0,$.jsx)(vt,{messages:l,authToken:t,conversationId:e,workspaceConversationId:i,streaming:q,progress:null,reasoningLevel:`on`,registerListContentRef:Ee,deleteRoundDisabled:q||!!g,onSaveAssistantAsNote:qe,onEditUserMessage:g?void 0:e=>We(EW(e)),responseFeedbackEnabled:!1}):g?null:(0,$.jsxs)(`div`,{className:`flex min-h-64 flex-col items-center justify-center text-center`,children:[(0,$.jsx)(Na,{className:`mb-4 size-9 text-fg-muted`,strokeWidth:1.5}),(0,$.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:J.title}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:ee?J.freshContext:J.emptyDescription}),(0,$.jsx)(`p`,{className:`mt-2 max-w-sm text-xs leading-5 text-fg-muted`,children:J.temporaryDescription})]}),U&&g?(0,$.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:J.partialReading}):null]}),(0,$.jsx)(Ct,{visible:!Te,onClick:()=>De(!0),edge:`bottom`,running:q})]}),b&&!g?(0,$.jsx)(`p`,{role:`status`,className:`shrink-0 px-4 py-2 text-xs text-fg-muted`,children:J.connectionLost}):null,L?(0,$.jsx)(`p`,{role:`status`,className:`shrink-0 px-4 py-2 text-xs text-fg-muted`,children:L}):null,Le?(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-t border-edge px-4 py-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{children:Ie<=0?J.verifying:J.expiring.replace(`{{minutes}}`,String(Math.max(1,Math.ceil(Ie/6e4))))}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`ml-auto h-8 text-xs`,disabled:S||Ie<=0,onClick:()=>void Re(),children:J.keepAlive})]}):null,ce&&!g?(0,$.jsx)(`div`,{className:`shrink-0 border-t border-edge px-3 pt-3`,children:(0,$.jsx)(Ge,{prompt:{...ce,durable:!1},submitting:ue,submitError:fe,labels:be.chat,onSubmit:He,onAgentDecide:()=>He({response:{text:`Use your best judgment and continue without additional user input.`}}),onCancel:Ue})}):null,oe?(0,$.jsx)(`p`,{className:`border-t border-edge px-4 py-2 text-xs text-red-600 dark:text-red-400`,children:oe}):null,g===`promoted`&&M?(0,$.jsx)(`div`,{className:`shrink-0 border-t border-edge p-3`,children:(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold`,"aria-live":`polite`,children:J.savedTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:J.savedDescription}),(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`mt-4`,onClick:()=>{window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{conversationId:M}}))},children:J.openSavedChat})]})}):g?(0,$.jsx)(`div`,{className:`shrink-0 border-t border-edge p-3`,children:(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold`,"aria-live":`polite`,children:g===`unavailable`?J.unavailableTitle:J.expiredTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:F?J.parentMissing:g===`waiting`?J.waitExpired:l.length?J.expiredDescription:J.unavailableDescription}),d||f.length?(0,$.jsxs)(`div`,{className:`mt-3`,children:[(0,$.jsx)(`label`,{htmlFor:`side-chat-draft-${e}`,className:`text-xs text-fg-muted`,children:J.unsentDraft}),(0,$.jsx)(lc,{attachments:f,topPadded:!1,onRemove:xe.removeAttachment,className:`mt-1 rounded-t-lg`}),d?(0,$.jsx)(`textarea`,{id:`side-chat-draft-${e}`,value:d,onChange:e=>m(Mt(e.target.value)),rows:3,className:`mt-1 w-full resize-y rounded-lg border border-edge bg-surface-base p-2 text-sm`}):null]}):null,(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`mt-4`,disabled:w,onClick:()=>{F?i&&Ot.getState().setOpen(i,!1):ze()},children:F?J.closePaneAria:w?J.creating:d.trim()||f.length?J.newWithDraft:J.newAria}),l.length&&!F?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:J.replaceHint}):null]})}):(0,$.jsx)(`form`,{"data-side-chat-composer":!0,onSubmit:e=>{e.preventDefault(),Ve()},className:`shrink-0 p-3`,children:(0,$.jsxs)(Bt,{dragging:xe.isDragging,onDragOver:e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`,xe.setIsDragging(!0))},onDragLeave:e=>{e.relatedTarget===null&&xe.setIsDragging(!1)},onDrop:e=>{e.preventDefault(),xe.setIsDragging(!1);let t=e.dataTransfer?.files;t?.length&&xe.processFiles(Array.from(t))},children:[(0,$.jsx)(`input`,{ref:xe.fileInputRef,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{let t=e.target.files;t&&xe.processFiles(Array.from(t)),e.target.value=``}}),(0,$.jsx)(lc,{attachments:xe.attachments,topPadded:!1,onRemove:xe.removeAttachment}),s?.context.selections.length?(0,$.jsxs)(`div`,{className:`mx-3 mt-3 inline-flex h-8 max-w-[calc(100%-1.5rem)] self-start items-center gap-1.5 rounded-lg border border-edge bg-surface-base px-2.5 text-xs font-medium text-fg-muted sm:mx-4`,title:s.context.selections.map(e=>e.label||e.text).join(`
|
|
9
|
-
`),children:[(0,$.jsx)(nt,{className:`size-3.5 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate`,children:(s.context.selections.length===1?J.selectionCount_one:J.selectionCount_other).replace(`{{count}}`,String(s.context.selections.length))})]}):null,(0,$.jsx)(`div`,{className:s?.context.selections.length?`px-3 sm:px-4`:`px-3 pt-1 sm:px-4`,children:(0,$.jsx)(et,{editorRef:Se.editorRef,disabled:b,placeholder:be.chat.typeMessage,onWireInput:(e,t)=>{let n=Mt(e);rt(e)>262144&&se(J.draftTooLong),Se.onWireInput(n,Math.min(t,n.length))},adjustHeight:Se.adjustHeight,processFiles:xe.processFiles,processPastedText:xe.processPastedText,setIsComposing:Se.setIsComposing,kbdRef:Ce,chatMessages:be.chat})}),(0,$.jsxs)(Xe,{children:[(0,$.jsx)(ut,{disabled:b,runBusy:q,attachmentCount:xe.attachments.length,maxAttachments:10,chat:be.chat,onPickFiles:()=>xe.fileInputRef.current?.click()}),(0,$.jsxs)(X,{type:`button`,variant:`ghost`,className:`h-8 shrink-0 px-2 text-xs`,"aria-label":J.saveAsChat,title:q?J.saveBusy:J.saveAsChat,disabled:O||q||b||l.length===0,onClick:Ye,children:[(0,$.jsx)(Co,{className:`size-3.5`}),(0,$.jsx)(`span`,{className:`max-sm:hidden`,children:O?J.savingChat:J.saveAsChat})]}),(0,$.jsx)(`div`,{className:`ml-auto min-w-0`,children:s?(0,$.jsx)(Pt,{chat:be.chat,sessionModel:s.config.modelRef,modelDisabled:b,onModelChange:(e,t)=>Ze({modelRef:e,thinkingLevel:t}),thinkingLevel:s.config.thinkingLevel,thinkingDisabled:b,onThinkingChange:e=>Ze({thinkingLevel:e})}):null}),(0,$.jsx)(ct,{disabled:b||rt(d)>262144,voiceActive:!1,runBusy:q,hasDraft:!!d.trim()||xe.attachments.length>0,showSteeringInterrupt:!1,chat:be.chat,onSend:Ve,onAbort:()=>void Ue()})]})]})}),(0,$.jsx)(Tu,{open:A,title:J.saveDraftTitle,description:J.saveDraftDescription,confirmLabel:J.saveDraftAction,cancelLabel:J.closeConfirmCancel,onConfirm:()=>void Je(),onCancel:()=>j(!1)})]})}function MW(e,t,n){let r=(0,Q.c)(16),{pathname:i,search:a}=p(),o=b(),s=(0,Z.useRef)(null),c=(0,Z.useRef)(null),l=(0,Z.useRef)(!1),u,d;r[0]!==t.activeId||r[1]!==t.open||r[2]!==t.tabs||r[3]!==i||r[4]!==e||r[5]!==a?(u=()=>{let n=new URLSearchParams(a).toString(),r=s.current;if(s.current={pathname:i,search:a,scope:e},r?.pathname===i&&r.scope===e&&r.search===a)return;if(c.current===`${i}?${n}`){c.current=null;return}let o=new URLSearchParams(a).get(`workspaceTab`),u=r?.pathname===i&&r.scope===e&&new URLSearchParams(r.search).get(`workspaceTab`)!==o;if(o&&t.tabs.some(e=>e.id===o)&&(o!==t.activeId||!t.open)||u){l.current=!0;let n=qc.getState();o&&t.tabs.some(e=>e.id===o)?n.activate(o,e):t.activeId!==null&&n.activate(null,e)}},d=[t.activeId,t.open,t.tabs,i,e,a],r[0]=t.activeId,r[1]=t.open,r[2]=t.tabs,r[3]=i,r[4]=e,r[5]=a,r[6]=u,r[7]=d):(u=r[6],d=r[7]),(0,Z.useEffect)(u,d);let f,m;r[8]!==n||r[9]!==o||r[10]!==t.activeId||r[11]!==t.open||r[12]!==i||r[13]!==a?(f=()=>{if(!n)return;if(l.current){l.current=!1;return}if(window.location.hash.startsWith(`#/`)&&window.location.hash.slice(1)!==`${i}${a}`)return;let e=new URLSearchParams(a);t.open&&t.activeId?e.set(`workspaceTab`,t.activeId):e.delete(`workspaceTab`);let r=e.toString();r!==new URLSearchParams(a).toString()&&(c.current=`${i}?${r}`,o({pathname:i,search:r?`?${r}`:``}))},m=[n,o,t.activeId,t.open,i,a],r[8]=n,r[9]=o,r[10]=t.activeId,r[11]=t.open,r[12]=i,r[13]=a,r[14]=f,r[15]=m):(f=r[14],m=r[15]),(0,Z.useEffect)(f,m)}function NW(e,t){let n=(0,Q.c)(5),[r,i]=(0,Z.useState)(t),a=(0,Z.useRef)(!1),o=(0,Z.useRef)(null),s,c;return n[0]!==t||n[1]!==r||n[2]!==e?(s=()=>{let n=e.current;if(!n)return;if(t&&!r){i(!0);return}let s=window.matchMedia?.(`(prefers-reduced-motion: reduce)`);if(s?.matches||typeof n.animate!=`function`){a.current=t,r!==t&&i(t);return}let c=a.current!==t;a.current=t;let l,u=!1;if((c||!t)&&r){let e=o.current??(t?{opacity:0,transform:`translateX(16px)`}:{opacity:1,transform:`translateX(0)`});o.current=null,l=n.animate([e,t?{opacity:1,transform:`translateX(0)`}:{opacity:0,transform:`translateX(16px)`}],{duration:t?220:150,easing:`cubic-bezier(0.2, 0, 0, 1)`,fill:`both`}),t||l.finished.then(()=>{u||i(!1)}).catch(PW)}let d=()=>{s?.matches&&(l?.cancel(),t||i(!1))};return s?.addEventListener(`change`,d),()=>{if(u=!0,(c||!t)&&l?.playState===`running`){let e=window.getComputedStyle(n);o.current={opacity:e.opacity,transform:e.transform}}l?.cancel(),s?.removeEventListener(`change`,d)}},c=[t,r,e],n[0]=t,n[1]=r,n[2]=e,n[3]=s,n[4]=c):(s=n[3],c=n[4]),(0,Z.useLayoutEffect)(s,c),r}function PW(){}function FW(e,t,n){let r=(0,Q.c)(7),[i,a]=(0,Z.useState)(0),o;r[0]!==t||r[1]!==e?(o=()=>{let n=e.current?.querySelector(`#workspace-content`),r=n&&[...n.querySelectorAll(`[data-workspace-toolbar]`)].find(IW);if(!t||!n||!r){a(0);return}let i=()=>a(Math.max(0,r.getBoundingClientRect().bottom-n.getBoundingClientRect().top));i();let o=typeof ResizeObserver<`u`?new ResizeObserver(i):null;return o?.observe(r),o?.observe(n),()=>o?.disconnect()},r[0]=t,r[1]=e,r[2]=o):o=r[2];let s;return r[3]!==n||r[4]!==t||r[5]!==e?(s=[n,t,e],r[3]=n,r[4]=t,r[5]=e,r[6]=s):s=r[6],(0,Z.useLayoutEffect)(o,s),i}function IW(e){return e.getClientRects().length>0}function LW(e){let t=(0,Q.c)(59),{tabs:n,canCreateSideChat:r,creating:i,onFiles:a,onSideChat:o,onActivate:s,onTerminal:c,onBrowser:l}=e,u=E(BW)===`zh`,d,f,p,m,h,g,_;if(t[0]!==r||t[1]!==i||t[2]!==s||t[3]!==l||t[4]!==a||t[5]!==o||t[6]!==c||t[7]!==n||t[8]!==u){let e=n.filter(zW).sort(RW).slice(0,4);g=`min-h-0 flex-1 overflow-y-auto bg-surface-base/70 px-6 py-10 sm:px-8`,_=!0,d=`mx-auto max-w-3xl`;let v=u?`工具`:`Tools`;t[16]===v?f=t[17]:(f=(0,$.jsx)(`h2`,{className:`mb-5 text-sm font-medium text-fg`,children:v}),t[16]=v,t[17]=f);let y;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(vi,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),t[18]=y):y=t[18];let b=u?`文件`:`Files`,x;t[19]===b?x=t[20]:(x=(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:b}),t[19]=b,t[20]=x);let S;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle opacity-0 group-hover:opacity-100`,"aria-hidden":!0}),t[21]=S):S=t[21];let C;t[22]!==a||t[23]!==x?(C=(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,onClick:a,children:[y,x,S]}),t[22]=a,t[23]=x,t[24]=C):C=t[24];let w=!r||i,T;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(Na,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),t[25]=T):T=t[25];let E=u?`侧聊`:`Side chat`,D;t[26]===E?D=t[27]:(D=(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:E}),t[26]=E,t[27]=D);let O;t[28]===i?O=t[29]:(O=i?(0,$.jsx)(`span`,{className:`h-3 w-10 animate-pulse rounded bg-surface-active`}):(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle opacity-0 group-hover:opacity-100`,"aria-hidden":!0}),t[28]=i,t[29]=O);let k;t[30]!==o||t[31]!==w||t[32]!==D||t[33]!==O?(k=(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,disabled:w,onClick:o,children:[T,D,O]}),t[30]=o,t[31]=w,t[32]=D,t[33]=O,t[34]=k):k=t[34];let A;t[35]!==l||t[36]!==u?(A=l?(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,onClick:l,children:[(0,$.jsx)(Ni,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:u?`浏览器`:`Browser`}),(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle`,"aria-hidden":!0})]}):null,t[35]=l,t[36]=u,t[37]=A):A=t[37];let j;t[38]!==c||t[39]!==u?(j=c?(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,onClick:c,title:u?`打开主聊天的终端面板`:`Open the main chat terminal panel`,children:[(0,$.jsx)(Bo,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:u?`终端`:`Terminal`}),(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle`,"aria-hidden":!0})]}):null,t[38]=c,t[39]=u,t[40]=j):j=t[40],t[41]!==C||t[42]!==k||t[43]!==A||t[44]!==j?(p=(0,$.jsxs)(`div`,{className:`grid grid-cols-[repeat(auto-fit,minmax(min(100%,13rem),1fr))] gap-3`,children:[C,k,A,j]}),t[41]=C,t[42]=k,t[43]=A,t[44]=j,t[45]=p):p=t[45],t[46]!==r||t[47]!==u?(m=r?null:(0,$.jsx)(`p`,{className:`mt-4 text-xs text-fg-muted`,children:u?`开始主聊天后,可以在这里新建临时侧聊。`:`Start a main conversation to create a temporary side chat here.`}),t[46]=r,t[47]=u,t[48]=m):m=t[48],h=e.length?(0,$.jsxs)(`section`,{className:`mt-12`,children:[(0,$.jsx)(`h2`,{className:`mb-5 text-sm font-medium text-fg`,children:u?`继续查看`:`Continue with`}),(0,$.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:e.map(e=>(0,$.jsxs)(`button`,{onClick:()=>s(e.id),title:e.kind===`file`&&e.path||e.title,className:`flex min-w-0 flex-col items-center gap-3 rounded-xl px-2 py-4 text-sm text-fg transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,$.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-xl border border-edge-subtle bg-surface-panel`,children:e.kind===`file`?(0,$.jsx)(mi,{className:`size-5 text-fg-muted`,"aria-hidden":!0}):(0,$.jsx)(Na,{className:`size-5 text-fg-muted`,"aria-hidden":!0})}),(0,$.jsx)(`span`,{className:`w-full truncate text-center`,children:e.title===`Side chat`?u?`侧聊`:`Side chat`:e.title})]},e.id))})]}):null,t[0]=r,t[1]=i,t[2]=s,t[3]=l,t[4]=a,t[5]=o,t[6]=c,t[7]=n,t[8]=u,t[9]=d,t[10]=f,t[11]=p,t[12]=m,t[13]=h,t[14]=g,t[15]=_}else d=t[9],f=t[10],p=t[11],m=t[12],h=t[13],g=t[14],_=t[15];let v;t[49]!==d||t[50]!==f||t[51]!==p||t[52]!==m||t[53]!==h?(v=(0,$.jsxs)(`div`,{className:d,children:[f,p,m,h]}),t[49]=d,t[50]=f,t[51]=p,t[52]=m,t[53]=h,t[54]=v):v=t[54];let y;return t[55]!==g||t[56]!==_||t[57]!==v?(y=(0,$.jsx)(`div`,{className:g,"data-workspace-start":_,children:v}),t[55]=g,t[56]=_,t[57]=v,t[58]=y):y=t[58],y}function RW(e,t){return t.visitedAt-e.visitedAt}function zW(e){return e.kind===`file`||e.kind===`sidechat`}function BW(e){return e.language}var VW=`inline-flex size-9 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`;function HW({scope:e,enabled:t=!0,elevated:n=!1,onDockedWidthChange:r}){let i=E(e=>e.language)===`zh`,a=qc(e=>e.panes),o=a[e]??Gc,s=o.tabs.find(e=>e.id===o.activeId),c=qc(e=>e.width),l=qc(e=>e.treeWidth),u=qc(e=>e.fileTreeOpen),d=qc(e=>e.sideTreeOpen),f=qc(t=>t.notices[e]),m=qc(e=>e.fileStatus),h=Ot(e=>e.tabs),g=Ot(e=>e.pendingCreate),_=Ot(t=>t.creatingRequests[e]),v=!!(_||g?.parentConversationId===e),y=T(e=>e.conversationId),{search:b}=p(),x=(0,Z.useRef)(null),S=(0,Z.useRef)(null),[C,w]=(0,Z.useState)(1200),D=(0,Z.useRef)(null);(0,Z.useEffect)(()=>()=>D.current?.(),[]);let[O,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(!1),M=FW(x,A,o.activeId),[N,P]=(0,Z.useState)(!1),[F,I]=(0,Z.useState)(!1),[L,R]=(0,Z.useState)(null),[z,B]=(0,Z.useState)(``),[V,H]=(0,Z.useState)(null),[ee,U]=(0,Z.useState)(!1),W=qc.getState(),G=t&&o.open,te=NW(x,G);(0,Z.useLayoutEffect)(()=>{if(!G&&x.current?.contains(document.activeElement)){let e=document.querySelector(`[data-workspace-trigger]`);if(e)e.focus();else{let e=requestAnimationFrame(()=>document.querySelector(`[data-workspace-trigger]`)?.focus());return()=>cancelAnimationFrame(e)}}},[G]);let ne=Se(e,t);(0,Z.useEffect)(()=>{if(!t||ne.isLoading||ne.error)return;let n=ne.data?.report,r=n&&!Ne(n.status)?n.deviceId??n.sessionId:void 0,i=qc.getState();for(let t of i.panes[e]?.tabs??[])t.kind===`phone`&&t.phoneSessionId!==r&&i.remove(t.id,e);n&&r&&i.openPhone(r,n.deviceName,e,!1,!1)},[ne.data,ne.isLoading,ne.error,e,t]);let K=s?.kind===`phone`,q=K?360:460,re=K?420:380,ie=C<(K?900:840),ae=s?.kind===`browser`?N:s?.kind===`sidechat`?d:u,oe=s?Math.max(q,Math.min(c||(K?420:C*.6),C-re)):320;(0,Z.useLayoutEffect)(()=>{r?.(G&&!ie&&!F?oe:0)},[F,r,oe,ie,G]);let se=s?.kind===`files`,ce=se||s?.kind===`file`,le=ie||F?C:oe,ue=ce?240:460,de=Math.min(l,Math.max(200,le-ue-8)),fe=le>=ue+de+8,pe=se||(s?.kind===`file`||s?.kind===`sidechat`||s?.kind===`browser`)&&ae&&fe,me=se&&!fe,he=pe||A,ge=s?.kind===`file`?s:void 0,_e=(0,Z.useMemo)(()=>({conversationId:ge?.path?ge.conversationId:e===`new`?void 0:e,projectId:ge?.path?ge.projectId:new URLSearchParams(b).get(`projectId`)??void 0,agentId:ge?.agentId}),[ge?.agentId,ge?.conversationId,ge?.path,ge?.projectId,e,b]),ve=JSON.stringify(_e),[ye,be]=(0,Z.useState)({});(0,Z.useLayoutEffect)(()=>{W.setScope(e)},[e,W]),(0,Z.useEffect)(()=>{G&&be(e=>e[ve]?e:{...e,[ve]:_e})},[ve,_e,G]),(0,Z.useLayoutEffect)(()=>{let e=x.current?.parentElement;if(!e)return;let t=()=>w(e.clientWidth||window.innerWidth);t();let n=typeof ResizeObserver<`u`?new ResizeObserver(t):null;return n?.observe(e),window.addEventListener(`resize`,t),()=>{n?.disconnect(),window.removeEventListener(`resize`,t)}},[]),(0,Z.useEffect)(()=>{for(let e of h)qc.getState().panes[e.parentConversationId]?.tabs.some(t=>t.id===`side:${e.id}`)||W.addSideChat(e.id,e.title,e.parentConversationId,!1)},[h,W]),(0,Z.useEffect)(()=>{j(!1)},[o.activeId,e]),(0,Z.useEffect)(()=>{fe&&j(!1)},[fe]),(0,Z.useEffect)(()=>{H(null),U(!1),B(``)},[e]),(0,Z.useEffect)(()=>{(S.current?.querySelector(`[aria-selected="true"]`))?.scrollIntoView?.({block:`nearest`,inline:`nearest`})},[C,F,o.activeId]),(0,Z.useEffect)(()=>{ll.setState({path:ge?.path??null,projectId:ge?.projectId??null,conversationId:ge?.conversationId??null,line:ge?.line??null})},[ge]),(0,Z.useEffect)(()=>{let e=e=>{if(e.key===`Escape`&&!e.defaultPrevented){if(ee){e.preventDefault(),U(!1);return}(F||A)&&(e.preventDefault(),I(!1),j(!1))}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ee,F,A]),MW(e,o,t),tW();async function J(t){if(!L){R(t),B(``);try{await GU(t)&&W.remove(t,e)}catch(e){B(e instanceof Error?e.message:String(e))}finally{R(null)}}}async function xe(t,n=!1){if(!L){R(t);try{if(!n&&!await Fu(t)){H(t);return}W.remove(t,e),H(null),U(!1)}finally{R(null)}}}function Ce(e){return e.kind===`home`?i?`新标签页`:`New tab`:e.kind===`browser`&&e.title===`Browser`?i?`浏览器`:`Browser`:e.kind===`files`?i?`文件`:`Files`:e.title===`Side chat`?i?`侧聊`:`Side chat`:e.title}function we(t){W.activate(t,e)}function Te(){s&&(A?j(!1):!pe&&!fe?j(!0):s.kind===`browser`?P(!N):W.setTreeOpen(s.kind===`sidechat`?`sidechat`:`file`,!ae))}let Ee=s&&!se&&s.kind!==`home`&&s.kind!==`phone`?(0,$.jsx)(`button`,{type:`button`,className:Y(VW,`rounded-full border border-edge-subtle`,he&&`border-accent/20 bg-accent-soft text-accent-fg`),"aria-label":i?`切换文件树`:`Toggle file tree`,"aria-pressed":he,onClick:Te,children:(0,$.jsx)(Si,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}):null;function De(e,t=!1){e.preventDefault();let n=e.clientX,r=t?de:oe;e.currentTarget.setPointerCapture?.(e.pointerId),k(!0);let i=r,a=e=>{let a=r+n-e.clientX;i=t?Math.max(200,Math.min(320,le-ue-8,a)):Math.max(q,Math.min(C-re,a));let o=t?x.current?.querySelector(`[data-workspace-tree]`):x.current;o&&(o.style.width=`${i}px`)},o=()=>{t?W.setTreeWidth(i):W.setWidth(i),D.current=null,k(!1),window.removeEventListener(`pointermove`,a),window.removeEventListener(`pointerup`,o),window.removeEventListener(`pointercancel`,o)};D.current?.(),D.current=o,window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o),window.addEventListener(`pointercancel`,o)}let Oe=[...new Set([...h.map(e=>e.parentConversationId),...g?[g.parentConversationId]:[],...e===`new`?[]:[e]])],ke=Object.entries(a).flatMap(([e,t])=>t.tabs.filter(e=>e.kind===`file`).map(t=>({owner:e,tab:t}))),Ae=new Set([...ke].sort((e,t)=>t.tab.visitedAt-e.tab.visitedAt).slice(0,8).map(({tab:e})=>e.id));return(0,$.jsxs)(`aside`,{id:`app-workspace-panel`,ref:x,"aria-label":i?`文件与侧聊工作区`:`Files and side chats`,"data-right-workspace":!0,"aria-hidden":!G,inert:!G,className:Y(`relative min-h-0 shrink-0 flex-col overflow-hidden bg-surface-base`,te?`flex`:`hidden`,te&&(ie||F)&&`absolute inset-0`,n?`z-[110]`:`z-40`),style:{width:ie||F?void 0:oe},children:[!ie&&!F&&s?(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,tabIndex:0,"aria-label":i?`调整工作区宽度`:`Resize workspace`,"aria-valuemin":q,"aria-valuemax":Math.max(q,C-re),"aria-valuenow":Math.round(oe),className:`absolute left-0 top-0 z-20 h-full w-2 -translate-x-1/2 cursor-col-resize touch-none focus-visible:bg-accent/30`,onPointerDown:e=>De(e),onKeyDown:e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),W.setWidth(Math.max(q,Math.min(C-re,oe+(e.key===`ArrowLeft`?20:-20))))),e.key===`Home`&&W.setWidth(0)}}):null,O?(0,$.jsx)(`div`,{"data-browser-occluder":!0,className:`fixed inset-0 z-[120] cursor-col-resize`}):null,(0,$.jsxs)(`div`,{"data-workspace-tab-bar":!0,className:`flex h-14 shrink-0 items-center gap-1 bg-surface-base px-2`,children:[(0,$.jsx)(bu,{ref:S,role:`tablist`,"aria-label":i?`工作区标签`:`Workspace tabs`,className:`flex min-w-0 flex-1 items-center gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,onKeyDown:e=>{let t=[...e.currentTarget.querySelectorAll(`[role="tab"]`)],n=t.indexOf(document.activeElement),r=e.key===`ArrowRight`?(n+1)%t.length:e.key===`ArrowLeft`?(n-1+t.length)%t.length:e.key===`Home`?0:e.key===`End`?t.length-1:-1;r>=0&&(e.preventDefault(),t[r]?.focus())},indicatorClassName:`rounded-md bg-surface-panel`,children:o.tabs.map(t=>{let n=t.kind===`sidechat`?h.find(e=>e.id===t.sideChatId):void 0,r=Ce(t),a=n?.waiting?i?`待处理`:`Needs attention`:n?.disconnected?i?`连接中断`:`Disconnected`:n?.ended?i?`已结束`:`Ended`:n?.runId?i?`运行中`:`Running`:n?.unread?i?`未读`:`Unread`:m[t.id]?i?`未保存`:`Unsaved`:``;return(0,$.jsxs)(`div`,{"data-sliding-active":t.id===o.activeId,className:Y(`group flex h-9 shrink-0 items-center rounded-md transition-colors`,t.id===o.activeId?`bg-surface-panel text-fg`:`text-fg-muted hover:bg-surface-hover`),children:[(0,$.jsxs)(`button`,{role:`tab`,id:`workspace-tab-${t.id}`,"aria-controls":`workspace-content`,"aria-selected":t.id===o.activeId,tabIndex:t.id===o.activeId?0:-1,title:t.kind===`file`&&t.path||r,className:`flex max-w-56 items-center gap-1.5 rounded-md px-2 py-1 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>we(t.id),onDoubleClick:()=>{t.kind===`file`&&W.keepFileOpen(t.id)},children:[t.kind===`phone`?(0,$.jsx)(jo,{className:`size-4 shrink-0`,"aria-hidden":!0}):t.kind===`browser`?(0,$.jsx)(Ni,{className:`size-4 shrink-0`,"aria-hidden":!0}):t.kind===`sidechat`?(0,$.jsx)(Pa,{className:`size-4 shrink-0`,"aria-hidden":!0}):t.kind===`files`?(0,$.jsx)(vi,{className:`size-4 shrink-0`,"aria-hidden":!0}):(0,$.jsx)($r,{name:t.title}),(0,$.jsx)(`span`,{className:Y(`truncate`,t.kind===`file`&&t.preview&&`italic`),children:r}),a?(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:a}):null]}),(0,$.jsx)(`button`,{className:Y(VW,`size-7`),tabIndex:t.id===o.activeId?0:-1,"aria-label":`${i?`关闭`:`Close`} ${r}`,disabled:L===t.id,onClick:()=>{t.kind===`file`?xe(t.id):t.kind===`browser`?J(t.id):t.kind===`sidechat`?window.dispatchEvent(new CustomEvent(`workspace-close-sidechat`,{detail:t.sideChatId})):W.remove(t.id,e)},children:(0,$.jsx)(Zo,{className:`size-3.5`,"aria-hidden":!0})})]},t.id)})}),(0,$.jsx)(`button`,{className:VW,"aria-label":i?`新建标签`:`New tab`,title:i?`新建标签`:`New tab`,onClick:()=>W.openTools(e),children:(0,$.jsx)(fo,{className:`size-5`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{className:VW,"aria-label":F?i?`还原工作区`:`Restore workspace`:i?`放大工作区`:`Expand workspace`,onClick:()=>I(!F),children:F?(0,$.jsx)(La,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(wa,{className:`size-4`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{className:VW,title:i?`收起工作区 · ${o.tabs.length} 个标签`:`Collapse workspace · ${o.tabs.length} tabs`,"aria-label":ie?i?`返回聊天`:`Back to chat`:i?`收起工作区`:`Collapse workspace`,onClick:()=>W.setOpen(!1,e),children:(0,$.jsx)(Ka,{className:`size-5`,"aria-hidden":!0})})]}),f?(0,$.jsxs)(`div`,{role:`alert`,className:`shrink-0 border-b border-edge px-3 py-2 text-sm text-fg-muted`,children:[f,` `,(0,$.jsx)(`button`,{className:`text-accent`,onClick:()=>Ot.getState().requestCreate(e),children:i?`重试新建侧聊`:`Retry new side chat`})]}):null,z?(0,$.jsxs)(`div`,{role:`alert`,className:`shrink-0 border-b border-edge px-3 py-2 text-sm text-fg-muted`,children:[z,` `,(0,$.jsx)(`button`,{className:`text-accent`,onClick:()=>B(``),children:i?`关闭提示`:`Dismiss`})]}):null,_?(0,$.jsx)(`div`,{role:`status`,className:`h-1 shrink-0 animate-pulse bg-surface-active`,"aria-label":i?`正在创建侧聊`:`Creating side chat`}):null,V?(0,$.jsxs)(`div`,{role:`alert`,className:`shrink-0 border-b border-edge p-3 text-sm`,children:[(0,$.jsx)(`p`,{children:i?`文件未保存,可能已被外部修改。编辑内容已保留。`:`File could not be saved; it may have changed externally. Your edits are retained.`}),(0,$.jsx)(`button`,{className:`mr-3 text-accent`,onClick:()=>void xe(V),children:i?`重试保存并关闭`:`Retry save and close`}),(0,$.jsx)(`button`,{className:`mr-3`,onClick:()=>{H(null),U(!1)},children:i?`继续编辑`:`Keep editing`}),(0,$.jsx)(`button`,{className:`text-red-600`,onClick:()=>U(!0),children:i?`放弃修改`:`Discard edits`}),ee?(0,$.jsxs)(`div`,{role:`alertdialog`,"aria-label":i?`确认放弃修改`:`Confirm discard edits`,className:`mt-3 rounded-lg border border-edge bg-surface-base p-3`,children:[(0,$.jsx)(`p`,{children:i?`放弃此文件未保存的修改?`:`Discard unsaved edits to this file?`}),(0,$.jsxs)(`div`,{className:`mt-2 flex gap-3`,children:[(0,$.jsx)(`button`,{className:`text-accent`,onClick:()=>U(!1),children:i?`保留草稿`:`Keep draft`}),(0,$.jsx)(`button`,{onClick:()=>void xe(V,!0),children:i?`确认放弃`:`Confirm discard`})]})]}):null]}):null,(0,$.jsx)(Ai.Provider,{value:Ee?{button:Ee,label:i?he?`隐藏文件树`:`显示文件树`:he?`Hide file tree`:`Show file tree`,active:he,onToggle:Te}:null,children:(0,$.jsxs)(`div`,{id:`workspace-content`,role:`tabpanel`,"aria-labelledby":s?`workspace-tab-${s.id}`:void 0,className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(0,$.jsxs)(`div`,{className:Y(`min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,me?`hidden`:`flex`),children:[G&&K?(0,$.jsx)(`div`,{id:`phone-workspace-slot`,"data-phone-conversation-id":e,className:`flex min-h-0 flex-1 flex-col overflow-hidden`}):null,se&&!me?(0,$.jsxs)(`div`,{"data-workspace-file-placeholder":!0,className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6 text-center`,children:[(0,$.jsx)(mi,{className:`size-9 text-fg-muted`,strokeWidth:1.25,"aria-hidden":!0}),(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:i?`选择文件预览`:`Select a file to preview`}),(0,$.jsx)(`p`,{className:`max-w-64 text-sm text-fg-muted`,children:i?`从右侧文件列表打开文件,在这里查看内容。`:`Open a file from the list on the right to view its contents here.`})]}):null,s?.kind===`home`&&!v?(0,$.jsx)(LW,{tabs:o.tabs,canCreateSideChat:e!==`new`,creating:!!_,onBrowser:window.electronAPI?.browser?()=>W.openBrowser(void 0,e):void 0,onFiles:()=>W.openFiles(e),onSideChat:()=>Ot.getState().requestCreate(e),onActivate:we,onTerminal:window.electronAPI?.terminal?()=>e===`new`?window.dispatchEvent(new Event(`workspace-open-terminal`)):ad.getState().open(e):void 0}):null,Object.entries(a).flatMap(([t,n])=>n.tabs.filter(e=>e.kind===`browser`).map(n=>(0,$.jsx)(QU,{tab:n,scope:t,active:G&&t===e&&s?.id===n.id},n.id))),(0,$.jsx)(Ci.Provider,{value:[{id:e,label:i?`引用到主聊天`:`Reference in main chat`},...ge?.returnTo?.startsWith(`side:`)?[{id:ge.returnTo.slice(5),label:i?`引用到来源侧聊`:`Reference in source side chat`}]:[]],children:ke.map(({owner:t,tab:n})=>{let r=te&&t===e&&s?.id===n.id;if(n.attachment)return r?(0,$.jsx)(dc,{tabId:n.id,embedded:!0,open:!0,attachment:n.attachment,images:n.images,onAttachmentChange:e=>W.openFile({attachment:e,images:n.images,conversationId:n.conversationId},t),authToken:y,conversationId:n.conversationId,onClose:()=>void xe(n.id)},n.id):null;let i=[`code`,`text`,`markdown`,`html`].includes(Ei(n.title));return!r&&(!i||!Ae.has(n.id)&&!m[n.id])?null:(0,$.jsx)(Iu,{tabId:n.id,active:r,filePath:n.path??null,projectId:n.projectId,conversationId:n.conversationId,agentId:n.agentId,targetLine:n.line,resultRevision:n.resultRevision,onClose:()=>void xe(n.id)},n.id)})}),Oe.map(t=>(0,$.jsx)(Di.Provider,{value:t,children:(0,$.jsx)(AW,{parentConversationId:t,embedded:!0,visible:te&&e===t&&(s?.kind===`sidechat`||(!s||s.kind===`home`)&&v)})},t))]}),pe&&!me&&!A?(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,tabIndex:0,"aria-label":i?`调整文件树宽度`:`Resize file tree`,"aria-valuemin":200,"aria-valuemax":Math.min(320,le-ue-8),"aria-valuenow":de,className:`z-10 w-2 shrink-0 cursor-col-resize touch-none bg-surface-base transition-colors duration-150 hover:bg-accent/20 focus-visible:bg-accent/30`,onPointerDown:e=>De(e,!0),onKeyDown:e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),W.setTreeWidth(Math.min(le-ue-8,de+(e.key===`ArrowLeft`?20:-20))))}}):null,A?(0,$.jsx)(`button`,{"data-browser-occluder":!0,style:{top:M},className:`absolute inset-0 z-20 bg-scrim`,"aria-label":i?`关闭文件树`:`Close file tree`,onClick:()=>j(!1)}):null,(0,$.jsx)(`div`,{"data-workspace-tree":!0,className:Y(`min-h-0 min-w-0 flex-col overflow-hidden border-l border-edge-subtle bg-surface-base`,he?`flex`:`hidden`,me&&`flex-1`,A&&`absolute inset-y-0 right-0 z-30 bg-surface-base shadow-popover`),style:me?void 0:{width:A?l:de,...A?{top:M}:{}},children:Object.entries(ye).map(([t,n])=>(0,$.jsx)(`div`,{className:Y(`h-full min-h-0 flex-col`,t===ve?`flex`:`hidden`),children:(0,$.jsx)(oW,{embedded:!0,scope:n,onCloseTree:()=>A?j(!1):se?s&&W.remove(s.id,e):s?.kind===`browser`?P(!1):W.setTreeOpen(s?.kind===`sidechat`?`sidechat`:`file`,!1)})},t))})]})})]})}function UW(e){He(e)}var WW=32e3,GW=264,KW=10;function qW(e){let t=(0,Q.c)(36),{conversationId:n}=e,{pathname:r}=p(),i=E(ZW),a;t[0]===i?a=t[1]:(a=P(i),t[0]=i,t[1]=a);let o=a.sideChat,s=Ot(XW),c=Ot(YW),[l,u]=(0,Z.useState)(null),d;t[2]!==n||t[3]!==c?(d=()=>{if(!n||n===`new`||c){u(null);return}let e=window.getSelection(),t=e?.toString().trim()??``;if(!e||e.rangeCount===0||!t||t.length>WW){u(null);return}let r=e.getRangeAt(0),i=QW(e.anchorNode),a=QW(e.focusNode),o=document.getElementById(`app-main-content`),s=document.getElementById(`app-side-chat-panel`),l=!!(s?.contains(i)&&s?.contains(a));if(!i||!a||!l&&(!o?.contains(i)||!o.contains(a))||!i.closest(`[data-chat-message-index]`)||!a.closest(`[data-chat-message-index]`)){u(null);return}let d=r.getBoundingClientRect();if(d.width===0&&d.height===0){u(null);return}let f=Math.min(window.innerWidth-GW-KW,Math.max(KW,d.left+d.width/2-GW/2)),p=d.bottom+8,m=p+38<window.innerHeight?p:Math.max(KW,d.top-42);u({text:t,left:f,top:m,fromSide:l})},t[2]=n,t[3]=c,t[4]=d):d=t[4];let f=d,m;t[5]!==n||t[6]!==f?(m=()=>{if(u(null),!n)return;let e=()=>window.requestAnimationFrame(f),t=()=>u(null);return document.addEventListener(`pointerup`,e),document.addEventListener(`keyup`,e),window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t),()=>{document.removeEventListener(`pointerup`,e),document.removeEventListener(`keyup`,e),window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t)}},t[5]=n,t[6]=f,t[7]=m):m=t[7];let h;if(t[8]!==n||t[9]!==f||t[10]!==r?(h=[n,f,r],t[8]=n,t[9]=f,t[10]=r,t[11]=h):h=t[11],(0,Z.useEffect)(m,h),!l||!n||n===`new`)return null;let g=l.fromSide?GW/2:GW,_;t[12]!==l.left||t[13]!==l.top||t[14]!==g?(_={left:l.left,top:l.top,width:g},t[12]=l.left,t[13]=l.top,t[14]=g,t[15]=_):_=t[15];let v;t[16]===l.text?v=t[17]:(v=()=>{UW(l.text),window.getSelection()?.removeAllRanges(),u(null)},t[16]=l.text,t[17]=v);let y;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(fo,{className:`size-3.5 shrink-0`}),t[18]=y):y=t[18];let b;t[19]===o.addToChat?b=t[20]:(b=(0,$.jsx)(`span`,{className:`whitespace-nowrap`,children:o.addToChat}),t[19]=o.addToChat,t[20]=b);let x;t[21]!==v||t[22]!==b?(x=(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex flex-1 items-center justify-center gap-1.5 px-3 transition-colors hover:bg-surface-hover focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,onClick:v,children:[y,b]}),t[21]=v,t[22]=b,t[23]=x):x=t[23];let S;t[24]!==n||t[25]!==o.askInSideChat||t[26]!==o.selectedText||t[27]!==l.fromSide||t[28]!==l.text||t[29]!==s?(S=l.fromSide?null:(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex flex-1 items-center justify-center gap-1.5 border-l border-edge px-3 transition-colors hover:bg-surface-hover focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,onClick:()=>{s(n,[{id:crypto.randomUUID(),type:`text`,text:l.text,label:o.selectedText}]),window.getSelection()?.removeAllRanges(),u(null)},children:[(0,$.jsx)(Na,{className:`size-3.5 shrink-0`}),(0,$.jsx)(`span`,{className:`whitespace-nowrap`,children:o.askInSideChat})]}),t[24]=n,t[25]=o.askInSideChat,t[26]=o.selectedText,t[27]=l.fromSide,t[28]=l.text,t[29]=s,t[30]=S):S=t[30];let C;return t[31]!==o.selectedTextActionsAria||t[32]!==x||t[33]!==S||t[34]!==_?(C=(0,$.jsxs)(`div`,{role:`group`,"aria-label":o.selectedTextActionsAria,className:`fixed z-[70] flex h-9 overflow-hidden rounded-lg border border-edge bg-surface-overlay text-xs font-medium text-fg shadow-popover`,style:_,onPointerDown:JW,children:[x,S]}),t[31]=o.selectedTextActionsAria,t[32]=x,t[33]=S,t[34]=_,t[35]=C):C=t[35],C}function JW(e){return e.preventDefault()}function YW(e){return e.pendingCreate}function XW(e){return e.requestCreate}function ZW(e){return e.language}function QW(e){return e?e.nodeType===Node.ELEMENT_NODE?e:e.parentElement:null}function $W(){let e=(0,Q.c)(28),t=(0,Z.useRef)(null),n=T(oG),r=T(aG),i=T(iG),a=T(rG),o=T(nG),s=T(tG),c=E(eG),l;e[0]===c?l=e[1]:(l=P(c),e[0]=c,e[1]=l);let u=l.token,d=!!s&&!i,f;e[2]!==d||e[3]!==o?(f=e=>{!e&&!d||e||o()},e[2]=d,e[3]=o,e[4]=f):f=e[4];let p;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(I,{className:Y(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[2px]`,tl)}),e[5]=p):p=e[5];let m,h;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(m=Y(`xopc-dialog-content fixed left-1/2 top-1/2 w-[min(100%-2rem,28rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4`,$c,`dark:border-edge`),h=e=>{e.preventDefault(),t.current?.focus()},e[6]=m,e[7]=h):(m=e[6],h=e[7]);let g;e[8]===u.title?g=e[9]:(g=(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:u.title}),e[8]=u.title,e[9]=g);let _;e[10]===u.description?_=e[11]:(_=(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:u.description}),e[10]=u.description,e[11]=_);let v;e[12]!==d||e[13]!==o||e[14]!==c?(v=d?(0,$.jsx)(X,{type:`button`,variant:`ghost`,onClick:()=>o(),children:c===`zh`?`取消`:`Cancel`}):void 0,e[12]=d,e[13]=o,e[14]=c,e[15]=v):v=e[15];let y;e[16]!==r||e[17]!==a||e[18]!==v?(y=(0,$.jsx)(jB,{className:`mt-4`,baseUrl:r,tokenInputRef:t,onSubmit:a,footerLeft:v}),e[16]=r,e[17]=a,e[18]=v,e[19]=y):y=e[19];let b;e[20]!==g||e[21]!==_||e[22]!==y?(b=(0,$.jsxs)(B,{children:[p,(0,$.jsxs)(V,{className:m,onOpenAutoFocus:h,children:[g,_,y]})]}),e[20]=g,e[21]=_,e[22]=y,e[23]=b):b=e[23];let x;return e[24]!==n||e[25]!==f||e[26]!==b?(x=(0,$.jsx)(ee,{open:n,onOpenChange:f,children:b}),e[24]=n,e[25]=f,e[26]=b,e[27]=x):x=e[27],x}function eG(e){return e.language}function tG(e){return e.conversationId}function nG(e){return e.closeTokenDialog}function rG(e){return e.setBrowserSession}function iG(e){return e.tokenExpired}function aG(e){return e.baseUrl}function oG(e){return e.tokenDialogOpen}function sG(e){return e?e.replace(/CmdOrCtrl/g,`Ctrl`).replace(/Command/g,`Ctrl`).replace(/\+/g,` + `):null}function cG(e){let t=(0,Q.c)(15),{item:n,onInvoke:r}=e;if(n.type===`separator`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Wu,{className:`my-1 h-px bg-edge-subtle`}),t[0]=e):e=t[0],e}let i;t[1]===n.accelerator?i=t[2]:(i=sG(n.accelerator),t[1]=n.accelerator,t[2]=i);let a=i,o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=Y(`flex min-h-7 cursor-default select-none items-center gap-6 rounded-md px-2 py-1.5 text-xs text-fg outline-none`,`data-[highlighted]:bg-surface-hover data-[highlighted]:text-fg`),t[3]=o):o=t[3];let s;t[4]!==n.id||t[5]!==r?(s=()=>r(n.id),t[4]=n.id,t[5]=r,t[6]=s):s=t[6];let c;t[7]===n.label?c=t[8]:(c=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.label}),t[7]=n.label,t[8]=c);let l;t[9]===a?l=t[10]:(l=a?(0,$.jsx)(`span`,{className:`shrink-0 whitespace-nowrap font-mono text-[11px] text-fg-subtle`,children:a}):null,t[9]=a,t[10]=l);let u;return t[11]!==s||t[12]!==c||t[13]!==l?(u=(0,$.jsxs)(Hu,{className:o,onSelect:s,children:[c,l]}),t[11]=s,t[12]=c,t[13]=l,t[14]=u):u=t[14],u}function lG(e){let t=(0,Q.c)(6),{groups:n}=e,r=uG,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=Y(`windows-titlebar-interactive flex min-w-0 items-center gap-1`,bl),t[0]=i):i=t[0];let a;if(t[1]!==n){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(0,$.jsxs)(zu,{modal:!1,children:[(0,$.jsx)(Bu,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:Y(`inline-flex h-8 shrink-0 items-center rounded-md px-3 text-sm font-normal text-fg-muted`,`outline-none transition-colors hover:bg-surface-hover hover:text-fg`,`focus-visible:ring-2 focus-visible:ring-accent/60 data-[state=open]:bg-surface-hover data-[state=open]:text-fg`,bl),role:`menuitem`,children:e.label})}),(0,$.jsx)(Vu,{children:(0,$.jsx)(Uu,{align:`start`,sideOffset:4,className:Y(`windows-titlebar-interactive z-[90] min-w-52 rounded-lg border border-edge bg-surface-overlay p-1 shadow-popover outline-none`,bl),children:e.items.map((t,n)=>(0,$.jsx)(cG,{item:t,onInvoke:r},t.type===`item`?t.id:`${e.id}-separator-${n}`))})})]},e.id),t[3]=e):e=t[3],a=n.map(e),t[1]=n,t[2]=a}else a=t[2];let o;return t[4]===a?o=t[5]:(o=(0,$.jsx)(`div`,{className:i,role:`menubar`,children:a}),t[4]=a,t[5]=o),o}function uG(e){window.electronAPI?.menu?.invoke(e)}var dG=(0,Z.memo)(function(){let e=(0,Q.c)(11),t=E(fG),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],e[0]=n):n=e[0];let[r,i]=(0,Z.useState)(n),a;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{if(!Wc())return;let e=!1;return window.electronAPI?.menu?.getModel().then(t=>{e||i(t)}).catch(()=>{e||i([])}),()=>{e=!0}},e[1]=a):a=e[1];let o;if(e[2]===t?o=e[3]:(o=[t],e[2]=t,e[3]=o),(0,Z.useEffect)(a,o),!Wc())return null;let s,c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=Y(`windows-titlebar flex h-9 min-w-0 shrink-0 items-center gap-2 border-b border-edge-subtle`),c=(0,$.jsx)(`div`,{className:Y(`windows-titlebar-interactive flex shrink-0 items-center gap-0.5`,bl),children:(0,$.jsx)(QB,{sidebarToggleVariant:`main`})}),e[4]=s,e[5]=c):(s=e[4],c=e[5]);let l;e[6]===r?l=e[7]:(l=(0,$.jsx)(lG,{groups:r}),e[6]=r,e[7]=l);let u;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(`div`,{className:Y(`min-w-8 flex-1 self-stretch`,yl),"aria-hidden":!0}),e[8]=u):u=e[8];let d;return e[9]===l?d=e[10]:(d=(0,$.jsxs)(`header`,{className:s,children:[c,l,u]}),e[9]=l,e[10]=d),d});function fG(e){return e.language}function pG(){let e=(0,Q.c)(16),t=E(mG),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n.electron,[i,a]=(0,Z.useState)(null),o,s;if(e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{if(!Vl())return;let e=window.electronAPI?.gateway;if(e?.onExited)return e.onExited(e=>a(e))},s=[],e[2]=o,e[3]=s):(o=e[2],s=e[3]),(0,Z.useEffect)(o,s),!i)return null;let c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=Y(`shrink-0 border-b border-danger/35 bg-danger/10 px-4 py-3 text-sm text-fg shadow-surface`),e[4]=c):c=e[4];let l;e[5]===r.gatewayExitTitle?l=e[6]:(l=(0,$.jsx)(`p`,{className:`font-semibold`,children:r.gatewayExitTitle}),e[5]=r.gatewayExitTitle,e[6]=l);let u;e[7]===r.gatewayExitBody?u=e[8]:(u=(0,$.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:r.gatewayExitBody}),e[7]=r.gatewayExitBody,e[8]=u);let d=i.code??`—`,f=i.signal??`—`,p;e[9]!==d||e[10]!==f?(p=(0,$.jsxs)(`p`,{className:`mt-2 font-mono text-xs text-fg-muted`,children:[`exit `,d,` · signal `,f]}),e[9]=d,e[10]=f,e[11]=p):p=e[11];let m;return e[12]!==l||e[13]!==u||e[14]!==p?(m=(0,$.jsxs)(`div`,{className:c,role:`alert`,children:[l,u,p]}),e[12]=l,e[13]=u,e[14]=p,e[15]=m):m=e[15],m}function mG(e){return e.language}function hG(e){return{content:[{type:`text`,text:e}]}}function gG(e,t,n){if(Object.keys(e).length!==1||typeof e[t]!=`string`)throw TypeError(`Expected exactly one string argument: ${t}`);let r=e[t];if(!r||r.length>n)throw TypeError(`Invalid ${t}`);return r}function _G(e){let t=globalThis.atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}function vG(e){return[{descriptor:Mc(`desktop`,`state`),async execute(t){if(Object.keys(t).length)throw TypeError(`Expected no arguments`);let n=e().device;if(!n)throw Error(`Device environment is unavailable`);return{content:[{type:`json`,value:{...await n.readState(),capturedAt:Date.now()}}]}}},{descriptor:{name:`desktop.file.pick`,title:`Choose a local file`,description:`Ask the user to choose one local file and make it available to the agent.`,inputSchema:{type:`object`,additionalProperties:!1,properties:{}},outputSchema:Oc,policyId:`personal.foreground-read`,sensitivity:`personal`,effect:`read`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-read`],timeoutMs:12e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`file`]},async execute(t,n){if(Object.keys(t).length!==0)throw TypeError(`Expected no arguments`);let r=await e().file.pickEndpointFile();if(!r)throw new DOMException(`File selection cancelled`,`AbortError`);let i=_G(r.dataBase64);if(i.byteLength!==r.size||i.byteLength>26214400)throw Error(`Selected file payload is invalid`);return{content:[await n.uploadFile({name:r.name,mimeType:r.mimeType,bytes:i})]}}},{descriptor:{name:`desktop.file.save`,title:`Save a text file`,description:`Ask the user where to save UTF-8 text generated by the agent.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`suggestedName`,`content`],properties:{suggestedName:{type:`string`,minLength:1,maxLength:255},content:{type:`string`,maxLength:2e5}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-write`],timeoutMs:12e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(t){let n=t.suggestedName,r=t.content;if(Object.keys(t).length!==2||typeof n!=`string`||!n||n.length>255||typeof r!=`string`||r.length>2e5||new TextEncoder().encode(r).byteLength>200*1024)throw TypeError(`Invalid file save arguments`);let i=await e().file.saveEndpointText({suggestedName:n,content:r});if(!i.saved)throw new DOMException(`File save cancelled`,`AbortError`);return hG(`Saved ${i.name}`)}},{descriptor:{name:`desktop.notification.show`,title:`Show a notification`,description:`Show a bounded native desktop notification after user confirmation.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`title`,`body`],properties:{title:{type:`string`,minLength:1,maxLength:120},body:{type:`string`,minLength:1,maxLength:500}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`notifications`],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(t){let n=t.title,r=t.body;if(Object.keys(t).length!==2||typeof n!=`string`||!n.trim()||n.length>120||typeof r!=`string`||!r.trim()||r.length>500)throw TypeError(`Invalid notification arguments`);let i=e().system;if(!i)throw Error(`Desktop notifications are unavailable`);let a=await i.showEndpointNotification({title:n,body:r});if(a.ok===!1)throw a.error===`PERMISSION_DENIED`||a.error===`NOTIFICATIONS_DISABLED`?new DOMException(`Desktop notification permission is not granted`,`NotAllowedError`):Error(`Desktop notification failed: ${a.error}`);return hG(`Notification shown.`)}},{descriptor:{name:`desktop.clipboard.read`,title:`Read the clipboard`,description:`Read plain text from the desktop clipboard.`,inputSchema:{type:`object`,additionalProperties:!1,properties:{}},outputSchema:xc,policyId:`personal.foreground-read`,sensitivity:`personal`,effect:`read`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`clipboard-read`],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(t){if(Object.keys(t).length!==0)throw TypeError(`Expected no arguments`);let n=e().clipboard;if(!n?.readText)throw Error(`Clipboard read is unavailable`);return hG(await n.readText())}},{descriptor:{name:`desktop.clipboard.write`,title:`Write to the clipboard`,description:`Replace the desktop clipboard with plain text.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`text`],properties:{text:{type:`string`,minLength:1,maxLength:1e5}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`clipboard-write`],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(t){let n=gG(t,`text`,1e5),r=e().clipboard;if(!r?.writeText||!await r.writeText(n))throw Error(`Clipboard write failed`);return hG(`Clipboard updated.`)}},{descriptor:{name:`desktop.app.open_external`,title:`Open an external URL`,description:`Open an HTTP or HTTPS URL in the default desktop application.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`url`],properties:{url:{type:`string`,minLength:1,maxLength:2048}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`open-external-url`],timeoutMs:15e3,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(t){let n=gG(t,`url`,2048),r=new URL(n);if(r.protocol!==`http:`&&r.protocol!==`https:`)throw TypeError(`Only HTTP and HTTPS URLs are allowed`);let i=e().shell;if(!i?.openExternalUrl)throw Error(`External URL opening is unavailable`);let a=await i.openExternalUrl(r.href);if(a.ok===!1)throw Error(a.error);return hG(`Opened ${r.href}`)}}]}var yG=vG(()=>{if(!window.electronAPI)throw Error(`Desktop bridge is unavailable`);return{...window.electronAPI,device:{readState:async()=>({platform:window.electronAPI.platform,systemVersion:``,locale:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}}}),bG=600,xG=[],SG=new Set;function CG(){for(let e of SG)e()}function wG(){return xG[0]}function TG(e){return SG.add(e),()=>SG.delete(e)}function EG(e){let t=JSON.stringify(e,null,2);return t.length<=bG?t:`${t.slice(0,bG)}\n…`}function DG(e){return e.deadlineAt<=Date.now()?Promise.resolve(!1):new Promise(t=>{let n=window.setTimeout(()=>OG(e.invocationId,!1),e.deadlineAt-Date.now());xG.push({invocationId:e.invocationId,title:e.title,toolName:e.toolName,argumentsPreview:EG(e.args),resolve:t,timeout:n}),CG()})}function OG(e,t){let n=xG.findIndex(t=>t.invocationId===e);if(n<0)return;let[r]=xG.splice(n,1);window.clearTimeout(r.timeout),r.resolve(t),CG()}function kG(){let e=xG;xG=[];for(let t of e)window.clearTimeout(t.timeout),t.resolve(!1);CG()}function AG(){return(0,Z.useSyncExternalStore)(TG,wG,wG)}function jG(){let e=(0,Q.c)(42),t=AG(),n=E(MG)===`zh`,r;e[0]===t?.toolName?r=e[1]:(r=t?.toolName?.endsWith(`.device.get_location`),e[0]=t?.toolName,e[1]=r);let i=r,a;e[2]!==i||e[3]!==t?(a=i?JSON.parse(t.argumentsPreview):void 0,e[2]=i,e[3]=t,e[4]=a):a=e[4];let o=a,s=!!t,c;e[5]===t?c=e[6]:(c=e=>{!e&&t&&OG(t.invocationId,!1)},e[5]=t,e[6]=c);let l;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[140] bg-scrim backdrop-blur-[2px]`}),e[7]=l):l=e[7];let u=i?n?`允许本次使用位置?`:`Use location once?`:n?`允许端侧工具执行?`:`Allow endpoint tool?`,d;e[8]===u?d=e[9]:(d=(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:u}),e[8]=u,e[9]=d);let f=t?.title??``,p;e[10]===f?p=e[11]:(p=(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:f}),e[10]=f,e[11]=p);let m;e[12]!==d||e[13]!==p?(m=(0,$.jsxs)(`div`,{className:`border-b border-edge-subtle px-5 py-4`,children:[d,p]}),e[12]=d,e[13]=p,e[14]=m):m=e[14];let h;e[15]!==o?.precision||e[16]!==o?.purpose||e[17]!==i||e[18]!==t?.argumentsPreview||e[19]!==n?(h=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:i?(0,$.jsxs)(`div`,{className:`space-y-3 text-sm text-fg-muted`,children:[(0,$.jsxs)(`p`,{children:[n?`用途:`:`Purpose: `,o?.purpose===`weather`?n?`查询天气`:`Weather`:n?`查询附近地点`:`Nearby places`]}),(0,$.jsxs)(`p`,{children:[n?`精度:`:`Precision: `,o?.precision===`precise`?n?`精确位置`:`Precise`:n?`大致位置`:`Approximate`]}),(0,$.jsxs)(`p`,{children:[n?`此浏览器的位置仅用于本次查询。坐标将发送给 `:`This browser’s location is used only for this query. Coordinates are sent to `,o?.purpose===`weather`?`Open-Meteo`:`OpenStreetMap`,n?`,原始坐标不进入聊天历史。系统权限开启后,每次调用仍需确认。`:`; raw coordinates are excluded from chat history. Each call requires consent even when OS permission is enabled.`]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`mb-2 text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:n?`实际参数`:`Arguments`}),(0,$.jsx)(`pre`,{className:`whitespace-pre-wrap break-words rounded-lg border border-edge bg-surface-base p-3 font-mono text-xs leading-5 text-fg`,children:t?.argumentsPreview??`{}`})]})}),e[15]=o?.precision,e[16]=o?.purpose,e[17]=i,e[18]=t?.argumentsPreview,e[19]=n,e[20]=h):h=e[20];let g;e[21]===t?g=e[22]:(g=()=>t&&OG(t.invocationId,!1),e[21]=t,e[22]=g);let _=n?`拒绝`:`Deny`,v;e[23]!==g||e[24]!==_?(v=(0,$.jsx)(X,{onClick:g,children:_}),e[23]=g,e[24]=_,e[25]=v):v=e[25];let y;e[26]===t?y=e[27]:(y=()=>t&&OG(t.invocationId,!0),e[26]=t,e[27]=y);let b=n?`允许一次`:`Allow once`,x;e[28]!==y||e[29]!==b?(x=(0,$.jsx)(X,{variant:`primary`,onClick:y,children:b}),e[28]=y,e[29]=b,e[30]=x):x=e[30];let S;e[31]!==v||e[32]!==x?(S=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:[v,x]}),e[31]=v,e[32]=x,e[33]=S):S=e[33];let C;e[34]!==h||e[35]!==S||e[36]!==m?(C=(0,$.jsxs)(B,{children:[l,(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[150] flex h-[min(26rem,calc(100vh-2rem))] w-[min(32rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[m,h,S]})]}),e[34]=h,e[35]=S,e[36]=m,e[37]=C):C=e[37];let w;return e[38]!==C||e[39]!==s||e[40]!==c?(w=(0,$.jsx)(ee,{open:s,onOpenChange:c,children:C}),e[38]=C,e[39]=s,e[40]=c,e[41]=w):w=e[41],w}function MG(e){return e.language}var NG=`xopc-endpoint-tools`,PG=`identity`,FG=`xopc.endpoint-tools.endpoint-id`,IG;function LG(e){if(IG?.startsWith(`${e}:`))return IG;let t=sessionStorage.getItem(FG);return t?.startsWith(`${e}:`)?(IG=t,t):(IG=`${e}:${crypto.randomUUID()}`,sessionStorage.setItem(FG,IG),IG)}function RG(e){let t=String.fromCharCode(...new Uint8Array(e));return btoa(t).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/u,``)}function zG(){return new Promise((e,t)=>{let n=indexedDB.open(NG,1);n.onupgradeneeded=()=>n.result.createObjectStore(PG),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Endpoint identity database failed`))})}async function BG(e){let t=await zG();try{return await new Promise((n,r)=>{let i=t.transaction(PG).objectStore(PG).get(e);i.onsuccess=()=>n(i.result),i.onerror=()=>r(i.error??Error(`Endpoint identity read failed`))})}finally{t.close()}}async function VG(e,t){let n=await zG();try{await new Promise((r,i)=>{let a=n.transaction(PG,`readwrite`);a.objectStore(PG).put(t,e),a.oncomplete=()=>r(),a.onerror=()=>i(a.error??Error(`Endpoint identity write failed`))})}finally{n.close()}}async function HG(e){let t=await zG();try{await new Promise((n,r)=>{let i=t.transaction(PG,`readwrite`);i.objectStore(PG).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error??Error(`Endpoint identity deletion failed`))})}finally{t.close()}}async function UG(e){let t=await BG(e);if(t)return t;let n=await crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!0,[`sign`,`verify`]),r=RG(await crypto.subtle.exportKey(`spki`,n.publicKey)),i=await crypto.subtle.importKey(`pkcs8`,await crypto.subtle.exportKey(`pkcs8`,n.privateKey),{name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`]),a={principalId:crypto.randomUUID(),publicKey:r,privateKey:i};return await VG(e,a),a}async function WG(e){return await HG(e),IG=void 0,sessionStorage.removeItem(FG),UG(e)}async function GG(e,t){return RG(await crypto.subtle.sign({name:`ECDSA`,hash:`SHA-256`},e,new TextEncoder().encode(t)))}var KG=2e3;function qG(){return document.visibilityState===`visible`&&document.hasFocus()?`foreground`:`background`}async function JG(e){if(e.signal.aborted)return!1;let t=()=>OG(e.invocationId,!1);e.signal.addEventListener(`abort`,t,{once:!0});try{return await DG({invocationId:e.invocationId,title:e.descriptor.title,toolName:e.descriptor.name,args:e.arguments,deadlineAt:e.deadlineAt})}finally{e.signal.removeEventListener(`abort`,t)}}var YG=class{config;reconnectTimer;connectPromise;detachRealtime;stopped=!1;registrationBlocked=!1;endpointId;supportsDeviceState=!1;supportsEnvironment=!1;contextPublisher=cB();supportsLocationTasks=!1;turnToken;registry;controller;constructor(e){this.config=e,this.registry=new iB(e.definitions),this.controller=new aB({registry:this.registry,getAvailability:qG,confirm:JG,uploadFile:(e,t)=>this.uploadFile(e,t),createMessageId:()=>crypto.randomUUID()})}async start(){this.stopped=!1,this.registrationBlocked=!1,document.addEventListener(`visibilitychange`,this.onVisibilityChange),window.addEventListener(`focus`,this.onVisibilityChange),window.addEventListener(`blur`,this.onVisibilityChange),window.addEventListener(`gateway-authenticated`,this.onTokenSaved),await this.connect()}stop(){this.stopped=!0,this.contextPublisher.stop(),Ks(!1),document.removeEventListener(`visibilitychange`,this.onVisibilityChange),window.removeEventListener(`focus`,this.onVisibilityChange),window.removeEventListener(`blur`,this.onVisibilityChange),window.removeEventListener(`gateway-authenticated`,this.onTokenSaved),window.clearTimeout(this.reconnectTimer),this.detachRealtime?.(),this.detachRealtime=void 0,this.controller.disconnect(),Bs(this.turnToken),this.turnToken=void 0,this.endpointId=void 0,kG()}onTokenSaved=()=>{this.registrationBlocked=!1,this.connect()};onVisibilityChange=()=>{this.controller.publishAvailability(),this.contextPublisher.refresh()};connect(e=!0){if(this.connectPromise)return this.connectPromise;let t=this.connectOnce(e).finally(()=>{this.connectPromise===t&&(this.connectPromise=void 0)});return this.connectPromise=t,t}async connectOnce(e){if(!(this.stopped||this.registrationBlocked)){window.clearTimeout(this.reconnectTimer);try{let t=await x(w(`/api/endpoint-tools/compatibility`)),n=await t.json().catch(()=>null);this.supportsEnvironment=t.ok&&n?.payload?.endpointEnvironmentV1===!0,Ks(t.ok&&n?.payload?.turnDeviceContextV1===!0),this.supportsLocationTasks=t.ok&&n?.payload?.deviceLocationTasksV1===!0,this.supportsDeviceState=t.ok&&n?.payload?.deviceStateToolsV1===!0;let r=await UG(this.config.kind);if(this.stopped)return;let i=await x(w(`/api/endpoint-tools/principals`),{method:`POST`,body:JSON.stringify({principalId:r.principalId,displayName:this.config.displayName,kind:this.config.kind,platform:this.config.platform,publicKey:r.publicKey})});if(!i.ok){if((await i.json().catch(()=>null))?.error?.code===`PRINCIPAL_REVOKED`){if(!e){this.registrationBlocked=!0;return}let t=await this.config.confirmReenrollment();if(this.stopped)return;if(!t){this.registrationBlocked=!0;return}await WG(this.config.kind),this.stopped||await this.connectOnce(!1);return}if(i.status>=400&&i.status<500){this.registrationBlocked=!0;return}throw Error(`Endpoint registration failed: ${i.status}`)}if(this.stopped)return;let a={createHello:()=>this.createHello(r),onReady:({endpointId:e,turnToken:t})=>{this.endpointId=e,this.turnToken=t,Gs(e,t),this.controller.connect(kc),this.supportsEnvironment&&this.contextPublisher.start({endpointId:e,token:t})},onMessage:e=>{this.controller.handleMessage(e)},onDisconnected:()=>{this.contextPublisher.stop(),this.controller.disconnect(),Bs(this.turnToken),this.turnToken=void 0,kG()}};this.detachRealtime?.(),this.detachRealtime=jc(a)}catch{this.scheduleReconnect()}}}scheduleReconnect(){this.stopped||this.reconnectTimer!==void 0||(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=void 0,this.connect()},KG))}async createHello(e){let t=LG(e.principalId);this.endpointId=t;let n={principalId:e.principalId,endpointId:t,connectionInstanceId:crypto.randomUUID(),displayName:this.config.displayName,kind:this.config.kind,platform:this.config.platform,appVersion:this.config.appVersion,availability:qG(),nonce:crypto.randomUUID(),signedAt:Date.now(),signature:`pending`,tools:this.registry.descriptors().filter(e=>e.name.endsWith(`.device.get_location`)?this.supportsLocationTasks:this.supportsDeviceState||!e.name.includes(`.device.get_`))},r=await GG(e.privateKey,Sc(n));return{...n,signature:r}}async uploadFile(e,t){if(!e||!this.endpointId)throw Error(`Endpoint file upload grant is unavailable`);if(!t.name||t.name.length>255||!t.mimeType||t.mimeType.length>255||t.bytes.byteLength>e.maxBytes||e.expiresAt<=Date.now())throw TypeError(`Endpoint file is invalid`);let n=new URL(w(e.path),window.location.href);n.searchParams.set(`name`,t.name);let r=t.bytes.buffer.slice(t.bytes.byteOffset,t.bytes.byteOffset+t.bytes.byteLength),i=await x(n,{method:`POST`,headers:{"Content-Type":t.mimeType,"x-endpoint-id":this.endpointId,"x-endpoint-upload-token":e.token},body:r}),a=await i.json().catch(()=>null);if(!i.ok)throw Error(a?.error?.message??`Endpoint file upload failed: ${i.status}`);let o=Cc.safeParse(a?.payload);if(!o.success||o.data.type!==`file`)throw Error(`Endpoint file upload returned an invalid response`);return o.data}},XG,ZG=new Set;function QG(){for(let e of ZG)e()}function $G(e){return ZG.add(e),()=>ZG.delete(e)}function eK(){return!!XG}function tK(){return XG?Promise.resolve(!1):new Promise(e=>{XG={resolve:e},QG()})}function nK(e){let t=XG;t&&(XG=void 0,t.resolve(e),QG())}function rK(){return(0,Z.useSyncExternalStore)($G,eK,eK)}function iK(){let e=(0,Q.c)(21),t=rK(),n=E(cK)===`zh`,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[140] bg-scrim backdrop-blur-[2px]`}),e[0]=r):r=e[0];let i=n?`重新注册此端?`:`Re-enroll this endpoint?`,a;e[1]===i?a=e[2]:(a=(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:i}),e[1]=i,e[2]=a);let o=n?`此端身份已被撤销。继续会删除旧密钥并生成一个新的端身份,然后重新连接 Gateway。`:`This endpoint identity was revoked. Continuing deletes the old key, creates a new endpoint identity, and reconnects to the Gateway.`,s;e[3]===o?s=e[4]:(s=(0,$.jsx)(R,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:o}),e[3]=o,e[4]=s);let c;e[5]!==a||e[6]!==s?(c=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-5`,children:[a,s]}),e[5]=a,e[6]=s,e[7]=c):c=e[7];let l=n?`取消`:`Cancel`,u;e[8]===l?u=e[9]:(u=(0,$.jsx)(X,{onClick:oK,children:l}),e[8]=l,e[9]=u);let d=n?`生成新身份`:`Create new identity`,f;e[10]===d?f=e[11]:(f=(0,$.jsx)(X,{variant:`primary`,onClick:aK,children:d}),e[10]=d,e[11]=f);let p;e[12]!==u||e[13]!==f?(p=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:[u,f]}),e[12]=u,e[13]=f,e[14]=p):p=e[14];let m;e[15]!==p||e[16]!==c?(m=(0,$.jsxs)(B,{children:[r,(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[150] flex h-[min(22rem,calc(100vh-2rem))] w-[min(30rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[c,p]})]}),e[15]=p,e[16]=c,e[17]=m):m=e[17];let h;return e[18]!==t||e[19]!==m?(h=(0,$.jsx)(ee,{open:t,onOpenChange:sK,children:m}),e[18]=t,e[19]=m,e[20]=h):h=e[20],h}function aK(){return nK(!0)}function oK(){return nK(!1)}function sK(e){return!e&&nK(!1)}function cK(e){return e.language}var lK={descriptor:vz(`web`),async execute(e,t){let n=hz.parse(e);if(!navigator.geolocation)throw new nB(`PERMISSION_DENIED`,`Location is unavailable in this browser`);return{content:[{type:`json`,value:await new Promise((e,r)=>{let i=!1,a=(a,s)=>{if(i)return;if(i=!0,t.signal.removeEventListener(`abort`,o),s){r(s);return}let c=n.precision===`approximate`||a.coords.accuracy>1e3;e({capturedAt:a.timestamp,latitude:c?Math.round(a.coords.latitude*50)/50:a.coords.latitude,longitude:c?Math.round(a.coords.longitude*50)/50:a.coords.longitude,accuracyMeters:c?Math.max(3e3,a.coords.accuracy):a.coords.accuracy,coordinateSystem:`WGS84`,precision:c?`approximate`:`precise`})},o=()=>a(void 0,new nB(`TOOL_CANCELLED`,`Location request cancelled`));if(t.signal.addEventListener(`abort`,o,{once:!0}),t.signal.aborted){o();return}navigator.geolocation.getCurrentPosition(e=>a(e),e=>a(void 0,new nB(e.code===1?`PERMISSION_DENIED`:e.code===3?`TOOL_TIMEOUT`:`PROTOCOL_ERROR`,e.code===1?`Location permission denied`:`Location is unavailable`)),{maximumAge:0,timeout:2e4,enableHighAccuracy:n.precision===`precise`})})}]}}};function uK(e){return{content:[{type:`text`,text:e}]}}function dK(){if(!navigator.userActivation?.isActive)throw new DOMException(`A current user gesture is required`,`NotAllowedError`)}function fK(e){return new DOMException(e,`AbortError`)}function pK(e){let t=e.suggestedName,n=e.content;if(Object.keys(e).length!==2||typeof t!=`string`||!t||t===`.`||t===`..`||t.length>255||t.includes(`/`)||t.includes(`\\`)||typeof n!=`string`||n.length>2e5||new TextEncoder().encode(n).byteLength>200*1024)throw TypeError(`Invalid file download arguments`);return{suggestedName:t,content:n}}function mK(){return dK(),new Promise((e,t)=>{let n=document.createElement(`input`);n.type=`file`,n.multiple=!1,n.onchange=()=>{let r=n.files?.[0];r?e(r):t(fK(`File selection cancelled`))},n.oncancel=()=>t(fK(`File selection cancelled`)),n.click()})}function hK(e,t){let n=e[t];if(typeof n!=`string`||n.length===0)throw TypeError(`${t} must be a non-empty string`);return n}function gK(e,t){let n=Object.keys(e).toSorted(),r=t.toSorted();if(n.length!==r.length||n.some((e,t)=>e!==r[t]))throw TypeError(`arguments must contain exactly: ${r.join(`, `)||`no fields`}`)}var _K=[lK,{descriptor:Mc(`web`,`state`),async execute(e){if(Object.keys(e).length)throw TypeError(`Expected no arguments`);return{content:[{type:`json`,value:{capturedAt:Date.now(),platform:`web`,systemVersion:``,locale:navigator.language.slice(0,80),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,online:navigator.onLine}}]}}},{descriptor:{name:`web.file.pick`,title:`Choose a local file`,description:`Ask the user to choose one browser-accessible file and make it available to the agent.`,inputSchema:{type:`object`,properties:{},additionalProperties:!1},outputSchema:Oc,policyId:`personal.foreground-read`,sensitivity:`personal`,effect:`read`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-read`],timeoutMs:12e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`file`]},async execute(e,t){gK(e,[]);let n=await mK();if(n.size>26214400)throw TypeError(`Selected file exceeds ${Ac} bytes`);let r=new Uint8Array(await n.arrayBuffer());if(r.byteLength!==n.size||r.byteLength>26214400)throw Error(`Selected file payload is invalid`);return{content:[await t.uploadFile({name:n.name,mimeType:n.type||`application/octet-stream`,bytes:r})]}}},{descriptor:{name:`web.file.download`,title:`Download a text file`,description:`Download bounded UTF-8 text generated by the agent through this browser.`,inputSchema:{type:`object`,properties:{suggestedName:{type:`string`,minLength:1,maxLength:255},content:{type:`string`,maxLength:2e5}},required:[`suggestedName`,`content`],additionalProperties:!1},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-download`],timeoutMs:3e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(e){let{suggestedName:t,content:n}=pK(e);dK();let r=URL.createObjectURL(new Blob([n],{type:`text/plain;charset=utf-8`}));try{let e=document.createElement(`a`);e.href=r,e.download=t,e.click()}finally{URL.revokeObjectURL(r)}return uK(`Download started: ${t}`)}},{descriptor:{name:`web.page.get_selection`,title:`Read selected text`,description:`Read the text currently selected in this browser tab.`,inputSchema:{type:`object`,properties:{},additionalProperties:!1},outputSchema:xc,policyId:`public.foreground-read`,sensitivity:`public`,effect:`read`,confirmation:`never`,requiresForeground:!0,requiredPermissions:[],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(e){return gK(e,[]),uK(window.getSelection()?.toString()??``)}},{descriptor:{name:`web.clipboard.write`,title:`Write clipboard`,description:`Write text to the clipboard from this browser tab.`,inputSchema:{type:`object`,properties:{text:{type:`string`,maxLength:1e5}},required:[`text`],additionalProperties:!1},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`clipboard-write`],timeoutMs:3e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(e){if(gK(e,[`text`]),!navigator.clipboard||!document.hasFocus())throw new DOMException(`Clipboard access requires a focused browser tab`,`NotAllowedError`);let t=hK(e,`text`);if(t.length>1e5)throw TypeError(`text exceeds 100000 characters`);return await navigator.clipboard.writeText(t),uK(`Clipboard updated.`)}},{descriptor:{name:`web.page.navigate`,title:`Navigate page`,description:`Navigate this browser tab to an HTTP or HTTPS URL.`,inputSchema:{type:`object`,properties:{url:{type:`string`,maxLength:4096}},required:[`url`],additionalProperties:!1},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`destructive`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`navigation`],timeoutMs:3e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(e){gK(e,[`url`]);let t=hK(e,`url`);if(t.length>4096)throw TypeError(`url exceeds 4096 characters`);let n=new URL(t,window.location.href);if(n.protocol!==`http:`&&n.protocol!==`https:`)throw TypeError(`url must use HTTP or HTTPS`);return{content:[{type:`text`,text:`Navigating to ${n.href}`}],afterSend:()=>window.location.assign(n.href)}}}];function vK(){return(0,Z.useEffect)(()=>{let e=Vl();if(e&&window.electronAPI?.computer){let e=!1,t=!1,n,r=cB(),i=()=>{r.refresh()};document.addEventListener(`visibilitychange`,i),window.addEventListener(`focus`,i),window.addEventListener(`blur`,i),x(w(`/api/endpoint-tools/compatibility`)).then(async n=>{let r=await n.json();t=n.ok&&r?.payload?.endpointEnvironmentV1===!0,e||Ks(n.ok&&r?.payload?.turnDeviceContextV1===!0)}).catch(()=>{e||Ks(!1)});let a=async()=>{try{let i=await window.electronAPI.computer.status();if(e)return;i.claim?(Gs(i.claim.endpointId,i.claim.token),t&&n!==i.claim.token&&(n=i.claim.token,r.start(i.claim))):(n=void 0,r.stop(),Bs())}catch{e||(n=void 0,r.stop(),Bs())}};a();let o=window.setInterval(()=>{a()},1e3);return()=>{e=!0,r.stop(),document.removeEventListener(`visibilitychange`,i),window.removeEventListener(`focus`,i),window.removeEventListener(`blur`,i),Ks(!1),window.clearInterval(o),Bs()}}let t=new YG(e?{kind:`desktop`,platform:window.electronAPI?.platform??`desktop`,displayName:`xopc Desktop`,appVersion:`1`,definitions:yG,confirmReenrollment:tK}:{kind:`web`,platform:`web`,displayName:`Web browser`,appVersion:`1`,definitions:_K,confirmReenrollment:tK});return t.start(),()=>{nK(!1),t.stop()}},[]),(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(jG,{}),(0,$.jsx)(iK,{})]})}function yK(){let e=(0,Q.c)(3),t=b(),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{if(!Vl())return;let e=window.electronAPI;if(!e?.menu)return;let n=e.menu.onNavigate(e=>{t(e)}),r=e.menu.onTogglePalette(SK),i=e.menu.onQuickCapture(xK),a=e.menu.onToggleSidebar(bK),o=e.menu.onHistoryNavigate(e=>{t(e)});return()=>{n(),r(),i(),a(),o()}},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function bK(){Fe.getState().toggleCollapsed()}function xK(){re()}function SK(){window.dispatchEvent(new CustomEvent(`toggle-command-palette`))}var CK=1500,wK=9e4;function TK(){let e=(0,Q.c)(16),t=E(OK),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n.updatePanel,[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)(!1),c=(0,Z.useRef)(0),l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{let e=c.current+=1;a(!0),s(!1),(async()=>{await new Promise(DK);let t=Date.now()+wK;for(;e===c.current&&Date.now()<t;){try{if((await fetch(w(`/api/health`),{signal:AbortSignal.timeout(3e3)})).ok){window.location.reload();return}}catch{}await new Promise(EK)}e===c.current&&s(!0)})()},e[2]=l):l=e[2];let u=l,d,f;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{let e=()=>u();return window.addEventListener(`gateway-restart-initiated`,e),()=>{c.current+=1,window.removeEventListener(`gateway-restart-initiated`,e)}},f=[u],e[3]=d,e[4]=f):(d=e[3],f=e[4]),(0,Z.useEffect)(d,f);let p;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>{u()},e[5]=p):p=e[5];let m=p;if(!i)return null;let h=o?`border-red-500/20 bg-red-500/10 text-red-800 dark:text-red-200`:`border-amber-500/25 bg-amber-500/10 text-amber-900 dark:text-amber-100`,g;e[6]===h?g=e[7]:(g=Y(`flex min-h-10 w-full items-center justify-center gap-2 border-b px-4 py-2 text-sm`,h),e[6]=h,e[7]=g);let _;e[8]!==r.restartPollRetry||e[9]!==r.restartPollTimeout||e[10]!==r.restartPolling||e[11]!==o?(_=o?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{children:r.restartPollTimeout}),(0,$.jsx)(`button`,{type:`button`,onClick:m,className:`ml-2 rounded bg-accent px-2 py-0.5 text-xs font-medium text-on-accent hover:bg-accent/90`,children:r.restartPollRetry})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:r.restartPolling})]}),e[8]=r.restartPollRetry,e[9]=r.restartPollTimeout,e[10]=r.restartPolling,e[11]=o,e[12]=_):_=e[12];let v;return e[13]!==g||e[14]!==_?(v=(0,$.jsx)(`div`,{className:g,children:_}),e[13]=g,e[14]=_,e[15]=v):v=e[15],v}function EK(e){return setTimeout(e,CK)}function DK(e){return setTimeout(e,2e3)}function OK(e){return e.language}function kK({reminder:e,compact:t}){let n=E(e=>e.language),r=P(n).updatePanel,{show:i,dismiss:a,electronQuitAndInstall:o,runNpmUpdate:s,npmUpdateRunning:c}=e,[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(null),p=(0,Z.useCallback)(async()=>{u(!0),f(null);try{let e=await So();if(e.ok){window.dispatchEvent(new Event(`gateway-restart-initiated`));return}f(e.message??`Gateway restart failed`)}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}},[]),m=(0,Z.useCallback)(async()=>{let e=P(n).updatePanel;f(null);let t=await s();if(t.ok){_l({tone:`success`,title:e.updateSuccess,message:yV(t.result)?e.updateSuccessAutoRestartDetail:e.updateSuccessDetail,source:n===`zh`?`系统更新`:`System update`,dedupeKey:`system-update`});return}let r=t.error===`git-checkout`?e.updateErrorGit:t.error===`busy`?e.updateErrorBusy:e.updateErrorFailed;f(`${r}: ${t.message}`)},[s,n]);if(i.kind===`none`)return null;let h=Y(`absolute right-2 top-1/2 z-[1] flex -translate-y-1/2 items-center gap-1 sm:right-3`,bl);return i.kind===`electron-ready`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-accent/20 bg-accent/10 px-10 py-2 text-sm sm:px-12`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`flex max-w-[min(100%,48rem)] items-center justify-center gap-2 text-center`,children:[(0,$.jsx)(Ur,{className:`size-4 shrink-0 text-accent`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0`,children:r.reminderElectronReady.replace(`{{version}}`,i.version)})]}),(0,$.jsxs)(`div`,{className:h,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:o,className:`rounded bg-accent px-2.5 py-1 text-xs font-medium text-on-accent hover:bg-accent/90`,children:[(0,$.jsx)(vo,{className:`mr-1 inline size-3`}),r.restartToUpdate]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:`rounded p-1 text-fg-muted hover:text-fg`,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]})]}):i.kind===`electron-error`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-red-500/20 bg-red-500/10 px-10 py-2 text-sm text-fg sm:px-12`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`flex max-w-[min(100%,52rem)] items-center justify-center gap-2 text-center`,children:[(0,$.jsx)(tr,{className:`size-4 shrink-0 text-red-500 dark:text-red-400`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 break-words`,children:r.reminderElectronUpdateError.replace(`{{detail}}`,i.message)})]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:h,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):i.kind===`electron-downloading`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 flex-col items-center justify-center gap-2 border-b border-edge bg-surface-panel px-10 py-2 text-sm text-fg-muted sm:flex-row sm:gap-4 sm:px-12`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`flex max-w-full items-center justify-center gap-2 text-center`,children:[(0,$.jsx)(Ur,{className:`size-4 shrink-0 animate-pulse`,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:r.reminderDownloading.replace(`{{percent}}`,String(i.percent))})]}),(0,$.jsx)(`div`,{className:`h-1.5 w-full max-w-xs rounded-full bg-surface-inset sm:max-w-[12rem]`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${i.percent}%`}})}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:Y(h,`sm:right-2`),"aria-label":r.dismissAria,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):i.kind===`npm-restart-required`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-amber-500/25 bg-amber-500/10 py-2 text-sm`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`mx-auto flex max-w-[min(100%,52rem)] flex-wrap items-center justify-center gap-x-2 gap-y-1 px-10 pr-14 text-center sm:px-12 sm:pr-16`,children:[(0,$.jsx)(`span`,{children:r.restartRequired.replace(`{{version}}`,i.version)}),(0,$.jsxs)(`button`,{type:`button`,onClick:p,disabled:l,className:Y(`inline-flex shrink-0 items-center gap-1 rounded bg-accent px-2.5 py-1 text-xs font-medium text-on-accent hover:bg-accent/90 disabled:cursor-not-allowed disabled:opacity-60`,bl),children:[l?(0,$.jsx)(ha,{className:`size-3 shrink-0 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(vo,{className:`size-3 shrink-0`,"aria-hidden":!0}),r.restartGateway]}),d?(0,$.jsx)(`span`,{className:`w-full text-xs text-danger`,role:`alert`,children:d}):null]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:h,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):i.kind===`npm-restarting`?(0,$.jsx)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-accent/20 bg-accent/10 py-2 text-sm`,yl,t&&`text-xs`),children:(0,$.jsxs)(`div`,{className:`mx-auto flex max-w-[min(100%,52rem)] items-center justify-center gap-2 px-10 pr-14 text-center sm:px-12 sm:pr-16`,children:[(0,$.jsx)(ha,{className:`size-4 shrink-0 animate-spin text-accent`,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:r.restartingAutomatically.replace(`{{version}}`,i.version)})]})}):i.kind===`npm`?(0,$.jsxs)(`div`,{className:Y(`relative hidden min-h-10 w-full min-w-0 items-center justify-center border-b border-accent/20 bg-accent/10 py-2 text-sm md:flex`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:Y(`mx-auto flex max-w-[min(100%,52rem)] flex-wrap items-center justify-center gap-x-2 gap-y-1 px-10 pr-14 text-center sm:px-12 sm:pr-16`),children:[(0,$.jsxs)(`span`,{children:[r.reminderNpm.replace(`{{version}}`,i.version),i.channel&&i.channel!==`latest`?` (${i.channel})`:``]}),(0,$.jsxs)(`button`,{type:`button`,onClick:m,disabled:c,className:Y(`inline-flex shrink-0 items-center gap-1 rounded bg-accent px-2.5 py-1 text-xs font-medium text-on-accent hover:bg-accent/90 disabled:cursor-not-allowed disabled:opacity-60`,bl),children:[c?(0,$.jsx)(ha,{className:`size-3 shrink-0 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(vo,{className:`size-3 shrink-0`,"aria-hidden":!0}),c?r.updateRunning:r.updateNow]}),d?(0,$.jsx)(`span`,{className:`w-full text-xs text-danger`,role:`alert`,children:d}):null]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:h,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):null}function AK(e,t,n){let r=P(e),i=r.commandPalette.actions,a=r.commandPalette.groups.actions;return[{kind:`action`,id:`action:local-app:create`,title:i.createLocalApp,subtitle:i.createLocalAppSubtitle,groupLabel:a,keywords:[`app`,`local app`,`create app`,`tool`,`workshop`,`coder`,`应用`,`创建应用`,`工具`,`工坊`],run:()=>{n(),t(`/local-apps/new`)}},{kind:`action`,id:`action:automation:create`,title:`Create automation`,subtitle:`Open automations to create a trigger and action`,groupLabel:a,keywords:[`automation`,`schedule`,`trigger`,`action`,`timer`],run:()=>{n(),t(`/automations?action=create`)}},{kind:`action`,id:`action:automation:manage`,title:`Manage automations`,subtitle:`View automations and run history`,groupLabel:a,keywords:[`automation`,`schedule`,`tasks`,`runs`],run:()=>{n(),t(`/automations`)}},{kind:`action`,id:`action:skills:manage`,title:i.manageSkills,subtitle:i.manageSkillsSubtitle,groupLabel:a,keywords:[`skills`,`skill`,`catalog`],run:()=>{n(),t(`/capabilities/skills`)}},{kind:`action`,id:`action:skills:reload`,title:i.reloadSkills,subtitle:i.reloadSkillsSubtitle,groupLabel:a,keywords:[`skills`,`reload`,`refresh`],run:()=>{n(),s(async()=>{let{reloadSkills:e}=await import(`./skill-reload-api-VmC8ySUy.js`).then(e=>e.n);return{reloadSkills:e}},__vite__mapDeps([157,1,5,2,6,158])).then(({reloadSkills:e})=>e())}}]}function jK(e){if(e)return e.replace(/CmdOrCtrl/g,`Ctrl`).replace(/Command/g,`Ctrl`).replace(/\+/g,` + `)}async function MK(e,t){let n=window.electronAPI?.menu;if(!n)return[];try{let r=await n.getModel(),i=P(e).commandPalette.groups.actions;return r.flatMap(e=>e.items.flatMap(r=>{if(r.type!==`item`||r.id.startsWith(`role.`))return[];let a=jK(r.accelerator);return[{kind:`action`,id:`desktop-menu:${r.id}`,title:r.label,subtitle:[e.label,a].filter(Boolean).join(` · `)||void 0,groupLabel:i,keywords:[r.id,e.id,e.label,r.accelerator??``],run:()=>{t(),n.invoke(r.id)}}]}))}catch{return[]}}function NK(e){return P(e).commandPalette.groups}function PK(e){let t=NK(e);return{[t.navigate]:0,[t.projects]:1,[t.connectors]:2,[t.quickSettings]:3,[t.extensions]:4,[t.sessions]:5,[t.files]:6,[t.commands]:7,[t.skills]:8,[t.actions]:9}}function FK(e){let t=NK(e);return{[t.navigate]:12,[t.projects]:8,[t.connectors]:6,[t.quickSettings]:12,[t.actions]:8,[t.extensions]:8,[t.sessions]:8,[t.files]:10,[t.commands]:6,[t.skills]:6}}function IK(e,t){return PK(e)[t]??10}var LK=null;function RK(){LK=null}function zK(){return LK||(LK=Promise.allSettled([hl(),pl()]).then(([e,t])=>{if(e.status===`rejected`&&t.status===`rejected`)throw e.reason;let n={catalog:e.status===`fulfilled`?e.value:[],instances:t.status===`fulfilled`?t.value:[]};return(e.status===`rejected`||t.status===`rejected`)&&(LK=null),n}).catch(e=>{throw LK=null,e}),LK)}function BK(e,t){return!e.enabled||e.status===`disabled`?t.disabled:e.status===`failed`||e.status===`degraded`||e.status===`not_configured`||e.status===`unauthorized`||e.connectionStatus===`error`||e.connectionStatus===`unauthorized`?t.needsSetup:e.status===`connected`||e.connectionStatus===`connected`?t.connected:t.installed}function VK(e){return e?[e.id,e.description,e.category,e.kind,...e.tags??[],...e.capabilities,...e.benefits??[]]:[]}function HK(e,t){return t?`${e} · ${t}`:e}function UK(e){if(!e.query.trim())return[];let t=new Map(e.catalog.map(e=>[e.id,e])),n=new Set(e.instances.map(e=>e.connectorId)),r=e.instances.map(n=>{let r=t.get(n.connectorId);return{kind:`connector`,id:`connector-instance:${n.instanceId}`,title:n.displayName,subtitle:HK(BK(n,e.labels),r?.description),groupLabel:e.labels.group,keywords:[n.connectorId,n.instanceId,n.materialized.type,...VK(r)],run:()=>{e.close(),e.navigate(`/capabilities/connectors?instance=${encodeURIComponent(n.instanceId)}&tab=connected`)}}}),i=e.catalog.flatMap(t=>t.source!==`builtin`||t.integrationStrategy?.preferred===!1||!wr(t)||n.has(t.id)?[]:[{kind:`connector`,id:`connector:${t.id}`,title:t.displayName,subtitle:HK(e.labels.builtin,t.description),groupLabel:e.labels.group,keywords:VK(t),run:()=>{e.close(),e.navigate(`/capabilities/connectors?connector=${encodeURIComponent(t.id)}&tab=discover`)}}]);return[...r,...i]}function WK(e){return e.trim().toLowerCase()}function GK(e,t){let n=WK(e),r=WK(t);if(!r)return 0;if(!n)return null;if(n===r)return 0;if(n.startsWith(r))return 1;let i=n.indexOf(r);return i>=0?2+Math.min(i,50)/100:null}function KK(e,t){let n=t.trim();if(!n)return 0;let r=[{text:e.title,weight:1},{text:e.subtitle??``,weight:1.75}];for(let t of e.keywords??[])r.push({text:t,weight:1.25});let i=null;for(let e of r){let t=GK(e.text,n);if(t===null)continue;let r=t*e.weight;i=i===null?r:Math.min(i,r)}if(i===null)return null;let a=e.kind===`route`?-.15:e.kind===`project`?-.12:e.kind===`connector`||e.kind===`file`?-.1:e.kind===`session`?-.05:e.kind===`setting`||e.kind===`action`?-.02:0;return Math.max(0,i+a)}function qK(e){return e.toSorted((e,t)=>e.rank===t.rank?e.groupLabel===t.groupLabel?e.title.localeCompare(t.title):e.groupLabel.localeCompare(t.groupLabel):e.rank-t.rank)}var JK=new Set([`logs`,`tracing`,`settingsRuntimes`]),YK=[`/settings/logs`,`/settings/tracing`,`/settings/runtimes`,`/settings/extensions/debug`,`/settings/ext/`];function XK(e,t){return t===`advanced`||!JK.has(e)}function ZK(e,t){return t===`advanced`||!YK.some(t=>e===t||e.startsWith(t.endsWith(`/`)?t:`${t}/`))}var QK=[`settingsAgentBrowser`,`settingsComputerUse`,`settingsPhoneUse`],$K={settingsAgentBrowser:[`browser`,`playwright`,`automation`],settingsPhoneUse:[`phone use`,`Android`,`ADB`,`AutoGLM`,`手机控制`,`模拟器`],settingsComputerUse:[`computer use`,`compute use`,`desktop`,`电脑控制`,`电脑操作`,`桌面控制`,`GUI`,`BYOK`]};function eq(e,t){let n=P(e).commandPalette.routes.agentsSubtitle;return QK.filter(e=>XK(e,t)&&(e!==`settingsComputerUse`||Hl())).map(t=>({id:`route:settings:agent:${t}`,title:N(e,t),subtitle:n,path:Fl(t),keywords:[`agent`,`manifest`,`preset`,`config`,...$K[t]??[]]}))}function tq(e,t){return e.filter(e=>ZK(e.path.split(`?`)[0]??e.path,t))}function nq(e){let t=P(e),n=t.commandPalette.routes,r=t.channelsSettings,i=sd.getState().mode;return tq([{id:`route:chat`,title:t.nav.chat,subtitle:n.chatSubtitle,path:`/chat`,keywords:[`chat`,`new`,`compose`,`assistant`]},{id:`route:agents`,title:t.nav.agents,subtitle:n.agentsSubtitle,path:od,keywords:[`agent`,`persona`,`switch`]},{id:`route:extensions`,title:t.nav.extensions,subtitle:n.extensionsSubtitle,path:Bc(`extensions`),keywords:[`extension`,`plugin`,`addon`]},{id:`route:local-apps`,title:t.nav.localApps,subtitle:n.localAppsSubtitle,path:`/local-apps`,keywords:[`app`,`apps`,`local app`,`tool`,`workshop`,`coder`,`应用`,`本地应用`,`工具`,`工坊`]},{id:`route:sessions`,title:t.nav.sessions,subtitle:n.sessionsSubtitle,path:`/settings/sessions`,keywords:[`history`,`archive`,`pin`]},{id:`route:usage`,title:t.nav.usage,subtitle:n.usageSubtitle,path:`/settings/usage`,keywords:[`usage`,`cost`,`tokens`,`model`,`用量`,`费用`]},{id:`route:logs`,title:t.nav.logs,subtitle:n.logsSubtitle,path:`/settings/logs`,keywords:[`debug`,`errors`]},{id:`route:skills`,title:t.nav.skills,subtitle:n.skillsSubtitle,path:Bc(`skills`),keywords:[`tools`,`catalog`]},{id:`route:connectors`,title:t.nav.connectors,subtitle:n.connectorsSubtitle,path:Bc(`connectors`),keywords:[`connector`,`mcp`,`registry`,`integration`,`tools`]},{id:`route:channels`,title:t.nav.channels,subtitle:n.channelsSubtitle,path:_o,keywords:[`telegram`,`weixin`,`feishu`,`channel`]},{id:`route:channels:telegram`,title:`Telegram`,subtitle:n.channelsSubtitle,path:go(`telegram`),keywords:[`telegram`,`bot`,`channel`,`pairing`]},{id:`route:channels:weixin`,title:`Weixin`,subtitle:n.channelsSubtitle,path:go(`weixin`),keywords:[`weixin`,`wechat`,`channel`,`qr`]},{id:`route:channels:feishu`,title:`Feishu/Lark`,subtitle:n.channelsSubtitle,path:go(`feishu`),keywords:[`feishu`,`lark`,`channel`]},{id:`route:channels:telegram:pairing`,title:`Telegram — ${r.hubPairingButton}`,subtitle:n.channelsSubtitle,path:go(`telegram`),keywords:[`telegram`,`pairing`,`approve`,`dm`]},{id:`route:automations`,title:`Automations`,subtitle:`Triggers, actions, and run history`,path:`/automations`,keywords:[`automation`,`automations`,`schedule`,`tasks`,`history`,`scheduler`]},{id:`route:settings`,title:t.nav.settings,subtitle:n.settingsSubtitle,path:`/settings/overview`,keywords:[`config`,`status`,`providers`,`models`,`agents`,`search`,`preferences`]},{id:`route:settings:capabilities:models`,title:t.nav.settingsModels,subtitle:n.modelsSubtitle,path:Pl(`models`),keywords:[`api`,`key`,`provider`,`openai`,`anthropic`,`google`,`gpt`,`claude`,`gemini`,`llm`,`模型`,`模型服务`,`语音`,`音色`,`听写`,`voice`,`stt`,`tts`,`image`,`服务商`,`密钥`]},{id:`route:settings:capabilities:search`,title:t.nav.settingsSearch,subtitle:n.searchSubtitle,path:Pl(`search`),keywords:[`search`,`web`,`tavily`,`serper`,`brave`,`搜索`,`网络搜索`,`联网搜索`]},{id:`route:settings:gateway`,title:t.nav.settingsGateway,subtitle:n.gatewaySubtitle,path:`/settings/gateway`,keywords:[`server`,`port`,`auth`,`token`]},...eq(e,i)],i)}async function rq(e,t={}){let n=new URLSearchParams;return n.set(`q`,e.trim()),t.types?.length&&n.set(`types`,t.types.join(`,`)),t.limit&&n.set(`limit`,String(t.limit)),(await D(w(`/api/search?${n.toString()}`))).hits}function iq(e){kl.getState().setPreference(e)}function aq(e){E.getState().setLanguage(e)}function oq(e,t){let n=P(e),r=n.commandPalette.quickSettings,i=n.commandPalette.groups.quickSettings;return[{kind:`setting`,id:`setting:model`,title:r.switchModel,subtitle:r.switchModelSubtitle,groupLabel:i,keywords:[`model`,`default model`,`默认模型`,`gpt`,`claude`,`gemini`,`llm`,`模型`],run:()=>t.openModelPalette()},{kind:`setting`,id:`setting:agent`,title:r.switchAgent,subtitle:r.switchAgentSubtitle,groupLabel:i,keywords:[`agent`,`persona`,`bot`],run:()=>t.openAgentPalette()},{kind:`setting`,id:`setting:theme:light`,title:r.themeLight,subtitle:r.appearanceSubtitle,groupLabel:i,keywords:[`theme`,`light`,`appearance`],run:()=>{iq(`light`),t.closePalette()}},{kind:`setting`,id:`setting:theme:dark`,title:r.themeDark,subtitle:r.appearanceSubtitle,groupLabel:i,keywords:[`theme`,`dark`,`night`],run:()=>{iq(`dark`),t.closePalette()}},{kind:`setting`,id:`setting:theme:system`,title:r.themeSystem,subtitle:r.appearanceSubtitle,groupLabel:i,keywords:[`theme`,`system`,`auto`],run:()=>{iq(`system`),t.closePalette()}},{kind:`setting`,id:`setting:lang:en`,title:r.languageEn,subtitle:r.languageSubtitle,groupLabel:i,keywords:[`english`,`language`,`locale`],run:()=>{aq(`en`),t.closePalette()}},{kind:`setting`,id:`setting:lang:zh`,title:r.languageZh,subtitle:r.languageSubtitle,groupLabel:i,keywords:[`chinese`,`中文`,`language`],run:()=>{aq(`zh`),t.closePalette()}}]}function sq(e){let t=e===`zh`;return[{advanced:!0,id:`field:gateway:port`,title:t?`网关端口`:`Gateway Port`,subtitle:t?`设置 HTTP 网关监听端口`:`HTTP gateway listen port`,path:`/settings/gateway?tab=network`,keywords:[`port`,`listen`,`http`,`server`,`端口`]},{advanced:!0,id:`field:gateway:host`,title:t?`网关绑定地址`:`Gateway Host`,subtitle:t?`设置绑定的网络接口`:`Network interface to bind`,path:`/settings/gateway?tab=network`,keywords:[`host`,`bind`,`interface`,`localhost`,`地址`]},{id:`field:gateway:auth`,title:t?`网关认证令牌`:`Gateway Auth Token`,subtitle:t?`访问网关所需的 Bearer token`:`Bearer token for gateway access`,path:`/settings/gateway?tab=access`,keywords:[`auth`,`token`,`bearer`,`password`,`security`,`认证`,`令牌`]},{id:`field:agent-defaults:models`,title:t?`Agent 全局模型`:`Global agent models`,subtitle:t?`设置所有 Agent 继承的模型与回退`:`Set inherited models and fallbacks`,path:`/settings/capabilities/models`,keywords:[`agent defaults`,`model intents`,`fallbacks`,`llm`,`全局默认`,`模型意图`]},{id:`field:agent-defaults:skills`,title:t?`Agent 全局技能`:`Global agent skills`,subtitle:t?`设置所有 Agent 默认可用或排除的技能`:`Set skills enabled or excluded for every agent`,path:`/settings/agent-defaults?panel=skills`,keywords:[`agent defaults`,`skills`,`inherit`,`全局默认`,`技能`,`继承`]},{id:`field:agent-defaults:tools`,title:t?`Agent 全局工具权限`:`Global agent tool permissions`,subtitle:t?`设置所有 Agent 继承的 allow、ask 或 deny 策略`:`Set inherited allow, ask, or deny policies`,path:`/settings/agent-defaults?panel=tools`,keywords:[`agent defaults`,`tools`,`permissions`,`allow`,`ask`,`deny`,`工具权限`]},{advanced:!0,id:`field:agent-defaults:runtime`,title:t?`Agent 全局运行限制`:`Global agent runtime limits`,subtitle:t?`设置继承的轮次和超时`:`Set inherited turn and timeout limits`,path:`/settings/agent-defaults?panel=runtime`,keywords:[`agent defaults`,`runtime`,`turns`,`timeout`,`运行限制`]},{id:`field:agent:profile`,title:t?`Agent 个性`:`Agent personality`,subtitle:t?`设置名称、个性指令和可选覆盖`:`Set the name, personality, and optional overrides`,path:od,keywords:[`agent`,`profile`,`personality`,`instructions`,`agent 个性`,`指令`]},{id:`field:agent:workspace`,title:t?`Agent 工作目录`:`Agent workspace`,subtitle:t?`按需覆盖该 Agent 的自动工作目录`:`Optionally override the automatic workspace`,path:od,keywords:[`workspace`,`directory`,`folder`,`path`,`cwd`,`工作目录`]},{id:`field:agent:browser`,title:t?`浏览器自动化`:`Browser automation`,subtitle:t?`启用 browser_use 工具`:`Enable browser_use tools`,path:`/settings/agent-browser`,keywords:[`browser`,`browser_use`,`automation`,`浏览器`]},{id:`field:agent:browser-extension`,title:t?`Chrome 扩展连接`:`Chrome extension bridge`,subtitle:t?`安装扩展并启动 WebSocket 桥接`:`Install extension and start the bridge`,path:`/settings/agent-browser`,keywords:[`extension`,`chrome`,`bridge`,`websocket`,`扩展`,`桥接`]},{id:`field:agent:browser-playwright`,title:t?`安装 Playwright Chromium`:`Install Playwright Chromium`,subtitle:t?`本地 Playwright 后端就绪检查`:`Local Playwright backend setup`,path:`/settings/agent-browser`,keywords:[`playwright`,`chromium`,`install`,`local`,`安装`]},{id:`field:agent:browser-headless`,title:t?`浏览器无头模式`:`Browser headless mode`,subtitle:t?`隐藏浏览器窗口`:`Run without a visible window`,path:`/settings/agent-browser`,keywords:[`headless`,`window`,`visible`,`无头`]},{advanced:!0,id:`field:agent:browser-private-urls`,title:t?`允许内网 URL`:`Allow private URLs`,subtitle:t?`浏览器导航安全限制`:`Browser navigation security policy`,path:`/settings/agent-browser`,keywords:[`private`,`internal`,`localhost`,`security`,`内网`,`安全`]},{id:`field:voice:sttProvider`,title:t?`STT 语音识别提供商`:`STT Provider`,subtitle:t?`语音转文字服务商`:`Speech-to-text service provider`,path:`/settings/capabilities/models?configure=transcription`,keywords:[`stt`,`speech`,`recognition`,`whisper`,`deepgram`,`语音识别`]},{id:`field:voice:ttsProvider`,title:t?`TTS 语音合成提供商`:`TTS Provider`,subtitle:t?`文字转语音服务商`:`Text-to-speech service provider`,path:`/settings/capabilities/models?configure=speech`,keywords:[`tts`,`speech`,`synthesis`,`voice`,`elevenlabs`,`语音合成`]},{id:`field:search:engine`,title:t?`搜索引擎`:`Web Search Engine`,subtitle:t?`联网搜索使用的引擎`:`Engine for web search tool`,path:`/settings/capabilities/search`,keywords:[`search`,`engine`,`tavily`,`serper`,`brave`,`bing`,`搜索引擎`]},{id:`field:automations:enabled`,title:t?`自动化`:`Automations`,subtitle:t?`创建和管理自动化`:`Create and manage automations`,path:`/automations`,keywords:[`automation`,`automations`,`scheduler`,`timer`,`自动化`,`调度`]},{id:`field:automations:runs`,title:t?`自动化运行记录`:`Automation Runs`,subtitle:t?`查看自动化执行历史`:`Review automation run history`,path:`/automations`,keywords:[`automation`,`runs`,`history`,`自动化`,`历史`]},{id:`field:channels:telegram`,title:`Telegram Bot Token`,subtitle:t?`配置 Telegram 频道连接`:`Configure Telegram channel connection`,path:_o,keywords:[`telegram`,`bot`,`token`,`channel`,`频道`]},{id:`field:channels:dmPolicy`,title:t?`私聊接入策略`:`DM Access Policy`,subtitle:t?`Telegram 私聊白名单/配对策略`:`Telegram DM allowlist/pairing policy`,path:_o,keywords:[`dm`,`policy`,`pairing`,`allowlist`,`access`,`私聊`,`策略`]},{id:`field:mcp:servers`,title:t?`MCP 服务器配置`:`MCP Servers`,subtitle:t?`外部 MCP 工具服务器列表`:`External MCP tool server registry`,path:`/capabilities/connectors`,keywords:[`mcp`,`server`,`tools`,`external`,`stdio`,`服务器`,`connector`]},{id:`field:tunnel:enabled`,title:t?`公网隧道`:`Public Tunnel`,subtitle:t?`FRP 远程访问隧道开关`:`FRP remote access tunnel toggle`,path:`/settings/remote-access`,keywords:[`tunnel`,`frp`,`remote`,`public`,`ngrok`,`隧道`,`远程`]}]}function cq(e,t,n,r){return sq(e).map(i=>({kind:`setting`,id:i.id,title:i.title,subtitle:i.advanced?`${e===`zh`?`高级设置`:`Advanced settings`} · ${i.subtitle}`:i.subtitle,groupLabel:r,keywords:i.keywords,run:()=>{i.advanced&&sd.getState().setMode(`advanced`),n(),t(i.path)}}))}function lq(){let{pathname:e}=p(),{conversationId:t}=d();if(!e.startsWith(`/chat`)||!t)return;let n=decodeURIComponent(t);return n&&n!==`new`?n:void 0}async function uq(e){let{defaults:t}=await ud();await ld({...t,models:{...t.models,chat:{primary:e,fallbacks:[]}}})}function dq(e,t,n,r){let i=e.trim().toLowerCase();i&&(Qs(i),t.startsWith(`/chat`)?window.dispatchEvent(new CustomEvent(`xopc-set-chat-agent`,{detail:{agentId:i}})):n(`/chat/new?projectScope=none`,{state:{agentId:i}}),r())}function fq(e){switch(e.kind){case`connector`:return(0,$.jsx)(Rn,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`extension`:return(0,$.jsx)(mo,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`route`:return(0,$.jsx)(vi,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`project`:return(0,$.jsx)(_i,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`session`:return(0,$.jsx)(vi,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`file`:return(0,$.jsx)(li,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`command`:return(0,$.jsx)(Bo,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`skill`:return(0,$.jsx)(Mo,{className:`size-3.5 shrink-0 text-accent-fg`,"aria-hidden":!0});case`setting`:return(0,$.jsx)(Do,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`action`:return(0,$.jsx)(Qo,{className:`size-3.5 shrink-0 text-accent-fg`,"aria-hidden":!0});default:return null}}function pq(e,t,n,r){if(r(),t.startsWith(`/chat`)){He(e);return}let i=e.match(/^\/skill:(\S+)\s*$/),a=e.match(/^\/(\S+)\s*$/);i?n(`/chat/new?skill=${encodeURIComponent(i[1])}`):a?n(`/chat/new?slash=${encodeURIComponent(a[1])}`):(n(`/chat/new`),requestAnimationFrame(()=>{requestAnimationFrame(()=>{He(e)})}))}function mq(e){let t=[];for(let n of e.uiExtensions){let r=n.ui?.contributions?.commands;if(Array.isArray(r))for(let i of r)!i||typeof i.id!=`string`||typeof i.title!=`string`||t.push({kind:`extension`,id:`ext:${n.id}:${i.id}`,title:i.title,subtitle:n.name,groupLabel:e.extensionsGroupLabel,keywords:[n.id,n.name,i.id],run:()=>{e.close(),i.opensPanel!==void 0&&i.opensPanel!==``?e.navigate(`/extensions/${encodeURIComponent(n.id)}`):window.dispatchEvent(new CustomEvent(`extension-command`,{detail:{extensionId:n.id,commandId:i.id}}))}})}return t}function hq(e,t){switch(t.type){case`setQuery`:return{...e,query:t.value};case`setSelectedIndex`:{let n=typeof t.value==`function`?t.value(e.selectedIndex):t.value;return{...e,selectedIndex:n}}case`setLayer`:return{...e,paletteLayer:t.layer,query:``,selectedIndex:0};case`resetMain`:return{query:``,selectedIndex:0,paletteLayer:`main`}}}var gq={query:``,selectedIndex:0,paletteLayer:`main`};async function _q(){let e=await D(w(`/api/registry`)),t=[];for(let n of e.payload?.providers??[])for(let e of n.models??[])e.available!==!1&&t.push({id:e.ref,title:e.name||e.ref,subtitle:e.ref});return t.sort((e,t)=>e.title.localeCompare(t.title)),t}async function vq(e){let t=await Fc(),n=P(e).agentsSettings;return t.agents.map(e=>({id:e.id,title:cd(e,n),subtitle:e.id}))}function yq({onClose:e}){let t=(0,Z.useRef)(null),n=(0,Z.useRef)(null),r=b(),{pathname:i}=p(),a=E(e=>e.language),o=$s(),s=lq(),c=Ru(e=>e.agentId),l=ll(e=>e.setPath),[u,d]=(0,Z.useReducer)(hq,gq),[f,m]=(0,Z.useState)(0),[h,g]=(0,Z.useState)(0),{query:_,selectedIndex:v,paletteLayer:y}=u,x=(0,Z.useMemo)(()=>nq(a),[a]),[S]=xu(_,120);(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail;t&&typeof t==`object`&&`section`in t&&t.section===`skills`&&m(e=>e+1),g(e=>e+1)};return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[]);let C=_u(zK,[h],{enabled:y===`main`&&!!S.trim(),initial:{catalog:[],instances:[]},errorData:{catalog:[],instances:[]}}),w=(0,Z.useCallback)(()=>{d({type:`setLayer`,layer:`models`})},[]),T=(0,Z.useCallback)(()=>{d({type:`setLayer`,layer:`agents`})},[]),D=_u(async()=>y===`models`?_q():y===`agents`?vq(a):[],[y,a],{enabled:y===`models`||y===`agents`,initial:[],errorData:[]}),O=_u(async()=>{let t=S.trim(),n=e,u=P(a).commandPalette.groups,d=x.map(e=>({kind:`route`,id:e.id,title:e.title,subtitle:e.subtitle,groupLabel:u.navigate,keywords:[...e.keywords??[],e.path],run:()=>{n(),r(e.path)}})),f=oq(a,{closePalette:n,openModelPalette:w,openAgentPalette:T}),p=AK(a,r,n),m=UK({query:t,...C.data,labels:{group:u.connectors,...P(a).commandPalette.connectors},navigate:r,close:n}),h=mq({query:t,close:n,navigate:r,uiExtensions:o,extensionsGroupLabel:u.extensions}),[g,_,v,y,b,E]=await Promise.all([Gu(),qu(),t?rq(t,{types:[`project`],limit:8}).catch(()=>[]):[],As({search:t||void 0,limit:8,offset:0}).catch(()=>({items:[]})),(async()=>{let e=s?.trim(),n=c.trim();return!e&&!n?[]:await Qe(t,{conversationId:e||void 0,agentId:e?void 0:n||void 0,limit:10}).catch(()=>[])})(),MK(a,n)]),D=v.map(e=>({kind:`project`,id:e.id,title:e.title,subtitle:e.subtitle,groupLabel:u.projects,keywords:[e.payload.project.slug,e.payload.project.workspaceRoot??``,e.payload.project.defaultAgentId??``,e.payload.project.brief??``],run:()=>{n(),r(e.href)}})),O=g.map(e=>({kind:`command`,id:`cmd:${e.id}`,title:`/${e.name}`,subtitle:e.description,groupLabel:u.commands,keywords:[e.id,...e.aliases??[],e.category??``],run:()=>{pq(xt(e),i,r,n)}})),k=_.catalog.flatMap(e=>!e.enabled||e.disableModelInvocation?[]:[{kind:`skill`,id:`skill:${e.name}`,title:`/skill:${e.name}`,subtitle:e.description,groupLabel:u.skills,keywords:[e.source??``,`skill`],run:()=>{pq(`/skill:${e.name} `,i,r,n)}}]),A=(y.items??[]).map(e=>({kind:`session`,id:`session:${e.key}`,title:e.name?.trim()||e.key,subtitle:e.key,groupLabel:u.sessions,keywords:[e.key,...e.tags??[],e.sourceChannel??``],run:()=>{n(),r(`/chat/${encodeURIComponent(e.key)}`)}})),j=b.flatMap(e=>e.isDirectory?[]:[{kind:`file`,id:`file:${e.relativePath}`,title:e.name,subtitle:e.relativePath,groupLabel:u.files,keywords:[e.relativePath],run:()=>{n();let t=e.relativePath.replace(/\\/g,`/`).replace(/^\/+/,``),a=()=>l(t);if(i.startsWith(`/chat`)){a();return}r(`/chat`),window.setTimeout(()=>a(),0)}}]),M=cq(a,r,n,u.navigate),N=[...d,...f,...p,...E,...h,...M,...D,...m,...A,...j,...O,...k],F=[];for(let e of N){let n=KK(e,t);n!==null&&F.push({...e,rank:n})}let I=FK(a),L=qK(F),R=[],z={};for(let e of L){let t=(z[e.groupLabel]??0)+1;if(!(t>(I[e.groupLabel]??6))&&(z[e.groupLabel]=t,R.push(e),R.length>=36))break}return R.sort((e,t)=>IK(a,e.groupLabel)-IK(a,t.groupLabel)||e.rank-t.rank||e.title.localeCompare(t.title)),R},[S,x,o,r,s,c,i,l,a,w,T,e,f,C.data],{enabled:y===`main`,initial:[],errorData:[]}),k=O.data,A=O.loading,j=O.error,M=(0,Z.useMemo)(()=>{let e=_.trim().toLowerCase(),t=D.data;return e?t.filter(t=>t.title.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||(t.subtitle?.toLowerCase().includes(e)??!1)):t},[D.data,_]),N=`${y}|${_}|${String(M.length)}|${String(k.length)}`,F=(0,Z.useRef)(N);if(F.current!==N){F.current=N;let e=y===`main`?Math.max(0,k.length-1):Math.max(0,M.length);v>e&&d({type:`setSelectedIndex`,value:e})}(0,Z.useEffect)(()=>{let e=window.setTimeout(()=>t.current?.focus(),50);return()=>window.clearTimeout(e)},[]);let I=(0,Z.useEffectEvent)(t=>{if(t.key===`Escape`){if(t.preventDefault(),y!==`main`){d({type:`resetMain`});return}e();return}let n=y===`main`?Math.max(0,k.length-1):Math.max(0,M.length);if(t.key===`ArrowDown`){t.preventDefault(),d({type:`setSelectedIndex`,value:e=>Math.min(e+1,n)});return}if(t.key===`ArrowUp`){t.preventDefault(),d({type:`setSelectedIndex`,value:e=>Math.max(0,e-1)});return}if(t.key===`Enter`){if(t.preventDefault(),y===`models`){if(v===0){d({type:`resetMain`});return}let t=M[v-1];if(!t)return;(async()=>{await uq(t.id),mc(),Dc(),e(),d({type:`resetMain`})})();return}if(y===`agents`){if(v===0){d({type:`resetMain`});return}let t=M[v-1];if(!t)return;dq(t.id,i,r,e),d({type:`resetMain`});return}let n=k[v];n&&n.run()}});(0,Z.useEffect)(()=>{let e=e=>{I(e)};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[]),(0,Z.useLayoutEffect)(()=>{let e=n.current;e&&e.querySelector(`[data-global-palette-index="${String(v)}"]`)?.scrollIntoView({block:`nearest`,inline:`nearest`})},[v,k,y,M.length]);let L=a===`zh`?`返回`:`Back`;if(y===`models`||y===`agents`){let o=M,s=D.loading;return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[120] flex items-start justify-center bg-black/40 p-4 pt-[min(18vh,7rem)]`,role:`dialog`,"aria-modal":`true`,"aria-label":a===`zh`?`选择模型或智能体`:`Model or agent picker`,onMouseDown:t=>{t.target===t.currentTarget&&e()},children:(0,$.jsxs)(`div`,{className:`flex w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,children:[(0,$.jsx)(`input`,{ref:t,type:`search`,value:_,onChange:e=>d({type:`setQuery`,value:e.target.value}),placeholder:y===`models`?a===`zh`?`搜索模型…`:`Search models…`:a===`zh`?`搜索智能体…`:`Search agents…`,className:`border-b border-edge bg-transparent px-4 py-3 text-sm text-fg outline-none placeholder:text-fg-muted`,autoComplete:`off`,autoCorrect:`off`}),(0,$.jsxs)(`ul`,{ref:n,className:`max-h-[min(60vh,26rem)] overflow-y-auto p-2 text-sm [scrollbar-gutter:stable]`,role:`listbox`,children:[(0,$.jsx)(`li`,{children:(0,$.jsxs)(`button`,{type:`button`,"data-global-palette-index":0,className:[`flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left text-fg-muted`,v===0?`bg-surface-hover`:`hover:bg-surface-inset`].join(` `),onMouseEnter:()=>d({type:`setSelectedIndex`,value:0}),onClick:()=>d({type:`resetMain`}),children:[`← `,L]})}),s?(0,$.jsx)(`li`,{className:`rounded-lg px-3 py-6 text-center text-fg-muted`,children:a===`zh`?`加载中…`:`Loading…`}):o.length===0?(0,$.jsx)(`li`,{className:`rounded-lg px-3 py-6 text-center text-fg-muted`,children:a===`zh`?`无结果`:`No results`}):o.map((t,n)=>{let a=n+1;return(0,$.jsx)(`li`,{children:(0,$.jsx)(`button`,{type:`button`,"data-global-palette-index":a,className:[`flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left`,v===a?`bg-surface-hover text-fg`:`text-fg hover:bg-surface-inset`].join(` `),onMouseEnter:()=>d({type:`setSelectedIndex`,value:a}),onClick:()=>{y===`models`?(async()=>{await uq(t.id),mc(),Dc(),e(),d({type:`resetMain`})})():(dq(t.id,i,r,e),d({type:`resetMain`}))},children:(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`min-w-0 truncate font-medium`,children:t.title}),t.subtitle?(0,$.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs text-fg-muted`,children:t.subtitle}):null]})})},t.id)})]})]})})}let R=``;return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[120] flex items-start justify-center bg-black/40 p-4 pt-[min(18vh,7rem)]`,role:`dialog`,"aria-modal":`true`,"aria-label":`Global search`,onMouseDown:t=>{t.target===t.currentTarget&&e()},children:(0,$.jsxs)(`div`,{className:`flex w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,children:[(0,$.jsx)(`input`,{ref:t,type:`search`,value:_,onChange:e=>d({type:`setQuery`,value:e.target.value}),placeholder:a===`zh`?`搜索…(会话 / 文件 / 连接 / 设置 / 命令)`:`Search… (sessions, files, connectors, settings, commands)`,className:`border-b border-edge bg-transparent px-4 py-3 text-sm text-fg outline-none placeholder:text-fg-muted`,autoComplete:`off`,autoCorrect:`off`}),(0,$.jsx)(`ul`,{ref:n,className:`max-h-[min(60vh,26rem)] overflow-y-auto p-2 text-sm [scrollbar-gutter:stable]`,role:`listbox`,"aria-activedescendant":k[v]?`global-hit-${k[v].id}`:void 0,children:k.length===0?(0,$.jsx)(`li`,{className:`rounded-lg px-3 py-6 text-center text-fg-muted`,children:A?a===`zh`?`搜索中…`:`Searching…`:j?j instanceof Error?j.message:String(j):a===`zh`?`无结果`:`No results`}):k.map((e,t)=>{let n=e.groupLabel===R?``:e.groupLabel;return R=e.groupLabel,(0,$.jsxs)(`li`,{children:[n?(0,$.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-[10px] font-semibold uppercase tracking-wide text-fg-muted`,children:n}):null,(0,$.jsxs)(`button`,{id:`global-hit-${e.id}`,"data-global-palette-index":t,type:`button`,className:[`flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left`,t===v?`bg-surface-hover text-fg`:`text-fg hover:bg-surface-inset`].join(` `),onMouseEnter:()=>d({type:`setSelectedIndex`,value:t}),onClick:()=>e.run(),children:[(0,$.jsx)(`span`,{className:`mt-0.5`,children:fq(e)}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`min-w-0 truncate font-medium`,children:e.title}),e.subtitle?(0,$.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs text-fg-muted`,children:e.subtitle}):null]})]})]},e.id)})})]})})}function bq(){let e=(0,Q.c)(7),[t,n]=(0,Z.useState)(!1),r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`k`&&(e.preventDefault(),n(Sq))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,Z.useEffect)(r,i);let a,o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{let e=()=>n(!0);return window.addEventListener(`open-command-palette`,e),()=>window.removeEventListener(`open-command-palette`,e)},o=[],e[2]=a,e[3]=o):(a=e[2],o=e[3]),(0,Z.useEffect)(a,o);let s,c;if(e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{let e=()=>n(xq);return window.addEventListener(`toggle-command-palette`,e),()=>window.removeEventListener(`toggle-command-palette`,e)},c=[],e[4]=s,e[5]=c):(s=e[4],c=e[5]),(0,Z.useEffect)(s,c),!t)return null;let l;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(yq,{onClose:()=>n(!1)}),e[6]=l):l=e[6],l}function xq(e){return!e}function Sq(e){return!e}function Cq(e){let t=(0,Q.c)(47),{noteId:n,backgroundPath:r,onClose:i}=e,a=E(Tq),o=T(wq),s;t[0]!==n||t[1]!==o?(s=[`note-preview`,n,o],t[0]=n,t[1]=o,t[2]=s):s=t[2];let c;t[3]===n?c=t[4]:(c=()=>Ri(n),t[3]=n,t[4]=c);let{data:l,error:u,isLoading:d}=oc(s,c),f=a===`zh`,p;t[5]!==l?.title||t[6]!==f?(p=l?.title?.trim()||(f?`笔记预览`:`Note preview`),t[5]=l?.title,t[6]=f,t[7]=p):p=t[7];let m=p,h=f?`关闭笔记预览`:`Close note preview`,g;t[8]===i?g=t[9]:(g=e=>{e||i()},t[8]=i,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(I,{className:`fixed inset-0 z-[80] bg-black/45 backdrop-blur-[1px]`}),t[10]=_):_=t[10];let v;t[11]===m?v=t[12]:(v=(0,$.jsx)(H,{className:`min-w-0 flex-1 truncate font-medium text-fg`,title:m,children:m}),t[11]=m,t[12]=v);let b=f?`预览笔记内容,或打开独立页面。`:`Preview the note or open its full page.`,x;t[13]===b?x=t[14]:(x=(0,$.jsx)(R,{className:`sr-only`,children:b}),t[13]=b,t[14]=x);let S=`/notes/${encodeURIComponent(n)}`,C;t[15]!==r||t[16]!==S?(C=va(S,r),t[15]=r,t[16]=S,t[17]=C):C=t[17];let w;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(Kr,{className:`size-4`,"aria-hidden":!0}),t[18]=w):w=t[18];let D=f?`打开独立页面`:`Open full page`,O;t[19]===D?O=t[20]:(O=(0,$.jsx)(`span`,{children:D}),t[19]=D,t[20]=O);let k;t[21]!==C||t[22]!==O?(k=(0,$.jsxs)(y,{to:C,className:`flex shrink-0 items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm text-accent hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:[w,O]}),t[21]=C,t[22]=O,t[23]=k):k=t[23];let A;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0}),t[24]=A):A=t[24];let j;t[25]===h?j=t[26]:(j=(0,$.jsx)(z,{title:h,"aria-label":h,className:`flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:ring-2 focus-visible:ring-accent`,children:A}),t[25]=h,t[26]=j);let M;t[27]!==k||t[28]!==j||t[29]!==v||t[30]!==x?(M=(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 border-b border-edge bg-surface-panel px-5 py-3.5`,children:[v,x,k,j]}),t[27]=k,t[28]=j,t[29]=v,t[30]=x,t[31]=M):M=t[31];let N;t[32]!==u||t[33]!==d||t[34]!==l||t[35]!==n||t[36]!==f?(N=d?(0,$.jsxs)(`div`,{className:`space-y-4`,role:`status`,"aria-label":f?`正在加载笔记`:`Loading note`,children:[(0,$.jsx)($o,{className:`h-7 w-2/3`}),(0,$.jsx)($o,{className:`h-4 w-full`}),(0,$.jsx)($o,{className:`h-4 w-full`}),(0,$.jsx)($o,{className:`h-4 w-4/5`}),(0,$.jsx)($o,{className:`mt-8 h-32 w-full`})]}):u?(0,$.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:f?`笔记加载失败,请重新打开预览。`:`Unable to load the note. Please reopen the preview.`}):l?l.markdown.trim()?(0,$.jsx)(Li,{noteId:n,content:l.markdown,mermaidActions:!1},n):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f?`暂无笔记内容。`:`This note has no content yet.`}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f?`笔记不存在或已删除。`:`This note is unavailable or has been deleted.`}),t[32]=u,t[33]=d,t[34]=l,t[35]=n,t[36]=f,t[37]=N):N=t[37];let P;t[38]!==d||t[39]!==N?(P=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-5 sm:p-8`,"aria-busy":d,children:N}),t[38]=d,t[39]=N,t[40]=P):P=t[40];let F;t[41]!==M||t[42]!==P?(F=(0,$.jsxs)(B,{children:[_,(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(48rem,calc(100dvh-2rem))] w-[min(48rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay focus:outline-none`,children:[M,P]})]}),t[41]=M,t[42]=P,t[43]=F):F=t[43];let L;return t[44]!==F||t[45]!==g?(L=(0,$.jsx)(ee,{open:!0,onOpenChange:g,children:F}),t[44]=F,t[45]=g,t[46]=L):L=t[46],L}function wq(e){return e.conversationId}function Tq(e){return e.language}function Eq(e){let t=(0,Q.c)(100),{onClose:n}=e,r=b(),i=E(Oq),a;t[0]===i?a=t[1]:(a=P(i),t[0]=i,t[1]=a);let o=a.notes,s;t[2]===i?s=t[3]:(s=P(i),t[2]=i,t[3]=s);let c=s.chat,l=$u(Dq),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(!1),m=(0,Z.useRef)(null),h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=e=>{d(t=>ol(t,e)),window.setTimeout(()=>m.current?.focus(),0)},t[4]=h):h=t[4];let g;t[5]!==c||t[6]!==f?(g={disabled:f,chat:c,onTranscript:h},t[5]=c,t[6]=f,t[7]=g):g=t[7];let _=al(g),{phase:v,voiceActive:y,startVoiceInput:x,cancelVoiceInput:S,confirmVoiceInput:C}=_,w,T;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{let e=window.setTimeout(()=>m.current?.focus(),50);return()=>window.clearTimeout(e)},T=[],t[8]=w,t[9]=T):(w=t[8],T=t[9]),(0,Z.useEffect)(w,T);let D,O;t[10]!==S||t[11]!==C||t[12]!==f||t[13]!==x||t[14]!==y||t[15]!==v?(D=()=>{let e=e=>{e.detail?.target===`note`&&(e.preventDefault(),!f&&(v===`recording`?C():(v===`idle`||v===`error`)&&x()))},t=e=>{e.detail?.target!==`note`||!y||(e.preventDefault(),S(),m.current?.focus())};return window.addEventListener(rd,e),window.addEventListener(ed,t),()=>{window.removeEventListener(rd,e),window.removeEventListener(ed,t)}},O=[S,C,f,x,y,v],t[10]=S,t[11]=C,t[12]=f,t[13]=x,t[14]=y,t[15]=v,t[16]=D,t[17]=O):(D=t[16],O=t[17]),(0,Z.useEffect)(D,O);let k;t[18]!==r||t[19]!==n||t[20]!==f||t[21]!==u?(k=async e=>{let t=u.trim();if(!(!t||f)){p(!0);try{let i=await zi(t,`web`);n(),e&&r(`/notes/${i.id}`)}catch{p(!1)}}},t[18]=r,t[19]=n,t[20]=f,t[21]=u,t[22]=k):k=t[22];let A=k,j;t[23]!==A||t[24]!==n?(j=e=>{if(e.key===`Escape`){e.preventDefault(),n();return}if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),A(!0);return}e.key===`Enter`&&e.shiftKey&&(e.preventDefault(),A(!1))},t[23]=A,t[24]=n,t[25]=j):j=t[25];let M=j,N=o.quickCapturePlaceholder,F;t[26]===n?F=t[27]:(F=e=>{e.target===e.currentTarget&&n()},t[26]=n,t[27]=F);let I;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,$.jsx)(Ro,{className:`size-4 text-accent`}),t[28]=I):I=t[28];let L;t[29]===o.quickCapturePlaceholder?L=t[30]:(L=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-edge px-4 py-3`,children:[I,(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:o.quickCapturePlaceholder})]}),t[29]=o.quickCapturePlaceholder,t[30]=L);let R;t[31]!==c||t[32]!==M||t[33]!==o.quickCapturePlaceholder||t[34]!==f||t[35]!==u||t[36]!==_.audioLevel||t[37]!==_.cancelVoiceInput||t[38]!==_.confirmVoiceInput||t[39]!==_.elapsedLabel||t[40]!==_.error||t[41]!==_.finalTranscript||t[42]!==_.partialTranscript||t[43]!==_.phase||t[44]!==_.retryVoiceInput||t[45]!==_.settingsRequired||t[46]!==_.voiceActive?(R=_.voiceActive?(0,$.jsx)(`div`,{className:`px-4 py-3`,children:(0,$.jsx)(cl,{phase:_.phase,elapsedLabel:_.elapsedLabel,audioLevel:_.audioLevel,partialTranscript:_.partialTranscript,finalTranscript:_.finalTranscript,error:_.error,settingsRequired:_.settingsRequired,disabled:f,chat:c,onCancel:_.cancelVoiceInput,onConfirm:_.confirmVoiceInput,onRetry:_.retryVoiceInput})}):(0,$.jsx)(`textarea`,{ref:m,value:u,onChange:e=>d(e.target.value),onKeyDown:M,placeholder:o.quickCapturePlaceholder,disabled:f,rows:4,className:`resize-none border-none bg-transparent px-4 py-3 text-sm leading-relaxed text-fg placeholder:text-fg-muted focus:outline-none disabled:opacity-60`,style:{fieldSizing:`content`,minHeight:`6rem`,maxHeight:`40vh`}}),t[31]=c,t[32]=M,t[33]=o.quickCapturePlaceholder,t[34]=f,t[35]=u,t[36]=_.audioLevel,t[37]=_.cancelVoiceInput,t[38]=_.confirmVoiceInput,t[39]=_.elapsedLabel,t[40]=_.error,t[41]=_.finalTranscript,t[42]=_.partialTranscript,t[43]=_.phase,t[44]=_.retryVoiceInput,t[45]=_.settingsRequired,t[46]=_.voiceActive,t[47]=R):R=t[47];let z=f||_.voiceActive,B;t[48]===n?B=t[49]:(B=()=>{n(),re()},t[48]=n,t[49]=B);let V;t[50]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,$.jsx)(Jt,{className:`size-3.5`,"aria-hidden":!0}),t[50]=V):V=t[50];let H;t[51]===o.discussionCapture.title?H=t[52]:(H=(0,$.jsx)(`span`,{children:o.discussionCapture.title}),t[51]=o.discussionCapture.title,t[52]=H);let ee;t[53]!==z||t[54]!==B||t[55]!==H?(ee=(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1.5 rounded-md px-1.5 py-1 text-fg-muted hover:bg-surface-hover hover:text-fg disabled:opacity-50`,disabled:z,onClick:B,children:[V,H]}),t[53]=z,t[54]=B,t[55]=H,t[56]=ee):ee=t[56];let U=f||_.voiceActive,W=c.voiceInput,G;t[57]===l?G=t[58]:(G=nd(l).join(`+`),t[57]=l,t[58]=G);let te=`${W} (${G})`,ne=c.voiceInput,K;t[59]===l?K=t[60]:(K=nd(l).join(`+`),t[59]=l,t[60]=K);let q=`${ne} (${K})`,ie;t[61]===_?ie=t[62]:(ie=()=>void _.startVoiceInput(),t[61]=_,t[62]=ie);let ae;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,$.jsx)(Ia,{className:`size-3.5`,"aria-hidden":!0}),t[63]=ae):ae=t[63];let oe;t[64]===c.voiceInput?oe=t[65]:(oe=(0,$.jsx)(`span`,{children:c.voiceInput}),t[64]=c.voiceInput,t[65]=oe);let se;t[66]!==U||t[67]!==te||t[68]!==q||t[69]!==ie||t[70]!==oe?(se=(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1.5 rounded-md px-1.5 py-1 text-fg-muted hover:bg-surface-hover hover:text-fg disabled:opacity-50`,disabled:U,title:te,"aria-label":q,onClick:ie,children:[ae,oe]}),t[66]=U,t[67]=te,t[68]=q,t[69]=ie,t[70]=oe,t[71]=se):se=t[71];let ce;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,$.jsx)(`kbd`,{className:`rounded bg-surface-hover px-1 py-0.5 font-mono text-[10px]`,children:`Enter`}),t[72]=ce):ce=t[72];let le;t[73]===o.quickCaptureHintEnter?le=t[74]:(le=(0,$.jsxs)(`span`,{children:[ce,` `,o.quickCaptureHintEnter]}),t[73]=o.quickCaptureHintEnter,t[74]=le);let ue;t[75]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(`kbd`,{className:`rounded bg-surface-hover px-1 py-0.5 font-mono text-[10px]`,children:`Shift+Enter`}),t[75]=ue):ue=t[75];let de;t[76]===o.quickCaptureHintShift?de=t[77]:(de=(0,$.jsxs)(`span`,{children:[ue,` `,o.quickCaptureHintShift]}),t[76]=o.quickCaptureHintShift,t[77]=de);let fe;t[78]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,$.jsx)(`kbd`,{className:`rounded bg-surface-hover px-1 py-0.5 font-mono text-[10px]`,children:`Esc`}),t[78]=fe):fe=t[78];let pe;t[79]===o.quickCaptureHintEsc?pe=t[80]:(pe=(0,$.jsxs)(`span`,{children:[fe,` `,o.quickCaptureHintEsc]}),t[79]=o.quickCaptureHintEsc,t[80]=pe);let me;t[81]!==ee||t[82]!==se||t[83]!==le||t[84]!==de||t[85]!==pe?(me=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-[11px] text-fg-muted`,children:[ee,se,le,de,pe]}),t[81]=ee,t[82]=se,t[83]=le,t[84]=de,t[85]=pe,t[86]=me):me=t[86];let he;t[87]===f?he=t[88]:(he=f&&(0,$.jsx)(`div`,{className:`size-4 animate-spin rounded-full border-2 border-accent border-t-transparent`}),t[87]=f,t[88]=he);let ge;t[89]!==me||t[90]!==he?(ge=(0,$.jsxs)(`div`,{className:`flex items-center justify-between border-t border-edge-subtle px-4 py-2`,children:[me,he]}),t[89]=me,t[90]=he,t[91]=ge):ge=t[91];let _e;t[92]!==L||t[93]!==R||t[94]!==ge?(_e=(0,$.jsxs)(`div`,{className:`flex w-full max-w-lg flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,children:[L,R,ge]}),t[92]=L,t[93]=R,t[94]=ge,t[95]=_e):_e=t[95];let ve;return t[96]!==o.quickCapturePlaceholder||t[97]!==F||t[98]!==_e?(ve=(0,$.jsx)(`div`,{className:`fixed inset-0 z-[120] flex items-start justify-center bg-black/40 p-4 pt-[min(18vh,7rem)]`,role:`dialog`,"aria-modal":`true`,"data-voice-input-scope":`note`,"aria-label":N,onMouseDown:F,children:_e}),t[96]=o.quickCapturePlaceholder,t[97]=F,t[98]=_e,t[99]=ve):ve=t[99],ve}function Dq(e){return e.shortcut}function Oq(e){return e.language}function kq(){let e=(0,Q.c)(11),[t,n]=(0,Z.useState)(!1),[r,i]=(0,Z.useState)(!1),a=T(Mq),o=Zu(jq),s,c;e[0]!==r||e[1]!==o||e[2]!==a?(s=()=>{let e=e=>{r||Xu(e,o)&&(e.preventDefault(),a&&n(Aq))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},c=[r,o,a],e[0]=r,e[1]=o,e[2]=a,e[3]=s,e[4]=c):(s=e[3],c=e[4]),(0,Z.useEffect)(s,c);let l,u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{let e=e=>{i(!!e.detail?.active)};return window.addEventListener(`quick-capture-shortcut-recording`,e),window.addEventListener(id,e),()=>{window.removeEventListener(`quick-capture-shortcut-recording`,e),window.removeEventListener(id,e)}},u=[],e[5]=l,e[6]=u):(l=e[5],u=e[6]),(0,Z.useEffect)(l,u);let d,f;if(e[7]===a?(d=e[8],f=e[9]):(d=()=>{let e=()=>{a&&n(!0)};return window.addEventListener(`open-quick-capture`,e),()=>window.removeEventListener(`open-quick-capture`,e)},f=[a],e[7]=a,e[8]=d,e[9]=f),(0,Z.useEffect)(d,f),!t)return null;let p;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(Eq,{onClose:()=>n(!1)}),e[10]=p):p=e[10],p}function Aq(e){return!e}function jq(e){return e.shortcut}function Mq(e){return e.conversationId}var Nq=(0,Z.lazy)(()=>s(()=>import(`./capabilities-settings-panel-Bxn8HtEO.js`).then(e=>({default:e.CapabilitiesSettingsPanel})),__vite__mapDeps([159,1,2,4,3,5,6,7,8,9,160,11,161,10,65,35,20,21,22,25,26,27,28,12,162,147,163,36,119,43,37,50,46,164,42,74,75,62,19,23,45,81,79,24,165,87,83,166,167,168,169,39,38,15,170,171,172,49,127,61,109,128,173,174,77,175,176,177,31,178,135,136,78,137,138,139,140,110,111,141,94,90,179,47,88,180,89,181,182,183,92,93,40,95,96,97,98,48,99,100,184,185,186,187,188])));function Pq(){let e=(0,Z.useId)(),t=(0,Z.useRef)(null),n=(0,Z.useRef)(!1),r=(0,Z.useRef)(null),i=(0,Z.useRef)(new Map),[a,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(!1),[l,u]=(0,Z.useState)(),[d,f]=(0,Z.useState)(),[p,m]=(0,Z.useState)(`settings`),[h,g]=(0,Z.useState)(!1);n.current=s;let _=E(e=>e.language)===`zh`;(0,Z.useEffect)(()=>{let e=e=>{let r=e.detail,i=cr(r?.use??null);if(i&&!h){if(!n.current){t.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let e=t.current?.closest(`[role="dialog"]`);e?.closest(`[data-capability-settings-sheet]`)||o(e?.parentElement?.closest(`[role="dialog"]`)??e??null)}u(i),f(r?.purpose===`phone`||r?.purpose===`automation`?r.purpose:void 0),c(!0),m(r?.view===`services`?`services`:`settings`)}};return window.addEventListener(`open-capability-settings`,e),()=>window.removeEventListener(`open-capability-settings`,e)},[h]),(0,Z.useLayoutEffect)(()=>{let e=r.current;if(!e)return;let t=`${l}:${p}`;return e.scrollTop=i.current.get(t)??0,()=>{i.current.set(t,e.scrollTop)}},[p,l]);let v=e=>{h||m(e)};return(0,$.jsx)(ee,{open:s,onOpenChange:e=>{h||c(e)},children:(0,$.jsx)(B,{forceMount:!0,container:a??void 0,children:(0,$.jsx)(`div`,{className:`contents`,children:(0,$.jsxs)(Z.Activity,{mode:s?`visible`:`hidden`,children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[150] bg-scrim`}),(0,$.jsxs)(V,{"data-capability-settings-sheet":!0,"aria-describedby":void 0,forceMount:!0,onCloseAutoFocus:e=>{e.preventDefault(),requestAnimationFrame(()=>t.current?.focus())},className:`xopc-dialog-content fixed inset-x-3 top-1/2 z-[151] mx-auto flex h-[min(48rem,calc(100dvh-2rem))] w-[calc(100%-1.5rem)] max-w-3xl -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay`,onEscapeKeyDown:e=>{h&&e.preventDefault()},onInteractOutside:e=>{h&&e.preventDefault()},children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-3 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(`div`,{children:(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:d===`phone`?_?`手机模型服务`:`Phone model services`:d===`automation`?_?`自动化模型`:`Automation models`:l?ar[l][+!_]:``})}),(0,$.jsx)(X,{variant:`ghost`,className:`size-11 shrink-0 p-0`,"aria-label":_?`关闭设置`:`Close settings`,disabled:h,onClick:()=>c(!1),children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`shrink-0 border-b border-edge px-5 py-3`,children:(0,$.jsx)(bu,{role:`tablist`,"aria-label":_?`能力配置`:`Capability configuration`,className:`inline-flex gap-1 rounded-xl bg-surface-inset p-1`,indicatorClassName:`rounded-md bg-surface-panel shadow-sm`,children:[`settings`,`services`].map(t=>(0,$.jsx)(X,{id:`${e}-${t}`,role:`tab`,"aria-selected":p===t,"aria-controls":`${e}-panel`,tabIndex:p===t?0:-1,variant:`ghost`,className:p===t?`bg-surface-panel text-fg shadow-sm hover:bg-surface-panel`:``,disabled:h,onClick:()=>v(t),onKeyDown:n=>{if(h||![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(n.key))return;n.preventDefault();let r=n.key===`Home`?`settings`:n.key===`End`||t===`settings`?`services`:`settings`;v(r),document.getElementById(`${e}-${r}`)?.focus()},children:t===`settings`?_?`模型与参数`:`Model and parameters`:_?`管理服务`:`Manage services`},t))})}),(0,$.jsx)(`div`,{ref:r,id:`${e}-panel`,role:`tabpanel`,"aria-labelledby":`${e}-${p}`,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-5`,children:l?(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(fd,{}),children:(0,$.jsx)(Nq,{inlineUse:l,inlineView:p,onViewChange:m,onPendingChange:g},l)}):null}),(0,$.jsxs)(`footer`,{className:`flex shrink-0 items-center justify-between gap-4 border-t border-edge px-5 py-3`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-muted`,children:h?_?`正在保存…`:`Saving…`:p===`settings`?_?`自动保存`:`Saves automatically`:null}),(0,$.jsx)(X,{variant:`secondary`,disabled:h,onClick:()=>c(!1),children:d===`phone`?_?`返回手机设置`:`Back to phone settings`:d===`automation`?_?`返回自动化`:`Back to automation`:_?`完成`:`Done`})]})]})]})})})})}var Fq=()=>`xopc-recording-consent:${T.getState().baseUrl}`;function Iq(e){if(e.consentAcknowledgedAt==null){Rq();return}try{localStorage.setItem(Fq(),JSON.stringify(e))}catch{}}function Lq(){try{let e=JSON.parse(localStorage.getItem(Fq())??`null`);return e&&Number.isSafeInteger(e.consentPolicyVersion)&&e.consentPolicyVersion>0&&typeof e.consentAcknowledgedAt==`number`&&Number.isFinite(e.consentAcknowledgedAt)&&e.consentAcknowledgedAt>0?e:null}catch{return null}}function Rq(){try{localStorage.removeItem(Fq())}catch{}}var zq=3e4;function Bq(e,t){let n=e?.retryAfterMs;return typeof n==`number`&&Number.isFinite(n)?Math.min(zq,Math.max(0,n)):Math.min(zq,1e3*2**Math.min(t,5))}function Vq(e){let t=e?.status;return typeof t!=`number`||t===408||t===429||t>=500}function Hq(e,t){return t.throwIfAborted(),new Promise((n,r)=>{let i=()=>{globalThis.clearTimeout(a),r(t.reason??new DOMException(`Aborted`,`AbortError`))},a=globalThis.setTimeout(()=>{t.removeEventListener(`abort`,i),n()},e);t.addEventListener(`abort`,i,{once:!0})})}async function Uq(e,t,n){let r=0;for(;!n.aborted;){let i=await t.list(e.draftId);t.onPendingCount?.(i.length);let a=i[0];if(!a)return;try{let n=await t.upload(e.discussionId,a);await t.remove(e.draftId,a),t.onTranscript?.(n),r=0}catch(e){if(n.aborted)throw n.reason??e;if(!Vq(e))throw e;await Hq(Bq(e,r),n),r+=1}}}var Wq=`xopc:recording-window-position:v1`,Gq=()=>({x:window.visualViewport?.offsetLeft??0,y:window.visualViewport?.offsetTop??0,width:window.visualViewport?.width??window.innerWidth,height:window.visualViewport?.height??window.innerHeight});function Kq(e,t,n){let r=Gq();return{x:Math.max(r.x+12,Math.min(e.x,r.x+r.width-t-12)),y:Math.max(r.y+12,Math.min(e.y,r.y+r.height-n-12))}}function qq(){try{let e=JSON.parse(sessionStorage.getItem(Wq)??`null`);return e&&Number.isFinite(e.x)&&Number.isFinite(e.y)?e:null}catch{return null}}function Jq(e){let t=(0,Q.c)(68),{compact:n,onCompactChange:r,title:i,subtitle:a,compactActions:o,children:s,language:c}=e,l=c===`zh`,u=(0,Z.useRef)(null),[d,f]=(0,Z.useState)(qq),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(Gq),y=(0,Z.useRef)(null),b=(0,Z.useRef)(!1),x;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(x=function(e){let t=u.current?.getBoundingClientRect();if(!t)return;let n=Kq(e,t.width,t.height);f(n);try{sessionStorage.setItem(Wq,JSON.stringify(n))}catch{}},t[0]=x):x=t[0];let S=x,C;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{let e=u.current;if(!e)return;let t=()=>{v(Gq());let t=e.getBoundingClientRect();f(e=>{if(!e)return e;let n=Kq(e,t.width,t.height);return n.x===e.x&&n.y===e.y?e:n})};t();let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),window.addEventListener(`resize`,t),window.visualViewport?.addEventListener(`resize`,t),window.visualViewport?.addEventListener(`scroll`,t),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),window.visualViewport?.removeEventListener(`resize`,t),window.visualViewport?.removeEventListener(`scroll`,t)}},t[1]=C):C=t[1];let w;t[2]===n?w=t[3]:(w=[n],t[2]=n,t[3]=w),(0,Z.useLayoutEffect)(C,w);let T=l?`录音浮窗`:`Recording window`,E=n?`compact`:`expanded`,D=Math.min(n?340:400,_.width-24),O=_.height-24,k;t[4]===d?k=t[5]:(k=d?{left:d.x,top:d.y}:{right:12,bottom:12},t[4]=d,t[5]=k);let A=p?`grabbing`:void 0,j;t[6]!==D||t[7]!==O||t[8]!==k||t[9]!==A?(j={width:D,maxHeight:O,...k,cursor:A},t[6]=D,t[7]=O,t[8]=k,t[9]=A,t[10]=j):j=t[10];let M=`flex shrink-0 items-center gap-1 ${n?`p-2`:`border-b border-edge-subtle px-3 py-2`}`,N=l?`移动录音窗`:`Move recording window`,P=l?`拖动移动,也可使用方向键或点击选择位置`:`Drag, use arrow keys, or click to choose a position`,F,I,L,R,z,B;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(F=e=>{if(e.button!==0||!e.isPrimary)return;let t=u.current?.getBoundingClientRect();t&&(y.current={id:e.pointerId,start:{x:e.clientX,y:e.clientY},origin:{x:t.left,y:t.top},moved:!1},e.currentTarget.setPointerCapture(e.pointerId))},I=e=>{let t=y.current;if(!t||t.id!==e.pointerId)return;let n=e.clientX-t.start.x,r=e.clientY-t.start.y;!t.moved&&Math.hypot(n,r)<4||(t.moved=!0,g(!1),m(!0),S({x:t.origin.x+n,y:t.origin.y+r}))},L=e=>{let t=y.current;!t||t.id!==e.pointerId||(b.current=t.moved,y.current=null,m(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},R=()=>{y.current=null,b.current=!0,m(!1)},z=()=>{y.current=null,m(!1)},B=()=>{if(b.current){b.current=!1;return}g(Yq)},t[11]=F,t[12]=I,t[13]=L,t[14]=R,t[15]=z,t[16]=B):(F=t[11],I=t[12],L=t[13],R=t[14],z=t[15],B=t[16]);let V;t[17]!==_.height||t[18]!==_.width||t[19]!==_.x||t[20]!==_.y?(V=e=>{let t=e.shiftKey?48:16,n=u.current?.getBoundingClientRect();if(!n)return;let r={ArrowLeft:[-t,0],ArrowRight:[t,0],ArrowUp:[0,-t],ArrowDown:[0,t]}[e.key];r&&(e.preventDefault(),S({x:n.left+r[0],y:n.top+r[1]})),e.key===`Escape`&&g(!1),e.key===`Home`&&(e.preventDefault(),S({x:_.x+_.width,y:_.y+_.height}))},t[17]=_.height,t[18]=_.width,t[19]=_.x,t[20]=_.y,t[21]=V):V=t[21];let H;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,$.jsx)(yt,{className:`size-4`,"aria-hidden":!0}),t[22]=H):H=t[22];let ee;t[23]!==h||t[24]!==N||t[25]!==P||t[26]!==V?(ee=(0,$.jsx)(`button`,{type:`button`,"aria-label":N,title:P,"aria-expanded":h,className:`flex size-10 shrink-0 touch-none items-center justify-center rounded-lg text-fg-muted outline-none hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent active:cursor-grabbing`,onPointerDown:F,onPointerMove:I,onPointerUp:L,onPointerCancel:R,onLostPointerCapture:z,onClick:B,onKeyDown:V,children:H}),t[23]=h,t[24]=N,t[25]=P,t[26]=V,t[27]=ee):ee=t[27];let U=`${n?`text-lg`:`text-sm`} font-medium tabular-nums`,W;t[28]!==U||t[29]!==i?(W=(0,$.jsx)(`div`,{className:U,children:i}),t[28]=U,t[29]=i,t[30]=W):W=t[30];let G;t[31]===a?G=t[32]:(G=a?(0,$.jsx)(`div`,{className:`truncate text-xs text-fg-muted`,children:a}):null,t[31]=a,t[32]=G);let te;t[33]!==W||t[34]!==G?(te=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[W,G]}),t[33]=W,t[34]=G,t[35]=te):te=t[35];let ne=n?o:null,K=n?l?`展开录音窗`:`Expand recording window`:l?`缩小录音窗`:`Minimize recording window`,q=!n,re;t[36]!==n||t[37]!==r?(re=()=>{r(!n),g(!1)},t[36]=n,t[37]=r,t[38]=re):re=t[38];let ie;t[39]===n?ie=t[40]:(ie=n?(0,$.jsx)(wa,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(La,{className:`size-4`,"aria-hidden":!0}),t[39]=n,t[40]=ie);let ae;t[41]!==K||t[42]!==q||t[43]!==re||t[44]!==ie?(ae=(0,$.jsx)(`button`,{type:`button`,"aria-label":K,"aria-expanded":q,className:`flex size-10 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:re,children:ie}),t[41]=K,t[42]=q,t[43]=re,t[44]=ie,t[45]=ae):ae=t[45];let oe;t[46]!==M||t[47]!==ee||t[48]!==te||t[49]!==ne||t[50]!==ae?(oe=(0,$.jsxs)(`header`,{className:M,children:[ee,te,ne,ae]}),t[46]=M,t[47]=ee,t[48]=te,t[49]=ne,t[50]=ae,t[51]=oe):oe=t[51];let se;t[52]!==h||t[53]!==_.height||t[54]!==_.width||t[55]!==_.x||t[56]!==_.y||t[57]!==l?(se=h?(0,$.jsx)(`div`,{className:`grid shrink-0 grid-cols-2 gap-1 border-b border-edge-subtle p-2`,"aria-label":l?`选择浮窗位置`:`Choose window position`,children:[[!1,!1],[!0,!1],[!1,!0],[!0,!0]].map((e,t)=>{let[n,r]=e;return(0,$.jsx)(`button`,{type:`button`,className:`min-h-10 rounded-lg px-3 text-sm hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>{S({x:n?_.x+_.width:_.x,y:r?_.y+_.height:_.y}),g(!1)},children:(l?[`左上角`,`右上角`,`左下角`,`右下角`]:[`Top left`,`Top right`,`Bottom left`,`Bottom right`])[t]},t)})}):null,t[52]=h,t[53]=_.height,t[54]=_.width,t[55]=_.x,t[56]=_.y,t[57]=l,t[58]=se):se=t[58];let ce;t[59]===s?ce=t[60]:(ce=(0,$.jsx)(`div`,{className:`min-h-0 overflow-y-auto overscroll-contain`,children:s}),t[59]=s,t[60]=ce);let le;return t[61]!==j||t[62]!==oe||t[63]!==se||t[64]!==ce||t[65]!==T||t[66]!==E?(le=(0,$.jsxs)(`aside`,{ref:u,"aria-label":T,"data-recording-window":E,className:`fixed z-[125] flex flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay text-fg shadow-elevated`,style:j,children:[oe,se,ce]}),t[61]=j,t[62]=oe,t[63]=se,t[64]=ce,t[65]=T,t[66]=E,t[67]=le):le=t[67],le}function Yq(e){return!e}function Xq(e,t){let n=t===`zh`,r=P(t).notes.discussionCapture.status;return e.save===`saveFailed`?e.savedThroughMs?`${n?`保存遇到问题,已保留至`:`Save interrupted; retained through`} ${Zq(e.savedThroughMs)}`:r.saveFailed:e.localComplete?r.localComplete:e.savedThroughMs!==null&&e.savedThroughMs>0?r.savedThrough.replace(`{{time}}`,Zq(e.savedThroughMs)):e.save===`savedUnknown`?n?`原音已暂存,保存时长确认中`:`Audio retained; checking saved duration`:n?`正在保存录音`:`Saving recording`}function Zq(e){return`${String(Math.floor(e/6e4)).padStart(2,`0`)}:${String(Math.floor(e/1e3)%60).padStart(2,`0`)}`}function Qq(e){let t=(0,Q.c)(66),{status:n,language:r,compact:i}=e,a=i!==void 0&&i,o;t[0]===r?o=t[1]:(o=P(r),t[0]=r,t[1]=o);let s=o.notes.discussionCapture.status,c=r===`zh`,l;t[2]!==r||t[3]!==n?(l=Xq(n,r),t[2]=r,t[3]=n,t[4]=l):l=t[4];let u=l;if(a){let e=`px-3 pb-2 text-xs ${n.save===`saveFailed`?`text-danger`:`text-fg-muted`}`,r=n.sync===`offline`?c?`离线录音 · `:`Recording offline · `:``,i;return t[5]!==u||t[6]!==e||t[7]!==r?(i=(0,$.jsxs)(`p`,{className:e,children:[r,u]}),t[5]=u,t[6]=e,t[7]=r,t[8]=i):i=t[8],i}let d;t[9]!==s.localComplete||t[10]!==n.localComplete?(d=n.localComplete?(0,$.jsx)(`p`,{role:`status`,className:`font-medium leading-5 text-fg`,children:s.localComplete}):null,t[9]=s.localComplete,t[10]=n.localComplete,t[11]=d):d=t[11];let f;t[12]!==n.hasInterruptions||t[13]!==c?(f=n.hasInterruptions?(0,$.jsx)(`p`,{children:c?`包含中断与续录;中断期间没有录音。`:`Contains interruptions and resumed audio. Nothing was captured during the interruptions.`}):null,t[12]=n.hasInterruptions,t[13]=c,t[14]=f):f=t[14];let p=`flex cursor-pointer list-none items-center gap-2 py-1 outline-none focus-visible:rounded focus-visible:ring-2 focus-visible:ring-accent ${n.save===`saveFailed`?`text-danger`:``}`,m=n.localComplete?c?`查看保存与整理进度`:`View saving and summary progress`:u,h;t[15]===m?h=t[16]:(h=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 leading-5`,children:m}),t[15]=m,t[16]=h);let g=c?`详情`:`Details`,_;t[17]===g?_=t[18]:(_=(0,$.jsx)(`span`,{className:`shrink-0 text-fg-muted`,children:g}),t[17]=g,t[18]=_);let v;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(Hn,{className:`size-3.5 shrink-0 transition-transform group-open:rotate-180 motion-reduce:transition-none`,"aria-hidden":!0}),t[19]=v):v=t[19];let y;t[20]!==_||t[21]!==p||t[22]!==h?(y=(0,$.jsxs)(`summary`,{className:p,children:[h,_,v]}),t[20]=_,t[21]=p,t[22]=h,t[23]=y):y=t[23];let b=c?`录音`:`Recording`,x;t[24]===b?x=t[25]:(x=(0,$.jsx)(`dt`,{children:b}),t[24]=b,t[25]=x);let S=s[n.capture],C;t[26]===S?C=t[27]:(C=(0,$.jsx)(`dd`,{children:S}),t[26]=S,t[27]=C);let w=c?`本机保存`:`On this device`,T;t[28]===w?T=t[29]:(T=(0,$.jsx)(`dt`,{children:w}),t[28]=w,t[29]=T);let E;t[30]===u?E=t[31]:(E=(0,$.jsx)(`dd`,{children:u}),t[30]=u,t[31]=E);let D=c?`云端备份`:`Cloud backup`,O;t[32]===D?O=t[33]:(O=(0,$.jsx)(`dt`,{children:D}),t[32]=D,t[33]=O);let k=n.sync===`pending`?c?`录音结束后自动备份`:`Backs up after recording`:s[n.sync],A;t[34]===k?A=t[35]:(A=(0,$.jsx)(`dd`,{children:k}),t[34]=k,t[35]=A);let j=c?`文字与笔记`:`Text and notes`,M;t[36]===j?M=t[37]:(M=(0,$.jsx)(`dt`,{children:j}),t[36]=j,t[37]=M);let N=n.ai===`waitingSource`?c?`录音保存后继续整理`:`Continues after the recording is saved`:s[n.ai],F;t[38]===N?F=t[39]:(F=(0,$.jsx)(`dd`,{children:N}),t[38]=N,t[39]=F);let I;t[40]!==x||t[41]!==C||t[42]!==T||t[43]!==E||t[44]!==O||t[45]!==A||t[46]!==M||t[47]!==F?(I=(0,$.jsxs)(`dl`,{className:`mt-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-2 rounded-lg bg-surface-inset p-3 leading-5`,children:[x,C,T,E,O,A,M,F]}),t[40]=x,t[41]=C,t[42]=T,t[43]=E,t[44]=O,t[45]=A,t[46]=M,t[47]=F,t[48]=I):I=t[48];let L;t[49]!==s.timingPending||t[50]!==n.timingUncertain?(L=n.timingUncertain?(0,$.jsx)(`p`,{className:`mt-2 leading-5`,children:s.timingPending}):null,t[49]=s.timingPending,t[50]=n.timingUncertain,t[51]=L):L=t[51];let R;t[52]!==s.leaveHint||t[53]!==n.localComplete||t[54]!==n.sync?(R=n.localComplete&&n.sync!==`available`?(0,$.jsx)(`p`,{className:`mt-2 leading-5`,children:s.leaveHint}):null,t[52]=s.leaveHint,t[53]=n.localComplete,t[54]=n.sync,t[55]=R):R=t[55];let z;t[56]!==y||t[57]!==I||t[58]!==L||t[59]!==R?(z=(0,$.jsxs)(`details`,{className:`group`,children:[y,I,L,R]}),t[56]=y,t[57]=I,t[58]=L,t[59]=R,t[60]=z):z=t[60];let B;return t[61]!==s.label||t[62]!==z||t[63]!==d||t[64]!==f?(B=(0,$.jsxs)(`section`,{"aria-label":s.label,className:`space-y-2 text-xs text-fg-muted`,children:[d,f,z]}),t[61]=s.label,t[62]=z,t[63]=d,t[64]=f,t[65]=B):B=t[65],B}async function $q(e){return navigator.locks?new Promise((t,n)=>{navigator.locks.request(`xopc-recording:${e}`,{ifAvailable:!0},async e=>{if(!e){n(Error(`This recording is open in another tab. Close it before recovery.`));return}await new Promise(e=>t(e))}).catch(n)}):()=>{}}function eJ(e,t){let n=new Uint8Array(512),r=(e,t)=>n.set(new TextEncoder().encode(t),e);return r(0,e),r(100,`0000600\0`),r(108,`0000000\0`),r(116,`0000000\0`),r(124,t.toString(8).padStart(11,`0`)+`\0`),r(136,`00000000000\0`),n.fill(32,148,156),r(156,`0`),r(257,`ustar\0`),r(263,`00`),r(148,n.reduce((e,t)=>e+t,0).toString(8).padStart(6,`0`)+`\0 `),n}async function*tJ(e){let t=[];for(let n=0;n<e.chunkCount;n++){let r=await Hi(e.id,n);if(!r){t.push({index:n,missing:!0});continue}let i=new Uint8Array(await r.blob.arrayBuffer()),a=await crypto.subtle.digest(`SHA-256`,i);t.push({index:n,bytes:i.length,sha256:[...new Uint8Array(a)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}),yield eJ(`chunks/${String(n).padStart(6,`0`)}.bin`,i.length),yield i,i.length%512&&(yield new Uint8Array(512-i.length%512))}let n,r=await ge(e.id).catch(e=>(n=String(e),[])),i=new TextEncoder().encode(JSON.stringify({version:1,draft:e,chunks:t,annotations:r,annotationReadError:n,reconstruction:`Concatenate chunk bytes in index order within each epoch only. Epochs are independent containers. Missing chunks must never be skipped when reconstructing media.`},null,2));yield eJ(`manifest.json`,i.length),yield i,i.length%512&&(yield new Uint8Array(512-i.length%512)),yield new Uint8Array(1024)}function nJ(e){return(e.epochs?.length??1)===1&&e.saveOutcome===`complete`&&e.mediaCoverage?.status===`verified`&&e.mediaCoverage.committedChunkCount===e.chunkCount&&e.mediaCoverage.verifiedThroughMs>0}async function*rJ(e){for(let t=0;t<e.chunkCount;t++){let n=await Hi(e.id,t);if(!n)throw Error(`Original audio has missing chunks; export a recovery package instead.`);let r=n.blob.stream().getReader();try{for(;;){let e=await r.read();if(e.done)break;yield e.value}}finally{r.releaseLock()}}}async function iJ(e){let t=window.showSaveFilePicker,n=await ge(e.id).catch(()=>null),r=nJ(e)&&n!==null&&n.length===0,i=e.mimeType.includes(`mp4`)?`m4a`:e.mimeType.includes(`ogg`)?`ogg`:`webm`,a=`recording-${e.id}.${r?i:`tar`}`,o=()=>r?rJ(e):tJ(e);if(t){let e=await(await t.call(window,{suggestedName:a})).createWritable();try{for await(let t of o())await e.write(t);await e.close()}catch(t){throw await e.abort().catch(()=>void 0),t}return}let s=[],c=0;for await(let e of o()){if(c+=e.length,c>64*1024*1024)throw Error(`Use Chrome or Edge file saving to export recordings over 64 MB. Your original audio is retained.`);s.push(e)}let l=URL.createObjectURL(new Blob(s,{type:r?e.mimeType:`application/x-tar`})),u=document.createElement(`a`);u.href=l,u.download=a,u.click(),window.setTimeout(()=>URL.revokeObjectURL(l),6e4)}var aJ=class{now;accumulated=0;started=null;constructor(e=()=>performance.now()){this.now=e}get elapsedMs(){return this.accumulated+(this.started===null?0:Math.max(0,this.now()-this.started))}resume(){this.started===null&&(this.started=this.now())}pause(){this.accumulated=this.elapsedMs,this.started=null}reset(e=0){this.accumulated=e,this.started=null}},oJ=4,sJ=15,cJ=.6,lJ=.5,uJ=.5,dJ=.015;function fJ(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Float32Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}async function pJ(e){let t=await crypto.subtle.digest(`SHA-256`,await e.arrayBuffer());return[...new Uint8Array(t)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}var mJ=class{sampleRate;chunks=[];bufferedSamples=0;segmentStartSample=0;sequence=0;silenceSamples=0;hasSpeech=!1;constructor(e){this.sampleRate=e}add(e){if(e.length===0)return[];this.chunks.push(e),this.bufferedSamples+=e.length,ps(e)>=dJ?(this.hasSpeech=!0,this.silenceSamples=0):this.silenceSamples+=e.length;let t=this.sampleRate*sJ;return this.bufferedSamples>=t?this.hasSpeech?[this.emit(`max`)]:(this.discardBuffered(),[]):this.hasSpeech&&this.bufferedSamples>=this.sampleRate*oJ&&this.silenceSamples>=this.sampleRate*cJ?[this.emit(`silence`)]:[]}finish(){return!this.hasSpeech||this.bufferedSamples<this.sampleRate*uJ?(this.discardBuffered(),[]):[this.emit(`final`)]}cancel(){this.chunks=[],this.bufferedSamples=0}get lastSequence(){return this.sequence-1}emit(e){let t=fJ(this.chunks),n=e===`max`?Math.min(t.length,this.sampleRate*sJ):t.length,r=t.slice(0,n),i=e===`max`?Math.min(n,this.sampleRate*lJ):0,a=t.slice(n-i),o=Math.round(this.segmentStartSample/this.sampleRate*1e3),s=Math.round((this.segmentStartSample+n)/this.sampleRate*1e3),c={sequence:this.sequence++,samples:r,startedAtMs:o,endedAtMs:s};return this.segmentStartSample+=n-i,this.chunks=a.length?[a]:[],this.bufferedSamples=a.length,this.hasSpeech=a.length>0&&ps(a)>=dJ,this.silenceSamples=this.hasSpeech?0:a.length,c}discardBuffered(){this.segmentStartSample+=this.bufferedSamples,this.chunks=[],this.bufferedSamples=0,this.silenceSamples=0,this.hasSpeech=!1}},hJ=class e{capture;accumulator;emitState;onSegment;stopped=!1;constructor(e,t,n,r){this.capture=e,this.accumulator=t,this.emitState=n,this.onSegment=r}static async start(t,n,r){let i={pending:new Set},a,o=[],s=await ms.start(t,{onSamples:e=>{if(e.length&&r?.(ps(e)),!a){o.push(e);return}for(let t of a.accumulator.add(e))a.emit(t)}});a=new e(s,new mJ(s.sampleRate),i,n);for(let e of o)for(let t of a.accumulator.add(e))a.emit(t);return a}pause(){this.capture.pause()}resume(){this.capture.resume()}async stop(){if(this.stopped)return this.accumulator.lastSequence;this.stopped=!0,await this.capture.stop();for(let e of this.accumulator.finish())this.emit(e);if(await Promise.all(this.emitState.pending),this.emitState.error)throw this.emitState.error;return this.accumulator.lastSequence}cancel(){this.stopped||(this.stopped=!0,this.capture.cancel(),this.accumulator.cancel())}emit(e){let t=ds(e.samples,this.capture.sampleRate),n=new Blob([hs(t)],{type:`audio/wav`}),r=(async()=>{await this.onSegment({sequence:e.sequence,blob:n,startedAtMs:e.startedAtMs,endedAtMs:e.endedAtMs,sha256:await pJ(n)})})().catch(e=>{this.emitState.error??=e});this.emitState.pending.add(r),r.then(()=>this.emitState.pending.delete(r))}},gJ=Vi,_J=100*1024*1024,vJ=32*1024*1024;function yJ(){if(!(typeof MediaRecorder>`u`))return[`audio/webm;codecs=opus`,`audio/mp4`,`audio/ogg;codecs=opus`,`audio/webm`].find(e=>MediaRecorder.isTypeSupported(e))}function bJ(e){try{e?.cancel()}catch{}}function xJ(){let e=(0,Z.useRef)(null),t=()=>{e.current?.(),e.current=null},n=(0,Z.useRef)([]),[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(null),s=(0,Z.useRef)(Symbol(`meeting-capture`)),c=(0,Z.useRef)(0),l=(0,Z.useRef)(null),[u,d]=(0,Z.useState)(`idle`),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)([]),[g,_]=(0,Z.useState)(0),[v,y]=(0,Z.useState)(null),[b,x]=(0,Z.useState)(!0),S=(0,Z.useRef)(null),C=(0,Z.useRef)(Promise.resolve()),w=(0,Z.useRef)(null),T=(0,Z.useRef)(null),E=(0,Z.useRef)(null),D=(0,Z.useRef)(0),O=(0,Z.useRef)(new aJ),k=(0,Z.useRef)(Promise.resolve()),A=(0,Z.useRef)(0),j=(0,Z.useRef)(null),M=(0,Z.useRef)(null),N=(0,Z.useRef)(!1),P=(0,Z.useRef)(!1),F=(0,Z.useRef)(0),[I,L]=(0,Z.useState)(null),R=(0,Z.useRef)(null),z=(0,Z.useRef)(null),B=(0,Z.useRef)(!1),V=(0,Z.useRef)(()=>Promise.resolve(null)),H=(0,Z.useCallback)(async()=>{try{h(await Qi())}catch{h([])}},[]);(0,Z.useEffect)(()=>{H()},[H]);let ee=(0,Z.useCallback)(()=>{R.current!=null&&window.clearInterval(R.current),R.current=null,z.current?.(),z.current=null,ul(s.current),T.current?.getTracks().forEach(e=>e.stop()),T.current=null,S.current=null},[]);(0,Z.useEffect)(()=>()=>{c.current+=1,E.current||ee(),V.current().catch(()=>void 0)},[ee]);let U=(0,Z.useCallback)(e=>{j.current??=e instanceof Error?e:Error(`Local recording storage failed`),O.current.pause(),y(`Local recording storage failed. Only previously saved audio can be recovered.`),bJ(w.current),V.current().catch(()=>void 0)},[]),W=(0,Z.useCallback)(e=>{let t=E.current;if(!t||!P.current||j.current)return;if(e.size===0){let e=performance.now();k.current=k.current.then(()=>{let r=M.current?.packetClock();if(E.current?.id===t.id&&r?.verified)for(let t of n.current)t.at<=e&&(t.target??=r.durationMs)});return}if(A.current+e.size>vJ){U(Error(`Local storage cannot keep up with recording`));return}let r=O.current.elapsedMs,i=performance.now();A.current+=e.size;let a=D.current;D.current+=Math.ceil(e.size/qi),k.current=k.current.then(async()=>{let s=M.current?.packetClock().durationMs??0;for(let c=0,l=a;c<e.size;c+=qi,l+=1){if(j.current)return;let a=E.current;if(!a||a.id!==t.id)return;let u=e.slice(c,c+qi),f=M.current?.snapshot().observedThroughMs??0,m=M.current?.append(new Uint8Array(await u.arrayBuffer()));m&&m.observedThroughMs>f&&(F.current=Math.max(F.current,i),performance.now()-i<15e3&&S.current?.state===`recording`&&d(e=>e===`waiting_for_audio`?`recording`:e));let h={...a,chunkCount:l+1,durationMs:c+8388608>=e.size?Math.max(a.durationMs,r):a.durationMs,updatedAt:Date.now(),...m?{mediaCoverage:{...m,committedChunkCount:l+1}}:{}};if(await na({draftId:t.id,index:l,blob:u,createdAt:Date.now()},h),E.current?.id!==t.id)return;E.current=h,p(h);let g=M.current?.packetClock();if(g?.verified&&c+8388608>=e.size){let e=n.current.filter(e=>e.at<=i);if(g.durationMs<=s)for(let t of e)t.target??=g.durationMs;else{let r=e.filter(e=>e.target===void 0||e.target<g.durationMs),i=new Set(r.map(e=>e.id));n.current=n.current.filter(e=>!i.has(e.id));for(let e of r){let n=e.target??Math.max(0,g.durationMs-1);e.saved.then(()=>ce(t.id,e.id,n)).catch(e=>o(e instanceof Error?e.message:`Could not locate the saved highlight`))}}}}}).catch(e=>{U(e)}).finally(()=>{A.current-=e.size})},[U]),G=(0,Z.useCallback)(async()=>{let e=S.current;if(!E.current)return null;if(!e&&E.current.state!==`recording`)return E.current;++c.current,d(`stopping`),O.current.pause(),_(O.current.elapsedMs);let n=w.current;w.current=null,bJ(n);let r;try{e&&await new Promise((t,n)=>{let r=window.setTimeout(()=>{n(Error(`Recording stopped responding. Previously saved audio is available for recovery.`))},5e3);C.current.then(()=>{window.clearTimeout(r),t()});try{e.state!==`inactive`&&e.stop()}catch(e){window.clearTimeout(r),n(e)}})}catch(e){r=e instanceof Error?e:Error(`Recording could not finish`)}finally{P.current=!1,ee(),L(null)}await k.current;let i=E.current;if(!i)return null;let a={...i,state:`stopped`,lastSequence:-1,durationMs:i.durationMs,updatedAt:Date.now(),endedAt:Date.now(),saveOutcome:j.current||r||!i.chunkCount?`incomplete`:N.current?`interrupted`:`complete`};try{if(await Yi(a),E.current=a,p(a),_(a.durationMs),j.current)throw j.current;if(r)throw r;if(!i.chunkCount)throw Error(`No audio was saved`);return d(`stopped`),a}catch(e){throw d(`error`),y(j.current?`Local storage failed. Recover the previously saved portion after freeing space.`:e instanceof Error?e.message:`Recording could not finish`),e}finally{t(),await H()}},[H,ee]),te=(0,Z.useCallback)(()=>{if(l.current)return l.current;let e=Promise.resolve().then(G).finally(()=>{l.current=null});return l.current=e,e},[G]);V.current=te;let ne=(0,Z.useCallback)(async r=>{if(B.current||S.current||l.current)return null;if(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`)return y(`Audio recording is not supported in this environment.`),d(`error`),null;if(!sl(s.current))return y(`The microphone is being used by a voice call. End the call before recording.`),null;B.current=!0;let a=++c.current;y(null),d(`requesting_permission`);try{await k.current,j.current=null,N.current=!1,P.current=!1,L(null),A.current=0,n.current=[],i(null),o(null),r.continuation&&(e.current=await $q(r.continuation.id));let u=r.continuation?await Wi(r.continuation.id):null;if(u?.sealRequested)throw Error(`Recording has already been submitted. Recover and sync it first.`);if(u&&u.gatewayUrl!==r.gatewayUrl)throw Error(`Return to the original Gateway before continuing this recording.`);let f=await navigator.storage?.estimate?.();if(f?.quota!=null&&f.usage!=null&&f.quota-f.usage<_J)throw Error(`Not enough local storage for a discussion recording.`);let m=await navigator.mediaDevices.getUserMedia({audio:!0});if(a!==c.current)return m.getTracks().forEach(e=>e.stop()),ul(s.current),t(),null;T.current=m;let h=yJ(),g=h?new MediaRecorder(m,{mimeType:h,audioBitsPerSecond:64e3}):new MediaRecorder(m,{audioBitsPerSecond:64e3}),v=Date.now(),b=g.mimeType||h||`audio/webm`,I=u?[...u.epochs??[{firstChunk:0,mimeType:u.mimeType,startedAt:u.startedAt}]]:[{firstChunk:0,mimeType:b,startedAt:v}];u&&(I[I.length-1]={...I[I.length-1],savedThroughMs:u.mediaCoverage?.committedChunkCount===u.chunkCount?u.mediaCoverage.verifiedThroughMs:void 0},I.push({firstChunk:u.chunkCount,mimeType:b,startedAt:v,previousEndedAt:u.endedAt??u.updatedAt}));let B={id:u?.id??crypto.randomUUID(),...u,gatewayUrl:r.gatewayUrl,epochs:I,mediaCoverage:void 0,endedAt:void 0,saveOutcome:void 0,consentPolicyVersion:r.consentPolicyVersion??u?.consentPolicyVersion,...r.projectId?{projectId:r.projectId}:{},mimeType:b,startedAt:u?.startedAt??v,updatedAt:v,durationMs:u?.durationMs??0,chunkCount:u?.chunkCount??0,lastSequence:-1,state:`recording`};if(e.current||=await $q(B.id),await Yi(B),navigator.storage?.persist?.().catch(()=>!1),a!==c.current)return ee(),t(),null;S.current=g,E.current=B,D.current=B.chunkCount,M.current=new Ki(B.mimeType),P.current=!0,F.current=performance.now(),O.current.reset(B.durationMs),O.current.resume(),k.current=Promise.resolve(),g.ondataavailable=e=>{E.current?.id===B.id&&S.current===g&&W(e.data)};let V=()=>{E.current?.id!==B.id||S.current!==g||!P.current||(N.current=!0,O.current.pause(),d(`stopping`),y(`The microphone stopped unexpectedly. Recover the saved audio.`),te().catch(()=>void 0))};g.onerror=V,C.current=new Promise(e=>{g.onstop=()=>{e(),l.current||V()}});let H=m.getAudioTracks(),U=()=>{H.some(e=>e.muted||e.readyState===`ended`)&&V()};H.forEach(e=>{e.addEventListener(`ended`,V),e.addEventListener(`mute`,V)}),document.addEventListener(`freeze`,V),document.addEventListener(`visibilitychange`,U),window.addEventListener(`pageshow`,U),z.current=()=>{H.forEach(e=>{e.removeEventListener(`ended`,V),e.removeEventListener(`mute`,V)}),document.removeEventListener(`freeze`,V),document.removeEventListener(`visibilitychange`,U),window.removeEventListener(`pageshow`,U)},g.start(5e3);let G=-1/0;return hJ.start(m,e=>{if(!u)return r.onLiveSegment(B.id,e)},e=>{a!==c.current||g.state!==`recording`||(F.current=performance.now(),d(e=>e===`waiting_for_audio`?`recording`:e),performance.now()-G>=200&&(G=performance.now(),L(e)))}).then(e=>{if(a!==c.current||g.state===`inactive`){bJ(e);return}w.current=e,x(!u)}).catch(()=>x(!1)),p(B),_(B.durationMs),d(`waiting_for_audio`),U(),R.current=window.setInterval(()=>{if(g.state===`inactive`&&!l.current){V();return}g.state===`recording`&&performance.now()-F.current>=15e3&&(d(e=>e===`recording`?`waiting_for_audio`:e),L(null));let e=O.current.elapsedMs;_(e),e>=gJ&&te().catch(()=>void 0)},1e3),B}catch(e){return bJ(w.current),P.current=!1,w.current=null,ee(),t(),y(e instanceof Error?e.message:`Microphone permission was denied.`),d(`error`),null}finally{B.current=!1}},[W,te,ee]),K=(0,Z.useCallback)(async()=>{let e=E.current,t=S.current;if(!e||!t||t.state!==`recording`)return;let r=pe({type:`time`,capturedAt:Date.now(),epoch:(e.epochs?.length??1)-1,coordinate:`pcm`});o(null);let a=he(e.id,r);n.current.push({id:r.id,at:performance.now(),saved:a});try{t.requestData()}catch{}try{await a,i(`saved`)}catch(e){n.current=n.current.filter(e=>e.id!==r.id),o(e instanceof Error?e.message:`Highlight could not be saved`)}},[]),q=(0,Z.useCallback)(()=>{S.current?.state===`recording`&&(O.current.pause(),_(O.current.elapsedMs),S.current.pause(),w.current?.pause(),d(`paused`),L(null))},[]),re=(0,Z.useCallback)(()=>{S.current?.state===`paused`&&(O.current.resume(),S.current.resume(),w.current?.resume(),d(`waiting_for_audio`))},[]),ie=(0,Z.useCallback)(async e=>{k.current=k.current.then(async()=>{let t=E.current;if(!t)return;let n={...t,serverDiscussionId:e,updatedAt:Date.now()};await Yi(n),E.current=n,p(n)}).catch(U),await k.current},[U]);return{phase:u,draft:f,recoverableDrafts:m,elapsedMs:g,error:v,liveTranscriptionAvailable:b,inputLevel:I,mark:K,markerMessage:r,markerError:a,start:ne,pause:q,resume:re,stop:te,restore:(0,Z.useCallback)(async e=>{if(S.current||B.current||l.current)throw Error(`Stop the active recording before recovery.`);await k.current,j.current=null;let t=await Wi(e.id),n={...t,endedAt:t.endedAt??t.updatedAt,state:`stopped`,updatedAt:Date.now()};return await Yi(n),E.current=n,O.current.reset(n.durationMs),p(n),_(n.durationMs),y(null),d(`stopped`),n},[]),discard:(0,Z.useCallback)(async e=>{if(S.current||B.current||l.current)throw Error(`Stop the active recording before discarding.`);await k.current,await ea(e),E.current?.id===e&&(E.current=null,p(null),_(0),d(`idle`)),await H()},[H]),markUploadFailed:(0,Z.useCallback)(async e=>{let t=e??E.current?.id;if(!t)return;let n=(await Qi()).find(e=>e.id===t);if(!n||n.state===`recording`)return;let r={...n,state:`upload_failed`,updatedAt:Date.now()};await Yi(r),E.current?.id===t&&(E.current=r,p(r)),await H()},[H]),reset:(0,Z.useCallback)(()=>{E.current=null,O.current.reset(),p(null),_(0),y(null),d(`idle`)},[]),setServerDiscussionId:ie,refreshRecoverableDrafts:H}}function SJ(e){return e instanceof Error&&/Recording consent (must be acknowledged first|policy changed)/.test(e.message)}function CJ(e){let t=Math.max(0,Math.floor(e/1e3));return`${String(Math.floor(t/60)).padStart(2,`0`)}:${String(t%60).padStart(2,`0`)}`}function wJ(){let e=b(),{pathname:t}=p(),n=T(e=>e.conversationId),r=T(e=>e.baseUrl),[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1),u=E(e=>e.language),d=P(u).notes.discussionCapture,f=xJ(),m=(0,Z.useRef)(!1),h=(0,Z.useRef)(!1),[g,_]=(0,Z.useState)(!1),[v,y]=(0,Z.useState)(!1),[x,S]=(0,Z.useState)(!1),[C,O]=(0,Z.useState)(null),[k,A]=(0,Z.useState)(null),[j,M]=(0,Z.useState)(),[N,F]=(0,Z.useState)(null),[I,L]=(0,Z.useState)(null),[R,z]=(0,Z.useState)(!1),[B,V]=(0,Z.useState)(!1),[H,ee]=(0,Z.useState)(!1),[U,W]=(0,Z.useState)(0),[G,te]=(0,Z.useState)(0),[ne,K]=(0,Z.useState)(null),[q,re]=(0,Z.useState)(null),[ie,ce]=(0,Z.useState)(`pending`),[pe,he]=(0,Z.useState)(!1),[ge,J]=(0,Z.useState)(null),[Se,Ce]=(0,Z.useState)(()=>navigator.onLine);(0,Z.useEffect)(()=>{let e=()=>Ce(navigator.onLine);return window.addEventListener(`online`,e),window.addEventListener(`offline`,e),()=>{window.removeEventListener(`online`,e),window.removeEventListener(`offline`,e)}},[]);let we=$i({phase:f.phase,draft:pe?null:f.draft,locallyFinalized:pe?null:ge,online:Se,syncStage:ie,detail:N,transcript:I,pendingText:G,liveAvailable:f.liveTranscriptionAvailable}),Te=[`recording`,`waiting_for_audio`,`requesting_permission`,`paused`,`stopping`].includes(f.phase),Ee=(0,Z.useRef)(!1),De=(0,Z.useRef)(null),Oe=(0,Z.useRef)(!1),ke=(0,Z.useRef)(!1),Ae=(0,Z.useRef)(null),je=(0,Z.useRef)(null),Me=(0,Z.useRef)(null),Ne=(0,Z.useRef)(null),Pe=(0,Z.useRef)(()=>{}),Fe=(0,Z.useCallback)(()=>{let e=Ne.current;if(e)return e;let t=je.current;if(!t)return Promise.resolve();let n=new AbortController;Me.current=n;let r=Uq(t,{list:ta,upload:(e,t)=>be(e,t.sequence,t),remove:(e,t)=>Ji(e,t.sequence),onTranscript:L,onPendingCount:te},n.signal).finally(()=>{Ne.current===r&&(Ne.current=null,Me.current===n&&(Me.current=null))});return Ne.current=r,r.then(()=>{window.setTimeout(()=>Pe.current(),0)}).catch(e=>{n.signal.aborted||K(e instanceof Error?e.message:d.saveFailed)}),r},[]);Pe.current=()=>{let e=je.current;!e||Ne.current||ta(e.draftId).then(e=>{te(e.length),e.length>0&&Fe()})};let Ie=(0,Z.useCallback)((e,t)=>{let n=je.current;return n&&(n.draftId!==e||n.discussionId!==t)&&(Me.current?.abort(),Ne.current=null),je.current={draftId:e,discussionId:t},Fe()},[Fe]),Le=(0,Z.useCallback)(async(e,t)=>{await Gi({draftId:e,...t,createdAt:Date.now()}),te(e=>e+1),Fe()},[Fe]),Re=(0,Z.useCallback)(async(e,t)=>{m.current=!1,K(null),y(!1),O(null),M(void 0),S(!0),re(null),L(null),F(null),W(0),he(!1),a(!1),J(null),ce(`pending`);let n=await f.start({...e?{projectId:e}:{},consentPolicyVersion:t,gatewayUrl:r,onLiveSegment:Le});if(!n)return;ke.current=!0;let i=ue({clientRequestId:n.id,...e?{contextProjectId:e}:{},consentPolicyVersion:t,source:Vl()?`electron`:`web`,recordedAt:n.startedAt});Ae.current=i;try{let e=await i;F(e),await f.setServerDiscussionId(e.discussion.id),Ie(n.id,e.discussion.id)}catch(e){ce(`failed`),SJ(e)&&Rq(),K(SJ(e)?u===`zh`?`录音授权需要重新确认。结束录音后可确认并同步,本机录音会保留。`:`Recording consent needs confirmation. Stop recording to confirm and sync; local audio is retained.`:e instanceof Error?e.message:d.saveFailed)}},[Ie,d.saveFailed,f,Le,r,u]);(0,Z.useEffect)(()=>()=>Me.current?.abort(),[]);let ze=(0,Z.useCallback)(async e=>{if(!(!n||h.current||R)){if([`recording`,`waiting_for_audio`,`requesting_permission`,`paused`,`stopping`].includes(f.phase)){S(!0),y(!1);return}h.current=!0,_(!0),S(!0),re(null);try{let t=Lq()??await ye();if(Iq(t),t.consentAcknowledgedAt==null){M(e),O(t.consentPolicyVersion);return}await Re(e,t.consentPolicyVersion)}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{h.current=!1,_(!1)}}},[Re,d.saveFailed,R,f.phase,n]);(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail?.projectId;ze(t)};return window.addEventListener(ae,e),()=>window.removeEventListener(ae,e)},[ze]),(0,Z.useEffect)(()=>{let e=f.draft,t=N?.discussion.id;if(!e||!t||!e.chunkCount||R||De.current||![`recording`,`waiting_for_audio`,`paused`].includes(f.phase))return;let n=Zi(e,t,W,!1,ce).catch(e=>{ce(`failed`),K(e instanceof Error?e.message:d.saveFailed)}).finally(()=>{De.current=null});De.current=n},[f.draft,f.phase,N?.discussion.id,R,d.saveFailed]);let Be=(0,Z.useCallback)(async()=>{let e=N?.discussion.id;if(!e)return;let[t,n]=await Promise.all([me(e),de(e)]);F(t),L(n)},[N?.discussion.id]);(0,Z.useEffect)(()=>{let e=()=>void Be().catch(()=>void 0);return window.addEventListener(`discussion-segment-updated`,e),window.addEventListener(`discussion-updated`,e),()=>{window.removeEventListener(`discussion-segment-updated`,e),window.removeEventListener(`discussion-updated`,e)}},[Be]),(0,Z.useEffect)(()=>{if(!N||![`stopping`,`sealing`,`organizing`].includes(N.discussion.status)&&![`queued`,`running`].includes(N.recordingJob?.state??``))return;let e=window.setInterval(()=>void Be().catch(()=>void 0),3e3);return()=>window.clearInterval(e)},[N,Be]);let Ve=async()=>{if(!(C==null||h.current)){h.current=!0,_(!0);try{if(Iq(await _e(C)),O(null),k){let e={...k,consentPolicyVersion:C};A(null),await Ge(e)}else await Re(j,C)}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{h.current=!1,_(!1)}}},He=async()=>{if(Oe.current)return;Oe.current=!0,ke.current=!1,z(!0),re(null);let e;try{let t=await f.stop();if(!t)throw Error(d.emptyRecording);he(!1),J(t),e=await $q(t.id);let n=await Ae.current?.catch(()=>null);if(!n){let e=await ye();if(Iq(e),e.consentAcknowledgedAt==null||t.consentPolicyVersion!==e.consentPolicyVersion){A(t),O(e.consentPolicyVersion);return}n=await ue({clientRequestId:t.id,...t.projectId?{contextProjectId:t.projectId}:{},consentPolicyVersion:e.consentPolicyVersion,source:Vl()?`electron`:`web`,recordedAt:t.startedAt})}Ae.current=Promise.resolve(n),F(n),await f.setServerDiscussionId(n.discussion.id),V(!0),await De.current;let r=await Zi(t,n.discussion.id,W,!0,ce);if(Me.current?.abort(),!r?.discussion.audioAttachmentId||r.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);F(r);try{await ve(t.id,n.discussion.id),a(!1),await f.discard(t.id),he(!0)}catch{a(!0)}je.current=null,te(0)}catch(e){ce(`failed`),await f.markUploadFailed().catch(()=>void 0),re(e instanceof Error?e.message:d.saveFailed),S(!0)}finally{e?.(),Oe.current=!1,z(!1),V(!1)}};(0,Z.useEffect)(()=>{f.phase===`stopped`&&f.draft?.saveOutcome===`complete`&&ke.current&&He()}),(0,Z.useEffect)(()=>{(m.current||t===`/notes/${encodeURIComponent(N?.note.id??``)}`)&&!i&&N?.discussion.audioAttachmentId&&!N.discussion.audioDeletedAt&&![`recording`,`paused`,`waiting_for_audio`,`requesting_permission`].includes(f.phase)&&S(!1)},[N,f.phase,i,t]);let Ue=()=>{N&&(m.current=![`recording`,`paused`,`waiting_for_audio`,`requesting_permission`].includes(f.phase),y(!0),m.current&&N.discussion.audioAttachmentId&&!N.discussion.audioDeletedAt&&!i&&S(!1),e(`/notes/${encodeURIComponent(N.note.id)}`))},We=async()=>{if(N)try{F(await se(N.discussion.id))}catch(e){re(e instanceof Error?e.message:d.saveFailed)}},Ge=async e=>{let t=e??f.recoverableDrafts[0];if(!t||H||Ee.current||Oe.current||Te)return;Ee.current=!0,ke.current=!1,ee(!0),S(!0),re(null),K(null),W(0);let n;try{if(n=await $q(t.id),t.gatewayUrl!==r)throw Error(u===`zh`?`请切回录制时的 Gateway 后恢复`:`Return to the original Gateway to recover`);let e=t.consentPolicyVersion;t={...await f.restore(t),consentPolicyVersion:e},he(!1),J(t);let i=await ye();if(Iq(i),i.consentAcknowledgedAt==null||t.consentPolicyVersion!==i.consentPolicyVersion){A(t),O(i.consentPolicyVersion);return}let o=t.serverDiscussionId?await me(t.serverDiscussionId):null;o||=await ue({clientRequestId:t.id,...t.projectId?{contextProjectId:t.projectId}:{},consentPolicyVersion:i.consentPolicyVersion,source:Vl()?`electron`:`web`,recordedAt:t.startedAt}),Ae.current=Promise.resolve(o),F(o),await f.setServerDiscussionId(o.discussion.id);let s=!1;try{await ve(t.id,o.discussion.id),s=!0,a(!1)}catch{a(!0)}if(o.discussion.audioDeletedAt)throw Error(`Original recording was deleted`);if(o.discussion.audioAttachmentId&&[`sealing`,`organizing`,`completed`].includes(o.discussion.status)){s&&(await f.discard(t.id),he(!0));return}if(o.discussion.status===`cancelled`)throw Error(`This recording was cancelled`);o.discussion.audioAttachmentId||await Zi(t,o.discussion.id,W,!0,ce),Me.current?.abort();let c=await me(o.discussion.id);if(!c.discussion.audioAttachmentId||c.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);c.discussion.status===`needs_attention`?F(await fe(o.discussion.id)):F(c),s&&(await f.discard(t.id),he(!0))}catch(e){await f.markUploadFailed(t.id).catch(()=>void 0),ce(`failed`),re(e instanceof Error?e.message:d.saveFailed)}finally{n?.(),Ee.current=!1,ee(!1)}},Ke=async e=>{if(!(Ee.current||Oe.current||[`recording`,`waiting_for_audio`,`paused`,`requesting_permission`,`stopping`].includes(f.phase))){Ee.current=!0,ee(!0),re(null);try{if(e.gatewayUrl!==r)throw Error(`Return to the original Gateway before continuing.`);if(e.sealRequested)throw Error(`Recover and sync this submitted recording first.`);let t=e.serverDiscussionId?await me(e.serverDiscussionId):null;if(t&&(t.discussion.audioAttachmentId||t.recordingJob||![`recording`,`needs_attention`].includes(t.discussion.status)))throw Error(`Recover and sync this submitted recording first.`);if(!await f.start({continuation:e,gatewayUrl:r,onLiveSegment:Le}))return;Ae.current=t?Promise.resolve(t):null,F(t),L(null),he(!1),a(!1),J(null),ce(`pending`),l(!1),S(!0),ke.current=!0}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{Ee.current=!1,ee(!1)}}},qe=async e=>{if(Oe.current||H||Te)return;let t=e??f.recoverableDrafts[0];if(!t)return;let n;try{n=await $q(t.id),await f.discard(t.id)}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{n?.()}},Je=async e=>{if(Ee.current||Oe.current||Te)return;Ee.current=!0,ee(!0),re(null);let t;try{t=await $q(e.id);let n=(await Qi()).find(t=>t.id===e.id);if(!n)throw Error(`Recording is no longer available on this device.`);await iJ(n)}catch(e){e instanceof DOMException&&e.name===`AbortError`||re(e instanceof Error?e.message:d.saveFailed)}finally{t?.(),Ee.current=!1,ee(!1)}};if((0,Z.useEffect)(()=>{let e=()=>{f.refreshRecoverableDrafts(),l(!0)};return window.addEventListener(`open-recording-recoveries`,e),()=>window.removeEventListener(`open-recording-recoveries`,e)},[f.refreshRecoverableDrafts]),c)return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[135] flex items-center justify-center bg-black/45 p-4`,role:`dialog`,"aria-modal":`true`,"aria-label":d.recoveredTitle,children:(0,$.jsxs)(`section`,{className:`flex h-[min(40rem,85vh)] w-[min(40rem,95vw)] flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,children:[(0,$.jsxs)(`header`,{className:`flex items-center justify-between border-b border-edge p-4`,children:[(0,$.jsx)(`h2`,{children:d.recoveredTitle}),(0,$.jsx)(X,{onClick:()=>l(!1),children:d.close})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4`,children:[q?(0,$.jsx)(`p`,{role:`alert`,className:`mb-3 text-danger`,children:q}):null,f.recoverableDrafts.length?null:(0,$.jsx)(`p`,{children:u===`zh`?`没有待恢复录音`:`No recordings to recover`}),f.recoverableDrafts.map(e=>(0,$.jsxs)(`article`,{className:`mb-3 rounded-lg border border-edge p-3`,children:[(0,$.jsxs)(`p`,{children:[new Date(e.startedAt).toLocaleString(),` · `,e.id.slice(0,8)]}),(0,$.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[e.gatewayUrl,` · `,e.state===`upload_failed`?d.status.failed:e.sealRequested?d.status.verifying:d.status.pending]}),(0,$.jsxs)(`p`,{className:`text-sm`,children:[u===`zh`?`本机已保存`:`Saved locally`,` · `,Xi(e)===null?u===`zh`?`时长待核实`:`duration unverified`:CJ(Xi(e)),` · `,CJ(e.durationMs),` `,u===`zh`?`录制时长(中断处可能缺失)`:`capture duration (may contain interruptions)`]}),e.epochs?.slice(1).map(e=>(0,$.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[u===`zh`?`中断后续录`:`Resumed after interruption`,` · `,new Date(e.previousEndedAt??e.startedAt).toLocaleString(),` → `,new Date(e.startedAt).toLocaleString()]},e.firstChunk)),(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Ge(e).then(()=>l(!1)),children:d.recover}),(0,$.jsx)(X,{disabled:H||R||Te||e.sealRequested,onClick:()=>void Ke(e),children:u===`zh`?`继续录制`:`Continue recording`}),(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Je(e),children:u===`zh`?`导出原音包`:`Export originals`}),(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void qe(e),children:u===`zh`?`丢弃本机副本`:`Discard local copy`})]})]},e.id))]})]})});if(!x)return B||ge||!f.recoverableDrafts[0]?null:(0,$.jsxs)(`aside`,{className:`fixed bottom-5 right-5 z-[125] w-[min(24rem,calc(100vw-2rem))] rounded-xl border border-edge bg-surface-overlay p-4 shadow-elevated`,children:[(0,$.jsxs)(`button`,{className:`text-sm font-medium text-fg`,onClick:()=>l(!0),children:[d.recoveredTitle,` (`,f.recoverableDrafts.length,`)`]}),(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:d.recoveredDescription}),(0,$.jsxs)(`div`,{className:`mt-3 flex justify-end gap-2`,children:[(0,$.jsx)(X,{variant:`ghost`,disabled:H||R||Te,onClick:()=>void qe(),children:d.discard}),(0,$.jsx)(X,{variant:`primary`,disabled:H||R||Te,onClick:()=>void Ge(),children:H?d.recovering:d.recover})]})]});if(C!=null)return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[130] flex items-center justify-center bg-black/45 p-4`,role:`dialog`,"aria-modal":`true`,children:(0,$.jsxs)(`div`,{className:`w-[min(28rem,calc(100vw-2rem))] rounded-xl border border-edge bg-surface-overlay p-5 shadow-elevated`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:d.consentTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:d.consent})]}),(0,$.jsx)(`button`,{type:`button`,className:`rounded-lg p-2 text-fg-muted hover:bg-surface-hover`,onClick:()=>{O(null),A(null),S(!1)},children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})})]}),q?(0,$.jsx)(`p`,{className:`mt-3 text-sm text-danger`,children:q}):null,(0,$.jsxs)(X,{variant:`primary`,className:`mt-5 w-full`,disabled:g,onClick:()=>void Ve(),children:[(0,$.jsx)(Ia,{className:`size-4`,"aria-hidden":!0}),k?u===`zh`?`确认并同步已有录音`:`Confirm and sync recording`:d.consentAction]})]})});if(g&&![`recording`,`paused`,`waiting_for_audio`,`requesting_permission`].includes(f.phase))return(0,$.jsx)(Jq,{compact:v,onCompactChange:y,language:u,title:u===`zh`?`准备录音`:`Preparing to record`,children:(0,$.jsxs)(`div`,{className:`space-y-3 p-4`,role:`status`,children:[(0,$.jsx)($o,{className:`h-7 w-24`}),(0,$.jsx)($o,{className:`h-3 w-3/4`})]})});let Ye=[`recording`,`paused`,`requesting_permission`,`waiting_for_audio`].includes(f.phase);if(!Ye&&(R||ge||f.phase===`stopping`||f.phase===`error`)){let e=xe(N,we.localComplete?`complete`:pe?`unknown`:f.phase===`stopping`?`saving`:(f.draft??ge)?.chunkCount?`partial`:`failed`,we.sync),t=async e=>{if(!(o||R||H)){s(!0),re(null);try{e===`sync`||e===`recover`?await Ge(f.draft??ge??void 0):N&&F(e===`analyze`?await D(w(`/api/discussions/${encodeURIComponent(N.discussion.id)}/organize`),{method:`POST`,body:`{}`}):await fe(N.discussion.id,e===`regenerate`?`from_audio`:`resume`))}catch(e){re(String(e))}finally{s(!1)}}};return(0,$.jsx)(Jq,{compact:v,onCompactChange:y,language:u,title:u===`zh`?`录音已结束`:`Recording ended`,subtitle:CJ(N?.discussion.durationMs??ge?.durationMs??f.elapsedMs),children:(0,$.jsx)(`div`,{className:`p-3`,children:(0,$.jsxs)(le,{input:e,zh:u===`zh`,compact:v,busy:o||R||H,onRetry:e=>void t(e),children:[i?(0,$.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{children:u===`zh`?`重点同步未完成,原音和笔记处理不受影响。`:`Highlights are not synced yet. Audio and note processing are unaffected.`}),(0,$.jsx)(X,{disabled:o||R||H,onClick:()=>void(async()=>{if(!(!N||!ge||o)){s(!0);try{await ve(ge.id,N.discussion.id),a(!1),N.discussion.audioAttachmentId&&!N.discussion.audioDeletedAt&&(await f.discard(ge.id),he(!0))}catch(e){re(String(e))}finally{s(!1)}}})(),children:u===`zh`?`重试重点同步`:`Retry highlights`})]}):null,q?(0,$.jsxs)(`details`,{className:`text-xs text-danger`,children:[(0,$.jsx)(`summary`,{children:u===`zh`?`操作未完成,查看详情`:`Action incomplete. View details`}),q]}):null,(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[!pe&&f.draft&&f.draft.saveOutcome!==`complete`&&!f.draft.sealRequested&&!R?(0,$.jsx)(X,{disabled:H||o,onClick:()=>void Ke(f.draft),children:u===`zh`?`继续录制`:`Continue recording`}):null,N?(0,$.jsx)(X,{onClick:Ue,children:d.openNote}):null,!pe&&f.draft?.chunkCount&&!R?(0,$.jsx)(X,{onClick:()=>void Je(f.draft),children:u===`zh`?`导出已录内容`:`Export saved audio`}):null,we.localComplete||e.audioAvailable||e.localSave===`failed`?(0,$.jsx)(X,{onClick:()=>S(!1),children:e.localSave===`failed`?d.close:u===`zh`?`稍后查看`:`View later`}):null]})]})})})}let Xe=N?.discussion.projectId&&N.discussion.projectInferenceSource!==`context`,Ze=u===`zh`,Qe=we.capture===`recording`?Ze?`录音中`:`Recording`:d.status[we.capture],$e=N?.note.title&&!/^Discussion [·•]/.test(N.note.title)?N.note.title:Ze?`语音笔记`:`Voice note`,et=e=>(0,$.jsxs)($.Fragment,{children:[f.phase===`recording`?(0,$.jsxs)(X,{className:e?`size-10 shrink-0 px-0 shadow-none`:`min-w-0 whitespace-nowrap shadow-none`,title:Ze?`标重点`:`Highlight`,"aria-label":Ze?`标重点`:`Highlight`,onClick:()=>void f.mark(),children:[(0,$.jsx)(oe,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:Ze?`标重点`:`Highlight`]}):null,f.phase===`recording`||f.phase===`waiting_for_audio`?(0,$.jsxs)(X,{className:e?`size-10 shrink-0 px-0 shadow-none`:`min-w-0 whitespace-nowrap shadow-none`,"aria-label":d.pause,title:d.pause,onClick:f.pause,children:[(0,$.jsx)(eo,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:d.pause]}):null,f.phase===`paused`?(0,$.jsxs)(X,{className:e?`size-10 shrink-0 px-0 shadow-none`:`min-w-0 whitespace-nowrap shadow-none`,"aria-label":d.resume,title:d.resume,onClick:f.resume,children:[(0,$.jsx)(lo,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:d.resume]}):null,[`recording`,`waiting_for_audio`,`paused`].includes(f.phase)?(0,$.jsxs)(X,{variant:`primary`,className:e?`size-10 shrink-0 px-0`:`min-w-0 whitespace-nowrap`,"aria-label":d.stop,title:d.stop,disabled:R,onClick:()=>void He(),children:[(0,$.jsx)(Fo,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:d.stop]}):null]}),tt=q??f.error??f.markerError??(Se&&we.sync===`failed`?ne:null),nt=we.capture===`interrupted`?Ze?`录音已中断,请展开查看已保存内容。`:`Recording interrupted. Review the saved content.`:f.markerError?Ze?`重点未能保存,请稍后重试。`:`Highlight could not be saved. Try again.`:we.sync===`failed`?Ze?`暂时无法同步,请稍后重试。`:`Sync is unavailable. Please try again later.`:Ze?`操作未完成,请查看详情。`:`Could not complete this action. View details.`;return(0,$.jsx)(Jq,{compact:v,onCompactChange:y,language:u,title:v?(0,$.jsx)(`span`,{className:`font-mono`,children:CJ(f.elapsedMs)}):(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 shrink-0 rounded-full ${we.capture===`recording`?`bg-danger`:`bg-accent`}`,"aria-hidden":!0}),Qe]}),subtitle:v?Qe:$e,compactActions:et(!0),children:v?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Qq,{status:we,language:u,compact:!0}),we.capture===`interrupted`||tt?(0,$.jsx)(`p`,{role:`alert`,className:`px-3 pb-2 text-xs text-danger`,children:nt}):null,f.markerMessage?(0,$.jsx)(`p`,{role:`status`,className:`px-3 pb-2 text-xs text-accent-fg`,children:Ze?`已标记重点`:`Highlight saved`}):null]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-3 px-4 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,$.jsx)(`p`,{className:`font-mono text-[2.5rem] leading-none tabular-nums tracking-tight text-fg`,children:CJ(f.elapsedMs)}),we.capture===`recording`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-fg-muted`,children:[f.inputLevel==null?null:(0,$.jsx)(`div`,{role:`meter`,"aria-label":d.status.level,"aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":f.inputLevel,className:`flex h-6 items-center gap-0.5`,children:[0,1,2,3,4].map(e=>(0,$.jsx)(`span`,{className:`w-1 rounded-full ${f.inputLevel>e*.12?`bg-accent`:`bg-surface-active`}`,style:{height:6+Math.min(1,f.inputLevel*3)*(e%2?10:18)}},e))}),(0,$.jsx)(`span`,{children:f.inputLevel==null?d.status.levelUnknown:Ze?`声音输入`:`Sound input`})]}):null]}),(0,$.jsx)(Qq,{status:we,language:u}),we.sync===`offline`?(0,$.jsx)(`p`,{role:`status`,className:`rounded-lg bg-surface-inset px-3 py-2 text-xs leading-5 text-fg-muted`,children:Ze?`离线录音,联网后自动同步。`:`Recording offline. Sync resumes when connected.`}):null,we.ai===`textDelayed`?(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:d.status.textDelayed}):null,(0,$.jsxs)(`details`,{className:`group rounded-xl bg-surface-inset px-3 py-2.5`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer text-xs font-medium text-fg-muted outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:Ze?`查看实时文字`:`Live transcript`}),(0,$.jsx)(`div`,{className:`mt-2 max-h-32 overflow-y-auto whitespace-pre-wrap text-sm leading-6 text-fg`,children:I?.text||(f.liveTranscriptionAvailable?Ze?`说话后,文字会陆续显示。`:`Text will appear as you speak.`:d.liveUnavailable)})]}),Xe?(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{children:d.projectLinked}),(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex min-h-8 shrink-0 items-center gap-1 text-accent-fg`,onClick:()=>void We(),children:[(0,$.jsx)(yn,{className:`size-3`,"aria-hidden":!0}),d.undo]})]}):null,R&&U>0?(0,$.jsx)(`div`,{role:`progressbar`,"aria-label":Ze?`备份录音`:`Recording backup`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(U),className:`h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full bg-accent motion-safe:transition-[width]`,style:{width:`${U}%`}})}):null,f.markerMessage?(0,$.jsx)(`p`,{role:`status`,className:`text-xs text-accent-fg`,children:Ze?`已标记重点,可稍后回听。`:`Highlight saved for review.`}):null,tt?(0,$.jsx)(`div`,{role:`alert`,children:(0,$.jsxs)(`details`,{className:`text-sm leading-5 text-danger`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer`,children:nt}),(0,$.jsx)(`p`,{className:`mt-2 break-words text-xs text-fg-muted`,children:tt})]})}):null]}),(0,$.jsxs)(`footer`,{className:`space-y-2 border-t border-edge-subtle px-4 py-3`,children:[(0,$.jsx)(`div`,{className:`grid grid-flow-col auto-cols-fr gap-2`,children:et(!1)}),(f.phase===`error`||f.phase===`stopped`)&&f.draft&&!R?(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Ge(f.draft),children:d.recover}),(0,$.jsx)(X,{disabled:H||R||Te||f.draft.sealRequested,onClick:()=>void Ke(f.draft),children:Ze?`继续录制`:`Continue recording`}),(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Je(f.draft),children:Ze?`导出原音包`:`Export originals`})]}):null,(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{className:`whitespace-nowrap`,children:d.maxDuration}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[N?(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex min-h-9 items-center gap-1 whitespace-nowrap text-accent-fg`,onClick:Ue,children:[(0,$.jsx)(mi,{className:`size-3.5`,"aria-hidden":!0}),d.openNote]}):null,!Ye&&(!R||we.localComplete)?(0,$.jsx)(`button`,{type:`button`,className:`min-h-9 rounded px-2 hover:bg-surface-hover`,"aria-label":d.close,onClick:()=>S(!1),children:d.close}):null]})]})]})]})})}var TJ=4e3;function EJ(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=typeof t.conversationId==`string`?t.conversationId.trim():``,r=typeof t.runId==`string`?t.runId.trim():``;return n&&r?{conversationId:n,runId:r}:null}function DJ(e){let t=EJ(e);if(!t||!e||typeof e!=`object`)return null;let n=e.status;return n!==`success`&&n!==`error`&&n!==`cancelled`&&n!==`suspended`?null:{...t,status:n}}async function OJ(){let e=await x(w(`/api/session-runs`));if(!e.ok)throw Error(`Active session runs failed (${e.status})`);let t=await e.json();if(!Array.isArray(t.payload?.runs))throw Error(`Active session runs response is invalid`);return t.payload.runs.map(EJ).filter(e=>!!e)}function kJ(e){window.dispatchEvent(new CustomEvent(`session-transcript-updated`,{detail:{key:e}}))}function AJ(){let e=!1,t,n,r=new Map,i=({conversationId:e,runId:t})=>`${e}\u0000${t}`,a=({conversationId:e,runId:t},n=!1)=>{r.has(i({conversationId:e,runId:t}))||(zs(e)!==t&&Us(e,t),Ms.setResumeRunId(e,t),ht(e),n&&window.dispatchEvent(new CustomEvent(`run-started`,{detail:{conversationId:e,runId:t}})))},o=({conversationId:e,runId:t})=>{let n=Ms.reconcileInactive(e,t),r=Ls(e,t);!n&&r&&Is.getState().clearStreamingState(e),(n||r)&&(Oe(e),kJ(e))},s=({conversationId:e,runId:t,status:n})=>{r.set(i({conversationId:e,runId:t}),Date.now());let a=Ms.reconcileTerminal(e,t,n),o=Ls(e,t);if(!a&&o){Is.getState().clearStreamingState(e);let t=Is.getState().focusedConversationId===e;n===`error`?Re(e,!t):n===`suspended`?Ce(e):n===`success`?De(e,!t):Oe(e),kJ(e)}},c=()=>{e||t!==void 0||qs().length===0||(t=window.setTimeout(()=>{t=void 0,l()},TJ))},l=()=>{if(n)return n;let t=qs();return n=OJ().then(n=>{if(e)return;let i=Date.now()-10*6e4;for(let[e,t]of r)t<i&&r.delete(e);let s=new Map(n.map(e=>[e.conversationId,e.runId])),c=new Map(t.map(e=>[e.conversationId,e.runId]));for(let e of n){let t=zs(e.conversationId),n=c.get(e.conversationId);t&&t!==n&&t!==e.runId||a(e,!0)}for(let e of t)s.get(e.conversationId)!==e.runId&&o(e)}).catch(()=>{}).finally(()=>{n=void 0,c()}),n},u=e=>{let t=EJ(e.detail);t&&(a(t),c())},d=e=>{let t=DJ(e.detail);t&&s(t)},f=e=>{let t=EJ(e.detail);t&&(r.set(i(t),Date.now()),o(t))},p=()=>void l();return window.addEventListener(`session-input-interrupt`,f),window.addEventListener(`run-started`,u),window.addEventListener(`run-completed`,d),window.addEventListener(`agent-run-ended`,d),window.addEventListener(`gateway-realtime-connected`,p),l(),()=>{e=!0,t!==void 0&&window.clearTimeout(t),window.removeEventListener(`session-input-interrupt`,f),window.removeEventListener(`run-started`,u),window.removeEventListener(`run-completed`,d),window.removeEventListener(`agent-run-ended`,d),window.removeEventListener(`gateway-realtime-connected`,p)}}var jJ=new Set([`automation-chat-agents`,`channel-routing-agents`,`gateway-chat-agents`,`picker-agents-list`,`settings-gateway-agents`,`setup-checklist-agents`]);function MJ(e){let t=Array.isArray(e)?e[0]:e;return typeof t==`string`&&jJ.has(t)}function NJ(){let e=(0,Q.c)(3),t=T(RJ),n;e[0]===t?n=e[1]:(n=[t],e[0]=t,e[1]=n),(0,Z.useEffect)(LJ,n);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[2]=r):r=e[2],(0,Z.useEffect)(PJ,r)}function PJ(){let e=IJ,t=FJ;return window.addEventListener(`online`,e),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(`online`,e),document.removeEventListener(`visibilitychange`,t)}}function FJ(){document.visibilityState===`visible`&&Ec()}function IJ(){return Ec()}function LJ(){return wc()}function RJ(e){return e.conversationId}function zJ(e){let t=new Set;return(n,r)=>{let i=Xs.safeParse(r);if(!i.success)return;let a=i.data;n!==`resources:${a.kind}s`||t.has(a.eventId)||(t.add(a.eventId),t.size>1024&&t.delete(t.values().next().value),e(a))}}function BJ(e,t){let n=Array.isArray(e)?e[0]:e;return typeof n==`string`&&(n===t||n.startsWith(`${t}-`)||n.startsWith(`${t}s`))}function VJ(){NJ();let{mutate:e}=ac(),t=T(e=>e.conversationId);return(0,Z.useEffect)(()=>ec(),[]),(0,Z.useEffect)(()=>AJ(),[]),(0,Z.useEffect)(()=>{let n=(t,n)=>{e(e=>BJ(e,t)),t===`project`&&window.dispatchEvent(new CustomEvent(`project-resource-changed`,{detail:{id:n}})),t===`task`&&window.dispatchEvent(new CustomEvent(`task-updated`,{detail:{id:n}}))},r=zJ(e=>{e.kind!==`note`&&e.kind!==`task`&&e.kind!==`project`||(n(e.kind,e.id),e.kind===`note`&&window.dispatchEvent(new CustomEvent(`note-updated`,{detail:{noteId:e.id}})))}),i=0,a=[],o=async()=>{let e=++i;a.forEach(e=>e()),a=[];try{let{capabilities:t}=await D(w(`/api/capabilities/operations`));if(e!==i)return;a=[`note`,`task`,`project`].filter(e=>t.some(t=>t.id===`xopc.${e}s.list`)).map(e=>{let t=bc(`resources:${e}s`,{onEvent:e=>{e.event===`resource.changed`&&r(e.topic,e.data)},onGap:()=>n(e)},0);return n(e),t})}catch{}},s=()=>{o()};return t&&o(),window.addEventListener(`gateway-realtime-connected`,s),()=>{i++,a.forEach(e=>e()),window.removeEventListener(`gateway-realtime-connected`,s)}},[e,t]),(0,Z.useEffect)(()=>{let t=()=>{Ku(),e(MJ)},n=e=>{RK();let t=pc(e.detail);t===`skills`?Ju():t===`agents`&&Ku()},r=t=>{let n=t.detail?.topic;(n===`gateway`||n===`sessions`)&&e(()=>!0)};return window.addEventListener(`agent-catalog`,t),window.addEventListener(`config-reload`,n),window.addEventListener(`realtime-gap`,r),()=>{window.removeEventListener(`agent-catalog`,t),window.removeEventListener(`config-reload`,n),window.removeEventListener(`realtime-gap`,r)}},[e]),null}async function HJ(e){let t=window.electronAPI?.system;if(!Vl()||!t?.showProductNotification)return!1;let n=await t.getBehavior().catch(()=>null);if(!n||!tn({notification:e,preferences:{enabled:n.notifyEnabled,completed:!0,failed:!0},permissionGranted:!0,appFocused:e.waitId?Qt(e):nn(e),alreadyDelivered:$t(e.id)}).notify)return!1;let r=await t.showProductNotification({id:e.id,title:e.title,body:e.body,target:e.target,...e.waitId&&!Qt(e)?{allowWhenFocused:!0}:{}}).catch(()=>null);return r?.ok&&r.outcome===`shown`?(rn(e.id),!0):!1}var UJ=`xopc.notifications.cursor.v1`,WJ=`xopc.notifications.consumer.v1`;function GJ(e){try{return window.localStorage.getItem(e)}catch{return null}}function KJ(e,t){try{window.localStorage.setItem(e,t)}catch{}}function qJ(){return GJ(UJ)}function JJ(e){KJ(UJ,e)}function YJ(){let e=GJ(WJ);if(e)return e;let t=globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`;return KJ(WJ,t),t}async function XJ(){let e=[],t=qJ();for(let n=0;n<10;n+=1){let n=new URLSearchParams({since:String(Date.now()-5*6e4),limit:`100`});t&&n.set(`after`,t);let r=await x(`/api/notifications?${n}`);if(!r.ok)break;let i=await r.json().catch(()=>null);if(!Array.isArray(i?.items))break;let a=i.items.flatMap(e=>{let t=lz.safeParse(e);return t.success?[t.data]:[]});if(e.push(...a),t=a.at(-1)?.id??t,i.items.length<100||a.length===0)break}return e}async function ZJ(e){await x(`/api/notifications/${encodeURIComponent(e)}/ack`,{method:`POST`,body:JSON.stringify({consumerId:YJ(),surface:Vl()?`electron`:`web`})}).catch(()=>null)}async function QJ(e){if(e.type!==`chat.needs_input`)return!0;if(e.target.kind!==`chat`||typeof e.payload.waitId!=`string`)return!1;let t=await x(`/api/sessions/${encodeURIComponent(e.target.conversationId)}/clarification`);if(t.status===404)return!1;if(!t.ok)throw Error(`Could not refresh clarification notification`);let n=(await t.json()).payload;return n.transcriptId===e.payload.transcriptId&&n.clarification?.id===e.payload.waitId&&n.clarification.status===`open`&&(n.clarification.expiresAt===void 0||n.clarification.expiresAt>Date.now())}function $J(e){let t=lz.safeParse(e);return t.success?t.data:null}function eY(e,t){let n=uz(e,t),r=e.type===`chat.failed`||e.type===`task.blocked`||e.type===`task.failed`||e.type===`task.needs_input`||e.type===`automation.failed`||e.type===`work_discovery.failed`,i=e.target.kind===`automation_run`?`automation`:e.target.kind===`work_discovery`?`understanding`:e.target.kind;return{systemAllowed:e.payload.deliveryMode!==`auto`&&(!e.payload.deliveryChannel||[`all`,`browser`].includes(String(e.payload.deliveryChannel))),id:e.id,title:n.localizedTitle,body:n.localizedBody??n.localizedTitle,route:dz(e.target,`web`),target:e.target,...e.type===`chat.needs_input`&&typeof e.payload.waitId==`string`?{waitId:e.payload.waitId}:{},status:e.type===`chat.needs_input`||e.type===`task.needs_input`?`attention`:r?`error`:`success`,source:i}}function tY(){let e=(0,Q.c)(3),t=E(oY),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=!0,n=null,r=new Set,i=new Map,a=Promise.resolve(),o=(n,o,s)=>{let c=o===void 0||o,l=s===void 0||s;return a=a.catch(aY).then(async()=>{if(!e)return;let a=$J(n);if(!a)return;if(r.has(a.id)){l&&JJ(a.id);return}let o=await QJ(a);if(!e)return;if(r.add(a.id),!o){l&&JJ(a.id);return}let s=eY(a,t);s.waitId&&i.set(s.waitId,a.id),(s.waitId?Qt(s):nn(s))||_l({tone:s.status===`attention`?`warning`:s.status===`success`?`success`:`error`,title:s.title,message:s.body,source:s.source,href:s.route,dedupeKey:s.id}),c&&(a.type!==`chat.needs_input`||a.createdAt>=Date.now()-3e5)&&(HJ(s),an(s)),l&&JJ(a.id),ZJ(a.id)}),a},s=()=>n||(n=XJ().then(async t=>{if(e){let e=Date.now()-3e5;for(let n of t)await o(n,n.createdAt>=e)}}).catch(iY).finally(()=>{n=null}),n),c=e=>{o(e.detail,!0,!1).catch(rY),s().then(()=>s())},l=()=>void s(),u=e=>{let t=e.detail;if(!t||t.status===`open`)return;let n=i.get(t.id);if(!n)return;let r=gl.getState();for(let e of r.items)e.dedupeKey===n&&r.remove(e.id);i.delete(t.id)};window.addEventListener(`clarification-updated`,u),window.addEventListener(`notification-created`,c),window.addEventListener(`realtime-gap`,l),window.addEventListener(`gateway-realtime-connected`,l),window.addEventListener(`online`,l),window.addEventListener(`focus`,l),s();let d=nY;return navigator.serviceWorker?.addEventListener(`message`,d),()=>{e=!1,window.removeEventListener(`clarification-updated`,u),window.removeEventListener(`notification-created`,c),window.removeEventListener(`realtime-gap`,l),window.removeEventListener(`gateway-realtime-connected`,l),window.removeEventListener(`online`,l),window.removeEventListener(`focus`,l),navigator.serviceWorker?.removeEventListener(`message`,d)}},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function nY(e){let t=e.data;t?.type!==`xopc:notification-click`||typeof t.route!=`string`||t.route.startsWith(`/`)&&!t.route.startsWith(`//`)&&(window.location.hash=t.route)}function rY(){}function iY(){}function aY(){}function oY(e){return e.language}async function sY(e){let t=await D(w(`/api/support/report`),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});return{report:t.report,investigationPrompt:t.investigationPrompt}}function cY(e){let t=new Date(e.capturedAt).toISOString().replace(/[:.]/g,`-`),n=new Blob([JSON.stringify(e,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`xopc-diagnostics-${t}.json`,i.click(),URL.revokeObjectURL(r)}function lY(e,t){let n=6e3,r=e.markdown.length<=n?e.markdown:`${e.markdown.slice(0,n)}\n\n---\n${t}`;return`https://github.com/xopcai/xopc/issues/new?${new URLSearchParams({title:e.title,body:r}).toString()}`}async function uY(e){let t=window.electronAPI?.shell?.openExternalUrl;if(t)try{return(await t(e)).ok}catch{return!1}return window.open(e,`_blank`,`noopener,noreferrer`)!==null}function dY(e){let t=new TextEncoder().encode(e),n=``,r=32768;for(let e=0;e<t.length;e+=r)n+=String.fromCharCode(...t.subarray(e,e+r));return{type:`file`,mimeType:`text/markdown`,data:btoa(n),name:`xopc-diagnostics.md`,size:t.byteLength}}async function fY(e,t,n={}){let r=n.fetch??D,i=n.create?await n.create():(await new Js().createSession({agentId:`main`})).key;return await(n.send??tc)(i,t,[dY(e.markdown)]),await r(w(`/api/sessions/${encodeURIComponent(i)}`),{method:`PATCH`,body:JSON.stringify({name:e.title,tags:[`support`],replaceTags:!0,customData:{kind:`support-investigation`,supportReportCapturedAt:e.capturedAt}})}).catch(()=>void 0),i}function pY({open:e,onOpenChange:t,seed:n}){let r=P(E(e=>e.language)).supportReport,i=(0,Z.useRef)(null),[a,o]=(0,Z.useState)(``),[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(null),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{e&&(o(n?.problem??``),c(n?.reproduction??``),u(n?.expected??``),f(null),m(``),g(!1),v(!1),b(null),S(null))},[e,n]);async function C(){let e=a.trim();if(!e){b(r.problemRequired);return}g(!0),b(null),S(null);try{let t=await sY({...n,problem:e,reproduction:s.trim()||void 0,expected:l.trim()||void 0,occurredAt:n?.occurredAt??new Date().toISOString(),clientContext:{currentPage:window.location.href,surface:window.electronAPI?`electron`:`web`,userAgent:navigator.userAgent,...n?.clientContext}});f(t.report),m(t.investigationPrompt)}catch(e){b(e instanceof Error?e.message:r.collectFailed)}finally{g(!1)}}async function w(){if(!d)return!1;let e=await il(d.markdown);return S(e?r.copied:r.copyFailed),e||(i.current?.focus(),i.current?.select()),e}async function T(){d&&(d.markdown.length>6e3&&await w(),await uY(lY(d,r.githubTruncated))||b(r.openFailed))}async function D(){if(!(!d||!p)){v(!0),b(null);try{let e=await fY(d,p);t(!1),window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{conversationId:e}}))}catch(e){b(e instanceof Error?e.message:r.sessionFailed)}finally{v(!1)}}}return(0,$.jsx)(ee,{open:e,onOpenChange:t,children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[220] bg-scrim`}),(0,$.jsxs)(V,{className:Y(`xopc-dialog-content fixed left-1/2 top-1/2 z-[221] flex h-[min(42rem,calc(100vh-2rem))] w-[min(42rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,`rounded-2xl border border-edge bg-surface-overlay shadow-popover dark:border-edge`),children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge px-5 py-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:r.title}),(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:r.subtitle})]}),(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":r.close,children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})})})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:[h?(0,$.jsxs)(`div`,{className:`space-y-4`,"aria-label":r.collecting,children:[(0,$.jsx)($o,{className:`h-20 w-full`}),(0,$.jsx)($o,{className:`h-24 w-full`}),(0,$.jsx)($o,{className:`h-32 w-full`})]}):d?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-3 rounded-xl bg-accent-soft px-3 py-2.5 text-sm text-accent-fg`,children:[(0,$.jsx)(Oo,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`font-medium`,children:r.ready}),(0,$.jsx)(`p`,{className:`mt-0.5 text-xs leading-5`,children:r.readyDetail.replace(`{{checks}}`,String(d.doctor.length)).replace(`{{logs}}`,String(d.logs.length)).replace(`{{redactions}}`,String(d.redaction.replacements))})]})]}),(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-report-preview`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.preview}),(0,$.jsx)(`textarea`,{ref:i,id:`support-report-preview`,value:d.markdown,readOnly:!0,className:`h-96 w-full resize-none rounded-xl border border-edge bg-surface-base p-3 font-mono text-xs leading-5 text-fg outline-none focus:border-accent`})]}),(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-xs leading-5 text-fg-muted`,children:[(0,$.jsx)(Mo,{className:`mt-0.5 size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),r.investigationHint]})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-problem`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.problem}),(0,$.jsx)(`textarea`,{id:`support-problem`,value:a,onChange:e=>o(e.target.value),placeholder:r.problemPlaceholder,className:`min-h-28 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent`,autoFocus:!0})]}),(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-reproduction`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.reproduction}),(0,$.jsx)(`textarea`,{id:`support-reproduction`,value:s,onChange:e=>c(e.target.value),placeholder:r.reproductionPlaceholder,className:`min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent`})]}),(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-expected`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.expected}),(0,$.jsx)(`textarea`,{id:`support-expected`,value:l,onChange:e=>u(e.target.value),placeholder:r.expectedPlaceholder,className:`min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent`})]}),(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-xs leading-5 text-fg-muted`,children:[(0,$.jsx)(Oo,{className:`mt-0.5 size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),r.privacy]})]}),y?(0,$.jsx)(`p`,{className:`mt-4 text-sm text-warning`,role:`alert`,children:y}):null,x?(0,$.jsxs)(`p`,{className:`mt-4 flex items-center gap-2 text-sm text-accent-fg`,role:`status`,children:[(0,$.jsx)(Vn,{className:`size-4`,"aria-hidden":!0}),x]}):null]}),(0,$.jsx)(`footer`,{className:`flex shrink-0 flex-wrap justify-end gap-2 border-t border-edge px-5 py-3`,children:d?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(X,{variant:`ghost`,disabled:_,onClick:()=>{f(null),m(``)},children:r.back}),(0,$.jsxs)(X,{onClick:()=>void w(),children:[(0,$.jsx)(bv,{className:`size-4`,"aria-hidden":!0}),r.copy]}),(0,$.jsxs)(X,{onClick:()=>cY(d),children:[(0,$.jsx)(Ur,{className:`size-4`,"aria-hidden":!0}),r.download]}),(0,$.jsxs)(X,{onClick:()=>void T(),children:[(0,$.jsx)(Kr,{className:`size-4`,"aria-hidden":!0}),r.submit]}),(0,$.jsxs)(X,{variant:`primary`,disabled:_,onClick:()=>void D(),children:[_?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(Mo,{className:`size-4`,"aria-hidden":!0}),_?r.startingInvestigation:r.startInvestigation]})]}):(0,$.jsxs)(X,{variant:`primary`,disabled:h,onClick:()=>void C(),children:[h?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,h?r.collecting:r.collect]})})]})]})})}function mY(e){if(!e.startsWith(`/chat/`)||e.startsWith(`/chat/task/`))return;let t=e.slice(6);if(!(!t||t===`new`))try{return decodeURIComponent(t)}catch{return}}function hY(){let e=(0,Q.c)(6),{pathname:t}=p(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(),o,s;e[0]===t?(o=e[1],s=e[2]):(o=()=>{let e=e=>{let n=e.detail??{};a({conversationId:mY(t),...n}),r(!0)};return window.addEventListener(eH,e),()=>window.removeEventListener(eH,e)},s=[t],e[0]=t,e[1]=o,e[2]=s),(0,Z.useEffect)(o,s);let c;return e[3]!==n||e[4]!==i?(c=(0,$.jsx)(pY,{open:n,onOpenChange:r,seed:i}),e[3]=n,e[4]=i,e[5]=c):c=e[5],c}function gY(e){let t=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}var _Y=`inline-flex size-11 shrink-0 items-center justify-center rounded-full text-fg hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent motion-safe:transition-colors`;function vY(){let e=(0,Q.c)(29),t=E(bY)===`zh`,n=Xt(),r=ft(),[i,a]=(0,Z.useState)(!1),o=(0,Z.useId)(),s=n.source&&n.status!==`idle`,c=n.status===`preparing`,l=n.status===`playing`,u=n.status===`error`,d=n.status===`ended`,f=c?t?`正在准备语音`:`Preparing audio`:u?t?`朗读失败,请重试`:`Unable to play. Try again`:d?t?`播放完毕`:`Finished`:l?t?`正在朗读`:`Reading aloud`:t?`已暂停`:`Paused`,p;e[0]===n.source?p=e[1]:(p=e=>{let t=n.source?.targetId?document.getElementById(n.source.targetId):null;t&&(e.preventDefault(),t.scrollIntoView({behavior:`smooth`,block:`center`}))},e[0]=n.source,e[1]=p);let m=p,h;e[2]!==o||e[3]!==r||e[4]!==d||e[5]!==i||e[6]!==u||e[7]!==l||e[8]!==c||e[9]!==m||e[10]!==n||e[11]!==f||e[12]!==s||e[13]!==t?(h=s?(0,$.jsx)(`section`,{"aria-label":t?`语音播报`:`Read aloud`,className:Y(`shrink-0`,r?`pb-2`:`px-3 pb-[max(0.75rem,env(safe-area-inset-bottom))] pt-2`),children:(0,$.jsxs)(`div`,{className:`mx-auto w-full max-w-3xl overflow-hidden rounded-xl border border-edge bg-surface-overlay`,children:[(0,$.jsxs)(`div`,{className:`flex min-h-16 items-center gap-1 p-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>a(!i),"aria-expanded":i,"aria-controls":o,className:`flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-lg px-2 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:n.source?.title}),(0,$.jsxs)(`span`,{className:`block text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{role:`status`,children:f}),!u&&!c?(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[` · `,gY(n.currentTime)]}):null]})]}),(0,$.jsx)(Hn,{"aria-hidden":!0,className:Y(`size-4 shrink-0 text-fg-muted`,i&&`rotate-180`)})]}),(0,$.jsx)(`button`,{type:`button`,onClick:l?n.pause:n.resume,disabled:c,className:Y(_Y,`disabled:opacity-50`),"aria-label":d?t?`重新播放`:`Replay`:u?t?`重试朗读`:`Retry reading`:l?t?`暂停朗读`:`Pause reading`:t?`继续朗读`:`Resume reading`,children:c?(0,$.jsx)($o,{className:`size-5 rounded-full`}):u?(0,$.jsx)(yo,{className:`size-5`,"aria-hidden":!0}):l?(0,$.jsx)(eo,{className:`size-5`,"aria-hidden":!0}):(0,$.jsx)(lo,{className:`size-5`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{type:`button`,onClick:n.stop,className:_Y,"aria-label":t?`停止朗读`:`Stop reading`,children:(0,$.jsx)(Zo,{className:`size-5`,"aria-hidden":!0})})]}),n.durationComplete&&!i?(0,$.jsx)(`div`,{className:`h-0.5 bg-surface-active`,"aria-hidden":!0,children:(0,$.jsx)(`div`,{className:`h-full bg-accent`,style:{width:`${Math.min(100,n.currentTime/n.duration*100)}%`}})}):null,i?(0,$.jsxs)(`div`,{id:o,className:`space-y-3 border-t border-edge-subtle p-4`,children:[n.durationComplete?(0,$.jsx)(xY,{duration:n.duration,currentTime:n.currentTime,disabled:c,onSeek:n.seek,label:t?`播放进度`:`Playback position`},`${n.source?.type}:${n.source?.id}`):null,n.currentText?(0,$.jsx)(`p`,{className:`max-h-28 overflow-y-auto overscroll-contain whitespace-pre-wrap break-words text-sm text-fg-muted`,children:n.currentText}):null,n.source?.href?(0,$.jsx)(`a`,{href:n.source.href,onClick:m,className:`inline-flex min-h-11 items-center rounded-lg text-sm text-accent-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:t?`返回来源`:`Return to source`}):null,u?(0,$.jsx)(`p`,{role:`alert`,className:`break-words text-sm text-fg-muted`,children:n.error}):null,(0,$.jsx)(er,{contentClassName:`[&_button]:min-h-11`,value:String(n.rate),allowEmpty:!1,placeholder:`1×`,ariaLabel:t?`播放速度`:`Playback speed`,options:[.75,1,1.25,1.5,2].map(yY),triggerClassName:`min-h-11 w-28`,onChange:e=>n.setRate(Number(e))})]}):null]})}):null,e[2]=o,e[3]=r,e[4]=d,e[5]=i,e[6]=u,e[7]=l,e[8]=c,e[9]=m,e[10]=n,e[11]=f,e[12]=s,e[13]=t,e[14]=h):h=e[14];let g=h,_;e[15]!==r||e[16]!==g?(_=r?(0,wd.createPortal)(g,r):g,e[15]=r,e[16]=g,e[17]=_):_=e[17];let v=t?`使用在线朗读`:`Use online read aloud`,y=t?`朗读默认使用 Microsoft Edge 在线语音服务,待朗读文本会发送至 Microsoft 进行语音合成。`:`Read aloud uses Microsoft Edge online speech by default. The text will be sent to Microsoft for speech synthesis.`,b=t?`同意并朗读`:`Agree and read`,x=t?`取消`:`Cancel`,S;e[18]!==n.acceptConsent||e[19]!==n.consentRequired||e[20]!==n.declineConsent||e[21]!==v||e[22]!==y||e[23]!==b||e[24]!==x?(S=(0,$.jsx)(Tu,{open:n.consentRequired,title:v,description:y,confirmLabel:b,cancelLabel:x,onConfirm:n.acceptConsent,onCancel:n.declineConsent}),e[18]=n.acceptConsent,e[19]=n.consentRequired,e[20]=n.declineConsent,e[21]=v,e[22]=y,e[23]=b,e[24]=x,e[25]=S):S=e[25];let C;return e[26]!==_||e[27]!==S?(C=(0,$.jsxs)($.Fragment,{children:[_,S]}),e[26]=_,e[27]=S,e[28]=C):C=e[28],C}function yY(e){return{value:String(e),label:`${e}×`}}function bY(e){return e.language}function xY(e){let t=(0,Q.c)(25),{duration:n,currentTime:r,disabled:i,onSeek:a,label:o}=e,[s,c]=(0,Z.useState)(null),l;t[0]!==a||t[1]!==s?(l=()=>{s!==null&&(a(s),c(null))},t[0]=a,t[1]=s,t[2]=l):l=t[2];let u=l,d;t[3]===o?d=t[4]:(d=(0,$.jsx)(`span`,{children:o}),t[3]=o,t[4]=d);let f=s??r,p;t[5]===f?p=t[6]:(p=gY(f),t[5]=f,t[6]=p);let m;t[7]===n?m=t[8]:(m=gY(n),t[7]=n,t[8]=m);let h;t[9]!==p||t[10]!==m?(h=(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[p,` / `,m]}),t[9]=p,t[10]=m,t[11]=h):h=t[11];let g;t[12]!==d||t[13]!==h?(g=(0,$.jsxs)(`span`,{className:`flex justify-between gap-3`,children:[d,h]}),t[12]=d,t[13]=h,t[14]=g):g=t[14];let _=s??Math.min(r,n),v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>c(Number(e.target.value)),t[15]=v):v=t[15];let y;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>c(null),t[16]=y):y=t[16];let b;t[17]!==u||t[18]!==i||t[19]!==n||t[20]!==_?(b=(0,$.jsx)(`input`,{type:`range`,min:0,max:n,step:.1,value:_,disabled:i,onChange:v,onPointerUp:u,onKeyUp:u,onBlur:u,onPointerCancel:y,className:`block h-11 w-full accent-accent`}),t[17]=u,t[18]=i,t[19]=n,t[20]=_,t[21]=b):b=t[21];let x;return t[22]!==b||t[23]!==g?(x=(0,$.jsxs)(`label`,{className:`block text-xs text-fg-muted`,children:[g,b]}),t[22]=b,t[23]=g,t[24]=x):x=t[24],x}function SY(){let e=(0,Q.c)(11),t=b(),n=T(wY),r=$u(CY),i=(0,Z.useRef)(!1),a=(0,Z.useRef)(!1),o,s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=e=>{i.current=!!e.detail?.active};return window.addEventListener(id,e),()=>window.removeEventListener(id,e)},s=[],e[0]=o,e[1]=s):(o=e[0],s=e[1]),(0,Z.useEffect)(o,s);let c,l;e[2]!==t||e[3]!==n?(c=()=>{let e=window.electronAPI?.voiceInputHotkey;if(typeof e?.onEvent!=`function`)return;let r=e.onEvent(e=>{if(e===`press`){if(i.current||!n)return;a.current=!0}else{if(!a.current)return;a.current=!1}Yu(`xopc-voice-input-toggle`,document.querySelector(`[data-voice-input-scope="note"]`)?`note`:`chat`)||(e===`press`?(td(),t(`/chat`)):Qu())});return()=>{a.current=!1,r()}},l=[t,n],e[2]=t,e[3]=n,e[4]=c,e[5]=l):(c=e[4],l=e[5]),(0,Z.useEffect)(c,l);let u,d;return e[6]!==t||e[7]!==r||e[8]!==n?(u=()=>{let e=e=>{if(i.current||e.repeat||e.isComposing)return;let a=document.querySelector(`[data-voice-input-scope="note"]`)?`note`:`chat`;if(e.key===`Escape`){Yu(`xopc-voice-input-cancel`,a)&&(e.preventDefault(),e.stopPropagation());return}Xu(e,r)&&(e.preventDefault(),e.stopPropagation(),n&&(Yu(`xopc-voice-input-toggle`,a)||(td(),t(`/chat`))))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},d=[t,r,n],e[6]=t,e[7]=r,e[8]=n,e[9]=u,e[10]=d):(u=e[9],d=e[10]),(0,Z.useEffect)(u,d),null}function CY(e){return e.shortcut}function wY(e){return e.conversationId}var TY=[{value:`en`,label:`EN`},{value:`zh`,label:`中文`}];function EY(e){let t=(0,Q.c)(5),{value:n,onChange:r}=e,i;t[0]!==r||t[1]!==n?(i=TY.map(e=>{let t=e.value===n;return(0,$.jsx)(`button`,{type:`button`,"aria-pressed":t,className:Y(pd,`h-9 min-w-11 px-2`,t?Y(hd,`text-fg`):`text-fg-subtle hover:text-fg`),onClick:()=>r(e.value),children:e.label},e.value)}),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;return t[3]===i?a=t[4]:(a=(0,$.jsx)(bu,{className:md,role:`group`,"aria-label":`Language / 语言`,indicatorClassName:`rounded-pill bg-surface-panel shadow-sm dark:ring-1 dark:ring-edge-strong/40`,children:i}),t[3]=i,t[4]=a),a}var DY=new Set([`anthropic`,`deepseek`,`google`,`kimi-coding`,`minimax`,`openai`,`xopc-cloud`]);function OY(e){return DY.has(e)}function kY(e){let t=(0,Q.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===r?a=t[5]:(a=Y(`shrink-0`,r),t[4]=r,t[5]=a);let o;return t[6]!==n||t[7]!==i||t[8]!==a?(o=(0,$.jsx)(`svg`,{viewBox:`0 0 24 24`,xmlns:`http://www.w3.org/2000/svg`,className:a,...i,children:n}),t[6]=n,t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function AY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`#5786FE`,d:`M23.748 4.651c-.254-.124-.364.113-.512.233-.051.04-.094.09-.137.137-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.155-.708-.311-.955-.65-.172-.24-.219-.509-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.094.172.187.129.323-.082.28-.18.553-.266.833-.055.179-.137.218-.328.14a5.5 5.5 0 0 1-1.737-1.179c-.857-.828-1.631-1.743-2.597-2.46a12 12 0 0 0-.689-.47c-.985-.957.13-1.743.387-1.836.27-.098.094-.433-.778-.428-.872.003-1.67.295-2.687.685a3 3 0 0 1-.465.136 9.6 9.6 0 0 0-2.883-.101c-1.885.21-3.39 1.1-4.497 2.622C.082 8.776-.231 10.854.152 13.02c.403 2.284 1.568 4.175 3.36 5.653 1.857 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.132-.284 4.994-1.86.47.234.962.328 1.78.398.629.058 1.235-.031 1.705-.129.735-.155.684-.836.418-.961-2.155-1.004-1.682-.595-2.112-.926 1.095-1.295 2.768-3.598 3.284-6.733.05-.346.115-.834.108-1.114-.004-.171.035-.238.23-.257a4.2 4.2 0 0 0 1.545-.475c1.397-.763 1.96-2.016 2.093-3.517.02-.23-.004-.467-.247-.588M11.58 18.168c-2.088-1.642-3.101-2.183-3.52-2.16-.39.024-.32.472-.234.763.09.288.207.487.371.74.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.168-1.361-.801-2.5-1.86-3.301-3.306-.775-1.393-1.225-2.888-1.299-4.482-.02-.385.094-.522.477-.592a4.7 4.7 0 0 1 1.53-.038c2.131.311 3.946 1.264 5.467 2.774.868.86 1.525 1.887 2.202 2.89.72 1.066 1.494 2.082 2.48 2.915.348.291.626.513.892.677-.802.09-2.14.109-3.055-.615zm1.001-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .113.074.3.3 0 0 1 .086.214c0 .17-.136.307-.308.307a.303.303 0 0 1-.306-.307m3.11 1.596c-.2.081-.4.151-.591.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.551-.758a1.7 1.7 0 0 1 .015-.588c.07-.327-.007-.537-.238-.727-.188-.156-.426-.199-.689-.199a.6.6 0 0 1-.254-.078.253.253 0 0 1-.114-.358 1 1 0 0 1 .192-.21c.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.392.451.462.576.685.915.176.264.336.536.446.848.066.194-.02.353-.25.45`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(kY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function jY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`#E73562`,d:`M11.43 3.92a.86.86 0 1 0-1.718 0v14.236a1.999 1.999 0 0 1-3.997 0V9.022a.86.86 0 1 0-1.718 0v3.87a1.999 1.999 0 0 1-3.997 0V11.49a.57.57 0 0 1 1.139 0v1.404a.86.86 0 0 0 1.719 0V9.022a1.999 1.999 0 0 1 3.997 0v9.134a.86.86 0 0 0 1.719 0V3.92a1.998 1.998 0 1 1 3.996 0v11.788a.57.57 0 1 1-1.139 0zm10.572 3.105a2 2 0 0 0-1.999 1.997v7.63a.86.86 0 0 1-1.718 0V3.923a1.999 1.999 0 0 0-3.997 0v16.16a.86.86 0 0 1-1.719 0V18.08a.57.57 0 1 0-1.138 0v2a1.998 1.998 0 0 0 3.996 0V3.92a.86.86 0 0 1 1.719 0v12.73a1.999 1.999 0 0 0 3.996 0V9.023a.86.86 0 1 1 1.72 0v6.686a.57.57 0 0 0 1.138 0V9.022a2 2 0 0 0-1.998-1.997`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(kY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function MY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`currentColor`,d:`m1.053 16.91 9.538 2.55a21 20.981 0 0 0 .06 2.031l5.956 1.592a12 11.99 0 0 1-15.554-6.172m-1.02-5.79 11.352 3.035a21 20.981 0 0 0-.469 2.01l10.817 2.89a12 11.99 0 0 1-1.845 2.004L.658 15.918a12 11.99 0 0 1-.625-4.796m1.593-5.146L13.573 9.17a21 20.981 0 0 0-1.01 1.874l11.297 3.02a21 20.981 0 0 1-.67 2.362l-11.55-3.087L.125 10.26a12 11.99 0 0 1 1.499-4.285ZM6.067 1.58l11.285 3.016a21 20.981 0 0 0-1.688 1.719l7.824 2.091a21 20.981 0 0 1 .513 2.664L2.107 5.218a12 11.99 0 0 1 3.96-3.638M21.68 4.866 7.222 1.003A12 11.99 0 0 1 21.68 4.866`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(kY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function NY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`currentColor`,d:`M22.28 9.82a5.98 5.98 0 0 0-.516-4.91 6.04 6.04 0 0 0-6.51-2.9A6.06 6.06 0 0 0 4.98 4.18a5.98 5.98 0 0 0-3.99 2.9 6.04 6.04 0 0 0 .743 7.09 5.98 5.98 0 0 0 .511 4.91 6.05 6.05 0 0 0 6.51 2.9A5.98 5.98 0 0 0 13.26 24a6.05 6.05 0 0 0 5.77-4.20 5.98 5.98 0 0 0 3.99-2.9 6.05 6.05 0 0 0-.748-7.07zm-9.02 12.60a4.47 4.47 0 0 1-2.87-1.04l.142-.08 4.77-2.75a.795.79 0 0 0 .393-.681v-6.73l2.02 1.16a.071.07 0 0 1 .038.05v5.58a4.50 4.50 0 0 1-4.49 4.49zm-9.66-4.12a4.47 4.47 0 0 1-.535-3.01l.142.08 4.78 2.75a.771.77 0 0 0 .781 0l5.84-3.36v2.33a.08.08 0 0 1-.033.06L9.74 19.95a4.49 4.49 0 0 1-6.14-1.64zM2.34 7.89a4.48 4.48 0 0 1 2.36-1.97V11.6a.766.76 0 0 0 .388.67l5.81 3.35-2.02 1.16a.076.07 0 0 1-.071 0l-4.83-2.78A4.50 4.50 0 0 1 2.34 7.87zm16.59 3.85L13.10 8.36 15.11 7.2a.076.07 0 0 1 .071 0l4.83 2.79a4.49 4.49 0 0 1-.677 8.10v-5.67a.79.79 0 0 0-.407-.667zm2.01-3.02-.142-.085-4.77-2.78a.776.77 0 0 0-.785 0L9.40 9.23V6.89a.066.06 0 0 1 .028-.062l4.83-2.78a4.49 4.49 0 0 1 6.68 4.66zM8.30 12.86l-2.02-1.16a.08.08 0 0 1-.038-.057V6.07a4.49 4.49 0 0 1 7.37-3.45l-.142.08L8.70 5.45a.795.79 0 0 0-.393.68zm1.09-2.36 2.60-1.5 2.60 1.5v2.99l-2.59 1.5-2.60-1.5Z`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(kY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function PY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`#D4A27F`,d:`M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(kY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function FY(e){let t=(0,Q.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i,a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`gemini-grad`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`#4285F4`}),(0,$.jsx)(`stop`,{offset:`50%`,stopColor:`#9B72CB`}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`#D96570`})]})}),a=(0,$.jsx)(`path`,{fill:`url(#gemini-grad)`,d:`M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81`}),t[3]=i,t[4]=a):(i=t[3],a=t[4]);let o;return t[5]!==n||t[6]!==r?(o=(0,$.jsxs)(kY,{className:n,...r,children:[i,a]}),t[5]=n,t[6]=r,t[7]=o):o=t[7],o}function IY(e){let t=(0,Q.c)(22),{providerId:n,className:r}=e,i;t[0]===r?i=t[1]:(i={className:r,"aria-hidden":!0},t[0]=r,t[1]=i);let a=i;switch(n){case`xopc-cloud`:{let e;return t[2]===r?e=t[3]:(e=(0,$.jsx)(Sl,{className:r,"aria-hidden":!0}),t[2]=r,t[3]=e),e}case`deepseek`:{let e;return t[4]===a?e=t[5]:(e=(0,$.jsx)(AY,{...a}),t[4]=a,t[5]=e),e}case`minimax`:{let e;return t[6]===a?e=t[7]:(e=(0,$.jsx)(jY,{...a}),t[6]=a,t[7]=e),e}case`kimi-coding`:{let e;return t[8]===a?e=t[9]:(e=(0,$.jsx)(MY,{...a}),t[8]=a,t[9]=e),e}case`moonshotai`:case`moonshotai-cn`:{let e;return t[10]===a?e=t[11]:(e=(0,$.jsx)(MY,{...a}),t[10]=a,t[11]=e),e}case`openai`:{let e;return t[12]===a?e=t[13]:(e=(0,$.jsx)(NY,{...a}),t[12]=a,t[13]=e),e}case`anthropic`:{let e;return t[14]===a?e=t[15]:(e=(0,$.jsx)(PY,{...a}),t[14]=a,t[15]=e),e}case`google`:{let e;return t[16]===a?e=t[17]:(e=(0,$.jsx)(FY,{...a}),t[16]=a,t[17]=e),e}default:{let e;t[18]===r?e=t[19]:(e=Y(`flex items-center justify-center text-2xl`,r),t[18]=r,t[19]=e);let n;return t[20]===e?n=t[21]:(n=(0,$.jsx)(`span`,{className:e,children:`🤖`}),t[20]=e,t[21]=n),n}}}var LY={id:`xopc-cloud`,name:`XOPC Cloud`,category:`common`,supportsOAuth:!0,supportsApiKey:!1,configured:!1,onboardingFeatured:!0,hint:`Connect your XOPC account. No API key required.`},RY=[{id:`deepseek`,name:`DeepSeek`,category:`common`,supportsOAuth:!1,supportsApiKey:!0,configured:!1,onboardingFeatured:!0},{id:`openai`,name:`OpenAI`,category:`common`,supportsOAuth:!1,supportsApiKey:!0,configured:!1,onboardingFeatured:!0},{id:`anthropic`,name:`Anthropic`,category:`common`,supportsOAuth:!0,supportsApiKey:!0,configured:!1,onboardingFeatured:!0},{id:`google`,name:`Google AI`,category:`common`,supportsOAuth:!1,supportsApiKey:!0,configured:!1,onboardingFeatured:!0}],zY=new Map([LY,...RY].map((e,t)=>[e.id,t]));function BY(e,t){let n=e?.filter(e=>e.onboardingFeatured&&OY(e.id)),r=n?.length?n:RY;return(t?[e?.find(e=>e.id===`xopc-cloud`)??LY,...r.filter(e=>e.id!==`google`&&e.id!==`xopc-cloud`)]:r).slice().sort((e,t)=>(zY.get(e.id)??999)-(zY.get(t.id)??999))[0]}function VY(e){let t=e.recommendedModels?.map(e=>e.name||e.id).filter(Boolean).slice(0,2);return t?.length?t.join(`, `):e.hint}function HY(e){let t=(0,Q.c)(24),{onSelect:n,onBrowseProviders:r,disabled:i,browseDisabled:a}=e,o=i!==void 0&&i,s=a!==void 0&&a,c=E(UY),l;t[0]===c?l=t[1]:(l=P(c),t[0]=c,t[1]=l);let u=l.onboarding.providerRecommended,d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d={revalidateOnFocus:!1},t[2]=d):d=t[2];let{data:f}=oc(`onboarding-provider-meta`,gd,d),p;if(t[3]!==f||t[4]!==o||t[5]!==n||t[6]!==u){let e=BY(f,Vl());p=e?(0,$.jsxs)(`button`,{type:`button`,disabled:o,onClick:()=>n(e.id),className:`group flex w-full items-center gap-3.5 rounded-xl border border-accent/30 bg-accent-soft/45 p-3.5 text-left transition-[border-color,background-color] duration-200 hover:border-accent/55 hover:bg-accent-soft/65 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50 motion-reduce:transition-none`,children:[(0,$.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-[10px] border border-edge-subtle bg-surface-base/70`,children:(0,$.jsx)(IY,{providerId:e.id,className:`size-7`})}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`text-base font-semibold text-fg`,children:e.name}),(0,$.jsx)(`span`,{className:`rounded-full bg-accent px-2 py-0.5 text-[10px] font-semibold text-on-accent`,children:u})]}),(0,$.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:VY(e)})]}),(0,$.jsx)(Wn,{className:`size-4.5 shrink-0 text-accent-fg/80`,"aria-hidden":!0})]}):null,t[3]=f,t[4]=o,t[5]=n,t[6]=u,t[7]=p}else p=t[7];let m=o||s,h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-[10px] border border-edge-subtle bg-surface-panel text-fg-muted`,children:(0,$.jsx)(oa,{className:`size-5`,"aria-hidden":!0})}),t[8]=h):h=t[8];let g=c===`zh`?`连接我自己的模型服务`:`Connect my own model service`,_;t[9]===g?_=t[10]:(_=(0,$.jsx)(`span`,{className:`block text-base font-semibold text-fg`,children:g}),t[9]=g,t[10]=_);let v=s&&!o?c===`zh`?`正在加载可用的模型服务…`:`Loading available model services…`:c===`zh`?`使用自己的账号、API Key、本地模型或私有接口。`:`Use your own account, API key, local model, or private endpoint.`,y;t[11]===v?y=t[12]:(y=(0,$.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:v}),t[11]=v,t[12]=y);let b;t[13]!==y||t[14]!==_?(b=(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[_,y]}),t[13]=y,t[14]=_,t[15]=b):b=t[15];let x;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(Wn,{className:`size-4.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[16]=x):x=t[16];let S;t[17]!==r||t[18]!==b||t[19]!==m?(S=(0,$.jsxs)(`button`,{type:`button`,disabled:m,onClick:r,className:`mt-3 flex min-h-16 w-full items-center gap-3.5 rounded-xl border border-edge bg-surface-base/65 p-3.5 text-left transition-[border-color,background-color] duration-200 hover:border-edge-strong hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50 motion-reduce:transition-none`,children:[h,b,x]}),t[17]=r,t[18]=b,t[19]=m,t[20]=S):S=t[20];let C;return t[21]!==S||t[22]!==p?(C=(0,$.jsxs)(`div`,{children:[p,S]}),t[21]=S,t[22]=p,t[23]=C):C=t[23],C}function UY(e){return e.language}var WY={step:`callName`,selectedProvider:null,busy:!1,error:null,callName:``};function GY(e,t){switch(t.type){case`patch`:return{...e,...t.patch};case`prefillCallName`:return e.callName.trim()?e:{...e,callName:t.value}}}var KY=[`callName`,`provider`,`success`],qY=e=>KY.indexOf(e)+1;function JY(e){let t=(0,Q.c)(5),{step:n,label:r}=e,i=qY(n)-1,a;t[0]===i?a=t[1]:(a=KY.map((e,t)=>(0,$.jsx)(`span`,{className:Y(`h-1.5 rounded-full transition-[width,background-color] duration-200 motion-reduce:transition-none`,t===i?`w-5 bg-accent`:`w-1.5`,t<i?`bg-accent/45`:t>i?`bg-edge-strong`:void 0),"aria-hidden":!0},e)),t[0]=i,t[1]=a);let o;return t[2]!==r||t[3]!==a?(o=(0,$.jsx)(`div`,{className:`flex items-center gap-1.5`,"aria-label":r,children:a}),t[2]=r,t[3]=a,t[4]=o):o=t[4],o}function YY({onComplete:e,onDismiss:t,canDismiss:n=!0,onPendingChange:r}){let i=E(e=>e.language),a=E(e=>e.setLanguage),o=P(i).onboarding,[s,c]=(0,Z.useReducer)(GY,WY),[l,u]=(0,Z.useState)(!1),d=lr(),f=Vl(),p=(0,Z.useRef)(!1),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),v=m||d.cards.some(e=>e.id===`xopc-cloud`&&e.configured),{step:y,selectedProvider:b,busy:x,error:S,callName:C}=s;(0,Z.useEffect)(()=>(r?.(x),()=>r?.(!1)),[x,r]);let w=(0,Z.useMemo)(()=>o.stepOf.replace(`{{current}}`,String(qY(y))).replace(`{{total}}`,String(KY.length)),[o.stepOf,y]);(0,Z.useEffect)(()=>{let e=!1,t;return(async()=>{for(let n=0;n<3;n+=1)try{let{profile:t,suggestedCallName:n}=await Nn();if(e)return;let r=t.callName.trim()||n?.trim();r&&c({type:`prefillCallName`,value:r});return}catch{n<2&&await new Promise(e=>{t=setTimeout(e,250*(n+1))})}})(),()=>{e=!0,t!==void 0&&clearTimeout(t)}},[]);let T=async()=>{let e=C.trim();c({type:`patch`,patch:{busy:!0,error:null}});try{await kn({...e?{callName:e}:{},timezone:jn(),locale:i===`zh`?`zh-CN`:`en-US`}),c({type:`patch`,patch:{step:`provider`}})}catch{c({type:`patch`,patch:{error:i===`zh`?`称呼暂未保存,可重试或稍后设置并继续连接模型。若登录已失效,请先重新连接本机服务。`:`Your name was not saved. Retry or set it later and continue to model setup. Reconnect the service if your sign-in has expired.`}})}finally{c({type:`patch`,patch:{busy:!1}})}},D=async()=>{if(!p.current){p.current=!0,c({type:`patch`,patch:{busy:!0,error:null}});try{let e={mode:`replace`},t=await dr(`xopc-cloud`,e);if(!t.configured||!t.uses.find(e=>e.id===`chat`)?.recommended)throw Error(i===`zh`?`XOPC Cloud 尚未就绪,请稍后重试。`:`XOPC Cloud is not ready yet. Please retry.`);let n=t.uses.filter(e=>e.selected&&e.recommended).map(e=>e.id);await fr(`xopc-cloud`,{...e,selected:n},t.revision),_(t),c({type:`patch`,patch:{step:`success`}})}catch(e){c({type:`patch`,patch:{error:e instanceof Error?e.message:String(e)}})}finally{p.current=!1,c({type:`patch`,patch:{busy:!1}})}}},O=async()=>{c({type:`patch`,patch:{busy:!0,error:null}});try{await e()}catch(e){c({type:`patch`,patch:{error:e instanceof Error?e.message:String(e)}})}finally{c({type:`patch`,patch:{busy:!1}})}};return(0,$.jsxs)(`div`,{className:`xopc-onboarding-experience relative flex h-full min-h-0 w-full flex-col overflow-hidden`,"data-step":y,children:[(0,$.jsx)(`header`,{className:`relative z-20 flex h-18 shrink-0 items-center justify-end px-5 sm:px-8 lg:px-10`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(EY,{value:i,onChange:e=>{c({type:`patch`,patch:{error:null}}),a(e)}}),n?(0,$.jsx)(`button`,{type:`button`,"aria-label":o.skipSetup,disabled:x,className:`inline-flex size-10 items-center justify-center rounded-xl text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:t,children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})}):null]})}),(0,$.jsxs)(`main`,{className:`xopc-onboarding-scroll relative z-10 grid min-h-0 flex-1 overflow-y-auto lg:grid-cols-[minmax(18rem,0.8fr)_minmax(30rem,1.2fr)]`,children:[(0,$.jsx)(`section`,{className:`xopc-onboarding-visual relative hidden min-h-0 items-center justify-center overflow-hidden lg:flex`,children:(0,$.jsx)(vu,{className:`size-72 text-fg-muted`,interactive:!0,language:i,mood:S?`care`:x?`work`:y===`success`?`done`:y===`callName`?`listen`:`decision`})}),(0,$.jsx)(`section`,{className:`app-main-surface xopc-onboarding-scroll flex min-h-[30rem] items-center overflow-y-auto bg-surface-panel px-5 py-8 sm:px-10 lg:min-h-0 lg:px-[clamp(3rem,6vw,6rem)]`,children:(0,$.jsxs)(`div`,{className:`xopc-onboarding-stage w-full max-w-[30rem]`,children:[(0,$.jsx)(`div`,{className:`mb-3 lg:hidden`,children:(0,$.jsx)(vu,{className:`size-20`,mood:S?`care`:x?`work`:y===`success`?`done`:`listen`})}),y===`callName`?(0,$.jsxs)(`div`,{className:`flex min-h-[30rem] flex-col`,children:[(0,$.jsx)(`p`,{className:`text-xs font-medium tracking-wide text-accent-fg`,children:o.title}),(0,$.jsx)(`h1`,{className:`mt-3 text-[2rem] font-semibold leading-tight tracking-[-0.035em] text-fg sm:text-4xl`,children:o.step0Title}),(0,$.jsx)(`p`,{className:`mt-3 max-w-md text-sm leading-6 text-fg-muted`,children:o.step0Subtitle}),(0,$.jsxs)(`label`,{className:`mt-9 block`,children:[(0,$.jsxs)(`span`,{className:`mb-2 flex items-center justify-between text-[13px] font-medium text-fg-muted`,children:[(0,$.jsx)(`span`,{children:o.profileCallNameLabel}),(0,$.jsx)(`span`,{className:`font-normal text-fg-subtle`,children:i===`zh`?`可选`:`Optional`})]}),(0,$.jsx)(`input`,{autoFocus:!0,autoComplete:`name`,value:C,onChange:e=>c({type:`patch`,patch:{callName:e.target.value}}),onKeyDown:e=>{e.key===`Enter`&&!x&&T()},placeholder:o.profileCallNamePlaceholder,className:`h-12 w-full rounded-xl border border-edge bg-surface-base/80 px-3.5 text-[15px] text-fg outline-none transition-[border-color,box-shadow,background-color] duration-200 placeholder:text-fg-subtle hover:border-edge-strong focus:border-accent focus:bg-surface-base focus:ring-4 focus:ring-accent/10 motion-reduce:transition-none`})]}),(0,$.jsx)(`div`,{className:`mt-3 min-h-5`,children:S?(0,$.jsx)(`p`,{className:`text-sm text-danger`,role:`alert`,children:S}):null}),(0,$.jsxs)(`div`,{className:`mt-auto grid grid-cols-[1fr_auto_1fr] items-center gap-3 pt-10`,children:[(0,$.jsx)(`span`,{}),(0,$.jsx)(JY,{step:y,label:w}),(0,$.jsx)(X,{variant:`ghost`,disabled:x,onClick:()=>c({type:`patch`,patch:{step:`provider`,error:null}}),children:i===`zh`?`稍后设置称呼`:`Set name later`}),(0,$.jsxs)(X,{variant:`primary`,className:`h-11 justify-self-end px-5`,disabled:x,onClick:()=>void T(),children:[x?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,x?o.savingProfile:o.continue,x?null:(0,$.jsx)(Wn,{className:`size-4`,"aria-hidden":!0})]})]})]}):null,y===`provider`?(0,$.jsxs)(`div`,{className:`flex min-h-[30rem] flex-col`,children:[(0,$.jsx)(`p`,{className:`text-xs font-medium tracking-wide text-accent-fg`,children:f?`XOPC Cloud`:i===`zh`?`模型设置`:`Model setup`}),(0,$.jsx)(`h1`,{className:`mt-3 text-[2rem] font-semibold leading-tight tracking-[-0.035em] text-fg sm:text-4xl`,children:f?i===`zh`?`连接 XOPC Cloud`:`Connect XOPC Cloud`:o.step1Title}),(0,$.jsx)(`p`,{className:`mt-3 max-w-md text-sm leading-6 text-fg-muted`,children:f?i===`zh`?`登录后自动配置聊天、图片、语音和任务模型,开启可用能力。电脑操作默认关闭,无需 API Key。`:`Sign in to set up chat, image, voice, and task models and enable available capabilities. Computer control stays off by default. No API key required.`:o.step1Subtitle}),(0,$.jsx)(`div`,{className:`mt-8`,children:f?(0,$.jsx)(`fieldset`,{disabled:x,className:`min-w-0`,children:(0,$.jsx)(yd,{providerId:`xopc-cloud`,displayName:`XOPC Cloud`,connected:v,onConnected:()=>{h(!0),D()}})}):(0,$.jsx)(HY,{onSelect:e=>{c({type:`patch`,patch:{selectedProvider:e,error:null}}),u(!0)},onBrowseProviders:()=>{c({type:`patch`,patch:{selectedProvider:null}}),u(!0)},disabled:x,browseDisabled:d.loading})}),(0,$.jsx)(`div`,{className:`mt-3 min-h-5`,children:S?(0,$.jsx)(`p`,{className:`text-sm text-danger`,role:`alert`,children:S}):null}),(0,$.jsxs)(`div`,{className:`mt-auto grid grid-cols-[1fr_auto_1fr] items-center gap-3 pt-8`,children:[(0,$.jsx)(X,{variant:`ghost`,className:`justify-self-start`,disabled:x,onClick:()=>c({type:`patch`,patch:{step:`callName`,error:null}}),children:o.back}),(0,$.jsx)(JY,{step:y,label:w}),f&&v?(0,$.jsxs)(X,{variant:`primary`,className:`h-11 justify-self-end px-5`,disabled:x,onClick:()=>void D(),children:[x?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,S?i===`zh`?`重试`:`Retry`:o.continue]}):(0,$.jsx)(`span`,{})]})]}):null,y===`success`?(0,$.jsxs)(`div`,{className:`flex min-h-[30rem] flex-col`,children:[(0,$.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-xl bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`,children:(0,$.jsx)(ir,{className:`size-6`,"aria-hidden":!0})}),(0,$.jsx)(`p`,{className:`mt-6 text-xs font-medium tracking-wide text-accent-fg`,children:i===`zh`?`模型设置完成`:`Model setup complete`}),(0,$.jsx)(`h1`,{className:`mt-3 text-[2rem] font-semibold leading-tight tracking-[-0.035em] text-fg sm:text-4xl`,children:i===`zh`?`一切准备好了`:`You’re ready to go`}),(0,$.jsxs)(`p`,{className:`mt-3 max-w-md text-sm leading-6 text-fg-muted`,children:[g?i===`zh`?`已配置并开启账号可用的模型能力,电脑操作默认关闭。`:`Available model capabilities are configured and enabled. Computer control stays off by default.`:i===`zh`?`模型服务配置已保存,可以开始对话。`:`Model service settings are saved. You can start a conversation.`,g?.uses.some(e=>!e.selected)?i===`zh`?` 部分能力暂无可用模型,可稍后在模型设置中查看。`:` Some capabilities have no available model. Review them in Model settings.`:null]}),(0,$.jsx)(`div`,{className:`mt-3 min-h-5`,children:S?(0,$.jsx)(`p`,{className:`text-sm text-danger`,role:`alert`,children:S}):null}),(0,$.jsxs)(`div`,{className:`mt-auto grid grid-cols-[1fr_auto_1fr] items-center gap-3 pt-10`,children:[(0,$.jsx)(`span`,{}),(0,$.jsx)(JY,{step:y,label:w}),(0,$.jsxs)(X,{variant:`primary`,className:`h-11 justify-self-end px-5`,disabled:x,onClick:()=>void O(),children:[x?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,i===`zh`?`开始使用 XOPC`:`Start using XOPC`,x?null:(0,$.jsx)(Wn,{className:`size-4`,"aria-hidden":!0})]})]})]}):null]},y)})]}),f?null:(0,$.jsx)(ur,{open:l,initialProviderId:b??void 0,onOpenChange:u,builtinRows:d.builtinRows,customConfig:d.customConfig,labels:P(i).capabilitiesSettings.addProviderDialog,language:i,onSaved:e=>{if(e===`xopc-cloud`){u(!1),D();return}u(!1),c({type:`patch`,patch:{step:`success`,error:null}})}})]})}function XY(e){return e?.enabled===!0&&(e.state.status===`not_started`||e.state.status===`in_progress`)}function ZY(e){let t=!e.settingsRoute&&e.modelSetupReady&&e.needsModelSetup&&!e.modelGuideDismissed,n=e.cloudOnboardingReady&&e.cloudOnboardingPending&&(!e.desktop||e.modelSetupReady)&&!(e.desktop&&t),r=t&&!n,i=!n&&!e.settingsRoute&&e.modelSetupReady&&!e.needsModelSetup&&XY(e.workDiscovery);return{open:e.authenticated&&!e.closed&&(r||n||i),stage:n?`cloud`:r?`setup`:`work`}}function QY(e){if(!e||typeof e!=`object`||Array.isArray(e))return!0;let t=e.agents;if(!t)return!0;let n=t.defaults?.models?.chat?.primary?.trim()??``;return!((t.list?.find(e=>e.enabled!==!1&&e.id===t.default))?.models?.chat?.primary?.trim()||n)}function $Y(e){let{enabled:t,ready:n,configError:r,modelsError:i,config:a,modelsData:o}=e;if(!t||!n||r||i)return!1;let s=QY(a),c=!Array.isArray(o)||o.length===0;return s||c}function eX(e){let t=(0,Q.c)(21),[n,r]=(0,Z.useState)(tX),{data:i,error:a,isLoading:o,mutate:s}=hc(e),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={revalidateOnFocus:!1},t[0]=c):c=t[0];let{data:l,isLoading:u,error:d,mutate:f}=oc(e?Pc:null,Nc,c),p=!e||!o&&!u,m=i?.payload?.config,h;t[1]!==a||t[2]!==e||t[3]!==l||t[4]!==d||t[5]!==p||t[6]!==m?(h=$Y({enabled:e,ready:p,configError:a,modelsError:d,config:m,modelsData:l}),t[1]=a,t[2]=e,t[3]=l,t[4]=d,t[5]=p,t[6]=m,t[7]=h):h=t[7];let g=h,_;t[8]!==s||t[9]!==f?(_=async()=>{await Promise.all([s(),f()])},t[8]=s,t[9]=f,t[10]=_):_=t[10];let v=_,y,b;t[11]!==e||t[12]!==f?(y=()=>{if(!e)return;let t=()=>{f()};return window.addEventListener(`config-reload`,t),()=>window.removeEventListener(`config-reload`,t)},b=[e,f],t[11]=e,t[12]=f,t[13]=y,t[14]=b):(y=t[13],b=t[14]),(0,Z.useEffect)(y,b);let x;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>{try{localStorage.setItem(vd,`1`)}catch{}r(!0)},t[15]=x):x=t[15];let S=x,C;return t[16]!==n||t[17]!==g||t[18]!==p||t[19]!==v?(C={needsSetup:g,ready:p,refresh:v,guideDismissed:n,dismissPermanently:S},t[16]=n,t[17]=g,t[18]=p,t[19]=v,t[20]=C):C=t[20],C}function tX(){return typeof localStorage<`u`&&localStorage.getItem(`xopc-onboarding-model-setup-dismissed`)===`1`}var nX=_d;async function rX(){let e=await x(w(nX));if(!e.ok)throw Error(`Cloud onboarding: ${e.status}`);return(await e.json()).payload}function iX(e){let t=(0,Q.c)(9),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={revalidateOnFocus:!1},t[0]=n):n=t[0];let{data:r,error:i,mutate:a}=oc(e?nX:null,rX,n),o=!!r&&!i,s=r?.status===`unseen`&&!r.hasGrant,c,l;t[1]===a?(c=t[2],l=t[3]):(c=()=>a(),l=async()=>{let e=await x(w(nX),{method:`PUT`});if(!e.ok)throw Error(`Cloud onboarding dismissal: ${e.status}`);await a({status:`dismissed`,hasGrant:!1},{revalidate:!1})},t[1]=a,t[2]=c,t[3]=l);let u;return t[4]!==o||t[5]!==s||t[6]!==c||t[7]!==l?(u={ready:o,pending:s,refresh:c,dismiss:l},t[4]=o,t[5]=s,t[6]=c,t[7]=l,t[8]=u):u=t[8],u}function aX({context:e,onDismiss:t,onConnected:n}){let r=E(e=>e.language)===`zh`,[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)([]),[c,l]=(0,Z.useState)(!1),u=e===`chat`?r?`为对话连接更多模型`:`Connect more models for chat`:e===`personal`?r?`为个人 Agent 一次配好模型`:`Set up models for your personal agent`:r?`连接 XOPC Cloud,省去逐个配置模型`:`Connect XOPC Cloud to simplify model setup`,d=e===`chat`?r?`连接 XOPC Cloud 后,此账号可用的聊天、图片和语音模型会自动同步。你可以继续使用当前聊天模型,稍后再切换。`:`Connect XOPC Cloud to sync the chat, image, and voice models available to your account. You can keep using your current chat model and switch later.`:e===`personal`?r?`连接一次即可为个人 Agent 准备此账号可用的聊天、图片和语音模型。已有模型和明确设置不会改变。`:`Connect once to make the chat, image, and voice models available to your personal agent. Your current model and explicit settings stay in place.`:r?`授权后会同步此账号可用的聊天、图片和语音等模型。已有的默认聊天模型及明确设置保持不变,之后可自行切换。`:`Authorize once to sync the chat, image, and voice models available to your account. Your current default chat model and explicit settings stay in place.`,f=async()=>{a(!0);try{let e=await x(w(`/api/models/catalog`));if(!e.ok)throw Error(`Readiness unavailable`);let t=(await e.json()).payload.sources[`xopc-cloud`]?.models.filter(e=>e.availability===`available`)??[],n=new Set(t.map(e=>e.kind));s([...n.has(`language`)?[r?`聊天`:`chat`]:[],...t.some(e=>e.kind===`language`&&e.input.includes(`image`))?[r?`视觉理解`:`vision`]:[],...n.has(`image`)?[r?`图片生成`:`image generation`]:[],...n.has(`stt`)?[r?`语音识别`:`speech recognition`]:[],...n.has(`tts`)?[r?`语音合成`:`speech synthesis`]:[]]),l(t.length===0)}catch{l(!0)}};return(0,$.jsx)(`div`,{className:`p-5 sm:p-6`,children:(0,$.jsxs)(`div`,{className:`w-full`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,$.jsx)(`span`,{className:`flex size-12 items-center justify-center rounded-xl bg-accent-soft text-accent-fg`,children:(0,$.jsx)(kr,{className:`size-6`,"aria-hidden":!0})}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,"aria-label":i?r?`继续`:`Continue`:r?`暂时不用`:`Maybe later`,onClick:i?n:t,children:(0,$.jsx)(Zo,{className:`size-4`})})]}),(0,$.jsx)(`h1`,{className:`mt-6 text-2xl font-semibold text-fg`,children:i?r?`XOPC Cloud 已连接`:`XOPC Cloud is connected`:u}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:i?c?r?`授权已完成,模型目录暂不可用。稍后可在模型设置中刷新。`:`Authorization completed, but the model catalog is temporarily unavailable. Refresh it later in model settings.`:r?`已同步可用能力:${o.join(`、`)||`模型目录`}。你可以稍后在模型设置中选择默认模型。`:`Available capabilities: ${o.join(`, `)||`model catalog`}. You can choose a default model later in model settings.`:d}),i?(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`mt-7`,onClick:n,children:r?`继续聊天`:`Continue to chat`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`mt-7`,children:(0,$.jsx)(yd,{providerId:`xopc-cloud`,displayName:`XOPC Cloud`,connected:!1,onConnected:()=>void f()})}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`mt-5`,onClick:t,children:r?`暂时不用,继续使用现有模型`:`Maybe later, keep using my current model`})]})]})})}function oX(){let e=(0,Q.c)(75),t=T(hX),n=E(mX),r;e[0]===n?r=e[1]:(r=P(n),e[0]=n,e[1]=r);let i=r,{pathname:a}=p(),o=b(),s=eX(!!t),c=iX(!!t),l=a.startsWith(`/settings`)||a===`/personal`,[u,d]=(0,Z.useState)(null),[f,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),y;e[2]!==m||e[3]!==g||e[4]!==d||e[5]!==t?(y=()=>{if(m(!1),g(!1),!t){d(null);return}let e=!1;return ni().then(t=>{e||d(t)}).catch(pX),()=>{e=!0}},e[2]=m,e[3]=g,e[4]=d,e[5]=t,e[6]=y):y=e[6];let x;e[7]===t?x=e[8]:(x=[t],e[7]=t,e[8]=x),(0,Z.useEffect)(y,x);let S=ZY({authenticated:!!t,desktop:Vl(),settingsRoute:l,modelSetupReady:s.ready,needsModelSetup:s.needsSetup||h,modelGuideDismissed:s.guideDismissed,cloudOnboardingReady:c.ready,cloudOnboardingPending:c.pending,workDiscovery:u,closed:f}),C;e[9]!==S.open||e[10]!==S.stage||e[11]!==g?(C=()=>{S.open&&S.stage===`setup`&&g(!0)},e[9]=S.open,e[10]=S.stage,e[11]=g,e[12]=C):C=e[12];let w;e[13]!==S.open||e[14]!==S.stage?(w=[S.open,S.stage],e[13]=S.open,e[14]=S.stage,e[15]=w):w=e[15],(0,Z.useEffect)(C,w);let D;e[16]!==m||e[17]!==g?(D=()=>{g(!1),m(!0)},e[16]=m,e[17]=g,e[18]=D):D=e[18];let O=D,k;e[19]!==O||e[20]!==o?(k=()=>{O(),o(`/chat`)},e[19]=O,e[20]=o,e[21]=k):k=e[21];let A=k,j;e[22]!==O||e[23]!==s?(j=()=>{O(),s.dismissPermanently(),ri().catch(fX)},e[22]=O,e[23]=s,e[24]=j):j=e[24];let M=j,N;e[25]!==O||e[26]!==c||e[27]!==s.needsSetup||e[28]!==s.ready||e[29]!==u?(N=async()=>{await c.dismiss(),s.ready&&!s.needsSetup&&!XY(u)&&O()},e[25]=O,e[26]=c,e[27]=s.needsSetup,e[28]=s.ready,e[29]=u,e[30]=N):N=e[30];let F=N,L=S.stage!==`cloud`,z=S.open,U;e[31]!==O||e[32]!==F||e[33]!==M||e[34]!==S.stage||e[35]!==A||e[36]!==_?(U=e=>{e||(S.stage===`setup`?_||M():S.stage===`cloud`?F().catch(O):A())},e[31]=O,e[32]=F,e[33]=M,e[34]=S.stage,e[35]=A,e[36]=_,e[37]=U):U=e[37];let W;e[38]===S.stage?W=e[39]:(W=S.stage===`cloud`?null:(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[55] bg-scrim backdrop-blur-md`}),e[38]=S.stage,e[39]=W);let G=S.stage===`cloud`?`bottom-4 right-4 max-h-[calc(100vh-2rem)] w-[min(32rem,calc(100vw-2rem))] overflow-y-auto rounded-2xl border border-edge bg-surface-overlay shadow-xl`:`xopc-onboarding-dialog inset-0 overflow-hidden`,te;e[40]===G?te=e[41]:(te=Y(`app-chrome-shell fixed z-[56] outline-none`,G),e[40]=G,e[41]=te);let ne;e[42]!==S.stage||e[43]!==_?(ne=e=>{S.stage===`setup`&&_&&e.preventDefault()},e[42]=S.stage,e[43]=_,e[44]=ne):ne=e[44];let K;e[45]===i.onboarding.title?K=e[46]:(K=(0,$.jsx)(H,{className:`sr-only`,children:i.onboarding.title}),e[45]=i.onboarding.title,e[46]=K);let q;e[47]===i.onboarding.subtitle?q=e[48]:(q=(0,$.jsx)(R,{className:`sr-only`,children:i.onboarding.subtitle}),e[47]=i.onboarding.subtitle,e[48]=q);let re;e[49]!==O||e[50]!==c||e[51]!==F||e[52]!==M||e[53]!==S.stage||e[54]!==A||e[55]!==s||e[56]!==a||e[57]!==g||e[58]!==v||e[59]!==d?(re=S.stage===`setup`?(0,$.jsx)(YY,{onComplete:async()=>{let e=await ni().catch(lX);d(e),await s.refresh();let t=await c.refresh().catch(cX),n=t?.status===`unseen`&&!t.hasGrant;Vl()&&n&&(await c.dismiss().catch(sX),n=!1),g(!1),!XY(e)&&!n&&A()},onPendingChange:v,onDismiss:M,canDismiss:!0}):S.stage===`cloud`?(0,$.jsx)(aX,{context:a.startsWith(`/chat`)?`chat`:a===`/personal`?`personal`:`general`,onDismiss:()=>void F().catch(O),onConnected:()=>{c.refresh().catch(O)}}):(0,$.jsx)(`div`,{className:`xopc-onboarding-work-stage h-full overflow-hidden`,children:(0,$.jsx)(Sn,{embedded:!0,onRequestClose:A,onNavigateAway:O})}),e[49]=O,e[50]=c,e[51]=F,e[52]=M,e[53]=S.stage,e[54]=A,e[55]=s,e[56]=a,e[57]=g,e[58]=v,e[59]=d,e[60]=re):re=e[60];let ie;e[61]!==te||e[62]!==ne||e[63]!==K||e[64]!==q||e[65]!==re?(ie=(0,$.jsxs)(V,{className:te,onEscapeKeyDown:ne,onPointerDownOutside:dX,onOpenAutoFocus:uX,children:[K,q,re]}),e[61]=te,e[62]=ne,e[63]=K,e[64]=q,e[65]=re,e[66]=ie):ie=e[66];let ae;e[67]!==W||e[68]!==ie?(ae=(0,$.jsxs)(B,{children:[W,ie]}),e[67]=W,e[68]=ie,e[69]=ae):ae=e[69];let oe;return e[70]!==S.open||e[71]!==U||e[72]!==ae||e[73]!==L?(oe=(0,$.jsx)(ee,{modal:L,open:z,onOpenChange:U,children:ae}),e[70]=S.open,e[71]=U,e[72]=ae,e[73]=L,e[74]=oe):oe=e[74],oe}function sX(){}function cX(){return null}function lX(){return null}function uX(e){return e.preventDefault()}function dX(e){return e.preventDefault()}function fX(){}function pX(){}function mX(e){return e.language}function hX(e){return e.conversationId}function gX(e){let t=(0,Q.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`shrink-0`,children:n}),t[0]=n,t[1]=r),r}function _X(){let e=(0,Q.c)(3),t=Mn(yX),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=vX;e();let n=window.setInterval(e,t?1500:3e4);return window.addEventListener(`understanding-refresh-updated`,e),window.addEventListener(`focus`,e),()=>{window.clearInterval(n),window.removeEventListener(`understanding-refresh-updated`,e),window.removeEventListener(`focus`,e)}},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function vX(){Mn.getState().poll()}function yX(e){return e.sources.some(bX)}function bX(e){return e.status===`queued`||e.status===`running`}var xX=new Set([`queued`,`probing`,`analyzing`]),SX=[`work-discovery-progress`,`work-discovery-completed`,`work-discovery-failed`,`work-discovery-canceled`];function CX(){let e=(0,Q.c)(7),t=si(jX),n=si(AX),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0],(0,Z.useEffect)(OX,r);let i,a;e[1]!==t||e[2]!==n?(i=()=>{if(!t||!n||!xX.has(n))return;let e=!1,r=async()=>{try{let n=await ai(t);e||si.getState().updateDirectoryRun(n)}catch{}};r();let i=window.setInterval(()=>void r(),1200);return()=>{e=!0,window.clearInterval(i)}},a=[t,n],e[1]=t,e[2]=n,e[3]=i,e[4]=a):(i=e[3],a=e[4]),(0,Z.useEffect)(i,a);let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],e[5]=o):o=e[5],(0,Z.useEffect)(wX,o);let s;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(_X,{}),e[6]=s):s=e[6],s}function wX(){let e=TX;for(let t of SX)window.addEventListener(t,e);return()=>{for(let t of SX)window.removeEventListener(t,e)}}function TX(e){let t=e.detail?.runId;t&&ai(t).then(DX).catch(EX)}function EX(){}function DX(e){return si.getState().updateDirectoryRun(e)}function OX(){let e=!1;return ni().then(async t=>{let{state:n}=t;if(n.status!==`in_progress`||!n.activeRunId)return;let r=await ai(n.activeRunId);e||si.getState().updateDirectoryRun(r)}).catch(kX),()=>{e=!0}}function kX(){}function AX(e){return e.directoryRun?.status}function jX(e){return e.directoryRun?.id}var MX=`workDiscovery`;function NX(e){return new URLSearchParams(e).get(MX)===`new`}function PX(e){let t=new URLSearchParams(e);t.delete(MX);let n=t.toString();return n?`?${n}`:``}var FX=(0,Z.lazy)(()=>ql().then(e=>({default:e.WorkDiscoveryOverlay}))),IX=(0,Z.lazy)(()=>Yl().then(e=>({default:e.TaskDetailModal})));function LX(){let e=(0,Q.c)(3),t=b(),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=e=>{let n=e.detail;n?.conversationId&&t(`/chat/${encodeURIComponent(n.conversationId)}`)};return window.addEventListener(`navigate-to-chat`,e),()=>window.removeEventListener(`navigate-to-chat`,e)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function RX(){let e=(0,Q.c)(3),t=b(),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=e=>{let n=e.detail,r=typeof n?.path==`string`?n.path.trim():``;r&&t(r.startsWith(`/`)?r:`/${r}`)};return window.addEventListener(`extension-navigate`,e),()=>window.removeEventListener(`extension-navigate`,e)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function zX(){let e=(0,Q.c)(3),t=T(VX),n=`${T(BX)}:${t??``}`,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(Et,{children:(0,$.jsx)(HX,{})}),e[0]=r):r=e[0];let i;return e[1]===n?i=e[2]:(i=(0,$.jsx)(CB,{children:r},n),e[1]=n,e[2]=i),i}function BX(e){return e.baseUrl}function VX(e){return e.conversationId}function HX(){let e=(0,Q.c)(156),t=T(KX),{pathname:n,search:r}=p(),i=b(),a;e[0]===n?a=e[1]:(a=n.startsWith(`/settings`),e[0]=n,e[1]=a);let o=a,s=n===`/onboarding/workspace`,c=E(GX),l=FV(),u=It(WX),[d,m]=(0,Z.useState)(0),h=pz(n),g;e[2]!==n||e[3]!==r?(g=n===`/user-model`&&NX(r),e[2]=n,e[3]=r,e[4]=g):g=e[4];let _=g,v;e[5]!==n||e[6]!==r?(v=n.startsWith(`/tasks/`)?null:new URLSearchParams(r).get(_a),e[5]=n,e[6]=r,e[7]=v):v=e[7];let y=v,x;e[8]!==h||e[9]!==n||e[10]!==y||e[11]!==u?(x=y&&u?u:h??(n.startsWith(`/chat`)?`new`:u??`new`),e[8]=h,e[9]=n,e[10]=y,e[11]=u,e[12]=x):x=e[12];let S=x,C;if(e[13]!==n||e[14]!==r||e[15]!==y){let t=Sa(n)?new URLSearchParams(r).get(ya):null;C=t&&!y?Aa(t):null,e[13]=n,e[14]=r,e[15]=y,e[16]=C}else C=e[16];let w=C,D;e[17]!==n||e[18]!==r?(D=Ea(n,r),e[17]=n,e[18]=r,e[19]=D):D=e[19];let O=D,k;e[20]!==n||e[21]!==w||e[22]!==r||e[23]!==y?(k=!y&&!w&&Sa(n)?new URLSearchParams(r).get(Ca):null,e[20]=n,e[21]=w,e[22]=r,e[23]=y,e[24]=k):k=e[24];let A=k,j;e[25]!==n||e[26]!==r?(j=Ta(n,r),e[25]=n,e[26]=r,e[27]=j):j=e[27];let M=j,N;e[28]!==n||e[29]!==r?(N=ka(n,r),e[28]=n,e[29]=r,e[30]=N):N=e[30];let P=N,[F,I]=(0,Z.useState)(_),L,R;e[31]===_?(L=e[32],R=e[33]):(R=()=>{_&&I(!0)},L=[_],e[31]=_,e[32]=L,e[33]=R),(0,Z.useEffect)(R,L);let z;e[34]!==i||e[35]!==n||e[36]!==r?(z=()=>{i({pathname:n,search:PX(r)},{replace:!0})},e[34]=i,e[35]=n,e[36]=r,e[37]=z):z=e[37];let B=z,V;e[38]!==B||e[39]!==_?(V=()=>{I(!1),_&&B(),window.requestAnimationFrame(UX)},e[38]=B,e[39]=_,e[40]=V):V=e[40];let H=V,ee;e[41]!==i||e[42]!==P?(ee=()=>{i(P,{replace:!0})},e[41]=i,e[42]=P,e[43]=ee):ee=e[43];let U=ee;if(!t){let t=c===`zh`?`跳到主要内容`:`Skip to main content`,n;e[44]===t?n=e[45]:(n=(0,$.jsx)(`a`,{href:`#app-main-content`,className:`sr-only z-[80] rounded-lg bg-surface-panel px-3 py-2 text-sm text-fg shadow-elevated focus:not-sr-only focus:absolute focus:left-4 focus:top-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:t}),e[44]=t,e[45]=n);let r,i,a;e[46]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(dG,{}),i=(0,$.jsx)(yK,{}),a=(0,$.jsx)(Tz,{}),e[46]=r,e[47]=i,e[48]=a):(r=e[46],i=e[47],a=e[48]);let o;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,$.jsx)(MB,{})}),e[49]=o):o=e[49];let s;return e[50]===n?s=e[51]:(s=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-surface-base`,children:[n,r,i,a,o]}),e[50]=n,e[51]=s),s}let W;e[52]===n?W=e[53]:(W=n.split(`/`)[1]||`root`,e[52]=n,e[53]=W);let G=W,te=G===`chat`||G===`notes`||G===`personal`||G===`automations`;if(s){let t,n,r,i,a,o,s,c;e[54]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(vK,{}),n=(0,$.jsx)(VJ,{}),r=(0,$.jsx)(CX,{}),i=(0,$.jsx)(tY,{}),a=(0,$.jsx)(yK,{}),o=(0,$.jsx)(Tz,{}),s=(0,$.jsx)(dG,{}),c=Kc()?(0,$.jsx)(`div`,{className:Y(`w-full`,xl,yl),"aria-hidden":`true`}):null,e[54]=t,e[55]=n,e[56]=r,e[57]=i,e[58]=a,e[59]=o,e[60]=s,e[61]=c):(t=e[54],n=e[55],r=e[56],i=e[57],a=e[58],o=e[59],s=e[60],c=e[61]);let l;return e[62]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-surface-base`,children:[t,n,r,i,a,o,s,c,(0,$.jsx)(`main`,{id:`app-main-content`,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,$.jsx)(f,{})})]}),e[62]=l):l=e[62],l}let ne;e[63]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,$.jsx)(vK,{}),e[63]=ne):ne=e[63];let K=c===`zh`?`跳到主要内容`:`Skip to main content`,q;e[64]===K?q=e[65]:(q=(0,$.jsx)(`a`,{href:`#app-main-content`,className:`sr-only z-[80] rounded-lg bg-surface-panel px-3 py-2 text-sm text-fg shadow-elevated focus:not-sr-only focus:absolute focus:left-4 focus:top-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:K}),e[64]=K,e[65]=q);let re,ie,ae,oe,se,ce,le,ue,de;e[66]===Symbol.for(`react.memo_cache_sentinel`)?(re=(0,$.jsx)(VJ,{}),ie=(0,$.jsx)(CX,{}),ae=(0,$.jsx)(tY,{}),oe=(0,$.jsx)(yK,{}),se=(0,$.jsx)(Tz,{}),ce=(0,$.jsx)(LX,{}),le=(0,$.jsx)(RX,{}),ue=(0,$.jsx)(bq,{}),de=(0,$.jsx)(kq,{}),e[66]=re,e[67]=ie,e[68]=ae,e[69]=oe,e[70]=se,e[71]=ce,e[72]=le,e[73]=ue,e[74]=de):(re=e[66],ie=e[67],ae=e[68],oe=e[69],se=e[70],ce=e[71],le=e[72],ue=e[73],de=e[74]);let fe=S===h?h:null,pe;e[75]===fe?pe=e[76]:(pe=(0,$.jsx)(gB,{conversationId:fe}),e[75]=fe,e[76]=pe);let me,he,ge,_e;e[77]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,$.jsx)(wJ,{}),he=(0,$.jsx)(Pq,{}),ge=(0,$.jsx)(hY,{}),_e=(0,$.jsx)(SY,{}),e[77]=me,e[78]=he,e[79]=ge,e[80]=_e):(me=e[77],he=e[78],ge=e[79],_e=e[80]);let ve;e[81]===h?ve=e[82]:(ve=(0,$.jsx)(qW,{conversationId:h}),e[81]=h,e[82]=ve);let ye;e[83]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,$.jsx)($W,{}),e[83]=ye):ye=e[83];let be;e[84]===n?be=e[85]:(be=!n.startsWith(`/mcp-setup/`)&&!n.startsWith(`/configuration/`)?(0,$.jsx)(oX,{}):null,e[84]=n,e[85]=be);let J;e[86]!==i||e[87]!==O||e[88]!==w?(J=w?(0,$.jsx)(dd,{target:w,backgroundPath:O,onClose:()=>i(O,{replace:!0})}):null,e[86]=i,e[87]=O,e[88]=w,e[89]=J):J=e[89];let xe;e[90]!==i||e[91]!==M||e[92]!==A?(xe=A?(0,$.jsx)(Cq,{noteId:A,backgroundPath:M,onClose:()=>i(M,{replace:!0})}):null,e[90]=i,e[91]=M,e[92]=A,e[93]=xe):xe=e[93];let Se;e[94]!==U||e[95]!==P||e[96]!==y||e[97]!==d?(Se=y?(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(IX,{taskId:y,backgroundPath:P,workspacePanelWidth:d,onClose:U})}):null,e[94]=U,e[95]=P,e[96]=y,e[97]=d,e[98]=Se):Se=e[98];let Ce;e[99]!==H||e[100]!==_||e[101]!==F?(Ce=F?(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(FX,{requestedOpen:_,onExited:H})}):null,e[99]=H,e[100]=_,e[101]=F,e[102]=Ce):Ce=e[102];let we;e[103]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,$.jsx)(dG,{}),e[103]=we):we=e[103];let Te;e[104]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,$.jsx)(pG,{}),e[104]=Te):Te=e[104];let Ee;e[105]===l?Ee=e[106]:(Ee=(0,$.jsx)(kK,{reminder:l}),e[105]=l,e[106]=Ee);let De;e[107]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,$.jsx)(TK,{}),e[107]=De):De=e[107];let Oe;e[108]===Ee?Oe=e[109]:(Oe=(0,$.jsxs)(gX,{children:[Te,Ee,De]}),e[108]=Ee,e[109]=Oe);let ke;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,$.jsx)(FU,{}),e[110]=ke):ke=e[110];let Ae;e[111]===o?Ae=e[112]:(Ae=o?null:(0,$.jsx)(lV,{}),e[111]=o,e[112]=Ae);let je=G!==`settings`&&`page-enter`,Me=G===`settings`||te?`overflow-hidden`:`overflow-y-auto overscroll-contain [scrollbar-gutter:stable_both-edges]`,Ne;e[113]!==je||e[114]!==Me?(Ne=Y(`flex min-h-0 min-w-0 flex-1 flex-col overflow-x-hidden bg-surface-panel`,je,Me),e[113]=je,e[114]=Me,e[115]=Ne):Ne=e[115];let Pe;e[116]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=(0,$.jsx)(f,{}),e[116]=Pe):Pe=e[116];let Fe;e[117]!==G||e[118]!==Ne?(Fe=(0,$.jsx)(`main`,{id:`app-main-content`,className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:(0,$.jsx)(`div`,{className:Ne,children:Pe},G)}),e[117]=G,e[118]=Ne,e[119]=Fe):Fe=e[119];let Ie;e[120]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,$.jsx)(vY,{}),e[120]=Ie):Ie=e[120];let Le;e[121]!==o||e[122]!==n?(Le=!o&&!n.startsWith(`/chat`)?(0,$.jsx)(Mz,{}):null,e[121]=o,e[122]=n,e[123]=Le):Le=e[123];let Re;e[124]!==Ae||e[125]!==Fe||e[126]!==Le?(Re=(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[Ae,Fe,Ie,Le]}),e[124]=Ae,e[125]=Fe,e[126]=Le,e[127]=Re):Re=e[127];let ze;e[128]!==o||e[129]!==n||e[130]!==y||e[131]!==u?(ze=!o&&(n.startsWith(`/chat`)||n===`/personal`||n===`/automations`&&!!u||(!!y||n.startsWith(`/tasks/`))&&!!u),e[128]=o,e[129]=n,e[130]=y,e[131]=u,e[132]=ze):ze=e[132];let Be=!!y,Ve;e[133]!==ze||e[134]!==Be||e[135]!==S?(Ve=(0,$.jsx)(HW,{scope:S,onDockedWidthChange:m,enabled:ze,elevated:Be}),e[133]=ze,e[134]=Be,e[135]=S,e[136]=Ve):Ve=e[136];let He;e[137]!==Re||e[138]!==Ve?(He=(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-row overflow-hidden`,children:[ke,(0,$.jsx)(`div`,{className:`app-main-surface relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-surface-panel`,children:(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-row overflow-hidden`,children:[Re,Ve]})})]}),e[137]=Re,e[138]=Ve,e[139]=He):He=e[139];let Ue;e[140]!==Oe||e[141]!==He?(Ue=(0,$.jsxs)(`div`,{className:`app-chrome-shell flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[we,Oe,He]}),e[140]=Oe,e[141]=He,e[142]=Ue):Ue=e[142];let We;e[143]!==Ue||e[144]!==S?(We=(0,$.jsx)(Di.Provider,{value:S,children:Ue}),e[143]=Ue,e[144]=S,e[145]=We):We=e[145];let Ge;return e[146]!==q||e[147]!==pe||e[148]!==ve||e[149]!==be||e[150]!==J||e[151]!==xe||e[152]!==Se||e[153]!==Ce||e[154]!==We?(Ge=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-surface-base`,children:[ne,q,re,ie,ae,oe,se,ce,le,ue,de,pe,me,he,ge,_e,ve,ye,be,J,xe,Se,Ce,We]}),e[146]=q,e[147]=pe,e[148]=ve,e[149]=be,e[150]=J,e[151]=xe,e[152]=Se,e[153]=Ce,e[154]=We,e[155]=Ge):Ge=e[155],Ge}function UX(){document.querySelector(`[data-work-discovery-trigger]`)?.focus({preventScroll:!0})}function WX(e){return e.conversationIdOverride}function GX(e){return e.language}function KX(e){return e.conversationId}var qX={en:`https://xopc.ai/en#download`,zh:`https://xopc.ai/zh#download`};function JX(e){if(e instanceof Error)return e.stack||e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function YX(e=k()){return qX[e]}function XX(){let e=window.location.hash.replace(/^#\/?/,``).split(/[/?]/,1)[0];return`${window.location.origin}${window.location.pathname}${e?`#/${e}`:``}`}function ZX({error:e,source:t,componentStack:n,capturedAt:r=new Date}){let i=window.electronAPI?`Electron desktop app`:`Gateway web UI`,a=window.electronAPI?.platform??navigator.platform??`unknown`,o=IV.commit===`unknown`?`unknown`:IV.commit.slice(0,12),s=[`# xopc renderer error report`,``,`- xopc web version: ${IV.version}`,`- Commit: ${o}`,`- Build time: ${IV.buildTimeIso}`,`- Captured at: ${r.toISOString()}`,`- Source: ${t}`,`- Surface: ${i}`,`- Platform: ${a}`,`- Language: ${k()}`,`- Page: ${XX()}`,`- User agent: ${navigator.userAgent}`,``,`## Error`,``,"```text",JX(e),"```"];return n?.trim()&&s.push(``,`## React component stack`,``,"```text",n.trim(),"```"),s.join(`
|
|
10
|
-
`)}var QX={en:{eyebrow:`xopc recovery`,title:`The app ran into a problem`,description:`This version may be incompatible with the current runtime. Download and install the latest desktop version from the official website, then open xopc again.`,download:`Download the latest version`,reload:`Reload`,details:`Technical details`,copyReport:`Collect and copy report`,reportIssue:`Report on GitHub`,copied:`The redacted diagnostic report was copied.`,copyFailed:`Could not copy the diagnostic report automatically.`,collecting:`Collecting diagnostics…`,collectFailed:"Could not collect diagnostics. Run `xopc support report` in a terminal instead.",githubTruncated:`The complete report was copied to the clipboard. Paste it into the issue or upload the downloaded diagnostics file.`,reportHint:`These raw technical details stay on this page. Public reports use the redacted diagnostic report.`,openFailed:`Could not open the system browser. Visit xopc.ai to download the latest version.`},zh:{eyebrow:`xopc 恢复模式`,title:`应用遇到问题,暂时无法继续`,description:`当前版本可能与运行环境不兼容。请前往官网下载并安装最新桌面版,然后重新打开 xopc。`,download:`去官网下载最新版`,reload:`重新加载`,details:`技术详情`,copyReport:`收集并复制报告`,reportIssue:`上报 GitHub`,copied:`已复制脱敏后的诊断报告。`,copyFailed:`无法自动复制诊断报告。`,collecting:`正在收集诊断信息…`,collectFailed:"诊断信息收集失败,请在终端运行 `xopc support report`。",githubTruncated:`完整报告已复制到剪贴板,请粘贴到 Issue 中,或上传下载的诊断文件。`,reportHint:`这里显示的是本地原始技术详情;公开提交时会使用自动脱敏后的诊断报告。`,openFailed:`无法打开系统浏览器,请访问 xopc.ai 下载最新版本。`}};async function $X(e){let t=window.electronAPI?.shell?.openExternalUrl;if(t)try{let n=await t(e);return n.ok?null:n.error}catch(e){return e instanceof Error?e.message:String(e)}return window.location.assign(e),null}function eZ({error:e,source:t=`react`,componentStack:n}){let r=k(),i=QX[r],a=YX(r),[o,s]=(0,Z.useState)(null),[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(null),[m]=(0,Z.useState)(()=>new Date),h=(0,Z.useMemo)(()=>ZX({error:e,source:t,componentStack:n,capturedAt:m}),[m,n,e,t]),g=async()=>{let e=await $X(a);s(e?`${i.openFailed} (${e})`:null)},_=async()=>{if(f)return f;d(!0),s(null);try{let e=(await sY({problem:`Renderer error (${t})`,occurredAt:m.toISOString(),clientContext:{rendererError:h,surface:window.electronAPI?`electron`:`web`,userAgent:navigator.userAgent}})).report;return p(e),e}catch{return s(i.collectFailed),null}finally{d(!1)}},v=async()=>{let e=await _();if(!e)return!1;let t=await il(e.markdown);return l(t?`copied`:`failed`),t},y=async()=>{let e=await _();if(!e)return;e.markdown.length>6e3&&await v();let t=await uY(lY(e,i.githubTruncated));s(t?null:i.openFailed)};return(0,$.jsx)(`main`,{className:`flex min-h-dvh items-center justify-center bg-surface-base px-5 py-12 text-fg`,children:(0,$.jsxs)(`section`,{className:`w-full max-w-lg rounded-2xl border border-edge bg-surface-panel p-6 shadow-surface sm:p-8`,children:[(0,$.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.18em] text-accent`,children:i.eyebrow}),(0,$.jsx)(`h1`,{className:`mt-3 text-2xl font-semibold tracking-tight`,children:i.title}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:i.description}),(0,$.jsxs)(`div`,{className:`mt-6 flex flex-col gap-2 sm:flex-row`,children:[(0,$.jsx)(X,{className:`sm:flex-1`,variant:`primary`,onClick:()=>void g(),children:i.download}),(0,$.jsx)(X,{className:`sm:flex-1`,onClick:()=>window.location.reload(),children:i.reload})]}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-col gap-2 sm:flex-row`,children:[(0,$.jsx)(X,{className:`sm:flex-1`,variant:`ghost`,disabled:u,onClick:()=>void v(),children:u?i.collecting:i.copyReport}),(0,$.jsx)(X,{className:`sm:flex-1`,variant:`ghost`,disabled:u,onClick:()=>void y(),children:u?i.collecting:i.reportIssue})]}),c?(0,$.jsx)(`p`,{className:`mt-4 rounded-xl px-3 py-2 text-sm ${c===`copied`?`bg-accent-soft text-accent`:`bg-warning-soft text-warning`}`,role:`status`,children:c===`copied`?i.copied:i.copyFailed}):null,o?(0,$.jsx)(`p`,{className:`mt-4 rounded-xl bg-warning-soft px-3 py-2 text-sm text-warning`,role:`alert`,children:o}):null,(0,$.jsxs)(`details`,{className:`mt-6 border-t border-edge pt-4 text-xs text-fg-subtle`,open:!0,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer select-none font-medium text-fg-muted`,children:i.details}),(0,$.jsx)(`p`,{className:`mt-2 leading-5 text-warning`,children:i.reportHint}),(0,$.jsx)(`pre`,{className:`mt-3 max-h-40 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-surface-base p-3 font-mono leading-5`,children:h})]})]})})}function tZ(){let e=(0,Q.c)(2),t=g(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(eZ,{error:t,source:`route`}),e[0]=t,e[1]=n),n}var nZ=class extends Z.Component{state={error:null,hasError:!1};static getDerivedStateFromError(e){return{error:e,hasError:!0}}componentDidCatch(e,t){console.error(`Uncaught renderer error`,e,t.componentStack),this.setState({componentStack:t.componentStack??void 0})}render(){return this.state.hasError?(0,$.jsx)(eZ,{componentStack:this.state.componentStack,error:this.state.error,source:`react`}):this.props.children}},rZ=(0,Z.memo)(function(e){let t=(0,Q.c)(19),{className:n}=e,r=E(iZ),i;t[0]===r?i=t[1]:(i=P(r),t[0]=r,t[1]=i);let a=i.settingsMode,o=sd(aZ),s=sd(oZ),c;t[2]===n?c=t[3]:(c=Y(`shrink-0 border-t border-edge-subtle/80 px-4 py-3`,n),t[2]=n,t[3]=c);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(Ao,{className:`mt-0.5 size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[4]=l):l=t[4];let u;t[5]===a.toggleLabel?u=t[6]:(u=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-sm font-medium text-fg`,children:a.toggleLabel}),t[5]=a.toggleLabel,t[6]=u);let d;t[7]===s?d=t[8]:(d=e=>s(e.target.checked),t[7]=s,t[8]=d);let f;t[9]!==a.toggleAria||t[10]!==o||t[11]!==d?(f=(0,$.jsx)(`input`,{type:`checkbox`,className:`ui-checkbox mt-0.5 shrink-0`,checked:o,onChange:d,"aria-label":a.toggleAria}),t[9]=a.toggleAria,t[10]=o,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==u||t[14]!==f?(p=(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-xl bg-surface-hover/35 px-3 py-2.5 transition-colors hover:bg-surface-hover/55 dark:bg-surface-hover/20 dark:hover:bg-surface-hover/35`,children:[l,u,f]}),t[13]=u,t[14]=f,t[15]=p):p=t[15];let m;return t[16]!==c||t[17]!==p?(m=(0,$.jsx)(`div`,{className:c,children:p}),t[16]=c,t[17]=p,t[18]=m):m=t[18],m});function iZ(e){return e.language}function aZ(e){return e.mode===`advanced`}function oZ(e){return e.setShowAdvanced}var sZ={sessions:vi,usage:Zg,tracing:W,logs:mi,settingsImports:vi,settingsOverview:W,settingsModels:ca,settingsSearch:wo,settingsAppearance:ik,settingsKeyboardShortcuts:_T,settingsSystem:ko,settingsDesktopPet:Ok,settingsDesktopApp:Wa,settingsAgentBrowser:Ni,settingsComputerUse:Va,settingsPhoneUse:jo,settingsAgentDefaults:ca,settingsGateway:Ni,settingsRuntimes:Po,settingsDevices:jo,settingsTunnel:kA,settingsShares:qt};function cZ(e){let t=(0,Q.c)(6),{tab:n,className:r}=e;if(n===`settingsPersonal`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(vu,{variant:`avatar`,className:`size-full`}),t[0]=e):e=t[0];let n;return t[1]===r?n=t[2]:(n=(0,$.jsx)(`span`,{className:r,"aria-hidden":!0,children:e}),t[1]=r,t[2]=n),n}let i=sZ[n],a;return t[3]!==i||t[4]!==r?(a=(0,$.jsx)(i,{className:r,strokeWidth:1.75,"aria-hidden":!0}),t[3]=i,t[4]=r,t[5]=a):a=t[5],a}function lZ(e){let t=(0,Q.c)(34),{navLinkClassName:n,showAdvanced:r}=e,i=r===void 0||r,a=E(uZ),o;t[0]===a?o=t[1]:(o=P(a),t[0]=a,t[1]=o);let s=o,c=$s(),l,u,d,f,p;if(t[2]!==s||t[3]!==n||t[4]!==i||t[5]!==c){p=Symbol.for(`react.early_return_sentinel`);bb0:{let e=dZ(c);if(!i){p=null;break bb0}t[11]===s.settingsNavGroups.extensions?f=t[12]:(f=(0,$.jsx)(`p`,{className:`px-4 pb-1 pt-2 text-[11px] font-semibold uppercase tracking-wider text-fg-muted`,children:s.settingsNavGroups.extensions}),t[11]=s.settingsNavGroups.extensions,t[12]=f),l=`flex flex-col gap-0.5`;let r;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(Fh,{className:`size-5 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=r):r=t[13];let a;t[14]===s.extensionDebug.nav?a=t[15]:(a=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:s.extensionDebug.nav}),t[14]=s.extensionDebug.nav,t[15]=a),t[16]!==n||t[17]!==a?(u=(0,$.jsxs)(m,{to:`/settings/extensions/debug`,className:n,children:[r,a]}),t[16]=n,t[17]=a,t[18]=u):u=t[18];let o;t[19]===n?o=t[20]:(o=e=>{let{extension:t,panel:r}=e;return(0,$.jsxs)(m,{to:`/settings/ext/${t.id}/${r.id}`,className:n,children:[(0,$.jsx)(mo,{className:`size-5 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:r.title})]},`${t.id}:${r.id}`)},t[19]=n,t[20]=o),d=e.map(o)}t[2]=s,t[3]=n,t[4]=i,t[5]=c,t[6]=l,t[7]=u,t[8]=d,t[9]=f,t[10]=p}else l=t[6],u=t[7],d=t[8],f=t[9],p=t[10];if(p!==Symbol.for(`react.early_return_sentinel`))return p;let h;if(t[21]!==n||t[22]!==c){let e;t[24]===n?e=t[25]:(e=e=>(0,$.jsxs)(m,{to:`/settings/ext/${e.id}`,className:n,children:[(0,$.jsx)(mo,{className:`size-5 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})]},`${e.id}:config`),t[24]=n,t[25]=e),h=fZ(c).map(e),t[21]=n,t[22]=c,t[23]=h}else h=t[23];let g;t[26]!==l||t[27]!==u||t[28]!==d||t[29]!==h?(g=(0,$.jsxs)(`div`,{className:l,children:[u,d,h]}),t[26]=l,t[27]=u,t[28]=d,t[29]=h,t[30]=g):g=t[30];let _;return t[31]!==f||t[32]!==g?(_=(0,$.jsxs)(`div`,{children:[f,g]}),t[31]=f,t[32]=g,t[33]=_):_=t[33],_}function uZ(e){return e.language}function dZ(e){let t=[];for(let n of e){let e=n.ui?.contributions?.settingsPanels;if(e)for(let r of e)t.push({extension:n,panel:r})}return t.sort((e,t)=>{let n=e.panel.order??999,r=t.panel.order??999;return n===r?e.panel.title.localeCompare(t.panel.title):n-r}),t}function fZ(e){return e.filter(e=>(!!e.hasConfigSchema||nc(e))&&!(Array.isArray(e.ui?.contributions?.settingsPanels)&&e.ui.contributions.settingsPanels.length>0))}var pZ=`settingsBackPath`;function mZ(e){if(!e||typeof e!=`object`)return`/chat`;let t=e[pZ];if(typeof t!=`string`)return`/chat`;let n=t.trim();return!n.startsWith(`/`)||n.startsWith(`//`)?`/chat`:n}var hZ=`xopc-web-settings-rail-width-px`;function gZ(e){return Math.min(360,Math.max(192,Math.round(e)))}function _Z(){try{let e=globalThis.localStorage?.getItem(hZ);if(e==null)return gZ(228);let t=Number.parseInt(e,10);return gZ(Number.isFinite(t)?t:228)}catch{return gZ(228)}}function vZ(e){try{globalThis.localStorage?.setItem(hZ,String(e))}catch{}}var yZ=O((e,t)=>({widthPx:_Z(),setWidthPx:n=>{let r=gZ(n);t().widthPx!==r&&(e({widthPx:r}),queueMicrotask(()=>vZ(r)))}}));function bZ({isActive:e}){return Y(`touch-target flex w-full shrink-0 items-center gap-2.5 rounded-xl px-4 py-2 text-sm font-medium leading-6 transition-colors duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,e?`bg-surface-active text-fg [&_svg]:text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`)}var xZ=Y(`touch-target inline-flex max-w-full items-center gap-2 rounded-xl px-3 py-2 text-sm font-medium transition-colors duration-200 ease-out`,`text-fg-muted hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`sm:px-4`),SZ=Y(`inline-flex size-11 shrink-0 items-center justify-center rounded-xl text-fg-muted transition-colors duration-200 ease-out`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,bl);function CZ(e,t){return e.tabs.filter(e=>e===`settingsComputerUse`&&!Hl()||!XK(e,t)?!1:!Bl.has(e)||Vl())}function wZ(e){let t=(0,Q.c)(28),{group:n,groupIndex:r,language:i,location:a,settingsMode:o,personalName:s}=e,c;t[0]===i?c=t[1]:(c=P(i),t[0]=i,t[1]=c);let l=c,u,d,f,p;if(t[2]!==n||t[3]!==r||t[4]!==i||t[5]!==a||t[6]!==l||t[7]!==s||t[8]!==o){p=Symbol.for(`react.early_return_sentinel`);bb0:{let e=CZ(n,o);if(e.length===0){p=null;break bb0}let c=r===0&&`pt-0`,h;t[13]===c?h=t[14]:(h=Y(`px-4 pb-1 pt-2 text-xs font-medium text-fg-muted`,c),t[13]=c,t[14]=h);let g=l.settingsNavGroups[n.id];t[15]!==h||t[16]!==g?(f=(0,$.jsx)(`p`,{className:h,children:g}),t[15]=h,t[16]=g,t[17]=f):f=t[17],u=`flex flex-col gap-0.5`;let _;t[18]!==i||t[19]!==a||t[20]!==s?(_=e=>(0,$.jsxs)(m,{to:Fl(e),state:a.state,onMouseEnter:()=>hu(Fl(e)),onFocus:()=>hu(Fl(e)),className:t=>{let{isActive:n}=t;return bZ({isActive:n||Nl(e,a.pathname)})},children:[(0,$.jsx)(cZ,{tab:e,className:`size-5 shrink-0 opacity-90`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e===`settingsPersonal`?s:N(i,e)}),e===`settingsPhoneUse`?(0,$.jsx)(gi,{}):null]},e),t[18]=i,t[19]=a,t[20]=s,t[21]=_):_=t[21],d=e.map(_)}t[2]=n,t[3]=r,t[4]=i,t[5]=a,t[6]=l,t[7]=s,t[8]=o,t[9]=u,t[10]=d,t[11]=f,t[12]=p}else u=t[9],d=t[10],f=t[11],p=t[12];if(p!==Symbol.for(`react.early_return_sentinel`))return p;let h;t[22]!==u||t[23]!==d?(h=(0,$.jsx)(`div`,{className:u,children:d}),t[22]=u,t[23]=d,t[24]=h):h=t[24];let g;return t[25]!==f||t[26]!==h?(g=(0,$.jsxs)(`div`,{children:[f,h]}),t[25]=f,t[26]=h,t[27]=g):g=t[27],g}var TZ=(0,Z.memo)(function(){let e=(0,Q.c)(114),t=E(EZ),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n,{displayName:i}=yu(),a=p(),o=sd(DZ),s=yZ(OZ),c=yZ(kZ),[l,u]=(0,Z.useState)(!1),[d,m]=(0,Z.useState)(!1),h=xd(el),g=Ht({runtime:Ve(),sidebarCollapsed:!1,mobileNavOpen:d}),_=h?g.sidebarLeadingInsetClass:``,v;e[2]===c?v=e[3]:(v=e=>{e.preventDefault();let t=e.currentTarget,n=t.parentElement;t.setPointerCapture(e.pointerId),u(!0);let r=e.clientX,i=yZ.getState().widthPx,a=e.pointerId,o=0,s=i,l=i,d=()=>{o=0,l=s,n?.style.setProperty(`--settings-rail-px`,`${l}px`)},f=e=>{s=gZ(i+(e.clientX-r)),o===0&&(o=window.requestAnimationFrame(d))},p=()=>{o!==0&&(window.cancelAnimationFrame(o),d());try{t.releasePointerCapture(a)}catch{}u(!1),c(l),window.removeEventListener(`pointermove`,f),window.removeEventListener(`pointerup`,p),window.removeEventListener(`pointercancel`,p)};window.addEventListener(`pointermove`,f),window.addEventListener(`pointerup`,p),window.addEventListener(`pointercancel`,p)},e[2]=c,e[3]=v);let b=v,x;e[4]===a.state?x=e[5]:(x=mZ(a.state),e[4]=a.state,e[5]=x);let S=x,C=r.sidebar.backToApp,w;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(w=Y(xZ,bl),e[6]=w):w=e[6];let T;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(Ut,{className:`size-4 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),e[7]=T):T=e[7];let D;e[8]===C?D=e[9]:(D=(0,$.jsx)(`span`,{children:C}),e[8]=C,e[9]=D);let O;e[10]!==C||e[11]!==S||e[12]!==D?(O=(0,$.jsxs)(y,{to:S,replace:!1,className:w,title:C,children:[T,D]}),e[10]=C,e[11]=S,e[12]=D,e[13]=O):O=e[13];let k=O,A;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(A=Rl.map(AZ),e[14]=A):A=e[14];let j=A,M;if(e[15]!==a.pathname||e[16]!==o){let t;e[18]===o?t=e[19]:(t=e=>CZ(e,o),e[18]=o,e[19]=t);let n;e[20]===a.pathname?n=e[21]:(n=e=>Nl(e,a.pathname),e[20]=a.pathname,e[21]=n),M=j.flatMap(t).find(n),e[15]=a.pathname,e[16]=o,e[17]=M}else M=e[17];let F=M,L;e[22]!==a.pathname||e[23]!==o?(L=ZK(a.pathname,o),e[22]=a.pathname,e[23]=o,e[24]=L):L=e[24];let U=!L,W;e[25]!==F||e[26]!==t||e[27]!==r.nav.settings||e[28]!==i?(W=F===`settingsPersonal`?i:F?N(t,F):r.nav.settings,e[25]=F,e[26]=t,e[27]=r.nav.settings,e[28]=i,e[29]=W):W=e[29];let G=W,te;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(te=()=>{m(!1)},e[30]=te):te=e[30];let ne;e[31]!==a.pathname||e[32]!==a.search?(ne=[a.pathname,a.search],e[31]=a.pathname,e[32]=a.search,e[33]=ne):ne=e[33],(0,Z.useEffect)(te,ne);let K=r.nav.settings,q;e[34]!==t||e[35]!==a||e[36]!==i||e[37]!==o?(q=j.map((e,n)=>(0,$.jsx)(wZ,{group:e,groupIndex:n,language:t,location:a,settingsMode:o,personalName:i},e.id)),e[34]=t,e[35]=a,e[36]=i,e[37]=o,e[38]=q):q=e[38];let re=o===`advanced`,ie;e[39]===re?ie=e[40]:(ie=(0,$.jsx)(lZ,{navLinkClassName:bZ,showAdvanced:re}),e[39]=re,e[40]=ie);let ae;e[41]!==q||e[42]!==ie?(ae=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[q,ie]}),e[41]=q,e[42]=ie,e[43]=ae):ae=e[43];let oe;e[44]!==r.nav.settings||e[45]!==ae?(oe=(0,$.jsx)(`nav`,{className:`min-h-0 flex-1 overflow-y-auto overflow-x-hidden px-4 pb-4 pt-2`,"aria-label":K,children:ae}),e[44]=r.nav.settings,e[45]=ae,e[46]=oe):oe=e[46];let se;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsx)(rZ,{}),e[47]=se):se=e[47];let ce;e[48]===oe?ce=e[49]:(ce=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[oe,se]}),e[48]=oe,e[49]=ce);let le=ce,ue;e[50]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(Ut,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),e[50]=ue):ue=e[50];let de;e[51]!==C||e[52]!==S?(de=(0,$.jsx)(y,{to:S,className:SZ,title:C,"aria-label":C,children:ue}),e[51]=C,e[52]=S,e[53]=de):de=e[53];let fe;e[54]===r.nav.settings?fe=e[55]:(fe=(0,$.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-wider text-fg-subtle`,children:r.nav.settings}),e[54]=r.nav.settings,e[55]=fe);let pe;e[56]===G?pe=e[57]:(pe=(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:G}),e[56]=G,e[57]=pe);let me;e[58]!==fe||e[59]!==pe?(me=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[fe,pe]}),e[58]=fe,e[59]=pe,e[60]=me):me=e[60];let he;e[61]===Symbol.for(`react.memo_cache_sentinel`)?(he=()=>m(!0),e[61]=he):he=e[61];let ge;e[62]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,$.jsx)(rD,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),e[62]=ge):ge=e[62];let _e;e[63]!==r.nav.settings||e[64]!==d?(_e=(0,$.jsx)(`button`,{type:`button`,className:SZ,onClick:he,"aria-label":r.nav.settings,"aria-expanded":d,children:ge}),e[63]=r.nav.settings,e[64]=d,e[65]=_e):_e=e[65];let ve;e[66]===Symbol.for(`react.memo_cache_sentinel`)?(ve=(0,$.jsx)(I,{className:`xopc-mobile-nav-overlay fixed inset-0 z-[75] bg-scrim/45 backdrop-blur-[1px] md:hidden`}),e[66]=ve):ve=e[66];let ye;e[67]===r.nav.settings?ye=e[68]:(ye=(0,$.jsx)(H,{className:`sr-only`,children:r.nav.settings}),e[67]=r.nav.settings,e[68]=ye);let be;e[69]===G?be=e[70]:(be=(0,$.jsx)(R,{className:`sr-only`,children:G}),e[69]=G,e[70]=be);let J;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,$.jsx)(Zo,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),e[71]=J):J=e[71];let xe;e[72]===r.nav.settings?xe=e[73]:(xe=(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:SZ,"aria-label":r.nav.settings,children:J})}),e[72]=r.nav.settings,e[73]=xe);let Se;e[74]!==k||e[75]!==xe?(Se=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 px-4 pb-2 pt-4`,children:[k,xe]}),e[74]=k,e[75]=xe,e[76]=Se):Se=e[76];let Ce;e[77]!==le||e[78]!==ye||e[79]!==be||e[80]!==Se?(Ce=(0,$.jsxs)(B,{children:[ve,(0,$.jsxs)(V,{className:`xopc-mobile-nav-content app-chrome-sidebar fixed inset-y-0 left-0 z-[76] flex w-[min(20rem,calc(100vw-3rem))] flex-col bg-surface-rail shadow-float outline-none md:hidden`,children:[ye,be,Se,le]})]}),e[77]=le,e[78]=ye,e[79]=be,e[80]=Se,e[81]=Ce):Ce=e[81];let we;e[82]!==d||e[83]!==Ce?(we=(0,$.jsx)(ee,{open:d,onOpenChange:m,children:Ce}),e[82]=d,e[83]=Ce,e[84]=we):we=e[84];let Te=l&&`settings-page-rail-resizing`,Ee;e[85]===Te?Ee=e[86]:(Ee=Y(`app-chrome-sidebar relative hidden shrink-0 flex-col bg-surface-rail md:flex`,`md:h-full md:min-h-0 md:shrink-0 md:overflow-hidden`,`settings-page-rail`,Te),e[85]=Te,e[86]=Ee);let De=`${s}px`,Oe;e[87]===De?Oe=e[88]:(Oe={"--settings-rail-px":De},e[87]=De,e[88]=Oe);let ke=Oe,Ae=Y(`flex shrink-0 items-center justify-between gap-2 pb-2 pt-4`,g.sidebarChromeDraggable&&`[-webkit-app-region:drag]`,_,h&&g.sidebarLeadingInsetClass?`pr-4`:`px-4`),je;e[89]!==k||e[90]!==Ae?(je=(0,$.jsx)(`div`,{className:Ae,children:k}),e[89]=k,e[90]=Ae,e[91]=je):je=e[91];let Me=r.sidebar.resizeHandleAria,Ne=l&&`bg-surface-hover/30 before:bg-edge/80! dark:before:bg-edge/85!`,Pe;e[92]===Ne?Pe=e[93]:(Pe=Y(`pointer-events-auto absolute right-0 top-0 z-10 hidden h-full w-2 shrink-0 cursor-col-resize md:block`,`before:content-[''] before:pointer-events-none before:absolute before:left-1/2 before:top-0 before:z-0 before:h-full before:w-px before:-translate-x-1/2`,`before:bg-transparent before:transition-[background-color] before:duration-150`,`hover:bg-surface-hover/20 hover:before:bg-edge/65 dark:hover:before:bg-edge/75`,Ne,`transition-[background-color] duration-150`,`touch-none select-none`,bl),e[92]=Ne,e[93]=Pe);let Fe;e[94]!==r.sidebar.resizeHandleAria||e[95]!==b||e[96]!==Pe?(Fe=(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":Me,onPointerDown:b,className:Pe}),e[94]=r.sidebar.resizeHandleAria,e[95]=b,e[96]=Pe,e[97]=Fe):Fe=e[97];let Ie;e[98]!==le||e[99]!==Ee||e[100]!==ke||e[101]!==je||e[102]!==Fe?(Ie=(0,$.jsxs)(`div`,{className:Ee,style:ke,children:[je,le,Fe]}),e[98]=le,e[99]=Ee,e[100]=ke,e[101]=je,e[102]=Fe,e[103]=Ie):Ie=e[103];let Le;e[104]!==t||e[105]!==U?(Le=U?(0,$.jsxs)(`div`,{className:`p-5`,children:[(0,$.jsx)(bd,{title:t===`zh`?`高级设置`:`Advanced settings`,summary:t===`zh`?`此页面用于自定义运行环境或诊断服务。显示高级设置后可继续访问当前页面。`:`This page contains environment or service diagnostics. Show advanced settings to continue to this destination.`,children:null}),(0,$.jsx)(y,{to:`/settings/overview`,className:`mt-4 inline-block text-sm text-accent-fg hover:underline`,children:t===`zh`?`返回设置总览`:`Back to settings overview`})]}):null,e[104]=t,e[105]=U,e[106]=Le):Le=e[106];let Re;e[107]===Symbol.for(`react.memo_cache_sentinel`)?(Re=(0,$.jsx)(f,{}),e[107]=Re):Re=e[107];let ze;e[108]!==a.pathname||e[109]!==U?(ze=(0,$.jsx)(`div`,{hidden:U,className:`settings-content-enter min-h-full`,children:Re},a.pathname),e[108]=a.pathname,e[109]=U,e[110]=ze):ze=e[110];let Be;return e[111]!==Le||e[112]!==ze?(Be=(0,$.jsxs)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain bg-surface-panel scrollbar-gutter-both`,children:[Le,ze]}),e[111]=Le,e[112]=ze,e[113]=Be):Be=e[113],(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden md:flex-row`,children:[(0,$.jsxs)(`div`,{className:Y(`flex shrink-0 items-center gap-2 border-b border-edge-subtle bg-surface-panel px-3 py-2 md:hidden`,g.mainHeaderDraggable&&`[-webkit-app-region:drag]`),children:[de,me,_e]}),we,Ie,Be]})});function EZ(e){return e.language}function DZ(e){return e.mode}function OZ(e){return e.widthPx}function kZ(e){return e.setWidthPx}function AZ(e){return Vl()&&e.id===`system`?{...e,tabs:[...e.tabs,...Il.tabs]}:e}var jZ=(0,Z.memo)(function(e){let t=(0,Q.c)(24),{children:n}=e,r=b(),i=p(),a=E(MZ),o;t[0]===a?o=t[1]:(o=P(a),t[0]=a,t[1]=o);let s=o,c;t[2]===i.state?c=t[3]:(c=mZ(i.state),t[2]=i.state,t[3]=c);let l=c,u=xd(el),d=(0,Z.useRef)(null),f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(I,{className:`absolute inset-0 z-40 bg-scrim/55 backdrop-blur-[2px] dark:bg-black/50`}),t[4]=f):f=t[4];let m=f,h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=Y(`relative z-50 flex min-h-0 flex-1 flex-col overflow-hidden bg-surface-overlay`,`max-md:shadow-elevated`,`md:m-3 md:max-h-[calc(100dvh-1.5rem)] md:rounded-2xl md:border md:border-edge md:shadow-elevated`,`settings-sheet-enter`),t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>{let t=document.querySelectorAll(`[data-state="open"]:is([role="dialog"], [role="alertdialog"], [role="menu"], [role="listbox"])`);Array.from(t).some(e=>e!==d.current&&!e.contains(d.current)&&e.getClientRects().length>0)&&e.preventDefault()},t[6]=g):g=t[6];let _;t[7]===s.nav.settings?_=t[8]:(_=(0,$.jsx)(H,{className:`sr-only`,children:s.nav.settings}),t[7]=s.nav.settings,t[8]=_);let v;t[9]===n?v=t[10]:(v=(0,$.jsx)($n,{layer:`page`,children:n}),t[9]=n,t[10]=v);let y;t[11]!==s.nav.settings||t[12]!==_||t[13]!==v?(y=(0,$.jsxs)($.Fragment,{children:[m,(0,$.jsxs)(V,{ref:d,className:h,"aria-modal":`true`,"aria-label":s.nav.settings,"aria-describedby":void 0,onEscapeKeyDown:g,children:[_,v]})]}),t[11]=s.nav.settings,t[12]=_,t[13]=v,t[14]=y):y=t[14];let x=y,S;t[15]!==u||t[16]!==x?(S=u?(0,wd.createPortal)((0,$.jsx)(`div`,{className:Y(`fixed inset-0 flex min-h-0 flex-col bg-surface-base`,nl),children:x}),document.body):(0,$.jsx)(`div`,{className:`relative flex min-h-0 min-h-[100dvh] flex-1 flex-col md:min-h-0`,children:x}),t[15]=u,t[16]=x,t[17]=S):S=t[17];let C=S,w;t[18]!==l||t[19]!==r?(w=e=>{e||r(l)},t[18]=l,t[19]=r,t[20]=w):w=t[20];let T;return t[21]!==C||t[22]!==w?(T=(0,$.jsx)(ee,{open:!0,onOpenChange:w,children:C}),t[21]=C,t[22]=w,t[23]=T):T=t[23],T});function MZ(e){return e.language}function NZ(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col overflow-hidden`,children:(0,$.jsx)(f,{})}),e[0]=t):t=e[0],t}var PZ=`:conversationId?`;function FZ(){let e=(0,Q.c)(5),{taskId:t}=d(),n=t===void 0?``:t,{data:r,error:i,isLoading:a,conversationLoading:o,conversationError:s}=bt(n),c=r?.conversation.activeConversationId??null;if(a||o||r&&!c&&!s){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{className:`flex h-full flex-col gap-4 p-6`,"aria-busy":!0,children:[(0,$.jsx)($o,{className:`h-10 w-64`}),(0,$.jsx)($o,{className:`min-h-0 flex-1 rounded-xl`})]}),e[0]=t):t=e[0],t}if(i||s||!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:`grid h-full place-items-center text-sm text-danger`,children:`Task conversation could not be loaded.`}),e[1]=t):t=e[1],t}if(!c)return null;let l;return e[2]!==c||e[3]!==n?(l=(0,$.jsx)(At,{conversationId:c,taskId:n}),e[2]=c,e[3]=n,e[4]=l):l=e[4],l}function IZ(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function LZ(e,...t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim())return t.trim()}}function RZ(e){if(!e||e.includes(`
|
|
11
|
-
`)||e.includes(`\r`))return;let t=e.replace(/\\/g,`/`).split(`/`).filter(Boolean).at(-1);if(!(!t||t.length>80||/(?:token|api[_-]?key|password|secret)=/i.test(t)))return t}function zZ(e){if(e)try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.host:void 0}catch{return}}function BZ(e,t){let n=t??Zs(e??``,`running`);return n.category===`planning`?`planning`:n.category===`navigation`||n.category===`web`&&n.action===`read`?`browsing`:n.action===`search`?`researching`:n.category===`file`&&(n.action===`read`||n.action===`list`)?`reading`:n.category===`file`&&(n.action===`edit`||n.action===`write`)?`editing`:n.category===`command`?`running`:`preparing`}function VZ(e,t,n){let r=IZ(t),i=n??Zs(e??``,`running`),a={phase:BZ(e,i)};return a.phase===`reading`||a.phase===`editing`?a.detail=RZ(LZ(r,`path`,`filePath`,`file`)):a.phase===`browsing`&&(a.detail=zZ(LZ(r,`url`,`href`))),(i.category===`command`||i.action===`search`)&&delete a.detail,a}function HZ(e){let t=IZ(e),n=LZ(t,`stage`)?.toLowerCase(),r=n===`compaction`?`compacting`:n===`planning`?`planning`:n===`research`||n===`search`?`researching`:n===`verification`||n===`running`?`running`:n===`waiting`||n===`clarifying`?`waiting`:`preparing`,i=Number(t.completed),a=Number(t.total);return{phase:r,...Number.isFinite(i)&&i>=0?{completed:i}:{},...Number.isFinite(a)&&a>0?{total:a}:{}}}function UZ(e){return e&&typeof e==`object`?e:{}}function WZ(e){return typeof e==`string`&&e.trim()?e.trim():void 0}function GZ(e){let t=WZ(e)?.replace(/```[\s\S]*?```/g,``).replace(/[`*_#>\[\]]/g,``).replace(/https?:\/\/\S+/g,``).replace(/(?:token|authorization|api[_-]?key|password|secret)\s*[:=].*/gi,`[redacted]`).replace(/\s+/g,` `).trim();return t?t.slice(0,96):void 0}var KZ=new Set([`working`,`waiting`,`success`,`error`]),qZ=new Set([`making_progress`,`waiting_safely`,`completed`,`work_preserved`,`details_available`]),JZ=new Set([`open_session`,`confirm`,`review_error`]);function YZ(e){let t=UZ(e);if(t.version!==2||!KZ.has(String(t.taskState))||t.sensitivity!==`public`&&t.sensitivity!==`private`)return;let n=UZ(t.nextAction),r=JZ.has(String(n.type))&&JZ.has(String(n.label))?{type:String(n.type),label:String(n.label)}:void 0,i=UZ(t.progress),a=typeof i.completed==`number`&&typeof i.total==`number`&&i.total>0?{completed:i.completed,total:i.total}:void 0,o=qZ.has(String(t.reassurance))?t.reassurance:void 0,s=t.sensitivity===`public`?GZ(t.publicSummary):void 0;return{version:2,taskState:String(t.taskState),sensitivity:t.sensitivity,...o?{reassurance:o}:{},...r?{nextAction:r}:{},...a?{progress:a}:{},...s?{publicSummary:s}:{}}}function XZ(e,t,n,r){if(!e.conversationId)return null;let i=UZ(e.event),a=UZ(i.payload),o=WZ(i.type);if(!o)return null;let s=WZ(i.runId)??`active`,c={conversationId:e.conversationId,runId:s,sessionLabel:n,sequence:t,timestamp:Date.now()},l=YZ(a.petFeedback??i.petFeedback),u=l?l.publicSummary:GZ(a.publicSummary??i.publicSummary);if(o===`run_start`)return{...c,state:`running`,phase:`preparing`,action:r.tipRunStart,animation:`prepare`,priority:`low`};if(o===`thinking_delta`)return e.activityDetailLevel===`stream`?{...c,state:`running`,phase:`planning`,action:r.tipThinking,animation:`prepare`,priority:`low`}:null;if(o===`tool_start`||o===`tool_update`){let e=WZ(i.toolName)??WZ(a.toolName)??`tool`,t=UZ(a.activity),n=typeof t.category==`string`&&typeof t.action==`string`?t:void 0,o=VZ(e,a.args,n),s=o.phase??`running`,l=Cd(r,e,s,o.detail,n);return{...c,state:`running`,phase:s,...l,detail:o.detail}}if(o===`progress`||o===`compaction`){let e=o===`compaction`?{phase:`compacting`}:HZ(a),t=e.phase??`preparing`,n=Sd(r,t,e.completed,e.total);return{...c,state:`running`,phase:t,...n,feedback:l,progress:l?.progress??(typeof e.completed==`number`&&typeof e.total==`number`?{completed:e.completed,total:e.total}:void 0)}}if(o===`clarify_request`)return{...c,state:`waiting`,phase:`waiting`,action:r.tipWaiting,animation:`wait`,priority:`high`,publicSummary:u,feedback:l};if(o===`assistant_message_start`||o===`assistant_delta`)return{...c,state:`running`,phase:`running`,action:r.tipAssistantDelta,animation:`create`,priority:`low`};if(o===`review_start`||o===`review_delta`)return{...c,state:`running`,phase:`reading`,action:r.tipReview,animation:`read`,priority:`normal`};if(o===`command_output_delta`)return{...c,state:`running`,phase:`running`,action:r.tipCommandDelta,animation:`execute`,priority:`low`};if(o===`assistant_message_end`){let e=WZ(a.presentation)===`narration`?`narration`:`answer`;return{...c,state:`running`,phase:e===`narration`?`preparing`:`running`,action:e===`narration`?r.tipAssistantNarrationDone:r.tipAssistantAnswerDone,animation:e===`narration`?`prepare`:`create`,priority:e===`narration`?`low`:`normal`,publicSummary:u}}if(o===`run_end`){let e=l?.taskState===`error`?`error`:`success`;return{...c,state:e,phase:e===`error`?`waiting`:`running`,action:e===`error`?r.tipError:r.tipComplete,animation:e===`error`?`concern`:`success`,priority:`high`,publicSummary:u,feedback:l}}return o===`error`?{...c,state:`error`,phase:`waiting`,action:r.tipError,animation:`concern`,priority:`high`,publicSummary:u,feedback:l}:null}function ZZ(e){return{searchedWeb:e.toolActionSearch,searchedMemory:e.toolActionSearchMemory,searchedCode:e.toolActionSearchCode,searched:e.toolActionSearchGeneric,readFile:e.toolActionReadFile,runCommand:e.toolActionRunCommand,updatePlan:e.toolActionUpdatePlan,listDirectory:e.toolActionListDirectory,writeFile:e.toolActionWriteFile,editFile:e.toolActionEditFile,openUrl:e.toolActionOpenUrl,fetchUrl:e.toolActionFetchUrl,unknownTool:e.toolActionUnknownNamed,tipRunStart:e.tipRunStart,tipTool:e.tipTool,tipProgress:e.tipProgress,tipValidate:e.tipValidate,tipWaiting:e.tipWaiting,tipThinking:e.tipThinking,tipAssistantDelta:e.tipAssistantDelta,tipCommandDelta:e.tipCommandDelta,tipAssistantNarrationDone:e.tipAssistantNarrationDone,tipAssistantAnswerDone:e.tipAssistantAnswerDone,tipReview:e.tipReview,tipComplete:e.tipComplete,tipError:e.tipError,targetSuffix:e.tipTargetSuffix,progressSuffix:e.tipProgressSuffix}}function QZ(){let e=(0,Q.c)(10),t=E(nQ),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n.desktopPet,i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Map,e[2]=i):i=e[2];let a=(0,Z.useRef)(i),o;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=new Map,e[3]=o):o=e[3];let s=(0,Z.useRef)(o),c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=new Set,e[4]=c):c=e[4];let l=(0,Z.useRef)(c),u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[5]=u):u=e[5];let d=(0,Z.useRef)(u),f;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(f=new Map,e[6]=f):f=e[6];let p=(0,Z.useRef)(f),m=(0,Z.useRef)(null),h,g;return e[7]===r?(h=e[8],g=e[9]):(h=()=>{let e=window.electronAPI?.pet;if(!Vl()||!e)return;let t=t=>{p.current.set(t.conversationId,t),e.sendEvent(t).catch(tQ)},n=()=>{m.current=null;for(let e of d.current.values())t(e);d.current.clear()},i=e=>{let t=s.current.get(e);return!t&&!l.current.has(e)&&(l.current.add(e),x(w(`/api/sessions/${encodeURIComponent(e)}?offset=0&limit=1`)).then(eQ).then(t=>{t&&s.current.set(e,t)}).catch($Z).finally(()=>l.current.delete(e))),t??r.fallbackSessionLabel},o=e=>{let o=e.detail;if(!o.conversationId)return;let s=i(o.conversationId),c=(a.current.get(o.conversationId??``)??0)+1,l=XZ(o,c,s,ZZ(r));if(!l)return;a.current.set(l.conversationId,c);let u=d.current.get(l.conversationId)??p.current.get(l.conversationId),f=l.state===`error`||l.state===`waiting`||l.state===`success`,h=!u||u.runId!==l.runId||u.state!==l.state||u.phase!==l.phase||u.animation!==l.animation||u.action!==l.action;if(f||h){d.current.delete(l.conversationId),t(l);return}d.current.set(l.conversationId,l),m.current===null&&(m.current=window.setTimeout(n,500))};return window.addEventListener(ic,o),()=>{window.removeEventListener(ic,o),m.current!==null&&window.clearTimeout(m.current),m.current=null,d.current.clear()}},g=[r],e[7]=r,e[8]=h,e[9]=g),(0,Z.useEffect)(h,g),null}function $Z(){}async function eQ(e){return e.ok?(await e.json()).session?.name?.trim():void 0}function tQ(){}function nQ(e){return e.language}async function rQ(e){let t=await x(e);if(!t.ok){let e=await t.json().catch(()=>({})),n=M(t.status,t.statusText,e.error?.message);throw Error(n)}return t.json()}function iQ(e){let t=(0,Q.c)(3),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={fetcher:rQ,revalidateOnFocus:!1,dedupingInterval:2e3,shouldRetryOnError:!0,errorRetryCount:2},t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,$.jsx)(sc,{value:r,children:n}),t[1]=n,t[2]=i),i}var aQ=(0,Z.lazy)(()=>Jl().then(e=>({default:e.SessionsPage}))),oQ=(0,Z.lazy)(()=>s(()=>import(`./tracing-settings-page-B4uA4Pnz.js`).then(e=>({default:e.TracingSettingsPage})),__vite__mapDeps([189,1,2,5,6,7,8,9,65,11,35,20,21,22,25,26,27,28,163,12,36,119,43,37,50,46,164,23,24,87,83,95,96,3,4,15,97,98,99,100]))),sQ=(0,Z.lazy)(()=>Gl().then(e=>({default:e.UsageSettingsPage}))),cQ=(0,Z.lazy)(()=>eu().then(e=>({default:e.AutomationsPage}))),lQ=(0,Z.lazy)(()=>s(()=>import(`./setup-interaction-page-BDPte58u.js`).then(e=>({default:e.SetupInteractionPage})),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,65,11,35,20,21,22,25,26,27,28,191,19,23,24,192,116,109,90,167,81,79,164,166,45,51,52,193]))),uQ=(0,Z.lazy)(()=>s(()=>import(`./mcp-conversation-setup-page-Dwx4TuIr.js`).then(e=>({default:e.McpConversationSetupPage})),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,35,11,163,12,36,119,43,20,21,37,50,46,164,171,195,191,19,22,23,24]))),dQ=(0,Z.lazy)(()=>cu().then(e=>({default:e.BrowserAutomationsPage}))),fQ=(0,Z.lazy)(()=>au().then(e=>({default:e.HomePage}))),pQ=(0,Z.lazy)(()=>Yl().then(e=>({default:e.TaskDetailPage}))),mQ=(0,Z.lazy)(()=>Ql().then(e=>({default:e.ProjectsPage}))),hQ=(0,Z.lazy)(()=>pu().then(e=>({default:e.ProjectDetailPage}))),gQ=(0,Z.lazy)(()=>tu().then(e=>({default:e.NotesPage}))),_Q=(0,Z.lazy)(()=>s(()=>import(`./imports-page-CVnoGUyp.js`).then(e=>({default:e.ImportsPage})),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,197,11,35,103,14,198,199,61,75,62,19,20,21,24,28,183,22,96,15,97,98]))),vQ=(0,Z.lazy)(()=>s(()=>import(`./capabilities-page-B8UgQ4dD.js`).then(e=>({default:e.CapabilitiesPage})),__vite__mapDeps([152,1,2,4,3,5,6,22,20,21,153,142,154,155,75,11,24,9,25,8,26,27,156]))),yQ=(0,Z.lazy)(()=>Kl().then(e=>({default:e.UserModelPage}))),bQ=(0,Z.lazy)(()=>s(()=>import(`./connector-service-page-BVMEg8n-.js`).then(e=>e.n).then(e=>({default:e.ConnectorServicePage})),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,163,11,12,36,119,43,20,21,37,50,46,164,76,19,22,23,24,201,45,180,28,168,169,39,166,81,79,38]))),xQ=(0,Z.lazy)(()=>mu().then(e=>({default:e.LogsPage}))),SQ=(0,Z.lazy)(()=>su().then(e=>({default:e.SettingsPage}))),CQ=(0,Z.lazy)(()=>uu().then(e=>({default:e.CapabilitiesSettingsPanel}))),wQ=(0,Z.lazy)(()=>du().then(e=>({default:e.AgentBrowserSettingsPage}))),TQ=(0,Z.lazy)(()=>Zl().then(e=>({default:e.PhoneSettingsPage}))),EQ=(0,Z.lazy)(()=>nu().then(e=>({default:e.ComputerSettingsPage}))),DQ=(0,Z.lazy)(()=>iu().then(e=>({default:e.ExtensionPage}))),OQ=(0,Z.lazy)(()=>lu().then(e=>({default:e.ExtensionSettingsPage}))),kQ=(0,Z.lazy)(()=>ru().then(e=>({default:e.ExtensionDebugPage}))),AQ=(0,Z.lazy)(()=>ou().then(e=>({default:e.SharePreviewPage}))),jQ=(0,Z.lazy)(()=>s(()=>import(`./desktop-pet-C1z9YDEg.js`).then(e=>({default:e.DesktopPetPage})),__vite__mapDeps([202,1,2,5,6,203,3,4,103,11,19,204,205,138,206,20,21,207]))),MQ=(0,Z.lazy)(()=>fu().then(e=>({default:e.LocalAppsPage}))),NQ=(0,Z.lazy)(()=>$l().then(e=>({default:e.LocalAppWorkbenchPage}))),PQ=(0,Z.lazy)(()=>Wl().then(e=>({default:e.ProductOpenPage}))),FQ=(0,Z.lazy)(()=>Xl().then(e=>({default:e.WorkDiscoveryPage}))),IQ=(0,Z.lazy)(()=>s(()=>import(`./personal-page-Cvd-v9kT.js`).then(e=>({default:e.PersonalPage})),__vite__mapDeps([208,1,2,3,4,5,6,209,7,8,9,11,210,64,116,211,212,115,213,12,214,13,15,215,121,14,122,74,19,20,21,29,30,31,32,37,123,124,125,216,35,36,22,43,60,126,127,217,218,97,175,176,130,23,24,148,219,103,10,220,221,50,46,88,65,25,26,27,28,100,222,223,66,224,68,225,118,226,105,198,69,106,227,119,195,228,72,229,49,109,230,75,136,78,79,140,231,232,39,33,87,83,233,234,134,143,58,42,235,171,16,236,237,238,172,239,240,163,164,201,45,168,169,166,81,38,62,76,128,18,174,77,241,34,177,132,133,131,135,137,138,139,110,111,141,242,243,244,245,94,246,147,247,248,249,250,251,80,252,178,90,253,254,255,205,179,142,85,86,84,256,180,257,258,158,89,259,260,144,117,59,145,146,261,262,263,181,149,156,40,264,265,266,160,161,267,268,269,184,270])));function LQ(){let e=(0,Q.c)(3),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,$.jsx)($o,{className:`h-5 w-44`}),(0,$.jsx)($o,{className:`h-3 w-64 max-w-full`})]}),(0,$.jsx)($o,{className:`h-9 w-24 shrink-0 rounded-lg`})]}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:Array.from({length:4}).map(zQ)}),e[1]=n):n=e[1];let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-surface-panel`,"aria-busy":!0,children:(0,$.jsxs)(`div`,{className:`flex w-full flex-col gap-5 px-3 py-6 sm:px-5 xl:px-6`,children:[t,n,(0,$.jsx)(`div`,{className:`grid gap-3 lg:grid-cols-3`,children:Array.from({length:6}).map(RQ)})]})}),e[2]=r):r=e[2],r}function RQ(e,t){return(0,$.jsx)($o,{className:`h-36 rounded-lg`},t)}function zQ(e,t){return(0,$.jsx)($o,{className:`h-20 rounded-lg`},t)}function BQ(){let e=(0,Q.c)(4),t,n,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)($o,{className:`h-8 w-48 max-w-full`}),n=(0,$.jsx)($o,{className:`mt-6 h-36 rounded-xl`}),r=(0,$.jsx)($o,{className:`mt-4 h-24 rounded-xl`}),e[0]=t,e[1]=n,e[2]=r):(t=e[0],n=e[1],r=e[2]);let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"aria-busy":!0,children:(0,$.jsxs)(`div`,{className:`w-full flex-1 px-3 py-8 sm:px-5 xl:px-6`,children:[t,n,r,(0,$.jsxs)(`div`,{className:`mt-6 grid gap-3 sm:grid-cols-2`,children:[(0,$.jsx)($o,{className:`h-20 rounded-xl`}),(0,$.jsx)($o,{className:`h-20 rounded-xl`})]})]})}),e[3]=i):i=e[3],i}function VQ(){let e=(0,Q.c)(7),t=E(HQ)===`zh`,n=t?`页面不存在`:`Page not found`,r;e[0]===n?r=e[1]:(r=(0,$.jsx)(`h1`,{className:`text-xl font-semibold`,children:n}),e[0]=n,e[1]=r);let i=t?`返回工作台`:`Back to work`,a;e[2]===i?a=e[3]:(a=(0,$.jsx)(y,{to:`/`,className:`text-accent-fg hover:underline`,children:i}),e[2]=i,e[3]=a);let o;return e[4]!==r||e[5]!==a?(o=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4 p-8 text-fg`,children:[r,a]}),e[4]=r,e[5]=a,e[6]=o):o=e[6],o}function HQ(e){return e.language}var UQ=v([{path:`/desktop-pet`,errorElement:(0,$.jsx)(tZ,{}),element:(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(jQ,{})})},{path:`/share/:token`,errorElement:(0,$.jsx)(tZ,{}),element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(AQ,{})})},{path:`/`,element:(0,$.jsx)(zX,{}),errorElement:(0,$.jsx)(tZ,{}),children:[{path:`configuration/:scene/:setupId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(lQ,{})})},{path:`mcp-setup/:setupId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(uQ,{})})},{path:`personal`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(IQ,{})})},{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(fQ,{})})},{path:`open`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(PQ,{})})},{path:`onboarding/workspace`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(FQ,{})})},{path:`chat`,element:(0,$.jsx)(NZ,{}),children:[{path:`task/:taskId`,element:(0,$.jsx)(FZ,{})},{path:PZ,element:(0,$.jsx)(At,{})}]},{path:`automations`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(cQ,{})})},{path:`browser-automations`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(dQ,{})})},{path:`user-model`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(yQ,{})})},{path:`tasks/:taskId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(pQ,{})})},{path:`projects`,children:[{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(mQ,{})})},{path:`:projectId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(hQ,{})})},{path:`:projectId/:tabId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(hQ,{})})},{path:`:projectId/notes/:noteId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(hQ,{})})}]},{path:`notes`,children:[{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(gQ,{})})},{path:`:noteId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(gQ,{})})}]},{path:`capabilities/:section?/:detailId?`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(vQ,{})})},{path:`settings/connector-service`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(bQ,{})})},{path:`local-apps`,children:[{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(MQ,{})})},{path:`:appId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(NQ,{})})}]},{path:`extensions/:extensionId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(DQ,{})})},{path:`extensions/:extensionId/:pageId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(DQ,{})})},{path:`settings`,element:(0,$.jsx)(jZ,{children:(0,$.jsx)(TZ,{})}),children:[{index:!0,element:(0,$.jsx)(_,{to:`overview`,replace:!0})},{path:`imports`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(_Q,{})})},{path:`sessions`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(aQ,{})})},{path:`tracing`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(oQ,{})})},{path:`usage`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(sQ,{})})},{path:`logs`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(LQ,{}),children:(0,$.jsx)(xQ,{})})},{path:`phone-use`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(TQ,{})})},{path:`computer-use`,element:Hl()?(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(EQ,{})}):(0,$.jsx)(F,{kind:`desktop`,backTo:`/settings/overview`})},{path:`agent-browser`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(wQ,{})})},{path:`capabilities/:capability`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(CQ,{})})},{path:`extensions/debug`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(kQ,{})})},{path:`ext/:extensionId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(OQ,{})})},{path:`ext/:extensionId/:panelId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(OQ,{})})},{path:`:section`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(BQ,{}),children:(0,$.jsx)(SQ,{})})}]},{path:`*`,element:(0,$.jsx)(VQ,{})}]}]);function WQ(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,Z.useEffect)(GQ,t),null}function GQ(){let e=kl.persist.onFinishHydration(qQ),t=Tl.persist.onFinishHydration(KQ),n=j(),r=Al();return()=>{e?.(),t?.(),n(),r()}}function KQ(){Dl()}function qQ(){jl()}function JQ(){let e=(0,Q.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(WQ,{}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(iQ,{children:(0,$.jsx)(rc,{children:(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[t,(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col *:min-h-0 *:flex-1`,children:[(0,$.jsx)(QZ,{}),(0,$.jsx)(Td,{router:UQ})]})]})})}),e[1]=n):n=e[1],n}function YQ(e){return e instanceof DOMException&&e.name===`AbortError`}function XQ(e){if(e.error!==void 0&&e.error!==null)return e.error;let t=e.filename?` (${e.filename}${e.lineno?`:${e.lineno}:${e.colno}`:``})`:``;return Error(`${e.message||`Unknown window error`}${t}`)}function ZQ(e){let t=!1,n=n=>{if(t||!n.message&&n.error==null||n.error==null&&(n.message===`ResizeObserver loop completed with undelivered notifications.`||n.message===`ResizeObserver loop limit exceeded`))return;let r=XQ(n);YQ(r)||(t=!0,n.preventDefault(),e(r,`window.error`))},r=n=>{t||YQ(n.reason)||(t=!0,n.preventDefault(),e(n.reason??Error(`Unhandled promise rejection`),`unhandledrejection`))};return window.addEventListener(`error`,n),window.addEventListener(`unhandledrejection`,r),()=>{window.removeEventListener(`error`,n),window.removeEventListener(`unhandledrejection`,r)}}async function QQ(){let e=(0,fz.createRoot)(document.getElementById(`root`)),t=!1,n=(n,r)=>{t||(t=!0,console.error(`Renderer fatal error (${r})`,n),e.render((0,$.jsx)(eZ,{error:n,source:r})))};ZQ(n);try{C(k()),Ml(),El(),await S(),e.render((0,$.jsx)(Z.StrictMode,{children:(0,$.jsx)(nZ,{children:(0,$.jsx)(JQ,{})})}))}catch(e){n(e,`bootstrap`)}}QQ();
|
|
6
|
+
`);let c=r.split(gV);r=c.pop()??``;for(let e of c)e.length&&o(e);return e()},a=await e();if(a)return a}finally{t.releaseLock()}return i??{ok:!1,error:`no-result`,message:`Update stream ended without a result`,status:0}}var kV=`xopc.updateReminder.dismissed`,AV=typeof window<`u`&&window.electronAPI?.updater!==void 0,jV=`xopc:electron-update-recheck`;function MV(){if(typeof window>`u`)return{};try{let e=localStorage.getItem(kV);if(!e)return{};let t=JSON.parse(e);return t&&typeof t==`object`?t:{}}catch{return{}}}var NV=160;function PV(e){let t=e.trim();return t.length<=NV?t:`${t.slice(0,NV-1)}…`}function FV(){let{npm:e,electron:t,isElectron:n,electronQuitAndInstall:r,runNpmUpdate:i,npmUpdateRunning:a}=TV(),[o,s]=(0,Z.useState)(MV),[c,l]=(0,Z.useState)({downloading:!1,electronError:!1}),[u,d]=(0,Z.useState)(()=>{if(typeof window>`u`||AV)return null;try{let e=sessionStorage.getItem(vV);if(!e)return null;let t=JSON.parse(e),n=typeof t.installedVersion==`string`?t.installedVersion.trim():``;return n?{version:n,automatic:t.automaticRestart===!0}:null}catch{return null}}),f=(0,Z.useRef)(t?.state);f.current!==t?.state&&(f.current=t?.state,t?.state!==`downloading`&&c.downloading&&l(e=>({...e,downloading:!1})),t?.state!==`error`&&c.electronError&&l(e=>({...e,electronError:!1})));let p=(0,Z.useRef)(null);if(u&&e?.currentVersion===u.version&&p.current!==u.version){p.current=u.version;try{sessionStorage.removeItem(vV)}catch{}d(null)}(0,Z.useEffect)(()=>{if(n)return;let e=()=>{try{let e=sessionStorage.getItem(vV);if(!e){d(null);return}let t=JSON.parse(e),n=typeof t.installedVersion==`string`?t.installedVersion.trim():``;d(n?{version:n,automatic:t.automaticRestart===!0}:null)}catch{d(null)}};return e(),window.addEventListener(`xopc:npm-update-installed`,e),()=>window.removeEventListener(`xopc:npm-update-installed`,e)},[n]),(0,Z.useEffect)(()=>{let e=()=>{l(e=>({...e,downloading:!1})),s(e=>{let t={...e};delete t.electronReady;try{localStorage.setItem(kV,JSON.stringify(t))}catch{}return t})};return window.addEventListener(jV,e),()=>window.removeEventListener(jV,e)},[]),(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail?.version?.trim();t&&s(e=>{let n={...e,npm:t};try{localStorage.setItem(kV,JSON.stringify(n))}catch{}return n})};return window.addEventListener(`xopc:npm-update-installed`,e),()=>window.removeEventListener(`xopc:npm-update-installed`,e)},[]);let m=(0,Z.useMemo)(()=>n&&t?.state===`downloaded`&&t.version?o.electronReady===t.version?{kind:`none`}:{kind:`electron-ready`,version:t.version}:n&&t?.state===`downloading`&&!c.downloading?{kind:`electron-downloading`,percent:Math.round(t.percent??0)}:n&&t?.state===`error`&&t.message&&!c.electronError?{kind:`electron-error`,message:PV(t.message)}:!n&&u&&e&&e.currentVersion!==u.version?u.automatic?{kind:`npm-restarting`,version:u.version}:{kind:`npm-restart-required`,version:u.version}:!n&&e?.updateAvailable&&e.latestVersion?o.npm===e.latestVersion?{kind:`none`}:{kind:`npm`,version:e.latestVersion,channel:e.channel}:{kind:`none`},[o.npm,o.electronReady,t,c.downloading,c.electronError,n,e,u]);return{show:m,dismiss:(0,Z.useCallback)(()=>{if(m.kind===`electron-downloading`){l(e=>({...e,downloading:!0}));return}if(m.kind===`electron-error`){l(e=>({...e,electronError:!0}));return}if(m.kind===`npm-restart-required`||m.kind===`npm-restarting`){try{sessionStorage.removeItem(vV)}catch{}d(null);return}if(m.kind===`none`)return;let e={...o};m.kind===`npm`?e.npm=m.version:m.kind===`electron-ready`&&(e.electronReady=m.version);try{localStorage.setItem(kV,JSON.stringify(e))}catch{}s(e)},[o,m]),electronQuitAndInstall:r,runNpmUpdate:i,npmUpdateRunning:a}}var IV={version:`0.0.431`,commit:`0a8cc069fafbc91f31aca0fd1bfd4326b4a073d1`,buildTimeIso:`2026-10-29T03:43:06.060Z`},LV=`https://github.com/xopcai/xopc`,RV=new Intl.DateTimeFormat(`zh-CN`,{year:`numeric`,month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),zV=new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`numeric`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});function BV(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;try{return(t===`zh`?RV:zV).format(n)}catch{return n.toISOString()}}function VV({open:e,onOpenChange:t}){let n=E(e=>e.language),r=P(n),i=r.aboutDialog,a=r.updatePanel,{isElectron:o,electron:s,electronCheck:c,checkNow:l,npm:u,runNpmUpdate:d,npmUpdateRunning:f}=TV(),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(null),{data:x}=_u(async()=>{let e=await D(w(`/health`));return typeof e.version==`string`?e.version:null},[e],{enabled:e,initial:null,errorData:null}),S=(0,Z.useCallback)(e=>{e||(m(!1),g(!1),v(!1),b(null)),t(e)},[t]),C=(0,Z.useCallback)(async()=>{b(null);let e=P(n).updatePanel,t=await d();if(t.ok){_l({tone:`success`,title:e.updateSuccess,message:yV(t.result)?e.updateSuccessAutoRestartDetail:e.updateSuccessDetail,source:n===`zh`?`系统更新`:`System update`,dedupeKey:`system-update`});return}let r=t.error===`git-checkout`?e.updateErrorGit:t.error===`busy`?e.updateErrorBusy:e.updateErrorFailed;b(`${r}: ${t.message}`)},[d,n]),T=IV.commit,O=n===`zh`?`zh-CN`:`en-US`,k=BV(IV.buildTimeIso,O),A=new Date().getFullYear(),j=i.copyright.replace(`{year}`,String(A));return(0,$.jsx)(ee,{open:e,onOpenChange:S,children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[200] bg-scrim`}),(0,$.jsxs)(V,{className:Y(`xopc-dialog-content fixed left-1/2 top-1/2 z-[201] w-[min(100%-2rem,26rem)] -translate-x-1/2 -translate-y-1/2`,`rounded-2xl border border-edge bg-surface-overlay shadow-popover dark:border-edge`),onOpenAutoFocus:e=>e.preventDefault(),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 px-4 pt-3`,"aria-hidden":!0,children:[(0,$.jsx)(`span`,{className:`size-3 rounded-full bg-[#ff5f57]`}),(0,$.jsx)(`span`,{className:`size-3 rounded-full bg-[#febc2e]`}),(0,$.jsx)(`span`,{className:`size-3 rounded-full bg-[#28c840]`})]}),(0,$.jsxs)(`div`,{className:`px-6 pb-2 pt-1`,children:[(0,$.jsx)(`div`,{className:`flex justify-end`,children:(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":i.close,children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:2})})})}),(0,$.jsxs)(`div`,{className:`-mt-2 flex flex-col items-center text-center`,children:[(0,$.jsx)(Sl,{className:`size-[4.5rem]`,alt:r.appBrand}),(0,$.jsx)(H,{className:`mt-3 text-xl font-semibold tracking-tight text-fg`,children:r.appBrand}),(0,$.jsx)(R,{className:`sr-only`,children:i.windowTitle})]}),(0,$.jsxs)(`div`,{className:`mt-6 space-y-3 text-sm`,children:[(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] items-center gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-fg-muted`,children:i.versionLabel}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center justify-end gap-2 sm:justify-start`,children:[(0,$.jsx)(`span`,{className:`font-mono text-[13px] text-fg tabular-nums`,children:IV.version}),(0,$.jsx)(`button`,{type:`button`,className:Y(`shrink-0 rounded-md border border-edge bg-surface-base px-2 py-0.5 text-[11px] font-medium text-fg-muted`,`transition-colors hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`),onClick:()=>{o?(window.dispatchEvent(new CustomEvent(jV)),m(!0),c()):(m(!0),v(!1),g(!0),(async()=>{let e=await l();g(!1),e||v(!0)})())},disabled:o&&[`checking`,`available`,`downloading`,`downloaded`].includes(s?.state??``)||!o&&(h||f),children:o&&s?.state===`checking`||!o&&h?(0,$.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(ha,{className:`size-3 animate-spin`}),i.checkUpdatesChecking]}):i.checkUpdates})]})]}),o&&p&&(0,$.jsx)(HV,{state:s?.state,version:s?.version,percent:s?.percent,d:i}),!o&&p&&(0,$.jsx)(UV,{checking:h,checkFailed:_,npm:u,npmUpdateRunning:f,upgradeError:y,onUpgrade:C,d:i,tp:a}),(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`pt-0.5 text-fg-muted`,children:i.commitLabel}),(0,$.jsx)(`span`,{className:`break-all font-mono text-[11px] leading-snug text-fg`,children:T})]}),(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] items-baseline gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-fg-muted`,children:i.buildDateLabel}),(0,$.jsx)(`span`,{className:`text-right text-[13px] text-fg sm:text-left`,children:k})]}),(0,$.jsxs)(`div`,{className:`grid grid-cols-[5.5rem_1fr] items-baseline gap-x-3 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-fg-muted`,children:i.gatewayVersionLabel}),(0,$.jsx)(`span`,{className:`text-right font-mono text-[13px] text-fg sm:text-left`,children:x??i.gatewayUnavailable})]}),(0,$.jsx)(`p`,{className:`pt-0.5 text-[11px] text-fg-subtle`,children:i.consoleBuildHint})]}),(0,$.jsxs)(`div`,{className:`mt-6 border-t border-edge-subtle pt-4 text-center text-[11px] leading-relaxed text-fg-muted`,children:[(0,$.jsx)(`p`,{children:(0,$.jsx)(`a`,{className:`text-accent-fg underline decoration-accent-fg/40 underline-offset-2 hover:decoration-accent-fg`,href:LV,target:`_blank`,rel:`noopener noreferrer`,children:i.repositoryLink})}),(0,$.jsx)(`p`,{className:`mt-2`,children:j})]})]})]})]})})}function HV(e){let t=(0,Q.c)(29),{state:n,version:r,percent:i,d:a}=e;if(!n||n===`idle`)return null;if(n===`checking`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ha,{className:`size-3.5 animate-spin`}),t[0]=e):e=t[0];let n;return t[1]===a.checkUpdatesChecking?n=t[2]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:a.checkUpdatesChecking})]}),t[1]=a.checkUpdatesChecking,t[2]=n),n}if(n===`not-available`){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(nr,{className:`size-3.5`}),t[3]=e):e=t[3];let n;return t[4]===a.checkUpdatesUpToDate?n=t[5]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-green-600 dark:text-green-400`,children:[e,(0,$.jsx)(`span`,{children:a.checkUpdatesUpToDate})]}),t[4]=a.checkUpdatesUpToDate,t[5]=n),n}if(n===`available`){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(vo,{className:`size-3.5`}),t[6]=e):e=t[6];let n;t[7]!==a.checkUpdatesAvailable||t[8]!==r?(n=a.checkUpdatesAvailable.replace(`{version}`,r??`?`),t[7]=a.checkUpdatesAvailable,t[8]=r,t[9]=n):n=t[9];let i;return t[10]===n?i=t[11]:(i=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-accent-fg`,children:[e,(0,$.jsx)(`span`,{children:n})]}),t[10]=n,t[11]=i),i}if(n===`downloading`){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Ur,{className:`size-3.5 motion-safe:animate-[bounce_1s_ease-out_infinite]`}),t[12]=e):e=t[12];let n=a.checkUpdatesDownloading,r;if(t[13]!==a.checkUpdatesDownloading||t[14]!==i){let e;t[16]===i?e=t[17]:(e=Math.round(i??0),t[16]=i,t[17]=e),r=n.replace(`{percent}`,String(e)),t[13]=a.checkUpdatesDownloading,t[14]=i,t[15]=r}else r=t[15];let o;return t[18]===r?o=t[19]:(o=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:r})]}),t[18]=r,t[19]=o),o}if(n===`downloaded`){let e;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Ur,{className:`size-3.5`}),t[20]=e):e=t[20];let n;t[21]!==a.checkUpdatesDownloaded||t[22]!==r?(n=a.checkUpdatesDownloaded.replace(`{version}`,r??`?`),t[21]=a.checkUpdatesDownloaded,t[22]=r,t[23]=n):n=t[23];let i;return t[24]===n?i=t[25]:(i=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] font-semibold text-accent-fg`,children:[e,(0,$.jsx)(`span`,{children:n})]}),t[24]=n,t[25]=i),i}if(n===`error`){let e;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(tr,{className:`size-3.5`}),t[26]=e):e=t[26];let n;return t[27]===a.checkUpdatesError?n=t[28]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-red-500 dark:text-red-400`,children:[e,(0,$.jsx)(`span`,{children:a.checkUpdatesError})]}),t[27]=a.checkUpdatesError,t[28]=n),n}return null}function UV(e){let t=(0,Q.c)(28),{checking:n,checkFailed:r,npm:i,npmUpdateRunning:a,upgradeError:o,onUpgrade:s,d:c,tp:l}=e;if(n){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ha,{className:`size-3.5 animate-spin`}),t[0]=e):e=t[0];let n;return t[1]===c.checkUpdatesChecking?n=t[2]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:c.checkUpdatesChecking})]}),t[1]=c.checkUpdatesChecking,t[2]=n),n}if(r){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(tr,{className:`size-3.5`}),t[3]=e):e=t[3];let n;return t[4]===c.checkUpdatesError?n=t[5]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-red-500 dark:text-red-400`,children:[e,(0,$.jsx)(`span`,{children:c.checkUpdatesError})]}),t[4]=c.checkUpdatesError,t[5]=n),n}if(a){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ha,{className:`size-3.5 animate-spin`}),t[6]=e):e=t[6];let n;return t[7]===l.updateRunning?n=t[8]:(n=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-fg-muted`,children:[e,(0,$.jsx)(`span`,{children:l.updateRunning})]}),t[7]=l.updateRunning,t[8]=n),n}if(o){let e;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(tr,{className:`mt-0.5 size-3.5 shrink-0`}),t[9]=e):e=t[9];let n;return t[10]===o?n=t[11]:(n=(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-[12px] text-red-500 dark:text-red-400`,role:`alert`,children:[e,(0,$.jsx)(`span`,{children:o})]}),t[10]=o,t[11]=n),n}if(i?.updateAvailable&&i.latestVersion){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(vo,{className:`mt-0.5 size-3.5 shrink-0`}),t[12]=e):e=t[12];let n;t[13]!==i.latestVersion||t[14]!==l.reminderNpm?(n=l.reminderNpm.replace(`{{version}}`,i.latestVersion),t[13]=i.latestVersion,t[14]=l.reminderNpm,t[15]=n):n=t[15];let r;t[16]===n?r=t[17]:(r=(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-[12px] text-accent-fg`,children:[e,(0,$.jsx)(`span`,{children:n})]}),t[16]=n,t[17]=r);let a;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(a=Y(`w-full rounded-lg bg-accent px-3 py-1.5 text-center text-xs font-medium text-on-accent`,`hover:bg-accent/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,`disabled:pointer-events-none disabled:opacity-50`),t[18]=a):a=t[18];let o;t[19]!==s||t[20]!==l.updateNow?(o=(0,$.jsx)(`button`,{type:`button`,onClick:s,className:a,children:l.updateNow}),t[19]=s,t[20]=l.updateNow,t[21]=o):o=t[21];let c;return t[22]!==r||t[23]!==o?(c=(0,$.jsxs)(`div`,{className:`space-y-2`,children:[r,o]}),t[22]=r,t[23]=o,t[24]=c):c=t[24],c}let u;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(nr,{className:`size-3.5`}),t[25]=u):u=t[25];let d;return t[26]===c.checkUpdatesUpToDate?d=t[27]:(d=(0,$.jsxs)(`p`,{className:`flex items-center gap-2 text-[12px] text-green-600 dark:text-green-400`,children:[u,(0,$.jsx)(`span`,{children:c.checkUpdatesUpToDate})]}),t[26]=c.checkUpdatesUpToDate,t[27]=d),d}var WV=Y(`flex w-full items-center gap-2 rounded-lg px-2.5 py-2 text-left text-sm font-medium leading-5 text-fg`,`transition-colors duration-150 ease-out`,`hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-overlay`),GV=Y(`overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-popover`,`dark:border-edge`);function KV(e){let t=(0,Q.c)(14),{selected:n,label:r,onSelect:i}=e,a=n&&`bg-accent-soft text-accent-fg hover:bg-accent-soft`,o;t[0]===a?o=t[1]:(o=Y(`touch-target flex w-full items-center justify-between gap-2 rounded-none px-3 py-2 text-left text-sm font-medium leading-5 text-fg`,`transition-colors duration-150 ease-out hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,a),t[0]=a,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:r}),t[2]=r,t[3]=s);let c=n?`opacity-100`:`opacity-0`,l;t[4]===c?l=t[5]:(l=Y(`size-4 shrink-0`,c),t[4]=c,t[5]=l);let u;t[6]===l?u=t[7]:(u=(0,$.jsx)(Vn,{className:l,strokeWidth:2,"aria-hidden":!0}),t[6]=l,t[7]=u);let d;return t[8]!==i||t[9]!==n||t[10]!==o||t[11]!==s||t[12]!==u?(d=(0,$.jsxs)(`button`,{type:`button`,"aria-pressed":n,className:o,onClick:i,children:[s,u]}),t[8]=i,t[9]=n,t[10]=o,t[11]=s,t[12]=u,t[13]=d):d=t[13],d}function qV(e){let t=(0,Q.c)(220),{onNavigate:n,onAboutClick:r,onSupportClick:i,onDeviceConnectClick:a}=e,[o,s]=(0,Z.useState)(null),[c,l]=(0,Z.useState)(null),u=E($V),d=E(QV),f=kl(ZV),p=kl(XV),m=Tl(YV),h=Tl(JV),g;t[0]===u?g=t[1]:(g=P(u),t[0]=u,t[1]=g);let _=g,v=_.appearanceSettings,b=u===`zh`?v.langOptionZh:v.langOptionEn,x=f===`light`?v.themeOptionLight:f===`dark`?v.themeOptionDark:v.themeOptionSystem,S=m===`compact`?v.fontScaleCompact:m===`large`?v.fontScaleLarge:v.fontScaleDefault,C=typeof window<`u`?window.electronAPI?.pet:void 0,w=!!C,T=c?.visible?v.hideDesktopPet:v.showDesktopPet,D,O;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>{if(!C)return;let e=!1;C.getState().then(t=>{e||l(t)});let t=C.onStateChanged(t=>{e||l(t)});return()=>{e=!0,t()}},O=[C],t[2]=D,t[3]=O):(D=t[2],O=t[3]),(0,Z.useEffect)(D,O);let k;t[4]===c?.visible?k=t[5]:(k=async()=>{C&&(c?.visible?await C.hide():await C.show(),l(await C.getState()))},t[4]=c?.visible,t[5]=k);let A=k,j;t[6]===o?j=t[7]:(j=e=>Y(`absolute left-full top-0 z-[60] min-w-[8.75rem] max-w-[min(calc(100vw-2rem),12rem)]`,`ml-2 sm:ml-2.5`,o===e?`block`:`hidden`),t[6]=o,t[7]=j);let M=j,N;t[8]===o?N=t[9]:(N=e=>Y(`absolute left-full top-0 z-[55] h-full w-8 sm:w-9`,o===e?`pointer-events-auto`:`pointer-events-none`),t[8]=o,t[9]=N);let F=N,I;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>s(null),t[10]=I):I=t[10];let L;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(L=()=>s(`lang`),t[11]=L):L=t[11];let R=o===`lang`&&`bg-surface-hover`,z;t[12]===R?z=t[13]:(z=Y(WV,R),t[12]=R,t[13]=z);let B=o===`lang`,V;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,$.jsx)(Ni,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[14]=V):V=t[14];let H;t[15]===v.languageTitle?H=t[16]:(H=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.languageTitle}),t[15]=v.languageTitle,t[16]=H);let ee;t[17]===b?ee=t[18]:(ee=(0,$.jsx)(`span`,{className:`max-w-20 truncate text-xs font-medium text-fg-muted`,children:b}),t[17]=b,t[18]=ee);let U;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(Wn,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[19]=U):U=t[19];let W;t[20]!==z||t[21]!==B||t[22]!==H||t[23]!==ee?(W=(0,$.jsxs)(`button`,{type:`button`,className:z,"aria-haspopup":`menu`,"aria-expanded":B,children:[V,H,ee,U]}),t[20]=z,t[21]=B,t[22]=H,t[23]=ee,t[24]=W):W=t[24];let G;t[25]===F?G=t[26]:(G=F(`lang`),t[25]=F,t[26]=G);let te;t[27]===G?te=t[28]:(te=(0,$.jsx)(`div`,{className:G,"aria-hidden":!0}),t[27]=G,t[28]=te);let ne;t[29]===M?ne=t[30]:(ne=M(`lang`),t[29]=M,t[30]=ne);let K=u===`en`,q;t[31]===d?q=t[32]:(q=()=>d(`en`),t[31]=d,t[32]=q);let re;t[33]!==v.langOptionEn||t[34]!==K||t[35]!==q?(re=(0,$.jsx)(KV,{selected:K,label:v.langOptionEn,onSelect:q}),t[33]=v.langOptionEn,t[34]=K,t[35]=q,t[36]=re):re=t[36];let ie=u===`zh`,ae;t[37]===d?ae=t[38]:(ae=()=>d(`zh`),t[37]=d,t[38]=ae);let oe;t[39]!==v.langOptionZh||t[40]!==ie||t[41]!==ae?(oe=(0,$.jsx)(KV,{selected:ie,label:v.langOptionZh,onSelect:ae}),t[39]=v.langOptionZh,t[40]=ie,t[41]=ae,t[42]=oe):oe=t[42];let se;t[43]!==re||t[44]!==oe?(se=(0,$.jsxs)(`div`,{className:GV,children:[re,oe]}),t[43]=re,t[44]=oe,t[45]=se):se=t[45];let ce;t[46]!==v.languageTitle||t[47]!==ne||t[48]!==se?(ce=(0,$.jsx)(`div`,{className:ne,role:`menu`,"aria-label":v.languageTitle,children:se}),t[46]=v.languageTitle,t[47]=ne,t[48]=se,t[49]=ce):ce=t[49];let le;t[50]!==W||t[51]!==te||t[52]!==ce?(le=(0,$.jsxs)(`div`,{className:`relative`,onMouseEnter:L,children:[W,te,ce]}),t[50]=W,t[51]=te,t[52]=ce,t[53]=le):le=t[53];let ue;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(ue=()=>s(`theme`),t[54]=ue):ue=t[54];let de=o===`theme`&&`bg-surface-hover`,fe;t[55]===de?fe=t[56]:(fe=Y(WV,de),t[55]=de,t[56]=fe);let pe=o===`theme`,me;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,$.jsx)(ik,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[57]=me):me=t[57];let he;t[58]===v.themeTitle?he=t[59]:(he=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.themeTitle}),t[58]=v.themeTitle,t[59]=he);let ge;t[60]===x?ge=t[61]:(ge=(0,$.jsx)(`span`,{className:`max-w-20 truncate text-xs font-medium text-fg-muted`,children:x}),t[60]=x,t[61]=ge);let _e;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(_e=(0,$.jsx)(Wn,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[62]=_e):_e=t[62];let ve;t[63]!==fe||t[64]!==pe||t[65]!==he||t[66]!==ge?(ve=(0,$.jsxs)(`button`,{type:`button`,className:fe,"aria-haspopup":`menu`,"aria-expanded":pe,children:[me,he,ge,_e]}),t[63]=fe,t[64]=pe,t[65]=he,t[66]=ge,t[67]=ve):ve=t[67];let ye;t[68]===F?ye=t[69]:(ye=F(`theme`),t[68]=F,t[69]=ye);let be;t[70]===ye?be=t[71]:(be=(0,$.jsx)(`div`,{className:ye,"aria-hidden":!0}),t[70]=ye,t[71]=be);let J;t[72]===M?J=t[73]:(J=M(`theme`),t[72]=M,t[73]=J);let xe=f===`light`,Se;t[74]===p?Se=t[75]:(Se=()=>p(`light`),t[74]=p,t[75]=Se);let Ce;t[76]!==v.themeOptionLight||t[77]!==xe||t[78]!==Se?(Ce=(0,$.jsx)(KV,{selected:xe,label:v.themeOptionLight,onSelect:Se}),t[76]=v.themeOptionLight,t[77]=xe,t[78]=Se,t[79]=Ce):Ce=t[79];let we=f===`dark`,Te;t[80]===p?Te=t[81]:(Te=()=>p(`dark`),t[80]=p,t[81]=Te);let Ee;t[82]!==v.themeOptionDark||t[83]!==we||t[84]!==Te?(Ee=(0,$.jsx)(KV,{selected:we,label:v.themeOptionDark,onSelect:Te}),t[82]=v.themeOptionDark,t[83]=we,t[84]=Te,t[85]=Ee):Ee=t[85];let De=f===`system`,Oe;t[86]===p?Oe=t[87]:(Oe=()=>p(`system`),t[86]=p,t[87]=Oe);let ke;t[88]!==v.themeOptionSystem||t[89]!==De||t[90]!==Oe?(ke=(0,$.jsx)(KV,{selected:De,label:v.themeOptionSystem,onSelect:Oe}),t[88]=v.themeOptionSystem,t[89]=De,t[90]=Oe,t[91]=ke):ke=t[91];let Ae;t[92]!==Ce||t[93]!==Ee||t[94]!==ke?(Ae=(0,$.jsxs)(`div`,{className:GV,children:[Ce,Ee,ke]}),t[92]=Ce,t[93]=Ee,t[94]=ke,t[95]=Ae):Ae=t[95];let je;t[96]!==v.themeTitle||t[97]!==J||t[98]!==Ae?(je=(0,$.jsx)(`div`,{className:J,role:`menu`,"aria-label":v.themeTitle,children:Ae}),t[96]=v.themeTitle,t[97]=J,t[98]=Ae,t[99]=je):je=t[99];let Me;t[100]!==ve||t[101]!==be||t[102]!==je?(Me=(0,$.jsxs)(`div`,{className:`relative`,onMouseEnter:ue,children:[ve,be,je]}),t[100]=ve,t[101]=be,t[102]=je,t[103]=Me):Me=t[103];let Ne;t[104]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=()=>s(`font`),t[104]=Ne):Ne=t[104];let Pe=o===`font`&&`bg-surface-hover`,Fe;t[105]===Pe?Fe=t[106]:(Fe=Y(WV,Pe),t[105]=Pe,t[106]=Fe);let Ie=o===`font`,Le;t[107]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,$.jsx)(sL,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[107]=Le):Le=t[107];let Re;t[108]===v.fontScaleTitle?Re=t[109]:(Re=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.fontScaleTitle}),t[108]=v.fontScaleTitle,t[109]=Re);let ze;t[110]===S?ze=t[111]:(ze=(0,$.jsx)(`span`,{className:`max-w-20 truncate text-xs font-medium text-fg-muted`,children:S}),t[110]=S,t[111]=ze);let Be;t[112]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,$.jsx)(Wn,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[112]=Be):Be=t[112];let Ve;t[113]!==Fe||t[114]!==Ie||t[115]!==Re||t[116]!==ze?(Ve=(0,$.jsxs)(`button`,{type:`button`,className:Fe,"aria-haspopup":`menu`,"aria-expanded":Ie,children:[Le,Re,ze,Be]}),t[113]=Fe,t[114]=Ie,t[115]=Re,t[116]=ze,t[117]=Ve):Ve=t[117];let He;t[118]===F?He=t[119]:(He=F(`font`),t[118]=F,t[119]=He);let Ue;t[120]===He?Ue=t[121]:(Ue=(0,$.jsx)(`div`,{className:He,"aria-hidden":!0}),t[120]=He,t[121]=Ue);let We;t[122]===M?We=t[123]:(We=M(`font`),t[122]=M,t[123]=We);let Ge=m===`compact`,Ke;t[124]===h?Ke=t[125]:(Ke=()=>h(`compact`),t[124]=h,t[125]=Ke);let qe;t[126]!==v.fontScaleCompact||t[127]!==Ge||t[128]!==Ke?(qe=(0,$.jsx)(KV,{selected:Ge,label:v.fontScaleCompact,onSelect:Ke}),t[126]=v.fontScaleCompact,t[127]=Ge,t[128]=Ke,t[129]=qe):qe=t[129];let Je=m==="default",Ye;t[130]===h?Ye=t[131]:(Ye=()=>h(`default`),t[130]=h,t[131]=Ye);let Xe;t[132]!==v.fontScaleDefault||t[133]!==Je||t[134]!==Ye?(Xe=(0,$.jsx)(KV,{selected:Je,label:v.fontScaleDefault,onSelect:Ye}),t[132]=v.fontScaleDefault,t[133]=Je,t[134]=Ye,t[135]=Xe):Xe=t[135];let Ze=m===`large`,Qe;t[136]===h?Qe=t[137]:(Qe=()=>h(`large`),t[136]=h,t[137]=Qe);let $e;t[138]!==v.fontScaleLarge||t[139]!==Ze||t[140]!==Qe?($e=(0,$.jsx)(KV,{selected:Ze,label:v.fontScaleLarge,onSelect:Qe}),t[138]=v.fontScaleLarge,t[139]=Ze,t[140]=Qe,t[141]=$e):$e=t[141];let et;t[142]!==qe||t[143]!==Xe||t[144]!==$e?(et=(0,$.jsxs)(`div`,{className:GV,children:[qe,Xe,$e]}),t[142]=qe,t[143]=Xe,t[144]=$e,t[145]=et):et=t[145];let tt;t[146]!==v.fontScaleTitle||t[147]!==We||t[148]!==et?(tt=(0,$.jsx)(`div`,{className:We,role:`menu`,"aria-label":v.fontScaleTitle,children:et}),t[146]=v.fontScaleTitle,t[147]=We,t[148]=et,t[149]=tt):tt=t[149];let nt;t[150]!==Ve||t[151]!==Ue||t[152]!==tt?(nt=(0,$.jsxs)(`div`,{className:`relative`,onMouseEnter:Ne,children:[Ve,Ue,tt]}),t[150]=Ve,t[151]=Ue,t[152]=tt,t[153]=nt):nt=t[153];let rt;t[154]!==T||t[155]!==A?(rt=w?(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:()=>void A(),onMouseEnter:()=>s(null),onFocus:()=>s(null),children:[(0,$.jsx)(Ok,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:T})]}):null,t[154]=T,t[155]=A,t[156]=rt):rt=t[156];let it;t[157]===a?it=t[158]:(it=()=>a?.(),t[157]=a,t[158]=it);let at,ot,st;t[159]===Symbol.for(`react.memo_cache_sentinel`)?(at=()=>s(null),ot=()=>s(null),st=(0,$.jsx)(Ra,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[159]=at,t[160]=ot,t[161]=st):(at=t[159],ot=t[160],st=t[161]);let ct;t[162]===_.endpointToolsSettings.deviceAccess.flow.title?ct=t[163]:(ct=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:_.endpointToolsSettings.deviceAccess.flow.title}),t[162]=_.endpointToolsSettings.deviceAccess.flow.title,t[163]=ct);let lt;t[164]!==it||t[165]!==ct?(lt=(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:it,onMouseEnter:at,onFocus:ot,children:[st,ct]}),t[164]=it,t[165]=ct,t[166]=lt):lt=t[166];let ut;t[167]===Symbol.for(`react.memo_cache_sentinel`)?(ut=(0,$.jsx)(`div`,{className:`my-2 h-px bg-edge-subtle`,role:`separator`}),t[167]=ut):ut=t[167];let dt;t[168]===r?dt=t[169]:(dt=()=>r?.(),t[168]=r,t[169]=dt);let ft,pt,mt;t[170]===Symbol.for(`react.memo_cache_sentinel`)?(ft=()=>s(null),pt=()=>s(null),mt=(0,$.jsx)(aa,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[170]=ft,t[171]=pt,t[172]=mt):(ft=t[170],pt=t[171],mt=t[172]);let ht;t[173]===v.aboutApp?ht=t[174]:(ht=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:v.aboutApp}),t[173]=v.aboutApp,t[174]=ht);let gt;t[175]!==dt||t[176]!==ht?(gt=(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:dt,onMouseEnter:ft,onFocus:pt,children:[mt,ht]}),t[175]=dt,t[176]=ht,t[177]=gt):gt=t[177];let _t;t[178]===u?_t=t[179]:(_t=zl(u),t[178]=u,t[179]=_t);let vt,yt,bt;t[180]===Symbol.for(`react.memo_cache_sentinel`)?(vt=()=>s(null),yt=()=>s(null),bt=(0,$.jsx)(Cn,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[180]=vt,t[181]=yt,t[182]=bt):(vt=t[180],yt=t[181],bt=t[182]);let xt;t[183]===_.sidebar.helpDocs?xt=t[184]:(xt=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:_.sidebar.helpDocs}),t[183]=_.sidebar.helpDocs,t[184]=xt);let St;t[185]===Symbol.for(`react.memo_cache_sentinel`)?(St=(0,$.jsx)(Kr,{className:`size-3.5 shrink-0 text-fg-subtle`,strokeWidth:2,"aria-hidden":!0}),t[185]=St):St=t[185];let Ct;t[186]!==_t||t[187]!==xt?(Ct=(0,$.jsxs)(`a`,{href:_t,target:`_blank`,rel:`noopener noreferrer`,className:WV,onMouseEnter:vt,onFocus:yt,children:[bt,xt,St]}),t[186]=_t,t[187]=xt,t[188]=Ct):Ct=t[188];let wt;t[189]===i?wt=t[190]:(wt=()=>i?.(),t[189]=i,t[190]=wt);let Tt,Et,Dt;t[191]===Symbol.for(`react.memo_cache_sentinel`)?(Dt=()=>s(null),Tt=()=>s(null),Et=(0,$.jsx)(wD,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[191]=Tt,t[192]=Et,t[193]=Dt):(Tt=t[191],Et=t[192],Dt=t[193]);let Ot;t[194]===_.supportReport.menu?Ot=t[195]:(Ot=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-left`,children:_.supportReport.menu}),t[194]=_.supportReport.menu,t[195]=Ot);let kt;t[196]!==Ot||t[197]!==wt?(kt=(0,$.jsxs)(`button`,{type:`button`,className:WV,onClick:wt,onMouseEnter:Dt,onFocus:Tt,children:[Et,Ot]}),t[196]=Ot,t[197]=wt,t[198]=kt):kt=t[198];let At,jt,Mt;t[199]===Symbol.for(`react.memo_cache_sentinel`)?(At=Y(WV,`text-accent-fg hover:bg-accent-soft hover:text-accent-fg`),jt=()=>s(null),Mt=()=>s(null),t[199]=At,t[200]=jt,t[201]=Mt):(At=t[199],jt=t[200],Mt=t[201]);let Nt;t[202]===n?Nt=t[203]:(Nt=()=>n?.(),t[202]=n,t[203]=Nt);let Pt;t[204]===Symbol.for(`react.memo_cache_sentinel`)?(Pt=(0,$.jsx)(Do,{className:`size-4 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[204]=Pt):Pt=t[204];let Ft;t[205]===v.openFullPreferences?Ft=t[206]:(Ft=(0,$.jsx)(`span`,{className:`min-w-0 flex-1`,children:v.openFullPreferences}),t[205]=v.openFullPreferences,t[206]=Ft);let It;t[207]!==Nt||t[208]!==Ft?(It=(0,$.jsxs)(y,{to:`/settings/overview`,className:At,onMouseEnter:jt,onFocus:Mt,onClick:Nt,children:[Pt,Ft]}),t[207]=Nt,t[208]=Ft,t[209]=It):It=t[209];let Lt;return t[210]!==kt||t[211]!==It||t[212]!==le||t[213]!==Me||t[214]!==nt||t[215]!==rt||t[216]!==lt||t[217]!==gt||t[218]!==Ct?(Lt=(0,$.jsxs)(`div`,{className:`w-[min(calc(100vw-2rem),13rem)] shrink-0 py-0.5`,onMouseLeave:I,children:[le,Me,nt,rt,lt,ut,gt,Ct,kt,It]}),t[210]=kt,t[211]=It,t[212]=le,t[213]=Me,t[214]=nt,t[215]=rt,t[216]=lt,t[217]=gt,t[218]=Ct,t[219]=Lt):Lt=t[219],Lt}function JV(e){return e.setPreference}function YV(e){return e.preference}function XV(e){return e.setPreference}function ZV(e){return e.preference}function QV(e){return e.setLanguage}function $V(e){return e.language}var eH=`open-support-report`;function tH(e={}){window.dispatchEvent(new CustomEvent(eH,{detail:e}))}var nH=(0,Z.lazy)(()=>s(()=>import(`./device-pairing-wizard-Wb1EKiXA.js`).then(e=>e.n).then(e=>({default:e.DevicePairingWizard})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52])));function rH({collapsed:e=!1,onNavigate:t}){let n=P(E(e=>e.language)),[r,i]=(0,Z.useState)(!1),[a,o]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1);return(0,Z.useEffect)(()=>{s(()=>import(`./settings-page-B6vrcc6f.js`),__vite__mapDeps([53,1,2,3,4,5,6,54])),s(()=>import(`./sessions-page-C2CH-55n.js`),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,56,11,57,13,58,59,60,61,62,63,20,21,31,64,65,35,22,25,26,27,28,66,67,68,14,69,70,71,72,73,74,75,76,77,19,78,79,23,45,80,81,24,50,46,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,15,97,98,48,49,99,100,43,101])),s(()=>import(`./logs-page-McbSQwJI.js`),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,103,11,65,35,20,21,22,25,26,27,28,104,14,105,106,107,108,109,75,63,19,78,31,79,110,111,24,37,46,83,112,91,96,15,97,98])),s(()=>import(`./automations-page-BQwSCkmd.js`),__vite__mapDeps([113,2,1,114,4,3,5,6,7,8,9,115,11,116,117,35,103,10,65,20,21,22,25,26,27,28,100,12,36,118,119,58,108,120,121,14,122,74,19,29,30,31,32,37,123,124,125,59,126,49,127,109,75,128,97,129,77,130,131,132,133,134,78,79,135,136,137,138,139,140,110,111,81,141,45,23,80,24,142,87,83,112,143,89,62,90,50,46,144,13,145,146,147,148,149,150,151])),s(()=>import(`./capabilities-page-B8UgQ4dD.js`),__vite__mapDeps([152,1,2,4,3,5,6,22,20,21,153,142,154,155,75,11,24,9,25,8,26,27,156]))},[]),(0,$.jsxs)(`div`,{className:Y(`flex shrink-0 flex-col`,e&&`mt-auto`,e?`items-center px-1 py-2`:`p-3`),children:[c?(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(nH,{open:!0,onOpenChange:l})}):null,(0,$.jsxs)(Xc,{open:r,onOpenChange:i,children:[e?(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,$.jsx)(y,{to:`/user-model`,onClick:()=>t?.(),className:`rounded-full outline-none ring-offset-surface-base transition-transform hover:opacity-95 active:scale-95 focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 motion-reduce:active:scale-100`,title:n.nav.profile,"aria-label":n.nav.profile,children:(0,$.jsx)(vu,{variant:`avatar`,className:`size-10`})}),(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:Y(`flex size-10 shrink-0 items-center justify-center rounded-xl text-fg-muted outline-none ring-offset-surface-base transition-colors`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2`,r&&`bg-accent-soft text-accent-fg`),"aria-expanded":r,"aria-haspopup":`dialog`,title:n.sidebar.appMenuAria,"aria-label":n.sidebar.appMenuAria,children:(0,$.jsx)(Do,{className:`size-[17px]`,strokeWidth:1.5})})})]}):(0,$.jsxs)(`div`,{className:`flex w-full min-w-0 items-center gap-1 rounded-xl p-1`,children:[(0,$.jsx)(y,{to:`/user-model`,onClick:()=>t?.(),className:Y(`flex size-10 shrink-0 items-center justify-center rounded-full text-left outline-none transition-transform duration-150 ease-out`,`hover:bg-surface-active/70`,`hover:opacity-95 active:scale-95`,`focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),title:n.nav.profile,"aria-label":n.nav.profile,children:(0,$.jsx)(vu,{variant:`avatar`,className:`size-10`})}),(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,className:Y(`flex min-h-10 min-w-0 flex-1 items-center gap-2 rounded-xl px-2 text-left text-fg-muted transition-colors`,`outline-none hover:bg-surface-hover hover:text-fg`,`focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,r&&`bg-accent-soft text-accent-fg`),"aria-expanded":r,"aria-haspopup":`dialog`,title:n.sidebar.appMenuAria,"aria-label":n.sidebar.appMenuAria,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate text-sm font-semibold leading-tight text-fg`,children:n.appBrand}),(0,$.jsx)(`div`,{className:`truncate text-xs text-fg-muted`,children:n.appearanceSettings.quickMenuHint})]}),(0,$.jsx)(Do,{className:`size-[18px] shrink-0`,strokeWidth:1.5})]})})]}),(0,$.jsx)(Jc,{children:(0,$.jsx)(Yc,{className:Y(`z-50 w-max max-w-[min(calc(100vw-1rem),28rem)] overflow-visible`,`rounded-xl border border-edge bg-surface-overlay p-2 shadow-popover dark:border-edge`),side:`top`,align:e?`center`:`end`,sideOffset:8,collisionPadding:12,onOpenAutoFocus:e=>e.preventDefault(),onCloseAutoFocus:e=>e.preventDefault(),children:(0,$.jsx)(qV,{onNavigate:()=>{i(!1),t?.()},onAboutClick:()=>{o(!0),i(!1)},onSupportClick:()=>{i(!1),tH()},onDeviceConnectClick:()=>{i(!1),l(!0)}})})})]}),(0,$.jsx)(VV,{open:a,onOpenChange:o})]})}function iH(e){return az[e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)]}var aH=3,oH=[`work`,`capabilities`,`automation`,`apps`],sH={work:Ln,capabilities:ca,automation:Qo,apps:vh};function cH(e,t,n=!1){return Y(`flex w-full items-center text-sm font-medium transition-colors duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,n?`gap-2 rounded-md px-2 py-1.5 text-left leading-5`:e?`justify-center rounded-xl p-2.5 leading-6`:`gap-2 rounded-lg px-3 py-2.5 text-left leading-6 md:py-1.5`,t?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`)}function lH(e){let t=(0,Q.c)(2),{Icon:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(n,{className:`size-4 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),t[0]=n,t[1]=r),r}function uH(e){let t=(0,Q.c)(34),{collapsed:n,onNavigate:r,visibleLimit:i}=e,a=n!==void 0&&n,o=i===void 0?aH:i,{pathname:s}=p(),c=E(_H),l=P(c),u=l.productNavigation,d;t[0]===s?d=t[1]:(d=Lc(s),t[0]=s,t[1]=d);let f=d,m=$s(),{profile:h,displayName:g}=yu(),_=ze(),[v,b]=(0,Z.useState)(!1),x=oH.map(e=>{let t=Rc.find(t=>t.id===e);return{id:e,label:u.domains[e],to:t.path,Icon:sH[e],active:f===e}}),S=Number.isFinite(o)?Math.min(x.length,Math.max(1,Math.round(o))):aH,C=x.slice(0,S),w=x.slice(S),T;t[2]===s?T=t[3]:(T=e=>e.activationEligible===!1?[]:(e.ui?.contributions?.pages??[]).filter(gH).map(t=>{let n=rr(e.id,t);return{id:`extension:${e.id}:${t.id}`,label:t.title,to:n,Icon:t.navIcon?iH(t.navIcon)??mo:mo,active:s===n||s.startsWith(`${n}/`)}}),t[2]=s,t[3]=T);let D=m.flatMap(T),O=w.some(hH)||D.some(mH),k;t[4]!==a||t[5]!==r?(k=(e,t)=>{let n=t!==void 0&&t;return(0,$.jsxs)(y,{to:e.to,"aria-current":e.active?`page`:void 0,className:cH(a,e.active,n),title:e.label,onMouseEnter:()=>hu(e.to),onFocus:()=>hu(e.to),onClick:()=>{b(!1),r?.()},children:[(0,$.jsx)(lH,{Icon:e.Icon}),!a||n?(0,$.jsx)(`span`,{className:`truncate`,children:e.label}):null]},e.id)},t[4]=a,t[5]=r,t[6]=k):k=t[6];let A=k,j=s===`/personal`?`page`:void 0,M;t[7]!==a||t[8]!==s?(M=Y(`relative`,cH(a,s===`/personal`)),t[7]=a,t[8]=s,t[9]=M):M=t[9];let N=h?.appearance??`loopi`,F=h?.agentId,I;t[10]!==N||t[11]!==F?(I=(0,$.jsx)(`span`,{className:`flex size-5 shrink-0 items-center justify-center`,"aria-hidden":!0,children:(0,$.jsx)(ao,{appearance:N,agentId:F,className:`size-5`})}),t[10]=N,t[11]=F,t[12]=I):I=t[12];let L;t[13]!==a||t[14]!==g?(L=!a&&(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:g}),t[13]=a,t[14]=g,t[15]=L):L=t[15];let R;t[16]!==a||t[17]!==c||t[18]!==_?(R=_>0&&(0,$.jsx)(`span`,{"aria-label":c===`zh`?`${_} 条未读消息`:`${_} unread messages`,className:Y(`shrink-0 rounded-full bg-accent/15 px-1.5 text-center text-[10px] font-semibold leading-5 tabular-nums text-accent`,a?`absolute right-0 top-0 min-w-4 leading-4`:`min-w-5`),children:Le(_)}),t[16]=a,t[17]=c,t[18]=_,t[19]=R):R=t[19];let z;t[20]!==g||t[21]!==r||t[22]!==I||t[23]!==L||t[24]!==R||t[25]!==j||t[26]!==M?(z=(0,$.jsxs)(y,{to:`/personal`,"aria-current":j,className:M,title:g,onMouseEnter:pH,onFocus:fH,onClick:r,children:[I,L,R]}),t[20]=g,t[21]=r,t[22]=I,t[23]=L,t[24]=R,t[25]=j,t[26]=M,t[27]=z):z=t[27];let B;t[28]===A?B=t[29]:(B=e=>A(e),t[28]=A,t[29]=B);let V=C.map(B),H=w.length>0||D.length>0?(0,$.jsxs)(Xc,{open:v,onOpenChange:b,children:[(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"aria-label":l.sidebar.moreAppsAria,title:l.sidebar.moreApps,className:Y(`flex w-full items-center text-sm font-medium leading-6 transition-colors duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,a?`justify-center rounded-xl p-2.5`:`gap-2 rounded-lg px-3 py-2.5 text-left md:py-1.5`,v||O?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:[(0,$.jsx)(Gr,{className:`size-4 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),a?null:(0,$.jsx)(`span`,{className:`truncate`,children:l.sidebar.moreApps})]})}),(0,$.jsx)(Jc,{children:(0,$.jsx)(Yc,{side:`right`,align:`start`,sideOffset:8,collisionPadding:8,className:`z-50 max-h-[min(32rem,var(--radix-popover-content-available-height))] min-w-[14rem] max-w-[20rem] overflow-y-auto rounded-lg border border-edge bg-surface-overlay p-1 shadow-popover`,onOpenAutoFocus:dH,children:(0,$.jsxs)(`nav`,{className:`flex flex-col gap-1`,"aria-label":l.sidebar.moreAppsAria,children:[w.map(e=>A(e,!0)),D.length>0?(0,$.jsxs)(`section`,{"aria-labelledby":`sidebar-more-extension-apps`,children:[(0,$.jsx)(`div`,{id:`sidebar-more-extension-apps`,className:`px-2 pb-1 pt-1.5 text-[11px] font-semibold tracking-wide text-fg-subtle`,children:l.sidebar.extensionAppsHeading}),(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:D.map(e=>A(e,!0))})]}):null]})})})]}):null,ee;return t[30]!==z||t[31]!==V||t[32]!==H?(ee=(0,$.jsxs)($.Fragment,{children:[z,V,H]}),t[30]=z,t[31]=V,t[32]=H,t[33]=ee):ee=t[33],ee}function dH(e){return e.preventDefault()}function fH(){return hu(`/personal`)}function pH(){return hu(`/personal`)}function mH(e){return e.active}function hH(e){return e.active}function gH(e){return e.showInNav}function _H(e){return e.language}var vH={sources:[],purposes:[],activity:``,project:``,days:``,status:`visible`,agentId:``,details:!1};function yH(e){return!!(e.sources.length||e.purposes.length||e.activity||e.project||e.days||e.agentId||e.status!==`visible`)}function bH(e,t,n=Date.now()){return{search:t.trim()||void 0,sources:e.sources.length?e.sources:void 0,purposes:e.purposes.length?e.purposes:[...Ya],activity:e.activity||void 0,projectId:e.project&&e.project!==`__unassigned`?e.project:void 0,unassigned:e.project===`__unassigned`||void 0,updatedAfter:e.days?n-Number(e.days)*864e5:void 0,status:e.status===`visible`?void 0:e.status,excludeArchived:e.status!==`archived`,agentId:e.agentId||void 0,sortBy:`updatedAt`,sortOrder:`desc`}}function xH(e){return`xopc-session-filters-v1:${e}`}function SH(e){try{let t=Ja.safeParse({sources:e.sources,purposes:e.purposes,activity:e.activity||void 0,agentId:e.agentId||void 0});return t.success?{...vH,...t.data,sources:t.data.sources??[],purposes:t.data.purposes??[],activity:t.data.activity??``,agentId:t.data.agentId??``,project:typeof e.project==`string`?e.project:``,days:typeof e.days==`string`&&[``,`7`,`30`,`60`].includes(e.days)?e.days:``,status:e.status===`pinned`||e.status===`archived`?e.status:`visible`,details:e.details===!0}:{...vH}}catch{return{...vH}}}function CH(e){try{return SH(JSON.parse(localStorage.getItem(xH(e))??`{}`))}catch{return{...vH}}}function wH(e,t){try{localStorage.setItem(xH(e),JSON.stringify(t))}catch{}}async function TH(){let e=[];for(let t=0;;){let n=await _s({limit:100,offset:t,sortBy:`name`,sortOrder:`asc`});if(e.push(...n.items),t+=n.items.length,!n.items.length||t>=n.total)return e}}var EH=e=>`xopc-session-views-v1:${e}`;function DH(e){try{let t=JSON.parse(localStorage.getItem(EH(e))??`[]`);return Array.isArray(t)?t.filter(e=>e&&typeof e.id==`string`&&typeof e.name==`string`&&e.name.trim()).slice(0,20).map(e=>({id:e.id,name:e.name.slice(0,60),filters:SH(e.filters??{}),search:typeof e.search==`string`?e.search.slice(0,500):``})):[]}catch{return[]}}function OH(e,t){try{return localStorage.setItem(EH(e),JSON.stringify(t)),!0}catch{return!1}}var kH=`rounded-md px-2 py-1.5 text-xs text-fg-muted hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-50`,AH=`flex size-8 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`;function jH(e){let t=(0,Q.c)(10),{label:n,summary:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=(0,$.jsx)(`span`,{className:`shrink-0`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-right text-xs text-fg-muted`,title:r,children:r}),t[2]=r,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(Wn,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[4]=s):s=t[4];let c;return t[5]!==n||t[6]!==i||t[7]!==a||t[8]!==o?(c=(0,$.jsxs)(`button`,{type:`button`,onClick:i,className:`flex min-h-10 w-full min-w-0 items-center gap-3 rounded-md px-2 py-2 text-left text-sm hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":n,children:[a,o,s]}),t[5]=n,t[6]=i,t[7]=a,t[8]=o,t[9]=c):c=t[9],c}function MH(e){let t=(0,Q.c)(261),{filters:n,onChange:r,search:i,onSearch:a,labels:o,gateway:s,agents:c}=e,[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(`home`),[p,m]=(0,Z.useState)(``),h;t[0]===s?h=t[1]:(h=()=>DH(s),t[0]=s,t[1]=h);let[g,_]=(0,Z.useState)(h),[v,y]=(0,Z.useState)(``),[b,x]=(0,Z.useState)(!1),S=(0,Z.useRef)(null),C=(0,Z.useRef)(`home`),w=(0,Z.useId)(),T=(0,Z.useId)(),E;if(t[2]!==n||t[3]!==g||t[4]!==i){let e;t[6]!==n||t[7]!==i?(e=e=>e.search===i&&JSON.stringify(e.filters)===JSON.stringify(n),t[6]=n,t[7]=i,t[8]=e):e=t[8],E=g.find(e),t[2]=n,t[3]=g,t[4]=i,t[5]=E}else E=t[5];let D=E,O;t[9]!==n.project||t[10]!==s||t[11]!==l||t[12]!==d?(O=l&&d===`project`||n.project?[`session-filter-projects`,s]:null,t[9]=n.project,t[10]=s,t[11]=l,t[12]=d,t[13]=O):O=t[13];let{data:k,error:A,mutate:j}=oc(O,TH),M;t[14]!==n||t[15]!==r?(M=e=>r({...n,...e}),t[14]=n,t[15]=r,t[16]=M):M=t[16];let N=M,P;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(P=e=>{f(e),m(``),x(!1)},t[17]=P):P=t[17];let F=P,I;t[18]===d?I=t[19]:(I=()=>F(d===`save`?`views`:[`purposes`,`status`,`agent`].includes(d)?`advanced`:`home`),t[18]=d,t[19]=I);let L=I,R;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(R=e=>{u(e),e&&F(`home`)},t[20]=R):R=t[20];let z=R,B,V;t[21]!==l||t[22]!==d?(B=()=>{l&&C.current!==d&&(S.current?.querySelector(`[data-page-autofocus]`))?.focus(),C.current=d},V=[l,d],t[21]=l,t[22]=d,t[23]=B,t[24]=V):(B=t[23],V=t[24]),(0,Z.useLayoutEffect)(B,V);let H;t[25]===n?H=t[26]:(H=yH({...n,activity:``}),t[25]=n,t[26]=H);let ee=H,U=n.status!==`visible`,W;t[27]!==n.activity||t[28]!==n.agentId||t[29]!==n.days||t[30]!==n.project||t[31]!==n.purposes.length||t[32]!==n.sources.length||t[33]!==U?(W=[n.sources.length,n.purposes.length,n.project,n.days,n.agentId,n.activity,U].filter(Boolean),t[27]=n.activity,t[28]=n.agentId,t[29]=n.days,t[30]=n.project,t[31]=n.purposes.length,t[32]=n.sources.length,t[33]=U,t[34]=W):W=t[34];let G=W.length,te=n.status!==`visible`,ne;t[35]!==n.agentId||t[36]!==n.purposes.length||t[37]!==te?(ne=[n.purposes.length,n.agentId,te].filter(Boolean),t[35]=n.agentId,t[36]=n.purposes.length,t[37]=te,t[38]=ne):ne=t[38];let K=ne.length,q;t[39]===o.selectedCount?q=t[40]:(q=e=>o.selectedCount.replace(`{{count}}`,String(e)),t[39]=o.selectedCount,t[40]=q);let re=q,ie;t[41]!==n.sources||t[42]!==o.all||t[43]!==o.sources?(ie=n.sources.length?n.sources.map(e=>o.sources[e]).join(` · `):o.all,t[41]=n.sources,t[42]=o.all,t[43]=o.sources,t[44]=ie):ie=t[44];let ae=ie,oe;t[45]!==n.purposes||t[46]!==o.all||t[47]!==o.purposes?(oe=n.purposes.length?n.purposes.map(e=>o.purposes[e]).join(` · `):o.all,t[45]=n.purposes,t[46]=o.all,t[47]=o.purposes,t[48]=oe):oe=t[48];let se=oe,ce;t[49]!==n.project||t[50]!==o.unassigned||t[51]!==k?(ce=n.project===`__unassigned`?o.unassigned:k?.find(e=>e.id===n.project)?.name??n.project,t[49]=n.project,t[50]=o.unassigned,t[51]=k,t[52]=ce):ce=t[52];let le=ce,ue;t[53]!==n.days||t[54]!==o.anyTime||t[55]!==o.days?(ue=n.days?o.days.replace(`{{days}}`,n.days):o.anyTime,t[53]=n.days,t[54]=o.anyTime,t[55]=o.days,t[56]=ue):ue=t[56];let de=ue,fe;t[57]!==o.agent||t[58]!==o.filters||t[59]!==o.moreFilters||t[60]!==o.project||t[61]!==o.purposesLabel||t[62]!==o.saveView||t[63]!==o.savedViews||t[64]!==o.sourcesLabel||t[65]!==o.status||t[66]!==o.time?(fe={home:o.filters,sources:o.sourcesLabel,purposes:o.purposesLabel,project:o.project,time:o.time,status:o.status,agent:o.agent,advanced:o.moreFilters,views:o.savedViews,save:o.saveView},t[57]=o.agent,t[58]=o.filters,t[59]=o.moreFilters,t[60]=o.project,t[61]=o.purposesLabel,t[62]=o.saveView,t[63]=o.savedViews,t[64]=o.sourcesLabel,t[65]=o.status,t[66]=o.time,t[67]=fe):fe=t[67];let pe=fe,me,he,ge,_e,ve;if(t[68]!==c||t[69]!==L||t[70]!==n.agentId||t[71]!==n.days||t[72]!==n.project||t[73]!==n.purposes||t[74]!==n.sources||t[75]!==n.status||t[76]!==o||t[77]!==p||t[78]!==d||t[79]!==N||t[80]!==k){let e;if(t[86]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[86]=e):e=t[86],ve=e,d===`sources`){let e;t[87]===o.sources?e=t[88]:(e=e=>({value:e,label:o.sources[e]}),t[87]=o.sources,t[88]=e),he=Za.map(e),ve=n.sources;let r;t[89]===N?r=t[90]:(r=e=>N({sources:e}),t[89]=N,t[90]=r),me=r}else if(d===`purposes`){let e;t[91]===o.purposes?e=t[92]:(e=e=>({value:e,label:o.purposes[e]}),t[91]=o.purposes,t[92]=e),he=Ya.map(e),ve=n.purposes;let r;t[93]===N?r=t[94]:(r=e=>N({purposes:e}),t[93]=N,t[94]=r),me=r}else if(d===`project`){he=[{value:``,label:o.allProjects},{value:`__unassigned`,label:o.unassigned},...(k??[]).map(PH)],n.project&&!he.some(e=>e.value===n.project)&&he.push({value:n.project,label:n.project});let e;t[95]===n.project?e=t[96]:(e=[n.project],t[95]=n.project,t[96]=e),ve=e;let r;t[97]!==L||t[98]!==N?(r=e=>{let[t]=e;N({project:t}),L()},t[97]=L,t[98]=N,t[99]=r):r=t[99],me=r}else if(d===`time`){he=[{value:``,label:o.anyTime},...[`7`,`30`,`60`].map(e=>({value:e,label:o.days.replace(`{{days}}`,e)}))];let e;t[100]===n.days?e=t[101]:(e=[n.days],t[100]=n.days,t[101]=e),ve=e;let r;t[102]!==L||t[103]!==N?(r=e=>{let[t]=e;N({days:t}),L()},t[102]=L,t[103]=N,t[104]=r):r=t[104],me=r}else if(d===`status`){he=[`visible`,`pinned`,`archived`].map(e=>({value:e,label:o[e]}));let e;t[105]===n.status?e=t[106]:(e=[n.status],t[105]=n.status,t[106]=e),ve=e;let r;t[107]!==L||t[108]!==N?(r=e=>{let[t]=e;N({status:t}),L()},t[107]=L,t[108]=N,t[109]=r):r=t[109],me=r}else if(d===`agent`){he=[{value:``,label:o.allAgents},...c.map(NH)],n.agentId&&!he.some(e=>e.value===n.agentId)&&he.push({value:n.agentId,label:n.agentId});let e;t[110]===n.agentId?e=t[111]:(e=[n.agentId],t[110]=n.agentId,t[111]=e),ve=e;let r;t[112]!==L||t[113]!==N?(r=e=>{let[t]=e;N({agentId:t}),L()},t[112]=L,t[113]=N,t[114]=r):r=t[114],me=r}ge=d===`project`||d===`agent`,_e=he?.filter(e=>e.label.toLocaleLowerCase().includes(p.trim().toLocaleLowerCase())),t[68]=c,t[69]=L,t[70]=n.agentId,t[71]=n.days,t[72]=n.project,t[73]=n.purposes,t[74]=n.sources,t[75]=n.status,t[76]=o,t[77]=p,t[78]=d,t[79]=N,t[80]=k,t[81]=me,t[82]=he,t[83]=ge,t[84]=_e,t[85]=ve}else me=t[81],he=t[82],ge=t[83],_e=t[84],ve=t[85];let ye=_e,be;t[115]!==n.details||t[116]!==r||t[117]!==d||t[118]!==N?(be=()=>{d===`sources`?N({sources:[]}):d===`purposes`?N({purposes:[]}):r({...vH,details:n.details})},t[115]=n.details,t[116]=r,t[117]=d,t[118]=N,t[119]=be):be=t[119];let J=be,xe=l&&`bg-surface-hover opacity-100`,Se;t[120]===xe?Se=t[121]:(Se=Y(AH,`relative size-6 text-fg-subtle opacity-0 transition-[color,background-color,opacity] group-hover:opacity-100 group-focus-within:opacity-100 focus:opacity-100 [@media(hover:none)]:opacity-100`,xe),t[120]=xe,t[121]=Se);let Ce=`${o.filters}${G?` (${G})`:``}`,we;t[122]!==G||t[123]!==o.filters||t[124]!==re?(we=G?`${o.filters} · ${re(G)}`:o.filters,t[122]=G,t[123]=o.filters,t[124]=re,t[125]=we):we=t[125];let Te;t[126]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,$.jsx)(Gr,{className:`size-3.5`,"aria-hidden":!0}),t[126]=Te):Te=t[126];let Ee;t[127]!==G||t[128]!==i?(Ee=G>0||i.trim()?(0,$.jsx)(`span`,{className:`absolute top-0.5 right-0.5 size-1 rounded-full bg-fg-muted`,"aria-hidden":!0}):null,t[127]=G,t[128]=i,t[129]=Ee):Ee=t[129];let De;t[130]!==Se||t[131]!==Ce||t[132]!==we||t[133]!==Ee?(De=(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,className:Se,"aria-label":Ce,title:we,children:[Te,Ee]})}),t[130]=Se,t[131]=Ce,t[132]=we,t[133]=Ee,t[134]=De):De=t[134];let Oe;t[135]!==L||t[136]!==d?(Oe=e=>{d!==`home`&&(e.preventDefault(),L())},t[135]=L,t[136]=d,t[137]=Oe):Oe=t[137];let ke;t[138]!==L||t[139]!==o.back||t[140]!==d||t[141]!==ge?(ke=d===`home`?null:(0,$.jsx)(`button`,{type:`button`,className:AH,"aria-label":o.back,onClick:L,"data-page-autofocus":!ge&&d!==`save`?``:void 0,children:(0,$.jsx)(Ut,{className:`size-4`,"aria-hidden":!0})}),t[138]=L,t[139]=o.back,t[140]=d,t[141]=ge,t[142]=ke):ke=t[142];let Ae=pe[d],je;t[143]!==T||t[144]!==Ae?(je=(0,$.jsx)(`span`,{id:T,className:`min-w-0 flex-1 truncate px-1 font-medium`,children:Ae}),t[143]=T,t[144]=Ae,t[145]=je):je=t[145];let Me;t[146]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0}),t[146]=Me):Me=t[146];let Ne;t[147]===o.close?Ne=t[148]:(Ne=(0,$.jsx)(Zc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:AH,"aria-label":o.close,children:Me})}),t[147]=o.close,t[148]=Ne);let Pe;t[149]!==ke||t[150]!==je||t[151]!==Ne?(Pe=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 border-b border-edge px-2 py-2`,children:[ke,je,Ne]}),t[149]=ke,t[150]=je,t[151]=Ne,t[152]=Pe):Pe=t[152];let Fe;t[153]!==o.searchOptions||t[154]!==p||t[155]!==ge?(Fe=ge?(0,$.jsx)(`div`,{className:`shrink-0 px-3 pt-2`,children:(0,$.jsx)(`input`,{type:`search`,"data-page-autofocus":!0,value:p,onChange:e=>m(e.target.value),placeholder:o.searchOptions,"aria-label":o.searchOptions,className:`w-full rounded-md border border-edge bg-surface-base px-2 py-1.5 text-sm outline-none focus:border-edge-strong focus:ring-1 focus:ring-edge-strong`})}):null,t[153]=o.searchOptions,t[154]=p,t[155]=ge,t[156]=Fe):Fe=t[156];let Ie;t[157]!==o.search||t[158]!==a||t[159]!==d||t[160]!==i?(Ie=d===`home`?(0,$.jsx)(`div`,{className:`shrink-0 px-3 pt-2`,children:(0,$.jsxs)(`label`,{className:`flex min-w-0 items-center gap-2 rounded-md border border-edge bg-surface-base px-2 py-1.5 focus-within:border-edge-strong focus-within:ring-1 focus-within:ring-edge-strong`,children:[(0,$.jsx)(wo,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,$.jsx)(`input`,{type:`search`,value:i,onChange:e=>a(e.target.value),placeholder:o.search,"aria-label":o.search,className:`min-w-0 w-full bg-transparent text-sm text-fg outline-none`})]})}):null,t[157]=o.search,t[158]=a,t[159]=d,t[160]=i,t[161]=Ie):Ie=t[161];let Le;t[162]!==K||t[163]!==ee||t[164]!==n.activity||t[165]!==n.details||t[166]!==o||t[167]!==r||t[168]!==d||t[169]!==le||t[170]!==g.length||t[171]!==re||t[172]!==D?.name||t[173]!==ae||t[174]!==de?(Le=d===`home`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(bu,{className:`mb-2 flex gap-1 rounded-md bg-surface-base p-1`,role:`group`,"aria-label":o.filters,indicatorClassName:`rounded-md bg-surface-active`,children:[``,`manual`,`automatic`].map(e=>(0,$.jsx)(`button`,{type:`button`,"data-page-autofocus":e===``?``:void 0,className:Y(kH,`min-w-0 flex-1 px-1`,!ee&&n.activity===e&&`bg-surface-active text-fg`),"aria-pressed":!ee&&n.activity===e,onClick:()=>{r({...vH,details:n.details,activity:e}),u(!1)},children:e?o[e]:o.all},e))}),(0,$.jsx)(jH,{label:o.sourcesLabel,summary:ae,onClick:()=>F(`sources`)}),(0,$.jsx)(jH,{label:o.project,summary:le||o.allProjects,onClick:()=>F(`project`)}),(0,$.jsx)(jH,{label:o.time,summary:de,onClick:()=>F(`time`)}),(0,$.jsx)(`div`,{className:`my-2 border-t border-edge`}),(0,$.jsx)(jH,{label:o.moreFilters,summary:K?re(K):``,onClick:()=>F(`advanced`)}),(0,$.jsx)(jH,{label:o.savedViews,summary:D?.name??(g.length?String(g.length):``),onClick:()=>F(`views`)})]}):null,t[162]=K,t[163]=ee,t[164]=n.activity,t[165]=n.details,t[166]=o,t[167]=r,t[168]=d,t[169]=le,t[170]=g.length,t[171]=re,t[172]=D?.name,t[173]=ae,t[174]=de,t[175]=Le):Le=t[175];let Re;t[176]!==me||t[177]!==o.noOptions||t[178]!==o.projectError||t[179]!==o.retry||t[180]!==ye||t[181]!==he||t[182]!==d||t[183]!==A||t[184]!==k||t[185]!==j||t[186]!==pe||t[187]!==ve?(Re=he&&me?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Xn,{options:ye??[],values:ve,multiple:d===`sources`||d===`purposes`,onChange:me,ariaLabel:pe[d]}),d===`project`&&!k&&!A?(0,$.jsxs)(`div`,{"aria-busy":`true`,className:`space-y-3 p-2`,children:[(0,$.jsx)($o,{className:`h-5 w-3/4`}),(0,$.jsx)($o,{className:`h-5 w-2/3`})]}):null,d===`project`&&A?(0,$.jsxs)(`div`,{role:`alert`,className:`p-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{children:o.projectError}),(0,$.jsx)(`button`,{type:`button`,className:kH,onClick:()=>void j(),children:o.retry})]}):null,!ye?.length&&!(d===`project`&&!k)?(0,$.jsx)(`p`,{className:`p-2 text-xs text-fg-muted`,children:o.noOptions}):null]}):null,t[176]=me,t[177]=o.noOptions,t[178]=o.projectError,t[179]=o.retry,t[180]=ye,t[181]=he,t[182]=d,t[183]=A,t[184]=k,t[185]=j,t[186]=pe,t[187]=ve,t[188]=Re):Re=t[188];let ze;t[189]!==c||t[190]!==n.agentId||t[191]!==n.details||t[192]!==n.status||t[193]!==o||t[194]!==d||t[195]!==N||t[196]!==se?(ze=d===`advanced`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(jH,{label:o.purposesLabel,summary:se,onClick:()=>F(`purposes`)}),(0,$.jsx)(jH,{label:o.status,summary:o[n.status],onClick:()=>F(`status`)}),c.length>1||n.agentId?(0,$.jsx)(jH,{label:o.agent,summary:c.find(e=>e.id===n.agentId)?.name??(n.agentId||o.allAgents),onClick:()=>F(`agent`)}):null,(0,$.jsxs)(`label`,{className:`mt-2 flex min-h-10 items-center gap-3 border-t border-edge px-2 pt-2 text-sm`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:n.details,onChange:e=>N({details:e.target.checked})}),o.details]})]}):null,t[189]=c,t[190]=n.agentId,t[191]=n.details,t[192]=n.status,t[193]=o,t[194]=d,t[195]=N,t[196]=se,t[197]=ze):ze=t[197];let Be;t[198]!==s||t[199]!==o.deleteView||t[200]!==o.noViews||t[201]!==r||t[202]!==a||t[203]!==d||t[204]!==g||t[205]!==D?.id?(Be=d===`views`?(0,$.jsxs)($.Fragment,{children:[g.length?null:(0,$.jsx)(`p`,{className:`px-2 py-4 text-sm text-fg-muted`,children:o.noViews}),g.map(e=>(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex min-h-10 min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-2 text-left hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>{r(e.filters),a(e.search),u(!1)},"aria-pressed":D?.id===e.id,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.name,children:e.name}),D?.id===e.id?(0,$.jsx)(Vn,{className:`size-4 shrink-0`,"aria-hidden":!0}):null]}),(0,$.jsx)(`button`,{type:`button`,className:AH,"aria-label":o.deleteView.replace(`{{name}}`,e.name),onClick:()=>{let t=g.filter(t=>t.id!==e.id);OH(s,t)?(_(t),x(!1)):x(!0)},children:(0,$.jsx)(Ho,{className:`size-3.5`,"aria-hidden":!0})})]},e.id))]}):null,t[198]=s,t[199]=o.deleteView,t[200]=o.noViews,t[201]=r,t[202]=a,t[203]=d,t[204]=g,t[205]=D?.id,t[206]=Be):Be=t[206];let Ve;t[207]!==n||t[208]!==w||t[209]!==s||t[210]!==o.saveViewHint||t[211]!==o.viewLimit||t[212]!==o.viewName||t[213]!==d||t[214]!==g||t[215]!==i||t[216]!==v?(Ve=d===`save`?(0,$.jsxs)(`form`,{id:w,className:`space-y-3 p-1`,onSubmit:e=>{e.preventDefault();let t=v.trim();if(!t||g.length>=20)return;let r=[...g,{id:crypto.randomUUID(),name:t,filters:n,search:i}];if(!OH(s,r)){x(!0);return}_(r),y(``),F(`views`)},children:[(0,$.jsxs)(`label`,{className:`block space-y-2 text-sm`,children:[(0,$.jsx)(`span`,{children:o.viewName}),(0,$.jsx)(`input`,{"data-page-autofocus":!0,value:v,onChange:e=>y(e.target.value),maxLength:60,placeholder:o.viewName,"aria-label":o.viewName,className:`w-full rounded-md border border-edge bg-surface-base px-2 py-2 focus-visible:ring-2 focus-visible:ring-accent`})]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:o.saveViewHint}),g.length>=20?(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:o.viewLimit}):null]}):null,t[207]=n,t[208]=w,t[209]=s,t[210]=o.saveViewHint,t[211]=o.viewLimit,t[212]=o.viewName,t[213]=d,t[214]=g,t[215]=i,t[216]=v,t[217]=Ve):Ve=t[217];let He;t[218]!==o.viewSaveError||t[219]!==b?(He=b?(0,$.jsx)(`p`,{role:`alert`,className:`p-2 text-xs text-danger`,children:o.viewSaveError}):null,t[218]=o.viewSaveError,t[219]=b,t[220]=He):He=t[220];let Ue;t[221]!==d||t[222]!==Le||t[223]!==Re||t[224]!==ze||t[225]!==Be||t[226]!==Ve||t[227]!==He?(Ue=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-y-contain p-2`,"data-session-filter-scroll":!0,children:[Le,Re,ze,Be,Ve,He]},d),t[221]=d,t[222]=Le,t[223]=Re,t[224]=ze,t[225]=Be,t[226]=Ve,t[227]=He,t[228]=Ue):Ue=t[228];let We;t[229]!==J||t[230]!==G||t[231]!==o.clear||t[232]!==o.clearSelection||t[233]!==o.saveView||t[234]!==d||t[235]!==g.length||t[236]!==ve?(We=d===`home`||d===`sources`||d===`purposes`?(0,$.jsx)(`button`,{type:`button`,className:kH,disabled:d===`home`?!G:!ve.length,onClick:J,children:d===`home`?o.clear:o.clearSelection}):d===`views`?(0,$.jsx)(`button`,{type:`button`,className:kH,disabled:g.length>=20,onClick:()=>F(`save`),children:o.saveView}):(0,$.jsx)(`span`,{}),t[229]=J,t[230]=G,t[231]=o.clear,t[232]=o.clearSelection,t[233]=o.saveView,t[234]=d,t[235]=g.length,t[236]=ve,t[237]=We):We=t[237];let Ge;t[238]!==L||t[239]!==w||t[240]!==o.done||t[241]!==o.saveView||t[242]!==d||t[243]!==g.length||t[244]!==v?(Ge=d===`save`?(0,$.jsx)(`button`,{type:`submit`,form:w,className:Y(kH,`bg-surface-active text-fg`),disabled:!v.trim()||g.length>=20,children:o.saveView}):(0,$.jsx)(`button`,{type:`button`,className:Y(kH,`bg-surface-active text-fg`),onClick:()=>d===`home`?u(!1):L(),children:o.done}),t[238]=L,t[239]=w,t[240]=o.done,t[241]=o.saveView,t[242]=d,t[243]=g.length,t[244]=v,t[245]=Ge):Ge=t[245];let Ke;t[246]!==We||t[247]!==Ge?(Ke=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-edge px-3 py-2`,children:[We,Ge]}),t[246]=We,t[247]=Ge,t[248]=Ke):Ke=t[248];let qe;t[249]!==T||t[250]!==Oe||t[251]!==Pe||t[252]!==Fe||t[253]!==Ie||t[254]!==Ue||t[255]!==Ke?(qe=(0,$.jsx)(Jc,{children:(0,$.jsxs)(Yc,{ref:S,side:`bottom`,align:`start`,sideOffset:8,collisionPadding:12,sticky:`always`,"aria-labelledby":T,className:`z-50 flex h-[min(26rem,calc(100dvh-1.5rem))] max-h-[var(--radix-popover-content-available-height)] w-[min(20rem,calc(100vw-1.5rem))] max-w-[var(--radix-popover-content-available-width)] flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay text-sm text-fg shadow-popover`,onEscapeKeyDown:Oe,children:[Pe,Fe,Ie,Ue,Ke]})}),t[249]=T,t[250]=Oe,t[251]=Pe,t[252]=Fe,t[253]=Ie,t[254]=Ue,t[255]=Ke,t[256]=qe):qe=t[256];let Je;return t[257]!==l||t[258]!==De||t[259]!==qe?(Je=(0,$.jsx)(`div`,{className:`ml-auto shrink-0`,children:(0,$.jsxs)(Xc,{open:l,onOpenChange:z,children:[De,qe]})}),t[257]=l,t[258]=De,t[259]=qe,t[260]=Je):Je=t[260],Je}function NH(e){return{value:e.id,label:e.name||e.id}}function PH(e){return{value:e.id,label:e.name}}var FH=30;function IH(e,t){let n=(0,Q.c)(47),r;n[0]===e?r=n[1]:(r=()=>CH(e),n[0]=e,n[1]=r);let[i,a]=(0,Z.useState)(r),[o,s]=(0,Z.useState)(``),[c]=xu(o,250),[l,u]=(0,Z.useState)(!1),d;n[2]!==i||n[3]!==o?(d=yH(i)||!!o.trim(),n[2]=i,n[3]=o,n[4]=d):d=n[4];let f=d,p;n[5]!==f||n[6]!==e||n[7]!==t?(p=f&&t?[`session-filter-projects`,e]:null,n[5]=f,n[6]=e,n[7]=t,n[8]=p):p=n[8];let{data:m}=oc(p,TH),h;n[9]!==c||n[10]!==i?(h=bH(i,c),n[9]=c,n[10]=i,n[11]=h):h=n[11];let g=h,_;n[12]!==f||n[13]!==e||n[14]!==g||n[15]!==t?(_=(n,r)=>!t||!f||r&&!r.hasMore?null:[`session-discovery`,e,t,g,n],n[12]=f,n[13]=e,n[14]=g,n[15]=t,n[16]=_):_=n[16];let v;n[17]===Symbol.for(`react.memo_cache_sentinel`)?(v={revalidateOnFocus:!1,revalidateOnReconnect:!1,keepPreviousData:!1},n[17]=v):v=n[17];let{data:y,error:b,isValidating:x,size:S,setSize:C,mutate:w}=cc(_,zH,v),T;n[18]===e?T=n[19]:(T=t=>{a(t),wH(e,t)},n[18]=e,n[19]=T);let E=T,D;n[20]===w?D=n[21]:(D=()=>{u(!1),w()},n[20]=w,n[21]=D);let O=D,k,A;n[22]===f?(k=n[23],A=n[24]):(k=()=>{if(!f)return;let e=()=>u(!0),t=[`session-list-refresh`,`session-created`,`session-updated`,`session-transcript-updated`,`project-updated`];return t.forEach(t=>window.addEventListener(t,e)),()=>t.forEach(t=>window.removeEventListener(t,e))},A=[f],n[22]=f,n[23]=k,n[24]=A),(0,Z.useEffect)(k,A);let j;n[25]===y?j=n[26]:(j=[...new Map(y?.flatMap(RH).map(LH)??[]).values()],n[25]=y,n[26]=j);let M=j,N=y?.[0]?.total??0,P=!b&&(!y||o!==c),F;n[27]===y?F=n[28]:(F=y?.at(-1)?.hasMore??!1,n[27]=y,n[28]=F);let I=x&&!!y,L;n[29]!==C||n[30]!==S?(L=()=>void C(S+1),n[29]=C,n[30]=S,n[31]=L):L=n[31];let R;return n[32]!==f||n[33]!==b||n[34]!==i||n[35]!==M||n[36]!==l||n[37]!==m||n[38]!==O||n[39]!==o||n[40]!==N||n[41]!==P||n[42]!==F||n[43]!==I||n[44]!==L||n[45]!==E?(R={projects:m,filters:i,updateFilters:E,search:o,setSearch:s,active:f,items:M,total:N,loading:P,error:b,hasMore:F,loadingMore:I,loadMore:L,refresh:O,pendingUpdate:l},n[32]=f,n[33]=b,n[34]=i,n[35]=M,n[36]=l,n[37]=m,n[38]=O,n[39]=o,n[40]=N,n[41]=P,n[42]=F,n[43]=I,n[44]=L,n[45]=E,n[46]=R):R=n[46],R}function LH(e){return[e.key,e]}function RH(e){return e.items}function zH(e){let[,,,t,n]=e;return As({...t,limit:FH,offset:n*FH})}function BH(e,t){if(!e||typeof e!=`object`)return!0;let n=e.key??e.conversationId;return typeof n!=`string`||!n.trim()||!t.has(n)}var VH=(0,Z.createContext)(!1),HH=(0,Z.createContext)({}),UH=(0,Z.memo)(function(e){let t=(0,Q.c)(27),{child:n,activeTaskId:r,onNavigate:i,sb:a}=e,o=p(),s;t[0]===n.activeConversationId?s=t[1]:(s=e=>n.activeConversationId?e.runs[n.activeConversationId]:void 0,t[0]=n.activeConversationId,t[1]=s);let c=mt(s),l;t[2]!==n.activeConversationId||t[3]!==n.taskId||t[4]!==o?(l=n.activeConversationId?`/chat/task/${encodeURIComponent(n.taskId)}`:Da(`${o.pathname}${o.search}`,n.taskId),t[2]=n.activeConversationId,t[3]=n.taskId,t[4]=o,t[5]=l):l=t[5];let u=r===n.taskId&&`bg-surface-active text-fg`,d;t[6]===u?d=t[7]:(d=Y(`ml-8 flex min-h-8 items-center gap-2 rounded-lg px-2 text-sm text-fg-muted hover:bg-surface-hover hover:text-fg`,u),t[6]=u,t[7]=d);let f;t[8]===i?f=t[9]:(f=()=>i?.(),t[8]=i,t[9]=f);let m;t[10]!==c||t[11]!==a?(m=c?.unread?(0,$.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-accent`,"aria-label":c.status===`failed`?a.taskSessionAgentFailed:a.taskSessionAgentCompleted}):null,t[10]=c,t[11]=a,t[12]=m):m=t[12];let h;t[13]===n.title?h=t[14]:(h=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.title}),t[13]=n.title,t[14]=h);let g=n.runStatus??n.phase,_;t[15]!==a||t[16]!==g?(_=tU(g,a),t[15]=a,t[16]=g,t[17]=_):_=t[17];let v;t[18]===_?v=t[19]:(v=(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:_}),t[18]=_,t[19]=v);let b;return t[20]!==v||t[21]!==l||t[22]!==d||t[23]!==f||t[24]!==m||t[25]!==h?(b=(0,$.jsxs)(y,{to:l,className:d,onClick:f,children:[m,h,v]}),t[20]=v,t[21]=l,t[22]=d,t[23]=f,t[24]=m,t[25]=h,t[26]=b):b=t[26],b}),WH=20,GH=12,KH=5,qH=60,JH=`application/x-xopc-sidebar-item`;function YH(e,t,n,r){let i=e.filter(e=>e!==t),a=i.indexOf(n);return a<0?e:(i.splice(a+ +!!r,0,t),i)}function XH(e,t,n){if(!t?.length)return e;let r=new Map(t.map((e,t)=>[e,t]));return e.map((e,t)=>({item:e,index:t,rank:r.get(n(e))})).sort((e,t)=>e.rank!==void 0&&t.rank!==void 0?e.rank-t.rank:e.rank===void 0?t.rank===void 0?e.index-t.index:-1:1).map(({item:e})=>e)}function ZH({spec:e,children:t}){let[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(null);return e?(0,$.jsxs)(`div`,{draggable:!0,className:Y(`relative cursor-grab transition-[opacity,transform] duration-200 ease-out active:cursor-grabbing`,n&&`opacity-50`),onDragStart:t=>{r(!0),t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(JH,JSON.stringify({containerId:e.containerId,itemId:e.itemId}))},onDragEnd:()=>{r(!1),a(null)},onDragOver:e=>{e.preventDefault();let t=e.currentTarget.getBoundingClientRect();a(e.clientY>=t.top+t.height/2?`after`:`before`)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||a(null)},onDrop:t=>{t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.clientY>=n.top+n.height/2;a(null);try{let n=JSON.parse(t.dataTransfer.getData(JH));if(n.containerId!==e.containerId||n.itemId===e.itemId)return;e.onReorder(e.containerId,YH(e.itemIds,n.itemId,e.itemId,r))}catch{}},children:[i===`before`?(0,$.jsx)(`span`,{className:`pointer-events-none absolute inset-x-1 top-0 z-30 h-0.5 rounded-full bg-accent`}):null,t,i===`after`?(0,$.jsx)(`span`,{className:`pointer-events-none absolute inset-x-1 bottom-0 z-30 h-0.5 rounded-full bg-accent`}):null]}):t}function QH(e,t){return e.name?.trim()||t}function $H(e){let t=/^\/chat\/([^/]+)$/.exec(e);if(!t)return;let n=decodeURIComponent(t[1]);if(n!==`new`)return n}function eU(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function tU(e,t){return e===`running`||e===`active`||e===`verifying`?t.delegatedTaskRunning:e===`completed`||e===`succeeded`||e===`closed`?t.delegatedTaskCompleted:e===`failed`?t.delegatedTaskFailed:e===`backlog`||e===`ready`||e===`queued`||e===`waiting`?t.delegatedTaskWaiting:e}function nU(e){let t=new Date(e.updatedAt).getTime();return Number.isFinite(t)?t:0}function rU(e){return Y(`group relative flex min-h-8 w-full min-w-0 items-center rounded-lg pr-1 text-left text-sm leading-5 transition-colors duration-200 ease-out`,`pl-6`,`focus-within:outline-none`,e?`bg-surface-active font-medium text-fg`:`font-normal text-fg-muted hover:bg-surface-hover hover:text-fg`)}var iU=`text-xs font-normal leading-5 text-fg-subtle`,aU=Y(iU,`transition-colors hover:text-fg-muted`);function oU(e){let t=(0,Q.c)(5),{indented:n}=e,r=n!==void 0&&n&&`pl-6`,i;t[0]===r?i=t[1]:(i=Y(`flex items-center gap-2 p-1.5`,r),t[0]=r,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)($o,{className:`h-3 w-4/5 animate-none`}),(0,$.jsx)($o,{className:`mt-1.5 h-2.5 w-2/5 animate-none`})]}),t[2]=a):a=t[2];let o;return t[3]===i?o=t[4]:(o=(0,$.jsx)(`div`,{className:i,children:a}),t[3]=i,t[4]=o),o}function sU(){let e=(0,Q.c)(3),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{children:[(0,$.jsx)($o,{className:`mb-1.5 h-2.5 w-14 animate-none`}),(0,$.jsx)(oU,{})]}),n=(0,$.jsx)($o,{className:`mb-1.5 h-2.5 w-16 animate-none`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 px-2 py-4`,"aria-busy":`true`,children:[t,(0,$.jsxs)(`div`,{children:[n,(0,$.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,$.jsx)(oU,{}),(0,$.jsx)(oU,{indented:!0}),(0,$.jsx)(oU,{indented:!0})]})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)($o,{className:`mb-1.5 h-2.5 w-12 animate-none`}),(0,$.jsx)(oU,{}),(0,$.jsx)(oU,{})]})]}),e[2]=r):r=e[2],r}var cU=(0,Z.memo)(function({session:e,isActive:t,onNavigate:n,mutate:r,onRequestRename:i,onRequestDelete:a,sb:o,sess:s,clipboard:c,defaultUnnamedTitle:l,contextLabel:u,sort:d,showTaskChildren:f=!0}){let m=(0,Z.useContext)(HH)[e.key],h=p(),g=/^\/chat\/task\/([^/]+)$/.exec(h.pathname)?.[1],_=m?.items.some(e=>e.taskId===g||e.activeConversationId===$H(h.pathname))??!1,[v,b]=(0,Z.useState)(_);(0,Z.useEffect)(()=>{_&&b(!0)},[_]);let x=(0,Z.useContext)(VH),S=qa(e),C=S.source!==`workbench`||S.purpose!==`chat`,w=K(e,o.sessionFilters),T=[w,u].filter(Boolean).join(` · `),[E,D]=(0,Z.useState)(!1),[O,k]=(0,Z.useState)(!1),A=Ie(e.key),j=mt(t=>t.runs[e.key]),M=QH(e,l),N=e.status===`pinned`,P=A||!!j?.unread,F=async()=>{if(!O){k(!0);try{N?await ks(e.key):await ws(e.key),D(!1),r()}catch{}finally{k(!1)}}},I=async()=>{let t=await il(e.key);if(D(!1),t){ki(`success`,o.taskChatIdCopied,void 0,{duration:2e3});return}ki(`warning`,c.copyFailed,void 0,{duration:4e3})};return(0,$.jsx)(ZH,{spec:d,children:(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:rU(t),children:[f&&m?.total?(0,$.jsx)(`button`,{type:`button`,className:`absolute left-0 flex size-6 items-center justify-center text-fg-subtle hover:text-fg`,"aria-label":v?o.delegatedTasksCollapse:o.delegatedTasksExpand,"aria-expanded":v,onClick:()=>b(e=>!e),children:(0,$.jsx)(Hn,{className:Y(`size-3.5 transition-transform`,!v&&`-rotate-90`),"aria-hidden":!0})}):null,(0,$.jsxs)(y,{to:`/chat/${encodeURIComponent(e.key)}`,className:Y(`min-w-0 flex-1 self-stretch rounded-lg py-1 outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`flex min-w-0 items-center gap-2`,P?`pr-[4.75rem]`:`pr-12`),title:`${M} — ${T}`,"aria-label":`${M} — ${T}`,onClick:()=>n?.(),onDoubleClick:t=>{t.preventDefault(),t.stopPropagation(),i(e)},children:[C?(0,$.jsx)(`span`,{className:`flex size-4 shrink-0 items-center justify-center text-fg-muted`,title:w,children:(0,$.jsx)(Qa,{sourceChannel:e.sourceChannel,session:e,className:`size-3.5`})}):null,(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate`,children:M}),x?(0,$.jsx)(`span`,{className:`block truncate text-xs font-normal text-fg-muted`,children:T}):null]})]}),A?(0,$.jsxs)(`span`,{className:`pointer-events-none absolute right-2 top-1/2 z-10 flex size-2.5 -translate-y-1/2 items-center justify-center`,title:o.taskSessionAgentRunning,"aria-label":o.taskSessionAgentRunning,children:[(0,$.jsx)(`span`,{className:`absolute size-full animate-ping rounded-full bg-accent/70`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`relative size-2 rounded-full bg-accent`,"aria-hidden":!0})]}):j?.unread?(0,$.jsx)(`span`,{className:Y(`pointer-events-none absolute right-2 top-1/2 z-10 size-2.5 -translate-y-1/2 rounded-full`,j.status===`failed`?`bg-red-500`:`bg-emerald-500`),title:j.status===`failed`?o.taskSessionAgentFailed:o.taskSessionAgentCompleted,"aria-label":j.status===`failed`?o.taskSessionAgentFailed:o.taskSessionAgentCompleted}):null,(0,$.jsxs)(`div`,{className:Y(`pointer-events-none absolute inset-y-0 z-10 flex items-center opacity-0 transition-opacity`,`group-hover:pointer-events-auto group-hover:opacity-100 focus-within:pointer-events-auto focus-within:opacity-100`,P?`right-7`:`right-1`,E&&`pointer-events-auto opacity-100`),children:[(0,$.jsx)(`button`,{type:`button`,className:Y(`flex h-8 w-6 shrink-0 items-center justify-center rounded-lg text-fg-muted`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`disabled:cursor-wait`),"aria-label":N?s.unpin:s.pin,title:N?s.unpin:s.pin,"aria-pressed":N,disabled:O,onClick:()=>void F(),children:O?(0,$.jsx)(ha,{className:`size-4 animate-spin`,strokeWidth:1.75,"aria-hidden":!0}):N?(0,$.jsx)(so,{className:`size-4 rotate-45`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(oo,{className:`size-4 rotate-45`,strokeWidth:1.75,"aria-hidden":!0})}),(0,$.jsxs)(Xc,{open:E,onOpenChange:D,children:[(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:Y(`flex h-8 w-6 shrink-0 items-center justify-center rounded-lg text-fg-muted`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),"aria-label":o.taskSessionMenuAria,title:o.taskSessionMenuAria,"aria-expanded":E,children:(0,$.jsx)(Gr,{className:`size-4`,strokeWidth:2,"aria-hidden":!0})})}),(0,$.jsx)(Jc,{children:(0,$.jsxs)(Yc,{className:`z-50 w-[9.25rem] rounded-lg border border-edge bg-surface-overlay p-1 shadow-elevated dark:border-edge`,side:`bottom`,align:`end`,sideOffset:4,collisionPadding:12,onCloseAutoFocus:e=>e.preventDefault(),children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:()=>{D(!1),i(e)},children:[(0,$.jsx)(ro,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),o.taskRename]}),(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:()=>void I(),children:[(0,$.jsx)(Sr,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),o.taskCopyChatId]}),(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-red-600 transition-colors hover:bg-surface-hover dark:text-red-400`,onClick:()=>{D(!1),a(e.key)},children:[(0,$.jsx)(Ho,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),o.taskDeleteTask]})]})})]})]})]}),f&&v&&m?.items.map(e=>(0,$.jsx)(UH,{child:e,activeTaskId:g,onNavigate:n,sb:o},e.taskId))]})})});function lU(e){let t=(0,Q.c)(77),{project:n,onNavigate:r,onPinToggle:i,onRequestRename:a,onArchive:o,onRequestRemove:s,sb:c}=e,[l,u]=(0,Z.useState)(!1),d;t[0]!==n.effectiveWorkspaceRoot||t[1]!==n.workspaceRoot?(d=n.effectiveWorkspaceRoot?.trim()||n.workspaceRoot?.trim()||``,t[0]=n.effectiveWorkspaceRoot,t[1]=n.workspaceRoot,t[2]=d):d=t[2];let f=d,p=!!(f&&window.electronAPI?.shell?.openPath),m=!!n.pinnedAt,h;t[3]!==c.projectOpenInExplorerFailed||t[4]!==c.projectOpenInExplorerUnavailable||t[5]!==f?(h=async()=>{if(!f||!window.electronAPI?.shell?.openPath){ki(`warning`,c.projectOpenInExplorerUnavailable,void 0,{duration:3500}),u(!1);return}let e=await window.electronAPI.shell.openPath(f);u(!1),e.ok===!1&&ki(`warning`,e.error||c.projectOpenInExplorerFailed,void 0,{duration:4e3})},t[3]=c.projectOpenInExplorerFailed,t[4]=c.projectOpenInExplorerUnavailable,t[5]=f,t[6]=h):h=t[6];let g=h,_=l&&`opacity-100`,v;t[7]===_?v=t[8]:(v=Y(`relative z-10 flex size-7 shrink-0 items-center justify-center rounded-lg text-fg-subtle transition-opacity`,`opacity-0 group-hover:opacity-100 focus:opacity-100`,_,`hover:bg-surface-hover hover:text-fg-muted`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),t[7]=_,t[8]=v);let b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(Gr,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0}),t[9]=b):b=t[9];let x;t[10]!==l||t[11]!==c.projectMenuAria||t[12]!==v?(x=(0,$.jsx)(Qc,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:v,"aria-label":c.projectMenuAria,title:c.projectMenuAria,"aria-expanded":l,children:b})}),t[10]=l,t[11]=c.projectMenuAria,t[12]=v,t[13]=x):x=t[13];let S=`/projects/${encodeURIComponent(n.id)}`,C;t[14]===r?C=t[15]:(C=()=>{u(!1),r?.()},t[14]=r,t[15]=C);let w;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(Kr,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[16]=w):w=t[16];let T;t[17]!==c.projectOpen||t[18]!==S||t[19]!==C?(T=(0,$.jsxs)(y,{to:S,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:C,children:[w,c.projectOpen]}),t[17]=c.projectOpen,t[18]=S,t[19]=C,t[20]=T):T=t[20];let E;t[21]===n.workspaceRoot?E=t[22]:(E=n.workspaceRoot?.trim(),t[21]=n.workspaceRoot,t[22]=E);let D=!!E,O;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>u(!1),t[23]=O):O=t[23];let k;t[24]!==n.id||t[25]!==D?(k=(0,$.jsx)(Cu,{hasProjectFolder:D,projectId:n.id,onStarted:O,className:`flex w-full rounded-md px-2 py-1.5 text-left text-xs font-medium text-fg hover:bg-surface-hover disabled:opacity-50`}),t[24]=n.id,t[25]=D,t[26]=k):k=t[26];let A;t[27]!==i||t[28]!==n?(A=()=>{u(!1),i(n)},t[27]=i,t[28]=n,t[29]=A):A=t[29];let j;t[30]===m?j=t[31]:(j=m?(0,$.jsx)(so,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(oo,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[30]=m,t[31]=j);let M=m?c.projectUnpin:c.projectPin,N;t[32]!==A||t[33]!==j||t[34]!==M?(N=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:A,children:[j,M]}),t[32]=A,t[33]=j,t[34]=M,t[35]=N):N=t[35];let P;t[36]===g?P=t[37]:(P=()=>void g(),t[36]=g,t[37]=P);let F=!p,I=p?void 0:c.projectOpenInExplorerUnavailable,L;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(vi,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[38]=L):L=t[38];let R;t[39]!==c.projectOpenInExplorer||t[40]!==P||t[41]!==F||t[42]!==I?(R=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover disabled:cursor-not-allowed disabled:text-fg-subtle disabled:hover:bg-transparent`,onClick:P,disabled:F,title:I,children:[L,c.projectOpenInExplorer]}),t[39]=c.projectOpenInExplorer,t[40]=P,t[41]=F,t[42]=I,t[43]=R):R=t[43];let z;t[44]!==a||t[45]!==n?(z=()=>{u(!1),a(n)},t[44]=a,t[45]=n,t[46]=z):z=t[46];let B;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(ro,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[47]=B):B=t[47];let V;t[48]!==c.projectRename||t[49]!==z?(V=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:z,children:[B,c.projectRename]}),t[48]=c.projectRename,t[49]=z,t[50]=V):V=t[50];let H;t[51]!==o||t[52]!==n?(H=()=>{u(!1),o(n)},t[51]=o,t[52]=n,t[53]=H):H=t[53];let ee;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,$.jsx)(q,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[54]=ee):ee=t[54];let U;t[55]!==c.projectArchive||t[56]!==H?(U=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-fg transition-colors hover:bg-surface-hover`,onClick:H,children:[ee,c.projectArchive]}),t[55]=c.projectArchive,t[56]=H,t[57]=U):U=t[57];let W;t[58]!==s||t[59]!==n?(W=()=>{u(!1),s(n)},t[58]=s,t[59]=n,t[60]=W):W=t[60];let G;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(Ho,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[61]=G):G=t[61];let te;t[62]!==c.projectRemove||t[63]!==W?(te=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium leading-snug text-red-600 transition-colors hover:bg-surface-hover dark:text-red-400`,onClick:W,children:[G,c.projectRemove]}),t[62]=c.projectRemove,t[63]=W,t[64]=te):te=t[64];let ne;t[65]!==T||t[66]!==k||t[67]!==N||t[68]!==R||t[69]!==V||t[70]!==U||t[71]!==te?(ne=(0,$.jsx)(Jc,{children:(0,$.jsxs)(Yc,{className:`z-50 w-[12rem] rounded-lg border border-edge bg-surface-overlay p-1 shadow-elevated dark:border-edge`,side:`bottom`,align:`end`,sideOffset:4,collisionPadding:12,onCloseAutoFocus:uU,children:[T,k,N,R,V,U,te]})}),t[65]=T,t[66]=k,t[67]=N,t[68]=R,t[69]=V,t[70]=U,t[71]=te,t[72]=ne):ne=t[72];let K;return t[73]!==l||t[74]!==ne||t[75]!==x?(K=(0,$.jsxs)(Xc,{open:l,onOpenChange:u,children:[x,ne]}),t[73]=l,t[74]=ne,t[75]=x,t[76]=K):K=t[76],K}function uU(e){return e.preventDefault()}function dU(e){let t=(0,Q.c)(70),{group:n,isExpanded:r,isCollapsed:i,activeConversationId:a,onToggleExpanded:o,onToggleCollapsed:s,onCreateProjectChat:c,onToggleProjectPin:l,onRequestProjectRename:u,onArchiveProject:d,onRequestProjectRemove:f,onNavigate:p,mutate:m,onRequestRename:h,onRequestDelete:g,sb:_,sess:v,clipboard:y,defaultUnnamedTitle:b,excludedConversationIds:x,projectSort:S,onReorder:C}=e,w;t[0]!==x||t[1]!==n.sessions?(w=x?n.sessions.filter(e=>!x.has(e.key)):n.sessions,t[0]=x,t[1]=n.sessions,t[2]=w):w=t[2];let T=w,E;t[3]!==r||t[4]!==T?(E=r?T:T.slice(0,KH),t[3]=r,t[4]=T,t[5]=E):E=t[5];let D=E,O=T.length>KH,k=n.sessionHasMore||O,A=r&&!n.sessionHasMore&&O,j;t[6]===a?j=t[7]:(j=e=>e.key===a,t[6]=a,t[7]=j);let M=T.some(j),N=n.project.name,P=M?`text-fg`:`text-fg-muted`,F;t[8]===P?F=t[9]:(F=Y(`group flex h-7 min-w-0 items-center gap-1.5 rounded-lg px-2 text-sm font-medium leading-5`,P),t[8]=P,t[9]=F);let I;t[10]!==n.project.id||t[11]!==s?(I=()=>s(n.project.id),t[10]=n.project.id,t[11]=s,t[12]=I):I=t[12];let L=!i,R;t[13]===i?R=t[14]:(R=i?(0,$.jsx)(yi,{className:`size-3.5 shrink-0 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(vi,{className:`size-3.5 shrink-0 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=i,t[14]=R);let z;t[15]===n.project.name?z=t[16]:(z=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.project.name}),t[15]=n.project.name,t[16]=z);let B;t[17]!==n.project.name||t[18]!==z||t[19]!==I||t[20]!==L||t[21]!==R?(B=(0,$.jsxs)(`button`,{type:`button`,className:`flex h-7 min-w-0 flex-1 items-center gap-1 text-left hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,onClick:I,title:n.project.name,"aria-expanded":L,children:[R,z]}),t[17]=n.project.name,t[18]=z,t[19]=I,t[20]=L,t[21]=R,t[22]=B):B=t[22];let V;t[23]!==n.project||t[24]!==d||t[25]!==p||t[26]!==f||t[27]!==u||t[28]!==l||t[29]!==_?(V=(0,$.jsx)(lU,{project:n.project,onNavigate:p,onPinToggle:l,onRequestRename:u,onArchive:d,onRequestRemove:f,sb:_}),t[23]=n.project,t[24]=d,t[25]=p,t[26]=f,t[27]=u,t[28]=l,t[29]=_,t[30]=V):V=t[30];let H;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(H=Y(`flex size-7 shrink-0 items-center justify-center rounded-lg text-fg-subtle transition-opacity hover:bg-surface-hover hover:text-fg-muted`,`opacity-0 group-hover:opacity-100 focus:opacity-100`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),t[31]=H):H=t[31];let ee;t[32]!==n.project||t[33]!==c?(ee=()=>c(n.project),t[32]=n.project,t[33]=c,t[34]=ee):ee=t[34];let U;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(fo,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),t[35]=U):U=t[35];let W;t[36]!==_.projectNewChat||t[37]!==ee?(W=(0,$.jsx)(`button`,{type:`button`,className:H,onClick:ee,title:_.projectNewChat,"aria-label":_.projectNewChat,children:U}),t[36]=_.projectNewChat,t[37]=ee,t[38]=W):W=t[38];let G;t[39]!==B||t[40]!==V||t[41]!==W||t[42]!==F?(G=(0,$.jsxs)(`div`,{className:F,children:[B,V,W]}),t[39]=B,t[40]=V,t[41]=W,t[42]=F,t[43]=G):G=t[43];let te;t[44]!==a||t[45]!==k||t[46]!==y||t[47]!==b||t[48]!==n.project.id||t[49]!==n.sessionLoading||t[50]!==i||t[51]!==m||t[52]!==p||t[53]!==C||t[54]!==g||t[55]!==h||t[56]!==o||t[57]!==_||t[58]!==v||t[59]!==A||t[60]!==T||t[61]!==D?(te=i?null:(0,$.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[D.map(e=>(0,$.jsx)(cU,{session:e,isActive:a===e.key,onNavigate:p,mutate:m,onRequestRename:h,onRequestDelete:g,sb:_,sess:v,clipboard:y,defaultUnnamedTitle:b,sort:{containerId:`project:${n.project.id}`,itemId:e.key,itemIds:T.map(fU),onReorder:C}},e.key)),k?(0,$.jsxs)(`button`,{type:`button`,className:`ml-4 flex w-fit items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium text-fg-subtle transition-colors hover:bg-surface-hover hover:text-fg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,onClick:()=>o(n.project.id),disabled:n.sessionLoading,"aria-busy":n.sessionLoading||void 0,children:[n.sessionLoading?(0,$.jsx)(ha,{className:`size-3.5 animate-spin`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(Hn,{className:Y(`size-3.5 transition-transform duration-150 ease-out`,A&&`rotate-180`),strokeWidth:1.75,"aria-hidden":!0}),A?_.projectShowLess:_.projectShowMore]}):null]}),t[44]=a,t[45]=k,t[46]=y,t[47]=b,t[48]=n.project.id,t[49]=n.sessionLoading,t[50]=i,t[51]=m,t[52]=p,t[53]=C,t[54]=g,t[55]=h,t[56]=o,t[57]=_,t[58]=v,t[59]=A,t[60]=T,t[61]=D,t[62]=te):te=t[62];let ne;t[63]!==n.project.name||t[64]!==G||t[65]!==te?(ne=(0,$.jsxs)(`section`,{className:`flex flex-col gap-0.5`,"aria-label":N,children:[G,te]}),t[63]=n.project.name,t[64]=G,t[65]=te,t[66]=ne):ne=t[66];let K;return t[67]!==S||t[68]!==ne?(K=(0,$.jsx)(ZH,{spec:S,children:ne}),t[67]=S,t[68]=ne,t[69]=K):K=t[69],K}function fU(e){return e.key}function pU(e){let t=(0,Q.c)(49),{sessions:n,hasMore:r,loadingMore:i,isCollapsed:a,onToggleCollapsed:o,onCreateChat:s,onLoadMore:c,activeConversationId:l,onNavigate:u,mutate:d,onRequestRename:f,onRequestDelete:p,sb:m,sess:h,clipboard:g,defaultUnnamedTitle:_,excludedConversationIds:v,onReorder:y,sortable:b}=e,x=b===void 0||b,S;t[0]!==v||t[1]!==n?(S=v?n.filter(e=>!v.has(e.key)):n,t[0]=v,t[1]=n,t[2]=S):S=t[2];let C=S;if(C.length===0&&!r)return null;let w=m.inboxHeading,T;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(T=Y(`flex min-w-0 flex-1 items-center gap-1 px-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,aU),t[3]=T):T=t[3];let E=!a,D=m.inboxHeading,O=a&&`-rotate-90`,k;t[4]===O?k=t[5]:(k=Y(`size-3.5 transition-transform duration-150 ease-out`,O),t[4]=O,t[5]=k);let A;t[6]===k?A=t[7]:(A=(0,$.jsx)(Hn,{className:k,strokeWidth:1.75,"aria-hidden":!0}),t[6]=k,t[7]=A);let j;t[8]!==o||t[9]!==m.inboxHeading||t[10]!==E||t[11]!==A?(j=(0,$.jsxs)(`button`,{type:`button`,className:T,onClick:o,"aria-expanded":E,children:[D,A]}),t[8]=o,t[9]=m.inboxHeading,t[10]=E,t[11]=A,t[12]=j):j=t[12];let M;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(M=Y(`flex size-7 shrink-0 items-center justify-center rounded-lg text-fg-subtle transition-opacity hover:bg-surface-hover hover:text-fg-muted`,`opacity-0 group-hover:opacity-100 focus:opacity-100`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`),t[13]=M):M=t[13];let N;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(fo,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),t[14]=N):N=t[14];let P;t[15]!==_||t[16]!==s?(P=(0,$.jsx)(`button`,{type:`button`,className:M,onClick:s,title:_,"aria-label":_,children:N}),t[15]=_,t[16]=s,t[17]=P):P=t[17];let F;t[18]!==j||t[19]!==P?(F=(0,$.jsxs)(`div`,{className:`group flex min-w-0 items-center pb-1`,children:[j,P]}),t[18]=j,t[19]=P,t[20]=F):F=t[20];let I=a&&`hidden`,L;t[21]===I?L=t[22]:(L=Y(`flex flex-col gap-0.5`,I),t[21]=I,t[22]=L);let R;t[23]!==l||t[24]!==g||t[25]!==_||t[26]!==d||t[27]!==u||t[28]!==y||t[29]!==p||t[30]!==f||t[31]!==m||t[32]!==h||t[33]!==x||t[34]!==C?(R=C.map(e=>(0,$.jsx)(cU,{session:e,isActive:l===e.key,onNavigate:u,mutate:d,onRequestRename:f,onRequestDelete:p,sb:m,sess:h,clipboard:g,defaultUnnamedTitle:_,sort:x?{containerId:`inbox`,itemId:e.key,itemIds:C.map(mU),onReorder:y}:void 0},e.key)),t[23]=l,t[24]=g,t[25]=_,t[26]=d,t[27]=u,t[28]=y,t[29]=p,t[30]=f,t[31]=m,t[32]=h,t[33]=x,t[34]=C,t[35]=R):R=t[35];let z;t[36]!==r||t[37]!==i||t[38]!==c||t[39]!==m.projectShowMore?(z=r?(0,$.jsxs)(`button`,{type:`button`,className:`ml-4 flex w-fit items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium text-fg-subtle transition-colors hover:bg-surface-hover hover:text-fg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,onClick:c,disabled:i,"aria-busy":i||void 0,children:[i?(0,$.jsx)(ha,{className:`size-3.5 animate-spin`,strokeWidth:1.75,"aria-hidden":!0}):(0,$.jsx)(Hn,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),m.projectShowMore]}):null,t[36]=r,t[37]=i,t[38]=c,t[39]=m.projectShowMore,t[40]=z):z=t[40];let B;t[41]!==L||t[42]!==R||t[43]!==z?(B=(0,$.jsxs)(`div`,{className:L,children:[R,z]}),t[41]=L,t[42]=R,t[43]=z,t[44]=B):B=t[44];let V;return t[45]!==m.inboxHeading||t[46]!==F||t[47]!==B?(V=(0,$.jsxs)(`section`,{className:`flex flex-col gap-0.5`,"aria-label":w,children:[F,B]}),t[45]=m.inboxHeading,t[46]=F,t[47]=B,t[48]=V):V=t[48],V}function mU(e){return e.key}function hU(e){let t=(0,Q.c)(21),{sessions:n,activeConversationId:r,onNavigate:i,mutate:a,onRequestRename:o,onRequestDelete:s,sb:c,sess:l,clipboard:u,defaultUnnamedTitle:d,onReorder:f}=e;if(n.length===0)return null;let p=l.pinnedSessions,m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=Y(`px-2 pb-1`,iU),t[0]=m):m=t[0];let h;t[1]===l.pinnedSessions?h=t[2]:(h=(0,$.jsx)(`h2`,{className:m,children:l.pinnedSessions}),t[1]=l.pinnedSessions,t[2]=h);let g;t[3]!==r||t[4]!==u||t[5]!==d||t[6]!==a||t[7]!==i||t[8]!==f||t[9]!==s||t[10]!==o||t[11]!==c||t[12]!==l||t[13]!==n?(g=n.map(e=>(0,$.jsx)(cU,{session:e,isActive:r===e.key,onNavigate:i,mutate:a,onRequestRename:o,onRequestDelete:s,sb:c,sess:l,clipboard:u,defaultUnnamedTitle:d,sort:{containerId:`pinned`,itemId:e.key,itemIds:n.map(gU),onReorder:f}},e.key)),t[3]=r,t[4]=u,t[5]=d,t[6]=a,t[7]=i,t[8]=f,t[9]=s,t[10]=o,t[11]=c,t[12]=l,t[13]=n,t[14]=g):g=t[14];let _;t[15]===g?_=t[16]:(_=(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:g}),t[15]=g,t[16]=_);let v;return t[17]!==l.pinnedSessions||t[18]!==h||t[19]!==_?(v=(0,$.jsxs)(`section`,{className:`mb-3 flex flex-col gap-0.5`,"aria-label":p,children:[h,_]}),t[17]=l.pinnedSessions,t[18]=h,t[19]=_,t[20]=v):v=t[20],v}function gU(e){return e.key}function _U(e){let t=(0,Q.c)(4),{onNavigate:n,scrollHeader:r}=e,i=T(vU),a;return t[0]!==i||t[1]!==n||t[2]!==r?(a=(0,$.jsx)(yU,{gateway:i,onNavigate:n,scrollHeader:r},i),t[0]=i,t[1]=n,t[2]=r,t[3]=a):a=t[3],a}function vU(e){return e.baseUrl}function yU({onNavigate:e,gateway:t,scrollHeader:n}){let r=E(e=>e.language),i=P(r),a=i.sidebar,o=i.sessions,s=i.projectsPage,c=i.chat.workingDirectory,l=T(e=>e.conversationId),u=IH(t,l),d=a.sessionFilters,f=(0,Z.useRef)(null),m=(0,Z.useRef)(0);(0,Z.useLayoutEffect)(()=>{f.current&&(f.current.scrollTop=u.active?0:m.current)},[u.active]);let h=T(e=>e.openTokenDialog),{data:g,mutate:_}=oc(l?[`gateway-chat-agents`,l]:null,gc,{revalidateOnFocus:!1}),v=g?.defaultId??`main`;(0,Z.useEffect)(()=>{let e=()=>void _();return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[_]);let{pathname:y}=p(),x=b(),S=$H(y),C=(0,Z.useMemo)(()=>Date.now()-qH*24*60*60*1e3,[]),[w,D]=(0,Z.useState)(null),[O,k]=(0,Z.useState)(``),[A,j]=(0,Z.useState)(null),[M,N]=(0,Z.useState)(null),[F,L]=(0,Z.useState)(``),[U,W]=(0,Z.useState)(null),[G,te]=(0,Z.useState)(!1),[ne,K]=(0,Z.useState)(``),[q,re]=(0,Z.useState)(``),[ie,ae]=(0,Z.useState)(null),[oe,se]=(0,Z.useState)(!1),[ce,le]=(0,Z.useState)(!1),[ue,de]=(0,Z.useState)(()=>S),[fe,pe]=(0,Z.useState)(!1),[me,he]=(0,Z.useState)(!1),[ge,_e]=(0,Z.useState)(()=>new Set),[ve,ye]=(0,Z.useState)(()=>new Set),[be,J]=(0,Z.useState)({}),[xe,Se]=(0,Z.useState)({}),[Ce,we]=(0,Z.useState)(()=>new Set),[Te,Ee]=(0,Z.useState)([]),[De,Oe]=(0,Z.useState)(null),[ke,Ae]=(0,Z.useState)(!1),[je,Me]=(0,Z.useState)({}),Ne=(0,Z.useRef)(new Set),Pe=wu({initialPath:q,onPicked:re}),{data:Fe,size:Ie,setSize:Le,isValidating:Re,mutate:ze}=cc((e,t)=>!l||t&&!t.projects.hasMore?null:[`sidebar-chat-list`,l,ue??``,e],async([,,e,t])=>Es({projectLimit:GH,projectOffset:t*GH,sessionPreviewLimit:KH,inboxLimit:t===0?WH:1,inboxOffset:0,staleDays:qH,includeConversationId:e||void 0}),{keepPreviousData:!0,revalidateOnFocus:!1}),Be=(0,Z.useMemo)(()=>{let e=Fe??[],t=[],n=new Set;for(let r of e)for(let e of r.projects.items){if(n.has(e.project.id))continue;n.add(e.project.id);let r=be[e.project.id],i=r?.sessions??e.sessions;t.push({project:e.project,sessions:i,sessionTotal:r?.sessionTotal??e.sessionTotal,sessionHasMore:r?.hasMore??e.sessionHasMore,sessionLoading:Ce.has(e.project.id)})}return XH(t.map(e=>({...e,sessions:XH(e.sessions,je[`project:${e.project.id}`],e=>e.key)})),je.projects,e=>e.project.id)},[Fe,Ce,je,be]),Ve=(0,Z.useMemo)(()=>{let e={};for(let t of Fe??[])Object.assign(e,t.childrenByConversationId);return{...e,...xe}},[Fe,xe]),He=Fe?.[0]?.inbox,Ue=(0,Z.useMemo)(()=>{let e=[],t=new Set;for(let n of[...He?.items??[],...Te])t.has(n.key)||(t.add(n.key),e.push(n));return e.sort((e,t)=>nU(t)-nU(e)),XH(e,je.inbox??Fe?.[0]?.layouts.inbox?.itemIds,e=>e.key)},[Fe,He?.items,Te,je.inbox]),We=De??He?.hasMore??!1,Ge=(0,Z.useMemo)(()=>{let e=[],t=new Set;for(let n of Be)for(let r of n.sessions)t.has(r.key)||(t.add(r.key),e.push(r));for(let n of Ue)t.has(n.key)||(t.add(n.key),e.push(n));return e},[Ue,Be]),Ke=(0,Z.useMemo)(()=>new Set(Ge.map(e=>e.key)),[Ge]),qe=Be.length>0||Ue.length>0,Je=(0,Z.useMemo)(()=>XH(Fe?.[0]?.pinned??[],je.pinned,e=>e.key),[Fe,je.pinned]),Ye=(0,Z.useMemo)(()=>new Set(Je.map(e=>e.key)),[Je]),Xe=!!(Fe&&Ie>Fe.length),Ze=(Fe?.[Fe.length-1])?.projects.hasMore??!1,Qe=!!(l&&!Fe&&Re),$e=(0,Z.useCallback)(()=>{J({}),Ee([]),Oe(null),Se({}),ze()},[ze]),et=(0,Z.useCallback)((e,t)=>{if(Ne.current.has(e))return;let n=Fe?.[0]?.layouts[e]?.revision??0;Me(n=>({...n,[e]:t})),Ne.current.add(e),(async()=>{try{await Ts({containerId:e,itemIds:t,expectedRevision:n}),await ze()}catch{ki(`warning`,r===`zh`?`未能保存侧栏顺序,已恢复原位置`:`Could not save sidebar order; the previous order was restored`,void 0,{duration:3500})}finally{Ne.current.delete(e),Me(t=>{let n={...t};return delete n[e],n})}})()},[Fe,r,ze]),tt=(0,Z.useCallback)(e=>{let t=e.currentTarget;if(u.active||(m.current=t.scrollTop,!Ze||Xe))return;let{scrollTop:n,scrollHeight:r,clientHeight:i}=t;r-n-i>100||Le(e=>e+1)},[u.active,Ze,Xe,Le]);(0,Z.useEffect)(()=>{if(!l)return;let e=()=>{$e()},t=e=>{if(!e.detail?.key){$e();return}$e()},n=e=>{BH(e.detail,Ke)&&$e()};return window.addEventListener(`session-updated`,t),window.addEventListener(`session-created`,e),window.addEventListener(`project-updated`,e),window.addEventListener(`task-updated`,e),window.addEventListener(`session-transcript-updated`,n),()=>{window.removeEventListener(`session-updated`,t),window.removeEventListener(`session-created`,e),window.removeEventListener(`project-updated`,e),window.removeEventListener(`task-updated`,e),window.removeEventListener(`session-transcript-updated`,n)}},[l,$e,Ke]),(0,Z.useEffect)(()=>{!l||!S||!Fe||Ge.some(e=>e.key===S)||de(e=>e===S?e:S)},[S,Fe,Ge,l]);let nt=(0,Z.useCallback)(e=>{D(e.key),k(QH(e,i.chat.newSession))},[i.chat.newSession]),rt=async()=>{if(!w)return;let e=O.trim();if(e)try{await Ds(w,e),D(null),u.refresh(),$e()}catch{}},it=async e=>{try{await Os(e),u.refresh(),S===e&&x(`/chat/new?projectScope=none`,{state:{forceNewChat:!0}}),$e()}catch{}},at=(0,Z.useCallback)(e=>{N(e.id),L(e.name.trim())},[]),ot=async()=>{if(!M||!ht)return;let e=F.trim();if(e)try{await xs(M,e,ht.version),N(null),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:M}}))}catch{}},st=(0,Z.useCallback)(async e=>{try{await Ss(e.id,e.version),y===`/projects/${encodeURIComponent(e.id)}`&&x(`/projects`),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch{}},[x,y,$e]),ct=(0,Z.useCallback)(async e=>{try{e.pinnedAt?await gs(e.id,e.version):await vs(e.id,e.version),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch{}},[$e]),lt=async e=>{let t=e.id;try{await ys(t,e.version),y===`/projects/${encodeURIComponent(t)}`&&x(`/projects`),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:t}}))}catch{}},ut=(0,Z.useCallback)(e=>{let t=Be.find(t=>t.project.id===e);if(t){if(ve.has(e)&&!t.sessionHasMore){ye(t=>{let n=new Set(t);return n.delete(e),n});return}ye(t=>{let n=new Set(t);return n.add(e),n}),!(!t.sessionHasMore||Ce.has(e))&&(we(t=>new Set(t).add(e)),(async()=>{try{let n=await As({projectId:e,limit:5e3,offset:0,updatedAfter:C,includePinned:!0,includeConversationId:S,rootConversationsOnly:!0});Se(e=>({...e,...n.childrenByConversationId})),J(r=>{let i=r[e]?.sessions??t.sessions,a=new Set(i.map(e=>e.key)),o=[...i];for(let e of n.items)a.has(e.key)||(a.add(e.key),o.push(e));let s=XH(o,je[`project:${e}`]??Fe?.[0]?.layouts[`project:${e}`]?.itemIds,e=>e.key);return{...r,[e]:{sessions:s,sessionTotal:n.total,hasMore:!1}}})}finally{we(t=>{let n=new Set(t);return n.delete(e),n})}})())}},[S,Fe,ve,Ce,je,Be,C]),dt=(0,Z.useCallback)(e=>{_e(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ft=(0,Z.useCallback)(()=>{!We||ke||(Ae(!0),(async()=>{try{let e=await As({unassigned:!0,limit:5e3,offset:0,updatedAfter:C,includePinned:!0,includeConversationId:S,rootConversationsOnly:!0});Se(t=>({...t,...e.childrenByConversationId})),Ee(t=>{let n=new Set([...He?.items??[],...t].map(e=>e.key)),r=[...t];for(let t of e.items)n.has(t.key)||(n.add(t.key),r.push(t));return XH(r,je.inbox??Fe?.[0]?.layouts.inbox?.itemIds,e=>e.key)}),Oe(!1)}finally{Ae(!1)}})())},[S,Fe,He?.items,We,ke,je.inbox,C]),pt=(0,Z.useCallback)(t=>{mr(x,uc(t.id),{state:{forceNewChat:!0,agentId:t.defaultAgentId??v}},e)},[v,x,e]),mt=(0,Z.useCallback)(async e=>{e.preventDefault();let t=ne.trim(),n=q.trim();if(!(!t||oe)){se(!0),ae(null);try{let e=await bs({name:t,...n?{workspaceRoot:n}:{},autoUnderstand:!!n&&ce});K(``),re(``),le(!1),te(!1),$e(),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){ae(e instanceof Error?e.message:String(e))}finally{se(!1)}}},[ne,q,oe,$e,ce]),ht=M?Be.find(e=>e.project.id===M)?.project:void 0,gt=U?Be.find(e=>e.project.id===U)?.project:void 0;return l?(0,$.jsx)(VH,{value:u.filters.details,children:(0,$.jsx)(HH,{value:Ve,children:(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,$.jsxs)(`div`,{ref:f,className:`app-sidebar-nav-scroll min-h-0 flex-1 overflow-y-auto overscroll-y-contain pb-2`,onScroll:tt,children:[n,(0,$.jsx)(`div`,{hidden:u.active||Qe,className:`px-2`,children:(0,$.jsx)(hU,{sessions:Je,activeConversationId:S,onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,onReorder:et})}),(0,$.jsx)(`div`,{className:`px-2`,children:(0,$.jsxs)(`div`,{className:`group flex min-w-0 items-center gap-1.5 px-2 pb-1`,children:[(0,$.jsxs)(`button`,{type:`button`,className:Y(`flex shrink-0 items-center gap-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,aU),onClick:()=>pe(e=>!e),"aria-expanded":!fe,children:[a.projectsHeading,(0,$.jsx)(Hn,{className:Y(`size-3.5 transition-transform duration-150 ease-out`,fe&&`-rotate-90`),strokeWidth:1.75,"aria-hidden":!0})]}),(0,$.jsx)(MH,{filters:u.filters,onChange:u.updateFilters,search:u.search,onSearch:u.setSearch,labels:d,gateway:t,agents:g?.items??[]}),(0,$.jsx)(`button`,{type:`button`,className:Y(`flex size-6 shrink-0 items-center justify-center rounded-md text-fg-subtle opacity-0 transition-[color,background-color,opacity] hover:bg-surface-hover hover:text-fg focus:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`group-hover:opacity-100 group-focus-within:opacity-100 [@media(hover:none)]:opacity-100`,G&&`opacity-100`),onClick:()=>te(!0),"aria-label":s.createTitle,title:s.createTitle,children:(0,$.jsx)(fo,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0})})]})}),u.active?(0,$.jsxs)(`div`,{className:`px-2 py-2`,children:[u.pendingUpdate?(0,$.jsx)(`button`,{type:`button`,className:`mb-2 w-full rounded-md px-2 py-1 text-xs text-accent-fg hover:bg-surface-hover`,onClick:u.refresh,children:d.refresh}):null,u.error?(0,$.jsxs)(`div`,{role:`alert`,className:`space-y-2 p-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{children:d.error}),(0,$.jsx)(X,{variant:`secondary`,onClick:u.refresh,children:d.retry})]}):u.loading?(0,$.jsx)(sU,{}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`px-2 pb-2 text-xs text-fg-muted`,"aria-live":`polite`,children:d.results.replace(`{{count}}`,String(u.total))}),u.items.length?null:(0,$.jsx)(`p`,{className:`px-2 py-4 text-xs text-fg-muted`,children:d.empty}),(0,$.jsx)(VH,{value:!0,children:u.items.map(t=>(0,$.jsx)(cU,{session:t,isActive:t.key===S,showTaskChildren:!1,contextLabel:t.projectId?u.projects?.find(e=>e.id===t.projectId)?.name??Be.find(e=>e.project.id===t.projectId)?.project.name??t.projectId:d.unassigned,onNavigate:e,mutate:()=>{u.refresh(),$e()},onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession},t.key))}),u.loadingMore?(0,$.jsx)(oU,{}):u.hasMore?(0,$.jsx)(`button`,{type:`button`,className:`w-full rounded-md py-2 text-xs text-fg-muted hover:bg-surface-hover`,onClick:u.loadMore,children:d.more}):null]})]}):null,(0,$.jsxs)(`div`,{hidden:u.active,children:[Qe?(0,$.jsx)(sU,{}):qe?(0,$.jsxs)(`div`,{className:`flex flex-col px-2`,children:[Be.length>0?(0,$.jsx)(`div`,{className:`pb-1`,children:fe?null:Be.map(t=>(0,$.jsx)(dU,{group:t,isExpanded:ve.has(t.project.id),isCollapsed:ge.has(t.project.id),activeConversationId:S,onToggleExpanded:ut,onToggleCollapsed:dt,onCreateProjectChat:e=>void pt(e),onToggleProjectPin:e=>void ct(e),onRequestProjectRename:at,onArchiveProject:e=>void st(e),onRequestProjectRemove:e=>W(e.id),onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,excludedConversationIds:Ye,projectSort:{containerId:`projects`,itemId:t.project.id,itemIds:Be.map(e=>e.project.id),onReorder:et},onReorder:et},t.project.id))}):null,(0,$.jsx)(pU,{sessions:Ue.filter(e=>qa(e).source!==`system`),hasMore:We,loadingMore:ke,isCollapsed:me,onToggleCollapsed:()=>he(e=>!e),onCreateChat:()=>{mr(x,`/chat/new?projectScope=none`,{state:{forceNewChat:!0}},e)},onLoadMore:ft,activeConversationId:S,onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,excludedConversationIds:Ye,onReorder:et}),Ue.some(e=>qa(e).source===`system`)?(0,$.jsxs)(`details`,{className:`mt-3`,open:Ue.some(e=>e.key===S&&qa(e).source===`system`),children:[(0,$.jsx)(`summary`,{className:`cursor-pointer px-2 py-2 text-xs text-fg-muted`,children:r===`zh`?`系统活动`:`System activity`}),(0,$.jsx)(pU,{sessions:Ue.filter(e=>qa(e).source===`system`),hasMore:!1,loadingMore:ke,isCollapsed:!1,onToggleCollapsed:()=>void 0,onCreateChat:()=>{mr(x,`/chat/new?projectScope=none`,{state:{forceNewChat:!0}},e)},onLoadMore:ft,activeConversationId:S,onNavigate:e,mutate:$e,onRequestRename:nt,onRequestDelete:j,sb:a,sess:o,clipboard:i.clipboard,defaultUnnamedTitle:i.chat.newSession,excludedConversationIds:Ye,onReorder:et,sortable:!1})]}):null]}):(0,$.jsx)(`div`,{className:`px-4 pb-2`,children:(0,$.jsx)(`p`,{className:`rounded-xl bg-surface-panel p-3 text-xs leading-relaxed text-fg-muted`,children:a.taskListEmpty})}),Xe?(0,$.jsx)(`div`,{className:`flex justify-center py-2`,"aria-busy":!0,children:(0,$.jsx)(ha,{className:`size-4 animate-spin text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})}):null]})]}),(0,$.jsx)(ee,{open:G,onOpenChange:e=>{oe||(te(e),e||ae(null))},children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(30rem,calc(100vh-2rem))] w-[min(36rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[(0,$.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:s.createTitle}),(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:s.createDescription})]}),(0,$.jsxs)(`form`,{onSubmit:mt,className:`flex min-h-0 flex-1 flex-col`,children:[(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,$.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[s.projectName,(0,$.jsx)(`input`,{autoFocus:!0,className:`h-10 rounded-lg border border-edge bg-surface-base px-3 font-normal outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:ne,onChange:e=>K(e.target.value),maxLength:160})]}),(0,$.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,$.jsx)(`span`,{className:`font-medium text-fg`,children:s.workspaceRoot}),(0,$.jsxs)(`button`,{type:`button`,className:`flex min-h-12 w-full items-center gap-3 rounded-lg border border-edge bg-surface-base px-3 py-2 text-left outline-none transition-colors hover:bg-surface-hover focus-visible:border-accent focus-visible:ring-2 focus-visible:ring-accent/20 disabled:cursor-not-allowed disabled:opacity-60`,onClick:Pe.pick,disabled:oe||Pe.picking,children:[Pe.picking?(0,$.jsx)(ha,{className:`size-5 shrink-0 animate-spin text-accent`,"aria-hidden":!0}):(0,$.jsx)(vi,{className:`size-5 shrink-0 text-accent`,"aria-hidden":!0}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:q?c.chooseFolder:c.selectWorkingDirectory}),(0,$.jsx)(`span`,{className:Y(`mt-0.5 block truncate font-mono text-xs font-normal`,q?`text-fg-muted`:`text-fg-subtle`),title:q||void 0,children:q||s.workspaceSelectionPlaceholder})]})]}),(0,$.jsx)(`p`,{className:`text-xs font-normal text-fg-muted`,children:s.workspaceSelectionHint})]}),(0,$.jsx)(Su,{checked:ce,onChange:le,disabled:oe||!q.trim()}),ie?(0,$.jsx)(`p`,{className:`rounded-lg bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:ie}):null]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(X,{type:`button`,variant:`ghost`,disabled:oe,children:s.cancel})}),(0,$.jsx)(X,{type:`submit`,variant:`primary`,disabled:oe||!ne.trim(),children:oe?s.home.creating:s.create})]})]})]})]})}),Pe.hasNativePicker?null:(0,$.jsx)(Jn,{open:Pe.modalOpen,onOpenChange:Pe.setModalOpen,initialAbsolutePath:q||void 0,onConfirm:Pe.confirmPick,wd:c}),(0,$.jsx)(ee,{open:w!==null,onOpenChange:e=>!e&&D(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:a.taskRenameTitle}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg-subtle`,htmlFor:`sidebar-rename-input`,children:a.taskRenamePlaceholder}),(0,$.jsx)(`input`,{id:`sidebar-rename-input`,type:`text`,value:O,onChange:e=>k(e.target.value),className:Y(`mt-1.5 w-full rounded-lg border border-edge bg-surface-base px-3 py-2 text-sm text-fg`,Cl,`dark:border-edge`),placeholder:i.chat.newSession,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),rt())}}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>D(null),children:a.taskRenameCancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,onClick:()=>void rt(),disabled:!O.trim(),children:a.taskRenameSave})]})]})]})}),(0,$.jsx)(ee,{open:A!==null,onOpenChange:e=>!e&&j(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:o.deleteSessionTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:A?eU(o.deleteSessionMessage,{name:Ge.find(e=>e.key===A)?.name?.trim()||i.chat.newSession}):``}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>j(null),children:o.cancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`bg-red-600 hover:bg-red-700`,onClick:()=>{A&&it(A),j(null)},children:o.delete})]})]})]})}),(0,$.jsx)(ee,{open:M!==null,onOpenChange:e=>!e&&N(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:a.projectRenameTitle}),(0,$.jsx)(`label`,{className:`mt-3 block text-xs font-medium text-fg-subtle`,htmlFor:`sidebar-project-rename-input`,children:a.projectRenamePlaceholder}),(0,$.jsx)(`input`,{id:`sidebar-project-rename-input`,type:`text`,value:F,onChange:e=>L(e.target.value),className:Y(`mt-1.5 w-full rounded-lg border border-edge bg-surface-base px-3 py-2 text-sm text-fg`,Cl,`dark:border-edge`),placeholder:ht?.name??``,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),ot())}}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>N(null),children:a.taskRenameCancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,onClick:()=>void ot(),disabled:!F.trim(),children:a.taskRenameSave})]})]})]})}),(0,$.jsx)(ee,{open:U!==null,onOpenChange:e=>!e&&W(null),children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,26rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4 shadow-popover dark:border-edge`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:a.projectRemoveTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-relaxed text-fg-muted`,children:gt?eU(a.projectRemoveMessage,{name:gt.name}):``}),(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,$.jsx)(X,{type:`button`,variant:`secondary`,onClick:()=>W(null),children:o.cancel}),(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`bg-red-600 hover:bg-red-700`,onClick:()=>{gt&<(gt),W(null)},children:a.projectRemove})]})]})]})})]})})}):(0,$.jsxs)(`div`,{className:`app-sidebar-nav-scroll min-h-0 flex-1 overflow-y-auto overscroll-y-contain pb-2`,children:[n,(0,$.jsx)(`div`,{className:`flex flex-col gap-1.5 px-4 pt-4`,children:(0,$.jsxs)(`div`,{className:`rounded-xl bg-surface-panel p-3`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-muted`,children:a.taskListNeedToken}),(0,$.jsx)(X,{type:`button`,variant:`secondary`,className:`mt-3 h-8 w-full text-xs font-medium`,onClick:()=>{h(),e?.()},children:a.taskListAddToken})]})})]})}var bU=42,xU=1,SU=4,CU=3,wU=`xopc-web-sidebar-visible-app-count-v2`;function TU(e){return Math.min(SU,Math.max(xU,e))}function EU(){try{let e=Number.parseInt(globalThis.localStorage?.getItem(wU)??``,10);return Number.isFinite(e)?TU(e):CU}catch{return CU}}function DU({onNavigate:e,collapsed:t=!1}){let n=P(E(e=>e.language)),[r,i]=(0,Z.useState)(EU),a=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{try{globalThis.localStorage?.setItem(wU,String(r))}catch{}},[r]);function o(e){e.preventDefault(),a.current={clientY:e.clientY,visibleCount:r},e.currentTarget.setPointerCapture(e.pointerId)}function s(e){let t=a.current;if(!t)return;let n=Math.round((e.clientY-t.clientY)/bU);i(TU(t.visibleCount+n))}function c(e){a.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId)}function l(e){e.key===`ArrowDown`||e.key===`ArrowRight`?(e.preventDefault(),i(e=>TU(e+1))):e.key===`ArrowUp`||e.key===`ArrowLeft`?(e.preventDefault(),i(e=>TU(e-1))):e.key===`Home`?(e.preventDefault(),i(xU)):e.key===`End`&&(e.preventDefault(),i(SU))}return(0,$.jsxs)(`div`,{className:`app-sidebar-content flex min-h-0 flex-1 flex-col`,children:[(0,$.jsx)(`div`,{className:Y(`flex min-h-0 flex-1 flex-col overflow-hidden`,t&&`hidden`),"aria-hidden":t?!0:void 0,children:(0,$.jsx)(_U,{onNavigate:e,scrollHeader:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`app-sidebar-sticky-surface sticky top-0 z-20 px-4 pt-1.5 pb-0.5`,children:(0,$.jsxs)(gr,{to:`/chat/new`,state:{forceNewChat:!0},className:Y(`flex w-full items-center gap-2 rounded-lg px-3 py-2.5 text-left text-sm font-medium leading-6 transition-colors duration-200 ease-out md:py-1.5`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`text-fg-muted hover:bg-surface-hover hover:text-fg`),title:n.sidebar.newTask,onClick:()=>e?.(),children:[(0,$.jsx)(fo,{className:`size-4 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`truncate`,children:n.sidebar.newTask})]})}),(0,$.jsx)(`nav`,{className:`px-4`,"aria-label":`Main`,children:(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,$.jsx)(uH,{onNavigate:e,visibleLimit:r})})}),(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,"aria-label":n.sidebar.resizeApps,"aria-valuemin":xU,"aria-valuemax":SU,"aria-valuenow":r,tabIndex:0,className:`group flex h-3 touch-none cursor-row-resize items-center px-4 focus-visible:outline-none`,title:n.sidebar.resizeApps,onPointerDown:o,onPointerMove:s,onPointerUp:c,onPointerCancel:c,onKeyDown:l,children:(0,$.jsx)(`span`,{className:`h-px w-full bg-transparent transition-colors group-hover:bg-edge group-focus-visible:bg-accent`})}),(0,$.jsx)(`div`,{className:`h-2`,"aria-hidden":!0})]})})}),t?(0,$.jsx)(`nav`,{className:`min-h-0 flex-1 overflow-y-auto px-1.5 pb-2 pt-4`,"aria-label":`Main`,children:(0,$.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,$.jsx)(uH,{collapsed:!0,onNavigate:e,visibleLimit:CU})})}):null,(0,$.jsx)(rH,{collapsed:t,onNavigate:e})]})}var OU=`(min-width: 768px)`,kU=(0,Z.memo)(function(){let e=(0,Q.c)(42),t=E(AU),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n,i=Fe(jU),a=Fe(MU),o=Fe(NU),s=ke(PU),c=ke(FU),[l,u]=(0,Z.useState)(!1),d=Ht({runtime:Ve(),sidebarCollapsed:i,mobileNavOpen:s}),f;e[2]!==o||e[3]!==i?(f=e=>{if(i)return;e.preventDefault();let t=e.currentTarget,n=t.parentElement;t.setPointerCapture(e.pointerId),u(!0);let r=e.clientX,a=Fe.getState().expandedWidthPx,s=e.pointerId,c=0,l=a,d=a,f=()=>{c=0,d=l,n?.style.setProperty(`--sidebar-expanded-px`,`${d}px`)},p=e=>{l=Me(a+(e.clientX-r)),c===0&&(c=window.requestAnimationFrame(f))},m=()=>{c!==0&&(window.cancelAnimationFrame(c),f());try{t.releasePointerCapture(s)}catch{}u(!1),o(d),window.removeEventListener(`pointermove`,p),window.removeEventListener(`pointerup`,m),window.removeEventListener(`pointercancel`,m)};window.addEventListener(`pointermove`,p),window.addEventListener(`pointerup`,m),window.addEventListener(`pointercancel`,m)},e[2]=o,e[3]=i,e[4]=f):f=e[4];let p=f,m,h;e[5]===c?(m=e[6],h=e[7]):(m=()=>{let e=e=>{e.key===`Escape`&&c(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},h=[c],e[5]=c,e[6]=m,e[7]=h),(0,Z.useEffect)(m,h);let g,_;e[8]===c?(g=e[9],_=e[10]):(g=()=>{let e=window.matchMedia(OU),t=()=>{e.matches&&c(!1)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},_=[c],e[8]=c,e[9]=g,e[10]=_),(0,Z.useEffect)(g,_);let v,y;e[11]===s?(v=e[12],y=e[13]):(v=()=>{if(!s||!window.matchMedia(`(max-width: 767px)`).matches)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},y=[s],e[11]=s,e[12]=v,e[13]=y),(0,Z.useEffect)(v,y);let b;e[14]!==r||e[15]!==s||e[16]!==c?(b=s?(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-40 bg-scrim md:hidden`,"aria-label":r.closeMenu,onClick:()=>c(!1)}):null,e[14]=r,e[15]=s,e[16]=c,e[17]=b):b=e[17];let x=l&&`sidebar-width-resizing`,S=s?`max-md:translate-x-0`:`max-md:-translate-x-full`,C=i?`md:w-0 md:overflow-hidden md:border-0`:`app-sidebar-expanded-width`,w;e[18]!==x||e[19]!==S||e[20]!==C?(w=Y(`app-sidebar-push app-chrome-sidebar flex min-h-0 shrink-0 flex-col overflow-hidden bg-transparent`,x,`max-md:fixed max-md:left-0 max-md:top-0 max-md:z-50 max-md:h-[100dvh] max-md:w-[min(16rem,85vw)]`,`max-md:transition-transform max-md:duration-200 max-md:ease-out`,`motion-reduce:max-md:transition-none`,S,`md:relative md:h-full md:translate-x-0`,C),e[18]=x,e[19]=S,e[20]=C,e[21]=w):w=e[21];let T=i&&!s?!0:void 0,D=i&&!s?!0:void 0,O;e[22]!==a||e[23]!==i?(O=i?void 0:{"--sidebar-expanded-px":`${a}px`},e[22]=a,e[23]=i,e[24]=O):O=e[24];let k=d.sidebarChromeVisible?(0,$.jsxs)(`div`,{className:Y(`sidebar-chrome-row flex min-w-0`,xl,d.sidebarChromeDraggable&&`[-webkit-app-region:drag]`,d.sidebarLeadingInsetClass,i?`justify-center gap-1 px-1.5 max-md:flex`:Y(`justify-start gap-1`,d.sidebarLeadingInsetClass?`sidebar-chrome-row-darwin pr-3`:`px-3`),i&&`md:hidden`),children:[s?(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:Y(`size-8 shrink-0 rounded-xl p-0 md:hidden`,bl),"aria-label":r.closeMenu,title:r.closeMenu,onClick:()=>c(!1),children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:1.5,"aria-hidden":!0})}):null,d.sidebarQuickActionsVisible&&!i?(0,$.jsx)(QB,{sidebarToggleVariant:`sidebar`,className:`overflow-hidden`}):null]}):null,A;e[25]===c?A=e[26]:(A=(0,$.jsx)(DU,{collapsed:!1,onNavigate:()=>c(!1)}),e[25]=c,e[26]=A);let j;e[27]!==r||e[28]!==p||e[29]!==i?(j=i?null:(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":r.sidebar.resizeHandleAria,onPointerDown:p,className:Y(`pointer-events-auto absolute right-0 top-0 z-10 hidden h-full w-2 shrink-0 cursor-col-resize md:block`,`touch-none select-none`,bl)}),e[27]=r,e[28]=p,e[29]=i,e[30]=j):j=e[30];let M;e[31]!==w||e[32]!==T||e[33]!==D||e[34]!==O||e[35]!==k||e[36]!==A||e[37]!==j?(M=(0,$.jsxs)(`aside`,{id:`app-sidebar`,className:w,"aria-hidden":T,"data-collapsed":D,style:O,children:[k,A,j]}),e[31]=w,e[32]=T,e[33]=D,e[34]=O,e[35]=k,e[36]=A,e[37]=j,e[38]=M):M=e[38];let N;return e[39]!==M||e[40]!==b?(N=(0,$.jsxs)($.Fragment,{children:[b,M]}),e[39]=M,e[40]=b,e[41]=N):N=e[41],N});function AU(e){return e.language}function jU(e){return e.collapsed}function MU(e){return e.expandedWidthPx}function NU(e){return e.setExpandedWidthPx}function PU(e){return e.mobileNavOpen}function FU(e){return e.setMobileNavOpen}function IU(e){if(typeof e!=`string`||e.length>8192)throw Error(`Invalid browser URL`);let t=new URL(e);if(![`http:`,`https:`].includes(t.protocol)||t.username||t.password)throw Error(`Use an HTTP or HTTPS address without embedded credentials`);return t.href}function LU(e,t){let n=e.trim();if(!n)return null;if(/^https?:\/\//i.test(n))return IU(n);if(/^(localhost|127(?:\.\d+){3}|\[::1\])(?::\d+)?(?:[/?#]|$)/i.test(n))return IU(`http://${n}`);if(!/\s/.test(n)&&/^(?:[\w-]+\.)+[\w-]+(?::\d+)?(?:[/?#]|$)/i.test(n))return IU(`https://${n}`);if(/^[a-z][a-z\d+.-]*:/i.test(n))throw Error(`Only HTTP and HTTPS addresses are supported`);return t?{google:`https://www.google.com/search?q=`,bing:`https://www.bing.com/search?q=`,duckduckgo:`https://duckduckgo.com/?q=`}[t]+encodeURIComponent(n):null}var RU=O(e=>({tabs:{},update:t=>e(e=>({tabs:{...e.tabs,[t.workspaceTabId]:t}}))}));async function zU(e){let t=RU.getState().tabs[e];return t&&window.electronAPI?.browser&&!await window.electronAPI.browser.close(t.id)?!1:(RU.setState(t=>({tabs:Object.fromEntries(Object.entries(t.tabs).filter(([t])=>t!==e))})),!0)}T.subscribe((e,t)=>{(e.baseUrl!==t.baseUrl||t.conversationId&&e.conversationId!==t.conversationId)&&(RU.setState({tabs:{}}),window.electronAPI?.browser?.release().catch(()=>{}))});function BU(e,t,n){let r=(0,Q.c)(5),i,a;r[0]!==t||r[1]!==e||r[2]!==n?(i=()=>{let r=window.electronAPI?.browser,i=e.current;if(!r||!t||!i)return;let a=0,o=``,s=!1,c=()=>{if(a=0,s)return;let e=[...document.querySelectorAll(`[role="dialog"], [role="alertdialog"], [data-radix-popper-content-wrapper], [data-browser-occluder]`)].some(GU),l=[i.closest(`[data-right-workspace]`),i.closest(`[role="tabpanel"]`)].filter(Boolean).some(UU),u=i.getBoundingClientRect(),d=n&&!e&&!l&&i.getClientRects().length>0&&document.visibilityState===`visible`?{x:u.x,y:u.y,width:u.width,height:u.height}:null,f=JSON.stringify(d);f!==o&&(o=f,r.present(t,d).catch(HU)),l&&(a=requestAnimationFrame(c))},l=()=>{a||=requestAnimationFrame(c)},u=new ResizeObserver(l);u.observe(i);let d=new MutationObserver(l);d.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`class`,`style`,`hidden`,`aria-hidden`,`data-state`]});let f=()=>{o=``,l()};return window.addEventListener(`focus`,f),window.addEventListener(`resize`,l),window.addEventListener(`scroll`,l,!0),document.addEventListener(`visibilitychange`,l),l(),()=>{s=!0,cancelAnimationFrame(a),u.disconnect(),d.disconnect(),window.removeEventListener(`focus`,f),window.removeEventListener(`resize`,l),window.removeEventListener(`scroll`,l,!0),document.removeEventListener(`visibilitychange`,l),r.present(t,null).catch(VU)}},a=[t,e,n],r[0]=t,r[1]=e,r[2]=n,r[3]=i,r[4]=a):(i=r[3],a=r[4]),(0,Z.useLayoutEffect)(i,a)}function VU(){}function HU(){}function UU(e){return e.getAnimations().some(WU)}function WU(e){return e.playState===`running`}function GU(e){return e.getClientRects().length>0&&getComputedStyle(e).visibility!==`hidden`}function KU(e){let t=(0,Q.c)(94),{tab:n,scope:r,active:i}=e,a=(0,Z.useContext)(Ai),o=E(JU)===`zh`,s=T(qU),c;t[0]===n.id?c=t[1]:(c=e=>e.tabs[n.id],t[0]=n.id,t[1]=c);let l=RU(c),u=(0,Z.useRef)(null),d=(0,Z.useRef)(null),[f,p]=(0,Z.useState)(n.initialUrl??``),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(),[b,x]=(0,Z.useState)(!1),S=window.electronAPI?.browser,C,w;t[2]!==s||t[3]!==r||t[4]!==n.id||t[5]!==n.initialUrl?(C=()=>{if(!S||!s)return;let e=!1;return S.ensure({workspaceTabId:n.id,scope:r,identity:s}).then(async t=>{if(e){Object.values(qc.getState().panes).some(e=>e.tabs.some(e=>e.id===n.id))||await S.close(t.id);return}RU.getState().update(t),!t.url&&n.initialUrl&&await S.navigate(t.id,n.initialUrl)}).catch(t=>{e||_(String(t.message??t))}),()=>{e=!0}},w=[S,s,r,n.id,n.initialUrl],t[2]=s,t[3]=r,t[4]=n.id,t[5]=n.initialUrl,t[6]=C,t[7]=w):(C=t[6],w=t[7]),(0,Z.useEffect)(C,w);let D;t[8]!==m||t[9]!==l?(D=()=>{!m&&l?.url&&p(l.url)},t[8]=m,t[9]=l,t[10]=D):D=t[10];let O=l?.url,k;t[11]!==m||t[12]!==O?(k=[m,O],t[11]=m,t[12]=O,t[13]=k):k=t[13],(0,Z.useEffect)(D,k),BU(u,l?.id,i&&!!l?.url&&!l?.error&&!l?.crashed&&!b);let A,j;t[14]!==i||t[15]!==n.id?(A=()=>{if(!i)return;let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`l`&&(e.preventDefault(),d.current?.focus(),d.current?.select())},t=e=>{e.detail===n.id&&(d.current?.focus(),d.current?.select())};return window.addEventListener(`browser-focus-address`,t),window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`browser-focus-address`,t)}},j=[i,n.id],t[14]=i,t[15]=n.id,t[16]=A,t[17]=j):(A=t[16],j=t[17]),(0,Z.useEffect)(A,j);let M;t[18]!==f||t[19]!==v||t[20]!==l?(M=async function(e){let t=e===void 0?v:e;if(!(!S||!l))try{let e=LU(f,t);if(!e){x(!!f.trim());return}x(!1),_(``),h(!1),await S.navigate(l.id,e)}catch(e){let t=e;_(t instanceof Error?t.message:String(t))}},t[18]=f,t[19]=v,t[20]=l,t[21]=M):M=t[21];let N=M,P;t[22]===l?P=t[23]:(P=function(e){!S||!l||(_(``),S.command(l.id,e).catch(e=>_(e instanceof Error?e.message:String(e))))},t[22]=l,t[23]=P);let F=P;if(!i){let e;return t[24]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(`div`,{ref:u,hidden:!0}),t[24]=e):e=t[24],e}let I;t[25]===N?I=t[26]:(I=e=>{e.preventDefault(),N()},t[25]=N,t[26]=I);let L=o?`网页后退`:`Browser back`,R=!l?.canGoBack,z;t[27]===F?z=t[28]:(z=()=>F(`back`),t[27]=F,t[28]=z);let B;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(Ut,{className:`size-4`}),t[29]=B):B=t[29];let V;t[30]!==L||t[31]!==R||t[32]!==z?(V=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":L,disabled:R,onClick:z,children:B}),t[30]=L,t[31]=R,t[32]=z,t[33]=V):V=t[33];let H=o?`网页前进`:`Browser forward`,ee=!l?.canGoForward,U;t[34]===F?U=t[35]:(U=()=>F(`forward`),t[34]=F,t[35]=U);let W;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,$.jsx)(Wt,{className:`size-4`}),t[36]=W):W=t[36];let G;t[37]!==H||t[38]!==ee||t[39]!==U?(G=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":H,disabled:ee,onClick:U,children:W}),t[37]=H,t[38]=ee,t[39]=U,t[40]=G):G=t[40];let te=l?.loading?o?`停止加载网页`:`Stop loading page`:o?`刷新网页`:`Reload page`,ne=!l?.url&&!l?.loading,K;t[41]!==F||t[42]!==l?.loading?(K=()=>F(l?.loading?`stop`:`reload`),t[41]=F,t[42]=l?.loading,t[43]=K):K=t[43];let q;t[44]===l?.loading?q=t[45]:(q=l?.loading?(0,$.jsx)(Zo,{className:`size-4`}):(0,$.jsx)(bo,{className:`size-4`}),t[44]=l?.loading,t[45]=q);let re;t[46]!==te||t[47]!==ne||t[48]!==K||t[49]!==q?(re=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":te,disabled:ne,onClick:K,children:q}),t[46]=te,t[47]=ne,t[48]=K,t[49]=q,t[50]=re):re=t[50];let ie=o?`搜索或输入网址`:`Search or enter a URL`,ae,oe,se;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(ae=()=>h(!0),oe=()=>h(!1),se=e=>p(e.target.value),t[51]=ae,t[52]=oe,t[53]=se):(ae=t[51],oe=t[52],se=t[53]);let ce=o?`搜索或输入网址`:`Search or enter a URL`,le;t[54]!==f||t[55]!==ie||t[56]!==ce?(le=(0,$.jsx)(`input`,{ref:d,"aria-label":ie,autoComplete:`off`,spellCheck:!1,value:f,onFocus:ae,onBlur:oe,onChange:se,placeholder:ce,className:`h-9 min-w-0 flex-1 rounded-full border border-edge-subtle bg-surface-base px-3 text-sm text-fg outline-none focus:border-accent`}),t[54]=f,t[55]=ie,t[56]=ce,t[57]=le):le=t[57];let ue=a?.button,de=o?`在系统浏览器打开`:`Open in system browser`,fe=!l?.url,pe;t[58]===l?pe=t[59]:(pe=()=>{l?.url&&window.electronAPI?.shell?.openExternalUrl(l.url).catch(e=>_(e instanceof Error?e.message:String(e)))},t[58]=l,t[59]=pe);let me;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,$.jsx)(Kr,{className:`size-4`}),t[60]=me):me=t[60];let he;t[61]!==de||t[62]!==fe||t[63]!==pe?(he=(0,$.jsx)(`button`,{type:`button`,className:`inline-flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-30`,"aria-label":de,disabled:fe,onClick:pe,children:me}),t[61]=de,t[62]=fe,t[63]=pe,t[64]=he):he=t[64];let ge;t[65]!==I||t[66]!==V||t[67]!==G||t[68]!==re||t[69]!==le||t[70]!==ue||t[71]!==he?(ge=(0,$.jsxs)(`form`,{"data-workspace-toolbar":!0,className:`flex h-14 shrink-0 items-center gap-1 bg-surface-inset px-2`,onSubmit:I,children:[V,G,re,le,ue,he]}),t[65]=I,t[66]=V,t[67]=G,t[68]=re,t[69]=le,t[70]=ue,t[71]=he,t[72]=ge):ge=t[72];let _e;t[73]===g?_e=t[74]:(_e=g?(0,$.jsx)(`p`,{role:`alert`,className:`border-b border-edge px-3 py-2 text-sm text-fg-muted`,children:g}):null,t[73]=g,t[74]=_e);let ve;t[75]===l?ve=t[76]:(ve=l?.notice?(0,$.jsx)(`p`,{role:`status`,className:`border-b border-edge px-3 py-2 text-xs text-fg-muted`,children:l.notice}):null,t[75]=l,t[76]=ve);let ye;t[77]!==b||t[78]!==N||t[79]!==o?(ye=b?(0,$.jsxs)(`div`,{role:`dialog`,"aria-label":o?`选择搜索引擎`:`Choose a search engine`,className:`border-b border-edge p-4 text-sm`,children:[(0,$.jsx)(`p`,{children:o?`选择搜索引擎后才会提交这次搜索。`:`Choose where to send this search.`}),(0,$.jsxs)(`div`,{className:`mt-3 flex gap-3`,children:[[`duckduckgo`,`google`,`bing`].map(e=>(0,$.jsx)(`button`,{type:`button`,className:`rounded-lg border border-edge px-3 py-2 hover:bg-surface-hover`,onClick:()=>{y(e),N(e)},children:e===`duckduckgo`?`DuckDuckGo`:e===`google`?`Google`:`Bing`},e)),(0,$.jsx)(`button`,{type:`button`,onClick:()=>x(!1),children:o?`取消`:`Cancel`})]})]}):null,t[77]=b,t[78]=N,t[79]=o,t[80]=ye):ye=t[80];let be;t[81]!==F||t[82]!==g||t[83]!==l||t[84]!==o?(be=!l&&g?(0,$.jsx)(`div`,{className:`p-8 text-sm text-fg-muted`,children:o?`无法创建浏览器标签。关闭其他网页后重试。`:`Browser tab could not be created. Close another page and try again.`}):l?l.error?(0,$.jsxs)(`div`,{role:`alert`,className:`p-8`,children:[(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l.error}),(0,$.jsx)(`button`,{type:`button`,className:`mt-4 text-accent`,onClick:()=>F(`reload`),children:o?`重试`:`Retry`})]}):l.url?null:(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 p-8 text-center text-fg-muted`,children:[(0,$.jsx)(Ni,{className:`size-9`}),(0,$.jsx)(`h2`,{className:`text-lg text-fg`,children:o?`浏览网页`:`Browse the web`}),(0,$.jsx)(`p`,{className:`text-sm`,children:o?`输入网址开始。网页内容不会自动发送到聊天。`:`Enter an address to begin. Pages are not automatically shared with chat.`})]}):(0,$.jsxs)(`div`,{className:`space-y-4 p-6`,children:[(0,$.jsx)($o,{className:`h-8 w-2/3`}),(0,$.jsx)($o,{className:`h-40 w-full`})]}),t[81]=F,t[82]=g,t[83]=l,t[84]=o,t[85]=be):be=t[85];let J;t[86]===be?J=t[87]:(J=(0,$.jsx)(`div`,{ref:u,className:`relative min-h-0 flex-1 overflow-hidden bg-surface-base`,"data-browser-surface":!0,children:be}),t[86]=be,t[87]=J);let xe;return t[88]!==ge||t[89]!==_e||t[90]!==ve||t[91]!==ye||t[92]!==J?(xe=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"data-browser-tab":!0,children:[ge,_e,ve,ye,J]}),t[88]=ge,t[89]=_e,t[90]=ve,t[91]=ye,t[92]=J,t[93]=xe):xe=t[93],xe}function qU(e){return e.conversationId}function JU(e){return e.language}function YU(){let e=(0,Q.c)(1),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,Z.useEffect)(XU,t)}function XU(){return window.electronAPI?.browser?.onEvent(ZU)}function ZU(e){if(e.kind===`state`)RU.getState().update(e.state),qc.getState().updateBrowserTitle(e.state.workspaceTabId,e.state.title);else if(e.kind===`focus-address`)window.dispatchEvent(new CustomEvent(`browser-focus-address`,{detail:e.workspaceTabId}));else{let t=qc.getState();Object.values(t.panes).flatMap($U).filter(QU).length<24&&t.openBrowser(e.url,e.scope,e.sourceTabId)}}function QU(e){return e.kind===`browser`}function $U(e){return e.tabs}var eW=(0,Z.memo)(function({elevated:e=!1,embedded:t=!1,scope:n,onCloseTree:r}){let i=P(E(e=>e.language)),{pathname:a,search:o}=p(),{conversationId:s}=d(),c=a.startsWith(`/chat`)&&s&&s!==`new`?decodeURIComponent(s):null,l=It(e=>e.open),u=t||l,f=(0,Z.useRef)(u),m=It(e=>e.setOpen),h=(0,Z.useCallback)(e=>{t?e||r?.():m(e)},[t,r,m]),g=It(e=>e.conversationIdOverride),_=It(e=>e.widthPx),v=It(e=>e.setWidthPx),y=n?n.conversationId??null:g??c,b=n?n.projectId??null:!y&&a.startsWith(`/chat`)?new URLSearchParams(o).get(`projectId`):null,[x,S]=(0,Z.useState)(!1),[C,w]=(0,Z.useState)(!1),[T,D]=(0,Z.useState)(``),[O,k]=(0,Z.useState)([]),[A,j]=(0,Z.useState)(!1),[M,N]=(0,Z.useState)(null),[F,I]=(0,Z.useState)(null),[L,R]=(0,Z.useState)(null),z=ll(e=>e.path),B=ll(e=>e.setPath),V=(0,Z.useCallback)(e=>{B(e,null,b,y)},[y,B,b]),H=Ru(e=>e.agentId),ee=n?.agentId??H,{tree:U,rootResource:W,loading:G,error:te,loadRoot:ne,loadChildren:K,refreshDirectory:q,reset:re}=Lu(ee,y,b),ie=y?`session:${y}`:b?`project:${b}`:`agent:${ee}`,ae=(0,Z.useMemo)(()=>b?{projectId:b}:y==null?ee.trim()?{agentId:ee.trim()}:void 0:{conversationId:y},[y,b,ee]),oe=T.trim(),se=Vl(),ce=(0,Z.useCallback)((e,t)=>{We(e.dataTransfer,{name:t.name,path:t.path,...ae})},[ae]),{dialogOpen:le,loading:ue,result:de,error:fe,pendingParams:pe,createShareLink:me,confirmShareLink:he,handleOpenChange:ge}=Uc(),_e=(0,Z.useCallback)(e=>{if(!u)return;e.preventDefault();let t=e.currentTarget,n=t.closest(`#app-workspace-panel`);t.setPointerCapture(e.pointerId),S(!0);let r=e.clientX,i=It.getState().widthPx,a=e.pointerId,o=0,s=i,c=i,l=()=>{o=0,c=s,n?.style.setProperty(`--workspace-panel-px`,`${c}px`)},d=e=>{s=Te(i+(r-e.clientX)),o===0&&(o=window.requestAnimationFrame(l))},f=()=>{o!==0&&(window.cancelAnimationFrame(o),l());try{t.releasePointerCapture(a)}catch{}S(!1),v(c),window.removeEventListener(`pointermove`,d),window.removeEventListener(`pointerup`,f),window.removeEventListener(`pointercancel`,f)};window.addEventListener(`pointermove`,d),window.addEventListener(`pointerup`,f),window.addEventListener(`pointercancel`,f)},[u,v]);(0,Z.useEffect)(()=>{!t&&!a.startsWith(`/chat`)&&h(!1)},[t,a,h]),(0,Z.useEffect)(()=>{let e=f.current;if(f.current=u,!u){re(),e&&!t&&V(null);return}t||V(null),ne()},[t,u,ie,ne,re,V]),(0,Z.useEffect)(()=>{if(!u||t)return;let e=e=>{if(e.key===`Escape`){if(C){e.preventDefault(),e.stopPropagation(),D(``),w(!1);return}ll.getState().path||h(!1)}};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[t,C,u,h]),(0,Z.useEffect)(()=>{if(!u||!t&&!C||!oe){k([]),j(!1),N(null);return}let e=!1;j(!0),N(null),k([]);let n=window.setTimeout(()=>{ku(oe,ae,50).then(t=>{e||k(t)}).catch(t=>{e||N(t instanceof Error?t.message:String(t))}).finally(()=>{e||j(!1)})},180);return()=>{e=!0,window.clearTimeout(n)}},[t,C,oe,u,ae]),(0,Z.useEffect)(()=>{if(!u||t||!window.matchMedia(`(max-width: 767px)`).matches)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[t,u]);let ve=(0,Z.useCallback)(e=>{K(e)},[K]),ye=(0,Z.useCallback)(async(e,t,n)=>{switch(e){case`preview`:if(t.isDirectory)return;V(t.path);break;case`download`:if(t.isDirectory)return;try{let e=Ti(t.path);if(wi(Ei(e))!==`text`)Au(e,await(await Du(t.path,ae)).arrayBuffer(),_c(e)??`application/octet-stream`);else{let{content:n}=await Ou(t.path,ae);Mu(e,n)}}catch{}break;case`copyPath`:try{await il(t.path)&&ki(`success`,i.workspace.pathCopied,void 0,{duration:2500})}catch{}break;case`openDefault`:await Pu(()=>window.electronAPI?.shell?.openFileResource?.(t.fileId),i.workspace.openFileFailed);break;case`openWith`:await Pu(()=>window.electronAPI?.shell?.chooseAppAndOpenFileResource?.(t.fileId),i.workspace.openFileFailed);break;case`openWithApp`:if(!n)return;await Pu(()=>window.electronAPI?.shell?.openFileResourceWithApp?.(t.fileId,n),i.workspace.openFileFailed);break;case`revealInFolder`:await Pu(()=>window.electronAPI?.shell?.showFileResourceInFolder?.(t.fileId),i.workspace.revealFileFailed);break;case`trash`:I(t);break;case`delete`:t.isDirectory||R(t);break;case`share`:await me({path:t.path,...t.isDirectory?{kind:`directory`,directoryMode:`browse`}:{},...ae});break;default:break}},[me,i.workspace.openFileFailed,i.workspace.pathCopied,i.workspace.revealFileFailed,V,ae]),be=(0,Z.useCallback)(async()=>{let e=F;if(!e)return;let n=await window.electronAPI?.shell?.trashFileResource?.(e.fileId);if(!n?.ok){ki(`warning`,n?.error??i.workspace.trashFailed,void 0,{duration:4e3});return}!t&&z===e.path&&V(null),I(null),await ne(),ki(`success`,i.workspace.trashSuccess,void 0,{duration:2500})},[t,ne,i.workspace.trashFailed,i.workspace.trashSuccess,F,z,V]),J=(0,Z.useCallback)(async(e,t)=>{try{await Promise.all(e.map(e=>ju(e,t,ae))),await q(t).catch(()=>void 0),ki(`success`,i.workspace.uploadSuccess.replace(`{{count}}`,String(e.length)),void 0,{duration:2500})}catch(e){await q(t).catch(()=>void 0),ki(`warning`,`${i.workspace.uploadFailed}: ${e instanceof Error?e.message:String(e)}`,void 0,{duration:4e3})}},[i.workspace.uploadFailed,i.workspace.uploadSuccess,q,ae]),xe=(0,Z.useCallback)(async()=>{let e=L;if(e)try{await Nu(e.fileId),!t&&z===e.path&&V(null),R(null);let n=e.path.lastIndexOf(`/`);await q(n<0?``:e.path.slice(0,n)).catch(()=>void 0),ki(`success`,i.workspace.deleteSuccess,void 0,{duration:2500})}catch(e){ki(`warning`,`${i.workspace.deleteFailed}: ${e instanceof Error?e.message:String(e)}`,void 0,{duration:4e3})}},[t,i.workspace.deleteFailed,i.workspace.deleteSuccess,L,z,q,V]);return(0,$.jsxs)($.Fragment,{children:[u&&!t?(0,$.jsx)(`button`,{type:`button`,className:Y(`fixed inset-0 bg-scrim md:hidden`,e?`z-[109]`:`z-40`),"aria-label":i.closeMenu,onClick:()=>h(!1)}):null,(0,$.jsx)(`aside`,{id:t?void 0:`app-workspace-panel`,"aria-label":i.workspace.title,"aria-hidden":!u,className:t?`flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-surface-base`:Y(`flex min-h-0 flex-col overflow-hidden bg-surface-base`,`max-md:fixed max-md:right-0 max-md:top-0 max-md:h-[100dvh] max-md:shadow-popover max-md:w-[min(20rem,92vw)]`,u?`max-md:translate-x-0`:`max-md:pointer-events-none max-md:translate-x-full`,`md:relative md:h-full md:translate-x-0`,e&&u?`pointer-events-auto z-[110]`:`max-md:z-50`,!u&&`md:pointer-events-none md:w-0 md:min-w-0 md:max-w-0 md:overflow-hidden`,u&&`app-workspace-panel-expanded-width md:shrink-0`,u&&x&&`workspace-panel-rail-resizing`),style:!t&&u?{"--workspace-panel-px":`${_}px`}:void 0,children:u?(0,$.jsxs)(`div`,{className:Y(`relative flex h-full min-h-0 w-full min-w-0 flex-col overflow-x-hidden overflow-y-hidden bg-surface-base`),children:[t?null:(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":i.workspace.resizeHandleAria,onPointerDown:_e,className:Y(`pointer-events-auto absolute left-0 top-0 z-20 hidden h-full w-2 cursor-col-resize md:block`,`before:content-[''] before:pointer-events-none before:absolute before:left-1/2 before:top-0 before:z-0 before:h-full before:w-px before:-translate-x-1/2`,`before:bg-transparent before:transition-[background-color] before:duration-150`,`hover:bg-surface-hover/20 hover:before:bg-edge/65 dark:hover:before:bg-edge/75`,x&&`bg-surface-hover/30 before:!bg-edge/80 dark:before:!bg-edge/85`,`transition-[background-color] duration-150`,`touch-none select-none`,bl)}),(0,$.jsxs)(`div`,{className:Y(`flex h-11 shrink-0 items-center gap-2 px-4`,!t&&`border-b border-edge dark:border-edge`),children:[(0,$.jsx)(`h2`,{className:`sr-only`,children:i.workspace.title}),se?W?(0,$.jsx)(zr,{resourceId:W.fileId,displayName:W.name}):null:(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5 text-sm font-medium text-fg`,children:[(0,$.jsx)(yi,{className:`size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`truncate`,children:i.workspace.title})]}),(0,$.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`,children:[t?null:(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:Y(`size-9 shrink-0 rounded-md p-0`,C&&`bg-surface-hover text-fg`),"aria-label":i.workspace.search,title:i.workspace.search,"aria-pressed":C,onClick:()=>w(!0),children:(0,$.jsx)(wo,{className:`size-4`,strokeWidth:1.75})}),(0,$.jsx)(Eu,{className:`size-9 shrink-0 rounded-md p-0`,loading:G,label:i.cron.refresh,onClick:ne}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 rounded-md p-0`,"aria-label":i.workspace.close,title:i.workspace.close,onClick:()=>h(!1),children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:1.75})})]})]}),t||C?(0,$.jsx)(`div`,{className:Y(`shrink-0 px-3 pb-2 pt-1`,!t&&`border-b border-edge`),children:(0,$.jsxs)(`div`,{className:`flex h-10 items-center gap-2 rounded-xl border border-edge bg-surface-panel px-3 focus-within:border-accent focus-within:ring-2 focus-within:ring-accent/20`,children:[(0,$.jsx)(wo,{className:`size-4 shrink-0 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`input`,{type:`text`,role:`searchbox`,value:T,onChange:e=>D(e.target.value),placeholder:i.workspace.searchPlaceholder,"aria-label":i.workspace.searchPlaceholder,className:`min-w-0 flex-1 bg-transparent text-sm text-fg outline-none placeholder:text-fg-subtle`}),!t||T?(0,$.jsx)(`button`,{type:`button`,className:`flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":i.workspace.clearSearch,title:i.workspace.clearSearch,onClick:()=>{D(``),w(!1)},children:(0,$.jsx)(Zo,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}):null]})}):null,te?(0,$.jsxs)(`p`,{className:`shrink-0 px-4 py-2 text-xs text-red-600 dark:text-red-400`,children:[i.workspace.loadError,`: `,te]}):null,oe?(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-2`,children:A?(0,$.jsxs)(`div`,{className:`space-y-2 px-3 py-1`,children:[(0,$.jsx)($o,{className:`h-11 w-full`}),(0,$.jsx)($o,{className:`h-11 w-full`}),(0,$.jsx)($o,{className:`h-11 w-full`})]}):M?(0,$.jsxs)(`p`,{className:`px-3 py-2 text-xs text-red-600 dark:text-red-400`,children:[i.workspace.loadError,`: `,M]}):O.length===0?(0,$.jsx)(`p`,{className:`px-3 py-2 text-xs text-fg-muted`,children:i.workspace.noSearchResults}):O.map(e=>(0,$.jsxs)(`button`,{type:`button`,draggable:!0,className:Y(`flex w-full min-w-0 cursor-grab items-center gap-2 px-3 py-2 text-left active:cursor-grabbing hover:bg-surface-hover`,z===e.path&&`bg-accent-soft text-accent-fg`),onClick:()=>V(e.path),onDragStart:t=>ce(t,e),title:e.path,children:[(0,$.jsx)($r,{name:e.name}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm text-fg`,children:e.name}),(0,$.jsx)(`span`,{className:`block truncate text-xs text-fg-subtle`,children:e.path})]})]},e.path))}):(0,$.jsx)(ti,{tree:U,selectedPath:z,onSelectFile:e=>V(e),onExpandDir:ve,onAction:ye,onFileDragStart:ce,onUploadFiles:(e,t)=>void J(e,t),uploadDropHint:i.workspace.dropToUpload,actionLabels:{preview:i.workspace.preview,download:i.workspace.download,copyPath:i.workspace.copyPath,share:i.workspace.shareLink,delete:i.workspace.deleteFile,...se?{openDefault:i.workspace.openSystemApp,openDirectory:i.workspace.openInFileManager,openWith:i.workspace.chooseApp,revealInFolder:i.workspace.revealInFolder,trash:i.workspace.moveToTrash,recommendedApps:i.workspace.recommendedApps,desktopUpdateRequired:i.workspace.desktopUpdateRequired}:{}},emptyHint:i.workspace.emptyDir})]}):null}),(0,$.jsx)(Yo,{open:le,onOpenChange:ge,loading:ue,error:fe,result:de,pendingParams:pe,onConfirm:e=>void he(e)}),(0,$.jsx)(Tu,{open:!!F,title:i.workspace.trashConfirmTitle,description:i.workspace.trashConfirmDescription.replace(`{{name}}`,F?.name??``),confirmLabel:i.workspace.moveToTrash,cancelLabel:i.workspace.cancel,destructive:!0,onConfirm:()=>void be(),onCancel:()=>I(null)}),(0,$.jsx)(Tu,{open:!!L,title:i.workspace.deleteConfirmTitle,description:i.workspace.deleteConfirmDescription.replace(`{{name}}`,L?.name??``),confirmLabel:i.workspace.deleteFile,cancelLabel:i.workspace.cancel,destructive:!0,onConfirm:()=>void xe(),onCancel:()=>R(null)})]})}),tW=`xopc:side-chat-client-id`;function nW(){let e=sessionStorage.getItem(tW);if(e)return e;let t=crypto.randomUUID();return sessionStorage.setItem(tW,t),t}function rW(){return{"x-xopc-client-instance-id":nW()}}async function iW(e,t){return(await D(w(`/api/sessions/${encodeURIComponent(e)}/side-chats`),{method:`POST`,headers:rW(),body:JSON.stringify({clientInstanceId:nW(),selections:t})})).sideChat}async function aW(e){return(await D(w(`/api/side-chats/${e}`),{headers:rW()})).sideChat}async function oW(e){return(await D(w(`/api/side-chats/${e}/messages`),{headers:rW()})).messages}async function sW(e,t){return(await D(w(`/api/side-chats/${e}/config`),{method:`PATCH`,headers:rW(),body:JSON.stringify(t)})).sideChat}async function cW(e,t,n){return(await D(w(`/api/side-chats/${e}/inputs`),{method:`POST`,headers:rW(),body:JSON.stringify({content:t,attachments:n})})).payload.runId}async function lW(e,t){await D(w(`/api/side-chats/${e}/abort`),{method:`POST`,headers:rW(),body:JSON.stringify({runId:t})})}async function uW(e,t,n){await D(w(`/api/side-chats/${e}/clarify/${t}`),{method:`POST`,headers:rW(),body:JSON.stringify(n)})}async function dW(e){await D(w(`/api/side-chats/${e}`),{method:`DELETE`,headers:rW()})}async function fW(e){return(await D(w(`/api/side-chats/${e}/heartbeat`),{method:`POST`,headers:rW()})).sideChat}async function pW(e){return(await D(w(`/api/side-chats/${e}/extend`),{method:`POST`,headers:rW()})).sideChat}async function mW(e){return D(w(`/api/side-chats/${e}/promote`),{method:`POST`,headers:rW()})}var hW=`xopc:side-chat-close-confirm-disabled:v1`,gW=()=>{},_W=[];function vW(){try{return localStorage.getItem(hW)===`true`}catch{return!1}}function yW(){try{localStorage.setItem(hW,`true`)}catch{}}function bW(e){return e.role===`user`?e.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
7
|
+
`).trim():``}function xW(e){return(e.attachments??[]).map(e=>e.name??``).filter(Boolean).join(`
|
|
8
|
+
`)}function SW(e,t){let n=e?.body?.code;return n===`INVALID_REQUEST`?t.errorInvalidRequest:n===`NOT_FOUND`?t.errorNotFound:n===`CONFLICT`?t.errorConflict:n===`LIMIT_REACHED`?t.errorLimitReached:n===`CAPACITY_REACHED`?t.errorCapacity:n===`PARENT_NOT_FOUND`?t.parentMissing:n===`INTERNAL_ERROR`?t.failed:e instanceof Error?e.message:String(e)}function CW(e,t){let n=[...e];for(let[e,r]of t){let i=bW(r),a=xW(r),o=r.timestamp??0;if(n.some(e=>e.role===`user`&&bW(e)===i&&xW(e)===a&&Math.abs((e.timestamp??o)-o)<6e4)){t.delete(e);continue}let s=n.findIndex(e=>(e.timestamp??1/0)>o);s<0?n.push(r):n.splice(s,0,r)}return n}function wW({parentConversationId:e,embedded:t=!1,visible:n=!0}){let r=qc(t=>t.panes[e]),i=P(E(e=>e.language)).sideChat,a=Ot(t=>t.panes[e]?.open===!0),o=Ot(e=>e.tabs),s=Ot(e=>e.readings),c=(0,Z.useMemo)(()=>o.filter(t=>t.parentConversationId===e),[o,e]),l=Ot(t=>t.panes[e]?.activeId??null),u=t?r?.activeId?.replace(/^side:/,``):l,d=Ot(e=>e.pendingCreate),f=Ot(e=>e.requestCreate),p=Ot(e=>e.claimPendingCreate),m=Ot(e=>e.finishCreate),h=Ot(e=>e.addTab),g=Ot(e=>e.removeTab),_=Ot(e=>e.setActive),v=Ot(e=>e.setOpen),y=Ot(e=>e.widthPx),b=Ot(e=>e.setWidthPx),x=Ot(e=>e.setTabRunId),S=T(e=>e.conversationId),C=c.find(e=>e.id===u)??null,w=Ot(t=>!!t.creatingRequests[e]),[D,O]=(0,Z.useState)(null),[k,A]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),[N,F]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{if(!d||d.parentConversationId!==e)return;let n=p(e,d.requestId);if(!n)return;O(null);let r=T.getState();qc.getState().setNotice(e,``);let a=qc.getState().panes[e]?.activeId;iW(n.parentConversationId,n.selections).then(n=>{if(T.getState().conversationId!==r.conversationId||T.getState().baseUrl!==r.baseUrl)return;let i=Ot.getState().panes[n.parentConversationId]?.open===!0,o=qc.getState(),s=!t||o.scope===e&&o.panes[e]?.open===!0&&o.panes[e]?.activeId===a;h({id:n.id,parentConversationId:n.parentConversationId,title:`Side chat`},s),i||v(n.parentConversationId,!1)}).catch(n=>{O(SW(n,i)),t&&qc.getState().setNotice(e,SW(n,i))}).finally(()=>{m(n.parentConversationId,n.requestId)})},[h,p,t,m,i,e,d,v]);let[I,L]=(0,Z.useState)(!1),R=(0,Z.useCallback)(async n=>{let r=Ot.getState().tabs.find(e=>e.id===n)?.promotedConversationId;L(!0);try{r||await dW(n),g(n),M(null)}catch(r){let a=r?.status;a===404||a===410?(g(n),M(null)):(O(SW(r,i)),t&&qc.getState().setNotice(e,SW(r,i)))}finally{L(!1)}},[t,i,e,g]),z=(0,Z.useCallback)(e=>{let t=Ot.getState(),n=t.tabs.find(t=>t.id===e),r=t.readings[e],i=t.drafts[e];if(n?.promotedConversationId){R(e);return}if(r&&!r.messages.length&&!r.truncated&&!i?.text.trim()&&!i?.attachments.length&&!n?.runId||vW()){R(e);return}F(!1),M(e)},[R]),B=(0,Z.useCallback)(e=>{e.preventDefault();let t=e.clientX,n=Ot.getState().widthPx,r=e.pointerId;e.currentTarget.setPointerCapture(r),A(!0);let i=e=>{let r=Math.min(760,Math.max(360,n+t-e.clientX));document.getElementById(`app-side-chat-panel`)?.style.setProperty(`--side-chat-panel-px`,`${r}px`)},a=e=>{let r=Math.min(760,Math.max(360,n+t-e.clientX));b(r),A(!1),window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,a)};window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a),window.addEventListener(`pointercancel`,a)},[b]);return(0,Z.useEffect)(()=>{if(!t)return;let e=e=>{let t=e.detail;c.some(e=>e.id===t)&&!I&&z(t)};return window.addEventListener(`workspace-close-sidechat`,e),()=>window.removeEventListener(`workspace-close-sidechat`,e)},[I,t,z,c]),!t&&!a?null:(0,$.jsxs)(`aside`,{id:!t||n?`app-side-chat-panel`:void 0,"aria-label":i.paneAria,className:Y(t?`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`:`relative flex min-h-0 shrink-0 flex-col overflow-hidden border-l border-edge bg-surface-base`,!t&&`max-md:fixed max-md:inset-y-0 max-md:right-0 max-md:z-50 max-md:w-[min(92vw,34rem)] max-md:shadow-popover`,!t&&`app-side-chat-expanded-width app-side-chat-panel-enter`,t&&!n&&`hidden`,k&&`side-chat-panel-resizing`),style:{"--side-chat-panel-px":`${y}px`},children:[t?null:(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":i.resizeAria,onPointerDown:B,className:`absolute left-0 top-0 z-20 hidden h-full w-2 cursor-col-resize touch-none md:block`}),(0,$.jsxs)(`div`,{"data-side-chat-header":!0,className:Y(`h-11 shrink-0 items-center gap-1 overflow-x-auto px-2`,t?`hidden`:`flex`),children:[c.map(e=>(0,$.jsxs)(`div`,{className:Y(`flex h-8 shrink-0 items-center rounded-lg pl-3 text-sm`,e.id===u?`bg-surface-hover text-fg`:`text-fg-muted`),children:[(0,$.jsxs)(`button`,{type:`button`,className:`max-w-40 truncate`,onClick:()=>_(e.id),children:[e.title===`Side chat`?i.title:e.title,e.ended?` · ${e.ended===`promoted`?i.savedLabel:i.endedLabel}`:``]}),(0,$.jsx)(`button`,{type:`button`,className:`flex size-8 items-center justify-center rounded-md hover:bg-surface-active`,"aria-label":i.closeAria,onClick:()=>z(e.id),children:(0,$.jsx)(Zo,{className:`size-3.5`})})]},e.id)),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 p-0`,"aria-label":i.newAria,title:i.newAria,disabled:w,onClick:()=>f(e),children:(0,$.jsx)(fo,{className:`size-4`})}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`ml-auto size-8 shrink-0 p-0`,"aria-label":i.closePaneAria,onClick:()=>v(e,!1),children:(0,$.jsx)(Wn,{className:`size-4`})})]}),D&&(C||t)?(0,$.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-4 py-2 text-xs text-fg-muted`,role:`status`,children:[(0,$.jsx)(`p`,{children:D}),o.filter(e=>!e.ended).map(e=>(0,$.jsx)(`button`,{type:`button`,className:`mr-2 mt-1 rounded border border-edge px-2 py-1`,onClick:()=>{_(e.id),window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{conversationId:e.parentConversationId}}))},children:e.title===`Side chat`?i.title:e.title},e.id))]}):null,t?c.filter(e=>!e.ended||s[e.id]||n&&r?.activeId===`side:${e.id}`).map(t=>(0,$.jsx)(TW,{sideChatId:t.id,token:S??void 0,initialRunId:t.runId,onRunIdChange:x,parentConversationId:e,visible:n&&r?.activeId===`side:${t.id}`},`${t.id}:${S??``}`)):C?(0,$.jsx)(TW,{sideChatId:C.id,token:S??void 0,initialRunId:C.runId,onRunIdChange:x,parentConversationId:e},`${C.id}:${S??``}`):(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center px-8 text-center`,children:[(0,$.jsx)(Na,{className:`mb-4 size-10 text-fg-muted`,strokeWidth:1.5}),(0,$.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:i.title}),(0,$.jsx)(`p`,{className:`mt-2 max-w-sm text-sm leading-6 text-fg-muted`,children:i.temporaryDescription}),w?(0,$.jsx)($o,{className:`mt-4 h-4 w-32`}):null,D?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{className:`mt-4 text-xs text-red-600 dark:text-red-400`,role:`alert`,children:D}),(0,$.jsx)(X,{className:`mt-3`,disabled:w,onClick:()=>f(e),children:i.retryCreate})]}):null]}),(0,$.jsx)(Tu,{open:j!==null,title:c.find(e=>e.id===j)?.runId?i.stopCloseTitle:i.closeConfirmTitle,description:c.find(e=>e.id===j)?.runId?i.stopCloseDescription:i.closeConfirmDescription,confirmLabel:c.find(e=>e.id===j)?.runId?i.stopCloseAction:i.closeConfirmAction,cancelLabel:i.closeConfirmCancel,checkboxLabel:i.closeConfirmDontAskAgain,checkboxChecked:N,onCheckboxCheckedChange:F,destructive:!0,onConfirm:()=>{if(I)return;let e=j;e&&(N&&yW(),F(!1),R(e))},onCancel:()=>{M(null),F(!1)}})]})}function TW({sideChatId:e,token:t,initialRunId:n,onRunIdChange:r,parentConversationId:i,visible:a=!0}){let o=p(),[s,c]=(0,Z.useState)(null),[l,u]=(0,Z.useState)(()=>Ot.getState().readings[e]?.messages??[]),d=Ot(t=>t.drafts[e]?.text??``),f=Ot(t=>t.drafts[e]?.attachments??_W),m=(0,Z.useCallback)(t=>Ot.getState().setDraftText(e,t),[e]),h=(0,Z.useCallback)(t=>{Ot.getState().setDraftAttachments(e,t)},[e]),[g,_]=(0,Z.useState)(()=>Ot.getState().tabs.find(t=>t.id===e)?.ended),[v,y]=(0,Z.useState)(!g),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(!1),[w,D]=(0,Z.useState)(!1),[O,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(!1),[M,N]=(0,Z.useState)(()=>Ot.getState().tabs.find(t=>t.id===e)?.promotedConversationId),[F,I]=(0,Z.useState)(!1),[L,R]=(0,Z.useState)(``),[z,B]=(0,Z.useState)(Date.now),[V,H]=(0,Z.useState)(0),ee=Ot(t=>t.tabs.find(t=>t.id===e)?.fresh),U=Ot(t=>t.readings[e]?.truncated??!1),W=(0,Z.useRef)(!0),G=(0,Z.useRef)(g),te=(0,Z.useRef)(T.getState()),ne=(0,Z.useCallback)(()=>te.current.conversationId===T.getState().conversationId&&te.current.baseUrl===T.getState().baseUrl,[]),K=(0,Z.useCallback)(()=>W.current&&ne(),[ne]);(0,Z.useEffect)(()=>(W.current=!0,()=>{W.current=!1}),[]);let[q,re]=(0,Z.useState)(!!n),[ie,ae]=(0,Z.useState)(n),[oe,se]=(0,Z.useState)(null),[ce,le]=(0,Z.useState)(null),[ue,de]=(0,Z.useState)(!1),[fe,pe]=(0,Z.useState)(null),me=(0,Z.useRef)(!1),he=(0,Z.useRef)(0),ge=(0,Z.useRef)(0),_e=(0,Z.useRef)(!1),ve=(0,Z.useRef)(!1),ye=(0,Z.useRef)(new Map),be=P(E(e=>e.language)),J=be.sideChat,xe=fc({conversationId:e,chat:be.chat,initialAttachments:f,onAttachmentsChange:h}),Se=Rt({receiveExternalFill:!1,conversationId:e,disabled:!a||!!g||b,initialValue:d,onValueChange:m,autoFocusKey:a?e:null,shouldSyncSelectionRef:me}),Ce=(0,Z.useRef)({}),{scrollRef:we,atBottom:Te,registerListContentRef:Ee,scrollToBottom:De,onScroll:Oe}=ot({hasToken:!0,showSessionLoading:!1,conversationId:e,chatMessages:l,streaming:q,hasMore:!1,loadingMore:!1,loadMoreMessages:gW});(0,Z.useEffect)(()=>{K()&&(l.length||!v)&&Ot.getState().rememberMessages(e,l)},[l,v,e,K]);let ke=(0,Z.useCallback)(t=>{!K()||G.current||(G.current=t,he.current+=1,_(t),re(!1),ae(void 0),le(null),c(null),R(``),se(null),x(!1),y(!1),u(e=>gt(e).messages),Ot.getState().markEnded(e,t))},[K,e]),Ae=(0,Z.useCallback)(e=>{if(!K()||ve.current)return;let t=e;t.body?.code===`EXPIRED`||t.status===410?ke(t.body?.reason===`waiting`?`waiting`:`idle`):t.status===404||t.body?.code===`NOT_FOUND`?ke(`unavailable`):x(!0),y(!1)},[ke,K]),je=(0,Z.useCallback)(t=>{if(!K()||G.current)return;let n=t.serverNow?Date.parse(t.serverNow):0;n&&n<ge.current||(ge.current=n,c(t),x(!1),t.serverNow&&H(Date.parse(t.serverNow)-Date.now()),B(Date.now()),re(t.status!==`idle`),ae(t.runId),r(e,t.runId),le(t.clarification??null))},[K,r,e]),Me=(0,Z.useCallback)(async()=>{let t=he.current;try{let[n,r]=await Promise.all([aW(e),oW(e)]);if(!K()||G.current)return;he.current===t&&(je(n),u(CW(Rs(r),ye.current))),y(!1)}catch(e){Ae(e)}},[je,Ae,K,e]);(0,Z.useEffect)(()=>{if(g)return;Me();let t=!1,n=async()=>{if(t||G.current)return;t=!0;let n=he.current;try{let t=await fW(e);t&&n===he.current&&je(t)}catch(e){Ae(e)}finally{t=!1}},r=window.setInterval(()=>{B(Date.now()),n()},3e4),i=()=>{document.visibilityState!==`hidden`&&Me()};return window.addEventListener(`online`,i),window.addEventListener(`pageshow`,i),document.addEventListener(`visibilitychange`,i),()=>{window.clearInterval(r),window.removeEventListener(`online`,i),window.removeEventListener(`pageshow`,i),document.removeEventListener(`visibilitychange`,i)}},[g,Me,je,Ae,e]),(0,Z.useEffect)(()=>{if(!g)return bc(`side-chat:${nW()}:${e}`,{onEvent:e=>{e.event===`expired`&&ke(e.data?.reason===`waiting`?`waiting`:`idle`)},onGap:()=>Me()})},[g,ke,Me,e]),(0,Z.useEffect)(()=>{if(!L)return;let e=window.setTimeout(()=>R(``),5e3);return()=>window.clearTimeout(e)},[L]);let Ne=(0,Z.useRef)(0),Pe=(0,Z.useRef)(a);Pe.current=a;let Fe=(0,Z.useRef)(!1);(0,Z.useEffect)(()=>{a&&(Ne.current=l.length,Fe.current=!1),Ot.getState().setTabStatus(e,{waiting:!!ce,disconnected:b,unread:!a&&(Fe.current||l.length>Ne.current)})},[ce,b,l,ie,e,a]);let Ie=s?.expiresAt?Date.parse(s.expiresAt)-(z+V):1/0,Le=!g&&!b&&Ie<=5*6e4,Re=async()=>{if(!(S||G.current)){C(!0);try{let t=await pW(e);if(!K()||G.current)return;je(t),se(null),R(J.extended)}catch(e){let t=e.status;(t===404||t===410)&&Ae(e),G.current||se(J.extendFailed)}finally{C(!1)}}},ze=async()=>{let t=i??Ot.getState().tabs.find(t=>t.id===e)?.parentConversationId;if(!(!t||w)){D(!0),se(null);try{let n=await iW(t,[]);if(!ne())return;Ot.getState().replaceTab(e,{id:n.id,parentConversationId:t,title:`Side chat`})}catch(e){if(!K())return;e.body?.code===`PARENT_NOT_FOUND`&&I(!0),se(SW(e,J))}finally{D(!1)}}},Be=(0,Z.useCallback)(e=>{he.current+=1,u(t=>{let n=structuredClone(t),r=n.at(-1);return r?.role!==`assistant`&&(r={role:`assistant`,content:[],timestamp:Date.now()},n.push(r)),e(r),n})},[]);(0,Z.useEffect)(()=>{if(!(!ie||g))return bc(`run:${ie}`,{onEvent:t=>{if(!K()||G.current)return;Pe.current||(Fe.current=!0);let n=t.data?.payload??{};t.event===`assistant_message_start`?Be(()=>{}):t.event===`assistant_delta`?Be(e=>Fs(e.content,String(n.delta??``),String(n.messageId??``))):t.event===`thinking_delta`?Be(e=>Hs(e.content,String(n.delta??``),!0)):t.event===`thinking_end`?Be(e=>Ns(e.content)):t.event===`tool_start`?Be(e=>js(e.content,String(n.toolName??`tool`),n.args,String(n.toolCallId??``),Date.now(),n.activity)):t.event===`tool_end`?Be(e=>Ps(e.content,String(n.toolName??`tool`),n.status===`error`,n.result,String(n.toolCallId??``),Date.now(),n.activity)):t.event===`clarify_request`?(le({...Vs(n),expiresAt:typeof n.expiresAt==`number`?n.expiresAt:void 0,requestId:String(n.requestId??``),kind:n.kind===`approval`?`approval`:`input`,question:String(n.question??``)}),pe(null),Me()):t.event===`error`?se(String(n.message??J.failed)):t.event===`run_end`&&(re(!1),ae(void 0),r(e,void 0),le(null),Me())},onGap:()=>Me()})},[g,K,Be,r,Me,ie,e,J.failed]);let Ve=()=>{let t=d.trim(),n=xe.wireAttachmentsPayload();if(!t&&n.length===0||q||_e.current||G.current||b)return;if(rt(t)>262144){se(J.draftTooLong);return}let i={text:d,attachments:[...xe.attachmentsRef.current]};_e.current=!0,Se.resetEditor(),xe.clearAttachments(),se(null),he.current+=1;let a=crypto.randomUUID(),o={role:`user`,content:[{type:`text`,text:t}],attachments:i.attachments,timestamp:Date.now(),renderKey:`side-chat-user:${a}`};ye.current.set(a,o),u(e=>[...e,o]),re(!0),cW(e,t,n).then(t=>{!ne()||G.current||(Ot.getState().setTabRunId(e,t),K()&&(ae(t),r(e,t)))}).catch(t=>{if(!ne())return;let n=Ot.getState();if(!K()&&!n.tabs.some(t=>t.id===e))return;let r=Ot.getState().drafts[e]??{text:``,attachments:[]},s={text:r.text?`${i.text}\n${r.text}`:i.text,attachments:[...i.attachments,...r.attachments]};K()?(Se.resetEditor({nextText:s.text}),xe.setAttachments(s.attachments)):(m(s.text),h(s.attachments)),ye.current.delete(a);let c=n.readings[e];if(c&&n.rememberMessages(e,c.messages.filter(e=>e.renderKey!==o.renderKey)),!K())return;u(e=>e.filter(e=>e.renderKey!==o.renderKey)),re(!1);let l=t.status;l===404||l===410?Ae(t):se(SW(t,J))}).finally(()=>{_e.current=!1})},He=async t=>{if(!(!ce||G.current)){de(!0),pe(null);try{await uW(e,ce.requestId,t),le(null),Me()}catch(e){e.status===410?Ae(e):pe(SW(e,J))}finally{de(!1)}}},Ue=async()=>{try{await lW(e,ie),K()&&le(null)}catch(e){if(!K())return;let t=e.status;t===404||t===410?Ae(e):se(SW(e,J))}},We=(0,Z.useCallback)(e=>{Se.resetEditor({nextText:e,focus:!0})},[Se.resetEditor]),Ke=`${o.pathname}${o.search}`,qe=(0,Z.useCallback)(async e=>{try{let t=await zi(e.trim(),`web`);ki(`success`,be.chat.messageSavedToNote,void 0,{href:Oa(Ke,t.id)})}catch(e){throw ki(`error`,e instanceof Error?e.message:be.notes.quickCaptureFailed),e}},[Ke,be.chat.messageSavedToNote,be.notes.quickCaptureFailed]),Je=(0,Z.useCallback)(async()=>{if(!(ve.current||q||G.current||l.length===0)){ve.current=!0,k(!0),j(!1),se(null);try{let t=await mW(e);if(!ne())return;G.current=`promoted`,_(`promoted`),N(t.conversationId),re(!1),ae(void 0),le(null),c(null),r(e,void 0),Ot.getState().markPromoted(e,t.conversationId),ki(`success`,J.savedTitle,void 0,{href:`/chat/${encodeURIComponent(t.conversationId)}`})}catch(e){if(!K())return;se(SW(e,J)||J.saveFailed)}finally{ve.current=!1,K()&&k(!1)}}},[K,l.length,r,q,ne,e,J]),Ye=(0,Z.useCallback)(()=>{if(d.trim()||f.length){j(!0);return}Je()},[f.length,d,Je]),Ze=(0,Z.useCallback)(async t=>{let n=await sW(e,t);K()&&!G.current&&c(n)},[K,e]);return Ce.current={adapters:[],send:Ve,runBusy:q,pendingFollowUpsCount:0,editingFollowUpId:null,onCancelEditFollowUp:()=>{},attachmentsLen:xe.attachments.length,contextRefsLen:0,isComposing:Se.isComposing,valueRef:Se.valueRef,adjustHeight:Se.adjustHeight,editorRef:Se.editorRef},(0,$.jsxs)(`div`,{hidden:!a,className:Y(`relative min-h-0 flex-1 flex-col`,a?`flex`:`hidden`),children:[(0,$.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,$.jsxs)(`div`,{ref:we,"data-side-chat-scroll-viewport":!0,onScroll:Oe,className:`chat-messages h-full overflow-y-auto overflow-x-hidden px-5 py-4 [overflow-anchor:none] [scrollbar-gutter:stable_both-edges]`,children:[v&&!l.length?(0,$.jsxs)(`div`,{className:`space-y-5`,"aria-busy":`true`,"aria-label":J.creating,children:[(0,$.jsx)($o,{className:`ml-auto h-12 w-3/4`}),(0,$.jsx)($o,{className:`h-4 w-full`}),(0,$.jsx)($o,{className:`h-4 w-4/5`})]}):l.length&&a?(0,$.jsx)(vt,{messages:l,authToken:t,conversationId:e,workspaceConversationId:i,streaming:q,progress:null,reasoningLevel:`on`,registerListContentRef:Ee,deleteRoundDisabled:q||!!g,onSaveAssistantAsNote:qe,onEditUserMessage:g?void 0:e=>We(bW(e)),responseFeedbackEnabled:!1}):g?null:(0,$.jsxs)(`div`,{className:`flex min-h-64 flex-col items-center justify-center text-center`,children:[(0,$.jsx)(Na,{className:`mb-4 size-9 text-fg-muted`,strokeWidth:1.5}),(0,$.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:J.title}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:ee?J.freshContext:J.emptyDescription}),(0,$.jsx)(`p`,{className:`mt-2 max-w-sm text-xs leading-5 text-fg-muted`,children:J.temporaryDescription})]}),U&&g?(0,$.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:J.partialReading}):null]}),(0,$.jsx)(Ct,{visible:!Te,onClick:()=>De(!0),edge:`bottom`,running:q})]}),b&&!g?(0,$.jsx)(`p`,{role:`status`,className:`shrink-0 px-4 py-2 text-xs text-fg-muted`,children:J.connectionLost}):null,L?(0,$.jsx)(`p`,{role:`status`,className:`shrink-0 px-4 py-2 text-xs text-fg-muted`,children:L}):null,Le?(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 border-t border-edge px-4 py-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{children:Ie<=0?J.verifying:J.expiring.replace(`{{minutes}}`,String(Math.max(1,Math.ceil(Ie/6e4))))}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`ml-auto h-8 text-xs`,disabled:S||Ie<=0,onClick:()=>void Re(),children:J.keepAlive})]}):null,ce&&!g?(0,$.jsx)(`div`,{className:`shrink-0 border-t border-edge px-3 pt-3`,children:(0,$.jsx)(Ge,{prompt:{...ce,durable:!1},submitting:ue,submitError:fe,labels:be.chat,onSubmit:He,onAgentDecide:()=>He({response:{text:`Use your best judgment and continue without additional user input.`}}),onCancel:Ue})}):null,oe?(0,$.jsx)(`p`,{className:`border-t border-edge px-4 py-2 text-xs text-red-600 dark:text-red-400`,children:oe}):null,g===`promoted`&&M?(0,$.jsx)(`div`,{className:`shrink-0 border-t border-edge p-3`,children:(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold`,"aria-live":`polite`,children:J.savedTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:J.savedDescription}),(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`mt-4`,onClick:()=>{window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{conversationId:M}}))},children:J.openSavedChat})]})}):g?(0,$.jsx)(`div`,{className:`shrink-0 border-t border-edge p-3`,children:(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold`,"aria-live":`polite`,children:g===`unavailable`?J.unavailableTitle:J.expiredTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:F?J.parentMissing:g===`waiting`?J.waitExpired:l.length?J.expiredDescription:J.unavailableDescription}),d||f.length?(0,$.jsxs)(`div`,{className:`mt-3`,children:[(0,$.jsx)(`label`,{htmlFor:`side-chat-draft-${e}`,className:`text-xs text-fg-muted`,children:J.unsentDraft}),(0,$.jsx)(lc,{attachments:f,topPadded:!1,onRemove:xe.removeAttachment,className:`mt-1 rounded-t-lg`}),d?(0,$.jsx)(`textarea`,{id:`side-chat-draft-${e}`,value:d,onChange:e=>m(Mt(e.target.value)),rows:3,className:`mt-1 w-full resize-y rounded-lg border border-edge bg-surface-base p-2 text-sm`}):null]}):null,(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`mt-4`,disabled:w,onClick:()=>{F?i&&Ot.getState().setOpen(i,!1):ze()},children:F?J.closePaneAria:w?J.creating:d.trim()||f.length?J.newWithDraft:J.newAria}),l.length&&!F?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:J.replaceHint}):null]})}):(0,$.jsx)(`form`,{"data-side-chat-composer":!0,onSubmit:e=>{e.preventDefault(),Ve()},className:`shrink-0 p-3`,children:(0,$.jsxs)(Bt,{dragging:xe.isDragging,onDragOver:e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`,xe.setIsDragging(!0))},onDragLeave:e=>{e.relatedTarget===null&&xe.setIsDragging(!1)},onDrop:e=>{e.preventDefault(),xe.setIsDragging(!1);let t=e.dataTransfer?.files;t?.length&&xe.processFiles(Array.from(t))},children:[(0,$.jsx)(`input`,{ref:xe.fileInputRef,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{let t=e.target.files;t&&xe.processFiles(Array.from(t)),e.target.value=``}}),(0,$.jsx)(lc,{attachments:xe.attachments,topPadded:!1,onRemove:xe.removeAttachment}),s?.context.selections.length?(0,$.jsxs)(`div`,{className:`mx-3 mt-3 inline-flex h-8 max-w-[calc(100%-1.5rem)] self-start items-center gap-1.5 rounded-lg border border-edge bg-surface-base px-2.5 text-xs font-medium text-fg-muted sm:mx-4`,title:s.context.selections.map(e=>e.label||e.text).join(`
|
|
9
|
+
`),children:[(0,$.jsx)(nt,{className:`size-3.5 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate`,children:(s.context.selections.length===1?J.selectionCount_one:J.selectionCount_other).replace(`{{count}}`,String(s.context.selections.length))})]}):null,(0,$.jsx)(`div`,{className:s?.context.selections.length?`px-3 sm:px-4`:`px-3 pt-1 sm:px-4`,children:(0,$.jsx)(et,{editorRef:Se.editorRef,disabled:b,placeholder:be.chat.typeMessage,onWireInput:(e,t)=>{let n=Mt(e);rt(e)>262144&&se(J.draftTooLong),Se.onWireInput(n,Math.min(t,n.length))},adjustHeight:Se.adjustHeight,processFiles:xe.processFiles,processPastedText:xe.processPastedText,setIsComposing:Se.setIsComposing,kbdRef:Ce,chatMessages:be.chat})}),(0,$.jsxs)(Xe,{children:[(0,$.jsx)(ut,{disabled:b,runBusy:q,attachmentCount:xe.attachments.length,maxAttachments:10,chat:be.chat,onPickFiles:()=>xe.fileInputRef.current?.click()}),(0,$.jsxs)(X,{type:`button`,variant:`ghost`,className:`h-8 shrink-0 px-2 text-xs`,"aria-label":J.saveAsChat,title:q?J.saveBusy:J.saveAsChat,disabled:O||q||b||l.length===0,onClick:Ye,children:[(0,$.jsx)(Co,{className:`size-3.5`}),(0,$.jsx)(`span`,{className:`max-sm:hidden`,children:O?J.savingChat:J.saveAsChat})]}),(0,$.jsx)(`div`,{className:`ml-auto min-w-0`,children:s?(0,$.jsx)(Pt,{chat:be.chat,sessionModel:s.config.modelRef,modelDisabled:b,onModelChange:(e,t)=>Ze({modelRef:e,thinkingLevel:t}),thinkingLevel:s.config.thinkingLevel,thinkingDisabled:b,onThinkingChange:e=>Ze({thinkingLevel:e})}):null}),(0,$.jsx)(ct,{disabled:b||rt(d)>262144,voiceActive:!1,runBusy:q,hasDraft:!!d.trim()||xe.attachments.length>0,showSteeringInterrupt:!1,chat:be.chat,onSend:Ve,onAbort:()=>void Ue()})]})]})}),(0,$.jsx)(Tu,{open:A,title:J.saveDraftTitle,description:J.saveDraftDescription,confirmLabel:J.saveDraftAction,cancelLabel:J.closeConfirmCancel,onConfirm:()=>void Je(),onCancel:()=>j(!1)})]})}function EW(e,t,n){let r=(0,Q.c)(16),{pathname:i,search:a}=p(),o=b(),s=(0,Z.useRef)(null),c=(0,Z.useRef)(null),l=(0,Z.useRef)(!1),u,d;r[0]!==t.activeId||r[1]!==t.open||r[2]!==t.tabs||r[3]!==i||r[4]!==e||r[5]!==a?(u=()=>{let n=new URLSearchParams(a).toString(),r=s.current;if(s.current={pathname:i,search:a,scope:e},r?.pathname===i&&r.scope===e&&r.search===a)return;if(c.current===`${i}?${n}`){c.current=null;return}let o=new URLSearchParams(a).get(`workspaceTab`),u=r?.pathname===i&&r.scope===e&&new URLSearchParams(r.search).get(`workspaceTab`)!==o;if(o&&t.tabs.some(e=>e.id===o)&&(o!==t.activeId||!t.open)||u){l.current=!0;let n=qc.getState();o&&t.tabs.some(e=>e.id===o)?n.activate(o,e):t.activeId!==null&&n.activate(null,e)}},d=[t.activeId,t.open,t.tabs,i,e,a],r[0]=t.activeId,r[1]=t.open,r[2]=t.tabs,r[3]=i,r[4]=e,r[5]=a,r[6]=u,r[7]=d):(u=r[6],d=r[7]),(0,Z.useEffect)(u,d);let f,m;r[8]!==n||r[9]!==o||r[10]!==t.activeId||r[11]!==t.open||r[12]!==i||r[13]!==a?(f=()=>{if(!n)return;if(l.current){l.current=!1;return}if(window.location.hash.startsWith(`#/`)&&window.location.hash.slice(1)!==`${i}${a}`)return;let e=new URLSearchParams(a);t.open&&t.activeId?e.set(`workspaceTab`,t.activeId):e.delete(`workspaceTab`);let r=e.toString();r!==new URLSearchParams(a).toString()&&(c.current=`${i}?${r}`,o({pathname:i,search:r?`?${r}`:``}))},m=[n,o,t.activeId,t.open,i,a],r[8]=n,r[9]=o,r[10]=t.activeId,r[11]=t.open,r[12]=i,r[13]=a,r[14]=f,r[15]=m):(f=r[14],m=r[15]),(0,Z.useEffect)(f,m)}function DW(e,t){let n=(0,Q.c)(5),[r,i]=(0,Z.useState)(t),a=(0,Z.useRef)(!1),o=(0,Z.useRef)(null),s,c;return n[0]!==t||n[1]!==r||n[2]!==e?(s=()=>{let n=e.current;if(!n)return;if(t&&!r){i(!0);return}let s=window.matchMedia?.(`(prefers-reduced-motion: reduce)`);if(s?.matches||typeof n.animate!=`function`){a.current=t,r!==t&&i(t);return}let c=a.current!==t;a.current=t;let l,u=!1;if((c||!t)&&r){let e=o.current??(t?{opacity:0,transform:`translateX(16px)`}:{opacity:1,transform:`translateX(0)`});o.current=null,l=n.animate([e,t?{opacity:1,transform:`translateX(0)`}:{opacity:0,transform:`translateX(16px)`}],{duration:t?220:150,easing:`cubic-bezier(0.2, 0, 0, 1)`,fill:`both`}),t||l.finished.then(()=>{u||i(!1)}).catch(OW)}let d=()=>{s?.matches&&(l?.cancel(),t||i(!1))};return s?.addEventListener(`change`,d),()=>{if(u=!0,(c||!t)&&l?.playState===`running`){let e=window.getComputedStyle(n);o.current={opacity:e.opacity,transform:e.transform}}l?.cancel(),s?.removeEventListener(`change`,d)}},c=[t,r,e],n[0]=t,n[1]=r,n[2]=e,n[3]=s,n[4]=c):(s=n[3],c=n[4]),(0,Z.useLayoutEffect)(s,c),r}function OW(){}function kW(e,t,n){let r=(0,Q.c)(7),[i,a]=(0,Z.useState)(0),o;r[0]!==t||r[1]!==e?(o=()=>{let n=e.current?.querySelector(`#workspace-content`),r=n&&[...n.querySelectorAll(`[data-workspace-toolbar]`)].find(AW);if(!t||!n||!r){a(0);return}let i=()=>a(Math.max(0,r.getBoundingClientRect().bottom-n.getBoundingClientRect().top));i();let o=typeof ResizeObserver<`u`?new ResizeObserver(i):null;return o?.observe(r),o?.observe(n),()=>o?.disconnect()},r[0]=t,r[1]=e,r[2]=o):o=r[2];let s;return r[3]!==n||r[4]!==t||r[5]!==e?(s=[n,t,e],r[3]=n,r[4]=t,r[5]=e,r[6]=s):s=r[6],(0,Z.useLayoutEffect)(o,s),i}function AW(e){return e.getClientRects().length>0}function jW(e){let t=(0,Q.c)(59),{tabs:n,canCreateSideChat:r,creating:i,onFiles:a,onSideChat:o,onActivate:s,onTerminal:c,onBrowser:l}=e,u=E(PW)===`zh`,d,f,p,m,h,g,_;if(t[0]!==r||t[1]!==i||t[2]!==s||t[3]!==l||t[4]!==a||t[5]!==o||t[6]!==c||t[7]!==n||t[8]!==u){let e=n.filter(NW).sort(MW).slice(0,4);g=`min-h-0 flex-1 overflow-y-auto bg-surface-base/70 px-6 py-10 sm:px-8`,_=!0,d=`mx-auto max-w-3xl`;let v=u?`工具`:`Tools`;t[16]===v?f=t[17]:(f=(0,$.jsx)(`h2`,{className:`mb-5 text-sm font-medium text-fg`,children:v}),t[16]=v,t[17]=f);let y;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(vi,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),t[18]=y):y=t[18];let b=u?`文件`:`Files`,x;t[19]===b?x=t[20]:(x=(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:b}),t[19]=b,t[20]=x);let S;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle opacity-0 group-hover:opacity-100`,"aria-hidden":!0}),t[21]=S):S=t[21];let C;t[22]!==a||t[23]!==x?(C=(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,onClick:a,children:[y,x,S]}),t[22]=a,t[23]=x,t[24]=C):C=t[24];let w=!r||i,T;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(Na,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),t[25]=T):T=t[25];let E=u?`侧聊`:`Side chat`,D;t[26]===E?D=t[27]:(D=(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:E}),t[26]=E,t[27]=D);let O;t[28]===i?O=t[29]:(O=i?(0,$.jsx)(`span`,{className:`h-3 w-10 animate-pulse rounded bg-surface-active`}):(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle opacity-0 group-hover:opacity-100`,"aria-hidden":!0}),t[28]=i,t[29]=O);let k;t[30]!==o||t[31]!==w||t[32]!==D||t[33]!==O?(k=(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,disabled:w,onClick:o,children:[T,D,O]}),t[30]=o,t[31]=w,t[32]=D,t[33]=O,t[34]=k):k=t[34];let A;t[35]!==l||t[36]!==u?(A=l?(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,onClick:l,children:[(0,$.jsx)(Ni,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:u?`浏览器`:`Browser`}),(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle`,"aria-hidden":!0})]}):null,t[35]=l,t[36]=u,t[37]=A):A=t[37];let j;t[38]!==c||t[39]!==u?(j=c?(0,$.jsxs)(`button`,{className:`group flex min-h-16 min-w-0 items-center gap-3 rounded-xl border border-transparent bg-surface-panel px-4 py-3 text-left text-fg transition-colors hover:border-edge hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-45`,onClick:c,title:u?`打开主聊天的终端面板`:`Open the main chat terminal panel`,children:[(0,$.jsx)(Bo,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`flex-1 text-base`,children:u?`终端`:`Terminal`}),(0,$.jsx)(Gt,{className:`size-4 text-fg-subtle`,"aria-hidden":!0})]}):null,t[38]=c,t[39]=u,t[40]=j):j=t[40],t[41]!==C||t[42]!==k||t[43]!==A||t[44]!==j?(p=(0,$.jsxs)(`div`,{className:`grid grid-cols-[repeat(auto-fit,minmax(min(100%,13rem),1fr))] gap-3`,children:[C,k,A,j]}),t[41]=C,t[42]=k,t[43]=A,t[44]=j,t[45]=p):p=t[45],t[46]!==r||t[47]!==u?(m=r?null:(0,$.jsx)(`p`,{className:`mt-4 text-xs text-fg-muted`,children:u?`开始主聊天后,可以在这里新建临时侧聊。`:`Start a main conversation to create a temporary side chat here.`}),t[46]=r,t[47]=u,t[48]=m):m=t[48],h=e.length?(0,$.jsxs)(`section`,{className:`mt-12`,children:[(0,$.jsx)(`h2`,{className:`mb-5 text-sm font-medium text-fg`,children:u?`继续查看`:`Continue with`}),(0,$.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:e.map(e=>(0,$.jsxs)(`button`,{onClick:()=>s(e.id),title:e.kind===`file`&&e.path||e.title,className:`flex min-w-0 flex-col items-center gap-3 rounded-xl px-2 py-4 text-sm text-fg transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,$.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-xl border border-edge-subtle bg-surface-panel`,children:e.kind===`file`?(0,$.jsx)(mi,{className:`size-5 text-fg-muted`,"aria-hidden":!0}):(0,$.jsx)(Na,{className:`size-5 text-fg-muted`,"aria-hidden":!0})}),(0,$.jsx)(`span`,{className:`w-full truncate text-center`,children:e.title===`Side chat`?u?`侧聊`:`Side chat`:e.title})]},e.id))})]}):null,t[0]=r,t[1]=i,t[2]=s,t[3]=l,t[4]=a,t[5]=o,t[6]=c,t[7]=n,t[8]=u,t[9]=d,t[10]=f,t[11]=p,t[12]=m,t[13]=h,t[14]=g,t[15]=_}else d=t[9],f=t[10],p=t[11],m=t[12],h=t[13],g=t[14],_=t[15];let v;t[49]!==d||t[50]!==f||t[51]!==p||t[52]!==m||t[53]!==h?(v=(0,$.jsxs)(`div`,{className:d,children:[f,p,m,h]}),t[49]=d,t[50]=f,t[51]=p,t[52]=m,t[53]=h,t[54]=v):v=t[54];let y;return t[55]!==g||t[56]!==_||t[57]!==v?(y=(0,$.jsx)(`div`,{className:g,"data-workspace-start":_,children:v}),t[55]=g,t[56]=_,t[57]=v,t[58]=y):y=t[58],y}function MW(e,t){return t.visitedAt-e.visitedAt}function NW(e){return e.kind===`file`||e.kind===`sidechat`}function PW(e){return e.language}var FW=`inline-flex size-9 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`;function IW({scope:e,enabled:t=!0,elevated:n=!1,onDockedWidthChange:r}){let i=E(e=>e.language)===`zh`,a=qc(e=>e.panes),o=a[e]??Gc,s=o.tabs.find(e=>e.id===o.activeId),c=qc(e=>e.width),l=qc(e=>e.treeWidth),u=qc(e=>e.fileTreeOpen),d=qc(e=>e.sideTreeOpen),f=qc(t=>t.notices[e]),m=qc(e=>e.fileStatus),h=Ot(e=>e.tabs),g=Ot(e=>e.pendingCreate),_=Ot(t=>t.creatingRequests[e]),v=!!(_||g?.parentConversationId===e),y=T(e=>e.conversationId),{search:b}=p(),x=(0,Z.useRef)(null),S=(0,Z.useRef)(null),[C,w]=(0,Z.useState)(1200),D=(0,Z.useRef)(null);(0,Z.useEffect)(()=>()=>D.current?.(),[]);let[O,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(!1),M=kW(x,A,o.activeId),[N,P]=(0,Z.useState)(!1),[F,I]=(0,Z.useState)(!1),[L,R]=(0,Z.useState)(null),[z,B]=(0,Z.useState)(``),[V,H]=(0,Z.useState)(null),[ee,U]=(0,Z.useState)(!1),W=qc.getState(),G=t&&o.open,te=DW(x,G);(0,Z.useLayoutEffect)(()=>{if(!G&&x.current?.contains(document.activeElement)){let e=document.querySelector(`[data-workspace-trigger]`);if(e)e.focus();else{let e=requestAnimationFrame(()=>document.querySelector(`[data-workspace-trigger]`)?.focus());return()=>cancelAnimationFrame(e)}}},[G]);let ne=Se(e,t);(0,Z.useEffect)(()=>{if(!t||ne.isLoading||ne.error)return;let n=ne.data?.report,r=n&&!Ne(n.status)?n.deviceId??n.sessionId:void 0,i=qc.getState();for(let t of i.panes[e]?.tabs??[])t.kind===`phone`&&t.phoneSessionId!==r&&i.remove(t.id,e);n&&r&&i.openPhone(r,n.deviceName,e,!1,!1)},[ne.data,ne.isLoading,ne.error,e,t]);let K=s?.kind===`phone`,q=K?360:460,re=K?420:380,ie=C<(K?900:840),ae=s?.kind===`browser`?N:s?.kind===`sidechat`?d:u,oe=s?Math.max(q,Math.min(c||(K?420:C*.6),C-re)):320;(0,Z.useLayoutEffect)(()=>{r?.(G&&!ie&&!F?oe:0)},[F,r,oe,ie,G]);let se=s?.kind===`files`,ce=se||s?.kind===`file`,le=ie||F?C:oe,ue=ce?240:460,de=Math.min(l,Math.max(200,le-ue-8)),fe=le>=ue+de+8,pe=se||(s?.kind===`file`||s?.kind===`sidechat`||s?.kind===`browser`)&&ae&&fe,me=se&&!fe,he=pe||A,ge=s?.kind===`file`?s:void 0,_e=(0,Z.useMemo)(()=>({conversationId:ge?.path?ge.conversationId:e===`new`?void 0:e,projectId:ge?.path?ge.projectId:new URLSearchParams(b).get(`projectId`)??void 0,agentId:ge?.agentId}),[ge?.agentId,ge?.conversationId,ge?.path,ge?.projectId,e,b]),ve=JSON.stringify(_e),[ye,be]=(0,Z.useState)({});(0,Z.useLayoutEffect)(()=>{W.setScope(e)},[e,W]),(0,Z.useEffect)(()=>{G&&be(e=>e[ve]?e:{...e,[ve]:_e})},[ve,_e,G]),(0,Z.useLayoutEffect)(()=>{let e=x.current?.parentElement;if(!e)return;let t=()=>w(e.clientWidth||window.innerWidth);t();let n=typeof ResizeObserver<`u`?new ResizeObserver(t):null;return n?.observe(e),window.addEventListener(`resize`,t),()=>{n?.disconnect(),window.removeEventListener(`resize`,t)}},[]),(0,Z.useEffect)(()=>{for(let e of h)qc.getState().panes[e.parentConversationId]?.tabs.some(t=>t.id===`side:${e.id}`)||W.addSideChat(e.id,e.title,e.parentConversationId,!1)},[h,W]),(0,Z.useEffect)(()=>{j(!1)},[o.activeId,e]),(0,Z.useEffect)(()=>{fe&&j(!1)},[fe]),(0,Z.useEffect)(()=>{H(null),U(!1),B(``)},[e]),(0,Z.useEffect)(()=>{(S.current?.querySelector(`[aria-selected="true"]`))?.scrollIntoView?.({block:`nearest`,inline:`nearest`})},[C,F,o.activeId]),(0,Z.useEffect)(()=>{ll.setState({path:ge?.path??null,projectId:ge?.projectId??null,conversationId:ge?.conversationId??null,line:ge?.line??null})},[ge]),(0,Z.useEffect)(()=>{let e=e=>{if(e.key===`Escape`&&!e.defaultPrevented){if(ee){e.preventDefault(),U(!1);return}(F||A)&&(e.preventDefault(),I(!1),j(!1))}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ee,F,A]),EW(e,o,t),YU();async function J(t){if(!L){R(t),B(``);try{await zU(t)&&W.remove(t,e)}catch(e){B(e instanceof Error?e.message:String(e))}finally{R(null)}}}async function xe(t,n=!1){if(!L){R(t);try{if(!n&&!await Fu(t)){H(t);return}W.remove(t,e),H(null),U(!1)}finally{R(null)}}}function Ce(e){return e.kind===`home`?i?`新标签页`:`New tab`:e.kind===`browser`&&e.title===`Browser`?i?`浏览器`:`Browser`:e.kind===`files`?i?`文件`:`Files`:e.title===`Side chat`?i?`侧聊`:`Side chat`:e.title}function we(t){W.activate(t,e)}function Te(){s&&(A?j(!1):!pe&&!fe?j(!0):s.kind===`browser`?P(!N):W.setTreeOpen(s.kind===`sidechat`?`sidechat`:`file`,!ae))}let Ee=s&&!se&&s.kind!==`home`&&s.kind!==`phone`?(0,$.jsx)(`button`,{type:`button`,className:Y(FW,`rounded-full border border-edge-subtle`,he&&`border-accent/20 bg-accent-soft text-accent-fg`),"aria-label":i?`切换文件树`:`Toggle file tree`,"aria-pressed":he,onClick:Te,children:(0,$.jsx)(Si,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}):null;function De(e,t=!1){e.preventDefault();let n=e.clientX,r=t?de:oe;e.currentTarget.setPointerCapture?.(e.pointerId),k(!0);let i=r,a=e=>{let a=r+n-e.clientX;i=t?Math.max(200,Math.min(320,le-ue-8,a)):Math.max(q,Math.min(C-re,a));let o=t?x.current?.querySelector(`[data-workspace-tree]`):x.current;o&&(o.style.width=`${i}px`)},o=()=>{t?W.setTreeWidth(i):W.setWidth(i),D.current=null,k(!1),window.removeEventListener(`pointermove`,a),window.removeEventListener(`pointerup`,o),window.removeEventListener(`pointercancel`,o)};D.current?.(),D.current=o,window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o),window.addEventListener(`pointercancel`,o)}let Oe=[...new Set([...h.map(e=>e.parentConversationId),...g?[g.parentConversationId]:[],...e===`new`?[]:[e]])],ke=Object.entries(a).flatMap(([e,t])=>t.tabs.filter(e=>e.kind===`file`).map(t=>({owner:e,tab:t}))),Ae=new Set([...ke].sort((e,t)=>t.tab.visitedAt-e.tab.visitedAt).slice(0,8).map(({tab:e})=>e.id));return(0,$.jsxs)(`aside`,{id:`app-workspace-panel`,ref:x,"aria-label":i?`文件与侧聊工作区`:`Files and side chats`,"data-right-workspace":!0,"aria-hidden":!G,inert:!G,className:Y(`relative min-h-0 shrink-0 flex-col overflow-hidden bg-surface-base`,te?`flex`:`hidden`,te&&(ie||F)&&`absolute inset-0`,n?`z-[110]`:`z-40`),style:{width:ie||F?void 0:oe},children:[!ie&&!F&&s?(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,tabIndex:0,"aria-label":i?`调整工作区宽度`:`Resize workspace`,"aria-valuemin":q,"aria-valuemax":Math.max(q,C-re),"aria-valuenow":Math.round(oe),className:`absolute left-0 top-0 z-20 h-full w-2 -translate-x-1/2 cursor-col-resize touch-none focus-visible:bg-accent/30`,onPointerDown:e=>De(e),onKeyDown:e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),W.setWidth(Math.max(q,Math.min(C-re,oe+(e.key===`ArrowLeft`?20:-20))))),e.key===`Home`&&W.setWidth(0)}}):null,O?(0,$.jsx)(`div`,{"data-browser-occluder":!0,className:`fixed inset-0 z-[120] cursor-col-resize`}):null,(0,$.jsxs)(`div`,{"data-workspace-tab-bar":!0,className:`flex h-14 shrink-0 items-center gap-1 bg-surface-base px-2`,children:[(0,$.jsx)(bu,{ref:S,role:`tablist`,"aria-label":i?`工作区标签`:`Workspace tabs`,className:`flex min-w-0 flex-1 items-center gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,onKeyDown:e=>{let t=[...e.currentTarget.querySelectorAll(`[role="tab"]`)],n=t.indexOf(document.activeElement),r=e.key===`ArrowRight`?(n+1)%t.length:e.key===`ArrowLeft`?(n-1+t.length)%t.length:e.key===`Home`?0:e.key===`End`?t.length-1:-1;r>=0&&(e.preventDefault(),t[r]?.focus())},indicatorClassName:`rounded-md bg-surface-panel`,children:o.tabs.map(t=>{let n=t.kind===`sidechat`?h.find(e=>e.id===t.sideChatId):void 0,r=Ce(t),a=n?.waiting?i?`待处理`:`Needs attention`:n?.disconnected?i?`连接中断`:`Disconnected`:n?.ended?i?`已结束`:`Ended`:n?.runId?i?`运行中`:`Running`:n?.unread?i?`未读`:`Unread`:m[t.id]?i?`未保存`:`Unsaved`:``;return(0,$.jsxs)(`div`,{"data-sliding-active":t.id===o.activeId,className:Y(`group flex h-9 shrink-0 items-center rounded-md transition-colors`,t.id===o.activeId?`bg-surface-panel text-fg`:`text-fg-muted hover:bg-surface-hover`),children:[(0,$.jsxs)(`button`,{role:`tab`,id:`workspace-tab-${t.id}`,"aria-controls":`workspace-content`,"aria-selected":t.id===o.activeId,tabIndex:t.id===o.activeId?0:-1,title:t.kind===`file`&&t.path||r,className:`flex max-w-56 items-center gap-1.5 rounded-md px-2 py-1 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>we(t.id),onDoubleClick:()=>{t.kind===`file`&&W.keepFileOpen(t.id)},children:[t.kind===`phone`?(0,$.jsx)(jo,{className:`size-4 shrink-0`,"aria-hidden":!0}):t.kind===`browser`?(0,$.jsx)(Ni,{className:`size-4 shrink-0`,"aria-hidden":!0}):t.kind===`sidechat`?(0,$.jsx)(Pa,{className:`size-4 shrink-0`,"aria-hidden":!0}):t.kind===`files`?(0,$.jsx)(vi,{className:`size-4 shrink-0`,"aria-hidden":!0}):(0,$.jsx)($r,{name:t.title}),(0,$.jsx)(`span`,{className:Y(`truncate`,t.kind===`file`&&t.preview&&`italic`),children:r}),a?(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:a}):null]}),(0,$.jsx)(`button`,{className:Y(FW,`size-7`),tabIndex:t.id===o.activeId?0:-1,"aria-label":`${i?`关闭`:`Close`} ${r}`,disabled:L===t.id,onClick:()=>{t.kind===`file`?xe(t.id):t.kind===`browser`?J(t.id):t.kind===`sidechat`?window.dispatchEvent(new CustomEvent(`workspace-close-sidechat`,{detail:t.sideChatId})):W.remove(t.id,e)},children:(0,$.jsx)(Zo,{className:`size-3.5`,"aria-hidden":!0})})]},t.id)})}),(0,$.jsx)(`button`,{className:FW,"aria-label":i?`新建标签`:`New tab`,title:i?`新建标签`:`New tab`,onClick:()=>W.openTools(e),children:(0,$.jsx)(fo,{className:`size-5`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{className:FW,"aria-label":F?i?`还原工作区`:`Restore workspace`:i?`放大工作区`:`Expand workspace`,onClick:()=>I(!F),children:F?(0,$.jsx)(La,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(wa,{className:`size-4`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{className:FW,title:i?`收起工作区 · ${o.tabs.length} 个标签`:`Collapse workspace · ${o.tabs.length} tabs`,"aria-label":ie?i?`返回聊天`:`Back to chat`:i?`收起工作区`:`Collapse workspace`,onClick:()=>W.setOpen(!1,e),children:(0,$.jsx)(Ka,{className:`size-5`,"aria-hidden":!0})})]}),f?(0,$.jsxs)(`div`,{role:`alert`,className:`shrink-0 border-b border-edge px-3 py-2 text-sm text-fg-muted`,children:[f,` `,(0,$.jsx)(`button`,{className:`text-accent`,onClick:()=>Ot.getState().requestCreate(e),children:i?`重试新建侧聊`:`Retry new side chat`})]}):null,z?(0,$.jsxs)(`div`,{role:`alert`,className:`shrink-0 border-b border-edge px-3 py-2 text-sm text-fg-muted`,children:[z,` `,(0,$.jsx)(`button`,{className:`text-accent`,onClick:()=>B(``),children:i?`关闭提示`:`Dismiss`})]}):null,_?(0,$.jsx)(`div`,{role:`status`,className:`h-1 shrink-0 animate-pulse bg-surface-active`,"aria-label":i?`正在创建侧聊`:`Creating side chat`}):null,V?(0,$.jsxs)(`div`,{role:`alert`,className:`shrink-0 border-b border-edge p-3 text-sm`,children:[(0,$.jsx)(`p`,{children:i?`文件未保存,可能已被外部修改。编辑内容已保留。`:`File could not be saved; it may have changed externally. Your edits are retained.`}),(0,$.jsx)(`button`,{className:`mr-3 text-accent`,onClick:()=>void xe(V),children:i?`重试保存并关闭`:`Retry save and close`}),(0,$.jsx)(`button`,{className:`mr-3`,onClick:()=>{H(null),U(!1)},children:i?`继续编辑`:`Keep editing`}),(0,$.jsx)(`button`,{className:`text-red-600`,onClick:()=>U(!0),children:i?`放弃修改`:`Discard edits`}),ee?(0,$.jsxs)(`div`,{role:`alertdialog`,"aria-label":i?`确认放弃修改`:`Confirm discard edits`,className:`mt-3 rounded-lg border border-edge bg-surface-base p-3`,children:[(0,$.jsx)(`p`,{children:i?`放弃此文件未保存的修改?`:`Discard unsaved edits to this file?`}),(0,$.jsxs)(`div`,{className:`mt-2 flex gap-3`,children:[(0,$.jsx)(`button`,{className:`text-accent`,onClick:()=>U(!1),children:i?`保留草稿`:`Keep draft`}),(0,$.jsx)(`button`,{onClick:()=>void xe(V,!0),children:i?`确认放弃`:`Confirm discard`})]})]}):null]}):null,(0,$.jsx)(Ai.Provider,{value:Ee?{button:Ee,label:i?he?`隐藏文件树`:`显示文件树`:he?`Hide file tree`:`Show file tree`,active:he,onToggle:Te}:null,children:(0,$.jsxs)(`div`,{id:`workspace-content`,role:`tabpanel`,"aria-labelledby":s?`workspace-tab-${s.id}`:void 0,className:`relative flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(0,$.jsxs)(`div`,{className:Y(`min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,me?`hidden`:`flex`),children:[G&&K?(0,$.jsx)(`div`,{id:`phone-workspace-slot`,"data-phone-conversation-id":e,className:`flex min-h-0 flex-1 flex-col overflow-hidden`}):null,se&&!me?(0,$.jsxs)(`div`,{"data-workspace-file-placeholder":!0,className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6 text-center`,children:[(0,$.jsx)(mi,{className:`size-9 text-fg-muted`,strokeWidth:1.25,"aria-hidden":!0}),(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:i?`选择文件预览`:`Select a file to preview`}),(0,$.jsx)(`p`,{className:`max-w-64 text-sm text-fg-muted`,children:i?`从右侧文件列表打开文件,在这里查看内容。`:`Open a file from the list on the right to view its contents here.`})]}):null,s?.kind===`home`&&!v?(0,$.jsx)(jW,{tabs:o.tabs,canCreateSideChat:e!==`new`,creating:!!_,onBrowser:window.electronAPI?.browser?()=>W.openBrowser(void 0,e):void 0,onFiles:()=>W.openFiles(e),onSideChat:()=>Ot.getState().requestCreate(e),onActivate:we,onTerminal:window.electronAPI?.terminal?()=>e===`new`?window.dispatchEvent(new Event(`workspace-open-terminal`)):ad.getState().open(e):void 0}):null,Object.entries(a).flatMap(([t,n])=>n.tabs.filter(e=>e.kind===`browser`).map(n=>(0,$.jsx)(KU,{tab:n,scope:t,active:G&&t===e&&s?.id===n.id},n.id))),(0,$.jsx)(Ci.Provider,{value:[{id:e,label:i?`引用到主聊天`:`Reference in main chat`},...ge?.returnTo?.startsWith(`side:`)?[{id:ge.returnTo.slice(5),label:i?`引用到来源侧聊`:`Reference in source side chat`}]:[]],children:ke.map(({owner:t,tab:n})=>{let r=te&&t===e&&s?.id===n.id;if(n.attachment)return r?(0,$.jsx)(dc,{tabId:n.id,embedded:!0,open:!0,attachment:n.attachment,images:n.images,onAttachmentChange:e=>W.openFile({attachment:e,images:n.images,conversationId:n.conversationId},t),authToken:y,conversationId:n.conversationId,onClose:()=>void xe(n.id)},n.id):null;let i=[`code`,`text`,`markdown`,`html`].includes(Ei(n.title));return!r&&(!i||!Ae.has(n.id)&&!m[n.id])?null:(0,$.jsx)(Iu,{tabId:n.id,active:r,filePath:n.path??null,projectId:n.projectId,conversationId:n.conversationId,agentId:n.agentId,targetLine:n.line,resultRevision:n.resultRevision,onClose:()=>void xe(n.id)},n.id)})}),Oe.map(t=>(0,$.jsx)(Di.Provider,{value:t,children:(0,$.jsx)(wW,{parentConversationId:t,embedded:!0,visible:te&&e===t&&(s?.kind===`sidechat`||(!s||s.kind===`home`)&&v)})},t))]}),pe&&!me&&!A?(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,tabIndex:0,"aria-label":i?`调整文件树宽度`:`Resize file tree`,"aria-valuemin":200,"aria-valuemax":Math.min(320,le-ue-8),"aria-valuenow":de,className:`z-10 w-2 shrink-0 cursor-col-resize touch-none bg-surface-base transition-colors duration-150 hover:bg-accent/20 focus-visible:bg-accent/30`,onPointerDown:e=>De(e,!0),onKeyDown:e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),W.setTreeWidth(Math.min(le-ue-8,de+(e.key===`ArrowLeft`?20:-20))))}}):null,A?(0,$.jsx)(`button`,{"data-browser-occluder":!0,style:{top:M},className:`absolute inset-0 z-20 bg-scrim`,"aria-label":i?`关闭文件树`:`Close file tree`,onClick:()=>j(!1)}):null,(0,$.jsx)(`div`,{"data-workspace-tree":!0,className:Y(`min-h-0 min-w-0 flex-col overflow-hidden border-l border-edge-subtle bg-surface-base`,he?`flex`:`hidden`,me&&`flex-1`,A&&`absolute inset-y-0 right-0 z-30 bg-surface-base shadow-popover`),style:me?void 0:{width:A?l:de,...A?{top:M}:{}},children:Object.entries(ye).map(([t,n])=>(0,$.jsx)(`div`,{className:Y(`h-full min-h-0 flex-col`,t===ve?`flex`:`hidden`),children:(0,$.jsx)(eW,{embedded:!0,scope:n,onCloseTree:()=>A?j(!1):se?s&&W.remove(s.id,e):s?.kind===`browser`?P(!1):W.setTreeOpen(s?.kind===`sidechat`?`sidechat`:`file`,!1)})},t))})]})})]})}function LW(e){He(e)}var RW=32e3,zW=264,BW=10;function VW(e){let t=(0,Q.c)(36),{conversationId:n}=e,{pathname:r}=p(),i=E(GW),a;t[0]===i?a=t[1]:(a=P(i),t[0]=i,t[1]=a);let o=a.sideChat,s=Ot(WW),c=Ot(UW),[l,u]=(0,Z.useState)(null),d;t[2]!==n||t[3]!==c?(d=()=>{if(!n||n===`new`||c){u(null);return}let e=window.getSelection(),t=e?.toString().trim()??``;if(!e||e.rangeCount===0||!t||t.length>RW){u(null);return}let r=e.getRangeAt(0),i=KW(e.anchorNode),a=KW(e.focusNode),o=document.getElementById(`app-main-content`),s=document.getElementById(`app-side-chat-panel`),l=!!(s?.contains(i)&&s?.contains(a));if(!i||!a||!l&&(!o?.contains(i)||!o.contains(a))||!i.closest(`[data-chat-message-index]`)||!a.closest(`[data-chat-message-index]`)){u(null);return}let d=r.getBoundingClientRect();if(d.width===0&&d.height===0){u(null);return}let f=Math.min(window.innerWidth-zW-BW,Math.max(BW,d.left+d.width/2-zW/2)),p=d.bottom+8,m=p+38<window.innerHeight?p:Math.max(BW,d.top-42);u({text:t,left:f,top:m,fromSide:l})},t[2]=n,t[3]=c,t[4]=d):d=t[4];let f=d,m;t[5]!==n||t[6]!==f?(m=()=>{if(u(null),!n)return;let e=()=>window.requestAnimationFrame(f),t=()=>u(null);return document.addEventListener(`pointerup`,e),document.addEventListener(`keyup`,e),window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t),()=>{document.removeEventListener(`pointerup`,e),document.removeEventListener(`keyup`,e),window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t)}},t[5]=n,t[6]=f,t[7]=m):m=t[7];let h;if(t[8]!==n||t[9]!==f||t[10]!==r?(h=[n,f,r],t[8]=n,t[9]=f,t[10]=r,t[11]=h):h=t[11],(0,Z.useEffect)(m,h),!l||!n||n===`new`)return null;let g=l.fromSide?zW/2:zW,_;t[12]!==l.left||t[13]!==l.top||t[14]!==g?(_={left:l.left,top:l.top,width:g},t[12]=l.left,t[13]=l.top,t[14]=g,t[15]=_):_=t[15];let v;t[16]===l.text?v=t[17]:(v=()=>{LW(l.text),window.getSelection()?.removeAllRanges(),u(null)},t[16]=l.text,t[17]=v);let y;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(fo,{className:`size-3.5 shrink-0`}),t[18]=y):y=t[18];let b;t[19]===o.addToChat?b=t[20]:(b=(0,$.jsx)(`span`,{className:`whitespace-nowrap`,children:o.addToChat}),t[19]=o.addToChat,t[20]=b);let x;t[21]!==v||t[22]!==b?(x=(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex flex-1 items-center justify-center gap-1.5 px-3 transition-colors hover:bg-surface-hover focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,onClick:v,children:[y,b]}),t[21]=v,t[22]=b,t[23]=x):x=t[23];let S;t[24]!==n||t[25]!==o.askInSideChat||t[26]!==o.selectedText||t[27]!==l.fromSide||t[28]!==l.text||t[29]!==s?(S=l.fromSide?null:(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex flex-1 items-center justify-center gap-1.5 border-l border-edge px-3 transition-colors hover:bg-surface-hover focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,onClick:()=>{s(n,[{id:crypto.randomUUID(),type:`text`,text:l.text,label:o.selectedText}]),window.getSelection()?.removeAllRanges(),u(null)},children:[(0,$.jsx)(Na,{className:`size-3.5 shrink-0`}),(0,$.jsx)(`span`,{className:`whitespace-nowrap`,children:o.askInSideChat})]}),t[24]=n,t[25]=o.askInSideChat,t[26]=o.selectedText,t[27]=l.fromSide,t[28]=l.text,t[29]=s,t[30]=S):S=t[30];let C;return t[31]!==o.selectedTextActionsAria||t[32]!==x||t[33]!==S||t[34]!==_?(C=(0,$.jsxs)(`div`,{role:`group`,"aria-label":o.selectedTextActionsAria,className:`fixed z-[70] flex h-9 overflow-hidden rounded-lg border border-edge bg-surface-overlay text-xs font-medium text-fg shadow-popover`,style:_,onPointerDown:HW,children:[x,S]}),t[31]=o.selectedTextActionsAria,t[32]=x,t[33]=S,t[34]=_,t[35]=C):C=t[35],C}function HW(e){return e.preventDefault()}function UW(e){return e.pendingCreate}function WW(e){return e.requestCreate}function GW(e){return e.language}function KW(e){return e?e.nodeType===Node.ELEMENT_NODE?e:e.parentElement:null}function qW(){let e=(0,Q.c)(28),t=(0,Z.useRef)(null),n=T(eG),r=T($W),i=T(QW),a=T(ZW),o=T(XW),s=T(YW),c=E(JW),l;e[0]===c?l=e[1]:(l=P(c),e[0]=c,e[1]=l);let u=l.token,d=!!s&&!i,f;e[2]!==d||e[3]!==o?(f=e=>{!e&&!d||e||o()},e[2]=d,e[3]=o,e[4]=f):f=e[4];let p;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(I,{className:Y(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[2px]`,tl)}),e[5]=p):p=e[5];let m,h;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(m=Y(`xopc-dialog-content fixed left-1/2 top-1/2 w-[min(100%-2rem,28rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-overlay p-4`,$c,`dark:border-edge`),h=e=>{e.preventDefault(),t.current?.focus()},e[6]=m,e[7]=h):(m=e[6],h=e[7]);let g;e[8]===u.title?g=e[9]:(g=(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:u.title}),e[8]=u.title,e[9]=g);let _;e[10]===u.description?_=e[11]:(_=(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:u.description}),e[10]=u.description,e[11]=_);let v;e[12]!==d||e[13]!==o||e[14]!==c?(v=d?(0,$.jsx)(X,{type:`button`,variant:`ghost`,onClick:()=>o(),children:c===`zh`?`取消`:`Cancel`}):void 0,e[12]=d,e[13]=o,e[14]=c,e[15]=v):v=e[15];let y;e[16]!==r||e[17]!==a||e[18]!==v?(y=(0,$.jsx)(jB,{className:`mt-4`,baseUrl:r,tokenInputRef:t,onSubmit:a,footerLeft:v}),e[16]=r,e[17]=a,e[18]=v,e[19]=y):y=e[19];let b;e[20]!==g||e[21]!==_||e[22]!==y?(b=(0,$.jsxs)(B,{children:[p,(0,$.jsxs)(V,{className:m,onOpenAutoFocus:h,children:[g,_,y]})]}),e[20]=g,e[21]=_,e[22]=y,e[23]=b):b=e[23];let x;return e[24]!==n||e[25]!==f||e[26]!==b?(x=(0,$.jsx)(ee,{open:n,onOpenChange:f,children:b}),e[24]=n,e[25]=f,e[26]=b,e[27]=x):x=e[27],x}function JW(e){return e.language}function YW(e){return e.conversationId}function XW(e){return e.closeTokenDialog}function ZW(e){return e.setBrowserSession}function QW(e){return e.tokenExpired}function $W(e){return e.baseUrl}function eG(e){return e.tokenDialogOpen}function tG(e){return e?e.replace(/CmdOrCtrl/g,`Ctrl`).replace(/Command/g,`Ctrl`).replace(/\+/g,` + `):null}function nG(e){let t=(0,Q.c)(15),{item:n,onInvoke:r}=e;if(n.type===`separator`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Wu,{className:`my-1 h-px bg-edge-subtle`}),t[0]=e):e=t[0],e}let i;t[1]===n.accelerator?i=t[2]:(i=tG(n.accelerator),t[1]=n.accelerator,t[2]=i);let a=i,o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=Y(`flex min-h-7 cursor-default select-none items-center gap-6 rounded-md px-2 py-1.5 text-xs text-fg outline-none`,`data-[highlighted]:bg-surface-hover data-[highlighted]:text-fg`),t[3]=o):o=t[3];let s;t[4]!==n.id||t[5]!==r?(s=()=>r(n.id),t[4]=n.id,t[5]=r,t[6]=s):s=t[6];let c;t[7]===n.label?c=t[8]:(c=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:n.label}),t[7]=n.label,t[8]=c);let l;t[9]===a?l=t[10]:(l=a?(0,$.jsx)(`span`,{className:`shrink-0 whitespace-nowrap font-mono text-[11px] text-fg-subtle`,children:a}):null,t[9]=a,t[10]=l);let u;return t[11]!==s||t[12]!==c||t[13]!==l?(u=(0,$.jsxs)(Hu,{className:o,onSelect:s,children:[c,l]}),t[11]=s,t[12]=c,t[13]=l,t[14]=u):u=t[14],u}function rG(e){let t=(0,Q.c)(6),{groups:n}=e,r=iG,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=Y(`windows-titlebar-interactive flex min-w-0 items-center gap-1`,bl),t[0]=i):i=t[0];let a;if(t[1]!==n){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(0,$.jsxs)(zu,{modal:!1,children:[(0,$.jsx)(Bu,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:Y(`inline-flex h-8 shrink-0 items-center rounded-md px-3 text-sm font-normal text-fg-muted`,`outline-none transition-colors hover:bg-surface-hover hover:text-fg`,`focus-visible:ring-2 focus-visible:ring-accent/60 data-[state=open]:bg-surface-hover data-[state=open]:text-fg`,bl),role:`menuitem`,children:e.label})}),(0,$.jsx)(Vu,{children:(0,$.jsx)(Uu,{align:`start`,sideOffset:4,className:Y(`windows-titlebar-interactive z-[90] min-w-52 rounded-lg border border-edge bg-surface-overlay p-1 shadow-popover outline-none`,bl),children:e.items.map((t,n)=>(0,$.jsx)(nG,{item:t,onInvoke:r},t.type===`item`?t.id:`${e.id}-separator-${n}`))})})]},e.id),t[3]=e):e=t[3],a=n.map(e),t[1]=n,t[2]=a}else a=t[2];let o;return t[4]===a?o=t[5]:(o=(0,$.jsx)(`div`,{className:i,role:`menubar`,children:a}),t[4]=a,t[5]=o),o}function iG(e){window.electronAPI?.menu?.invoke(e)}var aG=(0,Z.memo)(function(){let e=(0,Q.c)(11),t=E(oG),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],e[0]=n):n=e[0];let[r,i]=(0,Z.useState)(n),a;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{if(!Wc())return;let e=!1;return window.electronAPI?.menu?.getModel().then(t=>{e||i(t)}).catch(()=>{e||i([])}),()=>{e=!0}},e[1]=a):a=e[1];let o;if(e[2]===t?o=e[3]:(o=[t],e[2]=t,e[3]=o),(0,Z.useEffect)(a,o),!Wc())return null;let s,c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=Y(`windows-titlebar flex h-9 min-w-0 shrink-0 items-center gap-2 border-b border-edge-subtle`),c=(0,$.jsx)(`div`,{className:Y(`windows-titlebar-interactive flex shrink-0 items-center gap-0.5`,bl),children:(0,$.jsx)(QB,{sidebarToggleVariant:`main`})}),e[4]=s,e[5]=c):(s=e[4],c=e[5]);let l;e[6]===r?l=e[7]:(l=(0,$.jsx)(rG,{groups:r}),e[6]=r,e[7]=l);let u;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(`div`,{className:Y(`min-w-8 flex-1 self-stretch`,yl),"aria-hidden":!0}),e[8]=u):u=e[8];let d;return e[9]===l?d=e[10]:(d=(0,$.jsxs)(`header`,{className:s,children:[c,l,u]}),e[9]=l,e[10]=d),d});function oG(e){return e.language}function sG(){let e=(0,Q.c)(16),t=E(cG),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n.electron,[i,a]=(0,Z.useState)(null),o,s;if(e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{if(!Vl())return;let e=window.electronAPI?.gateway;if(e?.onExited)return e.onExited(e=>a(e))},s=[],e[2]=o,e[3]=s):(o=e[2],s=e[3]),(0,Z.useEffect)(o,s),!i)return null;let c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=Y(`shrink-0 border-b border-danger/35 bg-danger/10 px-4 py-3 text-sm text-fg shadow-surface`),e[4]=c):c=e[4];let l;e[5]===r.gatewayExitTitle?l=e[6]:(l=(0,$.jsx)(`p`,{className:`font-semibold`,children:r.gatewayExitTitle}),e[5]=r.gatewayExitTitle,e[6]=l);let u;e[7]===r.gatewayExitBody?u=e[8]:(u=(0,$.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:r.gatewayExitBody}),e[7]=r.gatewayExitBody,e[8]=u);let d=i.code??`—`,f=i.signal??`—`,p;e[9]!==d||e[10]!==f?(p=(0,$.jsxs)(`p`,{className:`mt-2 font-mono text-xs text-fg-muted`,children:[`exit `,d,` · signal `,f]}),e[9]=d,e[10]=f,e[11]=p):p=e[11];let m;return e[12]!==l||e[13]!==u||e[14]!==p?(m=(0,$.jsxs)(`div`,{className:c,role:`alert`,children:[l,u,p]}),e[12]=l,e[13]=u,e[14]=p,e[15]=m):m=e[15],m}function cG(e){return e.language}function lG(e){return{content:[{type:`text`,text:e}]}}function uG(e,t,n){if(Object.keys(e).length!==1||typeof e[t]!=`string`)throw TypeError(`Expected exactly one string argument: ${t}`);let r=e[t];if(!r||r.length>n)throw TypeError(`Invalid ${t}`);return r}function dG(e){let t=globalThis.atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}function fG(e){return[{descriptor:Mc(`desktop`,`state`),async execute(t){if(Object.keys(t).length)throw TypeError(`Expected no arguments`);let n=e().device;if(!n)throw Error(`Device environment is unavailable`);return{content:[{type:`json`,value:{...await n.readState(),capturedAt:Date.now()}}]}}},{descriptor:{name:`desktop.file.pick`,title:`Choose a local file`,description:`Ask the user to choose one local file and make it available to the agent.`,inputSchema:{type:`object`,additionalProperties:!1,properties:{}},outputSchema:Oc,policyId:`personal.foreground-read`,sensitivity:`personal`,effect:`read`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-read`],timeoutMs:12e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`file`]},async execute(t,n){if(Object.keys(t).length!==0)throw TypeError(`Expected no arguments`);let r=await e().file.pickEndpointFile();if(!r)throw new DOMException(`File selection cancelled`,`AbortError`);let i=dG(r.dataBase64);if(i.byteLength!==r.size||i.byteLength>26214400)throw Error(`Selected file payload is invalid`);return{content:[await n.uploadFile({name:r.name,mimeType:r.mimeType,bytes:i})]}}},{descriptor:{name:`desktop.file.save`,title:`Save a text file`,description:`Ask the user where to save UTF-8 text generated by the agent.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`suggestedName`,`content`],properties:{suggestedName:{type:`string`,minLength:1,maxLength:255},content:{type:`string`,maxLength:2e5}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-write`],timeoutMs:12e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(t){let n=t.suggestedName,r=t.content;if(Object.keys(t).length!==2||typeof n!=`string`||!n||n.length>255||typeof r!=`string`||r.length>2e5||new TextEncoder().encode(r).byteLength>200*1024)throw TypeError(`Invalid file save arguments`);let i=await e().file.saveEndpointText({suggestedName:n,content:r});if(!i.saved)throw new DOMException(`File save cancelled`,`AbortError`);return lG(`Saved ${i.name}`)}},{descriptor:{name:`desktop.notification.show`,title:`Show a notification`,description:`Show a bounded native desktop notification after user confirmation.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`title`,`body`],properties:{title:{type:`string`,minLength:1,maxLength:120},body:{type:`string`,minLength:1,maxLength:500}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`notifications`],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(t){let n=t.title,r=t.body;if(Object.keys(t).length!==2||typeof n!=`string`||!n.trim()||n.length>120||typeof r!=`string`||!r.trim()||r.length>500)throw TypeError(`Invalid notification arguments`);let i=e().system;if(!i)throw Error(`Desktop notifications are unavailable`);let a=await i.showEndpointNotification({title:n,body:r});if(a.ok===!1)throw a.error===`PERMISSION_DENIED`||a.error===`NOTIFICATIONS_DISABLED`?new DOMException(`Desktop notification permission is not granted`,`NotAllowedError`):Error(`Desktop notification failed: ${a.error}`);return lG(`Notification shown.`)}},{descriptor:{name:`desktop.clipboard.read`,title:`Read the clipboard`,description:`Read plain text from the desktop clipboard.`,inputSchema:{type:`object`,additionalProperties:!1,properties:{}},outputSchema:xc,policyId:`personal.foreground-read`,sensitivity:`personal`,effect:`read`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`clipboard-read`],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(t){if(Object.keys(t).length!==0)throw TypeError(`Expected no arguments`);let n=e().clipboard;if(!n?.readText)throw Error(`Clipboard read is unavailable`);return lG(await n.readText())}},{descriptor:{name:`desktop.clipboard.write`,title:`Write to the clipboard`,description:`Replace the desktop clipboard with plain text.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`text`],properties:{text:{type:`string`,minLength:1,maxLength:1e5}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`clipboard-write`],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(t){let n=uG(t,`text`,1e5),r=e().clipboard;if(!r?.writeText||!await r.writeText(n))throw Error(`Clipboard write failed`);return lG(`Clipboard updated.`)}},{descriptor:{name:`desktop.app.open_external`,title:`Open an external URL`,description:`Open an HTTP or HTTPS URL in the default desktop application.`,inputSchema:{type:`object`,additionalProperties:!1,required:[`url`],properties:{url:{type:`string`,minLength:1,maxLength:2048}}},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`open-external-url`],timeoutMs:15e3,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(t){let n=uG(t,`url`,2048),r=new URL(n);if(r.protocol!==`http:`&&r.protocol!==`https:`)throw TypeError(`Only HTTP and HTTPS URLs are allowed`);let i=e().shell;if(!i?.openExternalUrl)throw Error(`External URL opening is unavailable`);let a=await i.openExternalUrl(r.href);if(a.ok===!1)throw Error(a.error);return lG(`Opened ${r.href}`)}}]}var pG=fG(()=>{if(!window.electronAPI)throw Error(`Desktop bridge is unavailable`);return{...window.electronAPI,device:{readState:async()=>({platform:window.electronAPI.platform,systemVersion:``,locale:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}}}),mG=600,hG=[],gG=new Set;function _G(){for(let e of gG)e()}function vG(){return hG[0]}function yG(e){return gG.add(e),()=>gG.delete(e)}function bG(e){let t=JSON.stringify(e,null,2);return t.length<=mG?t:`${t.slice(0,mG)}\n…`}function xG(e){return e.deadlineAt<=Date.now()?Promise.resolve(!1):new Promise(t=>{let n=window.setTimeout(()=>SG(e.invocationId,!1),e.deadlineAt-Date.now());hG.push({invocationId:e.invocationId,title:e.title,toolName:e.toolName,argumentsPreview:bG(e.args),resolve:t,timeout:n}),_G()})}function SG(e,t){let n=hG.findIndex(t=>t.invocationId===e);if(n<0)return;let[r]=hG.splice(n,1);window.clearTimeout(r.timeout),r.resolve(t),_G()}function CG(){let e=hG;hG=[];for(let t of e)window.clearTimeout(t.timeout),t.resolve(!1);_G()}function wG(){return(0,Z.useSyncExternalStore)(yG,vG,vG)}function TG(){let e=(0,Q.c)(42),t=wG(),n=E(EG)===`zh`,r;e[0]===t?.toolName?r=e[1]:(r=t?.toolName?.endsWith(`.device.get_location`),e[0]=t?.toolName,e[1]=r);let i=r,a;e[2]!==i||e[3]!==t?(a=i?JSON.parse(t.argumentsPreview):void 0,e[2]=i,e[3]=t,e[4]=a):a=e[4];let o=a,s=!!t,c;e[5]===t?c=e[6]:(c=e=>{!e&&t&&SG(t.invocationId,!1)},e[5]=t,e[6]=c);let l;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[140] bg-scrim backdrop-blur-[2px]`}),e[7]=l):l=e[7];let u=i?n?`允许本次使用位置?`:`Use location once?`:n?`允许端侧工具执行?`:`Allow endpoint tool?`,d;e[8]===u?d=e[9]:(d=(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:u}),e[8]=u,e[9]=d);let f=t?.title??``,p;e[10]===f?p=e[11]:(p=(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:f}),e[10]=f,e[11]=p);let m;e[12]!==d||e[13]!==p?(m=(0,$.jsxs)(`div`,{className:`border-b border-edge-subtle px-5 py-4`,children:[d,p]}),e[12]=d,e[13]=p,e[14]=m):m=e[14];let h;e[15]!==o?.precision||e[16]!==o?.purpose||e[17]!==i||e[18]!==t?.argumentsPreview||e[19]!==n?(h=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:i?(0,$.jsxs)(`div`,{className:`space-y-3 text-sm text-fg-muted`,children:[(0,$.jsxs)(`p`,{children:[n?`用途:`:`Purpose: `,o?.purpose===`weather`?n?`查询天气`:`Weather`:n?`查询附近地点`:`Nearby places`]}),(0,$.jsxs)(`p`,{children:[n?`精度:`:`Precision: `,o?.precision===`precise`?n?`精确位置`:`Precise`:n?`大致位置`:`Approximate`]}),(0,$.jsxs)(`p`,{children:[n?`此浏览器的位置仅用于本次查询。坐标将发送给 `:`This browser’s location is used only for this query. Coordinates are sent to `,o?.purpose===`weather`?`Open-Meteo`:`OpenStreetMap`,n?`,原始坐标不进入聊天历史。系统权限开启后,每次调用仍需确认。`:`; raw coordinates are excluded from chat history. Each call requires consent even when OS permission is enabled.`]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`mb-2 text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:n?`实际参数`:`Arguments`}),(0,$.jsx)(`pre`,{className:`whitespace-pre-wrap break-words rounded-lg border border-edge bg-surface-base p-3 font-mono text-xs leading-5 text-fg`,children:t?.argumentsPreview??`{}`})]})}),e[15]=o?.precision,e[16]=o?.purpose,e[17]=i,e[18]=t?.argumentsPreview,e[19]=n,e[20]=h):h=e[20];let g;e[21]===t?g=e[22]:(g=()=>t&&SG(t.invocationId,!1),e[21]=t,e[22]=g);let _=n?`拒绝`:`Deny`,v;e[23]!==g||e[24]!==_?(v=(0,$.jsx)(X,{onClick:g,children:_}),e[23]=g,e[24]=_,e[25]=v):v=e[25];let y;e[26]===t?y=e[27]:(y=()=>t&&SG(t.invocationId,!0),e[26]=t,e[27]=y);let b=n?`允许一次`:`Allow once`,x;e[28]!==y||e[29]!==b?(x=(0,$.jsx)(X,{variant:`primary`,onClick:y,children:b}),e[28]=y,e[29]=b,e[30]=x):x=e[30];let S;e[31]!==v||e[32]!==x?(S=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:[v,x]}),e[31]=v,e[32]=x,e[33]=S):S=e[33];let C;e[34]!==h||e[35]!==S||e[36]!==m?(C=(0,$.jsxs)(B,{children:[l,(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[150] flex h-[min(26rem,calc(100vh-2rem))] w-[min(32rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[m,h,S]})]}),e[34]=h,e[35]=S,e[36]=m,e[37]=C):C=e[37];let w;return e[38]!==C||e[39]!==s||e[40]!==c?(w=(0,$.jsx)(ee,{open:s,onOpenChange:c,children:C}),e[38]=C,e[39]=s,e[40]=c,e[41]=w):w=e[41],w}function EG(e){return e.language}var DG=`xopc-endpoint-tools`,OG=`identity`,kG=`xopc.endpoint-tools.endpoint-id`,AG;function jG(e){if(AG?.startsWith(`${e}:`))return AG;let t=sessionStorage.getItem(kG);return t?.startsWith(`${e}:`)?(AG=t,t):(AG=`${e}:${crypto.randomUUID()}`,sessionStorage.setItem(kG,AG),AG)}function MG(e){let t=String.fromCharCode(...new Uint8Array(e));return btoa(t).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/u,``)}function NG(){return new Promise((e,t)=>{let n=indexedDB.open(DG,1);n.onupgradeneeded=()=>n.result.createObjectStore(OG),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Endpoint identity database failed`))})}async function PG(e){let t=await NG();try{return await new Promise((n,r)=>{let i=t.transaction(OG).objectStore(OG).get(e);i.onsuccess=()=>n(i.result),i.onerror=()=>r(i.error??Error(`Endpoint identity read failed`))})}finally{t.close()}}async function FG(e,t){let n=await NG();try{await new Promise((r,i)=>{let a=n.transaction(OG,`readwrite`);a.objectStore(OG).put(t,e),a.oncomplete=()=>r(),a.onerror=()=>i(a.error??Error(`Endpoint identity write failed`))})}finally{n.close()}}async function IG(e){let t=await NG();try{await new Promise((n,r)=>{let i=t.transaction(OG,`readwrite`);i.objectStore(OG).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error??Error(`Endpoint identity deletion failed`))})}finally{t.close()}}async function LG(e){let t=await PG(e);if(t)return t;let n=await crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!0,[`sign`,`verify`]),r=MG(await crypto.subtle.exportKey(`spki`,n.publicKey)),i=await crypto.subtle.importKey(`pkcs8`,await crypto.subtle.exportKey(`pkcs8`,n.privateKey),{name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`]),a={principalId:crypto.randomUUID(),publicKey:r,privateKey:i};return await FG(e,a),a}async function RG(e){return await IG(e),AG=void 0,sessionStorage.removeItem(kG),LG(e)}async function zG(e,t){return MG(await crypto.subtle.sign({name:`ECDSA`,hash:`SHA-256`},e,new TextEncoder().encode(t)))}var BG=2e3;function VG(){return document.visibilityState===`visible`&&document.hasFocus()?`foreground`:`background`}async function HG(e){if(e.signal.aborted)return!1;let t=()=>SG(e.invocationId,!1);e.signal.addEventListener(`abort`,t,{once:!0});try{return await xG({invocationId:e.invocationId,title:e.descriptor.title,toolName:e.descriptor.name,args:e.arguments,deadlineAt:e.deadlineAt})}finally{e.signal.removeEventListener(`abort`,t)}}var UG=class{config;reconnectTimer;connectPromise;detachRealtime;stopped=!1;registrationBlocked=!1;endpointId;supportsDeviceState=!1;supportsEnvironment=!1;contextPublisher=cB();supportsLocationTasks=!1;turnToken;registry;controller;constructor(e){this.config=e,this.registry=new iB(e.definitions),this.controller=new aB({registry:this.registry,getAvailability:VG,confirm:HG,uploadFile:(e,t)=>this.uploadFile(e,t),createMessageId:()=>crypto.randomUUID()})}async start(){this.stopped=!1,this.registrationBlocked=!1,document.addEventListener(`visibilitychange`,this.onVisibilityChange),window.addEventListener(`focus`,this.onVisibilityChange),window.addEventListener(`blur`,this.onVisibilityChange),window.addEventListener(`gateway-authenticated`,this.onTokenSaved),await this.connect()}stop(){this.stopped=!0,this.contextPublisher.stop(),Ks(!1),document.removeEventListener(`visibilitychange`,this.onVisibilityChange),window.removeEventListener(`focus`,this.onVisibilityChange),window.removeEventListener(`blur`,this.onVisibilityChange),window.removeEventListener(`gateway-authenticated`,this.onTokenSaved),window.clearTimeout(this.reconnectTimer),this.detachRealtime?.(),this.detachRealtime=void 0,this.controller.disconnect(),Bs(this.turnToken),this.turnToken=void 0,this.endpointId=void 0,CG()}onTokenSaved=()=>{this.registrationBlocked=!1,this.connect()};onVisibilityChange=()=>{this.controller.publishAvailability(),this.contextPublisher.refresh()};connect(e=!0){if(this.connectPromise)return this.connectPromise;let t=this.connectOnce(e).finally(()=>{this.connectPromise===t&&(this.connectPromise=void 0)});return this.connectPromise=t,t}async connectOnce(e){if(!(this.stopped||this.registrationBlocked)){window.clearTimeout(this.reconnectTimer);try{let t=await x(w(`/api/endpoint-tools/compatibility`)),n=await t.json().catch(()=>null);this.supportsEnvironment=t.ok&&n?.payload?.endpointEnvironmentV1===!0,Ks(t.ok&&n?.payload?.turnDeviceContextV1===!0),this.supportsLocationTasks=t.ok&&n?.payload?.deviceLocationTasksV1===!0,this.supportsDeviceState=t.ok&&n?.payload?.deviceStateToolsV1===!0;let r=await LG(this.config.kind);if(this.stopped)return;let i=await x(w(`/api/endpoint-tools/principals`),{method:`POST`,body:JSON.stringify({principalId:r.principalId,displayName:this.config.displayName,kind:this.config.kind,platform:this.config.platform,publicKey:r.publicKey})});if(!i.ok){if((await i.json().catch(()=>null))?.error?.code===`PRINCIPAL_REVOKED`){if(!e){this.registrationBlocked=!0;return}let t=await this.config.confirmReenrollment();if(this.stopped)return;if(!t){this.registrationBlocked=!0;return}await RG(this.config.kind),this.stopped||await this.connectOnce(!1);return}if(i.status>=400&&i.status<500){this.registrationBlocked=!0;return}throw Error(`Endpoint registration failed: ${i.status}`)}if(this.stopped)return;let a={createHello:()=>this.createHello(r),onReady:({endpointId:e,turnToken:t})=>{this.endpointId=e,this.turnToken=t,Gs(e,t),this.controller.connect(kc),this.supportsEnvironment&&this.contextPublisher.start({endpointId:e,token:t})},onMessage:e=>{this.controller.handleMessage(e)},onDisconnected:()=>{this.contextPublisher.stop(),this.controller.disconnect(),Bs(this.turnToken),this.turnToken=void 0,CG()}};this.detachRealtime?.(),this.detachRealtime=jc(a)}catch{this.scheduleReconnect()}}}scheduleReconnect(){this.stopped||this.reconnectTimer!==void 0||(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=void 0,this.connect()},BG))}async createHello(e){let t=jG(e.principalId);this.endpointId=t;let n={principalId:e.principalId,endpointId:t,connectionInstanceId:crypto.randomUUID(),displayName:this.config.displayName,kind:this.config.kind,platform:this.config.platform,appVersion:this.config.appVersion,availability:VG(),nonce:crypto.randomUUID(),signedAt:Date.now(),signature:`pending`,tools:this.registry.descriptors().filter(e=>e.name.endsWith(`.device.get_location`)?this.supportsLocationTasks:this.supportsDeviceState||!e.name.includes(`.device.get_`))},r=await zG(e.privateKey,Sc(n));return{...n,signature:r}}async uploadFile(e,t){if(!e||!this.endpointId)throw Error(`Endpoint file upload grant is unavailable`);if(!t.name||t.name.length>255||!t.mimeType||t.mimeType.length>255||t.bytes.byteLength>e.maxBytes||e.expiresAt<=Date.now())throw TypeError(`Endpoint file is invalid`);let n=new URL(w(e.path),window.location.href);n.searchParams.set(`name`,t.name);let r=t.bytes.buffer.slice(t.bytes.byteOffset,t.bytes.byteOffset+t.bytes.byteLength),i=await x(n,{method:`POST`,headers:{"Content-Type":t.mimeType,"x-endpoint-id":this.endpointId,"x-endpoint-upload-token":e.token},body:r}),a=await i.json().catch(()=>null);if(!i.ok)throw Error(a?.error?.message??`Endpoint file upload failed: ${i.status}`);let o=Cc.safeParse(a?.payload);if(!o.success||o.data.type!==`file`)throw Error(`Endpoint file upload returned an invalid response`);return o.data}},WG,GG=new Set;function KG(){for(let e of GG)e()}function qG(e){return GG.add(e),()=>GG.delete(e)}function JG(){return!!WG}function YG(){return WG?Promise.resolve(!1):new Promise(e=>{WG={resolve:e},KG()})}function XG(e){let t=WG;t&&(WG=void 0,t.resolve(e),KG())}function ZG(){return(0,Z.useSyncExternalStore)(qG,JG,JG)}function QG(){let e=(0,Q.c)(21),t=ZG(),n=E(nK)===`zh`,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[140] bg-scrim backdrop-blur-[2px]`}),e[0]=r):r=e[0];let i=n?`重新注册此端?`:`Re-enroll this endpoint?`,a;e[1]===i?a=e[2]:(a=(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:i}),e[1]=i,e[2]=a);let o=n?`此端身份已被撤销。继续会删除旧密钥并生成一个新的端身份,然后重新连接 Gateway。`:`This endpoint identity was revoked. Continuing deletes the old key, creates a new endpoint identity, and reconnects to the Gateway.`,s;e[3]===o?s=e[4]:(s=(0,$.jsx)(R,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:o}),e[3]=o,e[4]=s);let c;e[5]!==a||e[6]!==s?(c=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-5`,children:[a,s]}),e[5]=a,e[6]=s,e[7]=c):c=e[7];let l=n?`取消`:`Cancel`,u;e[8]===l?u=e[9]:(u=(0,$.jsx)(X,{onClick:eK,children:l}),e[8]=l,e[9]=u);let d=n?`生成新身份`:`Create new identity`,f;e[10]===d?f=e[11]:(f=(0,$.jsx)(X,{variant:`primary`,onClick:$G,children:d}),e[10]=d,e[11]=f);let p;e[12]!==u||e[13]!==f?(p=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:[u,f]}),e[12]=u,e[13]=f,e[14]=p):p=e[14];let m;e[15]!==p||e[16]!==c?(m=(0,$.jsxs)(B,{children:[r,(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[150] flex h-[min(22rem,calc(100vh-2rem))] w-[min(30rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[c,p]})]}),e[15]=p,e[16]=c,e[17]=m):m=e[17];let h;return e[18]!==t||e[19]!==m?(h=(0,$.jsx)(ee,{open:t,onOpenChange:tK,children:m}),e[18]=t,e[19]=m,e[20]=h):h=e[20],h}function $G(){return XG(!0)}function eK(){return XG(!1)}function tK(e){return!e&&XG(!1)}function nK(e){return e.language}var rK={descriptor:vz(`web`),async execute(e,t){let n=hz.parse(e);if(!navigator.geolocation)throw new nB(`PERMISSION_DENIED`,`Location is unavailable in this browser`);return{content:[{type:`json`,value:await new Promise((e,r)=>{let i=!1,a=(a,s)=>{if(i)return;if(i=!0,t.signal.removeEventListener(`abort`,o),s){r(s);return}let c=n.precision===`approximate`||a.coords.accuracy>1e3;e({capturedAt:a.timestamp,latitude:c?Math.round(a.coords.latitude*50)/50:a.coords.latitude,longitude:c?Math.round(a.coords.longitude*50)/50:a.coords.longitude,accuracyMeters:c?Math.max(3e3,a.coords.accuracy):a.coords.accuracy,coordinateSystem:`WGS84`,precision:c?`approximate`:`precise`})},o=()=>a(void 0,new nB(`TOOL_CANCELLED`,`Location request cancelled`));if(t.signal.addEventListener(`abort`,o,{once:!0}),t.signal.aborted){o();return}navigator.geolocation.getCurrentPosition(e=>a(e),e=>a(void 0,new nB(e.code===1?`PERMISSION_DENIED`:e.code===3?`TOOL_TIMEOUT`:`PROTOCOL_ERROR`,e.code===1?`Location permission denied`:`Location is unavailable`)),{maximumAge:0,timeout:2e4,enableHighAccuracy:n.precision===`precise`})})}]}}};function iK(e){return{content:[{type:`text`,text:e}]}}function aK(){if(!navigator.userActivation?.isActive)throw new DOMException(`A current user gesture is required`,`NotAllowedError`)}function oK(e){return new DOMException(e,`AbortError`)}function sK(e){let t=e.suggestedName,n=e.content;if(Object.keys(e).length!==2||typeof t!=`string`||!t||t===`.`||t===`..`||t.length>255||t.includes(`/`)||t.includes(`\\`)||typeof n!=`string`||n.length>2e5||new TextEncoder().encode(n).byteLength>200*1024)throw TypeError(`Invalid file download arguments`);return{suggestedName:t,content:n}}function cK(){return aK(),new Promise((e,t)=>{let n=document.createElement(`input`);n.type=`file`,n.multiple=!1,n.onchange=()=>{let r=n.files?.[0];r?e(r):t(oK(`File selection cancelled`))},n.oncancel=()=>t(oK(`File selection cancelled`)),n.click()})}function lK(e,t){let n=e[t];if(typeof n!=`string`||n.length===0)throw TypeError(`${t} must be a non-empty string`);return n}function uK(e,t){let n=Object.keys(e).toSorted(),r=t.toSorted();if(n.length!==r.length||n.some((e,t)=>e!==r[t]))throw TypeError(`arguments must contain exactly: ${r.join(`, `)||`no fields`}`)}var dK=[rK,{descriptor:Mc(`web`,`state`),async execute(e){if(Object.keys(e).length)throw TypeError(`Expected no arguments`);return{content:[{type:`json`,value:{capturedAt:Date.now(),platform:`web`,systemVersion:``,locale:navigator.language.slice(0,80),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,online:navigator.onLine}}]}}},{descriptor:{name:`web.file.pick`,title:`Choose a local file`,description:`Ask the user to choose one browser-accessible file and make it available to the agent.`,inputSchema:{type:`object`,properties:{},additionalProperties:!1},outputSchema:Oc,policyId:`personal.foreground-read`,sensitivity:`personal`,effect:`read`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-read`],timeoutMs:12e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`file`]},async execute(e,t){uK(e,[]);let n=await cK();if(n.size>26214400)throw TypeError(`Selected file exceeds ${Ac} bytes`);let r=new Uint8Array(await n.arrayBuffer());if(r.byteLength!==n.size||r.byteLength>26214400)throw Error(`Selected file payload is invalid`);return{content:[await t.uploadFile({name:n.name,mimeType:n.type||`application/octet-stream`,bytes:r})]}}},{descriptor:{name:`web.file.download`,title:`Download a text file`,description:`Download bounded UTF-8 text generated by the agent through this browser.`,inputSchema:{type:`object`,properties:{suggestedName:{type:`string`,minLength:1,maxLength:255},content:{type:`string`,maxLength:2e5}},required:[`suggestedName`,`content`],additionalProperties:!1},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`file-download`],timeoutMs:3e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(e){let{suggestedName:t,content:n}=sK(e);aK();let r=URL.createObjectURL(new Blob([n],{type:`text/plain;charset=utf-8`}));try{let e=document.createElement(`a`);e.href=r,e.download=t,e.click()}finally{URL.revokeObjectURL(r)}return iK(`Download started: ${t}`)}},{descriptor:{name:`web.page.get_selection`,title:`Read selected text`,description:`Read the text currently selected in this browser tab.`,inputSchema:{type:`object`,properties:{},additionalProperties:!1},outputSchema:xc,policyId:`public.foreground-read`,sensitivity:`public`,effect:`read`,confirmation:`never`,requiresForeground:!0,requiredPermissions:[],timeoutMs:1e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(e){return uK(e,[]),iK(window.getSelection()?.toString()??``)}},{descriptor:{name:`web.clipboard.write`,title:`Write clipboard`,description:`Write text to the clipboard from this browser tab.`,inputSchema:{type:`object`,properties:{text:{type:`string`,maxLength:1e5}},required:[`text`],additionalProperties:!1},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`write`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`clipboard-write`],timeoutMs:3e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!0,resultKinds:[`text`]},async execute(e){if(uK(e,[`text`]),!navigator.clipboard||!document.hasFocus())throw new DOMException(`Clipboard access requires a focused browser tab`,`NotAllowedError`);let t=lK(e,`text`);if(t.length>1e5)throw TypeError(`text exceeds 100000 characters`);return await navigator.clipboard.writeText(t),iK(`Clipboard updated.`)}},{descriptor:{name:`web.page.navigate`,title:`Navigate page`,description:`Navigate this browser tab to an HTTP or HTTPS URL.`,inputSchema:{type:`object`,properties:{url:{type:`string`,maxLength:4096}},required:[`url`],additionalProperties:!1},outputSchema:xc,policyId:`user.foreground-write`,sensitivity:`personal`,effect:`destructive`,confirmation:`always`,requiresForeground:!0,requiredPermissions:[`navigation`],timeoutMs:3e4,maxConcurrency:1,supportsCancellation:!1,idempotent:!1,resultKinds:[`text`]},async execute(e){uK(e,[`url`]);let t=lK(e,`url`);if(t.length>4096)throw TypeError(`url exceeds 4096 characters`);let n=new URL(t,window.location.href);if(n.protocol!==`http:`&&n.protocol!==`https:`)throw TypeError(`url must use HTTP or HTTPS`);return{content:[{type:`text`,text:`Navigating to ${n.href}`}],afterSend:()=>window.location.assign(n.href)}}}];function fK(){return(0,Z.useEffect)(()=>{let e=Vl();if(e&&window.electronAPI?.computer){let e=!1,t=!1,n,r=cB(),i=()=>{r.refresh()};document.addEventListener(`visibilitychange`,i),window.addEventListener(`focus`,i),window.addEventListener(`blur`,i),x(w(`/api/endpoint-tools/compatibility`)).then(async n=>{let r=await n.json();t=n.ok&&r?.payload?.endpointEnvironmentV1===!0,e||Ks(n.ok&&r?.payload?.turnDeviceContextV1===!0)}).catch(()=>{e||Ks(!1)});let a=async()=>{try{let i=await window.electronAPI.computer.status();if(e)return;i.claim?(Gs(i.claim.endpointId,i.claim.token),t&&n!==i.claim.token&&(n=i.claim.token,r.start(i.claim))):(n=void 0,r.stop(),Bs())}catch{e||(n=void 0,r.stop(),Bs())}};a();let o=window.setInterval(()=>{a()},1e3);return()=>{e=!0,r.stop(),document.removeEventListener(`visibilitychange`,i),window.removeEventListener(`focus`,i),window.removeEventListener(`blur`,i),Ks(!1),window.clearInterval(o),Bs()}}let t=new UG(e?{kind:`desktop`,platform:window.electronAPI?.platform??`desktop`,displayName:`xopc Desktop`,appVersion:`1`,definitions:pG,confirmReenrollment:YG}:{kind:`web`,platform:`web`,displayName:`Web browser`,appVersion:`1`,definitions:dK,confirmReenrollment:YG});return t.start(),()=>{XG(!1),t.stop()}},[]),(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(TG,{}),(0,$.jsx)(QG,{})]})}function pK(){let e=(0,Q.c)(3),t=b(),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{if(!Vl())return;let e=window.electronAPI;if(!e?.menu)return;let n=e.menu.onNavigate(e=>{t(e)}),r=e.menu.onTogglePalette(gK),i=e.menu.onQuickCapture(hK),a=e.menu.onToggleSidebar(mK),o=e.menu.onHistoryNavigate(e=>{t(e)});return()=>{n(),r(),i(),a(),o()}},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function mK(){Fe.getState().toggleCollapsed()}function hK(){re()}function gK(){window.dispatchEvent(new CustomEvent(`toggle-command-palette`))}var _K=1500,vK=9e4;function yK(){let e=(0,Q.c)(16),t=E(SK),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n.updatePanel,[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)(!1),c=(0,Z.useRef)(0),l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{let e=c.current+=1;a(!0),s(!1),(async()=>{await new Promise(xK);let t=Date.now()+vK;for(;e===c.current&&Date.now()<t;){try{if((await fetch(w(`/api/health`),{signal:AbortSignal.timeout(3e3)})).ok){window.location.reload();return}}catch{}await new Promise(bK)}e===c.current&&s(!0)})()},e[2]=l):l=e[2];let u=l,d,f;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=()=>{let e=()=>u();return window.addEventListener(`gateway-restart-initiated`,e),()=>{c.current+=1,window.removeEventListener(`gateway-restart-initiated`,e)}},f=[u],e[3]=d,e[4]=f):(d=e[3],f=e[4]),(0,Z.useEffect)(d,f);let p;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>{u()},e[5]=p):p=e[5];let m=p;if(!i)return null;let h=o?`border-red-500/20 bg-red-500/10 text-red-800 dark:text-red-200`:`border-amber-500/25 bg-amber-500/10 text-amber-900 dark:text-amber-100`,g;e[6]===h?g=e[7]:(g=Y(`flex min-h-10 w-full items-center justify-center gap-2 border-b px-4 py-2 text-sm`,h),e[6]=h,e[7]=g);let _;e[8]!==r.restartPollRetry||e[9]!==r.restartPollTimeout||e[10]!==r.restartPolling||e[11]!==o?(_=o?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{children:r.restartPollTimeout}),(0,$.jsx)(`button`,{type:`button`,onClick:m,className:`ml-2 rounded bg-accent px-2 py-0.5 text-xs font-medium text-on-accent hover:bg-accent/90`,children:r.restartPollRetry})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:r.restartPolling})]}),e[8]=r.restartPollRetry,e[9]=r.restartPollTimeout,e[10]=r.restartPolling,e[11]=o,e[12]=_):_=e[12];let v;return e[13]!==g||e[14]!==_?(v=(0,$.jsx)(`div`,{className:g,children:_}),e[13]=g,e[14]=_,e[15]=v):v=e[15],v}function bK(e){return setTimeout(e,_K)}function xK(e){return setTimeout(e,2e3)}function SK(e){return e.language}function CK({reminder:e,compact:t}){let n=E(e=>e.language),r=P(n).updatePanel,{show:i,dismiss:a,electronQuitAndInstall:o,runNpmUpdate:s,npmUpdateRunning:c}=e,[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(null),p=(0,Z.useCallback)(async()=>{u(!0),f(null);try{let e=await So();if(e.ok){window.dispatchEvent(new Event(`gateway-restart-initiated`));return}f(e.message??`Gateway restart failed`)}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}},[]),m=(0,Z.useCallback)(async()=>{let e=P(n).updatePanel;f(null);let t=await s();if(t.ok){_l({tone:`success`,title:e.updateSuccess,message:yV(t.result)?e.updateSuccessAutoRestartDetail:e.updateSuccessDetail,source:n===`zh`?`系统更新`:`System update`,dedupeKey:`system-update`});return}let r=t.error===`git-checkout`?e.updateErrorGit:t.error===`busy`?e.updateErrorBusy:e.updateErrorFailed;f(`${r}: ${t.message}`)},[s,n]);if(i.kind===`none`)return null;let h=Y(`absolute right-2 top-1/2 z-[1] flex -translate-y-1/2 items-center gap-1 sm:right-3`,bl);return i.kind===`electron-ready`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-accent/20 bg-accent/10 px-10 py-2 text-sm sm:px-12`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`flex max-w-[min(100%,48rem)] items-center justify-center gap-2 text-center`,children:[(0,$.jsx)(Ur,{className:`size-4 shrink-0 text-accent`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0`,children:r.reminderElectronReady.replace(`{{version}}`,i.version)})]}),(0,$.jsxs)(`div`,{className:h,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:o,className:`rounded bg-accent px-2.5 py-1 text-xs font-medium text-on-accent hover:bg-accent/90`,children:[(0,$.jsx)(vo,{className:`mr-1 inline size-3`}),r.restartToUpdate]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:`rounded p-1 text-fg-muted hover:text-fg`,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]})]}):i.kind===`electron-error`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-red-500/20 bg-red-500/10 px-10 py-2 text-sm text-fg sm:px-12`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`flex max-w-[min(100%,52rem)] items-center justify-center gap-2 text-center`,children:[(0,$.jsx)(tr,{className:`size-4 shrink-0 text-red-500 dark:text-red-400`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 break-words`,children:r.reminderElectronUpdateError.replace(`{{detail}}`,i.message)})]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:h,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):i.kind===`electron-downloading`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 flex-col items-center justify-center gap-2 border-b border-edge bg-surface-panel px-10 py-2 text-sm text-fg-muted sm:flex-row sm:gap-4 sm:px-12`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`flex max-w-full items-center justify-center gap-2 text-center`,children:[(0,$.jsx)(Ur,{className:`size-4 shrink-0 animate-pulse`,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:r.reminderDownloading.replace(`{{percent}}`,String(i.percent))})]}),(0,$.jsx)(`div`,{className:`h-1.5 w-full max-w-xs rounded-full bg-surface-inset sm:max-w-[12rem]`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${i.percent}%`}})}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:Y(h,`sm:right-2`),"aria-label":r.dismissAria,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):i.kind===`npm-restart-required`?(0,$.jsxs)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-amber-500/25 bg-amber-500/10 py-2 text-sm`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:`mx-auto flex max-w-[min(100%,52rem)] flex-wrap items-center justify-center gap-x-2 gap-y-1 px-10 pr-14 text-center sm:px-12 sm:pr-16`,children:[(0,$.jsx)(`span`,{children:r.restartRequired.replace(`{{version}}`,i.version)}),(0,$.jsxs)(`button`,{type:`button`,onClick:p,disabled:l,className:Y(`inline-flex shrink-0 items-center gap-1 rounded bg-accent px-2.5 py-1 text-xs font-medium text-on-accent hover:bg-accent/90 disabled:cursor-not-allowed disabled:opacity-60`,bl),children:[l?(0,$.jsx)(ha,{className:`size-3 shrink-0 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(vo,{className:`size-3 shrink-0`,"aria-hidden":!0}),r.restartGateway]}),d?(0,$.jsx)(`span`,{className:`w-full text-xs text-danger`,role:`alert`,children:d}):null]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:h,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):i.kind===`npm-restarting`?(0,$.jsx)(`div`,{className:Y(`relative flex min-h-10 w-full min-w-0 items-center justify-center border-b border-accent/20 bg-accent/10 py-2 text-sm`,yl,t&&`text-xs`),children:(0,$.jsxs)(`div`,{className:`mx-auto flex max-w-[min(100%,52rem)] items-center justify-center gap-2 px-10 pr-14 text-center sm:px-12 sm:pr-16`,children:[(0,$.jsx)(ha,{className:`size-4 shrink-0 animate-spin text-accent`,"aria-hidden":!0}),(0,$.jsx)(`span`,{children:r.restartingAutomatically.replace(`{{version}}`,i.version)})]})}):i.kind===`npm`?(0,$.jsxs)(`div`,{className:Y(`relative hidden min-h-10 w-full min-w-0 items-center justify-center border-b border-accent/20 bg-accent/10 py-2 text-sm md:flex`,yl,t&&`text-xs`),children:[(0,$.jsxs)(`div`,{className:Y(`mx-auto flex max-w-[min(100%,52rem)] flex-wrap items-center justify-center gap-x-2 gap-y-1 px-10 pr-14 text-center sm:px-12 sm:pr-16`),children:[(0,$.jsxs)(`span`,{children:[r.reminderNpm.replace(`{{version}}`,i.version),i.channel&&i.channel!==`latest`?` (${i.channel})`:``]}),(0,$.jsxs)(`button`,{type:`button`,onClick:m,disabled:c,className:Y(`inline-flex shrink-0 items-center gap-1 rounded bg-accent px-2.5 py-1 text-xs font-medium text-on-accent hover:bg-accent/90 disabled:cursor-not-allowed disabled:opacity-60`,bl),children:[c?(0,$.jsx)(ha,{className:`size-3 shrink-0 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(vo,{className:`size-3 shrink-0`,"aria-hidden":!0}),c?r.updateRunning:r.updateNow]}),d?(0,$.jsx)(`span`,{className:`w-full text-xs text-danger`,role:`alert`,children:d}):null]}),(0,$.jsx)(`button`,{type:`button`,onClick:a,className:h,"aria-label":r.dismissAria,title:r.dismissHint,children:(0,$.jsx)(Zo,{className:`size-4`})})]}):null}function wK(e,t,n){let r=P(e),i=r.commandPalette.actions,a=r.commandPalette.groups.actions;return[{kind:`action`,id:`action:local-app:create`,title:i.createLocalApp,subtitle:i.createLocalAppSubtitle,groupLabel:a,keywords:[`app`,`local app`,`create app`,`tool`,`workshop`,`coder`,`应用`,`创建应用`,`工具`,`工坊`],run:()=>{n(),t(`/local-apps/new`)}},{kind:`action`,id:`action:automation:create`,title:`Create automation`,subtitle:`Open automations to create a trigger and action`,groupLabel:a,keywords:[`automation`,`schedule`,`trigger`,`action`,`timer`],run:()=>{n(),t(`/automations?action=create`)}},{kind:`action`,id:`action:automation:manage`,title:`Manage automations`,subtitle:`View automations and run history`,groupLabel:a,keywords:[`automation`,`schedule`,`tasks`,`runs`],run:()=>{n(),t(`/automations`)}},{kind:`action`,id:`action:skills:manage`,title:i.manageSkills,subtitle:i.manageSkillsSubtitle,groupLabel:a,keywords:[`skills`,`skill`,`catalog`],run:()=>{n(),t(`/capabilities/skills`)}},{kind:`action`,id:`action:skills:reload`,title:i.reloadSkills,subtitle:i.reloadSkillsSubtitle,groupLabel:a,keywords:[`skills`,`reload`,`refresh`],run:()=>{n(),s(async()=>{let{reloadSkills:e}=await import(`./skill-reload-api-VmC8ySUy.js`).then(e=>e.n);return{reloadSkills:e}},__vite__mapDeps([157,1,5,2,6,158])).then(({reloadSkills:e})=>e())}}]}function TK(e){if(e)return e.replace(/CmdOrCtrl/g,`Ctrl`).replace(/Command/g,`Ctrl`).replace(/\+/g,` + `)}async function EK(e,t){let n=window.electronAPI?.menu;if(!n)return[];try{let r=await n.getModel(),i=P(e).commandPalette.groups.actions;return r.flatMap(e=>e.items.flatMap(r=>{if(r.type!==`item`||r.id.startsWith(`role.`))return[];let a=TK(r.accelerator);return[{kind:`action`,id:`desktop-menu:${r.id}`,title:r.label,subtitle:[e.label,a].filter(Boolean).join(` · `)||void 0,groupLabel:i,keywords:[r.id,e.id,e.label,r.accelerator??``],run:()=>{t(),n.invoke(r.id)}}]}))}catch{return[]}}function DK(e){return P(e).commandPalette.groups}function OK(e){let t=DK(e);return{[t.navigate]:0,[t.projects]:1,[t.connectors]:2,[t.quickSettings]:3,[t.extensions]:4,[t.sessions]:5,[t.files]:6,[t.commands]:7,[t.skills]:8,[t.actions]:9}}function kK(e){let t=DK(e);return{[t.navigate]:12,[t.projects]:8,[t.connectors]:6,[t.quickSettings]:12,[t.actions]:8,[t.extensions]:8,[t.sessions]:8,[t.files]:10,[t.commands]:6,[t.skills]:6}}function AK(e,t){return OK(e)[t]??10}var jK=null;function MK(){jK=null}function NK(){return jK||(jK=Promise.allSettled([hl(),pl()]).then(([e,t])=>{if(e.status===`rejected`&&t.status===`rejected`)throw e.reason;let n={catalog:e.status===`fulfilled`?e.value:[],instances:t.status===`fulfilled`?t.value:[]};return(e.status===`rejected`||t.status===`rejected`)&&(jK=null),n}).catch(e=>{throw jK=null,e}),jK)}function PK(e,t){return!e.enabled||e.status===`disabled`?t.disabled:e.status===`failed`||e.status===`degraded`||e.status===`not_configured`||e.status===`unauthorized`||e.connectionStatus===`error`||e.connectionStatus===`unauthorized`?t.needsSetup:e.status===`connected`||e.connectionStatus===`connected`?t.connected:t.installed}function FK(e){return e?[e.id,e.description,e.category,e.kind,...e.tags??[],...e.capabilities,...e.benefits??[]]:[]}function IK(e,t){return t?`${e} · ${t}`:e}function LK(e){if(!e.query.trim())return[];let t=new Map(e.catalog.map(e=>[e.id,e])),n=new Set(e.instances.map(e=>e.connectorId)),r=e.instances.map(n=>{let r=t.get(n.connectorId);return{kind:`connector`,id:`connector-instance:${n.instanceId}`,title:n.displayName,subtitle:IK(PK(n,e.labels),r?.description),groupLabel:e.labels.group,keywords:[n.connectorId,n.instanceId,n.materialized.type,...FK(r)],run:()=>{e.close(),e.navigate(`/capabilities/connectors?instance=${encodeURIComponent(n.instanceId)}&tab=connected`)}}}),i=e.catalog.flatMap(t=>t.source!==`builtin`||t.integrationStrategy?.preferred===!1||!wr(t)||n.has(t.id)?[]:[{kind:`connector`,id:`connector:${t.id}`,title:t.displayName,subtitle:IK(e.labels.builtin,t.description),groupLabel:e.labels.group,keywords:FK(t),run:()=>{e.close(),e.navigate(`/capabilities/connectors?connector=${encodeURIComponent(t.id)}&tab=discover`)}}]);return[...r,...i]}function RK(e){return e.trim().toLowerCase()}function zK(e,t){let n=RK(e),r=RK(t);if(!r)return 0;if(!n)return null;if(n===r)return 0;if(n.startsWith(r))return 1;let i=n.indexOf(r);return i>=0?2+Math.min(i,50)/100:null}function BK(e,t){let n=t.trim();if(!n)return 0;let r=[{text:e.title,weight:1},{text:e.subtitle??``,weight:1.75}];for(let t of e.keywords??[])r.push({text:t,weight:1.25});let i=null;for(let e of r){let t=zK(e.text,n);if(t===null)continue;let r=t*e.weight;i=i===null?r:Math.min(i,r)}if(i===null)return null;let a=e.kind===`route`?-.15:e.kind===`project`?-.12:e.kind===`connector`||e.kind===`file`?-.1:e.kind===`session`?-.05:e.kind===`setting`||e.kind===`action`?-.02:0;return Math.max(0,i+a)}function VK(e){return e.toSorted((e,t)=>e.rank===t.rank?e.groupLabel===t.groupLabel?e.title.localeCompare(t.title):e.groupLabel.localeCompare(t.groupLabel):e.rank-t.rank)}var HK=new Set([`logs`,`tracing`,`settingsRuntimes`]),UK=[`/settings/logs`,`/settings/tracing`,`/settings/runtimes`,`/settings/extensions/debug`,`/settings/ext/`];function WK(e,t){return t===`advanced`||!HK.has(e)}function GK(e,t){return t===`advanced`||!UK.some(t=>e===t||e.startsWith(t.endsWith(`/`)?t:`${t}/`))}var KK=[`settingsAgentBrowser`,`settingsComputerUse`,`settingsPhoneUse`],qK={settingsAgentBrowser:[`browser`,`playwright`,`automation`],settingsPhoneUse:[`phone use`,`Android`,`ADB`,`AutoGLM`,`手机控制`,`模拟器`],settingsComputerUse:[`computer use`,`compute use`,`desktop`,`电脑控制`,`电脑操作`,`桌面控制`,`GUI`,`BYOK`]};function JK(e,t){let n=P(e).commandPalette.routes.agentsSubtitle;return KK.filter(e=>WK(e,t)&&(e!==`settingsComputerUse`||Hl())).map(t=>({id:`route:settings:agent:${t}`,title:N(e,t),subtitle:n,path:Fl(t),keywords:[`agent`,`manifest`,`preset`,`config`,...qK[t]??[]]}))}function YK(e,t){return e.filter(e=>GK(e.path.split(`?`)[0]??e.path,t))}function XK(e){let t=P(e),n=t.commandPalette.routes,r=t.channelsSettings,i=sd.getState().mode;return YK([{id:`route:chat`,title:t.nav.chat,subtitle:n.chatSubtitle,path:`/chat`,keywords:[`chat`,`new`,`compose`,`assistant`]},{id:`route:agents`,title:t.nav.agents,subtitle:n.agentsSubtitle,path:od,keywords:[`agent`,`persona`,`switch`]},{id:`route:extensions`,title:t.nav.extensions,subtitle:n.extensionsSubtitle,path:Bc(`extensions`),keywords:[`extension`,`plugin`,`addon`]},{id:`route:local-apps`,title:t.nav.localApps,subtitle:n.localAppsSubtitle,path:`/local-apps`,keywords:[`app`,`apps`,`local app`,`tool`,`workshop`,`coder`,`应用`,`本地应用`,`工具`,`工坊`]},{id:`route:sessions`,title:t.nav.sessions,subtitle:n.sessionsSubtitle,path:`/settings/sessions`,keywords:[`history`,`archive`,`pin`]},{id:`route:usage`,title:t.nav.usage,subtitle:n.usageSubtitle,path:`/settings/usage`,keywords:[`usage`,`cost`,`tokens`,`model`,`用量`,`费用`]},{id:`route:logs`,title:t.nav.logs,subtitle:n.logsSubtitle,path:`/settings/logs`,keywords:[`debug`,`errors`]},{id:`route:skills`,title:t.nav.skills,subtitle:n.skillsSubtitle,path:Bc(`skills`),keywords:[`tools`,`catalog`]},{id:`route:connectors`,title:t.nav.connectors,subtitle:n.connectorsSubtitle,path:Bc(`connectors`),keywords:[`connector`,`mcp`,`registry`,`integration`,`tools`]},{id:`route:channels`,title:t.nav.channels,subtitle:n.channelsSubtitle,path:_o,keywords:[`telegram`,`weixin`,`feishu`,`channel`]},{id:`route:channels:telegram`,title:`Telegram`,subtitle:n.channelsSubtitle,path:go(`telegram`),keywords:[`telegram`,`bot`,`channel`,`pairing`]},{id:`route:channels:weixin`,title:`Weixin`,subtitle:n.channelsSubtitle,path:go(`weixin`),keywords:[`weixin`,`wechat`,`channel`,`qr`]},{id:`route:channels:feishu`,title:`Feishu/Lark`,subtitle:n.channelsSubtitle,path:go(`feishu`),keywords:[`feishu`,`lark`,`channel`]},{id:`route:channels:telegram:pairing`,title:`Telegram — ${r.hubPairingButton}`,subtitle:n.channelsSubtitle,path:go(`telegram`),keywords:[`telegram`,`pairing`,`approve`,`dm`]},{id:`route:automations`,title:`Automations`,subtitle:`Triggers, actions, and run history`,path:`/automations`,keywords:[`automation`,`automations`,`schedule`,`tasks`,`history`,`scheduler`]},{id:`route:settings`,title:t.nav.settings,subtitle:n.settingsSubtitle,path:`/settings/overview`,keywords:[`config`,`status`,`providers`,`models`,`agents`,`search`,`preferences`]},{id:`route:settings:capabilities:models`,title:t.nav.settingsModels,subtitle:n.modelsSubtitle,path:Pl(`models`),keywords:[`api`,`key`,`provider`,`openai`,`anthropic`,`google`,`gpt`,`claude`,`gemini`,`llm`,`模型`,`模型服务`,`语音`,`音色`,`听写`,`voice`,`stt`,`tts`,`image`,`服务商`,`密钥`]},{id:`route:settings:capabilities:search`,title:t.nav.settingsSearch,subtitle:n.searchSubtitle,path:Pl(`search`),keywords:[`search`,`web`,`tavily`,`serper`,`brave`,`搜索`,`网络搜索`,`联网搜索`]},{id:`route:settings:gateway`,title:t.nav.settingsGateway,subtitle:n.gatewaySubtitle,path:`/settings/gateway`,keywords:[`server`,`port`,`auth`,`token`]},...JK(e,i)],i)}async function ZK(e,t={}){let n=new URLSearchParams;return n.set(`q`,e.trim()),t.types?.length&&n.set(`types`,t.types.join(`,`)),t.limit&&n.set(`limit`,String(t.limit)),(await D(w(`/api/search?${n.toString()}`))).hits}function QK(e){kl.getState().setPreference(e)}function $K(e){E.getState().setLanguage(e)}function eq(e,t){let n=P(e),r=n.commandPalette.quickSettings,i=n.commandPalette.groups.quickSettings;return[{kind:`setting`,id:`setting:model`,title:r.switchModel,subtitle:r.switchModelSubtitle,groupLabel:i,keywords:[`model`,`default model`,`默认模型`,`gpt`,`claude`,`gemini`,`llm`,`模型`],run:()=>t.openModelPalette()},{kind:`setting`,id:`setting:agent`,title:r.switchAgent,subtitle:r.switchAgentSubtitle,groupLabel:i,keywords:[`agent`,`persona`,`bot`],run:()=>t.openAgentPalette()},{kind:`setting`,id:`setting:theme:light`,title:r.themeLight,subtitle:r.appearanceSubtitle,groupLabel:i,keywords:[`theme`,`light`,`appearance`],run:()=>{QK(`light`),t.closePalette()}},{kind:`setting`,id:`setting:theme:dark`,title:r.themeDark,subtitle:r.appearanceSubtitle,groupLabel:i,keywords:[`theme`,`dark`,`night`],run:()=>{QK(`dark`),t.closePalette()}},{kind:`setting`,id:`setting:theme:system`,title:r.themeSystem,subtitle:r.appearanceSubtitle,groupLabel:i,keywords:[`theme`,`system`,`auto`],run:()=>{QK(`system`),t.closePalette()}},{kind:`setting`,id:`setting:lang:en`,title:r.languageEn,subtitle:r.languageSubtitle,groupLabel:i,keywords:[`english`,`language`,`locale`],run:()=>{$K(`en`),t.closePalette()}},{kind:`setting`,id:`setting:lang:zh`,title:r.languageZh,subtitle:r.languageSubtitle,groupLabel:i,keywords:[`chinese`,`中文`,`language`],run:()=>{$K(`zh`),t.closePalette()}}]}function tq(e){let t=e===`zh`;return[{advanced:!0,id:`field:gateway:port`,title:t?`网关端口`:`Gateway Port`,subtitle:t?`设置 HTTP 网关监听端口`:`HTTP gateway listen port`,path:`/settings/gateway?tab=network`,keywords:[`port`,`listen`,`http`,`server`,`端口`]},{advanced:!0,id:`field:gateway:host`,title:t?`网关绑定地址`:`Gateway Host`,subtitle:t?`设置绑定的网络接口`:`Network interface to bind`,path:`/settings/gateway?tab=network`,keywords:[`host`,`bind`,`interface`,`localhost`,`地址`]},{id:`field:gateway:auth`,title:t?`网关认证令牌`:`Gateway Auth Token`,subtitle:t?`访问网关所需的 Bearer token`:`Bearer token for gateway access`,path:`/settings/gateway?tab=access`,keywords:[`auth`,`token`,`bearer`,`password`,`security`,`认证`,`令牌`]},{id:`field:agent-defaults:models`,title:t?`Agent 全局模型`:`Global agent models`,subtitle:t?`设置所有 Agent 继承的模型与回退`:`Set inherited models and fallbacks`,path:`/settings/capabilities/models`,keywords:[`agent defaults`,`model intents`,`fallbacks`,`llm`,`全局默认`,`模型意图`]},{id:`field:agent-defaults:skills`,title:t?`Agent 全局技能`:`Global agent skills`,subtitle:t?`设置所有 Agent 默认可用或排除的技能`:`Set skills enabled or excluded for every agent`,path:`/settings/agent-defaults?panel=skills`,keywords:[`agent defaults`,`skills`,`inherit`,`全局默认`,`技能`,`继承`]},{id:`field:agent-defaults:tools`,title:t?`Agent 全局工具权限`:`Global agent tool permissions`,subtitle:t?`设置所有 Agent 继承的 allow、ask 或 deny 策略`:`Set inherited allow, ask, or deny policies`,path:`/settings/agent-defaults?panel=tools`,keywords:[`agent defaults`,`tools`,`permissions`,`allow`,`ask`,`deny`,`工具权限`]},{advanced:!0,id:`field:agent-defaults:runtime`,title:t?`Agent 全局运行限制`:`Global agent runtime limits`,subtitle:t?`设置继承的轮次和超时`:`Set inherited turn and timeout limits`,path:`/settings/agent-defaults?panel=runtime`,keywords:[`agent defaults`,`runtime`,`turns`,`timeout`,`运行限制`]},{id:`field:agent:profile`,title:t?`Agent 个性`:`Agent personality`,subtitle:t?`设置名称、个性指令和可选覆盖`:`Set the name, personality, and optional overrides`,path:od,keywords:[`agent`,`profile`,`personality`,`instructions`,`agent 个性`,`指令`]},{id:`field:agent:workspace`,title:t?`Agent 工作目录`:`Agent workspace`,subtitle:t?`按需覆盖该 Agent 的自动工作目录`:`Optionally override the automatic workspace`,path:od,keywords:[`workspace`,`directory`,`folder`,`path`,`cwd`,`工作目录`]},{id:`field:agent:browser`,title:t?`浏览器自动化`:`Browser automation`,subtitle:t?`启用 browser_use 工具`:`Enable browser_use tools`,path:`/settings/agent-browser`,keywords:[`browser`,`browser_use`,`automation`,`浏览器`]},{id:`field:agent:browser-extension`,title:t?`Chrome 扩展连接`:`Chrome extension bridge`,subtitle:t?`安装扩展并启动 WebSocket 桥接`:`Install extension and start the bridge`,path:`/settings/agent-browser`,keywords:[`extension`,`chrome`,`bridge`,`websocket`,`扩展`,`桥接`]},{id:`field:agent:browser-playwright`,title:t?`安装 Playwright Chromium`:`Install Playwright Chromium`,subtitle:t?`本地 Playwright 后端就绪检查`:`Local Playwright backend setup`,path:`/settings/agent-browser`,keywords:[`playwright`,`chromium`,`install`,`local`,`安装`]},{id:`field:agent:browser-headless`,title:t?`浏览器无头模式`:`Browser headless mode`,subtitle:t?`隐藏浏览器窗口`:`Run without a visible window`,path:`/settings/agent-browser`,keywords:[`headless`,`window`,`visible`,`无头`]},{advanced:!0,id:`field:agent:browser-private-urls`,title:t?`允许内网 URL`:`Allow private URLs`,subtitle:t?`浏览器导航安全限制`:`Browser navigation security policy`,path:`/settings/agent-browser`,keywords:[`private`,`internal`,`localhost`,`security`,`内网`,`安全`]},{id:`field:voice:sttProvider`,title:t?`STT 语音识别提供商`:`STT Provider`,subtitle:t?`语音转文字服务商`:`Speech-to-text service provider`,path:`/settings/capabilities/models?configure=transcription`,keywords:[`stt`,`speech`,`recognition`,`whisper`,`deepgram`,`语音识别`]},{id:`field:voice:ttsProvider`,title:t?`TTS 语音合成提供商`:`TTS Provider`,subtitle:t?`文字转语音服务商`:`Text-to-speech service provider`,path:`/settings/capabilities/models?configure=speech`,keywords:[`tts`,`speech`,`synthesis`,`voice`,`elevenlabs`,`语音合成`]},{id:`field:search:engine`,title:t?`搜索引擎`:`Web Search Engine`,subtitle:t?`联网搜索使用的引擎`:`Engine for web search tool`,path:`/settings/capabilities/search`,keywords:[`search`,`engine`,`tavily`,`serper`,`brave`,`bing`,`搜索引擎`]},{id:`field:automations:enabled`,title:t?`自动化`:`Automations`,subtitle:t?`创建和管理自动化`:`Create and manage automations`,path:`/automations`,keywords:[`automation`,`automations`,`scheduler`,`timer`,`自动化`,`调度`]},{id:`field:automations:runs`,title:t?`自动化运行记录`:`Automation Runs`,subtitle:t?`查看自动化执行历史`:`Review automation run history`,path:`/automations`,keywords:[`automation`,`runs`,`history`,`自动化`,`历史`]},{id:`field:channels:telegram`,title:`Telegram Bot Token`,subtitle:t?`配置 Telegram 频道连接`:`Configure Telegram channel connection`,path:_o,keywords:[`telegram`,`bot`,`token`,`channel`,`频道`]},{id:`field:channels:dmPolicy`,title:t?`私聊接入策略`:`DM Access Policy`,subtitle:t?`Telegram 私聊白名单/配对策略`:`Telegram DM allowlist/pairing policy`,path:_o,keywords:[`dm`,`policy`,`pairing`,`allowlist`,`access`,`私聊`,`策略`]},{id:`field:mcp:servers`,title:t?`MCP 服务器配置`:`MCP Servers`,subtitle:t?`外部 MCP 工具服务器列表`:`External MCP tool server registry`,path:`/capabilities/connectors`,keywords:[`mcp`,`server`,`tools`,`external`,`stdio`,`服务器`,`connector`]},{id:`field:tunnel:enabled`,title:t?`公网隧道`:`Public Tunnel`,subtitle:t?`FRP 远程访问隧道开关`:`FRP remote access tunnel toggle`,path:`/settings/remote-access`,keywords:[`tunnel`,`frp`,`remote`,`public`,`ngrok`,`隧道`,`远程`]}]}function nq(e,t,n,r){return tq(e).map(i=>({kind:`setting`,id:i.id,title:i.title,subtitle:i.advanced?`${e===`zh`?`高级设置`:`Advanced settings`} · ${i.subtitle}`:i.subtitle,groupLabel:r,keywords:i.keywords,run:()=>{i.advanced&&sd.getState().setMode(`advanced`),n(),t(i.path)}}))}function rq(){let{pathname:e}=p(),{conversationId:t}=d();if(!e.startsWith(`/chat`)||!t)return;let n=decodeURIComponent(t);return n&&n!==`new`?n:void 0}async function iq(e){let{defaults:t}=await ud();await ld({...t,models:{...t.models,chat:{primary:e,fallbacks:[]}}})}function aq(e,t,n,r){let i=e.trim().toLowerCase();i&&(Qs(i),t.startsWith(`/chat`)?window.dispatchEvent(new CustomEvent(`xopc-set-chat-agent`,{detail:{agentId:i}})):n(`/chat/new?projectScope=none`,{state:{agentId:i}}),r())}function oq(e){switch(e.kind){case`connector`:return(0,$.jsx)(Rn,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`extension`:return(0,$.jsx)(mo,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`route`:return(0,$.jsx)(vi,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`project`:return(0,$.jsx)(_i,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`session`:return(0,$.jsx)(vi,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`file`:return(0,$.jsx)(li,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`command`:return(0,$.jsx)(Bo,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`skill`:return(0,$.jsx)(Mo,{className:`size-3.5 shrink-0 text-accent-fg`,"aria-hidden":!0});case`setting`:return(0,$.jsx)(Do,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0});case`action`:return(0,$.jsx)(Qo,{className:`size-3.5 shrink-0 text-accent-fg`,"aria-hidden":!0});default:return null}}function sq(e,t,n,r){if(r(),t.startsWith(`/chat`)){He(e);return}let i=e.match(/^\/skill:(\S+)\s*$/),a=e.match(/^\/(\S+)\s*$/);i?n(`/chat/new?skill=${encodeURIComponent(i[1])}`):a?n(`/chat/new?slash=${encodeURIComponent(a[1])}`):(n(`/chat/new`),requestAnimationFrame(()=>{requestAnimationFrame(()=>{He(e)})}))}function cq(e){let t=[];for(let n of e.uiExtensions){let r=n.ui?.contributions?.commands;if(Array.isArray(r))for(let i of r)!i||typeof i.id!=`string`||typeof i.title!=`string`||t.push({kind:`extension`,id:`ext:${n.id}:${i.id}`,title:i.title,subtitle:n.name,groupLabel:e.extensionsGroupLabel,keywords:[n.id,n.name,i.id],run:()=>{e.close(),i.opensPanel!==void 0&&i.opensPanel!==``?e.navigate(`/extensions/${encodeURIComponent(n.id)}`):window.dispatchEvent(new CustomEvent(`extension-command`,{detail:{extensionId:n.id,commandId:i.id}}))}})}return t}function lq(e,t){switch(t.type){case`setQuery`:return{...e,query:t.value};case`setSelectedIndex`:{let n=typeof t.value==`function`?t.value(e.selectedIndex):t.value;return{...e,selectedIndex:n}}case`setLayer`:return{...e,paletteLayer:t.layer,query:``,selectedIndex:0};case`resetMain`:return{query:``,selectedIndex:0,paletteLayer:`main`}}}var uq={query:``,selectedIndex:0,paletteLayer:`main`};async function dq(){let e=await D(w(`/api/registry`)),t=[];for(let n of e.payload?.providers??[])for(let e of n.models??[])e.available!==!1&&t.push({id:e.ref,title:e.name||e.ref,subtitle:e.ref});return t.sort((e,t)=>e.title.localeCompare(t.title)),t}async function fq(e){let t=await Fc(),n=P(e).agentsSettings;return t.agents.map(e=>({id:e.id,title:cd(e,n),subtitle:e.id}))}function pq({onClose:e}){let t=(0,Z.useRef)(null),n=(0,Z.useRef)(null),r=b(),{pathname:i}=p(),a=E(e=>e.language),o=$s(),s=rq(),c=Ru(e=>e.agentId),l=ll(e=>e.setPath),[u,d]=(0,Z.useReducer)(lq,uq),[f,m]=(0,Z.useState)(0),[h,g]=(0,Z.useState)(0),{query:_,selectedIndex:v,paletteLayer:y}=u,x=(0,Z.useMemo)(()=>XK(a),[a]),[S]=xu(_,120);(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail;t&&typeof t==`object`&&`section`in t&&t.section===`skills`&&m(e=>e+1),g(e=>e+1)};return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[]);let C=_u(NK,[h],{enabled:y===`main`&&!!S.trim(),initial:{catalog:[],instances:[]},errorData:{catalog:[],instances:[]}}),w=(0,Z.useCallback)(()=>{d({type:`setLayer`,layer:`models`})},[]),T=(0,Z.useCallback)(()=>{d({type:`setLayer`,layer:`agents`})},[]),D=_u(async()=>y===`models`?dq():y===`agents`?fq(a):[],[y,a],{enabled:y===`models`||y===`agents`,initial:[],errorData:[]}),O=_u(async()=>{let t=S.trim(),n=e,u=P(a).commandPalette.groups,d=x.map(e=>({kind:`route`,id:e.id,title:e.title,subtitle:e.subtitle,groupLabel:u.navigate,keywords:[...e.keywords??[],e.path],run:()=>{n(),r(e.path)}})),f=eq(a,{closePalette:n,openModelPalette:w,openAgentPalette:T}),p=wK(a,r,n),m=LK({query:t,...C.data,labels:{group:u.connectors,...P(a).commandPalette.connectors},navigate:r,close:n}),h=cq({query:t,close:n,navigate:r,uiExtensions:o,extensionsGroupLabel:u.extensions}),[g,_,v,y,b,E]=await Promise.all([Gu(),qu(),t?ZK(t,{types:[`project`],limit:8}).catch(()=>[]):[],As({search:t||void 0,limit:8,offset:0}).catch(()=>({items:[]})),(async()=>{let e=s?.trim(),n=c.trim();return!e&&!n?[]:await Qe(t,{conversationId:e||void 0,agentId:e?void 0:n||void 0,limit:10}).catch(()=>[])})(),EK(a,n)]),D=v.map(e=>({kind:`project`,id:e.id,title:e.title,subtitle:e.subtitle,groupLabel:u.projects,keywords:[e.payload.project.slug,e.payload.project.workspaceRoot??``,e.payload.project.defaultAgentId??``,e.payload.project.brief??``],run:()=>{n(),r(e.href)}})),O=g.map(e=>({kind:`command`,id:`cmd:${e.id}`,title:`/${e.name}`,subtitle:e.description,groupLabel:u.commands,keywords:[e.id,...e.aliases??[],e.category??``],run:()=>{sq(xt(e),i,r,n)}})),k=_.catalog.flatMap(e=>!e.enabled||e.disableModelInvocation?[]:[{kind:`skill`,id:`skill:${e.name}`,title:`/skill:${e.name}`,subtitle:e.description,groupLabel:u.skills,keywords:[e.source??``,`skill`],run:()=>{sq(`/skill:${e.name} `,i,r,n)}}]),A=(y.items??[]).map(e=>({kind:`session`,id:`session:${e.key}`,title:e.name?.trim()||e.key,subtitle:e.key,groupLabel:u.sessions,keywords:[e.key,...e.tags??[],e.sourceChannel??``],run:()=>{n(),r(`/chat/${encodeURIComponent(e.key)}`)}})),j=b.flatMap(e=>e.isDirectory?[]:[{kind:`file`,id:`file:${e.relativePath}`,title:e.name,subtitle:e.relativePath,groupLabel:u.files,keywords:[e.relativePath],run:()=>{n();let t=e.relativePath.replace(/\\/g,`/`).replace(/^\/+/,``),a=()=>l(t);if(i.startsWith(`/chat`)){a();return}r(`/chat`),window.setTimeout(()=>a(),0)}}]),M=nq(a,r,n,u.navigate),N=[...d,...f,...p,...E,...h,...M,...D,...m,...A,...j,...O,...k],F=[];for(let e of N){let n=BK(e,t);n!==null&&F.push({...e,rank:n})}let I=kK(a),L=VK(F),R=[],z={};for(let e of L){let t=(z[e.groupLabel]??0)+1;if(!(t>(I[e.groupLabel]??6))&&(z[e.groupLabel]=t,R.push(e),R.length>=36))break}return R.sort((e,t)=>AK(a,e.groupLabel)-AK(a,t.groupLabel)||e.rank-t.rank||e.title.localeCompare(t.title)),R},[S,x,o,r,s,c,i,l,a,w,T,e,f,C.data],{enabled:y===`main`,initial:[],errorData:[]}),k=O.data,A=O.loading,j=O.error,M=(0,Z.useMemo)(()=>{let e=_.trim().toLowerCase(),t=D.data;return e?t.filter(t=>t.title.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||(t.subtitle?.toLowerCase().includes(e)??!1)):t},[D.data,_]),N=`${y}|${_}|${String(M.length)}|${String(k.length)}`,F=(0,Z.useRef)(N);if(F.current!==N){F.current=N;let e=y===`main`?Math.max(0,k.length-1):Math.max(0,M.length);v>e&&d({type:`setSelectedIndex`,value:e})}(0,Z.useEffect)(()=>{let e=window.setTimeout(()=>t.current?.focus(),50);return()=>window.clearTimeout(e)},[]);let I=(0,Z.useEffectEvent)(t=>{if(t.key===`Escape`){if(t.preventDefault(),y!==`main`){d({type:`resetMain`});return}e();return}let n=y===`main`?Math.max(0,k.length-1):Math.max(0,M.length);if(t.key===`ArrowDown`){t.preventDefault(),d({type:`setSelectedIndex`,value:e=>Math.min(e+1,n)});return}if(t.key===`ArrowUp`){t.preventDefault(),d({type:`setSelectedIndex`,value:e=>Math.max(0,e-1)});return}if(t.key===`Enter`){if(t.preventDefault(),y===`models`){if(v===0){d({type:`resetMain`});return}let t=M[v-1];if(!t)return;(async()=>{await iq(t.id),mc(),Dc(),e(),d({type:`resetMain`})})();return}if(y===`agents`){if(v===0){d({type:`resetMain`});return}let t=M[v-1];if(!t)return;aq(t.id,i,r,e),d({type:`resetMain`});return}let n=k[v];n&&n.run()}});(0,Z.useEffect)(()=>{let e=e=>{I(e)};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[]),(0,Z.useLayoutEffect)(()=>{let e=n.current;e&&e.querySelector(`[data-global-palette-index="${String(v)}"]`)?.scrollIntoView({block:`nearest`,inline:`nearest`})},[v,k,y,M.length]);let L=a===`zh`?`返回`:`Back`;if(y===`models`||y===`agents`){let o=M,s=D.loading;return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[120] flex items-start justify-center bg-black/40 p-4 pt-[min(18vh,7rem)]`,role:`dialog`,"aria-modal":`true`,"aria-label":a===`zh`?`选择模型或智能体`:`Model or agent picker`,onMouseDown:t=>{t.target===t.currentTarget&&e()},children:(0,$.jsxs)(`div`,{className:`flex w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,children:[(0,$.jsx)(`input`,{ref:t,type:`search`,value:_,onChange:e=>d({type:`setQuery`,value:e.target.value}),placeholder:y===`models`?a===`zh`?`搜索模型…`:`Search models…`:a===`zh`?`搜索智能体…`:`Search agents…`,className:`border-b border-edge bg-transparent px-4 py-3 text-sm text-fg outline-none placeholder:text-fg-muted`,autoComplete:`off`,autoCorrect:`off`}),(0,$.jsxs)(`ul`,{ref:n,className:`max-h-[min(60vh,26rem)] overflow-y-auto p-2 text-sm [scrollbar-gutter:stable]`,role:`listbox`,children:[(0,$.jsx)(`li`,{children:(0,$.jsxs)(`button`,{type:`button`,"data-global-palette-index":0,className:[`flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left text-fg-muted`,v===0?`bg-surface-hover`:`hover:bg-surface-inset`].join(` `),onMouseEnter:()=>d({type:`setSelectedIndex`,value:0}),onClick:()=>d({type:`resetMain`}),children:[`← `,L]})}),s?(0,$.jsx)(`li`,{className:`rounded-lg px-3 py-6 text-center text-fg-muted`,children:a===`zh`?`加载中…`:`Loading…`}):o.length===0?(0,$.jsx)(`li`,{className:`rounded-lg px-3 py-6 text-center text-fg-muted`,children:a===`zh`?`无结果`:`No results`}):o.map((t,n)=>{let a=n+1;return(0,$.jsx)(`li`,{children:(0,$.jsx)(`button`,{type:`button`,"data-global-palette-index":a,className:[`flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left`,v===a?`bg-surface-hover text-fg`:`text-fg hover:bg-surface-inset`].join(` `),onMouseEnter:()=>d({type:`setSelectedIndex`,value:a}),onClick:()=>{y===`models`?(async()=>{await iq(t.id),mc(),Dc(),e(),d({type:`resetMain`})})():(aq(t.id,i,r,e),d({type:`resetMain`}))},children:(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`min-w-0 truncate font-medium`,children:t.title}),t.subtitle?(0,$.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs text-fg-muted`,children:t.subtitle}):null]})})},t.id)})]})]})})}let R=``;return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[120] flex items-start justify-center bg-black/40 p-4 pt-[min(18vh,7rem)]`,role:`dialog`,"aria-modal":`true`,"aria-label":`Global search`,onMouseDown:t=>{t.target===t.currentTarget&&e()},children:(0,$.jsxs)(`div`,{className:`flex w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,children:[(0,$.jsx)(`input`,{ref:t,type:`search`,value:_,onChange:e=>d({type:`setQuery`,value:e.target.value}),placeholder:a===`zh`?`搜索…(会话 / 文件 / 连接 / 设置 / 命令)`:`Search… (sessions, files, connectors, settings, commands)`,className:`border-b border-edge bg-transparent px-4 py-3 text-sm text-fg outline-none placeholder:text-fg-muted`,autoComplete:`off`,autoCorrect:`off`}),(0,$.jsx)(`ul`,{ref:n,className:`max-h-[min(60vh,26rem)] overflow-y-auto p-2 text-sm [scrollbar-gutter:stable]`,role:`listbox`,"aria-activedescendant":k[v]?`global-hit-${k[v].id}`:void 0,children:k.length===0?(0,$.jsx)(`li`,{className:`rounded-lg px-3 py-6 text-center text-fg-muted`,children:A?a===`zh`?`搜索中…`:`Searching…`:j?j instanceof Error?j.message:String(j):a===`zh`?`无结果`:`No results`}):k.map((e,t)=>{let n=e.groupLabel===R?``:e.groupLabel;return R=e.groupLabel,(0,$.jsxs)(`li`,{children:[n?(0,$.jsx)(`div`,{className:`px-3 pb-1 pt-2 text-[10px] font-semibold uppercase tracking-wide text-fg-muted`,children:n}):null,(0,$.jsxs)(`button`,{id:`global-hit-${e.id}`,"data-global-palette-index":t,type:`button`,className:[`flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left`,t===v?`bg-surface-hover text-fg`:`text-fg hover:bg-surface-inset`].join(` `),onMouseEnter:()=>d({type:`setSelectedIndex`,value:t}),onClick:()=>e.run(),children:[(0,$.jsx)(`span`,{className:`mt-0.5`,children:oq(e)}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`min-w-0 truncate font-medium`,children:e.title}),e.subtitle?(0,$.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs text-fg-muted`,children:e.subtitle}):null]})]})]},e.id)})})]})})}function mq(){let e=(0,Q.c)(7),[t,n]=(0,Z.useState)(!1),r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`k`&&(e.preventDefault(),n(gq))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,Z.useEffect)(r,i);let a,o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{let e=()=>n(!0);return window.addEventListener(`open-command-palette`,e),()=>window.removeEventListener(`open-command-palette`,e)},o=[],e[2]=a,e[3]=o):(a=e[2],o=e[3]),(0,Z.useEffect)(a,o);let s,c;if(e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>{let e=()=>n(hq);return window.addEventListener(`toggle-command-palette`,e),()=>window.removeEventListener(`toggle-command-palette`,e)},c=[],e[4]=s,e[5]=c):(s=e[4],c=e[5]),(0,Z.useEffect)(s,c),!t)return null;let l;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(pq,{onClose:()=>n(!1)}),e[6]=l):l=e[6],l}function hq(e){return!e}function gq(e){return!e}function _q(e){let t=(0,Q.c)(47),{noteId:n,backgroundPath:r,onClose:i}=e,a=E(yq),o=T(vq),s;t[0]!==n||t[1]!==o?(s=[`note-preview`,n,o],t[0]=n,t[1]=o,t[2]=s):s=t[2];let c;t[3]===n?c=t[4]:(c=()=>Ri(n),t[3]=n,t[4]=c);let{data:l,error:u,isLoading:d}=oc(s,c),f=a===`zh`,p;t[5]!==l?.title||t[6]!==f?(p=l?.title?.trim()||(f?`笔记预览`:`Note preview`),t[5]=l?.title,t[6]=f,t[7]=p):p=t[7];let m=p,h=f?`关闭笔记预览`:`Close note preview`,g;t[8]===i?g=t[9]:(g=e=>{e||i()},t[8]=i,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(I,{className:`fixed inset-0 z-[80] bg-black/45 backdrop-blur-[1px]`}),t[10]=_):_=t[10];let v;t[11]===m?v=t[12]:(v=(0,$.jsx)(H,{className:`min-w-0 flex-1 truncate font-medium text-fg`,title:m,children:m}),t[11]=m,t[12]=v);let b=f?`预览笔记内容,或打开独立页面。`:`Preview the note or open its full page.`,x;t[13]===b?x=t[14]:(x=(0,$.jsx)(R,{className:`sr-only`,children:b}),t[13]=b,t[14]=x);let S=`/notes/${encodeURIComponent(n)}`,C;t[15]!==r||t[16]!==S?(C=va(S,r),t[15]=r,t[16]=S,t[17]=C):C=t[17];let w;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(Kr,{className:`size-4`,"aria-hidden":!0}),t[18]=w):w=t[18];let D=f?`打开独立页面`:`Open full page`,O;t[19]===D?O=t[20]:(O=(0,$.jsx)(`span`,{children:D}),t[19]=D,t[20]=O);let k;t[21]!==C||t[22]!==O?(k=(0,$.jsxs)(y,{to:C,className:`flex shrink-0 items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm text-accent hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:[w,O]}),t[21]=C,t[22]=O,t[23]=k):k=t[23];let A;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0}),t[24]=A):A=t[24];let j;t[25]===h?j=t[26]:(j=(0,$.jsx)(z,{title:h,"aria-label":h,className:`flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:ring-2 focus-visible:ring-accent`,children:A}),t[25]=h,t[26]=j);let M;t[27]!==k||t[28]!==j||t[29]!==v||t[30]!==x?(M=(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 border-b border-edge bg-surface-panel px-5 py-3.5`,children:[v,x,k,j]}),t[27]=k,t[28]=j,t[29]=v,t[30]=x,t[31]=M):M=t[31];let N;t[32]!==u||t[33]!==d||t[34]!==l||t[35]!==n||t[36]!==f?(N=d?(0,$.jsxs)(`div`,{className:`space-y-4`,role:`status`,"aria-label":f?`正在加载笔记`:`Loading note`,children:[(0,$.jsx)($o,{className:`h-7 w-2/3`}),(0,$.jsx)($o,{className:`h-4 w-full`}),(0,$.jsx)($o,{className:`h-4 w-full`}),(0,$.jsx)($o,{className:`h-4 w-4/5`}),(0,$.jsx)($o,{className:`mt-8 h-32 w-full`})]}):u?(0,$.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:f?`笔记加载失败,请重新打开预览。`:`Unable to load the note. Please reopen the preview.`}):l?l.markdown.trim()?(0,$.jsx)(Li,{noteId:n,content:l.markdown,mermaidActions:!1},n):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f?`暂无笔记内容。`:`This note has no content yet.`}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f?`笔记不存在或已删除。`:`This note is unavailable or has been deleted.`}),t[32]=u,t[33]=d,t[34]=l,t[35]=n,t[36]=f,t[37]=N):N=t[37];let P;t[38]!==d||t[39]!==N?(P=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-5 sm:p-8`,"aria-busy":d,children:N}),t[38]=d,t[39]=N,t[40]=P):P=t[40];let F;t[41]!==M||t[42]!==P?(F=(0,$.jsxs)(B,{children:[_,(0,$.jsxs)(V,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(48rem,calc(100dvh-2rem))] w-[min(48rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay focus:outline-none`,children:[M,P]})]}),t[41]=M,t[42]=P,t[43]=F):F=t[43];let L;return t[44]!==F||t[45]!==g?(L=(0,$.jsx)(ee,{open:!0,onOpenChange:g,children:F}),t[44]=F,t[45]=g,t[46]=L):L=t[46],L}function vq(e){return e.conversationId}function yq(e){return e.language}function bq(e){let t=(0,Q.c)(100),{onClose:n}=e,r=b(),i=E(Sq),a;t[0]===i?a=t[1]:(a=P(i),t[0]=i,t[1]=a);let o=a.notes,s;t[2]===i?s=t[3]:(s=P(i),t[2]=i,t[3]=s);let c=s.chat,l=$u(xq),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(!1),m=(0,Z.useRef)(null),h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=e=>{d(t=>ol(t,e)),window.setTimeout(()=>m.current?.focus(),0)},t[4]=h):h=t[4];let g;t[5]!==c||t[6]!==f?(g={disabled:f,chat:c,onTranscript:h},t[5]=c,t[6]=f,t[7]=g):g=t[7];let _=al(g),{phase:v,voiceActive:y,startVoiceInput:x,cancelVoiceInput:S,confirmVoiceInput:C}=_,w,T;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{let e=window.setTimeout(()=>m.current?.focus(),50);return()=>window.clearTimeout(e)},T=[],t[8]=w,t[9]=T):(w=t[8],T=t[9]),(0,Z.useEffect)(w,T);let D,O;t[10]!==S||t[11]!==C||t[12]!==f||t[13]!==x||t[14]!==y||t[15]!==v?(D=()=>{let e=e=>{e.detail?.target===`note`&&(e.preventDefault(),!f&&(v===`recording`?C():(v===`idle`||v===`error`)&&x()))},t=e=>{e.detail?.target!==`note`||!y||(e.preventDefault(),S(),m.current?.focus())};return window.addEventListener(rd,e),window.addEventListener(ed,t),()=>{window.removeEventListener(rd,e),window.removeEventListener(ed,t)}},O=[S,C,f,x,y,v],t[10]=S,t[11]=C,t[12]=f,t[13]=x,t[14]=y,t[15]=v,t[16]=D,t[17]=O):(D=t[16],O=t[17]),(0,Z.useEffect)(D,O);let k;t[18]!==r||t[19]!==n||t[20]!==f||t[21]!==u?(k=async e=>{let t=u.trim();if(!(!t||f)){p(!0);try{let i=await zi(t,`web`);n(),e&&r(`/notes/${i.id}`)}catch{p(!1)}}},t[18]=r,t[19]=n,t[20]=f,t[21]=u,t[22]=k):k=t[22];let A=k,j;t[23]!==A||t[24]!==n?(j=e=>{if(e.key===`Escape`){e.preventDefault(),n();return}if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),A(!0);return}e.key===`Enter`&&e.shiftKey&&(e.preventDefault(),A(!1))},t[23]=A,t[24]=n,t[25]=j):j=t[25];let M=j,N=o.quickCapturePlaceholder,F;t[26]===n?F=t[27]:(F=e=>{e.target===e.currentTarget&&n()},t[26]=n,t[27]=F);let I;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,$.jsx)(Ro,{className:`size-4 text-accent`}),t[28]=I):I=t[28];let L;t[29]===o.quickCapturePlaceholder?L=t[30]:(L=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-edge px-4 py-3`,children:[I,(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:o.quickCapturePlaceholder})]}),t[29]=o.quickCapturePlaceholder,t[30]=L);let R;t[31]!==c||t[32]!==M||t[33]!==o.quickCapturePlaceholder||t[34]!==f||t[35]!==u||t[36]!==_.audioLevel||t[37]!==_.cancelVoiceInput||t[38]!==_.confirmVoiceInput||t[39]!==_.elapsedLabel||t[40]!==_.error||t[41]!==_.finalTranscript||t[42]!==_.partialTranscript||t[43]!==_.phase||t[44]!==_.retryVoiceInput||t[45]!==_.settingsRequired||t[46]!==_.voiceActive?(R=_.voiceActive?(0,$.jsx)(`div`,{className:`px-4 py-3`,children:(0,$.jsx)(cl,{phase:_.phase,elapsedLabel:_.elapsedLabel,audioLevel:_.audioLevel,partialTranscript:_.partialTranscript,finalTranscript:_.finalTranscript,error:_.error,settingsRequired:_.settingsRequired,disabled:f,chat:c,onCancel:_.cancelVoiceInput,onConfirm:_.confirmVoiceInput,onRetry:_.retryVoiceInput})}):(0,$.jsx)(`textarea`,{ref:m,value:u,onChange:e=>d(e.target.value),onKeyDown:M,placeholder:o.quickCapturePlaceholder,disabled:f,rows:4,className:`resize-none border-none bg-transparent px-4 py-3 text-sm leading-relaxed text-fg placeholder:text-fg-muted focus:outline-none disabled:opacity-60`,style:{fieldSizing:`content`,minHeight:`6rem`,maxHeight:`40vh`}}),t[31]=c,t[32]=M,t[33]=o.quickCapturePlaceholder,t[34]=f,t[35]=u,t[36]=_.audioLevel,t[37]=_.cancelVoiceInput,t[38]=_.confirmVoiceInput,t[39]=_.elapsedLabel,t[40]=_.error,t[41]=_.finalTranscript,t[42]=_.partialTranscript,t[43]=_.phase,t[44]=_.retryVoiceInput,t[45]=_.settingsRequired,t[46]=_.voiceActive,t[47]=R):R=t[47];let z=f||_.voiceActive,B;t[48]===n?B=t[49]:(B=()=>{n(),re()},t[48]=n,t[49]=B);let V;t[50]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,$.jsx)(Jt,{className:`size-3.5`,"aria-hidden":!0}),t[50]=V):V=t[50];let H;t[51]===o.discussionCapture.title?H=t[52]:(H=(0,$.jsx)(`span`,{children:o.discussionCapture.title}),t[51]=o.discussionCapture.title,t[52]=H);let ee;t[53]!==z||t[54]!==B||t[55]!==H?(ee=(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1.5 rounded-md px-1.5 py-1 text-fg-muted hover:bg-surface-hover hover:text-fg disabled:opacity-50`,disabled:z,onClick:B,children:[V,H]}),t[53]=z,t[54]=B,t[55]=H,t[56]=ee):ee=t[56];let U=f||_.voiceActive,W=c.voiceInput,G;t[57]===l?G=t[58]:(G=nd(l).join(`+`),t[57]=l,t[58]=G);let te=`${W} (${G})`,ne=c.voiceInput,K;t[59]===l?K=t[60]:(K=nd(l).join(`+`),t[59]=l,t[60]=K);let q=`${ne} (${K})`,ie;t[61]===_?ie=t[62]:(ie=()=>void _.startVoiceInput(),t[61]=_,t[62]=ie);let ae;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,$.jsx)(Ia,{className:`size-3.5`,"aria-hidden":!0}),t[63]=ae):ae=t[63];let oe;t[64]===c.voiceInput?oe=t[65]:(oe=(0,$.jsx)(`span`,{children:c.voiceInput}),t[64]=c.voiceInput,t[65]=oe);let se;t[66]!==U||t[67]!==te||t[68]!==q||t[69]!==ie||t[70]!==oe?(se=(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1.5 rounded-md px-1.5 py-1 text-fg-muted hover:bg-surface-hover hover:text-fg disabled:opacity-50`,disabled:U,title:te,"aria-label":q,onClick:ie,children:[ae,oe]}),t[66]=U,t[67]=te,t[68]=q,t[69]=ie,t[70]=oe,t[71]=se):se=t[71];let ce;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,$.jsx)(`kbd`,{className:`rounded bg-surface-hover px-1 py-0.5 font-mono text-[10px]`,children:`Enter`}),t[72]=ce):ce=t[72];let le;t[73]===o.quickCaptureHintEnter?le=t[74]:(le=(0,$.jsxs)(`span`,{children:[ce,` `,o.quickCaptureHintEnter]}),t[73]=o.quickCaptureHintEnter,t[74]=le);let ue;t[75]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(`kbd`,{className:`rounded bg-surface-hover px-1 py-0.5 font-mono text-[10px]`,children:`Shift+Enter`}),t[75]=ue):ue=t[75];let de;t[76]===o.quickCaptureHintShift?de=t[77]:(de=(0,$.jsxs)(`span`,{children:[ue,` `,o.quickCaptureHintShift]}),t[76]=o.quickCaptureHintShift,t[77]=de);let fe;t[78]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,$.jsx)(`kbd`,{className:`rounded bg-surface-hover px-1 py-0.5 font-mono text-[10px]`,children:`Esc`}),t[78]=fe):fe=t[78];let pe;t[79]===o.quickCaptureHintEsc?pe=t[80]:(pe=(0,$.jsxs)(`span`,{children:[fe,` `,o.quickCaptureHintEsc]}),t[79]=o.quickCaptureHintEsc,t[80]=pe);let me;t[81]!==ee||t[82]!==se||t[83]!==le||t[84]!==de||t[85]!==pe?(me=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-[11px] text-fg-muted`,children:[ee,se,le,de,pe]}),t[81]=ee,t[82]=se,t[83]=le,t[84]=de,t[85]=pe,t[86]=me):me=t[86];let he;t[87]===f?he=t[88]:(he=f&&(0,$.jsx)(`div`,{className:`size-4 animate-spin rounded-full border-2 border-accent border-t-transparent`}),t[87]=f,t[88]=he);let ge;t[89]!==me||t[90]!==he?(ge=(0,$.jsxs)(`div`,{className:`flex items-center justify-between border-t border-edge-subtle px-4 py-2`,children:[me,he]}),t[89]=me,t[90]=he,t[91]=ge):ge=t[91];let _e;t[92]!==L||t[93]!==R||t[94]!==ge?(_e=(0,$.jsxs)(`div`,{className:`flex w-full max-w-lg flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,children:[L,R,ge]}),t[92]=L,t[93]=R,t[94]=ge,t[95]=_e):_e=t[95];let ve;return t[96]!==o.quickCapturePlaceholder||t[97]!==F||t[98]!==_e?(ve=(0,$.jsx)(`div`,{className:`fixed inset-0 z-[120] flex items-start justify-center bg-black/40 p-4 pt-[min(18vh,7rem)]`,role:`dialog`,"aria-modal":`true`,"data-voice-input-scope":`note`,"aria-label":N,onMouseDown:F,children:_e}),t[96]=o.quickCapturePlaceholder,t[97]=F,t[98]=_e,t[99]=ve):ve=t[99],ve}function xq(e){return e.shortcut}function Sq(e){return e.language}function Cq(){let e=(0,Q.c)(11),[t,n]=(0,Z.useState)(!1),[r,i]=(0,Z.useState)(!1),a=T(Eq),o=Zu(Tq),s,c;e[0]!==r||e[1]!==o||e[2]!==a?(s=()=>{let e=e=>{r||Xu(e,o)&&(e.preventDefault(),a&&n(wq))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},c=[r,o,a],e[0]=r,e[1]=o,e[2]=a,e[3]=s,e[4]=c):(s=e[3],c=e[4]),(0,Z.useEffect)(s,c);let l,u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{let e=e=>{i(!!e.detail?.active)};return window.addEventListener(`quick-capture-shortcut-recording`,e),window.addEventListener(id,e),()=>{window.removeEventListener(`quick-capture-shortcut-recording`,e),window.removeEventListener(id,e)}},u=[],e[5]=l,e[6]=u):(l=e[5],u=e[6]),(0,Z.useEffect)(l,u);let d,f;if(e[7]===a?(d=e[8],f=e[9]):(d=()=>{let e=()=>{a&&n(!0)};return window.addEventListener(`open-quick-capture`,e),()=>window.removeEventListener(`open-quick-capture`,e)},f=[a],e[7]=a,e[8]=d,e[9]=f),(0,Z.useEffect)(d,f),!t)return null;let p;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(bq,{onClose:()=>n(!1)}),e[10]=p):p=e[10],p}function wq(e){return!e}function Tq(e){return e.shortcut}function Eq(e){return e.conversationId}var Dq=(0,Z.lazy)(()=>s(()=>import(`./capabilities-settings-panel-Bxn8HtEO.js`).then(e=>({default:e.CapabilitiesSettingsPanel})),__vite__mapDeps([159,1,2,4,3,5,6,7,8,9,160,11,161,10,65,35,20,21,22,25,26,27,28,12,162,147,163,36,119,43,37,50,46,164,42,74,75,62,19,23,45,81,79,24,165,87,83,166,167,168,169,39,38,15,170,171,172,49,127,61,109,128,173,174,77,175,176,177,31,178,135,136,78,137,138,139,140,110,111,141,94,90,179,47,88,180,89,181,182,183,92,93,40,95,96,97,98,48,99,100,184,185,186,187,188])));function Oq(){let e=(0,Z.useId)(),t=(0,Z.useRef)(null),n=(0,Z.useRef)(!1),r=(0,Z.useRef)(null),i=(0,Z.useRef)(new Map),[a,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(!1),[l,u]=(0,Z.useState)(),[d,f]=(0,Z.useState)(),[p,m]=(0,Z.useState)(`settings`),[h,g]=(0,Z.useState)(!1);n.current=s;let _=E(e=>e.language)===`zh`;(0,Z.useEffect)(()=>{let e=e=>{let r=e.detail,i=cr(r?.use??null);if(i&&!h){if(!n.current){t.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let e=t.current?.closest(`[role="dialog"]`);e?.closest(`[data-capability-settings-sheet]`)||o(e?.parentElement?.closest(`[role="dialog"]`)??e??null)}u(i),f(r?.purpose===`phone`||r?.purpose===`automation`?r.purpose:void 0),c(!0),m(r?.view===`services`?`services`:`settings`)}};return window.addEventListener(`open-capability-settings`,e),()=>window.removeEventListener(`open-capability-settings`,e)},[h]),(0,Z.useLayoutEffect)(()=>{let e=r.current;if(!e)return;let t=`${l}:${p}`;return e.scrollTop=i.current.get(t)??0,()=>{i.current.set(t,e.scrollTop)}},[p,l]);let v=e=>{h||m(e)};return(0,$.jsx)(ee,{open:s,onOpenChange:e=>{h||c(e)},children:(0,$.jsx)(B,{forceMount:!0,container:a??void 0,children:(0,$.jsx)(`div`,{className:`contents`,children:(0,$.jsxs)(Z.Activity,{mode:s?`visible`:`hidden`,children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[150] bg-scrim`}),(0,$.jsxs)(V,{"data-capability-settings-sheet":!0,"aria-describedby":void 0,forceMount:!0,onCloseAutoFocus:e=>{e.preventDefault(),requestAnimationFrame(()=>t.current?.focus())},className:`xopc-dialog-content fixed inset-x-3 top-1/2 z-[151] mx-auto flex h-[min(48rem,calc(100dvh-2rem))] w-[calc(100%-1.5rem)] max-w-3xl -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay`,onEscapeKeyDown:e=>{h&&e.preventDefault()},onInteractOutside:e=>{h&&e.preventDefault()},children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-3 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(`div`,{children:(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:d===`phone`?_?`手机模型服务`:`Phone model services`:d===`automation`?_?`自动化模型`:`Automation models`:l?ar[l][+!_]:``})}),(0,$.jsx)(X,{variant:`ghost`,className:`size-11 shrink-0 p-0`,"aria-label":_?`关闭设置`:`Close settings`,disabled:h,onClick:()=>c(!1),children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`shrink-0 border-b border-edge px-5 py-3`,children:(0,$.jsx)(bu,{role:`tablist`,"aria-label":_?`能力配置`:`Capability configuration`,className:`inline-flex gap-1 rounded-xl bg-surface-inset p-1`,indicatorClassName:`rounded-md bg-surface-panel shadow-sm`,children:[`settings`,`services`].map(t=>(0,$.jsx)(X,{id:`${e}-${t}`,role:`tab`,"aria-selected":p===t,"aria-controls":`${e}-panel`,tabIndex:p===t?0:-1,variant:`ghost`,className:p===t?`bg-surface-panel text-fg shadow-sm hover:bg-surface-panel`:``,disabled:h,onClick:()=>v(t),onKeyDown:n=>{if(h||![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(n.key))return;n.preventDefault();let r=n.key===`Home`?`settings`:n.key===`End`||t===`settings`?`services`:`settings`;v(r),document.getElementById(`${e}-${r}`)?.focus()},children:t===`settings`?_?`模型与参数`:`Model and parameters`:_?`管理服务`:`Manage services`},t))})}),(0,$.jsx)(`div`,{ref:r,id:`${e}-panel`,role:`tabpanel`,"aria-labelledby":`${e}-${p}`,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-5`,children:l?(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(fd,{}),children:(0,$.jsx)(Dq,{inlineUse:l,inlineView:p,onViewChange:m,onPendingChange:g},l)}):null}),(0,$.jsxs)(`footer`,{className:`flex shrink-0 items-center justify-between gap-4 border-t border-edge px-5 py-3`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-muted`,children:h?_?`正在保存…`:`Saving…`:p===`settings`?_?`自动保存`:`Saves automatically`:null}),(0,$.jsx)(X,{variant:`secondary`,disabled:h,onClick:()=>c(!1),children:d===`phone`?_?`返回手机设置`:`Back to phone settings`:d===`automation`?_?`返回自动化`:`Back to automation`:_?`完成`:`Done`})]})]})]})})})})}var kq=()=>`xopc-recording-consent:${T.getState().baseUrl}`;function Aq(e){if(e.consentAcknowledgedAt==null){Mq();return}try{localStorage.setItem(kq(),JSON.stringify(e))}catch{}}function jq(){try{let e=JSON.parse(localStorage.getItem(kq())??`null`);return e&&Number.isSafeInteger(e.consentPolicyVersion)&&e.consentPolicyVersion>0&&typeof e.consentAcknowledgedAt==`number`&&Number.isFinite(e.consentAcknowledgedAt)&&e.consentAcknowledgedAt>0?e:null}catch{return null}}function Mq(){try{localStorage.removeItem(kq())}catch{}}var Nq=3e4;function Pq(e,t){let n=e?.retryAfterMs;return typeof n==`number`&&Number.isFinite(n)?Math.min(Nq,Math.max(0,n)):Math.min(Nq,1e3*2**Math.min(t,5))}function Fq(e){let t=e?.status;return typeof t!=`number`||t===408||t===429||t>=500}function Iq(e,t){return t.throwIfAborted(),new Promise((n,r)=>{let i=()=>{globalThis.clearTimeout(a),r(t.reason??new DOMException(`Aborted`,`AbortError`))},a=globalThis.setTimeout(()=>{t.removeEventListener(`abort`,i),n()},e);t.addEventListener(`abort`,i,{once:!0})})}async function Lq(e,t,n){let r=0;for(;!n.aborted;){let i=await t.list(e.draftId);t.onPendingCount?.(i.length);let a=i[0];if(!a)return;try{let n=await t.upload(e.discussionId,a);await t.remove(e.draftId,a),t.onTranscript?.(n),r=0}catch(e){if(n.aborted)throw n.reason??e;if(!Fq(e))throw e;await Iq(Pq(e,r),n),r+=1}}}var Rq=`xopc:recording-window-position:v1`,zq=()=>({x:window.visualViewport?.offsetLeft??0,y:window.visualViewport?.offsetTop??0,width:window.visualViewport?.width??window.innerWidth,height:window.visualViewport?.height??window.innerHeight});function Bq(e,t,n){let r=zq();return{x:Math.max(r.x+12,Math.min(e.x,r.x+r.width-t-12)),y:Math.max(r.y+12,Math.min(e.y,r.y+r.height-n-12))}}function Vq(){try{let e=JSON.parse(sessionStorage.getItem(Rq)??`null`);return e&&Number.isFinite(e.x)&&Number.isFinite(e.y)?e:null}catch{return null}}function Hq(e){let t=(0,Q.c)(68),{compact:n,onCompactChange:r,title:i,subtitle:a,compactActions:o,children:s,language:c}=e,l=c===`zh`,u=(0,Z.useRef)(null),[d,f]=(0,Z.useState)(Vq),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(zq),y=(0,Z.useRef)(null),b=(0,Z.useRef)(!1),x;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(x=function(e){let t=u.current?.getBoundingClientRect();if(!t)return;let n=Bq(e,t.width,t.height);f(n);try{sessionStorage.setItem(Rq,JSON.stringify(n))}catch{}},t[0]=x):x=t[0];let S=x,C;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{let e=u.current;if(!e)return;let t=()=>{v(zq());let t=e.getBoundingClientRect();f(e=>{if(!e)return e;let n=Bq(e,t.width,t.height);return n.x===e.x&&n.y===e.y?e:n})};t();let n=typeof ResizeObserver>`u`?null:new ResizeObserver(t);return n?.observe(e),window.addEventListener(`resize`,t),window.visualViewport?.addEventListener(`resize`,t),window.visualViewport?.addEventListener(`scroll`,t),()=>{n?.disconnect(),window.removeEventListener(`resize`,t),window.visualViewport?.removeEventListener(`resize`,t),window.visualViewport?.removeEventListener(`scroll`,t)}},t[1]=C):C=t[1];let w;t[2]===n?w=t[3]:(w=[n],t[2]=n,t[3]=w),(0,Z.useLayoutEffect)(C,w);let T=l?`录音浮窗`:`Recording window`,E=n?`compact`:`expanded`,D=Math.min(n?340:400,_.width-24),O=_.height-24,k;t[4]===d?k=t[5]:(k=d?{left:d.x,top:d.y}:{right:12,bottom:12},t[4]=d,t[5]=k);let A=p?`grabbing`:void 0,j;t[6]!==D||t[7]!==O||t[8]!==k||t[9]!==A?(j={width:D,maxHeight:O,...k,cursor:A},t[6]=D,t[7]=O,t[8]=k,t[9]=A,t[10]=j):j=t[10];let M=`flex shrink-0 items-center gap-1 ${n?`p-2`:`border-b border-edge-subtle px-3 py-2`}`,N=l?`移动录音窗`:`Move recording window`,P=l?`拖动移动,也可使用方向键或点击选择位置`:`Drag, use arrow keys, or click to choose a position`,F,I,L,R,z,B;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(F=e=>{if(e.button!==0||!e.isPrimary)return;let t=u.current?.getBoundingClientRect();t&&(y.current={id:e.pointerId,start:{x:e.clientX,y:e.clientY},origin:{x:t.left,y:t.top},moved:!1},e.currentTarget.setPointerCapture(e.pointerId))},I=e=>{let t=y.current;if(!t||t.id!==e.pointerId)return;let n=e.clientX-t.start.x,r=e.clientY-t.start.y;!t.moved&&Math.hypot(n,r)<4||(t.moved=!0,g(!1),m(!0),S({x:t.origin.x+n,y:t.origin.y+r}))},L=e=>{let t=y.current;!t||t.id!==e.pointerId||(b.current=t.moved,y.current=null,m(!1),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},R=()=>{y.current=null,b.current=!0,m(!1)},z=()=>{y.current=null,m(!1)},B=()=>{if(b.current){b.current=!1;return}g(Uq)},t[11]=F,t[12]=I,t[13]=L,t[14]=R,t[15]=z,t[16]=B):(F=t[11],I=t[12],L=t[13],R=t[14],z=t[15],B=t[16]);let V;t[17]!==_.height||t[18]!==_.width||t[19]!==_.x||t[20]!==_.y?(V=e=>{let t=e.shiftKey?48:16,n=u.current?.getBoundingClientRect();if(!n)return;let r={ArrowLeft:[-t,0],ArrowRight:[t,0],ArrowUp:[0,-t],ArrowDown:[0,t]}[e.key];r&&(e.preventDefault(),S({x:n.left+r[0],y:n.top+r[1]})),e.key===`Escape`&&g(!1),e.key===`Home`&&(e.preventDefault(),S({x:_.x+_.width,y:_.y+_.height}))},t[17]=_.height,t[18]=_.width,t[19]=_.x,t[20]=_.y,t[21]=V):V=t[21];let H;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,$.jsx)(yt,{className:`size-4`,"aria-hidden":!0}),t[22]=H):H=t[22];let ee;t[23]!==h||t[24]!==N||t[25]!==P||t[26]!==V?(ee=(0,$.jsx)(`button`,{type:`button`,"aria-label":N,title:P,"aria-expanded":h,className:`flex size-10 shrink-0 touch-none items-center justify-center rounded-lg text-fg-muted outline-none hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent active:cursor-grabbing`,onPointerDown:F,onPointerMove:I,onPointerUp:L,onPointerCancel:R,onLostPointerCapture:z,onClick:B,onKeyDown:V,children:H}),t[23]=h,t[24]=N,t[25]=P,t[26]=V,t[27]=ee):ee=t[27];let U=`${n?`text-lg`:`text-sm`} font-medium tabular-nums`,W;t[28]!==U||t[29]!==i?(W=(0,$.jsx)(`div`,{className:U,children:i}),t[28]=U,t[29]=i,t[30]=W):W=t[30];let G;t[31]===a?G=t[32]:(G=a?(0,$.jsx)(`div`,{className:`truncate text-xs text-fg-muted`,children:a}):null,t[31]=a,t[32]=G);let te;t[33]!==W||t[34]!==G?(te=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[W,G]}),t[33]=W,t[34]=G,t[35]=te):te=t[35];let ne=n?o:null,K=n?l?`展开录音窗`:`Expand recording window`:l?`缩小录音窗`:`Minimize recording window`,q=!n,re;t[36]!==n||t[37]!==r?(re=()=>{r(!n),g(!1)},t[36]=n,t[37]=r,t[38]=re):re=t[38];let ie;t[39]===n?ie=t[40]:(ie=n?(0,$.jsx)(wa,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(La,{className:`size-4`,"aria-hidden":!0}),t[39]=n,t[40]=ie);let ae;t[41]!==K||t[42]!==q||t[43]!==re||t[44]!==ie?(ae=(0,$.jsx)(`button`,{type:`button`,"aria-label":K,"aria-expanded":q,className:`flex size-10 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:re,children:ie}),t[41]=K,t[42]=q,t[43]=re,t[44]=ie,t[45]=ae):ae=t[45];let oe;t[46]!==M||t[47]!==ee||t[48]!==te||t[49]!==ne||t[50]!==ae?(oe=(0,$.jsxs)(`header`,{className:M,children:[ee,te,ne,ae]}),t[46]=M,t[47]=ee,t[48]=te,t[49]=ne,t[50]=ae,t[51]=oe):oe=t[51];let se;t[52]!==h||t[53]!==_.height||t[54]!==_.width||t[55]!==_.x||t[56]!==_.y||t[57]!==l?(se=h?(0,$.jsx)(`div`,{className:`grid shrink-0 grid-cols-2 gap-1 border-b border-edge-subtle p-2`,"aria-label":l?`选择浮窗位置`:`Choose window position`,children:[[!1,!1],[!0,!1],[!1,!0],[!0,!0]].map((e,t)=>{let[n,r]=e;return(0,$.jsx)(`button`,{type:`button`,className:`min-h-10 rounded-lg px-3 text-sm hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>{S({x:n?_.x+_.width:_.x,y:r?_.y+_.height:_.y}),g(!1)},children:(l?[`左上角`,`右上角`,`左下角`,`右下角`]:[`Top left`,`Top right`,`Bottom left`,`Bottom right`])[t]},t)})}):null,t[52]=h,t[53]=_.height,t[54]=_.width,t[55]=_.x,t[56]=_.y,t[57]=l,t[58]=se):se=t[58];let ce;t[59]===s?ce=t[60]:(ce=(0,$.jsx)(`div`,{className:`min-h-0 overflow-y-auto overscroll-contain`,children:s}),t[59]=s,t[60]=ce);let le;return t[61]!==j||t[62]!==oe||t[63]!==se||t[64]!==ce||t[65]!==T||t[66]!==E?(le=(0,$.jsxs)(`aside`,{ref:u,"aria-label":T,"data-recording-window":E,className:`fixed z-[125] flex flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay text-fg shadow-elevated`,style:j,children:[oe,se,ce]}),t[61]=j,t[62]=oe,t[63]=se,t[64]=ce,t[65]=T,t[66]=E,t[67]=le):le=t[67],le}function Uq(e){return!e}function Wq(e,t){let n=t===`zh`,r=P(t).notes.discussionCapture.status;return e.save===`saveFailed`?e.savedThroughMs?`${n?`保存遇到问题,已保留至`:`Save interrupted; retained through`} ${Gq(e.savedThroughMs)}`:r.saveFailed:e.localComplete?r.localComplete:e.savedThroughMs!==null&&e.savedThroughMs>0?r.savedThrough.replace(`{{time}}`,Gq(e.savedThroughMs)):e.save===`savedUnknown`?n?`原音已暂存,保存时长确认中`:`Audio retained; checking saved duration`:n?`正在保存录音`:`Saving recording`}function Gq(e){return`${String(Math.floor(e/6e4)).padStart(2,`0`)}:${String(Math.floor(e/1e3)%60).padStart(2,`0`)}`}function Kq(e){let t=(0,Q.c)(66),{status:n,language:r,compact:i}=e,a=i!==void 0&&i,o;t[0]===r?o=t[1]:(o=P(r),t[0]=r,t[1]=o);let s=o.notes.discussionCapture.status,c=r===`zh`,l;t[2]!==r||t[3]!==n?(l=Wq(n,r),t[2]=r,t[3]=n,t[4]=l):l=t[4];let u=l;if(a){let e=`px-3 pb-2 text-xs ${n.save===`saveFailed`?`text-danger`:`text-fg-muted`}`,r=n.sync===`offline`?c?`离线录音 · `:`Recording offline · `:``,i;return t[5]!==u||t[6]!==e||t[7]!==r?(i=(0,$.jsxs)(`p`,{className:e,children:[r,u]}),t[5]=u,t[6]=e,t[7]=r,t[8]=i):i=t[8],i}let d;t[9]!==s.localComplete||t[10]!==n.localComplete?(d=n.localComplete?(0,$.jsx)(`p`,{role:`status`,className:`font-medium leading-5 text-fg`,children:s.localComplete}):null,t[9]=s.localComplete,t[10]=n.localComplete,t[11]=d):d=t[11];let f;t[12]!==n.hasInterruptions||t[13]!==c?(f=n.hasInterruptions?(0,$.jsx)(`p`,{children:c?`包含中断与续录;中断期间没有录音。`:`Contains interruptions and resumed audio. Nothing was captured during the interruptions.`}):null,t[12]=n.hasInterruptions,t[13]=c,t[14]=f):f=t[14];let p=`flex cursor-pointer list-none items-center gap-2 py-1 outline-none focus-visible:rounded focus-visible:ring-2 focus-visible:ring-accent ${n.save===`saveFailed`?`text-danger`:``}`,m=n.localComplete?c?`查看保存与整理进度`:`View saving and summary progress`:u,h;t[15]===m?h=t[16]:(h=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 leading-5`,children:m}),t[15]=m,t[16]=h);let g=c?`详情`:`Details`,_;t[17]===g?_=t[18]:(_=(0,$.jsx)(`span`,{className:`shrink-0 text-fg-muted`,children:g}),t[17]=g,t[18]=_);let v;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(Hn,{className:`size-3.5 shrink-0 transition-transform group-open:rotate-180 motion-reduce:transition-none`,"aria-hidden":!0}),t[19]=v):v=t[19];let y;t[20]!==_||t[21]!==p||t[22]!==h?(y=(0,$.jsxs)(`summary`,{className:p,children:[h,_,v]}),t[20]=_,t[21]=p,t[22]=h,t[23]=y):y=t[23];let b=c?`录音`:`Recording`,x;t[24]===b?x=t[25]:(x=(0,$.jsx)(`dt`,{children:b}),t[24]=b,t[25]=x);let S=s[n.capture],C;t[26]===S?C=t[27]:(C=(0,$.jsx)(`dd`,{children:S}),t[26]=S,t[27]=C);let w=c?`本机保存`:`On this device`,T;t[28]===w?T=t[29]:(T=(0,$.jsx)(`dt`,{children:w}),t[28]=w,t[29]=T);let E;t[30]===u?E=t[31]:(E=(0,$.jsx)(`dd`,{children:u}),t[30]=u,t[31]=E);let D=c?`云端备份`:`Cloud backup`,O;t[32]===D?O=t[33]:(O=(0,$.jsx)(`dt`,{children:D}),t[32]=D,t[33]=O);let k=n.sync===`pending`?c?`录音结束后自动备份`:`Backs up after recording`:s[n.sync],A;t[34]===k?A=t[35]:(A=(0,$.jsx)(`dd`,{children:k}),t[34]=k,t[35]=A);let j=c?`文字与笔记`:`Text and notes`,M;t[36]===j?M=t[37]:(M=(0,$.jsx)(`dt`,{children:j}),t[36]=j,t[37]=M);let N=n.ai===`waitingSource`?c?`录音保存后继续整理`:`Continues after the recording is saved`:s[n.ai],F;t[38]===N?F=t[39]:(F=(0,$.jsx)(`dd`,{children:N}),t[38]=N,t[39]=F);let I;t[40]!==x||t[41]!==C||t[42]!==T||t[43]!==E||t[44]!==O||t[45]!==A||t[46]!==M||t[47]!==F?(I=(0,$.jsxs)(`dl`,{className:`mt-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-2 rounded-lg bg-surface-inset p-3 leading-5`,children:[x,C,T,E,O,A,M,F]}),t[40]=x,t[41]=C,t[42]=T,t[43]=E,t[44]=O,t[45]=A,t[46]=M,t[47]=F,t[48]=I):I=t[48];let L;t[49]!==s.timingPending||t[50]!==n.timingUncertain?(L=n.timingUncertain?(0,$.jsx)(`p`,{className:`mt-2 leading-5`,children:s.timingPending}):null,t[49]=s.timingPending,t[50]=n.timingUncertain,t[51]=L):L=t[51];let R;t[52]!==s.leaveHint||t[53]!==n.localComplete||t[54]!==n.sync?(R=n.localComplete&&n.sync!==`available`?(0,$.jsx)(`p`,{className:`mt-2 leading-5`,children:s.leaveHint}):null,t[52]=s.leaveHint,t[53]=n.localComplete,t[54]=n.sync,t[55]=R):R=t[55];let z;t[56]!==y||t[57]!==I||t[58]!==L||t[59]!==R?(z=(0,$.jsxs)(`details`,{className:`group`,children:[y,I,L,R]}),t[56]=y,t[57]=I,t[58]=L,t[59]=R,t[60]=z):z=t[60];let B;return t[61]!==s.label||t[62]!==z||t[63]!==d||t[64]!==f?(B=(0,$.jsxs)(`section`,{"aria-label":s.label,className:`space-y-2 text-xs text-fg-muted`,children:[d,f,z]}),t[61]=s.label,t[62]=z,t[63]=d,t[64]=f,t[65]=B):B=t[65],B}async function qq(e){return navigator.locks?new Promise((t,n)=>{navigator.locks.request(`xopc-recording:${e}`,{ifAvailable:!0},async e=>{if(!e){n(Error(`This recording is open in another tab. Close it before recovery.`));return}await new Promise(e=>t(e))}).catch(n)}):()=>{}}function Jq(e,t){let n=new Uint8Array(512),r=(e,t)=>n.set(new TextEncoder().encode(t),e);return r(0,e),r(100,`0000600\0`),r(108,`0000000\0`),r(116,`0000000\0`),r(124,t.toString(8).padStart(11,`0`)+`\0`),r(136,`00000000000\0`),n.fill(32,148,156),r(156,`0`),r(257,`ustar\0`),r(263,`00`),r(148,n.reduce((e,t)=>e+t,0).toString(8).padStart(6,`0`)+`\0 `),n}async function*Yq(e){let t=[];for(let n=0;n<e.chunkCount;n++){let r=await Hi(e.id,n);if(!r){t.push({index:n,missing:!0});continue}let i=new Uint8Array(await r.blob.arrayBuffer()),a=await crypto.subtle.digest(`SHA-256`,i);t.push({index:n,bytes:i.length,sha256:[...new Uint8Array(a)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}),yield Jq(`chunks/${String(n).padStart(6,`0`)}.bin`,i.length),yield i,i.length%512&&(yield new Uint8Array(512-i.length%512))}let n,r=await ge(e.id).catch(e=>(n=String(e),[])),i=new TextEncoder().encode(JSON.stringify({version:1,draft:e,chunks:t,annotations:r,annotationReadError:n,reconstruction:`Concatenate chunk bytes in index order within each epoch only. Epochs are independent containers. Missing chunks must never be skipped when reconstructing media.`},null,2));yield Jq(`manifest.json`,i.length),yield i,i.length%512&&(yield new Uint8Array(512-i.length%512)),yield new Uint8Array(1024)}function Xq(e){return(e.epochs?.length??1)===1&&e.saveOutcome===`complete`&&e.mediaCoverage?.status===`verified`&&e.mediaCoverage.committedChunkCount===e.chunkCount&&e.mediaCoverage.verifiedThroughMs>0}async function*Zq(e){for(let t=0;t<e.chunkCount;t++){let n=await Hi(e.id,t);if(!n)throw Error(`Original audio has missing chunks; export a recovery package instead.`);let r=n.blob.stream().getReader();try{for(;;){let e=await r.read();if(e.done)break;yield e.value}}finally{r.releaseLock()}}}async function Qq(e){let t=window.showSaveFilePicker,n=await ge(e.id).catch(()=>null),r=Xq(e)&&n!==null&&n.length===0,i=e.mimeType.includes(`mp4`)?`m4a`:e.mimeType.includes(`ogg`)?`ogg`:`webm`,a=`recording-${e.id}.${r?i:`tar`}`,o=()=>r?Zq(e):Yq(e);if(t){let e=await(await t.call(window,{suggestedName:a})).createWritable();try{for await(let t of o())await e.write(t);await e.close()}catch(t){throw await e.abort().catch(()=>void 0),t}return}let s=[],c=0;for await(let e of o()){if(c+=e.length,c>64*1024*1024)throw Error(`Use Chrome or Edge file saving to export recordings over 64 MB. Your original audio is retained.`);s.push(e)}let l=URL.createObjectURL(new Blob(s,{type:r?e.mimeType:`application/x-tar`})),u=document.createElement(`a`);u.href=l,u.download=a,u.click(),window.setTimeout(()=>URL.revokeObjectURL(l),6e4)}var $q=class{now;accumulated=0;started=null;constructor(e=()=>performance.now()){this.now=e}get elapsedMs(){return this.accumulated+(this.started===null?0:Math.max(0,this.now()-this.started))}resume(){this.started===null&&(this.started=this.now())}pause(){this.accumulated=this.elapsedMs,this.started=null}reset(e=0){this.accumulated=e,this.started=null}},eJ=4,tJ=15,nJ=.6,rJ=.5,iJ=.5,aJ=.015;function oJ(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Float32Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}async function sJ(e){let t=await crypto.subtle.digest(`SHA-256`,await e.arrayBuffer());return[...new Uint8Array(t)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}var cJ=class{sampleRate;chunks=[];bufferedSamples=0;segmentStartSample=0;sequence=0;silenceSamples=0;hasSpeech=!1;constructor(e){this.sampleRate=e}add(e){if(e.length===0)return[];this.chunks.push(e),this.bufferedSamples+=e.length,ps(e)>=aJ?(this.hasSpeech=!0,this.silenceSamples=0):this.silenceSamples+=e.length;let t=this.sampleRate*tJ;return this.bufferedSamples>=t?this.hasSpeech?[this.emit(`max`)]:(this.discardBuffered(),[]):this.hasSpeech&&this.bufferedSamples>=this.sampleRate*eJ&&this.silenceSamples>=this.sampleRate*nJ?[this.emit(`silence`)]:[]}finish(){return!this.hasSpeech||this.bufferedSamples<this.sampleRate*iJ?(this.discardBuffered(),[]):[this.emit(`final`)]}cancel(){this.chunks=[],this.bufferedSamples=0}get lastSequence(){return this.sequence-1}emit(e){let t=oJ(this.chunks),n=e===`max`?Math.min(t.length,this.sampleRate*tJ):t.length,r=t.slice(0,n),i=e===`max`?Math.min(n,this.sampleRate*rJ):0,a=t.slice(n-i),o=Math.round(this.segmentStartSample/this.sampleRate*1e3),s=Math.round((this.segmentStartSample+n)/this.sampleRate*1e3),c={sequence:this.sequence++,samples:r,startedAtMs:o,endedAtMs:s};return this.segmentStartSample+=n-i,this.chunks=a.length?[a]:[],this.bufferedSamples=a.length,this.hasSpeech=a.length>0&&ps(a)>=aJ,this.silenceSamples=this.hasSpeech?0:a.length,c}discardBuffered(){this.segmentStartSample+=this.bufferedSamples,this.chunks=[],this.bufferedSamples=0,this.silenceSamples=0,this.hasSpeech=!1}},lJ=class e{capture;accumulator;emitState;onSegment;stopped=!1;constructor(e,t,n,r){this.capture=e,this.accumulator=t,this.emitState=n,this.onSegment=r}static async start(t,n,r){let i={pending:new Set},a,o=[],s=await ms.start(t,{onSamples:e=>{if(e.length&&r?.(ps(e)),!a){o.push(e);return}for(let t of a.accumulator.add(e))a.emit(t)}});a=new e(s,new cJ(s.sampleRate),i,n);for(let e of o)for(let t of a.accumulator.add(e))a.emit(t);return a}pause(){this.capture.pause()}resume(){this.capture.resume()}async stop(){if(this.stopped)return this.accumulator.lastSequence;this.stopped=!0,await this.capture.stop();for(let e of this.accumulator.finish())this.emit(e);if(await Promise.all(this.emitState.pending),this.emitState.error)throw this.emitState.error;return this.accumulator.lastSequence}cancel(){this.stopped||(this.stopped=!0,this.capture.cancel(),this.accumulator.cancel())}emit(e){let t=ds(e.samples,this.capture.sampleRate),n=new Blob([hs(t)],{type:`audio/wav`}),r=(async()=>{await this.onSegment({sequence:e.sequence,blob:n,startedAtMs:e.startedAtMs,endedAtMs:e.endedAtMs,sha256:await sJ(n)})})().catch(e=>{this.emitState.error??=e});this.emitState.pending.add(r),r.then(()=>this.emitState.pending.delete(r))}},uJ=Vi,dJ=100*1024*1024,fJ=32*1024*1024;function pJ(){if(!(typeof MediaRecorder>`u`))return[`audio/webm;codecs=opus`,`audio/mp4`,`audio/ogg;codecs=opus`,`audio/webm`].find(e=>MediaRecorder.isTypeSupported(e))}function mJ(e){try{e?.cancel()}catch{}}function hJ(){let e=(0,Z.useRef)(null),t=()=>{e.current?.(),e.current=null},n=(0,Z.useRef)([]),[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(null),s=(0,Z.useRef)(Symbol(`meeting-capture`)),c=(0,Z.useRef)(0),l=(0,Z.useRef)(null),[u,d]=(0,Z.useState)(`idle`),[f,p]=(0,Z.useState)(null),[m,h]=(0,Z.useState)([]),[g,_]=(0,Z.useState)(0),[v,y]=(0,Z.useState)(null),[b,x]=(0,Z.useState)(!0),S=(0,Z.useRef)(null),C=(0,Z.useRef)(Promise.resolve()),w=(0,Z.useRef)(null),T=(0,Z.useRef)(null),E=(0,Z.useRef)(null),D=(0,Z.useRef)(0),O=(0,Z.useRef)(new $q),k=(0,Z.useRef)(Promise.resolve()),A=(0,Z.useRef)(0),j=(0,Z.useRef)(null),M=(0,Z.useRef)(null),N=(0,Z.useRef)(!1),P=(0,Z.useRef)(!1),F=(0,Z.useRef)(0),[I,L]=(0,Z.useState)(null),R=(0,Z.useRef)(null),z=(0,Z.useRef)(null),B=(0,Z.useRef)(!1),V=(0,Z.useRef)(()=>Promise.resolve(null)),H=(0,Z.useCallback)(async()=>{try{h(await Qi())}catch{h([])}},[]);(0,Z.useEffect)(()=>{H()},[H]);let ee=(0,Z.useCallback)(()=>{R.current!=null&&window.clearInterval(R.current),R.current=null,z.current?.(),z.current=null,ul(s.current),T.current?.getTracks().forEach(e=>e.stop()),T.current=null,S.current=null},[]);(0,Z.useEffect)(()=>()=>{c.current+=1,E.current||ee(),V.current().catch(()=>void 0)},[ee]);let U=(0,Z.useCallback)(e=>{j.current??=e instanceof Error?e:Error(`Local recording storage failed`),O.current.pause(),y(`Local recording storage failed. Only previously saved audio can be recovered.`),mJ(w.current),V.current().catch(()=>void 0)},[]),W=(0,Z.useCallback)(e=>{let t=E.current;if(!t||!P.current||j.current)return;if(e.size===0){let e=performance.now();k.current=k.current.then(()=>{let r=M.current?.packetClock();if(E.current?.id===t.id&&r?.verified)for(let t of n.current)t.at<=e&&(t.target??=r.durationMs)});return}if(A.current+e.size>fJ){U(Error(`Local storage cannot keep up with recording`));return}let r=O.current.elapsedMs,i=performance.now();A.current+=e.size;let a=D.current;D.current+=Math.ceil(e.size/qi),k.current=k.current.then(async()=>{let s=M.current?.packetClock().durationMs??0;for(let c=0,l=a;c<e.size;c+=qi,l+=1){if(j.current)return;let a=E.current;if(!a||a.id!==t.id)return;let u=e.slice(c,c+qi),f=M.current?.snapshot().observedThroughMs??0,m=M.current?.append(new Uint8Array(await u.arrayBuffer()));m&&m.observedThroughMs>f&&(F.current=Math.max(F.current,i),performance.now()-i<15e3&&S.current?.state===`recording`&&d(e=>e===`waiting_for_audio`?`recording`:e));let h={...a,chunkCount:l+1,durationMs:c+8388608>=e.size?Math.max(a.durationMs,r):a.durationMs,updatedAt:Date.now(),...m?{mediaCoverage:{...m,committedChunkCount:l+1}}:{}};if(await na({draftId:t.id,index:l,blob:u,createdAt:Date.now()},h),E.current?.id!==t.id)return;E.current=h,p(h);let g=M.current?.packetClock();if(g?.verified&&c+8388608>=e.size){let e=n.current.filter(e=>e.at<=i);if(g.durationMs<=s)for(let t of e)t.target??=g.durationMs;else{let r=e.filter(e=>e.target===void 0||e.target<g.durationMs),i=new Set(r.map(e=>e.id));n.current=n.current.filter(e=>!i.has(e.id));for(let e of r){let n=e.target??Math.max(0,g.durationMs-1);e.saved.then(()=>ce(t.id,e.id,n)).catch(e=>o(e instanceof Error?e.message:`Could not locate the saved highlight`))}}}}}).catch(e=>{U(e)}).finally(()=>{A.current-=e.size})},[U]),G=(0,Z.useCallback)(async()=>{let e=S.current;if(!E.current)return null;if(!e&&E.current.state!==`recording`)return E.current;++c.current,d(`stopping`),O.current.pause(),_(O.current.elapsedMs);let n=w.current;w.current=null,mJ(n);let r;try{e&&await new Promise((t,n)=>{let r=window.setTimeout(()=>{n(Error(`Recording stopped responding. Previously saved audio is available for recovery.`))},5e3);C.current.then(()=>{window.clearTimeout(r),t()});try{e.state!==`inactive`&&e.stop()}catch(e){window.clearTimeout(r),n(e)}})}catch(e){r=e instanceof Error?e:Error(`Recording could not finish`)}finally{P.current=!1,ee(),L(null)}await k.current;let i=E.current;if(!i)return null;let a={...i,state:`stopped`,lastSequence:-1,durationMs:i.durationMs,updatedAt:Date.now(),endedAt:Date.now(),saveOutcome:j.current||r||!i.chunkCount?`incomplete`:N.current?`interrupted`:`complete`};try{if(await Yi(a),E.current=a,p(a),_(a.durationMs),j.current)throw j.current;if(r)throw r;if(!i.chunkCount)throw Error(`No audio was saved`);return d(`stopped`),a}catch(e){throw d(`error`),y(j.current?`Local storage failed. Recover the previously saved portion after freeing space.`:e instanceof Error?e.message:`Recording could not finish`),e}finally{t(),await H()}},[H,ee]),te=(0,Z.useCallback)(()=>{if(l.current)return l.current;let e=Promise.resolve().then(G).finally(()=>{l.current=null});return l.current=e,e},[G]);V.current=te;let ne=(0,Z.useCallback)(async r=>{if(B.current||S.current||l.current)return null;if(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`)return y(`Audio recording is not supported in this environment.`),d(`error`),null;if(!sl(s.current))return y(`The microphone is being used by a voice call. End the call before recording.`),null;B.current=!0;let a=++c.current;y(null),d(`requesting_permission`);try{await k.current,j.current=null,N.current=!1,P.current=!1,L(null),A.current=0,n.current=[],i(null),o(null),r.continuation&&(e.current=await qq(r.continuation.id));let u=r.continuation?await Wi(r.continuation.id):null;if(u?.sealRequested)throw Error(`Recording has already been submitted. Recover and sync it first.`);if(u&&u.gatewayUrl!==r.gatewayUrl)throw Error(`Return to the original Gateway before continuing this recording.`);let f=await navigator.storage?.estimate?.();if(f?.quota!=null&&f.usage!=null&&f.quota-f.usage<dJ)throw Error(`Not enough local storage for a discussion recording.`);let m=await navigator.mediaDevices.getUserMedia({audio:!0});if(a!==c.current)return m.getTracks().forEach(e=>e.stop()),ul(s.current),t(),null;T.current=m;let h=pJ(),g=h?new MediaRecorder(m,{mimeType:h,audioBitsPerSecond:64e3}):new MediaRecorder(m,{audioBitsPerSecond:64e3}),v=Date.now(),b=g.mimeType||h||`audio/webm`,I=u?[...u.epochs??[{firstChunk:0,mimeType:u.mimeType,startedAt:u.startedAt}]]:[{firstChunk:0,mimeType:b,startedAt:v}];u&&(I[I.length-1]={...I[I.length-1],savedThroughMs:u.mediaCoverage?.committedChunkCount===u.chunkCount?u.mediaCoverage.verifiedThroughMs:void 0},I.push({firstChunk:u.chunkCount,mimeType:b,startedAt:v,previousEndedAt:u.endedAt??u.updatedAt}));let B={id:u?.id??crypto.randomUUID(),...u,gatewayUrl:r.gatewayUrl,epochs:I,mediaCoverage:void 0,endedAt:void 0,saveOutcome:void 0,consentPolicyVersion:r.consentPolicyVersion??u?.consentPolicyVersion,...r.projectId?{projectId:r.projectId}:{},mimeType:b,startedAt:u?.startedAt??v,updatedAt:v,durationMs:u?.durationMs??0,chunkCount:u?.chunkCount??0,lastSequence:-1,state:`recording`};if(e.current||=await qq(B.id),await Yi(B),navigator.storage?.persist?.().catch(()=>!1),a!==c.current)return ee(),t(),null;S.current=g,E.current=B,D.current=B.chunkCount,M.current=new Ki(B.mimeType),P.current=!0,F.current=performance.now(),O.current.reset(B.durationMs),O.current.resume(),k.current=Promise.resolve(),g.ondataavailable=e=>{E.current?.id===B.id&&S.current===g&&W(e.data)};let V=()=>{E.current?.id!==B.id||S.current!==g||!P.current||(N.current=!0,O.current.pause(),d(`stopping`),y(`The microphone stopped unexpectedly. Recover the saved audio.`),te().catch(()=>void 0))};g.onerror=V,C.current=new Promise(e=>{g.onstop=()=>{e(),l.current||V()}});let H=m.getAudioTracks(),U=()=>{H.some(e=>e.muted||e.readyState===`ended`)&&V()};H.forEach(e=>{e.addEventListener(`ended`,V),e.addEventListener(`mute`,V)}),document.addEventListener(`freeze`,V),document.addEventListener(`visibilitychange`,U),window.addEventListener(`pageshow`,U),z.current=()=>{H.forEach(e=>{e.removeEventListener(`ended`,V),e.removeEventListener(`mute`,V)}),document.removeEventListener(`freeze`,V),document.removeEventListener(`visibilitychange`,U),window.removeEventListener(`pageshow`,U)},g.start(5e3);let G=-1/0;return lJ.start(m,e=>{if(!u)return r.onLiveSegment(B.id,e)},e=>{a!==c.current||g.state!==`recording`||(F.current=performance.now(),d(e=>e===`waiting_for_audio`?`recording`:e),performance.now()-G>=200&&(G=performance.now(),L(e)))}).then(e=>{if(a!==c.current||g.state===`inactive`){mJ(e);return}w.current=e,x(!u)}).catch(()=>x(!1)),p(B),_(B.durationMs),d(`waiting_for_audio`),U(),R.current=window.setInterval(()=>{if(g.state===`inactive`&&!l.current){V();return}g.state===`recording`&&performance.now()-F.current>=15e3&&(d(e=>e===`recording`?`waiting_for_audio`:e),L(null));let e=O.current.elapsedMs;_(e),e>=uJ&&te().catch(()=>void 0)},1e3),B}catch(e){return mJ(w.current),P.current=!1,w.current=null,ee(),t(),y(e instanceof Error?e.message:`Microphone permission was denied.`),d(`error`),null}finally{B.current=!1}},[W,te,ee]),K=(0,Z.useCallback)(async()=>{let e=E.current,t=S.current;if(!e||!t||t.state!==`recording`)return;let r=pe({type:`time`,capturedAt:Date.now(),epoch:(e.epochs?.length??1)-1,coordinate:`pcm`});o(null);let a=he(e.id,r);n.current.push({id:r.id,at:performance.now(),saved:a});try{t.requestData()}catch{}try{await a,i(`saved`)}catch(e){n.current=n.current.filter(e=>e.id!==r.id),o(e instanceof Error?e.message:`Highlight could not be saved`)}},[]),q=(0,Z.useCallback)(()=>{S.current?.state===`recording`&&(O.current.pause(),_(O.current.elapsedMs),S.current.pause(),w.current?.pause(),d(`paused`),L(null))},[]),re=(0,Z.useCallback)(()=>{S.current?.state===`paused`&&(O.current.resume(),S.current.resume(),w.current?.resume(),d(`waiting_for_audio`))},[]),ie=(0,Z.useCallback)(async e=>{k.current=k.current.then(async()=>{let t=E.current;if(!t)return;let n={...t,serverDiscussionId:e,updatedAt:Date.now()};await Yi(n),E.current=n,p(n)}).catch(U),await k.current},[U]);return{phase:u,draft:f,recoverableDrafts:m,elapsedMs:g,error:v,liveTranscriptionAvailable:b,inputLevel:I,mark:K,markerMessage:r,markerError:a,start:ne,pause:q,resume:re,stop:te,restore:(0,Z.useCallback)(async e=>{if(S.current||B.current||l.current)throw Error(`Stop the active recording before recovery.`);await k.current,j.current=null;let t=await Wi(e.id),n={...t,endedAt:t.endedAt??t.updatedAt,state:`stopped`,updatedAt:Date.now()};return await Yi(n),E.current=n,O.current.reset(n.durationMs),p(n),_(n.durationMs),y(null),d(`stopped`),n},[]),discard:(0,Z.useCallback)(async e=>{if(S.current||B.current||l.current)throw Error(`Stop the active recording before discarding.`);await k.current,await ea(e),E.current?.id===e&&(E.current=null,p(null),_(0),d(`idle`)),await H()},[H]),markUploadFailed:(0,Z.useCallback)(async e=>{let t=e??E.current?.id;if(!t)return;let n=(await Qi()).find(e=>e.id===t);if(!n||n.state===`recording`)return;let r={...n,state:`upload_failed`,updatedAt:Date.now()};await Yi(r),E.current?.id===t&&(E.current=r,p(r)),await H()},[H]),reset:(0,Z.useCallback)(()=>{E.current=null,O.current.reset(),p(null),_(0),y(null),d(`idle`)},[]),setServerDiscussionId:ie,refreshRecoverableDrafts:H}}function gJ(e){return e instanceof Error&&/Recording consent (must be acknowledged first|policy changed)/.test(e.message)}function _J(e){let t=Math.max(0,Math.floor(e/1e3));return`${String(Math.floor(t/60)).padStart(2,`0`)}:${String(t%60).padStart(2,`0`)}`}function vJ(){let e=b(),{pathname:t}=p(),n=T(e=>e.conversationId),r=T(e=>e.baseUrl),[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(!1),u=E(e=>e.language),d=P(u).notes.discussionCapture,f=hJ(),m=(0,Z.useRef)(!1),h=(0,Z.useRef)(!1),[g,_]=(0,Z.useState)(!1),[v,y]=(0,Z.useState)(!1),[x,S]=(0,Z.useState)(!1),[C,O]=(0,Z.useState)(null),[k,A]=(0,Z.useState)(null),[j,M]=(0,Z.useState)(),[N,F]=(0,Z.useState)(null),[I,L]=(0,Z.useState)(null),[R,z]=(0,Z.useState)(!1),[B,V]=(0,Z.useState)(!1),[H,ee]=(0,Z.useState)(!1),[U,W]=(0,Z.useState)(0),[G,te]=(0,Z.useState)(0),[ne,K]=(0,Z.useState)(null),[q,re]=(0,Z.useState)(null),[ie,ce]=(0,Z.useState)(`pending`),[pe,he]=(0,Z.useState)(!1),[ge,J]=(0,Z.useState)(null),[Se,Ce]=(0,Z.useState)(()=>navigator.onLine);(0,Z.useEffect)(()=>{let e=()=>Ce(navigator.onLine);return window.addEventListener(`online`,e),window.addEventListener(`offline`,e),()=>{window.removeEventListener(`online`,e),window.removeEventListener(`offline`,e)}},[]);let we=$i({phase:f.phase,draft:pe?null:f.draft,locallyFinalized:pe?null:ge,online:Se,syncStage:ie,detail:N,transcript:I,pendingText:G,liveAvailable:f.liveTranscriptionAvailable}),Te=[`recording`,`waiting_for_audio`,`requesting_permission`,`paused`,`stopping`].includes(f.phase),Ee=(0,Z.useRef)(!1),De=(0,Z.useRef)(null),Oe=(0,Z.useRef)(!1),ke=(0,Z.useRef)(!1),Ae=(0,Z.useRef)(null),je=(0,Z.useRef)(null),Me=(0,Z.useRef)(null),Ne=(0,Z.useRef)(null),Pe=(0,Z.useRef)(()=>{}),Fe=(0,Z.useCallback)(()=>{let e=Ne.current;if(e)return e;let t=je.current;if(!t)return Promise.resolve();let n=new AbortController;Me.current=n;let r=Lq(t,{list:ta,upload:(e,t)=>be(e,t.sequence,t),remove:(e,t)=>Ji(e,t.sequence),onTranscript:L,onPendingCount:te},n.signal).finally(()=>{Ne.current===r&&(Ne.current=null,Me.current===n&&(Me.current=null))});return Ne.current=r,r.then(()=>{window.setTimeout(()=>Pe.current(),0)}).catch(e=>{n.signal.aborted||K(e instanceof Error?e.message:d.saveFailed)}),r},[]);Pe.current=()=>{let e=je.current;!e||Ne.current||ta(e.draftId).then(e=>{te(e.length),e.length>0&&Fe()})};let Ie=(0,Z.useCallback)((e,t)=>{let n=je.current;return n&&(n.draftId!==e||n.discussionId!==t)&&(Me.current?.abort(),Ne.current=null),je.current={draftId:e,discussionId:t},Fe()},[Fe]),Le=(0,Z.useCallback)(async(e,t)=>{await Gi({draftId:e,...t,createdAt:Date.now()}),te(e=>e+1),Fe()},[Fe]),Re=(0,Z.useCallback)(async(e,t)=>{m.current=!1,K(null),y(!1),O(null),M(void 0),S(!0),re(null),L(null),F(null),W(0),he(!1),a(!1),J(null),ce(`pending`);let n=await f.start({...e?{projectId:e}:{},consentPolicyVersion:t,gatewayUrl:r,onLiveSegment:Le});if(!n)return;ke.current=!0;let i=ue({clientRequestId:n.id,...e?{contextProjectId:e}:{},consentPolicyVersion:t,source:Vl()?`electron`:`web`,recordedAt:n.startedAt});Ae.current=i;try{let e=await i;F(e),await f.setServerDiscussionId(e.discussion.id),Ie(n.id,e.discussion.id)}catch(e){ce(`failed`),gJ(e)&&Mq(),K(gJ(e)?u===`zh`?`录音授权需要重新确认。结束录音后可确认并同步,本机录音会保留。`:`Recording consent needs confirmation. Stop recording to confirm and sync; local audio is retained.`:e instanceof Error?e.message:d.saveFailed)}},[Ie,d.saveFailed,f,Le,r,u]);(0,Z.useEffect)(()=>()=>Me.current?.abort(),[]);let ze=(0,Z.useCallback)(async e=>{if(!(!n||h.current||R)){if([`recording`,`waiting_for_audio`,`requesting_permission`,`paused`,`stopping`].includes(f.phase)){S(!0),y(!1);return}h.current=!0,_(!0),S(!0),re(null);try{let t=jq()??await ye();if(Aq(t),t.consentAcknowledgedAt==null){M(e),O(t.consentPolicyVersion);return}await Re(e,t.consentPolicyVersion)}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{h.current=!1,_(!1)}}},[Re,d.saveFailed,R,f.phase,n]);(0,Z.useEffect)(()=>{let e=e=>{let t=e.detail?.projectId;ze(t)};return window.addEventListener(ae,e),()=>window.removeEventListener(ae,e)},[ze]),(0,Z.useEffect)(()=>{let e=f.draft,t=N?.discussion.id;if(!e||!t||!e.chunkCount||R||De.current||![`recording`,`waiting_for_audio`,`paused`].includes(f.phase))return;let n=Zi(e,t,W,!1,ce).catch(e=>{ce(`failed`),K(e instanceof Error?e.message:d.saveFailed)}).finally(()=>{De.current=null});De.current=n},[f.draft,f.phase,N?.discussion.id,R,d.saveFailed]);let Be=(0,Z.useCallback)(async()=>{let e=N?.discussion.id;if(!e)return;let[t,n]=await Promise.all([me(e),de(e)]);F(t),L(n)},[N?.discussion.id]);(0,Z.useEffect)(()=>{let e=()=>void Be().catch(()=>void 0);return window.addEventListener(`discussion-segment-updated`,e),window.addEventListener(`discussion-updated`,e),()=>{window.removeEventListener(`discussion-segment-updated`,e),window.removeEventListener(`discussion-updated`,e)}},[Be]),(0,Z.useEffect)(()=>{if(!N||![`stopping`,`sealing`,`organizing`].includes(N.discussion.status)&&![`queued`,`running`].includes(N.recordingJob?.state??``))return;let e=window.setInterval(()=>void Be().catch(()=>void 0),3e3);return()=>window.clearInterval(e)},[N,Be]);let Ve=async()=>{if(!(C==null||h.current)){h.current=!0,_(!0);try{if(Aq(await _e(C)),O(null),k){let e={...k,consentPolicyVersion:C};A(null),await Ge(e)}else await Re(j,C)}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{h.current=!1,_(!1)}}},He=async()=>{if(Oe.current)return;Oe.current=!0,ke.current=!1,z(!0),re(null);let e;try{let t=await f.stop();if(!t)throw Error(d.emptyRecording);he(!1),J(t),e=await qq(t.id);let n=await Ae.current?.catch(()=>null);if(!n){let e=await ye();if(Aq(e),e.consentAcknowledgedAt==null||t.consentPolicyVersion!==e.consentPolicyVersion){A(t),O(e.consentPolicyVersion);return}n=await ue({clientRequestId:t.id,...t.projectId?{contextProjectId:t.projectId}:{},consentPolicyVersion:e.consentPolicyVersion,source:Vl()?`electron`:`web`,recordedAt:t.startedAt})}Ae.current=Promise.resolve(n),F(n),await f.setServerDiscussionId(n.discussion.id),V(!0),await De.current;let r=await Zi(t,n.discussion.id,W,!0,ce);if(Me.current?.abort(),!r?.discussion.audioAttachmentId||r.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);F(r);try{await ve(t.id,n.discussion.id),a(!1),await f.discard(t.id),he(!0)}catch{a(!0)}je.current=null,te(0)}catch(e){ce(`failed`),await f.markUploadFailed().catch(()=>void 0),re(e instanceof Error?e.message:d.saveFailed),S(!0)}finally{e?.(),Oe.current=!1,z(!1),V(!1)}};(0,Z.useEffect)(()=>{f.phase===`stopped`&&f.draft?.saveOutcome===`complete`&&ke.current&&He()}),(0,Z.useEffect)(()=>{(m.current||t===`/notes/${encodeURIComponent(N?.note.id??``)}`)&&!i&&N?.discussion.audioAttachmentId&&!N.discussion.audioDeletedAt&&![`recording`,`paused`,`waiting_for_audio`,`requesting_permission`].includes(f.phase)&&S(!1)},[N,f.phase,i,t]);let Ue=()=>{N&&(m.current=![`recording`,`paused`,`waiting_for_audio`,`requesting_permission`].includes(f.phase),y(!0),m.current&&N.discussion.audioAttachmentId&&!N.discussion.audioDeletedAt&&!i&&S(!1),e(`/notes/${encodeURIComponent(N.note.id)}`))},We=async()=>{if(N)try{F(await se(N.discussion.id))}catch(e){re(e instanceof Error?e.message:d.saveFailed)}},Ge=async e=>{let t=e??f.recoverableDrafts[0];if(!t||H||Ee.current||Oe.current||Te)return;Ee.current=!0,ke.current=!1,ee(!0),S(!0),re(null),K(null),W(0);let n;try{if(n=await qq(t.id),t.gatewayUrl!==r)throw Error(u===`zh`?`请切回录制时的 Gateway 后恢复`:`Return to the original Gateway to recover`);let e=t.consentPolicyVersion;t={...await f.restore(t),consentPolicyVersion:e},he(!1),J(t);let i=await ye();if(Aq(i),i.consentAcknowledgedAt==null||t.consentPolicyVersion!==i.consentPolicyVersion){A(t),O(i.consentPolicyVersion);return}let o=t.serverDiscussionId?await me(t.serverDiscussionId):null;o||=await ue({clientRequestId:t.id,...t.projectId?{contextProjectId:t.projectId}:{},consentPolicyVersion:i.consentPolicyVersion,source:Vl()?`electron`:`web`,recordedAt:t.startedAt}),Ae.current=Promise.resolve(o),F(o),await f.setServerDiscussionId(o.discussion.id);let s=!1;try{await ve(t.id,o.discussion.id),s=!0,a(!1)}catch{a(!0)}if(o.discussion.audioDeletedAt)throw Error(`Original recording was deleted`);if(o.discussion.audioAttachmentId&&[`sealing`,`organizing`,`completed`].includes(o.discussion.status)){s&&(await f.discard(t.id),he(!0));return}if(o.discussion.status===`cancelled`)throw Error(`This recording was cancelled`);o.discussion.audioAttachmentId||await Zi(t,o.discussion.id,W,!0,ce),Me.current?.abort();let c=await me(o.discussion.id);if(!c.discussion.audioAttachmentId||c.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);c.discussion.status===`needs_attention`?F(await fe(o.discussion.id)):F(c),s&&(await f.discard(t.id),he(!0))}catch(e){await f.markUploadFailed(t.id).catch(()=>void 0),ce(`failed`),re(e instanceof Error?e.message:d.saveFailed)}finally{n?.(),Ee.current=!1,ee(!1)}},Ke=async e=>{if(!(Ee.current||Oe.current||[`recording`,`waiting_for_audio`,`paused`,`requesting_permission`,`stopping`].includes(f.phase))){Ee.current=!0,ee(!0),re(null);try{if(e.gatewayUrl!==r)throw Error(`Return to the original Gateway before continuing.`);if(e.sealRequested)throw Error(`Recover and sync this submitted recording first.`);let t=e.serverDiscussionId?await me(e.serverDiscussionId):null;if(t&&(t.discussion.audioAttachmentId||t.recordingJob||![`recording`,`needs_attention`].includes(t.discussion.status)))throw Error(`Recover and sync this submitted recording first.`);if(!await f.start({continuation:e,gatewayUrl:r,onLiveSegment:Le}))return;Ae.current=t?Promise.resolve(t):null,F(t),L(null),he(!1),a(!1),J(null),ce(`pending`),l(!1),S(!0),ke.current=!0}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{Ee.current=!1,ee(!1)}}},qe=async e=>{if(Oe.current||H||Te)return;let t=e??f.recoverableDrafts[0];if(!t)return;let n;try{n=await qq(t.id),await f.discard(t.id)}catch(e){re(e instanceof Error?e.message:d.saveFailed)}finally{n?.()}},Je=async e=>{if(Ee.current||Oe.current||Te)return;Ee.current=!0,ee(!0),re(null);let t;try{t=await qq(e.id);let n=(await Qi()).find(t=>t.id===e.id);if(!n)throw Error(`Recording is no longer available on this device.`);await Qq(n)}catch(e){e instanceof DOMException&&e.name===`AbortError`||re(e instanceof Error?e.message:d.saveFailed)}finally{t?.(),Ee.current=!1,ee(!1)}};if((0,Z.useEffect)(()=>{let e=()=>{f.refreshRecoverableDrafts(),l(!0)};return window.addEventListener(`open-recording-recoveries`,e),()=>window.removeEventListener(`open-recording-recoveries`,e)},[f.refreshRecoverableDrafts]),c)return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[135] flex items-center justify-center bg-black/45 p-4`,role:`dialog`,"aria-modal":`true`,"aria-label":d.recoveredTitle,children:(0,$.jsxs)(`section`,{className:`flex h-[min(40rem,85vh)] w-[min(40rem,95vw)] flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,children:[(0,$.jsxs)(`header`,{className:`flex items-center justify-between border-b border-edge p-4`,children:[(0,$.jsx)(`h2`,{children:d.recoveredTitle}),(0,$.jsx)(X,{onClick:()=>l(!1),children:d.close})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4`,children:[q?(0,$.jsx)(`p`,{role:`alert`,className:`mb-3 text-danger`,children:q}):null,f.recoverableDrafts.length?null:(0,$.jsx)(`p`,{children:u===`zh`?`没有待恢复录音`:`No recordings to recover`}),f.recoverableDrafts.map(e=>(0,$.jsxs)(`article`,{className:`mb-3 rounded-lg border border-edge p-3`,children:[(0,$.jsxs)(`p`,{children:[new Date(e.startedAt).toLocaleString(),` · `,e.id.slice(0,8)]}),(0,$.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[e.gatewayUrl,` · `,e.state===`upload_failed`?d.status.failed:e.sealRequested?d.status.verifying:d.status.pending]}),(0,$.jsxs)(`p`,{className:`text-sm`,children:[u===`zh`?`本机已保存`:`Saved locally`,` · `,Xi(e)===null?u===`zh`?`时长待核实`:`duration unverified`:_J(Xi(e)),` · `,_J(e.durationMs),` `,u===`zh`?`录制时长(中断处可能缺失)`:`capture duration (may contain interruptions)`]}),e.epochs?.slice(1).map(e=>(0,$.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[u===`zh`?`中断后续录`:`Resumed after interruption`,` · `,new Date(e.previousEndedAt??e.startedAt).toLocaleString(),` → `,new Date(e.startedAt).toLocaleString()]},e.firstChunk)),(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Ge(e).then(()=>l(!1)),children:d.recover}),(0,$.jsx)(X,{disabled:H||R||Te||e.sealRequested,onClick:()=>void Ke(e),children:u===`zh`?`继续录制`:`Continue recording`}),(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Je(e),children:u===`zh`?`导出原音包`:`Export originals`}),(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void qe(e),children:u===`zh`?`丢弃本机副本`:`Discard local copy`})]})]},e.id))]})]})});if(!x)return B||ge||!f.recoverableDrafts[0]?null:(0,$.jsxs)(`aside`,{className:`fixed bottom-5 right-5 z-[125] w-[min(24rem,calc(100vw-2rem))] rounded-xl border border-edge bg-surface-overlay p-4 shadow-elevated`,children:[(0,$.jsxs)(`button`,{className:`text-sm font-medium text-fg`,onClick:()=>l(!0),children:[d.recoveredTitle,` (`,f.recoverableDrafts.length,`)`]}),(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:d.recoveredDescription}),(0,$.jsxs)(`div`,{className:`mt-3 flex justify-end gap-2`,children:[(0,$.jsx)(X,{variant:`ghost`,disabled:H||R||Te,onClick:()=>void qe(),children:d.discard}),(0,$.jsx)(X,{variant:`primary`,disabled:H||R||Te,onClick:()=>void Ge(),children:H?d.recovering:d.recover})]})]});if(C!=null)return(0,$.jsx)(`div`,{className:`fixed inset-0 z-[130] flex items-center justify-center bg-black/45 p-4`,role:`dialog`,"aria-modal":`true`,children:(0,$.jsxs)(`div`,{className:`w-[min(28rem,calc(100vw-2rem))] rounded-xl border border-edge bg-surface-overlay p-5 shadow-elevated`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:d.consentTitle}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:d.consent})]}),(0,$.jsx)(`button`,{type:`button`,className:`rounded-lg p-2 text-fg-muted hover:bg-surface-hover`,onClick:()=>{O(null),A(null),S(!1)},children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})})]}),q?(0,$.jsx)(`p`,{className:`mt-3 text-sm text-danger`,children:q}):null,(0,$.jsxs)(X,{variant:`primary`,className:`mt-5 w-full`,disabled:g,onClick:()=>void Ve(),children:[(0,$.jsx)(Ia,{className:`size-4`,"aria-hidden":!0}),k?u===`zh`?`确认并同步已有录音`:`Confirm and sync recording`:d.consentAction]})]})});if(g&&![`recording`,`paused`,`waiting_for_audio`,`requesting_permission`].includes(f.phase))return(0,$.jsx)(Hq,{compact:v,onCompactChange:y,language:u,title:u===`zh`?`准备录音`:`Preparing to record`,children:(0,$.jsxs)(`div`,{className:`space-y-3 p-4`,role:`status`,children:[(0,$.jsx)($o,{className:`h-7 w-24`}),(0,$.jsx)($o,{className:`h-3 w-3/4`})]})});let Ye=[`recording`,`paused`,`requesting_permission`,`waiting_for_audio`].includes(f.phase);if(!Ye&&(R||ge||f.phase===`stopping`||f.phase===`error`)){let e=xe(N,we.localComplete?`complete`:pe?`unknown`:f.phase===`stopping`?`saving`:(f.draft??ge)?.chunkCount?`partial`:`failed`,we.sync),t=async e=>{if(!(o||R||H)){s(!0),re(null);try{e===`sync`||e===`recover`?await Ge(f.draft??ge??void 0):N&&F(e===`analyze`?await D(w(`/api/discussions/${encodeURIComponent(N.discussion.id)}/organize`),{method:`POST`,body:`{}`}):await fe(N.discussion.id,e===`regenerate`?`from_audio`:`resume`))}catch(e){re(String(e))}finally{s(!1)}}};return(0,$.jsx)(Hq,{compact:v,onCompactChange:y,language:u,title:u===`zh`?`录音已结束`:`Recording ended`,subtitle:_J(N?.discussion.durationMs??ge?.durationMs??f.elapsedMs),children:(0,$.jsx)(`div`,{className:`p-3`,children:(0,$.jsxs)(le,{input:e,zh:u===`zh`,compact:v,busy:o||R||H,onRetry:e=>void t(e),children:[i?(0,$.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{children:u===`zh`?`重点同步未完成,原音和笔记处理不受影响。`:`Highlights are not synced yet. Audio and note processing are unaffected.`}),(0,$.jsx)(X,{disabled:o||R||H,onClick:()=>void(async()=>{if(!(!N||!ge||o)){s(!0);try{await ve(ge.id,N.discussion.id),a(!1),N.discussion.audioAttachmentId&&!N.discussion.audioDeletedAt&&(await f.discard(ge.id),he(!0))}catch(e){re(String(e))}finally{s(!1)}}})(),children:u===`zh`?`重试重点同步`:`Retry highlights`})]}):null,q?(0,$.jsxs)(`details`,{className:`text-xs text-danger`,children:[(0,$.jsx)(`summary`,{children:u===`zh`?`操作未完成,查看详情`:`Action incomplete. View details`}),q]}):null,(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[!pe&&f.draft&&f.draft.saveOutcome!==`complete`&&!f.draft.sealRequested&&!R?(0,$.jsx)(X,{disabled:H||o,onClick:()=>void Ke(f.draft),children:u===`zh`?`继续录制`:`Continue recording`}):null,N?(0,$.jsx)(X,{onClick:Ue,children:d.openNote}):null,!pe&&f.draft?.chunkCount&&!R?(0,$.jsx)(X,{onClick:()=>void Je(f.draft),children:u===`zh`?`导出已录内容`:`Export saved audio`}):null,we.localComplete||e.audioAvailable||e.localSave===`failed`?(0,$.jsx)(X,{onClick:()=>S(!1),children:e.localSave===`failed`?d.close:u===`zh`?`稍后查看`:`View later`}):null]})]})})})}let Xe=N?.discussion.projectId&&N.discussion.projectInferenceSource!==`context`,Ze=u===`zh`,Qe=we.capture===`recording`?Ze?`录音中`:`Recording`:d.status[we.capture],$e=N?.note.title&&!/^Discussion [·•]/.test(N.note.title)?N.note.title:Ze?`语音笔记`:`Voice note`,et=e=>(0,$.jsxs)($.Fragment,{children:[f.phase===`recording`?(0,$.jsxs)(X,{className:e?`size-10 shrink-0 px-0 shadow-none`:`min-w-0 whitespace-nowrap shadow-none`,title:Ze?`标重点`:`Highlight`,"aria-label":Ze?`标重点`:`Highlight`,onClick:()=>void f.mark(),children:[(0,$.jsx)(oe,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:Ze?`标重点`:`Highlight`]}):null,f.phase===`recording`||f.phase===`waiting_for_audio`?(0,$.jsxs)(X,{className:e?`size-10 shrink-0 px-0 shadow-none`:`min-w-0 whitespace-nowrap shadow-none`,"aria-label":d.pause,title:d.pause,onClick:f.pause,children:[(0,$.jsx)(eo,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:d.pause]}):null,f.phase===`paused`?(0,$.jsxs)(X,{className:e?`size-10 shrink-0 px-0 shadow-none`:`min-w-0 whitespace-nowrap shadow-none`,"aria-label":d.resume,title:d.resume,onClick:f.resume,children:[(0,$.jsx)(lo,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:d.resume]}):null,[`recording`,`waiting_for_audio`,`paused`].includes(f.phase)?(0,$.jsxs)(X,{variant:`primary`,className:e?`size-10 shrink-0 px-0`:`min-w-0 whitespace-nowrap`,"aria-label":d.stop,title:d.stop,disabled:R,onClick:()=>void He(),children:[(0,$.jsx)(Fo,{className:`size-4 shrink-0`,"aria-hidden":!0}),e?null:d.stop]}):null]}),tt=q??f.error??f.markerError??(Se&&we.sync===`failed`?ne:null),nt=we.capture===`interrupted`?Ze?`录音已中断,请展开查看已保存内容。`:`Recording interrupted. Review the saved content.`:f.markerError?Ze?`重点未能保存,请稍后重试。`:`Highlight could not be saved. Try again.`:we.sync===`failed`?Ze?`暂时无法同步,请稍后重试。`:`Sync is unavailable. Please try again later.`:Ze?`操作未完成,请查看详情。`:`Could not complete this action. View details.`;return(0,$.jsx)(Hq,{compact:v,onCompactChange:y,language:u,title:v?(0,$.jsx)(`span`,{className:`font-mono`,children:_J(f.elapsedMs)}):(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 shrink-0 rounded-full ${we.capture===`recording`?`bg-danger`:`bg-accent`}`,"aria-hidden":!0}),Qe]}),subtitle:v?Qe:$e,compactActions:et(!0),children:v?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Kq,{status:we,language:u,compact:!0}),we.capture===`interrupted`||tt?(0,$.jsx)(`p`,{role:`alert`,className:`px-3 pb-2 text-xs text-danger`,children:nt}):null,f.markerMessage?(0,$.jsx)(`p`,{role:`status`,className:`px-3 pb-2 text-xs text-accent-fg`,children:Ze?`已标记重点`:`Highlight saved`}):null]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`space-y-3 px-4 py-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,$.jsx)(`p`,{className:`font-mono text-[2.5rem] leading-none tabular-nums tracking-tight text-fg`,children:_J(f.elapsedMs)}),we.capture===`recording`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-fg-muted`,children:[f.inputLevel==null?null:(0,$.jsx)(`div`,{role:`meter`,"aria-label":d.status.level,"aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":f.inputLevel,className:`flex h-6 items-center gap-0.5`,children:[0,1,2,3,4].map(e=>(0,$.jsx)(`span`,{className:`w-1 rounded-full ${f.inputLevel>e*.12?`bg-accent`:`bg-surface-active`}`,style:{height:6+Math.min(1,f.inputLevel*3)*(e%2?10:18)}},e))}),(0,$.jsx)(`span`,{children:f.inputLevel==null?d.status.levelUnknown:Ze?`声音输入`:`Sound input`})]}):null]}),(0,$.jsx)(Kq,{status:we,language:u}),we.sync===`offline`?(0,$.jsx)(`p`,{role:`status`,className:`rounded-lg bg-surface-inset px-3 py-2 text-xs leading-5 text-fg-muted`,children:Ze?`离线录音,联网后自动同步。`:`Recording offline. Sync resumes when connected.`}):null,we.ai===`textDelayed`?(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-muted`,children:d.status.textDelayed}):null,(0,$.jsxs)(`details`,{className:`group rounded-xl bg-surface-inset px-3 py-2.5`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer text-xs font-medium text-fg-muted outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:Ze?`查看实时文字`:`Live transcript`}),(0,$.jsx)(`div`,{className:`mt-2 max-h-32 overflow-y-auto whitespace-pre-wrap text-sm leading-6 text-fg`,children:I?.text||(f.liveTranscriptionAvailable?Ze?`说话后,文字会陆续显示。`:`Text will appear as you speak.`:d.liveUnavailable)})]}),Xe?(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{children:d.projectLinked}),(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex min-h-8 shrink-0 items-center gap-1 text-accent-fg`,onClick:()=>void We(),children:[(0,$.jsx)(yn,{className:`size-3`,"aria-hidden":!0}),d.undo]})]}):null,R&&U>0?(0,$.jsx)(`div`,{role:`progressbar`,"aria-label":Ze?`备份录音`:`Recording backup`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(U),className:`h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full bg-accent motion-safe:transition-[width]`,style:{width:`${U}%`}})}):null,f.markerMessage?(0,$.jsx)(`p`,{role:`status`,className:`text-xs text-accent-fg`,children:Ze?`已标记重点,可稍后回听。`:`Highlight saved for review.`}):null,tt?(0,$.jsx)(`div`,{role:`alert`,children:(0,$.jsxs)(`details`,{className:`text-sm leading-5 text-danger`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer`,children:nt}),(0,$.jsx)(`p`,{className:`mt-2 break-words text-xs text-fg-muted`,children:tt})]})}):null]}),(0,$.jsxs)(`footer`,{className:`space-y-2 border-t border-edge-subtle px-4 py-3`,children:[(0,$.jsx)(`div`,{className:`grid grid-flow-col auto-cols-fr gap-2`,children:et(!1)}),(f.phase===`error`||f.phase===`stopped`)&&f.draft&&!R?(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Ge(f.draft),children:d.recover}),(0,$.jsx)(X,{disabled:H||R||Te||f.draft.sealRequested,onClick:()=>void Ke(f.draft),children:Ze?`继续录制`:`Continue recording`}),(0,$.jsx)(X,{disabled:H||R||Te,onClick:()=>void Je(f.draft),children:Ze?`导出原音包`:`Export originals`})]}):null,(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{className:`whitespace-nowrap`,children:d.maxDuration}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[N?(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex min-h-9 items-center gap-1 whitespace-nowrap text-accent-fg`,onClick:Ue,children:[(0,$.jsx)(mi,{className:`size-3.5`,"aria-hidden":!0}),d.openNote]}):null,!Ye&&(!R||we.localComplete)?(0,$.jsx)(`button`,{type:`button`,className:`min-h-9 rounded px-2 hover:bg-surface-hover`,"aria-label":d.close,onClick:()=>S(!1),children:d.close}):null]})]})]})]})})}var yJ=4e3;function bJ(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=typeof t.conversationId==`string`?t.conversationId.trim():``,r=typeof t.runId==`string`?t.runId.trim():``;return n&&r?{conversationId:n,runId:r}:null}function xJ(e){let t=bJ(e);if(!t||!e||typeof e!=`object`)return null;let n=e.status;return n!==`success`&&n!==`error`&&n!==`cancelled`&&n!==`suspended`?null:{...t,status:n}}async function SJ(){let e=await x(w(`/api/session-runs`));if(!e.ok)throw Error(`Active session runs failed (${e.status})`);let t=await e.json();if(!Array.isArray(t.payload?.runs))throw Error(`Active session runs response is invalid`);return t.payload.runs.map(bJ).filter(e=>!!e)}function CJ(e){window.dispatchEvent(new CustomEvent(`session-transcript-updated`,{detail:{key:e}}))}function wJ(){let e=!1,t,n,r=new Map,i=({conversationId:e,runId:t})=>`${e}\u0000${t}`,a=({conversationId:e,runId:t},n=!1)=>{r.has(i({conversationId:e,runId:t}))||(zs(e)!==t&&Us(e,t),Ms.setResumeRunId(e,t),ht(e),n&&window.dispatchEvent(new CustomEvent(`run-started`,{detail:{conversationId:e,runId:t}})))},o=({conversationId:e,runId:t})=>{let n=Ms.reconcileInactive(e,t),r=Ls(e,t);!n&&r&&Is.getState().clearStreamingState(e),(n||r)&&(Oe(e),CJ(e))},s=({conversationId:e,runId:t,status:n})=>{r.set(i({conversationId:e,runId:t}),Date.now());let a=Ms.reconcileTerminal(e,t,n),o=Ls(e,t);if(!a&&o){Is.getState().clearStreamingState(e);let t=Is.getState().focusedConversationId===e;n===`error`?Re(e,!t):n===`suspended`?Ce(e):n===`success`?De(e,!t):Oe(e),CJ(e)}},c=()=>{e||t!==void 0||qs().length===0||(t=window.setTimeout(()=>{t=void 0,l()},yJ))},l=()=>{if(n)return n;let t=qs();return n=SJ().then(n=>{if(e)return;let i=Date.now()-10*6e4;for(let[e,t]of r)t<i&&r.delete(e);let s=new Map(n.map(e=>[e.conversationId,e.runId])),c=new Map(t.map(e=>[e.conversationId,e.runId]));for(let e of n){let t=zs(e.conversationId),n=c.get(e.conversationId);t&&t!==n&&t!==e.runId||a(e,!0)}for(let e of t)s.get(e.conversationId)!==e.runId&&o(e)}).catch(()=>{}).finally(()=>{n=void 0,c()}),n},u=e=>{let t=bJ(e.detail);t&&(a(t),c())},d=e=>{let t=xJ(e.detail);t&&s(t)},f=e=>{let t=bJ(e.detail);t&&(r.set(i(t),Date.now()),o(t))},p=()=>void l();return window.addEventListener(`session-input-interrupt`,f),window.addEventListener(`run-started`,u),window.addEventListener(`run-completed`,d),window.addEventListener(`agent-run-ended`,d),window.addEventListener(`gateway-realtime-connected`,p),l(),()=>{e=!0,t!==void 0&&window.clearTimeout(t),window.removeEventListener(`session-input-interrupt`,f),window.removeEventListener(`run-started`,u),window.removeEventListener(`run-completed`,d),window.removeEventListener(`agent-run-ended`,d),window.removeEventListener(`gateway-realtime-connected`,p)}}var TJ=new Set([`automation-chat-agents`,`channel-routing-agents`,`gateway-chat-agents`,`picker-agents-list`,`settings-gateway-agents`,`setup-checklist-agents`]);function EJ(e){let t=Array.isArray(e)?e[0]:e;return typeof t==`string`&&TJ.has(t)}function DJ(){let e=(0,Q.c)(3),t=T(MJ),n;e[0]===t?n=e[1]:(n=[t],e[0]=t,e[1]=n),(0,Z.useEffect)(jJ,n);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[2]=r):r=e[2],(0,Z.useEffect)(OJ,r)}function OJ(){let e=AJ,t=kJ;return window.addEventListener(`online`,e),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(`online`,e),document.removeEventListener(`visibilitychange`,t)}}function kJ(){document.visibilityState===`visible`&&Ec()}function AJ(){return Ec()}function jJ(){return wc()}function MJ(e){return e.conversationId}function NJ(e){let t=new Set;return(n,r)=>{let i=Xs.safeParse(r);if(!i.success)return;let a=i.data;n!==`resources:${a.kind}s`||t.has(a.eventId)||(t.add(a.eventId),t.size>1024&&t.delete(t.values().next().value),e(a))}}function PJ(e,t){let n=Array.isArray(e)?e[0]:e;return typeof n==`string`&&(n===t||n.startsWith(`${t}-`)||n.startsWith(`${t}s`))}function FJ(){DJ();let{mutate:e}=ac(),t=T(e=>e.conversationId);return(0,Z.useEffect)(()=>ec(),[]),(0,Z.useEffect)(()=>wJ(),[]),(0,Z.useEffect)(()=>{let n=(t,n)=>{e(e=>PJ(e,t)),t===`project`&&window.dispatchEvent(new CustomEvent(`project-resource-changed`,{detail:{id:n}})),t===`task`&&window.dispatchEvent(new CustomEvent(`task-updated`,{detail:{id:n}}))},r=NJ(e=>{e.kind!==`note`&&e.kind!==`task`&&e.kind!==`project`||(n(e.kind,e.id),e.kind===`note`&&window.dispatchEvent(new CustomEvent(`note-updated`,{detail:{noteId:e.id}})))}),i=0,a=[],o=async()=>{let e=++i;a.forEach(e=>e()),a=[];try{let{capabilities:t}=await D(w(`/api/capabilities/operations`));if(e!==i)return;a=[`note`,`task`,`project`].filter(e=>t.some(t=>t.id===`xopc.${e}s.list`)).map(e=>{let t=bc(`resources:${e}s`,{onEvent:e=>{e.event===`resource.changed`&&r(e.topic,e.data)},onGap:()=>n(e)},0);return n(e),t})}catch{}},s=()=>{o()};return t&&o(),window.addEventListener(`gateway-realtime-connected`,s),()=>{i++,a.forEach(e=>e()),window.removeEventListener(`gateway-realtime-connected`,s)}},[e,t]),(0,Z.useEffect)(()=>{let t=()=>{Ku(),e(EJ)},n=e=>{MK();let t=pc(e.detail);t===`skills`?Ju():t===`agents`&&Ku()},r=t=>{let n=t.detail?.topic;(n===`gateway`||n===`sessions`)&&e(()=>!0)};return window.addEventListener(`agent-catalog`,t),window.addEventListener(`config-reload`,n),window.addEventListener(`realtime-gap`,r),()=>{window.removeEventListener(`agent-catalog`,t),window.removeEventListener(`config-reload`,n),window.removeEventListener(`realtime-gap`,r)}},[e]),null}async function IJ(e){let t=window.electronAPI?.system;if(!Vl()||!t?.showProductNotification)return!1;let n=await t.getBehavior().catch(()=>null);if(!n||!tn({notification:e,preferences:{enabled:n.notifyEnabled,completed:!0,failed:!0},permissionGranted:!0,appFocused:e.waitId?Qt(e):nn(e),alreadyDelivered:$t(e.id)}).notify)return!1;let r=await t.showProductNotification({id:e.id,title:e.title,body:e.body,target:e.target,...e.waitId&&!Qt(e)?{allowWhenFocused:!0}:{}}).catch(()=>null);return r?.ok&&r.outcome===`shown`?(rn(e.id),!0):!1}var LJ=`xopc.notifications.cursor.v1`,RJ=`xopc.notifications.consumer.v1`;function zJ(e){try{return window.localStorage.getItem(e)}catch{return null}}function BJ(e,t){try{window.localStorage.setItem(e,t)}catch{}}function VJ(){return zJ(LJ)}function HJ(e){BJ(LJ,e)}function UJ(){let e=zJ(RJ);if(e)return e;let t=globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`;return BJ(RJ,t),t}async function WJ(){let e=[],t=VJ();for(let n=0;n<10;n+=1){let n=new URLSearchParams({since:String(Date.now()-5*6e4),limit:`100`});t&&n.set(`after`,t);let r=await x(`/api/notifications?${n}`);if(!r.ok)break;let i=await r.json().catch(()=>null);if(!Array.isArray(i?.items))break;let a=i.items.flatMap(e=>{let t=lz.safeParse(e);return t.success?[t.data]:[]});if(e.push(...a),t=a.at(-1)?.id??t,i.items.length<100||a.length===0)break}return e}async function GJ(e){await x(`/api/notifications/${encodeURIComponent(e)}/ack`,{method:`POST`,body:JSON.stringify({consumerId:UJ(),surface:Vl()?`electron`:`web`})}).catch(()=>null)}async function KJ(e){if(e.type!==`chat.needs_input`)return!0;if(e.target.kind!==`chat`||typeof e.payload.waitId!=`string`)return!1;let t=await x(`/api/sessions/${encodeURIComponent(e.target.conversationId)}/clarification`);if(t.status===404)return!1;if(!t.ok)throw Error(`Could not refresh clarification notification`);let n=(await t.json()).payload;return n.transcriptId===e.payload.transcriptId&&n.clarification?.id===e.payload.waitId&&n.clarification.status===`open`&&(n.clarification.expiresAt===void 0||n.clarification.expiresAt>Date.now())}function qJ(e){let t=lz.safeParse(e);return t.success?t.data:null}function JJ(e,t){let n=uz(e,t),r=e.type===`chat.failed`||e.type===`task.blocked`||e.type===`task.failed`||e.type===`task.needs_input`||e.type===`automation.failed`||e.type===`work_discovery.failed`,i=e.target.kind===`automation_run`?`automation`:e.target.kind===`work_discovery`?`understanding`:e.target.kind;return{systemAllowed:e.payload.deliveryMode!==`auto`&&(!e.payload.deliveryChannel||[`all`,`browser`].includes(String(e.payload.deliveryChannel))),id:e.id,title:n.localizedTitle,body:n.localizedBody??n.localizedTitle,route:dz(e.target,`web`),target:e.target,...e.type===`chat.needs_input`&&typeof e.payload.waitId==`string`?{waitId:e.payload.waitId}:{},status:e.type===`chat.needs_input`||e.type===`task.needs_input`?`attention`:r?`error`:`success`,source:i}}function YJ(){let e=(0,Q.c)(3),t=E(eY),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=!0,n=null,r=new Set,i=new Map,a=Promise.resolve(),o=(n,o,s)=>{let c=o===void 0||o,l=s===void 0||s;return a=a.catch($J).then(async()=>{if(!e)return;let a=qJ(n);if(!a)return;if(r.has(a.id)){l&&HJ(a.id);return}let o=await KJ(a);if(!e)return;if(r.add(a.id),!o){l&&HJ(a.id);return}let s=JJ(a,t);s.waitId&&i.set(s.waitId,a.id),(s.waitId?Qt(s):nn(s))||_l({tone:s.status===`attention`?`warning`:s.status===`success`?`success`:`error`,title:s.title,message:s.body,source:s.source,href:s.route,dedupeKey:s.id}),c&&(a.type!==`chat.needs_input`||a.createdAt>=Date.now()-3e5)&&(IJ(s),an(s)),l&&HJ(a.id),GJ(a.id)}),a},s=()=>n||(n=WJ().then(async t=>{if(e){let e=Date.now()-3e5;for(let n of t)await o(n,n.createdAt>=e)}}).catch(QJ).finally(()=>{n=null}),n),c=e=>{o(e.detail,!0,!1).catch(ZJ),s().then(()=>s())},l=()=>void s(),u=e=>{let t=e.detail;if(!t||t.status===`open`)return;let n=i.get(t.id);if(!n)return;let r=gl.getState();for(let e of r.items)e.dedupeKey===n&&r.remove(e.id);i.delete(t.id)};window.addEventListener(`clarification-updated`,u),window.addEventListener(`notification-created`,c),window.addEventListener(`realtime-gap`,l),window.addEventListener(`gateway-realtime-connected`,l),window.addEventListener(`online`,l),window.addEventListener(`focus`,l),s();let d=XJ;return navigator.serviceWorker?.addEventListener(`message`,d),()=>{e=!1,window.removeEventListener(`clarification-updated`,u),window.removeEventListener(`notification-created`,c),window.removeEventListener(`realtime-gap`,l),window.removeEventListener(`gateway-realtime-connected`,l),window.removeEventListener(`online`,l),window.removeEventListener(`focus`,l),navigator.serviceWorker?.removeEventListener(`message`,d)}},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function XJ(e){let t=e.data;t?.type!==`xopc:notification-click`||typeof t.route!=`string`||t.route.startsWith(`/`)&&!t.route.startsWith(`//`)&&(window.location.hash=t.route)}function ZJ(){}function QJ(){}function $J(){}function eY(e){return e.language}async function tY(e){let t=await D(w(`/api/support/report`),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});return{report:t.report,investigationPrompt:t.investigationPrompt}}function nY(e){let t=new Date(e.capturedAt).toISOString().replace(/[:.]/g,`-`),n=new Blob([JSON.stringify(e,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`xopc-diagnostics-${t}.json`,i.click(),URL.revokeObjectURL(r)}function rY(e,t){let n=6e3,r=e.markdown.length<=n?e.markdown:`${e.markdown.slice(0,n)}\n\n---\n${t}`;return`https://github.com/xopcai/xopc/issues/new?${new URLSearchParams({title:e.title,body:r}).toString()}`}async function iY(e){let t=window.electronAPI?.shell?.openExternalUrl;if(t)try{return(await t(e)).ok}catch{return!1}return window.open(e,`_blank`,`noopener,noreferrer`)!==null}function aY(e){let t=new TextEncoder().encode(e),n=``,r=32768;for(let e=0;e<t.length;e+=r)n+=String.fromCharCode(...t.subarray(e,e+r));return{type:`file`,mimeType:`text/markdown`,data:btoa(n),name:`xopc-diagnostics.md`,size:t.byteLength}}async function oY(e,t,n={}){let r=n.fetch??D,i=n.create?await n.create():(await new Js().createSession({agentId:`main`})).key;return await(n.send??tc)(i,t,[aY(e.markdown)]),await r(w(`/api/sessions/${encodeURIComponent(i)}`),{method:`PATCH`,body:JSON.stringify({name:e.title,tags:[`support`],replaceTags:!0,customData:{kind:`support-investigation`,supportReportCapturedAt:e.capturedAt}})}).catch(()=>void 0),i}function sY({open:e,onOpenChange:t,seed:n}){let r=P(E(e=>e.language)).supportReport,i=(0,Z.useRef)(null),[a,o]=(0,Z.useState)(``),[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(null),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{e&&(o(n?.problem??``),c(n?.reproduction??``),u(n?.expected??``),f(null),m(``),g(!1),v(!1),b(null),S(null))},[e,n]);async function C(){let e=a.trim();if(!e){b(r.problemRequired);return}g(!0),b(null),S(null);try{let t=await tY({...n,problem:e,reproduction:s.trim()||void 0,expected:l.trim()||void 0,occurredAt:n?.occurredAt??new Date().toISOString(),clientContext:{currentPage:window.location.href,surface:window.electronAPI?`electron`:`web`,userAgent:navigator.userAgent,...n?.clientContext}});f(t.report),m(t.investigationPrompt)}catch(e){b(e instanceof Error?e.message:r.collectFailed)}finally{g(!1)}}async function w(){if(!d)return!1;let e=await il(d.markdown);return S(e?r.copied:r.copyFailed),e||(i.current?.focus(),i.current?.select()),e}async function T(){d&&(d.markdown.length>6e3&&await w(),await iY(rY(d,r.githubTruncated))||b(r.openFailed))}async function D(){if(!(!d||!p)){v(!0),b(null);try{let e=await oY(d,p);t(!1),window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{conversationId:e}}))}catch(e){b(e instanceof Error?e.message:r.sessionFailed)}finally{v(!1)}}}return(0,$.jsx)(ee,{open:e,onOpenChange:t,children:(0,$.jsxs)(B,{children:[(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[220] bg-scrim`}),(0,$.jsxs)(V,{className:Y(`xopc-dialog-content fixed left-1/2 top-1/2 z-[221] flex h-[min(42rem,calc(100vh-2rem))] w-[min(42rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,`rounded-2xl border border-edge bg-surface-overlay shadow-popover dark:border-edge`),children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge px-5 py-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(H,{className:`text-base font-semibold text-fg`,children:r.title}),(0,$.jsx)(R,{className:`mt-1 text-sm text-fg-muted`,children:r.subtitle})]}),(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,"aria-label":r.close,children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})})})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:[h?(0,$.jsxs)(`div`,{className:`space-y-4`,"aria-label":r.collecting,children:[(0,$.jsx)($o,{className:`h-20 w-full`}),(0,$.jsx)($o,{className:`h-24 w-full`}),(0,$.jsx)($o,{className:`h-32 w-full`})]}):d?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-3 rounded-xl bg-accent-soft px-3 py-2.5 text-sm text-accent-fg`,children:[(0,$.jsx)(Oo,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":!0}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`font-medium`,children:r.ready}),(0,$.jsx)(`p`,{className:`mt-0.5 text-xs leading-5`,children:r.readyDetail.replace(`{{checks}}`,String(d.doctor.length)).replace(`{{logs}}`,String(d.logs.length)).replace(`{{redactions}}`,String(d.redaction.replacements))})]})]}),(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-report-preview`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.preview}),(0,$.jsx)(`textarea`,{ref:i,id:`support-report-preview`,value:d.markdown,readOnly:!0,className:`h-96 w-full resize-none rounded-xl border border-edge bg-surface-base p-3 font-mono text-xs leading-5 text-fg outline-none focus:border-accent`})]}),(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-xs leading-5 text-fg-muted`,children:[(0,$.jsx)(Mo,{className:`mt-0.5 size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),r.investigationHint]})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-problem`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.problem}),(0,$.jsx)(`textarea`,{id:`support-problem`,value:a,onChange:e=>o(e.target.value),placeholder:r.problemPlaceholder,className:`min-h-28 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent`,autoFocus:!0})]}),(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-reproduction`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.reproduction}),(0,$.jsx)(`textarea`,{id:`support-reproduction`,value:s,onChange:e=>c(e.target.value),placeholder:r.reproductionPlaceholder,className:`min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent`})]}),(0,$.jsxs)(`label`,{className:`block`,htmlFor:`support-expected`,children:[(0,$.jsx)(`span`,{className:`mb-1.5 block text-xs font-medium text-fg-muted`,children:r.expected}),(0,$.jsx)(`textarea`,{id:`support-expected`,value:l,onChange:e=>u(e.target.value),placeholder:r.expectedPlaceholder,className:`min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent`})]}),(0,$.jsxs)(`p`,{className:`flex items-start gap-2 text-xs leading-5 text-fg-muted`,children:[(0,$.jsx)(Oo,{className:`mt-0.5 size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),r.privacy]})]}),y?(0,$.jsx)(`p`,{className:`mt-4 text-sm text-warning`,role:`alert`,children:y}):null,x?(0,$.jsxs)(`p`,{className:`mt-4 flex items-center gap-2 text-sm text-accent-fg`,role:`status`,children:[(0,$.jsx)(Vn,{className:`size-4`,"aria-hidden":!0}),x]}):null]}),(0,$.jsx)(`footer`,{className:`flex shrink-0 flex-wrap justify-end gap-2 border-t border-edge px-5 py-3`,children:d?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(X,{variant:`ghost`,disabled:_,onClick:()=>{f(null),m(``)},children:r.back}),(0,$.jsxs)(X,{onClick:()=>void w(),children:[(0,$.jsx)(bv,{className:`size-4`,"aria-hidden":!0}),r.copy]}),(0,$.jsxs)(X,{onClick:()=>nY(d),children:[(0,$.jsx)(Ur,{className:`size-4`,"aria-hidden":!0}),r.download]}),(0,$.jsxs)(X,{onClick:()=>void T(),children:[(0,$.jsx)(Kr,{className:`size-4`,"aria-hidden":!0}),r.submit]}),(0,$.jsxs)(X,{variant:`primary`,disabled:_,onClick:()=>void D(),children:[_?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(Mo,{className:`size-4`,"aria-hidden":!0}),_?r.startingInvestigation:r.startInvestigation]})]}):(0,$.jsxs)(X,{variant:`primary`,disabled:h,onClick:()=>void C(),children:[h?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,h?r.collecting:r.collect]})})]})]})})}function cY(e){if(!e.startsWith(`/chat/`)||e.startsWith(`/chat/task/`))return;let t=e.slice(6);if(!(!t||t===`new`))try{return decodeURIComponent(t)}catch{return}}function lY(){let e=(0,Q.c)(6),{pathname:t}=p(),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(),o,s;e[0]===t?(o=e[1],s=e[2]):(o=()=>{let e=e=>{let n=e.detail??{};a({conversationId:cY(t),...n}),r(!0)};return window.addEventListener(eH,e),()=>window.removeEventListener(eH,e)},s=[t],e[0]=t,e[1]=o,e[2]=s),(0,Z.useEffect)(o,s);let c;return e[3]!==n||e[4]!==i?(c=(0,$.jsx)(sY,{open:n,onOpenChange:r,seed:i}),e[3]=n,e[4]=i,e[5]=c):c=e[5],c}function uY(e){let t=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}var dY=`inline-flex size-11 shrink-0 items-center justify-center rounded-full text-fg hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent motion-safe:transition-colors`;function fY(){let e=(0,Q.c)(29),t=E(mY)===`zh`,n=Xt(),r=ft(),[i,a]=(0,Z.useState)(!1),o=(0,Z.useId)(),s=n.source&&n.status!==`idle`,c=n.status===`preparing`,l=n.status===`playing`,u=n.status===`error`,d=n.status===`ended`,f=c?t?`正在准备语音`:`Preparing audio`:u?t?`朗读失败,请重试`:`Unable to play. Try again`:d?t?`播放完毕`:`Finished`:l?t?`正在朗读`:`Reading aloud`:t?`已暂停`:`Paused`,p;e[0]===n.source?p=e[1]:(p=e=>{let t=n.source?.targetId?document.getElementById(n.source.targetId):null;t&&(e.preventDefault(),t.scrollIntoView({behavior:`smooth`,block:`center`}))},e[0]=n.source,e[1]=p);let m=p,h;e[2]!==o||e[3]!==r||e[4]!==d||e[5]!==i||e[6]!==u||e[7]!==l||e[8]!==c||e[9]!==m||e[10]!==n||e[11]!==f||e[12]!==s||e[13]!==t?(h=s?(0,$.jsx)(`section`,{"aria-label":t?`语音播报`:`Read aloud`,className:Y(`shrink-0`,r?`pb-2`:`px-3 pb-[max(0.75rem,env(safe-area-inset-bottom))] pt-2`),children:(0,$.jsxs)(`div`,{className:`mx-auto w-full max-w-3xl overflow-hidden rounded-xl border border-edge bg-surface-overlay`,children:[(0,$.jsxs)(`div`,{className:`flex min-h-16 items-center gap-1 p-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>a(!i),"aria-expanded":i,"aria-controls":o,className:`flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-lg px-2 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:n.source?.title}),(0,$.jsxs)(`span`,{className:`block text-xs text-fg-muted`,children:[(0,$.jsx)(`span`,{role:`status`,children:f}),!u&&!c?(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[` · `,uY(n.currentTime)]}):null]})]}),(0,$.jsx)(Hn,{"aria-hidden":!0,className:Y(`size-4 shrink-0 text-fg-muted`,i&&`rotate-180`)})]}),(0,$.jsx)(`button`,{type:`button`,onClick:l?n.pause:n.resume,disabled:c,className:Y(dY,`disabled:opacity-50`),"aria-label":d?t?`重新播放`:`Replay`:u?t?`重试朗读`:`Retry reading`:l?t?`暂停朗读`:`Pause reading`:t?`继续朗读`:`Resume reading`,children:c?(0,$.jsx)($o,{className:`size-5 rounded-full`}):u?(0,$.jsx)(yo,{className:`size-5`,"aria-hidden":!0}):l?(0,$.jsx)(eo,{className:`size-5`,"aria-hidden":!0}):(0,$.jsx)(lo,{className:`size-5`,"aria-hidden":!0})}),(0,$.jsx)(`button`,{type:`button`,onClick:n.stop,className:dY,"aria-label":t?`停止朗读`:`Stop reading`,children:(0,$.jsx)(Zo,{className:`size-5`,"aria-hidden":!0})})]}),n.durationComplete&&!i?(0,$.jsx)(`div`,{className:`h-0.5 bg-surface-active`,"aria-hidden":!0,children:(0,$.jsx)(`div`,{className:`h-full bg-accent`,style:{width:`${Math.min(100,n.currentTime/n.duration*100)}%`}})}):null,i?(0,$.jsxs)(`div`,{id:o,className:`space-y-3 border-t border-edge-subtle p-4`,children:[n.durationComplete?(0,$.jsx)(hY,{duration:n.duration,currentTime:n.currentTime,disabled:c,onSeek:n.seek,label:t?`播放进度`:`Playback position`},`${n.source?.type}:${n.source?.id}`):null,n.currentText?(0,$.jsx)(`p`,{className:`max-h-28 overflow-y-auto overscroll-contain whitespace-pre-wrap break-words text-sm text-fg-muted`,children:n.currentText}):null,n.source?.href?(0,$.jsx)(`a`,{href:n.source.href,onClick:m,className:`inline-flex min-h-11 items-center rounded-lg text-sm text-accent-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:t?`返回来源`:`Return to source`}):null,u?(0,$.jsx)(`p`,{role:`alert`,className:`break-words text-sm text-fg-muted`,children:n.error}):null,(0,$.jsx)(er,{contentClassName:`[&_button]:min-h-11`,value:String(n.rate),allowEmpty:!1,placeholder:`1×`,ariaLabel:t?`播放速度`:`Playback speed`,options:[.75,1,1.25,1.5,2].map(pY),triggerClassName:`min-h-11 w-28`,onChange:e=>n.setRate(Number(e))})]}):null]})}):null,e[2]=o,e[3]=r,e[4]=d,e[5]=i,e[6]=u,e[7]=l,e[8]=c,e[9]=m,e[10]=n,e[11]=f,e[12]=s,e[13]=t,e[14]=h):h=e[14];let g=h,_;e[15]!==r||e[16]!==g?(_=r?(0,wd.createPortal)(g,r):g,e[15]=r,e[16]=g,e[17]=_):_=e[17];let v=t?`使用在线朗读`:`Use online read aloud`,y=t?`朗读默认使用 Microsoft Edge 在线语音服务,待朗读文本会发送至 Microsoft 进行语音合成。`:`Read aloud uses Microsoft Edge online speech by default. The text will be sent to Microsoft for speech synthesis.`,b=t?`同意并朗读`:`Agree and read`,x=t?`取消`:`Cancel`,S;e[18]!==n.acceptConsent||e[19]!==n.consentRequired||e[20]!==n.declineConsent||e[21]!==v||e[22]!==y||e[23]!==b||e[24]!==x?(S=(0,$.jsx)(Tu,{open:n.consentRequired,title:v,description:y,confirmLabel:b,cancelLabel:x,onConfirm:n.acceptConsent,onCancel:n.declineConsent}),e[18]=n.acceptConsent,e[19]=n.consentRequired,e[20]=n.declineConsent,e[21]=v,e[22]=y,e[23]=b,e[24]=x,e[25]=S):S=e[25];let C;return e[26]!==_||e[27]!==S?(C=(0,$.jsxs)($.Fragment,{children:[_,S]}),e[26]=_,e[27]=S,e[28]=C):C=e[28],C}function pY(e){return{value:String(e),label:`${e}×`}}function mY(e){return e.language}function hY(e){let t=(0,Q.c)(25),{duration:n,currentTime:r,disabled:i,onSeek:a,label:o}=e,[s,c]=(0,Z.useState)(null),l;t[0]!==a||t[1]!==s?(l=()=>{s!==null&&(a(s),c(null))},t[0]=a,t[1]=s,t[2]=l):l=t[2];let u=l,d;t[3]===o?d=t[4]:(d=(0,$.jsx)(`span`,{children:o}),t[3]=o,t[4]=d);let f=s??r,p;t[5]===f?p=t[6]:(p=uY(f),t[5]=f,t[6]=p);let m;t[7]===n?m=t[8]:(m=uY(n),t[7]=n,t[8]=m);let h;t[9]!==p||t[10]!==m?(h=(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[p,` / `,m]}),t[9]=p,t[10]=m,t[11]=h):h=t[11];let g;t[12]!==d||t[13]!==h?(g=(0,$.jsxs)(`span`,{className:`flex justify-between gap-3`,children:[d,h]}),t[12]=d,t[13]=h,t[14]=g):g=t[14];let _=s??Math.min(r,n),v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>c(Number(e.target.value)),t[15]=v):v=t[15];let y;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>c(null),t[16]=y):y=t[16];let b;t[17]!==u||t[18]!==i||t[19]!==n||t[20]!==_?(b=(0,$.jsx)(`input`,{type:`range`,min:0,max:n,step:.1,value:_,disabled:i,onChange:v,onPointerUp:u,onKeyUp:u,onBlur:u,onPointerCancel:y,className:`block h-11 w-full accent-accent`}),t[17]=u,t[18]=i,t[19]=n,t[20]=_,t[21]=b):b=t[21];let x;return t[22]!==b||t[23]!==g?(x=(0,$.jsxs)(`label`,{className:`block text-xs text-fg-muted`,children:[g,b]}),t[22]=b,t[23]=g,t[24]=x):x=t[24],x}function gY(){let e=(0,Q.c)(11),t=b(),n=T(vY),r=$u(_Y),i=(0,Z.useRef)(!1),a=(0,Z.useRef)(!1),o,s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=e=>{i.current=!!e.detail?.active};return window.addEventListener(id,e),()=>window.removeEventListener(id,e)},s=[],e[0]=o,e[1]=s):(o=e[0],s=e[1]),(0,Z.useEffect)(o,s);let c,l;e[2]!==t||e[3]!==n?(c=()=>{let e=window.electronAPI?.voiceInputHotkey;if(typeof e?.onEvent!=`function`)return;let r=e.onEvent(e=>{if(e===`press`){if(i.current||!n)return;a.current=!0}else{if(!a.current)return;a.current=!1}Yu(`xopc-voice-input-toggle`,document.querySelector(`[data-voice-input-scope="note"]`)?`note`:`chat`)||(e===`press`?(td(),t(`/chat`)):Qu())});return()=>{a.current=!1,r()}},l=[t,n],e[2]=t,e[3]=n,e[4]=c,e[5]=l):(c=e[4],l=e[5]),(0,Z.useEffect)(c,l);let u,d;return e[6]!==t||e[7]!==r||e[8]!==n?(u=()=>{let e=e=>{if(i.current||e.repeat||e.isComposing)return;let a=document.querySelector(`[data-voice-input-scope="note"]`)?`note`:`chat`;if(e.key===`Escape`){Yu(`xopc-voice-input-cancel`,a)&&(e.preventDefault(),e.stopPropagation());return}Xu(e,r)&&(e.preventDefault(),e.stopPropagation(),n&&(Yu(`xopc-voice-input-toggle`,a)||(td(),t(`/chat`))))};return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},d=[t,r,n],e[6]=t,e[7]=r,e[8]=n,e[9]=u,e[10]=d):(u=e[9],d=e[10]),(0,Z.useEffect)(u,d),null}function _Y(e){return e.shortcut}function vY(e){return e.conversationId}var yY=[{value:`en`,label:`EN`},{value:`zh`,label:`中文`}];function bY(e){let t=(0,Q.c)(5),{value:n,onChange:r}=e,i;t[0]!==r||t[1]!==n?(i=yY.map(e=>{let t=e.value===n;return(0,$.jsx)(`button`,{type:`button`,"aria-pressed":t,className:Y(pd,`h-9 min-w-11 px-2`,t?Y(hd,`text-fg`):`text-fg-subtle hover:text-fg`),onClick:()=>r(e.value),children:e.label},e.value)}),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a;return t[3]===i?a=t[4]:(a=(0,$.jsx)(bu,{className:md,role:`group`,"aria-label":`Language / 语言`,indicatorClassName:`rounded-pill bg-surface-panel shadow-sm dark:ring-1 dark:ring-edge-strong/40`,children:i}),t[3]=i,t[4]=a),a}var xY=new Set([`anthropic`,`deepseek`,`google`,`kimi-coding`,`minimax`,`openai`,`xopc-cloud`]);function SY(e){return xY.has(e)}function CY(e){let t=(0,Q.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===r?a=t[5]:(a=Y(`shrink-0`,r),t[4]=r,t[5]=a);let o;return t[6]!==n||t[7]!==i||t[8]!==a?(o=(0,$.jsx)(`svg`,{viewBox:`0 0 24 24`,xmlns:`http://www.w3.org/2000/svg`,className:a,...i,children:n}),t[6]=n,t[7]=i,t[8]=a,t[9]=o):o=t[9],o}function wY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`#5786FE`,d:`M23.748 4.651c-.254-.124-.364.113-.512.233-.051.04-.094.09-.137.137-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.155-.708-.311-.955-.65-.172-.24-.219-.509-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.094.172.187.129.323-.082.28-.18.553-.266.833-.055.179-.137.218-.328.14a5.5 5.5 0 0 1-1.737-1.179c-.857-.828-1.631-1.743-2.597-2.46a12 12 0 0 0-.689-.47c-.985-.957.13-1.743.387-1.836.27-.098.094-.433-.778-.428-.872.003-1.67.295-2.687.685a3 3 0 0 1-.465.136 9.6 9.6 0 0 0-2.883-.101c-1.885.21-3.39 1.1-4.497 2.622C.082 8.776-.231 10.854.152 13.02c.403 2.284 1.568 4.175 3.36 5.653 1.857 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.132-.284 4.994-1.86.47.234.962.328 1.78.398.629.058 1.235-.031 1.705-.129.735-.155.684-.836.418-.961-2.155-1.004-1.682-.595-2.112-.926 1.095-1.295 2.768-3.598 3.284-6.733.05-.346.115-.834.108-1.114-.004-.171.035-.238.23-.257a4.2 4.2 0 0 0 1.545-.475c1.397-.763 1.96-2.016 2.093-3.517.02-.23-.004-.467-.247-.588M11.58 18.168c-2.088-1.642-3.101-2.183-3.52-2.16-.39.024-.32.472-.234.763.09.288.207.487.371.74.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.168-1.361-.801-2.5-1.86-3.301-3.306-.775-1.393-1.225-2.888-1.299-4.482-.02-.385.094-.522.477-.592a4.7 4.7 0 0 1 1.53-.038c2.131.311 3.946 1.264 5.467 2.774.868.86 1.525 1.887 2.202 2.89.72 1.066 1.494 2.082 2.48 2.915.348.291.626.513.892.677-.802.09-2.14.109-3.055-.615zm1.001-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .113.074.3.3 0 0 1 .086.214c0 .17-.136.307-.308.307a.303.303 0 0 1-.306-.307m3.11 1.596c-.2.081-.4.151-.591.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.551-.758a1.7 1.7 0 0 1 .015-.588c.07-.327-.007-.537-.238-.727-.188-.156-.426-.199-.689-.199a.6.6 0 0 1-.254-.078.253.253 0 0 1-.114-.358 1 1 0 0 1 .192-.21c.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.392.451.462.576.685.915.176.264.336.536.446.848.066.194-.02.353-.25.45`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(CY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function TY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`#E73562`,d:`M11.43 3.92a.86.86 0 1 0-1.718 0v14.236a1.999 1.999 0 0 1-3.997 0V9.022a.86.86 0 1 0-1.718 0v3.87a1.999 1.999 0 0 1-3.997 0V11.49a.57.57 0 0 1 1.139 0v1.404a.86.86 0 0 0 1.719 0V9.022a1.999 1.999 0 0 1 3.997 0v9.134a.86.86 0 0 0 1.719 0V3.92a1.998 1.998 0 1 1 3.996 0v11.788a.57.57 0 1 1-1.139 0zm10.572 3.105a2 2 0 0 0-1.999 1.997v7.63a.86.86 0 0 1-1.718 0V3.923a1.999 1.999 0 0 0-3.997 0v16.16a.86.86 0 0 1-1.719 0V18.08a.57.57 0 1 0-1.138 0v2a1.998 1.998 0 0 0 3.996 0V3.92a.86.86 0 0 1 1.719 0v12.73a1.999 1.999 0 0 0 3.996 0V9.023a.86.86 0 1 1 1.72 0v6.686a.57.57 0 0 0 1.138 0V9.022a2 2 0 0 0-1.998-1.997`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(CY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function EY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`currentColor`,d:`m1.053 16.91 9.538 2.55a21 20.981 0 0 0 .06 2.031l5.956 1.592a12 11.99 0 0 1-15.554-6.172m-1.02-5.79 11.352 3.035a21 20.981 0 0 0-.469 2.01l10.817 2.89a12 11.99 0 0 1-1.845 2.004L.658 15.918a12 11.99 0 0 1-.625-4.796m1.593-5.146L13.573 9.17a21 20.981 0 0 0-1.01 1.874l11.297 3.02a21 20.981 0 0 1-.67 2.362l-11.55-3.087L.125 10.26a12 11.99 0 0 1 1.499-4.285ZM6.067 1.58l11.285 3.016a21 20.981 0 0 0-1.688 1.719l7.824 2.091a21 20.981 0 0 1 .513 2.664L2.107 5.218a12 11.99 0 0 1 3.96-3.638M21.68 4.866 7.222 1.003A12 11.99 0 0 1 21.68 4.866`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(CY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function DY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`currentColor`,d:`M22.28 9.82a5.98 5.98 0 0 0-.516-4.91 6.04 6.04 0 0 0-6.51-2.9A6.06 6.06 0 0 0 4.98 4.18a5.98 5.98 0 0 0-3.99 2.9 6.04 6.04 0 0 0 .743 7.09 5.98 5.98 0 0 0 .511 4.91 6.05 6.05 0 0 0 6.51 2.9A5.98 5.98 0 0 0 13.26 24a6.05 6.05 0 0 0 5.77-4.20 5.98 5.98 0 0 0 3.99-2.9 6.05 6.05 0 0 0-.748-7.07zm-9.02 12.60a4.47 4.47 0 0 1-2.87-1.04l.142-.08 4.77-2.75a.795.79 0 0 0 .393-.681v-6.73l2.02 1.16a.071.07 0 0 1 .038.05v5.58a4.50 4.50 0 0 1-4.49 4.49zm-9.66-4.12a4.47 4.47 0 0 1-.535-3.01l.142.08 4.78 2.75a.771.77 0 0 0 .781 0l5.84-3.36v2.33a.08.08 0 0 1-.033.06L9.74 19.95a4.49 4.49 0 0 1-6.14-1.64zM2.34 7.89a4.48 4.48 0 0 1 2.36-1.97V11.6a.766.76 0 0 0 .388.67l5.81 3.35-2.02 1.16a.076.07 0 0 1-.071 0l-4.83-2.78A4.50 4.50 0 0 1 2.34 7.87zm16.59 3.85L13.10 8.36 15.11 7.2a.076.07 0 0 1 .071 0l4.83 2.79a4.49 4.49 0 0 1-.677 8.10v-5.67a.79.79 0 0 0-.407-.667zm2.01-3.02-.142-.085-4.77-2.78a.776.77 0 0 0-.785 0L9.40 9.23V6.89a.066.06 0 0 1 .028-.062l4.83-2.78a4.49 4.49 0 0 1 6.68 4.66zM8.30 12.86l-2.02-1.16a.08.08 0 0 1-.038-.057V6.07a4.49 4.49 0 0 1 7.37-3.45l-.142.08L8.70 5.45a.795.79 0 0 0-.393.68zm1.09-2.36 2.60-1.5 2.60 1.5v2.99l-2.59 1.5-2.60-1.5Z`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(CY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function OY(e){let t=(0,Q.c)(7),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`path`,{fill:`#D4A27F`,d:`M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z`}),t[3]=i):i=t[3];let a;return t[4]!==n||t[5]!==r?(a=(0,$.jsx)(CY,{className:n,...r,children:i}),t[4]=n,t[5]=r,t[6]=a):a=t[6],a}function kY(e){let t=(0,Q.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i,a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`gemini-grad`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`#4285F4`}),(0,$.jsx)(`stop`,{offset:`50%`,stopColor:`#9B72CB`}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`#D96570`})]})}),a=(0,$.jsx)(`path`,{fill:`url(#gemini-grad)`,d:`M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81`}),t[3]=i,t[4]=a):(i=t[3],a=t[4]);let o;return t[5]!==n||t[6]!==r?(o=(0,$.jsxs)(CY,{className:n,...r,children:[i,a]}),t[5]=n,t[6]=r,t[7]=o):o=t[7],o}function AY(e){let t=(0,Q.c)(22),{providerId:n,className:r}=e,i;t[0]===r?i=t[1]:(i={className:r,"aria-hidden":!0},t[0]=r,t[1]=i);let a=i;switch(n){case`xopc-cloud`:{let e;return t[2]===r?e=t[3]:(e=(0,$.jsx)(Sl,{className:r,"aria-hidden":!0}),t[2]=r,t[3]=e),e}case`deepseek`:{let e;return t[4]===a?e=t[5]:(e=(0,$.jsx)(wY,{...a}),t[4]=a,t[5]=e),e}case`minimax`:{let e;return t[6]===a?e=t[7]:(e=(0,$.jsx)(TY,{...a}),t[6]=a,t[7]=e),e}case`kimi-coding`:{let e;return t[8]===a?e=t[9]:(e=(0,$.jsx)(EY,{...a}),t[8]=a,t[9]=e),e}case`moonshotai`:case`moonshotai-cn`:{let e;return t[10]===a?e=t[11]:(e=(0,$.jsx)(EY,{...a}),t[10]=a,t[11]=e),e}case`openai`:{let e;return t[12]===a?e=t[13]:(e=(0,$.jsx)(DY,{...a}),t[12]=a,t[13]=e),e}case`anthropic`:{let e;return t[14]===a?e=t[15]:(e=(0,$.jsx)(OY,{...a}),t[14]=a,t[15]=e),e}case`google`:{let e;return t[16]===a?e=t[17]:(e=(0,$.jsx)(kY,{...a}),t[16]=a,t[17]=e),e}default:{let e;t[18]===r?e=t[19]:(e=Y(`flex items-center justify-center text-2xl`,r),t[18]=r,t[19]=e);let n;return t[20]===e?n=t[21]:(n=(0,$.jsx)(`span`,{className:e,children:`🤖`}),t[20]=e,t[21]=n),n}}}var jY={id:`xopc-cloud`,name:`XOPC Cloud`,category:`common`,supportsOAuth:!0,supportsApiKey:!1,configured:!1,onboardingFeatured:!0,hint:`Connect your XOPC account. No API key required.`},MY=[{id:`deepseek`,name:`DeepSeek`,category:`common`,supportsOAuth:!1,supportsApiKey:!0,configured:!1,onboardingFeatured:!0},{id:`openai`,name:`OpenAI`,category:`common`,supportsOAuth:!1,supportsApiKey:!0,configured:!1,onboardingFeatured:!0},{id:`anthropic`,name:`Anthropic`,category:`common`,supportsOAuth:!0,supportsApiKey:!0,configured:!1,onboardingFeatured:!0},{id:`google`,name:`Google AI`,category:`common`,supportsOAuth:!1,supportsApiKey:!0,configured:!1,onboardingFeatured:!0}],NY=new Map([jY,...MY].map((e,t)=>[e.id,t]));function PY(e,t){let n=e?.filter(e=>e.onboardingFeatured&&SY(e.id)),r=n?.length?n:MY;return(t?[e?.find(e=>e.id===`xopc-cloud`)??jY,...r.filter(e=>e.id!==`google`&&e.id!==`xopc-cloud`)]:r).slice().sort((e,t)=>(NY.get(e.id)??999)-(NY.get(t.id)??999))[0]}function FY(e){let t=e.recommendedModels?.map(e=>e.name||e.id).filter(Boolean).slice(0,2);return t?.length?t.join(`, `):e.hint}function IY(e){let t=(0,Q.c)(24),{onSelect:n,onBrowseProviders:r,disabled:i,browseDisabled:a}=e,o=i!==void 0&&i,s=a!==void 0&&a,c=E(LY),l;t[0]===c?l=t[1]:(l=P(c),t[0]=c,t[1]=l);let u=l.onboarding.providerRecommended,d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d={revalidateOnFocus:!1},t[2]=d):d=t[2];let{data:f}=oc(`onboarding-provider-meta`,gd,d),p;if(t[3]!==f||t[4]!==o||t[5]!==n||t[6]!==u){let e=PY(f,Vl());p=e?(0,$.jsxs)(`button`,{type:`button`,disabled:o,onClick:()=>n(e.id),className:`group flex w-full items-center gap-3.5 rounded-xl border border-accent/30 bg-accent-soft/45 p-3.5 text-left transition-[border-color,background-color] duration-200 hover:border-accent/55 hover:bg-accent-soft/65 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50 motion-reduce:transition-none`,children:[(0,$.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-[10px] border border-edge-subtle bg-surface-base/70`,children:(0,$.jsx)(AY,{providerId:e.id,className:`size-7`})}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`text-base font-semibold text-fg`,children:e.name}),(0,$.jsx)(`span`,{className:`rounded-full bg-accent px-2 py-0.5 text-[10px] font-semibold text-on-accent`,children:u})]}),(0,$.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:FY(e)})]}),(0,$.jsx)(Wn,{className:`size-4.5 shrink-0 text-accent-fg/80`,"aria-hidden":!0})]}):null,t[3]=f,t[4]=o,t[5]=n,t[6]=u,t[7]=p}else p=t[7];let m=o||s,h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-[10px] border border-edge-subtle bg-surface-panel text-fg-muted`,children:(0,$.jsx)(oa,{className:`size-5`,"aria-hidden":!0})}),t[8]=h):h=t[8];let g=c===`zh`?`连接我自己的模型服务`:`Connect my own model service`,_;t[9]===g?_=t[10]:(_=(0,$.jsx)(`span`,{className:`block text-base font-semibold text-fg`,children:g}),t[9]=g,t[10]=_);let v=s&&!o?c===`zh`?`正在加载可用的模型服务…`:`Loading available model services…`:c===`zh`?`使用自己的账号、API Key、本地模型或私有接口。`:`Use your own account, API key, local model, or private endpoint.`,y;t[11]===v?y=t[12]:(y=(0,$.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:v}),t[11]=v,t[12]=y);let b;t[13]!==y||t[14]!==_?(b=(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[_,y]}),t[13]=y,t[14]=_,t[15]=b):b=t[15];let x;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(Wn,{className:`size-4.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[16]=x):x=t[16];let S;t[17]!==r||t[18]!==b||t[19]!==m?(S=(0,$.jsxs)(`button`,{type:`button`,disabled:m,onClick:r,className:`mt-3 flex min-h-16 w-full items-center gap-3.5 rounded-xl border border-edge bg-surface-base/65 p-3.5 text-left transition-[border-color,background-color] duration-200 hover:border-edge-strong hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:cursor-not-allowed disabled:opacity-50 motion-reduce:transition-none`,children:[h,b,x]}),t[17]=r,t[18]=b,t[19]=m,t[20]=S):S=t[20];let C;return t[21]!==S||t[22]!==p?(C=(0,$.jsxs)(`div`,{children:[p,S]}),t[21]=S,t[22]=p,t[23]=C):C=t[23],C}function LY(e){return e.language}var RY={step:`callName`,selectedProvider:null,busy:!1,error:null,callName:``};function zY(e,t){switch(t.type){case`patch`:return{...e,...t.patch};case`prefillCallName`:return e.callName.trim()?e:{...e,callName:t.value}}}var BY=[`callName`,`provider`,`success`],VY=e=>BY.indexOf(e)+1;function HY(e){let t=(0,Q.c)(5),{step:n,label:r}=e,i=VY(n)-1,a;t[0]===i?a=t[1]:(a=BY.map((e,t)=>(0,$.jsx)(`span`,{className:Y(`h-1.5 rounded-full transition-[width,background-color] duration-200 motion-reduce:transition-none`,t===i?`w-5 bg-accent`:`w-1.5`,t<i?`bg-accent/45`:t>i?`bg-edge-strong`:void 0),"aria-hidden":!0},e)),t[0]=i,t[1]=a);let o;return t[2]!==r||t[3]!==a?(o=(0,$.jsx)(`div`,{className:`flex items-center gap-1.5`,"aria-label":r,children:a}),t[2]=r,t[3]=a,t[4]=o):o=t[4],o}function UY({onComplete:e,onDismiss:t,canDismiss:n=!0,onPendingChange:r}){let i=E(e=>e.language),a=E(e=>e.setLanguage),o=P(i).onboarding,[s,c]=(0,Z.useReducer)(zY,RY),[l,u]=(0,Z.useState)(!1),d=lr(),f=Vl(),p=(0,Z.useRef)(!1),[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(null),v=m||d.cards.some(e=>e.id===`xopc-cloud`&&e.configured),{step:y,selectedProvider:b,busy:x,error:S,callName:C}=s;(0,Z.useEffect)(()=>(r?.(x),()=>r?.(!1)),[x,r]);let w=(0,Z.useMemo)(()=>o.stepOf.replace(`{{current}}`,String(VY(y))).replace(`{{total}}`,String(BY.length)),[o.stepOf,y]);(0,Z.useEffect)(()=>{let e=!1,t;return(async()=>{for(let n=0;n<3;n+=1)try{let{profile:t,suggestedCallName:n}=await Nn();if(e)return;let r=t.callName.trim()||n?.trim();r&&c({type:`prefillCallName`,value:r});return}catch{n<2&&await new Promise(e=>{t=setTimeout(e,250*(n+1))})}})(),()=>{e=!0,t!==void 0&&clearTimeout(t)}},[]);let T=async()=>{let e=C.trim();c({type:`patch`,patch:{busy:!0,error:null}});try{await kn({...e?{callName:e}:{},timezone:jn(),locale:i===`zh`?`zh-CN`:`en-US`}),c({type:`patch`,patch:{step:`provider`}})}catch{c({type:`patch`,patch:{error:i===`zh`?`称呼暂未保存,可重试或稍后设置并继续连接模型。若登录已失效,请先重新连接本机服务。`:`Your name was not saved. Retry or set it later and continue to model setup. Reconnect the service if your sign-in has expired.`}})}finally{c({type:`patch`,patch:{busy:!1}})}},D=async()=>{if(!p.current){p.current=!0,c({type:`patch`,patch:{busy:!0,error:null}});try{let e={mode:`replace`},t=await dr(`xopc-cloud`,e);if(!t.configured||!t.uses.find(e=>e.id===`chat`)?.recommended)throw Error(i===`zh`?`XOPC Cloud 尚未就绪,请稍后重试。`:`XOPC Cloud is not ready yet. Please retry.`);let n=t.uses.filter(e=>e.selected&&e.recommended).map(e=>e.id);await fr(`xopc-cloud`,{...e,selected:n},t.revision),_(t),c({type:`patch`,patch:{step:`success`}})}catch(e){c({type:`patch`,patch:{error:e instanceof Error?e.message:String(e)}})}finally{p.current=!1,c({type:`patch`,patch:{busy:!1}})}}},O=async()=>{c({type:`patch`,patch:{busy:!0,error:null}});try{await e()}catch(e){c({type:`patch`,patch:{error:e instanceof Error?e.message:String(e)}})}finally{c({type:`patch`,patch:{busy:!1}})}};return(0,$.jsxs)(`div`,{className:`xopc-onboarding-experience relative flex h-full min-h-0 w-full flex-col overflow-hidden`,"data-step":y,children:[(0,$.jsx)(`header`,{className:`relative z-20 flex h-18 shrink-0 items-center justify-end px-5 sm:px-8 lg:px-10`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(bY,{value:i,onChange:e=>{c({type:`patch`,patch:{error:null}}),a(e)}}),n?(0,$.jsx)(`button`,{type:`button`,"aria-label":o.skipSetup,disabled:x,className:`inline-flex size-10 items-center justify-center rounded-xl text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:t,children:(0,$.jsx)(Zo,{className:`size-4`,"aria-hidden":!0})}):null]})}),(0,$.jsxs)(`main`,{className:`xopc-onboarding-scroll relative z-10 grid min-h-0 flex-1 overflow-y-auto lg:grid-cols-[minmax(18rem,0.8fr)_minmax(30rem,1.2fr)]`,children:[(0,$.jsx)(`section`,{className:`xopc-onboarding-visual relative hidden min-h-0 items-center justify-center overflow-hidden lg:flex`,children:(0,$.jsx)(vu,{className:`size-72 text-fg-muted`,interactive:!0,language:i,mood:S?`care`:x?`work`:y===`success`?`done`:y===`callName`?`listen`:`decision`})}),(0,$.jsx)(`section`,{className:`app-main-surface xopc-onboarding-scroll flex min-h-[30rem] items-center overflow-y-auto bg-surface-panel px-5 py-8 sm:px-10 lg:min-h-0 lg:px-[clamp(3rem,6vw,6rem)]`,children:(0,$.jsxs)(`div`,{className:`xopc-onboarding-stage w-full max-w-[30rem]`,children:[(0,$.jsx)(`div`,{className:`mb-3 lg:hidden`,children:(0,$.jsx)(vu,{className:`size-20`,mood:S?`care`:x?`work`:y===`success`?`done`:`listen`})}),y===`callName`?(0,$.jsxs)(`div`,{className:`flex min-h-[30rem] flex-col`,children:[(0,$.jsx)(`p`,{className:`text-xs font-medium tracking-wide text-accent-fg`,children:o.title}),(0,$.jsx)(`h1`,{className:`mt-3 text-[2rem] font-semibold leading-tight tracking-[-0.035em] text-fg sm:text-4xl`,children:o.step0Title}),(0,$.jsx)(`p`,{className:`mt-3 max-w-md text-sm leading-6 text-fg-muted`,children:o.step0Subtitle}),(0,$.jsxs)(`label`,{className:`mt-9 block`,children:[(0,$.jsxs)(`span`,{className:`mb-2 flex items-center justify-between text-[13px] font-medium text-fg-muted`,children:[(0,$.jsx)(`span`,{children:o.profileCallNameLabel}),(0,$.jsx)(`span`,{className:`font-normal text-fg-subtle`,children:i===`zh`?`可选`:`Optional`})]}),(0,$.jsx)(`input`,{autoFocus:!0,autoComplete:`name`,value:C,onChange:e=>c({type:`patch`,patch:{callName:e.target.value}}),onKeyDown:e=>{e.key===`Enter`&&!x&&T()},placeholder:o.profileCallNamePlaceholder,className:`h-12 w-full rounded-xl border border-edge bg-surface-base/80 px-3.5 text-[15px] text-fg outline-none transition-[border-color,box-shadow,background-color] duration-200 placeholder:text-fg-subtle hover:border-edge-strong focus:border-accent focus:bg-surface-base focus:ring-4 focus:ring-accent/10 motion-reduce:transition-none`})]}),(0,$.jsx)(`div`,{className:`mt-3 min-h-5`,children:S?(0,$.jsx)(`p`,{className:`text-sm text-danger`,role:`alert`,children:S}):null}),(0,$.jsxs)(`div`,{className:`mt-auto grid grid-cols-[1fr_auto_1fr] items-center gap-3 pt-10`,children:[(0,$.jsx)(`span`,{}),(0,$.jsx)(HY,{step:y,label:w}),(0,$.jsx)(X,{variant:`ghost`,disabled:x,onClick:()=>c({type:`patch`,patch:{step:`provider`,error:null}}),children:i===`zh`?`稍后设置称呼`:`Set name later`}),(0,$.jsxs)(X,{variant:`primary`,className:`h-11 justify-self-end px-5`,disabled:x,onClick:()=>void T(),children:[x?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,x?o.savingProfile:o.continue,x?null:(0,$.jsx)(Wn,{className:`size-4`,"aria-hidden":!0})]})]})]}):null,y===`provider`?(0,$.jsxs)(`div`,{className:`flex min-h-[30rem] flex-col`,children:[(0,$.jsx)(`p`,{className:`text-xs font-medium tracking-wide text-accent-fg`,children:f?`XOPC Cloud`:i===`zh`?`模型设置`:`Model setup`}),(0,$.jsx)(`h1`,{className:`mt-3 text-[2rem] font-semibold leading-tight tracking-[-0.035em] text-fg sm:text-4xl`,children:f?i===`zh`?`连接 XOPC Cloud`:`Connect XOPC Cloud`:o.step1Title}),(0,$.jsx)(`p`,{className:`mt-3 max-w-md text-sm leading-6 text-fg-muted`,children:f?i===`zh`?`登录后自动配置聊天、图片、语音和任务模型,开启可用能力。电脑操作默认关闭,无需 API Key。`:`Sign in to set up chat, image, voice, and task models and enable available capabilities. Computer control stays off by default. No API key required.`:o.step1Subtitle}),(0,$.jsx)(`div`,{className:`mt-8`,children:f?(0,$.jsx)(`fieldset`,{disabled:x,className:`min-w-0`,children:(0,$.jsx)(yd,{providerId:`xopc-cloud`,displayName:`XOPC Cloud`,connected:v,onConnected:()=>{h(!0),D()}})}):(0,$.jsx)(IY,{onSelect:e=>{c({type:`patch`,patch:{selectedProvider:e,error:null}}),u(!0)},onBrowseProviders:()=>{c({type:`patch`,patch:{selectedProvider:null}}),u(!0)},disabled:x,browseDisabled:d.loading})}),(0,$.jsx)(`div`,{className:`mt-3 min-h-5`,children:S?(0,$.jsx)(`p`,{className:`text-sm text-danger`,role:`alert`,children:S}):null}),(0,$.jsxs)(`div`,{className:`mt-auto grid grid-cols-[1fr_auto_1fr] items-center gap-3 pt-8`,children:[(0,$.jsx)(X,{variant:`ghost`,className:`justify-self-start`,disabled:x,onClick:()=>c({type:`patch`,patch:{step:`callName`,error:null}}),children:o.back}),(0,$.jsx)(HY,{step:y,label:w}),f&&v?(0,$.jsxs)(X,{variant:`primary`,className:`h-11 justify-self-end px-5`,disabled:x,onClick:()=>void D(),children:[x?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,S?i===`zh`?`重试`:`Retry`:o.continue]}):(0,$.jsx)(`span`,{})]})]}):null,y===`success`?(0,$.jsxs)(`div`,{className:`flex min-h-[30rem] flex-col`,children:[(0,$.jsx)(`span`,{className:`flex size-11 items-center justify-center rounded-xl bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`,children:(0,$.jsx)(ir,{className:`size-6`,"aria-hidden":!0})}),(0,$.jsx)(`p`,{className:`mt-6 text-xs font-medium tracking-wide text-accent-fg`,children:i===`zh`?`模型设置完成`:`Model setup complete`}),(0,$.jsx)(`h1`,{className:`mt-3 text-[2rem] font-semibold leading-tight tracking-[-0.035em] text-fg sm:text-4xl`,children:i===`zh`?`一切准备好了`:`You’re ready to go`}),(0,$.jsxs)(`p`,{className:`mt-3 max-w-md text-sm leading-6 text-fg-muted`,children:[g?i===`zh`?`已配置并开启账号可用的模型能力,电脑操作默认关闭。`:`Available model capabilities are configured and enabled. Computer control stays off by default.`:i===`zh`?`模型服务配置已保存,可以开始对话。`:`Model service settings are saved. You can start a conversation.`,g?.uses.some(e=>!e.selected)?i===`zh`?` 部分能力暂无可用模型,可稍后在模型设置中查看。`:` Some capabilities have no available model. Review them in Model settings.`:null]}),(0,$.jsx)(`div`,{className:`mt-3 min-h-5`,children:S?(0,$.jsx)(`p`,{className:`text-sm text-danger`,role:`alert`,children:S}):null}),(0,$.jsxs)(`div`,{className:`mt-auto grid grid-cols-[1fr_auto_1fr] items-center gap-3 pt-10`,children:[(0,$.jsx)(`span`,{}),(0,$.jsx)(HY,{step:y,label:w}),(0,$.jsxs)(X,{variant:`primary`,className:`h-11 justify-self-end px-5`,disabled:x,onClick:()=>void O(),children:[x?(0,$.jsx)(ha,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,i===`zh`?`开始使用 XOPC`:`Start using XOPC`,x?null:(0,$.jsx)(Wn,{className:`size-4`,"aria-hidden":!0})]})]})]}):null]},y)})]}),f?null:(0,$.jsx)(ur,{open:l,initialProviderId:b??void 0,onOpenChange:u,builtinRows:d.builtinRows,customConfig:d.customConfig,labels:P(i).capabilitiesSettings.addProviderDialog,language:i,onSaved:e=>{if(e===`xopc-cloud`){u(!1),D();return}u(!1),c({type:`patch`,patch:{step:`success`,error:null}})}})]})}function WY(e){return e?.enabled===!0&&(e.state.status===`not_started`||e.state.status===`in_progress`)}function GY(e){let t=!e.settingsRoute&&e.modelSetupReady&&e.needsModelSetup&&!e.modelGuideDismissed,n=e.cloudOnboardingReady&&e.cloudOnboardingPending&&(!e.desktop||e.modelSetupReady)&&!(e.desktop&&t),r=t&&!n,i=!n&&!e.settingsRoute&&e.modelSetupReady&&!e.needsModelSetup&&WY(e.workDiscovery);return{open:e.authenticated&&!e.closed&&(r||n||i),stage:n?`cloud`:r?`setup`:`work`}}function KY(e){if(!e||typeof e!=`object`||Array.isArray(e))return!0;let t=e.agents;if(!t)return!0;let n=t.defaults?.models?.chat?.primary?.trim()??``;return!((t.list?.find(e=>e.enabled!==!1&&e.id===t.default))?.models?.chat?.primary?.trim()||n)}function qY(e){let{enabled:t,ready:n,configError:r,modelsError:i,config:a,modelsData:o}=e;if(!t||!n||r||i)return!1;let s=KY(a),c=!Array.isArray(o)||o.length===0;return s||c}function JY(e){let t=(0,Q.c)(21),[n,r]=(0,Z.useState)(YY),{data:i,error:a,isLoading:o,mutate:s}=hc(e),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c={revalidateOnFocus:!1},t[0]=c):c=t[0];let{data:l,isLoading:u,error:d,mutate:f}=oc(e?Pc:null,Nc,c),p=!e||!o&&!u,m=i?.payload?.config,h;t[1]!==a||t[2]!==e||t[3]!==l||t[4]!==d||t[5]!==p||t[6]!==m?(h=qY({enabled:e,ready:p,configError:a,modelsError:d,config:m,modelsData:l}),t[1]=a,t[2]=e,t[3]=l,t[4]=d,t[5]=p,t[6]=m,t[7]=h):h=t[7];let g=h,_;t[8]!==s||t[9]!==f?(_=async()=>{await Promise.all([s(),f()])},t[8]=s,t[9]=f,t[10]=_):_=t[10];let v=_,y,b;t[11]!==e||t[12]!==f?(y=()=>{if(!e)return;let t=()=>{f()};return window.addEventListener(`config-reload`,t),()=>window.removeEventListener(`config-reload`,t)},b=[e,f],t[11]=e,t[12]=f,t[13]=y,t[14]=b):(y=t[13],b=t[14]),(0,Z.useEffect)(y,b);let x;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>{try{localStorage.setItem(vd,`1`)}catch{}r(!0)},t[15]=x):x=t[15];let S=x,C;return t[16]!==n||t[17]!==g||t[18]!==p||t[19]!==v?(C={needsSetup:g,ready:p,refresh:v,guideDismissed:n,dismissPermanently:S},t[16]=n,t[17]=g,t[18]=p,t[19]=v,t[20]=C):C=t[20],C}function YY(){return typeof localStorage<`u`&&localStorage.getItem(`xopc-onboarding-model-setup-dismissed`)===`1`}var XY=_d;async function ZY(){let e=await x(w(XY));if(!e.ok)throw Error(`Cloud onboarding: ${e.status}`);return(await e.json()).payload}function QY(e){let t=(0,Q.c)(9),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={revalidateOnFocus:!1},t[0]=n):n=t[0];let{data:r,error:i,mutate:a}=oc(e?XY:null,ZY,n),o=!!r&&!i,s=r?.status===`unseen`&&!r.hasGrant,c,l;t[1]===a?(c=t[2],l=t[3]):(c=()=>a(),l=async()=>{let e=await x(w(XY),{method:`PUT`});if(!e.ok)throw Error(`Cloud onboarding dismissal: ${e.status}`);await a({status:`dismissed`,hasGrant:!1},{revalidate:!1})},t[1]=a,t[2]=c,t[3]=l);let u;return t[4]!==o||t[5]!==s||t[6]!==c||t[7]!==l?(u={ready:o,pending:s,refresh:c,dismiss:l},t[4]=o,t[5]=s,t[6]=c,t[7]=l,t[8]=u):u=t[8],u}function $Y({context:e,onDismiss:t,onConnected:n}){let r=E(e=>e.language)===`zh`,[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)([]),[c,l]=(0,Z.useState)(!1),u=e===`chat`?r?`为对话连接更多模型`:`Connect more models for chat`:e===`personal`?r?`为个人 Agent 一次配好模型`:`Set up models for your personal agent`:r?`连接 XOPC Cloud,省去逐个配置模型`:`Connect XOPC Cloud to simplify model setup`,d=e===`chat`?r?`连接 XOPC Cloud 后,此账号可用的聊天、图片和语音模型会自动同步。你可以继续使用当前聊天模型,稍后再切换。`:`Connect XOPC Cloud to sync the chat, image, and voice models available to your account. You can keep using your current chat model and switch later.`:e===`personal`?r?`连接一次即可为个人 Agent 准备此账号可用的聊天、图片和语音模型。已有模型和明确设置不会改变。`:`Connect once to make the chat, image, and voice models available to your personal agent. Your current model and explicit settings stay in place.`:r?`授权后会同步此账号可用的聊天、图片和语音等模型。已有的默认聊天模型及明确设置保持不变,之后可自行切换。`:`Authorize once to sync the chat, image, and voice models available to your account. Your current default chat model and explicit settings stay in place.`,f=async()=>{a(!0);try{let e=await x(w(`/api/models/catalog`));if(!e.ok)throw Error(`Readiness unavailable`);let t=(await e.json()).payload.sources[`xopc-cloud`]?.models.filter(e=>e.availability===`available`)??[],n=new Set(t.map(e=>e.kind));s([...n.has(`language`)?[r?`聊天`:`chat`]:[],...t.some(e=>e.kind===`language`&&e.input.includes(`image`))?[r?`视觉理解`:`vision`]:[],...n.has(`image`)?[r?`图片生成`:`image generation`]:[],...n.has(`stt`)?[r?`语音识别`:`speech recognition`]:[],...n.has(`tts`)?[r?`语音合成`:`speech synthesis`]:[]]),l(t.length===0)}catch{l(!0)}};return(0,$.jsx)(`div`,{className:`p-5 sm:p-6`,children:(0,$.jsxs)(`div`,{className:`w-full`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,$.jsx)(`span`,{className:`flex size-12 items-center justify-center rounded-xl bg-accent-soft text-accent-fg`,children:(0,$.jsx)(kr,{className:`size-6`,"aria-hidden":!0})}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,"aria-label":i?r?`继续`:`Continue`:r?`暂时不用`:`Maybe later`,onClick:i?n:t,children:(0,$.jsx)(Zo,{className:`size-4`})})]}),(0,$.jsx)(`h1`,{className:`mt-6 text-2xl font-semibold text-fg`,children:i?r?`XOPC Cloud 已连接`:`XOPC Cloud is connected`:u}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:i?c?r?`授权已完成,模型目录暂不可用。稍后可在模型设置中刷新。`:`Authorization completed, but the model catalog is temporarily unavailable. Refresh it later in model settings.`:r?`已同步可用能力:${o.join(`、`)||`模型目录`}。你可以稍后在模型设置中选择默认模型。`:`Available capabilities: ${o.join(`, `)||`model catalog`}. You can choose a default model later in model settings.`:d}),i?(0,$.jsx)(X,{type:`button`,variant:`primary`,className:`mt-7`,onClick:n,children:r?`继续聊天`:`Continue to chat`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`mt-7`,children:(0,$.jsx)(yd,{providerId:`xopc-cloud`,displayName:`XOPC Cloud`,connected:!1,onConnected:()=>void f()})}),(0,$.jsx)(X,{type:`button`,variant:`ghost`,className:`mt-5`,onClick:t,children:r?`暂时不用,继续使用现有模型`:`Maybe later, keep using my current model`})]})]})})}function eX(){let e=(0,Q.c)(75),t=T(lX),n=E(cX),r;e[0]===n?r=e[1]:(r=P(n),e[0]=n,e[1]=r);let i=r,{pathname:a}=p(),o=b(),s=JY(!!t),c=QY(!!t),l=a.startsWith(`/settings`)||a===`/personal`,[u,d]=(0,Z.useState)(null),[f,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),[_,v]=(0,Z.useState)(!1),y;e[2]!==m||e[3]!==g||e[4]!==d||e[5]!==t?(y=()=>{if(m(!1),g(!1),!t){d(null);return}let e=!1;return ni().then(t=>{e||d(t)}).catch(sX),()=>{e=!0}},e[2]=m,e[3]=g,e[4]=d,e[5]=t,e[6]=y):y=e[6];let x;e[7]===t?x=e[8]:(x=[t],e[7]=t,e[8]=x),(0,Z.useEffect)(y,x);let S=GY({authenticated:!!t,desktop:Vl(),settingsRoute:l,modelSetupReady:s.ready,needsModelSetup:s.needsSetup||h,modelGuideDismissed:s.guideDismissed,cloudOnboardingReady:c.ready,cloudOnboardingPending:c.pending,workDiscovery:u,closed:f}),C;e[9]!==S.open||e[10]!==S.stage||e[11]!==g?(C=()=>{S.open&&S.stage===`setup`&&g(!0)},e[9]=S.open,e[10]=S.stage,e[11]=g,e[12]=C):C=e[12];let w;e[13]!==S.open||e[14]!==S.stage?(w=[S.open,S.stage],e[13]=S.open,e[14]=S.stage,e[15]=w):w=e[15],(0,Z.useEffect)(C,w);let D;e[16]!==m||e[17]!==g?(D=()=>{g(!1),m(!0)},e[16]=m,e[17]=g,e[18]=D):D=e[18];let O=D,k;e[19]!==O||e[20]!==o?(k=()=>{O(),o(`/chat`)},e[19]=O,e[20]=o,e[21]=k):k=e[21];let A=k,j;e[22]!==O||e[23]!==s?(j=()=>{O(),s.dismissPermanently(),ri().catch(oX)},e[22]=O,e[23]=s,e[24]=j):j=e[24];let M=j,N;e[25]!==O||e[26]!==c||e[27]!==s.needsSetup||e[28]!==s.ready||e[29]!==u?(N=async()=>{await c.dismiss(),s.ready&&!s.needsSetup&&!WY(u)&&O()},e[25]=O,e[26]=c,e[27]=s.needsSetup,e[28]=s.ready,e[29]=u,e[30]=N):N=e[30];let F=N,L=S.stage!==`cloud`,z=S.open,U;e[31]!==O||e[32]!==F||e[33]!==M||e[34]!==S.stage||e[35]!==A||e[36]!==_?(U=e=>{e||(S.stage===`setup`?_||M():S.stage===`cloud`?F().catch(O):A())},e[31]=O,e[32]=F,e[33]=M,e[34]=S.stage,e[35]=A,e[36]=_,e[37]=U):U=e[37];let W;e[38]===S.stage?W=e[39]:(W=S.stage===`cloud`?null:(0,$.jsx)(I,{className:`xopc-dialog-overlay fixed inset-0 z-[55] bg-scrim backdrop-blur-md`}),e[38]=S.stage,e[39]=W);let G=S.stage===`cloud`?`bottom-4 right-4 max-h-[calc(100vh-2rem)] w-[min(32rem,calc(100vw-2rem))] overflow-y-auto rounded-2xl border border-edge bg-surface-overlay shadow-xl`:`xopc-onboarding-dialog inset-0 overflow-hidden`,te;e[40]===G?te=e[41]:(te=Y(`app-chrome-shell fixed z-[56] outline-none`,G),e[40]=G,e[41]=te);let ne;e[42]!==S.stage||e[43]!==_?(ne=e=>{S.stage===`setup`&&_&&e.preventDefault()},e[42]=S.stage,e[43]=_,e[44]=ne):ne=e[44];let K;e[45]===i.onboarding.title?K=e[46]:(K=(0,$.jsx)(H,{className:`sr-only`,children:i.onboarding.title}),e[45]=i.onboarding.title,e[46]=K);let q;e[47]===i.onboarding.subtitle?q=e[48]:(q=(0,$.jsx)(R,{className:`sr-only`,children:i.onboarding.subtitle}),e[47]=i.onboarding.subtitle,e[48]=q);let re;e[49]!==O||e[50]!==c||e[51]!==F||e[52]!==M||e[53]!==S.stage||e[54]!==A||e[55]!==s||e[56]!==a||e[57]!==g||e[58]!==v||e[59]!==d?(re=S.stage===`setup`?(0,$.jsx)(UY,{onComplete:async()=>{let e=await ni().catch(rX);d(e),await s.refresh();let t=await c.refresh().catch(nX),n=t?.status===`unseen`&&!t.hasGrant;Vl()&&n&&(await c.dismiss().catch(tX),n=!1),g(!1),!WY(e)&&!n&&A()},onPendingChange:v,onDismiss:M,canDismiss:!0}):S.stage===`cloud`?(0,$.jsx)($Y,{context:a.startsWith(`/chat`)?`chat`:a===`/personal`?`personal`:`general`,onDismiss:()=>void F().catch(O),onConnected:()=>{c.refresh().catch(O)}}):(0,$.jsx)(`div`,{className:`xopc-onboarding-work-stage h-full overflow-hidden`,children:(0,$.jsx)(Sn,{embedded:!0,onRequestClose:A,onNavigateAway:O})}),e[49]=O,e[50]=c,e[51]=F,e[52]=M,e[53]=S.stage,e[54]=A,e[55]=s,e[56]=a,e[57]=g,e[58]=v,e[59]=d,e[60]=re):re=e[60];let ie;e[61]!==te||e[62]!==ne||e[63]!==K||e[64]!==q||e[65]!==re?(ie=(0,$.jsxs)(V,{className:te,onEscapeKeyDown:ne,onPointerDownOutside:aX,onOpenAutoFocus:iX,children:[K,q,re]}),e[61]=te,e[62]=ne,e[63]=K,e[64]=q,e[65]=re,e[66]=ie):ie=e[66];let ae;e[67]!==W||e[68]!==ie?(ae=(0,$.jsxs)(B,{children:[W,ie]}),e[67]=W,e[68]=ie,e[69]=ae):ae=e[69];let oe;return e[70]!==S.open||e[71]!==U||e[72]!==ae||e[73]!==L?(oe=(0,$.jsx)(ee,{modal:L,open:z,onOpenChange:U,children:ae}),e[70]=S.open,e[71]=U,e[72]=ae,e[73]=L,e[74]=oe):oe=e[74],oe}function tX(){}function nX(){return null}function rX(){return null}function iX(e){return e.preventDefault()}function aX(e){return e.preventDefault()}function oX(){}function sX(){}function cX(e){return e.language}function lX(e){return e.conversationId}function uX(e){let t=(0,Q.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`shrink-0`,children:n}),t[0]=n,t[1]=r),r}function dX(){let e=(0,Q.c)(3),t=Mn(pX),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=fX;e();let n=window.setInterval(e,t?1500:3e4);return window.addEventListener(`understanding-refresh-updated`,e),window.addEventListener(`focus`,e),()=>{window.clearInterval(n),window.removeEventListener(`understanding-refresh-updated`,e),window.removeEventListener(`focus`,e)}},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function fX(){Mn.getState().poll()}function pX(e){return e.sources.some(mX)}function mX(e){return e.status===`queued`||e.status===`running`}var hX=new Set([`queued`,`probing`,`analyzing`]),gX=[`work-discovery-progress`,`work-discovery-completed`,`work-discovery-failed`,`work-discovery-canceled`];function _X(){let e=(0,Q.c)(7),t=si(TX),n=si(wX),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0],(0,Z.useEffect)(SX,r);let i,a;e[1]!==t||e[2]!==n?(i=()=>{if(!t||!n||!hX.has(n))return;let e=!1,r=async()=>{try{let n=await ai(t);e||si.getState().updateDirectoryRun(n)}catch{}};r();let i=window.setInterval(()=>void r(),1200);return()=>{e=!0,window.clearInterval(i)}},a=[t,n],e[1]=t,e[2]=n,e[3]=i,e[4]=a):(i=e[3],a=e[4]),(0,Z.useEffect)(i,a);let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=[],e[5]=o):o=e[5],(0,Z.useEffect)(vX,o);let s;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(dX,{}),e[6]=s):s=e[6],s}function vX(){let e=yX;for(let t of gX)window.addEventListener(t,e);return()=>{for(let t of gX)window.removeEventListener(t,e)}}function yX(e){let t=e.detail?.runId;t&&ai(t).then(xX).catch(bX)}function bX(){}function xX(e){return si.getState().updateDirectoryRun(e)}function SX(){let e=!1;return ni().then(async t=>{let{state:n}=t;if(n.status!==`in_progress`||!n.activeRunId)return;let r=await ai(n.activeRunId);e||si.getState().updateDirectoryRun(r)}).catch(CX),()=>{e=!0}}function CX(){}function wX(e){return e.directoryRun?.status}function TX(e){return e.directoryRun?.id}var EX=`workDiscovery`;function DX(e){return new URLSearchParams(e).get(EX)===`new`}function OX(e){let t=new URLSearchParams(e);t.delete(EX);let n=t.toString();return n?`?${n}`:``}var kX=(0,Z.lazy)(()=>ql().then(e=>({default:e.WorkDiscoveryOverlay}))),AX=(0,Z.lazy)(()=>Yl().then(e=>({default:e.TaskDetailModal})));function jX(){let e=(0,Q.c)(3),t=b(),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=e=>{let n=e.detail;n?.conversationId&&t(`/chat/${encodeURIComponent(n.conversationId)}`)};return window.addEventListener(`navigate-to-chat`,e),()=>window.removeEventListener(`navigate-to-chat`,e)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function MX(){let e=(0,Q.c)(3),t=b(),n,r;return e[0]===t?(n=e[1],r=e[2]):(n=()=>{let e=e=>{let n=e.detail,r=typeof n?.path==`string`?n.path.trim():``;r&&t(r.startsWith(`/`)?r:`/${r}`)};return window.addEventListener(`extension-navigate`,e),()=>window.removeEventListener(`extension-navigate`,e)},r=[t],e[0]=t,e[1]=n,e[2]=r),(0,Z.useEffect)(n,r),null}function NX(){let e=(0,Q.c)(3),t=T(FX),n=`${T(PX)}:${t??``}`,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(Et,{children:(0,$.jsx)(IX,{})}),e[0]=r):r=e[0];let i;return e[1]===n?i=e[2]:(i=(0,$.jsx)(CB,{children:r},n),e[1]=n,e[2]=i),i}function PX(e){return e.baseUrl}function FX(e){return e.conversationId}function IX(){let e=(0,Q.c)(156),t=T(BX),{pathname:n,search:r}=p(),i=b(),a;e[0]===n?a=e[1]:(a=n.startsWith(`/settings`),e[0]=n,e[1]=a);let o=a,s=n===`/onboarding/workspace`,c=E(zX),l=FV(),u=It(RX),[d,m]=(0,Z.useState)(0),h=pz(n),g;e[2]!==n||e[3]!==r?(g=n===`/user-model`&&DX(r),e[2]=n,e[3]=r,e[4]=g):g=e[4];let _=g,v;e[5]!==n||e[6]!==r?(v=n.startsWith(`/tasks/`)?null:new URLSearchParams(r).get(_a),e[5]=n,e[6]=r,e[7]=v):v=e[7];let y=v,x;e[8]!==h||e[9]!==n||e[10]!==y||e[11]!==u?(x=y&&u?u:h??(n.startsWith(`/chat`)?`new`:u??`new`),e[8]=h,e[9]=n,e[10]=y,e[11]=u,e[12]=x):x=e[12];let S=x,C;if(e[13]!==n||e[14]!==r||e[15]!==y){let t=Sa(n)?new URLSearchParams(r).get(ya):null;C=t&&!y?Aa(t):null,e[13]=n,e[14]=r,e[15]=y,e[16]=C}else C=e[16];let w=C,D;e[17]!==n||e[18]!==r?(D=Ea(n,r),e[17]=n,e[18]=r,e[19]=D):D=e[19];let O=D,k;e[20]!==n||e[21]!==w||e[22]!==r||e[23]!==y?(k=!y&&!w&&Sa(n)?new URLSearchParams(r).get(Ca):null,e[20]=n,e[21]=w,e[22]=r,e[23]=y,e[24]=k):k=e[24];let A=k,j;e[25]!==n||e[26]!==r?(j=Ta(n,r),e[25]=n,e[26]=r,e[27]=j):j=e[27];let M=j,N;e[28]!==n||e[29]!==r?(N=ka(n,r),e[28]=n,e[29]=r,e[30]=N):N=e[30];let P=N,[F,I]=(0,Z.useState)(_),L,R;e[31]===_?(L=e[32],R=e[33]):(R=()=>{_&&I(!0)},L=[_],e[31]=_,e[32]=L,e[33]=R),(0,Z.useEffect)(R,L);let z;e[34]!==i||e[35]!==n||e[36]!==r?(z=()=>{i({pathname:n,search:OX(r)},{replace:!0})},e[34]=i,e[35]=n,e[36]=r,e[37]=z):z=e[37];let B=z,V;e[38]!==B||e[39]!==_?(V=()=>{I(!1),_&&B(),window.requestAnimationFrame(LX)},e[38]=B,e[39]=_,e[40]=V):V=e[40];let H=V,ee;e[41]!==i||e[42]!==P?(ee=()=>{i(P,{replace:!0})},e[41]=i,e[42]=P,e[43]=ee):ee=e[43];let U=ee;if(!t){let t=c===`zh`?`跳到主要内容`:`Skip to main content`,n;e[44]===t?n=e[45]:(n=(0,$.jsx)(`a`,{href:`#app-main-content`,className:`sr-only z-[80] rounded-lg bg-surface-panel px-3 py-2 text-sm text-fg shadow-elevated focus:not-sr-only focus:absolute focus:left-4 focus:top-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:t}),e[44]=t,e[45]=n);let r,i,a;e[46]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(aG,{}),i=(0,$.jsx)(pK,{}),a=(0,$.jsx)(Tz,{}),e[46]=r,e[47]=i,e[48]=a):(r=e[46],i=e[47],a=e[48]);let o;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,$.jsx)(MB,{})}),e[49]=o):o=e[49];let s;return e[50]===n?s=e[51]:(s=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-surface-base`,children:[n,r,i,a,o]}),e[50]=n,e[51]=s),s}let W;e[52]===n?W=e[53]:(W=n.split(`/`)[1]||`root`,e[52]=n,e[53]=W);let G=W,te=G===`chat`||G===`notes`||G===`personal`||G===`automations`;if(s){let t,n,r,i,a,o,s,c;e[54]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(fK,{}),n=(0,$.jsx)(FJ,{}),r=(0,$.jsx)(_X,{}),i=(0,$.jsx)(YJ,{}),a=(0,$.jsx)(pK,{}),o=(0,$.jsx)(Tz,{}),s=(0,$.jsx)(aG,{}),c=Kc()?(0,$.jsx)(`div`,{className:Y(`w-full`,xl,yl),"aria-hidden":`true`}):null,e[54]=t,e[55]=n,e[56]=r,e[57]=i,e[58]=a,e[59]=o,e[60]=s,e[61]=c):(t=e[54],n=e[55],r=e[56],i=e[57],a=e[58],o=e[59],s=e[60],c=e[61]);let l;return e[62]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-surface-base`,children:[t,n,r,i,a,o,s,c,(0,$.jsx)(`main`,{id:`app-main-content`,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,$.jsx)(f,{})})]}),e[62]=l):l=e[62],l}let ne;e[63]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,$.jsx)(fK,{}),e[63]=ne):ne=e[63];let K=c===`zh`?`跳到主要内容`:`Skip to main content`,q;e[64]===K?q=e[65]:(q=(0,$.jsx)(`a`,{href:`#app-main-content`,className:`sr-only z-[80] rounded-lg bg-surface-panel px-3 py-2 text-sm text-fg shadow-elevated focus:not-sr-only focus:absolute focus:left-4 focus:top-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:K}),e[64]=K,e[65]=q);let re,ie,ae,oe,se,ce,le,ue,de;e[66]===Symbol.for(`react.memo_cache_sentinel`)?(re=(0,$.jsx)(FJ,{}),ie=(0,$.jsx)(_X,{}),ae=(0,$.jsx)(YJ,{}),oe=(0,$.jsx)(pK,{}),se=(0,$.jsx)(Tz,{}),ce=(0,$.jsx)(jX,{}),le=(0,$.jsx)(MX,{}),ue=(0,$.jsx)(mq,{}),de=(0,$.jsx)(Cq,{}),e[66]=re,e[67]=ie,e[68]=ae,e[69]=oe,e[70]=se,e[71]=ce,e[72]=le,e[73]=ue,e[74]=de):(re=e[66],ie=e[67],ae=e[68],oe=e[69],se=e[70],ce=e[71],le=e[72],ue=e[73],de=e[74]);let fe=S===h?h:null,pe;e[75]===fe?pe=e[76]:(pe=(0,$.jsx)(gB,{conversationId:fe}),e[75]=fe,e[76]=pe);let me,he,ge,_e;e[77]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,$.jsx)(vJ,{}),he=(0,$.jsx)(Oq,{}),ge=(0,$.jsx)(lY,{}),_e=(0,$.jsx)(gY,{}),e[77]=me,e[78]=he,e[79]=ge,e[80]=_e):(me=e[77],he=e[78],ge=e[79],_e=e[80]);let ve;e[81]===h?ve=e[82]:(ve=(0,$.jsx)(VW,{conversationId:h}),e[81]=h,e[82]=ve);let ye;e[83]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,$.jsx)(qW,{}),e[83]=ye):ye=e[83];let be;e[84]===n?be=e[85]:(be=!n.startsWith(`/mcp-setup/`)&&!n.startsWith(`/configuration/`)?(0,$.jsx)(eX,{}):null,e[84]=n,e[85]=be);let J;e[86]!==i||e[87]!==O||e[88]!==w?(J=w?(0,$.jsx)(dd,{target:w,backgroundPath:O,onClose:()=>i(O,{replace:!0})}):null,e[86]=i,e[87]=O,e[88]=w,e[89]=J):J=e[89];let xe;e[90]!==i||e[91]!==M||e[92]!==A?(xe=A?(0,$.jsx)(_q,{noteId:A,backgroundPath:M,onClose:()=>i(M,{replace:!0})}):null,e[90]=i,e[91]=M,e[92]=A,e[93]=xe):xe=e[93];let Se;e[94]!==U||e[95]!==P||e[96]!==y||e[97]!==d?(Se=y?(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(AX,{taskId:y,backgroundPath:P,workspacePanelWidth:d,onClose:U})}):null,e[94]=U,e[95]=P,e[96]=y,e[97]=d,e[98]=Se):Se=e[98];let Ce;e[99]!==H||e[100]!==_||e[101]!==F?(Ce=F?(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(kX,{requestedOpen:_,onExited:H})}):null,e[99]=H,e[100]=_,e[101]=F,e[102]=Ce):Ce=e[102];let we;e[103]===Symbol.for(`react.memo_cache_sentinel`)?(we=(0,$.jsx)(aG,{}),e[103]=we):we=e[103];let Te;e[104]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,$.jsx)(sG,{}),e[104]=Te):Te=e[104];let Ee;e[105]===l?Ee=e[106]:(Ee=(0,$.jsx)(CK,{reminder:l}),e[105]=l,e[106]=Ee);let De;e[107]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,$.jsx)(yK,{}),e[107]=De):De=e[107];let Oe;e[108]===Ee?Oe=e[109]:(Oe=(0,$.jsxs)(uX,{children:[Te,Ee,De]}),e[108]=Ee,e[109]=Oe);let ke;e[110]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,$.jsx)(kU,{}),e[110]=ke):ke=e[110];let Ae;e[111]===o?Ae=e[112]:(Ae=o?null:(0,$.jsx)(lV,{}),e[111]=o,e[112]=Ae);let je=G!==`settings`&&`page-enter`,Me=G===`settings`||te?`overflow-hidden`:`overflow-y-auto overscroll-contain [scrollbar-gutter:stable_both-edges]`,Ne;e[113]!==je||e[114]!==Me?(Ne=Y(`flex min-h-0 min-w-0 flex-1 flex-col overflow-x-hidden bg-surface-panel`,je,Me),e[113]=je,e[114]=Me,e[115]=Ne):Ne=e[115];let Pe;e[116]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=(0,$.jsx)(f,{}),e[116]=Pe):Pe=e[116];let Fe;e[117]!==G||e[118]!==Ne?(Fe=(0,$.jsx)(`main`,{id:`app-main-content`,className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:(0,$.jsx)(`div`,{className:Ne,children:Pe},G)}),e[117]=G,e[118]=Ne,e[119]=Fe):Fe=e[119];let Ie;e[120]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,$.jsx)(fY,{}),e[120]=Ie):Ie=e[120];let Le;e[121]!==o||e[122]!==n?(Le=!o&&!n.startsWith(`/chat`)?(0,$.jsx)(Mz,{}):null,e[121]=o,e[122]=n,e[123]=Le):Le=e[123];let Re;e[124]!==Ae||e[125]!==Fe||e[126]!==Le?(Re=(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[Ae,Fe,Ie,Le]}),e[124]=Ae,e[125]=Fe,e[126]=Le,e[127]=Re):Re=e[127];let ze;e[128]!==o||e[129]!==n||e[130]!==y||e[131]!==u?(ze=!o&&(n.startsWith(`/chat`)||n===`/personal`||n===`/automations`&&!!u||(!!y||n.startsWith(`/tasks/`))&&!!u),e[128]=o,e[129]=n,e[130]=y,e[131]=u,e[132]=ze):ze=e[132];let Be=!!y,Ve;e[133]!==ze||e[134]!==Be||e[135]!==S?(Ve=(0,$.jsx)(IW,{scope:S,onDockedWidthChange:m,enabled:ze,elevated:Be}),e[133]=ze,e[134]=Be,e[135]=S,e[136]=Ve):Ve=e[136];let He;e[137]!==Re||e[138]!==Ve?(He=(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-row overflow-hidden`,children:[ke,(0,$.jsx)(`div`,{className:`app-main-surface relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-surface-panel`,children:(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-row overflow-hidden`,children:[Re,Ve]})})]}),e[137]=Re,e[138]=Ve,e[139]=He):He=e[139];let Ue;e[140]!==Oe||e[141]!==He?(Ue=(0,$.jsxs)(`div`,{className:`app-chrome-shell flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[we,Oe,He]}),e[140]=Oe,e[141]=He,e[142]=Ue):Ue=e[142];let We;e[143]!==Ue||e[144]!==S?(We=(0,$.jsx)(Di.Provider,{value:S,children:Ue}),e[143]=Ue,e[144]=S,e[145]=We):We=e[145];let Ge;return e[146]!==q||e[147]!==pe||e[148]!==ve||e[149]!==be||e[150]!==J||e[151]!==xe||e[152]!==Se||e[153]!==Ce||e[154]!==We?(Ge=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden bg-surface-base`,children:[ne,q,re,ie,ae,oe,se,ce,le,ue,de,pe,me,he,ge,_e,ve,ye,be,J,xe,Se,Ce,We]}),e[146]=q,e[147]=pe,e[148]=ve,e[149]=be,e[150]=J,e[151]=xe,e[152]=Se,e[153]=Ce,e[154]=We,e[155]=Ge):Ge=e[155],Ge}function LX(){document.querySelector(`[data-work-discovery-trigger]`)?.focus({preventScroll:!0})}function RX(e){return e.conversationIdOverride}function zX(e){return e.language}function BX(e){return e.conversationId}var VX={en:`https://xopc.ai/en#download`,zh:`https://xopc.ai/zh#download`};function HX(e){if(e instanceof Error)return e.stack||e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function UX(e=k()){return VX[e]}function WX(){let e=window.location.hash.replace(/^#\/?/,``).split(/[/?]/,1)[0];return`${window.location.origin}${window.location.pathname}${e?`#/${e}`:``}`}function GX({error:e,source:t,componentStack:n,capturedAt:r=new Date}){let i=window.electronAPI?`Electron desktop app`:`Gateway web UI`,a=window.electronAPI?.platform??navigator.platform??`unknown`,o=IV.commit===`unknown`?`unknown`:IV.commit.slice(0,12),s=[`# xopc renderer error report`,``,`- xopc web version: ${IV.version}`,`- Commit: ${o}`,`- Build time: ${IV.buildTimeIso}`,`- Captured at: ${r.toISOString()}`,`- Source: ${t}`,`- Surface: ${i}`,`- Platform: ${a}`,`- Language: ${k()}`,`- Page: ${WX()}`,`- User agent: ${navigator.userAgent}`,``,`## Error`,``,"```text",HX(e),"```"];return n?.trim()&&s.push(``,`## React component stack`,``,"```text",n.trim(),"```"),s.join(`
|
|
10
|
+
`)}var KX={en:{eyebrow:`xopc recovery`,title:`The app ran into a problem`,description:`This version may be incompatible with the current runtime. Download and install the latest desktop version from the official website, then open xopc again.`,download:`Download the latest version`,reload:`Reload`,details:`Technical details`,copyReport:`Collect and copy report`,reportIssue:`Report on GitHub`,copied:`The redacted diagnostic report was copied.`,copyFailed:`Could not copy the diagnostic report automatically.`,collecting:`Collecting diagnostics…`,collectFailed:"Could not collect diagnostics. Run `xopc support report` in a terminal instead.",githubTruncated:`The complete report was copied to the clipboard. Paste it into the issue or upload the downloaded diagnostics file.`,reportHint:`These raw technical details stay on this page. Public reports use the redacted diagnostic report.`,openFailed:`Could not open the system browser. Visit xopc.ai to download the latest version.`},zh:{eyebrow:`xopc 恢复模式`,title:`应用遇到问题,暂时无法继续`,description:`当前版本可能与运行环境不兼容。请前往官网下载并安装最新桌面版,然后重新打开 xopc。`,download:`去官网下载最新版`,reload:`重新加载`,details:`技术详情`,copyReport:`收集并复制报告`,reportIssue:`上报 GitHub`,copied:`已复制脱敏后的诊断报告。`,copyFailed:`无法自动复制诊断报告。`,collecting:`正在收集诊断信息…`,collectFailed:"诊断信息收集失败,请在终端运行 `xopc support report`。",githubTruncated:`完整报告已复制到剪贴板,请粘贴到 Issue 中,或上传下载的诊断文件。`,reportHint:`这里显示的是本地原始技术详情;公开提交时会使用自动脱敏后的诊断报告。`,openFailed:`无法打开系统浏览器,请访问 xopc.ai 下载最新版本。`}};async function qX(e){let t=window.electronAPI?.shell?.openExternalUrl;if(t)try{let n=await t(e);return n.ok?null:n.error}catch(e){return e instanceof Error?e.message:String(e)}return window.location.assign(e),null}function JX({error:e,source:t=`react`,componentStack:n}){let r=k(),i=KX[r],a=UX(r),[o,s]=(0,Z.useState)(null),[c,l]=(0,Z.useState)(null),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(null),[m]=(0,Z.useState)(()=>new Date),h=(0,Z.useMemo)(()=>GX({error:e,source:t,componentStack:n,capturedAt:m}),[m,n,e,t]),g=async()=>{let e=await qX(a);s(e?`${i.openFailed} (${e})`:null)},_=async()=>{if(f)return f;d(!0),s(null);try{let e=(await tY({problem:`Renderer error (${t})`,occurredAt:m.toISOString(),clientContext:{rendererError:h,surface:window.electronAPI?`electron`:`web`,userAgent:navigator.userAgent}})).report;return p(e),e}catch{return s(i.collectFailed),null}finally{d(!1)}},v=async()=>{let e=await _();if(!e)return!1;let t=await il(e.markdown);return l(t?`copied`:`failed`),t},y=async()=>{let e=await _();if(!e)return;e.markdown.length>6e3&&await v();let t=await iY(rY(e,i.githubTruncated));s(t?null:i.openFailed)};return(0,$.jsx)(`main`,{className:`flex min-h-dvh items-center justify-center bg-surface-base px-5 py-12 text-fg`,children:(0,$.jsxs)(`section`,{className:`w-full max-w-lg rounded-2xl border border-edge bg-surface-panel p-6 shadow-surface sm:p-8`,children:[(0,$.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.18em] text-accent`,children:i.eyebrow}),(0,$.jsx)(`h1`,{className:`mt-3 text-2xl font-semibold tracking-tight`,children:i.title}),(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:i.description}),(0,$.jsxs)(`div`,{className:`mt-6 flex flex-col gap-2 sm:flex-row`,children:[(0,$.jsx)(X,{className:`sm:flex-1`,variant:`primary`,onClick:()=>void g(),children:i.download}),(0,$.jsx)(X,{className:`sm:flex-1`,onClick:()=>window.location.reload(),children:i.reload})]}),(0,$.jsxs)(`div`,{className:`mt-2 flex flex-col gap-2 sm:flex-row`,children:[(0,$.jsx)(X,{className:`sm:flex-1`,variant:`ghost`,disabled:u,onClick:()=>void v(),children:u?i.collecting:i.copyReport}),(0,$.jsx)(X,{className:`sm:flex-1`,variant:`ghost`,disabled:u,onClick:()=>void y(),children:u?i.collecting:i.reportIssue})]}),c?(0,$.jsx)(`p`,{className:`mt-4 rounded-xl px-3 py-2 text-sm ${c===`copied`?`bg-accent-soft text-accent`:`bg-warning-soft text-warning`}`,role:`status`,children:c===`copied`?i.copied:i.copyFailed}):null,o?(0,$.jsx)(`p`,{className:`mt-4 rounded-xl bg-warning-soft px-3 py-2 text-sm text-warning`,role:`alert`,children:o}):null,(0,$.jsxs)(`details`,{className:`mt-6 border-t border-edge pt-4 text-xs text-fg-subtle`,open:!0,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer select-none font-medium text-fg-muted`,children:i.details}),(0,$.jsx)(`p`,{className:`mt-2 leading-5 text-warning`,children:i.reportHint}),(0,$.jsx)(`pre`,{className:`mt-3 max-h-40 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-surface-base p-3 font-mono leading-5`,children:h})]})]})})}function YX(){let e=(0,Q.c)(2),t=g(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(JX,{error:t,source:`route`}),e[0]=t,e[1]=n),n}var XX=class extends Z.Component{state={error:null,hasError:!1};static getDerivedStateFromError(e){return{error:e,hasError:!0}}componentDidCatch(e,t){console.error(`Uncaught renderer error`,e,t.componentStack),this.setState({componentStack:t.componentStack??void 0})}render(){return this.state.hasError?(0,$.jsx)(JX,{componentStack:this.state.componentStack,error:this.state.error,source:`react`}):this.props.children}},ZX=(0,Z.memo)(function(e){let t=(0,Q.c)(19),{className:n}=e,r=E(QX),i;t[0]===r?i=t[1]:(i=P(r),t[0]=r,t[1]=i);let a=i.settingsMode,o=sd($X),s=sd(eZ),c;t[2]===n?c=t[3]:(c=Y(`shrink-0 border-t border-edge-subtle/80 px-4 py-3`,n),t[2]=n,t[3]=c);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(Ao,{className:`mt-0.5 size-4 shrink-0 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),t[4]=l):l=t[4];let u;t[5]===a.toggleLabel?u=t[6]:(u=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 text-sm font-medium text-fg`,children:a.toggleLabel}),t[5]=a.toggleLabel,t[6]=u);let d;t[7]===s?d=t[8]:(d=e=>s(e.target.checked),t[7]=s,t[8]=d);let f;t[9]!==a.toggleAria||t[10]!==o||t[11]!==d?(f=(0,$.jsx)(`input`,{type:`checkbox`,className:`ui-checkbox mt-0.5 shrink-0`,checked:o,onChange:d,"aria-label":a.toggleAria}),t[9]=a.toggleAria,t[10]=o,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==u||t[14]!==f?(p=(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-xl bg-surface-hover/35 px-3 py-2.5 transition-colors hover:bg-surface-hover/55 dark:bg-surface-hover/20 dark:hover:bg-surface-hover/35`,children:[l,u,f]}),t[13]=u,t[14]=f,t[15]=p):p=t[15];let m;return t[16]!==c||t[17]!==p?(m=(0,$.jsx)(`div`,{className:c,children:p}),t[16]=c,t[17]=p,t[18]=m):m=t[18],m});function QX(e){return e.language}function $X(e){return e.mode===`advanced`}function eZ(e){return e.setShowAdvanced}var tZ={sessions:vi,usage:Zg,tracing:W,logs:mi,settingsImports:vi,settingsOverview:W,settingsModels:ca,settingsSearch:wo,settingsAppearance:ik,settingsKeyboardShortcuts:_T,settingsSystem:ko,settingsDesktopPet:Ok,settingsDesktopApp:Wa,settingsAgentBrowser:Ni,settingsComputerUse:Va,settingsPhoneUse:jo,settingsAgentDefaults:ca,settingsGateway:Ni,settingsRuntimes:Po,settingsDevices:jo,settingsTunnel:kA,settingsShares:qt};function nZ(e){let t=(0,Q.c)(6),{tab:n,className:r}=e;if(n===`settingsPersonal`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(vu,{variant:`avatar`,className:`size-full`}),t[0]=e):e=t[0];let n;return t[1]===r?n=t[2]:(n=(0,$.jsx)(`span`,{className:r,"aria-hidden":!0,children:e}),t[1]=r,t[2]=n),n}let i=tZ[n],a;return t[3]!==i||t[4]!==r?(a=(0,$.jsx)(i,{className:r,strokeWidth:1.75,"aria-hidden":!0}),t[3]=i,t[4]=r,t[5]=a):a=t[5],a}function rZ(e){let t=(0,Q.c)(34),{navLinkClassName:n,showAdvanced:r}=e,i=r===void 0||r,a=E(iZ),o;t[0]===a?o=t[1]:(o=P(a),t[0]=a,t[1]=o);let s=o,c=$s(),l,u,d,f,p;if(t[2]!==s||t[3]!==n||t[4]!==i||t[5]!==c){p=Symbol.for(`react.early_return_sentinel`);bb0:{let e=aZ(c);if(!i){p=null;break bb0}t[11]===s.settingsNavGroups.extensions?f=t[12]:(f=(0,$.jsx)(`p`,{className:`px-4 pb-1 pt-2 text-[11px] font-semibold uppercase tracking-wider text-fg-muted`,children:s.settingsNavGroups.extensions}),t[11]=s.settingsNavGroups.extensions,t[12]=f),l=`flex flex-col gap-0.5`;let r;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(Fh,{className:`size-5 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=r):r=t[13];let a;t[14]===s.extensionDebug.nav?a=t[15]:(a=(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:s.extensionDebug.nav}),t[14]=s.extensionDebug.nav,t[15]=a),t[16]!==n||t[17]!==a?(u=(0,$.jsxs)(m,{to:`/settings/extensions/debug`,className:n,children:[r,a]}),t[16]=n,t[17]=a,t[18]=u):u=t[18];let o;t[19]===n?o=t[20]:(o=e=>{let{extension:t,panel:r}=e;return(0,$.jsxs)(m,{to:`/settings/ext/${t.id}/${r.id}`,className:n,children:[(0,$.jsx)(mo,{className:`size-5 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:r.title})]},`${t.id}:${r.id}`)},t[19]=n,t[20]=o),d=e.map(o)}t[2]=s,t[3]=n,t[4]=i,t[5]=c,t[6]=l,t[7]=u,t[8]=d,t[9]=f,t[10]=p}else l=t[6],u=t[7],d=t[8],f=t[9],p=t[10];if(p!==Symbol.for(`react.early_return_sentinel`))return p;let h;if(t[21]!==n||t[22]!==c){let e;t[24]===n?e=t[25]:(e=e=>(0,$.jsxs)(m,{to:`/settings/ext/${e.id}`,className:n,children:[(0,$.jsx)(mo,{className:`size-5 shrink-0 opacity-90`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})]},`${e.id}:config`),t[24]=n,t[25]=e),h=oZ(c).map(e),t[21]=n,t[22]=c,t[23]=h}else h=t[23];let g;t[26]!==l||t[27]!==u||t[28]!==d||t[29]!==h?(g=(0,$.jsxs)(`div`,{className:l,children:[u,d,h]}),t[26]=l,t[27]=u,t[28]=d,t[29]=h,t[30]=g):g=t[30];let _;return t[31]!==f||t[32]!==g?(_=(0,$.jsxs)(`div`,{children:[f,g]}),t[31]=f,t[32]=g,t[33]=_):_=t[33],_}function iZ(e){return e.language}function aZ(e){let t=[];for(let n of e){let e=n.ui?.contributions?.settingsPanels;if(e)for(let r of e)t.push({extension:n,panel:r})}return t.sort((e,t)=>{let n=e.panel.order??999,r=t.panel.order??999;return n===r?e.panel.title.localeCompare(t.panel.title):n-r}),t}function oZ(e){return e.filter(e=>(!!e.hasConfigSchema||nc(e))&&!(Array.isArray(e.ui?.contributions?.settingsPanels)&&e.ui.contributions.settingsPanels.length>0))}var sZ=`settingsBackPath`;function cZ(e){if(!e||typeof e!=`object`)return`/chat`;let t=e[sZ];if(typeof t!=`string`)return`/chat`;let n=t.trim();return!n.startsWith(`/`)||n.startsWith(`//`)?`/chat`:n}var lZ=`xopc-web-settings-rail-width-px`;function uZ(e){return Math.min(360,Math.max(192,Math.round(e)))}function dZ(){try{let e=globalThis.localStorage?.getItem(lZ);if(e==null)return uZ(228);let t=Number.parseInt(e,10);return uZ(Number.isFinite(t)?t:228)}catch{return uZ(228)}}function fZ(e){try{globalThis.localStorage?.setItem(lZ,String(e))}catch{}}var pZ=O((e,t)=>({widthPx:dZ(),setWidthPx:n=>{let r=uZ(n);t().widthPx!==r&&(e({widthPx:r}),queueMicrotask(()=>fZ(r)))}}));function mZ({isActive:e}){return Y(`touch-target flex w-full shrink-0 items-center gap-2.5 rounded-xl px-4 py-2 text-sm font-medium leading-6 transition-colors duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,e?`bg-surface-active text-fg [&_svg]:text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`)}var hZ=Y(`touch-target inline-flex max-w-full items-center gap-2 rounded-xl px-3 py-2 text-sm font-medium transition-colors duration-200 ease-out`,`text-fg-muted hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`sm:px-4`),gZ=Y(`inline-flex size-11 shrink-0 items-center justify-center rounded-xl text-fg-muted transition-colors duration-200 ease-out`,`hover:bg-surface-hover hover:text-fg`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,bl);function _Z(e,t){return e.tabs.filter(e=>e===`settingsComputerUse`&&!Hl()||!WK(e,t)?!1:!Bl.has(e)||Vl())}function vZ(e){let t=(0,Q.c)(28),{group:n,groupIndex:r,language:i,location:a,settingsMode:o,personalName:s}=e,c;t[0]===i?c=t[1]:(c=P(i),t[0]=i,t[1]=c);let l=c,u,d,f,p;if(t[2]!==n||t[3]!==r||t[4]!==i||t[5]!==a||t[6]!==l||t[7]!==s||t[8]!==o){p=Symbol.for(`react.early_return_sentinel`);bb0:{let e=_Z(n,o);if(e.length===0){p=null;break bb0}let c=r===0&&`pt-0`,h;t[13]===c?h=t[14]:(h=Y(`px-4 pb-1 pt-2 text-xs font-medium text-fg-muted`,c),t[13]=c,t[14]=h);let g=l.settingsNavGroups[n.id];t[15]!==h||t[16]!==g?(f=(0,$.jsx)(`p`,{className:h,children:g}),t[15]=h,t[16]=g,t[17]=f):f=t[17],u=`flex flex-col gap-0.5`;let _;t[18]!==i||t[19]!==a||t[20]!==s?(_=e=>(0,$.jsxs)(m,{to:Fl(e),state:a.state,onMouseEnter:()=>hu(Fl(e)),onFocus:()=>hu(Fl(e)),className:t=>{let{isActive:n}=t;return mZ({isActive:n||Nl(e,a.pathname)})},children:[(0,$.jsx)(nZ,{tab:e,className:`size-5 shrink-0 opacity-90`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e===`settingsPersonal`?s:N(i,e)}),e===`settingsPhoneUse`?(0,$.jsx)(gi,{}):null]},e),t[18]=i,t[19]=a,t[20]=s,t[21]=_):_=t[21],d=e.map(_)}t[2]=n,t[3]=r,t[4]=i,t[5]=a,t[6]=l,t[7]=s,t[8]=o,t[9]=u,t[10]=d,t[11]=f,t[12]=p}else u=t[9],d=t[10],f=t[11],p=t[12];if(p!==Symbol.for(`react.early_return_sentinel`))return p;let h;t[22]!==u||t[23]!==d?(h=(0,$.jsx)(`div`,{className:u,children:d}),t[22]=u,t[23]=d,t[24]=h):h=t[24];let g;return t[25]!==f||t[26]!==h?(g=(0,$.jsxs)(`div`,{children:[f,h]}),t[25]=f,t[26]=h,t[27]=g):g=t[27],g}var yZ=(0,Z.memo)(function(){let e=(0,Q.c)(114),t=E(bZ),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n,{displayName:i}=yu(),a=p(),o=sd(xZ),s=pZ(SZ),c=pZ(CZ),[l,u]=(0,Z.useState)(!1),[d,m]=(0,Z.useState)(!1),h=xd(el),g=Ht({runtime:Ve(),sidebarCollapsed:!1,mobileNavOpen:d}),_=h?g.sidebarLeadingInsetClass:``,v;e[2]===c?v=e[3]:(v=e=>{e.preventDefault();let t=e.currentTarget,n=t.parentElement;t.setPointerCapture(e.pointerId),u(!0);let r=e.clientX,i=pZ.getState().widthPx,a=e.pointerId,o=0,s=i,l=i,d=()=>{o=0,l=s,n?.style.setProperty(`--settings-rail-px`,`${l}px`)},f=e=>{s=uZ(i+(e.clientX-r)),o===0&&(o=window.requestAnimationFrame(d))},p=()=>{o!==0&&(window.cancelAnimationFrame(o),d());try{t.releasePointerCapture(a)}catch{}u(!1),c(l),window.removeEventListener(`pointermove`,f),window.removeEventListener(`pointerup`,p),window.removeEventListener(`pointercancel`,p)};window.addEventListener(`pointermove`,f),window.addEventListener(`pointerup`,p),window.addEventListener(`pointercancel`,p)},e[2]=c,e[3]=v);let b=v,x;e[4]===a.state?x=e[5]:(x=cZ(a.state),e[4]=a.state,e[5]=x);let S=x,C=r.sidebar.backToApp,w;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(w=Y(hZ,bl),e[6]=w):w=e[6];let T;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(Ut,{className:`size-4 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),e[7]=T):T=e[7];let D;e[8]===C?D=e[9]:(D=(0,$.jsx)(`span`,{children:C}),e[8]=C,e[9]=D);let O;e[10]!==C||e[11]!==S||e[12]!==D?(O=(0,$.jsxs)(y,{to:S,replace:!1,className:w,title:C,children:[T,D]}),e[10]=C,e[11]=S,e[12]=D,e[13]=O):O=e[13];let k=O,A;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(A=Rl.map(wZ),e[14]=A):A=e[14];let j=A,M;if(e[15]!==a.pathname||e[16]!==o){let t;e[18]===o?t=e[19]:(t=e=>_Z(e,o),e[18]=o,e[19]=t);let n;e[20]===a.pathname?n=e[21]:(n=e=>Nl(e,a.pathname),e[20]=a.pathname,e[21]=n),M=j.flatMap(t).find(n),e[15]=a.pathname,e[16]=o,e[17]=M}else M=e[17];let F=M,L;e[22]!==a.pathname||e[23]!==o?(L=GK(a.pathname,o),e[22]=a.pathname,e[23]=o,e[24]=L):L=e[24];let U=!L,W;e[25]!==F||e[26]!==t||e[27]!==r.nav.settings||e[28]!==i?(W=F===`settingsPersonal`?i:F?N(t,F):r.nav.settings,e[25]=F,e[26]=t,e[27]=r.nav.settings,e[28]=i,e[29]=W):W=e[29];let G=W,te;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(te=()=>{m(!1)},e[30]=te):te=e[30];let ne;e[31]!==a.pathname||e[32]!==a.search?(ne=[a.pathname,a.search],e[31]=a.pathname,e[32]=a.search,e[33]=ne):ne=e[33],(0,Z.useEffect)(te,ne);let K=r.nav.settings,q;e[34]!==t||e[35]!==a||e[36]!==i||e[37]!==o?(q=j.map((e,n)=>(0,$.jsx)(vZ,{group:e,groupIndex:n,language:t,location:a,settingsMode:o,personalName:i},e.id)),e[34]=t,e[35]=a,e[36]=i,e[37]=o,e[38]=q):q=e[38];let re=o===`advanced`,ie;e[39]===re?ie=e[40]:(ie=(0,$.jsx)(rZ,{navLinkClassName:mZ,showAdvanced:re}),e[39]=re,e[40]=ie);let ae;e[41]!==q||e[42]!==ie?(ae=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[q,ie]}),e[41]=q,e[42]=ie,e[43]=ae):ae=e[43];let oe;e[44]!==r.nav.settings||e[45]!==ae?(oe=(0,$.jsx)(`nav`,{className:`min-h-0 flex-1 overflow-y-auto overflow-x-hidden px-4 pb-4 pt-2`,"aria-label":K,children:ae}),e[44]=r.nav.settings,e[45]=ae,e[46]=oe):oe=e[46];let se;e[47]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsx)(ZX,{}),e[47]=se):se=e[47];let ce;e[48]===oe?ce=e[49]:(ce=(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[oe,se]}),e[48]=oe,e[49]=ce);let le=ce,ue;e[50]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(Ut,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),e[50]=ue):ue=e[50];let de;e[51]!==C||e[52]!==S?(de=(0,$.jsx)(y,{to:S,className:gZ,title:C,"aria-label":C,children:ue}),e[51]=C,e[52]=S,e[53]=de):de=e[53];let fe;e[54]===r.nav.settings?fe=e[55]:(fe=(0,$.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-wider text-fg-subtle`,children:r.nav.settings}),e[54]=r.nav.settings,e[55]=fe);let pe;e[56]===G?pe=e[57]:(pe=(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:G}),e[56]=G,e[57]=pe);let me;e[58]!==fe||e[59]!==pe?(me=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[fe,pe]}),e[58]=fe,e[59]=pe,e[60]=me):me=e[60];let he;e[61]===Symbol.for(`react.memo_cache_sentinel`)?(he=()=>m(!0),e[61]=he):he=e[61];let ge;e[62]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,$.jsx)(rD,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),e[62]=ge):ge=e[62];let _e;e[63]!==r.nav.settings||e[64]!==d?(_e=(0,$.jsx)(`button`,{type:`button`,className:gZ,onClick:he,"aria-label":r.nav.settings,"aria-expanded":d,children:ge}),e[63]=r.nav.settings,e[64]=d,e[65]=_e):_e=e[65];let ve;e[66]===Symbol.for(`react.memo_cache_sentinel`)?(ve=(0,$.jsx)(I,{className:`xopc-mobile-nav-overlay fixed inset-0 z-[75] bg-scrim/45 backdrop-blur-[1px] md:hidden`}),e[66]=ve):ve=e[66];let ye;e[67]===r.nav.settings?ye=e[68]:(ye=(0,$.jsx)(H,{className:`sr-only`,children:r.nav.settings}),e[67]=r.nav.settings,e[68]=ye);let be;e[69]===G?be=e[70]:(be=(0,$.jsx)(R,{className:`sr-only`,children:G}),e[69]=G,e[70]=be);let J;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,$.jsx)(Zo,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),e[71]=J):J=e[71];let xe;e[72]===r.nav.settings?xe=e[73]:(xe=(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:gZ,"aria-label":r.nav.settings,children:J})}),e[72]=r.nav.settings,e[73]=xe);let Se;e[74]!==k||e[75]!==xe?(Se=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 px-4 pb-2 pt-4`,children:[k,xe]}),e[74]=k,e[75]=xe,e[76]=Se):Se=e[76];let Ce;e[77]!==le||e[78]!==ye||e[79]!==be||e[80]!==Se?(Ce=(0,$.jsxs)(B,{children:[ve,(0,$.jsxs)(V,{className:`xopc-mobile-nav-content app-chrome-sidebar fixed inset-y-0 left-0 z-[76] flex w-[min(20rem,calc(100vw-3rem))] flex-col bg-surface-rail shadow-float outline-none md:hidden`,children:[ye,be,Se,le]})]}),e[77]=le,e[78]=ye,e[79]=be,e[80]=Se,e[81]=Ce):Ce=e[81];let we;e[82]!==d||e[83]!==Ce?(we=(0,$.jsx)(ee,{open:d,onOpenChange:m,children:Ce}),e[82]=d,e[83]=Ce,e[84]=we):we=e[84];let Te=l&&`settings-page-rail-resizing`,Ee;e[85]===Te?Ee=e[86]:(Ee=Y(`app-chrome-sidebar relative hidden shrink-0 flex-col bg-surface-rail md:flex`,`md:h-full md:min-h-0 md:shrink-0 md:overflow-hidden`,`settings-page-rail`,Te),e[85]=Te,e[86]=Ee);let De=`${s}px`,Oe;e[87]===De?Oe=e[88]:(Oe={"--settings-rail-px":De},e[87]=De,e[88]=Oe);let ke=Oe,Ae=Y(`flex shrink-0 items-center justify-between gap-2 pb-2 pt-4`,g.sidebarChromeDraggable&&`[-webkit-app-region:drag]`,_,h&&g.sidebarLeadingInsetClass?`pr-4`:`px-4`),je;e[89]!==k||e[90]!==Ae?(je=(0,$.jsx)(`div`,{className:Ae,children:k}),e[89]=k,e[90]=Ae,e[91]=je):je=e[91];let Me=r.sidebar.resizeHandleAria,Ne=l&&`bg-surface-hover/30 before:bg-edge/80! dark:before:bg-edge/85!`,Pe;e[92]===Ne?Pe=e[93]:(Pe=Y(`pointer-events-auto absolute right-0 top-0 z-10 hidden h-full w-2 shrink-0 cursor-col-resize md:block`,`before:content-[''] before:pointer-events-none before:absolute before:left-1/2 before:top-0 before:z-0 before:h-full before:w-px before:-translate-x-1/2`,`before:bg-transparent before:transition-[background-color] before:duration-150`,`hover:bg-surface-hover/20 hover:before:bg-edge/65 dark:hover:before:bg-edge/75`,Ne,`transition-[background-color] duration-150`,`touch-none select-none`,bl),e[92]=Ne,e[93]=Pe);let Fe;e[94]!==r.sidebar.resizeHandleAria||e[95]!==b||e[96]!==Pe?(Fe=(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":Me,onPointerDown:b,className:Pe}),e[94]=r.sidebar.resizeHandleAria,e[95]=b,e[96]=Pe,e[97]=Fe):Fe=e[97];let Ie;e[98]!==le||e[99]!==Ee||e[100]!==ke||e[101]!==je||e[102]!==Fe?(Ie=(0,$.jsxs)(`div`,{className:Ee,style:ke,children:[je,le,Fe]}),e[98]=le,e[99]=Ee,e[100]=ke,e[101]=je,e[102]=Fe,e[103]=Ie):Ie=e[103];let Le;e[104]!==t||e[105]!==U?(Le=U?(0,$.jsxs)(`div`,{className:`p-5`,children:[(0,$.jsx)(bd,{title:t===`zh`?`高级设置`:`Advanced settings`,summary:t===`zh`?`此页面用于自定义运行环境或诊断服务。显示高级设置后可继续访问当前页面。`:`This page contains environment or service diagnostics. Show advanced settings to continue to this destination.`,children:null}),(0,$.jsx)(y,{to:`/settings/overview`,className:`mt-4 inline-block text-sm text-accent-fg hover:underline`,children:t===`zh`?`返回设置总览`:`Back to settings overview`})]}):null,e[104]=t,e[105]=U,e[106]=Le):Le=e[106];let Re;e[107]===Symbol.for(`react.memo_cache_sentinel`)?(Re=(0,$.jsx)(f,{}),e[107]=Re):Re=e[107];let ze;e[108]!==a.pathname||e[109]!==U?(ze=(0,$.jsx)(`div`,{hidden:U,className:`settings-content-enter min-h-full`,children:Re},a.pathname),e[108]=a.pathname,e[109]=U,e[110]=ze):ze=e[110];let Be;return e[111]!==Le||e[112]!==ze?(Be=(0,$.jsxs)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain bg-surface-panel scrollbar-gutter-both`,children:[Le,ze]}),e[111]=Le,e[112]=ze,e[113]=Be):Be=e[113],(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden md:flex-row`,children:[(0,$.jsxs)(`div`,{className:Y(`flex shrink-0 items-center gap-2 border-b border-edge-subtle bg-surface-panel px-3 py-2 md:hidden`,g.mainHeaderDraggable&&`[-webkit-app-region:drag]`),children:[de,me,_e]}),we,Ie,Be]})});function bZ(e){return e.language}function xZ(e){return e.mode}function SZ(e){return e.widthPx}function CZ(e){return e.setWidthPx}function wZ(e){return Vl()&&e.id===`system`?{...e,tabs:[...e.tabs,...Il.tabs]}:e}var TZ=(0,Z.memo)(function(e){let t=(0,Q.c)(24),{children:n}=e,r=b(),i=p(),a=E(EZ),o;t[0]===a?o=t[1]:(o=P(a),t[0]=a,t[1]=o);let s=o,c;t[2]===i.state?c=t[3]:(c=cZ(i.state),t[2]=i.state,t[3]=c);let l=c,u=xd(el),d=(0,Z.useRef)(null),f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(I,{className:`absolute inset-0 z-40 bg-scrim/55 backdrop-blur-[2px] dark:bg-black/50`}),t[4]=f):f=t[4];let m=f,h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(h=Y(`relative z-50 flex min-h-0 flex-1 flex-col overflow-hidden bg-surface-overlay`,`max-md:shadow-elevated`,`md:m-3 md:max-h-[calc(100dvh-1.5rem)] md:rounded-2xl md:border md:border-edge md:shadow-elevated`,`settings-sheet-enter`),t[5]=h):h=t[5];let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>{let t=document.querySelectorAll(`[data-state="open"]:is([role="dialog"], [role="alertdialog"], [role="menu"], [role="listbox"])`);Array.from(t).some(e=>e!==d.current&&!e.contains(d.current)&&e.getClientRects().length>0)&&e.preventDefault()},t[6]=g):g=t[6];let _;t[7]===s.nav.settings?_=t[8]:(_=(0,$.jsx)(H,{className:`sr-only`,children:s.nav.settings}),t[7]=s.nav.settings,t[8]=_);let v;t[9]===n?v=t[10]:(v=(0,$.jsx)($n,{layer:`page`,children:n}),t[9]=n,t[10]=v);let y;t[11]!==s.nav.settings||t[12]!==_||t[13]!==v?(y=(0,$.jsxs)($.Fragment,{children:[m,(0,$.jsxs)(V,{ref:d,className:h,"aria-modal":`true`,"aria-label":s.nav.settings,"aria-describedby":void 0,onEscapeKeyDown:g,children:[_,v]})]}),t[11]=s.nav.settings,t[12]=_,t[13]=v,t[14]=y):y=t[14];let x=y,S;t[15]!==u||t[16]!==x?(S=u?(0,wd.createPortal)((0,$.jsx)(`div`,{className:Y(`fixed inset-0 flex min-h-0 flex-col bg-surface-base`,nl),children:x}),document.body):(0,$.jsx)(`div`,{className:`relative flex min-h-0 min-h-[100dvh] flex-1 flex-col md:min-h-0`,children:x}),t[15]=u,t[16]=x,t[17]=S):S=t[17];let C=S,w;t[18]!==l||t[19]!==r?(w=e=>{e||r(l)},t[18]=l,t[19]=r,t[20]=w):w=t[20];let T;return t[21]!==C||t[22]!==w?(T=(0,$.jsx)(ee,{open:!0,onOpenChange:w,children:C}),t[21]=C,t[22]=w,t[23]=T):T=t[23],T});function EZ(e){return e.language}function DZ(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col overflow-hidden`,children:(0,$.jsx)(f,{})}),e[0]=t):t=e[0],t}var OZ=`:conversationId?`;function kZ(){let e=(0,Q.c)(5),{taskId:t}=d(),n=t===void 0?``:t,{data:r,error:i,isLoading:a,conversationLoading:o,conversationError:s}=bt(n),c=r?.conversation.activeConversationId??null;if(a||o||r&&!c&&!s){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{className:`flex h-full flex-col gap-4 p-6`,"aria-busy":!0,children:[(0,$.jsx)($o,{className:`h-10 w-64`}),(0,$.jsx)($o,{className:`min-h-0 flex-1 rounded-xl`})]}),e[0]=t):t=e[0],t}if(i||s||!r){let t;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:`grid h-full place-items-center text-sm text-danger`,children:`Task conversation could not be loaded.`}),e[1]=t):t=e[1],t}if(!c)return null;let l;return e[2]!==c||e[3]!==n?(l=(0,$.jsx)(At,{conversationId:c,taskId:n}),e[2]=c,e[3]=n,e[4]=l):l=e[4],l}function AZ(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function jZ(e,...t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.trim())return t.trim()}}function MZ(e){if(!e||e.includes(`
|
|
11
|
+
`)||e.includes(`\r`))return;let t=e.replace(/\\/g,`/`).split(`/`).filter(Boolean).at(-1);if(!(!t||t.length>80||/(?:token|api[_-]?key|password|secret)=/i.test(t)))return t}function NZ(e){if(e)try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`?t.host:void 0}catch{return}}function PZ(e,t){let n=t??Zs(e??``,`running`);return n.category===`planning`?`planning`:n.category===`navigation`||n.category===`web`&&n.action===`read`?`browsing`:n.action===`search`?`researching`:n.category===`file`&&(n.action===`read`||n.action===`list`)?`reading`:n.category===`file`&&(n.action===`edit`||n.action===`write`)?`editing`:n.category===`command`?`running`:`preparing`}function FZ(e,t,n){let r=AZ(t),i=n??Zs(e??``,`running`),a={phase:PZ(e,i)};return a.phase===`reading`||a.phase===`editing`?a.detail=MZ(jZ(r,`path`,`filePath`,`file`)):a.phase===`browsing`&&(a.detail=NZ(jZ(r,`url`,`href`))),(i.category===`command`||i.action===`search`)&&delete a.detail,a}function IZ(e){let t=AZ(e),n=jZ(t,`stage`)?.toLowerCase(),r=n===`compaction`?`compacting`:n===`planning`?`planning`:n===`research`||n===`search`?`researching`:n===`verification`||n===`running`?`running`:n===`waiting`||n===`clarifying`?`waiting`:`preparing`,i=Number(t.completed),a=Number(t.total);return{phase:r,...Number.isFinite(i)&&i>=0?{completed:i}:{},...Number.isFinite(a)&&a>0?{total:a}:{}}}function LZ(e){return e&&typeof e==`object`?e:{}}function RZ(e){return typeof e==`string`&&e.trim()?e.trim():void 0}function zZ(e){let t=RZ(e)?.replace(/```[\s\S]*?```/g,``).replace(/[`*_#>\[\]]/g,``).replace(/https?:\/\/\S+/g,``).replace(/(?:token|authorization|api[_-]?key|password|secret)\s*[:=].*/gi,`[redacted]`).replace(/\s+/g,` `).trim();return t?t.slice(0,96):void 0}var BZ=new Set([`working`,`waiting`,`success`,`error`]),VZ=new Set([`making_progress`,`waiting_safely`,`completed`,`work_preserved`,`details_available`]),HZ=new Set([`open_session`,`confirm`,`review_error`]);function UZ(e){let t=LZ(e);if(t.version!==2||!BZ.has(String(t.taskState))||t.sensitivity!==`public`&&t.sensitivity!==`private`)return;let n=LZ(t.nextAction),r=HZ.has(String(n.type))&&HZ.has(String(n.label))?{type:String(n.type),label:String(n.label)}:void 0,i=LZ(t.progress),a=typeof i.completed==`number`&&typeof i.total==`number`&&i.total>0?{completed:i.completed,total:i.total}:void 0,o=VZ.has(String(t.reassurance))?t.reassurance:void 0,s=t.sensitivity===`public`?zZ(t.publicSummary):void 0;return{version:2,taskState:String(t.taskState),sensitivity:t.sensitivity,...o?{reassurance:o}:{},...r?{nextAction:r}:{},...a?{progress:a}:{},...s?{publicSummary:s}:{}}}function WZ(e,t,n,r){if(!e.conversationId)return null;let i=LZ(e.event),a=LZ(i.payload),o=RZ(i.type);if(!o)return null;let s=RZ(i.runId)??`active`,c={conversationId:e.conversationId,runId:s,sessionLabel:n,sequence:t,timestamp:Date.now()},l=UZ(a.petFeedback??i.petFeedback),u=l?l.publicSummary:zZ(a.publicSummary??i.publicSummary);if(o===`run_start`)return{...c,state:`running`,phase:`preparing`,action:r.tipRunStart,animation:`prepare`,priority:`low`};if(o===`thinking_delta`)return e.activityDetailLevel===`stream`?{...c,state:`running`,phase:`planning`,action:r.tipThinking,animation:`prepare`,priority:`low`}:null;if(o===`tool_start`||o===`tool_update`){let e=RZ(i.toolName)??RZ(a.toolName)??`tool`,t=LZ(a.activity),n=typeof t.category==`string`&&typeof t.action==`string`?t:void 0,o=FZ(e,a.args,n),s=o.phase??`running`,l=Cd(r,e,s,o.detail,n);return{...c,state:`running`,phase:s,...l,detail:o.detail}}if(o===`progress`||o===`compaction`){let e=o===`compaction`?{phase:`compacting`}:IZ(a),t=e.phase??`preparing`,n=Sd(r,t,e.completed,e.total);return{...c,state:`running`,phase:t,...n,feedback:l,progress:l?.progress??(typeof e.completed==`number`&&typeof e.total==`number`?{completed:e.completed,total:e.total}:void 0)}}if(o===`clarify_request`)return{...c,state:`waiting`,phase:`waiting`,action:r.tipWaiting,animation:`wait`,priority:`high`,publicSummary:u,feedback:l};if(o===`assistant_message_start`||o===`assistant_delta`)return{...c,state:`running`,phase:`running`,action:r.tipAssistantDelta,animation:`create`,priority:`low`};if(o===`review_start`||o===`review_delta`)return{...c,state:`running`,phase:`reading`,action:r.tipReview,animation:`read`,priority:`normal`};if(o===`command_output_delta`)return{...c,state:`running`,phase:`running`,action:r.tipCommandDelta,animation:`execute`,priority:`low`};if(o===`assistant_message_end`){let e=RZ(a.presentation)===`narration`?`narration`:`answer`;return{...c,state:`running`,phase:e===`narration`?`preparing`:`running`,action:e===`narration`?r.tipAssistantNarrationDone:r.tipAssistantAnswerDone,animation:e===`narration`?`prepare`:`create`,priority:e===`narration`?`low`:`normal`,publicSummary:u}}if(o===`run_end`){let e=l?.taskState===`error`?`error`:`success`;return{...c,state:e,phase:e===`error`?`waiting`:`running`,action:e===`error`?r.tipError:r.tipComplete,animation:e===`error`?`concern`:`success`,priority:`high`,publicSummary:u,feedback:l}}return o===`error`?{...c,state:`error`,phase:`waiting`,action:r.tipError,animation:`concern`,priority:`high`,publicSummary:u,feedback:l}:null}function GZ(e){return{searchedWeb:e.toolActionSearch,searchedMemory:e.toolActionSearchMemory,searchedCode:e.toolActionSearchCode,searched:e.toolActionSearchGeneric,readFile:e.toolActionReadFile,runCommand:e.toolActionRunCommand,updatePlan:e.toolActionUpdatePlan,listDirectory:e.toolActionListDirectory,writeFile:e.toolActionWriteFile,editFile:e.toolActionEditFile,openUrl:e.toolActionOpenUrl,fetchUrl:e.toolActionFetchUrl,unknownTool:e.toolActionUnknownNamed,tipRunStart:e.tipRunStart,tipTool:e.tipTool,tipProgress:e.tipProgress,tipValidate:e.tipValidate,tipWaiting:e.tipWaiting,tipThinking:e.tipThinking,tipAssistantDelta:e.tipAssistantDelta,tipCommandDelta:e.tipCommandDelta,tipAssistantNarrationDone:e.tipAssistantNarrationDone,tipAssistantAnswerDone:e.tipAssistantAnswerDone,tipReview:e.tipReview,tipComplete:e.tipComplete,tipError:e.tipError,targetSuffix:e.tipTargetSuffix,progressSuffix:e.tipProgressSuffix}}function KZ(){let e=(0,Q.c)(10),t=E(XZ),n;e[0]===t?n=e[1]:(n=P(t),e[0]=t,e[1]=n);let r=n.desktopPet,i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=new Map,e[2]=i):i=e[2];let a=(0,Z.useRef)(i),o;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=new Map,e[3]=o):o=e[3];let s=(0,Z.useRef)(o),c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=new Set,e[4]=c):c=e[4];let l=(0,Z.useRef)(c),u;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=new Map,e[5]=u):u=e[5];let d=(0,Z.useRef)(u),f;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(f=new Map,e[6]=f):f=e[6];let p=(0,Z.useRef)(f),m=(0,Z.useRef)(null),h,g;return e[7]===r?(h=e[8],g=e[9]):(h=()=>{let e=window.electronAPI?.pet;if(!Vl()||!e)return;let t=t=>{p.current.set(t.conversationId,t),e.sendEvent(t).catch(YZ)},n=()=>{m.current=null;for(let e of d.current.values())t(e);d.current.clear()},i=e=>{let t=s.current.get(e);return!t&&!l.current.has(e)&&(l.current.add(e),x(w(`/api/sessions/${encodeURIComponent(e)}?offset=0&limit=1`)).then(JZ).then(t=>{t&&s.current.set(e,t)}).catch(qZ).finally(()=>l.current.delete(e))),t??r.fallbackSessionLabel},o=e=>{let o=e.detail;if(!o.conversationId)return;let s=i(o.conversationId),c=(a.current.get(o.conversationId??``)??0)+1,l=WZ(o,c,s,GZ(r));if(!l)return;a.current.set(l.conversationId,c);let u=d.current.get(l.conversationId)??p.current.get(l.conversationId),f=l.state===`error`||l.state===`waiting`||l.state===`success`,h=!u||u.runId!==l.runId||u.state!==l.state||u.phase!==l.phase||u.animation!==l.animation||u.action!==l.action;if(f||h){d.current.delete(l.conversationId),t(l);return}d.current.set(l.conversationId,l),m.current===null&&(m.current=window.setTimeout(n,500))};return window.addEventListener(ic,o),()=>{window.removeEventListener(ic,o),m.current!==null&&window.clearTimeout(m.current),m.current=null,d.current.clear()}},g=[r],e[7]=r,e[8]=h,e[9]=g),(0,Z.useEffect)(h,g),null}function qZ(){}async function JZ(e){return e.ok?(await e.json()).session?.name?.trim():void 0}function YZ(){}function XZ(e){return e.language}async function ZZ(e){let t=await x(e);if(!t.ok){let e=await t.json().catch(()=>({})),n=M(t.status,t.statusText,e.error?.message);throw Error(n)}return t.json()}function QZ(e){let t=(0,Q.c)(3),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={fetcher:ZZ,revalidateOnFocus:!1,dedupingInterval:2e3,shouldRetryOnError:!0,errorRetryCount:2},t[0]=r):r=t[0];let i;return t[1]===n?i=t[2]:(i=(0,$.jsx)(sc,{value:r,children:n}),t[1]=n,t[2]=i),i}var $Z=(0,Z.lazy)(()=>Jl().then(e=>({default:e.SessionsPage}))),eQ=(0,Z.lazy)(()=>s(()=>import(`./tracing-settings-page-B4uA4Pnz.js`).then(e=>({default:e.TracingSettingsPage})),__vite__mapDeps([189,1,2,5,6,7,8,9,65,11,35,20,21,22,25,26,27,28,163,12,36,119,43,37,50,46,164,23,24,87,83,95,96,3,4,15,97,98,99,100]))),tQ=(0,Z.lazy)(()=>Gl().then(e=>({default:e.UsageSettingsPage}))),nQ=(0,Z.lazy)(()=>eu().then(e=>({default:e.AutomationsPage}))),rQ=(0,Z.lazy)(()=>s(()=>import(`./setup-interaction-page-BDPte58u.js`).then(e=>({default:e.SetupInteractionPage})),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,65,11,35,20,21,22,25,26,27,28,191,19,23,24,192,116,109,90,167,81,79,164,166,45,51,52,193]))),iQ=(0,Z.lazy)(()=>s(()=>import(`./mcp-conversation-setup-page-Dwx4TuIr.js`).then(e=>({default:e.McpConversationSetupPage})),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,35,11,163,12,36,119,43,20,21,37,50,46,164,171,195,191,19,22,23,24]))),aQ=(0,Z.lazy)(()=>cu().then(e=>({default:e.BrowserAutomationsPage}))),oQ=(0,Z.lazy)(()=>au().then(e=>({default:e.HomePage}))),sQ=(0,Z.lazy)(()=>Yl().then(e=>({default:e.TaskDetailPage}))),cQ=(0,Z.lazy)(()=>Ql().then(e=>({default:e.ProjectsPage}))),lQ=(0,Z.lazy)(()=>pu().then(e=>({default:e.ProjectDetailPage}))),uQ=(0,Z.lazy)(()=>tu().then(e=>({default:e.NotesPage}))),dQ=(0,Z.lazy)(()=>s(()=>import(`./imports-page-CVnoGUyp.js`).then(e=>({default:e.ImportsPage})),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,197,11,35,103,14,198,199,61,75,62,19,20,21,24,28,183,22,96,15,97,98]))),fQ=(0,Z.lazy)(()=>s(()=>import(`./capabilities-page-B8UgQ4dD.js`).then(e=>({default:e.CapabilitiesPage})),__vite__mapDeps([152,1,2,4,3,5,6,22,20,21,153,142,154,155,75,11,24,9,25,8,26,27,156]))),pQ=(0,Z.lazy)(()=>Kl().then(e=>({default:e.UserModelPage}))),mQ=(0,Z.lazy)(()=>s(()=>import(`./connector-service-page-BVMEg8n-.js`).then(e=>e.n).then(e=>({default:e.ConnectorServicePage})),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,163,11,12,36,119,43,20,21,37,50,46,164,76,19,22,23,24,201,45,180,28,168,169,39,166,81,79,38]))),hQ=(0,Z.lazy)(()=>mu().then(e=>({default:e.LogsPage}))),gQ=(0,Z.lazy)(()=>su().then(e=>({default:e.SettingsPage}))),_Q=(0,Z.lazy)(()=>uu().then(e=>({default:e.CapabilitiesSettingsPanel}))),vQ=(0,Z.lazy)(()=>du().then(e=>({default:e.AgentBrowserSettingsPage}))),yQ=(0,Z.lazy)(()=>Zl().then(e=>({default:e.PhoneSettingsPage}))),bQ=(0,Z.lazy)(()=>nu().then(e=>({default:e.ComputerSettingsPage}))),xQ=(0,Z.lazy)(()=>iu().then(e=>({default:e.ExtensionPage}))),SQ=(0,Z.lazy)(()=>lu().then(e=>({default:e.ExtensionSettingsPage}))),CQ=(0,Z.lazy)(()=>ru().then(e=>({default:e.ExtensionDebugPage}))),wQ=(0,Z.lazy)(()=>ou().then(e=>({default:e.SharePreviewPage}))),TQ=(0,Z.lazy)(()=>s(()=>import(`./desktop-pet-C1z9YDEg.js`).then(e=>({default:e.DesktopPetPage})),__vite__mapDeps([202,1,2,5,6,203,3,4,103,11,19,204,205,138,206,20,21,207]))),EQ=(0,Z.lazy)(()=>fu().then(e=>({default:e.LocalAppsPage}))),DQ=(0,Z.lazy)(()=>$l().then(e=>({default:e.LocalAppWorkbenchPage}))),OQ=(0,Z.lazy)(()=>Wl().then(e=>({default:e.ProductOpenPage}))),kQ=(0,Z.lazy)(()=>Xl().then(e=>({default:e.WorkDiscoveryPage}))),AQ=(0,Z.lazy)(()=>s(()=>import(`./personal-page-Cvd-v9kT.js`).then(e=>({default:e.PersonalPage})),__vite__mapDeps([208,1,2,3,4,5,6,209,7,8,9,11,210,64,116,211,212,115,213,12,214,13,15,215,121,14,122,74,19,20,21,29,30,31,32,37,123,124,125,216,35,36,22,43,60,126,127,217,218,97,175,176,130,23,24,148,219,103,10,220,221,50,46,88,65,25,26,27,28,100,222,223,66,224,68,225,118,226,105,198,69,106,227,119,195,228,72,229,49,109,230,75,136,78,79,140,231,232,39,33,87,83,233,234,134,143,58,42,235,171,16,236,237,238,172,239,240,163,164,201,45,168,169,166,81,38,62,76,128,18,174,77,241,34,177,132,133,131,135,137,138,139,110,111,141,242,243,244,245,94,246,147,247,248,249,250,251,80,252,178,90,253,254,255,205,179,142,85,86,84,256,180,257,258,158,89,259,260,144,117,59,145,146,261,262,263,181,149,156,40,264,265,266,160,161,267,268,269,184,270])));function jQ(){let e=(0,Q.c)(3),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,$.jsx)($o,{className:`h-5 w-44`}),(0,$.jsx)($o,{className:`h-3 w-64 max-w-full`})]}),(0,$.jsx)($o,{className:`h-9 w-24 shrink-0 rounded-lg`})]}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:Array.from({length:4}).map(NQ)}),e[1]=n):n=e[1];let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-surface-panel`,"aria-busy":!0,children:(0,$.jsxs)(`div`,{className:`flex w-full flex-col gap-5 px-3 py-6 sm:px-5 xl:px-6`,children:[t,n,(0,$.jsx)(`div`,{className:`grid gap-3 lg:grid-cols-3`,children:Array.from({length:6}).map(MQ)})]})}),e[2]=r):r=e[2],r}function MQ(e,t){return(0,$.jsx)($o,{className:`h-36 rounded-lg`},t)}function NQ(e,t){return(0,$.jsx)($o,{className:`h-20 rounded-lg`},t)}function PQ(){let e=(0,Q.c)(4),t,n,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)($o,{className:`h-8 w-48 max-w-full`}),n=(0,$.jsx)($o,{className:`mt-6 h-36 rounded-xl`}),r=(0,$.jsx)($o,{className:`mt-4 h-24 rounded-xl`}),e[0]=t,e[1]=n,e[2]=r):(t=e[0],n=e[1],r=e[2]);let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,"aria-busy":!0,children:(0,$.jsxs)(`div`,{className:`w-full flex-1 px-3 py-8 sm:px-5 xl:px-6`,children:[t,n,r,(0,$.jsxs)(`div`,{className:`mt-6 grid gap-3 sm:grid-cols-2`,children:[(0,$.jsx)($o,{className:`h-20 rounded-xl`}),(0,$.jsx)($o,{className:`h-20 rounded-xl`})]})]})}),e[3]=i):i=e[3],i}function FQ(){let e=(0,Q.c)(7),t=E(IQ)===`zh`,n=t?`页面不存在`:`Page not found`,r;e[0]===n?r=e[1]:(r=(0,$.jsx)(`h1`,{className:`text-xl font-semibold`,children:n}),e[0]=n,e[1]=r);let i=t?`返回工作台`:`Back to work`,a;e[2]===i?a=e[3]:(a=(0,$.jsx)(y,{to:`/`,className:`text-accent-fg hover:underline`,children:i}),e[2]=i,e[3]=a);let o;return e[4]!==r||e[5]!==a?(o=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4 p-8 text-fg`,children:[r,a]}),e[4]=r,e[5]=a,e[6]=o):o=e[6],o}function IQ(e){return e.language}var LQ=v([{path:`/desktop-pet`,errorElement:(0,$.jsx)(YX,{}),element:(0,$.jsx)(Z.Suspense,{fallback:null,children:(0,$.jsx)(TQ,{})})},{path:`/share/:token`,errorElement:(0,$.jsx)(YX,{}),element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(wQ,{})})},{path:`/`,element:(0,$.jsx)(NX,{}),errorElement:(0,$.jsx)(YX,{}),children:[{path:`configuration/:scene/:setupId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(rQ,{})})},{path:`mcp-setup/:setupId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(iQ,{})})},{path:`personal`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(AQ,{})})},{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(oQ,{})})},{path:`open`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(OQ,{})})},{path:`onboarding/workspace`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(kQ,{})})},{path:`chat`,element:(0,$.jsx)(DZ,{}),children:[{path:`task/:taskId`,element:(0,$.jsx)(kZ,{})},{path:OZ,element:(0,$.jsx)(At,{})}]},{path:`automations`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(nQ,{})})},{path:`browser-automations`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(aQ,{})})},{path:`user-model`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(pQ,{})})},{path:`tasks/:taskId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(sQ,{})})},{path:`projects`,children:[{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(cQ,{})})},{path:`:projectId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(lQ,{})})},{path:`:projectId/:tabId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(lQ,{})})},{path:`:projectId/notes/:noteId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(lQ,{})})}]},{path:`notes`,children:[{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(uQ,{})})},{path:`:noteId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(uQ,{})})}]},{path:`capabilities/:section?/:detailId?`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(fQ,{})})},{path:`settings/connector-service`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(mQ,{})})},{path:`local-apps`,children:[{index:!0,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(EQ,{})})},{path:`:appId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(DQ,{})})}]},{path:`extensions/:extensionId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(xQ,{})})},{path:`extensions/:extensionId/:pageId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(xQ,{})})},{path:`settings`,element:(0,$.jsx)(TZ,{children:(0,$.jsx)(yZ,{})}),children:[{index:!0,element:(0,$.jsx)(_,{to:`overview`,replace:!0})},{path:`imports`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(dQ,{})})},{path:`sessions`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)($Z,{})})},{path:`tracing`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(eQ,{})})},{path:`usage`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(tQ,{})})},{path:`logs`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(jQ,{}),children:(0,$.jsx)(hQ,{})})},{path:`phone-use`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(yQ,{})})},{path:`computer-use`,element:Hl()?(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(bQ,{})}):(0,$.jsx)(F,{kind:`desktop`,backTo:`/settings/overview`})},{path:`agent-browser`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(vQ,{})})},{path:`capabilities/:capability`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(_Q,{})})},{path:`extensions/debug`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(CQ,{})})},{path:`ext/:extensionId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(SQ,{})})},{path:`ext/:extensionId/:panelId`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(SQ,{})})},{path:`:section`,element:(0,$.jsx)(Z.Suspense,{fallback:(0,$.jsx)(PQ,{}),children:(0,$.jsx)(gQ,{})})}]},{path:`*`,element:(0,$.jsx)(FQ,{})}]}]);function RQ(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,Z.useEffect)(zQ,t),null}function zQ(){let e=kl.persist.onFinishHydration(VQ),t=Tl.persist.onFinishHydration(BQ),n=j(),r=Al();return()=>{e?.(),t?.(),n(),r()}}function BQ(){Dl()}function VQ(){jl()}function HQ(){let e=(0,Q.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(RQ,{}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,$.jsx)(QZ,{children:(0,$.jsx)(rc,{children:(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[t,(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col *:min-h-0 *:flex-1`,children:[(0,$.jsx)(KZ,{}),(0,$.jsx)(Td,{router:LQ})]})]})})}),e[1]=n):n=e[1],n}function UQ(e){return e instanceof DOMException&&e.name===`AbortError`}function WQ(e){if(e.error!==void 0&&e.error!==null)return e.error;let t=e.filename?` (${e.filename}${e.lineno?`:${e.lineno}:${e.colno}`:``})`:``;return Error(`${e.message||`Unknown window error`}${t}`)}function GQ(e){let t=!1,n=n=>{if(t||!n.message&&n.error==null||n.error==null&&(n.message===`ResizeObserver loop completed with undelivered notifications.`||n.message===`ResizeObserver loop limit exceeded`))return;let r=WQ(n);UQ(r)||(t=!0,n.preventDefault(),e(r,`window.error`))},r=n=>{t||UQ(n.reason)||(t=!0,n.preventDefault(),e(n.reason??Error(`Unhandled promise rejection`),`unhandledrejection`))};return window.addEventListener(`error`,n),window.addEventListener(`unhandledrejection`,r),()=>{window.removeEventListener(`error`,n),window.removeEventListener(`unhandledrejection`,r)}}async function KQ(){let e=(0,fz.createRoot)(document.getElementById(`root`)),t=!1,n=(n,r)=>{t||(t=!0,console.error(`Renderer fatal error (${r})`,n),e.render((0,$.jsx)(JX,{error:n,source:r})))};GQ(n);try{C(k()),Ml(),El(),await S(),e.render((0,$.jsx)(Z.StrictMode,{children:(0,$.jsx)(XX,{children:(0,$.jsx)(HQ,{})})}))}catch(e){n(e,`bootstrap`)}}KQ();
|