@xopcai/xopc 0.0.433 → 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/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-BpYGrRXw.js → activity-store-Cwn_CNwl.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DTgOSv6G.js → agent-avatar-dicebear-Cd23LnJJ.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-display-BUH7ljEo.js → agent-avatar-display-ByzM7u9S.js} +2 -2
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-B_FAikHA.js → agent-defaults-settings-panel-B0i37diS.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-DPabZaSE.js → agent-plugin-dialog-XN-tZ-Ox.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-BAPYP1Ka.js → agents-ZDA1OaLv.js} +3 -3
- package/dist/gateway/static/root/assets/{agents-admin-api-CXCAHNPj.js → agents-admin-api-B5lKH_ps.js} +1 -1
- package/dist/gateway/static/root/assets/{api-oIK4hYkJ.js → api-B9fZL-V8.js} +1 -1
- package/dist/gateway/static/root/assets/{api-DMbimMEi.js → api-Djju8qIR.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-BZ3Fy8ZR.js → app-management-settings-panel-IlyzDPJu.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-DsRTj1by.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-Bg1VTieK.js → archive-plugin-4gEvotPr.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-api-CLPsgcQN.js → automation-api-4fVKv9PJ.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-result-state-CKVnR4KG.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-D27Mw66U.js → automation-task-card-DZWhCWJa.js} +3 -3
- package/dist/gateway/static/root/assets/{automations-page-DGNTJ8lN.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-CuwSdCG5.js → binary-plugins-69WyJLNW.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Dtl2BG3t.js → block-editor-DUONDIZR.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automation-inputs-uGK086ag.js → browser-automation-inputs-DL4YPCuN.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-Da_edNNS.js → browser-automations-page-1Aq6XmRs.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-control-api-k3OOX3bS.js → browser-control-api-yjru8E7R.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-C1bSw-Jq.js → browser-settings-page-CvwpT8Um.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-DlHPLld_.js → capabilities-C7lnwKKm.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-CoeuLRt6.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-CtY-bGIi.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-Cn1MWBL_.js → channels-CoQb4HOF.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-BB0biwc7.js → chat-agents-api-BUi_7GRo.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-chart-block-QSvjx4w6.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-Cd51G9eG.js → chat-terminal-dock-BMXJpPuH.js} +1 -1
- package/dist/gateway/static/root/assets/{command-palette-api-CEG10uE-.js → command-palette-api-luUjQPsh.js} +1 -1
- package/dist/gateway/static/root/assets/{composer-payload-handoff-Bogdq9Hy.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-k2rjyjrp.js → connector-service-page-C3msXaBk.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-api-DtvB9Cjm.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-CAankdQw.js → date-picker-Cfjq1hD_.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DjM73fir.js → desktop-pet-ChFn9v-3.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-Rmh-GxHl.js → desktop-pet-settings-DvnVIv25.js} +1 -1
- package/dist/gateway/static/root/assets/{dev-view-store-BgW2Riyk.js → dev-view-store-DQJ61P5L.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-UdzSpNa5.js → device-pairing-wizard-KxaIL-OX.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-Rkw3f7lG.js → directory-picker-path-field-Drv864uE.js} +1 -1
- package/dist/gateway/static/root/assets/{discussion-annotation-sync-Dudoj_Fz.js → discussion-annotation-sync-DfBRkWtw.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DxIGAO23.js → extension-debug-page-DAlBIt_R.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-63KpX6IP.js → extension-iframe-host-Bds-5kY_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-marketplace-api-yXNUkQDA.js → extension-marketplace-api-CZg8nBwW.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-C811A_Ww.js → extension-page-ZTw-oucT.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-C4jLFIgh.js → extension-provider-NKWfjpdP.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-WJSw5MT0.js → extension-settings-page-CT7PPt_q.js} +1 -1
- package/dist/gateway/static/root/assets/{file-preview-surface-zE9AcaHM.js → file-preview-surface-BcLeaSNe.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-D6cc6W6E.js → gateway-config-swr-Cq-ByXL4.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-BSRNLciy.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-Unun5hRL.js → gateway-restart-DdiVzbkL.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-DP-DV-e5.js → gateway-settings-1QUdNwrZ.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-C8g666Ja.js → gateway-startup-retry-PMJi5mX4.js} +1 -1
- package/dist/gateway/static/root/assets/{global-defaults-api-BObi-1ww.js → global-defaults-api-DgzZh3wX.js} +1 -1
- package/dist/gateway/static/root/assets/{home-page-CIcs7Mzy.js → home-page-Chn7YTiD.js} +2 -2
- package/dist/gateway/static/root/assets/{image-generation-api-C2SqYNyD.js → image-generation-api-CjVpsckq.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-C8ezUkOJ.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-BRaY4-wA.js → keyboard-shortcuts-settings-BylFJeGu.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-BZtVcjF3.js → local-app-workbench-page-B3MSSFsr.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-MqP4EnJm.js → local-apps-page-BeV86rMJ.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-DTq9776a.js → local-session-drafts-jgw8UGsO.js} +2 -2
- package/dist/gateway/static/root/assets/{locale-store-B6OrWgY1.js → locale-store-CAZaC05J.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-hkHBjblX.js → logs-page-BMmSsUP5.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-DoX4eTM3.js → management-settings-Bu7T8ewk.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-DrhYZSmg.js → markdown-view-BatP4qeK.js} +1 -1
- package/dist/gateway/static/root/assets/{mcp-conversation-setup-page-BEp5E6TD.js → mcp-conversation-setup-page-rROtr0UN.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-D987i9Gc.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-DXm4NS1_.js → model-selector-raBRBkN_.js} +1 -1
- package/dist/gateway/static/root/assets/{models-hub-cache-BLcha5rx.js → models-hub-cache-CzC9y3D0.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-panel-Cl851ivY.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-Ddsf7FVg.js → notes-api-zXpV6UXu.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-DSwA1MU1.js → notes-page-CjYH9Kle.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-api-CMmu4DzH.js → oauth-api-DmxSaxM1.js} +1 -1
- package/dist/gateway/static/root/assets/{oauth-provider-connect-BkhnftBq.js → oauth-provider-connect-D4Gfs-Ba.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-capture-button-urhQBRaN.js → page-context-capture-button-Mig3d0UX.js} +1 -1
- package/dist/gateway/static/root/assets/{page-context-draft-BuNUerth.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-B49ueeZO.js → personal-avatar-DLa-CpaK.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-f05ceuFn.js → personal-page-l9_vYfdJ.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-settings-panel-DLQxzPYr.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-DbqktZbO.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-BZWqG7pu.js → preference-select-fields-BVP3MhGK.js} +1 -1
- package/dist/gateway/static/root/assets/{product-automation-feedback-DDQUsag7.js → product-automation-feedback-DbJvv92z.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-BkRP_HmA.js → product-open-page-RImqlhCD.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-o2Y3VNE7.js → product-preview-content-DxSqrKsg.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-modal-7Ohx-7OR.js → product-preview-modal-Cw8Q8Uom.js} +2 -2
- package/dist/gateway/static/root/assets/{project-detail-page-B2RsSHya.js → project-detail-page-BbyV8EiG.js} +1 -1
- package/dist/gateway/static/root/assets/{project-understanding-BIMouiYX.js → project-understanding-BMKcoUW5.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-C9R5u3tF.js → projects-page-CFsABLvs.js} +1 -1
- package/dist/gateway/static/root/assets/{providers-api-BOCkRZ7X.js → providers-api-CAeXbJNF.js} +1 -1
- package/dist/gateway/static/root/assets/{recording-upload-C6muEHEO.js → recording-upload-CfpllTe5.js} +1 -1
- package/dist/gateway/static/root/assets/{registry-api-Bl2guMRg.js → registry-api-fLOqFyrz.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-BceSMbCs.js → remote-access-hub-BvKOxy0L.js} +1 -1
- package/dist/gateway/static/root/assets/{resource-unavailable-CUNbPkdj.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-LopLjgvu.js → runtime-tools-api-D0Nrvuqv.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-9HIPerDP.js → runtime-tools-settings-panel-CA27XgL2.js} +1 -1
- package/dist/gateway/static/root/assets/{service-recommendation-list-CoMI6MB1.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-BT0GdXdS.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-CEorDLUp.js → settings-advanced-section-D-llwfSj.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-mode-store-C2LZqBES.js → settings-mode-store-BspMKc9N.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-C_Np_6qZ.js → settings-page-XJXcnE1_.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-header-BAN34UQi.js → settings-page-header-LuOJvqNa.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-B5TVFBV2.js → settings-page-layout-CduQ8w4a.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-interaction-page-BYvTJW3_.js → setup-interaction-page-ujpPGl84.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-UY2dH-sK.js → setup-status-panel-BN2aCJUN.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-BMcXyzr2.js → share-link-dialog-CTATUaa4.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-UQ6eUM2_.js → share-preview-page-Dq0J3VgS.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-DOeDN6Tm.js → shares-api-zegE8pSE.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-W8XhuAoL.js → shares-settings-DXpvsRXq.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-Do_c0d9n.js → skill-api-DCL1EN7f.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-list-api-DpHaXI2l.js → skill-list-api-Bv0mmHbu.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-DDRd9IJ2.js → skill-reload-api-DPZbadiO.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-CaeJVKhO.js → skills-page-DMC7Gaku.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-DYWlWPJL.js → system-settings-panel-BYFUhlqG.js} +1 -1
- package/dist/gateway/static/root/assets/{task-detail-page-De0qD7xw.js → task-detail-page-DvX9JoEd.js} +3 -3
- package/dist/gateway/static/root/assets/{task-result-evidence-CICR5K1t.js → task-result-evidence-Bxm8-H0B.js} +1 -1
- package/dist/gateway/static/root/assets/{terminal-panel-store-BbWUcQe7.js → terminal-panel-store-Djf9l2qZ.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-TkG5mo0p.js → theme-store-8GFVtotZ.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-CYXEy4EG.js → tracing-settings-page-oWW3SBZ4.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-DquDm6U2.js → tunnel-api-D-mEsSGF.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-activity-store-Ot3wZ3oQ.js → understanding-activity-store-CvDjsd0I.js} +1 -1
- package/dist/gateway/static/root/assets/{understanding-refresh-store-C5KYFMaC.js → understanding-refresh-store-DzOZJm7A.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-1xFO4smo.js → usage-page-z-o6Uuev.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-HL8XRNR8.js → use-autosave-BVYS8UoK.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-XRlQBdNF.js → use-composer-attachments-lecOV2q5.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-CW956CXS.js → use-file-preview-expanded-nd_CuFsd.js} +2 -2
- package/dist/gateway/static/root/assets/{use-personal-profile-202s6tJt.js → use-personal-profile-CQi2ZCxV.js} +1 -1
- package/dist/gateway/static/root/assets/{use-workspace-tree-CjydkmH1.js → use-workspace-tree-BiaddkzX.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-OGPXx3pe.js → user-model-page-Bks1n0Nj.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-CxFu4MEA.js → voice-api-key-field-BbW8NFeZ.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-MHe5Pn-A.js → voice-config-api-jSMzZWWy.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-input-shortcut-events-B9xc1oK8.js → voice-input-shortcut-events-_SgYmx7X.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-CVEcB6Pe.js → voice-transcribe-api-BJCfiRFU.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-C-JoAg2D.js → work-discovery-overlay-DSTSNyU7.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-page-B5Kx29Ru.js → work-discovery-page-Dd_QJJvb.js} +1 -1
- package/dist/gateway/static/root/assets/{working-directory-picker-modal-DGp9cNzH.js → working-directory-picker-modal-q39BUcJ6.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-api-HBXn8pL9.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-3cpwSG2w.js → workspace-file-preview-dialog-BUGNT765.js} +1 -1
- package/dist/gateway/static/root/assets/{workspace-open-location-menu-D0VOFvuP.js → workspace-open-location-menu-bMSvmQW7.js} +1 -1
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-BkdW2p3v.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 +1 -1
- package/dist/src/agent/background-review/run-background-review.js +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.d.ts +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.js +2 -2
- package/dist/src/agent/embedded/run-for-session.js +23 -8
- package/dist/src/agent/embedded/run-turn.js +30 -7
- 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 +26 -11
- 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/external-tools/cliProvider.d.ts +10 -9
- package/dist/src/agent/external-tools/cliProvider.js +26 -6
- 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 +2 -2
- package/dist/src/agent/external-tools/gateway-tools.js +26 -46
- 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/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/inbound/turn-dispatcher.d.ts +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.js +3 -2
- package/dist/src/agent/orchestration/llm-turn-retry.d.ts +1 -1
- package/dist/src/agent/orchestration/llm-turn-retry.js +13 -8
- 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/sections/tooling.js +1 -1
- package/dist/src/agent/service.js +1 -1
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- 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/delegation-policy.js +1 -0
- package/dist/src/agent/tools/factory.js +4 -2
- package/dist/src/agent/tools/personal-read-tool.js +1 -1
- package/dist/src/agent/tools/phone-use-tool.js +2 -2
- package/dist/src/agent/tools/web.js +22 -3
- package/dist/src/agent/tools/xopc-use-tool.js +2 -2
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-catalog/repository.js +1 -1
- package/dist/src/agent-matching/service.js +2 -2
- package/dist/src/automations/api/routes.js +2 -2
- package/dist/src/automations/capabilities/drafts.js +1 -1
- package/dist/src/automations/capabilities/write.js +1 -1
- package/dist/src/automations/configuration-conversation.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.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/model-adapter.d.ts +58 -0
- package/dist/src/computer/model-adapter.js +112 -66
- 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 +102 -34
- package/dist/src/computer/semantic-actions.js +4 -0
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/schema.d.ts +6 -0
- package/dist/src/execution-environments/local-worktree-manager.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 +1 -1
- package/dist/src/extensions/agent-plugins/validation.d.ts +1 -0
- package/dist/src/extensions/agent-plugins/validation.js +3 -2
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/notes.js +2 -2
- package/dist/src/gateway/hono/routes/phone-dependencies.js +26 -5
- package/dist/src/gateway/hono/routes/phone-setup.js +43 -17
- package/dist/src/gateway/hono/routes/phone.js +22 -7
- package/dist/src/gateway/hono/routes/projects.js +2 -2
- package/dist/src/gateway/hono/routes/session-command-handler.js +9 -0
- 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 +23 -1
- package/dist/src/gateway/hono/routes/sessions.js +4 -0
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +5 -4
- package/dist/src/gateway/service/config-coordinator.d.ts +6 -0
- package/dist/src/gateway/service/session-input-coordinator.d.ts +6 -3
- package/dist/src/gateway/service/session-input-coordinator.js +47 -6
- package/dist/src/gateway/service.d.ts +1 -0
- package/dist/src/gateway/service.js +4 -1
- package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
- package/dist/src/imports/importService.js +1 -1
- package/dist/src/local-apps/service.js +1 -1
- package/dist/src/personal-agent/capability-service.js +1 -1
- 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-service.js +2 -2
- 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 +5 -3
- package/dist/src/phone/repository.js +2 -1
- package/dist/src/phone/runtime.d.ts +10 -4
- package/dist/src/phone/runtime.js +151 -85
- 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/runtime-tools/archive.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 +20 -2
- 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/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/tui/backends/embedded-backend.js +1 -1
- package/dist/src/voice/realtime/persona-context.js +1 -1
- 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-D-n71lO1.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-DWDWy-SG.js +0 -9
- package/dist/gateway/static/root/assets/capabilities-page-IcwojmJK.js +0 -2
- package/dist/gateway/static/root/assets/capability-links-DzQWK1Fh.js +0 -1
- package/dist/gateway/static/root/assets/chat-page-CwP4OMdW.js +0 -72
- package/dist/gateway/static/root/assets/computer-settings-page-DyAlOzqY.js +0 -1
- package/dist/gateway/static/root/assets/connected-providers-grid-D0lXg22c.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-DI_Q0CKz.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BFeFfApQ.js +0 -1
- package/dist/gateway/static/root/assets/index-Cz-VjTNd.css +0 -1
- package/dist/gateway/static/root/assets/index-D1_PUrJf.js +0 -11
- package/dist/gateway/static/root/assets/install-connector-dialog-Cn4nRSyt.js +0 -1
- package/dist/gateway/static/root/assets/list-tree-B0OMswgM.js +0 -1
- package/dist/gateway/static/root/assets/messages-jwdBhfL9.js +0 -3
- package/dist/gateway/static/root/assets/note-image-lightbox-DGYRJS03.js +0 -1
- package/dist/gateway/static/root/assets/page-header-store-CEn_kPsn.js +0 -1
- package/dist/gateway/static/root/assets/phone-dependencies-card-DjmC1Z5j.js +0 -1
- package/dist/gateway/static/root/assets/phone-model-connection-BRjHSgYn.js +0 -1
- package/dist/gateway/static/root/assets/phone-model-picker-DgIiWLhR.js +0 -1
- package/dist/gateway/static/root/assets/phone-settings-page-DCZGCL_z.js +0 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-D4tGKip4.js +0 -1
- package/dist/gateway/static/root/assets/route-preload-C1BKDjnu.js +0 -2
- package/dist/gateway/static/root/assets/session-api-Bfmlmn9F.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-X4UHOjjO.js +0 -25
- package/dist/gateway/static/root/assets/settings-advanced-gate-Dk9c-Z5e.js +0 -1
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-msZa42fU.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { init_agent_scope, resolveAgentProfileDir } from "../../agent/agent-scope.js";
|
|
2
|
-
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
3
2
|
import { DEFAULT_SOUL_FILENAME } from "../../agent/context/workspace.js";
|
|
3
|
+
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
4
4
|
import { loadProfileBootstrapFiles } from "../../agent/bootstrap/load-bootstrap-files.js";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { statSync } from "node:fs";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xopcai/xopc",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.434",
|
|
4
|
+
"description": "An open-source AI assistant for work and everyday life. Remembers context and helps you get things done. Local-first, on a computer you choose.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
7
7
|
"types": "dist/src/index.d.ts",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: configure-xopc
|
|
3
|
-
description: Guide xopc App configuration, connection, repair, and verification, including Browser Use, Phone Use, local Android, and Alibaba Cloud phones. Use for App setup requests or missing capability recovery.
|
|
3
|
+
description: Guide xopc App configuration, connection, repair, and verification, including Browser Use, Phone Use, local Android, HarmonyOS, and Alibaba Cloud phones. Use for App setup requests or missing capability recovery.
|
|
4
4
|
metadata:
|
|
5
5
|
i18n:
|
|
6
6
|
en:
|
|
@@ -41,7 +41,7 @@ Keep the user-facing explanation focused on one next action; avoid
|
|
|
41
41
|
exposing setup IDs, internal state keys, or narrating every document/tool read.
|
|
42
42
|
|
|
43
43
|
Read [the scene index](references/scene-index.md) when the target is unclear. For Browser Use,
|
|
44
|
-
read [Browser overview](references/browser/overview.md) directly. For Phone Use / Android / 云手机,
|
|
44
|
+
read [Browser overview](references/browser/overview.md) directly. For Phone Use / Android / HarmonyOS / 鸿蒙 / 云手机,
|
|
45
45
|
read [Phone overview](references/phone/overview.md) directly. Load only the selected branch;
|
|
46
46
|
read matching troubleshooting guidance on failure and acceptance guidance before testing.
|
|
47
47
|
Other configuration areas currently use their existing settings; do not invent setup tools.
|
|
@@ -6,8 +6,9 @@ non-stale attempt is approved. Otherwise
|
|
|
6
6
|
explain the remaining owner action. Read tool_manual phone_use; discover that exact tool only
|
|
7
7
|
if not already declared. Use only the attempt's selected device, goal, completion and budget.
|
|
8
8
|
|
|
9
|
-
1. phone_use open {deviceId:<attempt.deviceId>,mode:"control",appPackage
|
|
10
|
-
|
|
9
|
+
1. phone_use open {deviceId:<attempt.deviceId>,mode:"control",appPackage:<attempt.completion.appPackage>}.
|
|
10
|
+
HarmonyOS uses com.huawei.hmos.settings and the real model opens About phone to read HarmonyOS version.
|
|
11
|
+
For Android, the host opens About phone using Android’s standard Settings intent, avoiding stale subpages.
|
|
11
12
|
The real model must still navigate to Android version details and produce changed native UI evidence.
|
|
12
13
|
2. observe. If login, password, verification code or sensitive business screen appears, stop
|
|
13
14
|
and ask the user to prepare an appropriate screen; do not type into it.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Phone dependencies
|
|
2
2
|
|
|
3
3
|
Inspect readiness dependencies before asking the user to install anything. Use phone_setup install_dependency
|
|
4
|
-
{setupId,kind:"adb"|"scrcpy",expectedRevision,repair?:true} for missing or damaged dependencies.
|
|
5
|
-
The product downloads pinned
|
|
4
|
+
{setupId,kind:"adb"|"scrcpy"|"hdc"|"java"|"hoscrcpy"|"harmonyos",expectedRevision,repair?:true} for missing or damaged dependencies.
|
|
5
|
+
The product downloads pinned assets with checksum/version validation and verifies them. Explain readiness.distribution and the download size before installation. Installation
|
|
6
6
|
happens on the Gateway host, not necessarily the computer displaying this chat.
|
|
7
7
|
|
|
8
8
|
Local USB/emulator connections require compatible Android Platform Tools (ADB). A cloud
|
|
@@ -16,3 +16,19 @@ that policy and use existing/runtime controls; do not shell-install around it. D
|
|
|
16
16
|
use a configured proxy or verified offline bundle in Runtime Tools. Do not replace system
|
|
17
17
|
ADB keys, kill the shared ADB server, install APKs, switch IMEs, disable security protections,
|
|
18
18
|
or claim the dependency is ready until a fresh host check passes.
|
|
19
|
+
|
|
20
|
+
For USB HarmonyOS choose source harmonyos. kind harmonyos installs all missing HDC, Java and
|
|
21
|
+
HOScrcpy components in one bounded action and rechecks each before continuing. HDC provides
|
|
22
|
+
screenshots and basic actions; Java 17+ (including javac) and compatible HOScrcpy add live video.
|
|
23
|
+
No DevEco Studio is needed. Installations live in xopc user storage and do not modify system PATH
|
|
24
|
+
or JAVA_HOME. HDC 3.2.0c is obtained as two host-specific raw files from the pinned third-party hdw2 2.3.10
|
|
25
|
+
distribution (about 6 MB), with a fixed size and SHA-256 for each file. Only HDC and its USB
|
|
26
|
+
library are downloaded. Do not fetch an SDK, an npm archive, other platforms or run npm scripts.
|
|
27
|
+
Both CDN candidates serve the same pinned bytes; failure never falls back to a full SDK. Java uses pinned Amazon Corretto.
|
|
28
|
+
HOScrcpy uses the verified 1.0.18-beta SDK from third-party @nszzj/dsh-hos-scrcpy 3.0.2; its
|
|
29
|
+
provenance and notices are retained. Do not describe that archive as an official Huawei download.
|
|
30
|
+
A partial failure preserves completed components; retry installs only missing ones. Offline bundles
|
|
31
|
+
must use the exact catalog filenames and SHA-256. For HDC supply both raw files from its files
|
|
32
|
+
list (flat cache filenames), not the former SDK archive. Dependency readiness proves host
|
|
33
|
+
preparation only; no phone is accessed by detection/installation. Native video still needs device
|
|
34
|
+
compatibility verification after the user connects and authorizes the intended phone.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# HarmonyOS USB setup
|
|
2
|
+
|
|
3
|
+
Choose source harmonyos. Inspect dependencies and explain distribution and download size;
|
|
4
|
+
use install_dependency {setupId,kind:"harmonyos",expectedRevision} to install missing host tools
|
|
5
|
+
without DevEco Studio. Existing healthy components are reused. Recheck after a failed operation;
|
|
6
|
+
completed components remain installed. See dependencies.md for sources, proxy and offline bundles.
|
|
7
|
+
|
|
8
|
+
Ask the user to connect and unlock the intended phone on the Gateway computer, enable USB debugging
|
|
9
|
+
and accept the device authorization. Inspect localDiscovery; only register a discovered online serial
|
|
10
|
+
with register_local {setupId,serial,expectedRevision,name?}. Registration keeps an existing device's
|
|
11
|
+
policy and grants new phones access to HarmonyOS Settings only. Do not widen app access.
|
|
12
|
+
|
|
13
|
+
A ready dependency is not proof of a connected phone or working video. Explain screenshot/model
|
|
14
|
+
sharing and the Settings-only test, then follow acceptance.md if the user wants verification.
|
|
15
|
+
Typing remains manual and gestures execute on release. Do not access the phone merely to install
|
|
16
|
+
or detect dependencies, especially when the user needs to keep using it.
|
|
@@ -5,10 +5,10 @@ inspect and start. Carry out missing configuration through tools; use ordinary c
|
|
|
5
5
|
for guidance, choices, progress and results. For human-only work link the exact host interactionPath to the bounded secure product modal.
|
|
6
6
|
Reuse healthy registrations, model configuration and the user's prior device/source choices.
|
|
7
7
|
|
|
8
|
-
Use source {setupId,source:"local"|"aliyun",expectedRevision} after identifying the desired
|
|
8
|
+
Use source {setupId,source:"local"|"aliyun"|"harmonyos",expectedRevision} after identifying the desired
|
|
9
9
|
route. Ask only if it is unclear. Use configure {setupId,enabled:true,expectedRevision} when
|
|
10
10
|
Phone Use is disabled. This does not enable a denied Agent tool or widen device app access.
|
|
11
|
-
Read models.md for a missing model, dependencies.md for missing software, then local.md or
|
|
11
|
+
Read models.md for a missing model, dependencies.md for missing software, then local.md, harmonyos.md or
|
|
12
12
|
aliyun.md for the selected route. scrcpy is optional for basic screenshot/navigation testing.
|
|
13
13
|
|
|
14
14
|
The Phone action model is separate from chat. A registered/enabled device is not yet a proven
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
- Browser / Chrome / browser extension / 浏览器 / 浏览器控制: read browser/overview.md.
|
|
4
4
|
The complete guided path currently supports the local Chrome extension.
|
|
5
|
-
- Phone / Android / USB / ADB / 云手机 / 手机控制: read phone/overview.md.
|
|
6
|
-
Supports local Android and Alibaba Cloud ADB; purchase stays in the official console.
|
|
5
|
+
- Phone / Android / HarmonyOS / 鸿蒙 / USB / ADB / 云手机 / 手机控制: read phone/overview.md.
|
|
6
|
+
Supports local Android, USB HarmonyOS and Alibaba Cloud ADB; purchase stays in the official console.
|
|
7
7
|
- Computer, models, voice, channels and other settings: explain that their unified
|
|
8
8
|
setup scene is not available yet. Use the existing product settings/manuals and their real
|
|
9
9
|
diagnostics. Never claim these areas are supported by browser_setup.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{l as i,m as a,t as o,u as s}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{l as c,n as l}from"./locale-store-B6OrWgY1.js";import{t as u}from"./messages-jwdBhfL9.js";import{a as d,i as f,o as p,r as m,s as h,t as g}from"./dist-BGTk37IG.js";import{t as _}from"./arrow-left-D880xG-P.js";import{t as v}from"./box-DvYoGszj.js";import{n as y,t as b}from"./extension-paths-DvuaZJuy.js";import{t as x}from"./ellipsis-0k4rZLoy.js";import{t as S}from"./external-link-DjqjBmc3.js";import{t as C}from"./loader-circle-CifKLtgG.js";import{t as w}from"./markdown-view-DrhYZSmg.js";import{t as T}from"./package-wATCyihJ.js";import{t as E}from"./plus-Q2yW6OE7.js";import{t as D}from"./settings-uiTATseT.js";import{t as O}from"./shield-check-BU58siTV.js";import{t as k}from"./trash-2-DusmjVPV.js";import{t as A}from"./triangle-alert-2JXFNNKU.js";import{t as j}from"./x-B_N4OPjy.js";import{t as M}from"./cn-0WouolD0.js";import{t as N}from"./skeleton-BI5TyibZ.js";import{i as P,o as F,r as I,s as L}from"./extension-provider-C4jLFIgh.js";import{a as R,i as z}from"./vendor-swr-CdRzEUwF.js";import{o as B}from"./gateway-realtime-BSRNLciy.js";import{t as V}from"./button-Cc4hUNTt.js";import{n as H}from"./interaction-BdhHBbYa.js";import{t as ee}from"./page-tabs-oeTY7z3_.js";import{t as U}from"./page-header-store-CEn_kPsn.js";import{r as W}from"./settings-form-draft-Dy10ldo8.js";import{l as G,m as te,o as K,r as q,t as ne}from"./dist-ZrL34Ps4.js";import{r as re,t as ie}from"./agent-plugin-dialog-DPabZaSE.js";import{n as J,t as Y}from"./capability-links-DzQWK1Fh.js";import{t as X}from"./capability-icon-DVoZxEgW.js";import{a as Z,i as ae,n as oe,r as se,t as ce}from"./extension-marketplace-api-yXNUkQDA.js";import{n as le,t as ue}from"./capability-header-actions-BxMYfQ8y.js";import{n as de,r as fe,t as pe}from"./plugin-presentation-CO5BFDGW.js";var me=n(),he=`grid auto-rows-fr grid-cols-[repeat(auto-fill,minmax(min(100%,18rem),1fr))] items-stretch gap-4`,ge=`relative h-full min-w-0 rounded-xl border border-edge bg-surface-panel p-4 transition-colors hover:border-edge-strong hover:bg-surface-hover/30`,_e=`absolute inset-0 cursor-pointer rounded-xl focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent`,Q=e(t(),1);function ve(e){return e===`builtin`||e===`user`?e:`marketplace`}var $=r();function ye(e,t){let n=e.find(e=>e.id===t||e.pluginId===t||e.provenance?.packageName===t);return n?n.source===`bundled`?`bundled`:`user`:`absent`}var be={debounced:``,detailPkg:null,quickInstallPkg:null,rowBusy:null,actionError:null,restartHint:null};function xe({className:e,query:t}){let n=s(),r=i(),a=l(e=>e.language),o=u(a).extensionsPage,d=c(e=>!!e.conversationId),f=I(),{mutate:p}=R(),[m,h]=(0,Q.useReducer)(W,be),{debounced:g,detailPkg:_,quickInstallPkg:v,rowBusy:b,actionError:x,restartHint:S}=m,w=d?`marketplace-${g}`:null;(0,Q.useEffect)(()=>{let e=window.setTimeout(()=>h({type:`patch`,patch:{debounced:t.trim()}}),300);return()=>window.clearTimeout(e)},[t]);let{data:E,isLoading:D,error:O}=z(w,()=>ce(g),{revalidateOnFocus:!1}),A=(0,Q.useCallback)(()=>{p(`gateway-extensions-list`),B()},[p]),j=(0,Q.useCallback)(async(e,t)=>{h({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let n=await se({name:e,overwrite:t});A(),n.requiresGatewayRestart&&h({type:`patch`,patch:{restartHint:o.marketplaceRestartHint}})}catch(e){throw h({type:`patch`,patch:{actionError:e instanceof Error?e.message:o.marketplaceInstallFailed}}),e}finally{h({type:`patch`,patch:{rowBusy:null}})}},[o.marketplaceInstallFailed,o.marketplaceRestartHint,A]),P=(0,Q.useCallback)(async e=>{h({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let t=await Z(e);A(),t.requiresGatewayRestart&&h({type:`patch`,patch:{restartHint:o.marketplaceRestartHint}})}catch(e){throw h({type:`patch`,patch:{actionError:e instanceof Error?e.message:o.marketplaceUninstallFailed}}),e}finally{h({type:`patch`,patch:{rowBusy:null}})}},[o.marketplaceRestartHint,o.marketplaceUninstallFailed,A]),F=E??[];return(0,$.jsxs)(`div`,{className:M(`flex flex-col gap-4`,e),children:[O?(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:O instanceof Error?O.message:o.marketplaceLoadFailed}):null,x?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:x}):null,S?(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:S}):null,D&&!E?(0,$.jsx)(`ul`,{className:he,"aria-label":o.marketplaceLoading,children:[0,1,2,3,4,5].map(e=>(0,$.jsxs)(`li`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsx)(N,{className:`size-10 shrink-0 rounded-xl`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2`,children:[(0,$.jsx)(N,{className:`h-5 w-full`}),(0,$.jsx)(N,{className:`h-3 w-2/3`})]}),(0,$.jsx)(N,{className:`h-9 w-16 shrink-0 rounded-lg`})]}),(0,$.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,$.jsx)(N,{className:`h-4 w-full`}),(0,$.jsx)(N,{className:`h-4 w-full`}),(0,$.jsx)(N,{className:`h-4 w-2/3`})]})]},e))}):(0,$.jsx)(`ul`,{className:he,children:F.length===0?(0,$.jsx)(`li`,{className:`col-span-full text-sm text-fg-muted`,children:o.marketplaceEmpty}):F.map(e=>{let t=ye(f,e.id),i=b===e.id,s=f.find(t=>t.pluginId===e.id||t.provenance?.packageName===e.id),c=e.localizations?.[a.startsWith(`zh`)?`zh-CN`:`en`],l=c?.displayName??e.name,u=c?.description??e.description;return(0,$.jsxs)(`li`,{className:ge,children:[(0,$.jsx)(`button`,{type:`button`,"aria-label":`${l}, ${o.marketplaceDetailTitle}`,onClick:()=>s?.pluginId?n(Y(s.pluginId,`installed`,!1,r.pathname+r.search)):h({type:`patch`,patch:{detailPkg:e.id}}),className:_e}),(0,$.jsxs)(`div`,{className:`pointer-events-none relative flex items-start gap-3`,children:[(0,$.jsx)(X,{iconUrl:e.branding?.iconUrl,fallback:T}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start gap-1.5`,children:[(0,$.jsx)(`h3`,{className:`line-clamp-2 break-words font-semibold leading-snug text-fg`,title:l,children:l}),e.verified?(0,$.jsx)(y,{className:`mt-0.5 size-3.5 shrink-0 text-emerald-600 dark:text-emerald-400`,strokeWidth:1.75,"aria-label":`Verified`}):null]}),(0,$.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-fg-subtle`,children:[e.version?(0,$.jsxs)(`span`,{children:[`v`,e.version]}):null,t===`user`?(0,$.jsx)(`span`,{className:s&&fe(s)?`text-amber-700 dark:text-amber-400`:`text-fg-muted`,children:s&&fe(s)?a.startsWith(`zh`)?`需要授权`:`Authorization required`:o.marketplaceInstalled}):null]})]}),(0,$.jsx)(`div`,{role:`group`,className:`pointer-events-auto relative z-10 flex max-w-[45%] shrink-0 items-start`,children:t===`bundled`?(0,$.jsx)(`span`,{className:`rounded-md bg-surface-hover px-2 py-1 text-[11px] font-medium text-fg-muted`,children:o.marketplaceBuiltin}):t===`user`?(0,$.jsx)($.Fragment,{children:e.packageType===`plugin`?(0,$.jsx)(`button`,{type:`button`,onClick:()=>s?.pluginId&&pe(s)?n(J(l,a.startsWith(`zh`))):s?.pluginId?n(Y(s.pluginId,`installed`,fe(s),r.pathname+r.search)):h({type:`patch`,patch:{detailPkg:e.id,quickInstallPkg:null}}),className:M(`inline-flex items-center justify-center rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-colors active:scale-[0.98] active:bg-surface-hover/80`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:s&&fe(s)?a.startsWith(`zh`)?`去授权`:`Connect account`:s&&pe(s)?a.startsWith(`zh`)?`开始使用`:`Start using`:a.startsWith(`zh`)?`管理插件`:`Manage plugin`}):(0,$.jsxs)(`button`,{type:`button`,disabled:i,onClick:()=>{window.confirm(o.marketplaceUninstallConfirm)&&P(e.id).catch(()=>{})},className:M(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-colors active:scale-[0.98] active:bg-surface-hover/80`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[i?(0,$.jsx)(C,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(k,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0}),o.marketplaceUninstall]})}):(0,$.jsx)(`button`,{type:`button`,onClick:()=>h({type:`patch`,patch:(e.packageType,{detailPkg:e.id,quickInstallPkg:null})}),className:M(`inline-flex min-w-16 items-center justify-center rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-[transform,background-color] active:scale-[0.98]`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:e.packageType===`plugin`?a.startsWith(`zh`)?`安装`:`Install`:o.marketplaceReview})})]}),u?(0,$.jsx)(`p`,{className:`pointer-events-none relative mt-3 line-clamp-3 text-sm leading-relaxed text-fg-muted`,children:u}):null,(e.categories?.length??0)>0?(0,$.jsx)(`div`,{className:`pointer-events-none relative mt-3 flex flex-wrap gap-1.5`,children:e.categories?.map(e=>(0,$.jsx)(`span`,{className:`max-w-full truncate rounded-md border border-edge px-2 py-0.5 text-xs text-fg-muted`,children:e},e))}):null]},e.id)})}),_?(0,$.jsx)(Se,{packageName:_,autoInstall:v===_,copy:o,extensions:f,onClose:()=>h({type:`patch`,patch:{detailPkg:null,quickInstallPkg:null}}),onInstall:j,onUninstall:P}):null]})}function Se(e){let t=(0,me.c)(99),{packageName:n,autoInstall:r,copy:i,extensions:a,onClose:s,onInstall:u,onUninstall:f}=e,[v,y]=(0,Q.useState)(!1),b=l(Oe),[x,S]=(0,Q.useState)(!1),T=c(De)?`ext-mp-detail-${n}`:null,E;t[0]===n?E=t[1]:(E=async()=>oe(n),t[0]=n,t[1]=E);let D;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(D={revalidateOnFocus:!1},t[2]=D):D=t[2];let{data:P,error:F,isLoading:I}=z(T,E,D),L;t[3]!==a||t[4]!==n?(L=ye(a,n),t[3]=a,t[4]=n,t[5]=L):L=t[5];let R=L,B=R===`user`,V=P?.manifest?.permissions,H,ee,U,W,G,te,K,q,ne,J,Y,X;if(t[6]!==r||t[7]!==i||t[8]!==P||t[9]!==F||t[10]!==a||t[11]!==R||t[12]!==I||t[13]!==b||t[14]!==s||t[15]!==n||t[16]!==V||t[17]!==x){te=Symbol.for(`react.early_return_sentinel`);bb0:{let e=V&&typeof V==`object`&&!Array.isArray(V)?Object.entries(V):[],o;t[30]!==i||t[31]!==P?(o=P?.readme?.trim()||(P?.description?.trim()?`### ${P.name}\n\n${P.description}`:`*${i.marketplaceNoReadme}*`),t[30]=i,t[31]=P,t[32]=o):o=t[32];let c=o;if(P?.format===`agent-plugin`){let e;if(t[33]!==P||t[34]!==a||t[35]!==n){let r;t[37]!==P||t[38]!==n?(r=e=>e.provenance?.packageName===n||e.pluginId===P.manifest?.name,t[37]=P,t[38]=n,t[39]=r):r=t[39],e=a.find(r),t[33]=P,t[34]=a,t[35]=n,t[36]=e}else e=t[36];let i=`store:${n}`,o;t[40]!==r||t[41]!==P||t[42]!==s||t[43]!==e||t[44]!==i?(o=(0,$.jsx)(ie,{extension:e,initialSource:i,marketplace:P,autoInstall:r,onClose:s}),t[40]=r,t[41]=P,t[42]=s,t[43]=e,t[44]=i,t[45]=o):o=t[45],te=o;break bb0}U=g,W=!0,t[46]===s?G=t[47]:(G=e=>!e&&s(),t[46]=s,t[47]=G),ee=p,t[48]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,$.jsx)(d,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),t[48]=X):X=t[48],H=m,ne=`xopc-dialog-content fixed left-1/2 top-1/2 z-[131] flex h-[min(44rem,calc(100vh-1.5rem))] 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`,J=Ee;let l;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(_,{className:`size-5`}),t[49]=l):l=t[49];let u;t[50]!==i.detailBack||t[51]!==s?(u=(0,$.jsx)(`button`,{type:`button`,onClick:s,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":i.detailBack,children:l}),t[50]=i.detailBack,t[51]=s,t[52]=u):u=t[52];let f;t[53]===i.marketplaceDetailTitle?f=t[54]:(f=(0,$.jsx)(h,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:i.marketplaceDetailTitle}),t[53]=i.marketplaceDetailTitle,t[54]=f);let v;t[55]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(j,{className:`size-5`}),t[55]=v):v=t[55];let y;t[56]!==i.detailClose||t[57]!==s?(y=(0,$.jsx)(`button`,{type:`button`,onClick:s,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":i.detailClose,children:v}),t[56]=i.detailClose,t[57]=s,t[58]=y):y=t[58],t[59]!==u||t[60]!==f||t[61]!==y?(Y=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[u,f,y]}),t[59]=u,t[60]=f,t[61]=y,t[62]=Y):Y=t[62],K=`min-h-0 flex-1 overflow-y-auto p-5`,q=I&&!P?(0,$.jsxs)(`div`,{className:`space-y-4`,"aria-label":i.marketplaceLoading,children:[(0,$.jsx)(N,{className:`h-6 w-48`}),(0,$.jsx)(N,{className:`h-4 w-28`}),(0,$.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,$.jsx)(N,{className:`h-12`}),(0,$.jsx)(N,{className:`h-12`})]}),(0,$.jsx)(N,{className:`h-28 w-full`}),(0,$.jsx)(N,{className:`h-36 w-full`})]}):F?(0,$.jsxs)(`div`,{className:`rounded-lg border border-red-300/70 bg-red-50 p-4 text-sm dark:border-red-900 dark:bg-red-950/30`,children:[(0,$.jsx)(`p`,{className:`font-medium text-red-700 dark:text-red-300`,children:i.marketplaceDetailLoadFailed}),(0,$.jsx)(`p`,{className:`mt-1 break-words text-red-600 dark:text-red-400`,children:F instanceof Error?F.message:i.marketplaceLoadFailed})]}):P?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:P.name}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:(0,$.jsx)(`code`,{className:`rounded bg-surface-panel px-1 py-0.5`,children:P.id})}),(0,$.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:i.marketplaceAuthor}),(0,$.jsx)(`dd`,{children:P.author.username})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:i.marketplaceVersion}),(0,$.jsx)(`dd`,{children:P.latestVersion.version})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:i.marketplaceDownloads}),(0,$.jsx)(`dd`,{children:P.downloads})]})]}),(0,$.jsx)(re,{data:P,zh:b===`zh`}),R===`bundled`?null:(0,$.jsxs)(`section`,{className:`mt-5 space-y-3 rounded-lg border border-edge bg-surface-base p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[P.installability.available?(0,$.jsx)(O,{className:`mt-0.5 size-5 shrink-0 text-emerald-600 dark:text-emerald-400`,"aria-hidden":!0}):(0,$.jsx)(A,{className:`mt-0.5 size-5 shrink-0 text-amber-600 dark:text-amber-400`,"aria-hidden":!0}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-sm font-semibold text-fg`,children:P.installability.available?i.marketplaceRiskTitle:i.marketplaceUnavailableTitle}),(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-relaxed text-fg-muted`,children:P.installability.available?i.marketplaceCodeRisk:P.installability.reason??i.marketplaceUnavailableBody})]})]}),P.installability.available?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`dl`,{className:`grid gap-2 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:i.marketplaceIntegrity}),(0,$.jsx)(`dd`,{children:i.marketplaceIntegrityVerified})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:i.marketplaceDependencies}),(0,$.jsx)(`dd`,{children:P.packageSummary?.dependencyCount??0})]})]}),(0,$.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{className:`font-medium text-fg`,children:i.marketplacePermissions}),e.length>0?(0,$.jsx)(`ul`,{className:`mt-1 space-y-1`,children:e.map(Te)}):(0,$.jsx)(`p`,{className:`mt-1`,children:i.marketplacePermissionsNone})]}),(P.packageSummary?.lifecycleScripts.length??0)>0?(0,$.jsxs)(`p`,{className:`text-xs leading-relaxed text-amber-700 dark:text-amber-300`,children:[i.marketplaceLifecycleScripts,`: `,P.packageSummary?.lifecycleScripts.join(`, `)]}):null,(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 text-sm text-fg`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:x,onChange:e=>S(e.target.checked),className:`mt-0.5 size-4 rounded border-edge accent-[var(--color-accent)]`}),(0,$.jsx)(`span`,{children:i.marketplaceRiskConfirm})]})]}):null]}),P.readme?.trim()?(0,$.jsx)(`h4`,{className:`mb-2 mt-6 text-sm font-semibold text-fg`,children:i.marketplaceDetailReadmeHeading}):null,(0,$.jsx)(`div`,{className:`markdown-content min-w-0 break-words text-sm`,children:(0,$.jsx)(w,{content:c})})]}):null}t[6]=r,t[7]=i,t[8]=P,t[9]=F,t[10]=a,t[11]=R,t[12]=I,t[13]=b,t[14]=s,t[15]=n,t[16]=V,t[17]=x,t[18]=H,t[19]=ee,t[20]=U,t[21]=W,t[22]=G,t[23]=te,t[24]=K,t[25]=q,t[26]=ne,t[27]=J,t[28]=Y,t[29]=X}else H=t[18],ee=t[19],U=t[20],W=t[21],G=t[22],te=t[23],K=t[24],q=t[25],ne=t[26],J=t[27],Y=t[28],X=t[29];if(te!==Symbol.for(`react.early_return_sentinel`))return te;let Z;t[63]!==K||t[64]!==q?(Z=(0,$.jsx)(`div`,{className:K,children:q}),t[63]=K,t[64]=q,t[65]=Z):Z=t[65];let ae;t[66]!==v||t[67]!==i.marketplaceBuiltinGoBuiltin||t[68]!==i.marketplaceBuiltinManageHint||t[69]!==i.marketplaceInstall||t[70]!==i.marketplaceReinstall||t[71]!==i.marketplaceReinstallConfirm||t[72]!==i.marketplaceUninstall||t[73]!==i.marketplaceUninstallConfirm||t[74]!==P||t[75]!==R||t[76]!==s||t[77]!==u||t[78]!==f||t[79]!==n||t[80]!==x||t[81]!==B?(ae=P?(0,$.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:R===`bundled`?(0,$.jsxs)(`div`,{className:`flex w-full flex-col items-stretch gap-2`,children:[(0,$.jsx)(`p`,{className:`text-sm leading-relaxed text-fg-muted`,children:i.marketplaceBuiltinManageHint}),(0,$.jsx)(o,{to:`/capabilities/extensions?tab=builtin`,onClick:s,className:`inline-flex w-fit items-center justify-center rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:i.marketplaceBuiltinGoBuiltin})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`button`,{type:`button`,disabled:v||!P.installability.available||!x,onClick:()=>{B&&!window.confirm(i.marketplaceReinstallConfirm)||(y(!0),u(n,B).catch(we).finally(()=>y(!1)))},className:M(`inline-flex items-center justify-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium`,`bg-accent text-on-accent shadow-surface hover:bg-accent-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`disabled:pointer-events-none disabled:opacity-50`),children:[v?(0,$.jsx)(C,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,B?i.marketplaceReinstall:i.marketplaceInstall]}),B?(0,$.jsxs)(`button`,{type:`button`,disabled:v,onClick:()=>{window.confirm(i.marketplaceUninstallConfirm)&&(y(!0),f(n).then(()=>s()).catch(Ce).finally(()=>y(!1)))},className:M(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[(0,$.jsx)(k,{className:`size-4 shrink-0`,"aria-hidden":!0}),i.marketplaceUninstall]}):null]})}):null,t[66]=v,t[67]=i.marketplaceBuiltinGoBuiltin,t[68]=i.marketplaceBuiltinManageHint,t[69]=i.marketplaceInstall,t[70]=i.marketplaceReinstall,t[71]=i.marketplaceReinstallConfirm,t[72]=i.marketplaceUninstall,t[73]=i.marketplaceUninstallConfirm,t[74]=P,t[75]=R,t[76]=s,t[77]=u,t[78]=f,t[79]=n,t[80]=x,t[81]=B,t[82]=ae):ae=t[82];let se;t[83]!==H||t[84]!==Z||t[85]!==ae||t[86]!==ne||t[87]!==J||t[88]!==Y?(se=(0,$.jsxs)(H,{className:ne,onOpenAutoFocus:J,children:[Y,Z,ae]}),t[83]=H,t[84]=Z,t[85]=ae,t[86]=ne,t[87]=J,t[88]=Y,t[89]=se):se=t[89];let ce;t[90]!==ee||t[91]!==se||t[92]!==X?(ce=(0,$.jsxs)(ee,{children:[X,se]}),t[90]=ee,t[91]=se,t[92]=X,t[93]=ce):ce=t[93];let le;return t[94]!==U||t[95]!==W||t[96]!==G||t[97]!==ce?(le=(0,$.jsx)(U,{defaultOpen:W,onOpenChange:G,children:ce}),t[94]=U,t[95]=W,t[96]=G,t[97]=ce,t[98]=le):le=t[98],le}function Ce(){}function we(){}function Te(e){let[t,n]=e;return(0,$.jsxs)(`li`,{className:`break-words`,children:[(0,$.jsx)(`code`,{children:t}),`: `,Array.isArray(n)?n.join(`, `):String(n)]},t)}function Ee(e){return e.preventDefault()}function De(e){return!!e.conversationId}function Oe(e){return e.language}function ke({embedded:e=!1,onHeaderActionChange:t}){let n=s(),r=i(),c=l(e=>e.language),d=u(c),f=U(e=>e.setPageHeader),p=U(e=>e.clearPageHeader),m=I(),h=P(),[g,_]=a(),y=ve(g.get(`tab`)??(m.some(e=>e.source!==`bundled`)?`user`:null)),b=(0,Q.useRef)(!1),S=g.get(`q`)??``,[C,w]=(0,Q.useState)(y),[T,D]=(0,Q.useState)(S),[O,k]=(0,Q.useState)(null),[A,j]=(0,Q.useState)(!1),N=g.toString(),F=(0,Q.useRef)(N);if(F.current!==N){F.current=N;let e=ve(g.get(`tab`)),t=g.get(`q`)??``;w(t=>t===e?t:e),D(e=>e===t?e:t)}(0,Q.useEffect)(()=>{_(e=>{let t=new URLSearchParams(e),n=T.trim();return n?t.set(`q`,n):t.delete(`q`),C===`marketplace`?t.delete(`tab`):t.set(`tab`,C),t.toString()===e.toString()?e:t},{replace:!0})},[C,T,_]);let L=(0,Q.useMemo)(()=>m.filter(e=>e.source===`bundled`),[m]),R=(0,Q.useMemo)(()=>m.filter(e=>e.source!==`bundled`),[m]);(0,Q.useEffect)(()=>{h||b.current||(b.current=!0,!g.has(`tab`)&&R.length&&w(`user`))},[h,g,R.length]);let z=C===`builtin`?L:R,B=(0,Q.useMemo)(()=>{let e=T.trim().toLowerCase(),t=z;return e&&(t=t.filter(t=>(t.name??``).toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e))),t.toSorted((e,t)=>e.hasUi===t.hasUi?(e.name||e.id).localeCompare(t.name||t.id,c):e.hasUi?-1:1)},[z,T,c]);(0,Q.useEffect)(()=>{k(e=>{if(!e)return e;let t=m.find(t=>t.id===e.id);return t?Ae(e)===Ae(t)&&e.active===t.active&&JSON.stringify(e)===JSON.stringify(t)?e:t:null})},[m]);let W=(0,Q.useMemo)(()=>({searchLabel:C===`marketplace`?d.extensionsPage.marketplaceSearchPlaceholder:d.extensionsPage.searchPlaceholder,search:(0,$.jsx)(le,{value:T,onChange:D,placeholder:C===`marketplace`?d.extensionsPage.marketplaceSearchPlaceholder:d.extensionsPage.searchPlaceholder}),overflow:(0,$.jsxs)(G,{children:[(0,$.jsx)(te,{asChild:!0,children:(0,$.jsx)(V,{variant:`secondary`,className:`size-9 shrink-0 p-0`,"aria-label":d.capabilitiesHub.moreActions,title:d.capabilitiesHub.moreActions,children:(0,$.jsx)(x,{className:`size-4`,"aria-hidden":!0})})}),(0,$.jsx)(K,{children:(0,$.jsxs)(ne,{align:`end`,sideOffset:6,className:`z-50 min-w-48 rounded-xl border border-edge bg-surface-overlay p-1 shadow-popover`,children:[(0,$.jsxs)(q,{className:M(`touch-target flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,H.transition),onSelect:()=>j(!0),children:[(0,$.jsx)(E,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),c.startsWith(`zh`)?`安装插件`:`Install plugin`]}),(0,$.jsx)(q,{asChild:!0,children:(0,$.jsxs)(o,{to:`/local-apps`,className:M(`touch-target flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,H.transition),children:[(0,$.jsx)(v,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),d.extensionsPage.openLocalApps]})})]})})]}),primary:(0,$.jsx)(V,{asChild:!0,variant:`primary`,className:`h-9 shrink-0`,children:(0,$.jsxs)(o,{to:`/local-apps/new`,"aria-label":d.extensionsPage.createLocalApp,children:[(0,$.jsx)(E,{className:`size-4`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:d.extensionsPage.createLocalApp})]})})}),[c,d.capabilitiesHub.moreActions,d.extensionsPage,C,T]);(0,Q.useLayoutEffect)(()=>e?(t?.(W),()=>t?.(null)):(f({startExtra:null,main:(0,$.jsx)(`div`,{className:`min-w-0`,children:(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:d.extensionsPage.title})}),end:(0,$.jsx)(ue,{contribution:W})}),()=>p()),[p,e,W,d.extensionsPage.title,t,f]);let re=[{id:`user`,label:d.extensionsPage.tabUser,count:h?void 0:R.length},{id:`marketplace`,label:d.extensionsPage.tabMarketplace},{id:`builtin`,label:d.extensionsPage.tabBuiltin,count:h?void 0:L.length}];return(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,$.jsxs)(`div`,{className:M(`mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8`,`pb-7 pt-3 lg:pb-9 lg:pt-4`),children:[(0,$.jsx)(`div`,{className:`mb-6 border-b border-edge-subtle pb-3`,children:(0,$.jsx)(ee,{items:re,activeTab:C,onChange:w,ariaLabel:d.extensionsPage.extensionsNavAria,tabIdPrefix:`extensions-tab`,panelIdPrefix:`extensions-panel`,className:`flex-wrap`})}),C===`marketplace`?(0,$.jsx)(xe,{query:T}):h?(0,$.jsx)(Le,{}):C===`builtin`&&L.length===0?(0,$.jsx)(ze,{message:d.extensionsPage.emptyBuiltin}):C===`user`&&R.length===0?(0,$.jsx)(ze,{message:d.extensionsPage.emptyUser}):B.length===0?(0,$.jsx)(`p`,{className:`px-3 py-14 text-center text-sm text-fg-muted sm:px-5 xl:px-6`,children:d.extensionsPage.noSearchResults}):(0,$.jsx)(`div`,{className:he,children:B.map(e=>(0,$.jsx)(Ne,{extension:e,copy:d.extensionsPage,onOpen:()=>e.pluginId?n(Y(e.pluginId,`installed`,!1,r.pathname+r.search)):k(e)},e.id))})]}),O?O.format===`agent-plugin`?(0,$.jsx)(ie,{extension:O,onClose:()=>k(null)},O.id):(0,$.jsx)(Fe,{extension:O,copy:d.extensionsPage,onClose:()=>k(null)},O.id):null,A?(0,$.jsx)(ie,{onClose:()=>j(!1)}):null]})}function Ae(e){return e.activationEligible??e.active}function je(e,t){return e.source===`bundled`?t.providerBundled:e.source===`global`?t.providerGlobal:e.source===`workspace`?t.providerWorkspace:t.providerOther}function Me(e,t){let n=Ae(e);return n&&e.active?t.runStateLive:n&&!e.active?t.runStatePendingOn:!n&&e.active?t.runStatePendingOff:t.runStateOff}function Ne(e){let t=(0,me.c)(56),{extension:n,copy:r,onOpen:a}=e,o=l(Pe),c,u;t[0]!==n||t[1]!==o?(u=o.startsWith(`zh`),c=de(n,u),t[0]=n,t[1]=o,t[2]=c,t[3]=u):(c=t[2],u=t[3]);let d=c,f;t[4]===n?f=t[5]:(f=fe(n),t[4]=n,t[5]=f);let p=f,m=n.localizations?.[u?`zh-CN`:`en`]?.description??n.description,h=s(),g=i(),_;t[6]===n?_=t[7]:(_=!!n.pluginId&&pe(n),t[6]=n,t[7]=_);let b=_,x=p?u?`去授权`:`Connect account`:b?u?`开始使用`:`Start using`:u?`管理插件`:`Manage plugin`,S;t[8]!==b||t[9]!==n.pluginId||t[10]!==g||t[11]!==d||t[12]!==h||t[13]!==p||t[14]!==a||t[15]!==u?(S=()=>{b?h(J(d,u)):p&&n.pluginId?h(Y(n.pluginId,`installed`,!0,g.pathname+g.search)):a()},t[8]=b,t[9]=n.pluginId,t[10]=g,t[11]=d,t[12]=h,t[13]=p,t[14]=a,t[15]=u,t[16]=S):S=t[16];let C=S,w=`${d}, ${r.marketplaceDetailTitle}`,T;t[17]!==a||t[18]!==w?(T=(0,$.jsx)(`button`,{type:`button`,"aria-label":w,onClick:a,className:_e}),t[17]=a,t[18]=w,t[19]=T):T=t[19];let E=n.branding?.iconUrl,D;t[20]===E?D=t[21]:(D=(0,$.jsx)(X,{iconUrl:E,fallback:v}),t[20]=E,t[21]=D);let O;t[22]===d?O=t[23]:(O=(0,$.jsx)(`h2`,{className:`line-clamp-2 break-words font-semibold leading-snug text-fg`,title:d,children:d}),t[22]=d,t[23]=O);let k;t[24]===n.provenance?.publisherVerification?k=t[25]:(k=n.provenance?.publisherVerification===`verified`?(0,$.jsx)(y,{className:`mt-0.5 size-3.5 shrink-0 text-emerald-600 dark:text-emerald-400`,strokeWidth:1.75,"aria-label":`Verified`}):null,t[24]=n.provenance?.publisherVerification,t[25]=k);let A;t[26]!==O||t[27]!==k?(A=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start gap-1.5`,children:[O,k]}),t[26]=O,t[27]=k,t[28]=A):A=t[28];let j;t[29]===n.version?j=t[30]:(j=n.version?(0,$.jsxs)(`span`,{children:[`v`,n.version]}):null,t[29]=n.version,t[30]=j);let M=p?`text-amber-700 dark:text-amber-400`:`text-fg-muted`,N=p?u?`需要授权`:`Authorization required`:Ae(n)?r.statusEnabled:r.runStateOff,P;t[31]!==M||t[32]!==N?(P=(0,$.jsx)(`span`,{className:M,children:N}),t[31]=M,t[32]=N,t[33]=P):P=t[33];let F;t[34]!==j||t[35]!==P?(F=(0,$.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-fg-subtle`,children:[j,P]}),t[34]=j,t[35]=P,t[36]=F):F=t[36];let I;t[37]!==A||t[38]!==F?(I=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[A,F]}),t[37]=A,t[38]=F,t[39]=I):I=t[39];let L;t[40]!==x||t[41]!==C?(L=(0,$.jsx)(`div`,{className:`pointer-events-auto relative z-10 flex max-w-[45%] shrink-0 items-start`,children:(0,$.jsx)(`button`,{type:`button`,onClick:C,className:`inline-flex items-center justify-center rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg transition-colors hover:bg-surface-hover active:scale-[0.98] active:bg-surface-hover/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:x})}),t[40]=x,t[41]=C,t[42]=L):L=t[42];let R;t[43]!==I||t[44]!==L||t[45]!==D?(R=(0,$.jsxs)(`div`,{className:`pointer-events-none relative flex items-start gap-3`,children:[D,I,L]}),t[43]=I,t[44]=L,t[45]=D,t[46]=R):R=t[46];let z;t[47]!==r.cardNoDescription||t[48]!==m?(z=m?.trim()||r.cardNoDescription,t[47]=r.cardNoDescription,t[48]=m,t[49]=z):z=t[49];let B;t[50]===z?B=t[51]:(B=(0,$.jsx)(`p`,{className:`pointer-events-none relative mt-3 line-clamp-3 text-sm leading-relaxed text-fg-muted`,children:z}),t[50]=z,t[51]=B);let V;return t[52]!==R||t[53]!==B||t[54]!==T?(V=(0,$.jsxs)(`article`,{className:ge,children:[T,R,B]}),t[52]=R,t[53]=B,t[54]=T,t[55]=V):V=t[55],V}function Pe(e){return e.language}function Fe({extension:e,copy:t,onClose:n}){let{mutate:r}=R(),[i,a]=(0,Q.useState)(null),[s,c]=(0,Q.useState)(null),[l,u]=(0,Q.useState)(!1),v=e.activationEligible===!0,y=(0,Q.useCallback)(async()=>{c(null),u(!1),a(`toggle`);try{let{requiresGatewayRestart:t}=await ae({extensionId:e.id,enabled:!v});await r(`gateway-extensions-list`),B(),u(t)}catch(e){c(e instanceof Error?e.message:t.extensionToggleFailed)}finally{a(null)}},[v,t.extensionToggleFailed,e.id,r]),x=(0,Q.useCallback)(async()=>{if(!(e.source===`bundled`||!window.confirm(t.extensionUninstallConfirm))){c(null),u(!1),a(`uninstall`);try{await Z(e.id),await r(`gateway-extensions-list`),B(),n()}catch(e){c(e instanceof Error?e.message:t.marketplaceUninstallFailed),a(null)}}},[t.extensionUninstallConfirm,t.marketplaceUninstallFailed,e.id,e.source,r,n]),w=e.ui?.contributions?.pages??[],T=e.ui?.contributions?.settingsPanels??[],E=e.ui?.contributions?.chatWidgets??[],O=w.find(e=>e.showInNav)??w[0],A=T[0],N=O?b(e.id,O):null,P=A?`/settings/ext/${e.id}/${A.id}`:e.hasConfigSchema||F(e)?`/settings/ext/${e.id}`:null;return(0,$.jsx)(g,{defaultOpen:!0,onOpenChange:e=>!e&&n(),children:(0,$.jsxs)(p,{children:[(0,$.jsx)(d,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),(0,$.jsxs)(m,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[131] flex max-h-[min(90vh,44rem)] 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`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailBack,children:(0,$.jsx)(_,{className:`size-5`})}),(0,$.jsx)(h,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:t.detailTitle}),(0,$.jsxs)(f,{className:`sr-only`,children:[e.name,` (`,e.id,`)`]}),(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailClose,children:(0,$.jsx)(j,{className:`size-5`})})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-start gap-4`,children:[(0,$.jsx)(`div`,{className:`flex size-16 shrink-0 items-center justify-center rounded-2xl bg-accent-soft text-xl font-semibold text-accent-fg`,"aria-hidden":!0,children:(e.name||e.id).charAt(0).toUpperCase()}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:e.name}),(0,$.jsxs)(`p`,{className:`mt-0.5 text-sm text-fg-muted`,children:[t.detailProviderPrefix,` `,je(e,t)]}),e.version?(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:[`v`,e.version]}):null]})]}),(0,$.jsx)(`p`,{className:`mt-5 text-sm leading-relaxed text-fg`,children:e.description?.trim()||t.detailNoDescription}),e.hasUi?null:(0,$.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:t.backendOnlyHint}),(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:Me(e,t)}),e.source===`bundled`?(0,$.jsx)(`p`,{className:`mt-4 rounded-lg bg-surface-hover/40 px-3 py-2 text-xs text-fg-muted shadow-surface dark:bg-surface-hover/20`,children:t.builtinConfigHint}):null,(0,$.jsxs)(`div`,{className:`mt-3 rounded-lg bg-surface-hover/40 p-3 shadow-surface dark:bg-surface-hover/20`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:t.builtinRuntimeToggle}),(0,$.jsx)(V,{type:`button`,variant:`secondary`,disabled:i!==null,onClick:()=>void y(),className:`shrink-0 py-1.5 text-xs`,children:i===`toggle`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(C,{className:`mr-1.5 size-3.5 shrink-0 animate-spin`,"aria-hidden":!0}),t.builtinToggleBusy]}):v?t.builtinToggleDisable:t.builtinToggleEnable})]}),s?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-rose-600 dark:text-rose-400`,children:s}):null,l?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:t.builtinToggleRestartHint}):null,e.source===`bundled`?null:(0,$.jsx)(`div`,{className:`mt-3 flex justify-end border-t border-edge-subtle pt-3`,children:(0,$.jsxs)(V,{type:`button`,variant:`ghost`,disabled:i!==null,onClick:()=>void x(),className:`text-danger hover:bg-danger-soft hover:text-danger`,children:[i===`uninstall`?(0,$.jsx)(C,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(k,{className:`size-3.5`,"aria-hidden":!0}),t.marketplaceUninstall]})})]}),e.hasUi&&(w.length>0||T.length>0||E.length>0)?(0,$.jsxs)(`section`,{className:`mt-8`,children:[(0,$.jsx)(`h4`,{className:`mb-3 text-sm font-semibold text-fg`,children:t.detailSectionFeatures}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,$.jsx)(Ie,{template:t.badgePages,count:w.length,hidden:w.length===0}),(0,$.jsx)(Ie,{template:t.badgeSettings,count:T.length,hidden:T.length===0}),(0,$.jsx)(Ie,{template:t.badgeWidgets,count:E.length,hidden:E.length===0})]})]}):null,L(e)&&(N||P)?(0,$.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2 border-t border-edge-subtle pt-4`,children:[N?(0,$.jsxs)(o,{to:N,onClick:n,className:M(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(S,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.open]}):null,P?(0,$.jsxs)(o,{to:P,onClick:n,className:M(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(D,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.openSettings]}):null]}):null,(0,$.jsx)(`p`,{className:`mt-6 text-[11px] leading-relaxed text-fg-muted`,children:t.restartNote})]})]})]})})}function Ie(e){let t=(0,me.c)(6),{template:n,count:r,hidden:i}=e;if(i||r===0)return null;let a;if(t[0]!==r||t[1]!==n){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=/\{\{count\}\}/g,t[3]=e):e=t[3],a=n.replace(e,String(r)),t[0]=r,t[1]=n,t[2]=a}else a=t[2];let o;return t[4]===a?o=t[5]:(o=(0,$.jsx)(`span`,{className:`inline-flex items-center rounded-md bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:a}),t[4]=a,t[5]=o),o}function Le(){let e=(0,me.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:he,"aria-busy":`true`,children:Array.from({length:6},Re)}),e[0]=t):t=e[0],t}function Re(e,t){return(0,$.jsx)(N,{className:`h-32 rounded-xl`},t)}function ze(e){let t=(0,me.c)(2),{message:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`flex min-h-[min(40vh,16rem)] flex-col items-center justify-center rounded-xl border border-edge-subtle bg-surface-base px-4 py-12 text-center shadow-surface`,children:(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n})}),t[0]=n,t[1]=r),r}export{ke as ExtensionsPage};
|