@xopcai/xopc 0.0.427 → 0.0.430
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js +3 -3
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +2 -2
- package/dist/extensions/telegram/src/outbound-sender.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +2 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +12 -12
- package/dist/extensions/weixin/src/messaging/debug-mode.js +5 -5
- package/dist/extensions/weixin/src/messaging/inbound.js +11 -11
- package/dist/gateway/static/root/assets/{activity-store-D_DXNHba.js → activity-store-WqnVruhY.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CjaQxFQt.js → agent-avatar-dicebear-CSiO9c2F.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-6Z4m31Fz.js → agent-avatar-display-D-yds6wG.js} +2 -2
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-D4ClP_DJ.js → agent-defaults-settings-panel-_UT9C7bg.js} +1 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-DVzYXsAy.js +1 -0
- package/dist/gateway/static/root/assets/{agents-B9slUA_1.js → agents-Ds7K3D7T.js} +3 -3
- package/dist/gateway/static/root/assets/{agents-admin-api-u5c3GREg.js → agents-admin-api-Bgv4lJ9Y.js} +1 -1
- package/dist/gateway/static/root/assets/{api-C3Tp9MkF.js → api-C-9J9ghT.js} +1 -1
- package/dist/gateway/static/root/assets/{api-CRT9ZyH0.js → api-Dv6Cn-Rs.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-XqoIBF2H.js → app-management-settings-panel-BXJrrjH5.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-9ZtqCASo.js → appearance-settings-oYjAVulT.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-DUeu_7iC.js → apps-page-D95yzj-f.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-BCQnOkV8.js → archive-plugin-DBPu3xCJ.js} +1 -1
- package/dist/gateway/static/root/assets/automation-api-DAou8Kji.js +1 -0
- package/dist/gateway/static/root/assets/{automation-result-state-CMfVTv_i.js → automation-result-state-CA7LV098.js} +1 -1
- package/dist/gateway/static/root/assets/automation-task-card-DIjI_Y1X.js +3 -0
- package/dist/gateway/static/root/assets/{automations-page-DMIyWsP0.js → automations-page-BQwSCkmd.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BUFTTjBq.js +9 -0
- package/dist/gateway/static/root/assets/{binary-plugins-CIB5cbvQ.js → binary-plugins-D25P9ZxQ.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CXdlNAmZ.js → block-editor-BI105p1U.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-Fxo7HbK6.js → browser-automation-inputs-DhDRvWQE.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-Dn3LN5wo.js → browser-automations-page-CCPi1Bvy.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-control-api-CbbPvhHR.js → browser-control-api-BN4F-bM1.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-Cpm9fEPV.js → browser-settings-page-BZXUZpjp.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BEvywfF9.js → capabilities-LC-yEQYo.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-BCzsIzvC.js → capabilities-page-B8UgQ4dD.js} +2 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Bxn8HtEO.js +8 -0
- package/dist/gateway/static/root/assets/capabilities-u2z_KFRt.js +1 -0
- package/dist/gateway/static/root/assets/{channels-CA5z5dGY.js → channels-9Uaa-IN0.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-D8YS5amE.js → chat-agents-api-Cffxfzi1.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-B39npsXj.js → chat-chart-block-Bbk0b3TV.js} +1 -1
- package/dist/gateway/static/root/assets/chat-page-e-xCsrdS.js +72 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-DjFnElAM.js → chat-terminal-dock-CQMuG-Bz.js} +1 -1
- package/dist/gateway/static/root/assets/{command-palette-api-Dijix7V6.js → command-palette-api-BRxfFgGA.js} +1 -1
- package/dist/gateway/static/root/assets/composer-payload-handoff-_9L2A5AZ.js +1 -0
- package/dist/gateway/static/root/assets/{computer-settings-page-MkqyKyf3.js → computer-settings-page-BIHbjBVt.js} +1 -1
- package/dist/gateway/static/root/assets/{connected-providers-grid-BSvKP2u-.js → connected-providers-grid-B7ktDgqt.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-DlIl9bLx.js → connector-service-page-BVMEg8n-.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-DEJU8mgn.js → connectors-api-B07yoCzk.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-hPKaJUWY.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-BIfjfOTM.js → date-picker-BvEnSGZK.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DFNehTtd.js → desktop-pet-C1z9YDEg.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-BDjsFown.js → desktop-pet-settings-CbbVb8GY.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-CeZZLOc6.js → dev-view-store-38EmUIEC.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-DH_uJ698.js → device-pairing-wizard-Wb1EKiXA.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-DiZXY7jF.js → directory-picker-path-field-BvKDrKc4.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-BXqNuZnx.js → discussion-annotation-sync-BfVzIwe2.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-myQqsol2.js → extension-debug-page-CB9Lu3Sq.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-DaL-OcTw.js → extension-iframe-host-BzjrVAUR.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-DRBszrCR.js → extension-marketplace-api-DigziAgd.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DvlGhZLa.js → extension-page-DUa9MeaZ.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-fOi6V6Cr.js → extension-provider-301x0rh-.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DOGlQpkx.js → extension-settings-page-CP9ciZUI.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-DfkXvFnc.js → file-preview-surface-BaMGmCbw.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-BOCt_zOo.js → gateway-config-swr-BD4Bf8uu.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-BL_Cf0OQ.js → gateway-realtime-CSd9VB7Z.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-Bxkv62qs.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-restart-CHf8qY7H.js → gateway-restart-CIUCTKYR.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-Di41peSM.js → gateway-settings-CCqF1uZv.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CvkJYurV.js → gateway-startup-retry-BsU5k8oi.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-BWMbKu72.js → global-defaults-api-asOZQeM8.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-Bb_RC1O9.js +2 -0
- package/dist/gateway/static/root/assets/{image-generation-api-Ce-IY7Ug.js → image-generation-api-CdwYgzhU.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-W7_cDbxy.js → imports-page-CVnoGUyp.js} +1 -1
- package/dist/gateway/static/root/assets/index-C5BhE5cA.js +11 -0
- package/dist/gateway/static/root/assets/index-Cz-VjTNd.css +1 -0
- package/dist/gateway/static/root/assets/{install-connector-dialog-DWVl9ekV.js → install-connector-dialog-DXVOHMhS.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Doyu0Q9e.js → keyboard-shortcuts-settings-BCl90SrD.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-B3h3P6aI.js → local-app-workbench-page-CcJc9xLJ.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-D6D2bZGW.js → local-apps-page-CdAKoWfg.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-BJ1B1dQ7.js → local-session-drafts-nRGeybku.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-Br7IfbXK.js → locale-store-B7y-RVe8.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-qiXos_12.js → logs-page-McbSQwJI.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-C0WcSdK7.js → management-settings-BIR0BwNV.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-Ck5s16p9.js → markdown-view-DFHa8rUg.js} +1 -1
- package/dist/gateway/static/root/assets/mcp-conversation-setup-page-Dwx4TuIr.js +1 -0
- package/dist/gateway/static/root/assets/{media-plugins-Ba6vUE4J.js → media-plugins-BzzLV7wW.js} +1 -1
- package/dist/gateway/static/root/assets/messages-DYDkJvXj.js +3 -0
- package/dist/gateway/static/root/assets/model-selector-YsCHu1Gn.js +1 -0
- package/dist/gateway/static/root/assets/{models-hub-cache-Bd-fYUrV.js → models-hub-cache-BUapaPTN.js} +1 -1
- package/dist/gateway/static/root/assets/new-chat-navigation-B6NPQ4h4.js +1 -0
- package/dist/gateway/static/root/assets/{note-detail-panel-CnuxqWMd.js → note-detail-panel-CJ-dPovd.js} +3 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-ClPkeHe5.js +1 -0
- package/dist/gateway/static/root/assets/{notes-api-8kp0X1x6.js → notes-api-ulup1oFS.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-XMdy-H3H.js → notes-page-BaFNplIr.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-DMMdeaNd.js → oauth-api-DINa08-z.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-CfOK8mPM.js → oauth-provider-connect-C0PVEHC2.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-CKlKWSJ7.js → page-context-capture-button-CGfR0dsc.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-LF33STHC.js → page-context-draft-DhRNxc0v.js} +1 -1
- package/dist/gateway/static/root/assets/page-header-store-CoKMiYoi.js +1 -0
- package/dist/gateway/static/root/assets/{personal-avatar-D6CzIIfo.js → personal-avatar-DiVFO2Aw.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-CIMMSI25.js → personal-page-Cvd-v9kT.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-settings-panel-wKdlrfPq.js → personal-settings-panel-Ds4ntiqu.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-dependencies-card-CDhk5277.js → phone-dependencies-card-B3R6L5Qu.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-model-connection-DZ-ZunPz.js → phone-model-connection-BieYnAJ5.js} +1 -1
- package/dist/gateway/static/root/assets/phone-model-picker-Bkex4Sre.js +1 -0
- package/dist/gateway/static/root/assets/{phone-settings-page-0u0GQl_R.js → phone-settings-page-D8PuvEuJ.js} +1 -1
- package/dist/gateway/static/root/assets/{phone-workspace-store-SN7hfddU.js → phone-workspace-store-Cmes9gQ4.js} +1 -1
- package/dist/gateway/static/root/assets/{plugin-details-dialog-Bfc-Wmrd.js → plugin-details-dialog-DblFhnuC.js} +1 -1
- package/dist/gateway/static/root/assets/{preference-select-fields-BKeHZLXZ.js → preference-select-fields-D2-QfMN5.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-BPur0vyo.js → product-automation-feedback-BzY3z8zu.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-Bfd7R483.js → product-open-page-BKw6H0Mn.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-Bnq68oVw.js → product-preview-content-VcvxaO2S.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-BPmTeweh.js → product-preview-modal-Ym6bomTW.js} +2 -2
- package/dist/gateway/static/root/assets/project-detail-page-CFbXWvcd.js +7 -0
- package/dist/gateway/static/root/assets/{project-understanding-DLvxAoTT.js → project-understanding-CrSkrJnM.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-BGy1pw9a.js → projects-page-Cp91_KzA.js} +1 -1
- package/dist/gateway/static/root/assets/{providers-api-DOnNfkwQ.js → providers-api-CBSC3jdu.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-CHFJbqW1.js → recording-upload-DBHAGKZj.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-DFDvOTg4.js → registry-api-QZEjziDq.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-BVqwnOqO.js → remote-access-hub-BdXxFQfH.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-TQcRCpAg.js → resource-unavailable-BTNhcOHF.js} +1 -1
- package/dist/gateway/static/root/assets/route-preload-C-VRKwB1.js +2 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-9o3Wfji1.js → runtime-tools-api-BDTUD8Rj.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-ccVBG-bZ.js → runtime-tools-settings-panel-CYEzIrDf.js} +1 -1
- package/dist/gateway/static/root/assets/{service-recommendation-list-CNghOavt.js → service-recommendation-list-CfeYH6lK.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-Bs3r_d2_.js → session-api-DVXLCZX2.js} +1 -1
- package/dist/gateway/static/root/assets/{session-manager-Bnq3qpqy.js → session-manager-DjRWxXJG.js} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-CyBj1Xw2.js → sessions-page-C2CH-55n.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BMHe9uwy.js +1 -0
- package/dist/gateway/static/root/assets/{settings-advanced-section-DwpPPxT0.js → settings-advanced-section-BmrbHgQa.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-CiRpsdTJ.js → settings-mode-store-Bk_hzwPK.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-Cd8Ermnn.js → settings-page-B6vrcc6f.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-BZl4AMiN.js → settings-page-header-BLKI3_9N.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-onhEgq-K.js → settings-page-layout-BqBVrkC9.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-interaction-page-Cvvj6JyV.js → setup-interaction-page-BDPte58u.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-D4qgE7QM.js → setup-status-panel-DEefuWo3.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-DA0QuFOD.js → share-link-dialog-C2LyeNzj.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-YDpIY4dC.js → share-preview-page-BFwEr7Ws.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-D8Q-m46d.js → shares-api-CTFkLQxq.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-DUvjOMmA.js → shares-settings-CpK3yhtc.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-uKU4sRiv.js → skill-api-DpicfA6o.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-BzKzG-xG.js → skill-list-api-B8fegRLZ.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-DkUXekcd.js → skill-reload-api-VmC8ySUy.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-ClyNSh-7.js → skills-page-BIWXS6Ki.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-BN6sUX0H.js → system-settings-panel-BmoA92oX.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-CC3Rzqq9.js +3 -0
- package/dist/gateway/static/root/assets/{task-result-evidence-DKygspo2.js → task-result-evidence-BV-6hBVU.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-DJVC7HqA.js → terminal-panel-store-BGdKE9hU.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-Dlnmgryi.js → theme-store-Dvv79Wb2.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-Bs76WeoF.js → tracing-settings-page-B4uA4Pnz.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-B7nx0NQJ.js → tunnel-api-BurZtvqx.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-C4bblRnQ.js → understanding-activity-store-C1cLL8zq.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-BvCj9-Ue.js → understanding-refresh-store-C3Lr_pjY.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-anU5gslJ.js → usage-page-C91ZzLm9.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-YHxQ-UZg.js → use-autosave-zkzRuUtx.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-DYY3Yz4a.js → use-composer-attachments-CoiQAgjo.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-CYgWzDnv.js → use-file-preview-expanded-DFzy6iVy.js} +2 -2
- package/dist/gateway/static/root/assets/{use-personal-profile-D2Un8G1L.js → use-personal-profile-BB10h9ED.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-Dkg9tUr4.js → use-workspace-tree-sF5DcONt.js} +1 -1
- package/dist/gateway/static/root/assets/user-model-page-WFnD5utO.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-BUes-Jlp.js → voice-api-key-field-Bqa4PeZx.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-CrULrSKC.js → voice-config-api-LNO2xXHk.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-DFMNIyy4.js → voice-input-shortcut-events-AzfhxBX7.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-Dy4hfftb.js → voice-transcribe-api-Cb8i6dLb.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-CFF4cRFl.js → work-discovery-overlay-CdQUiV-a.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-BnYaVH3V.js → work-discovery-page-HcUloXxf.js} +1 -1
- package/dist/gateway/static/root/assets/{working-directory-picker-modal-GFwVefVA.js → working-directory-picker-modal-Dv1HUipe.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-BdB4NEOh.js → workspace-api-Am2ee4R6.js} +2 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-CqHcVFhS.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-NRL3YRjg.js → workspace-file-preview-dialog-z5Q00v92.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-Dcij7wvJ.js → workspace-open-location-menu-4ONYaGy0.js} +1 -1
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-DimGN59n.js +1 -0
- package/dist/gateway/static/root/index.html +80 -80
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/automations.js +1 -0
- package/dist/packages/gateway-contract/src/capabilities.js +6 -2
- package/dist/packages/gateway-contract/src/home.js +12 -2
- package/dist/src/agent/agent-manager.js +18 -18
- package/dist/src/agent/agent-scope.js +2 -2
- package/dist/src/agent/background-review/prompts.js +12 -7
- package/dist/src/agent/background-review/run-background-review.js +24 -15
- package/dist/src/agent/child-agent-factory.js +2 -2
- package/dist/src/agent/coding/run-verification.d.ts +1 -0
- package/dist/src/agent/coding/run-verification.js +1 -1
- package/dist/src/agent/context/coordinator.js +2 -2
- package/dist/src/agent/context/execution-context.js +7 -5
- 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/configuration-capability-correction.js +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.js +1 -1
- package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +6 -6
- package/dist/src/agent/embedded/run-turn.js +42 -23
- package/dist/src/agent/embedded/session-runner.js +8 -4
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
- package/dist/src/agent/embedded/xopc-tools-bridge.js +1 -1
- package/dist/src/agent/external-tools/cliProvider.js +4 -4
- package/dist/src/agent/external-tools/composio-provider.js +4 -4
- package/dist/src/agent/external-tools/endpoint-provider.js +6 -6
- package/dist/src/agent/external-tools/extension-provider.js +1 -1
- package/dist/src/agent/external-tools/gateway-tools.js +3 -3
- package/dist/src/agent/external-tools/memory-provider.js +1 -1
- package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
- package/dist/src/agent/image/generation/runtime.js +1 -1
- package/dist/src/agent/image/index.js +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.js +2 -2
- package/dist/src/agent/inbound/inbound-loop.js +2 -2
- package/dist/src/agent/independent-execution.js +2 -2
- package/dist/src/agent/index.js +3 -3
- package/dist/src/agent/mcp/connection-drafts.d.ts +2 -1
- package/dist/src/agent/mcp/connection-drafts.js +4 -3
- package/dist/src/agent/mcp/connection-setup.d.ts +15 -1
- package/dist/src/agent/mcp/connection-setup.js +219 -106
- package/dist/src/agent/mcp/continuation-guard.d.ts +3 -0
- package/dist/src/agent/mcp/continuation-guard.js +54 -0
- package/dist/src/agent/mcp/continuation-input.d.ts +4 -0
- package/dist/src/agent/mcp/continuation-input.js +13 -0
- package/dist/src/agent/mcp/conversation-setup.d.ts +121 -2
- package/dist/src/agent/mcp/conversation-setup.js +275 -40
- package/dist/src/agent/mcp/discovery.d.ts +102 -0
- package/dist/src/agent/mcp/discovery.js +219 -0
- package/dist/src/agent/mcp/native-mcp.js +8 -1
- package/dist/src/agent/mcp/setup-plan.d.ts +76 -0
- package/dist/src/agent/mcp/setup-plan.js +93 -0
- package/dist/src/agent/mcp/tool-catalog.d.ts +2 -0
- package/dist/src/agent/mcp/tool-catalog.js +7 -1
- package/dist/src/agent/mcp/transport.d.ts +20 -0
- package/dist/src/agent/mcp/transport.js +188 -0
- package/dist/src/agent/memory/index.js +1 -1
- package/dist/src/agent/orchestration/delegation-scope.d.ts +2 -1
- package/dist/src/agent/orchestration/llm-turn-retry.js +1 -1
- package/dist/src/agent/prompt/conversational-configuration-guide.js +1 -1
- package/dist/src/agent/prompt/response-language.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +3 -3
- package/dist/src/agent/prompt/system-prompt-params.js +1 -1
- package/dist/src/agent/sandbox/exec-policy.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +16 -12
- package/dist/src/agent/service/process-direct-streaming.js +7 -6
- package/dist/src/agent/service/webchat-tts.js +2 -2
- package/dist/src/agent/service.js +27 -23
- package/dist/src/agent/session/session-config-service.js +2 -2
- package/dist/src/agent/session/session-hydrator.js +1 -1
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/filesystem-watcher.js +1 -1
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +2 -2
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manager.js +1 -1
- package/dist/src/agent/skills/skill-sources.js +1 -1
- package/dist/src/agent/source-context/index.js +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +8 -8
- package/dist/src/agent/tool-manuals/xopc-configuration.d.ts +2 -2
- package/dist/src/agent/tool-manuals/xopc-configuration.js +37 -4
- package/dist/src/agent/tools/create-share-tool.js +2 -2
- package/dist/src/agent/tools/delegate-tool.js +3 -3
- package/dist/src/agent/tools/exec-command.js +1 -1
- package/dist/src/agent/tools/executor.js +1 -1
- package/dist/src/agent/tools/factory.js +20 -20
- package/dist/src/agent/tools/fetch-text.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +2 -2
- package/dist/src/agent/tools/index.js +4 -4
- package/dist/src/agent/tools/list-dir.js +1 -1
- package/dist/src/agent/tools/mcp-setup-tool.js +6 -2
- package/dist/src/agent/tools/personal-attention-tool.js +2 -2
- package/dist/src/agent/tools/personal-read-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-result-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-tool.js +4 -4
- package/dist/src/agent/tools/personal-result-tool.js +1 -1
- package/dist/src/agent/tools/personal-task-tool.js +5 -5
- package/dist/src/agent/tools/phone-use-tool.js +1 -1
- package/dist/src/agent/tools/publish-artifacts.js +1 -1
- package/dist/src/agent/tools/read.js +1 -1
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/agent/tools/send-media.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/task-collaboration-tool.js +2 -2
- package/dist/src/agent/tools/tts-tool.js +1 -1
- package/dist/src/agent/tools/user-context-tool.js +2 -2
- package/dist/src/agent/tools/web.js +1 -1
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.d.ts +1 -0
- package/dist/src/agent/tools/xopc-use-tool.js +32 -11
- package/dist/src/agent/transcript/index.js +2 -2
- package/dist/src/agent/transcript/transcript-hygiene.js +2 -2
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-catalog/repository.js +1 -1
- package/dist/src/agent-matching/delegation-service.js +1 -1
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +1 -1
- package/dist/src/auth/oauth/openai.js +1 -1
- package/dist/src/auth/oauth/xopc-cloud.js +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/automations/api/routes.js +15 -7
- package/dist/src/automations/capabilities/drafts.js +1 -1
- package/dist/src/automations/capabilities/read.js +31 -3
- package/dist/src/automations/capabilities/write.js +1 -1
- package/dist/src/automations/configuration-conversation.js +1 -1
- package/dist/src/automations/delivery/delivery-router.js +1 -1
- package/dist/src/automations/domain/index.js +1 -1
- package/dist/src/automations/domain/types.d.ts +2 -0
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/index.js +2 -2
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/automations/service/automation-service.d.ts +7 -0
- package/dist/src/automations/service/automation-service.js +11 -4
- package/dist/src/automations/storage/automation-run-repository.d.ts +11 -2
- package/dist/src/automations/storage/automation-run-repository.js +28 -24
- package/dist/src/automations/storage/index.js +2 -2
- package/dist/src/browser/native-messaging-host.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +2 -2
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/capabilities/store-connector.js +2 -2
- package/dist/src/channels/attachments/voice-stt-webchat.js +1 -1
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/outbound-sender.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +9 -9
- package/dist/src/channels/pairing/pairing-store.js +6 -6
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +2 -2
- package/dist/src/chat-commands/builtins/session.js +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +1 -1
- package/dist/src/chat-commands/builtins/tts.js +1 -1
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/chat-commands/index.js +3 -3
- package/dist/src/cli/commands/agent.js +7 -7
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
- package/dist/src/cli/commands/extension-agent-plugin.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +1 -1
- package/dist/src/cli/commands/extension.js +2 -2
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/models.js +3 -3
- package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/project.js +1 -1
- package/dist/src/cli/commands/skills.js +2 -2
- package/dist/src/cli/commands/tunnel.js +4 -4
- package/dist/src/cli/extension-cli-register.js +5 -5
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +3 -3
- package/dist/src/cli/utils/session.js +1 -1
- package/dist/src/computer/flows.js +1 -1
- package/dist/src/computer/model-adapter.js +1 -1
- package/dist/src/computer/model-policy.js +1 -1
- package/dist/src/computer/runtime.js +4 -4
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.d.ts +6 -0
- package/dist/src/config/models-json.js +10 -5
- package/dist/src/config/schema.d.ts +3 -0
- package/dist/src/config/schema.js +3 -2
- package/dist/src/connectors/cli/authorization.js +1 -1
- package/dist/src/connectors/composio-sessions.js +1 -1
- package/dist/src/connectors/composio.js +1 -1
- package/dist/src/connectors/connected-source-ingestion.js +2 -2
- package/dist/src/connectors/connected-source-understanding.js +5 -5
- package/dist/src/connectors/connection-recovery-service.js +4 -4
- package/dist/src/connectors/content-enrichment.js +1 -1
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/connectors/instances.js +1 -1
- package/dist/src/connectors/runtime-adapter-registry.js +2 -2
- package/dist/src/discussions/live-worker.js +1 -1
- package/dist/src/discussions/sealer.js +1 -1
- package/dist/src/endpoint-tools/index.js +1 -1
- package/dist/src/endpoint-tools/runtime.js +2 -2
- package/dist/src/execution-environments/local-worktree-manager.js +1 -1
- package/dist/src/extensions/activation-context.js +3 -3
- package/dist/src/extensions/agent-plugins/auth.js +1 -1
- package/dist/src/extensions/agent-plugins/setup.d.ts +1 -0
- package/dist/src/extensions/agent-plugins/setup.js +1 -0
- package/dist/src/extensions/agent-plugins/skill-catalog.js +3 -3
- package/dist/src/extensions/agent-plugins/source-http-fetch.js +1 -1
- package/dist/src/extensions/agent-plugins/validation.js +1 -1
- package/dist/src/extensions/api.js +3 -3
- package/dist/src/extensions/bundled-extension-activation.js +1 -1
- package/dist/src/extensions/index.js +3 -3
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/media.js +1 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/device-routes.js +1 -1
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js +2 -2
- package/dist/src/gateway/hono/oauth-async.js +1 -1
- package/dist/src/gateway/hono/routes/agent-plugins.js +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +4 -4
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/context-sources.js +1 -1
- package/dist/src/gateway/hono/routes/endpoint-tools.js +1 -1
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/location-sharing.js +1 -1
- package/dist/src/gateway/hono/routes/mcp.js +2 -2
- package/dist/src/gateway/hono/routes/memory-learning.js +3 -3
- package/dist/src/gateway/hono/routes/models.js +16 -9
- package/dist/src/gateway/hono/routes/notes.js +3 -3
- package/dist/src/gateway/hono/routes/phone-dependencies.js +1 -1
- package/dist/src/gateway/hono/routes/phone-setup.js +3 -2
- package/dist/src/gateway/hono/routes/phone.js +3 -2
- package/dist/src/gateway/hono/routes/projects.js +5 -5
- package/dist/src/gateway/hono/routes/runtime-tools.js +1 -1
- package/dist/src/gateway/hono/routes/session-command-handler.js +2 -2
- package/dist/src/gateway/hono/routes/session-input-handler.js +5 -5
- package/dist/src/gateway/hono/routes/sessions.js +3 -3
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/side-chats.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +2 -6
- package/dist/src/gateway/hono/routes/user-model.js +7 -7
- package/dist/src/gateway/hono/routes/voice.js +7 -7
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/lock.js +11 -11
- package/dist/src/gateway/media-access.js +1 -1
- package/dist/src/gateway/mobile-privacy.js +2 -2
- package/dist/src/gateway/ports.js +6 -6
- package/dist/src/gateway/provider-model-setup.js +1 -1
- package/dist/src/gateway/server.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +2 -2
- package/dist/src/gateway/service/config-coordinator.d.ts +1 -1
- package/dist/src/gateway/service/config-coordinator.js +2 -2
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service/run-gateway-agent.js +6 -7
- package/dist/src/gateway/service/session-command-service.js +2 -2
- package/dist/src/gateway/service/session-input-coordinator.js +1 -1
- package/dist/src/gateway/service.js +44 -43
- package/dist/src/gateway/session-context-summary.js +4 -4
- package/dist/src/gateway/session-reset-service.js +1 -1
- package/dist/src/gateway/workspace-editor-path.js +2 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +5 -2
- package/dist/src/home-intelligence/evidence-presentation.d.ts +3 -0
- package/dist/src/home-intelligence/evidence-presentation.js +30 -0
- package/dist/src/home-intelligence/generator.d.ts +8 -0
- package/dist/src/home-intelligence/generator.js +17 -6
- package/dist/src/home-intelligence/policy.js +3 -0
- package/dist/src/imports/importService.js +1 -1
- package/dist/src/imports/inventory.js +2 -2
- package/dist/src/imports/productImport.js +1 -1
- package/dist/src/imports/runtime.js +1 -1
- package/dist/src/infra/gateway-processes.js +2 -2
- package/dist/src/infra/path-env.js +3 -3
- package/dist/src/infra/update-global.js +9 -9
- package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
- package/dist/src/knowledge/index.js +1 -1
- package/dist/src/knowledge-memory/repository.js +1 -1
- package/dist/src/knowledge-memory/usage-policy.js +1 -1
- package/dist/src/local-apps/service.js +3 -3
- package/dist/src/mcp/gateway-http-client.js +1 -1
- package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
- package/dist/src/memory-learning/repository.d.ts +6 -1
- package/dist/src/memory-learning/repository.js +10 -5
- package/dist/src/memory-learning/service.js +23 -1
- package/dist/src/memory-learning/source-learning.js +5 -5
- package/dist/src/memory-learning/task-receipts.js +1 -1
- package/dist/src/notes/agent-context.js +4 -4
- package/dist/src/notes/index.js +1 -1
- package/dist/src/notes/service.js +3 -3
- package/dist/src/observability/runtime.d.ts +2 -0
- package/dist/src/observability/runtime.js +12 -1
- package/dist/src/personal-agent/capability-service.js +2 -2
- package/dist/src/personal-agent/proactivity/routes.js +1 -1
- package/dist/src/personal-agent/proactivity/service.js +7 -7
- package/dist/src/personal-agent/prompt-context.js +7 -7
- package/dist/src/personal-agent/prompts.js +2 -2
- package/dist/src/personal-agent/reply-composer.js +9 -9
- package/dist/src/personal-agent/request-delivery.js +2 -2
- package/dist/src/personal-agent/request-service.js +7 -7
- package/dist/src/personal-agent/result-reader.js +1 -1
- package/dist/src/personal-agent/service.js +2 -2
- package/dist/src/phone/contracts.d.ts +2 -0
- package/dist/src/phone/contracts.js +1 -0
- package/dist/src/phone/model-adapter.d.ts +1 -1
- package/dist/src/phone/model-adapter.js +30 -7
- package/dist/src/phone/model-policy.d.ts +4 -0
- package/dist/src/phone/model-policy.js +30 -0
- package/dist/src/phone/repository.js +1 -1
- package/dist/src/phone/runtime.js +4 -4
- package/dist/src/phone/structured-model.d.ts +6 -0
- package/dist/src/phone/structured-model.js +87 -0
- package/dist/src/process/mcp-stdio-supervisor.d.ts +1 -0
- package/dist/src/process/mcp-stdio-supervisor.js +14 -0
- package/dist/src/projects/index.js +2 -2
- package/dist/src/projects/project-agent-suggestion.js +1 -1
- package/dist/src/projects/project-service.js +2 -2
- package/dist/src/projects/project-skill-service.js +2 -2
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/providers/model-catalog-types.d.ts +1 -1
- package/dist/src/providers/model-reference-auditor.js +3 -2
- package/dist/src/providers/presentation.js +5 -3
- package/dist/src/realtime/runtime.js +1 -1
- package/dist/src/remote-access/exposure-manager.js +1 -1
- package/dist/src/runtime-tools/archive.js +1 -1
- package/dist/src/runtime-tools/phone-dependencies.js +2 -2
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/store.js +5 -5
- package/dist/src/session/thinking-resolve.js +1 -1
- package/dist/src/share/hosted-session-share.js +2 -2
- package/dist/src/share/session-share-service.js +1 -1
- package/dist/src/share/share-store.js +1 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/share/site-proxy.js +1 -1
- package/dist/src/share/site-share-store.js +1 -1
- package/dist/src/storage/sqlite/connection.js +9 -9
- package/dist/src/storage/sqlite/schema.d.ts +2 -2
- package/dist/src/storage/sqlite/schema.js +7 -7
- package/dist/src/storage/sqlite/upgrades/261_session_input_task_origins.sql +6 -0
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/write.js +2 -2
- package/dist/src/tasks/home-query-service.js +1 -1
- package/dist/src/tasks/index.js +5 -5
- package/dist/src/tasks/task-allocation-service.js +5 -5
- package/dist/src/tasks/task-application-service.js +5 -5
- package/dist/src/tasks/task-collaboration-delivery.js +1 -1
- package/dist/src/tasks/task-context-assembler.js +2 -2
- package/dist/src/tasks/task-contract-planner.js +2 -2
- package/dist/src/tasks/task-criterion-review-repository.js +1 -1
- package/dist/src/tasks/task-handoff-service.js +1 -1
- package/dist/src/tasks/task-handoff.js +4 -4
- package/dist/src/tasks/task-main-update-decision-service.js +3 -3
- package/dist/src/tasks/task-model-call.js +1 -1
- package/dist/src/tasks/task-research-result.js +4 -4
- package/dist/src/tasks/task-result-delivery-repository.js +1 -1
- package/dist/src/tasks/task-result-delivery-service.js +2 -2
- package/dist/src/tasks/task-run-coordinator.js +3 -3
- package/dist/src/tasks/task-run-dispatcher.js +1 -1
- package/dist/src/tui/backends/embedded-backend.js +12 -12
- package/dist/src/tui/backends/gateway-realtime-backend.js +2 -2
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/tui-commands.js +5 -5
- package/dist/src/tui/tui-picker-overlay.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +3 -3
- package/dist/src/tui/tui.js +5 -5
- package/dist/src/tunnel/gateway-lifecycle.js +1 -1
- package/dist/src/user-context/access-policy.js +2 -2
- package/dist/src/user-context/extraction/registry.js +2 -2
- package/dist/src/user-model/bootstrap.js +1 -1
- package/dist/src/user-model/capture/executor.d.ts +1 -0
- package/dist/src/user-model/capture/executor.js +7 -7
- package/dist/src/user-model/capture/semantic.d.ts +3 -0
- package/dist/src/user-model/capture/semantic.js +14 -4
- package/dist/src/user-model/index.js +2 -2
- package/dist/src/user-model/usage-policy.js +1 -1
- package/dist/src/voice/platform-catalog.d.ts +1 -1
- package/dist/src/voice/realtime/memory-context.js +5 -5
- package/dist/src/voice/realtime/omniRoute.js +1 -1
- package/dist/src/voice/realtime/persona-context.js +1 -1
- package/dist/src/voice/realtime/runtime.js +4 -4
- package/dist/src/voice/stt/index.js +2 -2
- package/dist/src/voice/stt/preflight.js +1 -1
- package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
- package/dist/src/voice/stt/providers/bailian-plan-transcription.js +1 -1
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
- package/dist/src/voice/stt/transcribe-core.js +1 -1
- package/dist/src/voice/tts/index.js +3 -3
- package/dist/src/voice/tts/merge-config.js +1 -1
- package/dist/src/voice/tts/payload.js +1 -1
- package/dist/src/voice/tts/providers/bailian-plan-speech.js +1 -1
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
- package/dist/src/voice/tts/speak-core.js +1 -1
- package/dist/src/work-discovery/service.js +7 -7
- package/package.json +1 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-m1A8wF9p.js +0 -1
- package/dist/gateway/static/root/assets/automation-api-hRsGx-qe.js +0 -1
- package/dist/gateway/static/root/assets/automation-task-card-Bur78p68.js +0 -3
- package/dist/gateway/static/root/assets/automations-workspace-DEkDjxeU.js +0 -9
- package/dist/gateway/static/root/assets/capabilities-Bo2qEJhH.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Cr67ziwX.js +0 -8
- package/dist/gateway/static/root/assets/chat-page-D92AWJbh.js +0 -72
- package/dist/gateway/static/root/assets/composer-payload-handoff-BQXlFKf4.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-Vx8-MY0Y.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BHBOPF_q.js +0 -1
- package/dist/gateway/static/root/assets/home-page-B3sgqrl3.js +0 -2
- package/dist/gateway/static/root/assets/index-D4B6O8B3.js +0 -11
- package/dist/gateway/static/root/assets/index-DGWBJDAM.css +0 -1
- package/dist/gateway/static/root/assets/mcp-conversation-setup-page-CENs3hGU.js +0 -1
- package/dist/gateway/static/root/assets/messages-ByFlEbsu.js +0 -3
- package/dist/gateway/static/root/assets/model-selector-DCBmsHzj.js +0 -1
- package/dist/gateway/static/root/assets/note-image-lightbox-BFKZ7qJr.js +0 -1
- package/dist/gateway/static/root/assets/page-header-store-Du44NIEJ.js +0 -1
- package/dist/gateway/static/root/assets/phone-model-picker-DuZc5jYO.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-D9nnyvrI.js +0 -7
- package/dist/gateway/static/root/assets/route-preload-DI43HQV_.js +0 -2
- package/dist/gateway/static/root/assets/send-1f1Ntw6E.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BI4DMz4_.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-CS9m7Ipo.js +0 -2
- package/dist/gateway/static/root/assets/user-model-page-DIgPL3tN.js +0 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-4cZ26iaD.js +0 -1
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-DC9aG7Pl.js +0 -1
|
@@ -1 +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{t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as a,l as o,n as s,o as c}from"./locale-store-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as a,l as o,n as s,o as c}from"./locale-store-B7y-RVe8.js";import{t as l}from"./messages-DYDkJvXj.js";import{t as u}from"./skeleton-BI5TyibZ.js";import{i as d}from"./vendor-swr-CdRzEUwF.js";import{t as f}from"./button-Cc4hUNTt.js";var p=e(t(),1),m=n(),h=e=>a(`/api/projects/${encodeURIComponent(e)}/understanding`);function g(e){return c(h(e))}function _(e){return c(h(e),{method:`POST`})}function v(e,t){return c(h(e),{method:`PATCH`,body:JSON.stringify({content:t})})}function y(e){return e===`queued`||e===`probing`||e===`analyzing`}var b=r();function x(){let e=(0,m.c)(2),t=s(S),n;return e[0]===t?n=e[1]:(n=l(t),e[0]=t,e[1]=n),n.projectsPage.understanding}function S(e){return e.language}function C(e){let t=(0,m.c)(18),{checked:n,onChange:r,disabled:i}=e,a=x(),o=(0,p.useId)(),s;t[0]===r?s=t[1]:(s=e=>r(e.target.checked),t[0]=r,t[1]=s);let c;t[2]!==n||t[3]!==i||t[4]!==o||t[5]!==s?(c=(0,b.jsx)(`input`,{type:`checkbox`,"aria-describedby":o,className:`mt-1 accent-accent`,checked:n,disabled:i,onChange:s}),t[2]=n,t[3]=i,t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]===a.auto?l=t[8]:(l=(0,b.jsx)(`span`,{children:a.auto}),t[7]=a.auto,t[8]=l);let u;t[9]!==c||t[10]!==l?(u=(0,b.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2.5 text-sm text-fg`,children:[c,l]}),t[9]=c,t[10]=l,t[11]=u):u=t[11];let d;t[12]!==a.hint||t[13]!==o?(d=(0,b.jsx)(`p`,{id:o,className:`mt-1 pl-6 text-xs leading-5 text-fg-subtle`,children:a.hint}),t[12]=a.hint,t[13]=o,t[14]=d):d=t[14];let f;return t[15]!==u||t[16]!==d?(f=(0,b.jsxs)(`div`,{children:[u,d]}),t[15]=u,t[16]=d,t[17]=f):f=t[17],f}function w(e){let t=(0,m.c)(11),n=o(D),r=o(E),i;t[0]!==r||t[1]!==n||t[2]!==e?(i=r?[`project-understanding`,n,r,e]:null,t[0]=r,t[1]=n,t[2]=e,t[3]=i):i=t[3];let a;t[4]===e?a=t[5]:(a=()=>g(e),t[4]=e,t[5]=a);let s;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(s={refreshInterval:T,revalidateOnFocus:!1},t[6]=s):s=t[6];let c=d(i,a,s),{mutate:l}=c,u,f;return t[7]!==l||t[8]!==e?(u=()=>{let t=t=>{t.detail?.id===e&&l()};return window.addEventListener(`project-updated`,t),()=>window.removeEventListener(`project-updated`,t)},f=[l,e],t[7]=l,t[8]=e,t[9]=u,t[10]=f):(u=t[9],f=t[10]),(0,p.useEffect)(u,f),c}function T(e){return y(e?.status)?3e3:0}function E(e){return e.conversationId}function D(e){return e.baseUrl}function O({projectId:e,hasProjectFolder:t,onStarted:n,className:r}){let i=x(),{data:a,mutate:o}=w(e),[s,c]=(0,p.useState)(!1),[l,u]=(0,p.useState)(!1),d=y(a?.status),f=async()=>{c(!0),u(!1);try{await _(e),await o(),n?.()}catch{u(!0)}finally{c(!1)}};return t?(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`button`,{type:`button`,className:r??`text-xs text-fg-muted hover:text-fg disabled:opacity-50`,disabled:s||d,onClick:()=>void f(),children:d||s?i.running:a?.status===`failed`||a?.status===`canceled`?i.retry:a?.status===`completed`?i.refresh:i.start}),l?(0,b.jsx)(`p`,{role:`alert`,className:`px-2 text-xs text-danger`,children:i.failed}):null]}):(0,b.jsx)(A,{projectId:e})}function k({projectId:e,hasProjectFolder:t}){let n=x(),{data:r,error:i,isLoading:a,mutate:o}=w(e),[s,c]=(0,p.useState)(!1),[l,d]=(0,p.useState)(``),[m,h]=(0,p.useState)(!1),[g,_]=(0,p.useState)(!1),S=async()=>{h(!0),_(!1);try{await v(e,l),await o(),c(!1)}catch{_(!0)}finally{h(!1)}};return t?a?(0,b.jsx)(u,{className:`h-12 w-full rounded-xl`}):(0,b.jsxs)(`section`,{className:`rounded-xl border border-edge bg-surface-panel px-5 py-3`,children:[(0,b.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-fg-subtle`,children:[(0,b.jsx)(`span`,{children:y(r?.status)?n.running:r?.status===`failed`||r?.status===`canceled`||i?n.failed:n.title}),y(r?.status)?null:(0,b.jsx)(O,{projectId:e,hasProjectFolder:t})]}),r?.overview?(0,b.jsxs)(`details`,{className:`mt-2`,children:[(0,b.jsx)(`summary`,{className:`cursor-pointer text-sm text-fg-muted`,children:n.view}),s?(0,b.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,b.jsx)(`textarea`,{"aria-label":n.title,className:`min-h-48 w-full rounded-lg border border-edge bg-surface-base p-3 text-sm text-fg`,value:l,onChange:e=>d(e.target.value),maxLength:6e3,disabled:m}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(f,{onClick:()=>void S(),disabled:m||!l.trim(),children:n.save}),(0,b.jsx)(f,{variant:`ghost`,disabled:m,onClick:()=>c(!1),children:n.cancel})]}),g?(0,b.jsx)(`p`,{role:`alert`,className:`text-xs text-danger`,children:n.saveFailed}):null]}):(0,b.jsxs)(`div`,{className:`mt-3`,children:[(0,b.jsx)(`p`,{className:`whitespace-pre-wrap text-sm leading-6 text-fg-muted`,children:r.overview}),(0,b.jsx)(`button`,{type:`button`,className:`mt-2 text-xs text-fg-subtle hover:text-fg`,onClick:()=>{d(r.overview??``),c(!0)},children:n.edit})]})]}):null]}):(0,b.jsx)(`section`,{className:`rounded-xl border border-edge p-4`,children:(0,b.jsx)(A,{projectId:e})})}function A(e){let t=(0,m.c)(8),{projectId:n}=e,r=s(j)===`zh`,a=r?`未绑定项目文件夹`:`No project folder linked`,o;t[0]===a?o=t[1]:(o=(0,b.jsx)(`span`,{className:`text-fg-muted`,children:a}),t[0]=a,t[1]=o);let c=`/projects/${encodeURIComponent(n)}/settings`,l=r?`绑定文件夹`:`Link a folder`,u;t[2]!==c||t[3]!==l?(u=(0,b.jsx)(i,{className:`text-accent-fg hover:underline`,to:c,children:l}),t[2]=c,t[3]=l,t[4]=u):u=t[4];let d;return t[5]!==o||t[6]!==u?(d=(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs leading-5`,children:[o,u]}),t[5]=o,t[6]=u,t[7]=d):d=t[7],d}function j(e){return e.language}export{C as n,k as r,O as t};
|
package/dist/gateway/static/root/assets/{projects-page-BGy1pw9a.js → projects-page-Cp91_KzA.js}
RENAMED
|
@@ -1 +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{t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as a}from"./locale-store-Br7IfbXK.js";import{t as ee}from"./messages-ByFlEbsu.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./dist-BGTk37IG.js";import{t as p}from"./archive-Dz0hferG.js";import{t as m}from"./arrow-right-DSSvoX71.js";import{t as h}from"./working-directory-picker-modal-GFwVefVA.js";import{n as g,r as _}from"./popover-select-CEMWIrtY.js";import{t as te}from"./folder-kanban-CpLlFI1o.js";import{t as v}from"./folder-open-CyzJ19I9.js";import{t as y}from"./loader-circle-CifKLtgG.js";import{n as b,t as x}from"./pin-off-BMRv-Kxr.js";import{t as S}from"./plus-Q2yW6OE7.js";import{t as ne}from"./rotate-ccw-JM1TBLpp.js";import{t as C}from"./search-DA7gz22f.js";import{t as w}from"./x-B_N4OPjy.js";import{t as T}from"./cn-0WouolD0.js";import{t as E}from"./skeleton-BI5TyibZ.js";import{_ as D,d as O,f as k,m as A,n as j,t as M}from"./api-C3Tp9MkF.js";import{t as N}from"./button-Cc4hUNTt.js";import{t as P}from"./page-header-store-Du44NIEJ.js";import{n as re}from"./project-understanding-DLvxAoTT.js";import{t as ie}from"./use-directory-picker-C4p7AgWY.js";import{t as F}from"./date-formatters-DukWSVwc.js";var I=n(),L=e(t(),1),R=r();function z(e,t){if(e==null)return t;let n=new Date(e);return Number.isNaN(n.getTime())?t:F(n)}function ae(e){return[...e].sort((e,t)=>{let n=Number(!!t.pinnedAt)-Number(!!e.pinnedAt);return n===0?new Date(t.lastActiveAt??t.updatedAt).getTime()-new Date(e.lastActiveAt??e.updatedAt).getTime():n})}function oe(){let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,"aria-busy":!0,children:Array.from({length:6},B)}),e[0]=t):t=e[0],t}function B(e,t){return(0,R.jsx)(E,{className:`h-40 rounded-xl`},t)}function se(e){let t=(0,I.c)(59),{project:n,busy:r,onTogglePin:o,onToggleArchive:s}=e,c=a(V),l,u,d,f,h,g,_,v;if(t[0]!==c||t[1]!==n.brief||t[2]!==n.description||t[3]!==n.id||t[4]!==n.lastActiveAt||t[5]!==n.name||t[6]!==n.status||t[7]!==n.updatedAt||t[8]!==n.workspaceRoot){let e=ee(c).projectsPage;l=e.management,_=`flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`;let r;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-hover text-fg-muted`,children:(0,R.jsx)(te,{className:`size-4`,"aria-hidden":!0})}),t[17]=r):r=t[17];let a;t[18]===n.name?a=t[19]:(a=(0,R.jsx)(`h2`,{className:`truncate text-base font-semibold sm:text-sm text-fg`,children:n.name}),t[18]=n.name,t[19]=a);let o=(0,R.jsxs)(`div`,{className:`min-w-0`,children:[a,(0,R.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-subtle`,children:e.statuses[n.status]})]}),s;t[20]===o?s=t[21]:(s=(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[r,o]}),t[20]=o,t[21]=s);let p;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,R.jsx)(m,{className:`mt-2 size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0}),t[22]=p):p=t[22];let y;t[23]===s?y=t[24]:(y=(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[s,p]}),t[23]=s,t[24]=y),v=(0,R.jsxs)(i,{to:`/projects/${encodeURIComponent(n.id)}`,className:`group flex min-w-0 flex-1 flex-col rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[y,(0,R.jsx)(`p`,{className:`mt-3 line-clamp-2 min-h-10 text-sm leading-6 sm:text-xs sm:leading-5 text-fg-muted`,children:n.description||n.brief||e.noDescription})]}),g=`mt-3 flex shrink-0 items-end justify-between gap-3 border-t border-edge-subtle pt-3`,f=`min-w-0 text-xs text-fg-muted`,h=(0,R.jsx)(`p`,{className:`hidden truncate sm:block`,children:n.workspaceRoot||e.agentDefault}),u=`mt-1`,d=z(n.lastActiveAt??n.updatedAt,e.never),t[0]=c,t[1]=n.brief,t[2]=n.description,t[3]=n.id,t[4]=n.lastActiveAt,t[5]=n.name,t[6]=n.status,t[7]=n.updatedAt,t[8]=n.workspaceRoot,t[9]=l,t[10]=u,t[11]=d,t[12]=f,t[13]=h,t[14]=g,t[15]=_,t[16]=v}else l=t[9],u=t[10],d=t[11],f=t[12],h=t[13],g=t[14],_=t[15],v=t[16];let y;t[25]!==u||t[26]!==d?(y=(0,R.jsx)(`p`,{className:u,children:d}),t[25]=u,t[26]=d,t[27]=y):y=t[27];let S;t[28]!==f||t[29]!==h||t[30]!==y?(S=(0,R.jsxs)(`div`,{className:f,children:[h,y]}),t[28]=f,t[29]=h,t[30]=y,t[31]=S):S=t[31];let C=n.pinnedAt?l.unpin:l.pin,w=n.pinnedAt?l.unpin:l.pin,T;t[32]===n.pinnedAt?T=t[33]:(T=n.pinnedAt?(0,R.jsx)(x,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(b,{className:`size-4`,"aria-hidden":!0}),t[32]=n.pinnedAt,t[33]=T);let E;t[34]!==r||t[35]!==o||t[36]!==C||t[37]!==w||t[38]!==T?(E=(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:o,"aria-label":C,title:w,children:T}),t[34]=r,t[35]=o,t[36]=C,t[37]=w,t[38]=T,t[39]=E):E=t[39];let D=n.status===`archived`?l.restore:l.archive,O=n.status===`archived`?l.restore:l.archive,k;t[40]===n.status?k=t[41]:(k=n.status===`archived`?(0,R.jsx)(ne,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(p,{className:`size-4`,"aria-hidden":!0}),t[40]=n.status,t[41]=k);let A;t[42]!==r||t[43]!==s||t[44]!==D||t[45]!==O||t[46]!==k?(A=(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:s,"aria-label":D,title:O,children:k}),t[42]=r,t[43]=s,t[44]=D,t[45]=O,t[46]=k,t[47]=A):A=t[47];let j;t[48]!==E||t[49]!==A?(j=(0,R.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[E,A]}),t[48]=E,t[49]=A,t[50]=j):j=t[50];let M;t[51]!==j||t[52]!==g||t[53]!==S?(M=(0,R.jsxs)(`div`,{className:g,children:[S,j]}),t[51]=j,t[52]=g,t[53]=S,t[54]=M):M=t[54];let P;return t[55]!==M||t[56]!==_||t[57]!==v?(P=(0,R.jsxs)(`article`,{className:_,children:[v,M]}),t[55]=M,t[56]=_,t[57]=v,t[58]=P):P=t[58],P}function V(e){return e.language}function H(){let e=a(e=>e.language),t=ee(e),n=t.projectsPage,r=n.management,i=t.chat.workingDirectory,p=P(e=>e.setPageHeader),m=P(e=>e.clearPageHeader),[b,x]=(0,L.useState)([]),[ne,E]=(0,L.useState)(!0),[F,I]=(0,L.useState)(null),[z,B]=(0,L.useState)(``),[V,H]=(0,L.useState)(!1),[U,ce]=(0,L.useState)(`active`),[le,ue]=(0,L.useState)(null),[de,W]=(0,L.useState)(!1),[fe,G]=(0,L.useState)(null),[K,pe]=(0,L.useState)(!1),[q,me]=(0,L.useState)(!1),[J,he]=(0,L.useState)(``),[Y,ge]=(0,L.useState)(``),[X,_e]=(0,L.useState)(``),Z=ie({initialPath:X,onPicked:_e}),Q=(0,L.useRef)(0),$=(0,L.useCallback)(async(e=!1)=>{let t=++Q.current;e||(E(!0),I(null));try{let e=await O({limit:100,sortBy:`updatedAt`,sortOrder:`desc`});t===Q.current&&x(ae(e.items))}catch(n){!e&&t===Q.current&&I(n instanceof Error?n.message:String(n))}finally{t===Q.current&&E(!1)}},[]);(0,L.useEffect)(()=>($(),()=>{Q.current++}),[$]),(0,L.useEffect)(()=>{let e=()=>{$(!0)};return window.addEventListener(`project-resource-changed`,e),()=>{window.removeEventListener(`project-resource-changed`,e)}},[$]);let ve=(0,L.useMemo)(()=>{let e=z.trim().toLocaleLowerCase();return b.filter(e=>U===`all`||e.status===U).filter(t=>!e||[t.name,t.description,t.brief,t.workspaceRoot].filter(Boolean).some(t=>t.toLocaleLowerCase().includes(e)))},[U,b,z]),ye=(0,L.useMemo)(()=>(0,R.jsxs)(N,{type:`button`,variant:`primary`,className:`h-9 rounded-lg`,onClick:()=>W(!0),children:[(0,R.jsx)(S,{className:`size-4`,"aria-hidden":!0}),n.create]}),[n.create]);(0,L.useLayoutEffect)(()=>(p({startExtra:null,main:(0,R.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r.title}),end:ye}),()=>m()),[m,ye,r.title,p]);let be=(0,L.useCallback)(async e=>{e.preventDefault();let t=J.trim(),n=X.trim();if(!(!t||K)){pe(!0),G(null);try{let e=await j({autoUnderstand:!!X.trim()&&q,name:t,...Y.trim()?{description:Y.trim()}:{},...n?{workspaceRoot:n}:{}});x(t=>[e,...t.filter(t=>t.id!==e.id)]),he(``),ge(``),_e(``),me(!1),W(!1),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){G(e instanceof Error?e.message:String(e))}finally{pe(!1)}}},[K,Y,J,X,q]),xe=(0,L.useCallback)(async(e,t)=>{ue(e.id),I(null);try{let n;n=t===`pin`?e.pinnedAt?await D(e.id,e.version):await k(e.id,e.version):e.status===`archived`?await A(e.id,e.version):await M(e.id,e.version),x(e=>e.map(e=>e.id===n.id?n:e)),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){I(e instanceof Error?e.message:String(e))}finally{ue(null)}},[]),Se=[{id:`active`,label:n.statuses.active},{id:`paused`,label:n.statuses.paused},{id:`archived`,label:n.statuses.archived},{id:`all`,label:n.all}],Ce=Se.find(e=>e.id===U)?.label??n.all,we=r.resultCount.replace(`{{status}}`,Ce).replace(`{{count}}`,String(ve.length));return(0,R.jsxs)(`main`,{className:`mx-auto flex w-full max-w-7xl flex-1 flex-col gap-5 px-4 pb-7 pt-3 sm:px-6 lg:px-8 lg:pb-9 lg:pt-4`,children:[(0,R.jsx)(f,{open:de,onOpenChange:e=>{W(e),e||G(null)},children:(0,R.jsxs)(l,{children:[(0,R.jsx)(o,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,R.jsxs)(u,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(34rem,calc(100vh-2rem))] w-[min(38rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[(0,R.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,R.jsx)(d,{className:`text-base font-semibold text-fg`,children:n.createTitle}),(0,R.jsx)(s,{className:`mt-1 text-sm text-fg-muted`,children:n.createDescription})]}),(0,R.jsxs)(`form`,{onSubmit:be,className:`flex min-h-0 flex-1 flex-col`,children:[(0,R.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,R.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[n.projectName,(0,R.jsx)(`input`,{className:`h-10 rounded-lg border border-edge bg-surface-base px-3 font-normal outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:J,onChange:e=>he(e.target.value),maxLength:160})]}),(0,R.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[r.descriptionLabel,(0,R.jsx)(`textarea`,{className:`min-h-28 resize-none rounded-lg border border-edge bg-surface-base px-3 py-2 font-normal leading-6 outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:Y,onChange:e=>ge(e.target.value),maxLength:2e3,placeholder:r.descriptionPlaceholder})]}),(0,R.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,R.jsx)(`span`,{className:`font-medium text-fg`,children:n.workspaceRoot}),(0,R.jsxs)(`button`,{type:`button`,className:`flex min-h-12 w-full items-center gap-3 rounded-lg border border-edge bg-surface-base px-3 py-2 text-left outline-none transition-colors hover:bg-surface-hover focus-visible:border-accent focus-visible:ring-2 focus-visible:ring-accent/20 disabled:cursor-not-allowed disabled:opacity-60`,onClick:Z.pick,disabled:K||Z.picking,children:[Z.picking?(0,R.jsx)(y,{className:`size-5 shrink-0 animate-spin text-accent`,"aria-hidden":!0}):(0,R.jsx)(v,{className:`size-5 shrink-0 text-accent`,"aria-hidden":!0}),(0,R.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:X?i.chooseFolder:i.selectWorkingDirectory}),(0,R.jsx)(`span`,{className:T(`mt-0.5 block truncate font-mono text-xs font-normal`,X?`text-fg-muted`:`text-fg-subtle`),title:X||void 0,children:X||n.workspaceSelectionPlaceholder})]})]}),(0,R.jsx)(`p`,{className:`text-xs font-normal text-fg-muted`,children:n.workspaceSelectionHint})]}),(0,R.jsx)(re,{checked:q,onChange:me,disabled:K||!X.trim()}),fe?(0,R.jsx)(`p`,{className:`rounded-lg bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:fe}):null]}),(0,R.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,R.jsx)(c,{asChild:!0,children:(0,R.jsx)(N,{type:`button`,variant:`ghost`,children:n.cancel})}),(0,R.jsx)(N,{type:`submit`,variant:`primary`,disabled:K||!J.trim(),children:K?n.home.creating:n.create})]})]})]})]})}),Z.hasNativePicker?null:(0,R.jsx)(h,{open:Z.modalOpen,onOpenChange:Z.setModalOpen,initialAbsolutePath:X||void 0,onConfirm:Z.confirmPick,wd:i}),(0,R.jsxs)(`section`,{className:`flex min-h-10 flex-wrap items-center justify-between gap-3`,"aria-label":r.filterLabel,children:[(0,R.jsx)(`p`,{className:`text-sm font-medium text-fg-muted`,"aria-live":`polite`,children:we}),(0,R.jsxs)(`div`,{className:T(`ml-auto flex min-w-0 items-center justify-end gap-2`,V&&`w-full sm:w-auto`),children:[V?(0,R.jsxs)(`div`,{className:`relative min-w-0 flex-1 sm:w-64 sm:flex-none`,children:[(0,R.jsx)(C,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,R.jsx)(`input`,{autoFocus:!0,className:`h-11 w-full rounded-lg border border-edge bg-surface-panel pl-9 pr-12 text-base sm:h-9 sm:text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:z,onChange:e=>B(e.target.value),placeholder:n.searchPlaceholder,"aria-label":n.searchPlaceholder}),(0,R.jsx)(`button`,{type:`button`,className:`touch-target absolute right-0 top-1/2 flex size-6 -translate-y-1/2 items-center justify-center rounded-md text-fg-subtle transition-colors hover:bg-surface-hover hover:text-fg`,onClick:()=>{B(``),H(!1)},"aria-label":r.clearSearch,title:r.clearSearch,children:(0,R.jsx)(w,{className:`size-3.5`,"aria-hidden":!0})})]}):(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,onClick:()=>H(!0),"aria-label":n.searchPlaceholder,title:n.searchPlaceholder,children:(0,R.jsx)(C,{className:`size-4`,"aria-hidden":!0})}),(0,R.jsx)(g,{className:`w-28 sm:w-32`,triggerClassName:`h-9 border-edge bg-surface-panel px-2.5 text-xs font-medium`,contentClassName:`min-w-36`,align:`end`,value:U,"aria-label":r.filterLabel,onChange:e=>ce(e.target.value),children:Se.map(e=>(0,R.jsx)(_,{value:e.id,children:e.label},e.id))})]})]}),F?(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-xl border border-danger/25 bg-danger-soft px-4 py-3 text-sm text-danger`,role:`alert`,children:[(0,R.jsx)(`span`,{children:F}),(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`h-8 px-2`,onClick:()=>void $(),children:n.home.retry})]}):null,ne?(0,R.jsx)(oe,{}):ve.length?(0,R.jsx)(`section`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,children:ve.map(e=>(0,R.jsx)(se,{project:e,busy:le===e.id,onTogglePin:()=>void xe(e,`pin`),onToggleArchive:()=>void xe(e,`archive`)},e.id))}):F?null:(0,R.jsxs)(`section`,{className:`py-16 text-center`,children:[(0,R.jsx)(te,{className:`mx-auto size-7 text-fg-subtle`,"aria-hidden":!0}),(0,R.jsx)(`h2`,{className:`mt-3 text-sm font-semibold text-fg`,children:b.length===0?e===`zh`?`创建第一个项目`:`Create your first project`:r.emptyTitle}),(0,R.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:b.length===0?e===`zh`?`把相关对话、任务和资料放在一起。`:`Keep related conversations, tasks and materials together.`:r.emptyHint}),(0,R.jsx)(N,{className:`mt-4`,onClick:()=>{b.length===0?W(!0):(B(``),ce(`all`))},children:b.length===0?n.create:e===`zh`?`清除筛选`:`Clear filters`})]})]})}export{H as ProjectsPage};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as a}from"./locale-store-B7y-RVe8.js";import{t as ee}from"./messages-DYDkJvXj.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./dist-BGTk37IG.js";import{t as p}from"./archive-Dz0hferG.js";import{t as m}from"./arrow-right-DSSvoX71.js";import{t as h}from"./working-directory-picker-modal-Dv1HUipe.js";import{n as g,r as _}from"./popover-select-CEMWIrtY.js";import{t as te}from"./folder-kanban-CpLlFI1o.js";import{t as v}from"./folder-open-CyzJ19I9.js";import{t as y}from"./loader-circle-CifKLtgG.js";import{n as b,t as x}from"./pin-off-BMRv-Kxr.js";import{t as S}from"./plus-Q2yW6OE7.js";import{t as ne}from"./rotate-ccw-JM1TBLpp.js";import{t as C}from"./search-DA7gz22f.js";import{t as w}from"./x-B_N4OPjy.js";import{t as T}from"./cn-0WouolD0.js";import{t as E}from"./skeleton-BI5TyibZ.js";import{_ as D,d as O,f as k,m as A,n as j,t as M}from"./api-C-9J9ghT.js";import{t as N}from"./button-Cc4hUNTt.js";import{t as P}from"./page-header-store-CoKMiYoi.js";import{n as re}from"./project-understanding-CrSkrJnM.js";import{t as ie}from"./use-directory-picker-C4p7AgWY.js";import{t as F}from"./date-formatters-DukWSVwc.js";var I=n(),L=e(t(),1),R=r();function z(e,t){if(e==null)return t;let n=new Date(e);return Number.isNaN(n.getTime())?t:F(n)}function ae(e){return[...e].sort((e,t)=>{let n=Number(!!t.pinnedAt)-Number(!!e.pinnedAt);return n===0?new Date(t.lastActiveAt??t.updatedAt).getTime()-new Date(e.lastActiveAt??e.updatedAt).getTime():n})}function oe(){let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,"aria-busy":!0,children:Array.from({length:6},B)}),e[0]=t):t=e[0],t}function B(e,t){return(0,R.jsx)(E,{className:`h-40 rounded-xl`},t)}function se(e){let t=(0,I.c)(59),{project:n,busy:r,onTogglePin:o,onToggleArchive:s}=e,c=a(V),l,u,d,f,h,g,_,v;if(t[0]!==c||t[1]!==n.brief||t[2]!==n.description||t[3]!==n.id||t[4]!==n.lastActiveAt||t[5]!==n.name||t[6]!==n.status||t[7]!==n.updatedAt||t[8]!==n.workspaceRoot){let e=ee(c).projectsPage;l=e.management,_=`flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`;let r;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,R.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-hover text-fg-muted`,children:(0,R.jsx)(te,{className:`size-4`,"aria-hidden":!0})}),t[17]=r):r=t[17];let a;t[18]===n.name?a=t[19]:(a=(0,R.jsx)(`h2`,{className:`truncate text-base font-semibold sm:text-sm text-fg`,children:n.name}),t[18]=n.name,t[19]=a);let o=(0,R.jsxs)(`div`,{className:`min-w-0`,children:[a,(0,R.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-subtle`,children:e.statuses[n.status]})]}),s;t[20]===o?s=t[21]:(s=(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[r,o]}),t[20]=o,t[21]=s);let p;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,R.jsx)(m,{className:`mt-2 size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0}),t[22]=p):p=t[22];let y;t[23]===s?y=t[24]:(y=(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[s,p]}),t[23]=s,t[24]=y),v=(0,R.jsxs)(i,{to:`/projects/${encodeURIComponent(n.id)}`,className:`group flex min-w-0 flex-1 flex-col rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[y,(0,R.jsx)(`p`,{className:`mt-3 line-clamp-2 min-h-10 text-sm leading-6 sm:text-xs sm:leading-5 text-fg-muted`,children:n.description||n.brief||e.noDescription})]}),g=`mt-3 flex shrink-0 items-end justify-between gap-3 border-t border-edge-subtle pt-3`,f=`min-w-0 text-xs text-fg-muted`,h=(0,R.jsx)(`p`,{className:`hidden truncate sm:block`,children:n.workspaceRoot||e.agentDefault}),u=`mt-1`,d=z(n.lastActiveAt??n.updatedAt,e.never),t[0]=c,t[1]=n.brief,t[2]=n.description,t[3]=n.id,t[4]=n.lastActiveAt,t[5]=n.name,t[6]=n.status,t[7]=n.updatedAt,t[8]=n.workspaceRoot,t[9]=l,t[10]=u,t[11]=d,t[12]=f,t[13]=h,t[14]=g,t[15]=_,t[16]=v}else l=t[9],u=t[10],d=t[11],f=t[12],h=t[13],g=t[14],_=t[15],v=t[16];let y;t[25]!==u||t[26]!==d?(y=(0,R.jsx)(`p`,{className:u,children:d}),t[25]=u,t[26]=d,t[27]=y):y=t[27];let S;t[28]!==f||t[29]!==h||t[30]!==y?(S=(0,R.jsxs)(`div`,{className:f,children:[h,y]}),t[28]=f,t[29]=h,t[30]=y,t[31]=S):S=t[31];let C=n.pinnedAt?l.unpin:l.pin,w=n.pinnedAt?l.unpin:l.pin,T;t[32]===n.pinnedAt?T=t[33]:(T=n.pinnedAt?(0,R.jsx)(x,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(b,{className:`size-4`,"aria-hidden":!0}),t[32]=n.pinnedAt,t[33]=T);let E;t[34]!==r||t[35]!==o||t[36]!==C||t[37]!==w||t[38]!==T?(E=(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:o,"aria-label":C,title:w,children:T}),t[34]=r,t[35]=o,t[36]=C,t[37]=w,t[38]=T,t[39]=E):E=t[39];let D=n.status===`archived`?l.restore:l.archive,O=n.status===`archived`?l.restore:l.archive,k;t[40]===n.status?k=t[41]:(k=n.status===`archived`?(0,R.jsx)(ne,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(p,{className:`size-4`,"aria-hidden":!0}),t[40]=n.status,t[41]=k);let A;t[42]!==r||t[43]!==s||t[44]!==D||t[45]!==O||t[46]!==k?(A=(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:s,"aria-label":D,title:O,children:k}),t[42]=r,t[43]=s,t[44]=D,t[45]=O,t[46]=k,t[47]=A):A=t[47];let j;t[48]!==E||t[49]!==A?(j=(0,R.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[E,A]}),t[48]=E,t[49]=A,t[50]=j):j=t[50];let M;t[51]!==j||t[52]!==g||t[53]!==S?(M=(0,R.jsxs)(`div`,{className:g,children:[S,j]}),t[51]=j,t[52]=g,t[53]=S,t[54]=M):M=t[54];let P;return t[55]!==M||t[56]!==_||t[57]!==v?(P=(0,R.jsxs)(`article`,{className:_,children:[v,M]}),t[55]=M,t[56]=_,t[57]=v,t[58]=P):P=t[58],P}function V(e){return e.language}function H(){let e=a(e=>e.language),t=ee(e),n=t.projectsPage,r=n.management,i=t.chat.workingDirectory,p=P(e=>e.setPageHeader),m=P(e=>e.clearPageHeader),[b,x]=(0,L.useState)([]),[ne,E]=(0,L.useState)(!0),[F,I]=(0,L.useState)(null),[z,B]=(0,L.useState)(``),[V,H]=(0,L.useState)(!1),[U,ce]=(0,L.useState)(`active`),[le,ue]=(0,L.useState)(null),[de,W]=(0,L.useState)(!1),[fe,G]=(0,L.useState)(null),[K,pe]=(0,L.useState)(!1),[q,me]=(0,L.useState)(!1),[J,he]=(0,L.useState)(``),[Y,ge]=(0,L.useState)(``),[X,_e]=(0,L.useState)(``),Z=ie({initialPath:X,onPicked:_e}),Q=(0,L.useRef)(0),$=(0,L.useCallback)(async(e=!1)=>{let t=++Q.current;e||(E(!0),I(null));try{let e=await O({limit:100,sortBy:`updatedAt`,sortOrder:`desc`});t===Q.current&&x(ae(e.items))}catch(n){!e&&t===Q.current&&I(n instanceof Error?n.message:String(n))}finally{t===Q.current&&E(!1)}},[]);(0,L.useEffect)(()=>($(),()=>{Q.current++}),[$]),(0,L.useEffect)(()=>{let e=()=>{$(!0)};return window.addEventListener(`project-resource-changed`,e),()=>{window.removeEventListener(`project-resource-changed`,e)}},[$]);let ve=(0,L.useMemo)(()=>{let e=z.trim().toLocaleLowerCase();return b.filter(e=>U===`all`||e.status===U).filter(t=>!e||[t.name,t.description,t.brief,t.workspaceRoot].filter(Boolean).some(t=>t.toLocaleLowerCase().includes(e)))},[U,b,z]),ye=(0,L.useMemo)(()=>(0,R.jsxs)(N,{type:`button`,variant:`primary`,className:`h-9 rounded-lg`,onClick:()=>W(!0),children:[(0,R.jsx)(S,{className:`size-4`,"aria-hidden":!0}),n.create]}),[n.create]);(0,L.useLayoutEffect)(()=>(p({startExtra:null,main:(0,R.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r.title}),end:ye}),()=>m()),[m,ye,r.title,p]);let be=(0,L.useCallback)(async e=>{e.preventDefault();let t=J.trim(),n=X.trim();if(!(!t||K)){pe(!0),G(null);try{let e=await j({autoUnderstand:!!X.trim()&&q,name:t,...Y.trim()?{description:Y.trim()}:{},...n?{workspaceRoot:n}:{}});x(t=>[e,...t.filter(t=>t.id!==e.id)]),he(``),ge(``),_e(``),me(!1),W(!1),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){G(e instanceof Error?e.message:String(e))}finally{pe(!1)}}},[K,Y,J,X,q]),xe=(0,L.useCallback)(async(e,t)=>{ue(e.id),I(null);try{let n;n=t===`pin`?e.pinnedAt?await D(e.id,e.version):await k(e.id,e.version):e.status===`archived`?await A(e.id,e.version):await M(e.id,e.version),x(e=>e.map(e=>e.id===n.id?n:e)),window.dispatchEvent(new CustomEvent(`project-updated`,{detail:{id:e.id}}))}catch(e){I(e instanceof Error?e.message:String(e))}finally{ue(null)}},[]),Se=[{id:`active`,label:n.statuses.active},{id:`paused`,label:n.statuses.paused},{id:`archived`,label:n.statuses.archived},{id:`all`,label:n.all}],Ce=Se.find(e=>e.id===U)?.label??n.all,we=r.resultCount.replace(`{{status}}`,Ce).replace(`{{count}}`,String(ve.length));return(0,R.jsxs)(`main`,{className:`mx-auto flex w-full max-w-7xl flex-1 flex-col gap-5 px-4 pb-7 pt-3 sm:px-6 lg:px-8 lg:pb-9 lg:pt-4`,children:[(0,R.jsx)(f,{open:de,onOpenChange:e=>{W(e),e||G(null)},children:(0,R.jsxs)(l,{children:[(0,R.jsx)(o,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,R.jsxs)(u,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(34rem,calc(100vh-2rem))] w-[min(38rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float focus:outline-none`,children:[(0,R.jsxs)(`div`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,R.jsx)(d,{className:`text-base font-semibold text-fg`,children:n.createTitle}),(0,R.jsx)(s,{className:`mt-1 text-sm text-fg-muted`,children:n.createDescription})]}),(0,R.jsxs)(`form`,{onSubmit:be,className:`flex min-h-0 flex-1 flex-col`,children:[(0,R.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-5 py-4`,children:[(0,R.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[n.projectName,(0,R.jsx)(`input`,{className:`h-10 rounded-lg border border-edge bg-surface-base px-3 font-normal outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:J,onChange:e=>he(e.target.value),maxLength:160})]}),(0,R.jsxs)(`label`,{className:`grid gap-1.5 text-sm font-medium text-fg`,children:[r.descriptionLabel,(0,R.jsx)(`textarea`,{className:`min-h-28 resize-none rounded-lg border border-edge bg-surface-base px-3 py-2 font-normal leading-6 outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`,value:Y,onChange:e=>ge(e.target.value),maxLength:2e3,placeholder:r.descriptionPlaceholder})]}),(0,R.jsxs)(`div`,{className:`grid gap-1.5 text-sm`,children:[(0,R.jsx)(`span`,{className:`font-medium text-fg`,children:n.workspaceRoot}),(0,R.jsxs)(`button`,{type:`button`,className:`flex min-h-12 w-full items-center gap-3 rounded-lg border border-edge bg-surface-base px-3 py-2 text-left outline-none transition-colors hover:bg-surface-hover focus-visible:border-accent focus-visible:ring-2 focus-visible:ring-accent/20 disabled:cursor-not-allowed disabled:opacity-60`,onClick:Z.pick,disabled:K||Z.picking,children:[Z.picking?(0,R.jsx)(y,{className:`size-5 shrink-0 animate-spin text-accent`,"aria-hidden":!0}):(0,R.jsx)(v,{className:`size-5 shrink-0 text-accent`,"aria-hidden":!0}),(0,R.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:X?i.chooseFolder:i.selectWorkingDirectory}),(0,R.jsx)(`span`,{className:T(`mt-0.5 block truncate font-mono text-xs font-normal`,X?`text-fg-muted`:`text-fg-subtle`),title:X||void 0,children:X||n.workspaceSelectionPlaceholder})]})]}),(0,R.jsx)(`p`,{className:`text-xs font-normal text-fg-muted`,children:n.workspaceSelectionHint})]}),(0,R.jsx)(re,{checked:q,onChange:me,disabled:K||!X.trim()}),fe?(0,R.jsx)(`p`,{className:`rounded-lg bg-danger-soft px-3 py-2 text-xs text-danger`,role:`alert`,children:fe}):null]}),(0,R.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,R.jsx)(c,{asChild:!0,children:(0,R.jsx)(N,{type:`button`,variant:`ghost`,children:n.cancel})}),(0,R.jsx)(N,{type:`submit`,variant:`primary`,disabled:K||!J.trim(),children:K?n.home.creating:n.create})]})]})]})]})}),Z.hasNativePicker?null:(0,R.jsx)(h,{open:Z.modalOpen,onOpenChange:Z.setModalOpen,initialAbsolutePath:X||void 0,onConfirm:Z.confirmPick,wd:i}),(0,R.jsxs)(`section`,{className:`flex min-h-10 flex-wrap items-center justify-between gap-3`,"aria-label":r.filterLabel,children:[(0,R.jsx)(`p`,{className:`text-sm font-medium text-fg-muted`,"aria-live":`polite`,children:we}),(0,R.jsxs)(`div`,{className:T(`ml-auto flex min-w-0 items-center justify-end gap-2`,V&&`w-full sm:w-auto`),children:[V?(0,R.jsxs)(`div`,{className:`relative min-w-0 flex-1 sm:w-64 sm:flex-none`,children:[(0,R.jsx)(C,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,R.jsx)(`input`,{autoFocus:!0,className:`h-11 w-full rounded-lg border border-edge bg-surface-panel pl-9 pr-12 text-base sm:h-9 sm:text-sm text-fg outline-none placeholder:text-fg-muted focus:border-accent`,value:z,onChange:e=>B(e.target.value),placeholder:n.searchPlaceholder,"aria-label":n.searchPlaceholder}),(0,R.jsx)(`button`,{type:`button`,className:`touch-target absolute right-0 top-1/2 flex size-6 -translate-y-1/2 items-center justify-center rounded-md text-fg-subtle transition-colors hover:bg-surface-hover hover:text-fg`,onClick:()=>{B(``),H(!1)},"aria-label":r.clearSearch,title:r.clearSearch,children:(0,R.jsx)(w,{className:`size-3.5`,"aria-hidden":!0})})]}):(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,onClick:()=>H(!0),"aria-label":n.searchPlaceholder,title:n.searchPlaceholder,children:(0,R.jsx)(C,{className:`size-4`,"aria-hidden":!0})}),(0,R.jsx)(g,{className:`w-28 sm:w-32`,triggerClassName:`h-9 border-edge bg-surface-panel px-2.5 text-xs font-medium`,contentClassName:`min-w-36`,align:`end`,value:U,"aria-label":r.filterLabel,onChange:e=>ce(e.target.value),children:Se.map(e=>(0,R.jsx)(_,{value:e.id,children:e.label},e.id))})]})]}),F?(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-xl border border-danger/25 bg-danger-soft px-4 py-3 text-sm text-danger`,role:`alert`,children:[(0,R.jsx)(`span`,{children:F}),(0,R.jsx)(N,{type:`button`,variant:`ghost`,className:`h-8 px-2`,onClick:()=>void $(),children:n.home.retry})]}):null,ne?(0,R.jsx)(oe,{}):ve.length?(0,R.jsx)(`section`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,children:ve.map(e=>(0,R.jsx)(se,{project:e,busy:le===e.id,onTogglePin:()=>void xe(e,`pin`),onToggleArchive:()=>void xe(e,`archive`)},e.id))}):F?null:(0,R.jsxs)(`section`,{className:`py-16 text-center`,children:[(0,R.jsx)(te,{className:`mx-auto size-7 text-fg-subtle`,"aria-hidden":!0}),(0,R.jsx)(`h2`,{className:`mt-3 text-sm font-semibold text-fg`,children:b.length===0?e===`zh`?`创建第一个项目`:`Create your first project`:r.emptyTitle}),(0,R.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:b.length===0?e===`zh`?`把相关对话、任务和资料放在一起。`:`Keep related conversations, tasks and materials together.`:r.emptyHint}),(0,R.jsx)(N,{className:`mt-4`,onClick:()=>{b.length===0?W(!0):(B(``),ce(`all`))},children:b.length===0?n.create:e===`zh`?`清除筛选`:`Clear filters`})]})]})}export{H as ProjectsPage};
|
package/dist/gateway/static/root/assets/{providers-api-DOnNfkwQ.js → providers-api-CBSC3jdu.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,o as t}from"./locale-store-
|
|
1
|
+
import{i as e,o as t}from"./locale-store-B7y-RVe8.js";import"./registry-api-QZEjziDq.js";import{n}from"./is-masked-secret-DOkL5b_X.js";import{i as r}from"./models-hub-cache-BUapaPTN.js";function i(e){return n(e)}async function a(){return(await t(e(`/api/providers/meta`))).payload?.providers??[]}function o(e){if(!e||typeof e!=`object`||!(`providers`in e))return{};let t=e.providers;if(!t||typeof t!=`object`||Array.isArray(t))return{};let n={};for(let[e,r]of Object.entries(t))typeof r==`string`&&(n[e]=r);return n}function s(e,t,n){let r=new Set(n.map(e=>e.provider));return e.map(e=>({...e,configured:e.configured||r.has(e.id),apiKey:t[e.id]??(e.activeKeySource===`extension`?``:e.configured||r.has(e.id)?`••••••••••••`:``)}))}async function c(n){await t(e(`/api/config`),{method:`PATCH`,body:JSON.stringify({providers:n})}),await r()}async function l(n){await t(e(`/api/providers/${encodeURIComponent(n)}/key`),{method:`DELETE`}),await r()}async function u(n){let r=await t(e(`/api/providers/${encodeURIComponent(n)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!r.ok||!r.payload)throw Error(r.error?.message??`Reveal failed`);return r.payload}export{c as a,s as i,a as n,o,i as r,u as s,l as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-DPHK1VkS.js";import{g as t,l as n,m as r,p as i,y as a}from"./discussion-annotation-sync-BXqNuZnx.js";var o=e(`inbox`,[[`polyline`,{points:`22 12 16 12 14 15 10 15 8 12 2 12`,key:`o97t9d`}],[`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`oot6mr`}]]),s=e(`notebook-text`,[[`path`,{d:`M2 6h4`,key:`aawbzj`}],[`path`,{d:`M2 10h4`,key:`l0bgd4`}],[`path`,{d:`M2 14h4`,key:`1gsvsf`}],[`path`,{d:`M2 18h4`,key:`1bu2t1`}],[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,key:`1nb95v`}],[`path`,{d:`M9.5 8h5`,key:`11mslq`}],[`path`,{d:`M9.5 12H16`,key:`ktog6x`}],[`path`,{d:`M9.5 16H14`,key:`p1seyn`}]]),c=e(`scan-search`,[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`m16 16-1.9-1.9`,key:`1dq9hf`}]]),l=7200*1e3,u=1024*1024*1024,d=8*1024*1024;function f(e){if((e?.epochs?.length??0)>1){let t=e?.epochs?.[0]?.savedThroughMs;return Number.isFinite(t)&&t>=0?t:null}let t=e?.mediaCoverage;return t?.version===1&&t.committedChunkCount===e?.chunkCount&&Number.isFinite(t.verifiedThroughMs)&&t.verifiedThroughMs>=0&&Number.isFinite(t.observedThroughMs)&&t.observedThroughMs>=t.verifiedThroughMs?t.verifiedThroughMs:null}function p(e){let{phase:t,detail:n}=e,r=e.draft??e.locallyFinalized,i=r?.saveOutcome===`interrupted`,a=t===`recording`?`recording`:t===`paused`?`paused`:t===`requesting_permission`||t===`waiting_for_audio`?`waitingAudio`:t===`stopping`?`stopping`:t===`error`||i?`interrupted`:`stopped`,o=f(r),s=!!r?.chunkCount&&r.state!==`recording`&&r.saveOutcome===`complete`&&(t===`stopped`||t===`idle`),c=t===`error`||r?.saveOutcome===`incomplete`?`saveFailed`:s?`localComplete`:o!==null&&o>0?`savedThrough`:r?.chunkCount?`savedUnknown`:`saving`,l=!!n?.discussion.audioAttachmentId&&!n.discussion.audioDeletedAt,u=n?.discussion.audioDeletedAt?`failed`:l?`available`:e.online?e.syncStage:`offline`,d=n?.discussion.status,p=d===`completed`?`aiComplete`:d===`needs_attention`?`aiFailed`:n?.processing?.nextAttemptAt?`aiRetrying`:d===`organizing`?`analyzing`:d===`sealing`?`transcribing`:a===`recording`&&(!e.liveAvailable||e.pendingText>0||(e.transcript?.stats?.failed??0)>0)?`textDelayed`:a===`recording`?`liveText`:`waitingSource`,m=!!r?.chunkCount&&(o===null||r?.mediaCoverage?.status!==`verified`);return{capture:a,save:c,sync:u,ai:p,hasInterruptions:(r?.epochs?.length??0)>1,savedThroughMs:o,localComplete:s,interrupted:i,timingUncertain:m}}var m=new Set([408125543,357149030,374648427,174,524531317,160]),h=16*1024*1024;function g(e,t,n=!1){if(t>=e.length)return;let r=1;for(;r<=8&&!(e[t]&128>>r-1);)r++;if(r>(n?4:8))throw Error(`Invalid EBML integer`);if(t+r>e.length)return;let i=n?e[t]:e[t]&255>>r,a=!n&&i===255>>r;for(let n=1;n<r;n++)i=i*256+e[t+n],a&&=e[t+n]===255;if(!a&&!Number.isSafeInteger(i))throw Error(`Oversized EBML integer`);return{value:i,width:r,unknown:a}}function _(e){if(!e.length||e.length>6)throw Error(`Invalid media timestamp`);return e.reduce((e,t)=>e*256+t,0)}var v=class{mimeType;pending=new Uint8Array;offset=0;stack=[];timeScaleMs=1;clusterTime=0;track=0;trackType=0;opus=!1;audioTrack=0;observed=0;decoded=0;lastStart=-1/0;prefix=0;failed=!1;gap=!1;constructor(e){this.mimeType=e}snapshot(){return{version:1,verifiedThroughMs:Math.floor(this.prefix),observedThroughMs:Math.floor(this.observed),status:this.gap?`gap`:this.failed||!this.audioTrack||!this.observed?`unknown`:`verified`}}packetClock(){return{durationMs:Math.floor(this.decoded),verified:!this.failed&&!!this.audioTrack&&this.decoded>0}}append(e){if(this.failed||!this.mimeType.includes(`webm`))return this.failed=!0,this.snapshot();let t=new Uint8Array(this.pending.length+e.length);t.set(this.pending),t.set(e,this.pending.length),this.pending=t;let n=0;try{for(;n<t.length;){let e=this.offset+n;for(;this.stack.length&&e>=this.stack.at(-1).end;)this.stack.pop();let r=g(t,n,!0);if(!r)break;let i=g(t,n+r.width);if(!i)break;let a=n+r.width+i.width;if(this.stack.length&&this.offset+a+(i.unknown?0:i.value)>this.stack.at(-1).end)throw Error(`Element exceeds its container`);if(m.has(r.value)){if(r.value===160)throw Error(`BlockGroup padding needs separate verification`);if(r.value===524531317){let e=this.stack.findIndex(e=>e.id===524531317);e>=0&&(this.stack.length=e),this.clusterTime=0}if(r.value===174&&(this.track=0,this.trackType=0,this.opus=!1),this.stack.length>12)throw Error(`Excessive media nesting`);this.stack.push({id:r.value,end:i.unknown?1/0:this.offset+a+i.value}),n=a;continue}if(i.unknown||i.value>h)throw Error(`Unsupported media element`);if(a+i.value>t.length)break;let o=t.subarray(a,a+i.value);if(r.value===2807729&&(this.timeScaleMs=_(o)/1e6,!this.timeScaleMs))throw Error(`Invalid media time scale`);if(r.value===22186&&_(o)!==0)throw Error(`Codec delay needs separate verification`);if(r.value===215&&(this.track=_(o)),r.value===131&&(this.trackType=_(o)),r.value===134&&(this.opus=new TextDecoder().decode(o)===`A_OPUS`),this.track&&this.trackType===2&&this.opus){if(this.audioTrack&&this.audioTrack!==this.track)throw Error(`Multiple audio tracks`);this.audioTrack=this.track}r.value===231&&(this.clusterTime=_(o)),(r.value===163||r.value===161)&&this.block(o),n=a+i.value}if(t.length-n>h)throw Error(`Incomplete oversized media element`)}catch{this.failed=!0}return this.offset+=n,this.pending=this.failed?new Uint8Array:t.slice(n),this.snapshot()}block(e){let t=g(e,0);if(!t||e.length<t.width+4||t.value!==this.audioTrack)throw Error(`Unsupported media block`);let n=t.width;if(e[n+2]&6)throw Error(`Laced audio needs separate verification`);let r=new DataView(e.buffer,e.byteOffset+n,2).getInt16(0),i=e.subarray(n+3),a=i[0]>>3,o=a>=16?2.5*2**(a&3):a>=12?10*2**(a&1):[10,20,40,60][a&3],s=i[0]&3,c=s===0?1:s===3?(i[1]??0)&63:2,l=o*c;if(!c||l>120||s===3&&i.length<2)throw Error(`Invalid Opus packet`);let u=(this.clusterTime+r)*this.timeScaleMs,d=u+l;if(!Number.isFinite(d)||u<0||u<=this.lastStart)throw Error(`Non-monotonic media time`);let f=Math.min(1,this.timeScaleMs),p=u-this.decoded;(p>0||p<-f)&&(this.gap=!0),this.lastStart=u,this.decoded+=l,this.observed=Math.max(this.observed,d),this.gap||(this.prefix=Math.min(this.decoded,this.observed))}},y=`xopc-discussion-drafts`,b=2,x=`drafts`,S=`chunks`,C=`segments`;function w(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`IndexedDB request failed`))})}function T(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onabort=()=>n(e.error??Error(`IndexedDB transaction aborted`)),e.onerror=()=>n(e.error??Error(`IndexedDB transaction failed`))})}function E(){return typeof indexedDB>`u`?Promise.reject(Error(`Local recording storage is unavailable`)):new Promise((e,t)=>{let n=indexedDB.open(y,b);n.onupgradeneeded=e=>{if(e.oldVersion!==0){n.transaction?.abort(),t(Error(`Unsupported recording database version`));return}let r=n.result;r.objectStoreNames.contains(x)||r.createObjectStore(x,{keyPath:`id`}),r.objectStoreNames.contains(S)||r.createObjectStore(S,{keyPath:[`draftId`,`index`]}).createIndex(`draftId`,`draftId`),r.objectStoreNames.contains(C)||r.createObjectStore(C,{keyPath:[`draftId`,`sequence`]}).createIndex(`draftId`,`draftId`)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Could not open local recording storage`))})}async function D(e){let t=await E();try{let n=t.transaction(x,`readwrite`,{durability:`strict`});n.objectStore(x).put(e),await T(n)}finally{t.close()}}async function O(e,t){let n=await E();try{let r=n.transaction(t?[S,x]:[S],`readwrite`,{durability:`strict`}),i=T(r);try{r.objectStore(S).add(e),t&&r.objectStore(x).put(t),await i}catch(e){try{r.abort()}catch{}throw await i.catch(()=>void 0),e}}finally{n.close()}}async function k(){let e=await E();try{let t=e.transaction(x,`readonly`),n=T(t),r=await w(t.objectStore(x).getAll());return await n,r.sort((e,t)=>t.updatedAt-e.updatedAt)}finally{e.close()}}async function A(e,t){let n=await E();try{let r=n.transaction(S,`readonly`),i=T(r),a=await w(r.objectStore(S).get([e,t]));return await i,a}finally{n.close()}}async function j(e){let t=await E();try{let n=t.transaction(C,`readwrite`);n.objectStore(C).put(e),await T(n)}finally{t.close()}}async function M(e){let t=await E();try{let n=t.transaction(C,`readonly`),r=T(n),i=await w(n.objectStore(C).index(`draftId`).getAll(e));return await r,i.sort((e,t)=>e.sequence-t.sequence)}finally{t.close()}}async function N(e,t){let n=await E();try{let r=n.transaction(C,`readwrite`);r.objectStore(C).delete([e,t]),await T(r)}finally{n.close()}}async function P(e){let t=await E();try{let n=t.transaction([x,S,C],`readwrite`);n.objectStore(x).delete(e);let r=n.objectStore(S),i=r.index(`draftId`).openKeyCursor(IDBKeyRange.only(e));i.onsuccess=()=>{let e=i.result;e&&(r.delete(e.primaryKey),e.continue())};let a=n.objectStore(C),o=a.index(`draftId`).openKeyCursor(IDBKeyRange.only(e));o.onsuccess=()=>{let e=o.result;e&&(a.delete(e.primaryKey),e.continue())},await T(n)}finally{t.close()}}async function F(e){let t=await E();try{let n=t.transaction([x,S],`readonly`),r=T(n),i=n.objectStore(x).get(e),a=n.objectStore(S).index(`draftId`).openKeyCursor(IDBKeyRange.only(e)),o=0,s=!1,c=new Promise((e,t)=>{a.onerror=()=>t(a.error),a.onsuccess=()=>{let t=a.result;if(!t){e();return}let[,n]=t.primaryKey;n!==o&&(s=!0),o+=1,t.continue()}}),[l]=await Promise.all([w(i),c,r]);if(!l)throw Error(`The recording draft is missing`);if(s||o!==l.chunkCount)throw Error(`Local recording has missing chunks. Retained audio has not been deleted.`);if(!o)throw Error(`No audio was saved before the recording stopped`);let u=f(l)===null?void 0:l.mediaCoverage,d=l.epochs;if(l.mediaCoverage?.status===`gap`||(d?.length??0)>1){let n=(d?.length?d:[{firstChunk:0,mimeType:l.mimeType,startedAt:l.startedAt}]).map(e=>({...e}));for(let r=0;r<n.length;r++){let i=n[r],a=n[r+1]?.firstChunk??o;if(!Number.isInteger(i.firstChunk)||r===0&&i.firstChunk!==0||i.firstChunk<0||i.firstChunk>a||a>o)throw Error(`Local recording has invalid audio boundaries. Retained audio has not been deleted.`);let s=new v(i.mimeType);for(let n=i.firstChunk;n<a;n++){let r=t.transaction(S,`readonly`),i=T(r),a=await w(r.objectStore(S).get([e,n]));if(await i,!a)throw Error(`Local recording has missing chunks. Retained audio has not been deleted.`);s.append(new Uint8Array(await a.blob.arrayBuffer()))}r<n.length-1?i.savedThroughMs=s.snapshot().verifiedThroughMs:u={...s.snapshot(),committedChunkCount:o}}d?.length&&(d=n)}return{...l,epochs:d,mediaCoverage:u,saveOutcome:l.state===`recording`?`interrupted`:l.saveOutcome}}finally{t.close()}}async function I(e){let t=await crypto.subtle.digest(`SHA-256`,await e.arrayBuffer());return Array.from(new Uint8Array(t),e=>e.toString(16).padStart(2,`0`)).join(``)}async function L(e,t){let i=t,a=performance.now()+5*6e4;for(;i.state===`queued`||i.state===`running`;){if(performance.now()>=a)throw Error(`Recording is still processing. Your draft is saved; retry to check its result.`);await new Promise(e=>setTimeout(e,1e3)),i=await r(e)}if(i.state!==`completed`)throw Error(i.error??`Recording processing was cancelled`);return n(e)}async function R(e,r,o,s=!0,c){if(c?.(`uploading`),s){let e=await n(r);if(e.discussion.audioDeletedAt)throw Error(`Original recording was deleted`);if(e.discussion.audioAttachmentId)return c?.(`available`),e;if(e.recordingJob?.state===`queued`||e.recordingJob?.state===`running`){c?.(`verifying`);let t=await L(r,e.recordingJob);if(!t.discussion.audioAttachmentId||t.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);return c?.(`available`),t}}let l=new Map((await i(r)).map(e=>[e.sequence,e]));for(let t=0;t<e.chunkCount;t+=1){let n=await A(e.id,t);if(!n)throw Error(`Missing local recording chunk ${t}`);if(n.blob.size>8388608)throw Error(`Recording chunk exceeds the supported size`);let i=await I(n.blob);if(l.has(t)&&l.get(t).sha256!==i)throw Error(`Stored recording differs from this draft`);l.has(t)||await a(r,t,n.blob,i),o(Math.round((t+1)/e.chunkCount*100))}if(s){c?.(`verifying`),await D({...e,serverDiscussionId:r,sealRequested:!0});let n=await L(r,await t(r,{lastSequence:e.lastSequence,chunkCount:e.chunkCount,...e.epochs&&e.epochs.length>1?{epochs:e.epochs}:{},mimeType:e.mimeType,fileName:e.fileName??`meeting-${e.startedAt}.${e.mimeType.includes(`mp4`)?`m4a`:e.mimeType.includes(`ogg`)?`ogg`:`webm`}`}));if(!n.discussion.audioAttachmentId||n.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);return c?.(`available`),n}c?.(`pending`)}async function z(e,t){let n=await navigator.storage?.estimate?.();if(n?.quota&&n.usage!==void 0&&n.quota-n.usage<e.size*1.1)throw Error(`Not enough local storage to safely import this recording`);let r={id:t,mimeType:e.type||(/\.mp3$/i.test(e.name)?`audio/mpeg`:/\.wav$/i.test(e.name)?`audio/wav`:/\.(m4a|mp4)$/i.test(e.name)?`audio/mp4`:/\.ogg$/i.test(e.name)?`audio/ogg`:`audio/webm`),fileName:e.name,startedAt:Date.now(),updatedAt:Date.now(),durationMs:1e3,chunkCount:0,lastSequence:-1,state:`stopped`};try{for(let n=0;n<e.size;n+=d)await O({draftId:t,index:r.chunkCount,blob:e.slice(n,n+d),createdAt:Date.now()}),r.chunkCount+=1;return await D(r),r}catch(e){throw await P(t),e}}export{l as _,A as a,o as b,F as c,j as d,v as f,d as g,u as h,N as i,D as l,f as m,R as n,k as o,p,P as r,M as s,z as t,O as u,c as v,s as y};
|
|
1
|
+
import{t as e}from"./createLucideIcon-DPHK1VkS.js";import{g as t,l as n,m as r,p as i,y as a}from"./discussion-annotation-sync-BfVzIwe2.js";var o=e(`inbox`,[[`polyline`,{points:`22 12 16 12 14 15 10 15 8 12 2 12`,key:`o97t9d`}],[`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`oot6mr`}]]),s=e(`notebook-text`,[[`path`,{d:`M2 6h4`,key:`aawbzj`}],[`path`,{d:`M2 10h4`,key:`l0bgd4`}],[`path`,{d:`M2 14h4`,key:`1gsvsf`}],[`path`,{d:`M2 18h4`,key:`1bu2t1`}],[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,key:`1nb95v`}],[`path`,{d:`M9.5 8h5`,key:`11mslq`}],[`path`,{d:`M9.5 12H16`,key:`ktog6x`}],[`path`,{d:`M9.5 16H14`,key:`p1seyn`}]]),c=e(`scan-search`,[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`m16 16-1.9-1.9`,key:`1dq9hf`}]]),l=7200*1e3,u=1024*1024*1024,d=8*1024*1024;function f(e){if((e?.epochs?.length??0)>1){let t=e?.epochs?.[0]?.savedThroughMs;return Number.isFinite(t)&&t>=0?t:null}let t=e?.mediaCoverage;return t?.version===1&&t.committedChunkCount===e?.chunkCount&&Number.isFinite(t.verifiedThroughMs)&&t.verifiedThroughMs>=0&&Number.isFinite(t.observedThroughMs)&&t.observedThroughMs>=t.verifiedThroughMs?t.verifiedThroughMs:null}function p(e){let{phase:t,detail:n}=e,r=e.draft??e.locallyFinalized,i=r?.saveOutcome===`interrupted`,a=t===`recording`?`recording`:t===`paused`?`paused`:t===`requesting_permission`||t===`waiting_for_audio`?`waitingAudio`:t===`stopping`?`stopping`:t===`error`||i?`interrupted`:`stopped`,o=f(r),s=!!r?.chunkCount&&r.state!==`recording`&&r.saveOutcome===`complete`&&(t===`stopped`||t===`idle`),c=t===`error`||r?.saveOutcome===`incomplete`?`saveFailed`:s?`localComplete`:o!==null&&o>0?`savedThrough`:r?.chunkCount?`savedUnknown`:`saving`,l=!!n?.discussion.audioAttachmentId&&!n.discussion.audioDeletedAt,u=n?.discussion.audioDeletedAt?`failed`:l?`available`:e.online?e.syncStage:`offline`,d=n?.discussion.status,p=d===`completed`?`aiComplete`:d===`needs_attention`?`aiFailed`:n?.processing?.nextAttemptAt?`aiRetrying`:d===`organizing`?`analyzing`:d===`sealing`?`transcribing`:a===`recording`&&(!e.liveAvailable||e.pendingText>0||(e.transcript?.stats?.failed??0)>0)?`textDelayed`:a===`recording`?`liveText`:`waitingSource`,m=!!r?.chunkCount&&(o===null||r?.mediaCoverage?.status!==`verified`);return{capture:a,save:c,sync:u,ai:p,hasInterruptions:(r?.epochs?.length??0)>1,savedThroughMs:o,localComplete:s,interrupted:i,timingUncertain:m}}var m=new Set([408125543,357149030,374648427,174,524531317,160]),h=16*1024*1024;function g(e,t,n=!1){if(t>=e.length)return;let r=1;for(;r<=8&&!(e[t]&128>>r-1);)r++;if(r>(n?4:8))throw Error(`Invalid EBML integer`);if(t+r>e.length)return;let i=n?e[t]:e[t]&255>>r,a=!n&&i===255>>r;for(let n=1;n<r;n++)i=i*256+e[t+n],a&&=e[t+n]===255;if(!a&&!Number.isSafeInteger(i))throw Error(`Oversized EBML integer`);return{value:i,width:r,unknown:a}}function _(e){if(!e.length||e.length>6)throw Error(`Invalid media timestamp`);return e.reduce((e,t)=>e*256+t,0)}var v=class{mimeType;pending=new Uint8Array;offset=0;stack=[];timeScaleMs=1;clusterTime=0;track=0;trackType=0;opus=!1;audioTrack=0;observed=0;decoded=0;lastStart=-1/0;prefix=0;failed=!1;gap=!1;constructor(e){this.mimeType=e}snapshot(){return{version:1,verifiedThroughMs:Math.floor(this.prefix),observedThroughMs:Math.floor(this.observed),status:this.gap?`gap`:this.failed||!this.audioTrack||!this.observed?`unknown`:`verified`}}packetClock(){return{durationMs:Math.floor(this.decoded),verified:!this.failed&&!!this.audioTrack&&this.decoded>0}}append(e){if(this.failed||!this.mimeType.includes(`webm`))return this.failed=!0,this.snapshot();let t=new Uint8Array(this.pending.length+e.length);t.set(this.pending),t.set(e,this.pending.length),this.pending=t;let n=0;try{for(;n<t.length;){let e=this.offset+n;for(;this.stack.length&&e>=this.stack.at(-1).end;)this.stack.pop();let r=g(t,n,!0);if(!r)break;let i=g(t,n+r.width);if(!i)break;let a=n+r.width+i.width;if(this.stack.length&&this.offset+a+(i.unknown?0:i.value)>this.stack.at(-1).end)throw Error(`Element exceeds its container`);if(m.has(r.value)){if(r.value===160)throw Error(`BlockGroup padding needs separate verification`);if(r.value===524531317){let e=this.stack.findIndex(e=>e.id===524531317);e>=0&&(this.stack.length=e),this.clusterTime=0}if(r.value===174&&(this.track=0,this.trackType=0,this.opus=!1),this.stack.length>12)throw Error(`Excessive media nesting`);this.stack.push({id:r.value,end:i.unknown?1/0:this.offset+a+i.value}),n=a;continue}if(i.unknown||i.value>h)throw Error(`Unsupported media element`);if(a+i.value>t.length)break;let o=t.subarray(a,a+i.value);if(r.value===2807729&&(this.timeScaleMs=_(o)/1e6,!this.timeScaleMs))throw Error(`Invalid media time scale`);if(r.value===22186&&_(o)!==0)throw Error(`Codec delay needs separate verification`);if(r.value===215&&(this.track=_(o)),r.value===131&&(this.trackType=_(o)),r.value===134&&(this.opus=new TextDecoder().decode(o)===`A_OPUS`),this.track&&this.trackType===2&&this.opus){if(this.audioTrack&&this.audioTrack!==this.track)throw Error(`Multiple audio tracks`);this.audioTrack=this.track}r.value===231&&(this.clusterTime=_(o)),(r.value===163||r.value===161)&&this.block(o),n=a+i.value}if(t.length-n>h)throw Error(`Incomplete oversized media element`)}catch{this.failed=!0}return this.offset+=n,this.pending=this.failed?new Uint8Array:t.slice(n),this.snapshot()}block(e){let t=g(e,0);if(!t||e.length<t.width+4||t.value!==this.audioTrack)throw Error(`Unsupported media block`);let n=t.width;if(e[n+2]&6)throw Error(`Laced audio needs separate verification`);let r=new DataView(e.buffer,e.byteOffset+n,2).getInt16(0),i=e.subarray(n+3),a=i[0]>>3,o=a>=16?2.5*2**(a&3):a>=12?10*2**(a&1):[10,20,40,60][a&3],s=i[0]&3,c=s===0?1:s===3?(i[1]??0)&63:2,l=o*c;if(!c||l>120||s===3&&i.length<2)throw Error(`Invalid Opus packet`);let u=(this.clusterTime+r)*this.timeScaleMs,d=u+l;if(!Number.isFinite(d)||u<0||u<=this.lastStart)throw Error(`Non-monotonic media time`);let f=Math.min(1,this.timeScaleMs),p=u-this.decoded;(p>0||p<-f)&&(this.gap=!0),this.lastStart=u,this.decoded+=l,this.observed=Math.max(this.observed,d),this.gap||(this.prefix=Math.min(this.decoded,this.observed))}},y=`xopc-discussion-drafts`,b=2,x=`drafts`,S=`chunks`,C=`segments`;function w(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error??Error(`IndexedDB request failed`))})}function T(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onabort=()=>n(e.error??Error(`IndexedDB transaction aborted`)),e.onerror=()=>n(e.error??Error(`IndexedDB transaction failed`))})}function E(){return typeof indexedDB>`u`?Promise.reject(Error(`Local recording storage is unavailable`)):new Promise((e,t)=>{let n=indexedDB.open(y,b);n.onupgradeneeded=e=>{if(e.oldVersion!==0){n.transaction?.abort(),t(Error(`Unsupported recording database version`));return}let r=n.result;r.objectStoreNames.contains(x)||r.createObjectStore(x,{keyPath:`id`}),r.objectStoreNames.contains(S)||r.createObjectStore(S,{keyPath:[`draftId`,`index`]}).createIndex(`draftId`,`draftId`),r.objectStoreNames.contains(C)||r.createObjectStore(C,{keyPath:[`draftId`,`sequence`]}).createIndex(`draftId`,`draftId`)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Could not open local recording storage`))})}async function D(e){let t=await E();try{let n=t.transaction(x,`readwrite`,{durability:`strict`});n.objectStore(x).put(e),await T(n)}finally{t.close()}}async function O(e,t){let n=await E();try{let r=n.transaction(t?[S,x]:[S],`readwrite`,{durability:`strict`}),i=T(r);try{r.objectStore(S).add(e),t&&r.objectStore(x).put(t),await i}catch(e){try{r.abort()}catch{}throw await i.catch(()=>void 0),e}}finally{n.close()}}async function k(){let e=await E();try{let t=e.transaction(x,`readonly`),n=T(t),r=await w(t.objectStore(x).getAll());return await n,r.sort((e,t)=>t.updatedAt-e.updatedAt)}finally{e.close()}}async function A(e,t){let n=await E();try{let r=n.transaction(S,`readonly`),i=T(r),a=await w(r.objectStore(S).get([e,t]));return await i,a}finally{n.close()}}async function j(e){let t=await E();try{let n=t.transaction(C,`readwrite`);n.objectStore(C).put(e),await T(n)}finally{t.close()}}async function M(e){let t=await E();try{let n=t.transaction(C,`readonly`),r=T(n),i=await w(n.objectStore(C).index(`draftId`).getAll(e));return await r,i.sort((e,t)=>e.sequence-t.sequence)}finally{t.close()}}async function N(e,t){let n=await E();try{let r=n.transaction(C,`readwrite`);r.objectStore(C).delete([e,t]),await T(r)}finally{n.close()}}async function P(e){let t=await E();try{let n=t.transaction([x,S,C],`readwrite`);n.objectStore(x).delete(e);let r=n.objectStore(S),i=r.index(`draftId`).openKeyCursor(IDBKeyRange.only(e));i.onsuccess=()=>{let e=i.result;e&&(r.delete(e.primaryKey),e.continue())};let a=n.objectStore(C),o=a.index(`draftId`).openKeyCursor(IDBKeyRange.only(e));o.onsuccess=()=>{let e=o.result;e&&(a.delete(e.primaryKey),e.continue())},await T(n)}finally{t.close()}}async function F(e){let t=await E();try{let n=t.transaction([x,S],`readonly`),r=T(n),i=n.objectStore(x).get(e),a=n.objectStore(S).index(`draftId`).openKeyCursor(IDBKeyRange.only(e)),o=0,s=!1,c=new Promise((e,t)=>{a.onerror=()=>t(a.error),a.onsuccess=()=>{let t=a.result;if(!t){e();return}let[,n]=t.primaryKey;n!==o&&(s=!0),o+=1,t.continue()}}),[l]=await Promise.all([w(i),c,r]);if(!l)throw Error(`The recording draft is missing`);if(s||o!==l.chunkCount)throw Error(`Local recording has missing chunks. Retained audio has not been deleted.`);if(!o)throw Error(`No audio was saved before the recording stopped`);let u=f(l)===null?void 0:l.mediaCoverage,d=l.epochs;if(l.mediaCoverage?.status===`gap`||(d?.length??0)>1){let n=(d?.length?d:[{firstChunk:0,mimeType:l.mimeType,startedAt:l.startedAt}]).map(e=>({...e}));for(let r=0;r<n.length;r++){let i=n[r],a=n[r+1]?.firstChunk??o;if(!Number.isInteger(i.firstChunk)||r===0&&i.firstChunk!==0||i.firstChunk<0||i.firstChunk>a||a>o)throw Error(`Local recording has invalid audio boundaries. Retained audio has not been deleted.`);let s=new v(i.mimeType);for(let n=i.firstChunk;n<a;n++){let r=t.transaction(S,`readonly`),i=T(r),a=await w(r.objectStore(S).get([e,n]));if(await i,!a)throw Error(`Local recording has missing chunks. Retained audio has not been deleted.`);s.append(new Uint8Array(await a.blob.arrayBuffer()))}r<n.length-1?i.savedThroughMs=s.snapshot().verifiedThroughMs:u={...s.snapshot(),committedChunkCount:o}}d?.length&&(d=n)}return{...l,epochs:d,mediaCoverage:u,saveOutcome:l.state===`recording`?`interrupted`:l.saveOutcome}}finally{t.close()}}async function I(e){let t=await crypto.subtle.digest(`SHA-256`,await e.arrayBuffer());return Array.from(new Uint8Array(t),e=>e.toString(16).padStart(2,`0`)).join(``)}async function L(e,t){let i=t,a=performance.now()+5*6e4;for(;i.state===`queued`||i.state===`running`;){if(performance.now()>=a)throw Error(`Recording is still processing. Your draft is saved; retry to check its result.`);await new Promise(e=>setTimeout(e,1e3)),i=await r(e)}if(i.state!==`completed`)throw Error(i.error??`Recording processing was cancelled`);return n(e)}async function R(e,r,o,s=!0,c){if(c?.(`uploading`),s){let e=await n(r);if(e.discussion.audioDeletedAt)throw Error(`Original recording was deleted`);if(e.discussion.audioAttachmentId)return c?.(`available`),e;if(e.recordingJob?.state===`queued`||e.recordingJob?.state===`running`){c?.(`verifying`);let t=await L(r,e.recordingJob);if(!t.discussion.audioAttachmentId||t.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);return c?.(`available`),t}}let l=new Map((await i(r)).map(e=>[e.sequence,e]));for(let t=0;t<e.chunkCount;t+=1){let n=await A(e.id,t);if(!n)throw Error(`Missing local recording chunk ${t}`);if(n.blob.size>8388608)throw Error(`Recording chunk exceeds the supported size`);let i=await I(n.blob);if(l.has(t)&&l.get(t).sha256!==i)throw Error(`Stored recording differs from this draft`);l.has(t)||await a(r,t,n.blob,i),o(Math.round((t+1)/e.chunkCount*100))}if(s){c?.(`verifying`),await D({...e,serverDiscussionId:r,sealRequested:!0});let n=await L(r,await t(r,{lastSequence:e.lastSequence,chunkCount:e.chunkCount,...e.epochs&&e.epochs.length>1?{epochs:e.epochs}:{},mimeType:e.mimeType,fileName:e.fileName??`meeting-${e.startedAt}.${e.mimeType.includes(`mp4`)?`m4a`:e.mimeType.includes(`ogg`)?`ogg`:`webm`}`}));if(!n.discussion.audioAttachmentId||n.discussion.audioDeletedAt)throw Error(`Original audio attachment is not confirmed`);return c?.(`available`),n}c?.(`pending`)}async function z(e,t){let n=await navigator.storage?.estimate?.();if(n?.quota&&n.usage!==void 0&&n.quota-n.usage<e.size*1.1)throw Error(`Not enough local storage to safely import this recording`);let r={id:t,mimeType:e.type||(/\.mp3$/i.test(e.name)?`audio/mpeg`:/\.wav$/i.test(e.name)?`audio/wav`:/\.(m4a|mp4)$/i.test(e.name)?`audio/mp4`:/\.ogg$/i.test(e.name)?`audio/ogg`:`audio/webm`),fileName:e.name,startedAt:Date.now(),updatedAt:Date.now(),durationMs:1e3,chunkCount:0,lastSequence:-1,state:`stopped`};try{for(let n=0;n<e.size;n+=d)await O({draftId:t,index:r.chunkCount,blob:e.slice(n,n+d),createdAt:Date.now()}),r.chunkCount+=1;return await D(r),r}catch(e){throw await P(t),e}}export{l as _,A as a,o as b,F as c,j as d,v as f,d as g,u as h,N as i,D as l,f as m,R as n,k as o,p,P as r,M as s,z as t,O as u,c as v,s as y};
|
package/dist/gateway/static/root/assets/{registry-api-DFDvOTg4.js → registry-api-QZEjziDq.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-swr-CdRzEUwF.js","assets/rolldown-runtime-aKtaBQYM.js","assets/vendor-react-BOUWij0V.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./preload-helper-Czpn1I53.js";import{i as t}from"./locale-store-
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";import{i as t}from"./locale-store-B7y-RVe8.js";import{t as n}from"./gateway-startup-retry-BsU5k8oi.js";async function r(){let e=await n(t(`/api/models`));if(!e.ok)throw Error(`Models: HTTP ${e.status}`);return(await e.json()).payload?.models??[]}var i=null,a=0,o=null,s=6e4,c=`gateway-configured-models`;async function l(){i=null,a=0;let{mutate:t}=await e(async()=>{let{mutate:e}=await import(`./vendor-swr-CdRzEUwF.js`).then(e=>e.r);return{mutate:e}},__vite__mapDeps([0,1,2]));await t(c)}async function u(e=!1){if(!e&&i&&Date.now()<a)return i;if(e){let e=await r();return i=e,a=Date.now()+s,e}return o||(o=r().then(e=>(i=e,a=Date.now()+s,e)).finally(()=>{o=null}),o)}export{u as n,l as r,c as t};
|
|
@@ -1 +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{m as i,t as a,u as o}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{l as s,n as c}from"./locale-store-Br7IfbXK.js";import{t as l}from"./messages-ByFlEbsu.js";import{a as u,i as d,o as f,r as p,s as m,t as h}from"./dist-BGTk37IG.js";import{t as g}from"./arrow-right-DSSvoX71.js";import{t as _}from"./check-DUBLcKHA.js";import{t as v}from"./chevron-down-ccbiQQz_.js";import{t as y}from"./chevron-right-BweFrslA.js";import{t as b}from"./circle-BoO4YvTx.js";import{t as x}from"./copy-Dv6d4Dvw.js";import{t as S}from"./external-link-DjqjBmc3.js";import{t as C}from"./secret-input-Dryrns2s.js";import{t as w}from"./globe-DSSGFWFn.js";import{t as T}from"./key-round-DWbpyU2U.js";import{t as E}from"./loader-circle-CifKLtgG.js";import{t as D}from"./network-BUQLY1BV.js";import{t as O}from"./power-ZI-pBczI.js";import{t as k}from"./server-BlHCBjiE.js";import{t as A}from"./shield-B1sI_cxl.js";import{t as j}from"./smartphone-DSSsQFqA.js";import{t as M}from"./terminal-oKqqZdiG.js";import{t as N}from"./triangle-alert-2JXFNNKU.js";import{t as P}from"./cn-0WouolD0.js";import{i as F}from"./vendor-swr-CdRzEUwF.js";import{n as I,r as L}from"./gateway-config-swr-BOCt_zOo.js";import{t as R}from"./button-Cc4hUNTt.js";import{i as z,o as B}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{t as V}from"./copy-to-clipboard-HOJ79TWv.js";import{t as H}from"./page-tabs-oeTY7z3_.js";import{r as U}from"./settings-form-draft-Dy10ldo8.js";import{t as W}from"./confirm-dialog-D7dQJytv.js";import{t as ee}from"./copy-text-row-CpiRzq4G.js";import{n as G}from"./settings-mode-store-CiRpsdTJ.js";import{r as K}from"./providers-api-DOnNfkwQ.js";import{a as q,n as te,r as ne}from"./oauth-api-DMMdeaNd.js";import{t as J}from"./settings-advanced-section-DwpPPxT0.js";import{n as re,r as ie,t as ae}from"./oauth-authorization-window-o6URRos4.js";import{n as oe,t as se}from"./settings-page-header-BZl4AMiN.js";import{t as ce}from"./settings-page-layout-onhEgq-K.js";import{n as Y,r as le,t as ue}from"./settings-form-section-num14vSv.js";import{S as de,_ as X,a as fe,b as pe,c as me,d as he,i as ge,n as _e,o as ve,r as ye,s as be,t as xe,x as Se,y as Ce}from"./tunnel-api-B7nx0NQJ.js";import{t as we}from"./settings-advanced-gate-BI4DMz4_.js";var Z=e(t(),1),Q=n(),$=r();function Te(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 Ee(e){let t=(0,Q.c)(11),{label:n,kind:r}=e,i;t[0]===r?i=t[1]:(i=P(`inline-flex items-center gap-1.5 text-xs font-medium`,Te(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=P(`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 De(e){let t=(0,Q.c)(31),{onOpenTab:n}=e,r=c(ke),i;t[0]===r?i=t[1]:(i=l(r),t[0]=r,t[1]=i);let a=i.remoteAccess.guide,o=!!s(Oe),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u={refreshInterval:3e4},t[2]=u):u=t[2];let{data:d}=F(o?`exposure-status`:null,Se,u),f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f={refreshInterval:15e3},t[3]=f):f=t[3];let{data:p}=F(o?`tunnel-status`:null,_e,f),m=L(o);if(!o)return null;let h=d?.tailscale.active===!0,g=p?.state,_=p?.enabled&&g===`connected`,v=p?.enabled&&(g===`connecting`||g===`reconnecting`||!!p?.startProgress||!!p?.frpcDownload),y=m.data?.payload?.config,b=!!(y&&typeof y==`object`&&!Array.isArray(y)&&y.gateway?.publicUrl),x=h?`active`:`off`,S=h?a.statusActive:a.statusOff,C;t[4]!==a.tailscaleCardTitle||t[5]!==x||t[6]!==S?(C={tab:`tailscale`,icon:w,title:a.tailscaleCardTitle,kind:x,statusLabel:S},t[4]=a.tailscaleCardTitle,t[5]=x,t[6]=S,t[7]=C):C=t[7];let T=_?`active`:v?`connecting`:`off`,E=_?a.statusActive:v?a.statusConnecting:a.statusOff,O;t[8]!==a.publicCardTitle||t[9]!==T||t[10]!==E?(O={tab:`public`,icon:D,title:a.publicCardTitle,kind:T,statusLabel:E},t[8]=a.publicCardTitle,t[9]=T,t[10]=E,t[11]=O):O=t[11];let j=b?`active`:`off`,N=b?a.statusActive:a.statusOff,I;t[12]!==a.reverseProxyCardTitle||t[13]!==j||t[14]!==N?(I={tab:`reverse-proxy`,icon:A,title:a.reverseProxyCardTitle,kind:j,statusLabel:N},t[12]=a.reverseProxyCardTitle,t[13]=j,t[14]=N,t[15]=I):I=t[15];let R;t[16]!==a.sshCardStatus||t[17]!==a.sshCardTitle?(R={tab:`ssh`,icon:M,title:a.sshCardTitle,kind:`off`,statusLabel:a.sshCardStatus},t[16]=a.sshCardStatus,t[17]=a.sshCardTitle,t[18]=R):R=t[18];let z;t[19]!==a.lanCardStatus||t[20]!==a.lanCardTitle?(z={tab:`lan`,icon:k,title:a.lanCardTitle,kind:`off`,statusLabel:a.lanCardStatus},t[19]=a.lanCardStatus,t[20]=a.lanCardTitle,t[21]=z):z=t[21];let B;t[22]!==I||t[23]!==R||t[24]!==z||t[25]!==C||t[26]!==O?(B=[C,O,I,R,z],t[22]=I,t[23]=R,t[24]=z,t[25]=C,t[26]=O,t[27]=B):B=t[27];let V=B,H;return t[28]!==V||t[29]!==n?(H=(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:V.map(e=>{let t=e.icon;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(e.tab),className:P(`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)(Ee,{label:e.statusLabel,kind:e.kind})]})]},`${e.tab}-${e.title}`)})}),t[28]=V,t[29]=n,t[30]=H):H=t[30],H}function Oe(e){return e.conversationId}function ke(e){return e.language}function Ae(e){let t=(0,Q.c)(21),{title:n,description:r,recommended:i,icon:a,onOpen:o,recommendedLabel:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=P(`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]=c):c=t[0];let l;t[1]===a?l=t[2]:(l=(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]=l);let u;t[3]===n?u=t[4]:(u=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n}),t[3]=n,t[4]=u);let d;t[5]!==i||t[6]!==s?(d=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]=d):d=t[7];let f;t[8]!==u||t[9]!==d?(f=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[u,d]}),t[8]=u,t[9]=d,t[10]=f):f=t[10];let p;t[11]===r?p=t[12]:(p=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:r}),t[11]=r,t[12]=p);let m;t[13]!==f||t[14]!==p?(m=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[f,p]}),t[13]=f,t[14]=p,t[15]=m):m=t[15];let h;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(y,{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]=h):h=t[16];let g;return t[17]!==o||t[18]!==l||t[19]!==m?(g=(0,$.jsxs)(`button`,{type:`button`,onClick:o,className:c,children:[l,m,h]}),t[17]=o,t[18]=l,t[19]=m,t[20]=g):g=t[20],g}function je(e){let t=(0,Q.c)(78),{onOpenTab:n}=e,r=c(Pe),i;t[0]===r?i=t[1]:(i=l(r),t[0]=r,t[1]=i);let a=i.remoteAccess,o=a.guide,u=!!s(Ne),d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d={refreshInterval:3e4},t[2]=d):d=t[2];let{data:f}=F(u?`exposure-status`:null,Se,d),p;t[3]===f?.conflicts?p=t[4]:(p=f?.conflicts??[],t[3]=f?.conflicts,t[4]=p);let m=p;if(!u){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 h;t[7]===n?h=t[8]:(h=(0,$.jsx)(De,{onOpenTab:n}),t[7]=n,t[8]=h);let g;t[9]!==m||t[10]!==o.conflictsHint||t[11]!==o.conflictsTitle?(g=m.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:m.map(Me)})]}):null,t[9]=m,t[10]=o.conflictsHint,t[11]=o.conflictsTitle,t[12]=g):g=t[12];let _;t[13]===o.pickMethod?_=t[14]:(_=(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:o.pickMethod}),t[13]=o.pickMethod,t[14]=_);let v;t[15]===n?v=t[16]:(v=()=>n(`tailscale`),t[15]=n,t[16]=v);let y;t[17]!==o.recommended||t[18]!==o.tailscaleCardDesc||t[19]!==o.tailscaleCardTitle||t[20]!==v?(y=(0,$.jsx)(Ae,{icon:w,title:o.tailscaleCardTitle,description:o.tailscaleCardDesc,recommended:!0,recommendedLabel:o.recommended,onOpen:v}),t[17]=o.recommended,t[18]=o.tailscaleCardDesc,t[19]=o.tailscaleCardTitle,t[20]=v,t[21]=y):y=t[21];let b;t[22]===n?b=t[23]:(b=()=>n(`public`),t[22]=n,t[23]=b);let x;t[24]!==o.publicCardDesc||t[25]!==o.publicCardTitle||t[26]!==b?(x=(0,$.jsx)(Ae,{icon:D,title:o.publicCardTitle,description:o.publicCardDesc,onOpen:b}),t[24]=o.publicCardDesc,t[25]=o.publicCardTitle,t[26]=b,t[27]=x):x=t[27];let S;t[28]===n?S=t[29]:(S=()=>n(`reverse-proxy`),t[28]=n,t[29]=S);let C;t[30]!==o.reverseProxyCardDesc||t[31]!==o.reverseProxyCardTitle||t[32]!==S?(C=(0,$.jsx)(Ae,{icon:A,title:o.reverseProxyCardTitle,description:o.reverseProxyCardDesc,onOpen:S}),t[30]=o.reverseProxyCardDesc,t[31]=o.reverseProxyCardTitle,t[32]=S,t[33]=C):C=t[33];let T;t[34]===n?T=t[35]:(T=()=>n(`ssh`),t[34]=n,t[35]=T);let E;t[36]!==o.sshCardDesc||t[37]!==o.sshCardTitle||t[38]!==T?(E=(0,$.jsx)(Ae,{icon:M,title:o.sshCardTitle,description:o.sshCardDesc,onOpen:T}),t[36]=o.sshCardDesc,t[37]=o.sshCardTitle,t[38]=T,t[39]=E):E=t[39];let O;t[40]!==a.advanced.proxyBody||t[41]!==a.advanced.proxyTitle||t[42]!==C||t[43]!==E?(O=(0,$.jsxs)(J,{title:a.advanced.proxyTitle,summary:a.advanced.proxyBody,children:[C,E]}),t[40]=a.advanced.proxyBody,t[41]=a.advanced.proxyTitle,t[42]=C,t[43]=E,t[44]=O):O=t[44];let j;t[45]===n?j=t[46]:(j=()=>n(`lan`),t[45]=n,t[46]=j);let N;t[47]!==o.lanCardDesc||t[48]!==o.lanCardTitle||t[49]!==j?(N=(0,$.jsx)(Ae,{icon:k,title:o.lanCardTitle,description:o.lanCardDesc,onOpen:j}),t[47]=o.lanCardDesc,t[48]=o.lanCardTitle,t[49]=j,t[50]=N):N=t[50];let P;t[51]!==x||t[52]!==O||t[53]!==N||t[54]!==y?(P=(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:[y,x,O,N]}),t[51]=x,t[52]=O,t[53]=N,t[54]=y,t[55]=P):P=t[55];let I;t[56]!==P||t[57]!==_?(I=(0,$.jsxs)(`div`,{children:[_,P]}),t[56]=P,t[57]=_,t[58]=I):I=t[58];let L;t[59]===o.oneAtATimeHint?L=t[60]:(L=(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-subtle`,children:o.oneAtATimeHint}),t[59]=o.oneAtATimeHint,t[60]=L);let R;t[61]===a.advanced.proxyTitle?R=t[62]:(R=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:a.advanced.proxyTitle}),t[61]=a.advanced.proxyTitle,t[62]=R);let z;t[63]===a.advanced.proxyBody?z=t[64]:(z=(0,$.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:a.advanced.proxyBody}),t[63]=a.advanced.proxyBody,t[64]=z);let B;t[65]!==r||t[66]!==a.advanced.proxyDocs?(B=(0,$.jsx)(de,{language:r,label:a.advanced.proxyDocs,section:`advanced`,className:`mt-2`}),t[65]=r,t[66]=a.advanced.proxyDocs,t[67]=B):B=t[67];let V;t[68]!==R||t[69]!==z||t[70]!==B?(V=(0,$.jsxs)(`div`,{className:`max-w-3xl rounded-xl bg-surface-hover/20 px-4 py-4`,children:[R,z,B]}),t[68]=R,t[69]=z,t[70]=B,t[71]=V):V=t[71];let H;return t[72]!==I||t[73]!==L||t[74]!==V||t[75]!==h||t[76]!==g?(H=(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[h,g,I,L,V]}),t[72]=I,t[73]=L,t[74]=V,t[75]=h,t[76]=g,t[77]=H):H=t[77],H}function Me(e){return(0,$.jsx)(`li`,{children:e.message},e.code)}function Ne(e){return e.conversationId}function Pe(e){return e.language}function Fe(){let e=(0,Q.c)(16),t=c(Ie),n;e[0]===t?n=e[1]:(n=l(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:k,title:r.title,subtitle:r.subtitle}),e[2]=r.subtitle,e[3]=r.title,e[4]=i):i=e[4];let o;e[5]===r.body?o=e[6]:(o=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.body}),e[5]=r.body,e[6]=o);let s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(S,{className:`size-3.5`,"aria-hidden":!0}),e[7]=s):s=e[7];let u;e[8]===r.link?u=e[9]:(u=(0,$.jsxs)(a,{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]=u);let d;e[10]!==o||e[11]!==u?(d=(0,$.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[o,u]}),e[10]=o,e[11]=u,e[12]=d):d=e[12];let f;return e[13]!==i||e[14]!==d?(f=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,$.jsxs)(ue,{children:[i,d]})}),e[13]=i,e[14]=d,e[15]=f):f=e[15],f}function Ie(e){return e.language}function Le(e){let t=(0,Q.c)(30),{embedded:n}=e,r=n!==void 0&&n,i=c(Re),a;t[0]===i?a=t[1]:(a=l(i),t[0]=i,t[1]=a);let o=a.remoteAccess.ssh,[s,u]=(0,Z.useState)(!1),d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=async()=>{await V(`xopc gateway ssh-tunnel --target user@your-host --local-port 18790 --remote-port 18790`)&&(u(!0),setTimeout(()=>u(!1),2e3))},t[2]=d):d=t[2];let f=d,p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(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]=p):p=t[3];let m,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>void f(),h=(0,$.jsx)(x,{className:`mr-1 size-4`}),t[4]=m,t[5]=h):(m=t[4],h=t[5]);let g=s?o.copied:o.copy,_;t[6]===g?_=t[7]:(_=(0,$.jsx)(`div`,{className:`mt-2`,children:(0,$.jsxs)(R,{type:`button`,variant:`ghost`,onClick:m,children:[h,g]})}),t[6]=g,t[7]=_);let v;t[8]!==r||t[9]!==o.hint?(v=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]=v):v=t[10];let y;t[11]!==_||t[12]!==v?(y=(0,$.jsxs)($.Fragment,{children:[p,_,v]}),t[11]=_,t[12]=v,t[13]=y):y=t[13];let b=y;if(r){let e;t[14]!==o.subtitle||t[15]!==o.title?(e=(0,$.jsx)(Y,{icon:M,title:o.title,subtitle:o.subtitle}),t[14]=o.subtitle,t[15]=o.title,t[16]=e):e=t[16];let n;t[17]===b?n=t[18]:(n=(0,$.jsx)(`div`,{className:`mt-4 space-y-2`,children:b}),t[17]=b,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:M,title:o.title,subtitle:o.subtitle}),t[22]=o.subtitle,t[23]=o.title,t[24]=S):S=t[24];let C;t[25]===b?C=t[26]:(C=(0,$.jsx)(`div`,{className:`mt-4`,children:b}),t[25]=b,t[26]=C);let w;return t[27]!==S||t[28]!==C?(w=(0,$.jsxs)(ue,{children:[S,C]}),t[27]=S,t[28]=C,t[29]=w):w=t[29],w}function Re(e){return e.language}function ze(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(Le,{embedded:!0}),e[0]=t):t=e[0],t}var Be=[`guide`,`tailscale`,`public`,`reverse-proxy`,`ssh`,`lan`];function Ve(e){return e&&Be.includes(e)?e:`guide`}function He(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&&l,[d,f]=(0,Z.useState)(c??!1),p;t[0]===s?p=t[1]:(p=P(`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(Ue),t[2]=m):m=t[2];let h=d&&`rotate-180`,g;t[3]===h?g=t[4]:(g=P(`size-4 shrink-0 text-fg-muted transition-transform duration-200 motion-reduce:transition-none`,h),t[3]=h,t[4]=g);let _;t[5]===g?_=t[6]:(_=(0,$.jsx)(v,{className:g,"aria-hidden":!0}),t[5]=g,t[6]=_);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]!==_||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:[_,y,x]}),t[11]=d,t[12]=_,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=P(`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)(we,{children:k}),t[30]=k,t[31]=e),e}return k}function Ue(e){return!e}function We(e){let t=(0,Q.c)(40),{open:n,title:r,intro:i,bullets:a,checkboxLabel:o,confirmLabel:s,cancelLabel:c,onConfirm:l,onCancel:g}=e,[_,v]=(0,Z.useState)(!1),y;t[0]===g?y=t[1]:(y=e=>{e||(v(!1),g())},t[0]=g,t[1]=y);let b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(u,{className:P(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,B)}),t[2]=b):b=t[2];let x;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=P(`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`,z),t[3]=x):x=t[3];let S;t[4]===r?S=t[5]:(S=(0,$.jsx)(m,{className:`text-base font-semibold text-fg`,children:r}),t[4]=r,t[5]=S);let C;t[6]===i?C=t[7]:(C=(0,$.jsx)(d,{className:`mt-2 text-sm text-fg-muted`,children:i}),t[6]=i,t[7]=C);let w;t[8]===a?w=t[9]:(w=a.map(Ge),t[8]=a,t[9]=w);let T;t[10]===w?T=t[11]:(T=(0,$.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5 text-sm text-fg-muted`,children:w}),t[10]=w,t[11]=T);let E;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>v(e.target.checked),t[12]=E):E=t[12];let D;t[13]===_?D=t[14]:(D=(0,$.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 size-4 shrink-0 rounded border-edge accent-accent`,checked:_,onChange:E}),t[13]=_,t[14]=D);let O;t[15]===o?O=t[16]:(O=(0,$.jsx)(`span`,{children:o}),t[15]=o,t[16]=O);let k;t[17]!==O||t[18]!==D?(k=(0,$.jsxs)(`label`,{className:`mt-5 flex cursor-pointer items-start gap-3 text-sm text-fg`,children:[D,O]}),t[17]=O,t[18]=D,t[19]=k):k=t[19];let A;t[20]!==c||t[21]!==g?(A=(0,$.jsx)(R,{type:`button`,variant:`secondary`,onClick:g,children:c}),t[20]=c,t[21]=g,t[22]=A):A=t[22];let j=!_,M;t[23]!==s||t[24]!==l||t[25]!==j?(M=(0,$.jsx)(R,{type:`button`,disabled:j,onClick:l,children:s}),t[23]=s,t[24]=l,t[25]=j,t[26]=M):M=t[26];let N;t[27]!==A||t[28]!==M?(N=(0,$.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[A,M]}),t[27]=A,t[28]=M,t[29]=N):N=t[29];let F;t[30]!==k||t[31]!==N||t[32]!==S||t[33]!==C||t[34]!==T?(F=(0,$.jsxs)(f,{children:[b,(0,$.jsxs)(p,{className:x,onOpenAutoFocus:Ke,children:[S,C,T,k,N]})]}),t[30]=k,t[31]=N,t[32]=S,t[33]=C,t[34]=T,t[35]=F):F=t[35];let I;return t[36]!==n||t[37]!==y||t[38]!==F?(I=(0,$.jsx)(h,{open:n,onOpenChange:y,children:F}),t[36]=n,t[37]=y,t[38]=F,t[39]=I):I=t[39],I}function Ge(e){return(0,$.jsx)(`li`,{children:e},e)}function Ke(e){return e.preventDefault()}function qe(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}var Je=[`preparing_frpc`,`registering`,`starting_frpc`];function Ye(e){return e?e===`reconnecting_frpc`?Je.indexOf(`starting_frpc`):Je.indexOf(e):-1}function Xe(e,t){if(t.state===`connected`)return`done`;let n=t.startProgress?.phase,r=Je.indexOf(e),i=Ye(n);return i<0?t.state===`connecting`||t.state===`reconnecting`?`active`:`pending`:r<i?`done`:r===i?`active`:`pending`}function Ze(e,t,n){let r=n.startProgress;return Xe(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 Qe(e,t){switch(t){case`preparing_frpc`:return e.stepPrepareFrpc;case`registering`:return e.stepRegister;case`starting_frpc`:return e.stepFrpcLogin}}function $e(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 et(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(tt),1e3);return()=>window.clearInterval(e)},t[0]=i,t[1]=n.state,t[2]=a):a=t[2];let o=n.startProgress?.startedAt,s;if(t[3]!==n.state||t[4]!==o?(s=[n.state,o],t[3]=n.state,t[4]=o,t[5]=s):s=t[5],(0,Z.useEffect)(a,s),!(n.state===`connecting`||n.state===`reconnecting`||n.state===`connected`&&n.startProgress))return null;let c,l,u,d,f;if(t[6]!==n||t[7]!==r){let e=$e(n.startProgress?.startedAt);c=!!n.publicUrl&&n.state!==`connected`&&n.startProgress?.phase!==`registering`,l=`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?(u=(0,$.jsxs)(`div`,{children:[i,a]}),t[17]=i,t[18]=a,t[19]=u):u=t[19];let o=Je.map(e=>{let t=Xe(e,n),i=Ze(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)(_,{className:`size-3.5 text-emerald-600 dark:text-emerald-400`}):t===`active`?(0,$.jsx)(E,{className:`size-3.5 animate-spin text-accent`}):(0,$.jsx)(b,{className:`size-3.5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:P(`font-medium`,t===`active`?`text-fg`:t===`done`?`text-fg-muted`:`text-fg-subtle`),children:Qe(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:P(`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:[qe(n.frpcDownload.bytesReceived),` /`,` `,qe(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?d=t[21]:(d=(0,$.jsx)(`ol`,{className:`space-y-2`,children:o}),t[20]=o,t[21]=d),f=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]=c,t[9]=l,t[10]=u,t[11]=d,t[12]=f}else c=t[8],l=t[9],u=t[10],d=t[11],f=t[12];let p;t[22]!==c||t[23]!==r.publicUrlPendingNotice?(p=c?(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.publicUrlPendingNotice}):null,t[22]=c,t[23]=r.publicUrlPendingNotice,t[24]=p):p=t[24];let m;return t[25]!==l||t[26]!==u||t[27]!==d||t[28]!==f||t[29]!==p?(m=(0,$.jsxs)(`div`,{className:l,children:[u,d,f,p]}),t[25]=l,t[26]=u,t[27]=d,t[28]=f,t[29]=p,t[30]=m):m=t[30],m}function tt(e){return e+1}function nt(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 rt(e){return e.state===`connected`?`connected`:e.state===`error`?`error`:e.state===`connecting`||e.state===`reconnecting`||e.startProgress||e.frpcDownload?`progress`:`off`}function it(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 at(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 ot(e){let t=(0,Q.c)(69),{t:n,status:r,isLoading:i,statusErr:a,starting:o,stopping:s,showConsentExpired:c,copyLabels:l,startDisabled:u,startDisabledReason:d,stepLabel:f,onStart:p,onStop:m}=e,h=u!==void 0&&u,g;t[0]!==r.lastError||t[1]!==r.state?(g=r.state===`error`&&he(Error(r.lastError??``)),t[0]=r.lastError,t[1]=r.state,t[2]=g):g=t[2];let _=g,v,y,b,x,S,C,T;t[3]!==r||t[4]!==o?(T=rt(r),v=r.enabled||o,y=o||r.state===`connecting`||r.state===`reconnecting`||!!r.startProgress||!!r.frpcDownload,t[12]===Symbol.for(`react.memo_cache_sentinel`)?(C=P(le(),`space-y-4`),t[12]=C):C=t[12],S=`flex flex-wrap items-start justify-between gap-3`,x=`flex items-center gap-2`,b=P(`inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium`,it(T)),t[3]=r,t[4]=o,t[5]=v,t[6]=y,t[7]=b,t[8]=x,t[9]=S,t[10]=C,t[11]=T):(v=t[5],y=t[6],b=t[7],x=t[8],S=t[9],C=t[10],T=t[11]);let D=T===`connected`&&`bg-emerald-500`,k=T===`progress`&&`bg-amber-500 animate-pulse`,A=T===`error`&&`bg-red-500`,j=T===`off`&&`bg-fg-subtle`,M;t[13]!==j||t[14]!==D||t[15]!==k||t[16]!==A?(M=P(`size-1.5 rounded-full`,D,k,A,j),t[13]=j,t[14]=D,t[15]=k,t[16]=A,t[17]=M):M=t[17];let F;t[18]===M?F=t[19]:(F=(0,$.jsx)(`span`,{className:M,"aria-hidden":!0}),t[18]=M,t[19]=F);let I;t[20]!==i||t[21]!==r||t[22]!==n?(I=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`}):nt(n,r),t[20]=i,t[21]=r,t[22]=n,t[23]=I):I=t[23];let L;t[24]!==F||t[25]!==I||t[26]!==b?(L=(0,$.jsxs)(`span`,{className:b,children:[F,I]}),t[24]=F,t[25]=I,t[26]=b,t[27]=L):L=t[27];let z;t[28]!==r.connectedSince||t[29]!==r.state||t[30]!==n.uptime?(z=r.connectedSince&&r.state===`connected`?(0,$.jsxs)(`span`,{className:`text-xs text-fg-subtle`,children:[n.uptime,` `,at(r.connectedSince)]}):null,t[28]=r.connectedSince,t[29]=r.state,t[30]=n.uptime,t[31]=z):z=t[31];let B;t[32]!==L||t[33]!==z||t[34]!==x?(B=(0,$.jsxs)(`div`,{className:x,children:[L,z]}),t[32]=L,t[33]=z,t[34]=x,t[35]=B):B=t[35];let V;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,$.jsx)(w,{className:`size-4 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),t[36]=V):V=t[36];let H;t[37]!==B||t[38]!==S?(H=(0,$.jsxs)(`div`,{className:S,children:[B,V]}),t[37]=B,t[38]=S,t[39]=H):H=t[39];let U;t[40]===a?U=t[41]:(U=a?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:a instanceof Error?a.message:String(a)}):null,t[40]=a,t[41]=U);let W;t[42]!==c||t[43]!==n.consentExpiredBanner?(W=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[42]=c,t[43]=n.consentExpiredBanner,t[44]=W):W=t[44];let G;t[45]!==_||t[46]!==n.recoverConnectionHint?(G=_?(0,$.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:n.recoverConnectionHint}):null,t[45]=_,t[46]=n.recoverConnectionHint,t[47]=G):G=t[47];let K;t[48]!==v||t[49]!==l||t[50]!==p||t[51]!==m||t[52]!==_||t[53]!==y||t[54]!==r||t[55]!==h||t[56]!==d||t[57]!==o||t[58]!==f||t[59]!==s||t[60]!==n?(K=v?(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)(ee,{label:n.publicUrlLabel,text:r.publicUrl,labels:l})}):null,y?(0,$.jsx)(et,{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)(R,{type:`button`,variant:`secondary`,disabled:s,onClick:m,children:[s?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,n.stop]}):(0,$.jsxs)(R,{type:`button`,disabled:o,onClick:p,children:[o?(0,$.jsx)(E,{className:`size-4 animate-spin`}):(0,$.jsx)(O,{className:`size-4`}),_?n.recoverConnection:n.start]})})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[f?(0,$.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:f}):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)(N,{className:`mt-0.5 size-4 shrink-0 text-amber-600 dark:text-amber-400`}),(0,$.jsx)(`p`,{children:n.riskBannerBody})]}),h&&d?(0,$.jsx)(`p`,{className:`text-sm text-amber-800 dark:text-amber-200`,children:d}):null,(0,$.jsxs)(R,{type:`button`,disabled:o||h,onClick:p,className:`w-full sm:w-auto`,children:[o?(0,$.jsx)(E,{className:`size-4 animate-spin`}):(0,$.jsx)(O,{className:`size-4`}),_?n.recoverConnection:n.start]})]}),t[48]=v,t[49]=l,t[50]=p,t[51]=m,t[52]=_,t[53]=y,t[54]=r,t[55]=h,t[56]=d,t[57]=o,t[58]=f,t[59]=s,t[60]=n,t[61]=K):K=t[61];let q;return t[62]!==H||t[63]!==U||t[64]!==W||t[65]!==G||t[66]!==K||t[67]!==C?(q=(0,$.jsxs)(`section`,{className:C,children:[H,U,W,G,K]}),t[62]=H,t[63]=U,t[64]=W,t[65]=G,t[66]=K,t[67]=C,t[68]=q):q=t[68],q}var st={reconfiguring:!1};function ct(e){let t=(0,Q.c)(89),{t:n,brokerSecretReady:r,brokerSecretConfiguredInConfig:i,brokerSecretMaskedValue:a,brokerSecretDraft:o,savingBrokerSecret:s,authorizingBrokerSecret:c,brokerSecretAuthorizationUrl:l,brokerSecretNotice:u,copyFailedLabel:d,onDraftChange:f,onSave:p,onAuthorize:m,onClear:h,sectionRef:g}=e,v=(0,Z.useId)(),y=r,b=!y,[x,w]=(0,Z.useReducer)(U,st),{reconfiguring:D}=x,O;t[0]!==i||t[1]!==o||t[2]!==D?(O=i&&!D&&!o.trim(),t[0]=i,t[1]=o,t[2]=D,t[3]=O):O=t[3];let k=O,A;t[4]!==n.copied||t[5]!==n.copyKey||t[6]!==n.hideKey||t[7]!==n.showKey?(A={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]=A):A=t[8];let j=A,M;t[9]===o?M=t[10]:(M=o.trim().length>0&&!K(o.trim()),t[9]=o,t[10]=M);let N=M,F;t[11]===f?F=t[12]:(F=()=>{w({type:`patch`,patch:{reconfiguring:!1}}),f(``)},t[11]=f,t[12]=F);let I=F,L=b&&`ring-1 ring-amber-500/30`,z;t[13]===L?z=t[14]:(z=P(L),t[13]=L,t[14]=z);let B=y?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:b?`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=P(`flex size-9 shrink-0 items-center justify-center rounded-lg`,B),t[15]=B,t[16]=V);let H;t[17]===y?H=t[18]:(H=y?(0,$.jsx)(_,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}):(0,$.jsx)(T,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[17]=y,t[18]=H);let W;t[19]!==V||t[20]!==H?(W=(0,$.jsx)(`span`,{className:V,children:H}),t[19]=V,t[20]=H,t[21]=W):W=t[21];let ee=y?n.brokerSecretReadyTitle:n.brokerSecretStepTitle,G;t[22]===ee?G=t[23]:(G=(0,$.jsx)(`p`,{className:`text-sm font-semibold text-fg`,children:ee}),t[22]=ee,t[23]=G);let q=y?n.brokerSecretReadyHint:n.brokerSecretHint,te;t[24]===q?te=t[25]:(te=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:q}),t[24]=q,t[25]=te);let ne;t[26]!==b||t[27]!==n.brokerSecretMissingHint?(ne=b?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-amber-800 dark:text-amber-200`,children:n.brokerSecretMissingHint}):null,t[26]=b,t[27]=n.brokerSecretMissingHint,t[28]=ne):ne=t[28];let J;t[29]!==G||t[30]!==te||t[31]!==ne?(J=(0,$.jsxs)(`div`,{children:[G,te,ne]}),t[29]=G,t[30]=te,t[31]=ne,t[32]=J):J=t[32];let re;t[33]!==c||t[34]!==b||t[35]!==m||t[36]!==D||t[37]!==s||t[38]!==n.brokerSecretAuthorize||t[39]!==n.brokerSecretAuthorizing||t[40]!==n.brokerSecretConsoleLink?(re=b||D?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsxs)(R,{type:`button`,disabled:s||c,onClick:m,children:[c?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,c?n.brokerSecretAuthorizing:n.brokerSecretAuthorize]}),(0,$.jsxs)(`a`,{href:xe,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)(S,{className:`size-3`,"aria-hidden":!0})]})]}):null,t[33]=c,t[34]=b,t[35]=m,t[36]=D,t[37]=s,t[38]=n.brokerSecretAuthorize,t[39]=n.brokerSecretAuthorizing,t[40]=n.brokerSecretConsoleLink,t[41]=re):re=t[41];let ie;t[42]!==c||t[43]!==l||t[44]!==n.brokerSecretOpenAuthorization?(ie=c&&l?(0,$.jsxs)(`a`,{href:l,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)(S,{className:`size-3`,"aria-hidden":!0})]}):null,t[42]=c,t[43]=l,t[44]=n.brokerSecretOpenAuthorization,t[45]=ie):ie=t[45];let ae;t[46]!==i||t[47]!==o||t[48]!==a||t[49]!==N||t[50]!==I||t[51]!==d||t[52]!==v||t[53]!==b||t[54]!==h||t[55]!==f||t[56]!==p||t[57]!==D||t[58]!==s||t[59]!==j||t[60]!==k||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?(ae=k?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:v,children:n.brokerSecretTitle}),(0,$.jsx)(C,{id:v,value:a,labels:j,reveal:lt,loadFailedLabel:d||n.brokerSecretRevealFailed,maskedHelp:n.brokerSecretMaskedHelp,notInConfigFile:n.brokerSecretNotInConfigFile,readOnly:!0}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(R,{type:`button`,variant:`secondary`,disabled:s,onClick:()=>{w({type:`patch`,patch:{reconfiguring:!0}})},children:n.brokerSecretReconfigure}),(0,$.jsx)(R,{type:`button`,variant:`ghost`,disabled:s,onClick:h,children:n.brokerSecretClear})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:v,children:n.brokerSecretTitle}),(0,$.jsx)(C,{id:v,value:o,onChange:f,placeholder:n.brokerSecretPlaceholder,labels:j,disabled:s}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsxs)(R,{type:`button`,disabled:s||!N,onClick:p,children:[s?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,b?n.brokerSecretSaveAndContinue:n.brokerSecretSave]}),i?(0,$.jsx)(R,{type:`button`,variant:`ghost`,disabled:s,onClick:h,children:n.brokerSecretClear}):null,D?(0,$.jsx)(R,{type:`button`,variant:`ghost`,disabled:s,onClick:I,children:n.brokerSecretCancelReconfigure}):null]})]}),t[46]=i,t[47]=o,t[48]=a,t[49]=N,t[50]=I,t[51]=d,t[52]=v,t[53]=b,t[54]=h,t[55]=f,t[56]=p,t[57]=D,t[58]=s,t[59]=j,t[60]=k,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]=ae):ae=t[71];let oe;t[72]===u?oe=t[73]:(oe=u?(0,$.jsx)(`p`,{className:`text-xs text-emerald-700 dark:text-emerald-400`,children:u}):null,t[72]=u,t[73]=oe);let se;t[74]!==J||t[75]!==re||t[76]!==ie||t[77]!==ae||t[78]!==oe?(se=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[J,re,ie,ae,oe]}),t[74]=J,t[75]=re,t[76]=ie,t[77]=ae,t[78]=oe,t[79]=se):se=t[79];let ce;t[80]!==W||t[81]!==se?(ce=(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[W,se]}),t[80]=W,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]!==g||t[87]!==Y?(le=(0,$.jsx)(`div`,{ref:g,id:`tunnel-broker-secret-setup`,children:Y}),t[86]=g,t[87]=Y,t[88]=le):le=t[88],le}function lt(){return ve().then(ut)}function ut(e){return e.registrationSecret??null}var dt={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 ft({embedded:e=!1}){let t=c(e=>e.language),n=l(t).tunnelSettings,r=!!s(e=>e.conversationId),[i,a]=(0,Z.useReducer)(U,dt),{actionError:o,starting:u,stopping:d,savingAutoStart:f,consentOpen:p,autoStartConfirmOpen:m,releaseConfirmOpen:h,releasing:g,brokerSecretDraft:_,savingBrokerSecret:v,authorizingBrokerSecret:y,brokerSecretAuthorizationUrl:b,brokerSecretNotice:x}=i,S=(0,Z.useRef)(null),{data:C}=L(r),{data:T,error:D,isLoading:O,mutate:k}=F(r?`tunnel-status`:null,_e,{refreshInterval:e=>u?1e3:e?.frpcDownload||e?.state===`connecting`||e?.state===`reconnecting`?2e3:6e4}),A=(0,Z.useMemo)(()=>{let e=C?.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 T?.config?.autoStart===!0},[C,T?.config?.autoStart]),j=(0,Z.useMemo)(()=>{let e=C?.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``},[C]),M=K(j),N=T?.registrationSecret?.configured??M;(0,Z.useEffect)(()=>{let e=()=>{k()};return window.addEventListener(`tunnel-status`,e),()=>window.removeEventListener(`tunnel-status`,e)},[k]);let z=(0,Z.useMemo)(()=>[n.consentBullet1,n.consentBullet2,n.consentBullet3],[n.consentBullet1,n.consentBullet2,n.consentBullet3]),B=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{starting:!0}});try{await be(T?.state===`error`&&he(Error(T.lastError??``))?{recoverActiveLease:!0}:void 0),await k(),I()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}}),await k().catch(()=>{})}finally{a({type:`patch`,patch:{starting:!1}})}},[k,T]),V=(0,Z.useCallback)(()=>{if(!N){a({type:`patch`,patch:{actionError:n.brokerSecretRequiredBeforeStart}}),S.current?.scrollIntoView({behavior:`smooth`,block:`start`});return}if(T?.consentRequired){a({type:`patch`,patch:{consentOpen:!0}});return}B()},[N,T?.consentRequired,B,n.brokerSecretRequiredBeforeStart]),H=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{consentOpen:!1}}),a({type:`patch`,patch:{actionError:null}});try{await fe(),await Promise.all([k(),B()])}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}},[k,B]),ee=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{stopping:!0}});try{await me(),await k(),I()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{stopping:!1}})}},[k]),G=(0,Z.useCallback)(async e=>{a({type:`patch`,patch:{savingAutoStart:!0}}),a({type:`patch`,patch:{actionError:null}});try{await ye({autoStart:e}),I()}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(A){G(!1);return}if(T?.consentRequired){a({type:`patch`,patch:{actionError:n.consentExpiredBanner}});return}if(!T?.canAutoStart){a({type:`patch`,patch:{actionError:n.autoStartHint}});return}a({type:`patch`,patch:{autoStartConfirmOpen:!0}})},[G,T?.canAutoStart,T?.consentRequired,n,A]),oe=(0,Z.useCallback)(async()=>{let e=_.trim();if(e){a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ye({registrationSecret:e}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretSaved}}),I(),await k(),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}})}}},[_,k,n.brokerSecretSaved]),se=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ye({registrationSecret:null}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretCleared}}),I(),await k()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingBrokerSecret:!1}})}},[k,n.brokerSecretCleared]),ce=(0,Z.useCallback)(async()=>{let e=ie(),t=null,r=null;a({type:`patch`,patch:{authorizingBrokerSecret:!0,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null,actionError:null}});try{for(t=(await q(`xopc-tunnel`)).sessionId;;){await new Promise(e=>window.setTimeout(e,1e3));let i=await ne(t);if(i.authUrl&&i.authUrl!==r&&(r=i.authUrl,a({type:`patch`,patch:{brokerSecretAuthorizationUrl:i.authUrl}}),await re(i.authUrl,e)),i.status===`failed`||i.status===`cancelled`)throw Error(i.error??i.message??`OAuth authorization failed`);if(i.status===`completed`){await ge(),await Promise.all([k(),I()]),a({type:`patch`,patch:{brokerSecretNotice:n.brokerSecretSaved,brokerSecretDraft:``}});return}}}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{ae(e),t&&te(t).catch(()=>void 0),a({type:`patch`,patch:{authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null}})}},[k,n.brokerSecretSaved]),Y=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{releaseConfirmOpen:!1,actionError:null,releasing:!0}});try{await me({release:!0}),await k(),I()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{releasing:!1}})}},[k]),le=(0,Z.useMemo)(()=>({copy:n.copyUrl,copied:n.copied,copyFailed:l(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=T??{enabled:!1,state:`disconnected`,subdomain:null,publicUrl:null,connectedSince:null,frpcPid:null,lastHeartbeatAt:null,lastError:null,consentRequired:!0,config:{autoStart:A,brokerUrl:`https://frp.xopc.ai/api`}},pe=T?.consentRequired&&(X.enabled||A||T?.consent?.acceptedAt),ve=(0,$.jsx)(ct,{t:n,brokerSecretReady:N,brokerSecretConfiguredInConfig:M,brokerSecretMaskedValue:M?j:``,brokerSecretDraft:_,savingBrokerSecret:v,authorizingBrokerSecret:y,brokerSecretAuthorizationUrl:b,brokerSecretNotice:x,copyFailedLabel:l(t).clipboard.copyFailed,onDraftChange:e=>a({type:`patch`,patch:{brokerSecretDraft:e}}),onSave:()=>void oe(),onAuthorize:()=>void ce(),onClear:()=>void se(),sectionRef:S}),xe=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(We,{open:p,title:n.consentTitle,intro:n.consentIntro,bullets:z,checkboxLabel:n.consentCheckbox,confirmLabel:pe?n.consentReconfirm:n.consentConfirm,cancelLabel:n.consentCancel,onConfirm:()=>void H(),onCancel:()=>a({type:`patch`,patch:{consentOpen:!1}})},p?`consent-open`:`consent-closed`),(0,$.jsx)(W,{open:m,title:n.autoStartConfirmTitle,description:n.autoStartConfirmBody,confirmLabel:n.autoStartConfirmLabel,cancelLabel:n.consentCancel,onConfirm:()=>{a({type:`patch`,patch:{autoStartConfirmOpen:!1}}),G(!0)},onCancel:()=>a({type:`patch`,patch:{autoStartConfirmOpen:!1}})}),(0,$.jsx)(W,{open:h,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,ve,(0,$.jsx)(ot,{t:n,status:X,isLoading:O,statusErr:D,starting:u,stopping:d,showConsentExpired:!!pe,copyLabels:le,startDisabled:!N,startDisabledReason:N?void 0:n.brokerSecretRequiredBeforeStart,stepLabel:n.flowStepStart,onStart:V,onStop:()=>void ee()}),(0,$.jsxs)(He,{showLabel:n.showOptions,hideLabel:n.hideOptions,children:[(0,$.jsxs)(`label`,{className:P(`flex items-center gap-3 text-sm text-fg`,!A&&!T?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:A,disabled:f||!A&&!T?.canAutoStart,onChange:J}),n.autoStart]}),!T?.canAutoStart&&!A?(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)(R,{type:`button`,variant:`secondary`,disabled:g||d,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[g?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,n.release]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.releaseHint})]}):null]}),(0,$.jsx)(He,{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)(w,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(de,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]})}),xe]}):(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,ve,(0,$.jsx)(ot,{t:n,status:X,isLoading:O,statusErr:D,starting:u,stopping:d,showConsentExpired:!!pe,copyLabels:le,startDisabled:!N,startDisabledReason:N?void 0:n.brokerSecretRequiredBeforeStart,onStart:V,onStop:()=>void ee()}),X.subdomain||X.publicUrl?(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(R,{type:`button`,variant:`secondary`,disabled:g||d,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[g?(0,$.jsx)(E,{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:P(`flex items-center gap-3 text-sm text-fg`,!A&&!T?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:A,disabled:f||!A&&!T?.canAutoStart,onChange:J}),n.autoStart]}),!T?.canAutoStart&&!A?(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)(w,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(de,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]}),xe]})}function pt(e,t){return e.tabs[t]}function mt(e,t){return e.tabIntro[t]}function ht(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 gt(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)(je,{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)(pe,{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)(ft,{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)(Ce,{}),t[4]=e):e=t[4],e}case`ssh`:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ze,{}),t[5]=e):e=t[5],e}case`lan`:{let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Fe,{}),t[6]=e):e=t[6],e}}}function _t(){let e=(0,Q.c)(3),t=o(),n=c(yt),r=l(n).remoteAccess,a=!!s(vt),[u,d]=i(),f=G(),p=Ve(u.get(`tab`)),m=u.get(`intent`)===`mobile-pairing`,h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={refreshInterval:2e3},e[0]=h):h=e[0];let _=F(m?`device-pairing-readiness`:null,X,h),v;e[1]===d?v=e[2]:(v=e=>{d(t=>{let n=new URLSearchParams(t);return e===`guide`?n.delete(`tab`):n.set(`tab`,e),n},{replace:!0})},e[1]=d,e[2]=v);let y=v,b=mt(r,p),x=Be.filter(e=>f||e!==`ssh`&&e!==`reverse-proxy`||e===p).map(e=>({id:e,label:pt(r,e)}));return(0,$.jsxs)(oe,{children:[(0,$.jsx)(se,{title:r.pageTitle,meta:(0,$.jsx)(de,{language:n,label:r.docsLink,section:ht(p),className:`mt-1`})}),a?(0,$.jsxs)($.Fragment,{children:[m?(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)(j,{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:_.data?.ready?r.mobilePairingFlow.ready:r.mobilePairingFlow.hint})]})]}),(0,$.jsxs)(R,{variant:`primary`,disabled:!_.data?.ready,onClick:()=>t(`/settings/devices?startDevicePairing=mobile`),children:[_.data?.ready?r.mobilePairingFlow.continue:r.mobilePairingFlow.waiting,(0,$.jsx)(g,{className:`size-4`,"aria-hidden":!0})]})]}):null,(0,$.jsx)(H,{items:x,activeTab:p,onChange:y,ariaLabel:r.tabsAria,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`}),(0,$.jsx)(ce,{id:p,activeTab:p,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`,title:pt(r,p),hint:p===`public`?void 0:b,showHeading:!1,framed:!1,children:(0,$.jsx)(gt,{tab:p,onOpenTab:y})})]}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.guide.needToken})]})}function vt(e){return e.conversationId}function yt(e){return e.language}export{_t as RemoteAccessHub};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{m as i,t as a,u as o}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{l as s,n as c}from"./locale-store-B7y-RVe8.js";import{t as l}from"./messages-DYDkJvXj.js";import{a as u,i as d,o as f,r as p,s as m,t as h}from"./dist-BGTk37IG.js";import{t as g}from"./arrow-right-DSSvoX71.js";import{t as _}from"./check-DUBLcKHA.js";import{t as v}from"./chevron-down-ccbiQQz_.js";import{t as y}from"./chevron-right-BweFrslA.js";import{t as b}from"./circle-BoO4YvTx.js";import{t as x}from"./copy-Dv6d4Dvw.js";import{t as S}from"./external-link-DjqjBmc3.js";import{t as C}from"./secret-input-Dryrns2s.js";import{t as w}from"./globe-DSSGFWFn.js";import{t as T}from"./key-round-DWbpyU2U.js";import{t as E}from"./loader-circle-CifKLtgG.js";import{t as D}from"./network-BUQLY1BV.js";import{t as O}from"./power-ZI-pBczI.js";import{t as k}from"./server-BlHCBjiE.js";import{t as A}from"./shield-B1sI_cxl.js";import{t as j}from"./smartphone-DSSsQFqA.js";import{t as M}from"./terminal-oKqqZdiG.js";import{t as N}from"./triangle-alert-2JXFNNKU.js";import{t as P}from"./cn-0WouolD0.js";import{i as F}from"./vendor-swr-CdRzEUwF.js";import{n as I,r as L}from"./gateway-config-swr-BD4Bf8uu.js";import{t as R}from"./button-Cc4hUNTt.js";import{i as z,o as B}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{t as V}from"./copy-to-clipboard-HOJ79TWv.js";import{t as H}from"./page-tabs-oeTY7z3_.js";import{r as U}from"./settings-form-draft-Dy10ldo8.js";import{t as W}from"./confirm-dialog-D7dQJytv.js";import{t as ee}from"./copy-text-row-CpiRzq4G.js";import{n as G}from"./settings-mode-store-Bk_hzwPK.js";import{r as K}from"./providers-api-CBSC3jdu.js";import{a as q,n as te,r as ne}from"./oauth-api-DINa08-z.js";import{t as J}from"./settings-advanced-section-BmrbHgQa.js";import{n as re,r as ie,t as ae}from"./oauth-authorization-window-o6URRos4.js";import{n as oe,t as se}from"./settings-page-header-BLKI3_9N.js";import{t as ce}from"./settings-page-layout-BqBVrkC9.js";import{n as Y,r as le,t as ue}from"./settings-form-section-num14vSv.js";import{S as de,_ as X,a as fe,b as pe,c as me,d as he,i as ge,n as _e,o as ve,r as ye,s as be,t as xe,x as Se,y as Ce}from"./tunnel-api-BurZtvqx.js";import{t as we}from"./settings-advanced-gate-BMHe9uwy.js";var Z=e(t(),1),Q=n(),$=r();function Te(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 Ee(e){let t=(0,Q.c)(11),{label:n,kind:r}=e,i;t[0]===r?i=t[1]:(i=P(`inline-flex items-center gap-1.5 text-xs font-medium`,Te(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=P(`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 De(e){let t=(0,Q.c)(31),{onOpenTab:n}=e,r=c(ke),i;t[0]===r?i=t[1]:(i=l(r),t[0]=r,t[1]=i);let a=i.remoteAccess.guide,o=!!s(Oe),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u={refreshInterval:3e4},t[2]=u):u=t[2];let{data:d}=F(o?`exposure-status`:null,Se,u),f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f={refreshInterval:15e3},t[3]=f):f=t[3];let{data:p}=F(o?`tunnel-status`:null,_e,f),m=L(o);if(!o)return null;let h=d?.tailscale.active===!0,g=p?.state,_=p?.enabled&&g===`connected`,v=p?.enabled&&(g===`connecting`||g===`reconnecting`||!!p?.startProgress||!!p?.frpcDownload),y=m.data?.payload?.config,b=!!(y&&typeof y==`object`&&!Array.isArray(y)&&y.gateway?.publicUrl),x=h?`active`:`off`,S=h?a.statusActive:a.statusOff,C;t[4]!==a.tailscaleCardTitle||t[5]!==x||t[6]!==S?(C={tab:`tailscale`,icon:w,title:a.tailscaleCardTitle,kind:x,statusLabel:S},t[4]=a.tailscaleCardTitle,t[5]=x,t[6]=S,t[7]=C):C=t[7];let T=_?`active`:v?`connecting`:`off`,E=_?a.statusActive:v?a.statusConnecting:a.statusOff,O;t[8]!==a.publicCardTitle||t[9]!==T||t[10]!==E?(O={tab:`public`,icon:D,title:a.publicCardTitle,kind:T,statusLabel:E},t[8]=a.publicCardTitle,t[9]=T,t[10]=E,t[11]=O):O=t[11];let j=b?`active`:`off`,N=b?a.statusActive:a.statusOff,I;t[12]!==a.reverseProxyCardTitle||t[13]!==j||t[14]!==N?(I={tab:`reverse-proxy`,icon:A,title:a.reverseProxyCardTitle,kind:j,statusLabel:N},t[12]=a.reverseProxyCardTitle,t[13]=j,t[14]=N,t[15]=I):I=t[15];let R;t[16]!==a.sshCardStatus||t[17]!==a.sshCardTitle?(R={tab:`ssh`,icon:M,title:a.sshCardTitle,kind:`off`,statusLabel:a.sshCardStatus},t[16]=a.sshCardStatus,t[17]=a.sshCardTitle,t[18]=R):R=t[18];let z;t[19]!==a.lanCardStatus||t[20]!==a.lanCardTitle?(z={tab:`lan`,icon:k,title:a.lanCardTitle,kind:`off`,statusLabel:a.lanCardStatus},t[19]=a.lanCardStatus,t[20]=a.lanCardTitle,t[21]=z):z=t[21];let B;t[22]!==I||t[23]!==R||t[24]!==z||t[25]!==C||t[26]!==O?(B=[C,O,I,R,z],t[22]=I,t[23]=R,t[24]=z,t[25]=C,t[26]=O,t[27]=B):B=t[27];let V=B,H;return t[28]!==V||t[29]!==n?(H=(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:V.map(e=>{let t=e.icon;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(e.tab),className:P(`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)(Ee,{label:e.statusLabel,kind:e.kind})]})]},`${e.tab}-${e.title}`)})}),t[28]=V,t[29]=n,t[30]=H):H=t[30],H}function Oe(e){return e.conversationId}function ke(e){return e.language}function Ae(e){let t=(0,Q.c)(21),{title:n,description:r,recommended:i,icon:a,onOpen:o,recommendedLabel:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=P(`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]=c):c=t[0];let l;t[1]===a?l=t[2]:(l=(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]=l);let u;t[3]===n?u=t[4]:(u=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n}),t[3]=n,t[4]=u);let d;t[5]!==i||t[6]!==s?(d=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]=d):d=t[7];let f;t[8]!==u||t[9]!==d?(f=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[u,d]}),t[8]=u,t[9]=d,t[10]=f):f=t[10];let p;t[11]===r?p=t[12]:(p=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:r}),t[11]=r,t[12]=p);let m;t[13]!==f||t[14]!==p?(m=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[f,p]}),t[13]=f,t[14]=p,t[15]=m):m=t[15];let h;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(y,{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]=h):h=t[16];let g;return t[17]!==o||t[18]!==l||t[19]!==m?(g=(0,$.jsxs)(`button`,{type:`button`,onClick:o,className:c,children:[l,m,h]}),t[17]=o,t[18]=l,t[19]=m,t[20]=g):g=t[20],g}function je(e){let t=(0,Q.c)(78),{onOpenTab:n}=e,r=c(Pe),i;t[0]===r?i=t[1]:(i=l(r),t[0]=r,t[1]=i);let a=i.remoteAccess,o=a.guide,u=!!s(Ne),d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d={refreshInterval:3e4},t[2]=d):d=t[2];let{data:f}=F(u?`exposure-status`:null,Se,d),p;t[3]===f?.conflicts?p=t[4]:(p=f?.conflicts??[],t[3]=f?.conflicts,t[4]=p);let m=p;if(!u){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 h;t[7]===n?h=t[8]:(h=(0,$.jsx)(De,{onOpenTab:n}),t[7]=n,t[8]=h);let g;t[9]!==m||t[10]!==o.conflictsHint||t[11]!==o.conflictsTitle?(g=m.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:m.map(Me)})]}):null,t[9]=m,t[10]=o.conflictsHint,t[11]=o.conflictsTitle,t[12]=g):g=t[12];let _;t[13]===o.pickMethod?_=t[14]:(_=(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:o.pickMethod}),t[13]=o.pickMethod,t[14]=_);let v;t[15]===n?v=t[16]:(v=()=>n(`tailscale`),t[15]=n,t[16]=v);let y;t[17]!==o.recommended||t[18]!==o.tailscaleCardDesc||t[19]!==o.tailscaleCardTitle||t[20]!==v?(y=(0,$.jsx)(Ae,{icon:w,title:o.tailscaleCardTitle,description:o.tailscaleCardDesc,recommended:!0,recommendedLabel:o.recommended,onOpen:v}),t[17]=o.recommended,t[18]=o.tailscaleCardDesc,t[19]=o.tailscaleCardTitle,t[20]=v,t[21]=y):y=t[21];let b;t[22]===n?b=t[23]:(b=()=>n(`public`),t[22]=n,t[23]=b);let x;t[24]!==o.publicCardDesc||t[25]!==o.publicCardTitle||t[26]!==b?(x=(0,$.jsx)(Ae,{icon:D,title:o.publicCardTitle,description:o.publicCardDesc,onOpen:b}),t[24]=o.publicCardDesc,t[25]=o.publicCardTitle,t[26]=b,t[27]=x):x=t[27];let S;t[28]===n?S=t[29]:(S=()=>n(`reverse-proxy`),t[28]=n,t[29]=S);let C;t[30]!==o.reverseProxyCardDesc||t[31]!==o.reverseProxyCardTitle||t[32]!==S?(C=(0,$.jsx)(Ae,{icon:A,title:o.reverseProxyCardTitle,description:o.reverseProxyCardDesc,onOpen:S}),t[30]=o.reverseProxyCardDesc,t[31]=o.reverseProxyCardTitle,t[32]=S,t[33]=C):C=t[33];let T;t[34]===n?T=t[35]:(T=()=>n(`ssh`),t[34]=n,t[35]=T);let E;t[36]!==o.sshCardDesc||t[37]!==o.sshCardTitle||t[38]!==T?(E=(0,$.jsx)(Ae,{icon:M,title:o.sshCardTitle,description:o.sshCardDesc,onOpen:T}),t[36]=o.sshCardDesc,t[37]=o.sshCardTitle,t[38]=T,t[39]=E):E=t[39];let O;t[40]!==a.advanced.proxyBody||t[41]!==a.advanced.proxyTitle||t[42]!==C||t[43]!==E?(O=(0,$.jsxs)(J,{title:a.advanced.proxyTitle,summary:a.advanced.proxyBody,children:[C,E]}),t[40]=a.advanced.proxyBody,t[41]=a.advanced.proxyTitle,t[42]=C,t[43]=E,t[44]=O):O=t[44];let j;t[45]===n?j=t[46]:(j=()=>n(`lan`),t[45]=n,t[46]=j);let N;t[47]!==o.lanCardDesc||t[48]!==o.lanCardTitle||t[49]!==j?(N=(0,$.jsx)(Ae,{icon:k,title:o.lanCardTitle,description:o.lanCardDesc,onOpen:j}),t[47]=o.lanCardDesc,t[48]=o.lanCardTitle,t[49]=j,t[50]=N):N=t[50];let P;t[51]!==x||t[52]!==O||t[53]!==N||t[54]!==y?(P=(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:[y,x,O,N]}),t[51]=x,t[52]=O,t[53]=N,t[54]=y,t[55]=P):P=t[55];let I;t[56]!==P||t[57]!==_?(I=(0,$.jsxs)(`div`,{children:[_,P]}),t[56]=P,t[57]=_,t[58]=I):I=t[58];let L;t[59]===o.oneAtATimeHint?L=t[60]:(L=(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-subtle`,children:o.oneAtATimeHint}),t[59]=o.oneAtATimeHint,t[60]=L);let R;t[61]===a.advanced.proxyTitle?R=t[62]:(R=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:a.advanced.proxyTitle}),t[61]=a.advanced.proxyTitle,t[62]=R);let z;t[63]===a.advanced.proxyBody?z=t[64]:(z=(0,$.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:a.advanced.proxyBody}),t[63]=a.advanced.proxyBody,t[64]=z);let B;t[65]!==r||t[66]!==a.advanced.proxyDocs?(B=(0,$.jsx)(de,{language:r,label:a.advanced.proxyDocs,section:`advanced`,className:`mt-2`}),t[65]=r,t[66]=a.advanced.proxyDocs,t[67]=B):B=t[67];let V;t[68]!==R||t[69]!==z||t[70]!==B?(V=(0,$.jsxs)(`div`,{className:`max-w-3xl rounded-xl bg-surface-hover/20 px-4 py-4`,children:[R,z,B]}),t[68]=R,t[69]=z,t[70]=B,t[71]=V):V=t[71];let H;return t[72]!==I||t[73]!==L||t[74]!==V||t[75]!==h||t[76]!==g?(H=(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[h,g,I,L,V]}),t[72]=I,t[73]=L,t[74]=V,t[75]=h,t[76]=g,t[77]=H):H=t[77],H}function Me(e){return(0,$.jsx)(`li`,{children:e.message},e.code)}function Ne(e){return e.conversationId}function Pe(e){return e.language}function Fe(){let e=(0,Q.c)(16),t=c(Ie),n;e[0]===t?n=e[1]:(n=l(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:k,title:r.title,subtitle:r.subtitle}),e[2]=r.subtitle,e[3]=r.title,e[4]=i):i=e[4];let o;e[5]===r.body?o=e[6]:(o=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.body}),e[5]=r.body,e[6]=o);let s;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(S,{className:`size-3.5`,"aria-hidden":!0}),e[7]=s):s=e[7];let u;e[8]===r.link?u=e[9]:(u=(0,$.jsxs)(a,{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]=u);let d;e[10]!==o||e[11]!==u?(d=(0,$.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[o,u]}),e[10]=o,e[11]=u,e[12]=d):d=e[12];let f;return e[13]!==i||e[14]!==d?(f=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,$.jsxs)(ue,{children:[i,d]})}),e[13]=i,e[14]=d,e[15]=f):f=e[15],f}function Ie(e){return e.language}function Le(e){let t=(0,Q.c)(30),{embedded:n}=e,r=n!==void 0&&n,i=c(Re),a;t[0]===i?a=t[1]:(a=l(i),t[0]=i,t[1]=a);let o=a.remoteAccess.ssh,[s,u]=(0,Z.useState)(!1),d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=async()=>{await V(`xopc gateway ssh-tunnel --target user@your-host --local-port 18790 --remote-port 18790`)&&(u(!0),setTimeout(()=>u(!1),2e3))},t[2]=d):d=t[2];let f=d,p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(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]=p):p=t[3];let m,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>void f(),h=(0,$.jsx)(x,{className:`mr-1 size-4`}),t[4]=m,t[5]=h):(m=t[4],h=t[5]);let g=s?o.copied:o.copy,_;t[6]===g?_=t[7]:(_=(0,$.jsx)(`div`,{className:`mt-2`,children:(0,$.jsxs)(R,{type:`button`,variant:`ghost`,onClick:m,children:[h,g]})}),t[6]=g,t[7]=_);let v;t[8]!==r||t[9]!==o.hint?(v=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]=v):v=t[10];let y;t[11]!==_||t[12]!==v?(y=(0,$.jsxs)($.Fragment,{children:[p,_,v]}),t[11]=_,t[12]=v,t[13]=y):y=t[13];let b=y;if(r){let e;t[14]!==o.subtitle||t[15]!==o.title?(e=(0,$.jsx)(Y,{icon:M,title:o.title,subtitle:o.subtitle}),t[14]=o.subtitle,t[15]=o.title,t[16]=e):e=t[16];let n;t[17]===b?n=t[18]:(n=(0,$.jsx)(`div`,{className:`mt-4 space-y-2`,children:b}),t[17]=b,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:M,title:o.title,subtitle:o.subtitle}),t[22]=o.subtitle,t[23]=o.title,t[24]=S):S=t[24];let C;t[25]===b?C=t[26]:(C=(0,$.jsx)(`div`,{className:`mt-4`,children:b}),t[25]=b,t[26]=C);let w;return t[27]!==S||t[28]!==C?(w=(0,$.jsxs)(ue,{children:[S,C]}),t[27]=S,t[28]=C,t[29]=w):w=t[29],w}function Re(e){return e.language}function ze(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(Le,{embedded:!0}),e[0]=t):t=e[0],t}var Be=[`guide`,`tailscale`,`public`,`reverse-proxy`,`ssh`,`lan`];function Ve(e){return e&&Be.includes(e)?e:`guide`}function He(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&&l,[d,f]=(0,Z.useState)(c??!1),p;t[0]===s?p=t[1]:(p=P(`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(Ue),t[2]=m):m=t[2];let h=d&&`rotate-180`,g;t[3]===h?g=t[4]:(g=P(`size-4 shrink-0 text-fg-muted transition-transform duration-200 motion-reduce:transition-none`,h),t[3]=h,t[4]=g);let _;t[5]===g?_=t[6]:(_=(0,$.jsx)(v,{className:g,"aria-hidden":!0}),t[5]=g,t[6]=_);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]!==_||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:[_,y,x]}),t[11]=d,t[12]=_,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=P(`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)(we,{children:k}),t[30]=k,t[31]=e),e}return k}function Ue(e){return!e}function We(e){let t=(0,Q.c)(40),{open:n,title:r,intro:i,bullets:a,checkboxLabel:o,confirmLabel:s,cancelLabel:c,onConfirm:l,onCancel:g}=e,[_,v]=(0,Z.useState)(!1),y;t[0]===g?y=t[1]:(y=e=>{e||(v(!1),g())},t[0]=g,t[1]=y);let b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(u,{className:P(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,B)}),t[2]=b):b=t[2];let x;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=P(`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`,z),t[3]=x):x=t[3];let S;t[4]===r?S=t[5]:(S=(0,$.jsx)(m,{className:`text-base font-semibold text-fg`,children:r}),t[4]=r,t[5]=S);let C;t[6]===i?C=t[7]:(C=(0,$.jsx)(d,{className:`mt-2 text-sm text-fg-muted`,children:i}),t[6]=i,t[7]=C);let w;t[8]===a?w=t[9]:(w=a.map(Ge),t[8]=a,t[9]=w);let T;t[10]===w?T=t[11]:(T=(0,$.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5 text-sm text-fg-muted`,children:w}),t[10]=w,t[11]=T);let E;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>v(e.target.checked),t[12]=E):E=t[12];let D;t[13]===_?D=t[14]:(D=(0,$.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 size-4 shrink-0 rounded border-edge accent-accent`,checked:_,onChange:E}),t[13]=_,t[14]=D);let O;t[15]===o?O=t[16]:(O=(0,$.jsx)(`span`,{children:o}),t[15]=o,t[16]=O);let k;t[17]!==O||t[18]!==D?(k=(0,$.jsxs)(`label`,{className:`mt-5 flex cursor-pointer items-start gap-3 text-sm text-fg`,children:[D,O]}),t[17]=O,t[18]=D,t[19]=k):k=t[19];let A;t[20]!==c||t[21]!==g?(A=(0,$.jsx)(R,{type:`button`,variant:`secondary`,onClick:g,children:c}),t[20]=c,t[21]=g,t[22]=A):A=t[22];let j=!_,M;t[23]!==s||t[24]!==l||t[25]!==j?(M=(0,$.jsx)(R,{type:`button`,disabled:j,onClick:l,children:s}),t[23]=s,t[24]=l,t[25]=j,t[26]=M):M=t[26];let N;t[27]!==A||t[28]!==M?(N=(0,$.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[A,M]}),t[27]=A,t[28]=M,t[29]=N):N=t[29];let F;t[30]!==k||t[31]!==N||t[32]!==S||t[33]!==C||t[34]!==T?(F=(0,$.jsxs)(f,{children:[b,(0,$.jsxs)(p,{className:x,onOpenAutoFocus:Ke,children:[S,C,T,k,N]})]}),t[30]=k,t[31]=N,t[32]=S,t[33]=C,t[34]=T,t[35]=F):F=t[35];let I;return t[36]!==n||t[37]!==y||t[38]!==F?(I=(0,$.jsx)(h,{open:n,onOpenChange:y,children:F}),t[36]=n,t[37]=y,t[38]=F,t[39]=I):I=t[39],I}function Ge(e){return(0,$.jsx)(`li`,{children:e},e)}function Ke(e){return e.preventDefault()}function qe(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}var Je=[`preparing_frpc`,`registering`,`starting_frpc`];function Ye(e){return e?e===`reconnecting_frpc`?Je.indexOf(`starting_frpc`):Je.indexOf(e):-1}function Xe(e,t){if(t.state===`connected`)return`done`;let n=t.startProgress?.phase,r=Je.indexOf(e),i=Ye(n);return i<0?t.state===`connecting`||t.state===`reconnecting`?`active`:`pending`:r<i?`done`:r===i?`active`:`pending`}function Ze(e,t,n){let r=n.startProgress;return Xe(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 Qe(e,t){switch(t){case`preparing_frpc`:return e.stepPrepareFrpc;case`registering`:return e.stepRegister;case`starting_frpc`:return e.stepFrpcLogin}}function $e(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 et(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(tt),1e3);return()=>window.clearInterval(e)},t[0]=i,t[1]=n.state,t[2]=a):a=t[2];let o=n.startProgress?.startedAt,s;if(t[3]!==n.state||t[4]!==o?(s=[n.state,o],t[3]=n.state,t[4]=o,t[5]=s):s=t[5],(0,Z.useEffect)(a,s),!(n.state===`connecting`||n.state===`reconnecting`||n.state===`connected`&&n.startProgress))return null;let c,l,u,d,f;if(t[6]!==n||t[7]!==r){let e=$e(n.startProgress?.startedAt);c=!!n.publicUrl&&n.state!==`connected`&&n.startProgress?.phase!==`registering`,l=`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?(u=(0,$.jsxs)(`div`,{children:[i,a]}),t[17]=i,t[18]=a,t[19]=u):u=t[19];let o=Je.map(e=>{let t=Xe(e,n),i=Ze(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)(_,{className:`size-3.5 text-emerald-600 dark:text-emerald-400`}):t===`active`?(0,$.jsx)(E,{className:`size-3.5 animate-spin text-accent`}):(0,$.jsx)(b,{className:`size-3.5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:P(`font-medium`,t===`active`?`text-fg`:t===`done`?`text-fg-muted`:`text-fg-subtle`),children:Qe(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:P(`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:[qe(n.frpcDownload.bytesReceived),` /`,` `,qe(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?d=t[21]:(d=(0,$.jsx)(`ol`,{className:`space-y-2`,children:o}),t[20]=o,t[21]=d),f=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]=c,t[9]=l,t[10]=u,t[11]=d,t[12]=f}else c=t[8],l=t[9],u=t[10],d=t[11],f=t[12];let p;t[22]!==c||t[23]!==r.publicUrlPendingNotice?(p=c?(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.publicUrlPendingNotice}):null,t[22]=c,t[23]=r.publicUrlPendingNotice,t[24]=p):p=t[24];let m;return t[25]!==l||t[26]!==u||t[27]!==d||t[28]!==f||t[29]!==p?(m=(0,$.jsxs)(`div`,{className:l,children:[u,d,f,p]}),t[25]=l,t[26]=u,t[27]=d,t[28]=f,t[29]=p,t[30]=m):m=t[30],m}function tt(e){return e+1}function nt(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 rt(e){return e.state===`connected`?`connected`:e.state===`error`?`error`:e.state===`connecting`||e.state===`reconnecting`||e.startProgress||e.frpcDownload?`progress`:`off`}function it(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 at(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 ot(e){let t=(0,Q.c)(69),{t:n,status:r,isLoading:i,statusErr:a,starting:o,stopping:s,showConsentExpired:c,copyLabels:l,startDisabled:u,startDisabledReason:d,stepLabel:f,onStart:p,onStop:m}=e,h=u!==void 0&&u,g;t[0]!==r.lastError||t[1]!==r.state?(g=r.state===`error`&&he(Error(r.lastError??``)),t[0]=r.lastError,t[1]=r.state,t[2]=g):g=t[2];let _=g,v,y,b,x,S,C,T;t[3]!==r||t[4]!==o?(T=rt(r),v=r.enabled||o,y=o||r.state===`connecting`||r.state===`reconnecting`||!!r.startProgress||!!r.frpcDownload,t[12]===Symbol.for(`react.memo_cache_sentinel`)?(C=P(le(),`space-y-4`),t[12]=C):C=t[12],S=`flex flex-wrap items-start justify-between gap-3`,x=`flex items-center gap-2`,b=P(`inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium`,it(T)),t[3]=r,t[4]=o,t[5]=v,t[6]=y,t[7]=b,t[8]=x,t[9]=S,t[10]=C,t[11]=T):(v=t[5],y=t[6],b=t[7],x=t[8],S=t[9],C=t[10],T=t[11]);let D=T===`connected`&&`bg-emerald-500`,k=T===`progress`&&`bg-amber-500 animate-pulse`,A=T===`error`&&`bg-red-500`,j=T===`off`&&`bg-fg-subtle`,M;t[13]!==j||t[14]!==D||t[15]!==k||t[16]!==A?(M=P(`size-1.5 rounded-full`,D,k,A,j),t[13]=j,t[14]=D,t[15]=k,t[16]=A,t[17]=M):M=t[17];let F;t[18]===M?F=t[19]:(F=(0,$.jsx)(`span`,{className:M,"aria-hidden":!0}),t[18]=M,t[19]=F);let I;t[20]!==i||t[21]!==r||t[22]!==n?(I=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`}):nt(n,r),t[20]=i,t[21]=r,t[22]=n,t[23]=I):I=t[23];let L;t[24]!==F||t[25]!==I||t[26]!==b?(L=(0,$.jsxs)(`span`,{className:b,children:[F,I]}),t[24]=F,t[25]=I,t[26]=b,t[27]=L):L=t[27];let z;t[28]!==r.connectedSince||t[29]!==r.state||t[30]!==n.uptime?(z=r.connectedSince&&r.state===`connected`?(0,$.jsxs)(`span`,{className:`text-xs text-fg-subtle`,children:[n.uptime,` `,at(r.connectedSince)]}):null,t[28]=r.connectedSince,t[29]=r.state,t[30]=n.uptime,t[31]=z):z=t[31];let B;t[32]!==L||t[33]!==z||t[34]!==x?(B=(0,$.jsxs)(`div`,{className:x,children:[L,z]}),t[32]=L,t[33]=z,t[34]=x,t[35]=B):B=t[35];let V;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,$.jsx)(w,{className:`size-4 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),t[36]=V):V=t[36];let H;t[37]!==B||t[38]!==S?(H=(0,$.jsxs)(`div`,{className:S,children:[B,V]}),t[37]=B,t[38]=S,t[39]=H):H=t[39];let U;t[40]===a?U=t[41]:(U=a?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:a instanceof Error?a.message:String(a)}):null,t[40]=a,t[41]=U);let W;t[42]!==c||t[43]!==n.consentExpiredBanner?(W=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[42]=c,t[43]=n.consentExpiredBanner,t[44]=W):W=t[44];let G;t[45]!==_||t[46]!==n.recoverConnectionHint?(G=_?(0,$.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:n.recoverConnectionHint}):null,t[45]=_,t[46]=n.recoverConnectionHint,t[47]=G):G=t[47];let K;t[48]!==v||t[49]!==l||t[50]!==p||t[51]!==m||t[52]!==_||t[53]!==y||t[54]!==r||t[55]!==h||t[56]!==d||t[57]!==o||t[58]!==f||t[59]!==s||t[60]!==n?(K=v?(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)(ee,{label:n.publicUrlLabel,text:r.publicUrl,labels:l})}):null,y?(0,$.jsx)(et,{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)(R,{type:`button`,variant:`secondary`,disabled:s,onClick:m,children:[s?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,n.stop]}):(0,$.jsxs)(R,{type:`button`,disabled:o,onClick:p,children:[o?(0,$.jsx)(E,{className:`size-4 animate-spin`}):(0,$.jsx)(O,{className:`size-4`}),_?n.recoverConnection:n.start]})})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[f?(0,$.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:f}):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)(N,{className:`mt-0.5 size-4 shrink-0 text-amber-600 dark:text-amber-400`}),(0,$.jsx)(`p`,{children:n.riskBannerBody})]}),h&&d?(0,$.jsx)(`p`,{className:`text-sm text-amber-800 dark:text-amber-200`,children:d}):null,(0,$.jsxs)(R,{type:`button`,disabled:o||h,onClick:p,className:`w-full sm:w-auto`,children:[o?(0,$.jsx)(E,{className:`size-4 animate-spin`}):(0,$.jsx)(O,{className:`size-4`}),_?n.recoverConnection:n.start]})]}),t[48]=v,t[49]=l,t[50]=p,t[51]=m,t[52]=_,t[53]=y,t[54]=r,t[55]=h,t[56]=d,t[57]=o,t[58]=f,t[59]=s,t[60]=n,t[61]=K):K=t[61];let q;return t[62]!==H||t[63]!==U||t[64]!==W||t[65]!==G||t[66]!==K||t[67]!==C?(q=(0,$.jsxs)(`section`,{className:C,children:[H,U,W,G,K]}),t[62]=H,t[63]=U,t[64]=W,t[65]=G,t[66]=K,t[67]=C,t[68]=q):q=t[68],q}var st={reconfiguring:!1};function ct(e){let t=(0,Q.c)(89),{t:n,brokerSecretReady:r,brokerSecretConfiguredInConfig:i,brokerSecretMaskedValue:a,brokerSecretDraft:o,savingBrokerSecret:s,authorizingBrokerSecret:c,brokerSecretAuthorizationUrl:l,brokerSecretNotice:u,copyFailedLabel:d,onDraftChange:f,onSave:p,onAuthorize:m,onClear:h,sectionRef:g}=e,v=(0,Z.useId)(),y=r,b=!y,[x,w]=(0,Z.useReducer)(U,st),{reconfiguring:D}=x,O;t[0]!==i||t[1]!==o||t[2]!==D?(O=i&&!D&&!o.trim(),t[0]=i,t[1]=o,t[2]=D,t[3]=O):O=t[3];let k=O,A;t[4]!==n.copied||t[5]!==n.copyKey||t[6]!==n.hideKey||t[7]!==n.showKey?(A={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]=A):A=t[8];let j=A,M;t[9]===o?M=t[10]:(M=o.trim().length>0&&!K(o.trim()),t[9]=o,t[10]=M);let N=M,F;t[11]===f?F=t[12]:(F=()=>{w({type:`patch`,patch:{reconfiguring:!1}}),f(``)},t[11]=f,t[12]=F);let I=F,L=b&&`ring-1 ring-amber-500/30`,z;t[13]===L?z=t[14]:(z=P(L),t[13]=L,t[14]=z);let B=y?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:b?`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=P(`flex size-9 shrink-0 items-center justify-center rounded-lg`,B),t[15]=B,t[16]=V);let H;t[17]===y?H=t[18]:(H=y?(0,$.jsx)(_,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}):(0,$.jsx)(T,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[17]=y,t[18]=H);let W;t[19]!==V||t[20]!==H?(W=(0,$.jsx)(`span`,{className:V,children:H}),t[19]=V,t[20]=H,t[21]=W):W=t[21];let ee=y?n.brokerSecretReadyTitle:n.brokerSecretStepTitle,G;t[22]===ee?G=t[23]:(G=(0,$.jsx)(`p`,{className:`text-sm font-semibold text-fg`,children:ee}),t[22]=ee,t[23]=G);let q=y?n.brokerSecretReadyHint:n.brokerSecretHint,te;t[24]===q?te=t[25]:(te=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:q}),t[24]=q,t[25]=te);let ne;t[26]!==b||t[27]!==n.brokerSecretMissingHint?(ne=b?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-amber-800 dark:text-amber-200`,children:n.brokerSecretMissingHint}):null,t[26]=b,t[27]=n.brokerSecretMissingHint,t[28]=ne):ne=t[28];let J;t[29]!==G||t[30]!==te||t[31]!==ne?(J=(0,$.jsxs)(`div`,{children:[G,te,ne]}),t[29]=G,t[30]=te,t[31]=ne,t[32]=J):J=t[32];let re;t[33]!==c||t[34]!==b||t[35]!==m||t[36]!==D||t[37]!==s||t[38]!==n.brokerSecretAuthorize||t[39]!==n.brokerSecretAuthorizing||t[40]!==n.brokerSecretConsoleLink?(re=b||D?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsxs)(R,{type:`button`,disabled:s||c,onClick:m,children:[c?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,c?n.brokerSecretAuthorizing:n.brokerSecretAuthorize]}),(0,$.jsxs)(`a`,{href:xe,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)(S,{className:`size-3`,"aria-hidden":!0})]})]}):null,t[33]=c,t[34]=b,t[35]=m,t[36]=D,t[37]=s,t[38]=n.brokerSecretAuthorize,t[39]=n.brokerSecretAuthorizing,t[40]=n.brokerSecretConsoleLink,t[41]=re):re=t[41];let ie;t[42]!==c||t[43]!==l||t[44]!==n.brokerSecretOpenAuthorization?(ie=c&&l?(0,$.jsxs)(`a`,{href:l,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)(S,{className:`size-3`,"aria-hidden":!0})]}):null,t[42]=c,t[43]=l,t[44]=n.brokerSecretOpenAuthorization,t[45]=ie):ie=t[45];let ae;t[46]!==i||t[47]!==o||t[48]!==a||t[49]!==N||t[50]!==I||t[51]!==d||t[52]!==v||t[53]!==b||t[54]!==h||t[55]!==f||t[56]!==p||t[57]!==D||t[58]!==s||t[59]!==j||t[60]!==k||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?(ae=k?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:v,children:n.brokerSecretTitle}),(0,$.jsx)(C,{id:v,value:a,labels:j,reveal:lt,loadFailedLabel:d||n.brokerSecretRevealFailed,maskedHelp:n.brokerSecretMaskedHelp,notInConfigFile:n.brokerSecretNotInConfigFile,readOnly:!0}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(R,{type:`button`,variant:`secondary`,disabled:s,onClick:()=>{w({type:`patch`,patch:{reconfiguring:!0}})},children:n.brokerSecretReconfigure}),(0,$.jsx)(R,{type:`button`,variant:`ghost`,disabled:s,onClick:h,children:n.brokerSecretClear})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:v,children:n.brokerSecretTitle}),(0,$.jsx)(C,{id:v,value:o,onChange:f,placeholder:n.brokerSecretPlaceholder,labels:j,disabled:s}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsxs)(R,{type:`button`,disabled:s||!N,onClick:p,children:[s?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,b?n.brokerSecretSaveAndContinue:n.brokerSecretSave]}),i?(0,$.jsx)(R,{type:`button`,variant:`ghost`,disabled:s,onClick:h,children:n.brokerSecretClear}):null,D?(0,$.jsx)(R,{type:`button`,variant:`ghost`,disabled:s,onClick:I,children:n.brokerSecretCancelReconfigure}):null]})]}),t[46]=i,t[47]=o,t[48]=a,t[49]=N,t[50]=I,t[51]=d,t[52]=v,t[53]=b,t[54]=h,t[55]=f,t[56]=p,t[57]=D,t[58]=s,t[59]=j,t[60]=k,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]=ae):ae=t[71];let oe;t[72]===u?oe=t[73]:(oe=u?(0,$.jsx)(`p`,{className:`text-xs text-emerald-700 dark:text-emerald-400`,children:u}):null,t[72]=u,t[73]=oe);let se;t[74]!==J||t[75]!==re||t[76]!==ie||t[77]!==ae||t[78]!==oe?(se=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[J,re,ie,ae,oe]}),t[74]=J,t[75]=re,t[76]=ie,t[77]=ae,t[78]=oe,t[79]=se):se=t[79];let ce;t[80]!==W||t[81]!==se?(ce=(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[W,se]}),t[80]=W,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]!==g||t[87]!==Y?(le=(0,$.jsx)(`div`,{ref:g,id:`tunnel-broker-secret-setup`,children:Y}),t[86]=g,t[87]=Y,t[88]=le):le=t[88],le}function lt(){return ve().then(ut)}function ut(e){return e.registrationSecret??null}var dt={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 ft({embedded:e=!1}){let t=c(e=>e.language),n=l(t).tunnelSettings,r=!!s(e=>e.conversationId),[i,a]=(0,Z.useReducer)(U,dt),{actionError:o,starting:u,stopping:d,savingAutoStart:f,consentOpen:p,autoStartConfirmOpen:m,releaseConfirmOpen:h,releasing:g,brokerSecretDraft:_,savingBrokerSecret:v,authorizingBrokerSecret:y,brokerSecretAuthorizationUrl:b,brokerSecretNotice:x}=i,S=(0,Z.useRef)(null),{data:C}=L(r),{data:T,error:D,isLoading:O,mutate:k}=F(r?`tunnel-status`:null,_e,{refreshInterval:e=>u?1e3:e?.frpcDownload||e?.state===`connecting`||e?.state===`reconnecting`?2e3:6e4}),A=(0,Z.useMemo)(()=>{let e=C?.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 T?.config?.autoStart===!0},[C,T?.config?.autoStart]),j=(0,Z.useMemo)(()=>{let e=C?.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``},[C]),M=K(j),N=T?.registrationSecret?.configured??M;(0,Z.useEffect)(()=>{let e=()=>{k()};return window.addEventListener(`tunnel-status`,e),()=>window.removeEventListener(`tunnel-status`,e)},[k]);let z=(0,Z.useMemo)(()=>[n.consentBullet1,n.consentBullet2,n.consentBullet3],[n.consentBullet1,n.consentBullet2,n.consentBullet3]),B=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{starting:!0}});try{await be(T?.state===`error`&&he(Error(T.lastError??``))?{recoverActiveLease:!0}:void 0),await k(),I()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}}),await k().catch(()=>{})}finally{a({type:`patch`,patch:{starting:!1}})}},[k,T]),V=(0,Z.useCallback)(()=>{if(!N){a({type:`patch`,patch:{actionError:n.brokerSecretRequiredBeforeStart}}),S.current?.scrollIntoView({behavior:`smooth`,block:`start`});return}if(T?.consentRequired){a({type:`patch`,patch:{consentOpen:!0}});return}B()},[N,T?.consentRequired,B,n.brokerSecretRequiredBeforeStart]),H=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{consentOpen:!1}}),a({type:`patch`,patch:{actionError:null}});try{await fe(),await Promise.all([k(),B()])}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}},[k,B]),ee=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{stopping:!0}});try{await me(),await k(),I()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{stopping:!1}})}},[k]),G=(0,Z.useCallback)(async e=>{a({type:`patch`,patch:{savingAutoStart:!0}}),a({type:`patch`,patch:{actionError:null}});try{await ye({autoStart:e}),I()}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(A){G(!1);return}if(T?.consentRequired){a({type:`patch`,patch:{actionError:n.consentExpiredBanner}});return}if(!T?.canAutoStart){a({type:`patch`,patch:{actionError:n.autoStartHint}});return}a({type:`patch`,patch:{autoStartConfirmOpen:!0}})},[G,T?.canAutoStart,T?.consentRequired,n,A]),oe=(0,Z.useCallback)(async()=>{let e=_.trim();if(e){a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ye({registrationSecret:e}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretSaved}}),I(),await k(),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}})}}},[_,k,n.brokerSecretSaved]),se=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ye({registrationSecret:null}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretCleared}}),I(),await k()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingBrokerSecret:!1}})}},[k,n.brokerSecretCleared]),ce=(0,Z.useCallback)(async()=>{let e=ie(),t=null,r=null;a({type:`patch`,patch:{authorizingBrokerSecret:!0,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null,actionError:null}});try{for(t=(await q(`xopc-tunnel`)).sessionId;;){await new Promise(e=>window.setTimeout(e,1e3));let i=await ne(t);if(i.authUrl&&i.authUrl!==r&&(r=i.authUrl,a({type:`patch`,patch:{brokerSecretAuthorizationUrl:i.authUrl}}),await re(i.authUrl,e)),i.status===`failed`||i.status===`cancelled`)throw Error(i.error??i.message??`OAuth authorization failed`);if(i.status===`completed`){await ge(),await Promise.all([k(),I()]),a({type:`patch`,patch:{brokerSecretNotice:n.brokerSecretSaved,brokerSecretDraft:``}});return}}}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{ae(e),t&&te(t).catch(()=>void 0),a({type:`patch`,patch:{authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null}})}},[k,n.brokerSecretSaved]),Y=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{releaseConfirmOpen:!1,actionError:null,releasing:!0}});try{await me({release:!0}),await k(),I()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{releasing:!1}})}},[k]),le=(0,Z.useMemo)(()=>({copy:n.copyUrl,copied:n.copied,copyFailed:l(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=T??{enabled:!1,state:`disconnected`,subdomain:null,publicUrl:null,connectedSince:null,frpcPid:null,lastHeartbeatAt:null,lastError:null,consentRequired:!0,config:{autoStart:A,brokerUrl:`https://frp.xopc.ai/api`}},pe=T?.consentRequired&&(X.enabled||A||T?.consent?.acceptedAt),ve=(0,$.jsx)(ct,{t:n,brokerSecretReady:N,brokerSecretConfiguredInConfig:M,brokerSecretMaskedValue:M?j:``,brokerSecretDraft:_,savingBrokerSecret:v,authorizingBrokerSecret:y,brokerSecretAuthorizationUrl:b,brokerSecretNotice:x,copyFailedLabel:l(t).clipboard.copyFailed,onDraftChange:e=>a({type:`patch`,patch:{brokerSecretDraft:e}}),onSave:()=>void oe(),onAuthorize:()=>void ce(),onClear:()=>void se(),sectionRef:S}),xe=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(We,{open:p,title:n.consentTitle,intro:n.consentIntro,bullets:z,checkboxLabel:n.consentCheckbox,confirmLabel:pe?n.consentReconfirm:n.consentConfirm,cancelLabel:n.consentCancel,onConfirm:()=>void H(),onCancel:()=>a({type:`patch`,patch:{consentOpen:!1}})},p?`consent-open`:`consent-closed`),(0,$.jsx)(W,{open:m,title:n.autoStartConfirmTitle,description:n.autoStartConfirmBody,confirmLabel:n.autoStartConfirmLabel,cancelLabel:n.consentCancel,onConfirm:()=>{a({type:`patch`,patch:{autoStartConfirmOpen:!1}}),G(!0)},onCancel:()=>a({type:`patch`,patch:{autoStartConfirmOpen:!1}})}),(0,$.jsx)(W,{open:h,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,ve,(0,$.jsx)(ot,{t:n,status:X,isLoading:O,statusErr:D,starting:u,stopping:d,showConsentExpired:!!pe,copyLabels:le,startDisabled:!N,startDisabledReason:N?void 0:n.brokerSecretRequiredBeforeStart,stepLabel:n.flowStepStart,onStart:V,onStop:()=>void ee()}),(0,$.jsxs)(He,{showLabel:n.showOptions,hideLabel:n.hideOptions,children:[(0,$.jsxs)(`label`,{className:P(`flex items-center gap-3 text-sm text-fg`,!A&&!T?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:A,disabled:f||!A&&!T?.canAutoStart,onChange:J}),n.autoStart]}),!T?.canAutoStart&&!A?(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)(R,{type:`button`,variant:`secondary`,disabled:g||d,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[g?(0,$.jsx)(E,{className:`size-4 animate-spin`}):null,n.release]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.releaseHint})]}):null]}),(0,$.jsx)(He,{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)(w,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(de,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]})}),xe]}):(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,ve,(0,$.jsx)(ot,{t:n,status:X,isLoading:O,statusErr:D,starting:u,stopping:d,showConsentExpired:!!pe,copyLabels:le,startDisabled:!N,startDisabledReason:N?void 0:n.brokerSecretRequiredBeforeStart,onStart:V,onStop:()=>void ee()}),X.subdomain||X.publicUrl?(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(R,{type:`button`,variant:`secondary`,disabled:g||d,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[g?(0,$.jsx)(E,{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:P(`flex items-center gap-3 text-sm text-fg`,!A&&!T?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:A,disabled:f||!A&&!T?.canAutoStart,onChange:J}),n.autoStart]}),!T?.canAutoStart&&!A?(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)(w,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(de,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]}),xe]})}function pt(e,t){return e.tabs[t]}function mt(e,t){return e.tabIntro[t]}function ht(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 gt(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)(je,{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)(pe,{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)(ft,{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)(Ce,{}),t[4]=e):e=t[4],e}case`ssh`:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(ze,{}),t[5]=e):e=t[5],e}case`lan`:{let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Fe,{}),t[6]=e):e=t[6],e}}}function _t(){let e=(0,Q.c)(3),t=o(),n=c(yt),r=l(n).remoteAccess,a=!!s(vt),[u,d]=i(),f=G(),p=Ve(u.get(`tab`)),m=u.get(`intent`)===`mobile-pairing`,h;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h={refreshInterval:2e3},e[0]=h):h=e[0];let _=F(m?`device-pairing-readiness`:null,X,h),v;e[1]===d?v=e[2]:(v=e=>{d(t=>{let n=new URLSearchParams(t);return e===`guide`?n.delete(`tab`):n.set(`tab`,e),n},{replace:!0})},e[1]=d,e[2]=v);let y=v,b=mt(r,p),x=Be.filter(e=>f||e!==`ssh`&&e!==`reverse-proxy`||e===p).map(e=>({id:e,label:pt(r,e)}));return(0,$.jsxs)(oe,{children:[(0,$.jsx)(se,{title:r.pageTitle,meta:(0,$.jsx)(de,{language:n,label:r.docsLink,section:ht(p),className:`mt-1`})}),a?(0,$.jsxs)($.Fragment,{children:[m?(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)(j,{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:_.data?.ready?r.mobilePairingFlow.ready:r.mobilePairingFlow.hint})]})]}),(0,$.jsxs)(R,{variant:`primary`,disabled:!_.data?.ready,onClick:()=>t(`/settings/devices?startDevicePairing=mobile`),children:[_.data?.ready?r.mobilePairingFlow.continue:r.mobilePairingFlow.waiting,(0,$.jsx)(g,{className:`size-4`,"aria-hidden":!0})]})]}):null,(0,$.jsx)(H,{items:x,activeTab:p,onChange:y,ariaLabel:r.tabsAria,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`}),(0,$.jsx)(ce,{id:p,activeTab:p,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`,title:pt(r,p),hint:p===`public`?void 0:b,showHeading:!1,framed:!1,children:(0,$.jsx)(gt,{tab:p,onOpenTab:y})})]}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.guide.needToken})]})}function vt(e){return e.conversationId}function yt(e){return e.language}export{_t as RemoteAccessHub};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as r}from"./locale-store-
|
|
1
|
+
import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as r}from"./locale-store-B7y-RVe8.js";var i=e(),a=t();function o(e){let t=(0,i.c)(18),{kind:o,missing:c,backTo:l,retry:u}=e,d=c===void 0||c,f=r(s)===`zh`,p;if(t[0]!==o||t[1]!==d||t[2]!==f){let e=f?{project:`项目`,app:`应用`,plugin:`插件`,"plugin-page":`插件页面`,"plugin-settings":`插件设置`,desktop:`桌面功能`}:{project:`Project`,app:`App`,plugin:`Plugin`,"plugin-page":`Plugin page`,"plugin-settings":`Plugin settings`,desktop:`Desktop feature`};p=o===`desktop`?f?`此功能需要 xopc 桌面版`:`This feature requires xopc desktop`:o===`plugin-page`||o===`plugin-settings`?f?`此插件未提供${o===`plugin-page`?`独立页面`:`设置页面`}`:`This plugin does not provide a ${o===`plugin-page`?`standalone page`:`settings page`}`:d?f?`找不到${e[o]}`:`${e[o]} not found`:f?`暂时无法加载${e[o]}`:`Unable to load ${e[o].toLowerCase()}`,t[0]=o,t[1]=d,t[2]=f,t[3]=p}else p=t[3];let m=p,h;t[4]===m?h=t[5]:(h=(0,a.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:m}),t[4]=m,t[5]=h);let g=l===`/`?f?`返回工作台`:`Back to work`:l.startsWith(`/settings/`)?f?`返回设置`:`Back to settings`:f?`返回列表`:`Back to list`,_;t[6]!==l||t[7]!==g?(_=(0,a.jsx)(n,{className:`text-accent hover:underline`,to:l,children:g}),t[6]=l,t[7]=g,t[8]=_):_=t[8];let v;t[9]!==u||t[10]!==f?(v=u?(0,a.jsx)(`button`,{className:`text-accent hover:underline`,onClick:u,children:f?`重试`:`Retry`}):null,t[9]=u,t[10]=f,t[11]=v):v=t[11];let y;t[12]!==_||t[13]!==v?(y=(0,a.jsxs)(`div`,{className:`flex gap-4 text-sm`,children:[_,v]}),t[12]=_,t[13]=v,t[14]=y):y=t[14];let b;return t[15]!==h||t[16]!==y?(b=(0,a.jsxs)(`section`,{className:`mx-auto my-8 w-full max-w-xl space-y-3 rounded-xl border border-edge bg-surface-panel p-6`,role:`status`,children:[h,y]}),t[15]=h,t[16]=y,t[17]=b):b=t[17],b}function s(e){return e.language}export{o as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sessions-page-C2CH-55n.js","assets/rolldown-runtime-aKtaBQYM.js","assets/vendor-react-BOUWij0V.js","assets/chunk-KS7C4IRE-CiwuuyV8.js","assets/preload-helper-Czpn1I53.js","assets/locale-store-B7y-RVe8.js","assets/messages-DYDkJvXj.js","assets/dist-BGTk37IG.js","assets/es2015-DBLcMg5B.js","assets/dist-CxGUk8J-.js","assets/session-identity-label-B7sgG1PE.js","assets/createLucideIcon-DPHK1VkS.js","assets/session-channel-icon-SsY70Z6t.js","assets/clock-3-DnrAnuyZ.js","assets/git-branch-Dh9uxTot.js","assets/message-circle-Badhj-4D.js","assets/message-square-fVE7Ghj1.js","assets/plug-DKYPEgkR.js","assets/settings-2-D-csvaET.js","assets/terminal-oKqqZdiG.js","assets/cn-0WouolD0.js","assets/bundle-mjs-rHxsej31.js","assets/schemas-CCWMleym.js","assets/archive-Dz0hferG.js","assets/popover-select-CEMWIrtY.js","assets/check-DUBLcKHA.js","assets/skeleton-BI5TyibZ.js","assets/dist-GJ8-1PAx.js","assets/dist-BuHnPloF.js","assets/floating-ui.dom-seOukHzT.js","assets/settings-shell-dialog-layer-BU3UuiJr.js","assets/circle-BoO4YvTx.js","assets/coins-DjP27vUx.js","assets/database-CjjeZfRG.js","assets/download-Dk-ZjtO6.js","assets/folder-open-CyzJ19I9.js","assets/layers-mJW7JJKm.js","assets/layout-grid-CEVZdVFU.js","assets/minimize-2-DtOGrlpo.js","assets/pin-off-BMRv-Kxr.js","assets/plus-Q2yW6OE7.js","assets/search-DA7gz22f.js","assets/settings-uiTATseT.js","assets/trash-2-DusmjVPV.js","assets/x-B_N4OPjy.js","assets/session-api-DVXLCZX2.js","assets/gateway-startup-retry-BsU5k8oi.js","assets/vendor-swr-CdRzEUwF.js","assets/gateway-config-swr-BD4Bf8uu.js","assets/chat-agents-api-Cffxfzi1.js","assets/registry-api-QZEjziDq.js","assets/button-Cc4hUNTt.js","assets/interaction-BdhHBbYa.js","assets/form-field-width-DJw_jULe.js","assets/page-tabs-oeTY7z3_.js","assets/sliding-indicator-hwz0sx3h.js","assets/agent-avatar-display-D-yds6wG.js","assets/loopi-CNtmi9FU.js","assets/loopi-C09I2mNj.css","assets/sliding-tab-list-DuQyViqe.js","assets/settings-form-draft-Dy10ldo8.js","assets/model-selector-YsCHu1Gn.js","assets/open-capability-settings-Cvb65hQB.js","assets/segmented-styles-Cqb91xsn.js","assets/settings-advanced-section-BmrbHgQa.js","assets/settings-mode-store-Bk_hzwPK.js","assets/middleware-Pd0e8Igk.js","assets/number-input-El7Szeln.js","assets/settings-page-header-BLKI3_9N.js","assets/external-link-DjqjBmc3.js","assets/sparkles-DHlfQFAF.js","assets/settings-page-layout-BqBVrkC9.js","assets/settings-form-section-num14vSv.js","assets/pencil-DmIY3Oa-.js","assets/use-autosave-zkzRuUtx.js","assets/circle-alert-BEjgurr2.js","assets/loader-circle-CifKLtgG.js","assets/settings-advanced-gate-BMHe9uwy.js","assets/usage-page-C91ZzLm9.js","assets/bot-DjLkhyZL.js","assets/gauge-C78eD2BA.js","assets/refresh-cw-BRlGaq2w.js","assets/timer-rCwGHjuO.js","assets/xopc-cloud-account-card-DimGN59n.js","assets/cloud-C4-yfnnk.js","assets/triangle-alert-2JXFNNKU.js","assets/cloud-credits-B-nbtkqv.js","assets/automations-page-BQwSCkmd.js","assets/automations-workspace-BUFTTjBq.js","assets/activity-YogQEteU.js","assets/arrow-left-D880xG-P.js","assets/calendar-clock-D-quYVPe.js","assets/chevron-down-ccbiQQz_.js","assets/chevron-right-BweFrslA.js","assets/circle-check-C23XjkUj.js","assets/copy-Dv6d4Dvw.js","assets/ellipsis-0k4rZLoy.js","assets/eye-CABVeTq0.js","assets/list-filter-CIPvpfLA.js","assets/list-tree-B0OMswgM.js","assets/markdown-view-DFHa8rUg.js","assets/file-image-CDUPkZvG.js","assets/app-link-DRy3-k7j.js","assets/product-delivery-DRyD9_Xq.js","assets/local-apps-Ck6kACsY.js","assets/copy-to-clipboard-HOJ79TWv.js","assets/xml-_d7dTN2Q.js","assets/mermaid-render-oOellPHt.js","assets/markdown-view-C-DHb3Io.css","assets/pause-DuPxgSxk.js","assets/play-kxZvpBg8.js","assets/shield-check-BU58siTV.js","assets/square-pen-B8FsvqNu.js","assets/zap-dximCGjy.js","assets/api-C-9J9ghT.js","assets/tasks-DRmd6sWt.js","assets/specialists-xbB3xL9e.js","assets/files-BNL4kkSB.js","assets/session-manager-DjRWxXJG.js","assets/constants-DBtMsXdW.js","assets/local-session-drafts-nRGeybku.js","assets/tool-activity-BtJkgjFf.js","assets/personal-proactivity-DaRnbB1f.js","assets/attachment-utils-core-BIOUBrpT.js","assets/gateway-realtime-CSd9VB7Z.js","assets/gateway-realtime-store-Bxkv62qs.js","assets/agents-admin-api-Bgv4lJ9Y.js","assets/page-header-store-CoKMiYoi.js","assets/refresh-button-DiWdGAaX.js","assets/dist-ZrL34Ps4.js","assets/automation-task-card-DIjI_Y1X.js","assets/date-picker-BvEnSGZK.js","assets/calendar-days-hw_Y-g-s.js","assets/chevron-left-DqFhpbvK.js","assets/automation-api-DAou8Kji.js","assets/agent-display-names-Bje7vfSn.js","assets/automation-result-state-CA7LV098.js","assets/browser-automation-inputs-DhDRvWQE.js","assets/browser-automations-page-CCPi1Bvy.js","assets/circle-pause-CN9jYH2s.js","assets/video-B6V0GFss.js","assets/earth-BMhZtzcj.js","assets/puzzle-BptcPjKI.js","assets/square-DMK_fB-3.js","assets/browser-control-api-BN4F-bM1.js","assets/home-page-Bb_RC1O9.js","assets/history-DXH_9jsE.js","assets/paperclip-f1HujQY1.js","assets/use-composer-attachments-CoiQAgjo.js","assets/file-BqMS_3DT.js","assets/use-file-preview-expanded-DFzy6iVy.js","assets/app-window-DXFNqt_0.js","assets/link-2-D_ZKYUW7.js","assets/message-square-plus-XP0tGdlV.js","assets/rotate-cw-LIg3Am9S.js","assets/save-DRDABU--.js","assets/activity-store-WqnVruhY.js","assets/app-chrome-BeB4KgOf.js","assets/electron-env-DHOGevH3.js","assets/use-async-resource-BHFGZCY2.js","assets/index.module-Cd9ENXfk.js","assets/workspace-api-Am2ee4R6.js","assets/mic-CuUb7zc-.js","assets/share-link-dialog-C2LyeNzj.js","assets/globe-DSSGFWFn.js","assets/copy-text-row-CpiRzq4G.js","assets/capabilities-u2z_KFRt.js","assets/capabilities-LC-yEQYo.js","assets/file-preview-surface-BaMGmCbw.js","assets/phone-workspace-store-Cmes9gQ4.js","assets/shares-api-CTFkLQxq.js","assets/skill-wire-pattern-BPpeIcCi.js","assets/composer-payload-handoff-_9L2A5AZ.js","assets/rotate-ccw-JM1TBLpp.js","assets/voice-transcribe-api-Cb8i6dLb.js","assets/workspace-editor-agent-store-CqHcVFhS.js","assets/voice-input-shortcut-events-AzfhxBX7.js","assets/date-formatters-DukWSVwc.js","assets/tab-completion-input-CxtEp0aP.js","assets/task-result-evidence-BV-6hBVU.js","assets/file-text-D12HbeVy.js","assets/task-detail-page-CC3Rzqq9.js","assets/chat-page-e-xCsrdS.js","assets/arrow-up-D5ZtR1QT.js","assets/product-automation-feedback-BzY3z8zu.js","assets/notes-api-ulup1oFS.js","assets/chat-chart-block-Bbk0b3TV.js","assets/volume-2-BSJhAY97.js","assets/book-open-CCGtrT3R.js","assets/working-directory-picker-modal-Dv1HUipe.js","assets/file-archive-DanfQJNe.js","assets/new-chat-navigation-B6NPQ4h4.js","assets/circle-x-DFsCKeya.js","assets/file-tree-utils-DJs1faGv.js","assets/folder-kanban-CpLlFI1o.js","assets/folder-CN-pC3XL.js","assets/key-round-DWbpyU2U.js","assets/laptop-CI3hBVrl.js","assets/list-checks-BbsExAoq.js","assets/list-todo-CTVRto8O.js","assets/messages-square-BckAJrEW.js","assets/monitor-Af5eAvF7.js","assets/install-connector-dialog-DXVOHMhS.js","assets/secret-input-Dryrns2s.js","assets/is-masked-secret-DOkL5b_X.js","assets/connectors-api-B07yoCzk.js","assets/oauth-provider-connect-C0PVEHC2.js","assets/models-hub-cache-BUapaPTN.js","assets/oauth-api-DINa08-z.js","assets/smartphone-DSSsQFqA.js","assets/wrench-DFb4r8bH.js","assets/new-session-preferences-gb411vZP.js","assets/extension-provider-301x0rh-.js","assets/theme-store-Dvv79Wb2.js","assets/chunk-D32TOXHM-DQIy-Baq.js","assets/tool-friendly-title-DcCc6g7o.js","assets/voice-call-context-BM2A4bLz.js","assets/use-directory-picker-C4p7AgWY.js","assets/confirm-dialog-D7dQJytv.js","assets/command-palette-api-BRxfFgGA.js","assets/skill-list-api-B8fegRLZ.js","assets/skill-api-utils-C7V4JVXM.js","assets/dev-view-store-38EmUIEC.js","assets/extension-iframe-host-BzjrVAUR.js","assets/api-Dv6Cn-Rs.js","assets/runtime-health-D2TDFLLq.js","assets/terminal-panel-store-BGdKE9hU.js","assets/agents-app-path-ciChvpCS.js","assets/use-media-query-ady-FgjK.js","assets/oauth-authorization-window-o6URRos4.js","assets/page-context-draft-DhRNxc0v.js","assets/side-chat-shortcut-BIw-1TTD.js","assets/chat-page-zQeUaawJ.css","assets/page-context-capture-button-CGfR0dsc.js","assets/dependency-picker-XjPB8FJS.js","assets/projects-page-Cp91_KzA.js","assets/arrow-right-DSSvoX71.js","assets/project-understanding-CrSkrJnM.js","assets/project-detail-page-CFbXWvcd.js","assets/resource-unavailable-BTNhcOHF.js","assets/discussion-annotation-sync-BfVzIwe2.js","assets/workspace-open-location-menu-4ONYaGy0.js","assets/file-tree-CFlZnV3Y.js","assets/image-Cwyalflz.js","assets/lock-keyhole-DEK5kH0u.js","assets/panel-left-C8MqSXRZ.js","assets/sticky-note-fzP7NAJq.js","assets/store-SzD1Jvgm.js","assets/upload-rrb46c3c.js","assets/user-round-C9jxPhMR.js","assets/workspace-file-preview-dialog-z5Q00v92.js","assets/with-selector-xonYxPoM.js","assets/directory-picker-path-field-BvKDrKc4.js","assets/skill-api-DpicfA6o.js","assets/skill-reload-api-VmC8ySUy.js","assets/note-detail-panel-CJ-dPovd.js","assets/code-xml-DJtYhZUF.js","assets/note-image-lightbox-ClPkeHe5.js","assets/project-detail-page-DLioOiRN.css","assets/notes-page-BaFNplIr.js","assets/recording-upload-DBHAGKZj.js","assets/star-BUWJqJ5c.js","assets/capabilities-page-B8UgQ4dD.js","assets/product-navigation-Co8pLbDP.js","assets/capability-links-DzQWK1Fh.js","assets/capability-header-actions-BxMYfQ8y.js","assets/user-model-page-WFnD5utO.js","assets/understanding-refresh-store-C3Lr_pjY.js","assets/briefcase-business-BsoCaI_t.js","assets/understanding-activity-store-C1cLL8zq.js","assets/sliders-horizontal-DqsYor6I.js","assets/logs-page-McbSQwJI.js","assets/clipboard-copy-DuJk5WD6.js","assets/settings-page-B6vrcc6f.js","assets/browser-settings-page-BZXUZpjp.js","assets/cpu-B247669f.js","assets/info-CDrmIZhb.js","assets/plug-zap-L8NMe3Sv.js","assets/settings-loading-skeleton-BTqvr_Fw.js","assets/phone-settings-page-D8PuvEuJ.js","assets/beta-badge-BnzdzIEl.js","assets/global-defaults-api-asOZQeM8.js","assets/phone-model-picker-Bkex4Sre.js","assets/phone-dependencies-card-B3R6L5Qu.js","assets/runtime-tools-api-BDTUD8Rj.js","assets/phone-model-connection-BieYnAJ5.js","assets/providers-api-CBSC3jdu.js","assets/mobile-pair-qr-CuIbmw5x.js","assets/browser-BLJWD7WI.js","assets/computer-settings-page-BIHbjBVt.js","assets/mouse-pointer-2-DZ51Onvj.js","assets/extension-page-DUa9MeaZ.js","assets/extension-settings-page-CP9ciZUI.js","assets/voice-config-api-LNO2xXHk.js","assets/voice-api-key-field-Bqa4PeZx.js","assets/schema-form-C-jw6Hid.js","assets/secret-input-labels-B5Jl5HqK.js","assets/extension-debug-page-CB9Lu3Sq.js","assets/share-preview-page-BFwEr7Ws.js","assets/local-apps-page-CdAKoWfg.js","assets/box-DvYoGszj.js","assets/local-app-workbench-page-CcJc9xLJ.js","assets/power-off-CwwQ7Gp7.js","assets/power-ZI-pBczI.js","assets/product-open-page-BKw6H0Mn.js","assets/open-route-MyZ2sB9C.js","assets/work-discovery-page-HcUloXxf.js","assets/service-recommendation-list-CfeYH6lK.js","assets/package-wATCyihJ.js","assets/agent-plugin-dialog-DVzYXsAy.js","assets/capability-icon-DVoZxEgW.js","assets/extension-marketplace-api-DigziAgd.js","assets/work-discovery-overlay-CdQUiV-a.js","assets/brand-logo-CgT9zQfr.js","assets/setup-status-panel-DEefuWo3.js","assets/stethoscope-DRqTAtjD.js","assets/appearance-settings-oYjAVulT.js","assets/preference-select-fields-D2-QfMN5.js","assets/keyboard-shortcuts-settings-BCl90SrD.js","assets/personal-settings-panel-Ds4ntiqu.js","assets/use-personal-profile-BB10h9ED.js","assets/system-settings-panel-BmoA92oX.js","assets/browser-notification-delivery-DmE2FgGc.js","assets/shield-B1sI_cxl.js","assets/desktop-pet-settings-CbbVb8GY.js","assets/wand-sparkles-CkSL-3Fy.js","assets/desktop-pet-sprite-D5YYq2zC.js","assets/desktop-pet-sprite-BuB0g8zv.css","assets/app-management-settings-panel-BXJrrjH5.js","assets/capabilities-settings-panel-Bxn8HtEO.js","assets/arrow-up-right-T72JbQ1Q.js","assets/connected-providers-grid-B7ktDgqt.js","assets/navigation-D62kPsA9.js","assets/image-generation-api-CdwYgzhU.js","assets/gateway-settings-CCqF1uZv.js","assets/network-BUQLY1BV.js","assets/gateway-restart-CIUCTKYR.js","assets/runtime-tools-settings-panel-CYEzIrDf.js","assets/remote-access-hub-BdXxFQfH.js","assets/server-BlHCBjiE.js","assets/tunnel-api-BurZtvqx.js","assets/shares-settings-CpK3yhtc.js","assets/use-workspace-tree-sF5DcONt.js","assets/agent-defaults-settings-panel-_UT9C7bg.js","assets/management-settings-BIR0BwNV.js","assets/shield-off-2jsucUds.js","assets/device-pairing-wizard-Wb1EKiXA.js","assets/panel-right-CFGrHTsD.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./preload-helper-Czpn1I53.js";var t=()=>e(()=>import(`./sessions-page-C2CH-55n.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77])),n=()=>e(()=>import(`./usage-page-C91ZzLm9.js`),__vite__mapDeps([78,1,2,3,4,5,6,79,11,24,25,20,21,26,27,8,9,28,29,30,75,32,33,80,81,82,47,51,59,55,68,69,70,71,83,84,85,86,22])),r=()=>e(()=>import(`./automations-page-BQwSCkmd.js`),__vite__mapDeps([87,2,1,88,4,3,5,6,7,8,9,89,11,90,91,25,92,93,24,20,21,26,27,28,29,30,75,94,95,96,97,14,98,99,100,34,101,40,44,102,103,22,104,105,106,107,108,15,109,73,110,81,41,111,70,112,43,113,114,115,116,117,45,46,118,119,120,121,122,123,124,125,50,126,48,47,49,51,127,59,55,128,129,61,18,62,52,53,130,13,131,132,133,134,135,136,137])),i=()=>e(()=>import(`./browser-automations-page-CCPi1Bvy.js`),__vite__mapDeps([138,1,2,3,4,5,6,79,11,24,25,20,21,26,27,8,9,28,29,30,139,140,13,141,76,73,110,142,143,43,44,51,127,144,137])),a=()=>e(()=>import(`./home-page-Bb_RC1O9.js`),__vite__mapDeps([145,1,2,4,3,5,6,7,8,9,91,11,92,93,75,94,13,69,146,100,34,101,40,44,20,21,102,103,22,104,105,106,107,108,15,147,81,18,70,26,115,116,148,133,149,150,151,25,95,96,97,35,152,76,153,38,73,154,155,41,119,45,46,123,52,156,157,158,159,59,55,160,161,117,129,28,29,162,163,24,27,30,164,51,165,166,120,167,168,169,170,171,172,173,174,118,121,122,124,125,50,126,48,47,66,62,175,176,127,177,178,179,180])),o=()=>e(()=>import(`./task-detail-page-CC3Rzqq9.js`),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,182,11,151,23,90,183,184,89,79,94,139,13,69,185,100,34,101,40,44,20,21,102,103,22,104,105,106,107,108,186,25,95,26,76,16,109,110,173,154,70,85,187,113,47,51,134,188,92,93,189,190,52,53,60,24,27,28,29,30,75,191,192,31,193,33,141,96,149,180,194,35,195,150,97,152,153,38,147,73,81,155,41,119,45,46,123,156,157,158,159,59,55,160,161,117,129,14,164,146,196,197,198,199,200,162,201,202,203,204,205,48,206,84,207,50,208,18,42,111,209,143,43,163,165,210,115,116,114,118,120,121,122,124,125,126,211,212,166,213,66,148,133,167,168,169,170,171,49,172,174,62,175,176,214,215,216,127,57,58,56,217,218,219,220,221,61,222,223,130,91,15,131,132,224,225,226,227,135,228,229,230,231,232,177,179,233,234])),s=()=>e(()=>import(`./projects-page-Cp91_KzA.js`),__vite__mapDeps([235,1,2,3,4,5,6,7,8,9,23,11,236,189,190,76,20,21,51,52,53,60,24,25,26,27,28,29,30,194,35,39,40,173,41,44,114,22,115,116,117,127,237,47,217,177])),c=()=>e(()=>import(`./project-detail-page-CFbXWvcd.js`),__vite__mapDeps([238,1,2,3,4,5,6,239,7,8,9,23,11,240,92,51,20,21,90,236,184,89,79,94,139,13,69,185,100,34,101,40,44,102,103,22,104,105,106,107,108,186,25,95,26,76,16,109,110,173,154,70,85,187,113,47,134,91,133,93,189,190,52,53,60,24,27,28,29,30,75,191,31,193,241,35,150,151,96,97,152,153,38,147,73,81,155,41,119,45,46,123,156,157,158,159,59,55,160,161,117,129,242,149,180,195,14,146,243,37,198,244,162,245,39,42,111,143,246,247,43,248,249,115,116,114,148,163,164,165,166,120,167,168,169,170,171,126,48,54,127,237,218,128,250,213,66,219,220,221,131,132,135,251,74,177,252,217,253,254,88,98,99,15,112,118,121,122,124,125,50,49,61,18,62,130,136,137,233,230,255,256,206,84,207,208,257,234,258])),l=()=>e(()=>import(`./notes-page-BaFNplIr.js`),__vite__mapDeps([259,1,2,3,4,5,6,23,11,240,92,51,9,20,21,90,236,183,184,89,79,94,139,13,69,185,7,8,100,34,101,40,44,102,103,22,104,105,106,107,108,186,25,95,26,76,16,109,110,173,154,70,85,187,113,47,134,132,24,27,28,29,30,96,180,195,260,162,147,41,261,43,248,157,127,59,55,160,218,129,255,256,97,146,15,73,81,112,143,118,119,45,46,120,121,122,123,124,125,50,126,48,213,66,170,206,84,158,207,208,230,257,233,167,166,115,116])),u=()=>e(()=>import(`./capabilities-page-B8UgQ4dD.js`),__vite__mapDeps([262,1,2,4,3,5,6,26,20,21,263,127,264,265,41,11,51,9,27,8,28,29,228])),d=()=>e(()=>import(`./user-model-page-WFnD5utO.js`),__vite__mapDeps([266,1,2,3,4,5,6,7,8,9,188,11,79,267,47,268,132,25,92,93,24,20,21,26,27,28,29,30,75,94,13,33,34,141,96,269,35,14,199,76,244,15,73,40,81,41,111,270,70,246,43,248,249,44,51,157,54,52,55,127,57,58,59,129,131,133])),f=()=>e(()=>import(`./logs-page-McbSQwJI.js`),__vite__mapDeps([271,1,2,3,4,5,6,7,8,9,92,11,24,25,20,21,26,27,28,29,30,272,34,180,195,80,98,81,41,19,44,45,22,46,124,125,51,105,53,55,128,63,68,69,70,71])),p=()=>e(()=>import(`./settings-page-B6vrcc6f.js`),__vite__mapDeps([273,1,2,3,4,5,6])),m=()=>e(()=>import(`./browser-settings-page-BZXUZpjp.js`),__vite__mapDeps([274,1,2,3,4,5,6,92,11,24,25,20,21,26,27,8,9,28,29,30,94,275,34,69,97,35,80,164,276,76,244,277,81,18,85,47,48,51,60,278,67,68,70,71,74,75,144])),h=()=>e(()=>import(`./phone-settings-page-D8PuvEuJ.js`),__vite__mapDeps([279,1,2,3,4,5,6,7,8,9,151,11,92,24,25,20,21,26,27,28,29,30,280,110,40,81,41,111,209,44,47,51,169,129,281,48,68,69,70,282,283,94,34,210,284,285,90,62,286,50,46,204,207,287,288])),g=()=>e(()=>import(`./computer-settings-page-BIHbjBVt.js`),__vite__mapDeps([289,1,2,3,4,5,6,25,11,164,201,290,40,111,143,26,20,21,47,48,50,46,51,9,158,61,24,27,8,28,29,30,18,62,52,53,281,68,69,70,71])),_=()=>e(()=>import(`./extension-page-DUa9MeaZ.js`),__vite__mapDeps([291,1,2,3,4,239,5,6,212,22,118,119,45,46,120,121,122,123,124,125,50,126,48,47,166,115,116,104,156,213,66,127,223,7,8,9,60])),v=()=>e(()=>import(`./extension-settings-page-CP9ciZUI.js`),__vite__mapDeps([292,1,2,3,4,5,6,239,24,11,25,20,21,26,27,8,9,28,29,30,212,22,118,119,45,46,120,121,122,123,124,125,50,126,48,47,166,115,116,104,156,213,66,51,53,223,7,60,278,68,69,70,71,74,75,76,293,294,203,94,95,97,105,52,204,295,296,67])),y=()=>e(()=>import(`./extension-debug-page-CB9Lu3Sq.js`),__vite__mapDeps([297,1,2,5,6,212,22,118,119,45,46,120,121,122,123,124,125,50,4,126,48,47,166,115,116,104,156,213,66,68,3,69,11,70,20,21,51,9,71])),b=()=>e(()=>import(`./share-preview-page-BFwEr7Ws.js`),__vite__mapDeps([298,1,2,4,3,5,6,150,11,151,25,92,95,34,96,69,97,35,152,76,100,7,8,9,101,40,44,20,21,102,103,22,104,105,106,107,108,153,38,147,73,81,154,155,41,26,119,45,46,123,52,156,157,158,159,59,55,160,161,117,129,28,29,51,186])),x=()=>e(()=>import(`./local-apps-page-CdAKoWfg.js`),__vite__mapDeps([299,1,2,3,4,5,6,236,11,300,40,26,20,21,47,51,9,127,224])),S=()=>e(()=>import(`./local-app-workbench-page-CcJc9xLJ.js`),__vite__mapDeps([301,1,2,3,4,5,6,239,7,8,9,90,11,25,94,192,13,69,302,194,146,76,245,303,81,173,111,70,43,85,44,26,20,21,104,22,114,115,116,117,47,51,127,224,225,177,178,233,180,118,119,45,46,120,121,122,123,124,125,50,126,48,167,166,230])),C=()=>e(()=>import(`./product-open-page-BKw6H0Mn.js`),__vite__mapDeps([304,2,1,3,4,5,6,26,20,21,103,22,104,47,224,305])),w=()=>e(()=>import(`./work-discovery-page-HcUloXxf.js`).then(e=>e.n),__vite__mapDeps([306,1,2,3,4,5,6,11,307,92,189,7,8,9,190,76,20,21,51,52,53,60,202,24,25,26,27,28,29,30,94,69,203,95,97,105,204,44,205,48,47,158,206,84,207,50,46,208,308,40,309,90,75,31,35,111,248,264,288,310,311,132,93,13,33,269,180,14,199,200,277,70,57,58,217])),T=()=>e(()=>import(`./work-discovery-overlay-CdQUiV-a.js`),__vite__mapDeps([312,1,2,5,6,7,8,9,306,3,4,11,307,92,189,190,76,20,21,51,52,53,60,202,24,25,26,27,28,29,30,94,69,203,95,97,105,204,44,205,48,47,158,206,84,207,50,46,208,308,40,309,90,75,31,35,111,248,264,288,310,311,132,93,13,33,269,180,14,199,200,277,70,57,58,217,313])),E=()=>e(()=>import(`./setup-status-panel-DEefuWo3.js`),__vite__mapDeps([314,1,2,3,4,5,6,89,11,93,94,192,31,276,76,81,315,85,20,21,26,47,48,125,50,46,51,9,52,204,158,220,221,278,286,207,68,69,70,71,72,73,77,65,66,284])),D=()=>e(()=>import(`./appearance-settings-oYjAVulT.js`),__vite__mapDeps([316,1,2,5,6,24,11,25,20,21,26,27,8,9,28,29,30,48,47,52,317,66,53,213,222,68,3,4,69,70,51,71,77,65])),O=()=>e(()=>import(`./keyboard-shortcuts-settings-BCl90SrD.js`),__vite__mapDeps([318,1,2,5,6,20,21,158,176,66,231,68,3,4,69,11,70,51,9,71])),k=()=>e(()=>import(`./personal-settings-panel-Ds4ntiqu.js`),__vite__mapDeps([319,1,2,5,6,24,11,25,20,21,26,27,8,9,28,29,30,122,22,320,47,68,3,4,69,70,51,71])),A=()=>e(()=>import(`./system-settings-panel-BmoA92oX.js`),__vite__mapDeps([321,1,2,5,6,322,11,158,69,81,323,20,21,52,60,68,3,4,70,51,9,71,72,73])),j=()=>e(()=>import(`./desktop-pet-settings-CbbVb8GY.js`),__vite__mapDeps([324,1,2,3,4,5,6,239,92,11,24,25,20,21,26,27,8,9,28,29,30,75,69,153,325,173,52,158,128,81,51,326,327,68,70,71])),M=()=>e(()=>import(`./app-management-settings-panel-BXJrrjH5.js`),__vite__mapDeps([328,1,2,5,6,7,8,9,95,11,76,308,20,21,26,47,51,30,105,52,158,60,278,68,3,4,69,70,71,72,73])),N=()=>e(()=>import(`./capabilities-settings-panel-Bxn8HtEO.js`),__vite__mapDeps([329,1,2,4,3,5,6,7,8,9,236,11,330,93,24,25,20,21,26,27,28,29,30,94,331,133,203,95,97,76,105,52,53,204,164,40,41,18,44,47,48,50,46,51,296,59,55,207,286,206,84,158,208,69,243,196,162,73,110,17,81,111,270,143,43,85,187,210,22,174,118,119,45,120,121,122,123,124,125,126,66,62,216,332,60,218,61,227,281,278,64,65,229,67,68,70,71,72,74,75,293,294,333,83,86])),P=()=>e(()=>import(`./gateway-settings-CCqF1uZv.js`),__vite__mapDeps([334,1,2,3,4,5,6,24,11,25,20,21,26,27,8,9,28,29,30,75,203,94,95,97,76,105,52,53,204,276,196,335,81,154,336,158,111,323,270,85,47,48,51,296,332,54,55,60,218,7,65,66,278,64,67,68,69,70,71,72,73,77])),F=()=>e(()=>import(`./runtime-tools-settings-panel-CYEzIrDf.js`),__vite__mapDeps([337,1,2,5,6,24,11,25,20,21,26,27,8,9,28,29,30,75,94,34,173,47,51,128,81,278,68,3,4,69,70,71,77,65,66,284,283,92,210])),I=()=>e(()=>import(`./remote-access-hub-BdXxFQfH.js`),__vite__mapDeps([338,1,2,3,4,5,6,7,8,9,236,11,25,92,93,31,95,69,203,94,97,76,20,21,105,52,53,204,164,196,335,303,339,323,209,19,85,47,48,51,30,54,55,60,218,165,28,29,65,66,286,50,46,207,208,158,64,229,68,70,71,72,73,340,26,332,77])),L=()=>e(()=>import(`./shares-settings-CpK3yhtc.js`),__vite__mapDeps([341,1,2,3,4,5,6,7,8,9,25,11,92,24,20,21,26,27,28,29,30,193,84,95,242,93,96,190,149,101,180,35,195,52,158,146,76,16,40,81,246,43,163,69,164,44,51,165,105,47,48,126,53,54,55,60,218,170,342,161,117,22,175,135,278,206,94,207,50,46,208,67,68,70,71,72,73])),R=()=>e(()=>import(`./agent-defaults-settings-panel-_UT9C7bg.js`),__vite__mapDeps([343,1,2,3,4,5,6,94,11,80,198,142,41,111,270,20,21,26,86,22,47,51,9,158,59,55,220,221,65,66,281,48,64,67,68,69,70,71,74,25,75,76])),z=()=>e(()=>import(`./management-settings-BIR0BwNV.js`),__vite__mapDeps([344,1,2,3,4,5,6,7,8,9,89,11,133,93,24,25,20,21,26,27,28,29,30,197,345,40,41,209,44,45,22,46,47,51,54,52,55,160,218,128,81,278,68,69,70,71,346,94,13,34,347,102,103,104,159,165,95,105,208,158,229,340,164,76,303,48,53,332,72,73,287,288])),B=new Set;function V(e){B.has(e)||(B.add(e),e().catch(()=>{B.delete(e)}))}function H(e){let[t]=e.split(/[?#]/,1);return t||`/`}function U(e){V(p);let t=e.slice(10);if(t===`overview`)return V(E);if(t===`appearance`)return V(D);if(t===`keyboard-shortcuts`)return V(O);if(t===`personal`)return V(k);if(t===`system`)return V(A);if(t===`desktop-pet`)return V(j);if(t===`desktop-app`)return V(M);if(t.startsWith(`capabilities/`))return V(N);if(t===`gateway`)return V(P);if(t===`runtimes`)return V(F);if(t===`devices`)return V(z);if(t===`tunnel`||t===`remote-access`)return V(I);if(t===`shares`)return V(L);if(t===`agent-defaults`)return V(R);if(t===`agent-browser`)return V(m);if(t===`phone-use`)return V(h);if(t===`computer-use`)return V(g)}function W(e){if(!e.startsWith(`/`))return;let p=H(e);if(p===`/capabilities`||p.startsWith(`/capabilities/`))return V(u);if(p===`/user-model`)return V(d);if(p===`/automations`)return V(r);if(p===`/browser-automations`)return V(i);if(p===`/`)return V(a);if(p.startsWith(`/tasks/`))return V(o);if(p===`/projects`)return V(s);if(p.startsWith(`/projects/`))return V(c);if(p===`/notes`||p.startsWith(`/notes/`))return V(l);if(p.startsWith(`/extensions/`))return V(_);if(p===`/local-apps`)return V(x);if(p.startsWith(`/local-apps/`))return V(S);if(p===`/open`)return V(C);if(p===`/onboarding/workspace`)return V(w);if(p.startsWith(`/share/`))return V(b);if(p===`/settings/sessions`)return V(t);if(p===`/settings/usage`)return V(n);if(p===`/settings/logs`)return V(f);if(p===`/settings/extensions/debug`)return V(y);if(p.startsWith(`/settings/ext/`))return V(v);if(p.startsWith(`/settings/`))return U(p)}export{E as A,C,F as D,I as E,n as F,d as I,T as L,L as M,A as N,t as O,o as P,w as R,h as S,s as T,S as _,r as a,l as b,g as c,y as d,_ as f,O as g,a as h,D as i,b as j,p as k,j as l,P as m,R as n,i as o,v as p,M as r,N as s,m as t,z as u,x as v,c as w,k as x,f as y,W as z};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,i as t,o as n}from"./locale-store-
|
|
1
|
+
import{a as e,i as t,o as n}from"./locale-store-B7y-RVe8.js";async function r(){return n(t(`/api/runtime-tools`))}async function i(e){await n(t(`/api/runtime-tools/config`),{method:`PATCH`,body:JSON.stringify(e)})}async function a(){return(await n(t(`/api/runtime-tools/prune`),{method:`POST`})).payload}async function o(e){return s({path:`/api/runtime-tools/${e.runtime}/${e.action}/stream`,body:{version:e.version},onProgress:e.onProgress})}async function s(n){let r=await e(t(n.path),{method:`POST`,headers:{Accept:`text/event-stream`},body:JSON.stringify(n.body)});if(!r.ok||!r.body){let e=await r.json().catch(()=>({}));throw Error(e.message??`HTTP ${r.status}`)}let i=r.body.getReader(),a=new TextDecoder,o=``,s=!1;try{for(;!s;){let{done:e,value:t}=await i.read();if(e)break;o+=a.decode(t,{stream:!0}).replace(/\r\n/g,`
|
|
2
2
|
`);let r=o.split(`
|
|
3
3
|
|
|
4
4
|
`);o=r.pop()??``;for(let e of r){let t=``,r=``;for(let n of e.split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{i as r,n as i}from"./locale-store-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{i as r,n as i}from"./locale-store-B7y-RVe8.js";import{t as a}from"./messages-DYDkJvXj.js";import{n as o,r as s}from"./popover-select-CEMWIrtY.js";import{t as c}from"./circle-alert-BEjgurr2.js";import{t as l}from"./circle-check-C23XjkUj.js";import{t as u}from"./download-Dk-ZjtO6.js";import{t as d}from"./rotate-ccw-JM1TBLpp.js";import{i as f}from"./vendor-swr-CdRzEUwF.js";import{t as p}from"./button-Cc4hUNTt.js";import{t as m}from"./refresh-button-DiWdGAaX.js";import{n as h}from"./settings-loading-skeleton-BTqvr_Fw.js";import{n as g,t as _}from"./settings-page-header-BLKI3_9N.js";import"./settings-page-layout-BqBVrkC9.js";import{t as v}from"./settings-advanced-gate-BMHe9uwy.js";import{i as y,n as b,r as x}from"./runtime-tools-api-BDTUD8Rj.js";import{t as S}from"./phone-dependencies-card-B3R6L5Qu.js";var C=e(t(),1);function w(e){return e?.trim()||void 0}function T(e,t,n){return e?.state!==`ready`||w(t)!==w(n)}var E=n(),D=[`node`,`python`,`uv`];function O(){let e=a(i(e=>e.language)).runtimeToolsSettings,{data:t,error:n,isLoading:w,mutate:O}=f(r(`/api/runtime-tools`)),[k,A]=(0,C.useState)(null),[j,M]=(0,C.useState)(!1),[N,P]=(0,C.useState)(!1),[F,I]=(0,C.useState)({}),[L,R]=(0,C.useState)({}),[z,B]=(0,C.useState)(null),V=Object.values(F).some(Boolean);if((0,C.useEffect)(()=>{t?.payload.config&&A(structuredClone(t.payload.config))},[t?.payload.config]),n)return(0,E.jsxs)(g,{children:[(0,E.jsx)(_,{title:e.title,subtitle:e.loadError}),(0,E.jsx)(p,{onClick:()=>void O(),children:e.refresh})]});if(w||!k)return(0,E.jsx)(g,{children:(0,E.jsx)(h,{sections:3})});let H=new Map(t?.payload.statuses.map(e=>[e.runtime,e])),U=(e,t)=>A(n=>n&&{...n,[e]:{...n[e],...t}}),W=async()=>{M(!0),B(null);try{await y(k),await O()}catch(e){B(e instanceof Error?e.message:String(e))}finally{M(!1)}},G=async(e,t)=>{I(t=>({...t,[e]:!0})),B(null);try{await y(k),await x({runtime:e,action:t,version:e===`uv`?k.uv.version:k[e].version,onProgress:t=>R(n=>({...n,[e]:t}))}),await O()}catch(e){B(e instanceof Error?e.message:String(e))}finally{I(t=>({...t,[e]:!1}))}},K=async()=>{P(!0),B(null);try{await b(),await O()}catch(e){B(e instanceof Error?e.message:String(e))}finally{P(!1)}};return(0,E.jsxs)(g,{gap:`gap-6`,children:[(0,E.jsx)(_,{title:e.title,actions:(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(m,{className:`size-9 shrink-0 p-0`,disabled:V,label:e.refresh,onClick:async()=>{await O()}}),(0,E.jsx)(p,{onClick:()=>void K(),disabled:N||V,children:N?e.pruning:e.prune}),(0,E.jsx)(p,{variant:`primary`,onClick:()=>void W(),disabled:j||V,children:j?e.saving:e.save})]})}),z?(0,E.jsx)(`div`,{className:`rounded-xl bg-danger/10 px-4 py-3 text-sm text-danger`,children:z}):null,(0,E.jsx)(`section`,{className:`rounded-xl bg-surface-hover/20 p-4`,children:(0,E.jsxs)(`label`,{className:`flex items-center justify-between gap-4`,children:[(0,E.jsxs)(`span`,{children:[(0,E.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:e.enabled}),(0,E.jsx)(`span`,{className:`mt-1 block text-xs text-fg-muted`,children:e.enabledHint})]}),(0,E.jsx)(`input`,{type:`checkbox`,checked:k.enabled,onChange:e=>A({...k,enabled:e.target.checked}),className:`size-4 accent-accent`})]})}),(0,E.jsx)(v,{children:(0,E.jsxs)(`section`,{className:`grid gap-4 rounded-xl bg-surface-hover/20 p-4 md:grid-cols-2`,children:[(0,E.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.downloadSource,(0,E.jsxs)(o,{value:k.download.source,onChange:e=>A({...k,download:{...k.download,source:e.target.value}}),children:[(0,E.jsx)(s,{value:`auto`,children:e.downloadSources.auto}),(0,E.jsx)(s,{value:`website-only`,children:e.downloadSources.websiteOnly}),(0,E.jsx)(s,{value:`direct-only`,children:e.downloadSources.directOnly})]})]}),(0,E.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.gatewayBaseUrl,(0,E.jsx)(`input`,{value:k.download.gatewayBaseUrl,disabled:k.download.source===`direct-only`,onChange:e=>A({...k,download:{...k.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,E.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.offlineBundle,(0,E.jsx)(`input`,{value:k.download.bundleDir??``,placeholder:e.offlineBundlePlaceholder,onChange:e=>A({...k,download:{...k.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,E.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.proxy,(0,E.jsx)(`input`,{value:k.download.proxy??``,placeholder:`http://127.0.0.1:7890`,onChange:e=>A({...k,download:{...k.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,E.jsx)(S,{}),(0,E.jsx)(`div`,{className:`flex flex-col gap-4`,children:D.map(n=>{let r=H.get(n),i=r?.state===`ready`,a=L[n],f=n===`uv`?k.uv:k[n],m=n===`uv`?t?.payload.config.uv:t?.payload.config[n],h=F[n]===!0,g=T(r,f.version,m?.version);return(0,E.jsxs)(`section`,{className:`flex min-w-0 flex-col gap-5 rounded-xl bg-surface-base/55 p-5 sm:p-6`,children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:e.runtimeNames[n]}),(0,E.jsx)(`p`,{className:`mt-1 break-words text-xs text-fg-muted`,children:r?.message??e.unknown})]}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i?(0,E.jsx)(l,{className:`size-5 shrink-0 text-success`}):(0,E.jsx)(c,{className:`size-5 shrink-0 text-warning`}),(0,E.jsx)(`input`,{type:`checkbox`,"aria-label":`${e.runtimeNames[n]} ${e.enabled}`,checked:f.enabled,onChange:e=>{n===`uv`?A({...k,uv:{...k.uv,enabled:e.target.checked}}):U(n,{enabled:e.target.checked})},className:`size-4 accent-accent`})]})]}),(0,E.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,E.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.version,(0,E.jsx)(`input`,{value:f.version??``,placeholder:r?.requestedVersion,onChange:e=>{let t=e.target.value||void 0;n===`uv`?A({...k,uv:{...k.uv,version:t}}):U(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,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.sourcePolicy,(0,E.jsxs)(o,{value:k[n].preference,onChange:e=>U(n,{preference:e.target.value}),children:[(0,E.jsx)(s,{value:`managed-first`,children:e.preferences.managedFirst}),(0,E.jsx)(s,{value:`system-first`,children:e.preferences.systemFirst}),(0,E.jsx)(s,{value:`managed-only`,children:e.preferences.managedOnly}),(0,E.jsx)(s,{value:`system-only`,children:e.preferences.systemOnly})]})]}),(0,E.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[e.provisionPolicy,(0,E.jsxs)(o,{value:k[n].provision,onChange:e=>U(n,{provision:e.target.value}),children:[(0,E.jsx)(s,{value:`eager`,children:e.provisions.eager}),(0,E.jsx)(s,{value:`on-demand`,children:e.provisions.onDemand}),(0,E.jsx)(s,{value:`disabled`,children:e.provisions.disabled})]})]})]})]}),a&&h?(0,E.jsxs)(`div`,{className:`rounded-lg bg-accent-soft px-3 py-2 text-xs text-accent-fg`,children:[a.message,a.totalBytes&&a.downloadedBytes?` · ${Math.round(a.downloadedBytes/a.totalBytes*100)}%`:``]}):null,(0,E.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3`,children:[(0,E.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[g?(0,E.jsxs)(p,{variant:`primary`,disabled:!k.enabled||!f.enabled||h,onClick:()=>void G(n,`install`),children:[(0,E.jsx)(u,{className:`size-4`}),h?e.working:e.install]}):(0,E.jsxs)(`span`,{className:`inline-flex h-9 items-center gap-2 px-1 text-sm text-success`,children:[(0,E.jsx)(l,{className:`size-4`}),e.installed]}),r?.repairable?(0,E.jsxs)(p,{disabled:!k.enabled||!f.enabled||h,onClick:()=>void G(n,`repair`),children:[(0,E.jsx)(d,{className:`size-4`}),e.repair]}):null]}),(0,E.jsx)(v,{children:r?.resolved?.executable?(0,E.jsx)(`code`,{className:`break-all text-[11px] text-fg-subtle`,children:r.resolved.executable}):null})]})]},n)})})]})}export{O as RuntimeToolsSettingsPanel};
|