@xopcai/xopc 0.0.433 → 0.0.435

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 (362) hide show
  1. package/README.md +5 -5
  2. package/README.zh-CN.md +5 -5
  3. package/dist/browser-ext/dist/sidepanel.js +11 -0
  4. package/dist/browser-ext/manifest.json +1 -1
  5. package/dist/extensions/telegram/xopc.extension.json +1 -1
  6. package/dist/gateway/static/root/assets/{activity-store-BpYGrRXw.js → activity-store-Cwn_CNwl.js} +1 -1
  7. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DTgOSv6G.js → agent-avatar-dicebear-Cd23LnJJ.js} +1 -1
  8. package/dist/gateway/static/root/assets/{agent-avatar-display-BUH7ljEo.js → agent-avatar-display-ByzM7u9S.js} +2 -2
  9. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-B_FAikHA.js → agent-defaults-settings-panel-B0i37diS.js} +1 -1
  10. package/dist/gateway/static/root/assets/{agent-plugin-dialog-DPabZaSE.js → agent-plugin-dialog-XN-tZ-Ox.js} +1 -1
  11. package/dist/gateway/static/root/assets/{agents-BAPYP1Ka.js → agents-ZDA1OaLv.js} +3 -3
  12. package/dist/gateway/static/root/assets/{agents-admin-api-CXCAHNPj.js → agents-admin-api-B5lKH_ps.js} +1 -1
  13. package/dist/gateway/static/root/assets/{api-oIK4hYkJ.js → api-B9fZL-V8.js} +1 -1
  14. package/dist/gateway/static/root/assets/{api-DMbimMEi.js → api-Djju8qIR.js} +1 -1
  15. package/dist/gateway/static/root/assets/{app-management-settings-panel-BZ3Fy8ZR.js → app-management-settings-panel-IlyzDPJu.js} +1 -1
  16. package/dist/gateway/static/root/assets/{appearance-settings-DsRTj1by.js → appearance-settings-BxdFGob3.js} +1 -1
  17. package/dist/gateway/static/root/assets/apps-page-CxEKiOTA.js +1 -0
  18. package/dist/gateway/static/root/assets/{archive-plugin-Bg1VTieK.js → archive-plugin-4gEvotPr.js} +1 -1
  19. package/dist/gateway/static/root/assets/{automation-api-CLPsgcQN.js → automation-api-4fVKv9PJ.js} +1 -1
  20. package/dist/gateway/static/root/assets/{automation-result-state-CKVnR4KG.js → automation-result-state-m7PeK2kl.js} +1 -1
  21. package/dist/gateway/static/root/assets/automation-run-list-CJOdy_R2.js +1 -0
  22. package/dist/gateway/static/root/assets/{automation-task-card-D27Mw66U.js → automation-task-card-DZWhCWJa.js} +3 -3
  23. package/dist/gateway/static/root/assets/{automations-page-DGNTJ8lN.js → automations-page-BjbM15eY.js} +1 -1
  24. package/dist/gateway/static/root/assets/automations-workspace-CqurzLYX.js +9 -0
  25. package/dist/gateway/static/root/assets/{binary-plugins-CuwSdCG5.js → binary-plugins-69WyJLNW.js} +1 -1
  26. package/dist/gateway/static/root/assets/{block-editor-Dtl2BG3t.js → block-editor-DUONDIZR.js} +1 -1
  27. package/dist/gateway/static/root/assets/{browser-automation-inputs-uGK086ag.js → browser-automation-inputs-DL4YPCuN.js} +1 -1
  28. package/dist/gateway/static/root/assets/{browser-automations-page-Da_edNNS.js → browser-automations-page-1Aq6XmRs.js} +1 -1
  29. package/dist/gateway/static/root/assets/{browser-control-api-k3OOX3bS.js → browser-control-api-yjru8E7R.js} +1 -1
  30. package/dist/gateway/static/root/assets/{browser-settings-page-C1bSw-Jq.js → browser-settings-page-CvwpT8Um.js} +1 -1
  31. package/dist/gateway/static/root/assets/{capabilities-DlHPLld_.js → capabilities-C7lnwKKm.js} +1 -1
  32. package/dist/gateway/static/root/assets/{capabilities-CoeuLRt6.js → capabilities-DaeQXJT4.js} +1 -1
  33. package/dist/gateway/static/root/assets/capabilities-page-B5avAOUM.js +2 -0
  34. package/dist/gateway/static/root/assets/{capabilities-settings-panel-CtY-bGIi.js → capabilities-settings-panel-_9yCS78i.js} +1 -1
  35. package/dist/gateway/static/root/assets/capability-links-DeO34GIF.js +1 -0
  36. package/dist/gateway/static/root/assets/{channels-Cn1MWBL_.js → channels-CoQb4HOF.js} +1 -1
  37. package/dist/gateway/static/root/assets/{chat-agents-api-BB0biwc7.js → chat-agents-api-BUi_7GRo.js} +1 -1
  38. package/dist/gateway/static/root/assets/{chat-chart-block-QSvjx4w6.js → chat-chart-block-CcVcKsDZ.js} +1 -1
  39. package/dist/gateway/static/root/assets/chat-page--wcFhTjW.js +72 -0
  40. package/dist/gateway/static/root/assets/{chat-terminal-dock-Cd51G9eG.js → chat-terminal-dock-BMXJpPuH.js} +1 -1
  41. package/dist/gateway/static/root/assets/{command-palette-api-CEG10uE-.js → command-palette-api-luUjQPsh.js} +1 -1
  42. package/dist/gateway/static/root/assets/{composer-payload-handoff-Bogdq9Hy.js → composer-payload-handoff-B5XNxNCb.js} +1 -1
  43. package/dist/gateway/static/root/assets/computer-settings-page-CWtdyEJH.js +1 -0
  44. package/dist/gateway/static/root/assets/connected-providers-grid-2idMtk65.js +1 -0
  45. package/dist/gateway/static/root/assets/connection-usage-Cm_McddI.js +1 -0
  46. package/dist/gateway/static/root/assets/connection-usage-guide-Ddh0bfkj.js +1 -0
  47. package/dist/gateway/static/root/assets/{connector-service-page-k2rjyjrp.js → connector-service-page-C3msXaBk.js} +1 -1
  48. package/dist/gateway/static/root/assets/{connectors-api-DtvB9Cjm.js → connectors-api-NcWECWKg.js} +1 -1
  49. package/dist/gateway/static/root/assets/connectors-page-Crb6DILX.js +1 -0
  50. package/dist/gateway/static/root/assets/{date-picker-CAankdQw.js → date-picker-Cfjq1hD_.js} +1 -1
  51. package/dist/gateway/static/root/assets/{desktop-pet-DjM73fir.js → desktop-pet-ChFn9v-3.js} +1 -1
  52. package/dist/gateway/static/root/assets/{desktop-pet-settings-Rmh-GxHl.js → desktop-pet-settings-DvnVIv25.js} +1 -1
  53. package/dist/gateway/static/root/assets/{dev-view-store-BgW2Riyk.js → dev-view-store-DQJ61P5L.js} +1 -1
  54. package/dist/gateway/static/root/assets/{device-pairing-wizard-UdzSpNa5.js → device-pairing-wizard-KxaIL-OX.js} +1 -1
  55. package/dist/gateway/static/root/assets/{directory-picker-path-field-Rkw3f7lG.js → directory-picker-path-field-Drv864uE.js} +1 -1
  56. package/dist/gateway/static/root/assets/{discussion-annotation-sync-Dudoj_Fz.js → discussion-annotation-sync-DfBRkWtw.js} +1 -1
  57. package/dist/gateway/static/root/assets/{extension-debug-page-DxIGAO23.js → extension-debug-page-DAlBIt_R.js} +1 -1
  58. package/dist/gateway/static/root/assets/{extension-iframe-host-63KpX6IP.js → extension-iframe-host-Bds-5kY_.js} +1 -1
  59. package/dist/gateway/static/root/assets/{extension-marketplace-api-yXNUkQDA.js → extension-marketplace-api-CZg8nBwW.js} +1 -1
  60. package/dist/gateway/static/root/assets/{extension-page-C811A_Ww.js → extension-page-ZTw-oucT.js} +1 -1
  61. package/dist/gateway/static/root/assets/{extension-provider-C4jLFIgh.js → extension-provider-NKWfjpdP.js} +1 -1
  62. package/dist/gateway/static/root/assets/{extension-settings-page-WJSw5MT0.js → extension-settings-page-CT7PPt_q.js} +1 -1
  63. package/dist/gateway/static/root/assets/{file-preview-surface-zE9AcaHM.js → file-preview-surface-BcLeaSNe.js} +1 -1
  64. package/dist/gateway/static/root/assets/{gateway-config-swr-D6cc6W6E.js → gateway-config-swr-Cq-ByXL4.js} +1 -1
  65. package/dist/gateway/static/root/assets/{gateway-realtime-BSRNLciy.js → gateway-realtime-DwMd2PCt.js} +1 -1
  66. package/dist/gateway/static/root/assets/gateway-realtime-store-CHrf6-nR.js +1 -0
  67. package/dist/gateway/static/root/assets/{gateway-restart-Unun5hRL.js → gateway-restart-DdiVzbkL.js} +1 -1
  68. package/dist/gateway/static/root/assets/{gateway-settings-DP-DV-e5.js → gateway-settings-1QUdNwrZ.js} +1 -1
  69. package/dist/gateway/static/root/assets/{gateway-startup-retry-C8g666Ja.js → gateway-startup-retry-PMJi5mX4.js} +1 -1
  70. package/dist/gateway/static/root/assets/{global-defaults-api-BObi-1ww.js → global-defaults-api-DgzZh3wX.js} +1 -1
  71. package/dist/gateway/static/root/assets/{home-page-CIcs7Mzy.js → home-page-Chn7YTiD.js} +2 -2
  72. package/dist/gateway/static/root/assets/{image-generation-api-C2SqYNyD.js → image-generation-api-CjVpsckq.js} +1 -1
  73. package/dist/gateway/static/root/assets/{imports-page-C8ezUkOJ.js → imports-page-CJCvZFaQ.js} +1 -1
  74. package/dist/gateway/static/root/assets/index-8xLWo0Tt.js +11 -0
  75. package/dist/gateway/static/root/assets/index-iukJWzxG.css +1 -0
  76. package/dist/gateway/static/root/assets/install-connector-dialog-Bo06Ry3H.js +1 -0
  77. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BRaY4-wA.js → keyboard-shortcuts-settings-BylFJeGu.js} +1 -1
  78. package/dist/gateway/static/root/assets/{local-app-workbench-page-BZtVcjF3.js → local-app-workbench-page-B3MSSFsr.js} +1 -1
  79. package/dist/gateway/static/root/assets/{local-apps-page-MqP4EnJm.js → local-apps-page-BeV86rMJ.js} +1 -1
  80. package/dist/gateway/static/root/assets/{local-session-drafts-DTq9776a.js → local-session-drafts-jgw8UGsO.js} +2 -2
  81. package/dist/gateway/static/root/assets/{locale-store-B6OrWgY1.js → locale-store-CAZaC05J.js} +1 -1
  82. package/dist/gateway/static/root/assets/{logs-page-hkHBjblX.js → logs-page-BMmSsUP5.js} +1 -1
  83. package/dist/gateway/static/root/assets/{management-settings-DoX4eTM3.js → management-settings-Bu7T8ewk.js} +1 -1
  84. package/dist/gateway/static/root/assets/{markdown-view-DrhYZSmg.js → markdown-view-BatP4qeK.js} +1 -1
  85. package/dist/gateway/static/root/assets/{mcp-conversation-setup-page-BEp5E6TD.js → mcp-conversation-setup-page-rROtr0UN.js} +1 -1
  86. package/dist/gateway/static/root/assets/{media-plugins-D987i9Gc.js → media-plugins-88OV72YE.js} +1 -1
  87. package/dist/gateway/static/root/assets/messages-C7fckbyG.js +3 -0
  88. package/dist/gateway/static/root/assets/{model-selector-DXm4NS1_.js → model-selector-raBRBkN_.js} +1 -1
  89. package/dist/gateway/static/root/assets/{models-hub-cache-BLcha5rx.js → models-hub-cache-CzC9y3D0.js} +1 -1
  90. package/dist/gateway/static/root/assets/{note-detail-panel-Cl851ivY.js → note-detail-panel-BvA8Vkbm.js} +3 -3
  91. package/dist/gateway/static/root/assets/note-image-lightbox-D6kUDDd5.js +1 -0
  92. package/dist/gateway/static/root/assets/{notes-api-Ddsf7FVg.js → notes-api-zXpV6UXu.js} +1 -1
  93. package/dist/gateway/static/root/assets/{notes-page-DSwA1MU1.js → notes-page-CjYH9Kle.js} +1 -1
  94. package/dist/gateway/static/root/assets/{oauth-api-CMmu4DzH.js → oauth-api-DmxSaxM1.js} +1 -1
  95. package/dist/gateway/static/root/assets/{oauth-provider-connect-BkhnftBq.js → oauth-provider-connect-D4Gfs-Ba.js} +1 -1
  96. package/dist/gateway/static/root/assets/{page-context-capture-button-urhQBRaN.js → page-context-capture-button-Mig3d0UX.js} +1 -1
  97. package/dist/gateway/static/root/assets/{page-context-draft-BuNUerth.js → page-context-draft-C4IIZaKd.js} +1 -1
  98. package/dist/gateway/static/root/assets/page-header-store-D7G5utVi.js +1 -0
  99. package/dist/gateway/static/root/assets/{personal-avatar-B49ueeZO.js → personal-avatar-DLa-CpaK.js} +1 -1
  100. package/dist/gateway/static/root/assets/{personal-page-f05ceuFn.js → personal-page-BhuT79Wd.js} +1 -1
  101. package/dist/gateway/static/root/assets/{personal-settings-panel-DLQxzPYr.js → personal-settings-panel-XSUkgcr2.js} +1 -1
  102. package/dist/gateway/static/root/assets/phone-dependencies-card-DYwnuVh3.js +1 -0
  103. package/dist/gateway/static/root/assets/phone-model-connection-2F32QTHA.js +1 -0
  104. package/dist/gateway/static/root/assets/phone-model-picker-DCVzIr0s.js +1 -0
  105. package/dist/gateway/static/root/assets/phone-settings-page-DJttE4id.js +1 -0
  106. package/dist/gateway/static/root/assets/{phone-workspace-store-DbqktZbO.js → phone-workspace-store-Dxp-KhFP.js} +1 -1
  107. package/dist/gateway/static/root/assets/plugin-details-dialog-tyjAjFjA.js +1 -0
  108. package/dist/gateway/static/root/assets/{preference-select-fields-BZWqG7pu.js → preference-select-fields-BVP3MhGK.js} +1 -1
  109. package/dist/gateway/static/root/assets/{product-automation-feedback-DDQUsag7.js → product-automation-feedback-DbJvv92z.js} +1 -1
  110. package/dist/gateway/static/root/assets/{product-open-page-BkRP_HmA.js → product-open-page-RImqlhCD.js} +1 -1
  111. package/dist/gateway/static/root/assets/{product-preview-content-o2Y3VNE7.js → product-preview-content-DxSqrKsg.js} +1 -1
  112. package/dist/gateway/static/root/assets/{product-preview-modal-7Ohx-7OR.js → product-preview-modal-Cw8Q8Uom.js} +2 -2
  113. package/dist/gateway/static/root/assets/{project-detail-page-B2RsSHya.js → project-detail-page-CuugOYfe.js} +1 -1
  114. package/dist/gateway/static/root/assets/{project-understanding-BIMouiYX.js → project-understanding-BMKcoUW5.js} +1 -1
  115. package/dist/gateway/static/root/assets/{projects-page-C9R5u3tF.js → projects-page-CFsABLvs.js} +1 -1
  116. package/dist/gateway/static/root/assets/{providers-api-BOCkRZ7X.js → providers-api-CAeXbJNF.js} +1 -1
  117. package/dist/gateway/static/root/assets/{recording-upload-C6muEHEO.js → recording-upload-CfpllTe5.js} +1 -1
  118. package/dist/gateway/static/root/assets/{registry-api-Bl2guMRg.js → registry-api-fLOqFyrz.js} +1 -1
  119. package/dist/gateway/static/root/assets/{remote-access-hub-BceSMbCs.js → remote-access-hub-BvKOxy0L.js} +1 -1
  120. package/dist/gateway/static/root/assets/{resource-unavailable-CUNbPkdj.js → resource-unavailable-D15jzjV_.js} +1 -1
  121. package/dist/gateway/static/root/assets/route-preload-BQapekpy.js +2 -0
  122. package/dist/gateway/static/root/assets/{runtime-tools-api-LopLjgvu.js → runtime-tools-api-D0Nrvuqv.js} +1 -1
  123. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-9HIPerDP.js → runtime-tools-settings-panel-CA27XgL2.js} +1 -1
  124. package/dist/gateway/static/root/assets/{service-recommendation-list-CoMI6MB1.js → service-recommendation-list-B0RoYLVT.js} +1 -1
  125. package/dist/gateway/static/root/assets/session-api-CHRP5Lwf.js +1 -0
  126. package/dist/gateway/static/root/assets/session-channel-icon-D1ktvt1P.js +1 -0
  127. package/dist/gateway/static/root/assets/session-identity-label-BP7OIYth.js +1 -0
  128. package/dist/gateway/static/root/assets/session-manager-DRRWwKE4.js +25 -0
  129. package/dist/gateway/static/root/assets/{sessions-page-BT0GdXdS.js → sessions-page-uJHS3-6F.js} +1 -1
  130. package/dist/gateway/static/root/assets/settings-advanced-gate-CZ4J3Kuy.js +1 -0
  131. package/dist/gateway/static/root/assets/{settings-advanced-section-CEorDLUp.js → settings-advanced-section-D-llwfSj.js} +1 -1
  132. package/dist/gateway/static/root/assets/{settings-mode-store-C2LZqBES.js → settings-mode-store-BspMKc9N.js} +1 -1
  133. package/dist/gateway/static/root/assets/{settings-page-C_Np_6qZ.js → settings-page-CedwaHM0.js} +1 -1
  134. package/dist/gateway/static/root/assets/{settings-page-header-BAN34UQi.js → settings-page-header-LuOJvqNa.js} +1 -1
  135. package/dist/gateway/static/root/assets/{settings-page-layout-B5TVFBV2.js → settings-page-layout-CduQ8w4a.js} +1 -1
  136. package/dist/gateway/static/root/assets/{setup-interaction-page-BYvTJW3_.js → setup-interaction-page-ujpPGl84.js} +1 -1
  137. package/dist/gateway/static/root/assets/{setup-status-panel-UY2dH-sK.js → setup-status-panel-BN2aCJUN.js} +1 -1
  138. package/dist/gateway/static/root/assets/{share-link-dialog-BMcXyzr2.js → share-link-dialog-CTATUaa4.js} +1 -1
  139. package/dist/gateway/static/root/assets/{share-preview-page-UQ6eUM2_.js → share-preview-page-Dq0J3VgS.js} +1 -1
  140. package/dist/gateway/static/root/assets/{shares-api-DOeDN6Tm.js → shares-api-zegE8pSE.js} +1 -1
  141. package/dist/gateway/static/root/assets/{shares-settings-W8XhuAoL.js → shares-settings-DXpvsRXq.js} +1 -1
  142. package/dist/gateway/static/root/assets/{skill-api-Do_c0d9n.js → skill-api-DCL1EN7f.js} +1 -1
  143. package/dist/gateway/static/root/assets/{skill-list-api-DpHaXI2l.js → skill-list-api-Bv0mmHbu.js} +1 -1
  144. package/dist/gateway/static/root/assets/{skill-reload-api-DDRd9IJ2.js → skill-reload-api-DPZbadiO.js} +1 -1
  145. package/dist/gateway/static/root/assets/{skills-page-CaeJVKhO.js → skills-page-DMC7Gaku.js} +1 -1
  146. package/dist/gateway/static/root/assets/{system-settings-panel-DYWlWPJL.js → system-settings-panel-BYFUhlqG.js} +1 -1
  147. package/dist/gateway/static/root/assets/{task-detail-page-De0qD7xw.js → task-detail-page-_Og3plZL.js} +3 -3
  148. package/dist/gateway/static/root/assets/{task-result-evidence-CICR5K1t.js → task-result-evidence-Bxm8-H0B.js} +1 -1
  149. package/dist/gateway/static/root/assets/{terminal-panel-store-BbWUcQe7.js → terminal-panel-store-Djf9l2qZ.js} +1 -1
  150. package/dist/gateway/static/root/assets/{theme-store-TkG5mo0p.js → theme-store-8GFVtotZ.js} +1 -1
  151. package/dist/gateway/static/root/assets/{tracing-settings-page-CYXEy4EG.js → tracing-settings-page-oWW3SBZ4.js} +1 -1
  152. package/dist/gateway/static/root/assets/{tunnel-api-DquDm6U2.js → tunnel-api-D-mEsSGF.js} +1 -1
  153. package/dist/gateway/static/root/assets/{understanding-activity-store-Ot3wZ3oQ.js → understanding-activity-store-CvDjsd0I.js} +1 -1
  154. package/dist/gateway/static/root/assets/{understanding-refresh-store-C5KYFMaC.js → understanding-refresh-store-DzOZJm7A.js} +1 -1
  155. package/dist/gateway/static/root/assets/{usage-page-1xFO4smo.js → usage-page-z-o6Uuev.js} +1 -1
  156. package/dist/gateway/static/root/assets/{use-autosave-HL8XRNR8.js → use-autosave-BVYS8UoK.js} +1 -1
  157. package/dist/gateway/static/root/assets/{use-composer-attachments-XRlQBdNF.js → use-composer-attachments-lecOV2q5.js} +1 -1
  158. package/dist/gateway/static/root/assets/{use-file-preview-expanded-CW956CXS.js → use-file-preview-expanded-nd_CuFsd.js} +2 -2
  159. package/dist/gateway/static/root/assets/{use-personal-profile-202s6tJt.js → use-personal-profile-CQi2ZCxV.js} +1 -1
  160. package/dist/gateway/static/root/assets/{use-workspace-tree-CjydkmH1.js → use-workspace-tree-BiaddkzX.js} +1 -1
  161. package/dist/gateway/static/root/assets/{user-model-page-OGPXx3pe.js → user-model-page-Bks1n0Nj.js} +1 -1
  162. package/dist/gateway/static/root/assets/{voice-api-key-field-CxFu4MEA.js → voice-api-key-field-BbW8NFeZ.js} +1 -1
  163. package/dist/gateway/static/root/assets/{voice-config-api-MHe5Pn-A.js → voice-config-api-jSMzZWWy.js} +1 -1
  164. package/dist/gateway/static/root/assets/{voice-input-shortcut-events-B9xc1oK8.js → voice-input-shortcut-events-_SgYmx7X.js} +1 -1
  165. package/dist/gateway/static/root/assets/{voice-transcribe-api-CVEcB6Pe.js → voice-transcribe-api-BJCfiRFU.js} +1 -1
  166. package/dist/gateway/static/root/assets/{work-discovery-overlay-C-JoAg2D.js → work-discovery-overlay-DSTSNyU7.js} +1 -1
  167. package/dist/gateway/static/root/assets/{work-discovery-page-B5Kx29Ru.js → work-discovery-page-Dd_QJJvb.js} +1 -1
  168. package/dist/gateway/static/root/assets/{working-directory-picker-modal-DGp9cNzH.js → working-directory-picker-modal-q39BUcJ6.js} +1 -1
  169. package/dist/gateway/static/root/assets/{workspace-api-HBXn8pL9.js → workspace-api-Di2OmCvz.js} +2 -2
  170. package/dist/gateway/static/root/assets/workspace-editor-agent-store-B2r9wlix.js +1 -0
  171. package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-3cpwSG2w.js → workspace-file-preview-dialog-BUGNT765.js} +1 -1
  172. package/dist/gateway/static/root/assets/{workspace-open-location-menu-D0VOFvuP.js → workspace-open-location-menu-bMSvmQW7.js} +1 -1
  173. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-BkdW2p3v.js → xopc-cloud-account-card-Bbe19Del.js} +1 -1
  174. package/dist/gateway/static/root/index.html +87 -85
  175. package/dist/package.js +1 -1
  176. package/dist/packages/computer-control-contract/src/index.js +33 -3
  177. package/dist/packages/gateway-contract/src/session-identity.js +2 -1
  178. package/dist/packages/gateway-contract/src/session-input-command.js +19 -2
  179. package/dist/packages/gateway-contract/src/specialists.js +1 -0
  180. package/dist/src/agent/embedded/execution-tool-policy.d.ts +1 -1
  181. package/dist/src/agent/embedded/execution-tool-policy.js +2 -2
  182. package/dist/src/agent/embedded/run-for-session.js +23 -8
  183. package/dist/src/agent/embedded/run-turn.js +30 -7
  184. package/dist/src/agent/embedded/runs.d.ts +2 -2
  185. package/dist/src/agent/embedded/runs.js +4 -4
  186. package/dist/src/agent/embedded/session-runner.js +26 -11
  187. package/dist/src/agent/embedded/tool-search-extension.d.ts +8 -2
  188. package/dist/src/agent/embedded/tool-search-extension.js +122 -30
  189. package/dist/src/agent/external-tools/cliProvider.d.ts +10 -9
  190. package/dist/src/agent/external-tools/cliProvider.js +24 -4
  191. package/dist/src/agent/external-tools/composio-provider.d.ts +3 -3
  192. package/dist/src/agent/external-tools/composio-provider.js +6 -3
  193. package/dist/src/agent/external-tools/discovery.d.ts +47 -0
  194. package/dist/src/agent/external-tools/discovery.js +56 -0
  195. package/dist/src/agent/external-tools/gateway-tools.js +26 -46
  196. package/dist/src/agent/external-tools/index.d.ts +1 -0
  197. package/dist/src/agent/external-tools/index.js +7 -0
  198. package/dist/src/agent/external-tools/personal-request-scope.d.ts +7 -0
  199. package/dist/src/agent/external-tools/personal-request-scope.js +83 -0
  200. package/dist/src/agent/external-tools/read-policy.js +5 -4
  201. package/dist/src/agent/external-tools/service.d.ts +2 -0
  202. package/dist/src/agent/external-tools/service.js +22 -3
  203. package/dist/src/agent/external-tools/tool-registry.d.ts +6 -0
  204. package/dist/src/agent/external-tools/types.d.ts +7 -2
  205. package/dist/src/agent/inbound/turn-dispatcher.d.ts +1 -1
  206. package/dist/src/agent/inbound/turn-dispatcher.js +3 -2
  207. package/dist/src/agent/orchestration/llm-turn-retry.d.ts +1 -1
  208. package/dist/src/agent/orchestration/llm-turn-retry.js +13 -8
  209. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +1 -0
  210. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +3 -1
  211. package/dist/src/agent/prompt/sections/tooling.js +1 -1
  212. package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
  213. package/dist/src/agent/tool-manuals/computer.js +6 -4
  214. package/dist/src/agent/tool-manuals/phone.d.ts +1 -1
  215. package/dist/src/agent/tool-manuals/phone.js +4 -4
  216. package/dist/src/agent/tool-manuals/xopc-configuration.d.ts +1 -1
  217. package/dist/src/agent/tool-manuals/xopc-configuration.js +4 -2
  218. package/dist/src/agent/tools/computer-use-tool.js +7 -6
  219. package/dist/src/agent/tools/delegation-policy.js +1 -0
  220. package/dist/src/agent/tools/factory.js +4 -2
  221. package/dist/src/agent/tools/phone-use-tool.js +2 -2
  222. package/dist/src/agent/tools/web.js +22 -3
  223. package/dist/src/agent-matching/service.js +2 -2
  224. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  225. package/dist/src/computer/batch.d.ts +108 -0
  226. package/dist/src/computer/batch.js +125 -0
  227. package/dist/src/computer/broker.d.ts +30 -2
  228. package/dist/src/computer/broker.js +109 -17
  229. package/dist/src/computer/diagnostics.d.ts +5 -1
  230. package/dist/src/computer/diagnostics.js +22 -3
  231. package/dist/src/computer/errors.d.ts +15 -0
  232. package/dist/src/computer/errors.js +59 -3
  233. package/dist/src/computer/model-adapter.d.ts +58 -0
  234. package/dist/src/computer/model-adapter.js +112 -66
  235. package/dist/src/computer/native-errors.d.ts +2 -0
  236. package/dist/src/computer/native-errors.js +13 -0
  237. package/dist/src/computer/program-runtime.d.ts +1 -1
  238. package/dist/src/computer/program-runtime.js +1 -0
  239. package/dist/src/computer/runtime.d.ts +11 -0
  240. package/dist/src/computer/runtime.js +102 -34
  241. package/dist/src/computer/semantic-actions.js +4 -0
  242. package/dist/src/config/schema.d.ts +6 -0
  243. package/dist/src/extensions/agent-plugins/formats.js +2 -1
  244. package/dist/src/extensions/agent-plugins/inventory.d.ts +2 -0
  245. package/dist/src/extensions/agent-plugins/inventory.js +4 -1
  246. package/dist/src/extensions/agent-plugins/validation.d.ts +1 -0
  247. package/dist/src/extensions/agent-plugins/validation.js +2 -1
  248. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  249. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  250. package/dist/src/gateway/hono/routes/phone-dependencies.js +26 -5
  251. package/dist/src/gateway/hono/routes/phone-setup.js +42 -16
  252. package/dist/src/gateway/hono/routes/phone.js +22 -7
  253. package/dist/src/gateway/hono/routes/session-command-handler.js +9 -0
  254. package/dist/src/gateway/hono/routes/session-input-control.d.ts +3 -0
  255. package/dist/src/gateway/hono/routes/session-input-control.js +37 -0
  256. package/dist/src/gateway/hono/routes/session-input-handler.d.ts +12 -0
  257. package/dist/src/gateway/hono/routes/session-input-handler.js +22 -0
  258. package/dist/src/gateway/hono/routes/sessions.js +4 -0
  259. package/dist/src/gateway/service/agent-runner.js +5 -4
  260. package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
  261. package/dist/src/gateway/service/session-input-coordinator.d.ts +6 -3
  262. package/dist/src/gateway/service/session-input-coordinator.js +47 -6
  263. package/dist/src/gateway/service.d.ts +1 -0
  264. package/dist/src/gateway/service.js +8 -5
  265. package/dist/src/home-intelligence/host.js +2 -2
  266. package/dist/src/personal-agent/capability-service.js +1 -1
  267. package/dist/src/personal-agent/request-access.d.ts +2 -0
  268. package/dist/src/personal-agent/request-access.js +22 -2
  269. package/dist/src/personal-agent/request-service.js +2 -2
  270. package/dist/src/personal-agent/specialist-capabilities.d.ts +2 -0
  271. package/dist/src/personal-agent/specialist-capabilities.js +9 -3
  272. package/dist/src/phone/adb-driver.d.ts +3 -0
  273. package/dist/src/phone/adb-driver.js +29 -0
  274. package/dist/src/phone/contracts.d.ts +14 -2
  275. package/dist/src/phone/contracts.js +8 -1
  276. package/dist/src/phone/gui-protocol.js +1 -1
  277. package/dist/src/phone/hdc-driver.d.ts +30 -0
  278. package/dist/src/phone/hdc-driver.js +331 -0
  279. package/dist/src/phone/hdc-video-bridge.d.ts +2 -0
  280. package/dist/src/phone/hdc-video-bridge.js +91 -0
  281. package/dist/src/phone/hdc-video-tools.d.ts +15 -0
  282. package/dist/src/phone/hdc-video-tools.js +123 -0
  283. package/dist/src/phone/hdc-video.d.ts +69 -0
  284. package/dist/src/phone/hdc-video.js +350 -0
  285. package/dist/src/phone/interactive-session.js +1 -1
  286. package/dist/src/phone/live-provider.d.ts +6 -0
  287. package/dist/src/phone/live-provider.js +1 -0
  288. package/dist/src/phone/model-adapter.d.ts +3 -0
  289. package/dist/src/phone/model-adapter.js +5 -3
  290. package/dist/src/phone/repository.js +2 -1
  291. package/dist/src/phone/runtime.d.ts +10 -4
  292. package/dist/src/phone/runtime.js +151 -85
  293. package/dist/src/phone/setup/service.d.ts +8 -6
  294. package/dist/src/phone/setup/service.js +33 -16
  295. package/dist/src/platform/client.d.ts +1 -1
  296. package/dist/src/platform/contracts.d.ts +1 -1
  297. package/dist/src/process/phone-process.d.ts +1 -1
  298. package/dist/src/process/phone-process.js +2 -2
  299. package/dist/src/runtime-tools/downloader.d.ts +1 -0
  300. package/dist/src/runtime-tools/downloader.js +8 -4
  301. package/dist/src/runtime-tools/harmony-dependencies.d.ts +24 -0
  302. package/dist/src/runtime-tools/harmony-dependencies.js +272 -0
  303. package/dist/src/runtime-tools/harmony-dependency-catalog.d.ts +4 -0
  304. package/dist/src/runtime-tools/harmony-dependency-catalog.js +54 -0
  305. package/dist/src/runtime-tools/harmony-paths.d.ts +9 -0
  306. package/dist/src/runtime-tools/harmony-paths.js +15 -0
  307. package/dist/src/runtime-tools/hdc-dependency-catalog.d.ts +8 -0
  308. package/dist/src/runtime-tools/hdc-dependency-catalog.js +83 -0
  309. package/dist/src/runtime-tools/hdc-files.d.ts +14 -0
  310. package/dist/src/runtime-tools/hdc-files.js +87 -0
  311. package/dist/src/runtime-tools/phone-dependencies.d.ts +6 -1
  312. package/dist/src/runtime-tools/phone-dependencies.js +20 -2
  313. package/dist/src/runtime-tools/phone-dependency-catalog.d.ts +10 -1
  314. package/dist/src/runtime-tools/phone-dependency-catalog.js +2 -0
  315. package/dist/src/runtime-tools/types.d.ts +1 -1
  316. package/dist/src/storage/sqlite/schema.d.ts +2 -2
  317. package/dist/src/storage/sqlite/schema.js +7 -7
  318. package/dist/src/storage/sqlite/schema.sql +16 -0
  319. package/dist/src/storage/sqlite/session-creation-repository.js +3 -0
  320. package/dist/src/storage/sqlite/session-input-control-repository.d.ts +12 -0
  321. package/dist/src/storage/sqlite/session-input-control-repository.js +83 -0
  322. package/dist/src/storage/sqlite/session-input-repository.d.ts +2 -0
  323. package/dist/src/storage/sqlite/session-input-repository.js +17 -5
  324. package/dist/src/storage/sqlite/session-repository.js +1 -0
  325. package/dist/src/storage/sqlite/session-turn-replace-repository.d.ts +2 -0
  326. package/dist/src/storage/sqlite/session-turn-replace-repository.js +14 -2
  327. package/dist/src/storage/sqlite/upgrades/262_session_input_control.sql +15 -0
  328. package/package.json +2 -2
  329. package/skills/tools/configure-xopc/SKILL.md +2 -2
  330. package/skills/tools/configure-xopc/references/phone/acceptance.md +3 -2
  331. package/skills/tools/configure-xopc/references/phone/dependencies.md +18 -2
  332. package/skills/tools/configure-xopc/references/phone/harmonyos.md +16 -0
  333. package/skills/tools/configure-xopc/references/phone/overview.md +2 -2
  334. package/skills/tools/configure-xopc/references/scene-index.md +2 -2
  335. package/dist/gateway/static/root/assets/apps-page-D-n71lO1.js +0 -1
  336. package/dist/gateway/static/root/assets/automations-workspace-DWDWy-SG.js +0 -9
  337. package/dist/gateway/static/root/assets/capabilities-page-IcwojmJK.js +0 -2
  338. package/dist/gateway/static/root/assets/capability-links-DzQWK1Fh.js +0 -1
  339. package/dist/gateway/static/root/assets/chat-page-CwP4OMdW.js +0 -72
  340. package/dist/gateway/static/root/assets/computer-settings-page-DyAlOzqY.js +0 -1
  341. package/dist/gateway/static/root/assets/connected-providers-grid-D0lXg22c.js +0 -1
  342. package/dist/gateway/static/root/assets/connectors-page-DI_Q0CKz.js +0 -1
  343. package/dist/gateway/static/root/assets/gateway-realtime-store-BFeFfApQ.js +0 -1
  344. package/dist/gateway/static/root/assets/index-Cz-VjTNd.css +0 -1
  345. package/dist/gateway/static/root/assets/index-D1_PUrJf.js +0 -11
  346. package/dist/gateway/static/root/assets/install-connector-dialog-Cn4nRSyt.js +0 -1
  347. package/dist/gateway/static/root/assets/list-tree-B0OMswgM.js +0 -1
  348. package/dist/gateway/static/root/assets/messages-jwdBhfL9.js +0 -3
  349. package/dist/gateway/static/root/assets/note-image-lightbox-DGYRJS03.js +0 -1
  350. package/dist/gateway/static/root/assets/page-header-store-CEn_kPsn.js +0 -1
  351. package/dist/gateway/static/root/assets/phone-dependencies-card-DjmC1Z5j.js +0 -1
  352. package/dist/gateway/static/root/assets/phone-model-connection-BRjHSgYn.js +0 -1
  353. package/dist/gateway/static/root/assets/phone-model-picker-DgIiWLhR.js +0 -1
  354. package/dist/gateway/static/root/assets/phone-settings-page-DCZGCL_z.js +0 -1
  355. package/dist/gateway/static/root/assets/plugin-details-dialog-D4tGKip4.js +0 -1
  356. package/dist/gateway/static/root/assets/route-preload-C1BKDjnu.js +0 -2
  357. package/dist/gateway/static/root/assets/session-api-Bfmlmn9F.js +0 -1
  358. package/dist/gateway/static/root/assets/session-channel-icon-SsY70Z6t.js +0 -1
  359. package/dist/gateway/static/root/assets/session-identity-label-B7sgG1PE.js +0 -1
  360. package/dist/gateway/static/root/assets/session-manager-X4UHOjjO.js +0 -25
  361. package/dist/gateway/static/root/assets/settings-advanced-gate-Dk9c-Z5e.js +0 -1
  362. package/dist/gateway/static/root/assets/workspace-editor-agent-store-msZa42fU.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{m as i,u as a}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as o}from"./locale-store-CAZaC05J.js";import{a as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-BGTk37IG.js";import{t as m}from"./app-window-DXFNqt_0.js";import{t as h}from"./chevron-down-ccbiQQz_.js";import{n as g,r as _}from"./popover-select-CEMWIrtY.js";import{n as v,t as y}from"./beta-badge-BnzdzIEl.js";import{t as b}from"./play-kxZvpBg8.js";import{t as x}from"./plus-Q2yW6OE7.js";import{t as S}from"./refresh-cw-BRlGaq2w.js";import{t as C}from"./search-DA7gz22f.js";import{t as w}from"./shield-check-BU58siTV.js";import{t as T}from"./smartphone-DSSsQFqA.js";import{t as E}from"./x-B_N4OPjy.js";import{t as D}from"./cn-0WouolD0.js";import{t as O}from"./skeleton-BI5TyibZ.js";import{i as k}from"./vendor-swr-CdRzEUwF.js";import{t as A}from"./button-Cc4hUNTt.js";import{t as j}from"./phone-workspace-store-Dxp-KhFP.js";import{l as ee,m as te,o as ne,r as M,t as re,u as ie}from"./dist-ZrL34Ps4.js";import{n as ae,t as oe}from"./global-defaults-api-DgzZh3wX.js";import{n as se,t as ce}from"./settings-page-header-LuOJvqNa.js";import{a as le,c as N,i as P,r as ue,s as de}from"./phone-model-picker-DCVzIr0s.js";import{t as fe}from"./phone-dependencies-card-DYwnuVh3.js";import{n as pe,t as me}from"./phone-model-connection-2F32QTHA.js";var F=e(t(),1),I=r();function he({device:e,zh:t,onClose:n,onConnected:r}){let[i,a]=(0,F.useState)(!1),[o,l]=(0,F.useState)(e.wireless?.host??``),[m,h]=(0,F.useState)(``),[g,_]=(0,F.useState)(!1),[v,y]=(0,F.useState)(``),b=async()=>{_(!0),y(``);try{await N(`/devices/${e.id}/reconnect`,i?{host:o,port:Number(m)}:{}),await r(),n()}catch(e){y(e instanceof Error?e.message:String(e)),a(!0)}finally{_(!1)}};return(0,I.jsx)(p,{open:!0,onOpenChange:e=>{!e&&!g&&n()},children:(0,I.jsxs)(u,{children:[(0,I.jsx)(s,{className:`fixed inset-0 z-[80] bg-black/40`}),(0,I.jsxs)(d,{className:`fixed left-1/2 top-1/2 z-[81] flex h-[min(28rem,90dvh)] w-[min(32rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay p-5 text-fg`,children:[(0,I.jsxs)(f,{className:`text-base font-semibold`,children:[t?`重新连接手机`:`Reconnect phone`,` · `,e.name]}),(0,I.jsx)(c,{className:`mt-2 text-sm text-fg-muted`,children:t?`开启手机无线调试,并连接 Gateway 所在局域网。重连会保留设备权限,之前的任务需要重新打开。`:`Enable wireless debugging on the Gateway network. Device permissions are preserved; reopen the previous task.`}),(0,I.jsxs)(`form`,{className:`mt-4 flex min-h-0 flex-1 flex-col`,onSubmit:e=>{e.preventDefault(),b()},children:[(0,I.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-y-auto`,children:[(0,I.jsxs)(`label`,{className:`flex min-h-11 items-center gap-2 text-sm`,children:[(0,I.jsx)(`input`,{type:`checkbox`,checked:i,disabled:g,onChange:e=>a(e.target.checked)}),t?`手动填写当前连接地址`:`Enter current connection address`]}),i&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`label`,{className:`block text-sm`,children:[t?`手机 IP 地址`:`Phone IP address`,(0,I.jsx)(`input`,{className:`mt-1 w-full rounded-lg border border-edge bg-surface-base p-2`,required:!0,value:o,disabled:g,onChange:e=>l(e.target.value.trim())})]}),(0,I.jsxs)(`label`,{className:`block text-sm`,children:[t?`连接端口(无线调试首页)`:`Connection port (Wireless debugging screen)`,(0,I.jsx)(`input`,{className:`mt-1 w-full rounded-lg border border-edge bg-surface-base p-2`,type:`number`,min:1,max:65535,required:!0,value:m,disabled:g,onChange:e=>h(e.target.value)})]})]}),v&&(0,I.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:v})]}),(0,I.jsxs)(`footer`,{className:`mt-4 flex shrink-0 justify-end gap-2 border-t border-edge pt-4`,children:[(0,I.jsx)(A,{type:`button`,disabled:g,onClick:n,children:t?`取消`:`Cancel`}),(0,I.jsx)(A,{type:`submit`,variant:`primary`,disabled:g,children:g?t?`正在连接…`:`Connecting…`:t?`重新连接`:`Reconnect`})]})]})]})]})})}var L=n();function ge(e){let t=(0,L.c)(31),{deviceId:n,serial:r,platform:i,mode:a,selected:o,onModeChange:s,onSelectedChange:c,disabled:l,zh:u}=e,d=(0,F.useId)(),[f,p]=(0,F.useState)(``),h;t[0]!==n||t[1]!==a||t[2]!==i||t[3]!==r?(h=a===`selected`?[`phone-applications`,n??r,i??`android`]:null,t[0]=n,t[1]=a,t[2]=i,t[3]=r,t[4]=h):h=t[4];let g;t[5]!==n||t[6]!==i||t[7]!==r?(g=()=>P(n,r,i),t[5]=n,t[6]=i,t[7]=r,t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_={revalidateOnFocus:!1,shouldRetryOnError:!1},t[9]=_):_=t[9];let v=k(h,g,_),y;if(t[10]!==v||t[11]!==l||t[12]!==d||t[13]!==a||t[14]!==s||t[15]!==c||t[16]!==f||t[17]!==o||t[18]!==u){let e=f.trim().toLocaleLowerCase(),n=v.data?.filter(t=>`${t.label} ${t.packageName}`.toLocaleLowerCase().includes(e))??[],r=v.data,i=r?o.filter(e=>!r.some(t=>t.packageName===e)):[],h;t[20]!==c||t[21]!==o?(h=e=>c(o.includes(e)?o.filter(t=>t!==e):[...o,e]),t[20]=c,t[21]=o,t[22]=h):h=t[22];let g=h,_=u?`应用权限`:`Application access`,b;t[23]===_?b=t[24]:(b=(0,I.jsx)(`legend`,{className:`mb-2 text-sm font-medium`,children:_}),t[23]=_,t[24]=b);let x;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(x=[`all`,`selected`],t[25]=x):x=t[25];let w;t[26]!==d||t[27]!==a||t[28]!==s||t[29]!==u?(w=(0,I.jsx)(`div`,{className:`grid gap-2`,children:x.map(e=>(0,I.jsxs)(`label`,{className:D(`flex min-h-14 cursor-pointer items-start gap-3 rounded-xl border p-3`,a===e?`border-accent/50 bg-accent-soft`:`border-edge bg-surface-base`),children:[(0,I.jsx)(`input`,{type:`radio`,name:d,value:e,checked:a===e,onChange:()=>s(e),className:`mt-1 size-4 shrink-0 accent-accent`}),(0,I.jsxs)(`span`,{className:`min-w-0`,children:[(0,I.jsx)(`span`,{className:`block text-sm font-medium`,children:e===`all`?u?`允许所有应用`:`Allow all apps`:u?`仅允许所选应用`:`Only selected apps`}),(0,I.jsx)(`span`,{className:`mt-0.5 block text-xs leading-relaxed text-fg-muted`,children:e===`all`?u?`可在手机上的应用间切换,无需逐个配置。`:`Switch between apps on this phone without individual setup.`:u?`从手机上已安装的应用中选择。`:`Choose from applications installed on the phone.`})]})]},e))}),t[26]=d,t[27]=a,t[28]=s,t[29]=u,t[30]=w):w=t[30],y=(0,I.jsxs)(`fieldset`,{disabled:l,className:`space-y-3`,children:[b,w,a===`selected`?(0,I.jsxs)(`div`,{className:`space-y-2`,"aria-label":u?`选择手机应用`:`Choose phone applications`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsx)(`p`,{role:`status`,className:`text-xs text-fg-muted`,children:u?`已选择 ${o.length} 个应用`:`${o.length} apps selected`}),(0,I.jsxs)(A,{variant:`ghost`,className:`gap-1 px-2 py-1 text-xs`,"aria-label":u?`刷新应用列表`:`Refresh applications`,disabled:l||v.isValidating,onClick:()=>{v.mutate()},children:[(0,I.jsx)(S,{className:D(`size-3.5`,v.isValidating&&`animate-spin motion-reduce:animate-none`),"aria-hidden":!0}),u?`刷新`:`Refresh`]})]}),(0,I.jsxs)(`div`,{className:`relative`,children:[(0,I.jsx)(C,{className:`pointer-events-none absolute left-3 top-3 size-4 text-fg-muted`,"aria-hidden":!0}),(0,I.jsx)(`input`,{type:`search`,"aria-label":u?`搜索手机应用`:`Search phone applications`,placeholder:u?`搜索应用`:`Search apps`,value:f,onChange:e=>p(e.target.value),className:`min-h-10 w-full rounded-lg border border-edge bg-surface-base py-2 pl-9 pr-3 text-sm focus-visible:outline-2 focus-visible:outline-accent`})]}),v.error?(0,I.jsxs)(`div`,{role:`alert`,className:`rounded-lg bg-surface-inset p-3 text-sm text-fg-muted`,children:[u?`暂时无法读取应用,请确认手机已连接后重试。之前的选择会保留。`:`Unable to read apps. Check the phone connection and retry. Previous selections are preserved.`,(0,I.jsx)(A,{variant:`ghost`,className:`ml-1 text-accent`,onClick:()=>{v.mutate()},children:u?`重试`:`Retry`})]}):null,!v.data&&!v.error?(0,I.jsxs)(`div`,{"aria-busy":`true`,className:`space-y-2 rounded-lg border border-edge p-3`,children:[(0,I.jsx)(O,{className:`h-10 w-full`}),(0,I.jsx)(O,{className:`h-10 w-full`}),(0,I.jsx)(O,{className:`h-10 w-full`})]}):v.data?(0,I.jsxs)(`div`,{className:`max-h-56 overflow-y-auto overscroll-contain rounded-lg border border-edge bg-surface-base`,"aria-label":u?`可选应用`:`Available applications`,children:[n.map(e=>(0,I.jsxs)(`label`,{className:`flex min-h-12 cursor-pointer items-center gap-3 px-3 py-2 hover:bg-surface-hover`,children:[(0,I.jsx)(m,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,I.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`span`,{className:`block truncate text-sm`,title:e.label,children:e.label}),e.label!==e.packageName&&v.data.some(t=>t.packageName!==e.packageName&&t.label===e.label)?(0,I.jsx)(`span`,{className:`block truncate text-xs text-fg-muted`,children:e.packageName}):null]}),(0,I.jsx)(`input`,{type:`checkbox`,"aria-label":e.label,checked:o.includes(e.packageName),onChange:()=>g(e.packageName),className:`size-4 shrink-0 accent-accent`})]},e.packageName)),n.length?null:(0,I.jsx)(`p`,{className:`p-4 text-center text-sm text-fg-muted`,children:e?u?`没有找到匹配的应用`:`No matching applications`:u?`这台手机上没有可打开的应用`:`No launchable applications on this phone`})]}):null,i.length?(0,I.jsxs)(`div`,{className:`space-y-1 text-xs text-fg-muted`,children:[(0,I.jsx)(`p`,{children:u?`以下原有选择未在手机上找到,可取消选择。`:`These previous selections are no longer available. You may deselect them.`}),i.map(e=>(0,I.jsxs)(`label`,{className:`flex min-h-9 items-center gap-2`,children:[(0,I.jsx)(`input`,{type:`checkbox`,checked:!0,onChange:()=>g(e),className:`accent-accent`}),(0,I.jsx)(`span`,{className:`break-all`,children:e})]},e))]}):null,o.length?null:(0,I.jsx)(`p`,{className:`text-xs text-fg-muted`,children:u?`至少选择一个应用后保存。`:`Choose at least one application before saving.`})]}):null]}),t[10]=v,t[11]=l,t[12]=d,t[13]=a,t[14]=s,t[15]=c,t[16]=f,t[17]=o,t[18]=u,t[19]=y}else y=t[19];return y}function R({deviceId:e,value:t,onChange:n,disabled:r,zh:i}){let[a,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)(``);async function l(){o(!0),c(``);try{let t=await N(`/devices/${e}/input-status`);c(t.unicode===`available`?i?`中文输入通道已就绪,具体应用仍需允许粘贴。`:`Unicode input is ready. The app must allow pasting.`:t.unicode===`setup_required`?i?`请在手机依赖中安装或修复 scrcpy server,再重试检测。无需安装手机输入法。`:`Install or repair scrcpy server under phone dependencies, then retry. No phone keyboard installation is needed.`:i?`这台手机暂不支持自动中文输入,请接管后使用手机自带键盘。`:`Automatic Unicode input is unavailable. Take over and use the phone keyboard.`)}catch{c(i?`暂时无法检测,请确认手机连接后重试。`:`Unable to check. Reconnect the phone and retry.`)}finally{o(!1)}}return(0,I.jsxs)(`div`,{className:`space-y-2 rounded-xl border border-edge bg-surface-base p-3`,children:[(0,I.jsxs)(`label`,{className:`flex min-h-9 cursor-pointer items-center justify-between gap-3 text-sm font-medium`,children:[i?`允许自动输入文字`:`Allow automatic text input`,(0,I.jsx)(`input`,{type:`checkbox`,checked:t===`auto`,disabled:r,onChange:e=>n(e.target.checked?`auto`:`manual`),className:`size-4 accent-accent`})]}),(0,I.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-muted`,children:t===`auto`?i?`中文和 Emoji 通过手机剪贴板粘贴,不安装或切换输入法。输入内容可能留在手机剪贴板;不会读取或同步原有剪贴板。`:`Chinese and emoji use the phone clipboard without installing or switching keyboards. Supplied text may remain there; existing clipboard contents are never read or synced.`:i?`Agent 会在需要输入时暂停。请接管手机,使用手机自带键盘输入,完成后交还 Agent。`:`The Agent pauses when text is needed. Take over, type with the phone keyboard, then hand back to the Agent.`}),e?(0,I.jsx)(A,{variant:`ghost`,className:`min-h-9 px-2 text-xs text-accent`,disabled:r||a,onClick:()=>void l(),children:a?i?`正在检测…`:`Checking…`:i?`检测中文输入能力`:`Check Unicode input`}):null,s?(0,I.jsx)(`p`,{role:`status`,className:`text-xs leading-relaxed text-fg-muted`,children:s}):null]})}var z=`w-full rounded-lg border border-edge bg-surface-base px-3 py-2.5 text-sm text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,B=`min-h-11 w-full cursor-default rounded-lg px-3 py-2 text-left text-sm outline-none data-[highlighted]:bg-surface-hover data-[highlighted]:ring-2 data-[highlighted]:ring-inset data-[highlighted]:ring-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,V=`space-y-4 rounded-2xl border border-edge bg-surface-panel p-4 sm:p-5`;function _e({device:e,serial:t,name:n,platform:r,onSave:i,onClose:a,zh:o}){let m=e?.platform??r,h=m===`harmonyos`,[g,_]=(0,F.useState)(e?.name??n),[v,y]=(0,F.useState)(e?.appAccess??(e?.allowedApps.length?`selected`:`all`)),[b,x]=(0,F.useState)(e?.allowedApps??[]),[S,C]=(0,F.useState)(e?.textInput??(h?`manual`:`auto`)),[w,T]=(0,F.useState)(e?.enabled??!0),[D,O]=(0,F.useState)(!1),[k,j]=(0,F.useState)(``),ee=async()=>{O(!0),j(``);try{let n={name:g,appAccess:v,allowedApps:v===`all`?[]:b,textInput:S,enabled:w};await N(e?`/devices/${e.id}`:`/devices`,e?n:{...n,serial:t,platform:m},e?`PATCH`:`POST`),await i(),a()}catch(e){j(e instanceof Error?e.message:String(e))}finally{O(!1)}};return(0,I.jsx)(p,{open:!0,onOpenChange:e=>{!e&&!D&&a()},children:(0,I.jsxs)(u,{children:[(0,I.jsx)(s,{className:`fixed inset-0 z-[80] bg-black/40`}),(0,I.jsxs)(d,{className:`fixed left-1/2 top-1/2 z-[81] flex h-[min(44rem,90dvh)] w-[min(34rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay p-5 text-fg`,children:[(0,I.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(f,{className:`text-base font-semibold`,children:e?o?`管理手机`:`Manage phone`:o?`添加手机`:`Add phone`}),(0,I.jsx)(c,{className:`mt-1 text-sm text-fg-muted`,children:o?`设备连接在 Gateway 所在电脑。修改权限会停止当前控制。`:`This phone connects to the Gateway host. Changing access stops active control.`})]}),(0,I.jsx)(l,{asChild:!0,children:(0,I.jsx)(A,{variant:`ghost`,disabled:D,"aria-label":o?`关闭`:`Close`,children:(0,I.jsx)(E,{className:`size-4`})})})]}),(0,I.jsxs)(`form`,{className:`mt-5 flex min-h-0 flex-1 flex-col`,onSubmit:e=>{e.preventDefault(),ee()},children:[(0,I.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto pr-1`,children:[(0,I.jsxs)(`label`,{className:`block space-y-1.5 text-sm`,children:[o?`名称`:`Name`,(0,I.jsx)(`input`,{className:z,value:g,maxLength:100,required:!0,onChange:e=>_(e.target.value)})]}),(0,I.jsxs)(`p`,{className:`break-all text-xs text-fg-muted`,children:[h?`HDC`:`ADB`,`: `,t]}),(0,I.jsx)(`p`,{className:`text-xs text-fg-muted`,children:o?`已启用 phone_use 工具的 Agent 可使用这台手机。`:`Agents with the phone_use tool can use this phone.`}),(0,I.jsx)(ge,{deviceId:e?.id,serial:t,platform:m,mode:v,selected:b,onModeChange:y,onSelectedChange:x,zh:o,disabled:D}),h?(0,I.jsx)(`p`,{className:`text-xs text-fg-muted`,children:o?`鸿蒙支持实时投屏和截图回退。手势释放后执行;文字请在手机上输入,完成后交还 Agent。应用列表暂以应用标识显示。`:`HarmonyOS supports live video with snapshot fallback. Gestures execute on release. Type on the phone, then hand back. Apps display bundle identifiers.`}):(0,I.jsx)(R,{deviceId:e?.id,value:S,onChange:C,disabled:D,zh:o}),(0,I.jsxs)(`label`,{className:`flex min-h-11 cursor-pointer items-center gap-3 text-sm`,children:[(0,I.jsx)(`input`,{type:`checkbox`,checked:w,onChange:e=>T(e.target.checked)}),o?`允许访问这台手机`:`Enable access to this phone`]}),k&&(0,I.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:k})]}),(0,I.jsxs)(`div`,{className:`mt-4 flex shrink-0 justify-end gap-2 border-t border-edge pt-4`,children:[(0,I.jsx)(A,{type:`button`,disabled:D,onClick:a,children:o?`取消`:`Cancel`}),(0,I.jsx)(A,{type:`submit`,variant:`primary`,disabled:D||!g.trim()||v===`selected`&&!b.length,children:D?o?`保存中…`:`Saving…`:o?`保存手机`:`Save phone`})]})]})]})]})})}function H(){let[e,t]=i(),n=(t,n=!1)=>e.has(t)?e.get(t)===`1`:n,r=(e,r,i=!1)=>{r!==n(e,i)&&t(t=>{let n=new URLSearchParams(t);return n.set(e,r?`1`:`0`),n})},s=o(e=>e.language)===`zh`,c=k(`phone-settings`,de),l=k(`phone-devices`,le,{refreshInterval:15e3}),u=k(`settings-agent-defaults`,oe),d=u.data?.defaults.models.phoneUse?.primary??``,[f,p]=(0,F.useState)(d);(0,F.useEffect)(()=>{p(d)},[d]);let[m,C]=(0,F.useState)(!1),[E,D]=(0,F.useState)(``),[P,L]=(0,F.useState)(``),[ge,R]=(0,F.useState)(!1),[H,ve]=(0,F.useState)(),[ye,U]=(0,F.useState)(),[be,xe]=(0,F.useState)(``),[W,Se]=(0,F.useState)(``),[G,Ce]=(0,F.useState)(``),[K,we]=(0,F.useState)(()=>sessionStorage.getItem(`phone-settings-session`)??``),q=k(K?[`phone-session`,K]:null,()=>N(`/sessions/${K}`),{refreshInterval:1500}),Te=a(),[J,Y]=(0,F.useState)({}),X=q.data,Z=X?.status===`running`,Ee=be||l.data?.defaultDeviceId||``,De=d===ue,Q=async(e,t)=>{C(!0),D(``),L(``);try{await e(),t&&L(t)}catch(e){D(e instanceof Error?e.message:String(e))}finally{C(!1)}},Oe=async e=>{let t=await oe(),n={...t.defaults.models};e?n.phoneUse={primary:e,fallbacks:[]}:delete n.phoneUse;let r=await ae({...t.defaults,models:n},{scope:`models`,expectedModels:t.defaults.models});await u.mutate(r,!1),p(e)},ke=()=>Q(async()=>{K&&X&&![`closed`,`cancelled`,`failed`,`outcome_unknown`].includes(X.status)&&await N(`/sessions/${K}/execute`,{op:`close`});let e=await N(`/sessions`,{deviceId:Ee,mode:`control`});we(e.id),sessionStorage.setItem(`phone-settings-session`,e.id),await N(`/sessions/${e.id}/execute`,{op:`run`,goal:W,...G?{expectText:G}:{},maxActions:6})}),$=e=>Q(async()=>{await N(`/sessions/${K}/execute`,{op:e}),await q.mutate()}),Ae=async e=>{Y(t=>({...t,[e.id]:{pending:!0,text:s?`正在诊断…`:`Checking…`}}));try{let t=await N(`/devices/${e.id}/diagnostics`,{}),n=s?{device:`已连接`,disconnected:`未连接`,unauthorized:`未授权调试`,offline:`离线`}:{device:`Connected`,disconnected:`Disconnected`,unauthorized:`Debugging not authorized`,offline:`Offline`};Y(r=>({...r,[e.id]:{pending:!1,text:`${s?`诊断结果`:`Diagnostics`}:${n[t.state]??t.state}`}}))}catch(t){Y(n=>({...n,[e.id]:{pending:!1,error:!0,text:t instanceof Error?t.message:String(t)}}))}},je=s?{ready:`就绪`,running:`执行中`,paused:`已暂停`,needs_user:`等待人工处理`,completed:`执行结束`,cancelled:`已停止`,closed:`已关闭`,failed:`执行失败`,outcome_unknown:`结果待核查`}:{},Me=!!(l.data?.devices.length&&l.data.devices.every(e=>e.connection));return(0,I.jsxs)(se,{gap:`gap-6`,className:`max-w-[48rem]`,children:[(0,I.jsx)(ce,{aiSetup:`phone`,title:(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[s?`手机控制`:`Phone Use`,(0,I.jsx)(y,{})]}),subtitle:s?`让 AI 帮你操作 Android 和鸿蒙手机。`:`Let AI work with your Android or HarmonyOS phone.`}),E&&(0,I.jsx)(`p`,{role:`alert`,className:`rounded-xl bg-danger-soft p-3 text-sm text-danger`,children:E}),P&&(0,I.jsx)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:P}),c.error&&(0,I.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:String(c.error)}),(0,I.jsx)(`section`,{className:V,"aria-label":s?`手机控制设置`:`Phone control settings`,children:(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,I.jsx)(`span`,{className:`flex size-11 shrink-0 items-center justify-center rounded-xl bg-surface-inset text-fg-muted`,children:(0,I.jsx)(T,{className:`size-6`,"aria-hidden":!0})}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`h2`,{className:`text-sm font-semibold`,children:s?`启用手机控制`:`Enable Phone Use`}),(0,I.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:s?`连接与操作在 Gateway 电脑上执行。`:`Connects and runs on your Gateway computer.`})]})]}),c.data?(0,I.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":c.data.config.enabled,"aria-label":s?`启用手机控制`:`Enable Phone Use`,disabled:m||Z,className:`touch-target flex shrink-0 items-center rounded-lg px-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-50`,onClick:()=>{let e=!c.data.config.enabled;Q(async()=>{await N(`/settings`,{...c.data.config,enabled:e},`PATCH`),await c.mutate()})},children:(0,I.jsx)(`span`,{className:`flex h-6 w-11 items-center rounded-full p-0.5 transition-colors motion-reduce:transition-none ${c.data.config.enabled?`bg-accent`:`bg-fg-muted/30`}`,children:(0,I.jsx)(`span`,{className:`size-5 rounded-full bg-white transition-transform motion-reduce:transition-none ${c.data.config.enabled?`translate-x-5`:`translate-x-0`}`})})}):(0,I.jsx)(O,{className:`h-8 w-12`})]})}),(0,I.jsx)(`section`,{className:V,children:(0,I.jsxs)(`label`,{className:`block space-y-2 text-sm`,children:[(0,I.jsx)(`span`,{children:s?`默认执行方式`:`Default execution strategy`}),c.data?(0,I.jsxs)(g,{"aria-label":s?`默认执行方式`:`Default execution strategy`,value:c.data.config.executionMode??`collaborative`,disabled:m,onChange:e=>{let t=e.target.value;Q(async()=>{await N(`/settings`,{...c.data.config,executionMode:t},`PATCH`),await c.mutate()})},children:[(0,I.jsx)(_,{value:`collaborative`,children:s?`主 Agent 协作(默认)`:`Main Agent collaboration (default)`}),(0,I.jsx)(_,{value:`direct`,children:s?`直接执行`:`Direct execution`})]}):(0,I.jsx)(O,{className:`h-10 w-full`}),(0,I.jsx)(`p`,{className:`text-xs text-fg-muted`,children:s?`协作:主 Agent 拆解目标并根据反馈继续。直接执行:手机模型自行规划完整手机任务。修改只影响新任务,聊天可覆盖。`:`Collaboration: the main Agent plans small goals using feedback. Direct: the phone model plans the full phone task. Changes affect new tasks; chats can override.`})]})}),(0,I.jsxs)(`section`,{"aria-label":s?`手机模型配置`:`Phone model configuration`,className:V,children:[(0,I.jsx)(`h2`,{className:`text-sm font-semibold`,children:s?`操作模型`:`Phone model`}),c.data&&(0,I.jsxs)(`label`,{className:`block space-y-2 text-sm`,children:[(0,I.jsx)(`span`,{children:s?`连接保持时间`:`Connection lifetime`}),(0,I.jsxs)(g,{"aria-label":s?`连接保持时间`:`Connection lifetime`,value:String(c.data.config.idleDisconnectMs??0),disabled:m||Z,onChange:e=>{let t=Number(e.target.value);Q(async()=>{await N(`/settings`,{...c.data.config,idleDisconnectMs:t},`PATCH`),await c.mutate()})},children:[(0,I.jsx)(_,{value:`0`,children:s?`保持连接,直到手动断开`:`Keep connected until disconnected`}),[15,30,60].map(e=>(0,I.jsx)(_,{value:String(e*6e4),children:s?`闲置 ${e} 分钟后断开`:`Disconnect after ${e} idle minutes`},e))]}),(0,I.jsx)(`p`,{className:`text-xs text-fg-muted`,children:s?`任务结束后保留连接;执行任务、人工操作和查看画面期间不计闲置。`:`Tasks finish without disconnecting. Running tasks, manual control and viewing the screen do not count as idle.`})]}),!u.data&&!u.error?(0,I.jsx)(O,{className:`h-20 w-full`}):(0,I.jsx)(me,{value:d,onSelect:p,onSave:Oe,zh:s,disabled:m||Z||!u.data}),u.error&&(0,I.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:String(u.error)}),(0,I.jsx)(`div`,{className:`flex flex-wrap items-center gap-3`,children:(0,I.jsx)(A,{variant:`ghost`,className:`px-0 text-accent-fg hover:bg-transparent hover:underline`,disabled:m||!f||f===`phone-mock/settings-about`,onClick:()=>{Q(async()=>{let e=await N(`/models/diagnostics`,{modelRef:f});L(e.mock?s?`模拟适配器可用;此测试不验证真实模型。`:`Mock adapter ready; this does not validate a real model.`:e.groundingVerified?s?`模型连接、动作协议和测试图定位通过;未操作真实手机。`:`Connection, protocol and test-image grounding passed. No phone was operated.`:s?`动作协议有效,但测试图定位未通过。`:`Protocol valid, but test-image grounding did not pass.`)})},children:s?`测试模型连接`:`Test model connection`})}),(0,I.jsxs)(`details`,{open:n(`privacy`),onToggle:e=>r(`privacy`,e.currentTarget.open),className:`group border-t border-edge-subtle pt-1 text-xs text-fg-muted`,children:[(0,I.jsxs)(`summary`,{className:`flex min-h-11 cursor-pointer list-none items-center gap-2 [&::-webkit-details-marker]:hidden`,children:[(0,I.jsx)(w,{className:`size-4`,"aria-hidden":!0}),s?`隐私与执行限制`:`Privacy & execution limits`,(0,I.jsx)(h,{className:`ml-auto size-4 group-open:rotate-180`,"aria-hidden":!0})]}),(0,I.jsxs)(`div`,{className:`space-y-3 pb-2 leading-relaxed`,children:[(0,I.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-muted`,children:s?`手机截图会发送给所选模型;页面摘要可能进入聊天模型。`:`Phone screenshots go to the selected model; page summaries may reach the chat model.`}),` `,c.data&&(0,I.jsxs)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:[s?`每次小目标最多 12 步、${c.data.config.maxOperationDurationMs/1e3} 秒活跃执行时间;会话限制`:`Each goal: up to 12 actions / ${c.data.config.maxOperationDurationMs/1e3} active seconds. Session limits`,`: `,c.data.config.maxActionsPerSession,` `,s?`动作`:`actions`,` · `,c.data.config.maxModelRequests,` `,s?`模型请求`:`model requests`]}),(0,I.jsx)(`p`,{children:s?`远程浏览器无法访问你本机的 USB 设备。`:`A remote browser cannot access your local USB devices.`})]})]})]}),(0,I.jsxs)(`section`,{className:`space-y-3`,"aria-label":s?`手机管理`:`Phone management`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsx)(`h2`,{className:`text-sm font-semibold`,children:s?`手机管理`:`Phones`}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(A,{variant:`ghost`,disabled:m,onClick:()=>R(!0),children:[(0,I.jsx)(x,{className:`size-4`,"aria-hidden":!0}),s?`添加手机`:`Add phone`]}),(0,I.jsxs)(A,{variant:`ghost`,disabled:m||l.isValidating,onClick:()=>{Q(()=>l.mutate())},children:[(0,I.jsx)(S,{className:`size-4`,"aria-hidden":!0}),s?`刷新`:`Refresh`]})]})]}),!l.data&&!l.error?(0,I.jsx)(O,{className:`h-32 w-full rounded-xl`}):(0,I.jsxs)(`div`,{className:V,children:[(l.error||!Me&&l.data?.diagnostic)&&(0,I.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[l.data?.diagnostic??String(l.error),` · `,s?`检查 Gateway 电脑的调试工具与 USB 连接。`:`Check debugging tools and USB on the Gateway host.`]}),l.data?.devices.map(e=>(0,I.jsxs)(`div`,{className:`border-b border-edge-subtle pb-4 last:border-b-0 last:pb-0`,children:[(0,I.jsxs)(`div`,{className:`flex flex-col items-start justify-between gap-3 sm:flex-row sm:gap-4`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-3`,children:[(0,I.jsx)(T,{className:`mt-0.5 size-5 shrink-0 text-fg-muted`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`p`,{className:`break-words text-sm font-medium`,children:[e.name,e.id===l.data?.defaultDeviceId&&(0,I.jsx)(`span`,{className:`ml-2 inline-block rounded-md bg-surface-inset px-2 py-0.5 text-xs font-normal text-fg-muted`,children:s?`默认`:`Default`})]}),(0,I.jsxs)(`p`,{className:`mt-1 break-all text-xs text-fg-muted`,children:[e.platform===`harmonyos`?`HarmonyOS · HDC · USB · `:e.connection?`${s?`阿里云`:`Alibaba Cloud`} · ADB · `:``,e.serial,` · `,e.enabled?e.connection?s?`已配置 · 按需连接`:`Configured · Connects on demand`:{device:s?`已连接`:`Connected`,offline:s?`离线`:`Offline`,unauthorized:s?`待授权`:`Unauthorized`}[l.data?.discovery.find(t=>t.serial===e.serial&&(t.platform??`android`)===(e.platform??`android`))?.state??``]??(s?`未连接`:`Disconnected`):s?`已禁用`:`Disabled`]})]})]}),(0,I.jsxs)(`div`,{className:`flex max-w-full shrink-0 flex-wrap items-center justify-end gap-1 self-end sm:self-start`,children:[(0,I.jsx)(A,{variant:`ghost`,disabled:m,onClick:()=>U({device:e,serial:e.serial,name:e.name}),children:s?`管理`:`Manage`}),(0,I.jsx)(A,{variant:`ghost`,disabled:m||!e.enabled,onClick:()=>{Q(async()=>{await N(`/devices/${e.id}/view`,{}),window.dispatchEvent(new Event(`phone-connections-changed`)),j.getState().show(e.id)})},children:s?`查看屏幕`:`View screen`}),(0,I.jsx)(A,{variant:`ghost`,disabled:m||!e.enabled,onClick:()=>{Q(async()=>{let t=await N(`/devices/${e.id}/conversations`,{});window.dispatchEvent(new Event(`session-created`)),j.getState().hide(),Te(`/chat/${t.conversationId}`)})},children:s?`对话控制手机`:`Control in chat`}),(0,I.jsxs)(ee,{modal:!1,children:[(0,I.jsx)(te,{asChild:!0,children:(0,I.jsxs)(A,{variant:`ghost`,disabled:m,"aria-label":s?`${e.name}的更多操作`:`More actions for ${e.name}`,children:[s?`更多`:`More`,(0,I.jsx)(h,{className:`size-3.5`,"aria-hidden":!0})]})}),(0,I.jsx)(ne,{children:(0,I.jsxs)(re,{align:`end`,sideOffset:6,collisionPadding:12,className:`z-[90] min-w-40 max-w-[calc(100vw-1.5rem)] rounded-xl border border-edge bg-surface-overlay p-1 text-fg shadow-popover`,children:[e.wireless&&(0,I.jsx)(M,{disabled:m||!e.enabled,className:B,onSelect:()=>ve(e),children:s?`重新连接`:`Reconnect`}),(0,I.jsx)(M,{disabled:m||J[e.id]?.pending,className:B,onSelect:()=>{Ae(e)},children:e.connection?s?`连接诊断`:`Connect & diagnose`:s?`诊断`:`Diagnose`}),e.id!==l.data?.defaultDeviceId&&(0,I.jsx)(M,{disabled:m,className:B,onSelect:()=>{Q(async()=>{await N(`/devices/${e.id}/default`,{}),await l.mutate()})},children:s?`设为默认`:`Set default`}),(0,I.jsx)(ie,{className:`my-1 border-t border-edge-subtle`}),(0,I.jsx)(M,{disabled:m,className:`${B} text-danger`,onSelect:()=>{Q(async()=>{await N(`/devices/${e.id}`,void 0,`DELETE`),await l.mutate()})},children:s?`移除连接`:`Remove connection`})]})})]})]})]}),(0,I.jsx)(`p`,{role:`status`,"aria-live":`polite`,title:J[e.id]?.text,className:`h-5 truncate text-xs leading-5 ${J[e.id]?.error?`text-danger`:`text-fg-muted`}`,children:J[e.id]?.text})]},e.id)),l.data?.discovery.filter(e=>!l.data?.devices.some(t=>t.serial===e.serial&&(t.platform??`android`)===(e.platform??`android`))).map(e=>(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`p`,{className:`text-sm`,children:e.name}),(0,I.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[e.platform===`harmonyos`?`HarmonyOS · USB`:e.emulator?s?`Android 模拟器`:`Android emulator`:`Android`,` · `,e.state]})]}),(0,I.jsx)(A,{disabled:m||e.state!==`device`,onClick:()=>U({serial:e.serial,name:e.name,platform:e.platform}),children:s?`添加手机`:`Add phone`})]},`${e.platform??`android`}:${e.serial}`)),!l.data?.devices.length&&!l.data?.discovery.length&&(0,I.jsx)(`p`,{className:`py-3 text-sm text-fg-muted`,children:s?`尚未发现设备。先启动 Android 模拟器,或通过 USB 连接手机并允许调试。`:`No devices found. Start an Android emulator, or connect a phone over USB and authorize debugging.`})]})]}),(0,I.jsx)(fe,{expanded:n(`components`),onExpandedChange:e=>r(`components`,e),cloudOnly:Me,onChanged:()=>{l.mutate(),c.mutate()}}),(0,I.jsxs)(`details`,{open:n(`test`,!!K),onToggle:e=>r(`test`,e.currentTarget.open,!!K),className:`group rounded-2xl border border-edge bg-surface-panel`,"aria-label":s?`手机试运行`:`Phone test run`,children:[(0,I.jsxs)(`summary`,{className:`flex min-h-16 cursor-pointer list-none items-center gap-3 p-5 [&::-webkit-details-marker]:hidden`,children:[(0,I.jsx)(v,{className:`size-5 text-fg-muted`,"aria-hidden":!0}),(0,I.jsx)(`h2`,{className:`text-sm font-semibold`,children:s?`试运行`:`Test run`}),(0,I.jsx)(`span`,{className:`ml-auto text-xs text-fg-muted`,children:s?`验证手机操作`:`Try a task`}),(0,I.jsx)(h,{className:`size-4 shrink-0 text-fg-muted group-open:rotate-180`,"aria-hidden":!0})]}),(0,I.jsxs)(`div`,{className:`space-y-4 border-t border-edge-subtle p-5`,children:[(0,I.jsxs)(g,{"aria-label":s?`测试手机`:`Test phone`,value:Ee,disabled:m||Z,onChange:e=>xe(e.target.value),children:[(0,I.jsx)(_,{value:``,children:s?`选择手机`:`Choose phone`}),l.data?.devices.filter(e=>e.enabled).map(e=>(0,I.jsx)(_,{value:e.id,children:e.name},e.id))]}),(0,I.jsxs)(`div`,{className:`space-y-3`,children:[(0,I.jsxs)(`label`,{className:`block space-y-1.5 text-sm`,children:[s?`本次授权的小目标`:`Authorized goal`,(0,I.jsx)(`textarea`,{className:z,value:W,maxLength:2e3,onChange:e=>Se(e.target.value)})]}),(0,I.jsxs)(`label`,{className:`block space-y-1.5 text-sm`,children:[s?`完成时应显示的文字(可选)`:`Expected completion text (optional)`,(0,I.jsx)(`input`,{className:z,value:G,maxLength:200,onChange:e=>Ce(e.target.value)})]}),(0,I.jsx)(`p`,{className:`text-xs text-fg-muted`,children:s?`先手动打开允许的应用。模型说完成只表示执行结束,只有匹配界面证据才会显示验证通过。`:`First open an allowed app manually. A model completion claim remains unverified until native UI evidence matches.`})]}),(0,I.jsxs)(A,{variant:`primary`,disabled:m||Z||!c.data?.config.enabled||!d||De||f!==d||!Ee||!W.trim(),onClick:()=>{ke()},children:[(0,I.jsx)(b,{className:`size-4`}),s?`开始试运行`:`Start test run`]}),q.error&&(0,I.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:String(q.error)}),X&&(0,I.jsxs)(`div`,{className:`space-y-3 rounded-xl border border-edge bg-surface-inset p-4`,"aria-live":`polite`,children:[(0,I.jsxs)(`p`,{className:`text-sm font-medium`,children:[X.deviceName,` · `,je[X.status]??X.status]}),(0,I.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[X.actions,` `,s?`动作`:`actions`,` · `,X.modelRequests,` `,s?`模型请求`:`model requests`,` · `,X.verified?s?`界面条件已验证`:`UI condition verified`:s?`尚未验证完成`:`Completion unverified`]}),X.message&&(0,I.jsx)(`p`,{className:`text-sm text-fg-muted`,children:X.message}),(X.errorCode||X.stopReason)&&(0,I.jsx)(`p`,{className:`break-all text-xs text-fg-muted`,children:X.errorCode??X.stopReason}),(0,I.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,I.jsx)(A,{disabled:m||!Z,onClick:()=>{$(`pause`)},children:s?`暂停`:`Pause`}),(0,I.jsx)(A,{disabled:m||![`paused`,`needs_user`].includes(X.status),onClick:()=>{$(`resume`)},children:s?`恢复`:`Resume`}),(0,I.jsx)(A,{disabled:m||[`closed`,`cancelled`].includes(X.status),onClick:()=>{$(`cancel`)},children:s?`停止`:`Stop`}),(0,I.jsx)(A,{disabled:m,onClick:()=>{$(`close`)},children:s?`释放手机`:`Release phone`}),X.status===`ready`&&!X.mock&&(0,I.jsx)(A,{disabled:m,onClick:()=>{Q(async()=>{await N(`/sessions/${K}/execute`,{op:`run`,goal:W,...G?{expectText:G}:{}}),await q.mutate()})},children:s?`继续当前目标`:`Continue goal`})]}),X.facts?.length?(0,I.jsxs)(`details`,{children:[(0,I.jsx)(`summary`,{className:`cursor-pointer text-xs text-fg-muted`,children:s?`本次观察到的界面文字`:`Observed UI text`}),(0,I.jsx)(`ul`,{className:`mt-2 max-h-52 space-y-1 overflow-auto text-xs text-fg-muted`,children:X.facts.map((e,t)=>(0,I.jsx)(`li`,{className:`break-words`,children:e},t))})]}):null]})]})]},K),ge&&(0,I.jsx)(pe,{onAdded:()=>{l.mutate()},zh:s,onClose:()=>R(!1),onSelect:e=>{R(!1),U({serial:e.serial,name:e.name,platform:e.platform})}}),H&&(0,I.jsx)(he,{device:H,zh:s,onClose:()=>ve(void 0),onConnected:async()=>{await l.mutate()}}),ye&&c.data&&(0,I.jsx)(_e,{...ye,zh:s,onSave:async()=>{await l.mutate()},onClose:()=>U(void 0)})]})}export{H as PhoneSettingsPage};
