@xopcai/xopc 0.0.419 → 0.0.421

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/feishu/src/adapters/cli-login.js +3 -3
  3. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  4. package/dist/extensions/telegram/src/inbound-processor.js +2 -2
  5. package/dist/extensions/telegram/src/outbound-sender.js +1 -1
  6. package/dist/extensions/telegram/src/plugin.js +2 -2
  7. package/dist/extensions/telegram/xopc.extension.json +1 -1
  8. package/dist/extensions/weixin/src/api/api.js +2 -2
  9. package/dist/extensions/weixin/src/auth/accounts.js +12 -12
  10. package/dist/extensions/weixin/src/messaging/debug-mode.js +5 -5
  11. package/dist/extensions/weixin/src/messaging/inbound.js +11 -11
  12. package/dist/gateway/static/root/assets/{activity-store-DnqOM8GN.js → activity-store-CKrylgib.js} +1 -1
  13. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-1UABT2KS.js → agent-avatar-dicebear-Dv5Rda4y.js} +1 -1
  14. package/dist/gateway/static/root/assets/agent-avatar-display-B1ycycx2.js +2 -0
  15. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-D285zy0S.js +1 -0
  16. package/dist/gateway/static/root/assets/agent-plugin-dialog-D3yCqVan.js +1 -0
  17. package/dist/gateway/static/root/assets/{agents-O7mago-m.js → agents-DyAuR3rG.js} +5 -5
  18. package/dist/gateway/static/root/assets/{agents-admin-api-CyjykMEh.js → agents-admin-api-CASGzvkW.js} +1 -1
  19. package/dist/gateway/static/root/assets/{api-C1dxxDZx.js → api-C4LxuNzq.js} +1 -1
  20. package/dist/gateway/static/root/assets/{api-Ddrs70xV.js → api-Uk05lF9i.js} +1 -1
  21. package/dist/gateway/static/root/assets/app-management-settings-panel-CDnZNKHt.js +1 -0
  22. package/dist/gateway/static/root/assets/appearance-settings-CmCF7PZ5.js +1 -0
  23. package/dist/gateway/static/root/assets/apps-page-BR9qoA2P.js +1 -0
  24. package/dist/gateway/static/root/assets/{archive-plugin-n5lPr79c.js → archive-plugin-nuHYYVty.js} +1 -1
  25. package/dist/gateway/static/root/assets/automation-api-DtJfd1QM.js +1 -0
  26. package/dist/gateway/static/root/assets/automation-display-BlGt8MAC.js +2 -0
  27. package/dist/gateway/static/root/assets/automation-task-card-Cp3RIw5d.js +2 -0
  28. package/dist/gateway/static/root/assets/{automations-page-oLsNzu_6.js → automations-page-DM4IdUJh.js} +1 -1
  29. package/dist/gateway/static/root/assets/automations-workspace-CXLu04I-.js +9 -0
  30. package/dist/gateway/static/root/assets/{binary-plugins-D9VW7dWP.js → binary-plugins-CHCAr8jt.js} +1 -1
  31. package/dist/gateway/static/root/assets/{block-editor-C477bTtO.js → block-editor-B0v8KxsO.js} +4 -4
  32. package/dist/gateway/static/root/assets/{browser-automation-inputs-CCiYXxmh.js → browser-automation-inputs-DjUW7PEB.js} +1 -1
  33. package/dist/gateway/static/root/assets/browser-automations-page-Cf8AoQz1.js +3 -0
  34. package/dist/gateway/static/root/assets/{browser-control-api-Y3fvmeBk.js → browser-control-api-C6NZgaA1.js} +1 -1
  35. package/dist/gateway/static/root/assets/{browser-settings-page-DjkGahlz.js → browser-settings-page-DV2FNEDf.js} +2 -2
  36. package/dist/gateway/static/root/assets/{capabilities-DAyA681v.js → capabilities-CwdjWz2r.js} +1 -1
  37. package/dist/gateway/static/root/assets/{capabilities-DRVXLssH.js → capabilities-D0-HCZ5J.js} +1 -1
  38. package/dist/gateway/static/root/assets/capabilities-page-DwDkritH.js +2 -0
  39. package/dist/gateway/static/root/assets/capabilities-settings-panel-mme16Fbp.js +8 -0
  40. package/dist/gateway/static/root/assets/channels-lKFLu8p-.js +1 -0
  41. package/dist/gateway/static/root/assets/{chat-agents-api-D5nR_JVe.js → chat-agents-api-l80cvSac.js} +1 -1
  42. package/dist/gateway/static/root/assets/{chat-chart-block-K2t333qv.js → chat-chart-block-BwP5QXEk.js} +1 -1
  43. package/dist/gateway/static/root/assets/chat-page-CT3K7lFT.js +71 -0
  44. package/dist/gateway/static/root/assets/{chat-terminal-dock-CkFG6mA3.js → chat-terminal-dock-D2bV9YUL.js} +2 -2
  45. package/dist/gateway/static/root/assets/{list-filter-COkzTdOz.js → clipboard-copy-DuJk5WD6.js} +1 -1
  46. package/dist/gateway/static/root/assets/{command-palette-api-Do_66X1B.js → command-palette-api-CtapG8ck.js} +1 -1
  47. package/dist/gateway/static/root/assets/composer-payload-handoff-DYuhKZRC.js +1 -0
  48. package/dist/gateway/static/root/assets/{computer-settings-page-DBxOcMko.js → computer-settings-page-DZtMuihL.js} +1 -1
  49. package/dist/gateway/static/root/assets/connected-providers-grid-BQH5k3iC.js +1 -0
  50. package/dist/gateway/static/root/assets/{connector-service-page-rWpnchb3.js → connector-service-page-DrvFdP3G.js} +1 -1
  51. package/dist/gateway/static/root/assets/{connectors-api-DIBG72k4.js → connectors-api-BzkgVBYC.js} +1 -1
  52. package/dist/gateway/static/root/assets/connectors-page-BtRNVCFy.js +1 -0
  53. package/dist/gateway/static/root/assets/{date-picker-CE-cZFCU.js → date-picker-ByTasrfl.js} +1 -1
  54. package/dist/gateway/static/root/assets/{dependency-picker-7SpSfDSg.js → dependency-picker-Dh8hPmsT.js} +1 -1
  55. package/dist/gateway/static/root/assets/desktop-pet-CFz8bqyI.js +1 -0
  56. package/dist/gateway/static/root/assets/desktop-pet-settings-COaboNn1.js +1 -0
  57. package/dist/gateway/static/root/assets/{dev-view-store-57HgVuZ6.js → dev-view-store-D8XYHVqG.js} +1 -1
  58. package/dist/gateway/static/root/assets/device-pairing-wizard-BKMpLdIA.js +1 -0
  59. package/dist/gateway/static/root/assets/{directory-picker-path-field-D4jMhpka.js → directory-picker-path-field-Cjv7rdo3.js} +1 -1
  60. package/dist/gateway/static/root/assets/discussion-annotation-sync-YvlVw17j.js +1 -0
  61. package/dist/gateway/static/root/assets/{dist-DNCdG_qB.js → dist-D3lWNSe7.js} +1 -1
  62. package/dist/gateway/static/root/assets/{extension-debug-page-BsK2LMXQ.js → extension-debug-page-CXx3m5-B.js} +1 -1
  63. package/dist/gateway/static/root/assets/extension-iframe-host-CnOdNwbo.js +1 -0
  64. package/dist/gateway/static/root/assets/{extension-marketplace-api-CVJPqJOB.js → extension-marketplace-api-BABmUY2s.js} +1 -1
  65. package/dist/gateway/static/root/assets/extension-page-C1nGr4DD.js +1 -0
  66. package/dist/gateway/static/root/assets/{extension-provider-Byrd8Sor.js → extension-provider-BA0Y2Rvs.js} +1 -1
  67. package/dist/gateway/static/root/assets/extension-settings-page-QIPI8e7k.js +1 -0
  68. package/dist/gateway/static/root/assets/{file-preview-surface-BlprUrIs.js → file-preview-surface-BsB7bnFH.js} +1 -1
  69. package/dist/gateway/static/root/assets/{gateway-config-swr-BAmUhiP1.js → gateway-config-swr-Bt8w0Iio.js} +1 -1
  70. package/dist/gateway/static/root/assets/{gateway-realtime-CsykKL4l.js → gateway-realtime-CyCCNUxm.js} +1 -1
  71. package/dist/gateway/static/root/assets/gateway-realtime-store-0gmDfPeP.js +1 -0
  72. package/dist/gateway/static/root/assets/gateway-restart-Ty4AzDxa.js +1 -0
  73. package/dist/gateway/static/root/assets/{gateway-settings-BA5-Uuwx.js → gateway-settings-BvKq7vuz.js} +1 -1
  74. package/dist/gateway/static/root/assets/{gateway-startup-retry-CtUB3g6N.js → gateway-startup-retry-N3k-C7c2.js} +1 -1
  75. package/dist/gateway/static/root/assets/{global-defaults-api-CINf-C6a.js → global-defaults-api-D8EB2vfY.js} +1 -1
  76. package/dist/gateway/static/root/assets/home-page-eRuAzi58.js +2 -0
  77. package/dist/gateway/static/root/assets/image-generation-api-C99Fsofm.js +1 -0
  78. package/dist/gateway/static/root/assets/{imports-page-BWShtGRQ.js → imports-page-Cp9RquVb.js} +1 -1
  79. package/dist/gateway/static/root/assets/index-6vVrWfwM.js +11 -0
  80. package/dist/gateway/static/root/assets/index-DDGK6klk.css +1 -0
  81. package/dist/gateway/static/root/assets/install-connector-dialog-CsoAidXp.js +1 -0
  82. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CdM4BQwp.js → keyboard-shortcuts-settings-DFhOP2aD.js} +1 -1
  83. package/dist/gateway/static/root/assets/list-filter-CIPvpfLA.js +1 -0
  84. package/dist/gateway/static/root/assets/local-app-workbench-page-DbtU_A-l.js +1 -0
  85. package/dist/gateway/static/root/assets/{local-apps-page-CxyRVfjD.js → local-apps-page-rjhHfLpe.js} +1 -1
  86. package/dist/gateway/static/root/assets/{local-session-drafts-B9ZPwotC.js → local-session-drafts-DHM4vWDO.js} +1 -1
  87. package/dist/gateway/static/root/assets/{locale-store-lIXD1FMw.js → locale-store-5Hf8J8-_.js} +1 -1
  88. package/dist/gateway/static/root/assets/logs-page-Dx_JIOpF.js +2 -0
  89. package/dist/gateway/static/root/assets/management-settings-CuSzixOw.js +1 -0
  90. package/dist/gateway/static/root/assets/{markdown-view-CJt-i2Dp.js → markdown-view-pzSRu7av.js} +3 -3
  91. package/dist/gateway/static/root/assets/{media-plugins-D_bR23mA.js → media-plugins-3cJuHbO7.js} +1 -1
  92. package/dist/gateway/static/root/assets/messages-uXxg5p54.js +3 -0
  93. package/dist/gateway/static/root/assets/model-selector-ksLo-5B_.js +1 -0
  94. package/dist/gateway/static/root/assets/{models-hub-cache-za2fWJLg.js → models-hub-cache-DhZng2nF.js} +1 -1
  95. package/dist/gateway/static/root/assets/navigation-D62kPsA9.js +1 -0
  96. package/dist/gateway/static/root/assets/note-detail-panel-B6RbjwJq.js +5 -0
  97. package/dist/gateway/static/root/assets/note-image-lightbox-BCjvBqwy.js +1 -0
  98. package/dist/gateway/static/root/assets/{notes-api-C_458rv5.js → notes-api-DocbsBbT.js} +1 -1
  99. package/dist/gateway/static/root/assets/notes-page-B7889s6-.js +8 -0
  100. package/dist/gateway/static/root/assets/{oauth-api-C3X9FLYw.js → oauth-api-CCFIPbA0.js} +1 -1
  101. package/dist/gateway/static/root/assets/{oauth-provider-connect-H81se_3n.js → oauth-provider-connect-GxkF0vWJ.js} +1 -1
  102. package/dist/gateway/static/root/assets/open-capability-settings-Cvb65hQB.js +1 -0
  103. package/dist/gateway/static/root/assets/{page-context-capture-button-BkAlQ7cB.js → page-context-capture-button-CvWLVeRA.js} +1 -1
  104. package/dist/gateway/static/root/assets/{page-context-draft-ClLgaOaD.js → page-context-draft-CMRDNv4d.js} +1 -1
  105. package/dist/gateway/static/root/assets/page-header-store-reh1es-3.js +1 -0
  106. package/dist/gateway/static/root/assets/{personal-avatar-BLtHt8fV.js → personal-avatar-CqNJ48Ge.js} +1 -1
  107. package/dist/gateway/static/root/assets/personal-page-D95FHaw9.js +1 -0
  108. package/dist/gateway/static/root/assets/personal-settings-panel-DAcl8DU4.js +1 -0
  109. package/dist/gateway/static/root/assets/{phone-dependencies-card-DISHarj8.js → phone-dependencies-card-DLWblGj7.js} +1 -1
  110. package/dist/gateway/static/root/assets/phone-model-picker-ugrT9GJu.js +1 -0
  111. package/dist/gateway/static/root/assets/phone-settings-page-DIIt7JOE.js +1 -0
  112. package/dist/gateway/static/root/assets/{phone-workspace-store-fhnZrgy_.js → phone-workspace-store-mawKT5kV.js} +1 -1
  113. package/dist/gateway/static/root/assets/plugin-details-dialog-BdueMT3q.js +1 -0
  114. package/dist/gateway/static/root/assets/popover-select-DD8fmrxH.js +1 -0
  115. package/dist/gateway/static/root/assets/preference-select-fields-CmLZNwbm.js +1 -0
  116. package/dist/gateway/static/root/assets/product-automation-feedback-DYwhL37Y.js +7 -0
  117. package/dist/gateway/static/root/assets/{product-open-page-xn9G4hSI.js → product-open-page-B5G4X71t.js} +1 -1
  118. package/dist/gateway/static/root/assets/{product-preview-content-DcoK-iZe.js → product-preview-content-BUheyLqt.js} +1 -1
  119. package/dist/gateway/static/root/assets/{product-preview-modal-Ruw9WSKK.js → product-preview-modal-Cj_Zxu4G.js} +2 -2
  120. package/dist/gateway/static/root/assets/project-detail-page-CRJb69vP.js +7 -0
  121. package/dist/gateway/static/root/assets/project-understanding-D3w8cZEm.js +1 -0
  122. package/dist/gateway/static/root/assets/projects-page-CkifzKjz.js +1 -0
  123. package/dist/gateway/static/root/assets/{providers-api-CzVkFKFg.js → providers-api-CKFg2PZQ.js} +1 -1
  124. package/dist/gateway/static/root/assets/{recording-upload-0jxahBMo.js → recording-upload-ZkmRf0GR.js} +1 -1
  125. package/dist/gateway/static/root/assets/{registry-api-n8TwtJ_j.js → registry-api-B1Mh3bNo.js} +1 -1
  126. package/dist/gateway/static/root/assets/{remote-access-hub-cZpBi4Rk.js → remote-access-hub-Dw5rG-aA.js} +1 -1
  127. package/dist/gateway/static/root/assets/resource-unavailable-BUWsH3fp.js +1 -0
  128. package/dist/gateway/static/root/assets/route-preload-CRKbVwQ1.js +2 -0
  129. package/dist/gateway/static/root/assets/runtime-impact-DbySfhdp.js +1 -0
  130. package/dist/gateway/static/root/assets/{runtime-tools-api-D-8KjYK6.js → runtime-tools-api-BXvn5ImA.js} +1 -1
  131. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-BALcypHp.js +1 -0
  132. package/dist/gateway/static/root/assets/schema-form-BKeP5G7b.js +1 -0
  133. package/dist/gateway/static/root/assets/service-recommendation-list-CpVUnz89.js +1 -0
  134. package/dist/gateway/static/root/assets/{session-api-CsCoI2im.js → session-api-VquhIBHI.js} +1 -1
  135. package/dist/gateway/static/root/assets/session-manager-DNMosCtW.js +23 -0
  136. package/dist/gateway/static/root/assets/sessions-page-DlvPkE5Y.js +1 -0
  137. package/dist/gateway/static/root/assets/settings-advanced-gate-Ckc1aCLG.js +1 -0
  138. package/dist/gateway/static/root/assets/{settings-advanced-section-BqoVSko2.js → settings-advanced-section-c9_iZ-46.js} +1 -1
  139. package/dist/gateway/static/root/assets/{settings-mode-store-CBsJ-Qg2.js → settings-mode-store-Dem6-TBe.js} +1 -1
  140. package/dist/gateway/static/root/assets/{settings-page-DROUGyJl.js → settings-page-B_wNfFQe.js} +1 -1
  141. package/dist/gateway/static/root/assets/{settings-page-header-Bv-kQFTm.js → settings-page-header-C8a_oOyw.js} +1 -1
  142. package/dist/gateway/static/root/assets/{settings-page-layout-DHP6MrrL.js → settings-page-layout-CTSRWljG.js} +1 -1
  143. package/dist/gateway/static/root/assets/setup-status-panel-BNZoqF40.js +1 -0
  144. package/dist/gateway/static/root/assets/{share-link-dialog-BJHRQVKC.js → share-link-dialog-C5JTTxsy.js} +1 -1
  145. package/dist/gateway/static/root/assets/share-preview-page-D-KxzXgm.js +2 -0
  146. package/dist/gateway/static/root/assets/{shares-api-rtWVHA_d.js → shares-api-CztKbxdd.js} +1 -1
  147. package/dist/gateway/static/root/assets/shares-settings-CzR21j6e.js +1 -0
  148. package/dist/gateway/static/root/assets/skill-api-B7kWl6LK.js +1 -0
  149. package/dist/gateway/static/root/assets/{skill-list-api-BzlKXPsE.js → skill-list-api-Cn07P6qZ.js} +1 -1
  150. package/dist/gateway/static/root/assets/{skill-reload-api-Cff2GgZb.js → skill-reload-api-Bhl0u16_.js} +1 -1
  151. package/dist/gateway/static/root/assets/skills-page-BmkuxHZe.js +2 -0
  152. package/dist/gateway/static/root/assets/{system-settings-panel-BeQeUUMH.js → system-settings-panel-Ce6zIcki.js} +1 -1
  153. package/dist/gateway/static/root/assets/task-detail-page-CysJhG3B.js +2 -0
  154. package/dist/gateway/static/root/assets/task-result-evidence-CGZKMnNo.js +1 -0
  155. package/dist/gateway/static/root/assets/{terminal-panel-store-5Fzctajw.js → terminal-panel-store-YwLUkuyV.js} +1 -1
  156. package/dist/gateway/static/root/assets/{theme-store-DW45fWYQ.js → theme-store-DOJ9tu-j.js} +1 -1
  157. package/dist/gateway/static/root/assets/tracing-settings-page-BplBpTdL.js +1 -0
  158. package/dist/gateway/static/root/assets/tunnel-api-B5-Ypvqa.js +1 -0
  159. package/dist/gateway/static/root/assets/{understanding-activity-store-CTe6TFB0.js → understanding-activity-store-CmwtE8Kd.js} +1 -1
  160. package/dist/gateway/static/root/assets/{understanding-refresh-store-mE9OKG6q.js → understanding-refresh-store-9apSmAVL.js} +1 -1
  161. package/dist/gateway/static/root/assets/usage-page-cPbirpXX.js +1 -0
  162. package/dist/gateway/static/root/assets/{use-autosave-Cs2Ga_Y_.js → use-autosave-B3p2QWaF.js} +1 -1
  163. package/dist/gateway/static/root/assets/use-composer-attachments-D-AEYC85.js +2 -0
  164. package/dist/gateway/static/root/assets/use-file-preview-expanded-CO4SC-LX.js +2 -0
  165. package/dist/gateway/static/root/assets/{use-personal-profile-BHL2AxWU.js → use-personal-profile-DocmhC9I.js} +1 -1
  166. package/dist/gateway/static/root/assets/{use-workspace-tree-CnmPZrpx.js → use-workspace-tree-VraTGKx-.js} +1 -1
  167. package/dist/gateway/static/root/assets/user-model-page-DuRALzhe.js +2 -0
  168. package/dist/gateway/static/root/assets/{voice-api-key-field-3gyc2UV3.js → voice-api-key-field-DbSQHZZW.js} +1 -1
  169. package/dist/gateway/static/root/assets/{voice-config-api-Cda2uBIC.js → voice-config-api-D9iNJSvm.js} +1 -1
  170. package/dist/gateway/static/root/assets/{voice-input-shortcut-events-DtYHsPLF.js → voice-input-shortcut-events-hso9_VvT.js} +1 -1
  171. package/dist/gateway/static/root/assets/voice-transcribe-api-BqIs0jgv.js +1 -0
  172. package/dist/gateway/static/root/assets/{work-discovery-overlay-Dqu5CQCS.js → work-discovery-overlay-fsL9RJqB.js} +1 -1
  173. package/dist/gateway/static/root/assets/work-discovery-page-DAQPKVDs.js +1 -0
  174. package/dist/gateway/static/root/assets/{working-directory-picker-modal-DHl2cZY1.js → working-directory-picker-modal-Ta73QrNw.js} +1 -1
  175. package/dist/gateway/static/root/assets/{workspace-api-CtDbI6T7.js → workspace-api-CgrcNyBc.js} +2 -2
  176. package/dist/gateway/static/root/assets/workspace-editor-agent-store-Dw6wtadX.js +1 -0
  177. package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-CTIbUfKb.js → workspace-file-preview-dialog-B7uBuPtA.js} +1 -1
  178. package/dist/gateway/static/root/assets/{workspace-open-location-menu-BwxouqdZ.js → workspace-open-location-menu-Bi2vRvaQ.js} +1 -1
  179. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-CFb-23rS.js → xopc-cloud-account-card-CCOOBG-7.js} +1 -1
  180. package/dist/gateway/static/root/index.html +86 -81
  181. package/dist/package.js +1 -1
  182. package/dist/packages/gateway-contract/src/index.js +2 -0
  183. package/dist/packages/gateway-contract/src/task-display.js +14 -0
  184. package/dist/src/agent/agent-manager.js +18 -18
  185. package/dist/src/agent/agent-scope.js +2 -2
  186. package/dist/src/agent/background-review/prompts.js +1 -1
  187. package/dist/src/agent/background-review/run-background-review.js +13 -13
  188. package/dist/src/agent/child-agent-factory.js +2 -2
  189. package/dist/src/agent/coding/repository-instructions.js +1 -1
  190. package/dist/src/agent/context/coordinator.js +2 -2
  191. package/dist/src/agent/context/execution-context.js +4 -4
  192. package/dist/src/agent/context/execution-scope.js +10 -5
  193. package/dist/src/agent/context/project-context.js +3 -3
  194. package/dist/src/agent/data-acquisition/service.js +1 -1
  195. package/dist/src/agent/embedded/codemode-extension.js +1 -1
  196. package/dist/src/agent/embedded/execution-tool-policy.js +1 -1
  197. package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
  198. package/dist/src/agent/embedded/run-for-session.js +5 -5
  199. package/dist/src/agent/embedded/run-turn.js +15 -15
  200. package/dist/src/agent/embedded/session-runner.js +4 -4
  201. package/dist/src/agent/embedded/session-tool-result-guard.js +2 -2
  202. package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
  203. package/dist/src/agent/embedded/xopc-tools-bridge.js +1 -1
  204. package/dist/src/agent/external-tools/cliProvider.js +4 -4
  205. package/dist/src/agent/external-tools/composio-provider.js +4 -4
  206. package/dist/src/agent/external-tools/endpoint-provider.js +6 -6
  207. package/dist/src/agent/external-tools/extension-provider.js +1 -1
  208. package/dist/src/agent/external-tools/gateway-tools.js +3 -3
  209. package/dist/src/agent/external-tools/memory-provider.js +1 -1
  210. package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
  211. package/dist/src/agent/image/generation/runtime.js +1 -1
  212. package/dist/src/agent/image/index.js +1 -1
  213. package/dist/src/agent/image/load-image-media.js +1 -1
  214. package/dist/src/agent/inbound/attachment-pipeline.js +3 -3
  215. package/dist/src/agent/inbound/inbound-loop.js +2 -2
  216. package/dist/src/agent/independent-execution.js +1 -1
  217. package/dist/src/agent/index.js +3 -3
  218. package/dist/src/agent/mcp/connection-drafts.js +1 -1
  219. package/dist/src/agent/memory/context-budget.js +1 -1
  220. package/dist/src/agent/memory/context-recovery.js +1 -1
  221. package/dist/src/agent/memory/index.js +1 -1
  222. package/dist/src/agent/orchestration/llm-turn-retry.js +1 -1
  223. package/dist/src/agent/prompt/response-language.js +1 -1
  224. package/dist/src/agent/prompt/service-prompt-builder.js +4 -4
  225. package/dist/src/agent/prompt/system-prompt-params.js +1 -1
  226. package/dist/src/agent/sandbox/exec-policy.js +1 -1
  227. package/dist/src/agent/service/direct-turn-helpers.js +4 -4
  228. package/dist/src/agent/service/process-direct-streaming.js +7 -7
  229. package/dist/src/agent/service/webchat-tts.js +2 -2
  230. package/dist/src/agent/service.js +23 -23
  231. package/dist/src/agent/session/session-config-service.js +2 -2
  232. package/dist/src/agent/session/session-hydrator.js +1 -1
  233. package/dist/src/agent/session/session-inspector.js +1 -1
  234. package/dist/src/agent/skills/filesystem-watcher.js +1 -1
  235. package/dist/src/agent/skills/hub-lock.js +1 -1
  236. package/dist/src/agent/skills/hub-pull.js +2 -2
  237. package/dist/src/agent/skills/index.js +1 -1
  238. package/dist/src/agent/skills/managed-store.js +1 -1
  239. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +1 -1
  240. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
  241. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  242. package/dist/src/agent/skills/skill-manager.js +1 -1
  243. package/dist/src/agent/skills/skill-sources.js +1 -1
  244. package/dist/src/agent/source-context/index.js +1 -1
  245. package/dist/src/agent/tasks/task-judge-service.js +8 -8
  246. package/dist/src/agent/tools/automation-tool.d.ts +2 -1
  247. package/dist/src/agent/tools/automation-tool.js +10 -3
  248. package/dist/src/agent/tools/create-share-tool.js +3 -3
  249. package/dist/src/agent/tools/dataBatch.js +1 -1
  250. package/dist/src/agent/tools/delegate-tool.js +3 -3
  251. package/dist/src/agent/tools/exec-command.js +1 -1
  252. package/dist/src/agent/tools/executor.js +1 -1
  253. package/dist/src/agent/tools/factory.js +19 -18
  254. package/dist/src/agent/tools/fetch-text.js +1 -1
  255. package/dist/src/agent/tools/image-generate-tool.js +3 -3
  256. package/dist/src/agent/tools/index.js +5 -5
  257. package/dist/src/agent/tools/list-dir.js +1 -1
  258. package/dist/src/agent/tools/personal-attention-tool.js +2 -2
  259. package/dist/src/agent/tools/personal-read-tool.js +2 -2
  260. package/dist/src/agent/tools/personal-request-result-tool.js +1 -1
  261. package/dist/src/agent/tools/personal-request-tool.js +4 -4
  262. package/dist/src/agent/tools/personal-result-tool.js +1 -1
  263. package/dist/src/agent/tools/personal-task-tool.js +7 -6
  264. package/dist/src/agent/tools/publish-artifacts.js +2 -2
  265. package/dist/src/agent/tools/read.js +2 -2
  266. package/dist/src/agent/tools/review-workspace.js +1 -1
  267. package/dist/src/agent/tools/send-media.js +1 -1
  268. package/dist/src/agent/tools/session-search-tool.js +1 -1
  269. package/dist/src/agent/tools/skills-tools.js +1 -1
  270. package/dist/src/agent/tools/task-collaboration-tool.js +2 -2
  271. package/dist/src/agent/tools/tts-tool.js +1 -1
  272. package/dist/src/agent/tools/user-context-tool.js +2 -2
  273. package/dist/src/agent/tools/web.js +1 -1
  274. package/dist/src/agent/tools/write.js +2 -2
  275. package/dist/src/agent/tools/xopc-use-tool.js +12 -10
  276. package/dist/src/agent/transcript/index.js +2 -2
  277. package/dist/src/agent/transcript/transcript-hygiene.js +2 -2
  278. package/dist/src/agent-catalog/capabilities.js +2 -2
  279. package/dist/src/agent-catalog/repository.js +1 -1
  280. package/dist/src/agent-matching/delegation-service.js +1 -1
  281. package/dist/src/ai-assist/text-assist.js +1 -1
  282. package/dist/src/auth/credentials.js +1 -1
  283. package/dist/src/auth/oauth/openai.js +1 -1
  284. package/dist/src/auth/oauth/xopc-cloud.js +1 -1
  285. package/dist/src/auth/profiles/store.js +1 -1
  286. package/dist/src/automations/api/routes.js +38 -0
  287. package/dist/src/automations/capabilities/drafts.js +1 -1
  288. package/dist/src/automations/capabilities/write.js +25 -9
  289. package/dist/src/automations/configuration-conversation.d.ts +16 -0
  290. package/dist/src/automations/configuration-conversation.js +120 -0
  291. package/dist/src/automations/delivery/delivery-router.d.ts +2 -0
  292. package/dist/src/automations/delivery/delivery-router.js +30 -9
  293. package/dist/src/automations/domain/index.js +1 -1
  294. package/dist/src/automations/domain/types.d.ts +1 -0
  295. package/dist/src/automations/draft/automation-draft-service.js +1 -1
  296. package/dist/src/automations/index.js +6 -6
  297. package/dist/src/automations/service/action-executor.js +42 -13
  298. package/dist/src/automations/service/automation-service.d.ts +6 -0
  299. package/dist/src/automations/service/automation-service.js +47 -12
  300. package/dist/src/automations/service/index.js +2 -2
  301. package/dist/src/browser/native-messaging-host.js +1 -1
  302. package/dist/src/browser/providers/browser-ext-install.js +2 -2
  303. package/dist/src/capabilities/runtime/dispatcher.js +1 -1
  304. package/dist/src/capabilities/runtime/product.js +1 -1
  305. package/dist/src/capabilities/store-connector.js +1 -1
  306. package/dist/src/channels/attachments/voice-stt-webchat.js +2 -2
  307. package/dist/src/channels/index.js +2 -2
  308. package/dist/src/channels/outbound-sender.js +1 -1
  309. package/dist/src/channels/pairing/allow-from-file.js +9 -9
  310. package/dist/src/channels/pairing/pairing-store.js +6 -6
  311. package/dist/src/chat-commands/agent-edit.js +1 -1
  312. package/dist/src/chat-commands/builtins/config.js +3 -3
  313. package/dist/src/chat-commands/builtins/session.js +1 -1
  314. package/dist/src/chat-commands/builtins/thinking.js +1 -1
  315. package/dist/src/chat-commands/builtins/tts.js +1 -1
  316. package/dist/src/chat-commands/context.js +1 -1
  317. package/dist/src/chat-commands/index.js +3 -3
  318. package/dist/src/cli/commands/agent.js +8 -8
  319. package/dist/src/cli/commands/agents.js +1 -1
  320. package/dist/src/cli/commands/config.js +1 -1
  321. package/dist/src/cli/commands/connectors.js +1 -1
  322. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
  323. package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
  324. package/dist/src/cli/commands/extension-agent-plugin.js +2 -2
  325. package/dist/src/cli/commands/extension-dev.js +1 -1
  326. package/dist/src/cli/commands/extension.js +2 -2
  327. package/dist/src/cli/commands/image.js +1 -1
  328. package/dist/src/cli/commands/init.js +1 -1
  329. package/dist/src/cli/commands/mcp.js +2 -2
  330. package/dist/src/cli/commands/models.js +3 -3
  331. package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
  332. package/dist/src/cli/commands/onboard/model.js +1 -1
  333. package/dist/src/cli/commands/onboard.js +1 -1
  334. package/dist/src/cli/commands/project.js +1 -1
  335. package/dist/src/cli/commands/skills.js +2 -2
  336. package/dist/src/cli/commands/tunnel.js +4 -4
  337. package/dist/src/cli/extension-cli-register.js +6 -6
  338. package/dist/src/cli/utils/gateway-client.js +1 -1
  339. package/dist/src/cli/utils/init-workspace-core.js +3 -3
  340. package/dist/src/cli/utils/session.js +1 -1
  341. package/dist/src/computer/broker.js +16 -3
  342. package/dist/src/computer/diagnostics.js +1 -1
  343. package/dist/src/computer/errors.js +4 -0
  344. package/dist/src/computer/flows.js +1 -1
  345. package/dist/src/computer/model-adapter.js +1 -1
  346. package/dist/src/computer/runtime.js +3 -3
  347. package/dist/src/config/agent-profile.js +1 -1
  348. package/dist/src/config/index.js +4 -4
  349. package/dist/src/config/loader.js +1 -1
  350. package/dist/src/config/models-json.js +1 -1
  351. package/dist/src/connectors/cli/authorization.js +1 -1
  352. package/dist/src/connectors/composio-sessions.js +1 -1
  353. package/dist/src/connectors/composio.js +1 -1
  354. package/dist/src/connectors/connected-source-ingestion.js +3 -3
  355. package/dist/src/connectors/connected-source-understanding.js +5 -5
  356. package/dist/src/connectors/connection-recovery-service.js +4 -4
  357. package/dist/src/connectors/content-enrichment.js +1 -1
  358. package/dist/src/connectors/health.js +1 -1
  359. package/dist/src/discussions/live-worker.js +1 -1
  360. package/dist/src/discussions/sealer.js +1 -1
  361. package/dist/src/endpoint-tools/index.js +1 -1
  362. package/dist/src/endpoint-tools/runtime.js +2 -2
  363. package/dist/src/execution-environments/local-worktree-manager.js +1 -1
  364. package/dist/src/extensions/activation-context.js +3 -3
  365. package/dist/src/extensions/agent-plugins/auth.js +1 -1
  366. package/dist/src/extensions/agent-plugins/skill-catalog.js +3 -3
  367. package/dist/src/extensions/agent-plugins/source-http-fetch.js +1 -1
  368. package/dist/src/extensions/agent-plugins/validation.js +1 -1
  369. package/dist/src/extensions/api.js +3 -3
  370. package/dist/src/extensions/bundled-extension-activation.js +1 -1
  371. package/dist/src/extensions/index.js +3 -3
  372. package/dist/src/extensions/loader.js +2 -2
  373. package/dist/src/extensions/lockfile.js +1 -1
  374. package/dist/src/extensions/sdk/index.js +1 -1
  375. package/dist/src/extensions/sdk/media.js +1 -1
  376. package/dist/src/gateway/agents-admin.js +2 -2
  377. package/dist/src/gateway/automation-completion-delivery.d.ts +4 -0
  378. package/dist/src/gateway/automation-completion-delivery.js +14 -0
  379. package/dist/src/gateway/device-routes.js +2 -2
  380. package/dist/src/gateway/file-path-classifier.js +1 -1
  381. package/dist/src/gateway/global-defaults-admin.js +1 -1
  382. package/dist/src/gateway/hono/app.js +3 -3
  383. package/dist/src/gateway/hono/lib/config-payload.js +3 -3
  384. package/dist/src/gateway/hono/routes/agents.js +1 -1
  385. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  386. package/dist/src/gateway/hono/routes/commands-skills.js +4 -4
  387. package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
  388. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  389. package/dist/src/gateway/hono/routes/context-sources.js +1 -1
  390. package/dist/src/gateway/hono/routes/endpoint-tools.js +1 -1
  391. package/dist/src/gateway/hono/routes/home.js +1 -1
  392. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  393. package/dist/src/gateway/hono/routes/memory-learning.js +3 -3
  394. package/dist/src/gateway/hono/routes/models.js +4 -4
  395. package/dist/src/gateway/hono/routes/notes.js +3 -3
  396. package/dist/src/gateway/hono/routes/phone-dependencies.js +1 -1
  397. package/dist/src/gateway/hono/routes/phone-setup.js +2 -2
  398. package/dist/src/gateway/hono/routes/phone.js +2 -2
  399. package/dist/src/gateway/hono/routes/projects.js +5 -5
  400. package/dist/src/gateway/hono/routes/runtime-tools.js +1 -1
  401. package/dist/src/gateway/hono/routes/session-command-handler.js +2 -2
  402. package/dist/src/gateway/hono/routes/session-input-handler.js +5 -5
  403. package/dist/src/gateway/hono/routes/sessions.js +3 -3
  404. package/dist/src/gateway/hono/routes/shares.js +2 -2
  405. package/dist/src/gateway/hono/routes/side-chats.js +1 -1
  406. package/dist/src/gateway/hono/routes/site-shares.js +1 -1
  407. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  408. package/dist/src/gateway/hono/routes/user-model.js +7 -7
  409. package/dist/src/gateway/hono/routes/voice.js +7 -7
  410. package/dist/src/gateway/image-generation-setup.js +1 -1
  411. package/dist/src/gateway/lock.js +11 -11
  412. package/dist/src/gateway/media-access.js +1 -1
  413. package/dist/src/gateway/mobile-privacy.js +2 -2
  414. package/dist/src/gateway/ports.js +6 -6
  415. package/dist/src/gateway/provider-model-setup.js +1 -1
  416. package/dist/src/gateway/respawn.js +2 -1
  417. package/dist/src/gateway/server.js +1 -1
  418. package/dist/src/gateway/service/agent-runner.js +3 -3
  419. package/dist/src/gateway/service/config-coordinator.js +2 -2
  420. package/dist/src/gateway/service/marketplace-service.js +2 -2
  421. package/dist/src/gateway/service/run-gateway-agent.js +4 -4
  422. package/dist/src/gateway/service/session-command-service.js +2 -2
  423. package/dist/src/gateway/service.js +46 -46
  424. package/dist/src/gateway/session-context-summary.js +4 -4
  425. package/dist/src/gateway/workspace-editor-path.js +2 -2
  426. package/dist/src/gateway/xopc-cloud-capability-setup.js +2 -2
  427. package/dist/src/home-intelligence/generator.js +2 -2
  428. package/dist/src/imports/importService.js +1 -1
  429. package/dist/src/imports/inventory.js +2 -2
  430. package/dist/src/imports/productImport.js +1 -1
  431. package/dist/src/imports/runtime.js +1 -1
  432. package/dist/src/infra/gateway-processes.js +2 -2
  433. package/dist/src/infra/path-env.js +3 -3
  434. package/dist/src/infra/update-global.js +9 -9
  435. package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
  436. package/dist/src/knowledge/index.js +1 -1
  437. package/dist/src/knowledge-memory/repository.js +1 -1
  438. package/dist/src/knowledge-memory/usage-policy.js +1 -1
  439. package/dist/src/local-apps/service.js +3 -3
  440. package/dist/src/mcp/gateway-http-client.js +1 -1
  441. package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
  442. package/dist/src/memory-learning/source-learning.js +5 -5
  443. package/dist/src/memory-learning/task-receipts.js +1 -1
  444. package/dist/src/notes/agent-context.js +4 -4
  445. package/dist/src/notes/index.js +1 -1
  446. package/dist/src/notes/service.js +3 -3
  447. package/dist/src/observability/store.d.ts +9 -0
  448. package/dist/src/observability/store.js +77 -32
  449. package/dist/src/personal-agent/capability-service.js +2 -2
  450. package/dist/src/personal-agent/communication.d.ts +1 -1
  451. package/dist/src/personal-agent/communication.js +3 -6
  452. package/dist/src/personal-agent/proactivity/routes.js +1 -1
  453. package/dist/src/personal-agent/proactivity/service.js +7 -7
  454. package/dist/src/personal-agent/prompt-context.js +7 -7
  455. package/dist/src/personal-agent/prompts.js +1 -1
  456. package/dist/src/personal-agent/reply-composer.js +10 -10
  457. package/dist/src/personal-agent/request-delivery.js +2 -2
  458. package/dist/src/personal-agent/request-service.js +9 -8
  459. package/dist/src/personal-agent/result-reader.js +1 -1
  460. package/dist/src/personal-agent/service.js +2 -2
  461. package/dist/src/personal-agent/task-cancel.js +1 -1
  462. package/dist/src/phone/repository.js +1 -1
  463. package/dist/src/phone/runtime.js +4 -4
  464. package/dist/src/projects/index.js +1 -1
  465. package/dist/src/projects/project-agent-suggestion.js +1 -1
  466. package/dist/src/projects/project-service.js +1 -1
  467. package/dist/src/projects/project-skill-service.js +2 -2
  468. package/dist/src/projects/workspace.js +1 -1
  469. package/dist/src/providers/model-reference-auditor.js +1 -1
  470. package/dist/src/realtime/runtime.js +1 -1
  471. package/dist/src/remote-access/exposure-manager.js +1 -1
  472. package/dist/src/routing/agent-session-key.js +1 -1
  473. package/dist/src/runtime-tools/archive.js +1 -1
  474. package/dist/src/runtime-tools/phone-dependencies.js +2 -2
  475. package/dist/src/session/index.js +2 -2
  476. package/dist/src/session/init-session-turn.js +1 -1
  477. package/dist/src/session/resolve-session.js +1 -1
  478. package/dist/src/session/store.js +5 -5
  479. package/dist/src/session/thinking-resolve.js +1 -1
  480. package/dist/src/share/hosted-session-share.js +2 -2
  481. package/dist/src/share/session-share-service.js +1 -1
  482. package/dist/src/share/share-store.js +1 -1
  483. package/dist/src/share/share-thumbnail.js +1 -1
  484. package/dist/src/share/site-share-store.js +1 -1
  485. package/dist/src/storage/sqlite/connection.js +9 -9
  486. package/dist/src/tasks/capabilities/read.js +2 -2
  487. package/dist/src/tasks/capabilities/write.js +2 -2
  488. package/dist/src/tasks/home-query-service.js +1 -1
  489. package/dist/src/tasks/index.js +4 -4
  490. package/dist/src/tasks/task-allocation-service.js +6 -6
  491. package/dist/src/tasks/task-application-service.js +6 -6
  492. package/dist/src/tasks/task-collaboration-delivery.js +1 -1
  493. package/dist/src/tasks/task-context-assembler.js +2 -2
  494. package/dist/src/tasks/task-contract-planner.js +3 -2
  495. package/dist/src/tasks/task-handoff-service.js +1 -1
  496. package/dist/src/tasks/task-handoff.js +5 -5
  497. package/dist/src/tasks/task-main-update-decision-service.js +3 -3
  498. package/dist/src/tasks/task-model-call.js +1 -1
  499. package/dist/src/tasks/task-research-result.js +4 -4
  500. package/dist/src/tasks/task-result-delivery-repository.js +1 -1
  501. package/dist/src/tasks/task-result-delivery-service.js +2 -2
  502. package/dist/src/tasks/task-run-coordinator.js +4 -4
  503. package/dist/src/tasks/task-run-dispatcher.js +1 -1
  504. package/dist/src/tui/backends/embedded-backend.js +12 -12
  505. package/dist/src/tui/backends/gateway-realtime-backend.js +2 -2
  506. package/dist/src/tui/extension-host/load-extensions.js +2 -2
  507. package/dist/src/tui/tui-commands.js +5 -5
  508. package/dist/src/tui/tui-picker-overlay.js +1 -1
  509. package/dist/src/tui/tui-skills-autocomplete.js +1 -1
  510. package/dist/src/tui/tui-startup-resources.js +4 -4
  511. package/dist/src/tui/tui.js +4 -4
  512. package/dist/src/tunnel/gateway-lifecycle.js +1 -1
  513. package/dist/src/user-context/access-policy.js +2 -2
  514. package/dist/src/user-model/bootstrap.js +1 -1
  515. package/dist/src/user-model/capture/executor.js +1 -1
  516. package/dist/src/user-model/index.js +2 -2
  517. package/dist/src/user-model/usage-policy.js +1 -1
  518. package/dist/src/voice/realtime/memory-context.js +5 -5
  519. package/dist/src/voice/realtime/omniRoute.js +1 -1
  520. package/dist/src/voice/realtime/persona-context.js +1 -1
  521. package/dist/src/voice/realtime/runtime.js +4 -4
  522. package/dist/src/voice/stt/index.js +2 -2
  523. package/dist/src/voice/stt/preflight.js +1 -1
  524. package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
  525. package/dist/src/voice/stt/providers/bailian-plan-transcription.js +1 -1
  526. package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
  527. package/dist/src/voice/stt/transcribe-core.js +1 -1
  528. package/dist/src/voice/tts/index.js +3 -3
  529. package/dist/src/voice/tts/merge-config.js +1 -1
  530. package/dist/src/voice/tts/payload.js +1 -1
  531. package/dist/src/voice/tts/providers/bailian-plan-speech.js +1 -1
  532. package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
  533. package/dist/src/voice/tts/speak-core.js +1 -1
  534. package/dist/src/work-discovery/service.js +7 -7
  535. package/package.json +3 -3
  536. package/dist/gateway/static/root/assets/agent-avatar-display-Cy50vjbq.js +0 -2
  537. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-V4NX_cWz.js +0 -1
  538. package/dist/gateway/static/root/assets/agent-plugin-dialog-CQ5LLDMO.js +0 -1
  539. package/dist/gateway/static/root/assets/app-management-settings-panel-C1Zs-eha.js +0 -1
  540. package/dist/gateway/static/root/assets/appearance-settings-lIfGokbz.js +0 -1
  541. package/dist/gateway/static/root/assets/apps-page-CUvtsRYD.js +0 -1
  542. package/dist/gateway/static/root/assets/automation-api-Bld8blNl.js +0 -1
  543. package/dist/gateway/static/root/assets/automation-display-BcfZOQTC.js +0 -2
  544. package/dist/gateway/static/root/assets/automations-workspace-BgtYY2Mm.js +0 -8
  545. package/dist/gateway/static/root/assets/browser-automations-page-DIUNY94X.js +0 -3
  546. package/dist/gateway/static/root/assets/capabilities-page-DFW4Y0x8.js +0 -2
  547. package/dist/gateway/static/root/assets/capabilities-settings-panel-uOHSMQPZ.js +0 -8
  548. package/dist/gateway/static/root/assets/channels-D2a69dSt.js +0 -1
  549. package/dist/gateway/static/root/assets/chat-page-CG38tCHE.js +0 -71
  550. package/dist/gateway/static/root/assets/composer-payload-handoff-BU3B-C26.js +0 -1
  551. package/dist/gateway/static/root/assets/connected-providers-grid-Dmnu2zle.js +0 -1
  552. package/dist/gateway/static/root/assets/connectors-page-DT_WrC1y.js +0 -1
  553. package/dist/gateway/static/root/assets/desktop-pet-lorocS9j.js +0 -1
  554. package/dist/gateway/static/root/assets/desktop-pet-settings-CEcohlZq.js +0 -1
  555. package/dist/gateway/static/root/assets/device-pairing-wizard-CLCPuf4R.js +0 -1
  556. package/dist/gateway/static/root/assets/discussion-annotation-sync-BKjf9gWe.js +0 -1
  557. package/dist/gateway/static/root/assets/extension-iframe-host-Dhkk5JV2.js +0 -1
  558. package/dist/gateway/static/root/assets/extension-page-Brps2XDP.js +0 -1
  559. package/dist/gateway/static/root/assets/extension-settings-page-CHY68DpG.js +0 -1
  560. package/dist/gateway/static/root/assets/gateway-realtime-store-DQqMBruB.js +0 -1
  561. package/dist/gateway/static/root/assets/gateway-restart-Ch128Lrr.js +0 -1
  562. package/dist/gateway/static/root/assets/home-page-DaMFBYo1.js +0 -2
  563. package/dist/gateway/static/root/assets/image-generation-api-I_JgLL_m.js +0 -1
  564. package/dist/gateway/static/root/assets/index-DS60ZSdQ.js +0 -11
  565. package/dist/gateway/static/root/assets/index-DY2Y83b9.css +0 -1
  566. package/dist/gateway/static/root/assets/install-connector-dialog-DU1Tz7B3.js +0 -1
  567. package/dist/gateway/static/root/assets/local-app-workbench-page-qPflPuQD.js +0 -1
  568. package/dist/gateway/static/root/assets/logs-page-CbY1N-zi.js +0 -2
  569. package/dist/gateway/static/root/assets/management-settings-Diy12JfQ.js +0 -1
  570. package/dist/gateway/static/root/assets/messages-DRR9N3HC.js +0 -3
  571. package/dist/gateway/static/root/assets/model-selector-DCYA_ntf.js +0 -1
  572. package/dist/gateway/static/root/assets/navigation-BkjnOw30.js +0 -1
  573. package/dist/gateway/static/root/assets/note-detail-panel-DBs1yHLy.js +0 -5
  574. package/dist/gateway/static/root/assets/note-image-lightbox-CivkB6LB.js +0 -1
  575. package/dist/gateway/static/root/assets/notes-page-DL3c-41a.js +0 -8
  576. package/dist/gateway/static/root/assets/page-header-store-DH8K0xii.js +0 -1
  577. package/dist/gateway/static/root/assets/personal-page-B5DP3lO-.js +0 -1
  578. package/dist/gateway/static/root/assets/personal-settings-panel-DjDc5Kaz.js +0 -1
  579. package/dist/gateway/static/root/assets/phone-model-picker-u8YIQCgo.js +0 -1
  580. package/dist/gateway/static/root/assets/phone-settings-page-el3pT0PD.js +0 -1
  581. package/dist/gateway/static/root/assets/plugin-details-dialog-CTBs1Jde.js +0 -1
  582. package/dist/gateway/static/root/assets/popover-select-DniHw2dy.js +0 -1
  583. package/dist/gateway/static/root/assets/preference-select-fields-D7oluyHN.js +0 -1
  584. package/dist/gateway/static/root/assets/product-automation-feedback-DsUSqCOX.js +0 -7
  585. package/dist/gateway/static/root/assets/project-detail-page-BKvWLiMw.js +0 -7
  586. package/dist/gateway/static/root/assets/project-understanding-BCQr0AZ_.js +0 -1
  587. package/dist/gateway/static/root/assets/projects-page-D4g7bB7X.js +0 -1
  588. package/dist/gateway/static/root/assets/route-preload-B5UiReO7.js +0 -2
  589. package/dist/gateway/static/root/assets/runtime-tools-settings-panel-MKlLFuow.js +0 -1
  590. package/dist/gateway/static/root/assets/schema-form-v4N4lawq.js +0 -1
  591. package/dist/gateway/static/root/assets/service-recommendation-list-B1xuVT3N.js +0 -1
  592. package/dist/gateway/static/root/assets/session-manager-5l9q0cd5.js +0 -16
  593. package/dist/gateway/static/root/assets/sessions-page-DsLw2aMD.js +0 -1
  594. package/dist/gateway/static/root/assets/settings-advanced-gate-B5lQeVNi.js +0 -1
  595. package/dist/gateway/static/root/assets/setup-status-panel-MJE3B_LX.js +0 -1
  596. package/dist/gateway/static/root/assets/share-preview-page-Bsrv_zOQ.js +0 -2
  597. package/dist/gateway/static/root/assets/shares-settings-CfIRv4uX.js +0 -1
  598. package/dist/gateway/static/root/assets/skill-api-B_W1K3sv.js +0 -1
  599. package/dist/gateway/static/root/assets/skills-page-DtBloYeU.js +0 -2
  600. package/dist/gateway/static/root/assets/task-detail-page-Drrv-Hp0.js +0 -2
  601. package/dist/gateway/static/root/assets/task-result-evidence-D1Kyskm_.js +0 -1
  602. package/dist/gateway/static/root/assets/tracing-settings-page-B12u5D9A.js +0 -1
  603. package/dist/gateway/static/root/assets/tunnel-api-DGO56LQU.js +0 -1
  604. package/dist/gateway/static/root/assets/usage-page-Ud2U9UG1.js +0 -1
  605. package/dist/gateway/static/root/assets/use-composer-attachments-BCbMj-MN.js +0 -2
  606. package/dist/gateway/static/root/assets/use-file-preview-expanded-DSpCRXUW.js +0 -2
  607. package/dist/gateway/static/root/assets/user-model-page-p5iPfnwl.js +0 -2
  608. package/dist/gateway/static/root/assets/voice-transcribe-api-TInEfIYo.js +0 -1
  609. package/dist/gateway/static/root/assets/work-discovery-page-p-8ciZ0i.js +0 -1
  610. package/dist/gateway/static/root/assets/workspace-editor-agent-store-B94Q2nN8.js +0 -1
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/agent-avatar-dicebear-Dv5Rda4y.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,t as n}from"./vendor-react-BOUWij0V.js";import{t as r}from"./preload-helper-Czpn1I53.js";import{i,l as a}from"./locale-store-5Hf8J8-_.js";import{t as o}from"./cn-0WouolD0.js";import{t as s}from"./loopi-CNtmi9FU.js";var c=e(t(),1),l=new Map,u=`xopc-agent-avatar-updated`;function d(e){let t=(l.get(e)??0)+1;return l.set(e,t),typeof window<`u`&&window.dispatchEvent(new CustomEvent(u,{detail:{agentId:e}})),t}function f(e){return l.get(e)??0}var p=`xopc:custom`,m=`xopc:dicebear:`,h=[`adventurer`,`bottts`,`lorelei`,`thumbs`,`fun-emoji`];function g(e){return h.includes(e)}function _(e,t){return`${m}${e}:${t}`}function v(e){if(!e.startsWith(m))return null;let t=e.slice(14),n=t.indexOf(`:`);if(n<=0)return null;let r=t.slice(0,n),i=t.slice(n+1);return!g(r)||!i.trim()?null:{styleId:r,seed:i}}var y=n();function b(e){let t=0;for(let n=0;n<e.length;n+=1)t=t*31+e.charCodeAt(n)>>>0;return t}function x(e,t=128){let n=b(e)%360,r=(e.trim().charAt(0)||`A`).toUpperCase(),i=`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 ${t} ${t}"><rect width="100%" height="100%" rx="${t/2}" fill="hsl(${n} 58% 42%)"/><text x="50%" y="54%" text-anchor="middle" dominant-baseline="middle" font-family="Inter, system-ui, sans-serif" font-size="${Math.round(t*.42)}" font-weight="700" fill="white">${r}</text></svg>`;return`data:image/svg+xml,${encodeURIComponent(i)}`}function S(e,t,n,r){let a=t?.trim()??``,o=x(e,n);if(a.startsWith(`xopc:loopi:`)){let e=a.slice(11);if(e===`idle`||e===`listen`||e===`curious`||e===`care`)return{kind:`loopi`,mood:e}}if(!a)return{kind:`dicebear`,styleId:`adventurer`,seed:e,fallbackSrc:o};if(a===`xopc:custom`){let t=i(`/api/agents/${encodeURIComponent(e)}/avatar`),n=new URLSearchParams;r>0&&n.set(`v`,String(r));let a=n.toString();return{kind:`authenticated`,url:a?`${t}?${a}`:t,fallbackSrc:o}}if(/^https?:\/\//i.test(a))return{kind:`sync`,src:a};let s=v(a);return s?{kind:`dicebear`,styleId:s.styleId,seed:s.seed,fallbackSrc:o}:{kind:`dicebear`,styleId:`adventurer`,seed:e,fallbackSrc:o}}function C(e){let t=a(e=>e.conversationId),n=e.token===void 0?t:e.token,{agentId:i,avatar:l,size:d=44}=e,[,p]=(0,c.useState)(0);(0,c.useEffect)(()=>{let e=e=>{e.detail?.agentId===i&&p(e=>e+1)};return window.addEventListener(u,e),()=>window.removeEventListener(u,e)},[i]);let m=f(i),h=(0,c.useMemo)(()=>S(i,l,d,m),[i,l,n,d,m]),g=h.kind===`sync`?h.src:h.kind===`loopi`?x(i,d):h.fallbackSrc,[_,v]=(0,c.useState)(g);return(0,c.useEffect)(()=>{v(g)},[g]),(0,c.useEffect)(()=>{if(h.kind!==`authenticated`||(v(h.fallbackSrc),!n))return;let e=new AbortController,t;return fetch(h.url,{credentials:`same-origin`,signal:e.signal,redirect:`error`}).then(async n=>{if(!n.ok)return;let r=await n.blob();e.signal.aborted||(t=URL.createObjectURL(r),v(t))}).catch(()=>{}),()=>{e.abort(),t&&URL.revokeObjectURL(t)}},[h,n]),(0,c.useEffect)(()=>{if(h.kind!==`dicebear`)return;let e=!1;return r(async()=>{let{dicebearToDataUri:e}=await import(`./agent-avatar-dicebear-Dv5Rda4y.js`);return{dicebearToDataUri:e}},__vite__mapDeps([0,1])).then(({dicebearToDataUri:t})=>{e||v(t(h.styleId,h.seed,d))}).catch(()=>{e||v(h.fallbackSrc)}),()=>{e=!0}},[h,d]),h.kind===`loopi`?(0,y.jsx)(`span`,{className:o(`inline-flex items-center justify-center rounded-full bg-surface-hover`,e.className),style:{width:d,height:d},children:(0,y.jsx)(s,{variant:`avatar`,mood:h.mood,className:`size-full`})}):(0,y.jsx)(`img`,{src:_,alt:``,width:d,height:d,className:o(`rounded-full object-cover bg-surface-hover`,e.className),draggable:!1,onError:()=>{v(x(i,d))}})}export{g as a,_ as i,h as n,v as o,p as r,d as s,C as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{m as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{l as a,n as o}from"./locale-store-5Hf8J8-_.js";import{t as s}from"./circle-check-C23XjkUj.js";import{t as c}from"./gauge-C78eD2BA.js";import{t as l}from"./list-checks-BbsExAoq.js";import{t as ee}from"./puzzle-BptcPjKI.js";import{t as te}from"./search-DA7gz22f.js";import{t as u}from"./shield-check-BU58siTV.js";import{t as d}from"./sliders-horizontal-DqsYor6I.js";import{t as ne}from"./cn-0WouolD0.js";import{i as f}from"./vendor-swr-CdRzEUwF.js";import{t as re}from"./button-CnRSIP6m.js";import{t as p}from"./skeleton-BI5TyibZ.js";import{n as m,r as h}from"./cloud-credits-B-nbtkqv.js";import{t as g}from"./electron-env-DHOGevH3.js";import{t as ie}from"./sliding-tab-list-DuQyViqe.js";import{t as _}from"./skill-list-api-Cn07P6qZ.js";import{n as v}from"./settings-mode-store-Dem6-TBe.js";import{n as ae,t as y}from"./global-defaults-api-D8EB2vfY.js";import{t as oe}from"./settings-advanced-section-c9_iZ-46.js";import{t as b}from"./number-input-El7Szeln.js";import{n as se,t as x}from"./settings-page-header-C8a_oOyw.js";import"./settings-page-layout-CTSRWljG.js";import{n as S,t as C}from"./use-autosave-B3p2QWaF.js";var ce=n(),w=e(t(),1),T=r(),E=`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/15`;function D(e){let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:void 0}function le({draft:e,setDraft:t,zh:n}){let[r,i]=(0,w.useState)(()=>e.runtime.cloudCreditLimitPerRunMicro?m(e.runtime.cloudCreditLimitPerRunMicro):``),[a,o]=(0,w.useState)(!1);return(0,T.jsxs)(`label`,{className:`block text-xs font-medium text-fg-muted`,children:[n?`每次运行的 Cloud 消费上限(Credits)`:`Cloud spend limit per run (Credits)`,(0,T.jsx)(`input`,{type:`text`,inputMode:`decimal`,value:r,"aria-invalid":a,placeholder:n?`不设置额外上限`:`No additional limit`,className:`${E} mt-2`,onChange:n=>{let r=n.target.value;i(r);try{let n=r===``?void 0:h(r);if(n===`0`||n&&n.length>15)throw Error(`Invalid limit`);o(!1),t({...e,runtime:{...e.runtime,cloudCreditLimitPerRunMicro:n}})}catch{o(!0)}},onBlur:()=>{a&&i(e.runtime.cloudCreditLimitPerRunMicro?m(e.runtime.cloudCreditLimitPerRunMicro):``),o(!1)}}),(0,T.jsx)(`span`,{className:`mt-2 block font-normal ${a?`text-danger`:`text-fg-subtle`}`,children:a?n?`请输入大于零、最多四位小数的 Credits。无效输入不会保存。`:`Enter positive Credits with up to four decimals. Invalid input is not saved.`:n?`模型、图片和文件语音调用共享上限;不支持实时语音或 Cloud 电脑控制,不包含运行前后的后台调用。达到上限后停止,调整后需手动继续。`:`Shared by model, image and file audio calls during a run. Does not support realtime voice or Cloud computer use; excludes background calls outside the run. Stops at the limit; continue manually after adjusting it.`})]})}function O(e){let t=(0,ce.c)(104),{draft:n,setDraft:r,zh:i}=e,a=i?`费用控制`:`Spending control`,o;t[0]===a?o=t[1]:(o=(0,T.jsx)(`h2`,{className:`mb-4 text-base font-semibold text-fg`,children:a}),t[0]=a,t[1]=o);let s;t[2]!==n||t[3]!==r||t[4]!==i?(s=(0,T.jsx)(le,{draft:n,setDraft:r,zh:i}),t[2]=n,t[3]=r,t[4]=i,t[5]=s):s=t[5];let c;t[6]!==o||t[7]!==s?(c=(0,T.jsxs)(`section`,{className:`rounded-xl bg-surface-hover/20 p-5`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8];let l=i?`执行与缓存策略`:`Execution and cache policy`,ee=i?`轮数:${n.runtime.maxTurns??`默认`} · 超时:${n.runtime.timeoutMs??`默认`} · 缓存:${n.runtime.promptCache?.mode??`默认`} · Codemode:${n.runtime.codemode?.enabled?`开启`:`关闭`}`:`Turns: ${n.runtime.maxTurns??`default`} · Timeout: ${n.runtime.timeoutMs??`default`} · Cache: ${n.runtime.promptCache?.mode??`default`} · Codemode: ${n.runtime.codemode?.enabled?`on`:`off`}`,te=n.runtime.codemode?.enabled??!1,u;t[9]!==n||t[10]!==r?(u=e=>r({...n,runtime:{...n.runtime,codemode:{...n.runtime.codemode,enabled:e.target.checked}}}),t[9]=n,t[10]=r,t[11]=u):u=t[11];let d;t[12]!==te||t[13]!==u?(d=(0,T.jsx)(`input`,{type:`checkbox`,checked:te,onChange:u,className:`mt-1 size-4 accent-[var(--color-accent)]`}),t[12]=te,t[13]=u,t[14]=d):d=t[14];let ne=i?`Codemode 读取试点`:`Codemode read pilot`,f;t[15]===ne?f=t[16]:(f=(0,T.jsx)(`span`,{className:`block text-base font-semibold text-fg`,children:ne}),t[15]=ne,t[16]=f);let p=i?`允许智能体用脚本组合已授权的读取工具。默认关闭,保留普通工具调用。`:`Let agents combine authorized reads in scripts. Off by default; ordinary tool calls stay available.`,m;t[17]===p?m=t[18]:(m=(0,T.jsx)(`span`,{className:`mt-1 block text-sm text-fg-muted`,children:p}),t[17]=p,t[18]=m);let h;t[19]!==f||t[20]!==m?(h=(0,T.jsxs)(`span`,{children:[f,m]}),t[19]=f,t[20]=m,t[21]=h):h=t[21];let g;t[22]!==h||t[23]!==d?(g=(0,T.jsx)(`section`,{className:`rounded-xl bg-surface-hover/20 p-5`,children:(0,T.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3`,children:[d,h]})}),t[22]=h,t[23]=d,t[24]=g):g=t[24];let _=i?`执行限制`:`Execution limits`,v;t[25]===_?v=t[26]:(v=(0,T.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:_}),t[25]=_,t[26]=v);let ae=i?`为所有智能体设置安全上限;留空时使用系统默认值。`:`Set safe upper bounds for every agent. Empty fields use system defaults.`,y;t[27]===ae?y=t[28]:(y=(0,T.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:ae}),t[27]=ae,t[28]=y);let se=i?`每次运行最多轮数`:`Maximum turns per run`,x=n.runtime.maxTurns??``,S=i?`系统默认`:`System default`,C;t[29]!==n||t[30]!==r?(C=e=>r({...n,runtime:{...n.runtime,maxTurns:D(e.target.value)}}),t[29]=n,t[30]=r,t[31]=C):C=t[31];let w;t[32]!==x||t[33]!==S||t[34]!==C?(w=(0,T.jsx)(b,{allowEmpty:!0,type:`number`,min:1,value:x,placeholder:S,onChange:C,className:`${E} mt-2`}),t[32]=x,t[33]=S,t[34]=C,t[35]=w):w=t[35];let O;t[36]!==se||t[37]!==w?(O=(0,T.jsxs)(`label`,{className:`block text-xs font-medium text-fg-muted`,children:[se,w]}),t[36]=se,t[37]=w,t[38]=O):O=t[38];let k=i?`单轮超时(毫秒)`:`Turn timeout (ms)`,ue=n.runtime.timeoutMs??``,de=i?`系统默认`:`System default`,A;t[39]!==n||t[40]!==r?(A=e=>r({...n,runtime:{...n.runtime,timeoutMs:D(e.target.value)}}),t[39]=n,t[40]=r,t[41]=A):A=t[41];let j;t[42]!==ue||t[43]!==de||t[44]!==A?(j=(0,T.jsx)(b,{allowEmpty:!0,type:`number`,min:1,value:ue,placeholder:de,onChange:A,className:`${E} mt-2`}),t[42]=ue,t[43]=de,t[44]=A,t[45]=j):j=t[45];let M;t[46]!==k||t[47]!==j?(M=(0,T.jsxs)(`label`,{className:`block text-xs font-medium text-fg-muted`,children:[k,j]}),t[46]=k,t[47]=j,t[48]=M):M=t[48];let fe=i?`每轮最多工具失败次数`:`Maximum tool failures per turn`,N=n.runtime.maxToolFailuresPerTurn??``,P=i?`系统默认`:`System default`,F;t[49]!==n||t[50]!==r?(F=e=>r({...n,runtime:{...n.runtime,maxToolFailuresPerTurn:D(e.target.value)}}),t[49]=n,t[50]=r,t[51]=F):F=t[51];let I;t[52]!==N||t[53]!==P||t[54]!==F?(I=(0,T.jsx)(b,{allowEmpty:!0,type:`number`,min:1,value:N,placeholder:P,onChange:F,className:`${E} mt-2`}),t[52]=N,t[53]=P,t[54]=F,t[55]=I):I=t[55];let L;t[56]!==fe||t[57]!==I?(L=(0,T.jsxs)(`label`,{className:`block text-xs font-medium text-fg-muted`,children:[fe,I]}),t[56]=fe,t[57]=I,t[58]=L):L=t[58];let R;t[59]!==O||t[60]!==M||t[61]!==L?(R=(0,T.jsxs)(`div`,{className:`mt-5 grid gap-4 md:grid-cols-3`,children:[O,M,L]}),t[59]=O,t[60]=M,t[61]=L,t[62]=R):R=t[62];let z;t[63]!==v||t[64]!==y||t[65]!==R?(z=(0,T.jsxs)(`section`,{className:`rounded-xl bg-surface-hover/20 p-5`,children:[v,y,R]}),t[63]=v,t[64]=y,t[65]=R,t[66]=z):z=t[66];let B=i?`提示词缓存`:`Prompt cache`,V;t[67]===B?V=t[68]:(V=(0,T.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:B}),t[67]=B,t[68]=V);let H=i?`复用稳定的上下文以降低响应延迟和模型费用。`:`Reuse stable context to reduce latency and model cost.`,U;t[69]===H?U=t[70]:(U=(0,T.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:H}),t[69]=H,t[70]=U);let W=i?`缓存模式`:`Cache mode`,G;t[71]===W?G=t[72]:(G=(0,T.jsx)(`span`,{children:W}),t[71]=W,t[72]=G);let K=i?`缓存模式`:`Cache mode`,q;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(q=[`auto`,`off`],t[73]=q):q=t[73];let J;t[74]!==n||t[75]!==r||t[76]!==i?(J=q.map(e=>(0,T.jsx)(re,{"aria-pressed":n.runtime.promptCache?.mode===e,variant:n.runtime.promptCache?.mode===e?`secondary`:`ghost`,className:`flex-1 py-1.5 text-xs`,onClick:()=>r({...n,runtime:{...n.runtime,promptCache:{mode:e,lifetime:n.runtime.promptCache?.lifetime??`short`}}}),children:e===`auto`?i?`自动`:`Automatic`:i?`关闭`:`Off`},e)),t[74]=n,t[75]=r,t[76]=i,t[77]=J):J=t[77];let Y;t[78]!==K||t[79]!==J?(Y=(0,T.jsx)(ie,{className:`mt-1.5 flex rounded-lg bg-surface-panel p-1`,role:`group`,"aria-label":K,children:J}),t[78]=K,t[79]=J,t[80]=Y):Y=t[80];let X;t[81]!==G||t[82]!==Y?(X=(0,T.jsxs)(`div`,{className:`text-xs font-medium text-fg-muted`,children:[G,Y]}),t[81]=G,t[82]=Y,t[83]=X):X=t[83];let pe;t[84]!==n||t[85]!==r||t[86]!==i?(pe=n.runtime.promptCache?.mode===`auto`?(0,T.jsxs)(`div`,{className:`text-xs font-medium text-fg-muted`,children:[(0,T.jsx)(`span`,{children:i?`缓存周期`:`Cache lifetime`}),(0,T.jsx)(ie,{className:`mt-1.5 flex rounded-lg bg-surface-panel p-1`,role:`group`,"aria-label":i?`缓存周期`:`Cache lifetime`,children:[`short`,`long`].map(e=>(0,T.jsx)(re,{"aria-pressed":n.runtime.promptCache?.lifetime===e,variant:n.runtime.promptCache?.lifetime===e?`secondary`:`ghost`,className:`flex-1 py-1.5 text-xs`,onClick:()=>r({...n,runtime:{...n.runtime,promptCache:{mode:`auto`,lifetime:e}}}),children:e===`short`?i?`短期`:`Short`:i?`长期`:`Long`},e))})]}):null,t[84]=n,t[85]=r,t[86]=i,t[87]=pe):pe=t[87];let Z;t[88]!==X||t[89]!==pe?(Z=(0,T.jsxs)(`div`,{className:`mt-5 grid gap-4 sm:grid-cols-2`,children:[X,pe]}),t[88]=X,t[89]=pe,t[90]=Z):Z=t[90];let Q;t[91]!==V||t[92]!==U||t[93]!==Z?(Q=(0,T.jsxs)(`section`,{className:`rounded-xl bg-surface-hover/20 p-5`,children:[V,U,Z]}),t[91]=V,t[92]=U,t[93]=Z,t[94]=Q):Q=t[94];let $;t[95]!==g||t[96]!==z||t[97]!==l||t[98]!==Q||t[99]!==ee?($=(0,T.jsxs)(oe,{title:l,summary:ee,children:[g,z,Q]}),t[95]=g,t[96]=z,t[97]=l,t[98]=Q,t[99]=ee,t[100]=$):$=t[100];let me;return t[101]!==c||t[102]!==$?(me=(0,T.jsxs)(`div`,{className:`space-y-5`,children:[c,$]}),t[101]=c,t[102]=$,t[103]=me):me=t[103],me}function k(e){return[...new Set(e)].sort()}var ue=[{id:`core`,names:[`doc-coauthoring`,`define-task`,`find-skills`,`summarize`],en:`Core`,zh:`核心`},{id:`office`,names:[`doc-coauthoring`,`define-task`,`find-skills`,`summarize`,`docx`,`pdf`,`pptx`,`xlsx`],en:`Office`,zh:`办公成果`},{id:`local-app`,names:[`doc-coauthoring`,`define-task`,`find-skills`,`summarize`,`build-xopc-local-app`,`frontend-design`,`theme-factory`],en:`Local App`,zh:`本地应用`},{id:`developer`,names:[`doc-coauthoring`,`define-task`,`find-skills`,`summarize`,`diagnose`,`github`,`tdd`,`webapp-testing`],en:`Developer`,zh:`开发者`},{id:`desktop-pet`,names:[`doc-coauthoring`,`define-task`,`find-skills`,`summarize`,`hatch-pet`],en:`Desktop Pet`,zh:`桌面宠物`}];function de(e){let t=(0,ce.c)(115),{draft:n,setDraft:r,zh:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={revalidateOnFocus:!1},t[0]=a):a=t[0];let{data:o,error:c,isLoading:ee}=f(`agent-defaults-skills-catalog`,_,a),[u,d]=(0,w.useState)(``),re=n.skills.mode===`selected`?n.skills.include:n.skills.exclude;o?.catalog;let p;if(t[1]!==re||t[2]!==o?.catalog||t[3]!==u){let e=[...o?.catalog??[]],n=new Set(e.map(N));for(let t of re)n.has(t)||e.push({name:t,description:``,enabled:!0});let r=u.trim().toLowerCase();p=e.filter(e=>!r||`${e.name} ${e.description}`.toLowerCase().includes(r)).sort(fe),t[1]=re,t[2]=o?.catalog,t[3]=u,t[4]=p}else p=t[4];let m=p,h;t[5]!==n.skills.exclude||t[6]!==n.skills.include||t[7]!==n.skills.mode?(h=e=>n.skills.mode===`selected`?n.skills.include.includes(e):!n.skills.exclude.includes(e),t[5]=n.skills.exclude,t[6]=n.skills.include,t[7]=n.skills.mode,t[8]=h):h=t[8];let g=h,ie;t[9]!==n||t[10]!==r?(ie=e=>{if(n.skills.mode===`selected`){let t=n.skills.include.includes(e)?n.skills.include.filter(t=>t!==e):k([...n.skills.include,e]);r({...n,skills:{mode:`selected`,include:t}});return}let t=n.skills.exclude.includes(e)?n.skills.exclude.filter(t=>t!==e):k([...n.skills.exclude,e]);r({...n,skills:{mode:`all-enabled`,exclude:t}})},t[9]=n,t[10]=r,t[11]=ie):ie=t[11];let v=ie,ae;t[12]===o?.catalog?ae=t[13]:(ae=o?.catalog??[],t[12]=o?.catalog,t[13]=ae);let y;if(t[14]!==g||t[15]!==ae){let e;t[17]===g?e=t[18]:(e=e=>e.enabled&&g(e.name),t[17]=g,t[18]=e),y=ae.filter(e),t[14]=g,t[15]=ae,t[16]=y}else y=t[16];let oe=y.length,b;t[19]!==o?.catalog||t[20]!==n||t[21]!==r?(b=e=>{let t=new Set((o?.catalog??[]).filter(M).map(j));r({...n,skills:{mode:`selected`,include:k(e.filter(e=>t.has(e)))}})},t[19]=o?.catalog,t[20]=n,t[21]=r,t[22]=b):b=t[22];let se=b,x=i?`技能策略`:`Skill policy`,S;t[23]===x?S=t[24]:(S=(0,T.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:x}),t[23]=x,t[24]=S);let C=i?`决定所有智能体默认可以使用哪些技能。`:`Choose which skills every agent can discover and use by default.`,E;t[25]===C?E=t[26]:(E=(0,T.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:C}),t[25]=C,t[26]=E);let D;t[27]!==n||t[28]!==r?(D=()=>r({...n,skills:{mode:`all-enabled`,exclude:[]}}),t[27]=n,t[28]=r,t[29]=D):D=t[29];let le=n.skills.mode===`all-enabled`?`bg-accent-soft shadow-surface`:`hover:bg-surface-hover`,O;t[30]===le?O=t[31]:(O=ne(`flex items-start gap-3 rounded-xl bg-surface-base/55 p-4 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,le),t[30]=le,t[31]=O);let de;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,T.jsx)(s,{className:`mt-0.5 size-5 shrink-0 text-accent`}),t[32]=de):de=t[32];let P=i?`使用所有已启用技能`:`Use every enabled skill`,F;t[33]===P?F=t[34]:(F=(0,T.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:P}),t[33]=P,t[34]=F);let I=i?`适合需要完整目录的高级智能体;新增技能会自动加入。`:`For advanced agents that need the full catalog; newly enabled skills are added automatically.`,L;t[35]===I?L=t[36]:(L=(0,T.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:I}),t[35]=I,t[36]=L);let R;t[37]!==F||t[38]!==L?(R=(0,T.jsxs)(`span`,{children:[F,L]}),t[37]=F,t[38]=L,t[39]=R):R=t[39];let z;t[40]!==D||t[41]!==O||t[42]!==R?(z=(0,T.jsxs)(`button`,{type:`button`,onClick:D,className:O,children:[de,R]}),t[40]=D,t[41]=O,t[42]=R,t[43]=z):z=t[43];let B;t[44]!==n||t[45]!==r?(B=()=>r({...n,skills:{mode:`selected`,include:[]}}),t[44]=n,t[45]=r,t[46]=B):B=t[46];let V=n.skills.mode===`selected`?`bg-accent-soft shadow-surface`:`hover:bg-surface-hover`,H;t[47]===V?H=t[48]:(H=ne(`flex items-start gap-3 rounded-xl bg-surface-base/55 p-4 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,V),t[47]=V,t[48]=H);let U;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,T.jsx)(l,{className:`mt-0.5 size-5 shrink-0 text-accent`}),t[49]=U):U=t[49];let W=i?`只使用选中的技能`:`Use selected skills only`,G;t[50]===W?G=t[51]:(G=(0,T.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:W}),t[50]=W,t[51]=G);let K=i?`适合严格受控的环境;新增技能不会自动加入。`:`For tightly controlled environments; new skills are not added automatically.`,q;t[52]===K?q=t[53]:(q=(0,T.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:K}),t[52]=K,t[53]=q);let J;t[54]!==G||t[55]!==q?(J=(0,T.jsxs)(`span`,{children:[G,q]}),t[54]=G,t[55]=q,t[56]=J):J=t[56];let Y;t[57]!==B||t[58]!==H||t[59]!==J?(Y=(0,T.jsxs)(`button`,{type:`button`,onClick:B,className:H,children:[U,J]}),t[57]=B,t[58]=H,t[59]=J,t[60]=Y):Y=t[60];let X;t[61]!==z||t[62]!==Y?(X=(0,T.jsxs)(`div`,{className:`mt-5 grid gap-3 sm:grid-cols-2`,children:[z,Y]}),t[61]=z,t[62]=Y,t[63]=X):X=t[63];let pe=i?`能力组合(会替换当前选择)`:`Capability packs (replaces the current selection)`,Z;t[64]===pe?Z=t[65]:(Z=(0,T.jsx)(`p`,{className:`text-xs font-medium text-fg-muted`,children:pe}),t[64]=pe,t[65]=Z);let Q;t[66]!==se||t[67]!==o||t[68]!==i?(Q=ue.map(e=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>se(e.names),disabled:!o,className:`rounded-lg border border-edge bg-surface-panel px-3 py-1.5 text-xs font-medium text-fg transition-colors hover:bg-surface-hover disabled:cursor-not-allowed disabled:opacity-50`,children:i?e.zh:e.en},e.id)),t[66]=se,t[67]=o,t[68]=i,t[69]=Q):Q=t[69];let $;t[70]===Q?$=t[71]:($=(0,T.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:Q}),t[70]=Q,t[71]=$);let me;t[72]!==Z||t[73]!==$?(me=(0,T.jsxs)(`div`,{className:`mt-4`,children:[Z,$]}),t[72]=Z,t[73]=$,t[74]=me):me=t[74];let he;t[75]!==E||t[76]!==X||t[77]!==me||t[78]!==S?(he=(0,T.jsxs)(`section`,{className:`rounded-xl bg-surface-hover/20 p-5`,children:[S,E,X,me]}),t[75]=E,t[76]=X,t[77]=me,t[78]=S,t[79]=he):he=t[79];let ge=n.skills.mode===`selected`?i?`选择可用技能`:`Select available skills`:i?`管理例外`:`Manage exceptions`,_e;t[80]===ge?_e=t[81]:(_e=(0,T.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:ge}),t[80]=ge,t[81]=_e);let ve=i?`当前默认可用 ${oe} 个技能。`:`${oe} skills are available by default.`,ye;t[82]===ve?ye=t[83]:(ye=(0,T.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:ve}),t[82]=ve,t[83]=ye);let be;t[84]!==_e||t[85]!==ye?(be=(0,T.jsxs)(`div`,{children:[_e,ye]}),t[84]=_e,t[85]=ye,t[86]=be):be=t[86];let xe=i?`搜索技能`:`Search skills`,Se;t[87]===xe?Se=t[88]:(Se=(0,T.jsx)(`span`,{className:`sr-only`,children:xe}),t[87]=xe,t[88]=Se);let Ce;t[89]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,T.jsx)(te,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`}),t[89]=Ce):Ce=t[89];let we;t[90]===Symbol.for(`react.memo_cache_sentinel`)?(we=e=>d(e.target.value),t[90]=we):we=t[90];let Te=i?`搜索技能`:`Search skills`,Ee;t[91]!==u||t[92]!==Te?(Ee=(0,T.jsx)(`input`,{type:`search`,value:u,onChange:we,placeholder:Te,className:`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg outline-none focus:border-accent`}),t[91]=u,t[92]=Te,t[93]=Ee):Ee=t[93];let De;t[94]!==Se||t[95]!==Ee?(De=(0,T.jsxs)(`label`,{className:`relative block w-full sm:w-72`,children:[Se,Ce,Ee]}),t[94]=Se,t[95]=Ee,t[96]=De):De=t[96];let Oe;t[97]!==be||t[98]!==De?(Oe=(0,T.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-3`,children:[be,De]}),t[97]=be,t[98]=De,t[99]=Oe):Oe=t[99];let ke;t[100]===c?ke=t[101]:(ke=c?(0,T.jsx)(`p`,{className:`mt-4 rounded-lg bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:c instanceof Error?c.message:String(c)}):null,t[100]=c,t[101]=ke);let Ae;t[102]!==g||t[103]!==ee||t[104]!==m||t[105]!==v||t[106]!==i?(Ae=ee?(0,T.jsx)(`div`,{className:`mt-4 space-y-2`,children:[0,1,2,3].map(A)}):(0,T.jsxs)(`div`,{className:`mt-4 flex max-h-[32rem] flex-col gap-1 overflow-y-auto rounded-xl bg-surface-base/45 p-1 [&>label]:rounded-lg [&>label]:bg-surface-panel/55`,children:[m.map(e=>{let t=g(e.name);return(0,T.jsxs)(`label`,{className:ne(`flex cursor-pointer items-start gap-3 px-4 py-3 hover:bg-surface-hover/60`,!e.enabled&&`cursor-not-allowed opacity-55`),children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:t,disabled:!e.enabled,onChange:()=>v(e.name),className:`mt-0.5 size-4 rounded border-edge accent-[var(--color-accent)]`}),(0,T.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,T.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.name}),e.enabled?null:(0,T.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[10px] text-fg-muted`,children:i?`全局未启用`:`Disabled globally`})]}),e.description?(0,T.jsx)(`span`,{className:`mt-1 block line-clamp-2 text-xs leading-5 text-fg-muted`,children:e.description}):null]})]},e.name)}),m.length===0?(0,T.jsx)(`p`,{className:`px-4 py-8 text-center text-sm text-fg-muted`,children:i?`没有匹配的技能。`:`No matching skills.`}):null]}),t[102]=g,t[103]=ee,t[104]=m,t[105]=v,t[106]=i,t[107]=Ae):Ae=t[107];let je;t[108]!==Oe||t[109]!==ke||t[110]!==Ae?(je=(0,T.jsxs)(`section`,{className:`rounded-xl bg-surface-hover/20 p-5`,children:[Oe,ke,Ae]}),t[108]=Oe,t[109]=ke,t[110]=Ae,t[111]=je):je=t[111];let Me;return t[112]!==he||t[113]!==je?(Me=(0,T.jsxs)(`div`,{className:`space-y-5`,children:[he,je]}),t[112]=he,t[113]=je,t[114]=Me):Me=t[114],Me}function A(e){return(0,T.jsx)(p,{className:`h-14 rounded-xl`},e)}function j(e){return e.name}function M(e){return e.enabled}function fe(e,t){return e.name.localeCompare(t.name)}function N(e){return e.name}var P={read:[`read_file`,`read`,`list_directory`,`search_files`,`web_search`,`web_fetch`,`read_task`],files:[`apply_patch`,`write_file`,`edit_file`],execute:[`exec_command`,`execute_code`,`write_stdin`],devices:[`browser_use`,`computer_use`,`phone_use`],external:[`send_message`,`send_media`,`publish_artifact`,`publish_task_result`]};function F(e){return Object.entries(P).find(([,t])=>t.includes(e))?.[0]??`other`}function I(e,t){let n={read:[`读取与查找资料`,`Read and find information`],files:[`修改文件`,`Change files`],execute:[`运行命令与代码`,`Run commands and code`],devices:[`操作网页与设备`,`Control browsers and devices`],external:[`发送与发布内容`,`Send and publish content`],other:[`其他与组合工具`,`Other and compound tools`]};return(n[e]??n.other)[+!t]}function L(e){let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:void 0}function R(e){let t=(0,ce.c)(94),{draft:n,setDraft:r,builtinTools:i,zh:a}=e,o=v(),[s,c]=(0,w.useState)(``),[l,ee]=(0,w.useState)(`all`),[u,f]=(0,w.useState)(),p;t[0]===i?p=t[1]:(p=new Map(i.map(H)),t[0]=i,t[1]=p);let m=p,h;t[2]!==i||t[3]!==n.tools?(h=[...new Set([...i.map(V),...Object.keys(n.tools)])].filter(B).sort(z),t[2]=i,t[3]=n.tools,t[4]=h):h=t[4];let g=h,_;if(t[5]!==g||t[6]!==n.tools){let e;t[8]===n.tools?e=t[9]:(e=e=>(n.tools[e]?.mode??`allow`)===`allow`,t[8]=n.tools,t[9]=e),_=g.filter(e),t[5]=g,t[6]=n.tools,t[7]=_}else _=t[7];let ae=_.length,y;if(t[10]!==g||t[11]!==n.tools){let e;t[13]===n.tools?e=t[14]:(e=e=>n.tools[e]?.mode===`ask`,t[13]=n.tools,t[14]=e),y=g.filter(e),t[10]=g,t[11]=n.tools,t[12]=y}else y=t[12];let se=y.length,x;if(t[15]!==g||t[16]!==n.tools){let e;t[18]===n.tools?e=t[19]:(e=e=>n.tools[e]?.mode===`deny`,t[18]=n.tools,t[19]=e),x=g.filter(e),t[15]=g,t[16]=n.tools,t[17]=x}else x=t[17];let S;t[20]!==_.length||t[21]!==y.length||t[22]!==x.length?(S={allow:ae,ask:se,deny:x.length},t[20]=_.length,t[21]=y.length,t[22]=x.length,t[23]=S):S=t[23];let C=S,E;if(t[24]!==g||t[25]!==m||t[26]!==n.tools||t[27]!==l||t[28]!==s){let e=s.trim().toLowerCase();E=g.filter(t=>{let r=n.tools[t]?.mode??`allow`,i=m.get(t),a=`${t} ${i?.en??``} ${i?.zh??``}`.toLowerCase();return(!e||a.includes(e))&&(l===`all`||r===l)}),t[24]=g,t[25]=m,t[26]=n.tools,t[27]=l,t[28]=s,t[29]=E}else E=t[29];let D=E,le;t[30]!==n||t[31]!==r?(le=(e,t)=>{let i=n.tools[e]??{mode:`allow`};r({...n,tools:{...n.tools,[e]:{...i,...t}}})},t[30]=n,t[31]=r,t[32]=le):le=t[32];let O=le,k=a?`全部 ${g.length}`:`All ${g.length}`,ue;t[33]===k?ue=t[34]:(ue={id:`all`,label:k},t[33]=k,t[34]=ue);let de=a?`允许 ${C.allow}`:`Allow ${C.allow}`,A;t[35]===de?A=t[36]:(A={id:`allow`,label:de},t[35]=de,t[36]=A);let j=a?`询问 ${C.ask}`:`Ask ${C.ask}`,M;t[37]===j?M=t[38]:(M={id:`ask`,label:j},t[37]=j,t[38]=M);let fe=a?`禁用 ${C.deny}`:`Deny ${C.deny}`,N;t[39]===fe?N=t[40]:(N={id:`deny`,label:fe},t[39]=fe,t[40]=N);let P;t[41]!==ue||t[42]!==A||t[43]!==M||t[44]!==N?(P=[ue,A,M,N],t[41]=ue,t[42]=A,t[43]=M,t[44]=N,t[45]=P):P=t[45];let R=P,U=a?`默认工具权限`:`Default tool permissions`,W;t[46]===U?W=t[47]:(W=(0,T.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:U}),t[46]=U,t[47]=W);let G=a?`允许:直接执行;询问:执行前确认;禁用:智能体无法使用。分组只解释用途;命令、组合工具的实际读写与外部影响取决于调用内容,请逐项核对。`:`Allow runs directly, Ask requires confirmation, and Deny makes the tool unavailable.`,K;t[48]===G?K=t[49]:(K=(0,T.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:G}),t[48]=G,t[49]=K);let q;t[50]!==W||t[51]!==K?(q=(0,T.jsxs)(`div`,{children:[W,K]}),t[50]=W,t[51]=K,t[52]=q):q=t[52];let J=a?`工具筛选`:`Tool filter`,Y;t[53]!==l||t[54]!==R?(Y=R.map(e=>(0,T.jsx)(`button`,{"aria-pressed":l===e.id,type:`button`,onClick:()=>ee(e.id),className:ne(`rounded-lg px-3 py-1.5 text-xs font-medium`,l===e.id?`bg-surface-base text-fg shadow-surface`:`text-fg-muted hover:text-fg`),children:e.label},e.id)),t[53]=l,t[54]=R,t[55]=Y):Y=t[55];let X;t[56]!==J||t[57]!==Y?(X=(0,T.jsx)(ie,{className:`flex flex-wrap gap-1 rounded-xl bg-surface-panel p-1`,role:`group`,"aria-label":J,indicatorClassName:`rounded-lg bg-surface-base shadow-surface`,children:Y}),t[56]=J,t[57]=Y,t[58]=X):X=t[58];let pe=a?`搜索工具`:`Search tools`,Z;t[59]===pe?Z=t[60]:(Z=(0,T.jsx)(`span`,{className:`sr-only`,children:pe}),t[59]=pe,t[60]=Z);let Q;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,T.jsx)(te,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`}),t[61]=Q):Q=t[61];let $;t[62]===Symbol.for(`react.memo_cache_sentinel`)?($=e=>c(e.target.value),t[62]=$):$=t[62];let me=a?`搜索工具`:`Search tools`,he;t[63]!==s||t[64]!==me?(he=(0,T.jsx)(`input`,{type:`search`,value:s,onChange:$,placeholder:me,className:`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg outline-none focus:border-accent`}),t[63]=s,t[64]=me,t[65]=he):he=t[65];let ge;t[66]!==Z||t[67]!==he?(ge=(0,T.jsxs)(`label`,{className:`relative block w-full sm:w-72`,children:[Z,Q,he]}),t[66]=Z,t[67]=he,t[68]=ge):ge=t[68];let _e;t[69]!==X||t[70]!==ge?(_e=(0,T.jsxs)(`div`,{className:`mt-5 flex flex-wrap items-center justify-between gap-3`,children:[X,ge]}),t[69]=X,t[70]=ge,t[71]=_e):_e=t[71];let ve=a?`工具调用限制`:`Tool call limits`,ye=a?`每个工具的调用次数和超时限制继续生效;授权可在下方直接修改。`:`Call and timeout limits remain active; edit permissions below.`,be;t[72]!==ve||t[73]!==ye?(be=(0,T.jsx)(oe,{title:ve,summary:ye,children:null}),t[72]=ve,t[73]=ye,t[74]=be):be=t[74];let xe;t[75]!==m||t[76]!==n.tools||t[77]!==u||t[78]!==o||t[79]!==O||t[80]!==D||t[81]!==a?(xe=D.map((e,t)=>{let r=n.tools[e]??{mode:`allow`},i=m.get(e),s=u===e;return(0,T.jsxs)(`div`,{className:`px-4 py-3`,children:[t===0||F(D[t-1])!==F(e)?(0,T.jsx)(`h3`,{className:`mb-3 border-b border-edge pb-2 text-sm font-semibold text-fg`,children:I(F(e),a)}):null,(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,T.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,T.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:(a?i?.zh:i?.en)||e}),(0,T.jsx)(`code`,{className:`text-xs text-fg-muted`,children:e})]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(ie,{className:`flex rounded-lg bg-surface-base p-1`,role:`group`,"aria-label":e,indicatorClassName:`rounded-md bg-accent`,children:[`allow`,`ask`,`deny`].map(t=>(0,T.jsx)(`button`,{"aria-pressed":r.mode===t,type:`button`,onClick:()=>O(e,{mode:t}),className:ne(`rounded-md px-2.5 py-1 text-xs font-medium capitalize`,r.mode===t?`bg-accent text-on-accent`:`text-fg-muted hover:text-fg`),children:t===`allow`?a?`允许`:`Allow`:t===`ask`?a?`询问`:`Ask`:a?`禁用`:`Deny`},t))}),o?(0,T.jsx)(re,{variant:`ghost`,className:`px-2 py-1`,"aria-label":a?`${e} 调用限制`:`${e} call limits`,onClick:()=>f(s?void 0:e),children:(0,T.jsx)(d,{className:`size-4`})}):null]})]}),s&&o?(0,T.jsxs)(`div`,{className:`mt-3 grid gap-3 rounded-lg bg-surface-base p-3 sm:grid-cols-2`,children:[(0,T.jsxs)(`label`,{className:`block text-xs font-medium text-fg-muted`,children:[a?`每轮最多调用次数`:`Maximum calls per turn`,(0,T.jsx)(b,{allowEmpty:!0,type:`number`,min:1,value:r.maxCallsPerTurn??``,placeholder:a?`不限制`:`Unlimited`,onChange:t=>O(e,{maxCallsPerTurn:L(t.target.value)}),className:`mt-2 w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg outline-none focus:border-accent`})]}),(0,T.jsxs)(`label`,{className:`block text-xs font-medium text-fg-muted`,children:[a?`单次超时(毫秒)`:`Call timeout (ms)`,(0,T.jsx)(b,{allowEmpty:!0,type:`number`,min:1,value:r.timeoutMs??``,placeholder:a?`使用系统默认值`:`Use system default`,onChange:t=>O(e,{timeoutMs:L(t.target.value)}),className:`mt-2 w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg outline-none focus:border-accent`})]})]}):null]},e)}),t[75]=m,t[76]=n.tools,t[77]=u,t[78]=o,t[79]=O,t[80]=D,t[81]=a,t[82]=xe):xe=t[82];let Se;t[83]!==D.length||t[84]!==a?(Se=D.length===0?(0,T.jsx)(`p`,{className:`px-4 py-10 text-center text-sm text-fg-muted`,children:a?`没有匹配的工具。`:`No matching tools.`}):null,t[83]=D.length,t[84]=a,t[85]=Se):Se=t[85];let Ce;t[86]!==xe||t[87]!==Se?(Ce=(0,T.jsxs)(`div`,{className:`mt-4 flex max-h-[38rem] flex-col gap-1 overflow-y-auto rounded-xl bg-surface-base/45 p-1 [&>*]:rounded-lg [&>*]:bg-surface-panel/55`,children:[xe,Se]}),t[86]=xe,t[87]=Se,t[88]=Ce):Ce=t[88];let we;return t[89]!==q||t[90]!==_e||t[91]!==be||t[92]!==Ce?(we=(0,T.jsxs)(`section`,{className:`rounded-xl bg-surface-hover/20 p-5`,children:[q,_e,be,Ce]}),t[89]=q,t[90]=_e,t[91]=be,t[92]=Ce,t[93]=we):we=t[93],we}function z(e,t){return[`read`,`files`,`execute`,`external`,`devices`,`other`].indexOf(F(e))-[`read`,`files`,`execute`,`external`,`devices`,`other`].indexOf(F(t))||e.localeCompare(t)}function B(e){return e!==`computer_use`||g()}function V(e){return e.id}function H(e){return[e.id,e.description]}function U(){let e=(0,ce.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsxs)(se,{gap:`gap-5`,children:[(0,T.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsx)(p,{className:`h-7 w-56`}),(0,T.jsx)(p,{className:`h-4 w-96 max-w-full`})]}),(0,T.jsx)(p,{className:`h-9 w-28`})]}),(0,T.jsx)(p,{className:`h-20 rounded-2xl`}),(0,T.jsx)(p,{className:`h-12 rounded-xl`}),(0,T.jsx)(p,{className:`h-72 rounded-2xl`})]}),e[0]=t):t=e[0],t}function W(e){let t=(0,ce.c)(65),{initial:n,builtinTools:r,zh:a}=e,[o,s]=i(),l;t[0]===o?l=t[1]:(l=o.get(`panel`),t[0]=o,t[1]=l);let te=l,d=te===`skills`||te===`tools`||te===`runtime`?te:`skills`,f;t[2]!==o||t[3]!==s?(f=e=>{let t=new URLSearchParams(o);t.set(`panel`,e),s(t,{replace:!0})},t[2]=o,t[3]=s,t[4]=f):f=t[4];let p=f,m;t[5]===n?m=t[6]:(m=()=>structuredClone(n),t[5]=n,t[6]=m);let[h,g]=(0,w.useState)(m),_;t[7]===n?_=t[8]:(_=()=>structuredClone(n),t[7]=n,t[8]=_);let[v,oe]=(0,w.useState)(_),b;t[9]===h?b=t[10]:(b=JSON.stringify(h),t[9]=h,t[10]=b);let E;t[11]===v?E=t[12]:(E=JSON.stringify(v),t[11]=v,t[12]=E);let D=b!==E,le=a?`技能`:`Skills`,k;t[13]===le?k=t[14]:(k={id:`skills`,label:le,icon:ee},t[13]=le,t[14]=k);let ue=a?`工具`:`Tools`,A;t[15]===ue?A=t[16]:(A={id:`tools`,label:ue,icon:u},t[15]=ue,t[16]=A);let j=a?`运行`:`Runtime`,M;t[17]===j?M=t[18]:(M={id:`runtime`,label:j,icon:c},t[17]=j,t[18]=M);let fe;t[19]!==A||t[20]!==M||t[21]!==k?(fe=[k,A,M],t[19]=A,t[20]=M,t[21]=k,t[22]=fe):fe=t[22];let N=fe,P;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(P=async e=>{let t=structuredClone(e),n=await y(),r=await ae({...t,models:n.defaults.models},{scope:`agent`}),i=structuredClone(r.defaults);g(e=>JSON.stringify(e)===JSON.stringify(t)?i:e),oe(structuredClone(i))},t[23]=P):P=t[23];let F=P,I;t[24]!==D||t[25]!==h?(I={value:h,dirty:D,onSave:F,delayMs:0},t[24]=D,t[25]=h,t[26]=I):I=t[26];let L=C(I),z=L.onBlurCapture,B=a?`智能体设置`:`Agent settings`,V;t[27]!==L.error||t[28]!==L.status?(V=(0,T.jsx)(S,{status:L.status,error:L.error}),t[27]=L.error,t[28]=L.status,t[29]=V):V=t[29];let H;t[30]!==B||t[31]!==V?(H=(0,T.jsx)(x,{title:B,actions:V}),t[30]=B,t[31]=V,t[32]=H):H=t[32];let U;t[33]!==L.error||t[34]!==L.retry||t[35]!==a?(U=L.error?(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:[(0,T.jsx)(`span`,{children:L.error}),(0,T.jsx)(re,{type:`button`,variant:`ghost`,className:`h-8 text-red-600`,onClick:L.retry,children:a?`重试`:`Retry`})]}):null,t[33]=L.error,t[34]=L.retry,t[35]=a,t[36]=U):U=t[36];let W=a?`默认配置分区`:`Default configuration sections`,G;t[37]!==d||t[38]!==p||t[39]!==N?(G=N.map(e=>{let{id:t,label:n,icon:r}=e;return(0,T.jsxs)(`button`,{type:`button`,"aria-pressed":d===t,onClick:()=>p(t),className:ne(`flex min-w-0 items-center justify-center gap-2 rounded-lg px-3 py-2.5 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,d===t?`bg-surface-base text-fg shadow-surface`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:[(0,T.jsx)(r,{className:ne(`size-4 shrink-0`,d===t?`text-accent`:`text-fg-subtle`)}),(0,T.jsx)(`span`,{className:`text-sm font-medium`,children:n})]},t)}),t[37]=d,t[38]=p,t[39]=N,t[40]=G):G=t[40];let K;t[41]!==W||t[42]!==G?(K=(0,T.jsx)(ie,{as:`nav`,className:`grid grid-cols-3 gap-1 rounded-xl bg-surface-hover/20 p-1`,"aria-label":W,indicatorClassName:`rounded-lg bg-surface-base shadow-surface`,children:G}),t[41]=W,t[42]=G,t[43]=K):K=t[43];let q;t[44]!==d||t[45]!==h||t[46]!==a?(q=d===`skills`?(0,T.jsx)(de,{draft:h,setDraft:g,zh:a}):null,t[44]=d,t[45]=h,t[46]=a,t[47]=q):q=t[47];let J;t[48]!==d||t[49]!==r||t[50]!==h||t[51]!==a?(J=d===`tools`?(0,T.jsx)(R,{draft:h,setDraft:g,builtinTools:r,zh:a}):null,t[48]=d,t[49]=r,t[50]=h,t[51]=a,t[52]=J):J=t[52];let Y;t[53]!==d||t[54]!==h||t[55]!==a?(Y=d===`runtime`?(0,T.jsx)(O,{draft:h,setDraft:g,zh:a}):null,t[53]=d,t[54]=h,t[55]=a,t[56]=Y):Y=t[56];let X;return t[57]!==L.onBlurCapture||t[58]!==H||t[59]!==U||t[60]!==K||t[61]!==q||t[62]!==J||t[63]!==Y?(X=(0,T.jsxs)(se,{gap:`gap-5`,onBlurCapture:z,children:[H,U,K,q,J,Y]}),t[57]=L.onBlurCapture,t[58]=H,t[59]=U,t[60]=K,t[61]=q,t[62]=J,t[63]=Y,t[64]=X):X=t[64],X}function G(){let e=(0,ce.c)(17),t=a(q),n=o(K)===`zh`,{data:r,error:i,isLoading:s,mutate:c}=f(t?`settings-agent-defaults`:null,y);if(!t){let t=n?`需要本机服务令牌。`:`Local service token required.`,r;return e[0]===t?r=e[1]:(r=(0,T.jsx)(se,{children:(0,T.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t})}),e[0]=t,e[1]=r),r}if(i&&!r){let t=String(i),r;e[2]===t?r=e[3]:(r=(0,T.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:t}),e[2]=t,e[3]=r);let a;e[4]===c?a=e[5]:(a=()=>void c(),e[4]=c,e[5]=a);let o=n?`重试`:`Retry`,s;e[6]!==a||e[7]!==o?(s=(0,T.jsx)(re,{onClick:a,children:o}),e[6]=a,e[7]=o,e[8]=s):s=e[8];let l;return e[9]!==r||e[10]!==s?(l=(0,T.jsxs)(se,{children:[r,s]}),e[9]=r,e[10]=s,e[11]=l):l=e[11],l}if(s||!r){let t;return e[12]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsx)(U,{}),e[12]=t):t=e[12],t}let l;return e[13]!==r.builtinTools||e[14]!==r.defaults||e[15]!==n?(l=(0,T.jsx)(W,{initial:r.defaults,builtinTools:r.builtinTools,zh:n}),e[13]=r.builtinTools,e[14]=r.defaults,e[15]=n,e[16]=l):l=e[16],l}function K(e){return e.language}function q(e){return e.conversationId}export{G as AgentDefaultsSettingsPanel};
@@ -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{l as i,t as a,u as o}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as s,n as c,o as l}from"./locale-store-5Hf8J8-_.js";import{t as u}from"./messages-uXxg5p54.js";import{t as d}from"./arrow-left-D880xG-P.js";import{t as ee}from"./chevron-down-ccbiQQz_.js";import{t as f}from"./working-directory-picker-modal-Ta73QrNw.js";import{t as p}from"./circle-alert-BEjgurr2.js";import{t as te}from"./circle-check-C23XjkUj.js";import{t as m}from"./circle-BoO4YvTx.js";import{t as h}from"./file-archive-DanfQJNe.js";import{t as g}from"./folder-open-CyzJ19I9.js";import{t as _}from"./loader-circle-CifKLtgG.js";import{t as v}from"./package-wATCyihJ.js";import{t as ne}from"./shield-check-BU58siTV.js";import{t as y}from"./upload-rrb46c3c.js";import{t as b}from"./cn-0WouolD0.js";import{a as x}from"./vendor-swr-CdRzEUwF.js";import{t as S}from"./button-CnRSIP6m.js";import{t as re}from"./skeleton-BI5TyibZ.js";import{a as C,i as ie,o as w,r as T,s as ae,t as E}from"./dist-DfWfZ9iu.js";import{t as oe}from"./capability-links-DzQWK1Fh.js";import{t as D}from"./browser-BLJWD7WI.js";import{t as O}from"./capability-icon-DVoZxEgW.js";var se=n(),k=r();function A(e){let t=(0,se.c)(30),{data:n,zh:r}=e,i=r?`插件内容与范围`:`Contents and access`,a;t[0]===i?a=t[1]:(a=(0,k.jsx)(`h4`,{className:`font-medium text-fg`,children:i}),t[0]=i,t[1]=a);let o=r?`新增技能:`:`Skills: `,s;t[2]!==n.latestVersion.componentIndex?.skills||t[3]!==r?(s=n.latestVersion.componentIndex?.skills.join(`, `)||(r?`目录未提供清单`:`Not listed in catalog`),t[2]=n.latestVersion.componentIndex?.skills,t[3]=r,t[4]=s):s=t[4];let c;t[5]!==o||t[6]!==s?(c=(0,k.jsxs)(`p`,{children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l=r?`工具连接:`:`Tool connections: `,u;t[8]!==n.latestVersion.componentIndex?.mcpServers||t[9]!==r?(u=n.latestVersion.componentIndex?.mcpServers.map(j).join(`, `)||(r?`目录未提供清单`:`Not listed in catalog`),t[8]=n.latestVersion.componentIndex?.mcpServers,t[9]=r,t[10]=u):u=t[10];let d;t[11]!==l||t[12]!==u?(d=(0,k.jsxs)(`p`,{children:[l,u]}),t[11]=l,t[12]=u,t[13]=d):d=t[13];let ee=r?`运行范围:`:`Runtime scope: `,f=n.latestVersion.riskTier===`local-exec`?r?`包含本机代码执行,可能访问本机文件或网络`:`Includes local code execution; may access local files or networks`:n.latestVersion.riskTier===`network`?r?`包含网络服务调用;数据范围取决于账号授权`:`Includes network service calls; data scope depends on authorization`:n.latestVersion.riskTier===`content`?r?`目录标记为内容能力`:`Catalog classifies this as content capabilities`:r?`目录未声明,请查看说明与来源`:`Not declared; review documentation and source`,p;t[14]!==f||t[15]!==ee?(p=(0,k.jsxs)(`p`,{children:[ee,f]}),t[14]=f,t[15]=ee,t[16]=p):p=t[16];let te=r?`授权与来源`:`Authorization and source`,m;t[17]===te?m=t[18]:(m=(0,k.jsx)(`summary`,{className:`w-fit cursor-pointer rounded focus-visible:outline-accent`,children:te}),t[17]=te,t[18]=m);let h=r?`发布者认证只验证来源,不授予操作权限。账号授权与依赖需另行设置。未列出权限不代表没有文件或外部访问。`:`Publisher verification does not grant permissions. Accounts and dependencies require separate setup. Missing scope metadata does not mean no file or external access.`,g;t[19]===h?g=t[20]:(g=(0,k.jsx)(`p`,{className:`mt-2 leading-5`,children:h}),t[19]=h,t[20]=g);let _;t[21]!==m||t[22]!==g?(_=(0,k.jsxs)(`details`,{className:`text-xs`,children:[m,g]}),t[21]=m,t[22]=g,t[23]=_):_=t[23];let v;return t[24]!==p||t[25]!==_||t[26]!==a||t[27]!==c||t[28]!==d?(v=(0,k.jsxs)(`section`,{className:`mt-4 space-y-2 rounded-lg border border-edge p-4 text-sm text-fg-muted`,children:[a,c,d,p,_]}),t[24]=p,t[25]=_,t[26]=a,t[27]=c,t[28]=d,t[29]=v):v=t[29],v}function j(e){return`${e.name} (${e.transport})`}var M=e(D(),1),N=e(t(),1);function P(e){let t=(0,se.c)(6),{fields:n,values:r,onChange:i}=e,a;t[0]===n?a=t[1]:(a=Object.entries(n),t[0]=n,t[1]=a);let o;return t[2]!==i||t[3]!==a||t[4]!==r?(o=(0,k.jsx)(k.Fragment,{children:a.map(e=>{let[t,n]=e;return(0,k.jsxs)(`label`,{className:`block space-y-1.5 text-sm`,children:[(0,k.jsxs)(`span`,{children:[n.title,n.required?` *`:``]}),n.type===`boolean`?(0,k.jsx)(`input`,{type:`checkbox`,checked:r[t]===!0,onChange:e=>i({...r,[t]:e.target.checked})}):(0,k.jsx)(`input`,{className:`w-full rounded-lg border border-edge bg-surface-inset px-3 py-2.5`,type:n.sensitive?`password`:n.type===`number`?`number`:`text`,required:n.required,autoComplete:`off`,value:String(r[t]??``),onChange:e=>i({...r,[t]:n.type===`number`?Number(e.target.value):e.target.value})})]},t)})}),t[2]=i,t[3]=a,t[4]=r,t[5]=o):o=t[5],o}function F(e){let t=(0,se.c)(62),{account:n,fields:r,zh:i,busy:a,attempt:o,initialMethod:s,onBack:c,onConnect:l,onSave:u,onRedirect:ee,onSkip:f}=e,[p,te]=(0,N.useState)(s&&n.methods.some(e=>e.id===s)?s:n.methods[0]?.id??``),m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m={},t[0]=m):m=t[0];let[h,g]=(0,N.useState)(m),[v,ne]=(0,N.useState)(``),[y,b]=(0,N.useState)(),x;t[1]===p?x=t[2]:(x=e=>e.id===p,t[1]=p,t[2]=x);let C=n.methods.find(x),ie;t[3]===i?ie=t[4]:(ie=(e,t)=>i?e:t,t[3]=i,t[4]=ie);let w=ie,T=o?.challenge?.type===`qr`?o.challenge.url:void 0,ae,E;t[5]===T?(ae=t[6],E=t[7]):(ae=()=>{let e=!1;return b(void 0),T&&M.toDataURL(T,{width:240,margin:2}).then(t=>{e||b(t)}).catch(L),()=>{e=!0}},E=[T],t[5]=T,t[6]=ae,t[7]=E),(0,N.useEffect)(ae,E);let oe;t[8]===o?oe=t[9]:(oe=o&&![`cancelled`,`error`,`connected`].includes(o.state),t[8]=o,t[9]=oe);let D=oe,O=o?.authorizationUrl??o?.challenge?.url,A=`连接 ${n.title}`,j=`Connect ${n.title}`,F;t[10]!==w||t[11]!==A||t[12]!==j?(F=w(A,j),t[10]=w,t[11]=A,t[12]=j,t[13]=F):F=t[13];let R;t[14]===w?R=t[15]:(R=w(`返回插件详情`,`Back to plugin details`),t[14]=w,t[15]=R);let z;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,k.jsx)(d,{className:`size-4`}),t[16]=z):z=t[16];let B;t[17]!==c||t[18]!==R?(B=(0,k.jsx)(S,{variant:`ghost`,className:`shrink-0`,onClick:c,"aria-label":R,children:z}),t[17]=c,t[18]=R,t[19]=B):B=t[19];let V;t[20]===w?V=t[21]:(V=w(`连接 `,`Connect `),t[20]=w,t[21]=V);let H;t[22]!==n.title||t[23]!==V?(H=(0,k.jsxs)(`h3`,{className:`text-base font-semibold`,children:[V,n.title]}),t[22]=n.title,t[23]=V,t[24]=H):H=t[24];let U;t[25]!==n.description||t[26]!==w?(U=n.description??w(`完成授权后自动检查连接。也可以稍后在详情页继续。`,`The connection is checked after authorization. You can also continue later in plugin details.`),t[25]=n.description,t[26]=w,t[27]=U):U=t[27];let W;t[28]===U?W=t[29]:(W=(0,k.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:U}),t[28]=U,t[29]=W);let G;t[30]!==H||t[31]!==W?(G=(0,k.jsxs)(`div`,{children:[H,W]}),t[30]=H,t[31]=W,t[32]=G):G=t[32];let K;t[33]!==B||t[34]!==G?(K=(0,k.jsxs)(`div`,{className:`flex items-start gap-3`,children:[B,G]}),t[33]=B,t[34]=G,t[35]=K):K=t[35];let q;t[36]!==n.methods||t[37]!==D||t[38]!==a||t[39]!==p||t[40]!==w?(q=n.methods.length>1?(0,k.jsx)(`div`,{role:`tablist`,"aria-label":w(`授权方式`,`Authorization methods`),className:`flex flex-wrap gap-2 rounded-lg bg-surface-inset p-1.5`,children:n.methods.map(e=>(0,k.jsx)(`button`,{role:`tab`,type:`button`,"aria-selected":p===e.id,className:`min-h-10 rounded-md px-3 text-sm ${p===e.id?`bg-surface-panel font-medium text-fg`:`text-fg-muted`}`,disabled:a||!!D,onClick:()=>{te(e.id),g({})},children:e.title},e.id))}):null,t[36]=n.methods,t[37]=D,t[38]=a,t[39]=p,t[40]=w,t[41]=q):q=t[41];let J=C?.instructions?.length||C?.helpUrl?(0,k.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-edge bg-surface-inset p-4 text-sm text-fg-muted`,children:[C.instructions?.length?(0,k.jsx)(`ol`,{className:`list-decimal space-y-2 pl-5`,children:C.instructions.map(I)}):null,C.helpUrl?(0,k.jsx)(`a`,{className:`text-accent underline`,href:C.helpUrl,target:`_blank`,rel:`noopener noreferrer`,children:w(`打开官方配置说明`,`Open setup instructions`)}):null]}):null,Y=(C?.type===`form`||C?.fields?.length)&&!D?(0,k.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),u(C.id,h)},children:[(0,k.jsx)(P,{fields:Object.fromEntries((C.fields??[]).filter(e=>r[e]).map(e=>[e,{...r[e],required:!0}])),values:h,onChange:g}),(0,k.jsxs)(S,{type:`submit`,disabled:a||!C.fields?.every(e=>h[e]!==void 0&&h[e]!==``),children:[a?(0,k.jsx)(_,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,w(`保存并连接`,`Save and connect`)]})]}):(0,k.jsxs)(`div`,{className:`space-y-4`,children:[D?null:(0,k.jsx)(S,{disabled:a,onClick:()=>l(p),children:w(`连接账号`,`Connect account`)}),D?(0,k.jsx)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:o.challenge?.message??(o.state===`preparing`?w(`正在准备登录…`,`Preparing sign-in…`):w(`请完成登录,返回后会自动继续。`,`Finish signing in. Installation continues automatically.`))}):null,T&&D?y?(0,k.jsx)(`img`,{src:y,alt:w(`使用 ${n.title} 扫码授权`,`Scan to authorize ${n.title}`),className:`mx-auto size-60 max-w-full rounded-lg`}):(0,k.jsx)(re,{className:`mx-auto size-60`}):null,O&&D?(0,k.jsx)(`a`,{href:O,target:`_blank`,rel:`noopener noreferrer`,className:`inline-block text-sm text-accent underline`,children:T?w(`也可以打开授权页面`,`Or open the authorization page`):w(`打开登录页面`,`Open sign-in page`)}):null,o?.expiresAt&&D?(0,k.jsxs)(`p`,{className:`text-center text-xs text-fg-muted`,children:[w(`本次授权有效期至 `,`This sign-in expires at `),new Date(o.expiresAt).toLocaleTimeString()]}):null,o?.error?(0,k.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:o.error}):null,o?.acceptsRedirect&&D?(0,k.jsxs)(`details`,{className:`text-sm`,children:[(0,k.jsx)(`summary`,{className:`cursor-pointer text-fg-muted`,children:w(`登录后没有自动返回?`,`Did sign-in not return automatically?`)}),(0,k.jsxs)(`form`,{className:`mt-3 space-y-3`,onSubmit:e=>{e.preventDefault(),ee(v)},children:[(0,k.jsxs)(`label`,{children:[w(`登录回调地址`,`Sign-in callback URL`),(0,k.jsx)(`input`,{value:v,onChange:e=>ne(e.target.value),className:`mt-1 w-full rounded-lg border border-edge bg-surface-inset p-2`})]}),(0,k.jsx)(S,{type:`submit`,disabled:a||!v,children:w(`继续登录`,`Continue sign-in`)})]})]}):null]}),X;t[42]===w?X=t[43]:(X=w(`暂时跳过`,`Skip for now`),t[42]=w,t[43]=X);let Z;t[44]!==a||t[45]!==f||t[46]!==X?(Z=(0,k.jsx)(S,{variant:`secondary`,disabled:a,onClick:f,children:X}),t[44]=a,t[45]=f,t[46]=X,t[47]=Z):Z=t[47];let Q;t[48]===w?Q=t[49]:(Q=w(`相关功能暂不可用,可随时在插件详情中授权。`,`Features requiring this account stay unavailable. Connect later in plugin details.`),t[48]=w,t[49]=Q);let ce;t[50]===Q?ce=t[51]:(ce=(0,k.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:Q}),t[50]=Q,t[51]=ce);let le;t[52]!==Z||t[53]!==ce?(le=(0,k.jsxs)(`div`,{className:`border-t border-edge pt-4`,children:[Z,ce]}),t[52]=Z,t[53]=ce,t[54]=le):le=t[54];let ue;return t[55]!==F||t[56]!==K||t[57]!==q||t[58]!==J||t[59]!==Y||t[60]!==le?(ue=(0,k.jsxs)(`section`,{className:`space-y-5`,"aria-label":F,children:[K,q,J,Y,le]}),t[55]=F,t[56]=K,t[57]=q,t[58]=J,t[59]=Y,t[60]=le,t[61]=ue):ue=t[61],ue}function I(e,t){return(0,k.jsx)(`li`,{children:e},t)}function L(){}async function R(e,t=`GET`,n){let r=await l(s(e),{method:t,...n===void 0?{}:{body:JSON.stringify(n)}});if(!r.ok)throw Error(r.error??`Request failed`);return r.payload}function z({extension:e,zh:t,onChanged:n,onStart:r,onInstalled:i,initialConnect:o=!1}){let s=`/api/extensions/agent-plugins/${encodeURIComponent(e.pluginId)}`,[c,l]=(0,N.useState)(),[u,d]=(0,N.useState)({}),[ee,f]=(0,N.useState)(!1),[h,g]=(0,N.useState)(``),[v,ne]=(0,N.useState)({}),[y,b]=(0,N.useState)(null),[x,C]=(0,N.useState)(``),[ie,w]=(0,N.useState)(null),[T,ae]=(0,N.useState)(!1),E=(0,N.useRef)(new Set),oe=(0,N.useRef)(new Set),D=(0,N.useRef)(void 0),O=(0,N.useRef)(null),se=(0,N.useRef)(new Set),A=(e,n)=>t?e:n,j=e.setup?.authorizations??[],M=new Set(j.flatMap(e=>e.servers)),I=[...j,...(c?.connections??[]).filter(t=>!M.has(t.name)&&(e.components?.mcp.find(e=>e.name===t.name)?.type!==`stdio`||t.state===`token_required`)).map(t=>{let n=t.state===`token_required`||e.components?.mcp.find(e=>e.name===t.name)?.connectionAuth?.mode===`api-key`;return{id:t.name,title:t.name,servers:[t.name],methods:[{id:n?`api-key`:`oauth`,title:n?A(`访问令牌`,`Access token`):A(`浏览器登录`,`Browser sign-in`),type:n?`form`:`oauth`,...n?{fields:[`__apiKey`]}:{server:t.name}}]}})],L=e=>e.servers.every(e=>c?.connections.find(t=>t.name===e)?.state===`connected`)&&(!j.some(t=>t.id===e.id)||c?.authorizations?.find(t=>t.id===e.id)?.state===`connected`),z=(c?.authorizations??[]).flatMap(e=>(e.issues??[]).map(t=>({...t,account:I.find(t=>t.id===e.id)}))),B=I.filter(e=>!L(e)),V=c?.installed||c?.state===`completed`,H=e.setup?.userConfig??{},U=new Set(j.flatMap(e=>e.methods.flatMap(e=>e.fields??[]))),W=Object.fromEntries(Object.entries(H).filter(([e])=>!U.has(e))),G=c?.error===`Connection verification failed. Check the credentials or login status and try again.`?A(`连接验证未通过,请检查凭据或登录状态后重试。`,c.error):c?.error,K=Object.fromEntries(Object.entries(H).filter(([e])=>c?.missingConfig?.includes(e))),q=ee||c?.state===`running`,J=I.find(e=>e.id===ie);(0,N.useEffect)(()=>{let e=!1;return R(`${s}/setup`).then(t=>{e||l(t)}).catch(t=>{e||(l(null),g(String(t)))}),()=>{e=!0}},[s]),(0,N.useEffect)(()=>{if(c?.state!==`running`)return;let e=!1,t=!1,r=setInterval(()=>{t||(t=!0,R(`${s}/setup`).then(t=>{e||(l(t),t?.state!==`running`&&n())}).catch(t=>{e||g(String(t))}).finally(()=>{t=!1}))},750);return()=>{e=!0,clearInterval(r)}},[s,c?.state]),(0,N.useEffect)(()=>{if(!c||!c.connections.some(e=>[`oauth_required`,`error`].includes(e.state)))return;let e=!1;return R(`${s}/setup/reusable`).then(t=>{e||ne(t)}).catch(()=>{e||ne({})}),()=>{e=!0}},[s,c?.revision]),(0,N.useEffect)(()=>{if(!x||c?.state===`completed`)return;let e=!1,t=!1,n=async()=>{if(!t){t=!0;try{let t=await R(`${s}/setup/auth/${encodeURIComponent(x)}`);e||b(t)}catch(t){e||g(String(t))}finally{t=!1}}};n();let r=setInterval(()=>void n(),1500),i=()=>void n();return window.addEventListener(`focus`,i),()=>{e=!0,clearInterval(r),window.removeEventListener(`focus`,i)}},[s,x,c?.state]),(0,N.useEffect)(()=>{let e=y?.authorizationUrl??(y?.challenge?.type===`url`?y.challenge.url:void 0);if(!y)return;if(y.error||[`cancelled`,`error`,`connected`].includes(y.state)){O.current?.close(),O.current=null;return}if(!e){y.challenge?.type===`qr`&&(O.current?.close(),O.current=null);return}let t=`${y.id}:${e}`;if(se.current.has(t))return;se.current.add(t);let n=O.current;O.current=null,n&&!n.closed?n.location.replace(e):window.open(e,`_blank`,`noopener,noreferrer`)},[y]);async function Y(e,t={},r=c?.revision){f(!0),g(``);try{let a=await R(`${s}/setup`,`POST`,{action:e,expectedRevision:r,...e===`start`?{}:{idempotencyKey:crypto.randomUUID()},...t}),o=e===`configure`&&j.find(e=>e.id===t.authorization)?.methods.some(e=>e.id===t.method&&e.type===`cli`);return([`reuse`,`start`].includes(e)||e===`configure`&&!o)&&(d({}),ae(!1),a=await R(`${s}/setup`,`POST`,{action:`prepare`,expectedRevision:a.revision,idempotencyKey:crypto.randomUUID()})),l(a),await n(),[`complete`,`defer`].includes(e)&&(w(null),b(null),C(``),O.current?.close(),O.current=null,i?.()),a}catch(e){g(e instanceof Error?e.message:String(e));try{l(await R(`${s}/setup`))}catch{}return null}finally{f(!1)}}(0,N.useEffect)(()=>{if(!c||q||h||[`cancelled`,`running`,`failed`].includes(c.state)||c.state===`completed`)return;let e,t=``;if(c.state===`pending`?(e=`prepare`,t=`prepare:${s}:${c.revision}`):y?.state===`connected`&&(e=`prepare`,t=`auth:${s}:${y.id}`),e&&!E.current.has(t)){E.current.add(t),Y(e);return}c.resources===`ready`&&!c.missingConfig?.length&&!c.partial&&c.connections.every(e=>e.state===`connected`)&&(c.authorizations??[]).every(e=>e.state===`connected`)&&(t=`complete:${s}:${c.revision}`,E.current.has(t)||(E.current.add(t),Y(`complete`)))},[c,y,q,h,s]),(0,N.useEffect)(()=>{q||!c||c.state===`cancelled`||(J&&c.revision!==D.current&&L(J)?(w(null),b(null),C(``)):(!V||o)&&c.resources===`ready`&&(!c.missingConfig?.length||o&&!c.missingConfig.some(e=>e in W))&&!ie&&B[0]&&!oe.current.has(B[0].id)&&(oe.current.add(B[0].id),D.current=c.revision,w(B[0].id)))},[c,q,V,ie,o]);function X(e,t){let n=e.methods.find(e=>e.id===t),r=n?.type===`oauth`||n?.type===`cli`?window.open(`about:blank`,`_blank`):null;r&&(r.opener=null),O.current=r,b(null),Y(`authorize`,{server:e.id,...j.some(t=>t.id===e.id)?{method:t}:{}}).then(t=>{t?C(e.id):(r?.close(),O.current=null)})}async function Z(t,n,r){if(n===`api-key`&&!j.some(e=>e.id===t.id)){f(!0),g(``);try{let n=e.components?.mcp.find(e=>e.name===t.id);await R(`${s}/mcp/${encodeURIComponent(t.id)}/auth`,`PUT`,{mode:`api-key`,secrets:[{target:n.type===`stdio`?`env`:`headers`,key:n.connectionAuth?.headerName??(n.type===`stdio`?`API_KEY`:`Authorization`),prefix:n.connectionAuth?.prefix??(n.type===`stdio`?``:`Bearer `),value:r.__apiKey}]});let i=await R(`${s}/setup`);l(i),f(!1),await Y(`prepare`,{},i.revision);return}catch(e){g(String(e)),f(!1);return}f(!1)}else if(t.methods.find(e=>e.id===n)?.type===`cli`){let e=window.open(`about:blank`,`_blank`);e&&(e.opener=null),O.current=e,b(null);let i=await Y(`configure`,{authorization:t.id,method:n,values:r},c?.revision);i&&await Y(`authorize`,{server:t.id,method:n},i.revision)?C(t.id):(e?.close(),O.current=null)}else await Y(`configure`,{authorization:t.id,method:n,values:r})}if(c===void 0)return(0,k.jsx)(re,{className:`h-40 w-full`});let Q=()=>{Y(`defer`)};return J?(0,k.jsxs)(`div`,{className:`space-y-3`,children:[(0,k.jsx)(F,{initialMethod:c?.authorizations?.find(e=>e.id===J.id)?.method,account:J,fields:{...H,__apiKey:{type:`string`,title:A(`访问令牌`,`Access token`),required:!0,sensitive:!0}},zh:t,busy:q,attempt:y,onBack:()=>w(null),onConnect:e=>X(J,e),onSave:(e,t)=>void Z(J,e,t),onRedirect:e=>{f(!0),R(`${s}/setup/auth/${encodeURIComponent(x)}/redirect`,`POST`,{url:e}).catch(e=>g(String(e))).finally(()=>f(!1))},onSkip:Q},`${J.id}:${c?.authorizations?.find(e=>e.id===J.id)?.method??``}`),v[J.id]?.map(e=>(0,k.jsxs)(S,{disabled:q,variant:`secondary`,onClick:()=>void Y(`reuse`,{server:J.id,sourceServerId:e.id}),children:[A(`使用已登录账号:`,`Use signed-in account: `),e.name]},e.id)),h||G&&J.servers.some(e=>c?.connections.find(t=>t.name===e)?.state===`error`)?(0,k.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:h||G}):null]}):(0,k.jsxs)(`section`,{className:`space-y-5`,"aria-label":A(`插件安装与授权`,`Plugin setup`),children:[V?(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`h3`,{className:`font-medium`,children:A(`安装完成`,`Installation complete`)}),(0,k.jsx)(`p`,{role:`status`,className:`mt-1 text-sm text-fg-muted`,children:e.activationEligible===!1?A(`插件已停用。`,`Plugin is disabled.`):c?.partial||B.length||z.length||c?.missingConfig?.length?A(`插件已安装,部分功能仍需要授权。`,`Plugin installed. Some features still need authorization.`):A(`所有 Agent 均可使用。可在 Agent 设置中单独调整。`,`Available to all agents. Customize individual agents in Agent settings.`)})]}):(0,k.jsxs)(`div`,{className:`rounded-xl border border-edge p-4`,children:[(0,k.jsx)(`h3`,{className:`font-medium`,children:A(`安装准备`,`Installation setup`)}),(0,k.jsx)(`ol`,{className:`mt-4 space-y-4 text-sm`,"aria-live":`polite`,children:[{name:A(`准备资源`,`Prepare resources`),done:c?.resources===`ready`,running:q&&c?.resources!==`ready`},{name:A(`授权账号`,`Authorize accounts`),done:c?.resources===`ready`&&!c?.missingConfig?.length&&B.length===0,running:!1},{name:A(`加载可用工具`,`Load available tools`),done:!1,running:q&&c?.resources===`ready`}].map(e=>(0,k.jsxs)(`li`,{className:`flex items-center gap-3`,children:[e.done?(0,k.jsx)(te,{className:`size-5 text-accent`,"aria-hidden":!0}):e.running?(0,k.jsx)(_,{className:`size-5 animate-spin text-accent`,"aria-hidden":!0}):(0,k.jsx)(m,{className:`size-5 text-fg-muted`,"aria-hidden":!0}),e.name]},e.name))}),(0,k.jsx)(`p`,{className:`mt-4 text-xs text-fg-muted`,children:A(`安装后所有 Agent 均可使用,可在各自的设置中调整。`,`Available to all agents after installation. Customize individual agents in Agent settings.`)})]}),!c||c.state===`cancelled`?(0,k.jsx)(S,{disabled:ee||e.readiness===`blocked`,onClick:()=>void Y(`start`),children:A(`继续安装`,`Continue installation`)}):(0,k.jsxs)(k.Fragment,{children:[c.missingConfig?.length||T?(0,k.jsxs)(`form`,{className:`space-y-4 rounded-xl border border-edge p-4`,onSubmit:e=>{e.preventDefault(),Y(`configure`,{values:u})},children:[(0,k.jsx)(`h4`,{className:`font-medium`,children:A(`补充配置`,`Required configuration`)}),(0,k.jsx)(P,{fields:T?W:K,values:u,onChange:d}),(0,k.jsx)(S,{type:`submit`,disabled:q||!Object.keys(u).length,children:A(`继续`,`Continue`)})]}):null,V&&(B.length||c.missingConfig?.length)?(0,k.jsxs)(`div`,{className:`flex items-start gap-3 rounded-xl border border-amber-500/30 bg-amber-500/10 p-4 text-sm`,children:[(0,k.jsx)(p,{className:`mt-0.5 size-5 shrink-0`,"aria-hidden":!0}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`p`,{className:`font-medium`,children:A(`需要授权`,`Authorization required`)}),(0,k.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:A(`授权后即可使用相关功能。已就绪的功能可继续使用。`,`Connect these accounts to use their features. Ready features remain available.`)})]})]}):null,z.length?(0,k.jsx)(`div`,{className:`space-y-3`,"aria-label":A(`需要补充权限`,`Additional permissions required`),children:z.map(e=>(0,k.jsxs)(`div`,{role:`alert`,className:`space-y-3 rounded-xl border border-amber-500/30 bg-amber-500/10 p-4 text-sm`,children:[(0,k.jsx)(`p`,{className:`font-medium`,children:e.title}),(0,k.jsx)(`p`,{className:`text-fg-muted`,children:A(`账号已连接,以下权限尚未就绪;其他已授权功能可继续使用。`,`Account connected. These permissions are not ready; other authorized features remain available.`)}),e.scopes.length?(0,k.jsx)(`p`,{className:`break-all font-mono text-xs`,children:e.scopes.join(`, `)}):null,(0,k.jsx)(`ol`,{className:`list-inside list-decimal space-y-1 text-fg-muted`,children:e.instructions.map(e=>(0,k.jsx)(`li`,{children:e},e))}),(0,k.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.helpUrl?(0,k.jsx)(S,{variant:`secondary`,asChild:!0,children:(0,k.jsx)(`a`,{href:e.helpUrl,target:`_blank`,rel:`noopener noreferrer`,children:A(`前往开通应用权限`,`Open application permissions`)})}):null,e.method&&e.account?(0,k.jsx)(S,{disabled:q,onClick:()=>{D.current=c.revision,w(e.account.id),X(e.account,e.method)},children:A(`补充授权`,`Grant missing permissions`)}):null,(0,k.jsx)(S,{variant:`secondary`,disabled:q,onClick:()=>void Y(`prepare`),children:A(`重新检查权限`,`Check permissions again`)})]})]},`${e.account?.id}:${e.id}`))}):null,I.length?(0,k.jsxs)(`div`,{className:`space-y-2`,children:[(0,k.jsx)(`h4`,{className:`text-sm font-medium`,children:A(`账号与连接`,`Accounts and connections`)}),I.map(e=>(0,k.jsxs)(`div`,{role:`group`,"aria-label":e.title,className:`flex items-center justify-between gap-3 rounded-lg border border-edge p-3`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`p`,{className:`text-sm font-medium`,children:e.title}),(0,k.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:L(e)?A(`已连接`,`Connected`):A(`需要授权`,`Authorization required`)})]}),(0,k.jsx)(S,{variant:L(e)?`secondary`:`primary`,disabled:q||c.resources!==`ready`,onClick:()=>{b(null),C(``),D.current=c.revision,w(e.id)},children:L(e)?A(`重新授权`,`Reconnect`):A(`连接账号`,`Connect account`)})]},e.id))]}):null,!V&&c.resources===`ready`?(0,k.jsxs)(`div`,{children:[(0,k.jsx)(S,{variant:`secondary`,disabled:q,onClick:Q,children:A(`暂时跳过`,`Skip for now`)}),(0,k.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:A(`先完成安装,稍后在详情页授权。未授权的功能暂不可用。`,`Finish installation and connect later in plugin details. Unauthenticated features remain unavailable.`)})]}):null,V&&Object.keys(W).length&&!T?(0,k.jsx)(S,{variant:`ghost`,disabled:q,onClick:()=>ae(!0),children:A(`修改插件配置`,`Edit plugin configuration`)}):null,V&&!z.length&&j.some(e=>e.methods.some(e=>e.type===`cli`))?(0,k.jsx)(S,{variant:`secondary`,disabled:q,onClick:()=>void Y(`prepare`),children:A(`检查连接与权限`,`Check connection and permissions`)}):null,!q&&(h||[`failed`,`interrupted`].includes(c.state)||c.connections.some(e=>e.state===`error`))?(0,k.jsx)(S,{variant:`secondary`,onClick:()=>void Y(`prepare`),children:A(`重试检查`,`Retry checks`)}):null,V?null:(0,k.jsx)(S,{variant:`ghost`,disabled:ee,onClick:()=>void Y(`cancel`),children:A(`取消安装`,`Cancel installation`)}),V&&!B.length&&!c.missingConfig?.length?e.setup?.tasks?.map(t=>(0,k.jsxs)(`div`,{className:`space-y-3 rounded-lg bg-surface-inset p-4 text-sm`,children:[(0,k.jsx)(`p`,{children:t}),(0,k.jsx)(S,{asChild:!0,disabled:!e.active,children:(0,k.jsx)(a,{to:`/chat/new?${new URLSearchParams({draft:t,projectScope:`none`})}`,state:{forceNewChat:!0},onClick:t=>{e.active?r?.():t.preventDefault()},children:A(`开始这个任务`,`Start this task`)})})]},t)):null]}),q?(0,k.jsx)(`p`,{role:`status`,className:`text-sm text-fg-muted`,children:A(`正在准备,可关闭后继续。`,`Preparing. You can close this window and resume.`)}):null,c?.error&&!c.deferred&&!c.missingConfig?.length?(0,k.jsx)(`p`,{className:`text-sm text-fg-muted`,children:G}):null,h?(0,k.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:h}):null]})}var B=`w-full rounded-lg border border-edge bg-surface-inset px-3 py-2 text-sm text-fg`;function V(e,t){if(e.startsWith(`content.skills:`)){let n=e.slice(15);return t?`提供技能:${n}`:`Add skill: ${n}`}if(e.startsWith(`runtime.mcp.stdio:`)){let n=e.slice(18).split(`:`,1)[0];return t?`在 Gateway 上运行工具服务:${n}`:`Run a tool service on the Gateway: ${n}`}if(e.startsWith(`network.mcp:`)){let n=e.slice(12).split(`:`,1)[0];return t?`连接外部工具服务:${n}`:`Connect to an external tool service: ${n}`}return e.startsWith(`runtime.capability-access:`)?t?`按账号授权启用相关技能和工具`:`Enable skills and tools according to account authorization`:e.startsWith(`runtime.authorization:`)?t?`在本机运行账号登录程序:${e.split(`:`)[1]}`:`Run account sign-in locally: ${e.split(`:`)[1]}`:e.startsWith(`runtime.resource:`)?t?`下载可执行资源:${e.split(`:`)[1]}`:`Download executable resource: ${e.split(`:`)[1]}`:e.startsWith(`network.resource:`)?t?`下载并校验资源:${e.split(`:`)[1]}`:`Download and verify resource: ${e.split(`:`)[1]}`:e}function H(e,t){return t?.publisher?.verification!==`verified`||t.latestVersion.riskTier&&t.latestVersion.riskTier!==`content`?!0:e.addedCapabilities.some(e=>!e.startsWith(`content.skills:`))}async function U(e,t,n){let r=await l(s(e),{method:t,...n===void 0?{}:{body:JSON.stringify(n)}});if(!r.ok)throw Error(r.error??`Request failed`);return r.payload}function W({extension:e,onClose:t,onUninstalled:n,initialSource:r=``,marketplace:a,autoInstall:s=!1}){let l=c(e=>e.language),d=l.startsWith(`zh`),p=a?.localizations?.[d?`zh-CN`:`en`],m=p?.displayName??a?.name,re=p?.description??a?.description,D=(0,N.useId)(),{mutate:se}=x(),[j,M]=(0,N.useState)(e),[P,F]=(0,N.useState)(r||e?.installationSource||``),[I,L]=(0,N.useState)(null),[R,W]=(0,N.useState)([]),[G,K]=(0,N.useState)(!1),[q,J]=(0,N.useState)(``),[Y,X]=(0,N.useState)(!1),[Z,Q]=(0,N.useState)(!1),[ce,le]=(0,N.useState)(!1),[ue,de]=(0,N.useState)(!1),[fe,pe]=(0,N.useState)(!1),[me,he]=(0,N.useState)(!1),ge=o(),_e=i(),[ve,ye]=(0,N.useState)(!1),be=(0,N.useRef)(!1),xe=`/api/extensions/agent-plugins/${encodeURIComponent(j?.pluginId??``)}`,Se=P.trim().startsWith(`store:`),Ce=()=>se(`gateway-extensions-list`);async function $(e){K(!0),J(``);try{await e()}catch(e){J(e instanceof Error?e.message:String(e))}finally{K(!1)}}function we(e){F(e),L(null),W([]),J(``)}let Te=typeof window<`u`?window.electronAPI?.file:void 0,Ee=/^(?:\/|[A-Za-z]:[\\/])/.test(P.trim())?P.trim():void 0;async function De(){if(!Te?.openDirectory){pe(!0);return}let e=await Te.openDirectory(Ee?{defaultPath:Ee}:void 0);e&&we(e)}async function Oe(){if(!Te?.openFile){pe(!0);return}let e=await Te.openFile({...Ee?{defaultPath:Ee}:{},extensions:[`zip`]});e&&we(e)}function ke(e){return[...e.dataTransfer.types].some(e=>e===`Files`||e===`text/plain`||e===`text/uri-list`)}function Ae(e){if(!ke(e))return;e.preventDefault(),de(!1);let t=Array.from(e.dataTransfer.files);if(t.length){if(t.length>1){J(d?`一次只能选择一个插件目录或 ZIP。`:`Choose one plugin directory or ZIP at a time.`);return}let e=Te?.getPathForFile?.(t[0]);e?we(e):J(d?`浏览器无法读取本机文件路径,请使用“选择文件或目录”选择安装包。`:`The browser cannot read local file paths. Use Choose file or folder to select the package.`);return}let n=e.dataTransfer.getData(`text/uri-list`)||e.dataTransfer.getData(`text/plain`);n.trim()&&we(n.trim().split(/\r?\n/)[0])}async function je(e){let t=await U(`${xe}/activation`,`POST`,{enabled:e});M(t),await Ce()}async function Me(e){let t=!j,n=await U(t?`/api/extensions/install`:`${xe}/update`,`POST`,{source:P,reviewHash:e.reviewHash,...e.layout?{setup:!0}:{}});M(n),await Ce(),!e.layout&&t&&!n.activationEligible&&n.readiness!==`blocked`&&n.pluginId&&(n=await U(`/api/extensions/agent-plugins/${encodeURIComponent(n.pluginId)}/activation`,`POST`,{enabled:!0}),M(n),await Ce()),L(null),ye(!e.layout&&t&&n.activationEligible===!0)}async function Ne(){let e=await U(`/api/extensions/inspect`,`POST`,{source:P});if(H(e,a)){L(e);return}await Me(e)}(0,N.useEffect)(()=>{e&&!e.setup&&M(e)},[e]),(0,N.useEffect)(()=>{if(!e?.setup||!e.pluginId)return;let t=!1;return U(`/api/extensions/agent-plugins/${encodeURIComponent(e.pluginId)}`,`GET`).then(e=>{t||M(e)}).catch(()=>{}),()=>{t=!0}},[e?.pluginId]),(0,N.useEffect)(()=>{!s||j||!Se||be.current||(be.current=!0,$(Ne))},[s,j,Se]);let Pe=s&&!j&&Se&&!be.current;return(0,k.jsx)(E,{defaultOpen:!0,onOpenChange:e=>!e&&t(),children:(0,k.jsxs)(w,{children:[(0,k.jsx)(C,{className:`fixed inset-0 z-[130] bg-scrim`}),(0,k.jsxs)(T,{className:`fixed left-1/2 top-1/2 z-[131] flex h-[min(42rem,calc(100dvh-2rem))] w-[min(38rem,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:[(0,k.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-edge p-4`,children:[(0,k.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,k.jsx)(O,{iconUrl:j?.branding?.iconUrl??a?.branding?.iconUrl,fallback:v}),(0,k.jsx)(ae,{className:`font-semibold`,children:j?.name??m??(d?`安装插件`:`Install plugin`)})]}),(0,k.jsx)(S,{variant:`ghost`,onClick:t,children:d?`关闭`:`Close`})]}),(0,k.jsx)(ie,{className:`sr-only`,children:d?`安装、组件、账号连接和权限`:`Installation, components, connections and permissions`}),(0,k.jsxs)(`div`,{className:`min-h-0 flex-auto space-y-4 overflow-y-auto overscroll-contain p-4`,children:[!j&&Se?(0,k.jsxs)(`section`,{className:`space-y-4`,children:[(0,k.jsxs)(`div`,{className:`flex items-start gap-3 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,k.jsx)(ne,{className:`mt-0.5 size-5 shrink-0 text-emerald-600 dark:text-emerald-400`,"aria-hidden":!0}),(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`p`,{className:`font-medium text-fg`,children:m??I?.manifest.name??P.slice(6)}),re?(0,k.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:re}):null,(0,k.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:a?.publisher?.verification===`verified`?d?`已认证发布者 · 安装后所有智能体均可使用`:`Verified publisher · available to all agents after installation`:d?`安装前会检查来源和所需权限`:`Source and required permissions are checked before installation`})]})]}),a?(0,k.jsx)(A,{data:a,zh:d}):null,I?null:(0,k.jsxs)(S,{className:`w-full`,disabled:G||Pe,onClick:()=>void $(Ne),children:[G||Pe?(0,k.jsx)(_,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,G||Pe?d?`正在安全检查并安装…`:`Checking and installing…`:d?`一键安装`:`Install`]})]}):null,j?(0,k.jsxs)(k.Fragment,{children:[ve?(0,k.jsxs)(`div`,{role:`status`,className:`flex items-start gap-3 rounded-lg border border-emerald-500/25 bg-emerald-500/10 p-4`,children:[(0,k.jsx)(te,{className:`mt-0.5 size-5 shrink-0 text-emerald-600 dark:text-emerald-400`,"aria-hidden":!0}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`p`,{className:`font-medium text-fg`,children:d?`插件已安装并启用`:`Plugin installed and enabled`}),(0,k.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:d?`请继续检查账号连接、依赖与可用状态,再在对话中试用。`:`It is ready to use in your conversations.`})]})]}):null,(!j.setup||j.readiness!==`setup_required`)&&!j.activationEligible?(0,k.jsxs)(`div`,{role:`status`,className:`space-y-3 rounded-lg border border-accent/25 bg-accent-soft p-4`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`p`,{className:`font-medium text-accent-fg`,children:d?`插件已安装,当前尚未启用`:`Plugin installed. It is not enabled yet.`}),(0,k.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:d?`启用后,Skills 和 MCP 才会加入 Agent 运行时。`:`Enable it to make its skills and MCP servers available to the Agent runtime.`})]}),(0,k.jsx)(S,{disabled:G||j.readiness===`blocked`,onClick:()=>void $(()=>je(!0)),children:d?`启用插件`:`Enable plugin`})]}):null,j.setup?(0,k.jsx)(z,{extension:j,zh:d,onStart:t,onInstalled:()=>{t(),ge(oe(j.pluginId,`installed`,!1,_e.pathname+_e.search))},onChanged:async()=>{let e=await U(`${xe}`,`GET`);M(e),await Ce()}}):null,(0,k.jsxs)(`details`,{className:`rounded-lg border border-edge p-3`,children:[(0,k.jsx)(`summary`,{className:`cursor-pointer text-sm font-medium`,children:d?`插件详情`:`Plugin details`}),(0,k.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,k.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[d?`插件`:`Plugin`,` · `,j.version,` · `,j.readiness&&{ready:d?`已就绪`:`Ready`,setup_required:d?`待连接`:`Setup required`,degraded:d?`部分不可用`:`Partially available`,blocked:d?`已阻止`:`Blocked`}[j.readiness]]}),j.provenance?(0,k.jsxs)(`p`,{className:`break-words text-xs text-fg-muted`,children:[j.provenance.publisherVerification===`verified`?d?`已认证发布者`:`Verified publisher`:d?`社区发布者`:`Community publisher`,` · `,j.provenance.packageName,`@`,j.provenance.version,` · SHA-256 `,j.provenance.sha256.slice(0,12),`…`,j.provenance.riskTier?` · ${j.provenance.riskTier}`:``]}):null,(0,k.jsx)(`p`,{className:`text-sm`,children:j.description}),j.installationSource?(0,k.jsxs)(`p`,{className:`break-all text-xs text-fg-muted`,children:[d?`来源:`:`Source: `,j.installationSource,j.resolvedCommit?` · ${j.resolvedCommit.slice(0,12)}`:``]}):null,j.activationEligible?(0,k.jsx)(S,{disabled:G,variant:`secondary`,onClick:()=>void $(()=>je(!1)),children:d?`停用`:`Disable`}):null,j.canRollback?(0,k.jsx)(S,{disabled:G,variant:`secondary`,onClick:()=>void $(async()=>{M(await U(`${xe}/rollback`,`POST`)),await Ce()}),children:d?`回滚上一版本`:`Roll back`}):null]})]}),j.diagnostics?.map((e,t)=>(0,k.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[e.component,`: `,e.message]},t))]}):null,j?(0,k.jsxs)(S,{variant:`ghost`,className:`px-0`,"aria-expanded":me,onClick:()=>he(e=>!e),children:[(0,k.jsx)(ee,{className:b(`size-4 transition-transform motion-reduce:transition-none`,me&&`rotate-180`),"aria-hidden":!0}),d?`高级操作`:`Advanced actions`]}):null,!j&&!Se||me?(0,k.jsxs)(`form`,{className:b(`space-y-3`,j&&`border-t border-edge pt-4`),onSubmit:e=>{e.preventDefault(),$(async()=>{let e=await U(`/api/extensions/inspect`,`POST`,{source:P});e.candidates?(W(e.candidates),L(null)):(W([]),L(e))})},children:[(0,k.jsxs)(`div`,{"data-testid":`plugin-source-dropzone`,className:b(`rounded-xl border border-dashed p-3 transition-colors`,ue?`border-accent bg-accent-soft`:`border-edge bg-surface-inset/40`),onDragEnter:e=>{ke(e)&&(e.preventDefault(),de(!0))},onDragOver:e=>{ke(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`,de(!0))},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||de(!1)},onDrop:Ae,children:[(0,k.jsxs)(`div`,{className:`mb-2 flex items-start gap-2`,children:[(0,k.jsx)(y,{className:`mt-0.5 size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`label`,{htmlFor:D,className:`block text-sm font-medium`,children:j?d?`更新包来源`:`Update package source`:d?`安装包来源`:`Package source`}),(0,k.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:d?`输入 github:组织/仓库、Git / ZIP 地址或宿主目录;marketplace 可选择插件。`:`Enter github:owner/repo, a Git / ZIP URL or a Gateway directory. Marketplaces let you choose a plugin.`})]})]}),(0,k.jsx)(`input`,{id:D,className:B,value:P,onChange:e=>we(e.target.value),placeholder:d?`/插件目录/或/插件.zip`:`/plugin/folder/or/plugin.zip`,autoComplete:`off`,spellCheck:!1,required:!0}),(0,k.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:Te?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(S,{type:`button`,variant:`secondary`,disabled:G,onClick:()=>void $(De),children:[(0,k.jsx)(g,{className:`size-4`,"aria-hidden":!0}),d?`选择目录`:`Choose directory`]}),(0,k.jsxs)(S,{type:`button`,variant:`secondary`,disabled:G,onClick:()=>void $(Oe),children:[(0,k.jsx)(h,{className:`size-4`,"aria-hidden":!0}),d?`选择 ZIP`:`Choose ZIP`]})]}):(0,k.jsxs)(S,{type:`button`,variant:`secondary`,disabled:G,onClick:()=>pe(!0),children:[(0,k.jsx)(g,{className:`size-4`,"aria-hidden":!0}),d?`选择文件或目录`:`Choose file or folder`]})})]}),(0,k.jsx)(S,{type:`submit`,variant:`secondary`,disabled:G||!P,children:d?`检查安装包`:`Inspect package`})]}):null,R.length?(0,k.jsx)(`div`,{className:`space-y-2`,"aria-label":d?`选择插件`:`Choose a plugin`,children:R.map(e=>(0,k.jsx)(S,{variant:`secondary`,className:`w-full justify-start`,onClick:()=>{we(e.source),$(async()=>L(await U(`/api/extensions/inspect`,`POST`,{source:e.source})))},children:e.name},e.source))}):null,I?(0,k.jsxs)(`div`,{role:`region`,"aria-labelledby":`plugin-authorization-title`,className:`space-y-3 rounded-xl border border-amber-500/30 bg-amber-500/10 p-4 text-sm`,children:[(0,k.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,k.jsx)(ne,{className:`mt-0.5 size-5 shrink-0 text-amber-700 dark:text-amber-300`,"aria-hidden":!0}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`p`,{id:`plugin-authorization-title`,className:`font-medium text-fg`,children:d?`需要你的授权`:`Your authorization is required`}),(0,k.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:d?`此插件需要以下新增能力。确认后自动准备资源,按需登录账号,所有智能体均可使用。`:`Review these capabilities. Resources are prepared automatically; sign in if needed. Available to all agents.`})]})]}),(0,k.jsx)(`ul`,{tabIndex:0,"aria-label":d?`插件新增能力`:`Added plugin capabilities`,className:`max-h-[min(28vh,14rem)] space-y-2 overflow-y-auto overscroll-contain rounded-lg border border-edge bg-surface-panel p-3 break-words focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:I.addedCapabilities.map(e=>(0,k.jsxs)(`li`,{className:`flex gap-2`,children:[(0,k.jsx)(`span`,{"aria-hidden":!0,children:`•`}),(0,k.jsx)(`span`,{children:V(e,d)})]},e))}),I.diagnostics.map((e,t)=>(0,k.jsxs)(`p`,{children:[e.component,`: `,e.message]},t))]}):null,j&&me?(0,k.jsx)(`div`,{className:`border-t border-edge pt-4`,children:ce?(0,k.jsxs)(`div`,{className:`space-y-3 text-sm`,children:[(0,k.jsx)(`p`,{children:d?`卸载保留账号凭据;服务端授权需到相应服务撤销。`:`Credentials are retained. Revoke provider authorization in the service itself.`}),(0,k.jsxs)(`label`,{className:`flex gap-2`,children:[(0,k.jsx)(`input`,{type:`checkbox`,checked:Y,onChange:e=>X(e.target.checked)}),d?`同时删除插件数据`:`Also delete plugin data`]}),(0,k.jsxs)(`label`,{className:`flex gap-2`,children:[(0,k.jsx)(`input`,{type:`checkbox`,checked:Z,onChange:e=>Q(e.target.checked)}),d?`同时删除本地凭据`:`Also delete local credentials`]}),(0,k.jsx)(S,{disabled:G,onClick:()=>void $(async()=>{await U(xe,`DELETE`,{removeData:Y,removeCredentials:Z}),await Ce(),(n??t)()}),children:d?`确认卸载`:`Confirm uninstall`})]}):(0,k.jsx)(S,{variant:`ghost`,disabled:G,onClick:()=>le(!0),children:d?`卸载插件`:`Uninstall`})}):null,q?(0,k.jsx)(`p`,{role:`alert`,className:`break-words text-sm text-fg-muted`,children:q}):null]}),I?(0,k.jsxs)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2 border-t border-edge p-4`,children:[(0,k.jsx)(S,{variant:`ghost`,disabled:G,onClick:()=>L(null),children:d?`取消`:`Cancel`}),(0,k.jsxs)(S,{disabled:G||!!j&&I.manifest.name!==j.name,onClick:()=>void $(()=>Me(I)),children:[G?(0,k.jsx)(_,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,d?`授权并安装`:`Authorize and install`]})]}):null]}),Te?null:(0,k.jsx)(f,{open:fe,onOpenChange:pe,initialAbsolutePath:Ee,onConfirm:async e=>we(e),wd:u(l).chat.workingDirectory,selectKind:`file-or-directory`,fileExtensions:[`zip`],title:d?`选择插件安装包`:`Choose plugin package`,description:d?`选择插件目录或 ZIP 文件。`:`Choose a plugin directory or ZIP file.`,confirmLabel:d?`使用此来源`:`Use this source`,nested:!0})]})})}export{z as n,A as r,W as t};