@xopcai/xopc 0.0.432 → 0.0.434
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/README.zh-CN.md +5 -5
- package/dist/browser-ext/dist/sidepanel.js +11 -0
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js +3 -3
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +2 -2
- package/dist/extensions/telegram/src/outbound-sender.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +2 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +12 -12
- package/dist/extensions/weixin/src/messaging/debug-mode.js +5 -5
- package/dist/extensions/weixin/src/messaging/inbound.js +11 -11
- package/dist/gateway/static/root/assets/{activity-store-iTw0JzOx.js → activity-store-Cwn_CNwl.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CXuMwQ4y.js → agent-avatar-dicebear-Cd23LnJJ.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-hRyDKdPJ.js → agent-avatar-display-ByzM7u9S.js} +2 -2
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-BBRKBHLB.js → agent-defaults-settings-panel-B0i37diS.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-PoKk6j20.js → agent-plugin-dialog-XN-tZ-Ox.js} +1 -1
- package/dist/gateway/static/root/assets/{agents--P5-QEHR.js → agents-ZDA1OaLv.js} +3 -3
- package/dist/gateway/static/root/assets/{agents-admin-api-DuYzWKP8.js → agents-admin-api-B5lKH_ps.js} +1 -1
- package/dist/gateway/static/root/assets/{api-DT_Aly4B.js → api-B9fZL-V8.js} +1 -1
- package/dist/gateway/static/root/assets/{api-BeNB3MkI.js → api-Djju8qIR.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-C4JhA-Kz.js → app-management-settings-panel-IlyzDPJu.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-YM311zxY.js → appearance-settings-BxdFGob3.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-CxEKiOTA.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-DoYjGZv1.js → archive-plugin-4gEvotPr.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-api-ZD1VY9jO.js → automation-api-4fVKv9PJ.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-result-state-BO5N3gMt.js → automation-result-state-m7PeK2kl.js} +1 -1
- package/dist/gateway/static/root/assets/automation-run-list-CJOdy_R2.js +1 -0
- package/dist/gateway/static/root/assets/{automation-task-card--K7uiKHL.js → automation-task-card-DZWhCWJa.js} +3 -3
- package/dist/gateway/static/root/assets/{automations-page-Clcl5MI7.js → automations-page-CmxICTM4.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-R6YNDdAO.js +9 -0
- package/dist/gateway/static/root/assets/{binary-plugins-B-dkI6-B.js → binary-plugins-69WyJLNW.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CB6KruU-.js → block-editor-DUONDIZR.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-Bk_QFbzb.js → browser-automation-inputs-DL4YPCuN.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-54eckhYq.js → browser-automations-page-1Aq6XmRs.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-control-api-B4T1KPPz.js → browser-control-api-yjru8E7R.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-rOmS1-T8.js → browser-settings-page-CvwpT8Um.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-D_Uqx5il.js → capabilities-C7lnwKKm.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-DBDeifNA.js → capabilities-DaeQXJT4.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-page-B5avAOUM.js +2 -0
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-iQPbNO4A.js → capabilities-settings-panel-_9yCS78i.js} +1 -1
- package/dist/gateway/static/root/assets/capability-links-DeO34GIF.js +1 -0
- package/dist/gateway/static/root/assets/{channels-DsEP_hFB.js → channels-CoQb4HOF.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-D5-xZdAt.js → chat-agents-api-BUi_7GRo.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-B-ri4wfk.js → chat-chart-block-CcVcKsDZ.js} +1 -1
- package/dist/gateway/static/root/assets/chat-page-BJ8PlDjZ.js +72 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-RcrdmYe8.js → chat-terminal-dock-BMXJpPuH.js} +1 -1
- package/dist/gateway/static/root/assets/{command-palette-api-DFd-zOz_.js → command-palette-api-luUjQPsh.js} +1 -1
- package/dist/gateway/static/root/assets/{composer-payload-handoff-hccuv1Lk.js → composer-payload-handoff-B5XNxNCb.js} +1 -1
- package/dist/gateway/static/root/assets/computer-settings-page-CWtdyEJH.js +1 -0
- package/dist/gateway/static/root/assets/connected-providers-grid-2idMtk65.js +1 -0
- package/dist/gateway/static/root/assets/connection-usage-Cm_McddI.js +1 -0
- package/dist/gateway/static/root/assets/connection-usage-guide-Ddh0bfkj.js +1 -0
- package/dist/gateway/static/root/assets/{connector-service-page-C3ZhlR8V.js → connector-service-page-C3msXaBk.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-D6CPY0Nu.js → connectors-api-NcWECWKg.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-Crb6DILX.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-D3bxeryy.js → date-picker-Cfjq1hD_.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-B7kSoCSo.js → desktop-pet-ChFn9v-3.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-3dEeKSHA.js → desktop-pet-settings-DvnVIv25.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-Dk7ylv5S.js → dev-view-store-DQJ61P5L.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-CstPAnnj.js → device-pairing-wizard-KxaIL-OX.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-BUGqS-lm.js → directory-picker-path-field-Drv864uE.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-D9-wFJDS.js → discussion-annotation-sync-DfBRkWtw.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-BDTA9XDE.js → extension-debug-page-DAlBIt_R.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-CPEaw2ZG.js → extension-iframe-host-Bds-5kY_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-edmEFM6F.js → extension-marketplace-api-CZg8nBwW.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-Biz-65E8.js → extension-page-ZTw-oucT.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-DCur0Xcb.js → extension-provider-NKWfjpdP.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CvPK63oz.js → extension-settings-page-CT7PPt_q.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-BFs1sAID.js → file-preview-surface-BcLeaSNe.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-C-fPl1hP.js → gateway-config-swr-Cq-ByXL4.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-xZpX_HCq.js → gateway-realtime-DwMd2PCt.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-CHrf6-nR.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-restart-BfozBI8f.js → gateway-restart-DdiVzbkL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-A8BUKcfx.js → gateway-settings-1QUdNwrZ.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-BRrkiv67.js → gateway-startup-retry-PMJi5mX4.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-C9O_X0pj.js → global-defaults-api-DgzZh3wX.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-CzS-ROXe.js → home-page-Chn7YTiD.js} +2 -2
- package/dist/gateway/static/root/assets/{image-generation-api-ohquPPls.js → image-generation-api-CjVpsckq.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-DAebChWv.js → imports-page-CJCvZFaQ.js} +1 -1
- package/dist/gateway/static/root/assets/index-DWQ4LbBn.js +11 -0
- package/dist/gateway/static/root/assets/index-iukJWzxG.css +1 -0
- package/dist/gateway/static/root/assets/install-connector-dialog-Bo06Ry3H.js +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Bv4YJpTl.js → keyboard-shortcuts-settings-BylFJeGu.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-OhV8UnzK.js → local-app-workbench-page-B3MSSFsr.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-ADzWmh3T.js → local-apps-page-BeV86rMJ.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-DgtYzPiy.js → local-session-drafts-jgw8UGsO.js} +2 -2
- package/dist/gateway/static/root/assets/{locale-store-fGFrr4_4.js → locale-store-CAZaC05J.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-i0eD_bSC.js → logs-page-BMmSsUP5.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-C-JTxRjw.js → management-settings-Bu7T8ewk.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-Cnt8oxNg.js → markdown-view-BatP4qeK.js} +1 -1
- package/dist/gateway/static/root/assets/{mcp-conversation-setup-page-BQ_US_jP.js → mcp-conversation-setup-page-rROtr0UN.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-cphVSfva.js → media-plugins-88OV72YE.js} +1 -1
- package/dist/gateway/static/root/assets/messages-C7fckbyG.js +3 -0
- package/dist/gateway/static/root/assets/{model-selector-Bv-anQ6O.js → model-selector-raBRBkN_.js} +1 -1
- package/dist/gateway/static/root/assets/{models-hub-cache-BLYpN4bJ.js → models-hub-cache-CzC9y3D0.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-panel-B-pk3LYN.js → note-detail-panel-BvA8Vkbm.js} +3 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-D6kUDDd5.js +1 -0
- package/dist/gateway/static/root/assets/{notes-api-IIQgxlMj.js → notes-api-zXpV6UXu.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-C6l9zI17.js → notes-page-CjYH9Kle.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-BojfhqmL.js → oauth-api-DmxSaxM1.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-D_p1ez-o.js → oauth-provider-connect-D4Gfs-Ba.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-CiEaCz7v.js → page-context-capture-button-Mig3d0UX.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-BbGvUKjF.js → page-context-draft-C4IIZaKd.js} +1 -1
- package/dist/gateway/static/root/assets/page-header-store-D7G5utVi.js +1 -0
- package/dist/gateway/static/root/assets/{personal-avatar-Cq0y6LEK.js → personal-avatar-DLa-CpaK.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-CDad-FDO.js → personal-page-l9_vYfdJ.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-settings-panel-yVUzcKoo.js → personal-settings-panel-XSUkgcr2.js} +1 -1
- package/dist/gateway/static/root/assets/phone-dependencies-card-DYwnuVh3.js +1 -0
- package/dist/gateway/static/root/assets/phone-model-connection-2F32QTHA.js +1 -0
- package/dist/gateway/static/root/assets/phone-model-picker-DCVzIr0s.js +1 -0
- package/dist/gateway/static/root/assets/phone-settings-page-DJttE4id.js +1 -0
- package/dist/gateway/static/root/assets/{phone-workspace-store-DoTZvoDh.js → phone-workspace-store-Dxp-KhFP.js} +1 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-tyjAjFjA.js +1 -0
- package/dist/gateway/static/root/assets/{preference-select-fields-oZm_6PvN.js → preference-select-fields-BVP3MhGK.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-Ddj5cmmF.js → product-automation-feedback-DbJvv92z.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-CTuqeUDh.js → product-open-page-RImqlhCD.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-Ci8eDZ2h.js → product-preview-content-DxSqrKsg.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-J-9O-eQ2.js → product-preview-modal-Cw8Q8Uom.js} +2 -2
- package/dist/gateway/static/root/assets/{project-detail-page-D8QlmMQp.js → project-detail-page-BbyV8EiG.js} +1 -1
- package/dist/gateway/static/root/assets/{project-understanding-8DBS77KV.js → project-understanding-BMKcoUW5.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-CEyyFqca.js → projects-page-CFsABLvs.js} +1 -1
- package/dist/gateway/static/root/assets/{providers-api-DyX07mht.js → providers-api-CAeXbJNF.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-DOhMs_aU.js → recording-upload-CfpllTe5.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-Bm7kut54.js → registry-api-fLOqFyrz.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-DfCkv8XR.js → remote-access-hub-BvKOxy0L.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-jg8QV_tO.js → resource-unavailable-D15jzjV_.js} +1 -1
- package/dist/gateway/static/root/assets/route-preload-BWpw9qxc.js +2 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-BpaZgv-a.js → runtime-tools-api-D0Nrvuqv.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-CGnX0DY1.js → runtime-tools-settings-panel-CA27XgL2.js} +1 -1
- package/dist/gateway/static/root/assets/{service-recommendation-list-NdwoBa_O.js → service-recommendation-list-B0RoYLVT.js} +1 -1
- package/dist/gateway/static/root/assets/session-api-CHRP5Lwf.js +1 -0
- package/dist/gateway/static/root/assets/session-channel-icon-D1ktvt1P.js +1 -0
- package/dist/gateway/static/root/assets/session-identity-label-BP7OIYth.js +1 -0
- package/dist/gateway/static/root/assets/session-manager-DRRWwKE4.js +25 -0
- package/dist/gateway/static/root/assets/{sessions-page-CAutHonI.js → sessions-page-uJHS3-6F.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CZ4J3Kuy.js +1 -0
- package/dist/gateway/static/root/assets/{settings-advanced-section-CICMnCwv.js → settings-advanced-section-D-llwfSj.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-DCnYgG87.js → settings-mode-store-BspMKc9N.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-CZXi8Jro.js → settings-page-XJXcnE1_.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-DH1qb4vP.js → settings-page-header-LuOJvqNa.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-B2G042F2.js → settings-page-layout-CduQ8w4a.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-interaction-page-B-tpfd3l.js → setup-interaction-page-ujpPGl84.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-DtA2Lb-A.js → setup-status-panel-BN2aCJUN.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-BjjkGRWn.js → share-link-dialog-CTATUaa4.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-BBaJCO3w.js → share-preview-page-Dq0J3VgS.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-C1rliVTe.js → shares-api-zegE8pSE.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-BMctLz4y.js → shares-settings-DXpvsRXq.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-fWp7oUet.js → skill-api-DCL1EN7f.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-B-2Dod7G.js → skill-list-api-Bv0mmHbu.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-Cejk-tbD.js → skill-reload-api-DPZbadiO.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-D-dxO0Vc.js → skills-page-DMC7Gaku.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-D-gdBXlK.js → system-settings-panel-BYFUhlqG.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-CIX4EckU.js → task-detail-page-DvX9JoEd.js} +3 -3
- package/dist/gateway/static/root/assets/{task-result-evidence-Dp6gk3xn.js → task-result-evidence-Bxm8-H0B.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-BDrza-7c.js → terminal-panel-store-Djf9l2qZ.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-De43hGnm.js → theme-store-8GFVtotZ.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-DlQJAutq.js → tracing-settings-page-oWW3SBZ4.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-BSeDyRBI.js → tunnel-api-D-mEsSGF.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-CABSRtdN.js → understanding-activity-store-CvDjsd0I.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-C5pXQtC9.js → understanding-refresh-store-DzOZJm7A.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-Dd6gyHlm.js → usage-page-z-o6Uuev.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-BhdMHxgz.js → use-autosave-BVYS8UoK.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-Baw8AHhn.js → use-composer-attachments-lecOV2q5.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-B_cRX1Ih.js → use-file-preview-expanded-nd_CuFsd.js} +2 -2
- package/dist/gateway/static/root/assets/{use-personal-profile-DL5rDvwX.js → use-personal-profile-CQi2ZCxV.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-DONQqfmT.js → use-workspace-tree-BiaddkzX.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-u2vtyxcX.js → user-model-page-Bks1n0Nj.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-OChN73N1.js → voice-api-key-field-BbW8NFeZ.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-CziHHWRu.js → voice-config-api-jSMzZWWy.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-CWSb-oJe.js → voice-input-shortcut-events-_SgYmx7X.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-CqEwxj11.js → voice-transcribe-api-BJCfiRFU.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BJT2mARb.js → work-discovery-overlay-DSTSNyU7.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-CkHMAnBc.js → work-discovery-page-Dd_QJJvb.js} +1 -1
- package/dist/gateway/static/root/assets/{working-directory-picker-modal-CpZEiO2a.js → working-directory-picker-modal-q39BUcJ6.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-Yi28Sl0C.js → workspace-api-Di2OmCvz.js} +2 -2
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-B2r9wlix.js +1 -0
- package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-MLLldcHQ.js → workspace-file-preview-dialog-BUGNT765.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-CjfDtW9T.js → workspace-open-location-menu-bMSvmQW7.js} +1 -1
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-FioKsLPf.js → xopc-cloud-account-card-Bbe19Del.js} +1 -1
- package/dist/gateway/static/root/index.html +87 -85
- package/dist/package.js +1 -1
- package/dist/packages/computer-control-contract/src/index.js +33 -3
- package/dist/packages/gateway-contract/src/session-identity.js +2 -1
- package/dist/packages/gateway-contract/src/session-input-command.js +19 -2
- package/dist/packages/gateway-contract/src/specialists.js +1 -0
- package/dist/src/agent/agent-manager.js +17 -17
- package/dist/src/agent/agent-scope.js +2 -2
- package/dist/src/agent/background-review/prompts.js +1 -1
- package/dist/src/agent/background-review/run-background-review.js +11 -11
- package/dist/src/agent/child-agent-factory.js +2 -2
- package/dist/src/agent/context/coordinator.js +2 -2
- package/dist/src/agent/context/execution-context.js +4 -4
- package/dist/src/agent/context/project-context.js +3 -3
- package/dist/src/agent/data-acquisition/service.js +1 -1
- package/dist/src/agent/embedded/codemode-extension.js +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.d.ts +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.js +3 -3
- package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +29 -14
- package/dist/src/agent/embedded/run-turn.js +48 -25
- package/dist/src/agent/embedded/runs.d.ts +2 -2
- package/dist/src/agent/embedded/runs.js +4 -4
- package/dist/src/agent/embedded/session-runner.js +30 -15
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
- package/dist/src/agent/embedded/tool-search-extension.d.ts +8 -2
- package/dist/src/agent/embedded/tool-search-extension.js +122 -30
- package/dist/src/agent/embedded/xopc-tools-bridge.js +1 -1
- package/dist/src/agent/external-tools/cliProvider.d.ts +10 -9
- package/dist/src/agent/external-tools/cliProvider.js +27 -7
- package/dist/src/agent/external-tools/composio-provider.d.ts +3 -3
- package/dist/src/agent/external-tools/composio-provider.js +8 -5
- package/dist/src/agent/external-tools/discovery.d.ts +47 -0
- package/dist/src/agent/external-tools/discovery.js +56 -0
- package/dist/src/agent/external-tools/endpoint-provider.js +4 -4
- package/dist/src/agent/external-tools/extension-provider.js +1 -1
- package/dist/src/agent/external-tools/gateway-tools.js +27 -47
- package/dist/src/agent/external-tools/index.d.ts +1 -0
- package/dist/src/agent/external-tools/index.js +7 -0
- package/dist/src/agent/external-tools/memory-provider.js +1 -1
- package/dist/src/agent/external-tools/personal-request-scope.d.ts +7 -0
- package/dist/src/agent/external-tools/personal-request-scope.js +83 -0
- package/dist/src/agent/external-tools/read-policy.js +5 -4
- package/dist/src/agent/external-tools/service.d.ts +2 -0
- package/dist/src/agent/external-tools/service.js +22 -3
- package/dist/src/agent/external-tools/tool-registry.d.ts +6 -0
- package/dist/src/agent/external-tools/types.d.ts +7 -2
- package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
- package/dist/src/agent/image/generation/runtime.js +1 -1
- package/dist/src/agent/image/index.js +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.js +2 -2
- package/dist/src/agent/inbound/inbound-loop.js +2 -2
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.js +3 -2
- package/dist/src/agent/independent-execution.js +2 -2
- package/dist/src/agent/index.js +3 -3
- package/dist/src/agent/mcp/connection-drafts.js +1 -1
- package/dist/src/agent/mcp/connection-setup.js +1 -1
- package/dist/src/agent/mcp/conversation-setup.js +1 -1
- package/dist/src/agent/mcp/discovery.js +2 -2
- package/dist/src/agent/mcp/transport.js +1 -1
- package/dist/src/agent/memory/index.js +1 -1
- package/dist/src/agent/orchestration/llm-turn-retry.d.ts +1 -1
- package/dist/src/agent/orchestration/llm-turn-retry.js +14 -9
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +1 -0
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +3 -1
- package/dist/src/agent/prompt/response-language.js +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +3 -3
- package/dist/src/agent/prompt/system-prompt-params.js +1 -1
- package/dist/src/agent/sandbox/exec-policy.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +6 -6
- package/dist/src/agent/service/process-direct-streaming.js +6 -6
- package/dist/src/agent/service/webchat-tts.js +2 -2
- package/dist/src/agent/service.js +21 -21
- package/dist/src/agent/session/session-config-service.js +2 -2
- package/dist/src/agent/session/session-hydrator.js +1 -1
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/filesystem-watcher.js +1 -1
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +2 -2
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
- package/dist/src/agent/skills/skill-manager.js +1 -1
- package/dist/src/agent/skills/skill-sources.js +1 -1
- package/dist/src/agent/source-context/index.js +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +8 -8
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
- package/dist/src/agent/tool-manuals/computer.js +6 -4
- package/dist/src/agent/tool-manuals/phone.d.ts +1 -1
- package/dist/src/agent/tool-manuals/phone.js +4 -4
- package/dist/src/agent/tool-manuals/xopc-configuration.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-configuration.js +4 -2
- package/dist/src/agent/tools/computer-use-tool.js +7 -6
- package/dist/src/agent/tools/create-share-tool.js +2 -2
- package/dist/src/agent/tools/delegate-tool.js +3 -3
- package/dist/src/agent/tools/delegation-policy.js +1 -0
- package/dist/src/agent/tools/exec-command.js +1 -1
- package/dist/src/agent/tools/executor.js +1 -1
- package/dist/src/agent/tools/factory.js +23 -21
- package/dist/src/agent/tools/fetch-text.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +2 -2
- package/dist/src/agent/tools/index.js +4 -4
- package/dist/src/agent/tools/list-dir.js +1 -1
- package/dist/src/agent/tools/personal-attention-tool.js +2 -2
- package/dist/src/agent/tools/personal-request-result-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-tool.js +4 -4
- package/dist/src/agent/tools/personal-result-tool.js +1 -1
- package/dist/src/agent/tools/personal-task-tool.js +5 -5
- package/dist/src/agent/tools/phone-use-tool.js +3 -3
- package/dist/src/agent/tools/publish-artifacts.js +1 -1
- package/dist/src/agent/tools/read.js +1 -1
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/agent/tools/send-media.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/task-collaboration-tool.js +2 -2
- package/dist/src/agent/tools/tts-tool.js +1 -1
- package/dist/src/agent/tools/user-context-tool.js +2 -2
- package/dist/src/agent/tools/web.js +23 -4
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.js +10 -10
- package/dist/src/agent/transcript/index.js +2 -2
- package/dist/src/agent/transcript/transcript-hygiene.js +2 -2
- package/dist/src/agent-matching/delegation-service.js +1 -1
- package/dist/src/agent-matching/service.js +2 -2
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +1 -1
- package/dist/src/auth/oauth/openai.js +1 -1
- package/dist/src/auth/oauth/xopc-cloud.js +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/automations/delivery/delivery-router.js +1 -1
- package/dist/src/automations/domain/index.js +1 -1
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/index.js +2 -2
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/automations/service/automation-service.js +2 -2
- package/dist/src/browser/native-messaging-host.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/capabilities/store-connector.js +2 -2
- package/dist/src/channels/attachments/voice-stt-webchat.js +1 -1
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/outbound-sender.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +9 -9
- package/dist/src/channels/pairing/pairing-store.js +6 -6
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +2 -2
- package/dist/src/chat-commands/builtins/session.js +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +1 -1
- package/dist/src/chat-commands/builtins/tts.js +1 -1
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/chat-commands/index.js +3 -3
- package/dist/src/cli/commands/agent.js +7 -7
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
- package/dist/src/cli/commands/extension-agent-plugin.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +1 -1
- package/dist/src/cli/commands/extension.js +2 -2
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/models.js +2 -2
- package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/project.js +1 -1
- package/dist/src/cli/commands/skills.js +2 -2
- package/dist/src/cli/commands/tunnel.js +4 -4
- package/dist/src/cli/extension-cli-register.js +5 -5
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/cli/utils/session.js +1 -1
- package/dist/src/computer/batch.d.ts +108 -0
- package/dist/src/computer/batch.js +125 -0
- package/dist/src/computer/broker.d.ts +28 -2
- package/dist/src/computer/broker.js +95 -17
- package/dist/src/computer/diagnostics.d.ts +5 -1
- package/dist/src/computer/diagnostics.js +22 -3
- package/dist/src/computer/errors.d.ts +15 -0
- package/dist/src/computer/errors.js +59 -3
- package/dist/src/computer/flows.js +1 -1
- package/dist/src/computer/model-adapter.d.ts +58 -0
- package/dist/src/computer/model-adapter.js +113 -67
- package/dist/src/computer/native-errors.d.ts +2 -0
- package/dist/src/computer/native-errors.js +13 -0
- package/dist/src/computer/program-runtime.d.ts +1 -1
- package/dist/src/computer/program-runtime.js +1 -0
- package/dist/src/computer/runtime.d.ts +11 -0
- package/dist/src/computer/runtime.js +106 -38
- package/dist/src/computer/semantic-actions.js +4 -0
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/schema.d.ts +6 -0
- package/dist/src/connectors/cli/authorization.js +1 -1
- package/dist/src/connectors/composio-sessions.js +1 -1
- package/dist/src/connectors/composio.js +1 -1
- package/dist/src/connectors/connected-source-ingestion.js +2 -2
- package/dist/src/connectors/connected-source-understanding.js +5 -5
- package/dist/src/connectors/connection-recovery-service.js +4 -4
- package/dist/src/connectors/content-enrichment.js +1 -1
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/connectors/instances.js +1 -1
- package/dist/src/connectors/runtime-adapter-registry.js +2 -2
- package/dist/src/discussions/live-worker.js +1 -1
- package/dist/src/discussions/sealer.js +1 -1
- package/dist/src/endpoint-tools/index.js +1 -1
- package/dist/src/endpoint-tools/runtime.js +2 -2
- package/dist/src/extensions/activation-context.js +3 -3
- package/dist/src/extensions/agent-plugins/auth.js +1 -1
- package/dist/src/extensions/agent-plugins/formats.js +2 -1
- package/dist/src/extensions/agent-plugins/inventory.d.ts +2 -0
- package/dist/src/extensions/agent-plugins/inventory.js +4 -1
- package/dist/src/extensions/agent-plugins/skill-catalog.js +2 -2
- package/dist/src/extensions/agent-plugins/source-http-fetch.js +1 -1
- package/dist/src/extensions/agent-plugins/validation.d.ts +1 -0
- package/dist/src/extensions/agent-plugins/validation.js +2 -1
- package/dist/src/extensions/api.js +3 -3
- package/dist/src/extensions/bundled-extension-activation.js +1 -1
- package/dist/src/extensions/index.js +3 -3
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/media.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/device-routes.js +1 -1
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js +2 -2
- package/dist/src/gateway/hono/oauth-async.js +1 -1
- package/dist/src/gateway/hono/routes/agent-plugins.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +4 -4
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/context-sources.js +1 -1
- package/dist/src/gateway/hono/routes/endpoint-tools.js +1 -1
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/location-sharing.js +1 -1
- package/dist/src/gateway/hono/routes/mcp.js +1 -1
- package/dist/src/gateway/hono/routes/memory-learning.js +3 -3
- package/dist/src/gateway/hono/routes/models.js +4 -4
- package/dist/src/gateway/hono/routes/notes.js +1 -1
- package/dist/src/gateway/hono/routes/phone-dependencies.js +27 -6
- package/dist/src/gateway/hono/routes/phone-setup.js +43 -17
- package/dist/src/gateway/hono/routes/phone.js +24 -9
- package/dist/src/gateway/hono/routes/projects.js +4 -4
- package/dist/src/gateway/hono/routes/runtime-tools.js +1 -1
- package/dist/src/gateway/hono/routes/session-command-handler.js +11 -2
- package/dist/src/gateway/hono/routes/session-input-control.d.ts +3 -0
- package/dist/src/gateway/hono/routes/session-input-control.js +37 -0
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +12 -0
- package/dist/src/gateway/hono/routes/session-input-handler.js +27 -5
- package/dist/src/gateway/hono/routes/sessions.js +7 -3
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/side-chats.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/hono/routes/user-model.js +7 -7
- package/dist/src/gateway/hono/routes/voice.js +7 -7
- package/dist/src/gateway/lock.js +11 -11
- package/dist/src/gateway/media-access.js +1 -1
- package/dist/src/gateway/mobile-privacy.js +2 -2
- package/dist/src/gateway/ports.js +6 -6
- package/dist/src/gateway/provider-model-setup.js +1 -1
- package/dist/src/gateway/server.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +7 -6
- package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
- package/dist/src/gateway/service/config-coordinator.js +2 -2
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service/run-gateway-agent.js +5 -5
- package/dist/src/gateway/service/session-command-service.js +2 -2
- package/dist/src/gateway/service/session-input-coordinator.d.ts +6 -3
- package/dist/src/gateway/service/session-input-coordinator.js +48 -7
- package/dist/src/gateway/service.d.ts +1 -0
- package/dist/src/gateway/service.js +45 -42
- package/dist/src/gateway/session-context-summary.js +4 -4
- package/dist/src/gateway/session-reset-service.js +1 -1
- package/dist/src/gateway/workspace-editor-path.js +2 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
- package/dist/src/home-intelligence/generator.js +2 -2
- package/dist/src/imports/inventory.js +2 -2
- package/dist/src/imports/productImport.js +1 -1
- package/dist/src/imports/runtime.js +1 -1
- package/dist/src/infra/gateway-processes.js +2 -2
- package/dist/src/infra/path-env.js +3 -3
- package/dist/src/infra/update-global.js +9 -9
- package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
- package/dist/src/knowledge/index.js +1 -1
- package/dist/src/knowledge-memory/repository.js +1 -1
- package/dist/src/knowledge-memory/usage-policy.js +1 -1
- package/dist/src/local-apps/service.js +2 -2
- package/dist/src/mcp/gateway-http-client.js +1 -1
- package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
- package/dist/src/memory-learning/source-learning.js +5 -5
- package/dist/src/memory-learning/task-receipts.js +1 -1
- package/dist/src/notes/agent-context.js +4 -4
- package/dist/src/notes/index.js +1 -1
- package/dist/src/notes/service.js +3 -3
- package/dist/src/personal-agent/capability-service.js +3 -3
- package/dist/src/personal-agent/proactivity/routes.js +1 -1
- package/dist/src/personal-agent/proactivity/service.js +7 -7
- package/dist/src/personal-agent/prompt-context.js +7 -7
- package/dist/src/personal-agent/prompts.js +2 -2
- package/dist/src/personal-agent/reply-composer.js +9 -9
- package/dist/src/personal-agent/request-access.d.ts +2 -0
- package/dist/src/personal-agent/request-access.js +22 -2
- package/dist/src/personal-agent/request-delivery.js +2 -2
- package/dist/src/personal-agent/request-service.js +9 -9
- package/dist/src/personal-agent/result-reader.js +1 -1
- package/dist/src/personal-agent/service.js +1 -1
- package/dist/src/personal-agent/specialist-capabilities.d.ts +2 -0
- package/dist/src/personal-agent/specialist-capabilities.js +9 -3
- package/dist/src/phone/adb-driver.d.ts +3 -0
- package/dist/src/phone/adb-driver.js +29 -0
- package/dist/src/phone/contracts.d.ts +14 -2
- package/dist/src/phone/contracts.js +8 -1
- package/dist/src/phone/gui-protocol.js +1 -1
- package/dist/src/phone/hdc-driver.d.ts +30 -0
- package/dist/src/phone/hdc-driver.js +331 -0
- package/dist/src/phone/hdc-video-bridge.d.ts +2 -0
- package/dist/src/phone/hdc-video-bridge.js +91 -0
- package/dist/src/phone/hdc-video-tools.d.ts +15 -0
- package/dist/src/phone/hdc-video-tools.js +123 -0
- package/dist/src/phone/hdc-video.d.ts +69 -0
- package/dist/src/phone/hdc-video.js +350 -0
- package/dist/src/phone/interactive-session.js +1 -1
- package/dist/src/phone/live-provider.d.ts +6 -0
- package/dist/src/phone/live-provider.js +1 -0
- package/dist/src/phone/model-adapter.d.ts +3 -0
- package/dist/src/phone/model-adapter.js +6 -4
- package/dist/src/phone/repository.js +3 -2
- package/dist/src/phone/runtime.d.ts +10 -4
- package/dist/src/phone/runtime.js +154 -88
- package/dist/src/phone/setup/service.d.ts +8 -6
- package/dist/src/phone/setup/service.js +33 -16
- package/dist/src/platform/client.d.ts +1 -1
- package/dist/src/platform/contracts.d.ts +1 -1
- package/dist/src/process/phone-process.d.ts +1 -1
- package/dist/src/process/phone-process.js +2 -2
- package/dist/src/projects/index.js +2 -2
- package/dist/src/projects/project-agent-suggestion.js +1 -1
- package/dist/src/projects/project-service.js +2 -2
- package/dist/src/projects/project-skill-service.js +2 -2
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/providers/model-reference-auditor.js +1 -1
- package/dist/src/realtime/runtime.js +1 -1
- package/dist/src/remote-access/exposure-manager.js +1 -1
- package/dist/src/runtime-tools/downloader.d.ts +1 -0
- package/dist/src/runtime-tools/downloader.js +8 -4
- package/dist/src/runtime-tools/harmony-dependencies.d.ts +24 -0
- package/dist/src/runtime-tools/harmony-dependencies.js +272 -0
- package/dist/src/runtime-tools/harmony-dependency-catalog.d.ts +4 -0
- package/dist/src/runtime-tools/harmony-dependency-catalog.js +54 -0
- package/dist/src/runtime-tools/harmony-paths.d.ts +9 -0
- package/dist/src/runtime-tools/harmony-paths.js +15 -0
- package/dist/src/runtime-tools/hdc-dependency-catalog.d.ts +8 -0
- package/dist/src/runtime-tools/hdc-dependency-catalog.js +83 -0
- package/dist/src/runtime-tools/hdc-files.d.ts +14 -0
- package/dist/src/runtime-tools/hdc-files.js +87 -0
- package/dist/src/runtime-tools/phone-dependencies.d.ts +6 -1
- package/dist/src/runtime-tools/phone-dependencies.js +22 -4
- package/dist/src/runtime-tools/phone-dependency-catalog.d.ts +10 -1
- package/dist/src/runtime-tools/phone-dependency-catalog.js +2 -0
- package/dist/src/runtime-tools/types.d.ts +1 -1
- package/dist/src/session/client-history.d.ts +2 -0
- package/dist/src/session/client-history.js +3 -0
- package/dist/src/session/compact-history.js +1 -0
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/store.js +5 -5
- package/dist/src/session/thinking-resolve.js +1 -1
- package/dist/src/share/hosted-session-share.js +2 -2
- package/dist/src/share/session-share-service.js +1 -1
- package/dist/src/share/share-store.js +1 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/share/site-proxy.js +1 -1
- package/dist/src/share/site-share-store.js +1 -1
- package/dist/src/storage/sqlite/connection.js +9 -9
- package/dist/src/storage/sqlite/schema.d.ts +2 -2
- package/dist/src/storage/sqlite/schema.js +7 -7
- package/dist/src/storage/sqlite/schema.sql +16 -0
- package/dist/src/storage/sqlite/session-creation-repository.js +3 -0
- package/dist/src/storage/sqlite/session-input-control-repository.d.ts +12 -0
- package/dist/src/storage/sqlite/session-input-control-repository.js +83 -0
- package/dist/src/storage/sqlite/session-input-repository.d.ts +2 -0
- package/dist/src/storage/sqlite/session-input-repository.js +17 -5
- package/dist/src/storage/sqlite/session-repository.js +1 -0
- package/dist/src/storage/sqlite/session-turn-replace-repository.d.ts +2 -0
- package/dist/src/storage/sqlite/session-turn-replace-repository.js +14 -2
- package/dist/src/storage/sqlite/upgrades/262_session_input_control.sql +15 -0
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/write.js +1 -1
- package/dist/src/tasks/home-query-service.js +1 -1
- package/dist/src/tasks/index.js +5 -5
- package/dist/src/tasks/task-allocation-service.js +5 -5
- package/dist/src/tasks/task-application-service.js +5 -5
- package/dist/src/tasks/task-collaboration-delivery.js +1 -1
- package/dist/src/tasks/task-context-assembler.js +2 -2
- package/dist/src/tasks/task-contract-planner.js +2 -2
- package/dist/src/tasks/task-handoff-service.js +1 -1
- package/dist/src/tasks/task-handoff.js +4 -4
- package/dist/src/tasks/task-main-update-decision-service.js +3 -3
- package/dist/src/tasks/task-model-call.js +1 -1
- package/dist/src/tasks/task-research-result.js +4 -4
- package/dist/src/tasks/task-result-delivery-repository.js +1 -1
- package/dist/src/tasks/task-result-delivery-service.js +2 -2
- package/dist/src/tasks/task-run-coordinator.js +3 -3
- package/dist/src/tasks/task-run-dispatcher.js +1 -1
- package/dist/src/tui/backends/embedded-backend.js +11 -11
- package/dist/src/tui/backends/gateway-realtime-backend.js +2 -2
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/tui-commands.js +5 -5
- package/dist/src/tui/tui-picker-overlay.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +3 -3
- package/dist/src/tui/tui.js +4 -4
- package/dist/src/tunnel/gateway-lifecycle.js +1 -1
- package/dist/src/user-context/access-policy.js +2 -2
- package/dist/src/user-model/bootstrap.js +1 -1
- package/dist/src/user-model/capture/executor.js +1 -1
- package/dist/src/user-model/index.js +2 -2
- package/dist/src/user-model/usage-policy.js +1 -1
- package/dist/src/voice/realtime/memory-context.js +5 -5
- package/dist/src/voice/realtime/omniRoute.js +1 -1
- package/dist/src/voice/realtime/runtime.js +4 -4
- package/dist/src/voice/stt/index.js +2 -2
- package/dist/src/voice/stt/preflight.js +1 -1
- package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
- package/dist/src/voice/stt/providers/bailian-plan-transcription.js +1 -1
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
- package/dist/src/voice/stt/transcribe-core.js +1 -1
- package/dist/src/voice/tts/index.js +3 -3
- package/dist/src/voice/tts/merge-config.js +1 -1
- package/dist/src/voice/tts/payload.js +1 -1
- package/dist/src/voice/tts/providers/bailian-plan-speech.js +1 -1
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
- package/dist/src/voice/tts/speak-core.js +1 -1
- package/dist/src/work-discovery/service.js +7 -7
- package/package.json +2 -2
- package/skills/tools/configure-xopc/SKILL.md +2 -2
- package/skills/tools/configure-xopc/references/phone/acceptance.md +3 -2
- package/skills/tools/configure-xopc/references/phone/dependencies.md +18 -2
- package/skills/tools/configure-xopc/references/phone/harmonyos.md +16 -0
- package/skills/tools/configure-xopc/references/phone/overview.md +2 -2
- package/skills/tools/configure-xopc/references/scene-index.md +2 -2
- package/dist/gateway/static/root/assets/apps-page-BrnAMjXr.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-DM67xMcR.js +0 -9
- package/dist/gateway/static/root/assets/capabilities-page-DOMoAom0.js +0 -2
- package/dist/gateway/static/root/assets/capability-links-DzQWK1Fh.js +0 -1
- package/dist/gateway/static/root/assets/chat-page-DQNLsOad.js +0 -72
- package/dist/gateway/static/root/assets/computer-settings-page-C-7YLU9l.js +0 -1
- package/dist/gateway/static/root/assets/connected-providers-grid-DziNfbFz.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-CcG3V3OB.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-eEZgUEdH.js +0 -1
- package/dist/gateway/static/root/assets/index-BinHjymm.js +0 -11
- package/dist/gateway/static/root/assets/index-Cz-VjTNd.css +0 -1
- package/dist/gateway/static/root/assets/install-connector-dialog-xHNBuSj0.js +0 -1
- package/dist/gateway/static/root/assets/list-tree-B0OMswgM.js +0 -1
- package/dist/gateway/static/root/assets/messages-9OwWjlww.js +0 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-DOG9mCzE.js +0 -1
- package/dist/gateway/static/root/assets/page-header-store-DBeD_mAA.js +0 -1
- package/dist/gateway/static/root/assets/phone-dependencies-card-CM2Mj4rH.js +0 -1
- package/dist/gateway/static/root/assets/phone-model-connection-kJYAiCgI.js +0 -1
- package/dist/gateway/static/root/assets/phone-model-picker-sXs8PpFk.js +0 -1
- package/dist/gateway/static/root/assets/phone-settings-page-ayCImqUb.js +0 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-B4qZ0obG.js +0 -1
- package/dist/gateway/static/root/assets/route-preload-Uhpfz1Jz.js +0 -2
- package/dist/gateway/static/root/assets/session-api-BwcBcvzv.js +0 -1
- package/dist/gateway/static/root/assets/session-channel-icon-SsY70Z6t.js +0 -1
- package/dist/gateway/static/root/assets/session-identity-label-B7sgG1PE.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-SASXxhrN.js +0 -23
- package/dist/gateway/static/root/assets/settings-advanced-gate-iUlbBMZI.js +0 -1
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-Bz_M_rk3.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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-fGFrr4_4.js";import{t as o}from"./messages-9OwWjlww.js";import{t as s}from"./markdown-view-Cnt8oxNg.js";import{t as c}from"./skeleton-BI5TyibZ.js";import{a as l}from"./api-DT_Aly4B.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--K7uiKHL.js";import{t as h}from"./automation-api-ZD1VY9jO.js";import{i as g,n as _}from"./api-BeNB3MkI.js";import{n as v}from"./product-preview-modal-J-9O-eQ2.js";import{t as y}from"./open-route-MyZ2sB9C.js";import{i as b,r as x}from"./automation-result-state-BO5N3gMt.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-
|
|
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-
|
|
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};
|