@xopcai/xopc 0.0.420 → 0.0.421

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.
Files changed (324) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-DnqOM8GN.js → activity-store-CKrylgib.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-1UABT2KS.js → agent-avatar-dicebear-Dv5Rda4y.js} +1 -1
  5. package/dist/gateway/static/root/assets/agent-avatar-display-B1ycycx2.js +2 -0
  6. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D285zy0S.js +1 -0
  7. package/dist/gateway/static/root/assets/agent-plugin-dialog-D3yCqVan.js +1 -0
  8. package/dist/gateway/static/root/assets/{agents-O7mago-m.js → agents-DyAuR3rG.js} +5 -5
  9. package/dist/gateway/static/root/assets/{agents-admin-api-CyjykMEh.js → agents-admin-api-CASGzvkW.js} +1 -1
  10. package/dist/gateway/static/root/assets/{api-C1dxxDZx.js → api-C4LxuNzq.js} +1 -1
  11. package/dist/gateway/static/root/assets/{api-Ddrs70xV.js → api-Uk05lF9i.js} +1 -1
  12. package/dist/gateway/static/root/assets/app-management-settings-panel-CDnZNKHt.js +1 -0
  13. package/dist/gateway/static/root/assets/appearance-settings-CmCF7PZ5.js +1 -0
  14. package/dist/gateway/static/root/assets/apps-page-BR9qoA2P.js +1 -0
  15. package/dist/gateway/static/root/assets/{archive-plugin-n5lPr79c.js → archive-plugin-nuHYYVty.js} +1 -1
  16. package/dist/gateway/static/root/assets/automation-api-DtJfd1QM.js +1 -0
  17. package/dist/gateway/static/root/assets/automation-display-BlGt8MAC.js +2 -0
  18. package/dist/gateway/static/root/assets/automation-task-card-Cp3RIw5d.js +2 -0
  19. package/dist/gateway/static/root/assets/{automations-page-oLsNzu_6.js → automations-page-DM4IdUJh.js} +1 -1
  20. package/dist/gateway/static/root/assets/automations-workspace-CXLu04I-.js +9 -0
  21. package/dist/gateway/static/root/assets/{binary-plugins-D9VW7dWP.js → binary-plugins-CHCAr8jt.js} +1 -1
  22. package/dist/gateway/static/root/assets/{block-editor-C477bTtO.js → block-editor-B0v8KxsO.js} +4 -4
  23. package/dist/gateway/static/root/assets/{browser-automation-inputs-CCiYXxmh.js → browser-automation-inputs-DjUW7PEB.js} +1 -1
  24. package/dist/gateway/static/root/assets/browser-automations-page-Cf8AoQz1.js +3 -0
  25. package/dist/gateway/static/root/assets/{browser-control-api-Y3fvmeBk.js → browser-control-api-C6NZgaA1.js} +1 -1
  26. package/dist/gateway/static/root/assets/{browser-settings-page-DjkGahlz.js → browser-settings-page-DV2FNEDf.js} +2 -2
  27. package/dist/gateway/static/root/assets/{capabilities-DAyA681v.js → capabilities-CwdjWz2r.js} +1 -1
  28. package/dist/gateway/static/root/assets/{capabilities-DRVXLssH.js → capabilities-D0-HCZ5J.js} +1 -1
  29. package/dist/gateway/static/root/assets/capabilities-page-DwDkritH.js +2 -0
  30. package/dist/gateway/static/root/assets/capabilities-settings-panel-mme16Fbp.js +8 -0
  31. package/dist/gateway/static/root/assets/channels-lKFLu8p-.js +1 -0
  32. package/dist/gateway/static/root/assets/{chat-agents-api-D5nR_JVe.js → chat-agents-api-l80cvSac.js} +1 -1
  33. package/dist/gateway/static/root/assets/{chat-chart-block-K2t333qv.js → chat-chart-block-BwP5QXEk.js} +1 -1
  34. package/dist/gateway/static/root/assets/chat-page-CT3K7lFT.js +71 -0
  35. package/dist/gateway/static/root/assets/{chat-terminal-dock-CkFG6mA3.js → chat-terminal-dock-D2bV9YUL.js} +2 -2
  36. package/dist/gateway/static/root/assets/{list-filter-COkzTdOz.js → clipboard-copy-DuJk5WD6.js} +1 -1
  37. package/dist/gateway/static/root/assets/{command-palette-api-Do_66X1B.js → command-palette-api-CtapG8ck.js} +1 -1
  38. package/dist/gateway/static/root/assets/composer-payload-handoff-DYuhKZRC.js +1 -0
  39. package/dist/gateway/static/root/assets/{computer-settings-page-DBxOcMko.js → computer-settings-page-DZtMuihL.js} +1 -1
  40. package/dist/gateway/static/root/assets/connected-providers-grid-BQH5k3iC.js +1 -0
  41. package/dist/gateway/static/root/assets/{connector-service-page-rWpnchb3.js → connector-service-page-DrvFdP3G.js} +1 -1
  42. package/dist/gateway/static/root/assets/{connectors-api-DIBG72k4.js → connectors-api-BzkgVBYC.js} +1 -1
  43. package/dist/gateway/static/root/assets/connectors-page-BtRNVCFy.js +1 -0
  44. package/dist/gateway/static/root/assets/{date-picker-CE-cZFCU.js → date-picker-ByTasrfl.js} +1 -1
  45. package/dist/gateway/static/root/assets/{dependency-picker-7SpSfDSg.js → dependency-picker-Dh8hPmsT.js} +1 -1
  46. package/dist/gateway/static/root/assets/desktop-pet-CFz8bqyI.js +1 -0
  47. package/dist/gateway/static/root/assets/desktop-pet-settings-COaboNn1.js +1 -0
  48. package/dist/gateway/static/root/assets/{dev-view-store-57HgVuZ6.js → dev-view-store-D8XYHVqG.js} +1 -1
  49. package/dist/gateway/static/root/assets/device-pairing-wizard-BKMpLdIA.js +1 -0
  50. package/dist/gateway/static/root/assets/{directory-picker-path-field-D4jMhpka.js → directory-picker-path-field-Cjv7rdo3.js} +1 -1
  51. package/dist/gateway/static/root/assets/discussion-annotation-sync-YvlVw17j.js +1 -0
  52. package/dist/gateway/static/root/assets/{dist-DNCdG_qB.js → dist-D3lWNSe7.js} +1 -1
  53. package/dist/gateway/static/root/assets/{extension-debug-page-BsK2LMXQ.js → extension-debug-page-CXx3m5-B.js} +1 -1
  54. package/dist/gateway/static/root/assets/extension-iframe-host-CnOdNwbo.js +1 -0
  55. package/dist/gateway/static/root/assets/{extension-marketplace-api-CVJPqJOB.js → extension-marketplace-api-BABmUY2s.js} +1 -1
  56. package/dist/gateway/static/root/assets/extension-page-C1nGr4DD.js +1 -0
  57. package/dist/gateway/static/root/assets/{extension-provider-Byrd8Sor.js → extension-provider-BA0Y2Rvs.js} +1 -1
  58. package/dist/gateway/static/root/assets/extension-settings-page-QIPI8e7k.js +1 -0
  59. package/dist/gateway/static/root/assets/{file-preview-surface-BlprUrIs.js → file-preview-surface-BsB7bnFH.js} +1 -1
  60. package/dist/gateway/static/root/assets/{gateway-config-swr-BAmUhiP1.js → gateway-config-swr-Bt8w0Iio.js} +1 -1
  61. package/dist/gateway/static/root/assets/{gateway-realtime-CsykKL4l.js → gateway-realtime-CyCCNUxm.js} +1 -1
  62. package/dist/gateway/static/root/assets/gateway-realtime-store-0gmDfPeP.js +1 -0
  63. package/dist/gateway/static/root/assets/gateway-restart-Ty4AzDxa.js +1 -0
  64. package/dist/gateway/static/root/assets/{gateway-settings-BA5-Uuwx.js → gateway-settings-BvKq7vuz.js} +1 -1
  65. package/dist/gateway/static/root/assets/{gateway-startup-retry-CtUB3g6N.js → gateway-startup-retry-N3k-C7c2.js} +1 -1
  66. package/dist/gateway/static/root/assets/{global-defaults-api-CINf-C6a.js → global-defaults-api-D8EB2vfY.js} +1 -1
  67. package/dist/gateway/static/root/assets/home-page-eRuAzi58.js +2 -0
  68. package/dist/gateway/static/root/assets/image-generation-api-C99Fsofm.js +1 -0
  69. package/dist/gateway/static/root/assets/{imports-page-BWShtGRQ.js → imports-page-Cp9RquVb.js} +1 -1
  70. package/dist/gateway/static/root/assets/index-6vVrWfwM.js +11 -0
  71. package/dist/gateway/static/root/assets/index-DDGK6klk.css +1 -0
  72. package/dist/gateway/static/root/assets/install-connector-dialog-CsoAidXp.js +1 -0
  73. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CdM4BQwp.js → keyboard-shortcuts-settings-DFhOP2aD.js} +1 -1
  74. package/dist/gateway/static/root/assets/list-filter-CIPvpfLA.js +1 -0
  75. package/dist/gateway/static/root/assets/local-app-workbench-page-DbtU_A-l.js +1 -0
  76. package/dist/gateway/static/root/assets/{local-apps-page-CxyRVfjD.js → local-apps-page-rjhHfLpe.js} +1 -1
  77. package/dist/gateway/static/root/assets/{local-session-drafts-B9ZPwotC.js → local-session-drafts-DHM4vWDO.js} +1 -1
  78. package/dist/gateway/static/root/assets/{locale-store-lIXD1FMw.js → locale-store-5Hf8J8-_.js} +1 -1
  79. package/dist/gateway/static/root/assets/logs-page-Dx_JIOpF.js +2 -0
  80. package/dist/gateway/static/root/assets/management-settings-CuSzixOw.js +1 -0
  81. package/dist/gateway/static/root/assets/{markdown-view-CJt-i2Dp.js → markdown-view-pzSRu7av.js} +3 -3
  82. package/dist/gateway/static/root/assets/{media-plugins-D_bR23mA.js → media-plugins-3cJuHbO7.js} +1 -1
  83. package/dist/gateway/static/root/assets/messages-uXxg5p54.js +3 -0
  84. package/dist/gateway/static/root/assets/model-selector-ksLo-5B_.js +1 -0
  85. package/dist/gateway/static/root/assets/{models-hub-cache-za2fWJLg.js → models-hub-cache-DhZng2nF.js} +1 -1
  86. package/dist/gateway/static/root/assets/navigation-D62kPsA9.js +1 -0
  87. package/dist/gateway/static/root/assets/note-detail-panel-B6RbjwJq.js +5 -0
  88. package/dist/gateway/static/root/assets/note-image-lightbox-BCjvBqwy.js +1 -0
  89. package/dist/gateway/static/root/assets/{notes-api-C_458rv5.js → notes-api-DocbsBbT.js} +1 -1
  90. package/dist/gateway/static/root/assets/notes-page-B7889s6-.js +8 -0
  91. package/dist/gateway/static/root/assets/{oauth-api-C3X9FLYw.js → oauth-api-CCFIPbA0.js} +1 -1
  92. package/dist/gateway/static/root/assets/{oauth-provider-connect-H81se_3n.js → oauth-provider-connect-GxkF0vWJ.js} +1 -1
  93. package/dist/gateway/static/root/assets/open-capability-settings-Cvb65hQB.js +1 -0
  94. package/dist/gateway/static/root/assets/{page-context-capture-button-BkAlQ7cB.js → page-context-capture-button-CvWLVeRA.js} +1 -1
  95. package/dist/gateway/static/root/assets/{page-context-draft-ClLgaOaD.js → page-context-draft-CMRDNv4d.js} +1 -1
  96. package/dist/gateway/static/root/assets/page-header-store-reh1es-3.js +1 -0
  97. package/dist/gateway/static/root/assets/{personal-avatar-BLtHt8fV.js → personal-avatar-CqNJ48Ge.js} +1 -1
  98. package/dist/gateway/static/root/assets/personal-page-D95FHaw9.js +1 -0
  99. package/dist/gateway/static/root/assets/personal-settings-panel-DAcl8DU4.js +1 -0
  100. package/dist/gateway/static/root/assets/{phone-dependencies-card-DISHarj8.js → phone-dependencies-card-DLWblGj7.js} +1 -1
  101. package/dist/gateway/static/root/assets/phone-model-picker-ugrT9GJu.js +1 -0
  102. package/dist/gateway/static/root/assets/phone-settings-page-DIIt7JOE.js +1 -0
  103. package/dist/gateway/static/root/assets/{phone-workspace-store-fhnZrgy_.js → phone-workspace-store-mawKT5kV.js} +1 -1
  104. package/dist/gateway/static/root/assets/plugin-details-dialog-BdueMT3q.js +1 -0
  105. package/dist/gateway/static/root/assets/popover-select-DD8fmrxH.js +1 -0
  106. package/dist/gateway/static/root/assets/preference-select-fields-CmLZNwbm.js +1 -0
  107. package/dist/gateway/static/root/assets/product-automation-feedback-DYwhL37Y.js +7 -0
  108. package/dist/gateway/static/root/assets/{product-open-page-xn9G4hSI.js → product-open-page-B5G4X71t.js} +1 -1
  109. package/dist/gateway/static/root/assets/{product-preview-content-DcoK-iZe.js → product-preview-content-BUheyLqt.js} +1 -1
  110. package/dist/gateway/static/root/assets/{product-preview-modal-Ruw9WSKK.js → product-preview-modal-Cj_Zxu4G.js} +2 -2
  111. package/dist/gateway/static/root/assets/project-detail-page-CRJb69vP.js +7 -0
  112. package/dist/gateway/static/root/assets/project-understanding-D3w8cZEm.js +1 -0
  113. package/dist/gateway/static/root/assets/projects-page-CkifzKjz.js +1 -0
  114. package/dist/gateway/static/root/assets/{providers-api-CzVkFKFg.js → providers-api-CKFg2PZQ.js} +1 -1
  115. package/dist/gateway/static/root/assets/{recording-upload-0jxahBMo.js → recording-upload-ZkmRf0GR.js} +1 -1
  116. package/dist/gateway/static/root/assets/{registry-api-n8TwtJ_j.js → registry-api-B1Mh3bNo.js} +1 -1
  117. package/dist/gateway/static/root/assets/{remote-access-hub-cZpBi4Rk.js → remote-access-hub-Dw5rG-aA.js} +1 -1
  118. package/dist/gateway/static/root/assets/resource-unavailable-BUWsH3fp.js +1 -0
  119. package/dist/gateway/static/root/assets/route-preload-CRKbVwQ1.js +2 -0
  120. package/dist/gateway/static/root/assets/runtime-impact-DbySfhdp.js +1 -0
  121. package/dist/gateway/static/root/assets/{runtime-tools-api-D-8KjYK6.js → runtime-tools-api-BXvn5ImA.js} +1 -1
  122. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-BALcypHp.js +1 -0
  123. package/dist/gateway/static/root/assets/schema-form-BKeP5G7b.js +1 -0
  124. package/dist/gateway/static/root/assets/service-recommendation-list-CpVUnz89.js +1 -0
  125. package/dist/gateway/static/root/assets/{session-api-CsCoI2im.js → session-api-VquhIBHI.js} +1 -1
  126. package/dist/gateway/static/root/assets/session-manager-DNMosCtW.js +23 -0
  127. package/dist/gateway/static/root/assets/sessions-page-DlvPkE5Y.js +1 -0
  128. package/dist/gateway/static/root/assets/settings-advanced-gate-Ckc1aCLG.js +1 -0
  129. package/dist/gateway/static/root/assets/{settings-advanced-section-BqoVSko2.js → settings-advanced-section-c9_iZ-46.js} +1 -1
  130. package/dist/gateway/static/root/assets/{settings-mode-store-CBsJ-Qg2.js → settings-mode-store-Dem6-TBe.js} +1 -1
  131. package/dist/gateway/static/root/assets/{settings-page-DROUGyJl.js → settings-page-B_wNfFQe.js} +1 -1
  132. package/dist/gateway/static/root/assets/{settings-page-header-Bv-kQFTm.js → settings-page-header-C8a_oOyw.js} +1 -1
  133. package/dist/gateway/static/root/assets/{settings-page-layout-DHP6MrrL.js → settings-page-layout-CTSRWljG.js} +1 -1
  134. package/dist/gateway/static/root/assets/setup-status-panel-BNZoqF40.js +1 -0
  135. package/dist/gateway/static/root/assets/{share-link-dialog-BJHRQVKC.js → share-link-dialog-C5JTTxsy.js} +1 -1
  136. package/dist/gateway/static/root/assets/share-preview-page-D-KxzXgm.js +2 -0
  137. package/dist/gateway/static/root/assets/{shares-api-rtWVHA_d.js → shares-api-CztKbxdd.js} +1 -1
  138. package/dist/gateway/static/root/assets/shares-settings-CzR21j6e.js +1 -0
  139. package/dist/gateway/static/root/assets/skill-api-B7kWl6LK.js +1 -0
  140. package/dist/gateway/static/root/assets/{skill-list-api-BzlKXPsE.js → skill-list-api-Cn07P6qZ.js} +1 -1
  141. package/dist/gateway/static/root/assets/{skill-reload-api-Cff2GgZb.js → skill-reload-api-Bhl0u16_.js} +1 -1
  142. package/dist/gateway/static/root/assets/skills-page-BmkuxHZe.js +2 -0
  143. package/dist/gateway/static/root/assets/{system-settings-panel-BeQeUUMH.js → system-settings-panel-Ce6zIcki.js} +1 -1
  144. package/dist/gateway/static/root/assets/task-detail-page-CysJhG3B.js +2 -0
  145. package/dist/gateway/static/root/assets/task-result-evidence-CGZKMnNo.js +1 -0
  146. package/dist/gateway/static/root/assets/{terminal-panel-store-5Fzctajw.js → terminal-panel-store-YwLUkuyV.js} +1 -1
  147. package/dist/gateway/static/root/assets/{theme-store-DW45fWYQ.js → theme-store-DOJ9tu-j.js} +1 -1
  148. package/dist/gateway/static/root/assets/tracing-settings-page-BplBpTdL.js +1 -0
  149. package/dist/gateway/static/root/assets/tunnel-api-B5-Ypvqa.js +1 -0
  150. package/dist/gateway/static/root/assets/{understanding-activity-store-CTe6TFB0.js → understanding-activity-store-CmwtE8Kd.js} +1 -1
  151. package/dist/gateway/static/root/assets/{understanding-refresh-store-mE9OKG6q.js → understanding-refresh-store-9apSmAVL.js} +1 -1
  152. package/dist/gateway/static/root/assets/usage-page-cPbirpXX.js +1 -0
  153. package/dist/gateway/static/root/assets/{use-autosave-Cs2Ga_Y_.js → use-autosave-B3p2QWaF.js} +1 -1
  154. package/dist/gateway/static/root/assets/use-composer-attachments-D-AEYC85.js +2 -0
  155. package/dist/gateway/static/root/assets/use-file-preview-expanded-CO4SC-LX.js +2 -0
  156. package/dist/gateway/static/root/assets/{use-personal-profile-BHL2AxWU.js → use-personal-profile-DocmhC9I.js} +1 -1
  157. package/dist/gateway/static/root/assets/{use-workspace-tree-CnmPZrpx.js → use-workspace-tree-VraTGKx-.js} +1 -1
  158. package/dist/gateway/static/root/assets/user-model-page-DuRALzhe.js +2 -0
  159. package/dist/gateway/static/root/assets/{voice-api-key-field-3gyc2UV3.js → voice-api-key-field-DbSQHZZW.js} +1 -1
  160. package/dist/gateway/static/root/assets/{voice-config-api-Cda2uBIC.js → voice-config-api-D9iNJSvm.js} +1 -1
  161. package/dist/gateway/static/root/assets/{voice-input-shortcut-events-DtYHsPLF.js → voice-input-shortcut-events-hso9_VvT.js} +1 -1
  162. package/dist/gateway/static/root/assets/voice-transcribe-api-BqIs0jgv.js +1 -0
  163. package/dist/gateway/static/root/assets/{work-discovery-overlay-Dqu5CQCS.js → work-discovery-overlay-fsL9RJqB.js} +1 -1
  164. package/dist/gateway/static/root/assets/work-discovery-page-DAQPKVDs.js +1 -0
  165. package/dist/gateway/static/root/assets/{working-directory-picker-modal-DHl2cZY1.js → working-directory-picker-modal-Ta73QrNw.js} +1 -1
  166. package/dist/gateway/static/root/assets/{workspace-api-CtDbI6T7.js → workspace-api-CgrcNyBc.js} +2 -2
  167. package/dist/gateway/static/root/assets/workspace-editor-agent-store-Dw6wtadX.js +1 -0
  168. package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-CTIbUfKb.js → workspace-file-preview-dialog-B7uBuPtA.js} +1 -1
  169. package/dist/gateway/static/root/assets/{workspace-open-location-menu-BwxouqdZ.js → workspace-open-location-menu-Bi2vRvaQ.js} +1 -1
  170. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-CFb-23rS.js → xopc-cloud-account-card-CCOOBG-7.js} +1 -1
  171. package/dist/gateway/static/root/index.html +86 -81
  172. package/dist/package.js +1 -1
  173. package/dist/packages/gateway-contract/src/index.js +2 -0
  174. package/dist/packages/gateway-contract/src/task-display.js +14 -0
  175. package/dist/src/agent/agent-manager.js +1 -1
  176. package/dist/src/agent/background-review/run-background-review.js +1 -1
  177. package/dist/src/agent/context/execution-scope.js +10 -5
  178. package/dist/src/agent/external-tools/cliProvider.js +2 -2
  179. package/dist/src/agent/external-tools/composio-provider.js +2 -2
  180. package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
  181. package/dist/src/agent/service.js +1 -1
  182. package/dist/src/agent/skills/index.js +1 -1
  183. package/dist/src/agent/skills/managed-store.js +1 -1
  184. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  185. package/dist/src/agent/tools/automation-tool.d.ts +2 -1
  186. package/dist/src/agent/tools/automation-tool.js +10 -3
  187. package/dist/src/agent/tools/factory.js +1 -0
  188. package/dist/src/agent/tools/personal-read-tool.js +1 -1
  189. package/dist/src/agent/tools/personal-task-tool.js +2 -1
  190. package/dist/src/agent/tools/xopc-use-tool.js +7 -5
  191. package/dist/src/agent-catalog/capabilities.js +2 -2
  192. package/dist/src/agent-catalog/repository.js +1 -1
  193. package/dist/src/automations/api/routes.js +38 -0
  194. package/dist/src/automations/capabilities/drafts.js +1 -1
  195. package/dist/src/automations/capabilities/write.js +25 -9
  196. package/dist/src/automations/configuration-conversation.d.ts +16 -0
  197. package/dist/src/automations/configuration-conversation.js +120 -0
  198. package/dist/src/automations/delivery/delivery-router.d.ts +2 -0
  199. package/dist/src/automations/delivery/delivery-router.js +30 -9
  200. package/dist/src/automations/domain/types.d.ts +1 -0
  201. package/dist/src/automations/index.js +5 -5
  202. package/dist/src/automations/service/action-executor.js +41 -12
  203. package/dist/src/automations/service/automation-service.d.ts +6 -0
  204. package/dist/src/automations/service/automation-service.js +47 -12
  205. package/dist/src/automations/service/index.js +2 -2
  206. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  207. package/dist/src/capabilities/runtime/dispatcher.js +1 -1
  208. package/dist/src/capabilities/runtime/product.js +1 -1
  209. package/dist/src/cli/commands/agents.js +1 -1
  210. package/dist/src/cli/commands/models.js +1 -1
  211. package/dist/src/cli/commands/onboard/model.js +1 -1
  212. package/dist/src/cli/utils/init-workspace-core.js +1 -1
  213. package/dist/src/computer/broker.js +16 -3
  214. package/dist/src/computer/diagnostics.js +1 -1
  215. package/dist/src/computer/errors.js +4 -0
  216. package/dist/src/config/agent-profile.js +1 -1
  217. package/dist/src/execution-environments/local-worktree-manager.js +1 -1
  218. package/dist/src/extensions/agent-plugins/skill-catalog.js +1 -1
  219. package/dist/src/extensions/agent-plugins/validation.js +1 -1
  220. package/dist/src/gateway/agents-admin.js +2 -2
  221. package/dist/src/gateway/automation-completion-delivery.d.ts +4 -0
  222. package/dist/src/gateway/automation-completion-delivery.js +14 -0
  223. package/dist/src/gateway/global-defaults-admin.js +1 -1
  224. package/dist/src/gateway/hono/routes/agents.js +1 -1
  225. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  226. package/dist/src/gateway/hono/routes/notes.js +2 -2
  227. package/dist/src/gateway/hono/routes/phone-setup.js +1 -1
  228. package/dist/src/gateway/hono/routes/projects.js +2 -2
  229. package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
  230. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  231. package/dist/src/gateway/image-generation-setup.js +1 -1
  232. package/dist/src/gateway/respawn.js +2 -1
  233. package/dist/src/gateway/service.js +4 -4
  234. package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
  235. package/dist/src/imports/importService.js +1 -1
  236. package/dist/src/local-apps/service.js +1 -1
  237. package/dist/src/observability/store.d.ts +9 -0
  238. package/dist/src/observability/store.js +77 -32
  239. package/dist/src/personal-agent/communication.d.ts +1 -1
  240. package/dist/src/personal-agent/communication.js +3 -6
  241. package/dist/src/personal-agent/request-service.js +2 -1
  242. package/dist/src/personal-agent/service.js +1 -1
  243. package/dist/src/runtime-tools/archive.js +1 -1
  244. package/dist/src/tasks/capabilities/read.js +2 -2
  245. package/dist/src/tasks/capabilities/write.js +1 -1
  246. package/dist/src/tasks/task-contract-planner.js +2 -1
  247. package/dist/src/tui/backends/embedded-backend.js +1 -1
  248. package/dist/src/voice/realtime/persona-context.js +1 -1
  249. package/package.json +3 -3
  250. package/dist/gateway/static/root/assets/agent-avatar-display-Cy50vjbq.js +0 -2
  251. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-V4NX_cWz.js +0 -1
  252. package/dist/gateway/static/root/assets/agent-plugin-dialog-CQ5LLDMO.js +0 -1
  253. package/dist/gateway/static/root/assets/app-management-settings-panel-C1Zs-eha.js +0 -1
  254. package/dist/gateway/static/root/assets/appearance-settings-lIfGokbz.js +0 -1
  255. package/dist/gateway/static/root/assets/apps-page-CUvtsRYD.js +0 -1
  256. package/dist/gateway/static/root/assets/automation-api-Bld8blNl.js +0 -1
  257. package/dist/gateway/static/root/assets/automation-display-BcfZOQTC.js +0 -2
  258. package/dist/gateway/static/root/assets/automations-workspace-BgtYY2Mm.js +0 -8
  259. package/dist/gateway/static/root/assets/browser-automations-page-DIUNY94X.js +0 -3
  260. package/dist/gateway/static/root/assets/capabilities-page-DFW4Y0x8.js +0 -2
  261. package/dist/gateway/static/root/assets/capabilities-settings-panel-uOHSMQPZ.js +0 -8
  262. package/dist/gateway/static/root/assets/channels-D2a69dSt.js +0 -1
  263. package/dist/gateway/static/root/assets/chat-page-CG38tCHE.js +0 -71
  264. package/dist/gateway/static/root/assets/composer-payload-handoff-BU3B-C26.js +0 -1
  265. package/dist/gateway/static/root/assets/connected-providers-grid-Dmnu2zle.js +0 -1
  266. package/dist/gateway/static/root/assets/connectors-page-DT_WrC1y.js +0 -1
  267. package/dist/gateway/static/root/assets/desktop-pet-lorocS9j.js +0 -1
  268. package/dist/gateway/static/root/assets/desktop-pet-settings-CEcohlZq.js +0 -1
  269. package/dist/gateway/static/root/assets/device-pairing-wizard-CLCPuf4R.js +0 -1
  270. package/dist/gateway/static/root/assets/discussion-annotation-sync-BKjf9gWe.js +0 -1
  271. package/dist/gateway/static/root/assets/extension-iframe-host-Dhkk5JV2.js +0 -1
  272. package/dist/gateway/static/root/assets/extension-page-Brps2XDP.js +0 -1
  273. package/dist/gateway/static/root/assets/extension-settings-page-CHY68DpG.js +0 -1
  274. package/dist/gateway/static/root/assets/gateway-realtime-store-DQqMBruB.js +0 -1
  275. package/dist/gateway/static/root/assets/gateway-restart-Ch128Lrr.js +0 -1
  276. package/dist/gateway/static/root/assets/home-page-DaMFBYo1.js +0 -2
  277. package/dist/gateway/static/root/assets/image-generation-api-I_JgLL_m.js +0 -1
  278. package/dist/gateway/static/root/assets/index-DY2Y83b9.css +0 -1
  279. package/dist/gateway/static/root/assets/index-UCOlAnf-.js +0 -11
  280. package/dist/gateway/static/root/assets/install-connector-dialog-DU1Tz7B3.js +0 -1
  281. package/dist/gateway/static/root/assets/local-app-workbench-page-qPflPuQD.js +0 -1
  282. package/dist/gateway/static/root/assets/logs-page-CbY1N-zi.js +0 -2
  283. package/dist/gateway/static/root/assets/management-settings-Diy12JfQ.js +0 -1
  284. package/dist/gateway/static/root/assets/messages-DRR9N3HC.js +0 -3
  285. package/dist/gateway/static/root/assets/model-selector-DCYA_ntf.js +0 -1
  286. package/dist/gateway/static/root/assets/navigation-BkjnOw30.js +0 -1
  287. package/dist/gateway/static/root/assets/note-detail-panel-DBs1yHLy.js +0 -5
  288. package/dist/gateway/static/root/assets/note-image-lightbox-CivkB6LB.js +0 -1
  289. package/dist/gateway/static/root/assets/notes-page-DL3c-41a.js +0 -8
  290. package/dist/gateway/static/root/assets/page-header-store-DH8K0xii.js +0 -1
  291. package/dist/gateway/static/root/assets/personal-page-B5DP3lO-.js +0 -1
  292. package/dist/gateway/static/root/assets/personal-settings-panel-DjDc5Kaz.js +0 -1
  293. package/dist/gateway/static/root/assets/phone-model-picker-u8YIQCgo.js +0 -1
  294. package/dist/gateway/static/root/assets/phone-settings-page-el3pT0PD.js +0 -1
  295. package/dist/gateway/static/root/assets/plugin-details-dialog-CTBs1Jde.js +0 -1
  296. package/dist/gateway/static/root/assets/popover-select-DniHw2dy.js +0 -1
  297. package/dist/gateway/static/root/assets/preference-select-fields-D7oluyHN.js +0 -1
  298. package/dist/gateway/static/root/assets/product-automation-feedback-DsUSqCOX.js +0 -7
  299. package/dist/gateway/static/root/assets/project-detail-page-BKvWLiMw.js +0 -7
  300. package/dist/gateway/static/root/assets/project-understanding-BCQr0AZ_.js +0 -1
  301. package/dist/gateway/static/root/assets/projects-page-D4g7bB7X.js +0 -1
  302. package/dist/gateway/static/root/assets/route-preload-B5UiReO7.js +0 -2
  303. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-MKlLFuow.js +0 -1
  304. package/dist/gateway/static/root/assets/schema-form-v4N4lawq.js +0 -1
  305. package/dist/gateway/static/root/assets/service-recommendation-list-B1xuVT3N.js +0 -1
  306. package/dist/gateway/static/root/assets/session-manager-5l9q0cd5.js +0 -16
  307. package/dist/gateway/static/root/assets/sessions-page-DsLw2aMD.js +0 -1
  308. package/dist/gateway/static/root/assets/settings-advanced-gate-B5lQeVNi.js +0 -1
  309. package/dist/gateway/static/root/assets/setup-status-panel-MJE3B_LX.js +0 -1
  310. package/dist/gateway/static/root/assets/share-preview-page-Bsrv_zOQ.js +0 -2
  311. package/dist/gateway/static/root/assets/shares-settings-CfIRv4uX.js +0 -1
  312. package/dist/gateway/static/root/assets/skill-api-B_W1K3sv.js +0 -1
  313. package/dist/gateway/static/root/assets/skills-page-DtBloYeU.js +0 -2
  314. package/dist/gateway/static/root/assets/task-detail-page-Drrv-Hp0.js +0 -2
  315. package/dist/gateway/static/root/assets/task-result-evidence-D1Kyskm_.js +0 -1
  316. package/dist/gateway/static/root/assets/tracing-settings-page-B12u5D9A.js +0 -1
  317. package/dist/gateway/static/root/assets/tunnel-api-DGO56LQU.js +0 -1
  318. package/dist/gateway/static/root/assets/usage-page-Ud2U9UG1.js +0 -1
  319. package/dist/gateway/static/root/assets/use-composer-attachments-BCbMj-MN.js +0 -2
  320. package/dist/gateway/static/root/assets/use-file-preview-expanded-DSpCRXUW.js +0 -2
  321. package/dist/gateway/static/root/assets/user-model-page-p5iPfnwl.js +0 -2
  322. package/dist/gateway/static/root/assets/voice-transcribe-api-TInEfIYo.js +0 -1
  323. package/dist/gateway/static/root/assets/work-discovery-page-p-8ciZ0i.js +0 -1
  324. package/dist/gateway/static/root/assets/workspace-editor-agent-store-B94Q2nN8.js +0 -1
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as a,l as o,n as s,o as c}from"./locale-store-5Hf8J8-_.js";import{t as l}from"./messages-uXxg5p54.js";import{i as u}from"./vendor-swr-CdRzEUwF.js";import{t as d}from"./button-CnRSIP6m.js";import{t as f}from"./skeleton-BI5TyibZ.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=u(i,a,s),{mutate:l}=c,d,f;return t[7]!==l||t[8]!==e?(d=()=>{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]=d,t[10]=f):(d=t[9],f=t[10]),(0,p.useEffect)(d,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,u]=(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)(f,{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=>u(e.target.value),maxLength:6e3,disabled:m}),(0,b.jsxs)(`div`,{className:`flex gap-2`,children:[(0,b.jsx)(d,{onClick:()=>void S(),disabled:m||!l.trim(),children:n.save}),(0,b.jsx)(d,{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:()=>{u(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};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as a}from"./locale-store-5Hf8J8-_.js";import{t as ee}from"./messages-uXxg5p54.js";import{t as o}from"./archive-Dz0hferG.js";import{t as s}from"./arrow-right-DSSvoX71.js";import{t as c}from"./working-directory-picker-modal-Ta73QrNw.js";import{n as l,r as u}from"./popover-select-DD8fmrxH.js";import{t as te}from"./folder-kanban-CpLlFI1o.js";import{t as d}from"./folder-open-CyzJ19I9.js";import{t as f}from"./loader-circle-CifKLtgG.js";import{n as p,t as m}from"./pin-off-BMRv-Kxr.js";import{t as h}from"./plus-Q2yW6OE7.js";import{t as ne}from"./rotate-ccw-JM1TBLpp.js";import{t as g}from"./search-DA7gz22f.js";import{t as _}from"./x-B_N4OPjy.js";import{t as v}from"./cn-0WouolD0.js";import{t as y}from"./button-CnRSIP6m.js";import{t as b}from"./skeleton-BI5TyibZ.js";import{a as x,i as S,n as C,o as w,r as T,s as E,t as D}from"./dist-DfWfZ9iu.js";import{_ as O,d as k,f as A,m as j,n as M,t as N}from"./api-Uk05lF9i.js";import{t as P}from"./page-header-store-reh1es-3.js";import{n as re}from"./project-understanding-D3w8cZEm.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)(b,{className:`h-40 rounded-xl`},t)}function se(e){let t=(0,I.c)(59),{project:n,busy:r,onTogglePin:c,onToggleArchive:l}=e,u=a(V),d,f,h,g,_,v,b,x;if(t[0]!==u||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(u).projectsPage;d=e.management,b=`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]})]}),c;t[20]===o?c=t[21]:(c=(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[r,o]}),t[20]=o,t[21]=c);let l;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,R.jsx)(s,{className:`mt-2 size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5`,"aria-hidden":!0}),t[22]=l):l=t[22];let p;t[23]===c?p=t[24]:(p=(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[c,l]}),t[23]=c,t[24]=p),x=(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:[p,(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})]}),v=`mt-3 flex shrink-0 items-end justify-between gap-3 border-t border-edge-subtle pt-3`,g=`min-w-0 text-xs text-fg-muted`,_=(0,R.jsx)(`p`,{className:`hidden truncate sm:block`,children:n.workspaceRoot||e.agentDefault}),f=`mt-1`,h=z(n.lastActiveAt??n.updatedAt,e.never),t[0]=u,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]=d,t[10]=f,t[11]=h,t[12]=g,t[13]=_,t[14]=v,t[15]=b,t[16]=x}else d=t[9],f=t[10],h=t[11],g=t[12],_=t[13],v=t[14],b=t[15],x=t[16];let S;t[25]!==f||t[26]!==h?(S=(0,R.jsx)(`p`,{className:f,children:h}),t[25]=f,t[26]=h,t[27]=S):S=t[27];let C;t[28]!==g||t[29]!==_||t[30]!==S?(C=(0,R.jsxs)(`div`,{className:g,children:[_,S]}),t[28]=g,t[29]=_,t[30]=S,t[31]=C):C=t[31];let w=n.pinnedAt?d.unpin:d.pin,T=n.pinnedAt?d.unpin:d.pin,E;t[32]===n.pinnedAt?E=t[33]:(E=n.pinnedAt?(0,R.jsx)(m,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(p,{className:`size-4`,"aria-hidden":!0}),t[32]=n.pinnedAt,t[33]=E);let D;t[34]!==r||t[35]!==c||t[36]!==w||t[37]!==T||t[38]!==E?(D=(0,R.jsx)(y,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:c,"aria-label":w,title:T,children:E}),t[34]=r,t[35]=c,t[36]=w,t[37]=T,t[38]=E,t[39]=D):D=t[39];let O=n.status===`archived`?d.restore:d.archive,k=n.status===`archived`?d.restore:d.archive,A;t[40]===n.status?A=t[41]:(A=n.status===`archived`?(0,R.jsx)(ne,{className:`size-4`,"aria-hidden":!0}):(0,R.jsx)(o,{className:`size-4`,"aria-hidden":!0}),t[40]=n.status,t[41]=A);let j;t[42]!==r||t[43]!==l||t[44]!==O||t[45]!==k||t[46]!==A?(j=(0,R.jsx)(y,{type:`button`,variant:`ghost`,className:`size-8 p-0`,disabled:r,onClick:l,"aria-label":O,title:k,children:A}),t[42]=r,t[43]=l,t[44]=O,t[45]=k,t[46]=A,t[47]=j):j=t[47];let M;t[48]!==D||t[49]!==j?(M=(0,R.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[D,j]}),t[48]=D,t[49]=j,t[50]=M):M=t[50];let N;t[51]!==M||t[52]!==v||t[53]!==C?(N=(0,R.jsxs)(`div`,{className:v,children:[C,M]}),t[51]=M,t[52]=v,t[53]=C,t[54]=N):N=t[54];let P;return t[55]!==N||t[56]!==b||t[57]!==x?(P=(0,R.jsxs)(`article`,{className:b,children:[x,N]}),t[55]=N,t[56]=b,t[57]=x,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,o=P(e=>e.setPageHeader),s=P(e=>e.clearPageHeader),[p,m]=(0,L.useState)([]),[ne,b]=(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),[me,he]=(0,L.useState)(!1),[q,ge]=(0,L.useState)(``),[J,_e]=(0,L.useState)(``),[Y,ve]=(0,L.useState)(``),X=ie({initialPath:Y,onPicked:ve}),Z=(0,L.useRef)(0),Q=(0,L.useCallback)(async(e=!1)=>{let t=++Z.current;e||(b(!0),I(null));try{let e=await k({limit:100,sortBy:`updatedAt`,sortOrder:`desc`});t===Z.current&&m(ae(e.items))}catch(n){!e&&t===Z.current&&I(n instanceof Error?n.message:String(n))}finally{t===Z.current&&b(!1)}},[]);(0,L.useEffect)(()=>(Q(),()=>{Z.current++}),[Q]),(0,L.useEffect)(()=>{let e=()=>{Q(!0)};return window.addEventListener(`project-resource-changed`,e),()=>{window.removeEventListener(`project-resource-changed`,e)}},[Q]);let $=(0,L.useMemo)(()=>{let e=z.trim().toLocaleLowerCase();return p.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,p,z]),ye=(0,L.useMemo)(()=>(0,R.jsxs)(y,{type:`button`,variant:`primary`,className:`h-9 rounded-lg`,onClick:()=>W(!0),children:[(0,R.jsx)(h,{className:`size-4`,"aria-hidden":!0}),n.create]}),[n.create]);(0,L.useLayoutEffect)(()=>(o({startExtra:null,main:(0,R.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r.title}),end:ye}),()=>s()),[s,ye,r.title,o]);let be=(0,L.useCallback)(async e=>{e.preventDefault();let t=q.trim(),n=Y.trim();if(!(!t||K)){pe(!0),G(null);try{let e=await M({autoUnderstand:!!Y.trim()&&me,name:t,...J.trim()?{description:J.trim()}:{},...n?{workspaceRoot:n}:{}});m(t=>[e,...t.filter(t=>t.id!==e.id)]),ge(``),_e(``),ve(``),he(!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,J,q,Y,me]),xe=(0,L.useCallback)(async(e,t)=>{ue(e.id),I(null);try{let n;n=t===`pin`?e.pinnedAt?await O(e.id,e.version):await A(e.id,e.version):e.status===`archived`?await j(e.id,e.version):await N(e.id,e.version),m(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($.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)(D,{open:de,onOpenChange:e=>{W(e),e||G(null)},children:(0,R.jsxs)(w,{children:[(0,R.jsx)(x,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,R.jsxs)(T,{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)(E,{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:q,onChange:e=>ge(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:J,onChange:e=>_e(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:X.pick,disabled:K||X.picking,children:[X.picking?(0,R.jsx)(f,{className:`size-5 shrink-0 animate-spin text-accent`,"aria-hidden":!0}):(0,R.jsx)(d,{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:Y?i.chooseFolder:i.selectWorkingDirectory}),(0,R.jsx)(`span`,{className:v(`mt-0.5 block truncate font-mono text-xs font-normal`,Y?`text-fg-muted`:`text-fg-subtle`),title:Y||void 0,children:Y||n.workspaceSelectionPlaceholder})]})]}),(0,R.jsx)(`p`,{className:`text-xs font-normal text-fg-muted`,children:n.workspaceSelectionHint})]}),(0,R.jsx)(re,{checked:me,onChange:he,disabled:K||!Y.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)(y,{type:`button`,variant:`ghost`,children:n.cancel})}),(0,R.jsx)(y,{type:`submit`,variant:`primary`,disabled:K||!q.trim(),children:K?n.home.creating:n.create})]})]})]})]})}),X.hasNativePicker?null:(0,R.jsx)(c,{open:X.modalOpen,onOpenChange:X.setModalOpen,initialAbsolutePath:Y||void 0,onConfirm:X.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:v(`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)(g,{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)(_,{className:`size-3.5`,"aria-hidden":!0})})]}):(0,R.jsx)(y,{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)(g,{className:`size-4`,"aria-hidden":!0})}),(0,R.jsx)(l,{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)(u,{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)(y,{type:`button`,variant:`ghost`,className:`h-8 px-2`,onClick:()=>void Q(),children:n.home.retry})]}):null,ne?(0,R.jsx)(oe,{}):$.length?(0,R.jsx)(`section`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,children:$.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:p.length===0?e===`zh`?`创建第一个项目`:`Create your first project`:r.emptyTitle}),(0,R.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:p.length===0?e===`zh`?`把相关对话、任务和资料放在一起。`:`Keep related conversations, tasks and materials together.`:r.emptyHint}),(0,R.jsx)(y,{className:`mt-4`,onClick:()=>{p.length===0?W(!0):(B(``),ce(`all`))},children:p.length===0?n.create:e===`zh`?`清除筛选`:`Clear filters`})]})]})}export{H as ProjectsPage};
@@ -1 +1 @@
1
- import{i as e,o as t}from"./locale-store-lIXD1FMw.js";import"./registry-api-n8TwtJ_j.js";import{n}from"./is-masked-secret-DOkL5b_X.js";import{i as r}from"./models-hub-cache-za2fWJLg.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
+ import{i as e,o as t}from"./locale-store-5Hf8J8-_.js";import"./registry-api-B1Mh3bNo.js";import{n}from"./is-masked-secret-DOkL5b_X.js";import{i as r}from"./models-hub-cache-DhZng2nF.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-BKjf9gWe.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-YvlVw17j.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,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-lIXD1FMw.js";import{t as n}from"./gateway-startup-retry-CtUB3g6N.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};
2
+ import{t as e}from"./preload-helper-Czpn1I53.js";import{i as t}from"./locale-store-5Hf8J8-_.js";import{t as n}from"./gateway-startup-retry-N3k-C7c2.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{t as s}from"./arrow-right-DSSvoX71.js";import{t as c}from"./check-DUBLcKHA.js";import{t as l}from"./chevron-down-ccbiQQz_.js";import{t as u}from"./chevron-right-BweFrslA.js";import{t as d}from"./circle-BoO4YvTx.js";import{t as f}from"./copy-Dv6d4Dvw.js";import{t as p}from"./external-link-DjqjBmc3.js";import{t as m}from"./secret-input-BQvFXqzz.js";import{t as h}from"./globe-DSSGFWFn.js";import{t as g}from"./key-round-DWbpyU2U.js";import{t as _}from"./loader-circle-CifKLtgG.js";import{t as v}from"./network-BUQLY1BV.js";import{t as y}from"./power-ZI-pBczI.js";import{t as b}from"./server-BlHCBjiE.js";import{t as x}from"./shield-B1sI_cxl.js";import{t as S}from"./smartphone-DSSsQFqA.js";import{t as C}from"./terminal-oKqqZdiG.js";import{t as w}from"./triangle-alert-2JXFNNKU.js";import{t as T}from"./messages-DRR9N3HC.js";import{t as E}from"./cn-0WouolD0.js";import{l as D,n as O}from"./locale-store-lIXD1FMw.js";import{i as k}from"./vendor-swr-CdRzEUwF.js";import{t as A}from"./button-CnRSIP6m.js";import{a as j,i as M,o as N,r as P,s as F,t as I}from"./dist-DfWfZ9iu.js";import{i as L,o as R}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{t as z}from"./copy-to-clipboard-HOJ79TWv.js";import{n as B,r as V}from"./gateway-config-swr-BAmUhiP1.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-XGclfBqe.js";import{t as ee}from"./copy-text-row-CYIv7RfP.js";import{n as G}from"./settings-mode-store-CBsJ-Qg2.js";import{r as te}from"./providers-api-CzVkFKFg.js";import{a as ne,n as re,r as ie}from"./oauth-api-C3X9FLYw.js";import{t as K}from"./settings-advanced-section-BqoVSko2.js";import{n as ae,r as oe,t as se}from"./oauth-authorization-window-o6URRos4.js";import{n as q,t as J}from"./settings-page-header-Bv-kQFTm.js";import{t as ce}from"./settings-page-layout-DHP6MrrL.js";import{n as Y,r as le,t as ue}from"./settings-form-section-num14vSv.js";import{_ as X,a as de,b as fe,c as pe,h as me,i as he,n as ge,o as _e,r as ve,s as ye,t as be,v as xe,y as Se}from"./tunnel-api-DGO56LQU.js";import{t as Ce}from"./settings-advanced-gate-B5lQeVNi.js";var Z=e(t(),1),Q=n(),$=r();function we(e){switch(e){case`active`:return`text-emerald-700 dark:text-emerald-400`;case`connecting`:return`text-amber-700 dark:text-amber-400`;default:return`text-fg-muted`}}function Te(e){let t=(0,Q.c)(11),{label:n,kind:r}=e,i;t[0]===r?i=t[1]:(i=E(`inline-flex items-center gap-1.5 text-xs font-medium`,we(r)),t[0]=r,t[1]=i);let a=r===`active`&&`bg-emerald-500`,o=r===`connecting`&&`bg-amber-500`,s;t[2]!==a||t[3]!==o?(s=E(`size-1.5 rounded-full bg-fg-subtle/50`,a,o),t[2]=a,t[3]=o,t[4]=s):s=t[4];let c;t[5]===s?c=t[6]:(c=(0,$.jsx)(`span`,{className:s,"aria-hidden":!0}),t[5]=s,t[6]=c);let l;return t[7]!==n||t[8]!==i||t[9]!==c?(l=(0,$.jsxs)(`span`,{className:i,children:[c,n]}),t[7]=n,t[8]=i,t[9]=c,t[10]=l):l=t[10],l}function Ee(e){let t=(0,Q.c)(31),{onOpenTab:n}=e,r=O(Oe),i;t[0]===r?i=t[1]:(i=T(r),t[0]=r,t[1]=i);let a=i.remoteAccess.guide,o=!!D(De),s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s={refreshInterval:3e4},t[2]=s):s=t[2];let{data:c}=k(o?`exposure-status`:null,Se,s),l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l={refreshInterval:15e3},t[3]=l):l=t[3];let{data:u}=k(o?`tunnel-status`:null,ge,l),d=V(o);if(!o)return null;let f=c?.tailscale.active===!0,p=u?.state,m=u?.enabled&&p===`connected`,g=u?.enabled&&(p===`connecting`||p===`reconnecting`||!!u?.startProgress||!!u?.frpcDownload),_=d.data?.payload?.config,y=!!(_&&typeof _==`object`&&!Array.isArray(_)&&_.gateway?.publicUrl),S=f?`active`:`off`,w=f?a.statusActive:a.statusOff,A;t[4]!==a.tailscaleCardTitle||t[5]!==S||t[6]!==w?(A={tab:`tailscale`,icon:h,title:a.tailscaleCardTitle,kind:S,statusLabel:w},t[4]=a.tailscaleCardTitle,t[5]=S,t[6]=w,t[7]=A):A=t[7];let j=m?`active`:g?`connecting`:`off`,M=m?a.statusActive:g?a.statusConnecting:a.statusOff,N;t[8]!==a.publicCardTitle||t[9]!==j||t[10]!==M?(N={tab:`public`,icon:v,title:a.publicCardTitle,kind:j,statusLabel:M},t[8]=a.publicCardTitle,t[9]=j,t[10]=M,t[11]=N):N=t[11];let P=y?`active`:`off`,F=y?a.statusActive:a.statusOff,I;t[12]!==a.reverseProxyCardTitle||t[13]!==P||t[14]!==F?(I={tab:`reverse-proxy`,icon:x,title:a.reverseProxyCardTitle,kind:P,statusLabel:F},t[12]=a.reverseProxyCardTitle,t[13]=P,t[14]=F,t[15]=I):I=t[15];let L;t[16]!==a.sshCardStatus||t[17]!==a.sshCardTitle?(L={tab:`ssh`,icon:C,title:a.sshCardTitle,kind:`off`,statusLabel:a.sshCardStatus},t[16]=a.sshCardStatus,t[17]=a.sshCardTitle,t[18]=L):L=t[18];let R;t[19]!==a.lanCardStatus||t[20]!==a.lanCardTitle?(R={tab:`lan`,icon:b,title:a.lanCardTitle,kind:`off`,statusLabel:a.lanCardStatus},t[19]=a.lanCardStatus,t[20]=a.lanCardTitle,t[21]=R):R=t[21];let z;t[22]!==I||t[23]!==L||t[24]!==R||t[25]!==A||t[26]!==N?(z=[A,N,I,L,R],t[22]=I,t[23]=L,t[24]=R,t[25]=A,t[26]=N,t[27]=z):z=t[27];let B=z,H;return t[28]!==B||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:B.map(e=>{let t=e.icon;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(e.tab),className:E(`flex items-start gap-3 rounded-lg bg-surface-base/45 px-2 py-3 text-left transition-colors`,`hover:bg-surface-hover/30`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center text-fg-muted`,children:(0,$.jsx)(t,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(Te,{label:e.statusLabel,kind:e.kind})]})]},`${e.tab}-${e.title}`)})}),t[28]=B,t[29]=n,t[30]=H):H=t[30],H}function De(e){return e.conversationId}function Oe(e){return e.language}function ke(e){let t=(0,Q.c)(21),{title:n,description:r,recommended:i,icon:a,onOpen:o,recommendedLabel:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=E(`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 d;t[3]===n?d=t[4]:(d=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n}),t[3]=n,t[4]=d);let f;t[5]!==i||t[6]!==s?(f=i&&s?(0,$.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:s}):null,t[5]=i,t[6]=s,t[7]=f):f=t[7];let p;t[8]!==d||t[9]!==f?(p=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[d,f]}),t[8]=d,t[9]=f,t[10]=p):p=t[10];let m;t[11]===r?m=t[12]:(m=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:r}),t[11]=r,t[12]=m);let h;t[13]!==p||t[14]!==m?(h=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[p,m]}),t[13]=p,t[14]=m,t[15]=h):h=t[15];let g;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(u,{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]=g):g=t[16];let _;return t[17]!==o||t[18]!==l||t[19]!==h?(_=(0,$.jsxs)(`button`,{type:`button`,onClick:o,className:c,children:[l,h,g]}),t[17]=o,t[18]=l,t[19]=h,t[20]=_):_=t[20],_}function Ae(e){let t=(0,Q.c)(78),{onOpenTab:n}=e,r=O(Ne),i;t[0]===r?i=t[1]:(i=T(r),t[0]=r,t[1]=i);let a=i.remoteAccess,o=a.guide,s=!!D(Me),c;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c={refreshInterval:3e4},t[2]=c):c=t[2];let{data:l}=k(s?`exposure-status`:null,Se,c),u;t[3]===l?.conflicts?u=t[4]:(u=l?.conflicts??[],t[3]=l?.conflicts,t[4]=u);let d=u;if(!s){let e;return t[5]===o.needToken?e=t[6]:(e=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:o.needToken}),t[5]=o.needToken,t[6]=e),e}let f;t[7]===n?f=t[8]:(f=(0,$.jsx)(Ee,{onOpenTab:n}),t[7]=n,t[8]=f);let p;t[9]!==d||t[10]!==o.conflictsHint||t[11]!==o.conflictsTitle?(p=d.length>0?(0,$.jsxs)(`div`,{className:`rounded-xl bg-amber-500/10 px-4 py-3 text-sm text-fg-muted`,children:[(0,$.jsx)(`p`,{className:`font-medium text-fg`,children:o.conflictsTitle}),(0,$.jsx)(`p`,{className:`mt-1`,children:o.conflictsHint}),(0,$.jsx)(`ul`,{className:`mt-2 list-inside list-disc text-xs`,children:d.map(je)})]}):null,t[9]=d,t[10]=o.conflictsHint,t[11]=o.conflictsTitle,t[12]=p):p=t[12];let m;t[13]===o.pickMethod?m=t[14]:(m=(0,$.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:o.pickMethod}),t[13]=o.pickMethod,t[14]=m);let g;t[15]===n?g=t[16]:(g=()=>n(`tailscale`),t[15]=n,t[16]=g);let _;t[17]!==o.recommended||t[18]!==o.tailscaleCardDesc||t[19]!==o.tailscaleCardTitle||t[20]!==g?(_=(0,$.jsx)(ke,{icon:h,title:o.tailscaleCardTitle,description:o.tailscaleCardDesc,recommended:!0,recommendedLabel:o.recommended,onOpen:g}),t[17]=o.recommended,t[18]=o.tailscaleCardDesc,t[19]=o.tailscaleCardTitle,t[20]=g,t[21]=_):_=t[21];let y;t[22]===n?y=t[23]:(y=()=>n(`public`),t[22]=n,t[23]=y);let S;t[24]!==o.publicCardDesc||t[25]!==o.publicCardTitle||t[26]!==y?(S=(0,$.jsx)(ke,{icon:v,title:o.publicCardTitle,description:o.publicCardDesc,onOpen:y}),t[24]=o.publicCardDesc,t[25]=o.publicCardTitle,t[26]=y,t[27]=S):S=t[27];let w;t[28]===n?w=t[29]:(w=()=>n(`reverse-proxy`),t[28]=n,t[29]=w);let E;t[30]!==o.reverseProxyCardDesc||t[31]!==o.reverseProxyCardTitle||t[32]!==w?(E=(0,$.jsx)(ke,{icon:x,title:o.reverseProxyCardTitle,description:o.reverseProxyCardDesc,onOpen:w}),t[30]=o.reverseProxyCardDesc,t[31]=o.reverseProxyCardTitle,t[32]=w,t[33]=E):E=t[33];let A;t[34]===n?A=t[35]:(A=()=>n(`ssh`),t[34]=n,t[35]=A);let j;t[36]!==o.sshCardDesc||t[37]!==o.sshCardTitle||t[38]!==A?(j=(0,$.jsx)(ke,{icon:C,title:o.sshCardTitle,description:o.sshCardDesc,onOpen:A}),t[36]=o.sshCardDesc,t[37]=o.sshCardTitle,t[38]=A,t[39]=j):j=t[39];let M;t[40]!==a.advanced.proxyBody||t[41]!==a.advanced.proxyTitle||t[42]!==E||t[43]!==j?(M=(0,$.jsxs)(K,{title:a.advanced.proxyTitle,summary:a.advanced.proxyBody,children:[E,j]}),t[40]=a.advanced.proxyBody,t[41]=a.advanced.proxyTitle,t[42]=E,t[43]=j,t[44]=M):M=t[44];let N;t[45]===n?N=t[46]:(N=()=>n(`lan`),t[45]=n,t[46]=N);let P;t[47]!==o.lanCardDesc||t[48]!==o.lanCardTitle||t[49]!==N?(P=(0,$.jsx)(ke,{icon:b,title:o.lanCardTitle,description:o.lanCardDesc,onOpen:N}),t[47]=o.lanCardDesc,t[48]=o.lanCardTitle,t[49]=N,t[50]=P):P=t[50];let F;t[51]!==S||t[52]!==M||t[53]!==P||t[54]!==_?(F=(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:[_,S,M,P]}),t[51]=S,t[52]=M,t[53]=P,t[54]=_,t[55]=F):F=t[55];let I;t[56]!==F||t[57]!==m?(I=(0,$.jsxs)(`div`,{children:[m,F]}),t[56]=F,t[57]=m,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)(fe,{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]!==f||t[76]!==p?(H=(0,$.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[f,p,I,L,V]}),t[72]=I,t[73]=L,t[74]=V,t[75]=f,t[76]=p,t[77]=H):H=t[77],H}function je(e){return(0,$.jsx)(`li`,{children:e.message},e.code)}function Me(e){return e.conversationId}function Ne(e){return e.language}function Pe(){let e=(0,Q.c)(16),t=O(Fe),n;e[0]===t?n=e[1]:(n=T(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:b,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)(p,{className:`size-3.5`,"aria-hidden":!0}),e[7]=s):s=e[7];let c;e[8]===r.link?c=e[9]:(c=(0,$.jsxs)(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]=c);let l;e[10]!==o||e[11]!==c?(l=(0,$.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[o,c]}),e[10]=o,e[11]=c,e[12]=l):l=e[12];let u;return e[13]!==i||e[14]!==l?(u=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,$.jsxs)(ue,{children:[i,l]})}),e[13]=i,e[14]=l,e[15]=u):u=e[15],u}function Fe(e){return e.language}function Ie(e){let t=(0,Q.c)(30),{embedded:n}=e,r=n!==void 0&&n,i=O(Le),a;t[0]===i?a=t[1]:(a=T(i),t[0]=i,t[1]=a);let o=a.remoteAccess.ssh,[s,c]=(0,Z.useState)(!1),l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=async()=>{await z(`xopc gateway ssh-tunnel --target user@your-host --local-port 18790 --remote-port 18790`)&&(c(!0),setTimeout(()=>c(!1),2e3))},t[2]=l):l=t[2];let u=l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=(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]=d):d=t[3];let p,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=()=>void u(),m=(0,$.jsx)(f,{className:`mr-1 size-4`}),t[4]=p,t[5]=m):(p=t[4],m=t[5]);let h=s?o.copied:o.copy,g;t[6]===h?g=t[7]:(g=(0,$.jsx)(`div`,{className:`mt-2`,children:(0,$.jsxs)(A,{type:`button`,variant:`ghost`,onClick:p,children:[m,h]})}),t[6]=h,t[7]=g);let _;t[8]!==r||t[9]!==o.hint?(_=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]=_):_=t[10];let v;t[11]!==g||t[12]!==_?(v=(0,$.jsxs)($.Fragment,{children:[d,g,_]}),t[11]=g,t[12]=_,t[13]=v):v=t[13];let y=v;if(r){let e;t[14]!==o.subtitle||t[15]!==o.title?(e=(0,$.jsx)(Y,{icon:C,title:o.title,subtitle:o.subtitle}),t[14]=o.subtitle,t[15]=o.title,t[16]=e):e=t[16];let n;t[17]===y?n=t[18]:(n=(0,$.jsx)(`div`,{className:`mt-4 space-y-2`,children:y}),t[17]=y,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 b;t[22]!==o.subtitle||t[23]!==o.title?(b=(0,$.jsx)(Y,{icon:C,title:o.title,subtitle:o.subtitle}),t[22]=o.subtitle,t[23]=o.title,t[24]=b):b=t[24];let x;t[25]===y?x=t[26]:(x=(0,$.jsx)(`div`,{className:`mt-4`,children:y}),t[25]=y,t[26]=x);let S;return t[27]!==b||t[28]!==x?(S=(0,$.jsxs)(ue,{children:[b,x]}),t[27]=b,t[28]=x,t[29]=S):S=t[29],S}function Le(e){return e.language}function Re(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(Ie,{embedded:!0}),e[0]=t):t=e[0],t}var ze=[`guide`,`tailscale`,`public`,`reverse-proxy`,`ssh`,`lan`];function Be(e){return e&&ze.includes(e)?e:`guide`}function Ve(e){let t=(0,Q.c)(32),{showLabel:n,hideLabel:r,icon:i,hint:a,children:o,className:s,defaultOpen:c,advancedOnly:u}=e,d=u!==void 0&&u,[f,p]=(0,Z.useState)(c??!1),m;t[0]===s?m=t[1]:(m=E(`rounded-xl bg-surface-hover/20`,s),t[0]=s,t[1]=m);let h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>p(He),t[2]=h):h=t[2];let g=f&&`rotate-180`,_;t[3]===g?_=t[4]:(_=E(`size-4 shrink-0 text-fg-muted transition-transform duration-200 motion-reduce:transition-none`,g),t[3]=g,t[4]=_);let v;t[5]===_?v=t[6]:(v=(0,$.jsx)(l,{className:_,"aria-hidden":!0}),t[5]=_,t[6]=v);let y;t[7]===i?y=t[8]:(y=i?(0,$.jsx)(i,{className:`size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}):null,t[7]=i,t[8]=y);let b=f?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]!==f||t[12]!==v||t[13]!==y||t[14]!==x?(S=(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":f,onClick:h,className:`flex w-full items-center gap-2 rounded-2xl px-4 py-3.5 text-left text-sm font-medium text-fg transition-colors hover:text-fg`,children:[v,y,x]}),t[11]=f,t[12]=v,t[13]=y,t[14]=x,t[15]=S):S=t[15];let C=f?`grid-rows-[1fr] opacity-100`:`grid-rows-[0fr] opacity-0`,w;t[16]===C?w=t[17]:(w=E(`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 D;t[20]!==o||t[21]!==T?(D=(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]=D):D=t[22];let O;t[23]!==w||t[24]!==D?(O=(0,$.jsx)(`div`,{className:w,children:D}),t[23]=w,t[24]=D,t[25]=O):O=t[25];let k;t[26]!==S||t[27]!==O||t[28]!==m?(k=(0,$.jsxs)(`section`,{className:m,children:[S,O]}),t[26]=S,t[27]=O,t[28]=m,t[29]=k):k=t[29];let A=k;if(d){let e;return t[30]===A?e=t[31]:(e=(0,$.jsx)(Ce,{children:A}),t[30]=A,t[31]=e),e}return A}function He(e){return!e}function Ue(e){let t=(0,Q.c)(40),{open:n,title:r,intro:i,bullets:a,checkboxLabel:o,confirmLabel:s,cancelLabel:c,onConfirm:l,onCancel:u}=e,[d,f]=(0,Z.useState)(!1),p;t[0]===u?p=t[1]:(p=e=>{e||(f(!1),u())},t[0]=u,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(j,{className:E(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,R)}),t[2]=m):m=t[2];let h;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=E(`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`,L),t[3]=h):h=t[3];let g;t[4]===r?g=t[5]:(g=(0,$.jsx)(F,{className:`text-base font-semibold text-fg`,children:r}),t[4]=r,t[5]=g);let _;t[6]===i?_=t[7]:(_=(0,$.jsx)(M,{className:`mt-2 text-sm text-fg-muted`,children:i}),t[6]=i,t[7]=_);let v;t[8]===a?v=t[9]:(v=a.map(We),t[8]=a,t[9]=v);let y;t[10]===v?y=t[11]:(y=(0,$.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5 text-sm text-fg-muted`,children:v}),t[10]=v,t[11]=y);let b;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>f(e.target.checked),t[12]=b):b=t[12];let x;t[13]===d?x=t[14]:(x=(0,$.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 size-4 shrink-0 rounded border-edge accent-accent`,checked:d,onChange:b}),t[13]=d,t[14]=x);let S;t[15]===o?S=t[16]:(S=(0,$.jsx)(`span`,{children:o}),t[15]=o,t[16]=S);let C;t[17]!==S||t[18]!==x?(C=(0,$.jsxs)(`label`,{className:`mt-5 flex cursor-pointer items-start gap-3 text-sm text-fg`,children:[x,S]}),t[17]=S,t[18]=x,t[19]=C):C=t[19];let w;t[20]!==c||t[21]!==u?(w=(0,$.jsx)(A,{type:`button`,variant:`secondary`,onClick:u,children:c}),t[20]=c,t[21]=u,t[22]=w):w=t[22];let T=!d,D;t[23]!==s||t[24]!==l||t[25]!==T?(D=(0,$.jsx)(A,{type:`button`,disabled:T,onClick:l,children:s}),t[23]=s,t[24]=l,t[25]=T,t[26]=D):D=t[26];let O;t[27]!==w||t[28]!==D?(O=(0,$.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[w,D]}),t[27]=w,t[28]=D,t[29]=O):O=t[29];let k;t[30]!==C||t[31]!==O||t[32]!==g||t[33]!==_||t[34]!==y?(k=(0,$.jsxs)(N,{children:[m,(0,$.jsxs)(P,{className:h,onOpenAutoFocus:Ge,children:[g,_,y,C,O]})]}),t[30]=C,t[31]=O,t[32]=g,t[33]=_,t[34]=y,t[35]=k):k=t[35];let z;return t[36]!==n||t[37]!==p||t[38]!==k?(z=(0,$.jsx)(I,{open:n,onOpenChange:p,children:k}),t[36]=n,t[37]=p,t[38]=k,t[39]=z):z=t[39],z}function We(e){return(0,$.jsx)(`li`,{children:e},e)}function Ge(e){return e.preventDefault()}function Ke(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}var qe=[`preparing_frpc`,`registering`,`starting_frpc`];function Je(e){return e?e===`reconnecting_frpc`?qe.indexOf(`starting_frpc`):qe.indexOf(e):-1}function Ye(e,t){if(t.state===`connected`)return`done`;let n=t.startProgress?.phase,r=qe.indexOf(e),i=Je(n);return i<0?t.state===`connecting`||t.state===`reconnecting`?`active`:`pending`:r<i?`done`:r===i?`active`:`pending`}function Xe(e,t,n){let r=n.startProgress;return Ye(t,n)===`active`?t===`preparing_frpc`&&n.frpcDownload?n.frpcDownload.phase===`extracting`?e.frpcExtracting:n.frpcDownload.percent==null?e.frpcDownloading:e.frpcDownloadingPercent.replace(`{{percent}}`,String(n.frpcDownload.percent)):t===`registering`&&r?.publicUrl?e.stepRegisterDetail:t===`starting_frpc`?r?.phase===`reconnecting_frpc`?e.stepReconnectDetail:e.stepFrpcDetail:null:null}function Ze(e,t){switch(t){case`preparing_frpc`:return e.stepPrepareFrpc;case`registering`:return e.stepRegister;case`starting_frpc`:return e.stepFrpcLogin}}function Qe(e){if(!e)return null;let t=Math.max(0,Math.floor((Date.now()-new Date(e).getTime())/1e3));return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function $e(e){let t=(0,Q.c)(31),{status:n,t:r}=e,[,i]=(0,Z.useState)(0),a;t[0]!==i||t[1]!==n.state?(a=()=>{if(n.state!==`connecting`&&n.state!==`reconnecting`)return;let e=window.setInterval(()=>i(et),1e3);return()=>window.clearInterval(e)},t[0]=i,t[1]=n.state,t[2]=a):a=t[2];let o=n.startProgress?.startedAt,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 l,u,f,p,m;if(t[6]!==n||t[7]!==r){let e=Qe(n.startProgress?.startedAt);l=!!n.publicUrl&&n.state!==`connected`&&n.startProgress?.phase!==`registering`,u=`mt-3 space-y-3 rounded-lg bg-surface-panel/80 p-3 shadow-surface`;let i;t[13]===r.startProgressTitle?i=t[14]:(i=(0,$.jsx)(`p`,{className:`text-xs font-medium text-fg`,children:r.startProgressTitle}),t[13]=r.startProgressTitle,t[14]=i);let a;t[15]===r.startProgressHint?a=t[16]:(a=(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:r.startProgressHint}),t[15]=r.startProgressHint,t[16]=a),t[17]!==i||t[18]!==a?(f=(0,$.jsxs)(`div`,{children:[i,a]}),t[17]=i,t[18]=a,t[19]=f):f=t[19];let o=qe.map(e=>{let t=Ye(e,n),i=Xe(r,e,n);return(0,$.jsxs)(`li`,{className:`flex gap-2 text-xs`,children:[(0,$.jsx)(`span`,{className:`mt-0.5 shrink-0 text-fg-subtle`,"aria-hidden":!0,children:t===`done`?(0,$.jsx)(c,{className:`size-3.5 text-emerald-600 dark:text-emerald-400`}):t===`active`?(0,$.jsx)(_,{className:`size-3.5 animate-spin text-accent`}):(0,$.jsx)(d,{className:`size-3.5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:E(`font-medium`,t===`active`?`text-fg`:t===`done`?`text-fg-muted`:`text-fg-subtle`),children:Ze(r,e)}),i?(0,$.jsx)(`div`,{className:`mt-0.5 text-fg-muted`,children:i}):null,e===`preparing_frpc`&&t===`active`&&n.frpcDownload&&n.frpcDownload.phase===`downloading`?(0,$.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,$.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-surface-panel`,children:(0,$.jsx)(`div`,{className:E(`h-full rounded-full bg-accent transition-[width] duration-300`,n.frpcDownload.percent==null&&`w-1/3 animate-pulse`),style:n.frpcDownload.percent==null?void 0:{width:`${n.frpcDownload.percent}%`}})}),n.frpcDownload.bytesReceived!=null&&n.frpcDownload.totalBytes?(0,$.jsxs)(`p`,{className:`text-fg-subtle`,children:[Ke(n.frpcDownload.bytesReceived),` /`,` `,Ke(n.frpcDownload.totalBytes)]}):null]}):null,e===`preparing_frpc`&&t===`active`&&n.frpcDownload?.url?(0,$.jsxs)(`p`,{className:`mt-2 text-fg-subtle`,children:[(0,$.jsxs)(`span`,{className:`font-sans`,children:[r.frpcDownloadingUrlLabel,`: `]}),(0,$.jsx)(`a`,{href:n.frpcDownload.url,target:`_blank`,rel:`noopener noreferrer`,className:`break-all font-mono text-[11px] text-accent hover:underline`,children:n.frpcDownload.url})]}):null]})]},e)});t[20]===o?p=t[21]:(p=(0,$.jsx)(`ol`,{className:`space-y-2`,children:o}),t[20]=o,t[21]=p),m=e&&n.startProgress?(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:r.startProgressElapsed.replace(`{{elapsed}}`,e)}):null,t[6]=n,t[7]=r,t[8]=l,t[9]=u,t[10]=f,t[11]=p,t[12]=m}else l=t[8],u=t[9],f=t[10],p=t[11],m=t[12];let h;t[22]!==l||t[23]!==r.publicUrlPendingNotice?(h=l?(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.publicUrlPendingNotice}):null,t[22]=l,t[23]=r.publicUrlPendingNotice,t[24]=h):h=t[24];let g;return t[25]!==u||t[26]!==f||t[27]!==p||t[28]!==m||t[29]!==h?(g=(0,$.jsxs)(`div`,{className:u,children:[f,p,m,h]}),t[25]=u,t[26]=f,t[27]=p,t[28]=m,t[29]=h,t[30]=g):g=t[30],g}function et(e){return e+1}function tt(e,t){return t.state===`connected`?e.statusConnected:t.state===`error`?e.statusError:t.startProgress?.phase===`reconnecting_frpc`?e.statusReconnecting:t.startProgress?.phase===`starting_frpc`?e.statusStartingFrpc:t.startProgress?.phase===`registering`?e.statusRegistering:t.startProgress?.phase===`preparing_frpc`||t.frpcDownload?e.statusPreparingFrpc:t.state===`connecting`||t.state===`reconnecting`?e.statusConnecting:e.statusOff}function nt(e){return e.state===`connected`?`connected`:e.state===`error`?`error`:e.state===`connecting`||e.state===`reconnecting`||e.startProgress||e.frpcDownload?`progress`:`off`}function rt(e){switch(e){case`connected`:return`bg-emerald-500/15 text-emerald-700 dark:text-emerald-400`;case`progress`:return`bg-amber-500/15 text-amber-700 dark:text-amber-400`;case`error`:return`bg-red-500/15 text-red-700 dark:text-red-400`;default:return`bg-surface-hover text-fg-muted`}}function it(e){if(!e)return`—`;let t=Date.now()-new Date(e).getTime();if(t<0)return`—`;let n=Math.floor(t/6e4);return n<60?`${n}m`:`${Math.floor(n/60)}h ${n%60}m`}function at(e){let t=(0,Q.c)(61),{t:n,status:r,isLoading:i,statusErr:a,starting:o,stopping:s,showConsentExpired:c,copyLabels:l,startDisabled:u,startDisabledReason:d,stepLabel:f,onStart:p,onStop:m}=e,g=u!==void 0&&u,v,b,x,S,C,T,D;t[0]!==r||t[1]!==o?(D=nt(r),v=r.enabled||o,b=o||r.state===`connecting`||r.state===`reconnecting`||!!r.startProgress||!!r.frpcDownload,t[9]===Symbol.for(`react.memo_cache_sentinel`)?(T=E(le(),`space-y-4`),t[9]=T):T=t[9],C=`flex flex-wrap items-start justify-between gap-3`,S=`flex items-center gap-2`,x=E(`inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium`,rt(D)),t[0]=r,t[1]=o,t[2]=v,t[3]=b,t[4]=x,t[5]=S,t[6]=C,t[7]=T,t[8]=D):(v=t[2],b=t[3],x=t[4],S=t[5],C=t[6],T=t[7],D=t[8]);let O=D===`connected`&&`bg-emerald-500`,k=D===`progress`&&`bg-amber-500 animate-pulse`,j=D===`error`&&`bg-red-500`,M=D===`off`&&`bg-fg-subtle`,N;t[10]!==O||t[11]!==k||t[12]!==j||t[13]!==M?(N=E(`size-1.5 rounded-full`,O,k,j,M),t[10]=O,t[11]=k,t[12]=j,t[13]=M,t[14]=N):N=t[14];let P;t[15]===N?P=t[16]:(P=(0,$.jsx)(`span`,{className:N,"aria-hidden":!0}),t[15]=N,t[16]=P);let F;t[17]!==i||t[18]!==r||t[19]!==n?(F=i&&!r.enabled?(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block h-3 w-16 animate-pulse rounded-full bg-surface-hover/70 motion-reduce:animate-none`}):tt(n,r),t[17]=i,t[18]=r,t[19]=n,t[20]=F):F=t[20];let I;t[21]!==P||t[22]!==F||t[23]!==x?(I=(0,$.jsxs)(`span`,{className:x,children:[P,F]}),t[21]=P,t[22]=F,t[23]=x,t[24]=I):I=t[24];let L;t[25]!==r.connectedSince||t[26]!==r.state||t[27]!==n.uptime?(L=r.connectedSince&&r.state===`connected`?(0,$.jsxs)(`span`,{className:`text-xs text-fg-subtle`,children:[n.uptime,` `,it(r.connectedSince)]}):null,t[25]=r.connectedSince,t[26]=r.state,t[27]=n.uptime,t[28]=L):L=t[28];let R;t[29]!==I||t[30]!==L||t[31]!==S?(R=(0,$.jsxs)(`div`,{className:S,children:[I,L]}),t[29]=I,t[30]=L,t[31]=S,t[32]=R):R=t[32];let z;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,$.jsx)(h,{className:`size-4 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),t[33]=z):z=t[33];let B;t[34]!==R||t[35]!==C?(B=(0,$.jsxs)(`div`,{className:C,children:[R,z]}),t[34]=R,t[35]=C,t[36]=B):B=t[36];let V;t[37]===a?V=t[38]:(V=a?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:a instanceof Error?a.message:String(a)}):null,t[37]=a,t[38]=V);let H;t[39]!==c||t[40]!==n.consentExpiredBanner?(H=c?(0,$.jsx)(`p`,{className:`rounded-lg bg-amber-500/10 px-3 py-2 text-xs text-fg-muted`,children:n.consentExpiredBanner}):null,t[39]=c,t[40]=n.consentExpiredBanner,t[41]=H):H=t[41];let U;t[42]!==v||t[43]!==l||t[44]!==p||t[45]!==m||t[46]!==b||t[47]!==r||t[48]!==g||t[49]!==d||t[50]!==o||t[51]!==f||t[52]!==s||t[53]!==n?(U=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,b?(0,$.jsx)($e,{status:r,t:n}):null,r.lastError&&r.state===`error`?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:r.lastError}):null,(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:r.enabled?(0,$.jsxs)(A,{type:`button`,variant:`secondary`,disabled:s,onClick:m,children:[s?(0,$.jsx)(_,{className:`size-4 animate-spin`}):null,n.stop]}):(0,$.jsxs)(A,{type:`button`,disabled:o,onClick:p,children:[o?(0,$.jsx)(_,{className:`size-4 animate-spin`}):(0,$.jsx)(y,{className:`size-4`}),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)(w,{className:`mt-0.5 size-4 shrink-0 text-amber-600 dark:text-amber-400`}),(0,$.jsx)(`p`,{children:n.riskBannerBody})]}),g&&d?(0,$.jsx)(`p`,{className:`text-sm text-amber-800 dark:text-amber-200`,children:d}):null,(0,$.jsxs)(A,{type:`button`,disabled:o||g,onClick:p,className:`w-full sm:w-auto`,children:[o?(0,$.jsx)(_,{className:`size-4 animate-spin`}):(0,$.jsx)(y,{className:`size-4`}),n.start]})]}),t[42]=v,t[43]=l,t[44]=p,t[45]=m,t[46]=b,t[47]=r,t[48]=g,t[49]=d,t[50]=o,t[51]=f,t[52]=s,t[53]=n,t[54]=U):U=t[54];let W;return t[55]!==B||t[56]!==V||t[57]!==H||t[58]!==U||t[59]!==T?(W=(0,$.jsxs)(`section`,{className:T,children:[B,V,H,U]}),t[55]=B,t[56]=V,t[57]=H,t[58]=U,t[59]=T,t[60]=W):W=t[60],W}var ot={reconfiguring:!1};function st(e){let t=(0,Q.c)(89),{t:n,brokerSecretReady:r,brokerSecretConfiguredInConfig:i,brokerSecretMaskedValue:a,brokerSecretDraft:o,savingBrokerSecret:s,authorizingBrokerSecret:l,brokerSecretAuthorizationUrl:u,brokerSecretNotice:d,copyFailedLabel:f,onDraftChange:h,onSave:v,onAuthorize:y,onClear:b,sectionRef:x}=e,S=(0,Z.useId)(),C=r,w=!C,[T,D]=(0,Z.useReducer)(U,ot),{reconfiguring:O}=T,k;t[0]!==i||t[1]!==o||t[2]!==O?(k=i&&!O&&!o.trim(),t[0]=i,t[1]=o,t[2]=O,t[3]=k):k=t[3];let j=k,M;t[4]!==n.copied||t[5]!==n.copyKey||t[6]!==n.hideKey||t[7]!==n.showKey?(M={show:n.showKey,hide:n.hideKey,copy:n.copyKey,copied:n.copied},t[4]=n.copied,t[5]=n.copyKey,t[6]=n.hideKey,t[7]=n.showKey,t[8]=M):M=t[8];let N=M,P;t[9]===o?P=t[10]:(P=o.trim().length>0&&!te(o.trim()),t[9]=o,t[10]=P);let F=P,I;t[11]===h?I=t[12]:(I=()=>{D({type:`patch`,patch:{reconfiguring:!1}}),h(``)},t[11]=h,t[12]=I);let L=I,R=w&&`ring-1 ring-amber-500/30`,z;t[13]===R?z=t[14]:(z=E(R),t[13]=R,t[14]=z);let B=C?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:w?`bg-amber-500/10 text-amber-700 dark:text-amber-400`:`bg-surface-hover text-fg-muted`,V;t[15]===B?V=t[16]:(V=E(`flex size-9 shrink-0 items-center justify-center rounded-lg`,B),t[15]=B,t[16]=V);let H;t[17]===C?H=t[18]:(H=C?(0,$.jsx)(c,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}):(0,$.jsx)(g,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[17]=C,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=C?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 ne=C?n.brokerSecretReadyHint:n.brokerSecretHint,re;t[24]===ne?re=t[25]:(re=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:ne}),t[24]=ne,t[25]=re);let ie;t[26]!==w||t[27]!==n.brokerSecretMissingHint?(ie=w?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-amber-800 dark:text-amber-200`,children:n.brokerSecretMissingHint}):null,t[26]=w,t[27]=n.brokerSecretMissingHint,t[28]=ie):ie=t[28];let K;t[29]!==G||t[30]!==re||t[31]!==ie?(K=(0,$.jsxs)(`div`,{children:[G,re,ie]}),t[29]=G,t[30]=re,t[31]=ie,t[32]=K):K=t[32];let ae;t[33]!==l||t[34]!==w||t[35]!==y||t[36]!==O||t[37]!==s||t[38]!==n.brokerSecretAuthorize||t[39]!==n.brokerSecretAuthorizing||t[40]!==n.brokerSecretConsoleLink?(ae=w||O?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsxs)(A,{type:`button`,disabled:s||l,onClick:y,children:[l?(0,$.jsx)(_,{className:`size-4 animate-spin`}):null,l?n.brokerSecretAuthorizing:n.brokerSecretAuthorize]}),(0,$.jsxs)(`a`,{href:be,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[n.brokerSecretConsoleLink,(0,$.jsx)(p,{className:`size-3`,"aria-hidden":!0})]})]}):null,t[33]=l,t[34]=w,t[35]=y,t[36]=O,t[37]=s,t[38]=n.brokerSecretAuthorize,t[39]=n.brokerSecretAuthorizing,t[40]=n.brokerSecretConsoleLink,t[41]=ae):ae=t[41];let oe;t[42]!==l||t[43]!==u||t[44]!==n.brokerSecretOpenAuthorization?(oe=l&&u?(0,$.jsxs)(`a`,{href:u,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)(p,{className:`size-3`,"aria-hidden":!0})]}):null,t[42]=l,t[43]=u,t[44]=n.brokerSecretOpenAuthorization,t[45]=oe):oe=t[45];let se;t[46]!==i||t[47]!==o||t[48]!==a||t[49]!==F||t[50]!==L||t[51]!==f||t[52]!==S||t[53]!==w||t[54]!==b||t[55]!==h||t[56]!==v||t[57]!==O||t[58]!==s||t[59]!==N||t[60]!==j||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?(se=j?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:S,children:n.brokerSecretTitle}),(0,$.jsx)(m,{id:S,value:a,labels:N,reveal:ct,loadFailedLabel:f||n.brokerSecretRevealFailed,maskedHelp:n.brokerSecretMaskedHelp,notInConfigFile:n.brokerSecretNotInConfigFile,readOnly:!0}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(A,{type:`button`,variant:`secondary`,disabled:s,onClick:()=>{D({type:`patch`,patch:{reconfiguring:!0}})},children:n.brokerSecretReconfigure}),(0,$.jsx)(A,{type:`button`,variant:`ghost`,disabled:s,onClick:b,children:n.brokerSecretClear})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:S,children:n.brokerSecretTitle}),(0,$.jsx)(m,{id:S,value:o,onChange:h,placeholder:n.brokerSecretPlaceholder,labels:N,disabled:s}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsxs)(A,{type:`button`,disabled:s||!F,onClick:v,children:[s?(0,$.jsx)(_,{className:`size-4 animate-spin`}):null,w?n.brokerSecretSaveAndContinue:n.brokerSecretSave]}),i?(0,$.jsx)(A,{type:`button`,variant:`ghost`,disabled:s,onClick:b,children:n.brokerSecretClear}):null,O?(0,$.jsx)(A,{type:`button`,variant:`ghost`,disabled:s,onClick:L,children:n.brokerSecretCancelReconfigure}):null]})]}),t[46]=i,t[47]=o,t[48]=a,t[49]=F,t[50]=L,t[51]=f,t[52]=S,t[53]=w,t[54]=b,t[55]=h,t[56]=v,t[57]=O,t[58]=s,t[59]=N,t[60]=j,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]=se):se=t[71];let q;t[72]===d?q=t[73]:(q=d?(0,$.jsx)(`p`,{className:`text-xs text-emerald-700 dark:text-emerald-400`,children:d}):null,t[72]=d,t[73]=q);let J;t[74]!==K||t[75]!==ae||t[76]!==oe||t[77]!==se||t[78]!==q?(J=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[K,ae,oe,se,q]}),t[74]=K,t[75]=ae,t[76]=oe,t[77]=se,t[78]=q,t[79]=J):J=t[79];let ce;t[80]!==W||t[81]!==J?(ce=(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[W,J]}),t[80]=W,t[81]=J,t[82]=ce):ce=t[82];let Y;t[83]!==ce||t[84]!==z?(Y=(0,$.jsx)(ue,{className:z,children:ce}),t[83]=ce,t[84]=z,t[85]=Y):Y=t[85];let le;return t[86]!==x||t[87]!==Y?(le=(0,$.jsx)(`div`,{ref:x,id:`tunnel-broker-secret-setup`,children:Y}),t[86]=x,t[87]=Y,t[88]=le):le=t[88],le}function ct(){return _e().then(lt)}function lt(e){return e.registrationSecret??null}var ut={actionError:null,starting:!1,stopping:!1,savingAutoStart:!1,consentOpen:!1,autoStartConfirmOpen:!1,releaseConfirmOpen:!1,releasing:!1,brokerSecretDraft:``,savingBrokerSecret:!1,authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null};function dt({embedded:e=!1}){let t=O(e=>e.language),n=T(t).tunnelSettings,r=!!D(e=>e.conversationId),[i,a]=(0,Z.useReducer)(U,ut),{actionError:o,starting:s,stopping:c,savingAutoStart:l,consentOpen:u,autoStartConfirmOpen:d,releaseConfirmOpen:f,releasing:p,brokerSecretDraft:m,savingBrokerSecret:g,authorizingBrokerSecret:v,brokerSecretAuthorizationUrl:y,brokerSecretNotice:b}=i,x=(0,Z.useRef)(null),{data:S}=V(r),{data:C,error:w,isLoading:j,mutate:M}=k(r?`tunnel-status`:null,ge,{refreshInterval:e=>s?1e3:e?.frpcDownload||e?.state===`connecting`||e?.state===`reconnecting`?2e3:6e4}),N=(0,Z.useMemo)(()=>{let e=S?.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 C?.config?.autoStart===!0},[S,C?.config?.autoStart]),P=(0,Z.useMemo)(()=>{let e=S?.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``},[S]),F=te(P),I=C?.registrationSecret?.configured??F;(0,Z.useEffect)(()=>{let e=()=>{M()};return window.addEventListener(`tunnel-status`,e),()=>window.removeEventListener(`tunnel-status`,e)},[M]);let L=(0,Z.useMemo)(()=>[n.consentBullet1,n.consentBullet2,n.consentBullet3],[n.consentBullet1,n.consentBullet2,n.consentBullet3]),R=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{starting:!0}});try{await ye(),await M(),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{starting:!1}})}},[M]),z=(0,Z.useCallback)(()=>{if(!I){a({type:`patch`,patch:{actionError:n.brokerSecretRequiredBeforeStart}}),x.current?.scrollIntoView({behavior:`smooth`,block:`start`});return}if(C?.consentRequired){a({type:`patch`,patch:{consentOpen:!0}});return}R()},[I,C?.consentRequired,R,n.brokerSecretRequiredBeforeStart]),H=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{consentOpen:!1}}),a({type:`patch`,patch:{actionError:null}});try{await de(),await Promise.all([M(),R()])}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}},[M,R]),ee=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{stopping:!0}});try{await pe(),await M(),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{stopping:!1}})}},[M]),G=(0,Z.useCallback)(async e=>{a({type:`patch`,patch:{savingAutoStart:!0}}),a({type:`patch`,patch:{actionError:null}});try{await ve({autoStart:e}),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingAutoStart:!1}})}},[]),K=(0,Z.useCallback)(()=>{if(N){G(!1);return}if(C?.consentRequired){a({type:`patch`,patch:{actionError:n.consentExpiredBanner}});return}if(!C?.canAutoStart){a({type:`patch`,patch:{actionError:n.autoStartHint}});return}a({type:`patch`,patch:{autoStartConfirmOpen:!0}})},[G,C?.canAutoStart,C?.consentRequired,n,N]),q=(0,Z.useCallback)(async()=>{let e=m.trim();if(e){a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ve({registrationSecret:e}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretSaved}}),B(),await M(),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}})}}},[m,M,n.brokerSecretSaved]),J=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ve({registrationSecret:null}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretCleared}}),B(),await M()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingBrokerSecret:!1}})}},[M,n.brokerSecretCleared]),ce=(0,Z.useCallback)(async()=>{let e=oe(),t=null,r=null;a({type:`patch`,patch:{authorizingBrokerSecret:!0,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null,actionError:null}});try{for(t=(await ne(`xopc-tunnel`)).sessionId;;){await new Promise(e=>window.setTimeout(e,1e3));let i=await ie(t);if(i.authUrl&&i.authUrl!==r&&(r=i.authUrl,a({type:`patch`,patch:{brokerSecretAuthorizationUrl:i.authUrl}}),await ae(i.authUrl,e)),i.status===`failed`||i.status===`cancelled`)throw Error(i.error??i.message??`OAuth authorization failed`);if(i.status===`completed`){await he(),await Promise.all([M(),B()]),a({type:`patch`,patch:{brokerSecretNotice:n.brokerSecretSaved,brokerSecretDraft:``}});return}}}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{se(e),t&&re(t).catch(()=>void 0),a({type:`patch`,patch:{authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null}})}},[M,n.brokerSecretSaved]),Y=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{releaseConfirmOpen:!1,actionError:null,releasing:!0}});try{await pe({release:!0}),await M(),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{releasing:!1}})}},[M]),le=(0,Z.useMemo)(()=>({copy:n.copyUrl,copied:n.copied,copyFailed:T(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=C??{enabled:!1,state:`disconnected`,subdomain:null,publicUrl:null,connectedSince:null,frpcPid:null,lastHeartbeatAt:null,lastError:null,consentRequired:!0,config:{autoStart:N,brokerUrl:`https://frp.xopc.ai/api`}},me=C?.consentRequired&&(X.enabled||N||C?.consent?.acceptedAt),_e=(0,$.jsx)(st,{t:n,brokerSecretReady:I,brokerSecretConfiguredInConfig:F,brokerSecretMaskedValue:F?P:``,brokerSecretDraft:m,savingBrokerSecret:g,authorizingBrokerSecret:v,brokerSecretAuthorizationUrl:y,brokerSecretNotice:b,copyFailedLabel:T(t).clipboard.copyFailed,onDraftChange:e=>a({type:`patch`,patch:{brokerSecretDraft:e}}),onSave:()=>void q(),onAuthorize:()=>void ce(),onClear:()=>void J(),sectionRef:x}),be=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ue,{open:u,title:n.consentTitle,intro:n.consentIntro,bullets:L,checkboxLabel:n.consentCheckbox,confirmLabel:me?n.consentReconfirm:n.consentConfirm,cancelLabel:n.consentCancel,onConfirm:()=>void H(),onCancel:()=>a({type:`patch`,patch:{consentOpen:!1}})},u?`consent-open`:`consent-closed`),(0,$.jsx)(W,{open:d,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:f,title:n.releaseConfirmTitle,description:n.releaseConfirmBody,confirmLabel:n.releaseConfirmLabel,cancelLabel:n.consentCancel,destructive:!0,onConfirm:()=>void Y(),onCancel:()=>a({type:`patch`,patch:{releaseConfirmOpen:!1}})})]});return e?(0,$.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[o?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:o}):null,_e,(0,$.jsx)(at,{t:n,status:X,isLoading:j,statusErr:w,starting:s,stopping:c,showConsentExpired:!!me,copyLabels:le,startDisabled:!I,startDisabledReason:I?void 0:n.brokerSecretRequiredBeforeStart,stepLabel:n.flowStepStart,onStart:z,onStop:()=>void ee()}),(0,$.jsxs)(Ve,{showLabel:n.showOptions,hideLabel:n.hideOptions,children:[(0,$.jsxs)(`label`,{className:E(`flex items-center gap-3 text-sm text-fg`,!N&&!C?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:N,disabled:l||!N&&!C?.canAutoStart,onChange:K}),n.autoStart]}),!C?.canAutoStart&&!N?(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)(A,{type:`button`,variant:`secondary`,disabled:p||c,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[p?(0,$.jsx)(_,{className:`size-4 animate-spin`}):null,n.release]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.releaseHint})]}):null]}),(0,$.jsx)(Ve,{showLabel:n.showAdvanced,hideLabel:n.hideAdvanced,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-xl bg-surface-base/45 p-4 text-xs text-fg-subtle`,children:[(0,$.jsxs)(`p`,{className:`flex items-start gap-2`,children:[(0,$.jsx)(h,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(fe,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]})}),be]}):(0,$.jsxs)(`div`,{className:e?`flex w-full flex-col gap-6`:`flex w-full flex-col gap-6 px-3 py-8 sm:px-5 xl:px-6`,children:[e?null:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:n.title}),(0,$.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:n.subtitle})]}),o?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:o}):null,_e,(0,$.jsx)(at,{t:n,status:X,isLoading:j,statusErr:w,starting:s,stopping:c,showConsentExpired:!!me,copyLabels:le,startDisabled:!I,startDisabledReason:I?void 0:n.brokerSecretRequiredBeforeStart,onStart:z,onStop:()=>void ee()}),X.subdomain||X.publicUrl?(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(A,{type:`button`,variant:`secondary`,disabled:p||c,className:`border-danger/40 text-danger hover:bg-danger/10`,onClick:()=>a({type:`patch`,patch:{releaseConfirmOpen:!0}}),children:[p?(0,$.jsx)(_,{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:E(`flex items-center gap-3 text-sm text-fg`,!N&&!C?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:N,disabled:l||!N&&!C?.canAutoStart,onChange:K}),n.autoStart]}),!C?.canAutoStart&&!N?(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)(h,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(fe,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]}),be]})}function ft(e,t){return e.tabs[t]}function pt(e,t){return e.tabIntro[t]}function mt(e){switch(e){case`tailscale`:return`tailscale-serve`;case`public`:return`public-tunnel`;case`reverse-proxy`:return`reverse-proxy`;case`ssh`:return`ssh-tunnel`;case`lan`:return`lan`;default:return}}function ht(e){let t=(0,Q.c)(7),{tab:n,onOpenTab:r}=e;switch(n){case`guide`:{let e;return t[0]===r?e=t[1]:(e=(0,$.jsx)(Ae,{onOpenTab:r}),t[0]=r,t[1]=e),e}case`tailscale`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(xe,{embedded:!0}),t[2]=e):e=t[2],e}case`public`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(dt,{embedded:!0}),t[3]=e):e=t[3],e}case`reverse-proxy`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(X,{}),t[4]=e):e=t[4],e}case`ssh`:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Re,{}),t[5]=e):e=t[5],e}case`lan`:{let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Pe,{}),t[6]=e):e=t[6],e}}}function gt(){let e=(0,Q.c)(3),t=o(),n=O(vt),r=T(n).remoteAccess,a=!!D(_t),[c,l]=i(),u=G(),d=Be(c.get(`tab`)),f=c.get(`intent`)===`mobile-pairing`,p;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(p={refreshInterval:2e3},e[0]=p):p=e[0];let m=k(f?`device-pairing-readiness`:null,me,p),h;e[1]===l?h=e[2]:(h=e=>{l(t=>{let n=new URLSearchParams(t);return e===`guide`?n.delete(`tab`):n.set(`tab`,e),n},{replace:!0})},e[1]=l,e[2]=h);let g=h,_=pt(r,d),v=ze.filter(e=>u||e!==`ssh`&&e!==`reverse-proxy`||e===d).map(e=>({id:e,label:ft(r,e)}));return(0,$.jsxs)(q,{children:[(0,$.jsx)(J,{title:r.pageTitle,meta:(0,$.jsx)(fe,{language:n,label:r.docsLink,section:mt(d),className:`mt-1`})}),a?(0,$.jsxs)($.Fragment,{children:[f?(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)(S,{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:m.data?.ready?r.mobilePairingFlow.ready:r.mobilePairingFlow.hint})]})]}),(0,$.jsxs)(A,{variant:`primary`,disabled:!m.data?.ready,onClick:()=>t(`/settings/devices?startDevicePairing=mobile`),children:[m.data?.ready?r.mobilePairingFlow.continue:r.mobilePairingFlow.waiting,(0,$.jsx)(s,{className:`size-4`,"aria-hidden":!0})]})]}):null,(0,$.jsx)(H,{items:v,activeTab:d,onChange:g,ariaLabel:r.tabsAria,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`}),(0,$.jsx)(ce,{id:d,activeTab:d,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`,title:ft(r,d),hint:d===`public`?void 0:_,showHeading:!1,framed:!1,children:(0,$.jsx)(ht,{tab:d,onOpenTab:g})})]}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.guide.needToken})]})}function _t(e){return e.conversationId}function vt(e){return e.language}export{gt as RemoteAccessHub};
1
+ 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-5Hf8J8-_.js";import{t as l}from"./messages-uXxg5p54.js";import{t as u}from"./arrow-right-DSSvoX71.js";import{t as d}from"./check-DUBLcKHA.js";import{t as f}from"./chevron-down-ccbiQQz_.js";import{t as p}from"./chevron-right-BweFrslA.js";import{t as m}from"./circle-BoO4YvTx.js";import{t as h}from"./copy-Dv6d4Dvw.js";import{t as g}from"./external-link-DjqjBmc3.js";import{t as _}from"./secret-input-BQvFXqzz.js";import{t as v}from"./globe-DSSGFWFn.js";import{t as y}from"./key-round-DWbpyU2U.js";import{t as b}from"./loader-circle-CifKLtgG.js";import{t as x}from"./network-BUQLY1BV.js";import{t as S}from"./power-ZI-pBczI.js";import{t as C}from"./server-BlHCBjiE.js";import{t as w}from"./shield-B1sI_cxl.js";import{t as T}from"./smartphone-DSSsQFqA.js";import{t as E}from"./terminal-oKqqZdiG.js";import{t as D}from"./triangle-alert-2JXFNNKU.js";import{t as O}from"./cn-0WouolD0.js";import{i as k}from"./vendor-swr-CdRzEUwF.js";import{t as A}from"./button-CnRSIP6m.js";import{a as j,i as M,o as N,r as P,s as F,t as I}from"./dist-DfWfZ9iu.js";import{i as L,o as R}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{t as z}from"./copy-to-clipboard-HOJ79TWv.js";import{n as B,r as V}from"./gateway-config-swr-Bt8w0Iio.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-XGclfBqe.js";import{t as ee}from"./copy-text-row-CYIv7RfP.js";import{n as G}from"./settings-mode-store-Dem6-TBe.js";import{r as te}from"./providers-api-CKFg2PZQ.js";import{a as ne,n as re,r as ie}from"./oauth-api-CCFIPbA0.js";import{t as K}from"./settings-advanced-section-c9_iZ-46.js";import{n as ae,r as oe,t as se}from"./oauth-authorization-window-o6URRos4.js";import{n as q,t as J}from"./settings-page-header-C8a_oOyw.js";import{t as ce}from"./settings-page-layout-CTSRWljG.js";import{n as Y,r as le,t as ue}from"./settings-form-section-num14vSv.js";import{_ as X,a as de,b as fe,c as pe,h as me,i as he,n as ge,o as _e,r as ve,s as ye,t as be,v as xe,y as Se}from"./tunnel-api-B5-Ypvqa.js";import{t as Ce}from"./settings-advanced-gate-Ckc1aCLG.js";var Z=e(t(),1),Q=n(),$=r();function we(e){switch(e){case`active`:return`text-emerald-700 dark:text-emerald-400`;case`connecting`:return`text-amber-700 dark:text-amber-400`;default:return`text-fg-muted`}}function Te(e){let t=(0,Q.c)(11),{label:n,kind:r}=e,i;t[0]===r?i=t[1]:(i=O(`inline-flex items-center gap-1.5 text-xs font-medium`,we(r)),t[0]=r,t[1]=i);let a=r===`active`&&`bg-emerald-500`,o=r===`connecting`&&`bg-amber-500`,s;t[2]!==a||t[3]!==o?(s=O(`size-1.5 rounded-full bg-fg-subtle/50`,a,o),t[2]=a,t[3]=o,t[4]=s):s=t[4];let c;t[5]===s?c=t[6]:(c=(0,$.jsx)(`span`,{className:s,"aria-hidden":!0}),t[5]=s,t[6]=c);let l;return t[7]!==n||t[8]!==i||t[9]!==c?(l=(0,$.jsxs)(`span`,{className:i,children:[c,n]}),t[7]=n,t[8]=i,t[9]=c,t[10]=l):l=t[10],l}function Ee(e){let t=(0,Q.c)(31),{onOpenTab:n}=e,r=c(Oe),i;t[0]===r?i=t[1]:(i=l(r),t[0]=r,t[1]=i);let a=i.remoteAccess.guide,o=!!s(De),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u={refreshInterval:3e4},t[2]=u):u=t[2];let{data:d}=k(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}=k(o?`tunnel-status`:null,ge,f),m=V(o);if(!o)return null;let h=d?.tailscale.active===!0,g=p?.state,_=p?.enabled&&g===`connected`,y=p?.enabled&&(g===`connecting`||g===`reconnecting`||!!p?.startProgress||!!p?.frpcDownload),b=m.data?.payload?.config,S=!!(b&&typeof b==`object`&&!Array.isArray(b)&&b.gateway?.publicUrl),T=h?`active`:`off`,D=h?a.statusActive:a.statusOff,A;t[4]!==a.tailscaleCardTitle||t[5]!==T||t[6]!==D?(A={tab:`tailscale`,icon:v,title:a.tailscaleCardTitle,kind:T,statusLabel:D},t[4]=a.tailscaleCardTitle,t[5]=T,t[6]=D,t[7]=A):A=t[7];let j=_?`active`:y?`connecting`:`off`,M=_?a.statusActive:y?a.statusConnecting:a.statusOff,N;t[8]!==a.publicCardTitle||t[9]!==j||t[10]!==M?(N={tab:`public`,icon:x,title:a.publicCardTitle,kind:j,statusLabel:M},t[8]=a.publicCardTitle,t[9]=j,t[10]=M,t[11]=N):N=t[11];let P=S?`active`:`off`,F=S?a.statusActive:a.statusOff,I;t[12]!==a.reverseProxyCardTitle||t[13]!==P||t[14]!==F?(I={tab:`reverse-proxy`,icon:w,title:a.reverseProxyCardTitle,kind:P,statusLabel:F},t[12]=a.reverseProxyCardTitle,t[13]=P,t[14]=F,t[15]=I):I=t[15];let L;t[16]!==a.sshCardStatus||t[17]!==a.sshCardTitle?(L={tab:`ssh`,icon:E,title:a.sshCardTitle,kind:`off`,statusLabel:a.sshCardStatus},t[16]=a.sshCardStatus,t[17]=a.sshCardTitle,t[18]=L):L=t[18];let R;t[19]!==a.lanCardStatus||t[20]!==a.lanCardTitle?(R={tab:`lan`,icon:C,title:a.lanCardTitle,kind:`off`,statusLabel:a.lanCardStatus},t[19]=a.lanCardStatus,t[20]=a.lanCardTitle,t[21]=R):R=t[21];let z;t[22]!==I||t[23]!==L||t[24]!==R||t[25]!==A||t[26]!==N?(z=[A,N,I,L,R],t[22]=I,t[23]=L,t[24]=R,t[25]=A,t[26]=N,t[27]=z):z=t[27];let B=z,H;return t[28]!==B||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:B.map(e=>{let t=e.icon;return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(e.tab),className:O(`flex items-start gap-3 rounded-lg bg-surface-base/45 px-2 py-3 text-left transition-colors`,`hover:bg-surface-hover/30`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center text-fg-muted`,children:(0,$.jsx)(t,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`block truncate text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(Te,{label:e.statusLabel,kind:e.kind})]})]},`${e.tab}-${e.title}`)})}),t[28]=B,t[29]=n,t[30]=H):H=t[30],H}function De(e){return e.conversationId}function Oe(e){return e.language}function ke(e){let t=(0,Q.c)(21),{title:n,description:r,recommended:i,icon:a,onOpen:o,recommendedLabel:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=O(`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 m;t[11]===r?m=t[12]:(m=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:r}),t[11]=r,t[12]=m);let h;t[13]!==f||t[14]!==m?(h=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[f,m]}),t[13]=f,t[14]=m,t[15]=h):h=t[15];let g;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(p,{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]=g):g=t[16];let _;return t[17]!==o||t[18]!==l||t[19]!==h?(_=(0,$.jsxs)(`button`,{type:`button`,onClick:o,className:c,children:[l,h,g]}),t[17]=o,t[18]=l,t[19]=h,t[20]=_):_=t[20],_}function Ae(e){let t=(0,Q.c)(78),{onOpenTab:n}=e,r=c(Ne),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(Me),d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d={refreshInterval:3e4},t[2]=d):d=t[2];let{data:f}=k(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)(Ee,{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(je)})]}):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 y;t[15]===n?y=t[16]:(y=()=>n(`tailscale`),t[15]=n,t[16]=y);let b;t[17]!==o.recommended||t[18]!==o.tailscaleCardDesc||t[19]!==o.tailscaleCardTitle||t[20]!==y?(b=(0,$.jsx)(ke,{icon:v,title:o.tailscaleCardTitle,description:o.tailscaleCardDesc,recommended:!0,recommendedLabel:o.recommended,onOpen:y}),t[17]=o.recommended,t[18]=o.tailscaleCardDesc,t[19]=o.tailscaleCardTitle,t[20]=y,t[21]=b):b=t[21];let S;t[22]===n?S=t[23]:(S=()=>n(`public`),t[22]=n,t[23]=S);let T;t[24]!==o.publicCardDesc||t[25]!==o.publicCardTitle||t[26]!==S?(T=(0,$.jsx)(ke,{icon:x,title:o.publicCardTitle,description:o.publicCardDesc,onOpen:S}),t[24]=o.publicCardDesc,t[25]=o.publicCardTitle,t[26]=S,t[27]=T):T=t[27];let D;t[28]===n?D=t[29]:(D=()=>n(`reverse-proxy`),t[28]=n,t[29]=D);let O;t[30]!==o.reverseProxyCardDesc||t[31]!==o.reverseProxyCardTitle||t[32]!==D?(O=(0,$.jsx)(ke,{icon:w,title:o.reverseProxyCardTitle,description:o.reverseProxyCardDesc,onOpen:D}),t[30]=o.reverseProxyCardDesc,t[31]=o.reverseProxyCardTitle,t[32]=D,t[33]=O):O=t[33];let A;t[34]===n?A=t[35]:(A=()=>n(`ssh`),t[34]=n,t[35]=A);let j;t[36]!==o.sshCardDesc||t[37]!==o.sshCardTitle||t[38]!==A?(j=(0,$.jsx)(ke,{icon:E,title:o.sshCardTitle,description:o.sshCardDesc,onOpen:A}),t[36]=o.sshCardDesc,t[37]=o.sshCardTitle,t[38]=A,t[39]=j):j=t[39];let M;t[40]!==a.advanced.proxyBody||t[41]!==a.advanced.proxyTitle||t[42]!==O||t[43]!==j?(M=(0,$.jsxs)(K,{title:a.advanced.proxyTitle,summary:a.advanced.proxyBody,children:[O,j]}),t[40]=a.advanced.proxyBody,t[41]=a.advanced.proxyTitle,t[42]=O,t[43]=j,t[44]=M):M=t[44];let N;t[45]===n?N=t[46]:(N=()=>n(`lan`),t[45]=n,t[46]=N);let P;t[47]!==o.lanCardDesc||t[48]!==o.lanCardTitle||t[49]!==N?(P=(0,$.jsx)(ke,{icon:C,title:o.lanCardTitle,description:o.lanCardDesc,onOpen:N}),t[47]=o.lanCardDesc,t[48]=o.lanCardTitle,t[49]=N,t[50]=P):P=t[50];let F;t[51]!==T||t[52]!==M||t[53]!==P||t[54]!==b?(F=(0,$.jsxs)(`div`,{className:`mt-2 flex max-w-3xl flex-col gap-1 rounded-xl bg-surface-hover/20 p-1 [&>*]:rounded-lg [&>*]:bg-surface-base/45`,children:[b,T,M,P]}),t[51]=T,t[52]=M,t[53]=P,t[54]=b,t[55]=F):F=t[55];let I;t[56]!==F||t[57]!==_?(I=(0,$.jsxs)(`div`,{children:[_,F]}),t[56]=F,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)(fe,{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 je(e){return(0,$.jsx)(`li`,{children:e.message},e.code)}function Me(e){return e.conversationId}function Ne(e){return e.language}function Pe(){let e=(0,Q.c)(16),t=c(Fe),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:C,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)(g,{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 Fe(e){return e.language}function Ie(e){let t=(0,Q.c)(30),{embedded:n}=e,r=n!==void 0&&n,i=c(Le),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 z(`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,g;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>void f(),g=(0,$.jsx)(h,{className:`mr-1 size-4`}),t[4]=m,t[5]=g):(m=t[4],g=t[5]);let _=s?o.copied:o.copy,v;t[6]===_?v=t[7]:(v=(0,$.jsx)(`div`,{className:`mt-2`,children:(0,$.jsxs)(A,{type:`button`,variant:`ghost`,onClick:m,children:[g,_]})}),t[6]=_,t[7]=v);let y;t[8]!==r||t[9]!==o.hint?(y=r?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-subtle`,children:o.hint}):null,t[8]=r,t[9]=o.hint,t[10]=y):y=t[10];let b;t[11]!==v||t[12]!==y?(b=(0,$.jsxs)($.Fragment,{children:[p,v,y]}),t[11]=v,t[12]=y,t[13]=b):b=t[13];let x=b;if(r){let e;t[14]!==o.subtitle||t[15]!==o.title?(e=(0,$.jsx)(Y,{icon:E,title:o.title,subtitle:o.subtitle}),t[14]=o.subtitle,t[15]=o.title,t[16]=e):e=t[16];let n;t[17]===x?n=t[18]:(n=(0,$.jsx)(`div`,{className:`mt-4 space-y-2`,children:x}),t[17]=x,t[18]=n);let r;return t[19]!==e||t[20]!==n?(r=(0,$.jsxs)(ue,{children:[e,n]}),t[19]=e,t[20]=n,t[21]=r):r=t[21],r}let S;t[22]!==o.subtitle||t[23]!==o.title?(S=(0,$.jsx)(Y,{icon:E,title:o.title,subtitle:o.subtitle}),t[22]=o.subtitle,t[23]=o.title,t[24]=S):S=t[24];let C;t[25]===x?C=t[26]:(C=(0,$.jsx)(`div`,{className:`mt-4`,children:x}),t[25]=x,t[26]=C);let 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 Le(e){return e.language}function Re(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(Ie,{embedded:!0}),e[0]=t):t=e[0],t}var ze=[`guide`,`tailscale`,`public`,`reverse-proxy`,`ssh`,`lan`];function Be(e){return e&&ze.includes(e)?e:`guide`}function Ve(e){let t=(0,Q.c)(32),{showLabel:n,hideLabel:r,icon:i,hint:a,children:o,className:s,defaultOpen:c,advancedOnly:l}=e,u=l!==void 0&&l,[d,p]=(0,Z.useState)(c??!1),m;t[0]===s?m=t[1]:(m=O(`rounded-xl bg-surface-hover/20`,s),t[0]=s,t[1]=m);let h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>p(He),t[2]=h):h=t[2];let g=d&&`rotate-180`,_;t[3]===g?_=t[4]:(_=O(`size-4 shrink-0 text-fg-muted transition-transform duration-200 motion-reduce:transition-none`,g),t[3]=g,t[4]=_);let v;t[5]===_?v=t[6]:(v=(0,$.jsx)(f,{className:_,"aria-hidden":!0}),t[5]=_,t[6]=v);let y;t[7]===i?y=t[8]:(y=i?(0,$.jsx)(i,{className:`size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}):null,t[7]=i,t[8]=y);let b=d?r:n,x;t[9]===b?x=t[10]:(x=(0,$.jsx)(`span`,{children:b}),t[9]=b,t[10]=x);let S;t[11]!==d||t[12]!==v||t[13]!==y||t[14]!==x?(S=(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":d,onClick:h,className:`flex w-full items-center gap-2 rounded-2xl px-4 py-3.5 text-left text-sm font-medium text-fg transition-colors hover:text-fg`,children:[v,y,x]}),t[11]=d,t[12]=v,t[13]=y,t[14]=x,t[15]=S):S=t[15];let C=d?`grid-rows-[1fr] opacity-100`:`grid-rows-[0fr] opacity-0`,w;t[16]===C?w=t[17]:(w=O(`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 k;t[26]!==S||t[27]!==D||t[28]!==m?(k=(0,$.jsxs)(`section`,{className:m,children:[S,D]}),t[26]=S,t[27]=D,t[28]=m,t[29]=k):k=t[29];let A=k;if(u){let e;return t[30]===A?e=t[31]:(e=(0,$.jsx)(Ce,{children:A}),t[30]=A,t[31]=e),e}return A}function He(e){return!e}function Ue(e){let t=(0,Q.c)(40),{open:n,title:r,intro:i,bullets:a,checkboxLabel:o,confirmLabel:s,cancelLabel:c,onConfirm:l,onCancel:u}=e,[d,f]=(0,Z.useState)(!1),p;t[0]===u?p=t[1]:(p=e=>{e||(f(!1),u())},t[0]=u,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(j,{className:O(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,R)}),t[2]=m):m=t[2];let h;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(h=O(`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`,L),t[3]=h):h=t[3];let g;t[4]===r?g=t[5]:(g=(0,$.jsx)(F,{className:`text-base font-semibold text-fg`,children:r}),t[4]=r,t[5]=g);let _;t[6]===i?_=t[7]:(_=(0,$.jsx)(M,{className:`mt-2 text-sm text-fg-muted`,children:i}),t[6]=i,t[7]=_);let v;t[8]===a?v=t[9]:(v=a.map(We),t[8]=a,t[9]=v);let y;t[10]===v?y=t[11]:(y=(0,$.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5 text-sm text-fg-muted`,children:v}),t[10]=v,t[11]=y);let b;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>f(e.target.checked),t[12]=b):b=t[12];let x;t[13]===d?x=t[14]:(x=(0,$.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 size-4 shrink-0 rounded border-edge accent-accent`,checked:d,onChange:b}),t[13]=d,t[14]=x);let S;t[15]===o?S=t[16]:(S=(0,$.jsx)(`span`,{children:o}),t[15]=o,t[16]=S);let C;t[17]!==S||t[18]!==x?(C=(0,$.jsxs)(`label`,{className:`mt-5 flex cursor-pointer items-start gap-3 text-sm text-fg`,children:[x,S]}),t[17]=S,t[18]=x,t[19]=C):C=t[19];let w;t[20]!==c||t[21]!==u?(w=(0,$.jsx)(A,{type:`button`,variant:`secondary`,onClick:u,children:c}),t[20]=c,t[21]=u,t[22]=w):w=t[22];let T=!d,E;t[23]!==s||t[24]!==l||t[25]!==T?(E=(0,$.jsx)(A,{type:`button`,disabled:T,onClick:l,children:s}),t[23]=s,t[24]=l,t[25]=T,t[26]=E):E=t[26];let D;t[27]!==w||t[28]!==E?(D=(0,$.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[w,E]}),t[27]=w,t[28]=E,t[29]=D):D=t[29];let k;t[30]!==C||t[31]!==D||t[32]!==g||t[33]!==_||t[34]!==y?(k=(0,$.jsxs)(N,{children:[m,(0,$.jsxs)(P,{className:h,onOpenAutoFocus:Ge,children:[g,_,y,C,D]})]}),t[30]=C,t[31]=D,t[32]=g,t[33]=_,t[34]=y,t[35]=k):k=t[35];let z;return t[36]!==n||t[37]!==p||t[38]!==k?(z=(0,$.jsx)(I,{open:n,onOpenChange:p,children:k}),t[36]=n,t[37]=p,t[38]=k,t[39]=z):z=t[39],z}function We(e){return(0,$.jsx)(`li`,{children:e},e)}function Ge(e){return e.preventDefault()}function Ke(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}var qe=[`preparing_frpc`,`registering`,`starting_frpc`];function Je(e){return e?e===`reconnecting_frpc`?qe.indexOf(`starting_frpc`):qe.indexOf(e):-1}function Ye(e,t){if(t.state===`connected`)return`done`;let n=t.startProgress?.phase,r=qe.indexOf(e),i=Je(n);return i<0?t.state===`connecting`||t.state===`reconnecting`?`active`:`pending`:r<i?`done`:r===i?`active`:`pending`}function Xe(e,t,n){let r=n.startProgress;return Ye(t,n)===`active`?t===`preparing_frpc`&&n.frpcDownload?n.frpcDownload.phase===`extracting`?e.frpcExtracting:n.frpcDownload.percent==null?e.frpcDownloading:e.frpcDownloadingPercent.replace(`{{percent}}`,String(n.frpcDownload.percent)):t===`registering`&&r?.publicUrl?e.stepRegisterDetail:t===`starting_frpc`?r?.phase===`reconnecting_frpc`?e.stepReconnectDetail:e.stepFrpcDetail:null:null}function Ze(e,t){switch(t){case`preparing_frpc`:return e.stepPrepareFrpc;case`registering`:return e.stepRegister;case`starting_frpc`:return e.stepFrpcLogin}}function Qe(e){if(!e)return null;let t=Math.max(0,Math.floor((Date.now()-new Date(e).getTime())/1e3));return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function $e(e){let t=(0,Q.c)(31),{status:n,t:r}=e,[,i]=(0,Z.useState)(0),a;t[0]!==i||t[1]!==n.state?(a=()=>{if(n.state!==`connecting`&&n.state!==`reconnecting`)return;let e=window.setInterval(()=>i(et),1e3);return()=>window.clearInterval(e)},t[0]=i,t[1]=n.state,t[2]=a):a=t[2];let o=n.startProgress?.startedAt,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,f,p;if(t[6]!==n||t[7]!==r){let e=Qe(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=qe.map(e=>{let t=Ye(e,n),i=Xe(r,e,n);return(0,$.jsxs)(`li`,{className:`flex gap-2 text-xs`,children:[(0,$.jsx)(`span`,{className:`mt-0.5 shrink-0 text-fg-subtle`,"aria-hidden":!0,children:t===`done`?(0,$.jsx)(d,{className:`size-3.5 text-emerald-600 dark:text-emerald-400`}):t===`active`?(0,$.jsx)(b,{className:`size-3.5 animate-spin text-accent`}):(0,$.jsx)(m,{className:`size-3.5`})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:O(`font-medium`,t===`active`?`text-fg`:t===`done`?`text-fg-muted`:`text-fg-subtle`),children:Ze(r,e)}),i?(0,$.jsx)(`div`,{className:`mt-0.5 text-fg-muted`,children:i}):null,e===`preparing_frpc`&&t===`active`&&n.frpcDownload&&n.frpcDownload.phase===`downloading`?(0,$.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,$.jsx)(`div`,{className:`h-1.5 w-full overflow-hidden rounded-full bg-surface-panel`,children:(0,$.jsx)(`div`,{className:O(`h-full rounded-full bg-accent transition-[width] duration-300`,n.frpcDownload.percent==null&&`w-1/3 animate-pulse`),style:n.frpcDownload.percent==null?void 0:{width:`${n.frpcDownload.percent}%`}})}),n.frpcDownload.bytesReceived!=null&&n.frpcDownload.totalBytes?(0,$.jsxs)(`p`,{className:`text-fg-subtle`,children:[Ke(n.frpcDownload.bytesReceived),` /`,` `,Ke(n.frpcDownload.totalBytes)]}):null]}):null,e===`preparing_frpc`&&t===`active`&&n.frpcDownload?.url?(0,$.jsxs)(`p`,{className:`mt-2 text-fg-subtle`,children:[(0,$.jsxs)(`span`,{className:`font-sans`,children:[r.frpcDownloadingUrlLabel,`: `]}),(0,$.jsx)(`a`,{href:n.frpcDownload.url,target:`_blank`,rel:`noopener noreferrer`,className:`break-all font-mono text-[11px] text-accent hover:underline`,children:n.frpcDownload.url})]}):null]})]},e)});t[20]===o?f=t[21]:(f=(0,$.jsx)(`ol`,{className:`space-y-2`,children:o}),t[20]=o,t[21]=f),p=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]=f,t[12]=p}else c=t[8],l=t[9],u=t[10],f=t[11],p=t[12];let h;t[22]!==c||t[23]!==r.publicUrlPendingNotice?(h=c?(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.publicUrlPendingNotice}):null,t[22]=c,t[23]=r.publicUrlPendingNotice,t[24]=h):h=t[24];let g;return t[25]!==l||t[26]!==u||t[27]!==f||t[28]!==p||t[29]!==h?(g=(0,$.jsxs)(`div`,{className:l,children:[u,f,p,h]}),t[25]=l,t[26]=u,t[27]=f,t[28]=p,t[29]=h,t[30]=g):g=t[30],g}function et(e){return e+1}function tt(e,t){return t.state===`connected`?e.statusConnected:t.state===`error`?e.statusError:t.startProgress?.phase===`reconnecting_frpc`?e.statusReconnecting:t.startProgress?.phase===`starting_frpc`?e.statusStartingFrpc:t.startProgress?.phase===`registering`?e.statusRegistering:t.startProgress?.phase===`preparing_frpc`||t.frpcDownload?e.statusPreparingFrpc:t.state===`connecting`||t.state===`reconnecting`?e.statusConnecting:e.statusOff}function nt(e){return e.state===`connected`?`connected`:e.state===`error`?`error`:e.state===`connecting`||e.state===`reconnecting`||e.startProgress||e.frpcDownload?`progress`:`off`}function rt(e){switch(e){case`connected`:return`bg-emerald-500/15 text-emerald-700 dark:text-emerald-400`;case`progress`:return`bg-amber-500/15 text-amber-700 dark:text-amber-400`;case`error`:return`bg-red-500/15 text-red-700 dark:text-red-400`;default:return`bg-surface-hover text-fg-muted`}}function it(e){if(!e)return`—`;let t=Date.now()-new Date(e).getTime();if(t<0)return`—`;let n=Math.floor(t/6e4);return n<60?`${n}m`:`${Math.floor(n/60)}h ${n%60}m`}function at(e){let t=(0,Q.c)(61),{t:n,status:r,isLoading:i,statusErr:a,starting:o,stopping:s,showConsentExpired:c,copyLabels:l,startDisabled:u,startDisabledReason:d,stepLabel:f,onStart:p,onStop:m}=e,h=u!==void 0&&u,g,_,y,x,C,w,T;t[0]!==r||t[1]!==o?(T=nt(r),g=r.enabled||o,_=o||r.state===`connecting`||r.state===`reconnecting`||!!r.startProgress||!!r.frpcDownload,t[9]===Symbol.for(`react.memo_cache_sentinel`)?(w=O(le(),`space-y-4`),t[9]=w):w=t[9],C=`flex flex-wrap items-start justify-between gap-3`,x=`flex items-center gap-2`,y=O(`inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium`,rt(T)),t[0]=r,t[1]=o,t[2]=g,t[3]=_,t[4]=y,t[5]=x,t[6]=C,t[7]=w,t[8]=T):(g=t[2],_=t[3],y=t[4],x=t[5],C=t[6],w=t[7],T=t[8]);let E=T===`connected`&&`bg-emerald-500`,k=T===`progress`&&`bg-amber-500 animate-pulse`,j=T===`error`&&`bg-red-500`,M=T===`off`&&`bg-fg-subtle`,N;t[10]!==E||t[11]!==k||t[12]!==j||t[13]!==M?(N=O(`size-1.5 rounded-full`,E,k,j,M),t[10]=E,t[11]=k,t[12]=j,t[13]=M,t[14]=N):N=t[14];let P;t[15]===N?P=t[16]:(P=(0,$.jsx)(`span`,{className:N,"aria-hidden":!0}),t[15]=N,t[16]=P);let F;t[17]!==i||t[18]!==r||t[19]!==n?(F=i&&!r.enabled?(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block h-3 w-16 animate-pulse rounded-full bg-surface-hover/70 motion-reduce:animate-none`}):tt(n,r),t[17]=i,t[18]=r,t[19]=n,t[20]=F):F=t[20];let I;t[21]!==P||t[22]!==F||t[23]!==y?(I=(0,$.jsxs)(`span`,{className:y,children:[P,F]}),t[21]=P,t[22]=F,t[23]=y,t[24]=I):I=t[24];let L;t[25]!==r.connectedSince||t[26]!==r.state||t[27]!==n.uptime?(L=r.connectedSince&&r.state===`connected`?(0,$.jsxs)(`span`,{className:`text-xs text-fg-subtle`,children:[n.uptime,` `,it(r.connectedSince)]}):null,t[25]=r.connectedSince,t[26]=r.state,t[27]=n.uptime,t[28]=L):L=t[28];let R;t[29]!==I||t[30]!==L||t[31]!==x?(R=(0,$.jsxs)(`div`,{className:x,children:[I,L]}),t[29]=I,t[30]=L,t[31]=x,t[32]=R):R=t[32];let z;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,$.jsx)(v,{className:`size-4 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0}),t[33]=z):z=t[33];let B;t[34]!==R||t[35]!==C?(B=(0,$.jsxs)(`div`,{className:C,children:[R,z]}),t[34]=R,t[35]=C,t[36]=B):B=t[36];let V;t[37]===a?V=t[38]:(V=a?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:a instanceof Error?a.message:String(a)}):null,t[37]=a,t[38]=V);let H;t[39]!==c||t[40]!==n.consentExpiredBanner?(H=c?(0,$.jsx)(`p`,{className:`rounded-lg bg-amber-500/10 px-3 py-2 text-xs text-fg-muted`,children:n.consentExpiredBanner}):null,t[39]=c,t[40]=n.consentExpiredBanner,t[41]=H):H=t[41];let U;t[42]!==g||t[43]!==l||t[44]!==p||t[45]!==m||t[46]!==_||t[47]!==r||t[48]!==h||t[49]!==d||t[50]!==o||t[51]!==f||t[52]!==s||t[53]!==n?(U=g?(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,_?(0,$.jsx)($e,{status:r,t:n}):null,r.lastError&&r.state===`error`?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:r.lastError}):null,(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:r.enabled?(0,$.jsxs)(A,{type:`button`,variant:`secondary`,disabled:s,onClick:m,children:[s?(0,$.jsx)(b,{className:`size-4 animate-spin`}):null,n.stop]}):(0,$.jsxs)(A,{type:`button`,disabled:o,onClick:p,children:[o?(0,$.jsx)(b,{className:`size-4 animate-spin`}):(0,$.jsx)(S,{className:`size-4`}),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)(D,{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)(A,{type:`button`,disabled:o||h,onClick:p,className:`w-full sm:w-auto`,children:[o?(0,$.jsx)(b,{className:`size-4 animate-spin`}):(0,$.jsx)(S,{className:`size-4`}),n.start]})]}),t[42]=g,t[43]=l,t[44]=p,t[45]=m,t[46]=_,t[47]=r,t[48]=h,t[49]=d,t[50]=o,t[51]=f,t[52]=s,t[53]=n,t[54]=U):U=t[54];let W;return t[55]!==B||t[56]!==V||t[57]!==H||t[58]!==U||t[59]!==w?(W=(0,$.jsxs)(`section`,{className:w,children:[B,V,H,U]}),t[55]=B,t[56]=V,t[57]=H,t[58]=U,t[59]=w,t[60]=W):W=t[60],W}var ot={reconfiguring:!1};function st(e){let t=(0,Q.c)(89),{t:n,brokerSecretReady:r,brokerSecretConfiguredInConfig:i,brokerSecretMaskedValue:a,brokerSecretDraft:o,savingBrokerSecret:s,authorizingBrokerSecret:c,brokerSecretAuthorizationUrl:l,brokerSecretNotice:u,copyFailedLabel:f,onDraftChange:p,onSave:m,onAuthorize:h,onClear:v,sectionRef:x}=e,S=(0,Z.useId)(),C=r,w=!C,[T,E]=(0,Z.useReducer)(U,ot),{reconfiguring:D}=T,k;t[0]!==i||t[1]!==o||t[2]!==D?(k=i&&!D&&!o.trim(),t[0]=i,t[1]=o,t[2]=D,t[3]=k):k=t[3];let j=k,M;t[4]!==n.copied||t[5]!==n.copyKey||t[6]!==n.hideKey||t[7]!==n.showKey?(M={show:n.showKey,hide:n.hideKey,copy:n.copyKey,copied:n.copied},t[4]=n.copied,t[5]=n.copyKey,t[6]=n.hideKey,t[7]=n.showKey,t[8]=M):M=t[8];let N=M,P;t[9]===o?P=t[10]:(P=o.trim().length>0&&!te(o.trim()),t[9]=o,t[10]=P);let F=P,I;t[11]===p?I=t[12]:(I=()=>{E({type:`patch`,patch:{reconfiguring:!1}}),p(``)},t[11]=p,t[12]=I);let L=I,R=w&&`ring-1 ring-amber-500/30`,z;t[13]===R?z=t[14]:(z=O(R),t[13]=R,t[14]=z);let B=C?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:w?`bg-amber-500/10 text-amber-700 dark:text-amber-400`:`bg-surface-hover text-fg-muted`,V;t[15]===B?V=t[16]:(V=O(`flex size-9 shrink-0 items-center justify-center rounded-lg`,B),t[15]=B,t[16]=V);let H;t[17]===C?H=t[18]:(H=C?(0,$.jsx)(d,{className:`size-4`,strokeWidth:2,"aria-hidden":!0}):(0,$.jsx)(y,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[17]=C,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=C?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 ne=C?n.brokerSecretReadyHint:n.brokerSecretHint,re;t[24]===ne?re=t[25]:(re=(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:ne}),t[24]=ne,t[25]=re);let ie;t[26]!==w||t[27]!==n.brokerSecretMissingHint?(ie=w?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-amber-800 dark:text-amber-200`,children:n.brokerSecretMissingHint}):null,t[26]=w,t[27]=n.brokerSecretMissingHint,t[28]=ie):ie=t[28];let K;t[29]!==G||t[30]!==re||t[31]!==ie?(K=(0,$.jsxs)(`div`,{children:[G,re,ie]}),t[29]=G,t[30]=re,t[31]=ie,t[32]=K):K=t[32];let ae;t[33]!==c||t[34]!==w||t[35]!==h||t[36]!==D||t[37]!==s||t[38]!==n.brokerSecretAuthorize||t[39]!==n.brokerSecretAuthorizing||t[40]!==n.brokerSecretConsoleLink?(ae=w||D?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsxs)(A,{type:`button`,disabled:s||c,onClick:h,children:[c?(0,$.jsx)(b,{className:`size-4 animate-spin`}):null,c?n.brokerSecretAuthorizing:n.brokerSecretAuthorize]}),(0,$.jsxs)(`a`,{href:be,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[n.brokerSecretConsoleLink,(0,$.jsx)(g,{className:`size-3`,"aria-hidden":!0})]})]}):null,t[33]=c,t[34]=w,t[35]=h,t[36]=D,t[37]=s,t[38]=n.brokerSecretAuthorize,t[39]=n.brokerSecretAuthorizing,t[40]=n.brokerSecretConsoleLink,t[41]=ae):ae=t[41];let oe;t[42]!==c||t[43]!==l||t[44]!==n.brokerSecretOpenAuthorization?(oe=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)(g,{className:`size-3`,"aria-hidden":!0})]}):null,t[42]=c,t[43]=l,t[44]=n.brokerSecretOpenAuthorization,t[45]=oe):oe=t[45];let se;t[46]!==i||t[47]!==o||t[48]!==a||t[49]!==F||t[50]!==L||t[51]!==f||t[52]!==S||t[53]!==w||t[54]!==v||t[55]!==p||t[56]!==m||t[57]!==D||t[58]!==s||t[59]!==N||t[60]!==j||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?(se=j?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:S,children:n.brokerSecretTitle}),(0,$.jsx)(_,{id:S,value:a,labels:N,reveal:ct,loadFailedLabel:f||n.brokerSecretRevealFailed,maskedHelp:n.brokerSecretMaskedHelp,notInConfigFile:n.brokerSecretNotInConfigFile,readOnly:!0}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(A,{type:`button`,variant:`secondary`,disabled:s,onClick:()=>{E({type:`patch`,patch:{reconfiguring:!0}})},children:n.brokerSecretReconfigure}),(0,$.jsx)(A,{type:`button`,variant:`ghost`,disabled:s,onClick:v,children:n.brokerSecretClear})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{className:`sr-only`,htmlFor:S,children:n.brokerSecretTitle}),(0,$.jsx)(_,{id:S,value:o,onChange:p,placeholder:n.brokerSecretPlaceholder,labels:N,disabled:s}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsxs)(A,{type:`button`,disabled:s||!F,onClick:m,children:[s?(0,$.jsx)(b,{className:`size-4 animate-spin`}):null,w?n.brokerSecretSaveAndContinue:n.brokerSecretSave]}),i?(0,$.jsx)(A,{type:`button`,variant:`ghost`,disabled:s,onClick:v,children:n.brokerSecretClear}):null,D?(0,$.jsx)(A,{type:`button`,variant:`ghost`,disabled:s,onClick:L,children:n.brokerSecretCancelReconfigure}):null]})]}),t[46]=i,t[47]=o,t[48]=a,t[49]=F,t[50]=L,t[51]=f,t[52]=S,t[53]=w,t[54]=v,t[55]=p,t[56]=m,t[57]=D,t[58]=s,t[59]=N,t[60]=j,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]=se):se=t[71];let q;t[72]===u?q=t[73]:(q=u?(0,$.jsx)(`p`,{className:`text-xs text-emerald-700 dark:text-emerald-400`,children:u}):null,t[72]=u,t[73]=q);let J;t[74]!==K||t[75]!==ae||t[76]!==oe||t[77]!==se||t[78]!==q?(J=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[K,ae,oe,se,q]}),t[74]=K,t[75]=ae,t[76]=oe,t[77]=se,t[78]=q,t[79]=J):J=t[79];let ce;t[80]!==W||t[81]!==J?(ce=(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[W,J]}),t[80]=W,t[81]=J,t[82]=ce):ce=t[82];let Y;t[83]!==ce||t[84]!==z?(Y=(0,$.jsx)(ue,{className:z,children:ce}),t[83]=ce,t[84]=z,t[85]=Y):Y=t[85];let le;return t[86]!==x||t[87]!==Y?(le=(0,$.jsx)(`div`,{ref:x,id:`tunnel-broker-secret-setup`,children:Y}),t[86]=x,t[87]=Y,t[88]=le):le=t[88],le}function ct(){return _e().then(lt)}function lt(e){return e.registrationSecret??null}var ut={actionError:null,starting:!1,stopping:!1,savingAutoStart:!1,consentOpen:!1,autoStartConfirmOpen:!1,releaseConfirmOpen:!1,releasing:!1,brokerSecretDraft:``,savingBrokerSecret:!1,authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null};function dt({embedded:e=!1}){let t=c(e=>e.language),n=l(t).tunnelSettings,r=!!s(e=>e.conversationId),[i,a]=(0,Z.useReducer)(U,ut),{actionError:o,starting:u,stopping:d,savingAutoStart:f,consentOpen:p,autoStartConfirmOpen:m,releaseConfirmOpen:h,releasing:g,brokerSecretDraft:_,savingBrokerSecret:y,authorizingBrokerSecret:x,brokerSecretAuthorizationUrl:S,brokerSecretNotice:C}=i,w=(0,Z.useRef)(null),{data:T}=V(r),{data:E,error:D,isLoading:j,mutate:M}=k(r?`tunnel-status`:null,ge,{refreshInterval:e=>u?1e3:e?.frpcDownload||e?.state===`connecting`||e?.state===`reconnecting`?2e3:6e4}),N=(0,Z.useMemo)(()=>{let e=T?.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 E?.config?.autoStart===!0},[T,E?.config?.autoStart]),P=(0,Z.useMemo)(()=>{let e=T?.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``},[T]),F=te(P),I=E?.registrationSecret?.configured??F;(0,Z.useEffect)(()=>{let e=()=>{M()};return window.addEventListener(`tunnel-status`,e),()=>window.removeEventListener(`tunnel-status`,e)},[M]);let L=(0,Z.useMemo)(()=>[n.consentBullet1,n.consentBullet2,n.consentBullet3],[n.consentBullet1,n.consentBullet2,n.consentBullet3]),R=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{starting:!0}});try{await ye(),await M(),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{starting:!1}})}},[M]),z=(0,Z.useCallback)(()=>{if(!I){a({type:`patch`,patch:{actionError:n.brokerSecretRequiredBeforeStart}}),w.current?.scrollIntoView({behavior:`smooth`,block:`start`});return}if(E?.consentRequired){a({type:`patch`,patch:{consentOpen:!0}});return}R()},[I,E?.consentRequired,R,n.brokerSecretRequiredBeforeStart]),H=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{consentOpen:!1}}),a({type:`patch`,patch:{actionError:null}});try{await de(),await Promise.all([M(),R()])}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}},[M,R]),ee=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{actionError:null}}),a({type:`patch`,patch:{stopping:!0}});try{await pe(),await M(),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{stopping:!1}})}},[M]),G=(0,Z.useCallback)(async e=>{a({type:`patch`,patch:{savingAutoStart:!0}}),a({type:`patch`,patch:{actionError:null}});try{await ve({autoStart:e}),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingAutoStart:!1}})}},[]),K=(0,Z.useCallback)(()=>{if(N){G(!1);return}if(E?.consentRequired){a({type:`patch`,patch:{actionError:n.consentExpiredBanner}});return}if(!E?.canAutoStart){a({type:`patch`,patch:{actionError:n.autoStartHint}});return}a({type:`patch`,patch:{autoStartConfirmOpen:!0}})},[G,E?.canAutoStart,E?.consentRequired,n,N]),q=(0,Z.useCallback)(async()=>{let e=_.trim();if(e){a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ve({registrationSecret:e}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretSaved}}),B(),await M(),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}})}}},[_,M,n.brokerSecretSaved]),J=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{savingBrokerSecret:!0,actionError:null,brokerSecretNotice:null}});try{await ve({registrationSecret:null}),a({type:`patch`,patch:{brokerSecretDraft:``,brokerSecretNotice:n.brokerSecretCleared}}),B(),await M()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{savingBrokerSecret:!1}})}},[M,n.brokerSecretCleared]),ce=(0,Z.useCallback)(async()=>{let e=oe(),t=null,r=null;a({type:`patch`,patch:{authorizingBrokerSecret:!0,brokerSecretAuthorizationUrl:null,brokerSecretNotice:null,actionError:null}});try{for(t=(await ne(`xopc-tunnel`)).sessionId;;){await new Promise(e=>window.setTimeout(e,1e3));let i=await ie(t);if(i.authUrl&&i.authUrl!==r&&(r=i.authUrl,a({type:`patch`,patch:{brokerSecretAuthorizationUrl:i.authUrl}}),await ae(i.authUrl,e)),i.status===`failed`||i.status===`cancelled`)throw Error(i.error??i.message??`OAuth authorization failed`);if(i.status===`completed`){await he(),await Promise.all([M(),B()]),a({type:`patch`,patch:{brokerSecretNotice:n.brokerSecretSaved,brokerSecretDraft:``}});return}}}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{se(e),t&&re(t).catch(()=>void 0),a({type:`patch`,patch:{authorizingBrokerSecret:!1,brokerSecretAuthorizationUrl:null}})}},[M,n.brokerSecretSaved]),Y=(0,Z.useCallback)(async()=>{a({type:`patch`,patch:{releaseConfirmOpen:!1,actionError:null,releasing:!0}});try{await pe({release:!0}),await M(),B()}catch(e){a({type:`patch`,patch:{actionError:e instanceof Error?e.message:String(e)}})}finally{a({type:`patch`,patch:{releasing:!1}})}},[M]),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=E??{enabled:!1,state:`disconnected`,subdomain:null,publicUrl:null,connectedSince:null,frpcPid:null,lastHeartbeatAt:null,lastError:null,consentRequired:!0,config:{autoStart:N,brokerUrl:`https://frp.xopc.ai/api`}},me=E?.consentRequired&&(X.enabled||N||E?.consent?.acceptedAt),_e=(0,$.jsx)(st,{t:n,brokerSecretReady:I,brokerSecretConfiguredInConfig:F,brokerSecretMaskedValue:F?P:``,brokerSecretDraft:_,savingBrokerSecret:y,authorizingBrokerSecret:x,brokerSecretAuthorizationUrl:S,brokerSecretNotice:C,copyFailedLabel:l(t).clipboard.copyFailed,onDraftChange:e=>a({type:`patch`,patch:{brokerSecretDraft:e}}),onSave:()=>void q(),onAuthorize:()=>void ce(),onClear:()=>void J(),sectionRef:w}),be=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ue,{open:p,title:n.consentTitle,intro:n.consentIntro,bullets:L,checkboxLabel:n.consentCheckbox,confirmLabel:me?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,_e,(0,$.jsx)(at,{t:n,status:X,isLoading:j,statusErr:D,starting:u,stopping:d,showConsentExpired:!!me,copyLabels:le,startDisabled:!I,startDisabledReason:I?void 0:n.brokerSecretRequiredBeforeStart,stepLabel:n.flowStepStart,onStart:z,onStop:()=>void ee()}),(0,$.jsxs)(Ve,{showLabel:n.showOptions,hideLabel:n.hideOptions,children:[(0,$.jsxs)(`label`,{className:O(`flex items-center gap-3 text-sm text-fg`,!N&&!E?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:N,disabled:f||!N&&!E?.canAutoStart,onChange:K}),n.autoStart]}),!E?.canAutoStart&&!N?(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)(A,{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)(b,{className:`size-4 animate-spin`}):null,n.release]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.releaseHint})]}):null]}),(0,$.jsx)(Ve,{showLabel:n.showAdvanced,hideLabel:n.hideAdvanced,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-xl bg-surface-base/45 p-4 text-xs text-fg-subtle`,children:[(0,$.jsxs)(`p`,{className:`flex items-start gap-2`,children:[(0,$.jsx)(v,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(fe,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]})}),be]}):(0,$.jsxs)(`div`,{className:e?`flex w-full flex-col gap-6`:`flex w-full flex-col gap-6 px-3 py-8 sm:px-5 xl:px-6`,children:[e?null:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:n.title}),(0,$.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:n.subtitle})]}),o?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:o}):null,_e,(0,$.jsx)(at,{t:n,status:X,isLoading:j,statusErr:D,starting:u,stopping:d,showConsentExpired:!!me,copyLabels:le,startDisabled:!I,startDisabledReason:I?void 0:n.brokerSecretRequiredBeforeStart,onStart:z,onStop:()=>void ee()}),X.subdomain||X.publicUrl?(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(0,$.jsxs)(A,{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)(b,{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:O(`flex items-center gap-3 text-sm text-fg`,!N&&!E?.canAutoStart?`cursor-not-allowed opacity-60`:`cursor-pointer`),children:[(0,$.jsx)(`input`,{type:`checkbox`,className:`size-4 rounded border-edge accent-accent`,checked:N,disabled:f||!N&&!E?.canAutoStart,onChange:K}),n.autoStart]}),!E?.canAutoStart&&!N?(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)(v,{className:`mt-0.5 size-4 shrink-0 text-accent`}),(0,$.jsx)(`span`,{children:n.brokerNote})]}),(0,$.jsx)(fe,{language:t,label:n.brokerDocsLink,section:`public-tunnel`,className:`text-xs`})]}),be]})}function ft(e,t){return e.tabs[t]}function pt(e,t){return e.tabIntro[t]}function mt(e){switch(e){case`tailscale`:return`tailscale-serve`;case`public`:return`public-tunnel`;case`reverse-proxy`:return`reverse-proxy`;case`ssh`:return`ssh-tunnel`;case`lan`:return`lan`;default:return}}function ht(e){let t=(0,Q.c)(7),{tab:n,onOpenTab:r}=e;switch(n){case`guide`:{let e;return t[0]===r?e=t[1]:(e=(0,$.jsx)(Ae,{onOpenTab:r}),t[0]=r,t[1]=e),e}case`tailscale`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(xe,{embedded:!0}),t[2]=e):e=t[2],e}case`public`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(dt,{embedded:!0}),t[3]=e):e=t[3],e}case`reverse-proxy`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(X,{}),t[4]=e):e=t[4],e}case`ssh`:{let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Re,{}),t[5]=e):e=t[5],e}case`lan`:{let e;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(Pe,{}),t[6]=e):e=t[6],e}}}function gt(){let e=(0,Q.c)(3),t=o(),n=c(vt),r=l(n).remoteAccess,a=!!s(_t),[d,f]=i(),p=G(),m=Be(d.get(`tab`)),h=d.get(`intent`)===`mobile-pairing`,g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={refreshInterval:2e3},e[0]=g):g=e[0];let _=k(h?`device-pairing-readiness`:null,me,g),v;e[1]===f?v=e[2]:(v=e=>{f(t=>{let n=new URLSearchParams(t);return e===`guide`?n.delete(`tab`):n.set(`tab`,e),n},{replace:!0})},e[1]=f,e[2]=v);let y=v,b=pt(r,m),x=ze.filter(e=>p||e!==`ssh`&&e!==`reverse-proxy`||e===m).map(e=>({id:e,label:ft(r,e)}));return(0,$.jsxs)(q,{children:[(0,$.jsx)(J,{title:r.pageTitle,meta:(0,$.jsx)(fe,{language:n,label:r.docsLink,section:mt(m),className:`mt-1`})}),a?(0,$.jsxs)($.Fragment,{children:[h?(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)(T,{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)(A,{variant:`primary`,disabled:!_.data?.ready,onClick:()=>t(`/settings/devices?startDevicePairing=mobile`),children:[_.data?.ready?r.mobilePairingFlow.continue:r.mobilePairingFlow.waiting,(0,$.jsx)(u,{className:`size-4`,"aria-hidden":!0})]})]}):null,(0,$.jsx)(H,{items:x,activeTab:m,onChange:y,ariaLabel:r.tabsAria,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`}),(0,$.jsx)(ce,{id:m,activeTab:m,tabIdPrefix:`remote-access-tab`,panelIdPrefix:`remote-access-panel`,title:ft(r,m),hint:m===`public`?void 0:b,showHeading:!1,framed:!1,children:(0,$.jsx)(ht,{tab:m,onOpenTab:y})})]}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.guide.needToken})]})}function _t(e){return e.conversationId}function vt(e){return e.language}export{gt as RemoteAccessHub};
@@ -0,0 +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-5Hf8J8-_.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-DlvPkE5Y.js","assets/rolldown-runtime-aKtaBQYM.js","assets/vendor-react-BOUWij0V.js","assets/chunk-KS7C4IRE-CiwuuyV8.js","assets/preload-helper-Czpn1I53.js","assets/locale-store-5Hf8J8-_.js","assets/messages-uXxg5p54.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-DD8fmrxH.js","assets/check-DUBLcKHA.js","assets/skeleton-BI5TyibZ.js","assets/dist-CaUuvp8-.js","assets/dist-CxGUk8J-.js","assets/es2015-DBLcMg5B.js","assets/dist-DusecO_p.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/vendor-swr-CdRzEUwF.js","assets/button-CnRSIP6m.js","assets/dist-DfWfZ9iu.js","assets/session-api-VquhIBHI.js","assets/gateway-startup-retry-N3k-C7c2.js","assets/interaction-BdhHBbYa.js","assets/gateway-config-swr-Bt8w0Iio.js","assets/registry-api-B1Mh3bNo.js","assets/form-field-width-DJw_jULe.js","assets/page-tabs-oeTY7z3_.js","assets/sliding-indicator-hwz0sx3h.js","assets/agent-avatar-display-B1ycycx2.js","assets/loopi-CNtmi9FU.js","assets/loopi-C09I2mNj.css","assets/sliding-tab-list-DuQyViqe.js","assets/chat-agents-api-l80cvSac.js","assets/settings-form-draft-Dy10ldo8.js","assets/model-selector-ksLo-5B_.js","assets/open-capability-settings-Cvb65hQB.js","assets/segmented-styles-Cqb91xsn.js","assets/settings-advanced-section-c9_iZ-46.js","assets/settings-mode-store-Dem6-TBe.js","assets/middleware-Pd0e8Igk.js","assets/number-input-El7Szeln.js","assets/settings-page-header-C8a_oOyw.js","assets/external-link-DjqjBmc3.js","assets/sparkles-DHlfQFAF.js","assets/settings-page-layout-CTSRWljG.js","assets/settings-form-section-num14vSv.js","assets/pencil-DmIY3Oa-.js","assets/use-autosave-B3p2QWaF.js","assets/circle-alert-BEjgurr2.js","assets/loader-circle-CifKLtgG.js","assets/settings-advanced-gate-Ckc1aCLG.js","assets/usage-page-cPbirpXX.js","assets/bot-DjLkhyZL.js","assets/gauge-C78eD2BA.js","assets/refresh-cw-BRlGaq2w.js","assets/timer-rCwGHjuO.js","assets/xopc-cloud-account-card-CCOOBG-7.js","assets/cloud-C4-yfnnk.js","assets/triangle-alert-2JXFNNKU.js","assets/cloud-credits-B-nbtkqv.js","assets/automations-page-DM4IdUJh.js","assets/automations-workspace-CXLu04I-.js","assets/activity-YogQEteU.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-pzSRu7av.js","assets/file-image-CDUPkZvG.js","assets/app-link-CytZ5zkp.js","assets/product-delivery-BU_H84jL.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-Uk05lF9i.js","assets/tasks-DRmd6sWt.js","assets/specialists-xbB3xL9e.js","assets/files-BNL4kkSB.js","assets/session-manager-DNMosCtW.js","assets/constants-DBtMsXdW.js","assets/local-session-drafts-DHM4vWDO.js","assets/tool-activity-BtJkgjFf.js","assets/personal-proactivity-DaRnbB1f.js","assets/attachment-utils-core-BIOUBrpT.js","assets/gateway-realtime-CyCCNUxm.js","assets/gateway-realtime-store-0gmDfPeP.js","assets/agents-admin-api-CASGzvkW.js","assets/page-header-store-reh1es-3.js","assets/refresh-button-bU_0NarN.js","assets/dist-D3lWNSe7.js","assets/automation-task-card-Cp3RIw5d.js","assets/automation-api-DtJfd1QM.js","assets/automation-display-BlGt8MAC.js","assets/agent-display-names-Bje7vfSn.js","assets/browser-automation-inputs-DjUW7PEB.js","assets/browser-automations-page-Cf8AoQz1.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-C6NZgaA1.js","assets/home-page-eRuAzi58.js","assets/history-DXH_9jsE.js","assets/paperclip-f1HujQY1.js","assets/composer-payload-handoff-DYuhKZRC.js","assets/use-file-preview-expanded-CO4SC-LX.js","assets/app-window-DXFNqt_0.js","assets/message-square-plus-XP0tGdlV.js","assets/rotate-cw-LIg3Am9S.js","assets/save-DRDABU--.js","assets/activity-store-CKrylgib.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-CgrcNyBc.js","assets/mic-CuUb7zc-.js","assets/rotate-ccw-JM1TBLpp.js","assets/file-preview-surface-BsB7bnFH.js","assets/phone-workspace-store-mawKT5kV.js","assets/shares-api-CztKbxdd.js","assets/voice-transcribe-api-BqIs0jgv.js","assets/workspace-editor-agent-store-Dw6wtadX.js","assets/voice-input-shortcut-events-hso9_VvT.js","assets/use-composer-attachments-D-AEYC85.js","assets/chevron-left-DqFhpbvK.js","assets/file-BqMS_3DT.js","assets/share-link-dialog-C5JTTxsy.js","assets/globe-DSSGFWFn.js","assets/copy-text-row-CYIv7RfP.js","assets/capabilities-D0-HCZ5J.js","assets/capabilities-CwdjWz2r.js","assets/skill-wire-pattern-BPpeIcCi.js","assets/date-formatters-DukWSVwc.js","assets/tab-completion-input-CxtEp0aP.js","assets/task-result-evidence-CGZKMnNo.js","assets/file-text-D12HbeVy.js","assets/task-detail-page-CysJhG3B.js","assets/chat-page-CT3K7lFT.js","assets/arrow-left-D880xG-P.js","assets/arrow-up-D5ZtR1QT.js","assets/product-automation-feedback-DYwhL37Y.js","assets/notes-api-DocbsBbT.js","assets/chat-chart-block-BwP5QXEk.js","assets/volume-2-BSJhAY97.js","assets/book-open-CCGtrT3R.js","assets/working-directory-picker-modal-Ta73QrNw.js","assets/file-archive-DanfQJNe.js","assets/send-1f1Ntw6E.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-CsoAidXp.js","assets/secret-input-BQvFXqzz.js","assets/is-masked-secret-DOkL5b_X.js","assets/connectors-api-BzkgVBYC.js","assets/oauth-provider-connect-GxkF0vWJ.js","assets/models-hub-cache-DhZng2nF.js","assets/oauth-api-CCFIPbA0.js","assets/smartphone-DSSsQFqA.js","assets/wrench-DFb4r8bH.js","assets/new-session-preferences-gb411vZP.js","assets/extension-provider-BA0Y2Rvs.js","assets/theme-store-DOJ9tu-j.js","assets/chunk-D32TOXHM-DQIy-Baq.js","assets/tool-friendly-title-DGmi7rCQ.js","assets/voice-call-context-BM2A4bLz.js","assets/use-directory-picker-C4p7AgWY.js","assets/confirm-dialog-XGclfBqe.js","assets/command-palette-api-CtapG8ck.js","assets/skill-list-api-Cn07P6qZ.js","assets/skill-api-utils-C7V4JVXM.js","assets/dev-view-store-D8XYHVqG.js","assets/extension-iframe-host-CnOdNwbo.js","assets/api-C4LxuNzq.js","assets/runtime-health-D2TDFLLq.js","assets/terminal-panel-store-YwLUkuyV.js","assets/agents-app-path-ciChvpCS.js","assets/use-media-query-ady-FgjK.js","assets/oauth-authorization-window-o6URRos4.js","assets/page-context-draft-CMRDNv4d.js","assets/side-chat-shortcut-BIw-1TTD.js","assets/chat-page-zQeUaawJ.css","assets/date-picker-ByTasrfl.js","assets/calendar-days-hw_Y-g-s.js","assets/page-context-capture-button-CvWLVeRA.js","assets/dependency-picker-Dh8hPmsT.js","assets/projects-page-CkifzKjz.js","assets/arrow-right-DSSvoX71.js","assets/project-understanding-D3w8cZEm.js","assets/project-detail-page-CRJb69vP.js","assets/resource-unavailable-BUWsH3fp.js","assets/discussion-annotation-sync-YvlVw17j.js","assets/workspace-open-location-menu-Bi2vRvaQ.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-B7uBuPtA.js","assets/with-selector-xonYxPoM.js","assets/directory-picker-path-field-Cjv7rdo3.js","assets/skill-api-B7kWl6LK.js","assets/skill-reload-api-Bhl0u16_.js","assets/note-detail-panel-B6RbjwJq.js","assets/code-xml-DJtYhZUF.js","assets/note-image-lightbox-BCjvBqwy.js","assets/project-detail-page-DLioOiRN.css","assets/notes-page-B7889s6-.js","assets/recording-upload-ZkmRf0GR.js","assets/star-BUWJqJ5c.js","assets/capabilities-page-DwDkritH.js","assets/product-navigation-Co8pLbDP.js","assets/capability-links-DzQWK1Fh.js","assets/capability-header-actions-CTUCuBlW.js","assets/user-model-page-DuRALzhe.js","assets/understanding-refresh-store-9apSmAVL.js","assets/briefcase-business-BsoCaI_t.js","assets/understanding-activity-store-CmwtE8Kd.js","assets/sliders-horizontal-DqsYor6I.js","assets/logs-page-Dx_JIOpF.js","assets/clipboard-copy-DuJk5WD6.js","assets/settings-page-B_wNfFQe.js","assets/browser-settings-page-DV2FNEDf.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-DIIt7JOE.js","assets/beta-badge-BnzdzIEl.js","assets/global-defaults-api-D8EB2vfY.js","assets/providers-api-CKFg2PZQ.js","assets/mobile-pair-qr-CuIbmw5x.js","assets/browser-BLJWD7WI.js","assets/phone-model-picker-ugrT9GJu.js","assets/phone-dependencies-card-DLWblGj7.js","assets/runtime-tools-api-BXvn5ImA.js","assets/computer-settings-page-DZtMuihL.js","assets/mouse-pointer-2-DZ51Onvj.js","assets/extension-page-C1nGr4DD.js","assets/extension-settings-page-QIPI8e7k.js","assets/voice-config-api-D9iNJSvm.js","assets/voice-api-key-field-DbSQHZZW.js","assets/schema-form-BKeP5G7b.js","assets/secret-input-labels-B5Jl5HqK.js","assets/extension-debug-page-CXx3m5-B.js","assets/share-preview-page-D-KxzXgm.js","assets/local-apps-page-rjhHfLpe.js","assets/box-DvYoGszj.js","assets/local-app-workbench-page-DbtU_A-l.js","assets/power-off-CwwQ7Gp7.js","assets/power-ZI-pBczI.js","assets/product-open-page-B5G4X71t.js","assets/open-route-MyZ2sB9C.js","assets/work-discovery-page-DAQPKVDs.js","assets/service-recommendation-list-CpVUnz89.js","assets/package-wATCyihJ.js","assets/agent-plugin-dialog-D3yCqVan.js","assets/capability-icon-DVoZxEgW.js","assets/extension-marketplace-api-BABmUY2s.js","assets/work-discovery-overlay-fsL9RJqB.js","assets/brand-logo-CgT9zQfr.js","assets/setup-status-panel-BNZoqF40.js","assets/stethoscope-DRqTAtjD.js","assets/runtime-impact-DbySfhdp.js","assets/appearance-settings-CmCF7PZ5.js","assets/preference-select-fields-CmLZNwbm.js","assets/keyboard-shortcuts-settings-DFhOP2aD.js","assets/personal-settings-panel-DAcl8DU4.js","assets/use-personal-profile-DocmhC9I.js","assets/system-settings-panel-Ce6zIcki.js","assets/browser-notification-delivery-DmE2FgGc.js","assets/shield-B1sI_cxl.js","assets/desktop-pet-settings-COaboNn1.js","assets/wand-sparkles-CkSL-3Fy.js","assets/desktop-pet-sprite-D5YYq2zC.js","assets/desktop-pet-sprite-BuB0g8zv.css","assets/app-management-settings-panel-CDnZNKHt.js","assets/capabilities-settings-panel-mme16Fbp.js","assets/arrow-up-right-T72JbQ1Q.js","assets/connected-providers-grid-BQH5k3iC.js","assets/navigation-D62kPsA9.js","assets/image-generation-api-C99Fsofm.js","assets/gateway-settings-BvKq7vuz.js","assets/network-BUQLY1BV.js","assets/gateway-restart-Ty4AzDxa.js","assets/runtime-tools-settings-panel-BALcypHp.js","assets/remote-access-hub-Dw5rG-aA.js","assets/server-BlHCBjiE.js","assets/tunnel-api-B5-Ypvqa.js","assets/shares-settings-CzR21j6e.js","assets/use-workspace-tree-VraTGKx-.js","assets/agent-defaults-settings-panel-D285zy0S.js","assets/management-settings-CuSzixOw.js","assets/shield-off-2jsucUds.js","assets/device-pairing-wizard-BKMpLdIA.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-DlvPkE5Y.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-cPbirpXX.js`),__vite__mapDeps([78,1,2,3,4,5,6,79,8,21,22,17,18,23,24,25,26,27,28,29,75,31,32,80,81,82,44,45,58,54,68,69,70,71,83,84,85,86,19])),r=()=>e(()=>import(`./automations-page-DM4IdUJh.js`),__vite__mapDeps([87,2,1,88,4,3,5,6,89,8,90,22,91,92,21,17,18,23,24,25,26,27,28,29,75,93,94,95,96,11,97,98,99,33,100,39,43,46,101,102,19,103,104,105,106,107,12,108,73,109,81,40,110,70,111,42,112,44,45,113,114,115,116,117,118,47,48,119,120,121,122,123,124,51,125,50,126,58,54,59,127,128,61,15,62,49,52,129,10,130,131,132,133])),i=()=>e(()=>import(`./browser-automations-page-Cf8AoQz1.js`),__vite__mapDeps([134,1,2,3,4,5,6,79,8,21,22,17,18,23,24,25,26,27,28,29,135,136,10,137,76,73,109,138,139,42,43,45,126,140,133])),a=()=>e(()=>import(`./home-page-eRuAzi58.js`),__vite__mapDeps([141,1,2,4,3,5,6,90,8,91,92,75,93,10,69,142,99,33,100,39,43,17,18,46,25,26,101,102,19,103,104,105,106,107,12,143,81,15,70,45,23,24,27,28,114,115,144,22,145,146,94,95,96,34,76,147,37,73,148,149,40,118,47,48,49,150,122,151,152,153,58,54,154,155,116,128,156,157,158,159,160,62,161,117,119,120,121,123,124,51,125,50,44,66,162,163,164,165,166,167,21,29,168,169,170,171,172,126,173,174,175,176])),o=()=>e(()=>import(`./task-detail-page-CysJhG3B.js`),__vite__mapDeps([177,1,2,3,4,5,6,178,8,146,20,179,180,181,89,79,93,135,10,69,182,99,33,100,39,43,17,18,46,25,26,101,102,19,103,104,105,106,107,183,22,94,23,76,13,108,109,157,148,70,85,184,112,44,45,130,185,91,92,186,187,49,52,60,21,24,27,28,29,75,188,189,30,190,32,137,95,166,176,191,34,192,145,96,147,37,143,73,81,149,40,118,47,48,150,122,151,152,153,58,54,154,155,116,128,11,168,142,193,194,195,196,197,156,198,199,200,201,202,50,203,84,204,51,205,15,41,110,206,139,42,167,169,207,158,159,160,114,115,113,117,119,120,121,123,124,125,208,209,170,210,66,144,62,161,162,163,164,165,171,172,211,212,213,126,56,57,55,59,214,215,216,217,218,61,219,220,129,90,12,131,221,222,223,224,132,225,226,227,228,229,173,230,231,175,232,233])),s=()=>e(()=>import(`./projects-page-CkifzKjz.js`),__vite__mapDeps([234,1,2,3,4,5,6,20,8,235,186,187,76,17,18,45,25,46,26,49,52,60,21,22,23,24,27,28,29,191,34,38,39,157,40,43,113,19,114,115,116,126,236,44,214,173])),c=()=>e(()=>import(`./project-detail-page-CRJb69vP.js`),__vite__mapDeps([237,1,2,3,4,5,6,238,20,8,239,91,45,17,18,25,179,235,181,89,79,93,135,10,69,182,99,33,100,39,43,46,26,101,102,19,103,104,105,106,107,183,22,94,23,76,13,108,109,157,148,70,85,184,112,44,130,90,165,92,186,187,49,52,60,21,24,27,28,29,75,188,30,190,240,34,145,146,95,96,147,37,143,73,81,149,40,118,47,48,150,122,151,152,153,58,54,154,155,116,128,241,166,176,192,11,142,242,36,195,243,156,244,38,41,110,139,245,246,42,247,248,114,115,113,164,167,168,169,158,159,160,170,119,171,172,125,50,53,126,236,215,127,249,210,66,216,217,218,132,250,74,173,251,214,252,253,230,231,88,97,98,12,111,117,120,121,123,124,51,59,61,15,62,129,131,133,232,227,254,255,203,84,204,205,256,233,257])),l=()=>e(()=>import(`./notes-page-B7889s6-.js`),__vite__mapDeps([258,1,2,3,4,5,6,20,8,239,91,45,17,18,25,179,235,180,181,89,79,93,135,10,69,182,99,33,100,39,43,46,26,101,102,19,103,104,105,106,107,183,22,94,23,76,13,108,109,157,148,70,85,184,112,44,130,231,21,24,27,28,29,95,176,192,259,156,143,40,260,42,247,151,126,58,54,154,215,128,254,255,96,142,12,73,81,111,139,117,118,47,48,119,120,121,122,123,124,51,125,50,210,66,160,203,84,152,204,205,227,256,232,171,170,114,115])),u=()=>e(()=>import(`./capabilities-page-DwDkritH.js`),__vite__mapDeps([261,1,2,4,3,5,6,262,23,17,18,126,263,264,40,8,45,25,24,26,27,28,225])),d=()=>e(()=>import(`./user-model-page-DuRALzhe.js`),__vite__mapDeps([265,1,2,3,4,5,6,185,8,79,266,44,267,231,22,91,92,21,17,18,23,24,25,26,27,28,29,75,93,10,32,33,137,95,268,34,11,196,76,243,12,73,39,81,40,110,269,70,245,42,247,248,43,45,46,151,53,49,54,126,56,57,58,128,230,165])),f=()=>e(()=>import(`./logs-page-Dx_JIOpF.js`),__vite__mapDeps([270,1,2,3,4,5,6,91,8,21,22,17,18,23,24,25,26,27,28,29,271,33,176,192,80,97,81,40,16,43,45,46,47,19,48,104,123,124,52,54,127,63,68,69,70,71])),p=()=>e(()=>import(`./settings-page-B_wNfFQe.js`),__vite__mapDeps([272,1,2,3,4,5,6])),m=()=>e(()=>import(`./browser-settings-page-DV2FNEDf.js`),__vite__mapDeps([273,1,2,3,4,5,6,91,8,21,22,17,18,23,24,25,26,27,28,29,93,274,33,69,96,34,80,168,275,76,243,276,81,15,85,44,45,50,60,277,67,68,70,71,74,75,140])),h=()=>e(()=>import(`./phone-settings-page-DIIt7JOE.js`),__vite__mapDeps([278,1,2,3,4,5,6,146,8,179,91,21,22,17,18,23,24,25,26,27,28,29,279,109,39,81,40,110,206,43,44,45,159,46,62,128,280,50,281,51,48,201,204,68,69,70,282,283,284,285,93,33,207,286])),g=()=>e(()=>import(`./computer-settings-page-DZtMuihL.js`),__vite__mapDeps([287,1,2,3,4,5,6,22,8,168,198,288,39,110,139,44,45,17,18,25,23,50,51,48,152,61,21,24,26,27,28,29,15,62,49,52,280,68,69,70,71])),_=()=>e(()=>import(`./extension-page-C1nGr4DD.js`),__vite__mapDeps([289,1,2,3,4,238,5,6,209,44,19,117,118,47,48,119,120,121,122,123,124,51,125,50,170,114,115,103,150,210,66,126,220,46,25,26,60])),v=()=>e(()=>import(`./extension-settings-page-QIPI8e7k.js`),__vite__mapDeps([290,1,2,3,4,5,6,238,21,8,22,17,18,23,24,25,26,27,28,29,44,45,209,19,117,118,47,48,119,120,121,122,123,124,51,125,50,170,114,115,103,150,210,66,52,220,46,60,277,68,69,70,71,74,75,76,291,292,200,93,94,96,104,49,201,293,294,67])),y=()=>e(()=>import(`./extension-debug-page-CXx3m5-B.js`),__vite__mapDeps([295,1,2,5,6,209,44,19,117,118,47,48,119,120,121,122,123,124,51,4,125,50,170,114,115,103,150,210,66,68,3,69,8,70,17,18,45,25,71])),b=()=>e(()=>import(`./share-preview-page-D-KxzXgm.js`),__vite__mapDeps([296,1,2,4,3,5,6,145,8,146,22,91,94,33,95,69,96,34,76,99,100,39,43,17,18,46,25,26,101,102,19,103,104,105,106,107,147,37,143,73,81,148,149,40,23,118,47,48,49,150,122,151,152,153,58,54,154,155,116,128,27,28,45,183])),x=()=>e(()=>import(`./local-apps-page-rjhHfLpe.js`),__vite__mapDeps([297,1,2,3,4,5,6,235,8,298,39,44,45,17,18,25,23,126,221])),S=()=>e(()=>import(`./local-app-workbench-page-DbtU_A-l.js`),__vite__mapDeps([299,1,2,3,4,5,6,238,179,8,22,93,189,10,69,300,191,142,76,244,301,81,157,110,70,42,85,43,44,45,17,18,25,23,46,26,103,19,113,114,115,116,126,221,222,173,174,232,176,117,118,47,48,119,120,121,122,123,124,51,125,50,171,170,227])),C=()=>e(()=>import(`./product-open-page-B5G4X71t.js`),__vite__mapDeps([302,2,1,3,4,5,6,44,23,17,18,102,19,103,221,303])),w=()=>e(()=>import(`./work-discovery-page-DAQPKVDs.js`).then(e=>e.n),__vite__mapDeps([304,1,2,3,4,5,6,8,305,91,186,187,76,17,18,45,25,46,26,49,52,60,199,21,22,23,24,27,28,29,93,69,200,94,96,104,201,43,202,50,44,152,203,84,204,51,48,205,306,39,307,179,75,30,34,110,247,263,283,308,309,231,92,10,32,268,176,11,196,197,276,70,56,57,214])),T=()=>e(()=>import(`./work-discovery-overlay-fsL9RJqB.js`),__vite__mapDeps([310,1,2,5,6,304,3,4,8,305,91,186,187,76,17,18,45,25,46,26,49,52,60,199,21,22,23,24,27,28,29,93,69,200,94,96,104,201,43,202,50,44,152,203,84,204,51,48,205,306,39,307,179,75,30,34,110,247,263,283,308,309,231,92,10,32,268,176,11,196,197,276,70,56,57,214,311])),E=()=>e(()=>import(`./setup-status-panel-BNZoqF40.js`),__vite__mapDeps([312,1,2,3,4,5,6,89,8,92,93,189,30,275,76,81,313,85,17,18,44,45,25,23,49,50,124,51,48,201,152,217,218,277,281,204,68,69,70,71,72,73,77,65,66,286,314])),D=()=>e(()=>import(`./appearance-settings-CmCF7PZ5.js`),__vite__mapDeps([315,1,2,5,6,21,8,22,17,18,23,24,25,26,27,28,29,49,50,44,316,66,52,210,219,68,3,4,69,70,45,71,77,65])),O=()=>e(()=>import(`./keyboard-shortcuts-settings-DFhOP2aD.js`),__vite__mapDeps([317,1,2,5,6,17,18,152,163,66,228,68,3,4,69,8,70,45,25,71])),k=()=>e(()=>import(`./personal-settings-panel-DAcl8DU4.js`),__vite__mapDeps([318,1,2,5,6,21,8,22,17,18,23,24,25,26,27,28,29,121,19,319,44,68,3,4,69,70,45,71])),A=()=>e(()=>import(`./system-settings-panel-Ce6zIcki.js`),__vite__mapDeps([320,1,2,5,6,321,8,152,69,81,322,17,18,49,60,68,3,4,70,45,25,71,72,73])),j=()=>e(()=>import(`./desktop-pet-settings-COaboNn1.js`),__vite__mapDeps([323,1,2,3,4,5,6,238,91,8,21,22,17,18,23,24,25,26,27,28,29,75,69,147,324,157,49,152,127,81,45,325,326,68,70,71])),M=()=>e(()=>import(`./app-management-settings-panel-CDnZNKHt.js`),__vite__mapDeps([327,1,2,5,6,94,8,76,306,17,18,44,45,25,23,46,26,29,104,49,152,60,277,68,3,4,69,70,71,72,73])),N=()=>e(()=>import(`./capabilities-settings-panel-mme16Fbp.js`),__vite__mapDeps([328,1,2,4,3,5,6,235,8,329,92,21,22,17,18,23,24,25,26,27,28,29,93,330,165,200,94,96,76,104,49,52,201,168,39,40,15,43,44,45,46,50,51,48,294,58,54,204,281,203,84,152,205,69,242,193,156,73,109,14,81,110,269,139,42,85,184,207,62,19,161,117,118,47,119,120,121,122,123,124,125,66,213,331,60,215,61,224,280,277,64,65,226,67,68,70,71,72,74,75,291,292,332,83,86])),P=()=>e(()=>import(`./gateway-settings-BvKq7vuz.js`),__vite__mapDeps([333,1,2,3,4,5,6,21,8,22,17,18,23,24,25,26,27,28,29,75,200,93,94,96,76,104,49,52,201,275,193,334,81,148,335,152,110,322,269,85,44,45,50,294,331,53,54,60,215,46,65,66,277,64,67,68,69,70,71,72,73,77])),F=()=>e(()=>import(`./runtime-tools-settings-panel-BALcypHp.js`),__vite__mapDeps([336,1,2,5,6,21,8,22,17,18,23,24,25,26,27,28,29,75,93,33,157,44,45,127,81,277,68,3,4,69,70,71,77,65,66,286,285,91,207,314])),I=()=>e(()=>import(`./remote-access-hub-Dw5rG-aA.js`),__vite__mapDeps([337,1,2,3,4,5,6,235,8,22,91,92,30,94,69,200,93,96,76,17,18,104,49,52,201,168,193,334,301,338,322,206,16,85,44,45,25,46,26,29,50,53,54,60,215,169,27,28,65,66,281,51,48,204,205,152,64,226,68,70,71,72,73,339,23,331,77])),L=()=>e(()=>import(`./shares-settings-CzR21j6e.js`),__vite__mapDeps([340,1,2,3,4,5,6,22,8,91,21,17,18,23,24,25,26,27,28,29,190,84,94,241,92,95,187,166,100,176,34,192,49,152,142,76,13,39,81,245,42,167,69,168,43,45,46,169,104,44,50,125,52,53,54,60,215,160,341,155,116,19,162,132,277,203,93,204,51,48,205,67,68,70,71,72,73])),R=()=>e(()=>import(`./agent-defaults-settings-panel-D285zy0S.js`),__vite__mapDeps([342,1,2,3,4,5,6,93,8,80,195,138,40,110,269,17,18,44,45,25,23,86,19,152,58,54,217,218,65,66,280,50,64,67,68,69,70,71,74,22,75,76])),z=()=>e(()=>import(`./management-settings-CuSzixOw.js`),__vite__mapDeps([343,1,2,3,4,5,6,89,8,165,92,21,22,17,18,23,24,25,26,27,28,29,194,344,39,40,206,43,44,45,46,47,19,48,53,49,54,154,215,127,81,277,68,69,70,71,345,93,10,33,346,101,102,103,153,169,94,104,205,152,226,339,168,76,301,50,52,331,72,73,282,283])),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};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./chunk-KS7C4IRE-CiwuuyV8.js";var r=e(),i=t();function a(e){let t=(0,r.c)(15),{statuses:a,zh:o}=e;if(a.length===0)return null;let s=o?`关于运行环境`:`About runtimes`,c;t[0]===s?c=t[1]:(c=(0,i.jsx)(`summary`,{className:`w-fit cursor-pointer rounded focus-visible:outline-accent`,children:s}),t[0]=s,t[1]=c);let l=o?`此处检测受管脚本环境;部分工具也可使用系统环境。聊天和手机控制需单独配置模型与设备。`:`These checks cover managed script runtimes. Some tools can use system runtimes. Chat and phone control use separate model and device settings.`,u;t[2]===l?u=t[3]:(u=(0,i.jsx)(`p`,{className:`mt-2 leading-5`,children:l}),t[2]=l,t[3]=u);let d=o?`检查模型`:`Check models`,f;t[4]===d?f=t[5]:(f=(0,i.jsx)(n,{className:`text-accent`,to:`/settings/capabilities/models`,children:d}),t[4]=d,t[5]=f);let p=o?`检查手机`:`Check phones`,m;t[6]===p?m=t[7]:(m=(0,i.jsx)(n,{className:`text-accent`,to:`/settings/phone-use`,children:p}),t[6]=p,t[7]=m);let h;t[8]!==f||t[9]!==m?(h=(0,i.jsxs)(`div`,{className:`mt-2 flex gap-4`,children:[f,m]}),t[8]=f,t[9]=m,t[10]=h):h=t[10];let g;return t[11]!==c||t[12]!==u||t[13]!==h?(g=(0,i.jsxs)(`details`,{className:`mt-3 text-xs text-fg-muted`,children:[c,u,h]}),t[11]=c,t[12]=u,t[13]=h,t[14]=g):g=t[14],g}export{a as t};
@@ -1,4 +1,4 @@
1
- import{a as e,i as t,o as n}from"./locale-store-lIXD1FMw.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,`
1
+ import{a as e,i as t,o as n}from"./locale-store-5Hf8J8-_.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(`
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{i as r,n as i}from"./locale-store-5Hf8J8-_.js";import{t as a}from"./messages-uXxg5p54.js";import{n as o,r as s}from"./popover-select-DD8fmrxH.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-CnRSIP6m.js";import{t as m}from"./refresh-button-bU_0NarN.js";import{n as h}from"./settings-loading-skeleton-BTqvr_Fw.js";import{n as g,t as _}from"./settings-page-header-C8a_oOyw.js";import"./settings-page-layout-CTSRWljG.js";import{t as v}from"./settings-advanced-gate-Ckc1aCLG.js";import{i as y,n as b,r as x}from"./runtime-tools-api-BXvn5ImA.js";import{t as S}from"./phone-dependencies-card-DLWblGj7.js";import{t as C}from"./runtime-impact-DbySfhdp.js";var w=e(t(),1);function T(e){return e?.trim()||void 0}function E(e,t,n){return e?.state!==`ready`||T(t)!==T(n)}var D=n(),O=[`node`,`python`,`uv`];function k(){let e=i(e=>e.language),t=a(e).runtimeToolsSettings,{data:n,error:T,isLoading:k,mutate:A}=f(r(`/api/runtime-tools`)),[j,M]=(0,w.useState)(null),[N,P]=(0,w.useState)(!1),[F,I]=(0,w.useState)(!1),[L,R]=(0,w.useState)({}),[z,B]=(0,w.useState)({}),[V,H]=(0,w.useState)(null),U=Object.values(L).some(Boolean);if((0,w.useEffect)(()=>{n?.payload.config&&M(structuredClone(n.payload.config))},[n?.payload.config]),T)return(0,D.jsxs)(g,{children:[(0,D.jsx)(_,{title:t.title,subtitle:t.loadError}),(0,D.jsx)(p,{onClick:()=>void A(),children:t.refresh})]});if(k||!j)return(0,D.jsx)(g,{children:(0,D.jsx)(h,{sections:3})});let W=new Map(n?.payload.statuses.map(e=>[e.runtime,e])),G=(e,t)=>M(n=>n&&{...n,[e]:{...n[e],...t}}),K=async()=>{P(!0),H(null);try{await y(j),await A()}catch(e){H(e instanceof Error?e.message:String(e))}finally{P(!1)}},q=async(e,t)=>{R(t=>({...t,[e]:!0})),H(null);try{await y(j),await x({runtime:e,action:t,version:e===`uv`?j.uv.version:j[e].version,onProgress:t=>B(n=>({...n,[e]:t}))}),await A()}catch(e){H(e instanceof Error?e.message:String(e))}finally{R(t=>({...t,[e]:!1}))}},J=async()=>{I(!0),H(null);try{await b(),await A()}catch(e){H(e instanceof Error?e.message:String(e))}finally{I(!1)}};return(0,D.jsxs)(g,{gap:`gap-6`,children:[(0,D.jsx)(_,{title:t.title,actions:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(m,{className:`size-9 shrink-0 p-0`,disabled:U,label:t.refresh,onClick:async()=>{await A()}}),(0,D.jsx)(p,{onClick:()=>void J(),disabled:F||U,children:F?t.pruning:t.prune}),(0,D.jsx)(p,{variant:`primary`,onClick:()=>void K(),disabled:N||U,children:N?t.saving:t.save})]})}),(0,D.jsx)(C,{statuses:n?.payload.statuses??[],zh:e===`zh`}),V?(0,D.jsx)(`div`,{className:`rounded-xl bg-danger/10 px-4 py-3 text-sm text-danger`,children:V}):null,(0,D.jsx)(`section`,{className:`rounded-xl bg-surface-hover/20 p-4`,children:(0,D.jsxs)(`label`,{className:`flex items-center justify-between gap-4`,children:[(0,D.jsxs)(`span`,{children:[(0,D.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:t.enabled}),(0,D.jsx)(`span`,{className:`mt-1 block text-xs text-fg-muted`,children:t.enabledHint})]}),(0,D.jsx)(`input`,{type:`checkbox`,checked:j.enabled,onChange:e=>M({...j,enabled:e.target.checked}),className:`size-4 accent-accent`})]})}),(0,D.jsx)(v,{children:(0,D.jsxs)(`section`,{className:`grid gap-4 rounded-xl bg-surface-hover/20 p-4 md:grid-cols-2`,children:[(0,D.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[t.downloadSource,(0,D.jsxs)(o,{value:j.download.source,onChange:e=>M({...j,download:{...j.download,source:e.target.value}}),children:[(0,D.jsx)(s,{value:`auto`,children:t.downloadSources.auto}),(0,D.jsx)(s,{value:`website-only`,children:t.downloadSources.websiteOnly}),(0,D.jsx)(s,{value:`direct-only`,children:t.downloadSources.directOnly})]})]}),(0,D.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[t.gatewayBaseUrl,(0,D.jsx)(`input`,{value:j.download.gatewayBaseUrl,disabled:j.download.source===`direct-only`,onChange:e=>M({...j,download:{...j.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,D.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[t.offlineBundle,(0,D.jsx)(`input`,{value:j.download.bundleDir??``,placeholder:t.offlineBundlePlaceholder,onChange:e=>M({...j,download:{...j.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,D.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[t.proxy,(0,D.jsx)(`input`,{value:j.download.proxy??``,placeholder:`http://127.0.0.1:7890`,onChange:e=>M({...j,download:{...j.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,D.jsx)(S,{}),(0,D.jsx)(`div`,{className:`flex flex-col gap-4`,children:O.map(e=>{let r=W.get(e),i=r?.state===`ready`,a=z[e],f=e===`uv`?j.uv:j[e],m=e===`uv`?n?.payload.config.uv:n?.payload.config[e],h=L[e]===!0,g=E(r,f.version,m?.version);return(0,D.jsxs)(`section`,{className:`flex min-w-0 flex-col gap-5 rounded-xl bg-surface-base/55 p-5 sm:p-6`,children:[(0,D.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:t.runtimeNames[e]}),(0,D.jsx)(`p`,{className:`mt-1 break-words text-xs text-fg-muted`,children:r?.message??t.unknown})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i?(0,D.jsx)(l,{className:`size-5 shrink-0 text-success`}):(0,D.jsx)(c,{className:`size-5 shrink-0 text-warning`}),(0,D.jsx)(`input`,{type:`checkbox`,"aria-label":`${t.runtimeNames[e]} ${t.enabled}`,checked:f.enabled,onChange:t=>{e===`uv`?M({...j,uv:{...j.uv,enabled:t.target.checked}}):G(e,{enabled:t.target.checked})},className:`size-4 accent-accent`})]})]}),(0,D.jsxs)(`div`,{className:e===`uv`?`grid gap-4 md:grid-cols-[minmax(16rem,28rem)]`:`grid gap-4 md:grid-cols-2 xl:grid-cols-3`,children:[(0,D.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[t.version,(0,D.jsx)(`input`,{value:f.version??``,placeholder:r?.requestedVersion,onChange:t=>{let n=t.target.value||void 0;e===`uv`?M({...j,uv:{...j.uv,version:n}}):G(e,{version:n})},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`})]}),e===`uv`?null:(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[t.sourcePolicy,(0,D.jsxs)(o,{value:j[e].preference,onChange:t=>G(e,{preference:t.target.value}),children:[(0,D.jsx)(s,{value:`managed-first`,children:t.preferences.managedFirst}),(0,D.jsx)(s,{value:`system-first`,children:t.preferences.systemFirst}),(0,D.jsx)(s,{value:`managed-only`,children:t.preferences.managedOnly}),(0,D.jsx)(s,{value:`system-only`,children:t.preferences.systemOnly})]})]}),(0,D.jsxs)(`label`,{className:`space-y-1.5 text-xs font-medium text-fg-muted`,children:[t.provisionPolicy,(0,D.jsxs)(o,{value:j[e].provision,onChange:t=>G(e,{provision:t.target.value}),children:[(0,D.jsx)(s,{value:`eager`,children:t.provisions.eager}),(0,D.jsx)(s,{value:`on-demand`,children:t.provisions.onDemand}),(0,D.jsx)(s,{value:`disabled`,children:t.provisions.disabled})]})]})]})]}),a&&h?(0,D.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,D.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3`,children:[(0,D.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[g?(0,D.jsxs)(p,{variant:`primary`,disabled:!j.enabled||!f.enabled||h,onClick:()=>void q(e,`install`),children:[(0,D.jsx)(u,{className:`size-4`}),h?t.working:t.install]}):(0,D.jsxs)(`span`,{className:`inline-flex h-9 items-center gap-2 px-1 text-sm text-success`,children:[(0,D.jsx)(l,{className:`size-4`}),t.installed]}),r?.repairable?(0,D.jsxs)(p,{disabled:!j.enabled||!f.enabled||h,onClick:()=>void q(e,`repair`),children:[(0,D.jsx)(d,{className:`size-4`}),t.repair]}):null]}),(0,D.jsx)(v,{children:r?.resolved?.executable?(0,D.jsx)(`code`,{className:`break-all text-[11px] text-fg-subtle`,children:r.resolved.executable}):null})]})]},e)})})]})}export{k as RuntimeToolsSettingsPanel};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{n as i,r as a}from"./popover-select-DD8fmrxH.js";import{t as o}from"./secret-input-BQvFXqzz.js";import{t as s}from"./cn-0WouolD0.js";import{t as c}from"./secret-input-labels-B5Jl5HqK.js";import{t as l}from"./number-input-El7Szeln.js";var u=n(),d=e(t(),1),f=r();function p(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function m(e){let t=e[`x-order`];return typeof t==`number`&&!Number.isNaN(t)?t:999}function h(e){let t=e[`x-group`];return typeof t==`string`&&t.length>0?t:``}function g(e){return e[`x-hidden`]===!0}function _(e){let t=e.properties;if(!p(t))return[];let n=[];for(let[e,r]of Object.entries(t))p(r)&&(g(r)||n.push({key:e,sub:r,order:m(r),group:h(r),hidden:!1}));return n.sort((e,t)=>e.order-t.order||e.key.localeCompare(t.key)),n}function v(e){let t=new Map;for(let n of e){let e=n.group;t.has(e)||t.set(e,[]),t.get(e).push(n)}return t}function y(e){let t=(0,u.c)(48),{labels:n,id:r,name:a,s,value:l,onChange:d,disabled:p}=e,m=typeof s.description==`string`?s.description:void 0,h=(typeof s[`x-placeholder`]==`string`?s[`x-placeholder`]:null)||m,g=s.format;if(Array.isArray(s.enum)&&s.enum.every(x)){let e;t[0]!==m||t[1]!==r?(e=m?(0,f.jsx)(`p`,{id:`${r}-help`,className:`text-xs text-fg-muted`,children:m}):null,t[0]=m,t[1]=r,t[2]=e):e=t[2];let n=m?`${r}-help`:void 0,o;t[3]===d?o=t[4]:(o=e=>d(e.target.value),t[3]=d,t[4]=o);let c;t[5]===s.enum?c=t[6]:(c=s.enum.map(b),t[5]=s.enum,t[6]=c);let u;t[7]!==p||t[8]!==r||t[9]!==a||t[10]!==n||t[11]!==o||t[12]!==c||t[13]!==l?(u=(0,f.jsx)(i,{id:r,"aria-describedby":n,name:a,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2 text-sm text-fg`,value:l,disabled:p,onChange:o,children:c}),t[7]=p,t[8]=r,t[9]=a,t[10]=n,t[11]=o,t[12]=c,t[13]=l,t[14]=u):u=t[14];let h;return t[15]!==e||t[16]!==u?(h=(0,f.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e,u]}),t[15]=e,t[16]=u,t[17]=h):h=t[17],h}if(g===`password`){let e;t[18]!==m||t[19]!==r?(e=m?(0,f.jsx)(`p`,{id:`${r}-help`,className:`text-xs text-fg-muted`,children:m}):null,t[18]=m,t[19]=r,t[20]=e):e=t[20];let i=m?`${r}-help`:void 0,a=n?.secretInputLabels??c,s;t[21]!==p||t[22]!==r||t[23]!==d||t[24]!==h||t[25]!==i||t[26]!==a||t[27]!==l?(s=(0,f.jsx)(o,{id:r,ariaDescribedBy:i,value:l,onChange:d,placeholder:h,labels:a,disabled:p,inputClassName:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg placeholder:text-fg-muted/70`}),t[21]=p,t[22]=r,t[23]=d,t[24]=h,t[25]=i,t[26]=a,t[27]=l,t[28]=s):s=t[28];let u;return t[29]!==e||t[30]!==s?(u=(0,f.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[e,s]}),t[29]=e,t[30]=s,t[31]=u):u=t[31],u}let _;t[32]!==m||t[33]!==r?(_=m?(0,f.jsx)(`p`,{id:`${r}-help`,className:`text-xs text-fg-muted`,children:m}):null,t[32]=m,t[33]=r,t[34]=_):_=t[34];let v=m?`${r}-help`:void 0,y;t[35]===d?y=t[36]:(y=e=>d(e.target.value),t[35]=d,t[36]=y);let S;t[37]!==p||t[38]!==r||t[39]!==a||t[40]!==h||t[41]!==v||t[42]!==y||t[43]!==l?(S=(0,f.jsx)(`input`,{id:r,"aria-describedby":v,name:a,type:`text`,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg placeholder:text-fg-muted/70`,value:l,placeholder:h,disabled:p,onChange:y}),t[37]=p,t[38]=r,t[39]=a,t[40]=h,t[41]=v,t[42]=y,t[43]=l,t[44]=S):S=t[44];let C;return t[45]!==_||t[46]!==S?(C=(0,f.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[_,S]}),t[45]=_,t[46]=S,t[47]=C):C=t[47],C}function b(e){return(0,f.jsx)(a,{value:e,children:e},e)}function x(e){return typeof e==`string`}function S(e){let t=(0,u.c)(14),{id:n,s:r,value:i,onChange:a,disabled:o}=e,s=typeof r.description==`string`?r.description:void 0,c;t[0]!==s||t[1]!==n?(c=s?(0,f.jsx)(`p`,{id:`${n}-help`,className:`text-xs text-fg-muted`,children:s}):null,t[0]=s,t[1]=n,t[2]=c):c=t[2];let d=s?`${n}-help`:void 0,p=Number.isFinite(i)?i:0,m;t[3]===a?m=t[4]:(m=e=>a(Number(e.target.value)),t[3]=a,t[4]=m);let h;t[5]!==o||t[6]!==n||t[7]!==d||t[8]!==p||t[9]!==m?(h=(0,f.jsx)(l,{id:n,"aria-describedby":d,type:`number`,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm text-fg`,value:p,disabled:o,onChange:m}),t[5]=o,t[6]=n,t[7]=d,t[8]=p,t[9]=m,t[10]=h):h=t[10];let g;return t[11]!==c||t[12]!==h?(g=(0,f.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[c,h]}),t[11]=c,t[12]=h,t[13]=g):g=t[13],g}function C(e){let t=(0,u.c)(13),{id:n,s:r,value:i,onChange:a,disabled:o,labels:s}=e,c=(typeof r.description==`string`?r.description:void 0)??(typeof r.title==`string`&&r.title.length>0?r.title:s?.defaultBooleanLabel??`Enable`),l=`${n}-label`,d;t[0]===a?d=t[1]:(d=e=>a(e.target.checked),t[0]=a,t[1]=d);let p;t[2]!==o||t[3]!==n||t[4]!==l||t[5]!==d||t[6]!==i?(p=(0,f.jsx)(`input`,{id:n,"aria-labelledby":l,type:`checkbox`,className:`size-4 rounded border border-edge`,checked:i,disabled:o,onChange:d}),t[2]=o,t[3]=n,t[4]=l,t[5]=d,t[6]=i,t[7]=p):p=t[7];let m;t[8]===c?m=t[9]:(m=(0,f.jsx)(`span`,{children:c}),t[8]=c,t[9]=m);let h;return t[10]!==p||t[11]!==m?(h=(0,f.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[p,m]}),t[10]=p,t[11]=m,t[12]=h):h=t[12],h}function w(e){let t=(0,u.c)(31),{id:n,s:r,value:i,onChange:a,disabled:o,labels:s}=e,c=typeof r.description==`string`?r.description:void 0,l=r.items,d=p(l)?l.type:void 0;if(!(d===`string`||Array.isArray(d)&&d.includes(`string`))){let e=s?.unsupportedArrayType??`Unsupported array type`,n;return t[0]===e?n=t[1]:(n=(0,f.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e}),t[0]=e,t[1]=n),n}let m,h,g,_,v;if(t[2]!==c||t[3]!==o||t[4]!==n||t[5]!==a||t[6]!==i){let e=i.map(String);m=t=>{let n=t.trim();!n||e.includes(n)||a([...e,n])},_=`flex flex-col gap-1.5`,t[12]!==c||t[13]!==n?(v=c?(0,f.jsx)(`p`,{id:`${n}-help`,className:`text-xs text-fg-muted`,children:c}):null,t[12]=c,t[13]=n,t[14]=v):v=t[14],h=`flex flex-wrap gap-1`,g=e.map(t=>(0,f.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-edge bg-surface-panel px-2 py-0.5 text-sm`,children:[t,(0,f.jsx)(`button`,{type:`button`,className:`text-fg-muted hover:text-fg`,disabled:o,onClick:()=>a(e.filter(e=>e!==t)),children:`×`})]},t)),t[2]=c,t[3]=o,t[4]=n,t[5]=a,t[6]=i,t[7]=m,t[8]=h,t[9]=g,t[10]=_,t[11]=v}else m=t[7],h=t[8],g=t[9],_=t[10],v=t[11];let y;t[15]!==h||t[16]!==g?(y=(0,f.jsx)(`div`,{className:h,children:g}),t[15]=h,t[16]=g,t[17]=y):y=t[17];let b=c?`${n}-help`:void 0,x=s?.arrayAddPlaceholder??`Add and press Enter`,S;t[18]===m?S=t[19]:(S=e=>{e.key===`Enter`&&(e.preventDefault(),m(e.target.value),e.target.value=``)},t[18]=m,t[19]=S);let C;t[20]!==o||t[21]!==n||t[22]!==b||t[23]!==x||t[24]!==S?(C=(0,f.jsx)(`input`,{id:n,"aria-describedby":b,className:`ui-input h-9 rounded-md border border-edge bg-surface-base px-2.5 text-sm`,disabled:o,placeholder:x,onKeyDown:S}),t[20]=o,t[21]=n,t[22]=b,t[23]=x,t[24]=S,t[25]=C):C=t[25];let w;return t[26]!==_||t[27]!==v||t[28]!==y||t[29]!==C?(w=(0,f.jsxs)(`div`,{className:_,children:[v,y,C]}),t[26]=_,t[27]=v,t[28]=y,t[29]=C,t[30]=w):w=t[30],w}function T(e){let t=(0,u.c)(76),{k:n,sub:r,value:i,onValue:a,disabled:o,labels:s}=e,c=(0,d.useId)(),l=r.type,m=(typeof r.title==`string`&&r.title.length>0?r.title:null)??n;if(l===`boolean`){let e=`${c}-label`,n;t[0]!==c||t[1]!==e||t[2]!==m?(n=(0,f.jsx)(`label`,{id:e,htmlFor:c,className:`text-sm font-medium text-fg`,children:m}),t[0]=c,t[1]=e,t[2]=m,t[3]=n):n=t[3];let l=i===!0,u;t[4]===a?u=t[5]:(u=e=>a(e),t[4]=a,t[5]=u);let d;t[6]!==o||t[7]!==c||t[8]!==s||t[9]!==r||t[10]!==l||t[11]!==u?(d=(0,f.jsx)(C,{id:c,s:r,value:l,disabled:o,onChange:u,labels:s}),t[6]=o,t[7]=c,t[8]=s,t[9]=r,t[10]=l,t[11]=u,t[12]=d):d=t[12];let p;return t[13]!==n||t[14]!==d?(p=(0,f.jsxs)(`div`,{className:`space-y-1.5`,children:[n,d]}),t[13]=n,t[14]=d,t[15]=p):p=t[15],p}if(l===`number`||l===`integer`){let e;t[16]!==c||t[17]!==m?(e=(0,f.jsx)(`label`,{htmlFor:c,className:`text-sm font-medium text-fg`,children:m}),t[16]=c,t[17]=m,t[18]=e):e=t[18];let n=typeof i==`number`?i:0,s;t[19]!==o||t[20]!==c||t[21]!==a||t[22]!==r||t[23]!==n?(s=(0,f.jsx)(S,{id:c,s:r,value:n,disabled:o,onChange:a}),t[19]=o,t[20]=c,t[21]=a,t[22]=r,t[23]=n,t[24]=s):s=t[24];let l;return t[25]!==e||t[26]!==s?(l=(0,f.jsxs)(`div`,{className:`space-y-1.5`,children:[e,s]}),t[25]=e,t[26]=s,t[27]=l):l=t[27],l}if(l===`string`){let e;t[28]!==c||t[29]!==m?(e=(0,f.jsx)(`label`,{htmlFor:c,className:`text-sm font-medium text-fg`,children:m}),t[28]=c,t[29]=m,t[30]=e):e=t[30];let l=typeof i==`string`?i:``,u;t[31]!==o||t[32]!==c||t[33]!==n||t[34]!==s||t[35]!==a||t[36]!==r||t[37]!==l?(u=(0,f.jsx)(y,{labels:s,id:c,name:n,s:r,value:l,disabled:o,onChange:a}),t[31]=o,t[32]=c,t[33]=n,t[34]=s,t[35]=a,t[36]=r,t[37]=l,t[38]=u):u=t[38];let d;return t[39]!==e||t[40]!==u?(d=(0,f.jsxs)(`div`,{className:`space-y-1.5`,children:[e,u]}),t[39]=e,t[40]=u,t[41]=d):d=t[41],d}if(l===`array`){let e=r.items,n=p(e)?e.type:void 0;if(n===`string`||Array.isArray(n)&&n.includes(`string`)){let e;t[42]!==c||t[43]!==m?(e=(0,f.jsx)(`label`,{htmlFor:c,className:`text-sm font-medium text-fg`,children:m}),t[42]=c,t[43]=m,t[44]=e):e=t[44];let n;t[45]===i?n=t[46]:(n=Array.isArray(i)&&i.every(E)?i.map(String):[],t[45]=i,t[46]=n);let l;t[47]!==o||t[48]!==c||t[49]!==s||t[50]!==a||t[51]!==r||t[52]!==n?(l=(0,f.jsx)(w,{id:c,s:r,value:n,disabled:o,onChange:a,labels:s}),t[47]=o,t[48]=c,t[49]=s,t[50]=a,t[51]=r,t[52]=n,t[53]=l):l=t[53];let u;return t[54]!==e||t[55]!==l?(u=(0,f.jsxs)(`div`,{className:`space-y-1.5`,children:[e,l]}),t[54]=e,t[55]=l,t[56]=u):u=t[56],u}}if(l===`object`){let e;t[57]===i?e=t[58]:(e=p(i)?i:{},t[57]=i,t[58]=e);let n=e,c;t[59]===m?c=t[60]:(c=(0,f.jsx)(`summary`,{className:`cursor-pointer select-none px-3 py-2 text-sm font-medium text-fg group-open:rounded-b-none`,children:m}),t[59]=m,t[60]=c);let l;t[61]!==o||t[62]!==s||t[63]!==n||t[64]!==a||t[65]!==r?(l=(0,f.jsx)(`div`,{className:`border-t border-edge p-3`,children:(0,f.jsx)(D,{schema:r,values:n,onChange:a,disabled:o,labels:s})}),t[61]=o,t[62]=s,t[63]=n,t[64]=a,t[65]=r,t[66]=l):l=t[66];let u;return t[67]!==c||t[68]!==l?(u=(0,f.jsxs)(`details`,{className:`group rounded-lg border border-edge bg-surface-panel/40 open:bg-surface-base`,open:!0,children:[c,l]}),t[67]=c,t[68]=l,t[69]=u):u=t[69],u}let h;t[70]!==s||t[71]!==l||t[72]!==m?(h=s?.unsupportedFieldType?.(m,typeof l==`string`?l:void 0)??`${m}: unsupported field type${typeof l==`string`?` (${l})`:``}`,t[70]=s,t[71]=l,t[72]=m,t[73]=h):h=t[73];let g;return t[74]===h?g=t[75]:(g=(0,f.jsx)(`p`,{className:`text-xs text-fg-muted`,children:h}),t[74]=h,t[75]=g),g}function E(e){return typeof e==`string`||typeof e==`number`}function D(e){let t=(0,u.c)(28),{schema:n,values:r,onChange:i,disabled:a,className:o,labels:c}=e,l=a!==void 0&&a,d;bb0:{if(n.type!==`object`){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0],d=e;break bb0}let e;t[1]===n?e=t[2]:(e=_(n),t[1]=n,t[2]=e),d=e}let m=d,h;bb1:{if(m.length===0){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=new Map,t[3]=e):e=t[3],h=e;break bb1}let e;t[4]===m?e=t[5]:(e=v(m),t[4]=m,t[5]=e),h=e}let g=h,y;t[6]!==i||t[7]!==r?(y=(e,t)=>{i({...r,[e]:t})},t[6]=i,t[7]=r,t[8]=y):y=t[8];let b=y;if(n.type!==`object`||!p(n.properties)||m.length===0)return null;let x,S;if(t[9]!==o||t[10]!==l||t[11]!==g||t[12]!==c||t[13]!==b||t[14]!==r){let e=Array.from(g.keys()).sort(O);t[17]===o?x=t[18]:(x=s(`flex flex-col gap-4`,o),t[17]=o,t[18]=x);let n;t[19]!==l||t[20]!==g||t[21]!==c||t[22]!==b||t[23]!==r?(n=e=>{let t=(g.get(e)??[]).map(e=>(0,f.jsx)(T,{k:e.key,sub:e.sub,value:r[e.key],onValue:t=>b(e.key,t),disabled:l,labels:c},e.key));return e===``?(0,f.jsx)(`div`,{children:t},`default`):(0,f.jsxs)(`details`,{className:`group rounded-lg border border-edge bg-surface-panel/40 open:bg-surface-base`,open:!0,children:[(0,f.jsx)(`summary`,{className:`cursor-pointer select-none px-3 py-2 text-sm font-medium text-fg group-open:rounded-b-none`,children:e}),(0,f.jsx)(`div`,{className:`space-y-4 border-t border-edge p-3`,children:t})]},e)},t[19]=l,t[20]=g,t[21]=c,t[22]=b,t[23]=r,t[24]=n):n=t[24],S=e.map(n),t[9]=o,t[10]=l,t[11]=g,t[12]=c,t[13]=b,t[14]=r,t[15]=x,t[16]=S}else x=t[15],S=t[16];let C;return t[25]!==x||t[26]!==S?(C=(0,f.jsx)(`div`,{className:x,children:S}),t[25]=x,t[26]=S,t[27]=C):C=t[27],C}function O(e,t){return e===``?-1:t===``?1:e.localeCompare(t)}export{D as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{u as r}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i,n as a,o}from"./locale-store-5Hf8J8-_.js";import{t as s}from"./messages-uXxg5p54.js";import{t as c}from"./createLucideIcon-DPHK1VkS.js";import{t as ee}from"./chevron-down-ccbiQQz_.js";import{i as l}from"./working-directory-picker-modal-Ta73QrNw.js";import{t as u}from"./loader-circle-CifKLtgG.js";import{s as d,t as f}from"./install-connector-dialog-CsoAidXp.js";import{t as p}from"./package-wATCyihJ.js";import{t as m}from"./plus-Q2yW6OE7.js";import{t as h}from"./cn-0WouolD0.js";import{i as g}from"./vendor-swr-CdRzEUwF.js";import{t as te}from"./button-CnRSIP6m.js";import{t as _}from"./skeleton-BI5TyibZ.js";import{a as v,i as y,o as b,s as x}from"./connectors-api-BzkgVBYC.js";import{t as S}from"./agent-plugin-dialog-D3yCqVan.js";import{t as C}from"./capability-icon-DVoZxEgW.js";import{t as w}from"./extension-marketplace-api-BABmUY2s.js";var T=c(`cable`,[[`path`,{d:`M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z`,key:`trhst0`}],[`path`,{d:`M17 21v-2`,key:`ds4u3f`}],[`path`,{d:`M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10`,key:`1mo9zo`}],[`path`,{d:`M21 21v-2`,key:`eo0ou`}],[`path`,{d:`M3 5V3`,key:`1k5hjh`}],[`path`,{d:`M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z`,key:`1dd30t`}],[`path`,{d:`M7 5V3`,key:`1t1388`}]]),E=e(t(),1),D={"notion-office":`notion`,"todoist-mcp":`todoist`,"amap-maps":`amap`,"feishu-workspace":`feishu`,"wecom-workspace":`wecom`,"dingtalk-workspace":`dingtalk`,"wps365-workspace":`wps365`},O=[`feishu`,`wecom`,`dingtalk`,`tencent-docs`,`wps365`,`yuque`,`dida365`,`flomo`,`tencent-meeting`,`amap`,`bailian-web-search`,`railway-12306`,`antv-chart`],k={"store-plugin":0,"builtin-connector":1,"store-connector":2,"registry-connector":3};function A(e){let t=e.toLowerCase().replace(/^composio-/,``);return D[t]??t}function j(e){if(!e)return 2**53-1;let t=O.indexOf(A(e.id));return t>=0?t:e.regions?.includes(`china`)?O.length:2**53-1}function M(e,t){let n=new Map;for(let t of e){if(!t.service)continue;let e=A(t.service.id),r=n.get(e);(!r?.service||k[t.service.source]<k[r.service.source])&&n.set(e,t)}let r=e.filter(e=>!e.service||n.get(A(e.service.id))===e);return t.startsWith(`zh`)?r.toSorted((e,t)=>j(e.service)-j(t.service)):r}function N(e,t){let n=t.trim().toLocaleLowerCase();return!n||[e.name,e.description,e.source,...e.tags].some(e=>e.toLocaleLowerCase().includes(n))}function P(e){return e?[`failed`,`unauthorized`,`degraded`,`not_configured`].includes(e.status)?`attention`:`installed`:`available`}function F(e,t,n,r=`en`){return M(e,r).filter(e=>(t===`all`||e.kind===t)&&N(e,n))}function I(e,t,n,r=`en`){let i=new Map(n.map(e=>[e.connectorId,e])),a=new Map;for(let t of e){let e=i.get(t.id);a.set(t.id,{id:t.id,service:{id:t.id,source:t.source===`builtin`?`builtin-connector`:t.source===`store`?`store-connector`:`registry-connector`},kind:`connector`,name:t.displayName,description:t.description,source:t.source,status:P(e),tags:[t.category,t.kind,...t.tags??[]],href:`/capabilities/connectors?tab=${e?`connected`:`discover`}&${e?`instance`:`connector`}=${encodeURIComponent(e?.instanceId??t.id)}`,iconUrl:t.branding?.logoUrl})}for(let e of t){let t=e.name,n=e.localizations?.[r.startsWith(`zh`)?`zh-CN`:`en`],o=i.get(t);a.set(`store:${t}`,{id:t,service:{id:t,source:`store-connector`,regions:e.regions},kind:`connector`,name:n?.displayName??e.name,description:n?.description??e.description,source:e.author.username||`XOPC Store`,status:P(o),tags:[e.name,e.category,...e.tags??[]].filter(e=>!!e),href:o?`/capabilities/connectors?tab=connected&instance=${encodeURIComponent(o.instanceId)}`:`/capabilities/connectors?tab=discover&storeConnector=${encodeURIComponent(t)}`,iconUrl:e.branding?.iconUrl})}return M([...a.values()],r)}function L(e,t,n=`en`){return e.map(e=>({id:e.id,kind:`extension`,...e.packageType===`plugin`?{service:{id:e.id,source:`store-plugin`}}:{},name:e.localizations?.[n.startsWith(`zh`)?`zh-CN`:`en`]?.displayName??e.name,description:e.localizations?.[n.startsWith(`zh`)?`zh-CN`:`en`]?.description??e.description??``,source:e.author||e.npmPackage,status:t.has(e.id)?`installed`:`available`,tags:[e.id,...e.categories??[],...e.tags??[]],href:`/capabilities/extensions?tab=marketplace&q=${encodeURIComponent(e.name)}`,iconUrl:e.branding?.iconUrl}))}async function R(e=``){let t=await b({q:e,page:1,pageSize:50,sort:`downloads`}),n=await Promise.all(Array.from({length:Math.max(0,t.meta.totalPages-1)},(t,n)=>b({q:e,page:n+2,pageSize:50,sort:`downloads`})));return[...t.items,...n.flatMap(e=>e.items)]}async function z(e){let[t,n,r]=await Promise.allSettled([w(),y(),R()]),i=[t,n,r].filter(e=>e.status===`rejected`).length;if(i===3)throw Error(`Service recommendations unavailable`);let a=n.status===`fulfilled`?n.value:[];return{items:M([...L(t.status===`fulfilled`?t.value.filter(e=>e.packageType===`plugin`):[],new Set,e),...I(a,r.status===`fulfilled`?r.value:[],[],e)],e),definitions:a,failedSources:i}}var B=n();function V({initialCount:e=3,query:t=``,layout:n=`list`,onChanged:c}){let y=r(),b=a(e=>e.language),w=b.startsWith(`zh`),D=s(b).onboarding.workDiscovery,O=s(b).connectorsSettings,{data:k,error:A,isLoading:j,mutate:M}=g([`service-recommendations`,b],()=>z(b),{revalidateOnFocus:!1}),{data:N,error:P,mutate:I}=g(`recommended-connector-instances`,v),{data:L,error:R,mutate:V}=g(`gateway-extensions-list`,()=>o(i(`/api/extensions`))),[H,U]=(0,E.useState)(!1),[W,G]=(0,E.useState)(null),[K,q]=(0,E.useState)(null),[J,Y]=(0,E.useState)(null),[X,Z]=(0,E.useState)(``),Q=F(k?.items??[],`all`,t,b);async function $(){let e=(await Promise.allSettled([I(),V(),Promise.resolve().then(()=>c?.())])).find(e=>e.status===`rejected`);e?.status===`rejected`&&Z(String(e.reason))}async function ne(e,t){if(Z(``),e.service?.source===`store-plugin`){q({id:e.id,extension:t});return}let n=N?.find(t=>t.connectorId===e.id);if(n){y(`/capabilities/connectors?tab=connected&instance=${encodeURIComponent(n.instanceId)}`);return}Y(e.id);try{if(e.service?.source===`store-connector`){let t=await x(e.id);G(d(t.definition,{packageName:t.packageName,version:t.version,reviewHash:t.reviewHash,permissions:t.permissions}))}else{let t=k?.definitions.find(t=>t.id===e.id);t&&G(d(t))}}catch(e){Z(e instanceof Error?e.message:String(e))}finally{Y(null)}}return(0,B.jsxs)(`div`,{children:[j?(0,B.jsx)(`div`,{className:n===`cards`?`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`:`space-y-2`,"aria-busy":`true`,children:Array.from({length:e},(e,t)=>(0,B.jsx)(_,{className:n===`cards`?`h-[8.75rem] rounded-xl`:`h-20 rounded-xl`},t))}):null,A||k?.failedSources||P||R?(0,B.jsxs)(`p`,{className:`mb-3 text-sm text-fg-muted`,role:`status`,children:[D.connectorLoadFailed,` `,(0,B.jsx)(`button`,{type:`button`,className:`text-accent-fg hover:underline`,onClick:()=>{M(),I(),V()},children:w?`重试`:`Retry`})]}):null,!j&&!A&&Q.length===0?(0,B.jsx)(`p`,{className:`py-6 text-center text-sm text-fg-muted`,children:D.noWorkServices}):null,(0,B.jsx)(`div`,{className:n===`cards`?`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`:`divide-y divide-edge-subtle rounded-xl border border-edge-subtle bg-surface-base/55`,children:(H?Q:Q.slice(0,e)).map(e=>{let t=L?.extensions.find(t=>t.format===`agent-plugin`&&t.provenance?.packageName===e.id),r=N?.find(t=>t.connectorId===e.id),i=e.service?.source===`store-plugin`,a=i?!!(t?.active&&t.readiness===`ready`&&[`connected`,`not_required`].includes(t.authorizationStatus??``)):!!(r?.enabled&&r.status===`connected`),o=i?!!t:!!r,s=(i?!L&&!R:!N&&!P)?(0,B.jsx)(_,{className:`h-8 w-16 shrink-0 rounded-lg`}):(0,B.jsxs)(te,{type:`button`,variant:`secondary`,className:`h-8 shrink-0 px-3 text-xs`,disabled:J!==null,onClick:()=>void ne(e,t),children:[J===e.id?(0,B.jsx)(u,{className:`size-3.5 animate-spin`}):o?null:(0,B.jsx)(m,{className:`size-3.5`}),a?w?`管理`:`Manage`:o?w?`继续设置`:`Set up`:O.connect]});return(0,B.jsx)(`article`,{className:h(n===`cards`?`group flex min-h-[8.75rem] min-w-0 flex-col rounded-xl border border-edge bg-surface-panel p-4 transition-colors hover:bg-surface-hover/45 focus-within:ring-2 focus-within:ring-accent/30`:`flex min-h-20 items-center gap-3 px-3 py-3 sm:px-4`),children:n===`cards`?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,B.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,B.jsx)(C,{iconUrl:e.iconUrl,fallback:i?p:T}),(0,B.jsx)(`h3`,{className:`min-w-0 truncate text-sm font-semibold text-fg`,children:e.name})]}),s]}),(0,B.jsx)(`p`,{className:`mt-3 line-clamp-2 text-sm leading-6 text-fg-muted`,title:e.description,children:e.description})]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(C,{iconUrl:e.iconUrl,fallback:i?p:T}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:e.name}),(0,B.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs text-fg-muted`,children:e.description})]}),s]})},`${e.kind}:${e.id}`)})}),Q.length>e?(0,B.jsxs)(`button`,{type:`button`,className:`mx-auto mt-3 flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-accent-fg hover:underline`,onClick:()=>U(e=>!e),children:[H?(0,B.jsx)(l,{className:`size-3.5`}):(0,B.jsx)(ee,{className:`size-3.5`}),H?D.showFewerServices:D.showMoreServices]}):null,X?(0,B.jsx)(`p`,{className:`mt-3 text-xs text-danger`,role:`alert`,children:X}):null,W?(0,B.jsx)(f,{draft:W,onChange:G,onClose:()=>G(null),t:O,onInstalled:async()=>{await $(),G(null)}}):null,K?(0,B.jsx)(S,{initialSource:`store:${K.id}`,extension:K.extension,onClose:()=>{q(null),$()}}):null]})}export{T as a,M as i,z as n,A as r,V as t};