@@ -1 +1 @@
1
- import{p as e}from"./locale-store-B6OrWgY1.js";var t=e(e=>({activation:0,open:!1,selected:null,controlConversationId:null,displayMode:`docked`,position:null,floatingWidth:288,setFloatingWidth:t=>e({floatingWidth:t}),setDisplayMode:t=>e({displayMode:t}),setPosition:t=>e(e=>e.position?.x===t.x&&e.position?.y===t.y?e:{position:t}),show:(t,n=!0,r)=>e(e=>({activation:e.activation+ +!!n,selected:n||!e.selected?t??e.selected:e.selected,open:n||e.open,controlConversationId:n||!e.open?r??(t===void 0||t===e.selected?e.controlConversationId:null):e.controlConversationId})),hide:()=>e({open:!1})}));export{t};
1
+ import{p as e}from"./locale-store-CAZaC05J.js";var t=e(e=>({activation:0,open:!1,selected:null,controlConversationId:null,displayMode:`docked`,position:null,floatingWidth:288,setFloatingWidth:t=>e({floatingWidth:t}),setDisplayMode:t=>e({displayMode:t}),setPosition:t=>e(e=>e.position?.x===t.x&&e.position?.y===t.y?e:{position:t}),show:(t,n=!0,r)=>e(e=>({activation:e.activation+ +!!n,selected:n||!e.selected?t??e.selected:e.selected,open:n||e.open,controlConversationId:n||!e.open?r??(t===void 0||t===e.selected?e.controlConversationId:null):e.controlConversationId})),hide:()=>e({open:!1})}));export{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{i as a,n as o,o as ee}from"./locale-store-CAZaC05J.js";import{a as te,i as ne,n as s,o as re,r as ie,s as ae,t as c}from"./dist-BGTk37IG.js";import{t as l}from"./package-wATCyihJ.js";import{t as u}from"./x-B_N4OPjy.js";import{t as d}from"./skeleton-BI5TyibZ.js";import{a as f,i as p}from"./vendor-swr-CdRzEUwF.js";import{t as m}from"./button-Cc4hUNTt.js";import{t as h}from"./connection-usage-guide-Ddh0bfkj.js";import{n as g,t as _}from"./agent-plugin-dialog-XN-tZ-Ox.js";import{n as oe}from"./capability-links-DeO34GIF.js";import{t as se}from"./capability-icon-DVoZxEgW.js";import{n as ce,t as v}from"./plugin-presentation-CO5BFDGW.js";var le=n(),y=e(t(),1),b=r();function x(e){let t=(0,le.c)(63),{pluginId:n,initialConnect:r,onClose:x}=e,S=r!==void 0&&r,C=o(ue).startsWith(`zh`),{mutate:w}=f(),[de,T]=(0,y.useState)(!1),E=(0,y.useRef)(document.activeElement instanceof HTMLElement?document.activeElement:null),D;t[0]===n?D=t[1]:(D=async()=>{let e=await ee(a(`/api/extensions/agent-plugins/${encodeURIComponent(n)}`));if(!e.ok)throw Error(e.error??`Plugin not found`);return e.payload},t[0]=n,t[1]=D);let O;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(O={revalidateOnFocus:!0},t[2]=O):O=t[2];let{data:k,error:A,mutate:j}=p(`plugin-details:${n}`,D,O),M=k?ce(k,C):C?`插件详情`:`Plugin details`,N=k?.localizations?.[C?`zh-CN`:`en`]?.description??k?.description;if(de&&k){let e;t[3]!==j||t[4]!==T?(e=()=>{T(!1),j()},t[3]=j,t[4]=T,t[5]=e):e=t[5];let n;return t[6]!==k||t[7]!==x||t[8]!==e?(n=(0,b.jsx)(_,{extension:k,onUninstalled:x,onClose:e}),t[6]=k,t[7]=x,t[8]=e,t[9]=n):n=t[9],n}let P;t[10]===x?P=t[11]:(P=e=>{e||x()},t[10]=x,t[11]=P);let F;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,b.jsx)(te,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),t[12]=F):F=t[12];let I;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(I=e=>{E.current?.isConnected&&(e.preventDefault(),E.current.focus({preventScroll:!0}))},t[13]=I):I=t[13];let L=k?.branding?.iconUrl,R;t[14]===L?R=t[15]:(R=(0,b.jsx)(se,{iconUrl:L,fallback:l}),t[14]=L,t[15]=R);let z;t[16]===M?z=t[17]:(z=(0,b.jsx)(ae,{className:`truncate text-base font-semibold text-fg`,children:M}),t[16]=M,t[17]=z);let B;t[18]===k?B=t[19]:(B=k?(0,b.jsxs)(`p`,{className:`mt-0.5 truncate text-xs text-fg-muted`,children:[k.version,` · `,k.name]}):null,t[18]=k,t[19]=B);let V;t[20]!==B||t[21]!==z?(V=(0,b.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[z,B]}),t[20]=B,t[21]=z,t[22]=V):V=t[22];let H=C?`关闭插件详情`:`Close plugin details`,U;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,b.jsx)(u,{className:`size-5`,"aria-hidden":!0}),t[23]=U):U=t[23];let W;t[24]===H?W=t[25]:(W=(0,b.jsx)(s,{asChild:!0,children:(0,b.jsx)(m,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":H,children:U})}),t[24]=H,t[25]=W);let G;t[26]!==V||t[27]!==W||t[28]!==R?(G=(0,b.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 border-b border-edge px-5 py-4`,children:[R,V,W]}),t[26]=V,t[27]=W,t[28]=R,t[29]=G):G=t[29];let K=C?`查看插件能力、管理账号连接与授权。关闭后返回原来的列表。`:`View plugin capabilities and manage account connections. Close to return to the list.`,q;t[30]===K?q=t[31]:(q=(0,b.jsx)(ne,{className:`sr-only`,children:K}),t[30]=K,t[31]=q);let J;t[32]!==k||t[33]!==N||t[34]!==A||t[35]!==S||t[36]!==w||t[37]!==M||t[38]!==x||t[39]!==n||t[40]!==j||t[41]!==C?(J=(0,b.jsx)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto p-5`,children:A?(0,b.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:String(A)}):k?(0,b.jsxs)(b.Fragment,{children:[N?(0,b.jsx)(`p`,{className:`text-sm leading-relaxed text-fg-muted`,children:N}):null,(0,b.jsx)(g,{initialConnect:S,extension:k,zh:C,onChanged:async()=>{await j(),await w(`gateway-extensions-list`)}},n),v(k)?(0,b.jsx)(h,{target:{kind:`plugin`,id:n,name:M},skills:k.components?.skills,serverId:k.components?.mcp.length===1?k.components.mcp[0].id:void 0,onStart:x}):null,k.components?.skills.length?(0,b.jsxs)(`section`,{className:`space-y-3 border-t border-edge pt-5`,children:[(0,b.jsx)(`h3`,{className:`text-sm font-medium`,children:C?`技能(${k.components.skills.length})`:`Skills (${k.components.skills.length})`}),(0,b.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:k.components.skills.map(e=>(0,b.jsx)(i,{onClick:x,to:`/capabilities/skills?${new URLSearchParams({tab:`installed`,source:`plugin`,q:k.dialect===`portable`?e.name:`${n}.${e.name}`})}`,className:`max-w-full break-words rounded-lg border border-edge px-3 py-2 text-sm text-accent hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:e.name},e.name))})]}):null]}):(0,b.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,b.jsx)(d,{className:`h-14 w-full`}),(0,b.jsx)(d,{className:`h-28 w-full`}),(0,b.jsx)(d,{className:`h-40 w-full`})]})}),t[32]=k,t[33]=N,t[34]=A,t[35]=S,t[36]=w,t[37]=M,t[38]=x,t[39]=n,t[40]=j,t[41]=C,t[42]=J):J=t[42];let Y;t[43]!==k||t[44]!==T||t[45]!==C?(Y=k?(0,b.jsx)(m,{variant:`ghost`,onClick:()=>T(!0),children:C?`管理插件`:`Manage plugin`}):(0,b.jsx)(`span`,{}),t[43]=k,t[44]=T,t[45]=C,t[46]=Y):Y=t[46];let X;t[47]!==k||t[48]!==M||t[49]!==n||t[50]!==C?(X=k&&v(k)?(0,b.jsx)(m,{asChild:!0,children:(0,b.jsx)(i,{to:oe(M,C,n),children:C?`开始使用`:`Start using`})}):(0,b.jsx)(s,{asChild:!0,children:(0,b.jsx)(m,{variant:`secondary`,children:C?`完成`:`Done`})}),t[47]=k,t[48]=M,t[49]=n,t[50]=C,t[51]=X):X=t[51];let Z;t[52]!==Y||t[53]!==X?(Z=(0,b.jsxs)(`footer`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-3 border-t border-edge px-5 py-4`,children:[Y,X]}),t[52]=Y,t[53]=X,t[54]=Z):Z=t[54];let Q;t[55]!==G||t[56]!==q||t[57]!==J||t[58]!==Z?(Q=(0,b.jsxs)(re,{children:[F,(0,b.jsxs)(ie,{onCloseAutoFocus:I,className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[131] flex h-[min(38rem,calc(100dvh-2rem))] w-[min(42rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-popover`,children:[G,q,J,Z]})]}),t[55]=G,t[56]=q,t[57]=J,t[58]=Z,t[59]=Q):Q=t[59];let $;return t[60]!==Q||t[61]!==P?($=(0,b.jsx)(c,{open:!0,onOpenChange:P,children:Q}),t[60]=Q,t[61]=P,t[62]=$):$=t[62],$}function ue(e){return e.language}export{x as PluginDetailsDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./vendor-react-BOUWij0V.js";import{n,p as r}from"./locale-store-B6OrWgY1.js";import{t as i}from"./messages-jwdBhfL9.js";import{n as a,r as o}from"./popover-select-CEMWIrtY.js";import{t as s}from"./cn-0WouolD0.js";import{t as c}from"./middleware-Pd0e8Igk.js";import{o as l}from"./form-field-width-DJw_jULe.js";import{i as u}from"./theme-store-TkG5mo0p.js";var d=e(),f=[`compact`,`default`,`large`];function p(e){document.documentElement.dataset.fontScale=e}function m(){try{let e=localStorage.getItem(`xopc-web-font-scale`),t=`default`;if(e){let n=JSON.parse(e).state?.preference;n&&f.includes(n)&&(t=n)}p(t)}catch{p(`default`)}}var h=r(c(e=>({preference:`default`,setPreference:t=>{p(t),e({preference:t})}}),{name:`xopc-web-font-scale`}));function g(){p(h.getState().preference)}var _=t(),v=[`language`,`theme`,`font`];function y(e){let t=(0,d.c)(59),{variant:r,sections:c}=e,f=c===void 0?v:c,p=n(T),m=n(w),g=u(C),y=u(S),E=h(x),D=h(b),O;t[0]===p?O=t[1]:(O=i(p),t[0]=p,t[1]=O);let k=O.appearanceSettings,A=r===`page`?`w-full max-w-[min(100%,12rem)] shrink-0 sm:ml-auto sm:w-auto sm:max-w-[11rem]`:r===`toolbar`?`w-auto min-w-[6.5rem] max-w-[10rem] shrink-0 sm:min-w-[7.5rem]`:`w-full`,j;t[2]===A?j=t[3]:(j=s(l,A),t[2]=A,t[3]=j);let M=j,N=r===`page`?`flex flex-col gap-2 border-b border-edge-subtle px-4 py-3.5 last:border-b-0 sm:flex-row sm:items-center sm:justify-between sm:gap-6 sm:px-5 sm:py-4`:`flex flex-col gap-1.5`,P;t[4]===f?P=t[5]:(P=e=>f.includes(e),t[4]=f,t[5]=P);let F=P;if(r===`toolbar`){let e;t[6]!==k||t[7]!==p||t[8]!==M||t[9]!==m||t[10]!==F?(e=F(`language`)?(0,_.jsxs)(a,{className:M,value:p,"aria-label":k.languageTitle,onChange:e=>m(e.target.value),children:[(0,_.jsx)(o,{value:`en`,children:k.langOptionEn}),(0,_.jsx)(o,{value:`zh`,children:k.langOptionZh})]}):null,t[6]=k,t[7]=p,t[8]=M,t[9]=m,t[10]=F,t[11]=e):e=t[11];let n;t[12]!==k||t[13]!==M||t[14]!==y||t[15]!==F||t[16]!==g?(n=F(`theme`)?(0,_.jsxs)(a,{className:M,value:g,"aria-label":k.themeTitle,onChange:e=>y(e.target.value),children:[(0,_.jsx)(o,{value:`light`,children:k.themeOptionLight}),(0,_.jsx)(o,{value:`dark`,children:k.themeOptionDark}),(0,_.jsx)(o,{value:`system`,children:k.themeOptionSystem})]}):null,t[12]=k,t[13]=M,t[14]=y,t[15]=F,t[16]=g,t[17]=n):n=t[17];let r;t[18]!==k||t[19]!==E||t[20]!==M||t[21]!==D||t[22]!==F?(r=F(`font`)?(0,_.jsxs)(a,{className:M,value:E,"aria-label":k.fontScaleTitle,onChange:e=>D(e.target.value),children:[(0,_.jsx)(o,{value:`compact`,children:k.fontScaleCompact}),(0,_.jsx)(o,{value:`default`,children:k.fontScaleDefault}),(0,_.jsx)(o,{value:`large`,children:k.fontScaleLarge})]}):null,t[18]=k,t[19]=E,t[20]=M,t[21]=D,t[22]=F,t[23]=r):r=t[23];let i;return t[24]!==e||t[25]!==n||t[26]!==r?(i=(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[e,n,r]}),t[24]=e,t[25]=n,t[26]=r,t[27]=i):i=t[27],i}let I=r===`sidebar`&&`flex flex-col gap-4`,L;t[28]===I?L=t[29]:(L=s(I),t[28]=I,t[29]=L);let R;t[30]!==k||t[31]!==p||t[32]!==N||t[33]!==M||t[34]!==m||t[35]!==F||t[36]!==r?(R=F(`language`)?(0,_.jsxs)(`div`,{className:N,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:k.languageTitle}),r===`page`?null:(0,_.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:k.languageDescription})]}),(0,_.jsxs)(a,{className:M,value:p,"aria-label":k.languageTitle,onChange:e=>m(e.target.value),children:[(0,_.jsx)(o,{value:`en`,children:k.langOptionEn}),(0,_.jsx)(o,{value:`zh`,children:k.langOptionZh})]})]}):null,t[30]=k,t[31]=p,t[32]=N,t[33]=M,t[34]=m,t[35]=F,t[36]=r,t[37]=R):R=t[37];let z;t[38]!==k||t[39]!==N||t[40]!==M||t[41]!==y||t[42]!==F||t[43]!==g||t[44]!==r?(z=F(`theme`)?(0,_.jsxs)(`div`,{className:N,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:k.themeTitle}),r===`page`?null:(0,_.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:k.themeDescription})]}),(0,_.jsxs)(a,{className:M,value:g,"aria-label":k.themeTitle,onChange:e=>y(e.target.value),children:[(0,_.jsx)(o,{value:`light`,children:k.themeOptionLight}),(0,_.jsx)(o,{value:`dark`,children:k.themeOptionDark}),(0,_.jsx)(o,{value:`system`,children:k.themeOptionSystem})]})]}):null,t[38]=k,t[39]=N,t[40]=M,t[41]=y,t[42]=F,t[43]=g,t[44]=r,t[45]=z):z=t[45];let B;t[46]!==k||t[47]!==E||t[48]!==N||t[49]!==M||t[50]!==D||t[51]!==F||t[52]!==r?(B=F(`font`)?(0,_.jsxs)(`div`,{className:N,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:k.fontScaleTitle}),r===`page`?null:(0,_.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:k.fontScaleDescription})]}),(0,_.jsxs)(a,{className:M,value:E,"aria-label":k.fontScaleTitle,onChange:e=>D(e.target.value),children:[(0,_.jsx)(o,{value:`compact`,children:k.fontScaleCompact}),(0,_.jsx)(o,{value:`default`,children:k.fontScaleDefault}),(0,_.jsx)(o,{value:`large`,children:k.fontScaleLarge})]})]}):null,t[46]=k,t[47]=E,t[48]=N,t[49]=M,t[50]=D,t[51]=F,t[52]=r,t[53]=B):B=t[53];let V;return t[54]!==B||t[55]!==L||t[56]!==R||t[57]!==z?(V=(0,_.jsxs)(`div`,{className:L,children:[R,z,B]}),t[54]=B,t[55]=L,t[56]=R,t[57]=z,t[58]=V):V=t[58],V}function b(e){return e.setPreference}function x(e){return e.preference}function S(e){return e.setPreference}function C(e){return e.preference}function w(e){return e.setLanguage}function T(e){return e.language}export{h as i,m as n,g as r,y as t};
1
+ import{n as e,t}from"./vendor-react-BOUWij0V.js";import{n,p as r}from"./locale-store-CAZaC05J.js";import{t as i}from"./messages-C7fckbyG.js";import{n as a,r as o}from"./popover-select-CEMWIrtY.js";import{t as s}from"./cn-0WouolD0.js";import{t as c}from"./middleware-Pd0e8Igk.js";import{o as l}from"./form-field-width-DJw_jULe.js";import{i as u}from"./theme-store-8GFVtotZ.js";var d=e(),f=[`compact`,`default`,`large`];function p(e){document.documentElement.dataset.fontScale=e}function m(){try{let e=localStorage.getItem(`xopc-web-font-scale`),t=`default`;if(e){let n=JSON.parse(e).state?.preference;n&&f.includes(n)&&(t=n)}p(t)}catch{p(`default`)}}var h=r(c(e=>({preference:`default`,setPreference:t=>{p(t),e({preference:t})}}),{name:`xopc-web-font-scale`}));function g(){p(h.getState().preference)}var _=t(),v=[`language`,`theme`,`font`];function y(e){let t=(0,d.c)(59),{variant:r,sections:c}=e,f=c===void 0?v:c,p=n(T),m=n(w),g=u(C),y=u(S),E=h(x),D=h(b),O;t[0]===p?O=t[1]:(O=i(p),t[0]=p,t[1]=O);let k=O.appearanceSettings,A=r===`page`?`w-full max-w-[min(100%,12rem)] shrink-0 sm:ml-auto sm:w-auto sm:max-w-[11rem]`:r===`toolbar`?`w-auto min-w-[6.5rem] max-w-[10rem] shrink-0 sm:min-w-[7.5rem]`:`w-full`,j;t[2]===A?j=t[3]:(j=s(l,A),t[2]=A,t[3]=j);let M=j,N=r===`page`?`flex flex-col gap-2 border-b border-edge-subtle px-4 py-3.5 last:border-b-0 sm:flex-row sm:items-center sm:justify-between sm:gap-6 sm:px-5 sm:py-4`:`flex flex-col gap-1.5`,P;t[4]===f?P=t[5]:(P=e=>f.includes(e),t[4]=f,t[5]=P);let F=P;if(r===`toolbar`){let e;t[6]!==k||t[7]!==p||t[8]!==M||t[9]!==m||t[10]!==F?(e=F(`language`)?(0,_.jsxs)(a,{className:M,value:p,"aria-label":k.languageTitle,onChange:e=>m(e.target.value),children:[(0,_.jsx)(o,{value:`en`,children:k.langOptionEn}),(0,_.jsx)(o,{value:`zh`,children:k.langOptionZh})]}):null,t[6]=k,t[7]=p,t[8]=M,t[9]=m,t[10]=F,t[11]=e):e=t[11];let n;t[12]!==k||t[13]!==M||t[14]!==y||t[15]!==F||t[16]!==g?(n=F(`theme`)?(0,_.jsxs)(a,{className:M,value:g,"aria-label":k.themeTitle,onChange:e=>y(e.target.value),children:[(0,_.jsx)(o,{value:`light`,children:k.themeOptionLight}),(0,_.jsx)(o,{value:`dark`,children:k.themeOptionDark}),(0,_.jsx)(o,{value:`system`,children:k.themeOptionSystem})]}):null,t[12]=k,t[13]=M,t[14]=y,t[15]=F,t[16]=g,t[17]=n):n=t[17];let r;t[18]!==k||t[19]!==E||t[20]!==M||t[21]!==D||t[22]!==F?(r=F(`font`)?(0,_.jsxs)(a,{className:M,value:E,"aria-label":k.fontScaleTitle,onChange:e=>D(e.target.value),children:[(0,_.jsx)(o,{value:`compact`,children:k.fontScaleCompact}),(0,_.jsx)(o,{value:`default`,children:k.fontScaleDefault}),(0,_.jsx)(o,{value:`large`,children:k.fontScaleLarge})]}):null,t[18]=k,t[19]=E,t[20]=M,t[21]=D,t[22]=F,t[23]=r):r=t[23];let i;return t[24]!==e||t[25]!==n||t[26]!==r?(i=(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[e,n,r]}),t[24]=e,t[25]=n,t[26]=r,t[27]=i):i=t[27],i}let I=r===`sidebar`&&`flex flex-col gap-4`,L;t[28]===I?L=t[29]:(L=s(I),t[28]=I,t[29]=L);let R;t[30]!==k||t[31]!==p||t[32]!==N||t[33]!==M||t[34]!==m||t[35]!==F||t[36]!==r?(R=F(`language`)?(0,_.jsxs)(`div`,{className:N,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:k.languageTitle}),r===`page`?null:(0,_.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:k.languageDescription})]}),(0,_.jsxs)(a,{className:M,value:p,"aria-label":k.languageTitle,onChange:e=>m(e.target.value),children:[(0,_.jsx)(o,{value:`en`,children:k.langOptionEn}),(0,_.jsx)(o,{value:`zh`,children:k.langOptionZh})]})]}):null,t[30]=k,t[31]=p,t[32]=N,t[33]=M,t[34]=m,t[35]=F,t[36]=r,t[37]=R):R=t[37];let z;t[38]!==k||t[39]!==N||t[40]!==M||t[41]!==y||t[42]!==F||t[43]!==g||t[44]!==r?(z=F(`theme`)?(0,_.jsxs)(`div`,{className:N,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:k.themeTitle}),r===`page`?null:(0,_.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:k.themeDescription})]}),(0,_.jsxs)(a,{className:M,value:g,"aria-label":k.themeTitle,onChange:e=>y(e.target.value),children:[(0,_.jsx)(o,{value:`light`,children:k.themeOptionLight}),(0,_.jsx)(o,{value:`dark`,children:k.themeOptionDark}),(0,_.jsx)(o,{value:`system`,children:k.themeOptionSystem})]})]}):null,t[38]=k,t[39]=N,t[40]=M,t[41]=y,t[42]=F,t[43]=g,t[44]=r,t[45]=z):z=t[45];let B;t[46]!==k||t[47]!==E||t[48]!==N||t[49]!==M||t[50]!==D||t[51]!==F||t[52]!==r?(B=F(`font`)?(0,_.jsxs)(`div`,{className:N,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsx)(`div`,{className:`text-sm font-semibold text-fg`,children:k.fontScaleTitle}),r===`page`?null:(0,_.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:k.fontScaleDescription})]}),(0,_.jsxs)(a,{className:M,value:E,"aria-label":k.fontScaleTitle,onChange:e=>D(e.target.value),children:[(0,_.jsx)(o,{value:`compact`,children:k.fontScaleCompact}),(0,_.jsx)(o,{value:`default`,children:k.fontScaleDefault}),(0,_.jsx)(o,{value:`large`,children:k.fontScaleLarge})]})]}):null,t[46]=k,t[47]=E,t[48]=N,t[49]=M,t[50]=D,t[51]=F,t[52]=r,t[53]=B):B=t[53];let V;return t[54]!==B||t[55]!==L||t[56]!==R||t[57]!==z?(V=(0,_.jsxs)(`div`,{className:L,children:[R,z,B]}),t[54]=B,t[55]=L,t[56]=R,t[57]=z,t[58]=V):V=t[58],V}function b(e){return e.setPreference}function x(e){return e.preference}function S(e){return e.setPreference}function C(e){return e.preference}function w(e){return e.setLanguage}function T(e){return e.language}export{h as i,m as n,g as r,y as t};
@@ -1,4 +1,4 @@
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{a,i as o,n as s,p as c}from"./locale-store-B6OrWgY1.js";import{t as l}from"./messages-jwdBhfL9.js";import{t as u}from"./createLucideIcon-DPHK1VkS.js";import{t as d}from"./activity-YogQEteU.js";import{t as f}from"./bot-DjLkhyZL.js";import{t as p}from"./circle-check-C23XjkUj.js";import{t as m}from"./circle-pause-CN9jYH2s.js";import{t as h}from"./clock-3-DnrAnuyZ.js";import{t as g}from"./external-link-DjqjBmc3.js";import{j as _}from"./notes-api-Ddsf7FVg.js";import{t as v}from"./loader-circle-CifKLtgG.js";import{g as y}from"./markdown-view-DrhYZSmg.js";import{t as b}from"./message-square-fVE7Ghj1.js";import{t as x}from"./pause-DuPxgSxk.js";import{t as S}from"./play-kxZvpBg8.js";import{t as ee}from"./rotate-ccw-JM1TBLpp.js";import{t as C}from"./rotate-cw-LIg3Am9S.js";import{t as w}from"./sparkles-DHlfQFAF.js";import{t as T}from"./triangle-alert-2JXFNNKU.js";import{t as te}from"./volume-2-BSJhAY97.js";import{t as E}from"./zap-dximCGjy.js";import{t as ne}from"./cn-0WouolD0.js";import{i as re}from"./vendor-swr-CdRzEUwF.js";import{t as D}from"./button-Cc4hUNTt.js";import{t as O}from"./automation-api-CLPsgcQN.js";var k=u(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),A=u(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),j=u(`thumbs-down`,[[`path`,{d:`M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z`,key:`m61m77`}],[`path`,{d:`M17 14V2`,key:`8ymqnk`}]]),M=u(`thumbs-up`,[[`path`,{d:`M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z`,key:`emmmcr`}],[`path`,{d:`M7 10v12`,key:`1qc93n`}]]),N=e(t(),1),P=n(),F=!1,I=[`play`,`pause`,`stop`,`seekto`,`seekbackward`,`seekforward`];function ie(){return typeof navigator>`u`?void 0:navigator.mediaSession}function ae(e){let t=ie();if(!t)return;F=!0;let n={play:e.resume,pause:e.pause,stop:e.stop,seekto:({seekTime:t})=>{t!==void 0&&e.seek(t)},seekbackward:({seekOffset:t})=>e.seek(e.position()-(t??10)),seekforward:({seekOffset:t})=>e.seek(e.position()+(t??10))};for(let e of I)try{t.setActionHandler(e,n[e])}catch{}}function oe(e){let t=ie();if(!(!F||!t)){typeof MediaMetadata<`u`&&t.metadata?.title!==e.source?.title&&(t.metadata=e.source?new MediaMetadata({title:e.source.title,artist:`xopc`}):null),t.playbackState=e.status===`playing`?`playing`:`paused`;try{t.setPositionState(e.durationComplete&&e.duration>0?{duration:e.duration,playbackRate:e.rate,position:Math.min(e.duration,Math.max(0,e.currentTime))}:void 0)}catch{}}}function L(){let e=ie();if(!(!F||!e)){F=!1,e.metadata=null,e.playbackState=`none`;for(let t of I)try{e.setActionHandler(t,null)}catch{}try{e.setPositionState()}catch{}}}var R=/```[\s\S]*?```|~~~[\s\S]*?~~~/g,se=/[^。!?!?\.\n]+[。!?!?\.]?|\n+/g;function ce(e){return e.replace(R,`
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{a,i as o,n as s,p as c}from"./locale-store-CAZaC05J.js";import{t as l}from"./messages-C7fckbyG.js";import{t as u}from"./createLucideIcon-DPHK1VkS.js";import{t as d}from"./activity-YogQEteU.js";import{t as f}from"./bot-DjLkhyZL.js";import{t as p}from"./circle-check-C23XjkUj.js";import{t as m}from"./circle-pause-CN9jYH2s.js";import{t as h}from"./clock-3-DnrAnuyZ.js";import{t as g}from"./external-link-DjqjBmc3.js";import{j as _}from"./notes-api-zXpV6UXu.js";import{t as v}from"./loader-circle-CifKLtgG.js";import{g as y}from"./markdown-view-BatP4qeK.js";import{t as b}from"./message-square-fVE7Ghj1.js";import{t as x}from"./pause-DuPxgSxk.js";import{t as S}from"./play-kxZvpBg8.js";import{t as ee}from"./rotate-ccw-JM1TBLpp.js";import{t as C}from"./rotate-cw-LIg3Am9S.js";import{t as w}from"./sparkles-DHlfQFAF.js";import{t as T}from"./triangle-alert-2JXFNNKU.js";import{t as te}from"./volume-2-BSJhAY97.js";import{t as E}from"./zap-dximCGjy.js";import{t as ne}from"./cn-0WouolD0.js";import{i as re}from"./vendor-swr-CdRzEUwF.js";import{t as D}from"./button-Cc4hUNTt.js";import{t as O}from"./automation-api-4fVKv9PJ.js";var k=u(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),A=u(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),j=u(`thumbs-down`,[[`path`,{d:`M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z`,key:`m61m77`}],[`path`,{d:`M17 14V2`,key:`8ymqnk`}]]),M=u(`thumbs-up`,[[`path`,{d:`M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z`,key:`emmmcr`}],[`path`,{d:`M7 10v12`,key:`1qc93n`}]]),N=e(t(),1),P=n(),F=!1,I=[`play`,`pause`,`stop`,`seekto`,`seekbackward`,`seekforward`];function ie(){return typeof navigator>`u`?void 0:navigator.mediaSession}function ae(e){let t=ie();if(!t)return;F=!0;let n={play:e.resume,pause:e.pause,stop:e.stop,seekto:({seekTime:t})=>{t!==void 0&&e.seek(t)},seekbackward:({seekOffset:t})=>e.seek(e.position()-(t??10)),seekforward:({seekOffset:t})=>e.seek(e.position()+(t??10))};for(let e of I)try{t.setActionHandler(e,n[e])}catch{}}function oe(e){let t=ie();if(!(!F||!t)){typeof MediaMetadata<`u`&&t.metadata?.title!==e.source?.title&&(t.metadata=e.source?new MediaMetadata({title:e.source.title,artist:`xopc`}):null),t.playbackState=e.status===`playing`?`playing`:`paused`;try{t.setPositionState(e.durationComplete&&e.duration>0?{duration:e.duration,playbackRate:e.rate,position:Math.min(e.duration,Math.max(0,e.currentTime))}:void 0)}catch{}}}function L(){let e=ie();if(!(!F||!e)){F=!1,e.metadata=null,e.playbackState=`none`;for(let t of I)try{e.setActionHandler(t,null)}catch{}try{e.setPositionState()}catch{}}}var R=/```[\s\S]*?```|~~~[\s\S]*?~~~/g,se=/[^。!?!?\.\n]+[。!?!?\.]?|\n+/g;function ce(e){return e.replace(R,`
2
2
  `).replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`).replace(/^#{1,6}\s+/gm,``).replace(/^\s*[-*+]\s+/gm,``).replace(/^\s*\d+[.)]\s+/gm,``).replace(/[|`*_~>]/g,` `).replace(/<[^>]+>/g,` `)}function le(e){if(!e.trim())return``;let t=e.replace(R,`
3
3
  `),n;if(typeof DOMParser>`u`)n=ce(t);else{let e=y.parse(t,{gfm:!0,breaks:!1}),r=new DOMParser().parseFromString(`<main>${e}</main>`,`text/html`);r.querySelectorAll(`pre, script, style`).forEach(e=>e.remove()),r.querySelectorAll(`img`).forEach(e=>e.replaceWith(e.alt||``)),r.querySelectorAll(`br, p, h1, h2, h3, h4, h5, h6, li, tr`).forEach(e=>{e.append(r.createTextNode(`
4
4
  `))}),n=r.body.textContent??``}return n.replace(/https?:\/\/\S+/gi,``).replace(/[\t ]+/g,` `).replace(/ *\n */g,`
@@ -1 +1 @@
1
- import{n as e,t}from"./vendor-react-BOUWij0V.js";import{l as n,r,t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as a}from"./locale-store-B6OrWgY1.js";import{t as o}from"./skeleton-BI5TyibZ.js";import{a as s,r as c}from"./product-delivery-DRyD9_Xq.js";import{i as l}from"./vendor-swr-CdRzEUwF.js";import{n as u}from"./api-DMbimMEi.js";import{t as d}from"./open-route-MyZ2sB9C.js";var f=e(),p=t();function m(){let e=(0,f.c)(14),t=n(),i=a(h)===`zh`,m=c(`xopc://open${t.search}`),_=m?.kind===`local_app`?m.id:null,{data:v,error:y}=l(_?[`local-app-open`,_]:null,()=>u(_));if(!m){let t=i?`这个打开链接无效。`:`This open link is invalid.`,n;return e[0]!==t||e[1]!==i?(n=(0,p.jsx)(g,{message:t,zh:i}),e[0]=t,e[1]=i,e[2]=n):n=e[2],n}if(m.kind!==`local_app`){let t=s({...m,title:m.id,capabilities:[`open`]}),n;return e[3]!==t||e[4]!==i?(n=t?(0,p.jsx)(r,{to:t,replace:!0}):(0,p.jsx)(g,{message:i?`这个内容无法在应用中打开。`:`This content cannot be opened in the app.`,zh:i}),e[3]=t,e[4]=i,e[5]=n):n=e[5],n}if(y){let t=typeof y==`object`&&y&&`status`in y&&y.status===404?i?`找不到这个应用,它可能已被删除。`:`This app was not found and may have been deleted.`:y instanceof Error?y.message:i?`无法打开这个应用。`:`Unable to open this app.`,n;return e[6]!==t||e[7]!==i?(n=(0,p.jsx)(g,{message:t,zh:i}),e[6]=t,e[7]=i,e[8]=n):n=e[8],n}if(v){let t;e[9]===v?t=e[10]:(t=d(v),e[9]=v,e[10]=t);let n;return e[11]===t?n=e[12]:(n=(0,p.jsx)(r,{to:t,replace:!0}),e[11]=t,e[12]=n),n}let b;return e[13]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,p.jsxs)(`div`,{className:`flex w-full flex-col gap-4 px-3 py-6 sm:px-5 xl:px-6`,"aria-busy":!0,children:[(0,p.jsx)(o,{className:`h-6 w-48`}),(0,p.jsx)(o,{className:`h-32 rounded-xl`})]}),e[13]=b):b=e[13],b}function h(e){return e.language}function g(e){let t=(0,f.c)(7),{message:n,zh:r}=e,a;t[0]===n?a=t[1]:(a=(0,p.jsx)(`p`,{children:n}),t[0]=n,t[1]=a);let o=r?`查看应用`:`View apps`,s;t[2]===o?s=t[3]:(s=(0,p.jsx)(i,{className:`mt-3 inline-flex font-medium text-accent hover:underline`,to:`/local-apps`,children:o}),t[2]=o,t[3]=s);let c;return t[4]!==a||t[5]!==s?(c=(0,p.jsxs)(`div`,{className:`m-6 rounded-xl border border-danger/30 bg-danger-soft p-4 text-sm text-danger`,role:`alert`,children:[a,s]}),t[4]=a,t[5]=s,t[6]=c):c=t[6],c}export{m as ProductOpenPage};
1
+ import{n as e,t}from"./vendor-react-BOUWij0V.js";import{l as n,r,t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as a}from"./locale-store-CAZaC05J.js";import{t as o}from"./skeleton-BI5TyibZ.js";import{a as s,r as c}from"./product-delivery-DRyD9_Xq.js";import{i as l}from"./vendor-swr-CdRzEUwF.js";import{n as u}from"./api-Djju8qIR.js";import{t as d}from"./open-route-MyZ2sB9C.js";var f=e(),p=t();function m(){let e=(0,f.c)(14),t=n(),i=a(h)===`zh`,m=c(`xopc://open${t.search}`),_=m?.kind===`local_app`?m.id:null,{data:v,error:y}=l(_?[`local-app-open`,_]:null,()=>u(_));if(!m){let t=i?`这个打开链接无效。`:`This open link is invalid.`,n;return e[0]!==t||e[1]!==i?(n=(0,p.jsx)(g,{message:t,zh:i}),e[0]=t,e[1]=i,e[2]=n):n=e[2],n}if(m.kind!==`local_app`){let t=s({...m,title:m.id,capabilities:[`open`]}),n;return e[3]!==t||e[4]!==i?(n=t?(0,p.jsx)(r,{to:t,replace:!0}):(0,p.jsx)(g,{message:i?`这个内容无法在应用中打开。`:`This content cannot be opened in the app.`,zh:i}),e[3]=t,e[4]=i,e[5]=n):n=e[5],n}if(y){let t=typeof y==`object`&&y&&`status`in y&&y.status===404?i?`找不到这个应用,它可能已被删除。`:`This app was not found and may have been deleted.`:y instanceof Error?y.message:i?`无法打开这个应用。`:`Unable to open this app.`,n;return e[6]!==t||e[7]!==i?(n=(0,p.jsx)(g,{message:t,zh:i}),e[6]=t,e[7]=i,e[8]=n):n=e[8],n}if(v){let t;e[9]===v?t=e[10]:(t=d(v),e[9]=v,e[10]=t);let n;return e[11]===t?n=e[12]:(n=(0,p.jsx)(r,{to:t,replace:!0}),e[11]=t,e[12]=n),n}let b;return e[13]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,p.jsxs)(`div`,{className:`flex w-full flex-col gap-4 px-3 py-6 sm:px-5 xl:px-6`,"aria-busy":!0,children:[(0,p.jsx)(o,{className:`h-6 w-48`}),(0,p.jsx)(o,{className:`h-32 rounded-xl`})]}),e[13]=b):b=e[13],b}function h(e){return e.language}function g(e){let t=(0,f.c)(7),{message:n,zh:r}=e,a;t[0]===n?a=t[1]:(a=(0,p.jsx)(`p`,{children:n}),t[0]=n,t[1]=a);let o=r?`查看应用`:`View apps`,s;t[2]===o?s=t[3]:(s=(0,p.jsx)(i,{className:`mt-3 inline-flex font-medium text-accent hover:underline`,to:`/local-apps`,children:o}),t[2]=o,t[3]=s);let c;return t[4]!==a||t[5]!==s?(c=(0,p.jsxs)(`div`,{className:`m-6 rounded-xl border border-danger/30 bg-danger-soft p-4 text-sm text-danger`,role:`alert`,children:[a,s]}),t[4]=a,t[5]=s,t[6]=c):c=t[6],c}export{m as ProductOpenPage};
@@ -1 +1 @@
1
- import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as r,l as i,n as a}from"./locale-store-B6OrWgY1.js";import{t as o}from"./messages-jwdBhfL9.js";import{t as s}from"./markdown-view-DrhYZSmg.js";import{t as c}from"./skeleton-BI5TyibZ.js";import{a as l}from"./api-oIK4hYkJ.js";import{i as u}from"./vendor-swr-CdRzEUwF.js";import{t as d}from"./button-Cc4hUNTt.js";import{C as f,_ as p,n as m}from"./automation-task-card-D27Mw66U.js";import{t as h}from"./automation-api-CLPsgcQN.js";import{i as g,n as _}from"./api-DMbimMEi.js";import{n as v}from"./product-preview-modal-7Ohx-7OR.js";import{t as y}from"./open-route-MyZ2sB9C.js";import{i as b,r as x}from"./automation-result-state-CKVnR4KG.js";var S=e(),C=t(),w=new Set([`queued`,`running`,`cancelling`]);function T(e){let t=(0,S.c)(60),{automationId:n,runId:r}=e,i=a(O),l=i===`zh`,f,p;t[0]!==n||t[1]!==r?(f=[`automation-run-preview`,n,r],p=async()=>{let[e,t]=await Promise.all([h.get(n),r?h.getRun(r).then(D):Promise.resolve(void 0)]);if(t&&t.automationId!==n)throw Error(`Run does not belong to this task`);return{task:e.automation,run:t}},t[0]=n,t[1]=r,t[2]=f,t[3]=p):(f=t[2],p=t[3]);let g;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(g={shouldRetryOnError:!1,refreshInterval:E},t[4]=g):g=t[4];let{data:_,error:v,mutate:y}=u(f,p,g);if(v){let e=l?`暂时无法读取这次运行,请重试。`:`Could not load this run. Try again.`,n;t[5]===e?n=t[6]:(n=(0,C.jsx)(`p`,{children:e}),t[5]=e,t[6]=n);let r;t[7]===y?r=t[8]:(r=()=>void y(),t[7]=y,t[8]=r);let i=l?`重试`:`Retry`,a;t[9]!==r||t[10]!==i?(a=(0,C.jsx)(d,{variant:`secondary`,onClick:r,children:i}),t[9]=r,t[10]=i,t[11]=a):a=t[11];let o;return t[12]!==n||t[13]!==a?(o=(0,C.jsxs)(`div`,{role:`alert`,className:`space-y-3 text-sm text-fg-muted`,children:[n,a]}),t[12]=n,t[13]=a,t[14]=o):o=t[14],o}if(!_){let e;return t[15]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,C.jsx)(c,{className:`h-6 w-2/3`}),(0,C.jsx)(c,{className:`h-4 w-1/3`}),(0,C.jsx)(c,{className:`h-32`})]}),t[15]=e):e=t[15],e}let T=_.run;if(!T){let e;t[16]===_.task.name?e=t[17]:(e=(0,C.jsx)(`h2`,{className:`text-lg font-medium text-fg`,children:_.task.name}),t[16]=_.task.name,t[17]=e);let n=l?`这条旧链接没有关联具体执行,请从任务的运行记录查看。`:`This older link does not identify an execution. Choose one from the task history.`,r;t[18]===n?r=t[19]:(r=(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n}),t[18]=n,t[19]=r);let i;return t[20]!==e||t[21]!==r?(i=(0,C.jsxs)(`div`,{className:`space-y-3`,children:[e,r]}),t[20]=e,t[21]=r,t[22]=i):i=t[22],i}let k;t[23]===_.task.name?k=t[24]:(k=(0,C.jsx)(`h2`,{className:`text-lg font-medium text-fg`,children:_.task.name}),t[23]=_.task.name,t[24]=k);let A;t[25]===i?A=t[26]:(A=o(i),t[25]=i,t[26]=A);let j=A.automations.status[T.status],M;t[27]!==T.createdAtMs||t[28]!==l?(M=new Date(T.createdAtMs).toLocaleString(l?`zh-CN`:`en-US`),t[27]=T.createdAtMs,t[28]=l,t[29]=M):M=t[29];let N;t[30]!==j||t[31]!==M?(N=(0,C.jsxs)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:[j,` · `,M]}),t[30]=j,t[31]=M,t[32]=N):N=t[32];let P;t[33]!==k||t[34]!==N?(P=(0,C.jsxs)(`div`,{className:`space-y-2`,children:[k,N]}),t[33]=k,t[34]=N,t[35]=P):P=t[35];let F;t[36]!==T.status||t[37]!==l?(F=T.status===`queued`?(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l?`任务正在排队,开始后会自动更新。`:`Queued. This view updates when execution starts.`}):T.status===`running`?(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l?`正在执行,结果会自动显示在这里。`:`Running. The result will appear here automatically.`}):null,t[36]=T.status,t[37]=l,t[38]=F):F=t[38];let I;t[39]===T.summary?I=t[40]:(I=T.summary?(0,C.jsx)(s,{content:T.summary}):null,t[39]=T.summary,t[40]=I);let L;t[41]!==i||t[42]!==T?(L=T.error?(0,C.jsx)(`p`,{className:`text-sm leading-6 text-danger`,children:x(T,i)}):null,t[41]=i,t[42]=T,t[43]=L):L=t[43];let R;t[44]!==n||t[45]!==i||t[46]!==T.id||t[47]!==T.status?(R=T.status===`failed`||T.status===`timeout`?(0,C.jsx)(m,{automationId:n,runId:T.id,language:i,variant:`secondary`}):null,t[44]=n,t[45]=i,t[46]=T.id,t[47]=T.status,t[48]=R):R=t[48];let z;t[49]!==i||t[50]!==T.id||t[51]!==T.status?(z=w.has(T.status)?null:(0,C.jsx)(b,{runId:T.id,language:i}),t[49]=i,t[50]=T.id,t[51]=T.status,t[52]=z):z=t[52];let B;return t[53]!==F||t[54]!==I||t[55]!==L||t[56]!==R||t[57]!==z||t[58]!==P?(B=(0,C.jsxs)(`div`,{className:`space-y-5`,children:[P,F,I,L,R,z]}),t[53]=F,t[54]=I,t[55]=L,t[56]=R,t[57]=z,t[58]=P,t[59]=B):B=t[59],B}function E(e){return e&&(e.task.state.runningRunId||e.run&&w.has(e.run.status))?3e3:0}function D(e){return e.run}function O(e){return e.language}async function k(e){switch(e.kind){case`project`:return{kind:e.kind,value:await l(e.id)};case`automation`:{let[t,n]=await Promise.all([h.list(),h.runs(5,e.id)]);return{kind:e.kind,value:t.automations.find(t=>t.id===e.id),runs:n.runs}}case`local_app`:{let t=await _(e.id),n=e.sourceHash?await g(e.id,e.sourceHash):void 0;return{kind:e.kind,value:t,previewUrl:n?.previewUrl||t.draftPreviewUrl}}}}var A={pending:[`等待中`,`Pending`],planned:[`计划中`,`Planned`],active:[`进行中`,`Active`],paused:[`已暂停`,`Paused`],completed:[`已完成`,`Completed`],cancelled:[`已取消`,`Cancelled`],archived:[`已归档`,`Archived`],queued:[`排队中`,`Queued`],running:[`运行中`,`Running`],succeeded:[`成功`,`Succeeded`],failed:[`失败`,`Failed`],timeout:[`超时`,`Timed out`],cancelling:[`取消中`,`Cancelling`],unknown:[`尚未评估`,`Not assessed`],on_track:[`进展正常`,`On track`],at_risk:[`存在风险`,`At risk`],off_track:[`偏离计划`,`Off track`]};function j(e){let t=(0,S.c)(5),{target:n}=e;if(n.kind===`automation`&&n.view===`run`){let e;return t[0]!==n.id||t[1]!==n.runId?(e=(0,C.jsx)(T,{automationId:n.id,runId:n.runId}),t[0]=n.id,t[1]=n.runId,t[2]=e):e=t[2],e}let r;return t[3]===n?r=t[4]:(r=(0,C.jsx)(M,{target:n}),t[3]=n,t[4]=r),r}function M(e){let t=(0,S.c)(95),{target:s}=e,c=i(L),l=a(I),d=l===`zh`,m=o(l),h;t[0]===d?h=t[1]:(h=e=>A[e]?.[+!d]||e,t[0]=d,t[1]=h);let g=h,_;t[2]!==s.href||t[3]!==c?(_=[`chat-product-preview`,s.href,c],t[2]=s.href,t[3]=c,t[4]=_):_=t[4];let b;t[5]===s?b=t[6]:(b=()=>k(s),t[5]=s,t[6]=b);let x;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(x={shouldRetryOnError:!1,refreshInterval:F},t[7]=x):x=t[7];let{data:w,error:T,isLoading:E}=u(_,b,x);if(E){let e;return t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsx)(v,{}),t[8]=e):e=t[8],e}if(T){let e=d?`无法加载内容,它可能已删除或暂时不可用。`:`Unable to load this content. It may have been deleted or be temporarily unavailable.`,n;return t[9]===e?n=t[10]:(n=(0,C.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:e}),t[9]=e,t[10]=n),n}if(!w?.value){let e=d?`内容不存在或已删除。`:`This content is unavailable or has been deleted.`,n;return t[11]===e?n=t[12]:(n=(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e}),t[11]=e,t[12]=n),n}let D=P;if(w.kind===`project`){let e=w.value,n;t[13]===e.name?n=t[14]:(n=(0,C.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:e.name}),t[13]=e.name,t[14]=n);let r;t[15]!==e.status||t[16]!==g?(r=g(e.status),t[15]=e.status,t[16]=g,t[17]=r):r=t[17];let i;t[18]!==e.health||t[19]!==g?(i=g(e.health),t[18]=e.health,t[19]=g,t[20]=i):i=t[20];let a;t[21]!==r||t[22]!==i?(a=(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[r,` · `,i]}),t[21]=r,t[22]=i,t[23]=a):a=t[23];let o;t[24]!==D||t[25]!==e.description?(o=D(e.description),t[24]=D,t[25]=e.description,t[26]=o):o=t[26];let s;t[27]!==D||t[28]!==e.brief?(s=D(e.brief),t[27]=D,t[28]=e.brief,t[29]=s):s=t[29];let c;t[30]!==D||t[31]!==e.outcome?(c=D(e.outcome),t[30]=D,t[31]=e.outcome,t[32]=c):c=t[32];let l;t[33]!==s||t[34]!==c||t[35]!==n||t[36]!==a||t[37]!==o?(l=(0,C.jsxs)(`div`,{className:`space-y-3`,children:[n,a,o,s,c]}),t[33]=s,t[34]=c,t[35]=n,t[36]=a,t[37]=o,t[38]=l):l=t[38];let u;t[39]!==e.successCriteria||t[40]!==d?(u=e.successCriteria?.length>0&&(0,C.jsxs)(`section`,{className:`space-y-3`,children:[(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:d?`完成标准`:`Success criteria`}),(0,C.jsx)(`ul`,{className:`list-disc space-y-2 pl-5 text-sm text-fg`,children:e.successCriteria.map(N)})]}),t[39]=e.successCriteria,t[40]=d,t[41]=u):u=t[41];let f;t[42]!==e.milestones||t[43]!==g||t[44]!==d?(f=e.milestones?.length>0&&(0,C.jsxs)(`section`,{className:`space-y-3`,children:[(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:d?`里程碑`:`Milestones`}),e.milestones.slice(0,8).map(e=>(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[e.title,` · `,g(e.status)]},e.id))]}),t[42]=e.milestones,t[43]=g,t[44]=d,t[45]=f):f=t[45];let p;t[46]!==D||t[47]!==e.recentUpdates||t[48]!==d?(p=e.recentUpdates?.[0]&&(0,C.jsxs)(`section`,{className:`space-y-3`,children:[(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:d?`最近进展`:`Latest update`}),D(e.recentUpdates[0].summary)]}),t[46]=D,t[47]=e.recentUpdates,t[48]=d,t[49]=p):p=t[49];let m;return t[50]!==l||t[51]!==u||t[52]!==f||t[53]!==p?(m=(0,C.jsxs)(`div`,{className:`space-y-6`,children:[l,u,f,p]}),t[50]=l,t[51]=u,t[52]=f,t[53]=p,t[54]=m):m=t[54],m}if(w.kind===`automation`){let e=w.value,n=e.action.kind===`agent`?e.action.instruction:void 0,r;t[55]===e.name?r=t[56]:(r=(0,C.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:e.name}),t[55]=e.name,t[56]=r);let i;t[57]!==e.description||t[58]!==D?(i=D(e.description),t[57]=e.description,t[58]=D,t[59]=i):i=t[59];let a;t[60]!==n||t[61]!==D?(a=D(n),t[60]=n,t[61]=D,t[62]=a):a=t[62];let o;t[63]!==e.state.nextRunAtMs||t[64]!==d?(o=e.state.nextRunAtMs&&(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[d?`下次运行`:`Next run`,` · `,new Date(e.state.nextRunAtMs).toLocaleString(d?`zh-CN`:`en-US`)]}),t[63]=e.state.nextRunAtMs,t[64]=d,t[65]=o):o=t[65];let s;t[66]===e.state.lastError?s=t[67]:(s=e.state.lastError&&(0,C.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:e.state.lastError}),t[66]=e.state.lastError,t[67]=s);let c=d?`最近运行`:`Recent runs`,u;t[68]===c?u=t[69]:(u=(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:c}),t[68]=c,t[69]=u);let h;t[70]!==w.runs||t[71]!==D||t[72]!==g||t[73]!==d?(h=w.runs.length?w.runs.map(e=>(0,C.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-edge p-3`,children:[(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[g(e.status),` · `,new Date(e.createdAtMs).toLocaleString(d?`zh-CN`:`en-US`)]}),D(e.summary),e.error&&(0,C.jsx)(`p`,{className:`text-sm text-danger`,children:e.error})]},e.id)):(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:d?`暂无运行记录。`:`No runs yet.`}),t[70]=w.runs,t[71]=D,t[72]=g,t[73]=d,t[74]=h):h=t[74];let _;return t[75]!==u||t[76]!==h?(_=(0,C.jsxs)(`section`,{className:`space-y-3`,children:[u,h]}),t[75]=u,t[76]=h,t[77]=_):_=t[77],(0,C.jsxs)(`div`,{className:`space-y-6`,children:[(0,C.jsxs)(`div`,{className:`space-y-3`,children:[r,(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[f(e)?d?`已完成`:`Completed`:e.enabled?d?`已启用`:`Enabled`:d?`已暂停`:`Paused`,` · `,p(e.trigger,m.automations,m.cron,l)]}),i,a,o,s]}),_]})}let O=w.value,j;t[78]===O.name?j=t[79]:(j=(0,C.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:O.name}),t[78]=O.name,t[79]=j);let M=O.description||O.idea,R;t[80]!==D||t[81]!==M?(R=D(M),t[80]=D,t[81]=M,t[82]=R):R=t[82];let z;t[83]!==O.name||t[84]!==w.previewUrl||t[85]!==d?(z=w.previewUrl&&(0,C.jsx)(`iframe`,{title:d?`${O.name} 交互预览`:`${O.name} interactive preview`,src:r(w.previewUrl),sandbox:`allow-scripts allow-forms`,className:`h-[min(30rem,55dvh)] w-full rounded-lg border border-edge bg-white`}),t[83]=O.name,t[84]=w.previewUrl,t[85]=d,t[86]=z):z=t[86];let B;t[87]!==O||t[88]!==d?(B=O.installationState===`installed`&&O.enabled&&O.status===`installed`&&(0,C.jsx)(n,{to:y(O),className:`inline-flex rounded-lg bg-accent px-3 py-2 text-sm text-white focus-visible:ring-2 focus-visible:ring-accent`,children:d?`使用应用`:`Use app`}),t[87]=O,t[88]=d,t[89]=B):B=t[89];let V;return t[90]!==j||t[91]!==R||t[92]!==z||t[93]!==B?(V=(0,C.jsxs)(`div`,{className:`space-y-5`,children:[j,R,z,B]}),t[90]=j,t[91]=R,t[92]=z,t[93]=B,t[94]=V):V=t[94],V}function N(e,t){return(0,C.jsx)(`li`,{children:e},t)}function P(e){return e?.trim()?(0,C.jsx)(s,{content:e,mermaidActions:!1}):null}function F(e){return e?.kind===`automation`&&e.value?.state.runningRunId?3e3:0}function I(e){return e.language}function L(e){return e.conversationId}export{j as default};
1
+ import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as r,l as i,n as a}from"./locale-store-CAZaC05J.js";import{t as o}from"./messages-C7fckbyG.js";import{t as s}from"./markdown-view-BatP4qeK.js";import{t as c}from"./skeleton-BI5TyibZ.js";import{a as l}from"./api-B9fZL-V8.js";import{i as u}from"./vendor-swr-CdRzEUwF.js";import{t as d}from"./button-Cc4hUNTt.js";import{t as f}from"./automation-api-4fVKv9PJ.js";import{C as p,_ as m,n as h}from"./automation-task-card-DZWhCWJa.js";import{i as g,n as _}from"./api-Djju8qIR.js";import{n as v}from"./product-preview-modal-Cw8Q8Uom.js";import{t as y}from"./open-route-MyZ2sB9C.js";import{i as b,r as x}from"./automation-result-state-m7PeK2kl.js";var S=e(),C=t(),w=new Set([`queued`,`running`,`cancelling`]);function T(e){let t=(0,S.c)(60),{automationId:n,runId:r}=e,i=a(O),l=i===`zh`,p,m;t[0]!==n||t[1]!==r?(p=[`automation-run-preview`,n,r],m=async()=>{let[e,t]=await Promise.all([f.get(n),r?f.getRun(r).then(D):Promise.resolve(void 0)]);if(t&&t.automationId!==n)throw Error(`Run does not belong to this task`);return{task:e.automation,run:t}},t[0]=n,t[1]=r,t[2]=p,t[3]=m):(p=t[2],m=t[3]);let g;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(g={shouldRetryOnError:!1,refreshInterval:E},t[4]=g):g=t[4];let{data:_,error:v,mutate:y}=u(p,m,g);if(v){let e=l?`暂时无法读取这次运行,请重试。`:`Could not load this run. Try again.`,n;t[5]===e?n=t[6]:(n=(0,C.jsx)(`p`,{children:e}),t[5]=e,t[6]=n);let r;t[7]===y?r=t[8]:(r=()=>void y(),t[7]=y,t[8]=r);let i=l?`重试`:`Retry`,a;t[9]!==r||t[10]!==i?(a=(0,C.jsx)(d,{variant:`secondary`,onClick:r,children:i}),t[9]=r,t[10]=i,t[11]=a):a=t[11];let o;return t[12]!==n||t[13]!==a?(o=(0,C.jsxs)(`div`,{role:`alert`,className:`space-y-3 text-sm text-fg-muted`,children:[n,a]}),t[12]=n,t[13]=a,t[14]=o):o=t[14],o}if(!_){let e;return t[15]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,C.jsx)(c,{className:`h-6 w-2/3`}),(0,C.jsx)(c,{className:`h-4 w-1/3`}),(0,C.jsx)(c,{className:`h-32`})]}),t[15]=e):e=t[15],e}let T=_.run;if(!T){let e;t[16]===_.task.name?e=t[17]:(e=(0,C.jsx)(`h2`,{className:`text-lg font-medium text-fg`,children:_.task.name}),t[16]=_.task.name,t[17]=e);let n=l?`这条旧链接没有关联具体执行,请从任务的运行记录查看。`:`This older link does not identify an execution. Choose one from the task history.`,r;t[18]===n?r=t[19]:(r=(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n}),t[18]=n,t[19]=r);let i;return t[20]!==e||t[21]!==r?(i=(0,C.jsxs)(`div`,{className:`space-y-3`,children:[e,r]}),t[20]=e,t[21]=r,t[22]=i):i=t[22],i}let k;t[23]===_.task.name?k=t[24]:(k=(0,C.jsx)(`h2`,{className:`text-lg font-medium text-fg`,children:_.task.name}),t[23]=_.task.name,t[24]=k);let A;t[25]===i?A=t[26]:(A=o(i),t[25]=i,t[26]=A);let j=A.automations.status[T.status],M;t[27]!==T.createdAtMs||t[28]!==l?(M=new Date(T.createdAtMs).toLocaleString(l?`zh-CN`:`en-US`),t[27]=T.createdAtMs,t[28]=l,t[29]=M):M=t[29];let N;t[30]!==j||t[31]!==M?(N=(0,C.jsxs)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:[j,` · `,M]}),t[30]=j,t[31]=M,t[32]=N):N=t[32];let P;t[33]!==k||t[34]!==N?(P=(0,C.jsxs)(`div`,{className:`space-y-2`,children:[k,N]}),t[33]=k,t[34]=N,t[35]=P):P=t[35];let F;t[36]!==T.status||t[37]!==l?(F=T.status===`queued`?(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l?`任务正在排队,开始后会自动更新。`:`Queued. This view updates when execution starts.`}):T.status===`running`?(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l?`正在执行,结果会自动显示在这里。`:`Running. The result will appear here automatically.`}):null,t[36]=T.status,t[37]=l,t[38]=F):F=t[38];let I;t[39]===T.summary?I=t[40]:(I=T.summary?(0,C.jsx)(s,{content:T.summary}):null,t[39]=T.summary,t[40]=I);let L;t[41]!==i||t[42]!==T?(L=T.error?(0,C.jsx)(`p`,{className:`text-sm leading-6 text-danger`,children:x(T,i)}):null,t[41]=i,t[42]=T,t[43]=L):L=t[43];let R;t[44]!==n||t[45]!==i||t[46]!==T.id||t[47]!==T.status?(R=T.status===`failed`||T.status===`timeout`?(0,C.jsx)(h,{automationId:n,runId:T.id,language:i,variant:`secondary`}):null,t[44]=n,t[45]=i,t[46]=T.id,t[47]=T.status,t[48]=R):R=t[48];let z;t[49]!==i||t[50]!==T.id||t[51]!==T.status?(z=w.has(T.status)?null:(0,C.jsx)(b,{runId:T.id,language:i}),t[49]=i,t[50]=T.id,t[51]=T.status,t[52]=z):z=t[52];let B;return t[53]!==F||t[54]!==I||t[55]!==L||t[56]!==R||t[57]!==z||t[58]!==P?(B=(0,C.jsxs)(`div`,{className:`space-y-5`,children:[P,F,I,L,R,z]}),t[53]=F,t[54]=I,t[55]=L,t[56]=R,t[57]=z,t[58]=P,t[59]=B):B=t[59],B}function E(e){return e&&(e.task.state.runningRunId||e.run&&w.has(e.run.status))?3e3:0}function D(e){return e.run}function O(e){return e.language}async function k(e){switch(e.kind){case`project`:return{kind:e.kind,value:await l(e.id)};case`automation`:{let[t,n]=await Promise.all([f.list(),f.runs(5,e.id)]);return{kind:e.kind,value:t.automations.find(t=>t.id===e.id),runs:n.runs}}case`local_app`:{let t=await _(e.id),n=e.sourceHash?await g(e.id,e.sourceHash):void 0;return{kind:e.kind,value:t,previewUrl:n?.previewUrl||t.draftPreviewUrl}}}}var A={pending:[`等待中`,`Pending`],planned:[`计划中`,`Planned`],active:[`进行中`,`Active`],paused:[`已暂停`,`Paused`],completed:[`已完成`,`Completed`],cancelled:[`已取消`,`Cancelled`],archived:[`已归档`,`Archived`],queued:[`排队中`,`Queued`],running:[`运行中`,`Running`],succeeded:[`成功`,`Succeeded`],failed:[`失败`,`Failed`],timeout:[`超时`,`Timed out`],cancelling:[`取消中`,`Cancelling`],unknown:[`尚未评估`,`Not assessed`],on_track:[`进展正常`,`On track`],at_risk:[`存在风险`,`At risk`],off_track:[`偏离计划`,`Off track`]};function j(e){let t=(0,S.c)(5),{target:n}=e;if(n.kind===`automation`&&n.view===`run`){let e;return t[0]!==n.id||t[1]!==n.runId?(e=(0,C.jsx)(T,{automationId:n.id,runId:n.runId}),t[0]=n.id,t[1]=n.runId,t[2]=e):e=t[2],e}let r;return t[3]===n?r=t[4]:(r=(0,C.jsx)(M,{target:n}),t[3]=n,t[4]=r),r}function M(e){let t=(0,S.c)(95),{target:s}=e,c=i(L),l=a(I),d=l===`zh`,f=o(l),h;t[0]===d?h=t[1]:(h=e=>A[e]?.[+!d]||e,t[0]=d,t[1]=h);let g=h,_;t[2]!==s.href||t[3]!==c?(_=[`chat-product-preview`,s.href,c],t[2]=s.href,t[3]=c,t[4]=_):_=t[4];let b;t[5]===s?b=t[6]:(b=()=>k(s),t[5]=s,t[6]=b);let x;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(x={shouldRetryOnError:!1,refreshInterval:F},t[7]=x):x=t[7];let{data:w,error:T,isLoading:E}=u(_,b,x);if(E){let e;return t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,C.jsx)(v,{}),t[8]=e):e=t[8],e}if(T){let e=d?`无法加载内容,它可能已删除或暂时不可用。`:`Unable to load this content. It may have been deleted or be temporarily unavailable.`,n;return t[9]===e?n=t[10]:(n=(0,C.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:e}),t[9]=e,t[10]=n),n}if(!w?.value){let e=d?`内容不存在或已删除。`:`This content is unavailable or has been deleted.`,n;return t[11]===e?n=t[12]:(n=(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e}),t[11]=e,t[12]=n),n}let D=P;if(w.kind===`project`){let e=w.value,n;t[13]===e.name?n=t[14]:(n=(0,C.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:e.name}),t[13]=e.name,t[14]=n);let r;t[15]!==e.status||t[16]!==g?(r=g(e.status),t[15]=e.status,t[16]=g,t[17]=r):r=t[17];let i;t[18]!==e.health||t[19]!==g?(i=g(e.health),t[18]=e.health,t[19]=g,t[20]=i):i=t[20];let a;t[21]!==r||t[22]!==i?(a=(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[r,` · `,i]}),t[21]=r,t[22]=i,t[23]=a):a=t[23];let o;t[24]!==D||t[25]!==e.description?(o=D(e.description),t[24]=D,t[25]=e.description,t[26]=o):o=t[26];let s;t[27]!==D||t[28]!==e.brief?(s=D(e.brief),t[27]=D,t[28]=e.brief,t[29]=s):s=t[29];let c;t[30]!==D||t[31]!==e.outcome?(c=D(e.outcome),t[30]=D,t[31]=e.outcome,t[32]=c):c=t[32];let l;t[33]!==s||t[34]!==c||t[35]!==n||t[36]!==a||t[37]!==o?(l=(0,C.jsxs)(`div`,{className:`space-y-3`,children:[n,a,o,s,c]}),t[33]=s,t[34]=c,t[35]=n,t[36]=a,t[37]=o,t[38]=l):l=t[38];let u;t[39]!==e.successCriteria||t[40]!==d?(u=e.successCriteria?.length>0&&(0,C.jsxs)(`section`,{className:`space-y-3`,children:[(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:d?`完成标准`:`Success criteria`}),(0,C.jsx)(`ul`,{className:`list-disc space-y-2 pl-5 text-sm text-fg`,children:e.successCriteria.map(N)})]}),t[39]=e.successCriteria,t[40]=d,t[41]=u):u=t[41];let f;t[42]!==e.milestones||t[43]!==g||t[44]!==d?(f=e.milestones?.length>0&&(0,C.jsxs)(`section`,{className:`space-y-3`,children:[(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:d?`里程碑`:`Milestones`}),e.milestones.slice(0,8).map(e=>(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[e.title,` · `,g(e.status)]},e.id))]}),t[42]=e.milestones,t[43]=g,t[44]=d,t[45]=f):f=t[45];let p;t[46]!==D||t[47]!==e.recentUpdates||t[48]!==d?(p=e.recentUpdates?.[0]&&(0,C.jsxs)(`section`,{className:`space-y-3`,children:[(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:d?`最近进展`:`Latest update`}),D(e.recentUpdates[0].summary)]}),t[46]=D,t[47]=e.recentUpdates,t[48]=d,t[49]=p):p=t[49];let m;return t[50]!==l||t[51]!==u||t[52]!==f||t[53]!==p?(m=(0,C.jsxs)(`div`,{className:`space-y-6`,children:[l,u,f,p]}),t[50]=l,t[51]=u,t[52]=f,t[53]=p,t[54]=m):m=t[54],m}if(w.kind===`automation`){let e=w.value,n=e.action.kind===`agent`?e.action.instruction:void 0,r;t[55]===e.name?r=t[56]:(r=(0,C.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:e.name}),t[55]=e.name,t[56]=r);let i;t[57]!==e.description||t[58]!==D?(i=D(e.description),t[57]=e.description,t[58]=D,t[59]=i):i=t[59];let a;t[60]!==n||t[61]!==D?(a=D(n),t[60]=n,t[61]=D,t[62]=a):a=t[62];let o;t[63]!==e.state.nextRunAtMs||t[64]!==d?(o=e.state.nextRunAtMs&&(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[d?`下次运行`:`Next run`,` · `,new Date(e.state.nextRunAtMs).toLocaleString(d?`zh-CN`:`en-US`)]}),t[63]=e.state.nextRunAtMs,t[64]=d,t[65]=o):o=t[65];let s;t[66]===e.state.lastError?s=t[67]:(s=e.state.lastError&&(0,C.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:e.state.lastError}),t[66]=e.state.lastError,t[67]=s);let c=d?`最近运行`:`Recent runs`,u;t[68]===c?u=t[69]:(u=(0,C.jsx)(`h3`,{className:`font-medium text-fg`,children:c}),t[68]=c,t[69]=u);let h;t[70]!==w.runs||t[71]!==D||t[72]!==g||t[73]!==d?(h=w.runs.length?w.runs.map(e=>(0,C.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-edge p-3`,children:[(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[g(e.status),` · `,new Date(e.createdAtMs).toLocaleString(d?`zh-CN`:`en-US`)]}),D(e.summary),e.error&&(0,C.jsx)(`p`,{className:`text-sm text-danger`,children:e.error})]},e.id)):(0,C.jsx)(`p`,{className:`text-sm text-fg-muted`,children:d?`暂无运行记录。`:`No runs yet.`}),t[70]=w.runs,t[71]=D,t[72]=g,t[73]=d,t[74]=h):h=t[74];let _;return t[75]!==u||t[76]!==h?(_=(0,C.jsxs)(`section`,{className:`space-y-3`,children:[u,h]}),t[75]=u,t[76]=h,t[77]=_):_=t[77],(0,C.jsxs)(`div`,{className:`space-y-6`,children:[(0,C.jsxs)(`div`,{className:`space-y-3`,children:[r,(0,C.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[p(e)?d?`已完成`:`Completed`:e.enabled?d?`已启用`:`Enabled`:d?`已暂停`:`Paused`,` · `,m(e.trigger,f.automations,f.cron,l)]}),i,a,o,s]}),_]})}let O=w.value,j;t[78]===O.name?j=t[79]:(j=(0,C.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:O.name}),t[78]=O.name,t[79]=j);let M=O.description||O.idea,R;t[80]!==D||t[81]!==M?(R=D(M),t[80]=D,t[81]=M,t[82]=R):R=t[82];let z;t[83]!==O.name||t[84]!==w.previewUrl||t[85]!==d?(z=w.previewUrl&&(0,C.jsx)(`iframe`,{title:d?`${O.name} 交互预览`:`${O.name} interactive preview`,src:r(w.previewUrl),sandbox:`allow-scripts allow-forms`,className:`h-[min(30rem,55dvh)] w-full rounded-lg border border-edge bg-white`}),t[83]=O.name,t[84]=w.previewUrl,t[85]=d,t[86]=z):z=t[86];let B;t[87]!==O||t[88]!==d?(B=O.installationState===`installed`&&O.enabled&&O.status===`installed`&&(0,C.jsx)(n,{to:y(O),className:`inline-flex rounded-lg bg-accent px-3 py-2 text-sm text-white focus-visible:ring-2 focus-visible:ring-accent`,children:d?`使用应用`:`Use app`}),t[87]=O,t[88]=d,t[89]=B):B=t[89];let V;return t[90]!==j||t[91]!==R||t[92]!==z||t[93]!==B?(V=(0,C.jsxs)(`div`,{className:`space-y-5`,children:[j,R,z,B]}),t[90]=j,t[91]=R,t[92]=z,t[93]=B,t[94]=V):V=t[94],V}function N(e,t){return(0,C.jsx)(`li`,{children:e},t)}function P(e){return e?.trim()?(0,C.jsx)(s,{content:e,mermaidActions:!1}):null}function F(e){return e?.kind===`automation`&&e.value?.state.runningRunId?3e3:0}function I(e){return e.language}function L(e){return e.conversationId}export{j as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/product-preview-content-o2Y3VNE7.js","assets/vendor-react-BOUWij0V.js","assets/rolldown-runtime-aKtaBQYM.js","assets/chunk-KS7C4IRE-CiwuuyV8.js","assets/preload-helper-Czpn1I53.js","assets/locale-store-B6OrWgY1.js","assets/messages-jwdBhfL9.js","assets/markdown-view-DrhYZSmg.js","assets/dist-BGTk37IG.js","assets/es2015-DBLcMg5B.js","assets/dist-CxGUk8J-.js","assets/createLucideIcon-DPHK1VkS.js","assets/download-Dk-ZjtO6.js","assets/file-image-CDUPkZvG.js","assets/plus-Q2yW6OE7.js","assets/x-B_N4OPjy.js","assets/cn-0WouolD0.js","assets/bundle-mjs-rHxsej31.js","assets/app-link-DRy3-k7j.js","assets/product-delivery-DRyD9_Xq.js","assets/schemas-CCWMleym.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/skeleton-BI5TyibZ.js","assets/api-oIK4hYkJ.js","assets/tasks-DRmd6sWt.js","assets/specialists-xbB3xL9e.js","assets/files-BNL4kkSB.js","assets/vendor-swr-CdRzEUwF.js","assets/button-Cc4hUNTt.js","assets/automation-task-card-D27Mw66U.js","assets/calendar-clock-D-quYVPe.js","assets/check-DUBLcKHA.js","assets/chevron-down-ccbiQQz_.js","assets/popover-select-CEMWIrtY.js","assets/dist-GJ8-1PAx.js","assets/dist-BuHnPloF.js","assets/floating-ui.dom-seOukHzT.js","assets/settings-shell-dialog-layer-BU3UuiJr.js","assets/clock-3-DnrAnuyZ.js","assets/message-circle-Badhj-4D.js","assets/pencil-DmIY3Oa-.js","assets/chat-agents-api-BB0biwc7.js","assets/gateway-config-swr-D6cc6W6E.js","assets/model-selector-DXm4NS1_.js","assets/settings-2-D-csvaET.js","assets/registry-api-Bl2guMRg.js","assets/gateway-startup-retry-C8g666Ja.js","assets/open-capability-settings-Cvb65hQB.js","assets/interaction-BdhHBbYa.js","assets/form-field-width-DJw_jULe.js","assets/date-picker-CAankdQw.js","assets/calendar-days-hw_Y-g-s.js","assets/chevron-left-DqFhpbvK.js","assets/chevron-right-BweFrslA.js","assets/automation-api-CLPsgcQN.js","assets/api-DMbimMEi.js","assets/open-route-MyZ2sB9C.js","assets/automation-result-state-CKVnR4KG.js"])))=>i.map(i=>d[i]);
2
- 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"./preload-helper-Czpn1I53.js";import{t as a}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as o}from"./locale-store-B6OrWgY1.js";import{a as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-BGTk37IG.js";import{t as m}from"./external-link-DjqjBmc3.js";import{V as h}from"./markdown-view-DrhYZSmg.js";import{t as g}from"./x-B_N4OPjy.js";import{t as _}from"./skeleton-BI5TyibZ.js";import{i as v}from"./vendor-swr-CdRzEUwF.js";import{t as y}from"./button-Cc4hUNTt.js";import{r as b}from"./automation-task-card-D27Mw66U.js";import{t as x}from"./automation-api-CLPsgcQN.js";var S=n(),C=e(t(),1),w=r(),T=(0,C.lazy)(()=>i(()=>import(`./product-preview-content-o2Y3VNE7.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]))),E={project:[`项目预览`,`Project preview`],automation:[`自动化详情`,`Automation details`],local_app:[`应用预览`,`App preview`]};function D(){let e=(0,S.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,w.jsx)(_,{className:`h-7 w-2/3`}),(0,w.jsx)(_,{className:`h-4 w-full`}),(0,w.jsx)(_,{className:`h-4 w-4/5`}),(0,w.jsx)(_,{className:`h-32 w-full`})]}),e[0]=t):t=e[0],t}function O(e){let t=(0,S.c)(8),{target:n,backgroundPath:r,onClose:i}=e;if(n.kind===`automation`&&n.view!==`run`){let e;return t[0]!==r||t[1]!==i||t[2]!==n?(e=(0,w.jsx)(k,{target:n,backgroundPath:r,onClose:i}),t[0]=r,t[1]=i,t[2]=n,t[3]=e):e=t[3],e}let a;return t[4]!==r||t[5]!==i||t[6]!==n?(a=(0,w.jsx)(j,{target:n,backgroundPath:r,onClose:i}),t[4]=r,t[5]=i,t[6]=n,t[7]=a):a=t[7],a}function k(e){let t=(0,S.c)(34),{target:n,backgroundPath:r,onClose:i}=e,a=o(A),l,m;t[0]===n.id?(l=t[1],m=t[2]):(l=[`automation-card`,n.id],m=()=>x.get(n.id),t[0]=n.id,t[1]=l,t[2]=m);let h;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(h={revalidateOnFocus:!1,shouldRetryOnError:!1},t[3]=h):h=t[3];let{data:g,error:_,mutate:C}=v(l,m,h);if(g?.automation){if(g.automation.action.kind===`agent`&&!g.automation.management){let e;return t[4]!==g.automation||t[5]!==a||t[6]!==i?(e=(0,w.jsx)(b,{automation:g.automation,language:a,onClose:i}),t[4]=g.automation,t[5]=a,t[6]=i,t[7]=e):e=t[7],e}let e;return t[8]!==r||t[9]!==i||t[10]!==n?(e=(0,w.jsx)(j,{target:n,backgroundPath:r,onClose:i}),t[8]=r,t[9]=i,t[10]=n,t[11]=e):e=t[11],e}let T=a===`zh`,E;t[12]===i?E=t[13]:(E=e=>{e||i()},t[12]=i,t[13]=E);let O;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,w.jsx)(s,{className:`fixed inset-0 z-65 bg-scrim`}),t[14]=O):O=t[14];let k=T?`定时任务详情`:`Scheduled task details`,M;t[15]===k?M=t[16]:(M=(0,w.jsx)(f,{className:`mb-5 font-medium`,children:k}),t[15]=k,t[16]=M);let N=T?`查看和编辑定时任务。`:`View and edit the scheduled task.`,P;t[17]===N?P=t[18]:(P=(0,w.jsx)(c,{className:`sr-only`,children:N}),t[17]=N,t[18]=P);let F;t[19]!==_||t[20]!==C||t[21]!==T?(F=_?(0,w.jsxs)(`div`,{role:`alert`,className:`text-sm text-fg-muted`,children:[(0,w.jsx)(`p`,{children:T?`任务已不存在或暂时无法读取。`:`This task is unavailable.`}),(0,w.jsx)(y,{variant:`secondary`,onClick:()=>void C(),children:T?`重试`:`Retry`})]}):(0,w.jsx)(D,{}),t[19]=_,t[20]=C,t[21]=T,t[22]=F):F=t[22];let I=T?`关闭`:`Close`,L;t[23]!==i||t[24]!==I?(L=(0,w.jsx)(y,{className:`mt-auto self-end`,variant:`ghost`,onClick:i,children:I}),t[23]=i,t[24]=I,t[25]=L):L=t[25];let R;t[26]!==F||t[27]!==L||t[28]!==M||t[29]!==P?(R=(0,w.jsxs)(u,{children:[O,(0,w.jsxs)(d,{className:`fixed left-1/2 top-1/2 z-70 flex h-[min(600px,calc(100dvh-2rem))] w-[min(680px,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay p-5`,children:[M,P,F,L]})]}),t[26]=F,t[27]=L,t[28]=M,t[29]=P,t[30]=R):R=t[30];let z;return t[31]!==R||t[32]!==E?(z=(0,w.jsx)(p,{open:!0,onOpenChange:E,children:R}),t[31]=R,t[32]=E,t[33]=z):z=t[33],z}function A(e){return e.language}function j(e){let t=(0,S.c)(30),{target:n,backgroundPath:r,onClose:i}=e,_=o(M)===`zh`,v=n.kind===`automation`&&n.view===`run`?_?`运行情况`:`Run progress`:E[n.kind][+!_],y;t[0]===i?y=t[1]:(y=e=>{e||i()},t[0]=i,t[1]=y);let b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,w.jsx)(s,{className:`fixed inset-0 z-[80] bg-black/45 backdrop-blur-[1px]`}),t[2]=b):b=t[2];let x;t[3]===v?x=t[4]:(x=(0,w.jsx)(f,{className:`min-w-0 flex-1 truncate font-medium text-fg`,children:v}),t[3]=v,t[4]=x);let O=_?`查看关联内容,或打开独立页面。`:`Preview related content or open its full page.`,k;t[5]===O?k=t[6]:(k=(0,w.jsx)(c,{className:`sr-only`,children:O}),t[5]=O,t[6]=k);let A;t[7]!==r||t[8]!==n.href||t[9]!==n.view||t[10]!==_?(A=n.view!==`run`&&(0,w.jsxs)(a,{to:h(n.href,r),className:`flex shrink-0 items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm text-accent hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,w.jsx)(m,{className:`size-4`,"aria-hidden":!0}),_?`打开独立页面`:`Open full page`]}),t[7]=r,t[8]=n.href,t[9]=n.view,t[10]=_,t[11]=A):A=t[11];let j=_?`关闭预览`:`Close preview`,N=_?`关闭预览`:`Close preview`,P;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,w.jsx)(g,{className:`size-4`,"aria-hidden":!0}),t[12]=P):P=t[12];let F;t[13]!==j||t[14]!==N?(F=(0,w.jsx)(l,{title:j,"aria-label":N,className:`flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:P}),t[13]=j,t[14]=N,t[15]=F):F=t[15];let I;t[16]!==F||t[17]!==x||t[18]!==k||t[19]!==A?(I=(0,w.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 border-b border-edge bg-surface-panel px-5 py-3.5`,children:[x,k,A,F]}),t[16]=F,t[17]=x,t[18]=k,t[19]=A,t[20]=I):I=t[20];let L;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,w.jsx)(D,{}),t[21]=L):L=t[21];let R;t[22]===n?R=t[23]:(R=(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-5 sm:p-8`,children:(0,w.jsx)(C.Suspense,{fallback:L,children:(0,w.jsx)(T,{target:n},n.href)})}),t[22]=n,t[23]=R);let z;t[24]!==I||t[25]!==R?(z=(0,w.jsxs)(u,{children:[b,(0,w.jsxs)(d,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(48rem,calc(100dvh-2rem))] w-[min(52rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay focus:outline-none`,children:[I,R]})]}),t[24]=I,t[25]=R,t[26]=z):z=t[26];let B;return t[27]!==y||t[28]!==z?(B=(0,w.jsx)(p,{open:!0,onOpenChange:y,children:z}),t[27]=y,t[28]=z,t[29]=B):B=t[29],B}function M(e){return e.language}export{D as n,O as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/product-preview-content-DxSqrKsg.js","assets/vendor-react-BOUWij0V.js","assets/rolldown-runtime-aKtaBQYM.js","assets/chunk-KS7C4IRE-CiwuuyV8.js","assets/preload-helper-Czpn1I53.js","assets/locale-store-CAZaC05J.js","assets/messages-C7fckbyG.js","assets/markdown-view-BatP4qeK.js","assets/dist-BGTk37IG.js","assets/es2015-DBLcMg5B.js","assets/dist-CxGUk8J-.js","assets/createLucideIcon-DPHK1VkS.js","assets/download-Dk-ZjtO6.js","assets/file-image-CDUPkZvG.js","assets/plus-Q2yW6OE7.js","assets/x-B_N4OPjy.js","assets/cn-0WouolD0.js","assets/bundle-mjs-rHxsej31.js","assets/app-link-DRy3-k7j.js","assets/product-delivery-DRyD9_Xq.js","assets/schemas-CCWMleym.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/skeleton-BI5TyibZ.js","assets/api-B9fZL-V8.js","assets/tasks-DRmd6sWt.js","assets/specialists-xbB3xL9e.js","assets/files-BNL4kkSB.js","assets/vendor-swr-CdRzEUwF.js","assets/button-Cc4hUNTt.js","assets/automation-api-4fVKv9PJ.js","assets/automation-task-card-DZWhCWJa.js","assets/calendar-clock-D-quYVPe.js","assets/check-DUBLcKHA.js","assets/chevron-down-ccbiQQz_.js","assets/popover-select-CEMWIrtY.js","assets/dist-GJ8-1PAx.js","assets/dist-BuHnPloF.js","assets/floating-ui.dom-seOukHzT.js","assets/settings-shell-dialog-layer-BU3UuiJr.js","assets/clock-3-DnrAnuyZ.js","assets/message-circle-Badhj-4D.js","assets/pencil-DmIY3Oa-.js","assets/chat-agents-api-BUi_7GRo.js","assets/gateway-config-swr-Cq-ByXL4.js","assets/model-selector-raBRBkN_.js","assets/settings-2-D-csvaET.js","assets/registry-api-fLOqFyrz.js","assets/gateway-startup-retry-PMJi5mX4.js","assets/open-capability-settings-Cvb65hQB.js","assets/interaction-BdhHBbYa.js","assets/form-field-width-DJw_jULe.js","assets/date-picker-Cfjq1hD_.js","assets/calendar-days-hw_Y-g-s.js","assets/chevron-left-DqFhpbvK.js","assets/chevron-right-BweFrslA.js","assets/api-Djju8qIR.js","assets/open-route-MyZ2sB9C.js","assets/automation-result-state-m7PeK2kl.js"])))=>i.map(i=>d[i]);
2
+ 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"./preload-helper-Czpn1I53.js";import{t as a}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as o}from"./locale-store-CAZaC05J.js";import{a as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-BGTk37IG.js";import{t as m}from"./external-link-DjqjBmc3.js";import{V as h}from"./markdown-view-BatP4qeK.js";import{t as g}from"./x-B_N4OPjy.js";import{t as _}from"./skeleton-BI5TyibZ.js";import{i as v}from"./vendor-swr-CdRzEUwF.js";import{t as y}from"./button-Cc4hUNTt.js";import{t as b}from"./automation-api-4fVKv9PJ.js";import{r as x}from"./automation-task-card-DZWhCWJa.js";var S=n(),C=e(t(),1),w=r(),T=(0,C.lazy)(()=>i(()=>import(`./product-preview-content-DxSqrKsg.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]))),E={project:[`项目预览`,`Project preview`],automation:[`自动化详情`,`Automation details`],local_app:[`应用预览`,`App preview`]};function D(){let e=(0,S.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,w.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,w.jsx)(_,{className:`h-7 w-2/3`}),(0,w.jsx)(_,{className:`h-4 w-full`}),(0,w.jsx)(_,{className:`h-4 w-4/5`}),(0,w.jsx)(_,{className:`h-32 w-full`})]}),e[0]=t):t=e[0],t}function O(e){let t=(0,S.c)(8),{target:n,backgroundPath:r,onClose:i}=e;if(n.kind===`automation`&&n.view!==`run`){let e;return t[0]!==r||t[1]!==i||t[2]!==n?(e=(0,w.jsx)(k,{target:n,backgroundPath:r,onClose:i}),t[0]=r,t[1]=i,t[2]=n,t[3]=e):e=t[3],e}let a;return t[4]!==r||t[5]!==i||t[6]!==n?(a=(0,w.jsx)(j,{target:n,backgroundPath:r,onClose:i}),t[4]=r,t[5]=i,t[6]=n,t[7]=a):a=t[7],a}function k(e){let t=(0,S.c)(34),{target:n,backgroundPath:r,onClose:i}=e,a=o(A),l,m;t[0]===n.id?(l=t[1],m=t[2]):(l=[`automation-card`,n.id],m=()=>b.get(n.id),t[0]=n.id,t[1]=l,t[2]=m);let h;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(h={revalidateOnFocus:!1,shouldRetryOnError:!1},t[3]=h):h=t[3];let{data:g,error:_,mutate:C}=v(l,m,h);if(g?.automation){if(g.automation.action.kind===`agent`&&!g.automation.management){let e;return t[4]!==g.automation||t[5]!==a||t[6]!==i?(e=(0,w.jsx)(x,{automation:g.automation,language:a,onClose:i}),t[4]=g.automation,t[5]=a,t[6]=i,t[7]=e):e=t[7],e}let e;return t[8]!==r||t[9]!==i||t[10]!==n?(e=(0,w.jsx)(j,{target:n,backgroundPath:r,onClose:i}),t[8]=r,t[9]=i,t[10]=n,t[11]=e):e=t[11],e}let T=a===`zh`,E;t[12]===i?E=t[13]:(E=e=>{e||i()},t[12]=i,t[13]=E);let O;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,w.jsx)(s,{className:`fixed inset-0 z-65 bg-scrim`}),t[14]=O):O=t[14];let k=T?`定时任务详情`:`Scheduled task details`,M;t[15]===k?M=t[16]:(M=(0,w.jsx)(f,{className:`mb-5 font-medium`,children:k}),t[15]=k,t[16]=M);let N=T?`查看和编辑定时任务。`:`View and edit the scheduled task.`,P;t[17]===N?P=t[18]:(P=(0,w.jsx)(c,{className:`sr-only`,children:N}),t[17]=N,t[18]=P);let F;t[19]!==_||t[20]!==C||t[21]!==T?(F=_?(0,w.jsxs)(`div`,{role:`alert`,className:`text-sm text-fg-muted`,children:[(0,w.jsx)(`p`,{children:T?`任务已不存在或暂时无法读取。`:`This task is unavailable.`}),(0,w.jsx)(y,{variant:`secondary`,onClick:()=>void C(),children:T?`重试`:`Retry`})]}):(0,w.jsx)(D,{}),t[19]=_,t[20]=C,t[21]=T,t[22]=F):F=t[22];let I=T?`关闭`:`Close`,L;t[23]!==i||t[24]!==I?(L=(0,w.jsx)(y,{className:`mt-auto self-end`,variant:`ghost`,onClick:i,children:I}),t[23]=i,t[24]=I,t[25]=L):L=t[25];let R;t[26]!==F||t[27]!==L||t[28]!==M||t[29]!==P?(R=(0,w.jsxs)(u,{children:[O,(0,w.jsxs)(d,{className:`fixed left-1/2 top-1/2 z-70 flex h-[min(600px,calc(100dvh-2rem))] w-[min(680px,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay p-5`,children:[M,P,F,L]})]}),t[26]=F,t[27]=L,t[28]=M,t[29]=P,t[30]=R):R=t[30];let z;return t[31]!==R||t[32]!==E?(z=(0,w.jsx)(p,{open:!0,onOpenChange:E,children:R}),t[31]=R,t[32]=E,t[33]=z):z=t[33],z}function A(e){return e.language}function j(e){let t=(0,S.c)(30),{target:n,backgroundPath:r,onClose:i}=e,_=o(M)===`zh`,v=n.kind===`automation`&&n.view===`run`?_?`运行情况`:`Run progress`:E[n.kind][+!_],y;t[0]===i?y=t[1]:(y=e=>{e||i()},t[0]=i,t[1]=y);let b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,w.jsx)(s,{className:`fixed inset-0 z-[80] bg-black/45 backdrop-blur-[1px]`}),t[2]=b):b=t[2];let x;t[3]===v?x=t[4]:(x=(0,w.jsx)(f,{className:`min-w-0 flex-1 truncate font-medium text-fg`,children:v}),t[3]=v,t[4]=x);let O=_?`查看关联内容,或打开独立页面。`:`Preview related content or open its full page.`,k;t[5]===O?k=t[6]:(k=(0,w.jsx)(c,{className:`sr-only`,children:O}),t[5]=O,t[6]=k);let A;t[7]!==r||t[8]!==n.href||t[9]!==n.view||t[10]!==_?(A=n.view!==`run`&&(0,w.jsxs)(a,{to:h(n.href,r),className:`flex shrink-0 items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm text-accent hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:[(0,w.jsx)(m,{className:`size-4`,"aria-hidden":!0}),_?`打开独立页面`:`Open full page`]}),t[7]=r,t[8]=n.href,t[9]=n.view,t[10]=_,t[11]=A):A=t[11];let j=_?`关闭预览`:`Close preview`,N=_?`关闭预览`:`Close preview`,P;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,w.jsx)(g,{className:`size-4`,"aria-hidden":!0}),t[12]=P):P=t[12];let F;t[13]!==j||t[14]!==N?(F=(0,w.jsx)(l,{title:j,"aria-label":N,className:`flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:P}),t[13]=j,t[14]=N,t[15]=F):F=t[15];let I;t[16]!==F||t[17]!==x||t[18]!==k||t[19]!==A?(I=(0,w.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 border-b border-edge bg-surface-panel px-5 py-3.5`,children:[x,k,A,F]}),t[16]=F,t[17]=x,t[18]=k,t[19]=A,t[20]=I):I=t[20];let L;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,w.jsx)(D,{}),t[21]=L):L=t[21];let R;t[22]===n?R=t[23]:(R=(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-5 sm:p-8`,children:(0,w.jsx)(C.Suspense,{fallback:L,children:(0,w.jsx)(T,{target:n},n.href)})}),t[22]=n,t[23]=R);let z;t[24]!==I||t[25]!==R?(z=(0,w.jsxs)(u,{children:[b,(0,w.jsxs)(d,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(48rem,calc(100dvh-2rem))] w-[min(52rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay focus:outline-none`,children:[I,R]})]}),t[24]=I,t[25]=R,t[26]=z):z=t[26];let B;return t[27]!==y||t[28]!==z?(B=(0,w.jsx)(p,{open:!0,onOpenChange:y,children:z}),t[27]=y,t[28]=z,t[29]=B):B=t[29],B}function M(e){return e.language}export{D as n,O as t};