@xopcai/xopc 0.0.388 → 0.0.390
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/_locales/en/messages.json +6 -1
- package/dist/browser-ext/_locales/zh_CN/messages.json +6 -1
- package/dist/browser-ext/dist/assets/{page-context-BeworyNB.js → page-context-A5RCibM_.js} +1 -1
- package/dist/browser-ext/dist/background.js +1 -1
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +98 -53
- 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 +7 -5
- 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/{activity-store-CB2X4Gmu.js → activity-store-DGMAYkw8.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-44LqtGte.js → agent-avatar-dicebear-B4AsZzJR.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-9NUY1sO3.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CNc6ntzP.js +1 -0
- package/dist/gateway/static/root/assets/agents-QNY9Vkrf.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-BkULgC6Q.js → agents-admin-api-DxdaiFWn.js} +1 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-DHRfLkYD.js +1 -0
- package/dist/gateway/static/root/assets/{appearance-settings-CYofu-su.js → appearance-settings-DtKSapgb.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-CHjWvDjk.js → apps-page-B9kuRt_z.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-De0ND0oA.js → archive-plugin-AgySTXp_.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-BIF0skon.js → automations-page-D1o7ZtUW.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BJenz0P1.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-Do535ZGW.js → binary-plugins-A1AXOsO6.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-C_RD603p.js → block-editor-DUNLkLKF.js} +3 -3
- package/dist/gateway/static/root/assets/{browser-automation-inputs-B9M1RYTm.js → browser-automation-inputs-BvUC6OiW.js} +1 -1
- package/dist/gateway/static/root/assets/browser-automations-page-Dq2LlVMh.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-BOZ-1g51.js +3 -0
- package/dist/gateway/static/root/assets/{capabilities-CW389yo6.js → capabilities-BkCutK0V.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BX1rCiVm.js → capabilities-D61uSJPy.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-page-BDP6gzlv.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-D6PL3Mfl.js +8 -0
- package/dist/gateway/static/root/assets/{capability-header-actions-Chuhscdb.js → capability-header-actions-D9uGs4Pw.js} +1 -1
- package/dist/gateway/static/root/assets/channels-xb7n8rwF.js +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-Dgn09YDs.js +36 -0
- package/dist/gateway/static/root/assets/{computer-settings-page-Af00Kjc0.js → computer-settings-page-C66P4ifT.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-3W0_7-4L.js → connector-service-page-Dp35XdYf.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-BHcRxYib.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-DBgZBmik.js → date-picker-CddHY982.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-BDJ406kH.js → dependency-picker-Ob6BZTqv.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-Do1XPn6U.js → desktop-pet-dmwCV-I4.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-LKeVh6OH.js → desktop-pet-settings-B-TBkZAZ.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-SWHwRgG3.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-BMLHoL6g.js → directory-picker-path-field-6VZa4fT1.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-B0wTBCx4.js → extension-debug-page-C0_njMva.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-vR2r4uUB.js → extension-page-BeBLMFmW.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-CJZ5EVpQ.js → extension-provider-DWI0KAKT.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-BiLUwoKx.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-D0tBjSgj.js → gateway-config-swr-CmYcOqhb.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-BnHraJ3O.js → gateway-realtime-Ci1Jst5g.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BMUiUQMk.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-CzWT_v09.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-C1DQsIH3.js → gateway-startup-retry-C-BG5M7H.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-BM__yiMn.js → highlighted-body-KQOG7T2V-CsA7lCVc.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-BeXJfxsg.js +2 -0
- package/dist/gateway/static/root/assets/image-generation-api-B_DqCwtV.js +1 -0
- package/dist/gateway/static/root/assets/imports-page-oAvAF9QS.js +1 -0
- package/dist/gateway/static/root/assets/index-W9ls-0Yd.css +1 -0
- package/dist/gateway/static/root/assets/index-xTL-vb51.js +260 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DpyqH2cP.js → keyboard-shortcuts-settings--MjYe-Pb.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-B4hIoxV8.js → local-app-workbench-page-DL33dtd7.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-S7lUpENM.js → local-apps-page-DOa7mxjB.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-Be4BGM4Z.js → local-session-drafts-DAtLkTPg.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-uRu_DsWm.js → locale-store-DMy9W6IG.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-C-GbTYsM.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-C0TzuD3-.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-CBjl-XEc.js → markdown-view-wyOHdXEg.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-BombFqsX.js → media-plugins-Pb2zr_-L.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-BxyGGa4D.js +1 -0
- package/dist/gateway/static/root/assets/messages-O0BEUKnx.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-cache-DdH1MODX.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-BFpEqskQ.js +5 -0
- package/dist/gateway/static/root/assets/{notes-api-BlGP533W.js → notes-api-CYt2pGsm.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-h-qqFJ6Z.js +8 -0
- package/dist/gateway/static/root/assets/{page-context-capture-button-C2bSXVbz.js → page-context-capture-button-3uj5EcQC.js} +1 -1
- package/dist/gateway/static/root/assets/personal-page-BGyW6cdt.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-Cn16lm5l.js → product-open-page-hI13tPS1.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-CowgeuoG.js → product-preview-content-lT_in0-Q.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-Baj7fQ7N.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-D7DyQFU3.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-CYqA7bfl.js → registry-api-CgQrCqL6.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-DU_d93Tm.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-zzoxjSuR.js → runtime-tools-api-D12qVKeC.js} +1 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-DOSPOfCU.js +1 -0
- package/dist/gateway/static/root/assets/scenes-page-swyUIF5A.js +2 -0
- package/dist/gateway/static/root/assets/{schema-form-I6pzJJzg.js → schema-form-CwOFgsyh.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-C293-Hbx.js → send-session-input-nH8Cw0US.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-CzVTrG8n.js → session-api-B9HrwF-c.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-aXqXuqDX.js +16 -0
- package/dist/gateway/static/root/assets/sessions-page-CI_PJmlX.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DCVaeBLW.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-Dy5oQDbx.js → settings-page-BN70wE6R.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-CHzcVRi-.js +1 -0
- package/dist/gateway/static/root/assets/{share-link-dialog-BKGI8Kr0.js → share-link-dialog-B1TDyhPt.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-BF2WaO43.js → share-preview-page-Br-eAZaP.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-B0HlMAzi.js → shares-api-Bl1ZBh5S.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-jgCC_E4Y.js +1 -0
- package/dist/gateway/static/root/assets/{skill-api-RIjxQs-Y.js → skill-api-ClUw3SRC.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-CEJx5rPd.js → skill-reload-api--1BfIPzb.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-C9oRZSuL.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-C8aLy8T_.js → system-settings-panel-tWrqu7ai.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-o1O2IDVP.js → task-detail-page-BYRW7Rrr.js} +2 -2
- package/dist/gateway/static/root/assets/{task-expandable-content-C9ohICpw.js → task-expandable-content-D2t4ahzR.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-BUfzeDvL.js → theme-store-BBLjE0fi.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-C2q5B3Kp.js → tracing-settings-page-5ATxQH5c.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-JkDu1wiC.js → tunnel-api-CF1Qh4wU.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-B8K6Y4ro.js → usage-page-CuEHzXil.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-DgbCgsao.js → use-autosave-tY3keIbm.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-rgW7h4sD.js → use-composer-attachments-CXsocZjt.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-DSKIxfz9.js → use-file-preview-expanded-CEsxnDnQ.js} +2 -2
- package/dist/gateway/static/root/assets/user-model-page-Dvt5TIZ6.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-4AIkbm9R.js → voice-api-key-field-COTNLUU3.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-Kw1pYlLN.js → voice-config-api-DrxBjSja.js} +1 -1
- package/dist/gateway/static/root/assets/voice-transcribe-api-B47j0_xA.js +1 -0
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BshsEDRO.js → work-discovery-overlay-PByMJrhV.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CRG3paWy.js → workflow-run-setup-panel-CSUkMo63.js} +2 -2
- package/dist/gateway/static/root/assets/{workflows-page-c-AoSVzm.js → workflows-page-BUDvFo3R.js} +3 -3
- package/dist/gateway/static/root/assets/{workspace-api-JWHOFos6.js → workspace-api-Bmx1O449.js} +2 -2
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-PDSIicr1.js → xopc-cloud-account-card-DVsAbvwP.js} +1 -1
- package/dist/gateway/static/root/index.html +28 -27
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/clarifications.js +79 -2
- package/dist/packages/gateway-contract/src/discussions.js +3 -2
- package/dist/packages/gateway-contract/src/index.js +4 -0
- package/dist/packages/gateway-contract/src/provider-setup.js +6 -0
- package/dist/packages/gateway-contract/src/recording-outcome.js +6 -0
- package/dist/packages/image-providers/src/catalog.js +10 -0
- package/dist/packages/image-providers/src/execute.js +5 -1
- package/dist/packages/image-providers/src/validation.js +19 -1
- package/dist/packages/realtime-protocol/src/voice.js +13 -2
- package/dist/src/agent/agent-manager.js +25 -21
- package/dist/src/agent/agent-scope.js +2 -2
- package/dist/src/agent/background-review/prompts.js +5 -1
- package/dist/src/agent/background-review/run-background-review.d.ts +0 -1
- package/dist/src/agent/background-review/run-background-review.js +60 -14
- package/dist/src/agent/child-agent-factory.js +1 -1
- package/dist/src/agent/coding/repository-instructions.js +1 -1
- package/dist/src/agent/context/coordinator.js +2 -2
- package/dist/src/agent/context/execution-context.js +4 -4
- package/dist/src/agent/context/execution-scope.js +1 -1
- 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/run-for-session.js +31 -8
- package/dist/src/agent/embedded/run-turn.js +26 -14
- package/dist/src/agent/embedded/session-runner.d.ts +4 -3
- package/dist/src/agent/embedded/session-runner.js +9 -4
- package/dist/src/agent/embedded/session-tool-result-guard.js +2 -2
- package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
- package/dist/src/agent/embedded/xopc-stream-bridge.js +3 -0
- package/dist/src/agent/embedded/xopc-tools-bridge.js +1 -1
- package/dist/src/agent/external-tools/cliProvider.js +3 -3
- package/dist/src/agent/external-tools/composio-provider.js +2 -2
- package/dist/src/agent/external-tools/endpoint-provider.js +4 -4
- package/dist/src/agent/external-tools/gateway-tools.js +2 -2
- package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
- package/dist/src/agent/image/generation/runtime.js +13 -15
- package/dist/src/agent/image/index.js +1 -1
- package/dist/src/agent/image/load-image-media.js +1 -1
- package/dist/src/agent/image/understanding/runtime.js +5 -0
- package/dist/src/agent/inbound/attachment-pipeline.js +3 -3
- package/dist/src/agent/inbound/inbound-loop.d.ts +1 -15
- package/dist/src/agent/inbound/inbound-loop.js +7 -2
- package/dist/src/agent/index.js +3 -3
- package/dist/src/agent/mcp/connection-drafts.d.ts +50 -0
- package/dist/src/agent/mcp/connection-drafts.js +278 -0
- package/dist/src/agent/mcp/connection-errors.d.ts +3 -0
- package/dist/src/agent/mcp/connection-errors.js +32 -0
- package/dist/src/agent/mcp/connection-setup.d.ts +7 -2
- package/dist/src/agent/mcp/connection-setup.js +45 -23
- package/dist/src/agent/mcp/credential-store.d.ts +6 -0
- package/dist/src/agent/mcp/credential-store.js +24 -0
- package/dist/src/agent/mcp/native-mcp.d.ts +6 -1
- package/dist/src/agent/mcp/native-mcp.js +6 -0
- package/dist/src/agent/mcp/tool-catalog.d.ts +7 -2
- package/dist/src/agent/mcp/tool-catalog.js +25 -15
- package/dist/src/agent/memory/compaction.js +5 -1
- package/dist/src/agent/memory/context-budget.js +1 -1
- package/dist/src/agent/memory/context-recovery.js +1 -1
- package/dist/src/agent/memory/idle-compaction-scheduler.js +3 -1
- package/dist/src/agent/memory/index.js +1 -1
- package/dist/src/agent/models/manager.d.ts +1 -0
- package/dist/src/agent/models/manager.js +4 -2
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +1 -6
- package/dist/src/agent/orchestration/agent-orchestrator.js +5 -0
- 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/sandbox/exec-policy.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +4 -4
- package/dist/src/agent/service/process-direct-one-shot.js +5 -0
- package/dist/src/agent/service/process-direct-streaming.d.ts +1 -0
- package/dist/src/agent/service/process-direct-streaming.js +23 -7
- package/dist/src/agent/service/webchat-tts.js +2 -2
- package/dist/src/agent/service.js +21 -21
- package/dist/src/agent/session/session-config-service.js +3 -3
- 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-pull.js +2 -2
- 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/source-context/index.js +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +7 -7
- package/dist/src/agent/tools/clarify-tool.d.ts +2 -3
- package/dist/src/agent/tools/clarify-tool.js +15 -9
- package/dist/src/agent/tools/cli-clarify.d.ts +0 -3
- package/dist/src/agent/tools/cli-clarify.js +18 -32
- package/dist/src/agent/tools/create-share-tool.js +3 -3
- package/dist/src/agent/tools/dataBatch.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js +3 -3
- package/dist/src/agent/tools/executor.js +1 -1
- package/dist/src/agent/tools/factory.js +19 -19
- package/dist/src/agent/tools/image-generate-tool.js +8 -4
- package/dist/src/agent/tools/index.js +6 -6
- 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-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.d.ts +4 -4
- package/dist/src/agent/tools/personal-task-tool.js +6 -6
- package/dist/src/agent/tools/publish-artifacts.js +2 -2
- package/dist/src/agent/tools/read.js +2 -2
- 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/skills-tools.js +1 -1
- package/dist/src/agent/tools/task-collaboration-tool.js +3 -3
- package/dist/src/agent/tools/tts-tool.js +1 -1
- package/dist/src/agent/tools/user-context-tool.js +1 -1
- package/dist/src/agent/tools/write.js +2 -2
- package/dist/src/agent/tools/xopc-use-tool.js +4 -4
- package/dist/src/agent/transcript/index.js +2 -2
- package/dist/src/agent/transcript/transcript-hygiene.js +2 -2
- package/dist/src/agent/workflow/subagent-runner.js +1 -1
- package/dist/src/agent-config/resolver.js +5 -0
- package/dist/src/agent-config/schema.d.ts +26 -6
- package/dist/src/agent-config/schema.js +2 -0
- package/dist/src/agent-matching/delegation-service.js +1 -1
- package/dist/src/ai-assist/text-assist.js +6 -17
- package/dist/src/auth/oauth/xopc-cloud.js +2 -2
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/automations/capabilities/write.d.ts +2 -2
- package/dist/src/automations/domain/index.js +1 -1
- package/dist/src/automations/domain/validation.d.ts +6 -6
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/draft/automation-draft-validator.d.ts +2 -2
- package/dist/src/automations/index.js +2 -2
- package/dist/src/automations/service/action-executor.js +3 -1
- package/dist/src/browser/native-messaging-host.js +1 -1
- package/dist/src/capabilities/store-connector.js +2 -2
- package/dist/src/channels/attachments/voice-stt-webchat.js +2 -2
- package/dist/src/channels/index.js +3 -3
- package/dist/src/channels/manager.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/builtins/config.js +4 -4
- 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 +2 -2
- package/dist/src/chat-commands/index.js +3 -3
- package/dist/src/cli/commands/agent.js +7 -7
- package/dist/src/cli/commands/channels.js +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/connectors.js +2 -2
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- 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/mcp.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.d.ts +1 -1
- package/dist/src/cli/commands/onboard/model.js +21 -2
- package/dist/src/cli/commands/onboard.js +2 -2
- 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 +6 -6
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +1 -1
- package/dist/src/cli/utils/session.js +1 -1
- package/dist/src/computer/runtime.js +1 -1
- package/dist/src/config/agent-model-intents.js +4 -1
- package/dist/src/config/index.js +5 -5
- package/dist/src/config/loader.js +2 -2
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/schema.d.ts +18 -6
- package/dist/src/config/schema.js +18 -8
- package/dist/src/connectors/cli/authorization.js +1 -1
- package/dist/src/connectors/cli/runtime.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 +4 -4
- package/dist/src/connectors/connected-source-understanding.js +4 -4
- 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/learning-coordinator.js +1 -1
- package/dist/src/discussions/analyzer.d.ts +2 -0
- package/dist/src/discussions/analyzer.js +38 -9
- package/dist/src/discussions/audio-clip.d.ts +3 -0
- package/dist/src/discussions/audio-clip.js +72 -0
- package/dist/src/discussions/live-worker.js +4 -2
- package/dist/src/discussions/long-review.d.ts +17 -0
- package/dist/src/discussions/long-review.js +278 -0
- package/dist/src/discussions/media-timeline.d.ts +21 -0
- package/dist/src/discussions/media-timeline.js +134 -0
- package/dist/src/discussions/organizer-worker.d.ts +4 -1
- package/dist/src/discussions/organizer-worker.js +17 -12
- package/dist/src/discussions/organizer.js +2 -0
- package/dist/src/discussions/processing.d.ts +43 -0
- package/dist/src/discussions/processing.js +125 -0
- package/dist/src/discussions/recording.js +202 -42
- package/dist/src/discussions/recordingJobs.js +2 -0
- package/dist/src/discussions/repository.js +4 -2
- package/dist/src/discussions/review.d.ts +8 -0
- package/dist/src/discussions/review.js +183 -0
- package/dist/src/discussions/sealer.d.ts +7 -1
- package/dist/src/discussions/sealer.js +164 -88
- package/dist/src/discussions/service.d.ts +7 -1
- package/dist/src/discussions/service.js +51 -15
- package/dist/src/discussions/types.d.ts +2 -1
- package/dist/src/endpoint-tools/index.js +1 -1
- package/dist/src/endpoint-tools/runtime.js +2 -2
- 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/credentials.js +1 -1
- package/dist/src/extensions/agent-plugins/source-http-fetch.js +1 -1
- package/dist/src/extensions/api.js +4 -4
- package/dist/src/extensions/bundled-extension-activation.js +1 -1
- package/dist/src/extensions/index.js +3 -3
- package/dist/src/extensions/install.js +1 -1
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/media.js +1 -1
- package/dist/src/extensions/update.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/chat-stream/mapper.js +2 -2
- package/dist/src/gateway/chat-stream/protocol.d.ts +2 -3
- package/dist/src/gateway/clarify-runtime.d.ts +2 -0
- package/dist/src/gateway/clarify-runtime.js +4 -1
- package/dist/src/gateway/device-routes.js +2 -2
- package/dist/src/gateway/ephemeral-clarification-waiter.d.ts +2 -1
- package/dist/src/gateway/ephemeral-clarification-waiter.js +19 -6
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/global-defaults-admin.d.ts +3 -1
- package/dist/src/gateway/global-defaults-admin.js +15 -3
- package/dist/src/gateway/hono/app.js +3 -3
- package/dist/src/gateway/hono/lib/config-payload.d.ts +12 -3
- package/dist/src/gateway/hono/lib/config-payload.js +6 -4
- package/dist/src/gateway/hono/lib/config-write-lock.d.ts +2 -0
- package/dist/src/gateway/hono/lib/config-write-lock.js +14 -0
- package/dist/src/gateway/hono/lib/voice-settings-revisions.d.ts +5 -0
- package/dist/src/gateway/hono/lib/voice-settings-revisions.js +23 -0
- package/dist/src/gateway/hono/routes/agent-stream.js +4 -9
- 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 +12 -5
- package/dist/src/gateway/hono/routes/config.js +19 -5
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/context-sources.js +2 -2
- package/dist/src/gateway/hono/routes/discussions.js +63 -1
- package/dist/src/gateway/hono/routes/endpoint-tools.js +1 -1
- package/dist/src/gateway/hono/routes/global-defaults.js +8 -1
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +1 -1
- package/dist/src/gateway/hono/routes/mcp.js +74 -7
- package/dist/src/gateway/hono/routes/memory-learning.js +3 -3
- package/dist/src/gateway/hono/routes/models.js +17 -9
- package/dist/src/gateway/hono/routes/notes.js +1 -1
- package/dist/src/gateway/hono/routes/personal-agent.js +1 -1
- package/dist/src/gateway/hono/routes/projects.js +3 -3
- package/dist/src/gateway/hono/routes/provider-setup.d.ts +3 -0
- package/dist/src/gateway/hono/routes/provider-setup.js +106 -0
- 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 +2 -2
- package/dist/src/gateway/hono/routes/side-chats.js +5 -4
- package/dist/src/gateway/hono/routes/site-shares.js +1 -1
- package/dist/src/gateway/hono/routes/status.js +2 -0
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
- package/dist/src/gateway/hono/routes/user-model.js +7 -7
- package/dist/src/gateway/hono/routes/voice.js +30 -17
- package/dist/src/gateway/hono/routes/workflows.js +1 -1
- package/dist/src/gateway/index.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.d.ts +4 -0
- package/dist/src/gateway/provider-model-setup.js +56 -0
- package/dist/src/gateway/run-loop.js +1 -1
- package/dist/src/gateway/scenes/mailContext.js +1 -1
- package/dist/src/gateway/scenes/slackThreadSource.js +1 -1
- package/dist/src/gateway/server.js +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +5 -4
- package/dist/src/gateway/service/agent-runner.js +35 -19
- package/dist/src/gateway/service/config-coordinator.d.ts +619 -1
- package/dist/src/gateway/service/config-coordinator.js +38 -26
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service/run-gateway-agent.js +4 -4
- package/dist/src/gateway/service/session-command-service.js +2 -2
- package/dist/src/gateway/service.d.ts +6 -3
- package/dist/src/gateway/service.js +52 -51
- package/dist/src/gateway/session-context-summary.js +4 -4
- package/dist/src/gateway/side-chat/run-service.d.ts +2 -1
- package/dist/src/gateway/side-chat/run-service.js +6 -3
- package/dist/src/gateway/side-chat/types.d.ts +3 -3
- package/dist/src/gateway/workspace-editor-path.js +2 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.d.ts +2 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +7 -4
- package/dist/src/home-intelligence/generator.js +2 -2
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/imports/compatibility.js +1 -1
- package/dist/src/imports/inventory.js +3 -3
- package/dist/src/imports/productImport.js +2 -2
- 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 +2 -2
- package/dist/src/knowledge/index.js +1 -1
- package/dist/src/knowledge-memory/repository.js +1 -1
- package/dist/src/local-apps/service.js +2 -2
- package/dist/src/mcp/gateway-http-client.js +1 -1
- package/dist/src/media-shared/http/provider-http.d.ts +0 -6
- package/dist/src/media-shared/http/provider-http.js +5 -4
- package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
- package/dist/src/media-understanding/runner.d.ts +0 -28
- package/dist/src/media-understanding/runner.js +4 -0
- package/dist/src/memory-learning/service.js +3 -2
- package/dist/src/memory-learning/source-learning.js +4 -4
- 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 +1 -1
- 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 +6 -6
- package/dist/src/personal-agent/result-reader.js +1 -1
- package/dist/src/personal-agent/service.js +1 -1
- package/dist/src/personal-agent/task-cancel.js +1 -1
- package/dist/src/platform/client.d.ts +1 -1
- package/dist/src/platform/contracts.d.ts +1 -1
- package/dist/src/platform/index.js +1 -1
- package/dist/src/projects/index.js +1 -1
- package/dist/src/projects/project-agent-suggestion.js +1 -1
- package/dist/src/projects/project-service.js +1 -1
- package/dist/src/projects/project-skill-service.js +2 -2
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/providers/env-keys.js +3 -0
- package/dist/src/providers/extension-stream-bridge.js +3 -0
- package/dist/src/providers/index.js +15 -0
- package/dist/src/providers/model-call.d.ts +5 -2
- package/dist/src/providers/model-call.js +13 -2
- package/dist/src/providers/model-reference-auditor.js +2 -1
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/providers/model-response.js +1 -1
- package/dist/src/providers/model-usage.d.ts +15 -0
- package/dist/src/providers/model-usage.js +50 -0
- package/dist/src/providers/presentation.js +8 -0
- package/dist/src/providers/setup/engine.d.ts +37 -0
- package/dist/src/providers/setup/engine.js +177 -0
- package/dist/src/providers/setup/profiles.d.ts +4 -0
- package/dist/src/providers/setup/profiles.js +94 -0
- package/dist/src/providers/setup/voice.d.ts +23 -0
- package/dist/src/providers/setup/voice.js +234 -0
- package/dist/src/realtime/runtime.js +1 -1
- package/dist/src/remote-access/exposure-manager.js +1 -1
- package/dist/src/routing/agent-session-key.js +1 -1
- package/dist/src/scenes/agentExecutor.d.ts +1 -0
- package/dist/src/scenes/agentExecutor.js +5 -0
- package/dist/src/scenes/execution.d.ts +1 -1
- package/dist/src/scenes/taskFollowUp/agentExecutor.js +4 -4
- package/dist/src/scenes/taskFollowUp/contracts.d.ts +2 -2
- package/dist/src/scenes/taskFollowUp/resources.js +2 -2
- package/dist/src/scenes/taskFollowUp/service.d.ts +5 -5
- package/dist/src/scenes/taskFollowUp/service.js +6 -6
- package/dist/src/scenes/templates.d.ts +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-share-store.js +1 -1
- package/dist/src/storage/sqlite/clarification-wait-repository.d.ts +3 -5
- package/dist/src/storage/sqlite/clarification-wait-repository.js +48 -28
- package/dist/src/storage/sqlite/connection.js +9 -9
- package/dist/src/storage/sqlite/migrations/253_discussion_processing_recovery.sql +20 -0
- package/dist/src/storage/sqlite/migrations/254_discussion_annotations.sql +17 -0
- package/dist/src/storage/sqlite/migrations/255_discussion_chapter_progress.sql +10 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/tasks/capabilities/management.d.ts +2 -2
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/relations.d.ts +6 -6
- package/dist/src/tasks/capabilities/write.d.ts +6 -6
- package/dist/src/tasks/capabilities/write.js +1 -1
- package/dist/src/tasks/home-query-service.js +2 -2
- package/dist/src/tasks/index.js +4 -4
- package/dist/src/tasks/task-allocation-service.js +5 -5
- package/dist/src/tasks/task-application-service.js +6 -6
- 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-handoff-service.js +1 -1
- package/dist/src/tasks/task-handoff.js +5 -5
- 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 +4 -4
- package/dist/src/tasks/task-run-dispatcher.js +1 -1
- package/dist/src/tui/backends/embedded-backend.js +13 -13
- package/dist/src/tui/backends/gateway-realtime-backend.js +2 -2
- package/dist/src/tui/extension-host/load-extensions.js +2 -2
- package/dist/src/tui/tui-agent-events.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 +4 -4
- package/dist/src/tui/tui.js +6 -6
- package/dist/src/tunnel/gateway-lifecycle.js +1 -1
- package/dist/src/usage/recorder.js +2 -1
- package/dist/src/usage/scenario-registry.js +128 -123
- package/dist/src/user-context/access-policy.js +2 -2
- package/dist/src/user-context/config.d.ts +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/capture/semantic.d.ts +8 -1
- package/dist/src/user-model/capture/semantic.js +26 -5
- package/dist/src/user-model/index.js +2 -2
- package/dist/src/voice/dashscope/streaming-stt-session.js +3 -0
- package/dist/src/voice/dashscope/streaming-tts-stream.js +3 -0
- package/dist/src/voice/dictation.d.ts +12 -0
- package/dist/src/voice/dictation.js +22 -0
- package/dist/src/voice/metadata/builtin.js +54 -0
- package/dist/src/voice/platform-streams.js +3 -0
- package/dist/src/voice/realtime/agentEngine.js +4 -2
- package/dist/src/voice/realtime/memory-context.js +7 -7
- package/dist/src/voice/realtime/omniEngine.js +5 -2
- package/dist/src/voice/realtime/omniRoute.js +3 -2
- package/dist/src/voice/realtime/runtime.js +8 -6
- package/dist/src/voice/stt/factory.js +9 -3
- 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.d.ts +2 -0
- package/dist/src/voice/stt/providers/bailian-plan-transcription.js +32 -0
- package/dist/src/voice/stt/providers/index.d.ts +1 -0
- package/dist/src/voice/stt/providers/index.js +2 -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/token-plan.d.ts +8 -0
- package/dist/src/voice/token-plan.js +11 -0
- package/dist/src/voice/tts/factory.js +4 -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.d.ts +2 -0
- package/dist/src/voice/tts/providers/bailian-plan-speech.js +84 -0
- package/dist/src/voice/tts/providers/index.d.ts +1 -0
- package/dist/src/voice/tts/providers/index.js +2 -1
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
- package/dist/src/voice/tts/speak-core.js +11 -2
- package/dist/src/work-discovery/incremental-repository.js +1 -1
- package/dist/src/work-discovery/service.js +7 -7
- package/dist/src/workflows/context/workflow-context.js +1 -1
- package/dist/src/workflows/engine/workflow-engine.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +7 -7
- package/dist/src/workflows/service/workflow-session-bridge.js +2 -2
- package/package.json +2 -2
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-2VA4eKPf.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-DRhTOw_O.js +0 -1
- package/dist/gateway/static/root/assets/agents-BemUH_Yf.js +0 -77
- package/dist/gateway/static/root/assets/app-management-settings-panel-CR_cc7rj.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-DOwtT4sS.js +0 -6
- package/dist/gateway/static/root/assets/browser-automations-page-B-Ezk_8l.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-BSmmTBn4.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-page-xZgTYYDn.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-oqkuOjcR.js +0 -8
- package/dist/gateway/static/root/assets/channels-Dq2C2k9M.js +0 -1
- package/dist/gateway/static/root/assets/chat-terminal-dock-srB_M-aQ.js +0 -36
- package/dist/gateway/static/root/assets/connectors-page-BZk-Gou5.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-CvZpnSVw.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-1tbWe5xQ.js +0 -1
- package/dist/gateway/static/root/assets/fallback-models-CW6a1-GK.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BVriF6Zj.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-vQWTUx2c.js +0 -1
- package/dist/gateway/static/root/assets/home-page-hfWuVtcG.js +0 -2
- package/dist/gateway/static/root/assets/image-generation-api-DodU6GNC.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-CuR6RSUM.js +0 -1
- package/dist/gateway/static/root/assets/index-CNH8vwcY.js +0 -260
- package/dist/gateway/static/root/assets/index-DBRwvWzm.css +0 -1
- package/dist/gateway/static/root/assets/logs-page-CSlZT1-L.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-BYCL5CwV.js +0 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-i9N5shss.js +0 -1
- package/dist/gateway/static/root/assets/messages-DTqbfje6.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-cache-Ct6X5zmB.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-CJ5Earr_.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-CPGk8-n1.js +0 -8
- package/dist/gateway/static/root/assets/personal-page-BjTt5R3s.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-CyKx4PyN.js +0 -1
- package/dist/gateway/static/root/assets/projects-page--_hXxUMC.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Bq_eqQYf.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-BgCATci5.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-DxE3jRPR.js +0 -2
- package/dist/gateway/static/root/assets/session-manager-COd9RECl.js +0 -16
- package/dist/gateway/static/root/assets/sessions-page-CQkGFnJM.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-Dtlsvsci.js +0 -1
- package/dist/gateway/static/root/assets/settings-loading-skeleton-BTqvr_Fw.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-CrAazq4r.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-BNMhs-Vd.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-XVOxILQn.js +0 -2
- package/dist/gateway/static/root/assets/user-model-page-C1QX47VR.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{_ as i,p as a,t as o}from"./chunk-KS7C4IRE--EKdQGRF.js";import{t as s}from"./check-DUBLcKHA.js";import{t as c}from"./chevron-right-BweFrslA.js";import{t as l}from"./copy-Dv6d4Dvw.js";import{t as u}from"./external-link-DjqjBmc3.js";import{t as d}from"./secret-input-BxWHx6J6.js";import{t as f}from"./globe-DSSGFWFn.js";import{t as p}from"./loader-circle-CifKLtgG.js";import{t as m}from"./messages-O0BEUKnx.js";import{t as h}from"./cn-0WouolD0.js";import{c as g,n as _}from"./locale-store-DMy9W6IG.js";import{a as v,i as y,o as b,r as x,s as S,t as C}from"./dist-BGTk37IG.js";import{t as w}from"./copy-to-clipboard-HOJ79TWv.js";import{i as T}from"./vendor-swr-BIWyz7Rc.js";import{t as E}from"./button-aIC072nz.js";import{n as D,r as O}from"./gateway-config-swr-CmYcOqhb.js";import{i as k,o as A}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{r as j}from"./settings-form-draft-Dy10ldo8.js";import{t as M}from"./copy-text-row-C7egVuKr.js";import{$o as N,At as P,Bo as F,Fo as I,L,Mt as R,Os as z,R as B,Rc as V,Uc as H,Wn as U,Zo as W,ec as ee,il as G,is as te,ji as ne,kt as re,ms as K,q,qt as ie,z as ae}from"./index-xTL-vb51.js";import{t as J}from"./page-tabs-HLrKIjXH.js";import{n as oe,r as se,t as ce}from"./settings-page-layout-Dx5S-Msc.js";import{n as Y,r as le,t as ue}from"./settings-form-section-num14vSv.js";import{_ as X,a as de,b as fe,c as pe,h as me,i as he,n as ge,o as _e,r as ve,s as ye,t as be,v as xe,y as Se}from"./tunnel-api-CF1Qh4wU.js";import{t as Ce}from"./settings-advanced-gate-DCVaeBLW.js";var Z=e(t(),1),Q=n(),$=r();function we(e){switch(e){case`active`:return`text-emerald-700 dark:text-emerald-400`;case`connecting`:return`text-amber-700 dark:text-amber-400`;default:return`text-fg-muted`}}function Te(e){let t=(0,Q.c)(11),{label:n,kind:r}=e,i;t[0]===r?i=t[1]:(i=h(`inline-flex items-center gap-1.5 text-xs font-medium`,we(r)),t[0]=r,t[1]=i);let a=r===`active`&&`bg-emerald-500`,o=r===`connecting`&&`bg-amber-500`,s;t[2]!==a||t[3]!==o?(s=h(`size-1.5 rounded-full bg-fg-subtle/50`,a,o),t[2]=a,t[3]=o,t[4]=s):s=t[4];let c;t[5]===s?c=t[6]:(c=(0,$.jsx)(`span`,{className:s,"aria-hidden":!0}),t[5]=s,t[6]=c);let l;return t[7]!==n||t[8]!==i||t[9]!==c?(l=(0,$.jsxs)(`span`,{className:i,children:[c,n]}),t[7]=n,t[8]=i,t[9]=c,t[10]=l):l=t[10],l}function Ee(e){let t=(0,Q.c)(31),{onOpenTab:n}=e,r=_(Oe),i;t[0]===r?i=t[1]:(i=m(r),t[0]=r,t[1]=i);let a=i.remoteAccess.guide,o=!!g(De),s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s={refreshInterval:3e4},t[2]=s):s=t[2];let{data:c}=T(o?`exposure-status`:null,Se,s),l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l={refreshInterval:15e3},t[3]=l):l=t[3];let{data:u}=T(o?`tunnel-status`:null,ge,l),d=O(o);if(!o)return null;let p=c?.tailscale.active===!0,v=u?.state,y=u?.enabled&&v===`connected`,b=u?.enabled&&(v===`connecting`||v===`reconnecting`||!!u?.startProgress||!!u?.frpcDownload),x=d.data?.payload?.config,S=!!(x&&typeof x==`object`&&!Array.isArray(x)&&x.gateway?.publicUrl),C=p?`active`:`off`,w=p?a.statusActive:a.statusOff,E;t[4]!==a.tailscaleCardTitle||t[5]!==C||t[6]!==w?(E={tab:`tailscale`,icon:f,title:a.tailscaleCardTitle,kind:C,statusLabel:w},t[4]=a.tailscaleCardTitle,t[5]=C,t[6]=w,t[7]=E):E=t[7];let D=y?`active`:b?`connecting`:`off`,k=y?a.statusActive:b?a.statusConnecting:a.statusOff,A;t[8]!==a.publicCardTitle||t[9]!==D||t[10]!==k?(A={tab:`public`,icon:z,title:a.publicCardTitle,kind:D,statusLabel:k},t[8]=a.publicCardTitle,t[9]=D,t[10]=k,t[11]=A):A=t[11];let j=S?`active`:`off`,M=S?a.statusActive:a.statusOff,P;t[12]!==a.reverseProxyCardTitle||t[13]!==j||t[14]!==M?(P={tab:`reverse-proxy`,icon:N,title:a.reverseProxyCardTitle,kind:j,statusLabel:M},t[12]=a.reverseProxyCardTitle,t[13]=j,t[14]=M,t[15]=P):P=t[15];let I;t[16]!==a.sshCardStatus||t[17]!==a.sshCardTitle?(I={tab:`ssh`,icon:F,title:a.sshCardTitle,kind:`off`,statusLabel:a.sshCardStatus},t[16]=a.sshCardStatus,t[17]=a.sshCardTitle,t[18]=I):I=t[18];let L;t[19]!==a.lanCardStatus||t[20]!==a.lanCardTitle?(L={tab:`lan`,icon:te,title:a.lanCardTitle,kind:`off`,statusLabel:a.lanCardStatus},t[19]=a.lanCardStatus,t[20]=a.lanCardTitle,t[21]=L):L=t[21];let R;t[22]!==P||t[23]!==I||t[24]!==L||t[25]!==E||t[26]!==A?(R=[E,A,P,I,L],t[22]=P,t[23]=I,t[24]=L,t[25]=E,t[26]=A,t[27]=R):R=t[27];let B=R,V;return t[28]!==B||t[29]!==n?(V=(0,$.jsx)(`div`,{className:`grid gap-1 rounded-xl bg-surface-hover/20 p-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5`,children:B.map(e=>{let t=e.icon;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(e.tab),className:h(`flex items-start gap-3 rounded-lg bg-surface-base/45 px-2 py-3 text-left transition-colors`,`hover:bg-surface-hover/30`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center text-fg-muted`,children:(0,$.jsx)(t,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(Te,{label:e.statusLabel,kind:e.kind})]})]},`${e.tab}-${e.title}`)})}),t[28]=B,t[29]=n,t[30]=V):V=t[30],V}function De(e){return e.conversationId}function Oe(e){return e.language}function ke(e){let t=(0,Q.c)(21),{title:n,description:r,recommended:i,icon:a,onOpen:o,recommendedLabel:s}=e,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=h(`group flex w-full items-start gap-3 px-3 py-4 text-left transition-colors`,`hover:bg-surface-hover/30`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),t[0]=l):l=t[0];let u;t[1]===a?u=t[2]:(u=(0,$.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-hover/70 text-fg-muted`,children:(0,$.jsx)(a,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}),t[1]=a,t[2]=u);let d;t[3]===n?d=t[4]:(d=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n}),t[3]=n,t[4]=d);let f;t[5]!==i||t[6]!==s?(f=i&&s?(0,$.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:s}):null,t[5]=i,t[6]=s,t[7]=f):f=t[7];let p;t[8]!==d||t[9]!==f?(p=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[d,f]}),t[8]=d,t[9]=f,t[10]=p):p=t[10];let m;t[11]===r?m=t[12]:(m=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:r}),t[11]=r,t[12]=m);let g;t[13]!==p||t[14]!==m?(g=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[p,m]}),t[13]=p,t[14]=m,t[15]=g):g=t[15];let _;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(c,{className:`mt-2 size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5 group-hover:text-fg-muted`,"aria-hidden":!0}),t[16]=_):_=t[16];let v;return t[17]!==o||t[18]!==u||t[19]!==g?(v=(0,$.jsxs)(`button`,{type:`button`,onClick:o,className:l,children:[u,g,_]}),t[17]=o,t[18]=u,t[19]=g,t[20]=v):v=t[20],v}function Ae(e){let t=(0,Q.c)(78),{onOpenTab:n}=e,r=_(Ne),i;t[0]===r?i=t[1]:(i=m(r),t[0]=r,t[1]=i);let a=i.remoteAccess,o=a.guide,s=!!g(Me),c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c={refreshInterval:3e4},t[2]=c):c=t[2];let{data:l}=T(s?`exposure-status`:null,Se,c),u;t[3]===l?.conflicts?u=t[4]:(u=l?.conflicts??[],t[3]=l?.conflicts,t[4]=u);let d=u;if(!s){let e;return t[5]===o.needToken?e=t[6]:(e=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:o.needToken}),t[5]=o.needToken,t[6]=e),e}let p;t[7]===n?p=t[8]:(p=(0,$.jsx)(Ee,{onOpenTab:n}),t[7]=n,t[8]=p);let h;t[9]!==d||t[10]!==o.conflictsHint||t[11]!==o.conflictsTitle?(h=d.length>0?(0,$.jsxs)(`div`,{className:`rounded-xl bg-amber-500/10 px-4 py-3 text-sm text-fg-muted`,children:[(0,$.jsx)(`p`,{className:`font-medium text-fg`,children:o.conflictsTitle}),(0,$.jsx)(`p`,{className:`mt-1`,children:o.conflictsHint}),(0,$.jsx)(`ul`,{className:`mt-2 list-inside list-disc text-xs`,children:d.map(je)})]}):null,t[9]=d,t[10]=o.conflictsHint,t[11]=o.conflictsTitle,t[12]=h):h=t[12];let v;t[13]===o.pickMethod?v=t[14]:(v=(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:o.pickMethod}),t[13]=o.pickMethod,t[14]=v);let y;t[15]===n?y=t[16]:(y=()=>n(`tailscale`),t[15]=n,t[16]=y);let b;t[17]!==o.recommended||t[18]!==o.tailscaleCardDesc||t[19]!==o.tailscaleCardTitle||t[20]!==y?(b=(0,$.jsx)(ke,{icon:f,title:o.tailscaleCardTitle,description:o.tailscaleCardDesc,recommended:!0,recommendedLabel:o.recommended,onOpen:y}),t[17]=o.recommended,t[18]=o.tailscaleCardDesc,t[19]=o.tailscaleCardTitle,t[20]=y,t[21]=b):b=t[21];let x;t[22]===n?x=t[23]:(x=()=>n(`public`),t[22]=n,t[23]=x);let S;t[24]!==o.publicCardDesc||t[25]!==o.publicCardTitle||t[26]!==x?(S=(0,$.jsx)(ke,{icon:z,title:o.publicCardTitle,description:o.publicCardDesc,onOpen:x}),t[24]=o.publicCardDesc,t[25]=o.publicCardTitle,t[26]=x,t[27]=S):S=t[27];let C;t[28]===n?C=t[29]:(C=()=>n(`reverse-proxy`),t[28]=n,t[29]=C);let w;t[30]!==o.reverseProxyCardDesc||t[31]!==o.reverseProxyCardTitle||t[32]!==C?(w=(0,$.jsx)(ke,{icon:N,title:o.reverseProxyCardTitle,description:o.reverseProxyCardDesc,onOpen:C}),t[30]=o.reverseProxyCardDesc,t[31]=o.reverseProxyCardTitle,t[32]=C,t[33]=w):w=t[33];let E;t[34]===n?E=t[35]:(E=()=>n(`ssh`),t[34]=n,t[35]=E);let D;t[36]!==o.sshCardDesc||t[37]!==o.sshCardTitle||t[38]!==E?(D=(0,$.jsx)(ke,{icon:F,title:o.sshCardTitle,description:o.sshCardDesc,onOpen:E}),t[36]=o.sshCardDesc,t[37]=o.sshCardTitle,t[38]=E,t[39]=D):D=t[39];let O;t[40]!==a.advanced.proxyBody||t[41]!==a.advanced.proxyTitle||t[42]!==w||t[43]!==D?(O=(0,$.jsxs)(q,{title:a.advanced.proxyTitle,summary:a.advanced.proxyBody,children:[w,D]}),t[40]=a.advanced.proxyBody,t[41]=a.advanced.proxyTitle,t[42]=w,t[43]=D,t[44]=O):O=t[44];let k;t[45]===n?k=t[46]:(k=()=>n(`lan`),t[45]=n,t[46]=k);let A;t[47]!==o.lanCardDesc||t[48]!==o.lanCardTitle||t[49]!==k?(A=(0,$.jsx)(ke,{icon:te,title:o.lanCardTitle,description:o.lanCardDesc,onOpen:k}),t[47]=o.lanCardDesc,t[48]=o.lanCardTitle,t[49]=k,t[50]=A):A=t[50];let j;t[51]!==S||t[52]!==O||t[53]!==A||t[54]!==b?(j=(0,$.jsxs)(`div`,{className:`mt-2 flex max-w-3xl flex-col gap-1 rounded-xl bg-surface-hover/20 p-1 [&>*]:rounded-lg [&>*]:bg-surface-base/45`,children:[b,S,O,A]}),t[51]=S,t[52]=O,t[53]=A,t[54]=b,t[55]=j):j=t[55];let M;t[56]!==j||t[57]!==v?(M=(0,$.jsxs)(`div`,{children:[v,j]}),t[56]=j,t[57]=v,t[58]=M):M=t[58];let P;t[59]===o.oneAtATimeHint?P=t[60]:(P=(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-subtle`,children:o.oneAtATimeHint}),t[59]=o.oneAtATimeHint,t[60]=P);let I;t[61]===a.advanced.proxyTitle?I=t[62]:(I=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:a.advanced.proxyTitle}),t[61]=a.advanced.proxyTitle,t[62]=I);let L;t[63]===a.advanced.proxyBody?L=t[64]:(L=(0,$.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:a.advanced.proxyBody}),t[63]=a.advanced.proxyBody,t[64]=L);let R;t[65]!==r||t[66]!==a.advanced.proxyDocs?(R=(0,$.jsx)(fe,{language:r,label:a.advanced.proxyDocs,section:`advanced`,className:`mt-2`}),t[65]=r,t[66]=a.advanced.proxyDocs,t[67]=R):R=t[67];let B;t[68]!==I||t[69]!==L||t[70]!==R?(B=(0,$.jsxs)(`div`,{className:`max-w-3xl rounded-xl bg-surface-hover/20 px-4 py-4`,children:[I,L,R]}),t[68]=I,t[69]=L,t[70]=R,t[71]=B):B=t[71];let V;return t[72]!==M||t[73]!==P||t[74]!==B||t[75]!==p||t[76]!==h?(V=(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[p,h,M,P,B]}),t[72]=M,t[73]=P,t[74]=B,t[75]=p,t[76]=h,t[77]=V):V=t[77],V}function je(e){return(0,$.jsx)(`li`,{children:e.message},e.code)}function Me(e){return e.conversationId}function Ne(e){return e.language}function Pe(){let e=(0,Q.c)(16),t=_(Fe),n;e[0]===t?n=e[1]:(n=m(t),e[0]=t,e[1]=n);let r=n.remoteAccess.lan,i;e[2]!==r.subtitle||e[3]!==r.title?(i=(0,$.jsx)(Y,{icon:te,title:r.title,subtitle:r.subtitle}),e[2]=r.subtitle,e[3]=r.title,e[4]=i):i=e[4];let a;e[5]===r.body?a=e[6]:(a=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.body}),e[5]=r.body,e[6]=a);let s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(u,{className:`size-3.5`,"aria-hidden":!0}),e[7]=s):s=e[7];let c;e[8]===r.link?c=e[9]:(c=(0,$.jsxs)(o,{to:`/settings/gateway`,className:`inline-flex items-center gap-1.5 text-sm font-medium text-accent hover:underline`,children:[r.link,s]}),e[8]=r.link,e[9]=c);let l;e[10]!==a||e[11]!==c?(l=(0,$.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[a,c]}),e[10]=a,e[11]=c,e[12]=l):l=e[12];let d;return e[13]!==i||e[14]!==l?(d=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,$.jsxs)(ue,{children:[i,l]})}),e[13]=i,e[14]=l,e[15]=d):d=e[15],d}function Fe(e){return e.language}function Ie(e){let t=(0,Q.c)(30),{embedded:n}=e,r=n===void 0?!1:n,i=_(Le),a;t[0]===i?a=t[1]:(a=m(i),t[0]=i,t[1]=a);let o=a.remoteAccess.ssh,[s,c]=(0,Z.useState)(!1),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=async()=>{await w(`xopc gateway ssh-tunnel --target user@your-host --local-port 18790 --remote-port 18790`)&&(c(!0),setTimeout(()=>c(!1),2e3))},t[2]=u):u=t[2];let d=u,f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`pre`,{className:`overflow-x-auto rounded-lg bg-surface-base/55 px-3 py-2 text-xs text-fg-muted`,children:`xopc gateway ssh-tunnel --target user@your-host --local-port 18790 --remote-port 18790`}),t[3]=f):f=t[3];let p,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>void d(),h=(0,$.jsx)(l,{className:`mr-1 size-4`}),t[4]=p,t[5]=h):(p=t[4],h=t[5]);let g=s?o.copied:o.copy,v;t[6]===g?v=t[7]:(v=(0,$.jsx)(`div`,{className:`mt-2`,children:(0,$.jsxs)(E,{type:`button`,variant:`ghost`,onClick:p,children:[h,g]})}),t[6]=g,t[7]=v);let y;t[8]!==r||t[9]!==o.hint?(y=r?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-subtle`,children:o.hint}):null,t[8]=r,t[9]=o.hint,t[10]=y):y=t[10];let b;t[11]!==v||t[12]!==y?(b=(0,$.jsxs)($.Fragment,{children:[f,v,y]}),t[11]=v,t[12]=y,t[13]=b):b=t[13];let x=b;if(r){let e;t[14]!==o.subtitle||t[15]!==o.title?(e=(0,$.jsx)(Y,{icon:F,title:o.title,subtitle:o.subtitle}),t[14]=o.subtitle,t[15]=o.title,t[16]=e):e=t[16];let n;t[17]===x?n=t[18]:(n=(0,$.jsx)(`div`,{className:`mt-4 space-y-2`,children:x}),t[17]=x,t[18]=n);let r;return t[19]!==e||t[20]!==n?(r=(0,$.jsxs)(ue,{children:[e,n]}),t[19]=e,t[20]=n,t[21]=r):r=t[21],r}let S;t[22]!==o.subtitle||t[23]!==o.title?(S=(0,$.jsx)(Y,{icon:F,title:o.title,subtitle:o.subtitle}),t[22]=o.subtitle,t[23]=o.title,t[24]=S):S=t[24];let C;t[25]===x?C=t[26]:(C=(0,$.jsx)(`div`,{className:`mt-4`,children:x}),t[25]=x,t[26]=C);let T;return t[27]!==S||t[28]!==C?(T=(0,$.jsxs)(ue,{children:[S,C]}),t[27]=S,t[28]=C,t[29]=T):T=t[29],T}function Le(e){return e.language}function Re(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(Ie,{embedded:!0}),e[0]=t):t=e[0],t}var ze=[`guide`,`tailscale`,`public`,`reverse-proxy`,`ssh`,`lan`];function Be(e){return e&&ze.includes(e)?e:`guide`}function Ve(e){let t=(0,Q.c)(32),{showLabel:n,hideLabel:r,icon:i,hint:a,children:o,className:s,defaultOpen:c,advancedOnly:l}=e,u=l===void 0?!1:l,[d,f]=(0,Z.useState)(c??!1),p;t[0]===s?p=t[1]:(p=h(`rounded-xl bg-surface-hover/20`,s),t[0]=s,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>f(He),t[2]=m):m=t[2];let g=d&&`rotate-180`,_;t[3]===g?_=t[4]:(_=h(`size-4 shrink-0 text-fg-muted transition-transform duration-200 motion-reduce:transition-none`,g),t[3]=g,t[4]=_);let v;t[5]===_?v=t[6]:(v=(0,$.jsx)(H,{className:_,"aria-hidden":!0}),t[5]=_,t[6]=v);let y;t[7]===i?y=t[8]:(y=i?(0,$.jsx)(i,{className:`size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}):null,t[7]=i,t[8]=y);let b=d?r:n,x;t[9]===b?x=t[10]:(x=(0,$.jsx)(`span`,{children:b}),t[9]=b,t[10]=x);let S;t[11]!==d||t[12]!==v||t[13]!==y||t[14]!==x?(S=(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":d,onClick:m,className:`flex w-full items-center gap-2 rounded-2xl px-4 py-3.5 text-left text-sm font-medium text-fg transition-colors hover:text-fg`,children:[v,y,x]}),t[11]=d,t[12]=v,t[13]=y,t[14]=x,t[15]=S):S=t[15];let C=d?`grid-rows-[1fr] opacity-100`:`grid-rows-[0fr] opacity-0`,w;t[16]===C?w=t[17]:(w=h(`grid transition-[grid-template-rows,opacity] duration-200 ease-out motion-reduce:transition-none`,C),t[16]=C,t[17]=w);let T;t[18]===a?T=t[19]:(T=a?(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:a}):null,t[18]=a,t[19]=T);let E;t[20]!==o||t[21]!==T?(E=(0,$.jsx)(`div`,{className:`overflow-hidden`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-4 px-4 pb-4 pt-1`,children:[T,o]})}),t[20]=o,t[21]=T,t[22]=E):E=t[22];let D;t[23]!==w||t[24]!==E?(D=(0,$.jsx)(`div`,{className:w,children:E}),t[23]=w,t[24]=E,t[25]=D):D=t[25];let O;t[26]!==S||t[27]!==D||t[28]!==p?(O=(0,$.jsxs)(`section`,{className:p,children:[S,D]}),t[26]=S,t[27]=D,t[28]=p,t[29]=O):O=t[29];let k=O;if(u){let e;return t[30]===k?e=t[31]:(e=(0,$.jsx)(Ce,{children:k}),t[30]=k,t[31]=e),e}return k}function He(e){return!e}function Ue(e){let t=(0,Q.c)(40),{open:n,title:r,intro:i,bullets:a,checkboxLabel:o,confirmLabel:s,cancelLabel:c,onConfirm:l,onCancel:u}=e,[d,f]=(0,Z.useState)(!1),p;t[0]===u?p=t[1]:(p=e=>{e||(f(!1),u())},t[0]=u,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(v,{className:h(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,A)}),t[2]=m):m=t[2];let g;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(g=h(`xopc-dialog-content fixed left-1/2 top-1/2 max-h-[min(90vh,40rem)] w-[min(100%-2rem,32rem)] -translate-x-1/2 -translate-y-1/2`,`overflow-y-auto rounded-2xl border border-edge bg-surface-overlay p-6 shadow-popover outline-none dark:border-edge`,k),t[3]=g):g=t[3];let _;t[4]===r?_=t[5]:(_=(0,$.jsx)(S,{className:`text-base font-semibold text-fg`,children:r}),t[4]=r,t[5]=_);let w;t[6]===i?w=t[7]:(w=(0,$.jsx)(y,{className:`mt-2 text-sm text-fg-muted`,children:i}),t[6]=i,t[7]=w);let T;t[8]===a?T=t[9]:(T=a.map(We),t[8]=a,t[9]=T);let D;t[10]===T?D=t[11]:(D=(0,$.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5 text-sm text-fg-muted`,children:T}),t[10]=T,t[11]=D);let O;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>f(e.target.checked),t[12]=O):O=t[12];let j;t[13]===d?j=t[14]:(j=(0,$.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 size-4 shrink-0 rounded border-edge accent-accent`,checked:d,onChange:O}),t[13]=d,t[14]=j);let M;t[15]===o?M=t[16]:(M=(0,$.jsx)(`span`,{children:o}),t[15]=o,t[16]=M);let N;t[17]!==M||t[18]!==j?(N=(0,$.jsxs)(`label`,{className:`mt-5 flex cursor-pointer items-start gap-3 text-sm text-fg`,children:[j,M]}),t[17]=M,t[18]=j,t[19]=N):N=t[19];let P;t[20]!==c||t[21]!==u?(P=(0,$.jsx)(E,{type:`button`,variant:`secondary`,onClick:u,children:c}),t[20]=c,t[21]=u,t[22]=P):P=t[22];let F=!d,I;t[23]!==s||t[24]!==l||t[25]!==F?(I=(0,$.jsx)(E,{type:`button`,disabled:F,onClick:l,children:s}),t[23]=s,t[24]=l,t[25]=F,t[26]=I):I=t[26];let L;t[27]!==P||t[28]!==I?(L=(0,$.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[P,I]}),t[27]=P,t[28]=I,t[29]=L):L=t[29];let R;t[30]!==N||t[31]!==L||t[32]!==_||t[33]!==w||t[34]!==D?(R=(0,$.jsxs)(b,{children:[m,(0,$.jsxs)(x,{className:g,onOpenAutoFocus:Ge,children:[_,w,D,N,L]})]}),t[30]=N,t[31]=L,t[32]=_,t[33]=w,t[34]=D,t[35]=R):R=t[35];let z;return t[36]!==n||t[37]!==p||t[38]!==R?(z=(0,$.jsx)(C,{open:n,onOpenChange:p,children:R}),t[36]=n,t[37]=p,t[38]=R,t[39]=z):z=t[39],z}function We(e){return(0,$.jsx)(`li`,{children:e},e)}function Ge(e){return e.preventDefault()}function Ke(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}var qe=[`preparing_frpc`,`registering`,`starting_frpc`];function Je(e){return e?e===`reconnecting_frpc`?qe.indexOf(`starting_frpc`):qe.indexOf(e):-1}function Ye(e,t){if(t.state===`connected`)return`done`;let n=t.startProgress?.phase,r=qe.indexOf(e),i=Je(n);return i<0?t.state===`connecting`||t.state===`reconnecting`?`active`:`pending`:r<i?`done`:r===i?`active`:`pending`}function Xe(e,t,n){let r=n.startProgress;return Ye(t,n)===`active`?t===`preparing_frpc`&&n.frpcDownload?n.frpcDownload.phase===`extracting`?e.frpcExtracting:n.frpcDownload.percent==null?e.frpcDownloading:e.frpcDownloadingPercent.replace(`{{percent}}`,String(n.frpcDownload.percent)):t===`registering`&&r?.publicUrl?e.stepRegisterDetail:t===`starting_frpc`?r?.phase===`reconnecting_frpc`?e.stepReconnectDetail:e.stepFrpcDetail:null:null}function Ze(e,t){switch(t){case`preparing_frpc`:return e.stepPrepareFrpc;case`registering`:return e.stepRegister;case`starting_frpc`:return e.stepFrpcLogin}}function Qe(e){if(!e)return null;let t=Math.max(0,Math.floor((Date.now()-new Date(e).getTime())/1e3));return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function $e(e){let t=(0,Q.c)(31),{status:n,t:r}=e,[,i]=(0,Z.useState)(0),a;t[0]!==i||t[1]!==n.state?(a=()=>{if(n.state!==`connecting`&&n.state!==`reconnecting`)return;let e=window.setInterval(()=>i(et),1e3);return()=>window.clearInterval(e)},t[0]=i,t[1]=n.state,t[2]=a):a=t[2];let o=n.startProgress?.startedAt,c;if(t[3]!==n.state||t[4]!==o?(c=[n.state,o],t[3]=n.state,t[4]=o,t[5]=c):c=t[5],(0,Z.useEffect)(a,c),!(n.state===`connecting`||n.state===`reconnecting`||n.state===`connected`&&n.startProgress))return null;let l,u,d,f,m;if(t[6]!==n||t[7]!==r){let e=Qe(n.startProgress?.startedAt);l=!!n.publicUrl&&n.state!==`connected`&&n.startProgress?.phase!==`registering`,u=`mt-3 space-y-3 rounded-lg bg-surface-panel/80 p-3 shadow-surface`;let i;t[13]===r.startProgressTitle?i=t[14]:(i=(0,$.jsx)(`p`,{className:`text-xs font-medium text-fg`,children:r.startProgressTitle}),t[13]=r.startProgressTitle,t[14]=i);let a;t[15]===r.startProgressHint?a=t[16]:(a=(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:r.startProgressHint}),t[15]=r.startProgressHint,t[16]=a),t[17]!==i||t[18]!==a?(d=(0,$.jsxs)(`div`,{children:[i,a]}),t[17]=i,t[18]=a,t[19]=d):d=t[19];let o=qe.map(e=>{let t=Ye(e,n),i=Xe(r,e,n);return(0,$.jsxs)(`li`,{className:`flex gap-2 text-xs`,children:[(0,$.jsx)(`span`,{className:`mt-0.5 shrink-0 text-fg-subtle`,"aria-hidden":!0,children:t===`done`?(0,$.jsx)(s,{className:`size-3.5 text-emerald-600 dark:text-emerald-400`}):t===`active`?(0,$.jsx)(p,{className:`size-3.5 animate-spin text-accent`}):(0,$.jsx)(V,{className:`size-3.5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:h(`font-medium`,t===`active`?`text-fg`:t===`done`?`text-fg-muted`:`text-fg-subtle`),children:Ze(r,e)}),i?(0,$.jsx)(`div`,{className:`mt-0.5 text-fg-muted`,children:i}):null,e===`preparing_frpc`&&t===`active`&&n.frpcDownload&&n.frpcDownload.phase===`downloading`?(0,$.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,$.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-surface-panel`,children:(0,$.jsx)(`div`,{className:h(`h-full rounded-full bg-accent transition-[width] duration-300`,n.frpcDownload.percent==null&&`w-1/3 animate-pulse`),style:n.frpcDownload.percent==null?void 0:{width:`${n.frpcDownload.percent}%`}})}),n.frpcDownload.bytesReceived!=null&&n.frpcDownload.totalBytes?(0,$.jsxs)(`p`,{className:`text-fg-subtle`,children:[Ke(n.frpcDownload.bytesReceived),` /`,` `,Ke(n.frpcDownload.totalBytes)]}):null]}):null,e===`preparing_frpc`&&t===`active`&&n.frpcDownload?.url?(0,$.jsxs)(`p`,{className:`mt-2 text-fg-subtle`,children:[(0,$.jsxs)(`span`,{className:`font-sans`,children:[r.frpcDownloadingUrlLabel,`: `]}),(0,$.jsx)(`a`,{href:n.frpcDownload.url,target:`_blank`,rel:`noopener noreferrer`,className:`break-all font-mono text-[11px] text-accent hover:underline`,children:n.frpcDownload.url})]}):null]})]},e)});t[20]===o?f=t[21]:(f=(0,$.jsx)(`ol`,{className:`space-y-2`,children:o}),t[20]=o,t[21]=f),m=e&&n.startProgress?(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:r.startProgressElapsed.replace(`{{elapsed}}`,e)}):null,t[6]=n,t[7]=r,t[8]=l,t[9]=u,t[10]=d,t[11]=f,t[12]=m}else l=t[8],u=t[9],d=t[10],f=t[11],m=t[12];let g;t[22]!==l||t[23]!==r.publicUrlPendingNotice?(g=l?(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.publicUrlPendingNotice}):null,t[22]=l,t[23]=r.publicUrlPendingNotice,t[24]=g):g=t[24];let _;return t[25]!==u||t[26]!==d||t[27]!==f||t[28]!==m||t[29]!==g?(_=(0,$.jsxs)(`div`,{className:u,children:[d,f,m,g]}),t[25]=u,t[26]=d,t[27]=f,t[28]=m,t[29]=g,t[30]=_):_=t[30],_}function et(e){return e+1}function tt(e,t){return t.state===`connected`?e.statusConnected:t.state===`error`?e.statusError:t.startProgress?.phase===`reconnecting_frpc`?e.statusReconnecting:t.startProgress?.phase===`starting_frpc`?e.statusStartingFrpc:t.startProgress?.phase===`registering`?e.statusRegistering:t.startProgress?.phase===`preparing_frpc`||t.frpcDownload?e.statusPreparingFrpc:t.state===`connecting`||t.state===`reconnecting`?e.statusConnecting:e.statusOff}function nt(e){return e.state===`connected`?`connected`:e.state===`error`?`error`:e.state===`connecting`||e.state===`reconnecting`||e.startProgress||e.frpcDownload?`progress`:`off`}function rt(e){switch(e){case`connected`:return`bg-emerald-500/15 text-emerald-700 dark:text-emerald-400`;case`progress`:return`bg-amber-500/15 text-amber-700 dark:text-amber-400`;case`error`:return`bg-red-500/15 text-red-700 dark:text-red-400`;default:return`bg-surface-hover text-fg-muted`}}function it(e){if(!e)return`—`;let t=Date.now()-new Date(e).getTime();if(t<0)return`—`;let n=Math.floor(t/6e4);return n<60?`${n}m`:`${Math.floor(n/60)}h ${n%60}m`}function at(e){let t=(0,Q.c)(61),{t:n,status:r,isLoading:i,statusErr:a,starting:o,stopping:s,showConsentExpired:c,copyLabels:l,startDisabled:u,startDisabledReason:d,stepLabel:m,onStart:g,onStop:_}=e,v=u===void 0?!1:u,y,b,x,S,C,w,T;t[0]!==r||t[1]!==o?(T=nt(r),y=r.enabled||o,b=o||r.state===`connecting`||r.state===`reconnecting`||!!r.startProgress||!!r.frpcDownload,t[9]===Symbol.for(`react.memo_cache_sentinel`)?(w=h(le(),`space-y-4`),t[9]=w):w=t[9],C=`flex flex-wrap items-start justify-between gap-3`,S=`flex items-center gap-2`,x=h(`inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium`,rt(T)),t[0]=r,t[1]=o,t[2]=y,t[3]=b,t[4]=x,t[5]=S,t[6]=C,t[7]=w,t[8]=T):(y=t[2],b=t[3],x=t[4],S=t[5],C=t[6],w=t[7],T=t[8]);let D=T===`connected`&&`bg-emerald-500`,O=T===`progress`&&`bg-amber-500 animate-pulse`,k=T===`error`&&`bg-red-500`,A=T===`off`&&`bg-fg-subtle`,j;t[10]!==D||t[11]!==O||t[12]!==k||t[13]!==A?(j=h(`size-1.5 rounded-full`,D,O,k,A),t[10]=D,t[11]=O,t[12]=k,t[13]=A,t[14]=j):j=t[14];let N;t[15]===j?N=t[16]:(N=(0,$.jsx)(`span`,{className:j,"aria-hidden":!0}),t[15]=j,t[16]=N);let P;t[17]!==i||t[18]!==r||t[19]!==n?(P=i&&!r.enabled?(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block h-3 w-16 animate-pulse rounded-full bg-surface-hover/70 motion-reduce:animate-none`}):tt(n,r),t[17]=i,t[18]=r,t[19]=n,t[20]=P):P=t[20];let F;t[21]!==N||t[22]!==P||t[23]!==x?(F=(0,$.jsxs)(`span`,{className:x,children:[N,P]}),t[21]=N,t[22]=P,t[23]=x,t[24]=F):F=t[24];let L;t[25]!==r.connectedSince||t[26]!==r.state||t[27]!==n.uptime?(L=r.connectedSince&&r.state===`connected`?(0,$.jsxs)(`span`,{className:`text-xs text-fg-subtle`,children:[n.uptime,` `,it(r.connectedSince)]}):null,t[25]=r.connectedSince,t[26]=r.state,t[27]=n.uptime,t[28]=L):L=t[28];let R;t[29]!==F||t[30]!==L||t[31]!==S?(R=(0,$.jsxs)(`div`,{className:S,children:[F,L]}),t[29]=F,t[30]=L,t[31]=S,t[32]=R):R=t[32];let z;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,$.jsx)(f,{className:`size-4 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),t[33]=z):z=t[33];let B;t[34]!==R||t[35]!==C?(B=(0,$.jsxs)(`div`,{className:C,children:[R,z]}),t[34]=R,t[35]=C,t[36]=B):B=t[36];let V;t[37]===a?V=t[38]:(V=a?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:a instanceof Error?a.message:String(a)}):null,t[37]=a,t[38]=V);let H;t[39]!==c||t[40]!==n.consentExpiredBanner?(H=c?(0,$.jsx)(`p`,{className:`rounded-lg bg-amber-500/10 px-3 py-2 text-xs text-fg-muted`,children:n.consentExpiredBanner}):null,t[39]=c,t[40]=n.consentExpiredBanner,t[41]=H):H=t[41];let U;t[42]!==y||t[43]!==l||t[44]!==g||t[45]!==_||t[46]!==b||t[47]!==r||t[48]!==v||t[49]!==d||t[50]!==o||t[51]!==m||t[52]!==s||t[53]!==n?(U=y?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[r.publicUrl?(0,$.jsx)(`div`,{className:`rounded-xl bg-surface-panel/80 p-3 shadow-surface`,children:(0,$.jsx)(M,{label:n.publicUrlLabel,text:r.publicUrl,labels:l})}):null,b?(0,$.jsx)($e,{status:r,t:n}):null,r.lastError&&r.state===`error`?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:r.lastError}):null,(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:r.enabled?(0,$.jsxs)(E,{type:`button`,variant:`secondary`,disabled:s,onClick:_,children:[s?(0,$.jsx)(p,{className:`size-4 animate-spin`}):null,n.stop]}):(0,$.jsxs)(E,{type:`button`,disabled:o,onClick:g,children:[o?(0,$.jsx)(p,{className:`size-4 animate-spin`}):(0,$.jsx)(K,{className:`size-4`}),n.start]})})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[m?(0,$.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:m}):null,(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:n.emptyStateTitle}),(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:n.emptyStateBody})]}),(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg bg-amber-500/10 px-3 py-2.5 text-xs text-fg-muted`,children:[(0,$.jsx)(I,{className:`mt-0.5 size-4 shrink-0 text-amber-600 dark:text-amber-400`}),(0,$.jsx)(`p`,{children:n.riskBannerBody})]}),v&&d?(0,$.jsx)(`p`,{className:`text-sm text-amber-800 dark:text-amber-200`,children:d}):null,(0,$.jsxs)(E,{type:`button`,disabled:o||v,onClick:g,className:`w-full sm:w-auto`,children:[o?(0,$.jsx)(p,{className:`size-4 animate-spin`}):(0,$.jsx)(K,{className:`size-4`}),n.start]})]}),t[42]=y,t[43]=l,t[44]=g,t[45]=_,t[46]=b,t[47]=r,t[48]=v,t[49]=d,t[50]=o,t[51]=m,t[52]=s,t[53]=n,t[54]=U):U=t[54];let W;return t[55]!==B||t[56]!==V||t[57]!==H||t[58]!==U||t[59]!==w?(W=(0,$.jsxs)(`section`,{className:w,children:[B,V,H,U]}),t[55]=B,t[56]=V,t[57]=H,t[58]=U,t[59]=w,t[60]=W):W=t[60],W}var ot={reconfiguring:!1};function st(e){let t=(0,Q.c)(89),{t:n,brokerSecretReady:r,brokerSecretConfiguredInConfig:i,brokerSecretMaskedValue:a,brokerSecretDraft:o,savingBrokerSecret:c,authorizingBrokerSecret:l,brokerSecretAuthorizationUrl:f,brokerSecretNotice:m,copyFailedLabel:g,onDraftChange:_,onSave:v,onAuthorize:y,onClear:b,sectionRef:x}=e,S=(0,Z.useId)(),C=r,w=!C,[T,D]=(0,Z.useReducer)(j,ot),{reconfiguring:O}=T,k;t[0]!==i||t[1]!==o||t[2]!==O?(k=i&&!O&&!o.trim(),t[0]=i,t[1]=o,t[2]=O,t[3]=k):k=t[3];let A=k,M;t[4]!==n.copied||t[5]!==n.copyKey||t[6]!==n.hideKey||t[7]!==n.showKey?(M={show:n.showKey,hide:n.hideKey,copy:n.copyKey,copied:n.copied},t[4]=n.copied,t[5]=n.copyKey,t[6]=n.hideKey,t[7]=n.showKey,t[8]=M):M=t[8];let N=M,P;t[9]===o?P=t[10]:(P=o.trim().length>0&&!ie(o.trim()),t[9]=o,t[10]=P);let F=P,I;t[11]===_?I=t[12]:(I=()=>{D({type:`patch`,patch:{reconfiguring:!1}}),_(``)},t[11]=_,t[12]=I);let L=I,R=w&&`ring-1 ring-amber-500/30`,z;t[13]===R?z=t[14]:(z=h(R),t[13]=R,t[14]=z);let B=C?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:w?`bg-amber-500/10 text-amber-700 dark:text-amber-400`:`bg-surface-hover text-fg-muted`,V;t[15]===B?V=t[16]:(V=h(`flex size-9 shrink-0 items-center justify-center rounded-lg`,B),t[15]=B,t[16]=V);let H;t[17]===C?H=t[18]:(H=C?(0,$.jsx)(s,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}):(0,$.jsx)(ee,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[17]=C,t[18]=H);let U;t[19]!==V||t[20]!==H?(U=(0,$.jsx)(`span`,{className:V,children:H}),t[19]=V,t[20]=H,t[21]=U):U=t[21];let W=C?n.brokerSecretReadyTitle:n.brokerSecretStepTitle,G;t[22]===W?G=t[23]:(G=(0,$.jsx)(`p`,{className:`text-sm font-semibold text-fg`,children:W}),t[22]=W,t[23]=G);let te=C?n.brokerSecretReadyHint:n.brokerSecretHint,ne;t[24]===te?ne=t[25]:(ne=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:te}),t[24]=te,t[25]=ne);let re;t[26]!==w||t[27]!==n.brokerSecretMissingHint?(re=w?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-amber-800 dark:text-amber-200`,children:n.brokerSecretMissingHint}):null,t[26]=w,t[27]=n.brokerSecretMissingHint,t[28]=re):re=t[28];let K;t[29]!==G||t[30]!==ne||t[31]!==re?(K=(0,$.jsxs)(`div`,{children:[G,ne,re]}),t[29]=G,t[30]=ne,t[31]=re,t[32]=K):K=t[32];let q;t[33]!==l||t[34]!==w||t[35]!==y||t[36]!==O||t[37]!==c||t[38]!==n.brokerSecretAuthorize||t[39]!==n.brokerSecretAuthorizing||t[40]!==n.brokerSecretConsoleLink?(q=w||O?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsxs)(E,{type:`button`,disabled:c||l,onClick:y,children:[l?(0,$.jsx)(p,{className:`size-4 animate-spin`}):null,l?n.brokerSecretAuthorizing:n.brokerSecretAuthorize]}),(0,$.jsxs)(`a`,{href:be,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[n.brokerSecretConsoleLink,(0,$.jsx)(u,{className:`size-3`,"aria-hidden":!0})]})]}):null,t[33]=l,t[34]=w,t[35]=y,t[36]=O,t[37]=c,t[38]=n.brokerSecretAuthorize,t[39]=n.brokerSecretAuthorizing,t[40]=n.brokerSecretConsoleLink,t[41]=q):q=t[41];let ae;t[42]!==l||t[43]!==f||t[44]!==n.brokerSecretOpenAuthorization?(ae=l&&f?(0,$.jsxs)(`a`,{href:f,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline`,children:[n.brokerSecretOpenAuthorization,(0,$.jsx)(u,{className:`size-3`,"aria-hidden":!0})]}):null,t[42]=l,t[43]=f,t[44]=n.brokerSecretOpenAuthorization,t[45]=ae):ae=t[45];let J;t[46]!==i||t[47]!==o||t[48]!==a||t[49]!==F||t[50]!==L||t[51]!==g||t[52]!==S||t[53]!==w||t[54]!==b||t[55]!==_||t[56]!==v||t[57]!==O||t[58]!==c||t[59]!==N||t[60]!==A||t[61]!==n.brokerSecretCancelReconfigure||t[62]!==n.brokerSecretClear||t[63]!==n.brokerSecretMaskedHelp||t[64]!==n.brokerSecretNotInConfigFile||t[65]!==n.brokerSecretPlaceholder||t[66]!==n.brokerSecretReconfigure||t[67]!==n.brokerSecretRevealFailed||t[68]!==n.brokerSecretSave||t[69]!==n.brokerSecretSaveAndContinue||t[70]!==n.brokerSecretTitle?(J=A?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:S,children:n.brokerSecretTitle}),(0,$.jsx)(d,{id:S,value:a,labels:N,reveal:ct,loadFailedLabel:g||n.brokerSecretRevealFailed,maskedHelp:n.brokerSecretMaskedHelp,notInConfigFile:n.brokerSecretNotInConfigFile,readOnly:!0}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(E,{type:`button`,variant:`secondary`,disabled:c,onClick:()=>{D({type:`patch`,patch:{reconfiguring:!0}})},children:n.brokerSecretReconfigure}),(0,$.jsx)(E,{type:`button`,variant:`ghost`,disabled:c,onClick:b,children:n.brokerSecretClear})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:S,children:n.brokerSecretTitle}),(0,$.jsx)(d,{id:S,value:o,onChange:_,placeholder:n.brokerSecretPlaceholder,labels:N,disabled:c}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsxs)(E,{type:`button`,disabled:c||!F,onClick:v,children:[c?(0,$.jsx)(p,{className:`size-4 animate-spin`}):null,w?n.brokerSecretSaveAndContinue:n.brokerSecretSave]}),i?(0,$.jsx)(E,{type:`button`,variant:`ghost`,disabled:c,onClick:b,children:n.brokerSecretClear}):null,O?(0,$.jsx)(E,{type:`button`,variant:`ghost`,disabled:c,onClick:L,children:n.brokerSecretCancelReconfigure}):null]})]}),t[46]=i,t[47]=o,t[48]=a,t[49]=F,t[50]=L,t[51]=g,t[52]=S,t[53]=w,t[54]=b,t[55]=_,t[56]=v,t[57]=O,t[58]=c,t[59]=N,t[60]=A,t[61]=n.brokerSecretCancelReconfigure,t[62]=n.brokerSecretClear,t[63]=n.brokerSecretMaskedHelp,t[64]=n.brokerSecretNotInConfigFile,t[65]=n.brokerSecretPlaceholder,t[66]=n.brokerSecretReconfigure,t[67]=n.brokerSecretRevealFailed,t[68]=n.brokerSecretSave,t[69]=n.brokerSecretSaveAndContinue,t[70]=n.brokerSecretTitle,t[71]=J):J=t[71];let oe;t[72]===m?oe=t[73]:(oe=m?(0,$.jsx)(`p`,{className:`text-xs text-emerald-700 dark:text-emerald-400`,children:m}):null,t[72]=m,t[73]=oe);let se;t[74]!==K||t[75]!==q||t[76]!==ae||t[77]!==J||t[78]!==oe?(se=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[K,q,ae,J,oe]}),t[74]=K,t[75]=q,t[76]=ae,t[77]=J,t[78]=oe,t[79]=se):se=t[79];let ce;t[80]!==U||t[81]!==se?(ce=(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[U,se]}),t[80]=U,t[81]=se,t[82]=ce):ce=t[82];let Y;t[83]!==ce||t[84]!==z?(Y=(0,$.jsx)(ue,{className:z,children:ce}),t[83]=ce,t[84]=z,t[85]=Y):Y=t[85];let le;return t[86]!==x||t[87]!==Y?(le=(0,$.jsx)(`div`,{ref:x,id:`tunnel-broker-secret-setup`,children:Y}),t[86]=x,t[87]=Y,t[88]=le):le=t[88],le}function ct(){return _e().then(lt)}function lt(e){return e.registrationSecret??null}var ut={actionError:null,starting:!1,stopping:!1,savingAutoStart:!1,consentOpen:!1,autoStartConfirmOpen:!1,releaseConfirmOpen:!1,releasing:!1,brokerSecretDraft:``,savingBrokerSecret:!1,authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null};function dt({embedded:e=!1}){let t=_(e=>e.language),n=m(t).tunnelSettings,r=!!g(e=>e.conversationId),[i,a]=(0,Z.useReducer)(j,ut),{actionError:o,starting:s,stopping:c,savingAutoStart:l,consentOpen:u,autoStartConfirmOpen:d,releaseConfirmOpen:v,releasing:y,brokerSecretDraft:b,savingBrokerSecret:x,authorizingBrokerSecret:S,brokerSecretAuthorizationUrl:C,brokerSecretNotice:w}=i,k=(0,Z.useRef)(null),{data:A}=O(r),{data:M,error:N,isLoading:F,mutate:I}=T(r?`tunnel-status`:null,ge,{refreshInterval:e=>s?1e3:e?.frpcDownload||e?.state===`connecting`||e?.state===`reconnecting`?2e3:6e4}),z=(0,Z.useMemo)(()=>{let e=A?.payload?.config;if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e.tunnel;if(t&&typeof t==`object`&&!Array.isArray(t)&&t.autoStart===!0)return!0}return M?.config?.autoStart===!0},[A,M?.config?.autoStart]),V=(0,Z.useMemo)(()=>{let e=A?.payload?.config;if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e.tunnel;if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t.registrationSecret;if(typeof e==`string`)return e}}return``},[A]),H=ie(V),U=M?.registrationSecret?.configured??H;(0,Z.useEffect)(()=>{let e=()=>{I()};return window.addEventListener(`tunnel-status`,e),()=>window.removeEventListener(`tunnel-status`,e)},[I]);let W=(0,Z.useMemo)(()=>[n.consentBullet1,n.consentBullet2,n.consentBullet3],[n.consentBullet1,n.consentBullet2,n.consentBullet3]),ee=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{starting:!0}});try{await ye(),await I(),D()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{starting:!1}})}},[I]),G=(0,Z.useCallback)(()=>{if(!U){a({type:`patch`,patch:{actionError:n.brokerSecretRequiredBeforeStart}}),k.current?.scrollIntoView({behavior:`smooth`,block:`start`});return}if(M?.consentRequired){a({type:`patch`,patch:{consentOpen:!0}});return}ee()},[U,M?.consentRequired,ee,n.brokerSecretRequiredBeforeStart]),te=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{consentOpen:!1}}),a({type:`patch`,patch:{actionError:null}});try{await de(),await Promise.all([I(),ee()])}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}},[I,ee]),K=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{stopping:!0}});try{await pe(),await I(),D()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{stopping:!1}})}},[I]),q=(0,Z.useCallback)(async e=>{a({type:`patch`,patch:{savingAutoStart:!0}}),a({type:`patch`,patch:{actionError:null}});try{await ve({autoStart:e}),D()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingAutoStart:!1}})}},[]),J=(0,Z.useCallback)(()=>{if(z){q(!1);return}if(M?.consentRequired){a({type:`patch`,patch:{actionError:n.consentExpiredBanner}});return}if(!M?.canAutoStart){a({type:`patch`,patch:{actionError:n.autoStartHint}});return}a({type:`patch`,patch:{autoStartConfirmOpen:!0}})},[q,M?.canAutoStart,M?.consentRequired,n,z]),oe=(0,Z.useCallback)(async()=>{let e=b.trim();if(e){a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ve({registrationSecret:e}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretSaved}}),D(),await I(),a({type:`patch`,patch:{actionError:null}})}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingBrokerSecret:!1}})}}},[b,I,n.brokerSecretSaved]),se=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ve({registrationSecret:null}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretCleared}}),D(),await I()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingBrokerSecret:!1}})}},[I,n.brokerSecretCleared]),ce=(0,Z.useCallback)(async()=>{let e=ae(),t=null,r=null;a({type:`patch`,patch:{authorizingBrokerSecret:!0,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null,actionError:null}});try{for(t=(await R(`xopc-tunnel`)).sessionId;;){await new Promise(e=>window.setTimeout(e,1e3));let i=await P(t);if(i.authUrl&&i.authUrl!==r&&(r=i.authUrl,a({type:`patch`,patch:{brokerSecretAuthorizationUrl:i.authUrl}}),await B(i.authUrl,e)),i.status===`failed`||i.status===`cancelled`)throw Error(i.error??i.message??`OAuth authorization failed`);if(i.status===`completed`){await he(),await Promise.all([I(),D()]),a({type:`patch`,patch:{brokerSecretNotice:n.brokerSecretSaved,brokerSecretDraft:``}});return}}}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{L(e),t&&re(t).catch(()=>void 0),a({type:`patch`,patch:{authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null}})}},[I,n.brokerSecretSaved]),Y=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{releaseConfirmOpen:!1,actionError:null,releasing:!0}});try{await pe({release:!0}),await I(),D()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{releasing:!1}})}},[I]),le=(0,Z.useMemo)(()=>({copy:n.copyUrl,copied:n.copied,copyFailed:m(t).clipboard.copyFailed}),[t,n.copyUrl,n.copied]);if(!r)return(0,$.jsx)(`div`,{className:e?void 0:`w-full px-3 py-8 sm:px-5 xl:px-6`,children:(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.needToken})});let X=M??{enabled:!1,state:`disconnected`,subdomain:null,publicUrl:null,connectedSince:null,frpcPid:null,lastHeartbeatAt:null,lastError:null,consentRequired:!0,config:{autoStart:z,brokerUrl:`https://frp.xopc.ai/api`}},me=M?.consentRequired&&(X.enabled||z||M?.consent?.acceptedAt),_e=(0,$.jsx)(st,{t:n,brokerSecretReady:U,brokerSecretConfiguredInConfig:H,brokerSecretMaskedValue:H?V:``,brokerSecretDraft:b,savingBrokerSecret:x,authorizingBrokerSecret:S,brokerSecretAuthorizationUrl:C,brokerSecretNotice:w,copyFailedLabel:m(t).clipboard.copyFailed,onDraftChange:e=>a({type:`patch`,patch:{brokerSecretDraft:e}}),onSave:()=>void oe(),onAuthorize:()=>void ce(),onClear:()=>void se(),sectionRef:k}),be=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ue,{open:u,title:n.consentTitle,intro:n.consentIntro,bullets:W,checkboxLabel:n.consentCheckbox,confirmLabel:me?n.consentReconfirm:n.consentConfirm,cancelLabel:n.consentCancel,onConfirm:()=>void te(),onCancel:()=>a({type:`patch`,patch:{consentOpen:!1}})},u?`consent-open`:`consent-closed`),(0,$.jsx)(ne,{open:d,title:n.autoStartConfirmTitle,description:n.autoStartConfirmBody,confirmLabel:n.autoStartConfirmLabel,cancelLabel:n.consentCancel,onConfirm:()=>{a({type:`patch`,patch:{autoStartConfirmOpen:!1}}),q(!0)},onCancel:()=>a({type:`patch`,patch:{autoStartConfirmOpen:!1}})}),(0,$.jsx)(ne,{open:v,title:n.releaseConfirmTitle,description:n.releaseConfirmBody,confirmLabel:n.releaseConfirmLabel,cancelLabel:n.consentCancel,destructive:!0,onConfirm:()=>void Y(),onCancel:()=>a({type:`patch`,patch:{releaseConfirmOpen:!1}})})]});return e?(0,$.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[o?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:o}):null,_e,(0,$.jsx)(at,{t:n,status:X,isLoading:F,statusErr:N,starting:s,stopping:c,showConsentExpired:!!me,copyLabels:le,startDisabled:!U,startDisabledReason:U?void 0:n.brokerSecretRequiredBeforeStart,stepLabel:n.flowStepStart,onStart:G,onStop:()=>void K()}),(0,$.jsxs)(Ve,{showLabel:n.showOptions,hideLabel:n.hideOptions,children:[(0,$.jsxs)(`label`,{className:h(`flex items-center gap-3 text-sm text-fg`,!z&&!M?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:z,disabled:l||!z&&!M?.canAutoStart,onChange:J}),n.autoStart]}),!M?.canAutoStart&&!z?(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.autoStartHint}):null,X.subdomain||X.publicUrl?(0,$.jsxs)(`div`,{className:`space-y-2 rounded-xl bg-surface-base/45 p-4`,children:[(0,$.jsxs)(E,{type:`button`,variant:`secondary`,disabled:y||c,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[y?(0,$.jsx)(p,{className:`size-4 animate-spin`}):null,n.release]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.releaseHint})]}):null]}),(0,$.jsx)(Ve,{showLabel:n.showAdvanced,hideLabel:n.hideAdvanced,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-xl bg-surface-base/45 p-4 text-xs text-fg-subtle`,children:[(0,$.jsxs)(`p`,{className:`flex items-start gap-2`,children:[(0,$.jsx)(f,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(fe,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]})}),be]}):(0,$.jsxs)(`div`,{className:e?`flex w-full flex-col gap-6`:`flex w-full flex-col gap-6 px-3 py-8 sm:px-5 xl:px-6`,children:[e?null:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:n.title}),(0,$.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:n.subtitle})]}),o?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:o}):null,_e,(0,$.jsx)(at,{t:n,status:X,isLoading:F,statusErr:N,starting:s,stopping:c,showConsentExpired:!!me,copyLabels:le,startDisabled:!U,startDisabledReason:U?void 0:n.brokerSecretRequiredBeforeStart,onStart:G,onStop:()=>void K()}),X.subdomain||X.publicUrl?(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(E,{type:`button`,variant:`secondary`,disabled:y||c,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[y?(0,$.jsx)(p,{className:`size-4 animate-spin`}):null,n.release]})}):null,X.subdomain||X.publicUrl?(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.releaseHint}):null,(0,$.jsxs)(ue,{children:[(0,$.jsx)(`h2`,{className:`mb-3 text-sm font-semibold text-fg`,children:n.optionsTitle}),(0,$.jsxs)(`label`,{className:h(`flex items-center gap-3 text-sm text-fg`,!z&&!M?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:z,disabled:l||!z&&!M?.canAutoStart,onChange:J}),n.autoStart]}),!M?.canAutoStart&&!z?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-subtle`,children:n.autoStartHint}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg bg-surface-panel/80 px-3 py-2 text-xs text-fg-subtle shadow-surface`,children:[(0,$.jsxs)(`p`,{className:`flex items-start gap-2`,children:[(0,$.jsx)(f,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(fe,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]}),be]})}function ft(e,t){return e.tabs[t]}function pt(e,t){return e.tabIntro[t]}function mt(e){switch(e){case`tailscale`:return`tailscale-serve`;case`public`:return`public-tunnel`;case`reverse-proxy`:return`reverse-proxy`;case`ssh`:return`ssh-tunnel`;case`lan`:return`lan`;default:return}}function ht(e){let t=(0,Q.c)(7),{tab:n,onOpenTab:r}=e;switch(n){case`guide`:{let e;return t[0]===r?e=t[1]:(e=(0,$.jsx)(Ae,{onOpenTab:r}),t[0]=r,t[1]=e),e}case`tailscale`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(xe,{embedded:!0}),t[2]=e):e=t[2],e}case`public`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(dt,{embedded:!0}),t[3]=e):e=t[3],e}case`reverse-proxy`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(X,{}),t[4]=e):e=t[4],e}case`ssh`:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Re,{}),t[5]=e):e=t[5],e}case`lan`:{let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Pe,{}),t[6]=e):e=t[6],e}}}function gt(){let e=(0,Q.c)(3),t=a(),n=_(vt),r=m(n).remoteAccess,o=!!g(_t),[s,c]=i(),l=U(),u=Be(s.get(`tab`)),d=s.get(`intent`)===`mobile-pairing`,f;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={refreshInterval:2e3},e[0]=f):f=e[0];let p=T(d?`device-pairing-readiness`:null,me,f),h;e[1]===c?h=e[2]:(h=e=>{c(t=>{let n=new URLSearchParams(t);return e===`guide`?n.delete(`tab`):n.set(`tab`,e),n},{replace:!0})},e[1]=c,e[2]=h);let v=h,y=pt(r,u),b=ze.filter(e=>l||e!==`ssh`&&e!==`reverse-proxy`||e===u).map(e=>({id:e,label:ft(r,e)}));return(0,$.jsxs)(se,{children:[(0,$.jsx)(oe,{title:r.pageTitle,meta:(0,$.jsx)(fe,{language:n,label:r.docsLink,section:mt(u),className:`mt-1`})}),o?(0,$.jsxs)($.Fragment,{children:[d?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-xl bg-accent-soft px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,$.jsx)(W,{className:`mt-0.5 size-5 shrink-0 text-accent`,"aria-hidden":!0}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:r.mobilePairingFlow.title}),(0,$.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:p.data?.ready?r.mobilePairingFlow.ready:r.mobilePairingFlow.hint})]})]}),(0,$.jsxs)(E,{variant:`primary`,disabled:!p.data?.ready,onClick:()=>t(`/settings/devices?startDevicePairing=mobile`),children:[p.data?.ready?r.mobilePairingFlow.continue:r.mobilePairingFlow.waiting,(0,$.jsx)(G,{className:`size-4`,"aria-hidden":!0})]})]}):null,(0,$.jsx)(J,{items:b,activeTab:u,onChange:v,ariaLabel:r.tabsAria,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`}),(0,$.jsx)(ce,{id:u,activeTab:u,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`,title:ft(r,u),hint:u===`public`?void 0:y,showHeading:!1,framed:!1,children:(0,$.jsx)(ht,{tab:u,onOpenTab:v})})]}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.guide.needToken})]})}function _t(e){return e.conversationId}function vt(e){return e.language}export{gt as RemoteAccessHub};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,i as t,r as n}from"./locale-store-
|
|
1
|
+
import{a as e,i as t,r as n}from"./locale-store-DMy9W6IG.js";async function r(){return e(n(`/api/runtime-tools`))}async function i(t){await e(n(`/api/runtime-tools/config`),{method:`PATCH`,body:JSON.stringify(t)})}async function a(){return(await e(n(`/api/runtime-tools/prune`),{method:`POST`})).payload}async function o(e){let r=await t(n(`/api/runtime-tools/${e.runtime}/${e.action}/stream`),{method:`POST`,headers:{Accept:`text/event-stream`},body:JSON.stringify({version:e.version})});if(!r.ok||!r.body)throw Error(`HTTP ${r.status}`);let i=r.body.getReader(),a=new TextDecoder,o=``,s=!1;try{for(;!s;){let{done:t,value:n}=await i.read();if(t)break;o+=a.decode(n,{stream:!0}).replace(/\r\n/g,`
|
|
2
2
|
`);let r=o.split(`
|
|
3
3
|
|
|
4
4
|
`);o=r.pop()??``;for(let t of r){let n=``,r=``;for(let e of t.split(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{n as r,r as i}from"./popover-select-DHC7J4lG.js";import{t as a}from"./circle-alert-BEjgurr2.js";import{t as o}from"./circle-check-C23XjkUj.js";import{t as s}from"./download-Dk-ZjtO6.js";import{t as c}from"./rotate-ccw-JM1TBLpp.js";import{t as l}from"./messages-O0BEUKnx.js";import{n as u,r as d}from"./locale-store-DMy9W6IG.js";import{i as f}from"./vendor-swr-BIWyz7Rc.js";import{t as p}from"./button-aIC072nz.js";import{Ai as m,jn as h}from"./index-xTL-vb51.js";import{n as g,r as _}from"./settings-page-layout-Dx5S-Msc.js";import{t as v}from"./settings-advanced-gate-DCVaeBLW.js";import{i as y,n as b,r as x}from"./runtime-tools-api-D12qVKeC.js";var S=e(t(),1);function C(e){return e?.trim()||void 0}function w(e,t,n){return e?.state===`ready`?C(t)!==C(n):!0}var T=n(),E=[`node`,`python`,`uv`];function D(){let e=l(u(e=>e.language)).runtimeToolsSettings,{data:t,error:n,isLoading:C,mutate:D}=f(d(`/api/runtime-tools`)),[O,k]=(0,S.useState)(null),[A,j]=(0,S.useState)(!1),[M,N]=(0,S.useState)(!1),[P,F]=(0,S.useState)({}),[I,L]=(0,S.useState)({}),[R,z]=(0,S.useState)(null),B=Object.values(P).some(Boolean);if((0,S.useEffect)(()=>{t?.payload.config&&k(structuredClone(t.payload.config))},[t?.payload.config]),n)return(0,T.jsxs)(_,{children:[(0,T.jsx)(g,{title:e.title,subtitle:e.loadError}),(0,T.jsx)(p,{onClick:()=>void D(),children:e.refresh})]});if(C||!O)return(0,T.jsx)(_,{children:(0,T.jsx)(h,{sections:3})});let V=new Map(t?.payload.statuses.map(e=>[e.runtime,e])),H=(e,t)=>k(n=>n&&{...n,[e]:{...n[e],...t}}),U=async()=>{j(!0),z(null);try{await y(O),await D()}catch(e){z(e instanceof Error?e.message:String(e))}finally{j(!1)}},W=async(e,t)=>{F(t=>({...t,[e]:!0})),z(null);try{await y(O),await x({runtime:e,action:t,version:e===`uv`?O.uv.version:O[e].version,onProgress:t=>L(n=>({...n,[e]:t}))}),await D()}catch(e){z(e instanceof Error?e.message:String(e))}finally{F(t=>({...t,[e]:!1}))}},G=async()=>{N(!0),z(null);try{await b(),await D()}catch(e){z(e instanceof Error?e.message:String(e))}finally{N(!1)}};return(0,T.jsxs)(_,{gap:`gap-6`,children:[(0,T.jsx)(g,{title:e.title,actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(m,{className:`size-9 shrink-0 p-0`,disabled:B,label:e.refresh,onClick:async()=>{await D()}}),(0,T.jsx)(p,{onClick:()=>void G(),disabled:M||B,children:M?e.pruning:e.prune}),(0,T.jsx)(p,{variant:`primary`,onClick:()=>void U(),disabled:A||B,children:A?e.saving:e.save})]})}),R?(0,T.jsx)(`div`,{className:`rounded-xl bg-danger/10 px-4 py-3 text-sm text-danger`,children:R}):null,(0,T.jsx)(`section`,{className:`rounded-xl bg-surface-hover/20 p-4`,children:(0,T.jsxs)(`label`,{className:`flex items-center justify-between gap-4`,children:[(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:e.enabled}),(0,T.jsx)(`span`,{className:`mt-1 block text-xs text-fg-muted`,children:e.enabledHint})]}),(0,T.jsx)(`input`,{type:`checkbox`,checked:O.enabled,onChange:e=>k({...O,enabled:e.target.checked}),className:`size-4 accent-accent`})]})}),(0,T.jsx)(v,{children:(0,T.jsxs)(`section`,{className:`grid gap-4 rounded-xl bg-surface-hover/20 p-4 md:grid-cols-2`,children:[(0,T.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.downloadSource,(0,T.jsxs)(r,{value:O.download.source,onChange:e=>k({...O,download:{...O.download,source:e.target.value}}),children:[(0,T.jsx)(i,{value:`auto`,children:e.downloadSources.auto}),(0,T.jsx)(i,{value:`website-only`,children:e.downloadSources.websiteOnly}),(0,T.jsx)(i,{value:`direct-only`,children:e.downloadSources.directOnly})]})]}),(0,T.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.gatewayBaseUrl,(0,T.jsx)(`input`,{value:O.download.gatewayBaseUrl,disabled:O.download.source===`direct-only`,onChange:e=>k({...O,download:{...O.download,gatewayBaseUrl:e.target.value}}),className:`h-10 w-full rounded-lg border border-edge bg-surface-panel px-3 text-sm text-fg outline-none focus:border-edge-strong disabled:opacity-50`})]}),(0,T.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.offlineBundle,(0,T.jsx)(`input`,{value:O.download.bundleDir??``,placeholder:e.offlineBundlePlaceholder,onChange:e=>k({...O,download:{...O.download,bundleDir:e.target.value||void 0}}),className:`h-10 w-full rounded-lg border border-edge bg-surface-panel px-3 text-sm text-fg outline-none focus:border-edge-strong`})]}),(0,T.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.proxy,(0,T.jsx)(`input`,{value:O.download.proxy??``,placeholder:`http://127.0.0.1:7890`,onChange:e=>k({...O,download:{...O.download,proxy:e.target.value||void 0}}),className:`h-10 w-full rounded-lg border border-edge bg-surface-panel px-3 text-sm text-fg outline-none focus:border-edge-strong`})]})]})}),(0,T.jsx)(`div`,{className:`flex flex-col gap-4`,children:E.map(n=>{let l=V.get(n),u=l?.state===`ready`,d=I[n],f=n===`uv`?O.uv:O[n],m=n===`uv`?t?.payload.config.uv:t?.payload.config[n],h=P[n]===!0,g=w(l,f.version,m?.version);return(0,T.jsxs)(`section`,{className:`flex min-w-0 flex-col gap-5 rounded-xl bg-surface-base/55 p-5 sm:p-6`,children:[(0,T.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:e.runtimeNames[n]}),(0,T.jsx)(`p`,{className:`mt-1 break-words text-xs text-fg-muted`,children:l?.message??e.unknown})]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[u?(0,T.jsx)(o,{className:`size-5 shrink-0 text-success`}):(0,T.jsx)(a,{className:`size-5 shrink-0 text-warning`}),(0,T.jsx)(`input`,{type:`checkbox`,"aria-label":`${e.runtimeNames[n]} ${e.enabled}`,checked:f.enabled,onChange:e=>{n===`uv`?k({...O,uv:{...O.uv,enabled:e.target.checked}}):H(n,{enabled:e.target.checked})},className:`size-4 accent-accent`})]})]}),(0,T.jsxs)(`div`,{className:n===`uv`?`grid gap-4 md:grid-cols-[minmax(16rem,28rem)]`:`grid gap-4 md:grid-cols-2 xl:grid-cols-3`,children:[(0,T.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.version,(0,T.jsx)(`input`,{value:f.version??``,placeholder:l?.requestedVersion,onChange:e=>{let t=e.target.value||void 0;n===`uv`?k({...O,uv:{...O.uv,version:t}}):H(n,{version:t})},className:`h-10 w-full rounded-lg border border-edge bg-surface-inset px-3 text-sm text-fg outline-none focus:border-edge-strong`})]}),n===`uv`?null:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.sourcePolicy,(0,T.jsxs)(r,{value:O[n].preference,onChange:e=>H(n,{preference:e.target.value}),children:[(0,T.jsx)(i,{value:`managed-first`,children:e.preferences.managedFirst}),(0,T.jsx)(i,{value:`system-first`,children:e.preferences.systemFirst}),(0,T.jsx)(i,{value:`managed-only`,children:e.preferences.managedOnly}),(0,T.jsx)(i,{value:`system-only`,children:e.preferences.systemOnly})]})]}),(0,T.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.provisionPolicy,(0,T.jsxs)(r,{value:O[n].provision,onChange:e=>H(n,{provision:e.target.value}),children:[(0,T.jsx)(i,{value:`eager`,children:e.provisions.eager}),(0,T.jsx)(i,{value:`on-demand`,children:e.provisions.onDemand}),(0,T.jsx)(i,{value:`disabled`,children:e.provisions.disabled})]})]})]})]}),d&&h?(0,T.jsxs)(`div`,{className:`rounded-lg bg-accent-soft px-3 py-2 text-xs text-accent-fg`,children:[d.message,d.totalBytes&&d.downloadedBytes?` · ${Math.round(d.downloadedBytes/d.totalBytes*100)}%`:``]}):null,(0,T.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3`,children:[(0,T.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[g?(0,T.jsxs)(p,{variant:`primary`,disabled:!O.enabled||!f.enabled||h,onClick:()=>void W(n,`install`),children:[(0,T.jsx)(s,{className:`size-4`}),h?e.working:e.install]}):(0,T.jsxs)(`span`,{className:`inline-flex h-9 items-center gap-2 px-1 text-sm text-success`,children:[(0,T.jsx)(o,{className:`size-4`}),e.installed]}),l?.repairable?(0,T.jsxs)(p,{disabled:!O.enabled||!f.enabled||h,onClick:()=>void W(n,`repair`),children:[(0,T.jsx)(c,{className:`size-4`}),e.repair]}):null]}),(0,T.jsx)(v,{children:l?.resolved?.executable?(0,T.jsx)(`code`,{className:`break-all text-[11px] text-fg-subtle`,children:l.resolved.executable}):null})]})]},n)})})]})}export{D as RuntimeToolsSettingsPanel};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,i as n,n as r,t as i}from"./vendor-react-BOUWij0V.js";import{_ as a,d as o,f as s,h as c,l,p as u,t as d,u as f}from"./chunk-KS7C4IRE--EKdQGRF.js";import{n as p,r as m,t as h}from"./popover-select-DHC7J4lG.js";import{t as g}from"./circle-pause-CN9jYH2s.js";import{F as _}from"./markdown-view-wyOHdXEg.js";import{O as v,c as y,g as b}from"./notes-api-CYt2pGsm.js";import{t as x}from"./settings-2-D-csvaET.js";import{t as S}from"./sparkles-DHlfQFAF.js";import{t as C}from"./x-B_N4OPjy.js";import{t as w}from"./messages-O0BEUKnx.js";import{a as T,c as E,n as D,r as O}from"./locale-store-DMy9W6IG.js";import{a as k,i as A,n as j,o as M,r as N,s as P,t as F}from"./dist-BGTk37IG.js";import{a as I,i as L,n as ee}from"./vendor-swr-BIWyz7Rc.js";import{t as R}from"./button-aIC072nz.js";import{a as te}from"./gateway-realtime-Ci1Jst5g.js";import{t as z}from"./skeleton-BI5TyibZ.js";import{Ca as B,Ds as ne,Wc as re,Xi as ie,al as ae,cs as oe,il as se,ji as ce,ls as le,on as ue,rc as de,tn as fe}from"./index-xTL-vb51.js";import{t as pe}from"./page-context-capture-button-3uj5EcQC.js";var V=e(t(),1),H=r(),U=e=>T(O(`/api/scenes${e}`)),W=(e,t,n,r)=>T(O(`/api/scenes${e}`),{method:t,body:n===void 0?void 0:JSON.stringify(n),headers:{"Idempotency-Key":r??crypto.randomUUID()}});function G(e,t){let n=e?.status;return n===401?t?`登录已失效,请重新登录后查看智能关注。`:`Your session expired. Sign in again to view monitors.`:n===503?t?`智能关注服务暂不可用,请检查服务状态后重试。`:`The monitor service is unavailable. Check the Gateway and retry.`:n===409?t?`内容已被更新,请刷新后重新确认。`:`This content changed. Refresh and review it before trying again.`:(e?.body?.missing)?.some(e=>e.startsWith(`model_`))?t?`请先在模型设置中选择可用模型并配置凭据,然后重试。`:`Choose an available model and configure its credentials in model settings, then retry.`:n===422?t?`设置或授权不完整,请检查数据来源和范围。`:`Setup or permission is incomplete. Check the source and scope.`:n===404?t?`找不到这项关注或结果,请返回智能关注列表。`:`Monitor or result not found. Return to the monitors list.`:t?`操作未完成,请检查连接后重试。你的输入仍保留在当前页面。`:`Could not finish. Check your connection and retry. Your input is still on this page.`}var K=i();function me(e){let t=(0,H.c)(39),{activationId:n,zh:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={refreshInterval:15e3},t[0]=i):i=t[0];let a=L(`/diagnostics`,U,i),o,s,c,l,u,f,p,m,h,g,_;if(t[1]!==n||t[2]!==a.data||t[3]!==r){c=Symbol.for(`react.early_return_sentinel`);bb0:{let e=a.data?.activations.find(e=>e.id===n);if(!e){c=null;break bb0}let i;t[15]===r?i=t[16]:(i=e=>e==null?r?`未设置`:`Not scheduled`:new Date(e).toLocaleString(r?`zh-CN`:`en`),t[15]=r,t[16]=i);let v=i,y;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(y={needs_permission:[`邮件授权已失效,请重新连接账号。`,`Mail permission expired. Reconnect the account.`],source_rate_limited:[`邮件服务暂时限流,将自动重试。`,`Mail service rate limited. A retry is scheduled.`],source_timeout:[`读取邮件超时,将自动重试。`,`Mail read timed out. A retry is scheduled.`],unchanged_result:[`资料未变化,已保留原成果和反馈。`,`Context unchanged. The existing result and feedback were preserved.`],source_not_ready:[`来源暂不可用,请检查连接授权;稍后会重试。`,`Source unavailable. Check connection access; a retry is scheduled.`],daily_budget:[`已达每日模型调用上限,将在预算恢复后继续。`,`Daily model limit reached. Checks resume after the budget resets.`],execution_failed:[`检查失败,请检查模型凭据和服务连接,再点“现在检查”。`,`Check failed. Verify model credentials and connectivity, then check again.`],invalid_model_result:[`模型返回的格式不符合这项关注的要求,结果未发布;请重试或更换模型。`,`The model returned an unsupported result for this monitor. Nothing was published; retry or choose another model.`],empty_input:[`请先填写安排和约束。`,`Provide arrangements and constraints first.`],source_changed:[`来源已变化,旧草稿未发布;可重新检查。`,`Source changed. The stale draft was withheld; check again.`],execution_aborted:[`检查已中断,可在服务恢复后重新检查。`,`Check interrupted. Retry after the service resumes.`]},t[17]=y):y=t[17];let b=y,x=[e.next_schedule_at,e.next_deadline_check_at,e.retry_at].filter(he),S=e.source_reason??e.last_reason;l=`space-y-2 rounded-xl border border-edge p-4 text-sm text-fg-muted`,u=(0,K.jsxs)(`p`,{children:[r?`最近发起检查`:`Last check started`,`: `,e.last_check_at==null?r?`尚未检查`:`Not checked yet`:v(e.last_check_at)]});let C=r?`下次定时检查`:`Next scheduled check`,w=e.status!==`active`||a.data?.checksPaused?r?`当前不会自动检查`:`Automatic checks inactive`:x.length?`${Math.min(...x)<=Date.now()?r?`等待执行,原定 `:`Pending, scheduled for `:``}${v(Math.min(...x))}`:r?`暂无待执行检查`:`No check scheduled`;t[18]!==C||t[19]!==w?(f=(0,K.jsxs)(`p`,{children:[C,`: `,w]}),t[18]=C,t[19]=w,t[20]=f):f=t[20],p=e.deadline_at!=null&&(0,K.jsxs)(`p`,{children:[r?`邮件跟进截止时间`:`Mail follow-up deadline`,`: `,v(e.deadline_at)]}),m=e.source_reason&&e.source_attempt_at!=null&&(0,K.jsxs)(`p`,{children:[r?`最近尝试读取邮件`:`Last mail read attempt`,`: `,v(e.source_attempt_at),` · `,r?`连续失败`:`Consecutive failures`,`: `,e.source_failures]}),h=e.source_reason&&(0,K.jsx)(d,{to:`/capabilities/connectors`,className:`inline-block text-accent underline`,children:r?`检查连接授权`:`Check connection access`}),g=e.source_success_at!=null&&(0,K.jsxs)(`p`,{children:[r?`最近成功读取邮件`:`Last successful mail read`,`: `,v(e.source_success_at)]}),_=S&&b[S]&&(0,K.jsx)(`p`,{role:`status`,children:b[S][+!r]});let T=r?`当前关注使用的模型`:`Current monitor model`,E=a.data.currentModel??(r?`配置不可用`:`Configuration unavailable`);t[21]!==T||t[22]!==E?(o=(0,K.jsxs)(`p`,{children:[T,`: `,E]}),t[21]=T,t[22]=E,t[23]=o):o=t[23],s=e.source_reason&&e.status===`active`&&!a.data?.checksPaused&&e.source_retry_at!=null&&(0,K.jsxs)(`p`,{children:[r?`来源重试时间`:`Source retry`,`: `,v(e.source_retry_at)]})}t[1]=n,t[2]=a.data,t[3]=r,t[4]=o,t[5]=s,t[6]=c,t[7]=l,t[8]=u,t[9]=f,t[10]=p,t[11]=m,t[12]=h,t[13]=g,t[14]=_}else o=t[4],s=t[5],c=t[6],l=t[7],u=t[8],f=t[9],p=t[10],m=t[11],h=t[12],g=t[13],_=t[14];if(c!==Symbol.for(`react.early_return_sentinel`))return c;let v=r?`所有智能关注待检查`:`Pending checks across monitors`,y;t[24]!==a.data.pendingChecks||t[25]!==v?(y=(0,K.jsxs)(`p`,{children:[v,`: `,a.data.pendingChecks]}),t[24]=a.data.pendingChecks,t[25]=v,t[26]=y):y=t[26];let b;return t[27]!==o||t[28]!==s||t[29]!==y||t[30]!==l||t[31]!==u||t[32]!==f||t[33]!==p||t[34]!==m||t[35]!==h||t[36]!==g||t[37]!==_?(b=(0,K.jsxs)(`section`,{className:l,children:[u,f,p,m,h,g,_,o,s,y]}),t[27]=o,t[28]=s,t[29]=y,t[30]=l,t[31]=u,t[32]=f,t[33]=p,t[34]=m,t[35]=h,t[36]=g,t[37]=_,t[38]=b):b=t[38],b}function he(e){return e!=null}function ge(e){let t=(0,H.c)(13),{dirty:n,zh:r}=e,i;t[0]===n?i=t[1]:(i=e=>{n&&(e.preventDefault(),e.returnValue=``)},t[0]=n,t[1]=i),l(i);let a=f(n),o=a.state===`blocked`,s=r?`放弃未保存的更改?`:`Discard unsaved changes?`,c=r?`当前内容尚未保存,现在离开将丢失这些更改。`:`Your changes have not been saved. Leaving now will discard them.`,u=r?`放弃并离开`:`Discard and leave`,d=r?`继续编辑`:`Keep editing`,p,m;t[2]===a?(p=t[3],m=t[4]):(p=()=>{a.state===`blocked`&&a.proceed()},m=()=>{a.state===`blocked`&&a.reset()},t[2]=a,t[3]=p,t[4]=m);let h;return t[5]!==o||t[6]!==s||t[7]!==c||t[8]!==u||t[9]!==d||t[10]!==p||t[11]!==m?(h=(0,K.jsx)(ce,{open:o,title:s,description:c,confirmLabel:u,cancelLabel:d,destructive:!0,overlayClassName:`z-[100]`,contentClassName:`z-[101]`,onConfirm:p,onCancel:m}),t[5]=o,t[6]=s,t[7]=c,t[8]=u,t[9]=d,t[10]=p,t[11]=m,t[12]=h):h=t[12],h}function _e({zh:e}){let[t,n]=(0,V.useState)(!1),[r,i]=(0,V.useState)(!1),[a,o]=(0,V.useState)(),[s,c]=(0,V.useState)(!1);async function l(){n(!0),o(void 0),c(!1);try{if(await Notification.requestPermission()!==`granted`){c(!0);return}let{publicKey:t}=await W(`/browser/prepare`,`POST`);await navigator.serviceWorker.register(`/notification-sw.js`);let n=await navigator.serviceWorker.ready,r=Uint8Array.from(atob(t.replace(/-/g,`+`).replace(/_/g,`/`)),e=>e.charCodeAt(0)),a=await n.pushManager.getSubscription(),o=a?.options.applicationServerKey;a&&(!o||!new Uint8Array(o).every((e,t)=>e===r[t])||o.byteLength!==r.byteLength)&&(await a.unsubscribe(),a=null),a??=await n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:r}),await W(`/browser/subscriptions`,`POST`,{...a.toJSON(),expirationTime:a.expirationTime,language:e?`zh`:`en`}),i(!0)}catch(e){o(e)}finally{n(!1)}}let u=fe()&&`PushManager`in window;return(0,K.jsxs)(`div`,{className:`space-y-2 border-t border-edge pt-3`,children:[(0,K.jsx)(R,{disabled:t||!u,onClick:()=>void l(),children:r?e?`刷新此浏览器提醒订阅`:`Refresh this browser subscription`:e?`开启页面关闭后的浏览器提醒`:`Enable reminders when this page is closed`}),r&&(0,K.jsx)(`p`,{role:`status`,children:e?`此浏览器已订阅。服务需持续运行;送达取决于浏览器和系统权限。`:`Subscribed. The Gateway must remain running; delivery depends on browser and system permissions.`}),(!u||s)&&(0,K.jsx)(`p`,{className:`text-fg-muted`,children:e?`当前环境或通知权限不支持后台提醒。成果仍会保留在智能关注收件箱;可在支持推送的 HTTPS 浏览器中开启。`:`Background reminders are unavailable here. Results remain in your monitor inbox. Use a push-capable HTTPS browser and allow notifications.`}),a!=null&&(0,K.jsx)(`p`,{role:`alert`,className:`text-danger`,children:G(a,e)})]})}function ve(e){let t=(0,H.c)(23),{zh:n,open:r,onOpenChange:i,onCloseAutoFocus:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,K.jsx)(k,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),t[0]=o):o=t[0];let s;t[1]===a?s=t[2]:(s=e=>{e.preventDefault(),a()},t[1]=a,t[2]=s);let c=n?`检查与提醒设置`:`Checks and reminders`,l;t[3]===c?l=t[4]:(l=(0,K.jsx)(P,{className:`text-base font-semibold text-fg`,children:c}),t[3]=c,t[4]=l);let u=n?`适用于所有智能关注,设置更改后自动保存。`:`Applies to all monitors. Changes are saved automatically.`,d;t[5]===u?d=t[6]:(d=(0,K.jsx)(A,{className:`mt-1 text-sm text-fg-muted`,children:u}),t[5]=u,t[6]=d);let f;t[7]!==l||t[8]!==d?(f=(0,K.jsxs)(`div`,{className:`shrink-0 border-b border-edge p-4 sm:px-6`,children:[l,d]}),t[7]=l,t[8]=d,t[9]=f):f=t[9];let p;t[10]===n?p=t[11]:(p=(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4 sm:p-6`,children:(0,K.jsx)(ye,{zh:n})}),t[10]=n,t[11]=p);let m=n?`关闭`:`Close`,h;t[12]===m?h=t[13]:(h=(0,K.jsx)(`div`,{className:`flex shrink-0 justify-end border-t border-edge p-4 sm:px-6`,children:(0,K.jsx)(j,{asChild:!0,children:(0,K.jsx)(R,{type:`button`,variant:`secondary`,children:m})})}),t[12]=m,t[13]=h);let g;t[14]!==h||t[15]!==s||t[16]!==f||t[17]!==p?(g=(0,K.jsxs)(M,{children:[o,(0,K.jsxs)(N,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(40rem,calc(100dvh-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`,onCloseAutoFocus:s,children:[f,p,h]})]}),t[14]=h,t[15]=s,t[16]=f,t[17]=p,t[18]=g):g=t[18];let _;return t[19]!==i||t[20]!==r||t[21]!==g?(_=(0,K.jsx)(F,{open:r,onOpenChange:i,children:g}),t[19]=i,t[20]=r,t[21]=g,t[22]=_):_=t[22],_}function ye({zh:e}){let t=L(`/preferences`,U),[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)();async function o(e,i=t.data?.revision){if(!t.data||n||i===void 0)return!1;r(!0),a(void 0);try{let n=await W(`/preferences`,`PATCH`,{...e,expectedRevision:i});return await t.mutate(n,!1),!0}catch(e){return a(e),await t.mutate(),!1}finally{r(!1)}}if(!t.data)return t.error?(0,K.jsx)(`p`,{role:`alert`,children:G(t.error,e)}):(0,K.jsx)(z,{className:`h-32 w-full`});let s=t.data,c=`w-24 rounded-md border border-edge bg-surface-panel px-2 py-1 text-fg`;return(0,K.jsxs)(`div`,{className:`space-y-4 text-sm`,children:[(0,K.jsx)(`p`,{className:`text-fg-muted`,children:e?`设备休眠或服务关闭时不会检查;服务恢复后继续。草稿不会自动发送。`:`Checks require the device and Gateway to stay running. Drafts are never sent automatically.`}),[[`checksPaused`,e?`暂停所有检查`:`Pause all checks`],[`notificationsMuted`,e?`静音提醒(继续检查并保留成果)`:`Mute reminders (continue checks and keep results)`],[`suppressWhileViewing`,e?`查看成果时不重复提醒`:`Avoid reminders while viewing a result`],[`digestEnabled`,e?`汇总为每日摘要`:`Use a daily digest`]].map(([e,t])=>(0,K.jsxs)(`label`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`checkbox`,checked:s[e],disabled:n,onChange:t=>void o({[e]:t.target.checked})}),t]},e)),(0,K.jsxs)(`label`,{className:`flex flex-wrap items-center gap-2`,children:[e?`时区`:`Timezone`,(0,K.jsx)(be,{value:s.timezone,revision:s.revision,disabled:n,className:`${c} w-48`,zh:e,onSave:(e,t)=>o({timezone:String(e)},t)})]}),[[`quietStartHour`,e?`免打扰开始(小时)`:`Quiet hours start`,23],[`quietEndHour`,e?`免打扰结束(小时)`:`Quiet hours end`,23],[`dailyNotificationLimit`,e?`每日提醒上限`:`Daily reminder limit`,30],...s.digestEnabled?[[`digestHour`,e?`摘要时间(小时)`:`Digest hour`,23],[`digestMinute`,e?`摘要时间(分钟)`:`Digest minute`,59]]:[]].map(([t,r,i])=>(0,K.jsxs)(`label`,{className:`flex flex-wrap items-center gap-2`,children:[r,(0,K.jsx)(be,{value:s[t],revision:s.revision,max:i,disabled:n,className:c,zh:e,onSave:(e,n)=>o({[t]:Number(e)},n)})]},t)),(0,K.jsxs)(`label`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(`input`,{type:`checkbox`,disabled:n,checked:s.preferredChannel===`browser`,onChange:e=>void o({preferredChannel:e.target.checked?`browser`:`in_app`})}),e?`允许浏览器后台提醒`:`Allow background browser reminders`]}),(0,K.jsx)(_e,{zh:e}),i!=null&&(0,K.jsx)(`p`,{role:`alert`,className:`text-danger`,children:G(i,e)}),s.checksPausedUntil&&(0,K.jsx)(R,{disabled:n,onClick:()=>void o({checksPausedUntil:null}),children:e?`取消定时暂停`:`Clear timed pause`})]})}function be(e){let t=(0,H.c)(26),{value:n,revision:r,max:i,disabled:a,className:o,zh:s,onSave:c}=e,[l,u]=(0,V.useState)(null),d;t[0]!==l||t[1]!==i||t[2]!==c||t[3]!==n?(d=async()=>{if(!l||l.value===String(n))return;let e=i===void 0?l.value:Number(l.value);!l.value||typeof e==`number`&&(!Number.isInteger(e)||e<0||e>i)||await c(e,l.revision)&&u(null)},t[0]=l,t[1]=i,t[2]=c,t[3]=n,t[4]=d):d=t[4];let f=d,p=i===void 0?`text`:`number`,m=i===void 0?void 0:0,h=l?.value??n,g;t[5]===r?g=t[6]:(g=e=>u(t=>({value:e.target.value,revision:t?.revision??r})),t[5]=r,t[6]=g);let _;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{e.key===`Escape`&&u(null)},t[7]=_):_=t[7];let v;t[8]===f?v=t[9]:(v=e=>{e.relatedTarget instanceof HTMLElement&&e.relatedTarget.hasAttribute(`data-discard-preference`)||f()},t[8]=f,t[9]=v);let y;t[10]!==o||t[11]!==a||t[12]!==i||t[13]!==p||t[14]!==m||t[15]!==h||t[16]!==g||t[17]!==v?(y=(0,K.jsx)(`input`,{type:p,min:m,max:i,value:h,disabled:a,className:o,onChange:g,onKeyDown:_,onBlur:v}),t[10]=o,t[11]=a,t[12]=i,t[13]=p,t[14]=m,t[15]=h,t[16]=g,t[17]=v,t[18]=y):y=t[18];let b;t[19]!==a||t[20]!==l||t[21]!==s?(b=l&&(0,K.jsx)(R,{"data-discard-preference":!0,type:`button`,variant:`ghost`,disabled:a,onPointerDown:xe,onClick:()=>u(null),children:s?`放弃修改`:`Discard edits`}),t[19]=a,t[20]=l,t[21]=s,t[22]=b):b=t[22];let x;return t[23]!==y||t[24]!==b?(x=(0,K.jsxs)(K.Fragment,{children:[y,b]}),t[23]=y,t[24]=b,t[25]=x):x=t[25],x}function xe(e){return e.preventDefault()}function Se({item:e,zh:t,onChange:n}){let r=(0,V.useRef)(null);(0,V.useEffect)(()=>{let t=crypto.randomUUID(),n=!1,i=()=>{W(`/presence`,`POST`,{clientId:t,surface:`web`,presentationId:e.id,visible:n&&document.visibilityState===`visible`&&document.hasFocus()}).catch(()=>void 0)},a=new IntersectionObserver(([e])=>{n=e.isIntersecting,i()},{threshold:.5});r.current&&a.observe(r.current);let o=setInterval(i,2e4);return document.addEventListener(`visibilitychange`,i),window.addEventListener(`focus`,i),window.addEventListener(`blur`,i),()=>{a.disconnect(),clearInterval(o),document.removeEventListener(`visibilitychange`,i),window.removeEventListener(`focus`,i),window.removeEventListener(`blur`,i),n=!1,i()}},[e.id]);let[i,a]=(0,V.useState)(!1),o=`/presentations/${encodeURIComponent(e.id)}`,s=L(e.readOnly?null:`${o}/feedback`,U),{mutate:c}=I(),[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(),p=async e=>{if(s.data){u(!0),f(void 0);try{let t=s.data.feedback?.note??``,n=await W(`${o}/feedback`,`POST`,{expectedRevision:s.data.feedback?.revision??0,rating:e});await s.mutate({feedback:{rating:e,note:t,revision:n.revision}},{revalidate:!1}),c(`/metrics`)}catch(e){f(e),s.mutate()}finally{u(!1)}}},m=async()=>{u(!0),f(void 0);try{await W(o,`PATCH`,{read:e.status!==`read`}),n()}catch(e){f(e)}finally{u(!1)}};return(0,K.jsxs)(`article`,{ref:r,className:`space-y-3 rounded-xl border border-edge bg-surface-panel p-4 sm:p-6`,children:[e.createdAt!=null&&(0,K.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[t?`生成于`:`Generated`,` `,new Date(e.createdAt).toLocaleString(t?`zh-CN`:`en`)]}),e.sourceHealth?.reason&&(0,K.jsx)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:t?`邮件来源暂不可用,这份成果尚未核实最新邮件,请检查连接授权后重试。`:`Mail is unavailable. This result has not been checked against the latest messages. Check connection access and retry.`}),(0,K.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-sm leading-relaxed text-fg`,children:e.content.summary}),(0,K.jsx)(R,{variant:`ghost`,onClick:()=>{navigator.clipboard.writeText(e.content.summary).then(()=>a(!0)).catch(f)},children:i?t?`已复制`:`Copied`:t?`复制成果`:`Copy result`}),(0,K.jsx)(`div`,{className:`space-y-1 text-xs text-fg-muted`,children:e.sources?.length?e.sources.map(e=>(0,K.jsxs)(`p`,{children:[(0,K.jsx)(`a`,{className:`text-accent underline`,href:e.href,target:e.kind===`mail`?`_blank`:void 0,rel:`noreferrer`,children:e.kind===`notes`?t?`查看关注资料`:`View monitor notes`:e.title||(t?`查看原邮件`:`View original email`)}),e.sender&&` · ${e.sender}`]},e.href)):(0,K.jsx)(`p`,{children:t?`来源详情暂不可用`:`Source details unavailable`})}),e.readOnly?(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`这份成果已结束、过期或延后,仅供查阅。`:`This result is resolved, expired or snoozed, and is available for reference.`}):(0,K.jsxs)(K.Fragment,{children:[s.error?(0,K.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[G(s.error,t),(0,K.jsx)(R,{onClick:()=>void s.mutate(),children:t?`重新加载`:`Reload`})]}):s.data?(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:[`useful`,`not_useful`].map(e=>(0,K.jsx)(R,{disabled:l,"aria-pressed":s.data?.feedback?.rating===e,onClick:()=>void p(e),children:e===`useful`?t?`对我有帮助`:`Helpful`:t?`没有帮助`:`Not helpful`},e))}):(0,K.jsx)(z,{className:`h-11 w-48`}),(0,K.jsx)(R,{disabled:l,variant:`ghost`,onClick:()=>void m(),children:e.status===`read`?t?`标为未读`:`Mark unread`:t?`标为已读`:`Mark read`})]}),!!d&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:G(d,t)})]})}var Ce=`min-h-11 w-full rounded-md border border-edge bg-surface-panel px-3 py-2 text-sm text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`;function we({activation:e,zh:t,onDirty:n,onChanged:r}){let i=`/activations/${e.id}/schedules`,a=L(i,U),o=L(`/templates/${e.templateKey}/versions/${e.templateVersion}`,U),[s,c]=(0,V.useState)(null),[l,u]=(0,V.useState)(),d=()=>{a.mutate(),o.mutate()};if(a.error||o.error)return(0,K.jsxs)(`div`,{role:`alert`,children:[(0,K.jsx)(`p`,{children:G(a.error??o.error,t)}),(0,K.jsx)(R,{onClick:d,children:t?`重新加载`:`Reload`})]});if(!a.data||!o.data)return(0,K.jsx)(z,{className:`h-32 w-full`});let f=o.data.template.triggers.find(e=>e.type===`schedule`);if(!f)return null;let p=a.data.schedules.find(e=>e.triggerKey===f.id);return(0,K.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-edge p-4 sm:p-6`,children:[(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:t?`检查时间`:`Review schedule`}),p?(0,K.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[e.status===`active`?t?`下次检查:`:`Next check: `:t?`当前不会定时检查。已保存时间:`:`Not scheduling while inactive. Saved time: `,new Intl.DateTimeFormat(t?`zh-CN`:`en`,{dateStyle:`medium`,timeStyle:`short`,timeZone:p.schedule.timeZone}).format(p.nextDueAt),` · `,p.schedule.timeZone]}):(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`尚未设置定时检查。只有你点“现在检查”才会执行周期复盘。`:`No recurring schedule yet. Use Check now for a manual review.`}),!!l&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:G(l,t)}),s?(0,K.jsx)(Te,{initial:s.cursor,zh:t,onCancel:()=>{c(null),n(!1)},onSave:async e=>{u(void 0);try{await W(`${i}/${encodeURIComponent(f.id)}`,`PATCH`,{expectedRevision:s.cursor?.revision??0,schedule:e}),c(null),n(!1),await a.mutate(),r?.()}catch(e){throw u(e),e}}}):(0,K.jsx)(R,{disabled:e.status!==`active`,onClick:()=>{u(void 0),c({cursor:p}),n(!0)},children:p?t?`修改时间`:`Edit schedule`:t?`设置时间`:`Set schedule`}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t?`没有值得关注的新变化时保持安静。暂停关注会停止定时检查。`:`Stays quiet when there is no useful change. Pause the monitor to stop scheduled checks.`})]})}function Te({initial:e,zh:t,onSave:n,onCancel:r}){let[i,a]=(0,V.useState)(e?.schedule.weekdays??[0]),[o,s]=(0,V.useState)(`${String(e?.schedule.hour??18).padStart(2,`0`)}:${String(e?.schedule.minute??0).padStart(2,`0`)}`),[c,l]=(0,V.useState)(e?.schedule.timeZone??Intl.DateTimeFormat().resolvedOptions().timeZone),[u,d]=(0,V.useState)(!1),[f,p]=(0,V.useState)(!1),m=async e=>{e.preventDefault();try{new Intl.DateTimeFormat(`en`,{timeZone:c})}catch{p(!0);return}if(!i.length||!/^\d{2}:\d{2}$/.test(o)){p(!0);return}p(!1),d(!0);try{let[e,t]=o.split(`:`).map(Number);await n({weekdays:i,hour:e,minute:t,timeZone:c})}catch{}finally{d(!1)}};return(0,K.jsx)(`form`,{onSubmit:e=>void m(e),children:(0,K.jsxs)(`fieldset`,{disabled:u,className:`space-y-4`,children:[(0,K.jsxs)(`fieldset`,{children:[(0,K.jsx)(`legend`,{className:`mb-2 text-sm font-medium text-fg`,children:t?`每周检查日`:`Days of the week`}),(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(t?[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`]:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`]).map((e,t)=>(0,K.jsxs)(`label`,{className:`flex min-h-11 items-center gap-2 rounded-md border border-edge px-3 text-sm text-fg`,children:[(0,K.jsx)(`input`,{type:`checkbox`,className:`ui-checkbox`,checked:i.includes(t),onChange:e=>a(n=>e.target.checked?[...n,t].sort():n.filter(e=>e!==t))}),e]},t))})]}),(0,K.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm font-medium text-fg`,children:[t?`当地时间`:`Local time`,(0,K.jsx)(`input`,{type:`time`,required:!0,value:o,onChange:e=>s(e.target.value),className:Ce})]}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm font-medium text-fg`,children:[t?`时区(例如 Asia/Shanghai)`:`Time zone (for example Asia/Shanghai)`,(0,K.jsx)(`input`,{required:!0,maxLength:100,value:c,onChange:e=>l(e.target.value),className:Ce,spellCheck:!1})]})]}),f&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:t?`请选择至少一天,并填写有效时间和时区。`:`Choose at least one day and enter a valid time and time zone.`}),(0,K.jsxs)(`div`,{className:`flex gap-3`,children:[(0,K.jsx)(R,{type:`submit`,disabled:u,children:u?t?`正在保存…`:`Saving…`:t?`保存时间`:`Save schedule`}),(0,K.jsx)(R,{type:`button`,onClick:r,children:t?`取消`:`Cancel`})]})]})})}function Ee({value:e,disabled:t,zh:n,onChange:r}){let i=L(`/sources/mail/accounts`,U),[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(``),[l,u]=(0,V.useState)([]),[f,p]=(0,V.useState)(!1),[m,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)(),y=a||i.data?.accounts[0]?.id||``;async function b(){p(!0),v(void 0),u([]),g(!0),r({id:``,accountId:``,subject:``,sender:``});try{u((await W(`/sources/mail/search`,`POST`,{accountId:y,query:s})).sources)}catch(e){v(e)}finally{p(!1)}}if(i.error)return(0,K.jsxs)(`div`,{role:`alert`,className:`space-y-2 text-sm text-danger`,children:[(0,K.jsx)(`p`,{children:G(i.error,n)}),(0,K.jsx)(R,{onClick:()=>void i.mutate(),children:n?`重新加载`:`Reload`})]});if(!i.data)return(0,K.jsx)(z,{className:`h-24 w-full`});let x=e=>`${e.subject||(n?`无主题邮件`:`Untitled mail`)} · ${e.sender||e.accountId}`;return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n?`搜索会读取所选 Gmail 账号的匹配邮件;开启后只持续跟进选定线程,不发送邮件,也不需要开启后台学习。`:`Search reads matching mail in your selected Gmail account. The monitor follows only the selected thread, never sends mail, and requires no background learning.`}),(0,K.jsx)(h,{value:y,disabled:t||f,ariaLabel:n?`邮箱账号`:`Mail account`,placeholder:n?`选择账号`:`Choose account`,allowEmpty:!1,options:i.data.accounts.map(e=>({value:e.id,label:e.label})),onChange:e=>{o(e),u([]),r({id:``,accountId:``,subject:``,sender:``})}}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm`,children:[n?`主题、发件人或 Gmail 搜索条件`:`Subject, sender, or Gmail query`,(0,K.jsx)(`input`,{value:s,maxLength:500,disabled:t||f,onChange:e=>c(e.target.value),className:`rounded-md border border-edge bg-surface-panel px-3 py-2`,placeholder:n?`例如 from:alice@example.com`:`e.g. from:alice@example.com`})]}),(0,K.jsx)(R,{type:`button`,disabled:t||f||!y||!s.trim(),onClick:()=>void b(),children:f?n?`正在搜索…`:`Searching…`:n?`搜索邮件`:`Search mail`}),(0,K.jsx)(h,{value:e,disabled:t||f,ariaLabel:n?`要跟进的邮件`:`Mail to follow`,placeholder:n?`选择邮件线程`:`Choose a thread`,allowEmpty:!1,options:l.map(e=>({value:e.id,label:x(e)})),onChange:e=>{let t=l.find(t=>t.id===e);t&&r(t)}}),!i.data.accounts.length&&(0,K.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[n?`请连接 Gmail,并允许读取及后台检查;要求每次确认或仅限指定 Agent 的账号暂不支持。`:`Connect Gmail and allow background reads. Accounts requiring confirmation for every read or restricted to specific agents are not supported yet.`,` `,(0,K.jsx)(d,{className:`text-accent underline`,to:`/capabilities/connectors`,children:n?`管理连接`:`Manage connections`})]}),m&&!f&&!_&&!l.length&&(0,K.jsx)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:n?`没有找到匹配线程,请调整搜索条件。`:`No matching threads. Try a different query.`}),_!=null&&(0,K.jsx)(`p`,{role:`alert`,className:`text-danger`,children:G(_,n)})]})}function De({activation:e,zh:t,onDirty:n,onChanged:r}){let i=`/activations/${e.id}/work-items`,a=L(i,U),[o,s]=(0,V.useState)(null),[c,l]=(0,V.useState)(),[u,d]=(0,V.useState)(!1),f=()=>{s(null),n(!1),a.mutate(),r()};if(a.error)return(0,K.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[G(a.error,t),(0,K.jsx)(R,{onClick:()=>void a.mutate(),children:t?`重新加载`:`Reload`})]});if(!a.data)return(0,K.jsx)(z,{className:`h-32 w-full`});let p=a.data.workItems[0],m=async e=>{if(p){d(!0),l(void 0);try{await W(`/work-items/${p.id}`,`PATCH`,{expectedRevision:p.revision,status:e}),f()}catch(e){l(e)}finally{d(!1)}}};return(0,K.jsxs)(`section`,{className:`space-y-3 rounded-xl border border-edge p-4 sm:p-6`,children:[(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:t?`这封邮件的跟进时间`:`Follow-up deadline`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:p?`${p.status===`watching`?t?`留意回复,到时检查`:`Watching replies; check at deadline`:p.status===`paused`?t?`已暂停跟进`:`Follow-up paused`:t?`已结束跟进`:`Follow-up ended`} · ${new Intl.DateTimeFormat(t?`zh-CN`:`en`,{dateStyle:`medium`,timeStyle:`short`}).format(p.dueAt)}`:t?`设置一个时间;此前有新回复时会重新判断是否还需要跟进。`:`Choose a deadline. New replies before then trigger a review of whether follow-up is still needed.`}),!!c&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:G(c,t)}),o?(0,K.jsx)(Oe,{initial:o.item?.dueAt,zh:t,onCancel:()=>{s(null),n(!1)},onSave:async t=>{l(void 0);try{o.item?await W(`/work-items/${o.item.id}`,`PATCH`,{expectedRevision:o.item.revision,dueAt:t,status:`watching`}):e.scope.kind===`objects`&&await W(i,`POST`,{subjectId:e.scope.ids[0],accountId:e.permissions.accountIds[0],dueAt:t}),f()}catch(e){throw l(e),e}}}):(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[p?.status!==`completed`&&(0,K.jsx)(R,{disabled:u||e.status!==`active`,onClick:()=>{s({item:p}),n(!0),l(void 0)},children:p?t?`重新设置跟进时间`:`Reschedule follow-up`:t?`设置跟进时间`:`Set deadline`}),p?.status===`watching`&&(0,K.jsx)(R,{disabled:u,onClick:()=>void m(`paused`),children:t?`暂停这次跟进`:`Pause follow-up`}),p&&p.status!==`completed`&&(0,K.jsx)(R,{disabled:u,onClick:()=>void m(`completed`),children:t?`结束这次跟进`:`End follow-up`})]}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t?`结束跟进只停止检查,不表示邮件已发送或事情已经解决。`:`Ending stops checks; it does not mean a message was sent or the matter resolved.`})]})}function Oe({initial:e,zh:t,onSave:n,onCancel:r}){let[i,a]=(0,V.useState)(()=>{if(!e)return``;let t=new Date(e);return new Date(e-t.getTimezoneOffset()*6e4).toISOString().slice(0,16)}),[o,s]=(0,V.useState)(!1),[c,l]=(0,V.useState)(!1),u=async e=>{e.preventDefault();let t=new Date(i).getTime();if(!Number.isFinite(t)||t<=Date.now()){l(!0);return}l(!1),s(!0);try{await n(t)}catch{}finally{s(!1)}};return(0,K.jsx)(`form`,{onSubmit:e=>void u(e),children:(0,K.jsxs)(`fieldset`,{disabled:o,className:`space-y-3`,children:[(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm font-medium text-fg`,children:[t?`跟进时间(当前设备时区)`:`Deadline (device time zone)`,(0,K.jsx)(`input`,{required:!0,type:`datetime-local`,value:i,onChange:e=>a(e.target.value),className:`min-h-11 w-full min-w-0 rounded-md border border-edge bg-surface-panel px-3 py-2 text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`})]}),c&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:t?`请选择未来的有效时间。`:`Choose a valid future time.`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(R,{type:`submit`,disabled:o,children:o?t?`正在保存…`:`Saving…`:t?`保存跟进时间`:`Save deadline`}),(0,K.jsx)(R,{type:`button`,onClick:r,children:t?`取消`:`Cancel`})]})]})})}var ke=e(n(),1),q=`min-h-11 w-full rounded-md border border-edge bg-surface-panel px-3 py-2 text-base text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,J=`min-w-0 space-y-4 rounded-xl border border-edge bg-surface-panel p-4`;function Ae(e,t,n){return e===`none`?[]:[`workspace.read`,...t?[`workspace.write`]:[],...e===`worktree`&&n.trim()?[`verification.run`]:[]]}function je({template:e}){let t=D(e=>e.language)===`zh`,n=(e,n)=>t?e:n,r=u(),i=L(`/source-providers`,U),[a,o]=(0,V.useState)(``),s=a||i.data?.providers[0]?.id||``,c=L(s?`/source-providers/${encodeURIComponent(s)}/accounts`:null,U),l=L(`follow-up-projects`,()=>ie({limit:100})),[f,h]=(0,V.useState)(``),[g,_]=(0,V.useState)(``),[v,y]=(0,V.useState)(``),[b,x]=(0,V.useState)(``),[S,C]=(0,V.useState)(``),[w,T]=(0,V.useState)(`none`),[E,O]=(0,V.useState)(!1),[k,A]=(0,V.useState)(``),[j,M]=(0,V.useState)(!1),[N,P]=(0,V.useState)(``),[F,I]=(0,V.useState)(!1),ee=(0,V.useRef)(null),te=l.data?.items.filter(e=>e.workspaceRoot)??[],B=f||(c.data?.accounts.length===1?c.data.accounts[0].id:``),ne=g||(te.length===1?te[0].id:``);async function re(i){if(i.preventDefault(),!j){M(!0),P(``);try{let{source:t}=await W(`/source-providers/${encodeURIComponent(s)}/resolve-link`,`POST`,{accountId:B,url:v}),i={source:t,sourceUrl:v,goal:b,instruction:S,resource:w,...w===`worktree`?{projectId:ne}:{},capabilities:Ae(w,E,k),...w===`worktree`&&k.trim()?{verificationCommand:k.trim()}:{}},a={templateKey:e.key,templateVersion:e.version,configuration:i},o=await W(`/preflight`,`POST`,a);if(!o.ready){let e={verification_backend:n(`可选验证需要配置隔离后端;也可清空验证命令,先生成修改。`,`Optional verification needs an isolation backend. Clear the command to proceed without running tests.`),verification_backend_unavailable:n(`验证后端不可用;检查配置或清空验证命令。`,`Verification backend unavailable. Check settings or clear the command.`),clean_base_checkout:n(`项目基础工作区有未提交改动,请先整理。`,`The project base checkout has uncommitted changes.`),source_read_permission:n(`来源读取权限不足,请检查连接。`,`Source read permission is missing. Check the connection.`),model_credentials:n(`请配置模型凭据。`,`Configure model credentials.`),model_configuration:n(`请选择可用模型。`,`Choose an available model.`)};P(o.missing.map(t=>e[t]??t).join(` `));return}let c=await W(`/activations`,`POST`,a);(0,ke.flushSync)(()=>I(!0)),r(`/scenes/${c.activation.id}`,{replace:!0})}catch(e){P(G(e,t))}finally{M(!1),setTimeout(()=>ee.current?.focus(),0)}}}return i.error||c.error||l.error?(0,K.jsx)(`p`,{role:`alert`,children:G(i.error??c.error??l.error,t)}):!i.data||!l.data||s&&!c.data?(0,K.jsxs)(`div`,{"aria-busy":`true`,children:[(0,K.jsx)(z,{className:`h-12`}),(0,K.jsx)(z,{className:`mt-4 h-32`})]}):(0,K.jsxs)(`form`,{className:`space-y-5`,onSubmit:re,children:[(0,K.jsx)(ge,{dirty:!F&&!!(v||b||S),zh:t}),(0,K.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:e.title}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.description}),(0,K.jsxs)(`fieldset`,{disabled:j,className:`space-y-5`,children:[(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`来源`,`Source`),(0,K.jsx)(p,{"aria-label":n(`来源`,`Source`),value:s,onChange:e=>{o(e.target.value),h(``)},required:!0,children:i.data.providers.map(e=>(0,K.jsx)(m,{value:e.id,children:e.label},e.id))})]}),!c.data?.accounts.length&&(0,K.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[n(`请先连接可读取的账号。`,`Connect an account with read access first.`),` `,(0,K.jsx)(d,{className:`text-accent-fg`,to:`/capabilities/connectors`,children:n(`连接`,`Connections`)})]}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`账号`,`Account`),(0,K.jsxs)(p,{"aria-label":n(`账号`,`Account`),value:B,onChange:e=>h(e.target.value),required:!0,children:[(0,K.jsx)(m,{value:``,children:n(`选择账号`,`Choose an account`)}),c.data?.accounts.map(e=>(0,K.jsx)(m,{value:e.id,children:e.label},e.id))]})]}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`来源链接`,`Source link`),(0,K.jsx)(`input`,{className:q,type:`url`,required:!0,maxLength:2e3,value:v,onChange:e=>y(e.target.value)})]}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`你希望完成什么?`,`What should be accomplished?`),(0,K.jsx)(`textarea`,{className:q,required:!0,maxLength:6e3,rows:3,value:b,onChange:e=>x(e.target.value)})]}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`处理指令(可选)`,`Instructions (optional)`),(0,K.jsx)(`textarea`,{className:q,rows:3,maxLength:12e3,value:S,onChange:e=>C(e.target.value),placeholder:n(`例如:持续更新决策记录;有冲突时向我确认。`,`For example: keep a decision log updated; ask me about conflicts.`)})]}),(0,K.jsxs)(`section`,{className:J,children:[(0,K.jsx)(`h3`,{className:`font-medium text-fg`,children:n(`资源与权限`,`Resources and permissions`)}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`工作资源`,`Workspace resource`),(0,K.jsxs)(p,{"aria-label":n(`工作资源`,`Workspace resource`),value:w,onChange:e=>{T(e.target.value),A(``),O(!1)},children:[(0,K.jsx)(m,{value:`none`,children:n(`无文件资源 · 分析与建议`,`No files · analysis and recommendations`)}),(0,K.jsx)(m,{value:`artifacts`,children:n(`任务产物目录 · 文档等文件`,`Task artifact folder · documents and files`)}),(0,K.jsx)(m,{value:`worktree`,children:n(`Git worktree · 项目修改`,`Git worktree · project changes`)})]})]}),w===`worktree`&&(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`项目`,`Project`),(0,K.jsxs)(p,{"aria-label":n(`项目`,`Project`),required:!0,value:ne,onChange:e=>_(e.target.value),children:[(0,K.jsx)(m,{value:``,children:n(`选择本地 Git 项目`,`Choose a local Git project`)}),te.map(e=>(0,K.jsx)(m,{value:e.id,children:e.name},e.id))]})]}),w!==`none`&&(0,K.jsxs)(`label`,{className:`flex min-h-11 items-center gap-3 text-sm text-fg`,children:[(0,K.jsx)(`input`,{className:`ui-checkbox`,type:`checkbox`,checked:E,onChange:e=>O(e.target.checked)}),n(`允许创建和修改此任务工作区内的文件`,`Allow creating and editing files in this task workspace`)]}),w===`worktree`&&(0,K.jsxs)(`details`,{className:`space-y-3`,children:[(0,K.jsx)(`summary`,{className:`cursor-pointer text-sm text-fg`,children:n(`可选:授权运行验证命令`,`Optional: authorize a verification command`)}),(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[n(`固定验证命令(留空则不执行命令)`,`Fixed verification command (blank means no commands)`),(0,K.jsx)(`input`,{className:q,maxLength:2e3,value:k,onChange:e=>A(e.target.value),placeholder:`pnpm test`})]}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n(`仅此可选工具需要已配置的隔离后端。留空也能修改文件,但结果会标记未验证。不会自动改为宿主机执行。`,`Only this optional tool needs a configured isolation backend. File edits work without it and remain unverified. No automatic host execution.`)}),(0,K.jsx)(d,{to:`/settings/agent-defaults`,className:`text-sm text-accent-fg`,children:n(`查看执行设置`,`Execution settings`)})]}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n(`不会提交、推送、部署或对外发消息。约每分钟检查一次,Gateway 需要保持在线。`,`No commits, pushes, deployment or outgoing messages. Checks about once a minute while the Gateway is online.`)})]}),N&&(0,K.jsx)(`p`,{ref:ee,tabIndex:-1,role:`alert`,className:`text-sm text-danger`,children:N}),(0,K.jsx)(R,{variant:`primary`,type:`submit`,disabled:j||!B||w===`worktree`&&!ne,children:j?n(`正在检查并开启…`,`Checking and starting…`):n(`确认范围并开始跟进`,`Confirm scope and start following`)})]})]})}function Me({id:e,initial:t}){let n=o(),[r,i]=(0,V.useState)(!1),a=D(e=>e.language)===`zh`,s=(e,t)=>a?e:t,c=`/activations/${encodeURIComponent(e)}`,l=L(c,U,{refreshInterval:5e3,fallbackData:{details:t}}),[u,f]=(0,V.useState)(!1),[p,m]=(0,V.useState)(``);async function h(e){f(!0),m(``);try{await W(c,`PATCH`,{expectedRevision:l.data.details.activation.revision,status:e}),await l.mutate()}catch(e){m(G(e,a))}finally{f(!1)}}if(l.error)return(0,K.jsx)(`p`,{role:`alert`,children:G(l.error,a)});if(!l.data)return(0,K.jsx)(`div`,{"aria-busy":`true`,children:(0,K.jsx)(z,{className:`h-48`})});let g=l.data.details,v=g.processedRevision>0&&g.processedRevision===g.observedRevision;return(0,K.jsxs)(`div`,{className:`space-y-5`,children:[(0,K.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:g.activation.goal}),(0,K.jsx)(pe,{resource:{kind:`scene`,id:g.activation.id,revision:String(g.activation.revision)},disabled:u||r}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,role:`status`,children:g.activation.status===`archived`?s(`已停止跟进,任务与产物已保留`,`Stopped following; task and artifacts retained`):g.lastError||g.activation.status===`needs_setup`||g.receipt?.needsUser?s(`需要你处理`,`Needs your attention`):g.activation.status===`paused`?s(`已暂停`,`Paused`):g.run?.status===`running`?s(`正在处理`,`Working`):v?s(`已处理当前来源版本,继续观察变化`,`Current source revision processed; watching for updates`):s(`正在跟进`,`Following updates`)}),(0,K.jsxs)(`section`,{className:J,children:[(0,K.jsx)(`h3`,{className:`font-medium text-fg`,children:s(`来源 → 任务 → 产物`,`Source → task → artifacts`)}),(0,K.jsx)(`p`,{className:`break-words text-sm text-fg-muted`,children:g.input.source.provider}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-4`,children:[(0,K.jsx)(d,{className:`text-sm text-accent-fg`,to:_(`${n.pathname}${n.search}`,g.task.id),children:s(`打开关联任务`,`Open linked task`)}),g.input.sourceUrl&&(0,K.jsx)(`a`,{className:`text-sm text-accent-fg`,href:g.input.sourceUrl,target:`_blank`,rel:`noopener noreferrer`,children:s(`打开原讨论`,`Open source`)})]}),(0,K.jsxs)(`dl`,{className:`grid grid-cols-1 gap-3 text-sm sm:grid-cols-3`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{className:`text-fg-muted`,children:s(`已观察版本`,`Observed revision`)}),(0,K.jsx)(`dd`,{children:g.observedRevision})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{className:`text-fg-muted`,children:s(`已交付版本`,`Delivered revision`)}),(0,K.jsx)(`dd`,{children:g.deliveredRevision})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`dt`,{className:`text-fg-muted`,children:s(`已处理版本`,`Processed revision`)}),(0,K.jsx)(`dd`,{children:g.processedRevision||`—`})]})]}),(g.environment||g.artifactPath)&&(0,K.jsxs)(`div`,{className:`space-y-2 break-all text-sm text-fg-muted`,children:[g.environment?.branchRef&&(0,K.jsxs)(`p`,{children:[s(`任务分支:`,`Task branch: `),g.environment.branchRef]}),(0,K.jsxs)(`p`,{children:[s(`产物位置:`,`Artifact location: `),g.environment?.rootPath??g.artifactPath]})]}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:s(`已处理不代表通过验收。验证状态以工具证据为准。`,`Processed does not mean accepted. Verification status comes from tool evidence.`)})]}),g.lastError&&(0,K.jsx)(`p`,{role:`alert`,className:`break-words text-sm text-danger`,children:g.lastError}),g.receipt&&(0,K.jsxs)(`section`,{className:J,children:[(0,K.jsx)(`h3`,{className:`font-medium text-fg`,children:s(`最近结果`,`Latest result`)}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:g.receipt.verification.status===`passed`?s(`已授权命令通过;仍需审阅业务结果`,`Approved command passed; review the outcome`):s(`未验证:没有当前版本的通过证据`,`Unverified: no passing evidence for the current revision`)}),(0,K.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-sm text-fg`,children:g.receipt.summary}),g.receipt.remainingWork.map((e,t)=>(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e},t)),(0,K.jsxs)(`details`,{children:[(0,K.jsx)(`summary`,{className:`cursor-pointer text-sm text-fg`,children:s(`产物与验证证据`,`Artifacts and verification evidence`)}),[...g.receipt.changes,...g.receipt.evidence].map((e,t)=>(0,K.jsxs)(`pre`,{className:`mt-3 max-h-64 overflow-y-auto whitespace-pre-wrap break-words text-xs text-fg-muted`,children:[e.title,`
|
|
2
|
+
`,e.summary]},t))]})]}),g.input.resource===`worktree`&&g.input.projectId&&(0,K.jsx)(Pe,{projectId:g.input.projectId,taskId:g.task.id}),g.activation.status===`paused`&&(0,K.jsx)(Ne,{item:g,onSaved:()=>l.mutate(),onDirty:i},g.activation.id),p&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:p}),(0,K.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:g.activation.status!==`archived`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(R,{variant:`secondary`,disabled:u,onClick:()=>void h(g.activation.status===`active`?`paused`:`active`),children:u?s(`处理中…`,`Working…`):g.activation.status===`active`?s(`暂停跟进与执行`,`Pause observation and execution`):s(`确认后恢复`,`Resume after review`)}),(0,K.jsx)(R,{variant:`ghost`,disabled:u,onClick:()=>void h(`archived`),children:s(`停止跟进(保留产物)`,`Stop following (keep artifacts)`)})]})})]})}function Ne({item:e,onSaved:t,onDirty:n}){let r=D(e=>e.language)===`zh`,i=(e,t)=>r?e:t,[a,o]=(0,V.useState)(null),s=a??{base:e,instruction:e.input.instruction,writable:e.input.capabilities.includes(`workspace.write`),command:e.input.verificationCommand??``},{instruction:c,writable:l,command:u}=s,d=e=>o(t=>({...t??s,...e})),[f,p]=(0,V.useState)(!1),[m,h]=(0,V.useState)(``),g=c!==e.input.instruction||l!==e.input.capabilities.includes(`workspace.write`)||u!==(e.input.verificationCommand??``);(0,V.useEffect)(()=>(n(g||f),()=>n(!1)),[g,f,n]);async function _(n){n.preventDefault(),p(!0),h(``);try{let n=s.base;await W(`/activations/${e.activation.id}`,`PATCH`,{expectedRevision:n.activation.revision,configuration:{...n.input,instruction:c,capabilities:Ae(n.input.resource,l,u),verificationCommand:u.trim()||void 0}}),await t(),o(null)}catch(e){h(G(e,r))}finally{p(!1)}}return(0,K.jsxs)(`details`,{className:J,children:[(0,K.jsx)(`summary`,{className:`cursor-pointer text-sm text-fg`,children:i(`调整指令与授权`,`Edit instructions and permissions`)}),(0,K.jsx)(ge,{dirty:g,zh:r}),(0,K.jsxs)(`form`,{className:`space-y-3`,onSubmit:_,children:[(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[i(`处理指令`,`Instructions`),(0,K.jsx)(`textarea`,{disabled:f,className:q,rows:4,maxLength:12e3,value:c,onChange:e=>d({instruction:e.target.value})})]}),s.base.input.resource!==`none`&&(0,K.jsxs)(`label`,{className:`flex min-h-11 items-center gap-3 text-sm text-fg`,children:[(0,K.jsx)(`input`,{disabled:f,type:`checkbox`,className:`ui-checkbox`,checked:l,onChange:e=>d({writable:e.target.checked})}),i(`允许修改任务工作区文件`,`Allow task workspace file edits`)]}),s.base.input.resource===`worktree`&&(0,K.jsxs)(`label`,{className:`grid gap-2 text-sm text-fg`,children:[i(`验证命令(可选;留空不执行)`,`Verification command (optional; blank disables execution)`),(0,K.jsx)(`input`,{disabled:f,className:q,maxLength:2e3,value:u,onChange:e=>d({command:e.target.value})})]}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:i(`保存后仍保持暂停。确认授权范围后再恢复。`,`Saving keeps the monitor paused. Review permissions before resuming.`)}),m&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:m}),(0,K.jsx)(R,{type:`submit`,disabled:f||!g,children:f?i(`正在保存…`,`Saving…`):i(`保存指令与授权`,`Save instructions and permissions`)}),a&&(0,K.jsx)(R,{type:`button`,variant:`ghost`,disabled:f,onClick:()=>{o(null),h(``)},children:i(`放弃修改`,`Discard edits`)})]})]})}function Pe({projectId:e,taskId:t}){let n=o(),r=D(e=>e.language)===`zh`,[i,a]=(0,V.useState)(!1),[s,c]=(0,V.useState)(``),[l,u]=(0,V.useState)(!1),[f,h]=(0,V.useState)(``),g=L(i?`/resources/projects/${encodeURIComponent(e)}/branches`:null,U),v=g.data?.branches.find(e=>e.ref===s);async function y(){if(v){u(!0),h(``);try{await W(`/resources/branch-links`,`POST`,{projectId:e,taskId:t,branchRef:v.ref,expectedSha:v.sha}),await g.mutate()}catch(e){h(G(e,r))}finally{u(!1)}}}return(0,K.jsxs)(`details`,{className:J,open:i,onToggle:e=>a(e.currentTarget.open),children:[(0,K.jsx)(`summary`,{className:`cursor-pointer text-sm text-fg`,children:r?`已有分支与需求关联`:`Existing branches and requirements`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r?`只读盘点。确认关联仅记录归属,不接管该分支,也不修改、重命名或清理代码。`:`Read-only inventory. Confirming records ownership only: no takeover, edits, renaming or cleanup.`}),g.error?(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:G(g.error,r)}):g.data?(0,K.jsxs)(K.Fragment,{children:[g.data.checkoutDirty&&(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r?`基础工作区存在未提交改动,已保留。`:`The base checkout has uncommitted changes; they are preserved.`}),(0,K.jsxs)(p,{"aria-label":r?`选择已有分支`:`Choose an existing branch`,value:s,onChange:e=>c(e.target.value),children:[(0,K.jsx)(m,{value:``,children:r?`选择分支查看归属`:`Choose a branch to inspect`}),g.data.branches.map(e=>(0,K.jsx)(m,{value:e.ref,children:e.ref.replace(`refs/heads/`,``)},e.ref))]}),v&&(0,K.jsxs)(`div`,{className:`space-y-3 break-all text-sm text-fg`,children:[(0,K.jsx)(`p`,{children:v.subject}),(0,K.jsx)(`p`,{className:`text-fg-muted`,children:v.sha}),v.worktree&&(0,K.jsx)(`p`,{className:`text-fg-muted`,children:v.worktree}),v.taskId?(0,K.jsx)(d,{className:`text-accent-fg`,to:v.activationId?`/scenes/${v.activationId}`:_(`${n.pathname}${n.search}`,v.taskId),children:r?`查看对应事项`:`Open associated work`}):(0,K.jsx)(R,{variant:`secondary`,disabled:l,onClick:()=>void y(),children:l?r?`关联中…`:`Linking…`:r?`确认关联到当前任务`:`Confirm association with this task`}),v.changedSinceConfirmation&&(0,K.jsx)(`p`,{className:`text-fg-muted`,children:r?`该分支在确认关联后已有新提交。`:`This branch has new commits since confirmation.`})]})]}):(0,K.jsx)(z,{className:`h-24`}),f&&(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:f})]})}function Fe(){let{mutate:e}=I();(0,V.useEffect)(()=>{let t=0,n,r,i=()=>{r===void 0&&(r=setTimeout(()=>{r=void 0,e(()=>!0)},50))},a=ue(e=>{e.kind===`scene`&&i()}),o=async()=>{let o=++t;n?.(),n=void 0;try{let{capabilities:s}=await T(O(`/api/capabilities/operations`));if(o!==t)return;if(!s.some(e=>e.id===`xopc.scenes.list`)){r!==void 0&&clearTimeout(r),r=void 0,e(()=>!0,void 0,{revalidate:!0});return}n=te(`resources:scenes`,{onEvent:e=>{e.event===`resource.changed`&&a(e.topic,e.data)},onGap:i},0),i()}catch{}},s=()=>{o()};return window.addEventListener(`gateway-realtime-connected`,s),o(),()=>{t++,n?.(),r!==void 0&&clearTimeout(r),window.removeEventListener(`gateway-realtime-connected`,s)}},[e])}var Ie=`recurring-work-spec`,Le={draft:`recurring-work-draft`,ready:`recurring-work-ready`,configured:`recurring-work-configured`};function Re(e){let t=Object.entries(Le).filter(([,t])=>e?.includes(t));return t.length===1?t[0][0]:`needs_review`}function Y(e,t,n,r=`continue`){let i=w(e).recurringWork.prompts,a=(t?i[r]:i.start).replace(`{noteId}`,t??``),o=new URLSearchParams({skill:`design-recurring-work`,draft:a,autoSend:`1`});return n?.trim()?o.set(`projectId`,n.trim()):o.set(`projectScope`,`none`),`/chat/new?${o.toString()}`}var X=10;function ze(){let e=(0,H.c)(17),t=D(Ue),n=w(t).recurringWork,r=E(He),[i,a]=(0,V.useState)(0),o;e[0]!==i||e[1]!==r?(o=r?[`recurring-work-specs`,r,i]:null,e[0]=i,e[1]=r,e[2]=o):o=e[2];let s;e[3]===i?s=e[4]:(s=()=>b({tag:Ie,sortBy:`updatedAt`,sortOrder:`desc`,limit:X,offset:i*X}),e[3]=i,e[4]=s);let{data:c,error:l,isLoading:u,mutate:f}=L(o,s),p,m;e[5]!==c||e[6]!==i?(p=()=>{c&&i>0&&i*X>=c.total&&a(Math.max(0,Math.ceil(c.total/X)-1))},m=[c,i],e[5]=c,e[6]=i,e[7]=p,e[8]=m):(p=e[7],m=e[8]),(0,V.useEffect)(p,m);let h=i*X+1,g=Math.min((i+1)*X,c?.total??0),_;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,K.jsx)(oe,{className:`text-accent`,size:20,"aria-hidden":`true`}),e[9]=_):_=e[9];let v;e[10]===t?v=e[11]:(v=Y(t),e[10]=t,e[11]=v);let y;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,K.jsx)(se,{size:16,"aria-hidden":`true`}),e[12]=y):y=e[12];let x;return e[13]!==c||e[14]!==u||e[15]!==r?(x=r&&u&&!c&&(0,K.jsxs)(`div`,{className:`space-y-2`,"aria-busy":`true`,children:[(0,K.jsx)(z,{className:`h-5 w-28`}),(0,K.jsx)(z,{className:`h-14 w-full`})]}),e[13]=c,e[14]=u,e[15]=r,e[16]=x):x=e[16],(0,K.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`recurring-work-heading`,children:[(0,K.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel p-4 sm:p-6`,children:(0,K.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{className:`max-w-2xl space-y-2`,children:[_,(0,K.jsx)(`h2`,{id:`recurring-work-heading`,className:`text-base font-semibold text-fg`,children:n.title}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.description}),(0,K.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.designOnly})]}),(0,K.jsx)(R,{asChild:!0,children:(0,K.jsxs)(d,{to:v,children:[n.start,y]})})]})}),x,l&&(0,K.jsxs)(`div`,{role:`alert`,className:`flex flex-wrap items-center gap-3 rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,K.jsx)(`p`,{className:`flex-1 text-sm text-danger`,children:n.listError}),(0,K.jsx)(R,{variant:`secondary`,onClick:()=>void f(),children:n.retry})]}),c&&!l&&c.total===0&&(0,K.jsx)(`p`,{className:`rounded-xl border border-edge bg-surface-panel p-4 text-sm text-fg-muted`,children:n.empty}),c&&!l&&c.items.length>0&&(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:n.savedPlans}),(0,K.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:c.items.map(e=>{let r=Re(e.tags);return(0,K.jsxs)(`div`,{"data-plan-stage":r,className:`min-w-0 space-y-3 rounded-xl border border-edge bg-surface-panel px-4 py-3`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,K.jsx)(ne,{size:18,className:`shrink-0 text-fg-muted`,"aria-hidden":`true`}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`p`,{className:`truncate text-sm font-medium text-fg`,children:e.title||n.untitled}),e.snippet&&(0,K.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,children:e.snippet})]})]}),(0,K.jsx)(`p`,{className:`text-xs font-medium text-fg`,children:n.stage[r]}),(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.nextStep[r]}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,K.jsx)(R,{asChild:!0,variant:`ghost`,children:(0,K.jsx)(d,{"data-plan-id":e.id,to:`/scenes?${new URLSearchParams({plan:e.id,...e.projects?.[0]?.id?{projectId:e.projects[0].id}:{}})}`,children:n.view})}),(0,K.jsx)(R,{asChild:!0,variant:`ghost`,children:(0,K.jsx)(d,{to:Y(t,e.id,e.projects?.[0]?.id),children:n.continue})}),r===`ready`&&(0,K.jsx)(R,{asChild:!0,variant:`secondary`,children:(0,K.jsx)(d,{to:Y(t,e.id,e.projects?.[0]?.id,`implement`),children:n.prepare})})]})]},e.id)})}),(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,K.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.showing.replace(`{start}`,String(h)).replace(`{end}`,String(g)).replace(`{total}`,String(c.total))}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(R,{variant:`secondary`,disabled:i===0,onClick:()=>a(Ve),children:n.previous}),(0,K.jsx)(R,{variant:`secondary`,disabled:g>=c.total,onClick:()=>a(Be),children:n.next})]})]})]})]})}function Be(e){return e+1}function Ve(e){return Math.max(0,e-1)}function He(e){return e.conversationId}function Ue(e){return e.language}function We(e){let t=(0,H.c)(64),{noteId:n,projectId:r}=e,i=D(Ge),a;t[0]===i?a=t[1]:(a=w(i),t[0]=i,t[1]=a);let o=a.recurringWork,s,c;t[2]===n?(s=t[3],c=t[4]):(s=[`recurring-work-spec`,n],c=()=>y(n),t[2]=n,t[3]=s,t[4]=c);let{data:l,error:u,isLoading:f,mutate:p}=L(s,c);if(f){let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsxs)(`div`,{className:`space-y-3`,"aria-busy":`true`,children:[(0,K.jsx)(z,{className:`h-8 w-2/3`}),(0,K.jsx)(z,{className:`h-40 w-full`})]}),t[5]=e):e=t[5],e}if(u){let e;t[6]===o.loadError?e=t[7]:(e=(0,K.jsx)(`p`,{className:`text-sm text-danger`,children:o.loadError}),t[6]=o.loadError,t[7]=e);let n;t[8]===p?n=t[9]:(n=()=>void p(),t[8]=p,t[9]=n);let r;t[10]!==o.retry||t[11]!==n?(r=(0,K.jsx)(R,{onClick:n,children:o.retry}),t[10]=o.retry,t[11]=n,t[12]=r):r=t[12];let i;return t[13]!==e||t[14]!==r?(i=(0,K.jsxs)(`div`,{role:`alert`,className:`space-y-3`,children:[e,r]}),t[13]=e,t[14]=r,t[15]=i):i=t[15],i}if(!l||!l.tags?.includes(`recurring-work-spec`)){let e;return t[16]===o.missing?e=t[17]:(e=(0,K.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:o.missing}),t[16]=o.missing,t[17]=e),e}let m;t[18]===l.tags?m=t[19]:(m=Re(l.tags),t[18]=l.tags,t[19]=m);let h=m,g=l.title||o.untitled,_;t[20]===g?_=t[21]:(_=(0,K.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:g}),t[20]=g,t[21]=_);let b=o.stage[h],x;t[22]===b?x=t[23]:(x=(0,K.jsx)(`p`,{className:`text-xs font-medium text-fg`,children:b}),t[22]=b,t[23]=x);let S=o.nextStep[h],C;t[24]===S?C=t[25]:(C=(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:S}),t[24]=S,t[25]=C);let T;t[26]===o.planStatus?T=t[27]:(T=(0,K.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:o.planStatus}),t[26]=o.planStatus,t[27]=T);let E;t[28]!==C||t[29]!==T||t[30]!==_||t[31]!==x?(E=(0,K.jsxs)(`div`,{className:`space-y-1`,children:[_,x,C,T]}),t[28]=C,t[29]=T,t[30]=_,t[31]=x,t[32]=E):E=t[32];let O;t[33]!==o.beforeActivation||t[34]!==h?(O=h===`ready`&&(0,K.jsx)(`p`,{className:`rounded-lg border border-edge bg-surface-subtle p-3 text-sm text-fg-muted`,children:o.beforeActivation}),t[33]=o.beforeActivation,t[34]=h,t[35]=O):O=t[35];let k;t[36]!==l.id||t[37]!==l.markdown?(k=(0,K.jsx)(v,{content:l.markdown,noteId:l.id}),t[36]=l.id,t[37]=l.markdown,t[38]=k):k=t[38];let A;t[39]!==o.prepareImplementation||t[40]!==i||t[41]!==l.id||t[42]!==r||t[43]!==h?(A=h===`ready`&&(0,K.jsx)(R,{asChild:!0,children:(0,K.jsx)(d,{to:Y(i,l.id,r,`implement`),children:o.prepareImplementation})}),t[39]=o.prepareImplementation,t[40]=i,t[41]=l.id,t[42]=r,t[43]=h,t[44]=A):A=t[44];let j;t[45]!==i||t[46]!==l.id||t[47]!==r?(j=Y(i,l.id,r),t[45]=i,t[46]=l.id,t[47]=r,t[48]=j):j=t[48];let M;t[49]!==o.continueDiscussion||t[50]!==j?(M=(0,K.jsx)(R,{asChild:!0,variant:`secondary`,children:(0,K.jsx)(d,{to:j,children:o.continueDiscussion})}),t[49]=o.continueDiscussion,t[50]=j,t[51]=M):M=t[51];let N=`/notes/${encodeURIComponent(l.id)}`,P;t[52]!==o.editInNotes||t[53]!==N?(P=(0,K.jsx)(R,{asChild:!0,variant:`ghost`,children:(0,K.jsx)(d,{to:N,children:o.editInNotes})}),t[52]=o.editInNotes,t[53]=N,t[54]=P):P=t[54];let F;t[55]!==A||t[56]!==M||t[57]!==P?(F=(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2 border-t border-edge pt-4`,children:[A,M,P]}),t[55]=A,t[56]=M,t[57]=P,t[58]=F):F=t[58];let I;return t[59]!==E||t[60]!==O||t[61]!==k||t[62]!==F?(I=(0,K.jsxs)(`div`,{className:`space-y-5`,children:[E,O,k,F]}),t[59]=E,t[60]=O,t[61]=k,t[62]=F,t[63]=I):I=t[63],I}function Ge(e){return e.language}var Ke=`min-h-11 w-full rounded-md border border-edge bg-surface-panel px-3 py-2 text-base text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,Z=`min-w-0 rounded-xl border border-edge bg-surface-panel p-4 sm:p-6`,qe=`grid gap-2 text-sm font-medium text-fg`;function Je(e,t){return{needs_setup:[`待完成设置`,`Finish setup`],active:[`已开启`,`Active`],paused:[`已暂停`,`Paused`],completed:[`已完成`,`Completed`],archived:[`已归档`,`Archived`],running:[`正在检查`,`Checking`],succeeded:[`已准备成果`,`Result ready`],skipped:[`无需新行动`,`No new action`],retry_wait:[`等待来源或预算`,`Waiting for source or budget`],failed:[`检查失败`,`Check failed`],cancelled:[`已取消`,`Cancelled`]}[e]?.[+!t]??e}function Q(){let e=(0,H.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,K.jsx)(z,{className:`h-8 w-48`}),(0,K.jsx)(z,{className:`h-40 w-full`}),(0,K.jsx)(z,{className:`h-32 w-full`})]}),e[0]=t):t=e[0],t}function $(e){let t=(0,H.c)(24),{error:n,retry:r}=e,i=D(Ye)===`zh`;if(n?.status===503){let e=i?`智能关注尚未开放`:`Monitors are not available yet`,r;t[0]===e?r=t[1]:(r=(0,K.jsx)(`h1`,{className:`text-xl font-semibold text-fg`,children:e}),t[0]=e,t[1]=r);let a;t[2]!==n||t[3]!==i?(a=G(n,i),t[2]=n,t[3]=i,t[4]=a):a=t[4];let o;t[5]===a?o=t[6]:(o=(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:a}),t[5]=a,t[6]=o);let s=i?`返回对话`:`Back to chat`,c;t[7]===s?c=t[8]:(c=(0,K.jsx)(R,{asChild:!0,children:(0,K.jsx)(d,{to:`/chat`,children:s})}),t[7]=s,t[8]=c);let l;return t[9]!==r||t[10]!==o||t[11]!==c?(l=(0,K.jsxs)(`section`,{className:`${Z} space-y-3`,children:[r,o,c]}),t[9]=r,t[10]=o,t[11]=c,t[12]=l):l=t[12],l}let a;t[13]!==n||t[14]!==i?(a=G(n,i),t[13]=n,t[14]=i,t[15]=a):a=t[15];let o;t[16]===a?o=t[17]:(o=(0,K.jsx)(`p`,{className:`text-sm text-danger`,children:a}),t[16]=a,t[17]=o);let s;t[18]!==r||t[19]!==i?(s=r&&(0,K.jsxs)(R,{onClick:r,children:[(0,K.jsx)(le,{size:16,"aria-hidden":`true`}),i?`重新加载`:`Reload`]}),t[18]=r,t[19]=i,t[20]=s):s=t[20];let c;return t[21]!==o||t[22]!==s?(c=(0,K.jsxs)(`div`,{role:`alert`,className:`space-y-3 rounded-xl border border-edge p-4`,children:[o,s]}),t[21]=o,t[22]=s,t[23]=c):c=t[23],c}function Ye(e){return e.language}function Xe(){let e=(0,H.c)(5),t=E($e);if(E(Qe)){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsx)($,{error:{status:401}}),e[0]=t):t=e[0],t}let n=t??`anonymous`,r,i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r={provider:Ze},i=(0,K.jsx)(et,{}),e[1]=r,e[2]=i):(r=e[1],i=e[2]);let a;return e[3]===n?a=e[4]:(a=(0,K.jsx)(ee,{value:r,children:i},n),e[3]=n,e[4]=a),a}function Ze(){return new Map}function Qe(e){return e.tokenExpired}function $e(e){return e.conversationId}function et(){let e=(0,H.c)(16);Fe();let{activationId:t,templateKey:n}=c(),r=s(`/scenes/inbox`),i=D(rt),l=i===`zh`,u;e[0]===i?u=e[1]:(u=w(i),e[0]=i,e[1]=u);let f=u.recurringWork,[p,m]=(0,V.useState)(!1),h=(0,V.useRef)(null),g=o(),[_]=a(),v=_.get(`plan`),y=t&&g.state?.fromSceneInbox===!0?`/scenes/inbox${typeof g.state.inboxSearch==`string`?g.state.inboxSearch:``}`:void 0,b=B(nt),S=B(tt),C,T;e[2]!==S||e[3]!==b||e[4]!==l?(C=()=>{let e=l?`把需要持续留意的事交给 AI,把时间留给自己。`:`Let AI look after recurring needs, leaving more time for you.`,t=l?`查看全部成果`:`View all results`,n=l?`检查与提醒设置`:`Checks and reminders`;return b({startExtra:null,main:(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:l?`智能关注`:`Monitors`}),(0,K.jsx)(`p`,{className:`truncate text-xs text-fg-muted`,title:e,children:e})]}),end:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(R,{asChild:!0,variant:`secondary`,className:`h-9`,children:(0,K.jsxs)(d,{"data-scene-inbox":!0,to:`/scenes/inbox`,"aria-label":t,title:t,children:[(0,K.jsx)(de,{className:`size-4`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{className:`hidden sm:inline`,children:t})]})}),(0,K.jsx)(R,{ref:h,type:`button`,variant:`ghost`,className:`size-9 p-0`,"aria-label":n,title:n,"aria-haspopup":`dialog`,onClick:()=>m(!0),children:(0,K.jsx)(x,{className:`size-4`,"aria-hidden":`true`})})]})}),()=>S()},T=[S,b,l],e[2]=S,e[3]=b,e[4]=l,e[5]=C,e[6]=T):(C=e[5],T=e[6]),(0,V.useLayoutEffect)(C,T);let E;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,K.jsx)(`main`,{className:`h-full overflow-y-auto bg-surface-panel`,children:(0,K.jsxs)(`div`,{className:`mx-auto w-full max-w-7xl space-y-6 px-4 pb-7 pt-3 sm:px-6 lg:px-8 lg:pb-9 lg:pt-4`,children:[(0,K.jsx)(ze,{}),(0,K.jsx)(at,{})]})}),e[7]=E):E=e[7];let O=(v||t||n||r)&&(0,K.jsx)(it,{titleText:v?f.dialogTitle:r?_.has(`digest`)?l?`摘要中的成果`:`Results in this digest`:l?`关注成果`:`Monitor results`:t?l?`关注详情`:`Monitor details`:l?`了解并开启`:`Explore and start`,closeLabel:v?f.closeDialog:r?l?`关闭关注成果`:`Close monitor results`:t?l?`关闭关注详情`:`Close monitor details`:l?`关闭关注设置`:`Close monitor setup`,backTo:y,backLabel:l?`返回成果`:`Back to results`,restoreSelector:v?`[data-plan-id="${CSS.escape(v)}"]`:r?`[data-scene-inbox]`:t?`[data-scene-id="${CSS.escape(t)}"]`:`[data-scene-template="${CSS.escape(n)}"]`,children:v?(0,K.jsx)(We,{noteId:v,projectId:_.get(`projectId`)??void 0}):r?(0,K.jsx)(ct,{}):t?(0,K.jsx)(ft,{id:t}):(0,K.jsx)(ut,{templateKey:n})},v??t??n??`inbox`),k;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>h.current?.focus(),e[8]=k):k=e[8];let A;e[9]!==p||e[10]!==l?(A=(0,K.jsx)(ve,{zh:l,open:p,onOpenChange:m,onCloseAutoFocus:k}),e[9]=p,e[10]=l,e[11]=A):A=e[11];let j;return e[12]!==E||e[13]!==O||e[14]!==A?(j=(0,K.jsxs)(K.Fragment,{children:[E,O,A]}),e[12]=E,e[13]=O,e[14]=A,e[15]=j):j=e[15],j}function tt(e){return e.clearPageHeader}function nt(e){return e.setPageHeader}function rt(e){return e.language}function it(e){let t=(0,H.c)(29),{titleText:n,closeLabel:r,restoreSelector:i,backTo:a,backLabel:o,children:s}=e,c=u(),l=(0,V.useRef)(null),f;t[0]===c?f=t[1]:(f=()=>c(`/scenes`,{replace:!0}),t[0]=c,t[1]=f);let p=f,m;t[2]===p?m=t[3]:(m=e=>{e||p()},t[2]=p,t[3]=m);let h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,K.jsx)(k,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),t[4]=h):h=t[4];let g;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>{e.preventDefault(),l.current?.focus()},t[5]=g):g=t[5];let _;t[6]===i?_=t[7]:(_=e=>{e.preventDefault(),document.querySelector(i)?.focus()},t[6]=i,t[7]=_);let v;t[8]!==o||t[9]!==a?(v=a&&(0,K.jsx)(R,{asChild:!0,variant:`ghost`,className:`size-9 shrink-0 p-0`,children:(0,K.jsx)(d,{to:a,replace:!0,"aria-label":o,title:o,children:(0,K.jsx)(ae,{size:18,"aria-hidden":`true`})})}),t[8]=o,t[9]=a,t[10]=v):v=t[10];let y;t[11]===n?y=t[12]:(y=(0,K.jsx)(P,{ref:l,tabIndex:-1,className:`min-w-0 flex-1 text-base font-semibold text-fg outline-none`,children:n}),t[11]=n,t[12]=y);let b;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,K.jsx)(C,{size:18,"aria-hidden":`true`}),t[13]=b):b=t[13];let x;t[14]===r?x=t[15]:(x=(0,K.jsx)(j,{asChild:!0,children:(0,K.jsx)(R,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":r,title:r,children:b})}),t[14]=r,t[15]=x);let S;t[16]!==v||t[17]!==y||t[18]!==x?(S=(0,K.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-3 border-b border-edge px-4 py-3 sm:px-6`,children:[v,y,x]}),t[16]=v,t[17]=y,t[18]=x,t[19]=S):S=t[19];let w;t[20]===s?w=t[21]:(w=(0,K.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-4 sm:p-6`,children:(0,K.jsx)(`div`,{className:`space-y-6`,children:s})}),t[20]=s,t[21]=w);let T;t[22]!==S||t[23]!==w||t[24]!==_?(T=(0,K.jsxs)(M,{children:[h,(0,K.jsxs)(N,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(52rem,calc(100dvh-2rem))] w-[min(52rem,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`,"aria-describedby":void 0,onOpenAutoFocus:g,onCloseAutoFocus:_,children:[S,w]})]}),t[22]=S,t[23]=w,t[24]=_,t[25]=T):T=t[25];let E;return t[26]!==T||t[27]!==m?(E=(0,K.jsx)(F,{open:!0,onOpenChange:m,children:T}),t[26]=T,t[27]=m,t[28]=E):E=t[28],E}function at(){let e=(0,H.c)(48),{activationId:t}=c(),n=D(ot)===`zh`,[r,i]=a(),o;e[0]===r?o=e[1]:(o=r.get(`after`)??``,e[0]=r,e[1]=o);let s=o,l=L(`/templates`,U),u=L(`/activations?limit=20&afterId=${encodeURIComponent(s)}`,U),f=u.mutate,p,m;if(e[2]!==t||e[3]!==f?(p=()=>{t||f()},m=[t,f],e[2]=t,e[3]=f,e[4]=p,e[5]=m):(p=e[4],m=e[5]),(0,V.useEffect)(p,m),l.error||u.error){let t=l.error??u.error,n;e[6]!==u||e[7]!==l?(n=()=>{l.mutate(),u.mutate()},e[6]=u,e[7]=l,e[8]=n):n=e[8];let r;return e[9]!==t||e[10]!==n?(r=(0,K.jsx)($,{error:t,retry:n}),e[9]=t,e[10]=n,e[11]=r):r=e[11],r}if(!l.data||!u.data){let t;return e[12]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsx)(Q,{}),e[12]=t):t=e[12],t}let h=n?`你想先轻松一点的事`:`Where could you use a little help?`,g;e[13]===h?g=e[14]:(g=(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:h}),e[13]=h,e[14]=g);let _;if(e[15]!==l.data.templates||e[16]!==n){let t;e[18]===n?t=e[19]:(t=e=>(0,K.jsxs)(`article`,{className:`${Z} space-y-3`,children:[(0,K.jsx)(S,{className:`text-fg-muted`,size:20,"aria-hidden":`true`}),(0,K.jsx)(`h3`,{className:`text-balance font-medium text-fg`,children:e.title}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.description}),(0,K.jsx)(R,{asChild:!0,children:(0,K.jsx)(d,{"data-scene-template":e.key,to:`/scenes/new/${encodeURIComponent(e.key)}?version=${encodeURIComponent(e.version)}`,children:n?`了解并开启`:`Explore and start`})})]},`${e.key}:${e.version}`),e[18]=n,e[19]=t),_=l.data.templates.map(t),e[15]=l.data.templates,e[16]=n,e[17]=_}else _=e[17];let v;e[20]===_?v=e[21]:(v=(0,K.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:_}),e[20]=_,e[21]=v);let y;e[22]!==g||e[23]!==v?(y=(0,K.jsxs)(`section`,{className:`space-y-3`,children:[g,v]}),e[22]=g,e[23]=v,e[24]=y):y=e[24];let b=n?`我的关注`:`My monitors`,x;e[25]===b?x=e[26]:(x=(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:b}),e[25]=b,e[26]=x);let C;e[27]!==u.data.activations||e[28]!==n?(C=u.data.activations.length?u.data.activations.map(e=>(0,K.jsxs)(d,{to:`/scenes/${e.id}`,"data-scene-id":e.id,className:`${Z} block space-y-2 transition-colors hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,K.jsx)(`p`,{className:`break-words font-medium text-fg`,children:e.goal}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:Je(e.status===`active`&&e.setupMissing?.length?`needs_setup`:e.status,n)})]},e.id)):(0,K.jsxs)(`div`,{className:`${Z} space-y-2`,children:[(0,K.jsx)(re,{"aria-hidden":`true`,className:`text-fg-muted`}),(0,K.jsx)(`p`,{className:`text-fg`,children:n?`还没有开启智能关注`:`No monitors yet`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n?`从上面选择一件你希望 AI 帮忙照看的事。`:`Choose something above that you would like AI to monitor.`})]}),e[27]=u.data.activations,e[28]=n,e[29]=C):C=e[29];let w;e[30]!==s||e[31]!==i||e[32]!==n?(w=s&&(0,K.jsx)(R,{onClick:()=>i({}),children:n?`返回第一页`:`First page`}),e[30]=s,e[31]=i,e[32]=n,e[33]=w):w=e[33];let T;e[34]!==u.data.nextCursor||e[35]!==i||e[36]!==n?(T=u.data.nextCursor&&(0,K.jsx)(R,{onClick:()=>i({after:u.data.nextCursor}),children:n?`下一页`:`Next page`}),e[34]=u.data.nextCursor,e[35]=i,e[36]=n,e[37]=T):T=e[37];let E;e[38]!==w||e[39]!==T?(E=(0,K.jsxs)(`div`,{className:`flex gap-3`,children:[w,T]}),e[38]=w,e[39]=T,e[40]=E):E=e[40];let O;e[41]!==C||e[42]!==E||e[43]!==x?(O=(0,K.jsxs)(`section`,{className:`space-y-3`,children:[x,C,E]}),e[41]=C,e[42]=E,e[43]=x,e[44]=O):O=e[44];let k;return e[45]!==O||e[46]!==y?(k=(0,K.jsxs)(K.Fragment,{children:[y,O]}),e[45]=O,e[46]=y,e[47]=k):k=e[47],k}function ot(e){return e.language}function st(e){let t=(0,H.c)(20),{zh:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={refreshInterval:15e3,shouldRetryOnError:!1},t[0]=r):r=t[0];let i=L(`/metrics`,U,r),a;t[1]===n?a=t[2]:(a=n?[`有帮助的成果`,`没有帮助的成果`,`带来帮助的关注`]:[`Helpful results`,`Unhelpful results`,`Monitors that helped`],t[1]=n,t[2]=a);let o=a,s,c,l,u;if(t[3]!==o||t[4]!==i||t[5]!==n){let e=i.data?[i.data.usefulOutcomes,i.data.unhelpfulOutcomes,i.data.scenesWithUsefulOutcomes]:[],r=new Intl.NumberFormat(n?`zh-CN`:`en`);s=`${Z} space-y-3`,c=n?`反馈概览`:`Feedback overview`;let a=n?`最近 7 天的反馈`:`Feedback in the last 7 days`;t[10]===a?l=t[11]:(l=(0,K.jsx)(`h2`,{className:`text-balance text-base font-semibold text-fg`,children:a}),t[10]=a,t[11]=l),u=i.error?(0,K.jsxs)(`div`,{role:`alert`,className:`space-y-2`,children:[(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n?`暂时无法加载统计,仍可查看和评价成果。`:`Stats are unavailable. You can still view and rate results.`}),(0,K.jsx)(R,{disabled:i.isValidating,onClick:()=>void i.mutate(),children:n?`重新加载统计`:`Reload stats`})]}):(0,K.jsx)(`dl`,{className:`grid gap-4 sm:grid-cols-3`,"aria-busy":!i.data,children:o.map((t,n)=>(0,K.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,K.jsx)(`dt`,{className:`text-sm text-fg-muted`,children:t}),(0,K.jsx)(`dd`,{className:`text-xl font-semibold tabular-nums text-fg`,children:i.data?r.format(e[n]):(0,K.jsx)(z,{className:`h-7 w-12`})})]},t))}),t[3]=o,t[4]=i,t[5]=n,t[6]=s,t[7]=c,t[8]=l,t[9]=u}else s=t[6],c=t[7],l=t[8],u=t[9];let d=n?`按你这段时间的明确反馈统计,每份成果取最新评价。已读和检查成功不计入,也不代表已采纳或节省时间。`:`Counts your explicit feedback during this period, using the latest rating per result. Reads and successful checks do not count. This does not measure adoption or time saved.`,f;t[12]===d?f=t[13]:(f=(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:d}),t[12]=d,t[13]=f);let p;return t[14]!==s||t[15]!==c||t[16]!==l||t[17]!==u||t[18]!==f?(p=(0,K.jsxs)(`section`,{className:s,"aria-label":c,children:[l,u,f]}),t[14]=s,t[15]=c,t[16]=l,t[17]=u,t[18]=f,t[19]=p):p=t[19],p}function ct(){let e=(0,H.c)(42),t=D(lt)===`zh`,[n,r]=a(),i;e[0]===n?i=e[1]:(i=n.get(`after`)??``,e[0]=n,e[1]=i);let o=i,s;e[2]===n?s=e[3]:(s=n.get(`digest`),e[2]=n,e[3]=s);let c=s,l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l={refreshInterval:15e3},e[4]=l):l=e[4];let u=L(`${c?`/digests/${encodeURIComponent(c)}`:`/outcomes`}?limit=20&afterId=${encodeURIComponent(o)}`,U,l);if(u.error){let t;e[5]===u?t=e[6]:(t=()=>void u.mutate(),e[5]=u,e[6]=t);let n;return e[7]!==u.error||e[8]!==t?(n=(0,K.jsx)($,{error:u.error,retry:t}),e[7]=u.error,e[8]=t,e[9]=n):n=e[9],n}if(!u.data){let t;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsx)(Q,{}),e[10]=t):t=e[10],t}let f=t?`集中查看各项智能关注准备的成果,告诉 AI 哪些对你有帮助。`:`Review results across your monitors and tell AI what helps.`,p;e[11]===f?p=e[12]:(p=(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f}),e[11]=f,e[12]=p);let m;e[13]===t?m=e[14]:(m=(0,K.jsx)(st,{zh:t}),e[13]=t,e[14]=m);let h=t?`成果列表`:`Results list`,g;e[15]!==c||e[16]!==n||e[17]!==u||e[18]!==t?(g=u.data.outcomes.length?u.data.outcomes.map(e=>(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(Se,{item:e,zh:t,onChange:()=>void u.mutate()}),(0,K.jsx)(R,{asChild:!0,variant:`ghost`,children:(0,K.jsx)(d,{state:{fromSceneInbox:!0,inboxSearch:`?${n.toString()}`},to:`/scenes/${encodeURIComponent(e.activationId)}`,children:t?`查看所属关注`:`View monitor`})})]},e.id)):(0,K.jsxs)(`div`,{className:`${Z} space-y-3`,children:[(0,K.jsx)(de,{size:32,"aria-hidden":`true`,className:`text-fg-muted`}),(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:t?`这里还没有成果`:`No results here yet`}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:c?t?`这份摘要中的成果目前不可查看,可能已被撤回。`:`Results in this digest are currently unavailable and may have been withdrawn.`:t?`回到智能关注,提供资料并检查一次;有新成果时会出现在这里。`:`Open a monitor, provide context and run a check. New results will appear here.`})]}),e[15]=c,e[16]=n,e[17]=u,e[18]=t,e[19]=g):g=e[19];let _;e[20]!==h||e[21]!==g?(_=(0,K.jsx)(`section`,{className:`space-y-4`,"aria-label":h,children:g}),e[20]=h,e[21]=g,e[22]=_):_=e[22];let v=t?`成果分页`:`Results pages`,y;e[23]!==o||e[24]!==c||e[25]!==r||e[26]!==t?(y=o&&(0,K.jsx)(R,{onClick:()=>r(c?{digest:c}:{}),children:t?`返回第一页`:`First page`}),e[23]=o,e[24]=c,e[25]=r,e[26]=t,e[27]=y):y=e[27];let b;e[28]!==c||e[29]!==u.data.nextCursor||e[30]!==r||e[31]!==t?(b=u.data.nextCursor&&(0,K.jsx)(R,{onClick:()=>r({...c?{digest:c}:{},after:u.data.nextCursor}),children:t?`下一页`:`Next page`}),e[28]=c,e[29]=u.data.nextCursor,e[30]=r,e[31]=t,e[32]=b):b=e[32];let x;e[33]!==y||e[34]!==b||e[35]!==v?(x=(0,K.jsxs)(`nav`,{className:`flex flex-wrap gap-3`,"aria-label":v,children:[y,b]}),e[33]=y,e[34]=b,e[35]=v,e[36]=x):x=e[36];let S;return e[37]!==x||e[38]!==p||e[39]!==m||e[40]!==_?(S=(0,K.jsxs)(K.Fragment,{children:[p,m,_,x]}),e[37]=x,e[38]=p,e[39]=m,e[40]=_,e[41]=S):S=e[41],S}function lt(e){return e.language}function ut(e){let t=(0,H.c)(10),{templateKey:n}=e,[r]=a(),i;t[0]===r?i=t[1]:(i=r.get(`version`)??`1.0.0`,t[0]=r,t[1]=i);let o=L(`/templates/${encodeURIComponent(n)}/versions/${encodeURIComponent(i)}`,U);if(o.error){let e;t[2]===o?e=t[3]:(e=()=>void o.mutate(),t[2]=o,t[3]=e);let n;return t[4]!==e||t[5]!==o.error?(n=(0,K.jsx)($,{error:o.error,retry:e}),t[4]=e,t[5]=o.error,t[6]=n):n=t[6],n}if(!o.data){let e;return t[7]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(Q,{}),t[7]=e):e=t[7],e}let s=o.data.template,c;return t[8]===s?c=t[9]:(c=s.execution.kind===`task`?(0,K.jsx)(je,{template:s}):(0,K.jsx)(dt,{manifest:s}),t[8]=s,t[9]=c),c}function dt({manifest:e}){let t=D(e=>e.language)===`zh`,n=u(),[r,i]=(0,V.useState)(``),[a,o]=(0,V.useState)(``),[s,c]=(0,V.useState)(``),[l,d]=(0,V.useState)(!1),[f,p]=(0,V.useState)(!1),[m,h]=(0,V.useState)(),[g,_]=(0,V.useState)(!1),v=(0,V.useRef)({content:``,id:``}),y=(0,V.useRef)(``),b=!!(r||s||l)&&!g;(0,V.useEffect)(()=>{g&&n(y.current,{replace:!0})},[g,n]);let x=e.contextProviders.includes(`mail`),S=async t=>{t.preventDefault(),p(!0),h(void 0);let n={templateKey:e.key,templateVersion:e.version,goal:r,scope:x?{kind:`objects`,ids:[s.trim()]}:{kind:`personal`},permissions:{accountIds:x?[a.trim()]:[],contextProviders:e.contextProviders,effectHandlers:[]}},i=JSON.stringify(n);v.current.content!==i&&(v.current={content:i,id:crypto.randomUUID()});try{y.current=`/scenes/${(await W(`/activations`,`POST`,n,v.current.id)).activation.id}`,_(!0)}catch(e){h(e)}finally{p(!1)}};return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(ge,{dirty:b,zh:t}),(0,K.jsxs)(`header`,{children:[(0,K.jsx)(`h1`,{className:`text-wrap text-xl font-semibold text-fg`,children:e.title}),(0,K.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:e.description})]}),(0,K.jsx)(`form`,{onSubmit:e=>void S(e),className:`${Z} space-y-5`,children:(0,K.jsxs)(`fieldset`,{disabled:f||g,className:`space-y-5`,children:[(0,K.jsxs)(`label`,{className:qe,children:[t?`希望它持续帮你做好什么?`:`What should it keep helping you with?`,(0,K.jsx)(`textarea`,{required:!0,maxLength:4e3,rows:3,value:r,onChange:e=>i(e.target.value),className:Ke,autoComplete:`off`})]}),x&&(0,K.jsx)(Ee,{value:s,disabled:f||g,zh:t,onChange:e=>{o(e.accountId),c(e.id),d(!1)}}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`只准备草稿和建议,不发送消息、不执行外部写操作。下一步需补齐资料和检查时间;完成后才会自动检查。`:`Prepares drafts and suggestions only. No messages or external writes. Next, complete the context and timing settings for automatic checks.`}),(0,K.jsxs)(`label`,{className:`flex min-h-11 items-center gap-3 text-sm text-fg`,children:[(0,K.jsx)(`input`,{required:!0,type:`checkbox`,className:`ui-checkbox`,checked:l,onChange:e=>d(e.target.checked)}),t?`确认以上范围,允许读取我提供的资料。`:`I confirm this scope and allow reading the information I provide.`]}),!!m&&(0,K.jsx)($,{error:m}),(0,K.jsx)(R,{type:`submit`,variant:`primary`,disabled:f||g||x&&!s,children:f?t?`正在开启…`:`Starting…`:t?`继续设置`:`Continue setup`})]})})]})}function ft(e){let t=(0,H.c)(7),{id:n}=e,r=L(`/activations/${encodeURIComponent(n)}`,U);if(r.error){let e;return t[0]===r.error?e=t[1]:(e=(0,K.jsx)($,{error:r.error}),t[0]=r.error,t[1]=e),e}if(!r.data){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(Q,{}),t[2]=e):e=t[2],e}let i;return t[3]!==r.data.details||t[4]!==r.data.template.execution.kind||t[5]!==n?(i=r.data.template.execution.kind===`task`&&r.data.details?(0,K.jsx)(Me,{id:n,initial:r.data.details}):(0,K.jsx)(pt,{id:n}),t[3]=r.data.details,t[4]=r.data.template.execution.kind,t[5]=n,t[6]=i):i=t[6],i}function pt({id:e}){let t=D(e=>e.language)===`zh`,[n]=a(),r=n.get(`result`),i=`/activations/${encodeURIComponent(e)}`,[o,s]=(0,V.useState)(``),[c,l]=(0,V.useState)(``),u=L(i,U,{refreshInterval:15e3}),d=L(`${i}/runs?limit=20&afterId=${encodeURIComponent(o)}`,U,{refreshInterval:5e3}),f=L(`/outcomes?limit=20&activationId=${encodeURIComponent(e)}&afterId=${encodeURIComponent(c)}`,U,{refreshInterval:5e3}),[p,m]=(0,V.useState)(!1),[h,_]=(0,V.useState)(),[v,y]=(0,V.useState)(!1),b=(0,V.useRef)(null),[x,S]=(0,V.useState)(!1),[C,w]=(0,V.useState)(!1),[T,E]=(0,V.useState)(!1),O=x||C||T,k=async e=>{if(u.data){m(!0),_(void 0),y(!1);try{e?(b.current??=crypto.randomUUID(),await W(`${i}/checks`,`POST`,void 0,b.current),b.current=null,y(!0),s(``),l(``)):await W(i,`PATCH`,{expectedRevision:u.data.activation.revision,status:u.data.activation.status===`active`?`paused`:`active`}),await Promise.all([u.mutate(),d.mutate(),f.mutate()])}catch(e){_(e)}finally{m(!1)}}};if(u.error)return(0,K.jsx)($,{error:u.error,retry:()=>void u.mutate()});if(!u.data)return(0,K.jsx)(Q,{});let A=u.data.activation;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(ge,{dirty:O,zh:t}),(0,K.jsxs)(`header`,{className:`space-y-3`,children:[(0,K.jsx)(`h1`,{className:`break-words text-wrap text-xl font-semibold text-fg`,children:A.goal}),(0,K.jsx)(pe,{resource:{kind:`scene`,id:A.id,revision:String(A.revision)},disabled:O||p}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:Je(A.status===`active`&&A.setupMissing?.length?`needs_setup`:A.status,t)}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`只准备建议和成果,不自动发送或写入外部系统。`:`Prepares suggestions and results. Does not send or write to external systems.`}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,K.jsx)(R,{variant:`primary`,disabled:p||A.status!==`active`,onClick:()=>void k(!0),children:p?t?`处理中…`:`Working…`:t?`现在检查`:`Check now`}),[`active`,`paused`,`needs_setup`].includes(A.status)&&(0,K.jsxs)(R,{disabled:p,onClick:()=>void k(!1),children:[(0,K.jsx)(g,{size:16,"aria-hidden":`true`}),A.status===`active`?t?`暂停关注`:`Pause monitor`:t?`检查设置并恢复`:`Review setup and resume`]})]}),[`active`,`paused`].includes(A.status)&&(0,K.jsx)(R,{disabled:p,variant:`ghost`,onClick:()=>{m(!0),W(i,`PATCH`,{expectedRevision:A.revision,status:`completed`}).then(()=>Promise.all([u.mutate(),f.mutate(),d.mutate()])).catch(_).finally(()=>m(!1))},children:t?`结束关注(保留成果)`:`End monitor (keep results)`}),v&&(0,K.jsx)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:t?`检查已排队;没有新变化时不会生成新卡片。`:`Check queued. No new card is created when nothing has changed.`})]}),h&&(0,K.jsx)($,{error:h,retry:()=>{u.mutate(),_(void 0)}}),A.status===`active`&&!!A.setupMissing?.length&&(0,K.jsxs)(`section`,{role:`status`,className:Z,children:[(0,K.jsx)(`h2`,{className:`font-medium text-fg`,children:t?`完成以下设置后,这项关注才会自动检查`:`Complete setup for automatic checks`}),(0,K.jsx)(`ul`,{className:`mt-2 list-inside list-disc text-sm text-fg-muted`,children:A.setupMissing.map(e=>(0,K.jsx)(`li`,{children:{notes:t?`填写安排和约束`:`Provide arrangements and constraints`,schedule:t?`设置周期检查时间`:`Set a recurring review time`,deadline:t?`设置邮件跟进截止时间`:`Set a mail follow-up deadline`}[e]},e))})]}),(0,K.jsx)(me,{activationId:e,zh:t}),[`active`,`paused`,`needs_setup`].includes(A.status)&&(0,K.jsx)(mt,{activation:A,zh:t,onDirty:E,onSaved:()=>{u.mutate(),f.mutate(),d.mutate()}},A.id),A.permissions.contextProviders.includes(`user_notes`)&&(0,K.jsx)(gt,{path:i,zh:t,onDirty:S,onSaved:()=>{u.mutate(),f.mutate(),d.mutate()}}),A.permissions.contextProviders.includes(`mail`)?(0,K.jsx)(De,{activation:A,zh:t,onDirty:w,onChanged:()=>{u.mutate(),f.mutate(),d.mutate()}}):(0,K.jsx)(we,{activation:A,zh:t,onDirty:w,onChanged:()=>void u.mutate()}),r&&(0,K.jsx)(ht,{activationId:e,presentationId:r,zh:t}),(0,K.jsxs)(`section`,{className:`space-y-3`,children:[(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:t?`最近成果`:`Recent results`}),f.error?(0,K.jsx)($,{error:f.error,retry:()=>void f.mutate()}):f.data?f.data.outcomes.filter(t=>t.activationId===e).length===0?(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`还没有新成果。提供资料后,可以先检查一次。`:`No new results yet. Provide context and try a check.`}):f.data.outcomes.map(e=>(0,K.jsx)(Se,{item:e,zh:t,onChange:()=>void f.mutate()},e.id)):(0,K.jsx)(Q,{}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[c&&(0,K.jsx)(R,{onClick:()=>l(``),children:t?`最近成果`:`Latest results`}),f.data?.nextCursor&&(0,K.jsx)(R,{onClick:()=>l(f.data.nextCursor),children:t?`更早成果`:`Earlier results`})]})]}),(0,K.jsxs)(`section`,{className:`space-y-3`,children:[(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:t?`检查记录`:`Check history`}),d.error?(0,K.jsx)($,{error:d.error,retry:()=>void d.mutate()}):d.data?d.data.runs.length===0?(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`尚未执行检查。`:`No checks yet.`}):(0,K.jsx)(`ul`,{className:`divide-y divide-edge`,children:d.data.runs.map(e=>(0,K.jsxs)(`li`,{className:`flex flex-wrap justify-between gap-2 py-3 text-sm`,children:[(0,K.jsxs)(`span`,{className:`text-fg`,children:[Je(e.status,t),e.reason===`empty_input`?t?`:请先提供资料`:`: provide context first`:``]}),(0,K.jsx)(`time`,{className:`text-fg-muted`,dateTime:new Date(e.createdAt).toISOString(),children:new Intl.DateTimeFormat(t?`zh-CN`:`en`,{dateStyle:`medium`,timeStyle:`short`}).format(e.createdAt)})]},e.id))}):(0,K.jsx)(Q,{}),(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[o&&(0,K.jsx)(R,{onClick:()=>s(``),children:t?`最近检查`:`Latest checks`}),d.data?.nextCursor&&(0,K.jsx)(R,{onClick:()=>s(d.data.nextCursor),children:t?`更早检查`:`Earlier checks`})]})]})]})}function mt(e){let t=(0,H.c)(45),{activation:n,zh:r,onDirty:i,onSaved:a}=e,[o,s]=(0,V.useState)(null),c=o?.goal??n.goal,[l,u]=(0,V.useState)(!1),[d,f]=(0,V.useState)(),p,m;t[0]!==n.goal||t[1]!==c||t[2]!==i?(p=()=>(i(c!==n.goal),()=>i(!1)),m=[c,n.goal,i],t[0]=n.goal,t[1]=c,t[2]=i,t[3]=p,t[4]=m):(p=t[3],m=t[4]),(0,V.useEffect)(p,m);let h=r?`修改目标`:`Edit goal`,g;t[5]===h?g=t[6]:(g=(0,K.jsx)(`summary`,{className:`cursor-pointer`,children:h}),t[5]=h,t[6]=g);let _=r?`保存后暂停检查并撤回旧建议。确认设置后恢复;邮件跟进时间需另行恢复。`:`Saving pauses checks and withdraws previous suggestions. Review settings before resuming, including mail deadlines.`,v;t[7]===_?v=t[8]:(v=(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:_}),t[7]=_,t[8]=v);let y=r?`新目标`:`New goal`,b;t[9]===n?b=t[10]:(b=e=>s(t=>({base:t?.base??n,goal:e.target.value})),t[9]=n,t[10]=b);let x;t[11]!==l||t[12]!==c||t[13]!==b?(x=(0,K.jsx)(`textarea`,{disabled:l,value:c,maxLength:4e3,onChange:b,className:Ke}),t[11]=l,t[12]=c,t[13]=b,t[14]=x):x=t[14];let S;t[15]!==y||t[16]!==x?(S=(0,K.jsxs)(`label`,{className:qe,children:[y,x]}),t[15]=y,t[16]=x,t[17]=S):S=t[17];let C;t[18]!==n.goal||t[19]!==l||t[20]!==c?(C=l||!c.trim()||c===n.goal,t[18]=n.goal,t[19]=l,t[20]=c,t[21]=C):C=t[21];let w;t[22]!==n||t[23]!==o?.base||t[24]!==c||t[25]!==a?(w=()=>{u(!0),f(void 0);let e=o?.base??n;W(`/activations/${n.id}`,`PATCH`,{expectedRevision:e.revision,goal:c,scope:e.scope,permissions:e.permissions}).then(()=>{s(null),a()}).catch(f).finally(()=>u(!1))},t[22]=n,t[23]=o?.base,t[24]=c,t[25]=a,t[26]=w):w=t[26];let T=r?`保存目标`:`Save goal`,E;t[27]!==C||t[28]!==w||t[29]!==T?(E=(0,K.jsx)(R,{disabled:C,onClick:w,children:T}),t[27]=C,t[28]=w,t[29]=T,t[30]=E):E=t[30];let D;t[31]!==l||t[32]!==o||t[33]!==r?(D=o&&(0,K.jsx)(R,{type:`button`,variant:`ghost`,disabled:l,onClick:()=>{s(null),f(void 0)},children:r?`放弃修改`:`Discard edits`}),t[31]=l,t[32]=o,t[33]=r,t[34]=D):D=t[34];let O;t[35]!==d||t[36]!==r?(O=d!=null&&(0,K.jsx)(`p`,{role:`alert`,className:`text-danger`,children:G(d,r)}),t[35]=d,t[36]=r,t[37]=O):O=t[37];let k;return t[38]!==S||t[39]!==E||t[40]!==D||t[41]!==O||t[42]!==g||t[43]!==v?(k=(0,K.jsxs)(`details`,{className:`${Z} space-y-3`,children:[g,v,S,E,D,O]}),t[38]=S,t[39]=E,t[40]=D,t[41]=O,t[42]=g,t[43]=v,t[44]=k):k=t[44],k}function ht(e){let t=(0,H.c)(15),{activationId:n,presentationId:r,zh:i}=e,a=L(`/presentations/${encodeURIComponent(r)}`,U);if(a.error){let e;return t[0]===a.error?e=t[1]:(e=(0,K.jsx)($,{error:a.error}),t[0]=a.error,t[1]=e),e}if(!a.data){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(Q,{}),t[2]=e):e=t[2],e}if(a.data.outcome.activationId!==n){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)($,{error:{status:404}}),t[3]=e):e=t[3],e}let o=i?`通知中的成果`:`Result from notification`,s;t[4]===o?s=t[5]:(s=(0,K.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:o}),t[4]=o,t[5]=s);let c;t[6]===a?c=t[7]:(c=()=>void a.mutate(),t[6]=a,t[7]=c);let l;t[8]!==a.data.outcome||t[9]!==c||t[10]!==i?(l=(0,K.jsx)(Se,{item:a.data.outcome,zh:i,onChange:c},a.data.outcome.id),t[8]=a.data.outcome,t[9]=c,t[10]=i,t[11]=l):l=t[11];let u;return t[12]!==s||t[13]!==l?(u=(0,K.jsxs)(`section`,{className:`space-y-3`,children:[s,l]}),t[12]=s,t[13]=l,t[14]=u):u=t[14],u}function gt({path:e,zh:t,onSaved:n,onDirty:r}){let i=L(`${e}/notes`,U,{revalidateOnFocus:!1}),[a,o]=(0,V.useState)(null),[s,c]=(0,V.useState)(!1),[l,u]=(0,V.useState)(),d=a!==null&&a.content!==i.data?.notes.content;if((0,V.useEffect)(()=>(r(d),()=>r(!1)),[d,r]),i.error)return(0,K.jsx)($,{error:i.error,retry:()=>void i.mutate()});if(!i.data)return(0,K.jsx)(Q,{});let f=async t=>{t.preventDefault(),c(!0),u(void 0);try{let{content:t,revision:r,validUntil:s}=a??i.data.notes,c=await W(`${e}/notes`,`PATCH`,{expectedRevision:r,content:t,validUntil:s});await i.mutate({notes:{content:t.trim(),revision:c.revision,validUntil:s}},{revalidate:!1}),o(null),n()}catch(e){u(e)}finally{c(!1)}};return(0,K.jsxs)(`form`,{onSubmit:e=>void f(e),className:`${Z} space-y-3`,children:[(0,K.jsxs)(`label`,{className:qe,children:[t?`你愿意提供的安排和约束`:`Arrangements and constraints you choose to share`,(0,K.jsx)(`textarea`,{disabled:s,rows:5,maxLength:32e3,className:Ke,value:a?.content??i.data.notes.content,onChange:e=>o(t=>({...t??i.data.notes,content:e.target.value})),autoComplete:`off`})]}),(0,K.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t?`只用于这项关注,不会因此访问其他家庭成员的数据。修改资料会撤回旧计划。`:`Used only by this monitor. Does not grant access to other family members. Editing withdraws the previous plan.`}),!!l&&(0,K.jsx)($,{error:l}),(0,K.jsx)(R,{type:`submit`,disabled:s||!d,children:s?t?`正在保存…`:`Saving…`:t?`保存资料`:`Save context`}),d&&(0,K.jsx)(R,{type:`button`,disabled:s,variant:`ghost`,onClick:()=>{o(null),u(void 0),i.mutate()},children:t?`放弃修改并重新加载`:`Discard edits and reload`})]})}export{Xe as ScenesPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime-aKtaBQYM.js";import{a as e,n as t,t as n}from"./vendor-react-BOUWij0V.js";import{n as r,r as i}from"./popover-select-DHC7J4lG.js";import{t as a}from"./secret-input-BxWHx6J6.js";import{t as o}from"./cn-0WouolD0.js";import{ca as s}from"./index-CNH8vwcY.js";import{t as c}from"./number-input-DDeqHK-G.js";var l=t();e();var u=n();function d(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function f(e){let t=e[`x-order`];return typeof t==`number`&&!Number.isNaN(t)?t:999}function p(e){let t=e[`x-group`];return typeof t==`string`&&t.length>0?t:``}function m(e){return e[`x-hidden`]===!0}function h(e){let t=e.properties;if(!d(t))return[];let n=[];for(let[e,r]of Object.entries(t))d(r)&&(m(r)||n.push({key:e,sub:r,order:f(r),group:p(r),hidden:!1}));return n.sort((e,t)=>e.order-t.order||e.key.localeCompare(t.key)),n}function g(e){let t=new Map;for(let n of e){let e=n.group;t.has(e)||t.set(e,[]),t.get(e).push(n)}return t}function _(e){let t=(0,l.c)(38),{name:n,s:i,value:o,onChange:c,disabled:d}=e,f=typeof i.description==`string`?i.description:void 0,p=(typeof i[`x-placeholder`]==`string`?i[`x-placeholder`]:null)||f,m=i.format;if(Array.isArray(i.enum)&&i.enum.every(y)){let e;t[0]===f?e=t[1]:(e=f?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:f}):null,t[0]=f,t[1]=e);let a;t[2]===c?a=t[3]:(a=e=>c(e.target.value),t[2]=c,t[3]=a);let s;t[4]===i.enum?s=t[5]:(s=i.enum.map(v),t[4]=i.enum,t[5]=s);let l;t[6]!==d||t[7]!==n||t[8]!==a||t[9]!==s||t[10]!==o?(l=(0,u.jsx)(r,{name:n,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2 text-sm text-fg`,value:o,disabled:d,onChange:a,children:s}),t[6]=d,t[7]=n,t[8]=a,t[9]=s,t[10]=o,t[11]=l):l=t[11];let p;return t[12]!==e||t[13]!==l?(p=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e,l]}),t[12]=e,t[13]=l,t[14]=p):p=t[14],p}if(m===`password`){let e;t[15]===f?e=t[16]:(e=f?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:f}):null,t[15]=f,t[16]=e);let n;t[17]!==d||t[18]!==c||t[19]!==p||t[20]!==o?(n=(0,u.jsx)(a,{value:o,onChange:c,placeholder:p,labels:s,disabled:d,inputClassName:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg placeholder:text-fg-muted/70`}),t[17]=d,t[18]=c,t[19]=p,t[20]=o,t[21]=n):n=t[21];let r;return t[22]!==e||t[23]!==n?(r=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e,n]}),t[22]=e,t[23]=n,t[24]=r):r=t[24],r}let h;t[25]===f?h=t[26]:(h=f?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:f}):null,t[25]=f,t[26]=h);let g;t[27]===c?g=t[28]:(g=e=>c(e.target.value),t[27]=c,t[28]=g);let _;t[29]!==d||t[30]!==n||t[31]!==p||t[32]!==g||t[33]!==o?(_=(0,u.jsx)(`input`,{name:n,type:`text`,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg placeholder:text-fg-muted/70`,value:o,placeholder:p,disabled:d,onChange:g}),t[29]=d,t[30]=n,t[31]=p,t[32]=g,t[33]=o,t[34]=_):_=t[34];let b;return t[35]!==h||t[36]!==_?(b=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[h,_]}),t[35]=h,t[36]=_,t[37]=b):b=t[37],b}function v(e){return(0,u.jsx)(i,{value:e,children:e},e)}function y(e){return typeof e==`string`}function b(e){let t=(0,l.c)(11),{s:n,value:r,onChange:i,disabled:a}=e,o=typeof n.description==`string`?n.description:void 0,s;t[0]===o?s=t[1]:(s=o?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:o}):null,t[0]=o,t[1]=s);let d=Number.isFinite(r)?r:0,f;t[2]===i?f=t[3]:(f=e=>i(Number(e.target.value)),t[2]=i,t[3]=f);let p;t[4]!==a||t[5]!==d||t[6]!==f?(p=(0,u.jsx)(c,{type:`number`,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg`,value:d,disabled:a,onChange:f}),t[4]=a,t[5]=d,t[6]=f,t[7]=p):p=t[7];let m;return t[8]!==s||t[9]!==p?(m=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[s,p]}),t[8]=s,t[9]=p,t[10]=m):m=t[10],m}function x(e){let t=(0,l.c)(11),{s:n,value:r,onChange:i,disabled:a,labels:o}=e,s=(typeof n.description==`string`?n.description:void 0)??(typeof n.title==`string`&&n.title.length>0?n.title:o?.defaultBooleanLabel??`Enable`),c;t[0]===i?c=t[1]:(c=e=>i(e.target.checked),t[0]=i,t[1]=c);let d;t[2]!==a||t[3]!==c||t[4]!==r?(d=(0,u.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border border-edge`,checked:r,disabled:a,onChange:c}),t[2]=a,t[3]=c,t[4]=r,t[5]=d):d=t[5];let f;t[6]===s?f=t[7]:(f=(0,u.jsx)(`span`,{children:s}),t[6]=s,t[7]=f);let p;return t[8]!==d||t[9]!==f?(p=(0,u.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[d,f]}),t[8]=d,t[9]=f,t[10]=p):p=t[10],p}function S(e){let t=(0,l.c)(27),{s:n,value:r,onChange:i,disabled:a,labels:o}=e,s=typeof n.description==`string`?n.description:void 0,c=n.items,f=d(c)?c.type:void 0;if(!(f===`string`||Array.isArray(f)&&f.includes(`string`))){let e=o?.unsupportedArrayType??`Unsupported array type`,n;return t[0]===e?n=t[1]:(n=(0,u.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e}),t[0]=e,t[1]=n),n}let p,m,h,g,_;if(t[2]!==s||t[3]!==a||t[4]!==i||t[5]!==r){let e=r.map(String);p=t=>{let n=t.trim();!n||e.includes(n)||i([...e,n])},g=`flex flex-col gap-1.5`,t[11]===s?_=t[12]:(_=s?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:s}):null,t[11]=s,t[12]=_),m=`flex flex-wrap gap-1`,h=e.map(t=>(0,u.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-edge bg-surface-panel px-2 py-0.5 text-sm`,children:[t,(0,u.jsx)(`button`,{type:`button`,className:`text-fg-muted hover:text-fg`,disabled:a,onClick:()=>i(e.filter(e=>e!==t)),children:`×`})]},t)),t[2]=s,t[3]=a,t[4]=i,t[5]=r,t[6]=p,t[7]=m,t[8]=h,t[9]=g,t[10]=_}else p=t[6],m=t[7],h=t[8],g=t[9],_=t[10];let v;t[13]!==m||t[14]!==h?(v=(0,u.jsx)(`div`,{className:m,children:h}),t[13]=m,t[14]=h,t[15]=v):v=t[15];let y=o?.arrayAddPlaceholder??`Add and press Enter`,b;t[16]===p?b=t[17]:(b=e=>{e.key===`Enter`&&(e.preventDefault(),p(e.target.value),e.target.value=``)},t[16]=p,t[17]=b);let x;t[18]!==a||t[19]!==y||t[20]!==b?(x=(0,u.jsx)(`input`,{className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm`,disabled:a,placeholder:y,onKeyDown:b}),t[18]=a,t[19]=y,t[20]=b,t[21]=x):x=t[21];let S;return t[22]!==g||t[23]!==_||t[24]!==v||t[25]!==x?(S=(0,u.jsxs)(`div`,{className:g,children:[_,v,x]}),t[22]=g,t[23]=_,t[24]=v,t[25]=x,t[26]=S):S=t[26],S}function C(e){let t=(0,l.c)(66),{k:n,sub:r,value:i,onValue:a,disabled:o,labels:s}=e,c=r.type,f=(typeof r.title==`string`&&r.title.length>0?r.title:null)??n;if(c===`boolean`){let e;t[0]===f?e=t[1]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[0]=f,t[1]=e);let n=i===!0,c;t[2]===a?c=t[3]:(c=e=>a(e),t[2]=a,t[3]=c);let l;t[4]!==o||t[5]!==s||t[6]!==r||t[7]!==n||t[8]!==c?(l=(0,u.jsx)(x,{s:r,value:n,disabled:o,onChange:c,labels:s}),t[4]=o,t[5]=s,t[6]=r,t[7]=n,t[8]=c,t[9]=l):l=t[9];let d;return t[10]!==e||t[11]!==l?(d=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,l]}),t[10]=e,t[11]=l,t[12]=d):d=t[12],d}if(c===`number`||c===`integer`){let e;t[13]===f?e=t[14]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[13]=f,t[14]=e);let n=typeof i==`number`?i:0,s;t[15]!==o||t[16]!==a||t[17]!==r||t[18]!==n?(s=(0,u.jsx)(b,{s:r,value:n,disabled:o,onChange:a}),t[15]=o,t[16]=a,t[17]=r,t[18]=n,t[19]=s):s=t[19];let c;return t[20]!==e||t[21]!==s?(c=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,s]}),t[20]=e,t[21]=s,t[22]=c):c=t[22],c}if(c===`string`){let e;t[23]===f?e=t[24]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[23]=f,t[24]=e);let s=typeof i==`string`?i:``,c;t[25]!==o||t[26]!==n||t[27]!==a||t[28]!==r||t[29]!==s?(c=(0,u.jsx)(_,{name:n,s:r,value:s,disabled:o,onChange:a}),t[25]=o,t[26]=n,t[27]=a,t[28]=r,t[29]=s,t[30]=c):c=t[30];let l;return t[31]!==e||t[32]!==c?(l=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,c]}),t[31]=e,t[32]=c,t[33]=l):l=t[33],l}if(c===`array`){let e=r.items,n=d(e)?e.type:void 0;if(n===`string`||Array.isArray(n)&&n.includes(`string`)){let e;t[34]===f?e=t[35]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[34]=f,t[35]=e);let n;t[36]===i?n=t[37]:(n=Array.isArray(i)&&i.every(w)?i.map(String):[],t[36]=i,t[37]=n);let c;t[38]!==o||t[39]!==s||t[40]!==a||t[41]!==r||t[42]!==n?(c=(0,u.jsx)(S,{s:r,value:n,disabled:o,onChange:a,labels:s}),t[38]=o,t[39]=s,t[40]=a,t[41]=r,t[42]=n,t[43]=c):c=t[43];let l;return t[44]!==e||t[45]!==c?(l=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,c]}),t[44]=e,t[45]=c,t[46]=l):l=t[46],l}}if(c===`object`){let e;t[47]===i?e=t[48]:(e=d(i)?i:{},t[47]=i,t[48]=e);let n=e,c;t[49]===f?c=t[50]:(c=(0,u.jsx)(`summary`,{className:`cursor-pointer select-none px-3 py-2 text-sm font-medium text-fg group-open:rounded-b-none`,children:f}),t[49]=f,t[50]=c);let l;t[51]!==o||t[52]!==s||t[53]!==n||t[54]!==a||t[55]!==r?(l=(0,u.jsx)(`div`,{className:`border-t border-edge p-3`,children:(0,u.jsx)(T,{schema:r,values:n,onChange:a,disabled:o,labels:s})}),t[51]=o,t[52]=s,t[53]=n,t[54]=a,t[55]=r,t[56]=l):l=t[56];let p;return t[57]!==c||t[58]!==l?(p=(0,u.jsxs)(`details`,{className:`group rounded-lg border border-edge bg-surface-panel/40 open:bg-surface-base`,open:!0,children:[c,l]}),t[57]=c,t[58]=l,t[59]=p):p=t[59],p}let p;t[60]!==s||t[61]!==c||t[62]!==f?(p=s?.unsupportedFieldType?.(f,typeof c==`string`?c:void 0)??`${f}: unsupported field type${typeof c==`string`?` (${c})`:``}`,t[60]=s,t[61]=c,t[62]=f,t[63]=p):p=t[63];let m;return t[64]===p?m=t[65]:(m=(0,u.jsx)(`p`,{className:`text-xs text-fg-muted`,children:p}),t[64]=p,t[65]=m),m}function w(e){return typeof e==`string`||typeof e==`number`}function T(e){let t=(0,l.c)(28),{schema:n,values:r,onChange:i,disabled:a,className:s,labels:c}=e,f=a===void 0?!1:a,p;bb0:{if(n.type!==`object`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0],p=e;break bb0}let e;t[1]===n?e=t[2]:(e=h(n),t[1]=n,t[2]=e),p=e}let m=p,_;bb1:{if(m.length===0){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=new Map,t[3]=e):e=t[3],_=e;break bb1}let e;t[4]===m?e=t[5]:(e=g(m),t[4]=m,t[5]=e),_=e}let v=_,y;t[6]!==i||t[7]!==r?(y=(e,t)=>{i({...r,[e]:t})},t[6]=i,t[7]=r,t[8]=y):y=t[8];let b=y;if(n.type!==`object`||!d(n.properties)||m.length===0)return null;let x,S;if(t[9]!==s||t[10]!==f||t[11]!==v||t[12]!==c||t[13]!==b||t[14]!==r){let e=Array.from(v.keys()).sort(E);t[17]===s?x=t[18]:(x=o(`flex flex-col gap-4`,s),t[17]=s,t[18]=x);let n;t[19]!==f||t[20]!==v||t[21]!==c||t[22]!==b||t[23]!==r?(n=e=>{let t=(v.get(e)??[]).map(e=>(0,u.jsx)(C,{k:e.key,sub:e.sub,value:r[e.key],onValue:t=>b(e.key,t),disabled:f,labels:c},e.key));return e===``?(0,u.jsx)(`div`,{children:t},`default`):(0,u.jsxs)(`details`,{className:`group rounded-lg border border-edge bg-surface-panel/40 open:bg-surface-base`,open:!0,children:[(0,u.jsx)(`summary`,{className:`cursor-pointer select-none px-3 py-2 text-sm font-medium text-fg group-open:rounded-b-none`,children:e}),(0,u.jsx)(`div`,{className:`space-y-4 border-t border-edge p-3`,children:t})]},e)},t[19]=f,t[20]=v,t[21]=c,t[22]=b,t[23]=r,t[24]=n):n=t[24],S=e.map(n),t[9]=s,t[10]=f,t[11]=v,t[12]=c,t[13]=b,t[14]=r,t[15]=x,t[16]=S}else x=t[15],S=t[16];let w;return t[25]!==x||t[26]!==S?(w=(0,u.jsx)(`div`,{className:x,children:S}),t[25]=x,t[26]=S,t[27]=w):w=t[27],w}function E(e,t){return e===``?-1:t===``?1:e.localeCompare(t)}export{T as t};
|
|
1
|
+
import"./rolldown-runtime-aKtaBQYM.js";import{a as e,n as t,t as n}from"./vendor-react-BOUWij0V.js";import{n as r,r as i}from"./popover-select-DHC7J4lG.js";import{t as a}from"./secret-input-BxWHx6J6.js";import{t as o}from"./cn-0WouolD0.js";import{ka as s}from"./index-xTL-vb51.js";import{t as c}from"./number-input-DDeqHK-G.js";var l=t();e();var u=n();function d(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function f(e){let t=e[`x-order`];return typeof t==`number`&&!Number.isNaN(t)?t:999}function p(e){let t=e[`x-group`];return typeof t==`string`&&t.length>0?t:``}function m(e){return e[`x-hidden`]===!0}function h(e){let t=e.properties;if(!d(t))return[];let n=[];for(let[e,r]of Object.entries(t))d(r)&&(m(r)||n.push({key:e,sub:r,order:f(r),group:p(r),hidden:!1}));return n.sort((e,t)=>e.order-t.order||e.key.localeCompare(t.key)),n}function g(e){let t=new Map;for(let n of e){let e=n.group;t.has(e)||t.set(e,[]),t.get(e).push(n)}return t}function _(e){let t=(0,l.c)(38),{name:n,s:i,value:o,onChange:c,disabled:d}=e,f=typeof i.description==`string`?i.description:void 0,p=(typeof i[`x-placeholder`]==`string`?i[`x-placeholder`]:null)||f,m=i.format;if(Array.isArray(i.enum)&&i.enum.every(y)){let e;t[0]===f?e=t[1]:(e=f?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:f}):null,t[0]=f,t[1]=e);let a;t[2]===c?a=t[3]:(a=e=>c(e.target.value),t[2]=c,t[3]=a);let s;t[4]===i.enum?s=t[5]:(s=i.enum.map(v),t[4]=i.enum,t[5]=s);let l;t[6]!==d||t[7]!==n||t[8]!==a||t[9]!==s||t[10]!==o?(l=(0,u.jsx)(r,{name:n,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2 text-sm text-fg`,value:o,disabled:d,onChange:a,children:s}),t[6]=d,t[7]=n,t[8]=a,t[9]=s,t[10]=o,t[11]=l):l=t[11];let p;return t[12]!==e||t[13]!==l?(p=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e,l]}),t[12]=e,t[13]=l,t[14]=p):p=t[14],p}if(m===`password`){let e;t[15]===f?e=t[16]:(e=f?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:f}):null,t[15]=f,t[16]=e);let n;t[17]!==d||t[18]!==c||t[19]!==p||t[20]!==o?(n=(0,u.jsx)(a,{value:o,onChange:c,placeholder:p,labels:s,disabled:d,inputClassName:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg placeholder:text-fg-muted/70`}),t[17]=d,t[18]=c,t[19]=p,t[20]=o,t[21]=n):n=t[21];let r;return t[22]!==e||t[23]!==n?(r=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e,n]}),t[22]=e,t[23]=n,t[24]=r):r=t[24],r}let h;t[25]===f?h=t[26]:(h=f?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:f}):null,t[25]=f,t[26]=h);let g;t[27]===c?g=t[28]:(g=e=>c(e.target.value),t[27]=c,t[28]=g);let _;t[29]!==d||t[30]!==n||t[31]!==p||t[32]!==g||t[33]!==o?(_=(0,u.jsx)(`input`,{name:n,type:`text`,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg placeholder:text-fg-muted/70`,value:o,placeholder:p,disabled:d,onChange:g}),t[29]=d,t[30]=n,t[31]=p,t[32]=g,t[33]=o,t[34]=_):_=t[34];let b;return t[35]!==h||t[36]!==_?(b=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[h,_]}),t[35]=h,t[36]=_,t[37]=b):b=t[37],b}function v(e){return(0,u.jsx)(i,{value:e,children:e},e)}function y(e){return typeof e==`string`}function b(e){let t=(0,l.c)(11),{s:n,value:r,onChange:i,disabled:a}=e,o=typeof n.description==`string`?n.description:void 0,s;t[0]===o?s=t[1]:(s=o?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:o}):null,t[0]=o,t[1]=s);let d=Number.isFinite(r)?r:0,f;t[2]===i?f=t[3]:(f=e=>i(Number(e.target.value)),t[2]=i,t[3]=f);let p;t[4]!==a||t[5]!==d||t[6]!==f?(p=(0,u.jsx)(c,{type:`number`,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg`,value:d,disabled:a,onChange:f}),t[4]=a,t[5]=d,t[6]=f,t[7]=p):p=t[7];let m;return t[8]!==s||t[9]!==p?(m=(0,u.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[s,p]}),t[8]=s,t[9]=p,t[10]=m):m=t[10],m}function x(e){let t=(0,l.c)(11),{s:n,value:r,onChange:i,disabled:a,labels:o}=e,s=(typeof n.description==`string`?n.description:void 0)??(typeof n.title==`string`&&n.title.length>0?n.title:o?.defaultBooleanLabel??`Enable`),c;t[0]===i?c=t[1]:(c=e=>i(e.target.checked),t[0]=i,t[1]=c);let d;t[2]!==a||t[3]!==c||t[4]!==r?(d=(0,u.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border border-edge`,checked:r,disabled:a,onChange:c}),t[2]=a,t[3]=c,t[4]=r,t[5]=d):d=t[5];let f;t[6]===s?f=t[7]:(f=(0,u.jsx)(`span`,{children:s}),t[6]=s,t[7]=f);let p;return t[8]!==d||t[9]!==f?(p=(0,u.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[d,f]}),t[8]=d,t[9]=f,t[10]=p):p=t[10],p}function S(e){let t=(0,l.c)(27),{s:n,value:r,onChange:i,disabled:a,labels:o}=e,s=typeof n.description==`string`?n.description:void 0,c=n.items,f=d(c)?c.type:void 0;if(!(f===`string`||Array.isArray(f)&&f.includes(`string`))){let e=o?.unsupportedArrayType??`Unsupported array type`,n;return t[0]===e?n=t[1]:(n=(0,u.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e}),t[0]=e,t[1]=n),n}let p,m,h,g,_;if(t[2]!==s||t[3]!==a||t[4]!==i||t[5]!==r){let e=r.map(String);p=t=>{let n=t.trim();!n||e.includes(n)||i([...e,n])},g=`flex flex-col gap-1.5`,t[11]===s?_=t[12]:(_=s?(0,u.jsx)(`label`,{className:`text-xs text-fg-muted`,children:s}):null,t[11]=s,t[12]=_),m=`flex flex-wrap gap-1`,h=e.map(t=>(0,u.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-edge bg-surface-panel px-2 py-0.5 text-sm`,children:[t,(0,u.jsx)(`button`,{type:`button`,className:`text-fg-muted hover:text-fg`,disabled:a,onClick:()=>i(e.filter(e=>e!==t)),children:`×`})]},t)),t[2]=s,t[3]=a,t[4]=i,t[5]=r,t[6]=p,t[7]=m,t[8]=h,t[9]=g,t[10]=_}else p=t[6],m=t[7],h=t[8],g=t[9],_=t[10];let v;t[13]!==m||t[14]!==h?(v=(0,u.jsx)(`div`,{className:m,children:h}),t[13]=m,t[14]=h,t[15]=v):v=t[15];let y=o?.arrayAddPlaceholder??`Add and press Enter`,b;t[16]===p?b=t[17]:(b=e=>{e.key===`Enter`&&(e.preventDefault(),p(e.target.value),e.target.value=``)},t[16]=p,t[17]=b);let x;t[18]!==a||t[19]!==y||t[20]!==b?(x=(0,u.jsx)(`input`,{className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm`,disabled:a,placeholder:y,onKeyDown:b}),t[18]=a,t[19]=y,t[20]=b,t[21]=x):x=t[21];let S;return t[22]!==g||t[23]!==_||t[24]!==v||t[25]!==x?(S=(0,u.jsxs)(`div`,{className:g,children:[_,v,x]}),t[22]=g,t[23]=_,t[24]=v,t[25]=x,t[26]=S):S=t[26],S}function C(e){let t=(0,l.c)(66),{k:n,sub:r,value:i,onValue:a,disabled:o,labels:s}=e,c=r.type,f=(typeof r.title==`string`&&r.title.length>0?r.title:null)??n;if(c===`boolean`){let e;t[0]===f?e=t[1]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[0]=f,t[1]=e);let n=i===!0,c;t[2]===a?c=t[3]:(c=e=>a(e),t[2]=a,t[3]=c);let l;t[4]!==o||t[5]!==s||t[6]!==r||t[7]!==n||t[8]!==c?(l=(0,u.jsx)(x,{s:r,value:n,disabled:o,onChange:c,labels:s}),t[4]=o,t[5]=s,t[6]=r,t[7]=n,t[8]=c,t[9]=l):l=t[9];let d;return t[10]!==e||t[11]!==l?(d=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,l]}),t[10]=e,t[11]=l,t[12]=d):d=t[12],d}if(c===`number`||c===`integer`){let e;t[13]===f?e=t[14]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[13]=f,t[14]=e);let n=typeof i==`number`?i:0,s;t[15]!==o||t[16]!==a||t[17]!==r||t[18]!==n?(s=(0,u.jsx)(b,{s:r,value:n,disabled:o,onChange:a}),t[15]=o,t[16]=a,t[17]=r,t[18]=n,t[19]=s):s=t[19];let c;return t[20]!==e||t[21]!==s?(c=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,s]}),t[20]=e,t[21]=s,t[22]=c):c=t[22],c}if(c===`string`){let e;t[23]===f?e=t[24]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[23]=f,t[24]=e);let s=typeof i==`string`?i:``,c;t[25]!==o||t[26]!==n||t[27]!==a||t[28]!==r||t[29]!==s?(c=(0,u.jsx)(_,{name:n,s:r,value:s,disabled:o,onChange:a}),t[25]=o,t[26]=n,t[27]=a,t[28]=r,t[29]=s,t[30]=c):c=t[30];let l;return t[31]!==e||t[32]!==c?(l=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,c]}),t[31]=e,t[32]=c,t[33]=l):l=t[33],l}if(c===`array`){let e=r.items,n=d(e)?e.type:void 0;if(n===`string`||Array.isArray(n)&&n.includes(`string`)){let e;t[34]===f?e=t[35]:(e=(0,u.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:f}),t[34]=f,t[35]=e);let n;t[36]===i?n=t[37]:(n=Array.isArray(i)&&i.every(w)?i.map(String):[],t[36]=i,t[37]=n);let c;t[38]!==o||t[39]!==s||t[40]!==a||t[41]!==r||t[42]!==n?(c=(0,u.jsx)(S,{s:r,value:n,disabled:o,onChange:a,labels:s}),t[38]=o,t[39]=s,t[40]=a,t[41]=r,t[42]=n,t[43]=c):c=t[43];let l;return t[44]!==e||t[45]!==c?(l=(0,u.jsxs)(`div`,{className:`space-y-1.5`,children:[e,c]}),t[44]=e,t[45]=c,t[46]=l):l=t[46],l}}if(c===`object`){let e;t[47]===i?e=t[48]:(e=d(i)?i:{},t[47]=i,t[48]=e);let n=e,c;t[49]===f?c=t[50]:(c=(0,u.jsx)(`summary`,{className:`cursor-pointer select-none px-3 py-2 text-sm font-medium text-fg group-open:rounded-b-none`,children:f}),t[49]=f,t[50]=c);let l;t[51]!==o||t[52]!==s||t[53]!==n||t[54]!==a||t[55]!==r?(l=(0,u.jsx)(`div`,{className:`border-t border-edge p-3`,children:(0,u.jsx)(T,{schema:r,values:n,onChange:a,disabled:o,labels:s})}),t[51]=o,t[52]=s,t[53]=n,t[54]=a,t[55]=r,t[56]=l):l=t[56];let p;return t[57]!==c||t[58]!==l?(p=(0,u.jsxs)(`details`,{className:`group rounded-lg border border-edge bg-surface-panel/40 open:bg-surface-base`,open:!0,children:[c,l]}),t[57]=c,t[58]=l,t[59]=p):p=t[59],p}let p;t[60]!==s||t[61]!==c||t[62]!==f?(p=s?.unsupportedFieldType?.(f,typeof c==`string`?c:void 0)??`${f}: unsupported field type${typeof c==`string`?` (${c})`:``}`,t[60]=s,t[61]=c,t[62]=f,t[63]=p):p=t[63];let m;return t[64]===p?m=t[65]:(m=(0,u.jsx)(`p`,{className:`text-xs text-fg-muted`,children:p}),t[64]=p,t[65]=m),m}function w(e){return typeof e==`string`||typeof e==`number`}function T(e){let t=(0,l.c)(28),{schema:n,values:r,onChange:i,disabled:a,className:s,labels:c}=e,f=a===void 0?!1:a,p;bb0:{if(n.type!==`object`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0],p=e;break bb0}let e;t[1]===n?e=t[2]:(e=h(n),t[1]=n,t[2]=e),p=e}let m=p,_;bb1:{if(m.length===0){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=new Map,t[3]=e):e=t[3],_=e;break bb1}let e;t[4]===m?e=t[5]:(e=g(m),t[4]=m,t[5]=e),_=e}let v=_,y;t[6]!==i||t[7]!==r?(y=(e,t)=>{i({...r,[e]:t})},t[6]=i,t[7]=r,t[8]=y):y=t[8];let b=y;if(n.type!==`object`||!d(n.properties)||m.length===0)return null;let x,S;if(t[9]!==s||t[10]!==f||t[11]!==v||t[12]!==c||t[13]!==b||t[14]!==r){let e=Array.from(v.keys()).sort(E);t[17]===s?x=t[18]:(x=o(`flex flex-col gap-4`,s),t[17]=s,t[18]=x);let n;t[19]!==f||t[20]!==v||t[21]!==c||t[22]!==b||t[23]!==r?(n=e=>{let t=(v.get(e)??[]).map(e=>(0,u.jsx)(C,{k:e.key,sub:e.sub,value:r[e.key],onValue:t=>b(e.key,t),disabled:f,labels:c},e.key));return e===``?(0,u.jsx)(`div`,{children:t},`default`):(0,u.jsxs)(`details`,{className:`group rounded-lg border border-edge bg-surface-panel/40 open:bg-surface-base`,open:!0,children:[(0,u.jsx)(`summary`,{className:`cursor-pointer select-none px-3 py-2 text-sm font-medium text-fg group-open:rounded-b-none`,children:e}),(0,u.jsx)(`div`,{className:`space-y-4 border-t border-edge p-3`,children:t})]},e)},t[19]=f,t[20]=v,t[21]=c,t[22]=b,t[23]=r,t[24]=n):n=t[24],S=e.map(n),t[9]=s,t[10]=f,t[11]=v,t[12]=c,t[13]=b,t[14]=r,t[15]=x,t[16]=S}else x=t[15],S=t[16];let w;return t[25]!==x||t[26]!==S?(w=(0,u.jsx)(`div`,{className:x,children:S}),t[25]=x,t[26]=S,t[27]=w):w=t[27],w}function E(e,t){return e===``?-1:t===``?1:e.localeCompare(t)}export{T as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as e,i as t,t as n}from"./session-manager-
|
|
1
|
+
import{d as e,i as t,t as n}from"./session-manager-aXqXuqDX.js";async function r(r,i,a){let o=new n,s=await o.loadSessionAgentConfig(r);await o.loadSession(r),e(r,s),await new t().send(i,r,a,s.thinkingLevel)}export{r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,r as t}from"./locale-store-
|
|
1
|
+
import{a as e,r as t}from"./locale-store-DMy9W6IG.js";import{d as n,g as r,h as i,i as a,l as o,p as s,r as c,s as l,t as u,u as d,v as f}from"./schemas-CObaziC7.js";import{t as p}from"./gateway-startup-retry-C-BG5M7H.js";var m=f().transform(e=>e.toLowerCase()).brand(),h=s().trim().regex(/^[a-z0-9][a-z0-9._-]{0,127}$/i).brand(),g=u([`active`,`idle`,`archived`,`pinned`]),_=d({agentId:s().optional(),source:s().optional(),accountId:s().optional(),peerKind:s().optional(),peerId:s().optional(),threadId:s().optional(),scopeId:s().optional()}).passthrough();d({agentId:s().optional(),projectId:s().optional(),key:s(),transcriptId:h.optional(),name:s().optional(),title:s().optional(),displayName:s().optional(),messageCount:o(),updatedAt:s(),sourceChannel:s().optional(),status:g.optional(),usage:d({calls:o().int().nonnegative(),unknownCostCalls:o().int().nonnegative(),totalTokens:o().int().nonnegative(),knownCostUsd:s(),costCompleteness:u([`complete`,`partial`,`unknown`])}).optional(),routing:_.optional()}).passthrough();var v=d({items:c(r()),total:o(),limit:o(),offset:o(),hasMore:a()}),y=d({role:s(),content:r(),timestamp:i([s(),o()]).optional()}).passthrough(),b=d({key:s(),messages:c(y)}).passthrough(),x=d({session:b}),ee=d({session:d({key:s(),transcriptId:h.optional(),messages:c(y),name:s().optional(),status:g.optional(),sourceChannel:s().optional(),sourceChatId:s().optional(),projectId:s().optional(),customData:n(s(),r()).optional(),routing:_.optional()}).passthrough(),pagination:d({total:o(),limit:o(),offset:o(),hasMore:a(),before:s().optional(),nextBeforeCursor:s().optional(),revision:o().int().nonnegative().optional()}).passthrough()}).passthrough(),S=d({ok:l(!0),conversationId:f(),rowCount:o().int().nonnegative(),lastTurnId:s().min(1),session:b}).passthrough(),C=d({ok:a().optional(),payload:d({active:a(),runId:s().optional()}).passthrough().optional()}).passthrough(),w=d({ok:a().optional(),error:s().optional()}).passthrough(),T=w.extend({renamed:a().optional()}),E=w.extend({reset:a().optional(),transcriptId:h.optional(),previousTranscriptId:s().optional(),session:r().optional()}),D=d({totalSessions:o(),activeSessions:o(),archivedSessions:o(),pinnedSessions:o(),totalMessages:o(),totalTokens:o(),oldestSession:s().optional(),newestSession:s().optional(),byChannel:n(s(),o())}).passthrough();d({ok:a(),payload:d({conversationId:f(),transcriptId:h,session:r()}).passthrough().optional(),error:s().optional()}).passthrough();var O=d({ok:l(!0),projects:d({items:c(d({project:r(),sessions:c(r()),sessionTotal:o(),sessionHasMore:a()}).passthrough()),total:o(),limit:o(),offset:o(),hasMore:a()}),inbox:v,pinned:c(r()).default([]),layouts:n(s(),d({itemIds:c(s()),revision:o().int().nonnegative()})).default({}),childrenByConversationId:n(s(),d({total:o(),activeCount:o(),items:c(d({taskId:s(),title:s(),phase:s(),runStatus:s().optional(),activeConversationId:s().optional()}))})).default({})}).passthrough();function k(e){return x.parse(e)}function A(e){return ee.parse(e)}function j(e){return S.parse(e)}function M(e){return C.parse(e)}function N(e){return w.parse(e)}function P(e){return T.parse(e)}function F(e){return E.parse(e)}function I(e){return D.parse(e)}function L(e){return O.parse(e)}function R(e){let t=M(e).payload,n=typeof t?.runId==`string`?t.runId.trim():``;return!t?.active||!n?{active:!1}:{active:!0,runId:n}}function z(e){let t=new URLSearchParams;if(!e)return``;e.status&&t.set(`status`,e.status),e.search&&t.set(`search`,e.search),e.channel&&t.set(`channel`,e.channel),e.sources?.length&&t.set(`sources`,e.sources.join(`,`)),e.purposes?.length&&t.set(`purposes`,e.purposes.join(`,`)),e.activity&&t.set(`activity`,e.activity),e.agentId&&t.set(`agentId`,e.agentId),e.excludeArchived&&t.set(`excludeArchived`,`true`),e.projectId&&t.set(`projectId`,e.projectId),e.unassigned&&t.set(`unassigned`,`true`),e.updatedAfter!=null&&t.set(`updatedAfter`,String(e.updatedAfter)),e.includePinned&&t.set(`includePinned`,`true`),e.includeConversationId&&t.set(`includeConversationId`,e.includeConversationId),e.rootConversationsOnly&&t.set(`rootConversationsOnly`,`true`),e.sessionTypes?.length&&t.set(`types`,e.sessionTypes.join(`,`)),e.sortBy&&t.set(`sortBy`,e.sortBy),e.sortOrder&&t.set(`sortOrder`,e.sortOrder),e.limit!=null&&t.set(`limit`,String(e.limit)),e.offset!=null&&t.set(`offset`,String(e.offset));let n=t.toString();return n?`?${n}`:``}function B(e,t){let n=[];t?.includeTranscript&&n.push(`transcript`),t?.includeTranscriptRows&&n.push(`transcriptRows`);let r=n.length?`?include=${n.join(`,`)}`:``;return`/api/sessions/${encodeURIComponent(e)}${r}`}function V(e){return`/api/sessions/${encodeURIComponent(e)}/fork-at-turn`}function te(e,t){let n=new URLSearchParams;n.set(`limit`,String(t?.limit??50));let r=t?.before?.trim();return r?n.set(`before`,r):t?.offset!=null&&n.set(`offset`,String(t.offset)),`/api/sessions/${encodeURIComponent(e)}/history?${n.toString()}`}function H(e){return`/api/sessions/${encodeURIComponent(e)}/run`}function U(){return`/api/sessions/stats`}function W(e){let t=new URLSearchParams;e?.projectLimit!=null&&t.set(`projectLimit`,String(e.projectLimit)),e?.projectOffset!=null&&t.set(`projectOffset`,String(e.projectOffset)),e?.sessionPreviewLimit!=null&&t.set(`sessionPreviewLimit`,String(e.sessionPreviewLimit)),e?.inboxLimit!=null&&t.set(`inboxLimit`,String(e.inboxLimit)),e?.inboxOffset!=null&&t.set(`inboxOffset`,String(e.inboxOffset)),e?.staleDays!=null&&t.set(`staleDays`,String(e.staleDays)),e?.includeConversationId&&t.set(`includeConversationId`,e.includeConversationId);let n=t.toString();return`/api/sidebar/chat-list${n?`?${n}`:``}`}function G(e){return`/api/sidebar/layouts/${encodeURIComponent(e)}`}function K(e,t){let n=encodeURIComponent(e);return t===`delete`?`/api/sessions/${n}`:`/api/sessions/${n}/${t}`}function q(e){return e?JSON.stringify({status:e.status,search:e.search,channel:e.channel,sources:e.sources,purposes:e.purposes,activity:e.activity,agentId:e.agentId,excludeArchived:e.excludeArchived,projectId:e.projectId,unassigned:e.unassigned,updatedAfter:e.updatedAfter,includePinned:e.includePinned,includeConversationId:e.includeConversationId,sessionTypes:e.sessionTypes,sortBy:e.sortBy,sortOrder:e.sortOrder,limit:e.limit,offset:e.offset}):`default`}var J=new Map;async function Y(e){let n=q(e),r=J.get(n);if(r)return r;let i=t(`/api/sessions${z(e)}`),a=(async()=>{let e=await p(i);if(!e.ok){let t=await e.json().catch(()=>({})),n=typeof t.error==`string`?t.error:t.error?.message;throw Error(n??`HTTP ${e.status}`)}return await e.json()})().finally(()=>{J.delete(n)});return J.set(n,a),a}async function X(n){return L(await e(t(W(n))))}async function Z(n){let r=await e(t(G(n.containerId)),{method:`PUT`,body:JSON.stringify({itemIds:n.itemIds,expectedRevision:n.expectedRevision})});if(!r.ok||!r.layout)throw Error(r.error??`Failed to save sidebar order`);return r.layout}async function Q(){return I(await e(t(U())))}async function ne(n,r){let i=k(await e(t(B(n,r))));if(!i.session)throw Error(`Session not found`);return i.session}async function re(n){let r=await e(t(`/api/sessions/resolve`),{method:`POST`,body:JSON.stringify(n)});if(!r.ok||!r.payload)throw Error(r.error??`Session not found`);return r.payload}async function ie(n){N(await e(t(K(n,`delete`)),{method:`DELETE`}))}async function ae(n,r){return{renamed:P(await e(t(K(n,`rename`)),{method:`POST`,body:JSON.stringify({name:r})})).renamed===!0}}async function oe(n){N(await e(t(K(n,`archive`)),{method:`POST`}))}async function $(n){N(await e(t(K(n,`unarchive`)),{method:`POST`}))}async function se(n){N(await e(t(K(n,`pin`)),{method:`POST`}))}async function ce(n){N(await e(t(K(n,`unpin`)),{method:`POST`}))}async function le(n){return(await e(t(`/api/sessions/${encodeURIComponent(n)}/export?format=json`))).content}export{R as _,ne as a,F as b,se as c,Z as d,$ as f,H as g,te as h,X as i,ae as l,V as m,ie as n,Q as o,ce as p,le as r,Y as s,oe as t,re as u,j as v,m as x,A as y};
|