@xopcai/xopc 0.0.339 → 0.0.340

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 (373) 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/{agent-avatar-dicebear-Cc_FeKSx.js → agent-avatar-dicebear-CZsW4B_4.js} +1 -1
  13. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-C_56_X-e.js +1 -0
  14. package/dist/gateway/static/root/assets/{agent-plugin-dialog-DoC_yH9K.js → agent-plugin-dialog-DPil7wFb.js} +1 -1
  15. package/dist/gateway/static/root/assets/agents-DXcxDhxl.js +70 -0
  16. package/dist/gateway/static/root/assets/{agents-admin-api-C82B1W9Z.js → agents-admin-api-9hEICfl6.js} +1 -1
  17. package/dist/gateway/static/root/assets/{app-management-settings-panel-BquxFv-S.js → app-management-settings-panel-B6_Ocd3H.js} +1 -1
  18. package/dist/gateway/static/root/assets/{appearance-settings-CZYqmnu6.js → appearance-settings-CYk3wLnQ.js} +1 -1
  19. package/dist/gateway/static/root/assets/{apps-page-jIVrH3te.js → apps-page-DOteYBc9.js} +1 -1
  20. package/dist/gateway/static/root/assets/{archive-plugin-B0vUM0zp.js → archive-plugin-Cq8nfXI4.js} +1 -1
  21. package/dist/gateway/static/root/assets/{automations-page-B0Y5BNRb.js → automations-page-D3dSY_dy.js} +1 -1
  22. package/dist/gateway/static/root/assets/automations-workspace-DuULlur3.js +7 -0
  23. package/dist/gateway/static/root/assets/{binary-plugins-NBJu1CLg.js → binary-plugins-BKqt6Et6.js} +1 -1
  24. package/dist/gateway/static/root/assets/{block-editor-TXHouZOO.js → block-editor-H3ijAjys.js} +3 -3
  25. package/dist/gateway/static/root/assets/{browser-automation-inputs-CLOq1KtH.js → browser-automation-inputs-cnvnVaXG.js} +1 -1
  26. package/dist/gateway/static/root/assets/{browser-automations-page-BqMknmu3.js → browser-automations-page-CjIhwapc.js} +2 -2
  27. package/dist/gateway/static/root/assets/{browser-settings-page-GRFXQqKe.js → browser-settings-page-DvMsxdHZ.js} +2 -2
  28. package/dist/gateway/static/root/assets/{capabilities-BfHgt4uk.js → capabilities-CE5NAPxj.js} +1 -1
  29. package/dist/gateway/static/root/assets/{capabilities-page-DmJDCbYN.js → capabilities-page-CM55DJos.js} +2 -2
  30. package/dist/gateway/static/root/assets/capabilities-settings-panel-3kh-Ox8d.js +8 -0
  31. package/dist/gateway/static/root/assets/{capability-header-actions-BF9_u3xd.js → capability-header-actions-DRdadVwO.js} +1 -1
  32. package/dist/gateway/static/root/assets/{channels-BG-1mvQi.js → channels-BU6w4j04.js} +1 -1
  33. package/dist/gateway/static/root/assets/{chat-terminal-dock-DYysZFAt.js → chat-terminal-dock-bMULpQTT.js} +1 -1
  34. package/dist/gateway/static/root/assets/{computer-settings-page-DI3Ek853.js → computer-settings-page-T4wZrdXv.js} +1 -1
  35. package/dist/gateway/static/root/assets/{connector-service-page-BWkcwg_D.js → connector-service-page-f6kDBxXv.js} +1 -1
  36. package/dist/gateway/static/root/assets/connectors-page-BZ2oIRzn.js +2 -0
  37. package/dist/gateway/static/root/assets/{date-picker-Di84qsYg.js → date-picker-BxODmHib.js} +1 -1
  38. package/dist/gateway/static/root/assets/{dependency-picker-BfxDCpmT.js → dependency-picker-BNPg7CKM.js} +1 -1
  39. package/dist/gateway/static/root/assets/{desktop-pet-BRTL_oOb.js → desktop-pet-I6v0yXqp.js} +1 -1
  40. package/dist/gateway/static/root/assets/{desktop-pet-settings-BNVH1m1M.js → desktop-pet-settings-tSuk-nRY.js} +1 -1
  41. package/dist/gateway/static/root/assets/device-pairing-wizard-Dka3NDC5.js +1 -0
  42. package/dist/gateway/static/root/assets/{directory-picker-path-field-BpuRd-vD.js → directory-picker-path-field-BvrnQNVH.js} +1 -1
  43. package/dist/gateway/static/root/assets/{extension-debug-page-mQPbBDJQ.js → extension-debug-page-BU56INhZ.js} +1 -1
  44. package/dist/gateway/static/root/assets/{extension-page-BHSB_YFM.js → extension-page-DQu5R6aV.js} +1 -1
  45. package/dist/gateway/static/root/assets/{extension-settings-page-IoBTZ9jq.js → extension-settings-page-oL7xkRyC.js} +1 -1
  46. package/dist/gateway/static/root/assets/{gateway-config-swr-Hn1vj6uI.js → gateway-config-swr-BdBCP9uF.js} +1 -1
  47. package/dist/gateway/static/root/assets/{gateway-realtime-vOLum3RR.js → gateway-realtime-MiR9DJIf.js} +1 -1
  48. package/dist/gateway/static/root/assets/gateway-realtime-store-Cj-byMay.js +1 -0
  49. package/dist/gateway/static/root/assets/gateway-settings-Kp84CfNh.js +1 -0
  50. package/dist/gateway/static/root/assets/{gateway-startup-retry-CtTVgB7_.js → gateway-startup-retry-B8XTENLw.js} +1 -1
  51. package/dist/gateway/static/root/assets/home-page-CtjDNSNA.js +1 -0
  52. package/dist/gateway/static/root/assets/{image-generation-api-DBA-bdEM.js → image-generation-api-DufKsb8h.js} +1 -1
  53. package/dist/gateway/static/root/assets/{imports-page-DLJp26Cn.js → imports-page-CKj_w0ri.js} +1 -1
  54. package/dist/gateway/static/root/assets/{index-CdvabjRm.js → index-b_BtpHlo.js} +20 -20
  55. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-YnkILLU1.js → keyboard-shortcuts-settings-BUqFy1Mk.js} +1 -1
  56. package/dist/gateway/static/root/assets/{local-app-workbench-page-C4d2T20s.js → local-app-workbench-page-Uo5UKdF8.js} +1 -1
  57. package/dist/gateway/static/root/assets/{local-apps-page-DfOhJ8iP.js → local-apps-page-DoxtxoTl.js} +1 -1
  58. package/dist/gateway/static/root/assets/{local-session-drafts-Byxxogdc.js → local-session-drafts-Bwxng2U0.js} +1 -1
  59. package/dist/gateway/static/root/assets/{locale-store-7F4l6DRV.js → locale-store-GbEE8D1I.js} +1 -1
  60. package/dist/gateway/static/root/assets/{logs-page-Ds6pm2I7.js → logs-page-NHrVWElJ.js} +2 -2
  61. package/dist/gateway/static/root/assets/{management-settings-D0kBRnl2.js → management-settings-BDnKvfCl.js} +1 -1
  62. package/dist/gateway/static/root/assets/{markdown-view-bxpOryax.js → markdown-view-DtEVIWB3.js} +1 -1
  63. package/dist/gateway/static/root/assets/{media-plugins-vBKV9GvC.js → media-plugins-Gt-PA4Fe.js} +1 -1
  64. package/dist/gateway/static/root/assets/{messages-DsUnS7rn.js → messages-DvcSrOiI.js} +2 -2
  65. package/dist/gateway/static/root/assets/note-detail-panel-ddFcoIGv.js +5 -0
  66. package/dist/gateway/static/root/assets/notes-page-DHY9KaXz.js +8 -0
  67. package/dist/gateway/static/root/assets/{page-context-capture-button-DvMerCk-.js → page-context-capture-button-CZ-NyERX.js} +1 -1
  68. package/dist/gateway/static/root/assets/{page-tabs-Bp0yPTYw.js → page-tabs-7u-lmA1o.js} +1 -1
  69. package/dist/gateway/static/root/assets/{preview-open-alternatives-CQO4X4dH.js → preview-open-alternatives-Bolgk7cf.js} +1 -1
  70. package/dist/gateway/static/root/assets/{product-open-page-BQ4vLqay.js → product-open-page-CJEViLcx.js} +1 -1
  71. package/dist/gateway/static/root/assets/project-detail-page-BcikJ4wu.js +1 -0
  72. package/dist/gateway/static/root/assets/{projects-page-EvaT-KoY.js → projects-page-DFZXCRc2.js} +1 -1
  73. package/dist/gateway/static/root/assets/{registry-api-DU915Prn.js → registry-api-DTHBAr2T.js} +1 -1
  74. package/dist/gateway/static/root/assets/remote-access-hub-Dr2FLBo-.js +1 -0
  75. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-POD_UkI6.js → runtime-tools-settings-panel-BKus_7qQ.js} +1 -1
  76. package/dist/gateway/static/root/assets/scenes-page-Sp5hozOY.js +2 -0
  77. package/dist/gateway/static/root/assets/{schema-form-DDjuoH6S.js → schema-form-DvkI2pYT.js} +1 -1
  78. package/dist/gateway/static/root/assets/{session-api-C7i3UFhq.js → session-api-Bb2zLVED.js} +1 -1
  79. package/dist/gateway/static/root/assets/{session-manager-g96pFnRm.js → session-manager-9M-yBtb4.js} +1 -1
  80. package/dist/gateway/static/root/assets/sessions-page-Cm4j_l7t.js +1 -0
  81. package/dist/gateway/static/root/assets/settings-advanced-gate-CpD6cRcO.js +1 -0
  82. package/dist/gateway/static/root/assets/{settings-form-section-DziWi7ar.js → settings-form-section-BzC6oYCR.js} +1 -1
  83. package/dist/gateway/static/root/assets/{settings-page-DieZ7WKk.js → settings-page-DpEe6N0D.js} +1 -1
  84. package/dist/gateway/static/root/assets/setup-status-panel-CfuLya7v.js +1 -0
  85. package/dist/gateway/static/root/assets/{share-preview-page-CKuGdvQ1.js → share-preview-page-DAE82vq9.js} +1 -1
  86. package/dist/gateway/static/root/assets/shares-settings-Bqkvdt3m.js +1 -0
  87. package/dist/gateway/static/root/assets/{skill-api-CEaxaT32.js → skill-api-DkZFVXn8.js} +1 -1
  88. package/dist/gateway/static/root/assets/skill-reload-api-rA2myUNh.js +1 -0
  89. package/dist/gateway/static/root/assets/{skills-page-C4z5rpJp.js → skills-page-CrTKXe6r.js} +1 -1
  90. package/dist/gateway/static/root/assets/{system-settings-panel-DqFk7NdF.js → system-settings-panel-BWVB47be.js} +1 -1
  91. package/dist/gateway/static/root/assets/{task-detail-page-BIA_56uP.js → task-detail-page-DcsgbSjp.js} +1 -1
  92. package/dist/gateway/static/root/assets/{tunnel-api-mpYTR5df.js → tunnel-api-D1I9v9nz.js} +1 -1
  93. package/dist/gateway/static/root/assets/{usage-page-CBew7QUj.js → usage-page-DyKTK2iS.js} +1 -1
  94. package/dist/gateway/static/root/assets/{use-autosave-CujxcROb.js → use-autosave-G5bltEoh.js} +1 -1
  95. package/dist/gateway/static/root/assets/user-model-page-7tObyrXy.js +2 -0
  96. package/dist/gateway/static/root/assets/{voice-api-key-field-BAewnwoh.js → voice-api-key-field-C2Q5SXkb.js} +1 -1
  97. package/dist/gateway/static/root/assets/{voice-config-api-LKFent6f.js → voice-config-api-DIBe0AZN.js} +1 -1
  98. package/dist/gateway/static/root/assets/{work-discovery-overlay-Bgtzc3ng.js → work-discovery-overlay-J-w4XEEK.js} +1 -1
  99. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-ONIY4un8.js → workflow-run-setup-panel-CmZCSCBe.js} +2 -2
  100. package/dist/gateway/static/root/assets/workflows-page-DcXyKH2p.js +6 -0
  101. package/dist/gateway/static/root/index.html +14 -14
  102. package/dist/package.js +1 -1
  103. package/dist/src/agent/agent-manager.js +13 -13
  104. package/dist/src/agent/agent-scope.js +2 -2
  105. package/dist/src/agent/background-review/prompts.js +1 -1
  106. package/dist/src/agent/background-review/run-background-review.js +3 -3
  107. package/dist/src/agent/coding/repository-instructions.js +1 -1
  108. package/dist/src/agent/context/coordinator.js +2 -2
  109. package/dist/src/agent/context/execution-context.js +4 -4
  110. package/dist/src/agent/context/execution-scope.js +2 -2
  111. package/dist/src/agent/context/project-context.js +3 -3
  112. package/dist/src/agent/data-acquisition/service.js +1 -1
  113. package/dist/src/agent/embedded/index.js +2 -2
  114. package/dist/src/agent/embedded/model-runtime.js +1 -1
  115. package/dist/src/agent/embedded/run-for-session.js +4 -4
  116. package/dist/src/agent/embedded/run-turn.js +4 -4
  117. package/dist/src/agent/embedded/session-tool-result-guard.js +3 -3
  118. package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
  119. package/dist/src/agent/external-tools/cliProvider.js +3 -3
  120. package/dist/src/agent/external-tools/composio-provider.js +3 -3
  121. package/dist/src/agent/external-tools/gateway-tools.js +1 -1
  122. package/dist/src/agent/external-tools/mcp-provider.js +3 -3
  123. package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
  124. package/dist/src/agent/image/generation/providers/dashscope.js +1 -1
  125. package/dist/src/agent/image/generation/providers/fal.js +1 -1
  126. package/dist/src/agent/image/generation/providers/google.js +1 -1
  127. package/dist/src/agent/image/generation/runtime.js +1 -1
  128. package/dist/src/agent/image/index.js +1 -1
  129. package/dist/src/agent/image/load-image-media.js +1 -1
  130. package/dist/src/agent/image/tool-model-config.js +1 -1
  131. package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
  132. package/dist/src/agent/inbound/inbound-loop.js +2 -2
  133. package/dist/src/agent/index.js +1 -1
  134. package/dist/src/agent/mcp/bundle-mcp-config.js +1 -1
  135. package/dist/src/agent/mcp/bundle-mcp-gateway.js +1 -1
  136. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  137. package/dist/src/agent/mcp/index.js +2 -2
  138. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  139. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +1 -1
  140. package/dist/src/agent/mcp/plugin-http-fetch.js +1 -1
  141. package/dist/src/agent/memory/context-recovery.js +1 -1
  142. package/dist/src/agent/memory/index.js +1 -1
  143. package/dist/src/agent/messaging/outbound-coordinator.js +1 -1
  144. package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
  145. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  146. package/dist/src/agent/sandbox/exec-policy.js +1 -1
  147. package/dist/src/agent/service/direct-turn-helpers.js +4 -4
  148. package/dist/src/agent/service/process-direct-one-shot.js +1 -1
  149. package/dist/src/agent/service/process-direct-streaming.js +5 -5
  150. package/dist/src/agent/service/webchat-tts.js +2 -2
  151. package/dist/src/agent/service.js +19 -19
  152. package/dist/src/agent/session/session-inspector.js +1 -1
  153. package/dist/src/agent/source-context/index.js +2 -2
  154. package/dist/src/agent/tasks/task-judge-service.js +4 -4
  155. package/dist/src/agent/tools/create-share-tool.js +3 -3
  156. package/dist/src/agent/tools/dataBatch.js +1 -1
  157. package/dist/src/agent/tools/delegate-tool.js +3 -3
  158. package/dist/src/agent/tools/delegation-parent-policy.js +1 -1
  159. package/dist/src/agent/tools/executor.js +1 -1
  160. package/dist/src/agent/tools/factory.js +16 -16
  161. package/dist/src/agent/tools/fetch-text.js +1 -1
  162. package/dist/src/agent/tools/image-generate-tool.js +3 -3
  163. package/dist/src/agent/tools/index.js +6 -6
  164. package/dist/src/agent/tools/list-dir.js +1 -1
  165. package/dist/src/agent/tools/publish-artifacts.js +2 -2
  166. package/dist/src/agent/tools/read.js +2 -2
  167. package/dist/src/agent/tools/review-workspace.js +1 -1
  168. package/dist/src/agent/tools/send-media.js +2 -2
  169. package/dist/src/agent/tools/skills-tools.js +1 -1
  170. package/dist/src/agent/tools/tts-tool.js +1 -1
  171. package/dist/src/agent/tools/user-context-tool.js +1 -1
  172. package/dist/src/agent/tools/write.js +2 -2
  173. package/dist/src/agent/workflow/subagent-runner.js +1 -1
  174. package/dist/src/ai-assist/text-assist.js +1 -1
  175. package/dist/src/auth/credentials.js +1 -1
  176. package/dist/src/auth/sync-provider-auth.js +1 -1
  177. package/dist/src/automations/domain/index.js +2 -2
  178. package/dist/src/automations/index.js +4 -4
  179. package/dist/src/automations/service/automation-service.js +2 -2
  180. package/dist/src/browser/native-messaging-host.js +1 -1
  181. package/dist/src/channels/attachments/voice-stt-webchat.js +2 -2
  182. package/dist/src/channels/index.js +2 -2
  183. package/dist/src/channels/outbound-sender.js +1 -1
  184. package/dist/src/channels/pairing/allow-from-file.js +9 -9
  185. package/dist/src/channels/pairing/pairing-store.js +6 -6
  186. package/dist/src/chat-commands/builtins/config.js +3 -3
  187. package/dist/src/chat-commands/builtins/review.js +1 -1
  188. package/dist/src/chat-commands/builtins/session.js +1 -1
  189. package/dist/src/chat-commands/builtins/thinking.js +1 -1
  190. package/dist/src/chat-commands/builtins/tts.js +1 -1
  191. package/dist/src/chat-commands/builtins/understanding.js +1 -1
  192. package/dist/src/chat-commands/builtins/workflow.js +2 -2
  193. package/dist/src/chat-commands/context.js +3 -3
  194. package/dist/src/chat-commands/index.js +3 -3
  195. package/dist/src/cli/commands/agent.js +6 -6
  196. package/dist/src/cli/commands/config.js +1 -1
  197. package/dist/src/cli/commands/connectors.js +1 -1
  198. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
  199. package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
  200. package/dist/src/cli/commands/doctor/checks/provider-auth.js +2 -2
  201. package/dist/src/cli/commands/doctor/checks/tool-runtimes.js +1 -1
  202. package/dist/src/cli/commands/extension-agent-plugin.js +2 -2
  203. package/dist/src/cli/commands/extension-dev.js +1 -1
  204. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  205. package/dist/src/cli/commands/extension.js +4 -4
  206. package/dist/src/cli/commands/gateway/shared.js +1 -1
  207. package/dist/src/cli/commands/gateway/token.js +1 -1
  208. package/dist/src/cli/commands/image.js +1 -1
  209. package/dist/src/cli/commands/init.js +1 -1
  210. package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
  211. package/dist/src/cli/commands/onboard.js +1 -1
  212. package/dist/src/cli/commands/project.js +2 -2
  213. package/dist/src/cli/commands/runtime.js +1 -1
  214. package/dist/src/cli/commands/skills.js +2 -2
  215. package/dist/src/cli/commands/tunnel.js +4 -4
  216. package/dist/src/cli/extension-cli-register.js +4 -4
  217. package/dist/src/cli/utils/gateway-client.js +1 -1
  218. package/dist/src/cli/utils/init-workspace-core.js +1 -1
  219. package/dist/src/cli/utils/session.js +1 -1
  220. package/dist/src/computer/runtime.js +2 -2
  221. package/dist/src/config/index.js +4 -4
  222. package/dist/src/config/loader.js +1 -1
  223. package/dist/src/connectors/cli/authorization.js +1 -1
  224. package/dist/src/connectors/cli/runtime.js +1 -1
  225. package/dist/src/connectors/composio-sessions.js +1 -1
  226. package/dist/src/connectors/composio.js +1 -1
  227. package/dist/src/connectors/connected-source-understanding.js +3 -3
  228. package/dist/src/connectors/connection-recovery-service.js +5 -5
  229. package/dist/src/connectors/health.js +1 -1
  230. package/dist/src/connectors/plugin-mcp-recovery.js +1 -1
  231. package/dist/src/discussions/live-worker.js +1 -1
  232. package/dist/src/discussions/recording.js +1 -1
  233. package/dist/src/discussions/sealer.js +1 -1
  234. package/dist/src/extensions/activation-context.js +3 -3
  235. package/dist/src/extensions/api.js +4 -4
  236. package/dist/src/extensions/bundled-extension-activation.js +1 -1
  237. package/dist/src/extensions/index.js +3 -3
  238. package/dist/src/extensions/install.js +1 -1
  239. package/dist/src/extensions/loader.js +2 -2
  240. package/dist/src/extensions/sdk/index.js +1 -1
  241. package/dist/src/extensions/sdk/media.js +1 -1
  242. package/dist/src/extensions/update.js +1 -1
  243. package/dist/src/gateway/agents-admin.js +1 -1
  244. package/dist/src/gateway/device-routes.js +2 -2
  245. package/dist/src/gateway/file-path-classifier.js +1 -1
  246. package/dist/src/gateway/global-defaults-admin.js +1 -1
  247. package/dist/src/gateway/hono/app.js +3 -3
  248. package/dist/src/gateway/hono/lib/config-payload.js +3 -3
  249. package/dist/src/gateway/hono/routes/agents.js +1 -1
  250. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  251. package/dist/src/gateway/hono/routes/browser.js +1 -1
  252. package/dist/src/gateway/hono/routes/commands-skills.js +4 -4
  253. package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
  254. package/dist/src/gateway/hono/routes/home.js +1 -1
  255. package/dist/src/gateway/hono/routes/mcp.js +2 -2
  256. package/dist/src/gateway/hono/routes/media.js +1 -1
  257. package/dist/src/gateway/hono/routes/models.js +5 -5
  258. package/dist/src/gateway/hono/routes/notes.js +1 -1
  259. package/dist/src/gateway/hono/routes/projects.js +2 -2
  260. package/dist/src/gateway/hono/routes/session-command-handler.js +1 -1
  261. package/dist/src/gateway/hono/routes/session-input-handler.js +2 -2
  262. package/dist/src/gateway/hono/routes/sessions.js +1 -1
  263. package/dist/src/gateway/hono/routes/shares.js +3 -3
  264. package/dist/src/gateway/hono/routes/site-shares.js +1 -1
  265. package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
  266. package/dist/src/gateway/hono/routes/user-model.js +5 -5
  267. package/dist/src/gateway/hono/routes/voice.js +6 -6
  268. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  269. package/dist/src/gateway/image-generation-setup.js +1 -1
  270. package/dist/src/gateway/index.js +1 -1
  271. package/dist/src/gateway/lock.js +11 -11
  272. package/dist/src/gateway/media-access.js +1 -1
  273. package/dist/src/gateway/mobile-privacy.js +2 -2
  274. package/dist/src/gateway/ports.js +6 -6
  275. package/dist/src/gateway/run-loop.js +1 -1
  276. package/dist/src/gateway/scenes/mailContext.js +1 -1
  277. package/dist/src/gateway/scenes/slackThreadSource.js +1 -1
  278. package/dist/src/gateway/server.js +1 -1
  279. package/dist/src/gateway/service/config-coordinator.js +3 -3
  280. package/dist/src/gateway/service/run-gateway-agent.js +3 -3
  281. package/dist/src/gateway/service/session-input-coordinator.js +2 -2
  282. package/dist/src/gateway/service/sessions-api.js +1 -1
  283. package/dist/src/gateway/service.js +35 -35
  284. package/dist/src/gateway/session-context-summary.js +1 -1
  285. package/dist/src/gateway/workspace-editor-path.js +2 -2
  286. package/dist/src/home-intelligence/generator.js +1 -1
  287. package/dist/src/infra/gateway-processes.js +2 -2
  288. package/dist/src/infra/path-env.js +3 -3
  289. package/dist/src/infra/update-global.js +10 -10
  290. package/dist/src/local-apps/service.js +1 -1
  291. package/dist/src/mcp/gateway-http-client.js +1 -1
  292. package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
  293. package/dist/src/notes/agent-context.js +4 -4
  294. package/dist/src/notes/index.js +1 -1
  295. package/dist/src/notes/service.js +1 -1
  296. package/dist/src/notes/store.js +1 -1
  297. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  298. package/dist/src/providers/index.js +2 -2
  299. package/dist/src/providers/model-reference-auditor.js +1 -1
  300. package/dist/src/providers/register-runtime-providers.js +1 -1
  301. package/dist/src/remote-access/exposure-manager.js +1 -1
  302. package/dist/src/scenes/taskFollowUp/agentExecutor.js +4 -4
  303. package/dist/src/scenes/taskFollowUp/resources.js +1 -1
  304. package/dist/src/scenes/taskFollowUp/service.js +4 -4
  305. package/dist/src/session/index.js +2 -2
  306. package/dist/src/session/session-title.js +1 -1
  307. package/dist/src/session/store.js +4 -4
  308. package/dist/src/session/thinking-resolve.js +1 -1
  309. package/dist/src/share/share-store.js +1 -1
  310. package/dist/src/share/share-thumbnail.js +1 -1
  311. package/dist/src/share/site-proxy.js +1 -1
  312. package/dist/src/share/site-share-store.js +1 -1
  313. package/dist/src/storage/sqlite/connection.js +9 -9
  314. package/dist/src/tasks/capabilities/read.js +2 -2
  315. package/dist/src/tasks/capabilities/write.js +1 -1
  316. package/dist/src/tasks/execution-context.js +1 -1
  317. package/dist/src/tasks/home-query-service.js +3 -3
  318. package/dist/src/tasks/index.js +4 -4
  319. package/dist/src/tasks/task-application-service.js +1 -1
  320. package/dist/src/tasks/task-context-assembler.js +1 -1
  321. package/dist/src/tasks/task-handoff-service.js +1 -1
  322. package/dist/src/tui/backends/embedded-backend.js +9 -9
  323. package/dist/src/tui/backends/gateway-realtime-backend.js +1 -1
  324. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  325. package/dist/src/tui/tui-command-formatters.js +1 -1
  326. package/dist/src/tui/tui-commands.js +5 -5
  327. package/dist/src/tui/tui-picker-overlay.js +1 -1
  328. package/dist/src/tui/tui-skills-autocomplete.js +1 -1
  329. package/dist/src/tui/tui-startup-resources.js +4 -4
  330. package/dist/src/tui/tui.js +6 -6
  331. package/dist/src/tunnel/gateway-lifecycle.js +1 -1
  332. package/dist/src/voice/realtime/memory-context.js +3 -3
  333. package/dist/src/voice/realtime/runtime.js +3 -3
  334. package/dist/src/voice/stt/index.js +2 -2
  335. package/dist/src/voice/stt/preflight.js +1 -1
  336. package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
  337. package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
  338. package/dist/src/voice/stt/transcribe-core.js +1 -1
  339. package/dist/src/voice/tts/index.js +3 -3
  340. package/dist/src/voice/tts/merge-config.js +1 -1
  341. package/dist/src/voice/tts/payload.js +1 -1
  342. package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
  343. package/dist/src/voice/tts/speak-core.js +1 -1
  344. package/dist/src/work-discovery/incremental-repository.js +1 -1
  345. package/dist/src/work-discovery/index.js +1 -1
  346. package/dist/src/work-discovery/service.js +5 -5
  347. package/dist/src/workflows/engine/workflow-engine.js +1 -1
  348. package/dist/src/workflows/service/workflow-run-service.js +8 -8
  349. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  350. package/package.json +3 -3
  351. package/skills/THIRD_PARTY_NOTICES.md +6 -0
  352. package/skills/engineering/design-recurring-work/SKILL.md +75 -0
  353. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-s5yXNGQE.js +0 -1
  354. package/dist/gateway/static/root/assets/agents-HRZFsjeH.js +0 -70
  355. package/dist/gateway/static/root/assets/automations-workspace-8OSlJ6lL.js +0 -7
  356. package/dist/gateway/static/root/assets/capabilities-settings-panel-D8kedO-n.js +0 -8
  357. package/dist/gateway/static/root/assets/connectors-page-DBTyibaI.js +0 -2
  358. package/dist/gateway/static/root/assets/device-pairing-wizard-C3S9vWJ1.js +0 -1
  359. package/dist/gateway/static/root/assets/gateway-realtime-store-DytaaEu8.js +0 -1
  360. package/dist/gateway/static/root/assets/gateway-settings-9HNthvnR.js +0 -1
  361. package/dist/gateway/static/root/assets/home-page-B_NubC1h.js +0 -1
  362. package/dist/gateway/static/root/assets/note-detail-panel-CSdLXt8V.js +0 -5
  363. package/dist/gateway/static/root/assets/notes-page-CIQEybLR.js +0 -8
  364. package/dist/gateway/static/root/assets/project-detail-page-DGRQilZq.js +0 -1
  365. package/dist/gateway/static/root/assets/remote-access-hub-D6EmYuZ9.js +0 -1
  366. package/dist/gateway/static/root/assets/scenes-page-gpgblOWJ.js +0 -2
  367. package/dist/gateway/static/root/assets/sessions-page-D7QQpt4W.js +0 -1
  368. package/dist/gateway/static/root/assets/settings-advanced-gate-CPyqCG90.js +0 -1
  369. package/dist/gateway/static/root/assets/setup-status-panel-aGTS3JX2.js +0 -1
  370. package/dist/gateway/static/root/assets/shares-settings-B2oqZsDF.js +0 -1
  371. package/dist/gateway/static/root/assets/skill-reload-api-BAzfIHkQ.js +0 -1
  372. package/dist/gateway/static/root/assets/user-model-page-DhMojGHW.js +0 -2
  373. package/dist/gateway/static/root/assets/workflows-page-DcVuZjq_.js +0 -6
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{g as i,t as a}from"./chunk-KS7C4IRE-BMYIfy9x.js";import{t as o}from"./check-DUBLcKHA.js";import{t as s}from"./ellipsis-0k4rZLoy.js";import{t as c}from"./external-link-DjqjBmc3.js";import{t as l}from"./markdown-view-bxpOryax.js";import{t as u}from"./loader-circle-CifKLtgG.js";import{t as d}from"./plus-Q2yW6OE7.js";import{t as f}from"./x-B_N4OPjy.js";import{t as p}from"./messages-DsUnS7rn.js";import{t as m}from"./cn-JdwAhgNB.js";import{c as h,i as g,n as _,r as v}from"./locale-store-7F4l6DRV.js";import{a as y,i as b,o as x,r as S,s as C,t as w}from"./dist-BGTk37IG.js";import{a as T,i as E}from"./vendor-swr-BIWyz7Rc.js";import{t as D}from"./button-CS04eWY9.js";import{o as O}from"./gateway-realtime-vOLum3RR.js";import{t as k}from"./skeleton-BwbyijEw.js";import{Bn as A,Fc as j,Fn as M,In as N,Ln as P,Nc as ee,Nu as F,Os as I,Rn as L,Ta as R,Uu as z,_o as B,al as V,do as H,ed as te,fc as ne,fo as U,ho as W,mo as G,pc as re,po as K}from"./index-CdvabjRm.js";import{n as q,t as J}from"./capability-header-actions-BF9_u3xd.js";import{t as Y}from"./page-tabs-Bp0yPTYw.js";import{t as ie}from"./agent-plugin-dialog-DoC_yH9K.js";import{t as X}from"./capability-icon-BYm2-nS-.js";var Z=e(t(),1),ae=n();function Q(e){return e===`builtin`||e===`user`?e:`marketplace`}async function oe(e=``){let t=await g(v(`/api/marketplace${e.trim()?`?q=${encodeURIComponent(e.trim())}`:``}`),{cache:`no-store`});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!Array.isArray(n.extensions))throw Error(n.error??`Invalid response`);return n.extensions}async function se(e){try{let t=await e.json();if(typeof t.error==`string`)return t.error;if(t.error&&typeof t.error==`object`&&typeof t.error.message==`string`)return t.error.message;if(typeof t.message==`string`)return t.message}catch{}return e.statusText||`HTTP ${e.status}`}async function ce(e){let t=await g(v(`/api/marketplace/packages/${encodeURIComponent(e.trim())}`),{cache:`no-store`});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload?.id)throw Error(n.error??`Invalid response`);return n.payload}async function le(e){let t=await g(v(`/api/marketplace/install`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload?.extensionId)throw Error(n.error??`Invalid response`);return n.payload}async function ue(e){let t=await g(v(`/api/extensions/${encodeURIComponent(e.extensionId.trim())}/activation`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e.enabled})});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload)throw Error(n.error?.message??`Invalid response`);return n.payload}async function de(e){let t=await g(v(`/api/marketplace/uninstall`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extensionId:e})});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload)throw Error(n.error??`Invalid response`);return n.payload}var $=r();function fe(e,t){let n=e.find(e=>e.id===t);return n?n.source===`bundled`?`bundled`:`user`:`absent`}var pe={debounced:``,detailPkg:null,rowBusy:null,actionError:null,restartHint:null};function me({className:e,query:t}){let n=p(_(e=>e.language)).extensionsPage,r=h(e=>!!e.conversationId),i=U(),{mutate:a}=T(),[o,s]=(0,Z.useReducer)(R,pe),{debounced:c,detailPkg:l,rowBusy:d,actionError:f,restartHint:g}=o,v=r?`marketplace-${c}`:null;(0,Z.useEffect)(()=>{let e=window.setTimeout(()=>s({type:`patch`,patch:{debounced:t.trim()}}),300);return()=>window.clearTimeout(e)},[t]);let{data:y,isLoading:b,error:x}=E(v,()=>oe(c),{revalidateOnFocus:!1}),S=(0,Z.useCallback)(()=>{a(`gateway-extensions-list`),O()},[a]),C=(0,Z.useCallback)(async(e,t)=>{s({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let r=await le({name:e,overwrite:t});S(),r.requiresGatewayRestart&&s({type:`patch`,patch:{restartHint:n.marketplaceRestartHint}})}catch(e){throw s({type:`patch`,patch:{actionError:e instanceof Error?e.message:n.marketplaceInstallFailed}}),e}finally{s({type:`patch`,patch:{rowBusy:null}})}},[n.marketplaceInstallFailed,n.marketplaceRestartHint,S]),w=(0,Z.useCallback)(async e=>{s({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let t=await de(e);S(),t.requiresGatewayRestart&&s({type:`patch`,patch:{restartHint:n.marketplaceRestartHint}})}catch(e){throw s({type:`patch`,patch:{actionError:e instanceof Error?e.message:n.marketplaceUninstallFailed}}),e}finally{s({type:`patch`,patch:{rowBusy:null}})}},[n.marketplaceRestartHint,n.marketplaceUninstallFailed,S]),D=y??[];return(0,$.jsxs)(`div`,{className:m(`flex flex-col gap-4`,e),children:[x?(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:x instanceof Error?x.message:n.marketplaceLoadFailed}):null,f?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:f}):null,g?(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:g}):null,b&&!y?(0,$.jsx)(`ul`,{className:`flex flex-col gap-3`,"aria-label":n.marketplaceLoading,children:[0,1,2].map(e=>(0,$.jsx)(`li`,{className:`rounded-xl bg-surface-panel p-4 shadow-surface`,children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2.5`,children:[(0,$.jsx)(k,{className:`h-5 w-40`}),(0,$.jsx)(k,{className:`h-4 w-full max-w-xl`}),(0,$.jsx)(k,{className:`h-4 w-2/3 max-w-md`})]}),(0,$.jsx)(k,{className:`h-8 w-20`})]})},e))}):(0,$.jsx)(`ul`,{className:`flex flex-col gap-3`,children:D.length===0?(0,$.jsx)(`li`,{className:`text-sm text-fg-muted`,children:n.marketplaceEmpty}):D.map(e=>{let t=fe(i,e.id),r=d===e.id;return(0,$.jsx)(`li`,{className:`list-none`,children:(0,$.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-label":`${e.name}, ${n.marketplaceDetailTitle}`,onClick:()=>s({type:`patch`,patch:{detailPkg:e.id}}),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),s({type:`patch`,patch:{detailPkg:e.id}}))},className:m(`flex w-full cursor-pointer flex-wrap items-start gap-3 rounded-xl bg-surface-panel p-4 text-left shadow-surface`,`transition-[transform,background-color,box-shadow] duration-150 ease-out`,`hover:bg-surface-hover/40`,`active:scale-[0.992] active:bg-surface-hover/55`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`dark:hover:bg-surface-hover/25 dark:active:bg-surface-hover/35`),children:[(0,$.jsx)(X,{iconUrl:e.branding?.iconUrl,fallback:V}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`h3`,{className:`font-semibold text-fg`,children:e.name}),e.verified?(0,$.jsx)(F,{className:`size-4 shrink-0 text-emerald-600 dark:text-emerald-400`,strokeWidth:1.75,"aria-label":`Verified`}):null,e.version?(0,$.jsx)(`span`,{className:`text-xs text-fg-muted`,children:e.version}):null]}),e.description?(0,$.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm text-fg-muted`,children:e.description}):null,(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:(e.categories??[]).map(e=>(0,$.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-panel px-2 py-0.5 text-[11px] text-fg-muted`,children:e},e))}),(0,$.jsxs)(`p`,{className:`mt-2 flex items-center gap-1.5 text-xs text-fg-muted`,children:[(0,$.jsx)(V,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`code`,{className:`rounded bg-surface-panel px-1 py-0.5`,children:e.npmPackage})]})]}),(0,$.jsx)(`div`,{role:`group`,className:`flex shrink-0 flex-col items-end gap-2 sm:min-w-[9rem]`,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:t===`bundled`?(0,$.jsx)(`span`,{className:`rounded-md bg-surface-hover px-2 py-1 text-[11px] font-medium text-fg-muted`,children:n.marketplaceBuiltin}):t===`user`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`text-[11px] font-medium text-fg-muted`,children:n.marketplaceInstalled}),(0,$.jsxs)(`button`,{type:`button`,disabled:r,onClick:()=>{window.confirm(n.marketplaceUninstallConfirm)&&w(e.id).catch(()=>{})},className:m(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-colors active:scale-[0.98] active:bg-surface-hover/80`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[r?(0,$.jsx)(u,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(re,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0}),n.marketplaceUninstall]})]}):(0,$.jsx)(`button`,{type:`button`,onClick:()=>s({type:`patch`,patch:{detailPkg:e.id}}),className:m(`inline-flex w-full items-center justify-center rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-[transform,background-color] active:scale-[0.98]`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:n.marketplaceReview})})]})},e.id)})}),l?(0,$.jsx)(he,{packageName:l,copy:n,extensions:i,onClose:()=>s({type:`patch`,patch:{detailPkg:null}}),onInstall:C,onUninstall:w}):null]})}function he(e){let t=(0,ae.c)(93),{packageName:n,copy:r,extensions:i,onClose:o,onInstall:s,onUninstall:c}=e,[d,p]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(!1),v=h(be)?`ext-mp-detail-${n}`:null,b;t[0]===n?b=t[1]:(b=async()=>ce(n),t[0]=n,t[1]=b);let T;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T={revalidateOnFocus:!1},t[2]=T):T=t[2];let{data:D,error:O,isLoading:A}=E(v,b,T),j;t[3]!==i||t[4]!==n?(j=fe(i,n),t[3]=i,t[4]=n,t[5]=j):j=t[5];let M=j,N=M===`user`,P=D?.manifest?.permissions,F,I,L,R,z,B,V,H,U,W,G,K;if(t[6]!==r||t[7]!==D||t[8]!==O||t[9]!==i||t[10]!==M||t[11]!==A||t[12]!==o||t[13]!==n||t[14]!==P||t[15]!==g){B=Symbol.for(`react.early_return_sentinel`);bb0:{let e=P&&typeof P==`object`&&!Array.isArray(P)?Object.entries(P):[],a;t[28]!==r||t[29]!==D?(a=D?.readme?.trim()||(D?.description?.trim()?`### ${D.name}\n\n${D.description}`:`*${r.marketplaceNoReadme}*`),t[28]=r,t[29]=D,t[30]=a):a=t[30];let s=a;if(D?.format===`agent-plugin`){let e;if(t[31]!==D||t[32]!==i){let n;t[34]===D?n=t[35]:(n=e=>e.pluginId===D.manifest?.name,t[34]=D,t[35]=n),e=i.find(n),t[31]=D,t[32]=i,t[33]=e}else e=t[33];let r=`store:${n}`,a;t[36]!==o||t[37]!==e||t[38]!==r?(a=(0,$.jsx)(ie,{extension:e,initialSource:r,onClose:o}),t[36]=o,t[37]=e,t[38]=r,t[39]=a):a=t[39],B=a;break bb0}L=w,R=!0,t[40]===o?z=t[41]:(z=e=>!e&&o(),t[40]=o,t[41]=z),I=x,t[42]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),t[42]=K):K=t[42],F=S,U=`xopc-dialog-content fixed left-1/2 top-1/2 z-[131] flex h-[min(44rem,calc(100vh-1.5rem))] w-[min(42rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,W=ye;let c;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(te,{className:`size-5`}),t[43]=c):c=t[43];let u;t[44]!==r.detailBack||t[45]!==o?(u=(0,$.jsx)(`button`,{type:`button`,onClick:o,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":r.detailBack,children:c}),t[44]=r.detailBack,t[45]=o,t[46]=u):u=t[46];let d;t[47]===r.marketplaceDetailTitle?d=t[48]:(d=(0,$.jsx)(C,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:r.marketplaceDetailTitle}),t[47]=r.marketplaceDetailTitle,t[48]=d);let p;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(f,{className:`size-5`}),t[49]=p):p=t[49];let m;t[50]!==r.detailClose||t[51]!==o?(m=(0,$.jsx)(`button`,{type:`button`,onClick:o,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":r.detailClose,children:p}),t[50]=r.detailClose,t[51]=o,t[52]=m):m=t[52],t[53]!==u||t[54]!==d||t[55]!==m?(G=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[u,d,m]}),t[53]=u,t[54]=d,t[55]=m,t[56]=G):G=t[56],V=`min-h-0 flex-1 overflow-y-auto p-5`,H=A&&!D?(0,$.jsxs)(`div`,{className:`space-y-4`,"aria-label":r.marketplaceLoading,children:[(0,$.jsx)(k,{className:`h-6 w-48`}),(0,$.jsx)(k,{className:`h-4 w-28`}),(0,$.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,$.jsx)(k,{className:`h-12`}),(0,$.jsx)(k,{className:`h-12`})]}),(0,$.jsx)(k,{className:`h-28 w-full`}),(0,$.jsx)(k,{className:`h-36 w-full`})]}):O?(0,$.jsxs)(`div`,{className:`rounded-lg border border-red-300/70 bg-red-50 p-4 text-sm dark:border-red-900 dark:bg-red-950/30`,children:[(0,$.jsx)(`p`,{className:`font-medium text-red-700 dark:text-red-300`,children:r.marketplaceDetailLoadFailed}),(0,$.jsx)(`p`,{className:`mt-1 break-words text-red-600 dark:text-red-400`,children:O instanceof Error?O.message:r.marketplaceLoadFailed})]}):D?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:D.name}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:(0,$.jsx)(`code`,{className:`rounded bg-surface-panel px-1 py-0.5`,children:D.id})}),(0,$.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceAuthor}),(0,$.jsx)(`dd`,{children:D.author.username})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceVersion}),(0,$.jsx)(`dd`,{children:D.latestVersion.version})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceDownloads}),(0,$.jsx)(`dd`,{children:D.downloads})]})]}),M===`bundled`?null:(0,$.jsxs)(`section`,{className:`mt-5 space-y-3 rounded-lg border border-edge bg-surface-base p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[D.installability.available?(0,$.jsx)(ee,{className:`mt-0.5 size-5 shrink-0 text-emerald-600 dark:text-emerald-400`,"aria-hidden":!0}):(0,$.jsx)(ne,{className:`mt-0.5 size-5 shrink-0 text-amber-600 dark:text-amber-400`,"aria-hidden":!0}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-sm font-semibold text-fg`,children:D.installability.available?r.marketplaceRiskTitle:r.marketplaceUnavailableTitle}),(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-relaxed text-fg-muted`,children:D.installability.available?r.marketplaceCodeRisk:D.installability.reason??r.marketplaceUnavailableBody})]})]}),D.installability.available?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`dl`,{className:`grid gap-2 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceIntegrity}),(0,$.jsx)(`dd`,{children:r.marketplaceIntegrityVerified})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceDependencies}),(0,$.jsx)(`dd`,{children:D.packageSummary?.dependencyCount??0})]})]}),(0,$.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{className:`font-medium text-fg`,children:r.marketplacePermissions}),e.length>0?(0,$.jsx)(`ul`,{className:`mt-1 space-y-1`,children:e.map(ve)}):(0,$.jsx)(`p`,{className:`mt-1`,children:r.marketplacePermissionsNone})]}),(D.packageSummary?.lifecycleScripts.length??0)>0?(0,$.jsxs)(`p`,{className:`text-xs leading-relaxed text-amber-700 dark:text-amber-300`,children:[r.marketplaceLifecycleScripts,`: `,D.packageSummary?.lifecycleScripts.join(`, `)]}):null,(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 text-sm text-fg`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:g,onChange:e=>_(e.target.checked),className:`mt-0.5 size-4 rounded border-edge accent-[var(--color-accent)]`}),(0,$.jsx)(`span`,{children:r.marketplaceRiskConfirm})]})]}):null]}),D.readme?.trim()?(0,$.jsx)(`h4`,{className:`mb-2 mt-6 text-sm font-semibold text-fg`,children:r.marketplaceDetailReadmeHeading}):null,(0,$.jsx)(`div`,{className:`markdown-content min-w-0 break-words text-sm`,children:(0,$.jsx)(l,{content:s})})]}):null}t[6]=r,t[7]=D,t[8]=O,t[9]=i,t[10]=M,t[11]=A,t[12]=o,t[13]=n,t[14]=P,t[15]=g,t[16]=F,t[17]=I,t[18]=L,t[19]=R,t[20]=z,t[21]=B,t[22]=V,t[23]=H,t[24]=U,t[25]=W,t[26]=G,t[27]=K}else F=t[16],I=t[17],L=t[18],R=t[19],z=t[20],B=t[21],V=t[22],H=t[23],U=t[24],W=t[25],G=t[26],K=t[27];if(B!==Symbol.for(`react.early_return_sentinel`))return B;let q;t[57]!==V||t[58]!==H?(q=(0,$.jsx)(`div`,{className:V,children:H}),t[57]=V,t[58]=H,t[59]=q):q=t[59];let J;t[60]!==d||t[61]!==r.marketplaceBuiltinGoBuiltin||t[62]!==r.marketplaceBuiltinManageHint||t[63]!==r.marketplaceInstall||t[64]!==r.marketplaceReinstall||t[65]!==r.marketplaceReinstallConfirm||t[66]!==r.marketplaceUninstall||t[67]!==r.marketplaceUninstallConfirm||t[68]!==D||t[69]!==M||t[70]!==o||t[71]!==s||t[72]!==c||t[73]!==n||t[74]!==g||t[75]!==N?(J=D?(0,$.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:M===`bundled`?(0,$.jsxs)(`div`,{className:`flex w-full flex-col items-stretch gap-2`,children:[(0,$.jsx)(`p`,{className:`text-sm leading-relaxed text-fg-muted`,children:r.marketplaceBuiltinManageHint}),(0,$.jsx)(a,{to:`/capabilities/extensions?tab=builtin`,onClick:o,className:`inline-flex w-fit items-center justify-center rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:r.marketplaceBuiltinGoBuiltin})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`button`,{type:`button`,disabled:d||!D.installability.available||!g,onClick:()=>{N&&!window.confirm(r.marketplaceReinstallConfirm)||(p(!0),s(n,N).catch(_e).finally(()=>p(!1)))},className:m(`inline-flex items-center justify-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium`,`bg-accent text-on-accent shadow-surface hover:bg-accent-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`disabled:pointer-events-none disabled:opacity-50`),children:[d?(0,$.jsx)(u,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,N?r.marketplaceReinstall:r.marketplaceInstall]}),N?(0,$.jsxs)(`button`,{type:`button`,disabled:d,onClick:()=>{window.confirm(r.marketplaceUninstallConfirm)&&(p(!0),c(n).then(()=>o()).catch(ge).finally(()=>p(!1)))},className:m(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[(0,$.jsx)(re,{className:`size-4 shrink-0`,"aria-hidden":!0}),r.marketplaceUninstall]}):null]})}):null,t[60]=d,t[61]=r.marketplaceBuiltinGoBuiltin,t[62]=r.marketplaceBuiltinManageHint,t[63]=r.marketplaceInstall,t[64]=r.marketplaceReinstall,t[65]=r.marketplaceReinstallConfirm,t[66]=r.marketplaceUninstall,t[67]=r.marketplaceUninstallConfirm,t[68]=D,t[69]=M,t[70]=o,t[71]=s,t[72]=c,t[73]=n,t[74]=g,t[75]=N,t[76]=J):J=t[76];let Y;t[77]!==F||t[78]!==q||t[79]!==J||t[80]!==U||t[81]!==W||t[82]!==G?(Y=(0,$.jsxs)(F,{className:U,onOpenAutoFocus:W,children:[G,q,J]}),t[77]=F,t[78]=q,t[79]=J,t[80]=U,t[81]=W,t[82]=G,t[83]=Y):Y=t[83];let X;t[84]!==I||t[85]!==Y||t[86]!==K?(X=(0,$.jsxs)(I,{children:[K,Y]}),t[84]=I,t[85]=Y,t[86]=K,t[87]=X):X=t[87];let Q;return t[88]!==L||t[89]!==R||t[90]!==z||t[91]!==X?(Q=(0,$.jsx)(L,{defaultOpen:R,onOpenChange:z,children:X}),t[88]=L,t[89]=R,t[90]=z,t[91]=X,t[92]=Q):Q=t[92],Q}function ge(){}function _e(){}function ve(e){let[t,n]=e;return(0,$.jsxs)(`li`,{className:`break-words`,children:[(0,$.jsx)(`code`,{children:t}),`: `,Array.isArray(n)?n.join(`, `):String(n)]},t)}function ye(e){return e.preventDefault()}function be(e){return!!e.conversationId}function xe({embedded:e=!1,onHeaderActionChange:t}){let n=_(e=>e.language),r=p(n),o=B(e=>e.setPageHeader),c=B(e=>e.clearPageHeader),l=U(),u=K(),[f,h]=i(),g=Q(f.get(`tab`)),v=f.get(`q`)??``,[y,b]=(0,Z.useState)(g),[x,S]=(0,Z.useState)(v),[C,w]=(0,Z.useState)(null),[T,E]=(0,Z.useState)(!1),O=f.toString(),k=(0,Z.useRef)(O);if(k.current!==O){k.current=O;let e=Q(f.get(`tab`)),t=f.get(`q`)??``;b(t=>t===e?t:e),S(e=>e===t?e:t)}(0,Z.useEffect)(()=>{h(e=>{let t=new URLSearchParams(e),n=x.trim();return n?t.set(`q`,n):t.delete(`q`),y===`marketplace`?t.delete(`tab`):t.set(`tab`,y),t.toString()===e.toString()?e:t},{replace:!0})},[y,x,h]);let j=(0,Z.useMemo)(()=>l.filter(e=>e.source===`bundled`),[l]),ee=(0,Z.useMemo)(()=>l.filter(e=>e.source!==`bundled`),[l]),F=y===`builtin`?j:ee,R=(0,Z.useMemo)(()=>{let e=x.trim().toLowerCase(),t=F;return e&&(t=t.filter(t=>(t.name??``).toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e))),t.toSorted((e,t)=>e.hasUi===t.hasUi?(e.name||e.id).localeCompare(t.name||t.id,n):e.hasUi?-1:1)},[F,x,n]);(0,Z.useEffect)(()=>{w(e=>{if(!e)return e;let t=l.find(t=>t.id===e.id);return t?Se(e)===Se(t)&&e.active===t.active&&JSON.stringify(e)===JSON.stringify(t)?e:t:null})},[l]);let V=(0,Z.useMemo)(()=>({searchLabel:y===`marketplace`?r.extensionsPage.marketplaceSearchPlaceholder:r.extensionsPage.searchPlaceholder,search:(0,$.jsx)(q,{value:x,onChange:S,placeholder:y===`marketplace`?r.extensionsPage.marketplaceSearchPlaceholder:r.extensionsPage.searchPlaceholder}),overflow:(0,$.jsxs)(L,{children:[(0,$.jsx)(A,{asChild:!0,children:(0,$.jsx)(D,{variant:`secondary`,className:`size-9 shrink-0 p-0`,"aria-label":r.capabilitiesHub.moreActions,title:r.capabilitiesHub.moreActions,children:(0,$.jsx)(s,{className:`size-4`,"aria-hidden":!0})})}),(0,$.jsx)(P,{children:(0,$.jsxs)(M,{align:`end`,sideOffset:6,className:`z-50 min-w-48 rounded-xl border border-edge bg-surface-panel p-1 shadow-popover`,children:[(0,$.jsxs)(N,{className:m(`touch-target flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,I.transition),onSelect:()=>E(!0),children:[(0,$.jsx)(d,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),n.startsWith(`zh`)?`安装插件`:`Install plugin`]}),(0,$.jsx)(N,{asChild:!0,children:(0,$.jsxs)(a,{to:`/local-apps`,className:m(`touch-target flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,I.transition),children:[(0,$.jsx)(z,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),r.extensionsPage.openLocalApps]})})]})})]}),primary:(0,$.jsx)(D,{asChild:!0,variant:`primary`,className:`h-9 shrink-0`,children:(0,$.jsxs)(a,{to:`/local-apps/new`,"aria-label":r.extensionsPage.createLocalApp,children:[(0,$.jsx)(d,{className:`size-4`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:r.extensionsPage.createLocalApp})]})})}),[n,r.capabilitiesHub.moreActions,r.extensionsPage,y,x]);if((0,Z.useLayoutEffect)(()=>e?(t?.(V),()=>t?.(null)):(o({startExtra:null,main:(0,$.jsx)(`div`,{className:`min-w-0`,children:(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r.extensionsPage.title})}),end:(0,$.jsx)(J,{contribution:V})}),()=>c()),[c,e,V,r.extensionsPage.title,t,o]),u&&y!==`marketplace`)return(0,$.jsx)(ke,{});let H=[{id:`marketplace`,label:r.extensionsPage.tabMarketplace},{id:`builtin`,label:r.extensionsPage.tabBuiltin,count:j.length},{id:`user`,label:r.extensionsPage.tabUser,count:ee.length}];return(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,$.jsxs)(`div`,{className:m(`mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8`,e?`pb-7 pt-3 lg:pb-9 lg:pt-4`:`py-7 lg:py-9`),children:[(0,$.jsx)(`div`,{className:`mb-6 border-b border-edge-subtle pb-3`,children:(0,$.jsx)(Y,{items:H,activeTab:y,onChange:b,ariaLabel:r.extensionsPage.extensionsNavAria,tabIdPrefix:`extensions-tab`,panelIdPrefix:`extensions-panel`,className:`flex-wrap`})}),y===`marketplace`?(0,$.jsx)(me,{query:x}):y===`builtin`&&j.length===0?(0,$.jsx)(je,{message:r.extensionsPage.emptyBuiltin}):y===`user`&&ee.length===0?(0,$.jsx)(je,{message:r.extensionsPage.emptyUser}):R.length===0?(0,$.jsx)(`p`,{className:`px-3 py-14 text-center text-sm text-fg-muted sm:px-5 xl:px-6`,children:r.extensionsPage.noSearchResults}):(0,$.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:R.map(e=>(0,$.jsx)(Ee,{extension:e,copy:r.extensionsPage,showSourceBadge:y===`user`,onOpen:()=>w(e)},e.id))})]}),C?C.format===`agent-plugin`?(0,$.jsx)(ie,{extension:C,onClose:()=>w(null)},C.id):(0,$.jsx)(De,{extension:C,copy:r.extensionsPage,onClose:()=>w(null)},C.id):null,T?(0,$.jsx)(ie,{onClose:()=>E(!1)}):null]})}function Se(e){return e.activationEligible??e.active}function Ce(e,t){return e.source===`bundled`?t.providerBundled:e.source===`global`?t.providerGlobal:e.source===`workspace`?t.providerWorkspace:t.providerOther}function we(e,t){return e.source===`global`?t.badgeSourceGlobal:e.source===`workspace`?t.badgeSourceWorkspace:t.badgeSourceOther}function Te(e,t){let n=Se(e);return n&&e.active?t.runStateLive:n&&!e.active?t.runStatePendingOn:!n&&e.active?t.runStatePendingOff:t.runStateOff}function Ee(e){let t=(0,ae.c)(45),{extension:n,copy:r,showSourceBadge:i,onOpen:a}=e,s;t[0]===n?s=t[1]:(s=Se(n),t[0]=n,t[1]=s);let c=s,l=n.hasUi?r.cardTooltipHasUi:r.cardTooltipNoUi,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=m(`group flex w-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 text-left shadow-surface transition-colors`,`hover:bg-surface-hover/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`dark:hover:bg-surface-hover/25`),t[2]=u):u=t[2];let f=n.name||n.id,p;t[3]===f?p=t[4]:(p=f.charAt(0).toUpperCase(),t[3]=f,t[4]=p);let h;t[5]===p?h=t[6]:(h=(0,$.jsx)(`div`,{className:`flex size-12 shrink-0 items-center justify-center rounded-xl bg-accent-soft text-base font-semibold text-accent-fg`,"aria-hidden":!0,children:p}),t[5]=p,t[6]=h);let g;t[7]===n.name?g=t[8]:(g=(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:n.name}),t[7]=n.name,t[8]=g);let _;t[9]===n.version?_=t[10]:(_=n.version?(0,$.jsxs)(`span`,{className:`text-[11px] text-fg-muted`,children:[`v`,n.version]}):null,t[9]=n.version,t[10]=_);let v;t[11]!==g||t[12]!==_?(v=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[g,_]}),t[11]=g,t[12]=_,t[13]=v):v=t[13];let y;t[14]!==r.statusEnabled||t[15]!==c?(y=c?(0,$.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:[(0,$.jsx)(o,{className:`size-3`,strokeWidth:2.5,"aria-hidden":!0}),r.statusEnabled]}):(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center rounded-full border-2 border-accent text-accent`,"aria-hidden":!0,children:(0,$.jsx)(d,{className:`size-4`,strokeWidth:2.5})}),t[14]=r.statusEnabled,t[15]=c,t[16]=y):y=t[16];let b;t[17]!==v||t[18]!==y?(b=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[v,y]}),t[17]=v,t[18]=y,t[19]=b):b=t[19];let x;t[20]!==r.cardNoDescription||t[21]!==n.description?(x=n.description?.trim()||r.cardNoDescription,t[20]=r.cardNoDescription,t[21]=n.description,t[22]=x):x=t[22];let S;t[23]===x?S=t[24]:(S=(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-relaxed text-fg-muted`,children:x}),t[23]=x,t[24]=S);let C=n.format===`agent-plugin`?`Agent Plugin`:n.hasUi?r.badgeKindUi:r.badgeKindBackend,w;t[25]!==C||t[26]!==l?(w=(0,$.jsx)(`span`,{title:l,className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:C}),t[25]=C,t[26]=l,t[27]=w):w=t[27];let T;t[28]!==r||t[29]!==n||t[30]!==i?(T=n.source===`bundled`?(0,$.jsx)(`span`,{className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:r.badgeBundled}):i?(0,$.jsx)(`span`,{title:Ce(n,r),className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:we(n,r)}):null,t[28]=r,t[29]=n,t[30]=i,t[31]=T):T=t[31];let E;t[32]!==w||t[33]!==T?(E=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:[w,T]}),t[32]=w,t[33]=T,t[34]=E):E=t[34];let D;t[35]!==b||t[36]!==S||t[37]!==E?(D=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[b,S,E]}),t[35]=b,t[36]=S,t[37]=E,t[38]=D):D=t[38];let O;t[39]!==D||t[40]!==h?(O=(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[h,D]}),t[39]=D,t[40]=h,t[41]=O):O=t[41];let k;return t[42]!==a||t[43]!==O?(k=(0,$.jsx)(`button`,{type:`button`,onClick:a,className:u,children:O}),t[42]=a,t[43]=O,t[44]=k):k=t[44],k}function De({extension:e,copy:t,onClose:n}){let{mutate:r}=T(),[i,o]=(0,Z.useState)(null),[s,l]=(0,Z.useState)(null),[d,p]=(0,Z.useState)(!1),h=e.activationEligible===!0,g=(0,Z.useCallback)(async()=>{l(null),p(!1),o(`toggle`);try{let{requiresGatewayRestart:t}=await ue({extensionId:e.id,enabled:!h});await r(`gateway-extensions-list`),O(),p(t)}catch(e){l(e instanceof Error?e.message:t.extensionToggleFailed)}finally{o(null)}},[h,t.extensionToggleFailed,e.id,r]),_=(0,Z.useCallback)(async()=>{if(!(e.source===`bundled`||!window.confirm(t.extensionUninstallConfirm))){l(null),p(!1),o(`uninstall`);try{await de(e.id),await r(`gateway-extensions-list`),O(),n()}catch(e){l(e instanceof Error?e.message:t.marketplaceUninstallFailed),o(null)}}},[t.extensionUninstallConfirm,t.marketplaceUninstallFailed,e.id,e.source,r,n]),v=e.ui?.contributions?.pages??[],E=e.ui?.contributions?.settingsPanels??[],k=e.ui?.contributions?.chatWidgets??[],A=v.find(e=>e.showInNav)??v[0],M=E[0],N=A?H(e.id,A):null,P=M?`/settings/ext/${e.id}/${M.id}`:e.hasConfigSchema||G(e)?`/settings/ext/${e.id}`:null;return(0,$.jsx)(w,{defaultOpen:!0,onOpenChange:e=>!e&&n(),children:(0,$.jsxs)(x,{children:[(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),(0,$.jsxs)(S,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[131] flex max-h-[min(90vh,44rem)] w-[min(42rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailBack,children:(0,$.jsx)(te,{className:`size-5`})}),(0,$.jsx)(C,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:t.detailTitle}),(0,$.jsxs)(b,{className:`sr-only`,children:[e.name,` (`,e.id,`)`]}),(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailClose,children:(0,$.jsx)(f,{className:`size-5`})})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-start gap-4`,children:[(0,$.jsx)(`div`,{className:`flex size-16 shrink-0 items-center justify-center rounded-2xl bg-accent-soft text-xl font-semibold text-accent-fg`,"aria-hidden":!0,children:(e.name||e.id).charAt(0).toUpperCase()}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:e.name}),(0,$.jsxs)(`p`,{className:`mt-0.5 text-sm text-fg-muted`,children:[t.detailProviderPrefix,` `,Ce(e,t)]}),e.version?(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:[`v`,e.version]}):null]})]}),(0,$.jsx)(`p`,{className:`mt-5 text-sm leading-relaxed text-fg`,children:e.description?.trim()||t.detailNoDescription}),e.hasUi?null:(0,$.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:t.backendOnlyHint}),(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:Te(e,t)}),e.source===`bundled`?(0,$.jsx)(`p`,{className:`mt-4 rounded-lg bg-surface-hover/40 px-3 py-2 text-xs text-fg-muted shadow-surface dark:bg-surface-hover/20`,children:t.builtinConfigHint}):null,(0,$.jsxs)(`div`,{className:`mt-3 rounded-lg bg-surface-hover/40 p-3 shadow-surface dark:bg-surface-hover/20`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:t.builtinRuntimeToggle}),(0,$.jsx)(D,{type:`button`,variant:`secondary`,disabled:i!==null,onClick:()=>void g(),className:`shrink-0 py-1.5 text-xs`,children:i===`toggle`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(u,{className:`mr-1.5 size-3.5 shrink-0 animate-spin`,"aria-hidden":!0}),t.builtinToggleBusy]}):h?t.builtinToggleDisable:t.builtinToggleEnable})]}),s?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-rose-600 dark:text-rose-400`,children:s}):null,d?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:t.builtinToggleRestartHint}):null,e.source===`bundled`?null:(0,$.jsx)(`div`,{className:`mt-3 flex justify-end border-t border-edge-subtle pt-3`,children:(0,$.jsxs)(D,{type:`button`,variant:`ghost`,disabled:i!==null,onClick:()=>void _(),className:`text-danger hover:bg-danger-soft hover:text-danger`,children:[i===`uninstall`?(0,$.jsx)(u,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(re,{className:`size-3.5`,"aria-hidden":!0}),t.marketplaceUninstall]})})]}),e.hasUi&&(v.length>0||E.length>0||k.length>0)?(0,$.jsxs)(`section`,{className:`mt-8`,children:[(0,$.jsx)(`h4`,{className:`mb-3 text-sm font-semibold text-fg`,children:t.detailSectionFeatures}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,$.jsx)(Oe,{template:t.badgePages,count:v.length,hidden:v.length===0}),(0,$.jsx)(Oe,{template:t.badgeSettings,count:E.length,hidden:E.length===0}),(0,$.jsx)(Oe,{template:t.badgeWidgets,count:k.length,hidden:k.length===0})]})]}):null,W(e)&&(N||P)?(0,$.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2 border-t border-edge-subtle pt-4`,children:[N?(0,$.jsxs)(a,{to:N,onClick:n,className:m(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(c,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.open]}):null,P?(0,$.jsxs)(a,{to:P,onClick:n,className:m(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(j,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.openSettings]}):null]}):null,(0,$.jsx)(`p`,{className:`mt-6 text-[11px] leading-relaxed text-fg-muted`,children:t.restartNote})]})]})]})})}function Oe(e){let t=(0,ae.c)(6),{template:n,count:r,hidden:i}=e;if(i||r===0)return null;let a;if(t[0]!==r||t[1]!==n){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=/\{\{count\}\}/g,t[3]=e):e=t[3],a=n.replace(e,String(r)),t[0]=r,t[1]=n,t[2]=a}else a=t[2];let o;return t[4]===a?o=t[5]:(o=(0,$.jsx)(`span`,{className:`inline-flex items-center rounded-md bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:a}),t[4]=a,t[5]=o),o}function ke(){let e=(0,ae.c)(5),t,n,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:`mb-6 h-8 w-40 max-w-full animate-pulse rounded-md bg-surface-hover`}),n=(0,$.jsx)(`div`,{className:`mb-2 h-4 w-full max-w-md animate-pulse rounded bg-surface-hover`}),r=(0,$.jsx)(`div`,{className:`mb-5 h-9 w-full max-w-lg animate-pulse rounded-full bg-surface-hover`}),e[0]=t,e[1]=n,e[2]=r):(t=e[0],n=e[1],r=e[2]);let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=[`ap0`,`ap1`,`ap2`,`ap3`,`ap4`,`ap5`],e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:(0,$.jsxs)(`div`,{className:`w-full px-3 py-8 sm:px-5 xl:px-6`,children:[t,n,r,(0,$.jsx)(`div`,{className:`mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:i.map(Ae)})]})}),e[4]=a):a=e[4],a}function Ae(e){return(0,$.jsx)(`div`,{className:`h-36 animate-pulse rounded-xl border border-edge-subtle bg-surface-base shadow-surface`},e)}function je(e){let t=(0,ae.c)(2),{message:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`flex min-h-[min(40vh,16rem)] flex-col items-center justify-center rounded-xl border border-edge-subtle bg-surface-base px-4 py-12 text-center shadow-surface`,children:(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n})}),t[0]=n,t[1]=r),r}export{xe as ExtensionsPage};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{g as i,t as a}from"./chunk-KS7C4IRE-BMYIfy9x.js";import{t as o}from"./check-DUBLcKHA.js";import{t as s}from"./ellipsis-0k4rZLoy.js";import{t as c}from"./external-link-DjqjBmc3.js";import{t as l}from"./markdown-view-DtEVIWB3.js";import{t as u}from"./loader-circle-CifKLtgG.js";import{t as d}from"./plus-Q2yW6OE7.js";import{t as f}from"./x-B_N4OPjy.js";import{t as p}from"./messages-DvcSrOiI.js";import{t as m}from"./cn-JdwAhgNB.js";import{c as h,i as g,n as _,r as v}from"./locale-store-GbEE8D1I.js";import{a as y,i as b,o as x,r as S,s as C,t as w}from"./dist-BGTk37IG.js";import{a as T,i as E}from"./vendor-swr-BIWyz7Rc.js";import{t as D}from"./button-CS04eWY9.js";import{o as O}from"./gateway-realtime-MiR9DJIf.js";import{t as k}from"./skeleton-BwbyijEw.js";import{Bn as A,Fc as j,Fn as M,In as N,Ln as P,Nc as ee,Os as F,Pu as I,Rn as L,Ta as R,Wu as z,_o as B,do as V,fc as te,fo as H,ho as U,mo as W,ol as G,pc as ne,po as K,td as re}from"./index-b_BtpHlo.js";import{n as q,t as J}from"./capability-header-actions-DRdadVwO.js";import{t as Y}from"./page-tabs-7u-lmA1o.js";import{t as ie}from"./agent-plugin-dialog-DPil7wFb.js";import{t as X}from"./capability-icon-BYm2-nS-.js";var Z=e(t(),1),ae=n();function Q(e){return e===`builtin`||e===`user`?e:`marketplace`}async function oe(e=``){let t=await g(v(`/api/marketplace${e.trim()?`?q=${encodeURIComponent(e.trim())}`:``}`),{cache:`no-store`});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!Array.isArray(n.extensions))throw Error(n.error??`Invalid response`);return n.extensions}async function se(e){try{let t=await e.json();if(typeof t.error==`string`)return t.error;if(t.error&&typeof t.error==`object`&&typeof t.error.message==`string`)return t.error.message;if(typeof t.message==`string`)return t.message}catch{}return e.statusText||`HTTP ${e.status}`}async function ce(e){let t=await g(v(`/api/marketplace/packages/${encodeURIComponent(e.trim())}`),{cache:`no-store`});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload?.id)throw Error(n.error??`Invalid response`);return n.payload}async function le(e){let t=await g(v(`/api/marketplace/install`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload?.extensionId)throw Error(n.error??`Invalid response`);return n.payload}async function ue(e){let t=await g(v(`/api/extensions/${encodeURIComponent(e.extensionId.trim())}/activation`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e.enabled})});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload)throw Error(n.error?.message??`Invalid response`);return n.payload}async function de(e){let t=await g(v(`/api/marketplace/uninstall`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extensionId:e})});if(!t.ok)throw Error(await se(t));let n=await t.json();if(!n.ok||!n.payload)throw Error(n.error??`Invalid response`);return n.payload}var $=r();function fe(e,t){let n=e.find(e=>e.id===t);return n?n.source===`bundled`?`bundled`:`user`:`absent`}var pe={debounced:``,detailPkg:null,rowBusy:null,actionError:null,restartHint:null};function me({className:e,query:t}){let n=p(_(e=>e.language)).extensionsPage,r=h(e=>!!e.conversationId),i=H(),{mutate:a}=T(),[o,s]=(0,Z.useReducer)(R,pe),{debounced:c,detailPkg:l,rowBusy:d,actionError:f,restartHint:g}=o,v=r?`marketplace-${c}`:null;(0,Z.useEffect)(()=>{let e=window.setTimeout(()=>s({type:`patch`,patch:{debounced:t.trim()}}),300);return()=>window.clearTimeout(e)},[t]);let{data:y,isLoading:b,error:x}=E(v,()=>oe(c),{revalidateOnFocus:!1}),S=(0,Z.useCallback)(()=>{a(`gateway-extensions-list`),O()},[a]),C=(0,Z.useCallback)(async(e,t)=>{s({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let r=await le({name:e,overwrite:t});S(),r.requiresGatewayRestart&&s({type:`patch`,patch:{restartHint:n.marketplaceRestartHint}})}catch(e){throw s({type:`patch`,patch:{actionError:e instanceof Error?e.message:n.marketplaceInstallFailed}}),e}finally{s({type:`patch`,patch:{rowBusy:null}})}},[n.marketplaceInstallFailed,n.marketplaceRestartHint,S]),w=(0,Z.useCallback)(async e=>{s({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let t=await de(e);S(),t.requiresGatewayRestart&&s({type:`patch`,patch:{restartHint:n.marketplaceRestartHint}})}catch(e){throw s({type:`patch`,patch:{actionError:e instanceof Error?e.message:n.marketplaceUninstallFailed}}),e}finally{s({type:`patch`,patch:{rowBusy:null}})}},[n.marketplaceRestartHint,n.marketplaceUninstallFailed,S]),D=y??[];return(0,$.jsxs)(`div`,{className:m(`flex flex-col gap-4`,e),children:[x?(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:x instanceof Error?x.message:n.marketplaceLoadFailed}):null,f?(0,$.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:f}):null,g?(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:g}):null,b&&!y?(0,$.jsx)(`ul`,{className:`flex flex-col gap-3`,"aria-label":n.marketplaceLoading,children:[0,1,2].map(e=>(0,$.jsx)(`li`,{className:`rounded-xl bg-surface-panel p-4 shadow-surface`,children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2.5`,children:[(0,$.jsx)(k,{className:`h-5 w-40`}),(0,$.jsx)(k,{className:`h-4 w-full max-w-xl`}),(0,$.jsx)(k,{className:`h-4 w-2/3 max-w-md`})]}),(0,$.jsx)(k,{className:`h-8 w-20`})]})},e))}):(0,$.jsx)(`ul`,{className:`flex flex-col gap-3`,children:D.length===0?(0,$.jsx)(`li`,{className:`text-sm text-fg-muted`,children:n.marketplaceEmpty}):D.map(e=>{let t=fe(i,e.id),r=d===e.id;return(0,$.jsx)(`li`,{className:`list-none`,children:(0,$.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-label":`${e.name}, ${n.marketplaceDetailTitle}`,onClick:()=>s({type:`patch`,patch:{detailPkg:e.id}}),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),s({type:`patch`,patch:{detailPkg:e.id}}))},className:m(`flex w-full cursor-pointer flex-wrap items-start gap-3 rounded-xl bg-surface-panel p-4 text-left shadow-surface`,`transition-[transform,background-color,box-shadow] duration-150 ease-out`,`hover:bg-surface-hover/40`,`active:scale-[0.992] active:bg-surface-hover/55`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`dark:hover:bg-surface-hover/25 dark:active:bg-surface-hover/35`),children:[(0,$.jsx)(X,{iconUrl:e.branding?.iconUrl,fallback:G}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`h3`,{className:`font-semibold text-fg`,children:e.name}),e.verified?(0,$.jsx)(I,{className:`size-4 shrink-0 text-emerald-600 dark:text-emerald-400`,strokeWidth:1.75,"aria-label":`Verified`}):null,e.version?(0,$.jsx)(`span`,{className:`text-xs text-fg-muted`,children:e.version}):null]}),e.description?(0,$.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm text-fg-muted`,children:e.description}):null,(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:(e.categories??[]).map(e=>(0,$.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-panel px-2 py-0.5 text-[11px] text-fg-muted`,children:e},e))}),(0,$.jsxs)(`p`,{className:`mt-2 flex items-center gap-1.5 text-xs text-fg-muted`,children:[(0,$.jsx)(G,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,$.jsx)(`code`,{className:`rounded bg-surface-panel px-1 py-0.5`,children:e.npmPackage})]})]}),(0,$.jsx)(`div`,{role:`group`,className:`flex shrink-0 flex-col items-end gap-2 sm:min-w-[9rem]`,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:t===`bundled`?(0,$.jsx)(`span`,{className:`rounded-md bg-surface-hover px-2 py-1 text-[11px] font-medium text-fg-muted`,children:n.marketplaceBuiltin}):t===`user`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`text-[11px] font-medium text-fg-muted`,children:n.marketplaceInstalled}),(0,$.jsxs)(`button`,{type:`button`,disabled:r,onClick:()=>{window.confirm(n.marketplaceUninstallConfirm)&&w(e.id).catch(()=>{})},className:m(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-colors active:scale-[0.98] active:bg-surface-hover/80`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[r?(0,$.jsx)(u,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(ne,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0}),n.marketplaceUninstall]})]}):(0,$.jsx)(`button`,{type:`button`,onClick:()=>s({type:`patch`,patch:{detailPkg:e.id}}),className:m(`inline-flex w-full items-center justify-center rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-[transform,background-color] active:scale-[0.98]`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:n.marketplaceReview})})]})},e.id)})}),l?(0,$.jsx)(he,{packageName:l,copy:n,extensions:i,onClose:()=>s({type:`patch`,patch:{detailPkg:null}}),onInstall:C,onUninstall:w}):null]})}function he(e){let t=(0,ae.c)(93),{packageName:n,copy:r,extensions:i,onClose:o,onInstall:s,onUninstall:c}=e,[d,p]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(!1),v=h(be)?`ext-mp-detail-${n}`:null,b;t[0]===n?b=t[1]:(b=async()=>ce(n),t[0]=n,t[1]=b);let T;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T={revalidateOnFocus:!1},t[2]=T):T=t[2];let{data:D,error:O,isLoading:A}=E(v,b,T),j;t[3]!==i||t[4]!==n?(j=fe(i,n),t[3]=i,t[4]=n,t[5]=j):j=t[5];let M=j,N=M===`user`,P=D?.manifest?.permissions,F,I,L,R,z,B,V,H,U,W,G,K;if(t[6]!==r||t[7]!==D||t[8]!==O||t[9]!==i||t[10]!==M||t[11]!==A||t[12]!==o||t[13]!==n||t[14]!==P||t[15]!==g){B=Symbol.for(`react.early_return_sentinel`);bb0:{let e=P&&typeof P==`object`&&!Array.isArray(P)?Object.entries(P):[],a;t[28]!==r||t[29]!==D?(a=D?.readme?.trim()||(D?.description?.trim()?`### ${D.name}\n\n${D.description}`:`*${r.marketplaceNoReadme}*`),t[28]=r,t[29]=D,t[30]=a):a=t[30];let s=a;if(D?.format===`agent-plugin`){let e;if(t[31]!==D||t[32]!==i){let n;t[34]===D?n=t[35]:(n=e=>e.pluginId===D.manifest?.name,t[34]=D,t[35]=n),e=i.find(n),t[31]=D,t[32]=i,t[33]=e}else e=t[33];let r=`store:${n}`,a;t[36]!==o||t[37]!==e||t[38]!==r?(a=(0,$.jsx)(ie,{extension:e,initialSource:r,onClose:o}),t[36]=o,t[37]=e,t[38]=r,t[39]=a):a=t[39],B=a;break bb0}L=w,R=!0,t[40]===o?z=t[41]:(z=e=>!e&&o(),t[40]=o,t[41]=z),I=x,t[42]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),t[42]=K):K=t[42],F=S,U=`xopc-dialog-content fixed left-1/2 top-1/2 z-[131] flex h-[min(44rem,calc(100vh-1.5rem))] w-[min(42rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,W=ye;let c;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(re,{className:`size-5`}),t[43]=c):c=t[43];let u;t[44]!==r.detailBack||t[45]!==o?(u=(0,$.jsx)(`button`,{type:`button`,onClick:o,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":r.detailBack,children:c}),t[44]=r.detailBack,t[45]=o,t[46]=u):u=t[46];let d;t[47]===r.marketplaceDetailTitle?d=t[48]:(d=(0,$.jsx)(C,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:r.marketplaceDetailTitle}),t[47]=r.marketplaceDetailTitle,t[48]=d);let p;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(f,{className:`size-5`}),t[49]=p):p=t[49];let m;t[50]!==r.detailClose||t[51]!==o?(m=(0,$.jsx)(`button`,{type:`button`,onClick:o,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":r.detailClose,children:p}),t[50]=r.detailClose,t[51]=o,t[52]=m):m=t[52],t[53]!==u||t[54]!==d||t[55]!==m?(G=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[u,d,m]}),t[53]=u,t[54]=d,t[55]=m,t[56]=G):G=t[56],V=`min-h-0 flex-1 overflow-y-auto p-5`,H=A&&!D?(0,$.jsxs)(`div`,{className:`space-y-4`,"aria-label":r.marketplaceLoading,children:[(0,$.jsx)(k,{className:`h-6 w-48`}),(0,$.jsx)(k,{className:`h-4 w-28`}),(0,$.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,$.jsx)(k,{className:`h-12`}),(0,$.jsx)(k,{className:`h-12`})]}),(0,$.jsx)(k,{className:`h-28 w-full`}),(0,$.jsx)(k,{className:`h-36 w-full`})]}):O?(0,$.jsxs)(`div`,{className:`rounded-lg border border-red-300/70 bg-red-50 p-4 text-sm dark:border-red-900 dark:bg-red-950/30`,children:[(0,$.jsx)(`p`,{className:`font-medium text-red-700 dark:text-red-300`,children:r.marketplaceDetailLoadFailed}),(0,$.jsx)(`p`,{className:`mt-1 break-words text-red-600 dark:text-red-400`,children:O instanceof Error?O.message:r.marketplaceLoadFailed})]}):D?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:D.name}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:(0,$.jsx)(`code`,{className:`rounded bg-surface-panel px-1 py-0.5`,children:D.id})}),(0,$.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceAuthor}),(0,$.jsx)(`dd`,{children:D.author.username})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceVersion}),(0,$.jsx)(`dd`,{children:D.latestVersion.version})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceDownloads}),(0,$.jsx)(`dd`,{children:D.downloads})]})]}),M===`bundled`?null:(0,$.jsxs)(`section`,{className:`mt-5 space-y-3 rounded-lg border border-edge bg-surface-base p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[D.installability.available?(0,$.jsx)(ee,{className:`mt-0.5 size-5 shrink-0 text-emerald-600 dark:text-emerald-400`,"aria-hidden":!0}):(0,$.jsx)(te,{className:`mt-0.5 size-5 shrink-0 text-amber-600 dark:text-amber-400`,"aria-hidden":!0}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h4`,{className:`text-sm font-semibold text-fg`,children:D.installability.available?r.marketplaceRiskTitle:r.marketplaceUnavailableTitle}),(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-relaxed text-fg-muted`,children:D.installability.available?r.marketplaceCodeRisk:D.installability.reason??r.marketplaceUnavailableBody})]})]}),D.installability.available?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`dl`,{className:`grid gap-2 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceIntegrity}),(0,$.jsx)(`dd`,{children:r.marketplaceIntegrityVerified})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceDependencies}),(0,$.jsx)(`dd`,{children:D.packageSummary?.dependencyCount??0})]})]}),(0,$.jsxs)(`div`,{className:`text-xs text-fg-muted`,children:[(0,$.jsx)(`p`,{className:`font-medium text-fg`,children:r.marketplacePermissions}),e.length>0?(0,$.jsx)(`ul`,{className:`mt-1 space-y-1`,children:e.map(ve)}):(0,$.jsx)(`p`,{className:`mt-1`,children:r.marketplacePermissionsNone})]}),(D.packageSummary?.lifecycleScripts.length??0)>0?(0,$.jsxs)(`p`,{className:`text-xs leading-relaxed text-amber-700 dark:text-amber-300`,children:[r.marketplaceLifecycleScripts,`: `,D.packageSummary?.lifecycleScripts.join(`, `)]}):null,(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 text-sm text-fg`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:g,onChange:e=>_(e.target.checked),className:`mt-0.5 size-4 rounded border-edge accent-[var(--color-accent)]`}),(0,$.jsx)(`span`,{children:r.marketplaceRiskConfirm})]})]}):null]}),D.readme?.trim()?(0,$.jsx)(`h4`,{className:`mb-2 mt-6 text-sm font-semibold text-fg`,children:r.marketplaceDetailReadmeHeading}):null,(0,$.jsx)(`div`,{className:`markdown-content min-w-0 break-words text-sm`,children:(0,$.jsx)(l,{content:s})})]}):null}t[6]=r,t[7]=D,t[8]=O,t[9]=i,t[10]=M,t[11]=A,t[12]=o,t[13]=n,t[14]=P,t[15]=g,t[16]=F,t[17]=I,t[18]=L,t[19]=R,t[20]=z,t[21]=B,t[22]=V,t[23]=H,t[24]=U,t[25]=W,t[26]=G,t[27]=K}else F=t[16],I=t[17],L=t[18],R=t[19],z=t[20],B=t[21],V=t[22],H=t[23],U=t[24],W=t[25],G=t[26],K=t[27];if(B!==Symbol.for(`react.early_return_sentinel`))return B;let q;t[57]!==V||t[58]!==H?(q=(0,$.jsx)(`div`,{className:V,children:H}),t[57]=V,t[58]=H,t[59]=q):q=t[59];let J;t[60]!==d||t[61]!==r.marketplaceBuiltinGoBuiltin||t[62]!==r.marketplaceBuiltinManageHint||t[63]!==r.marketplaceInstall||t[64]!==r.marketplaceReinstall||t[65]!==r.marketplaceReinstallConfirm||t[66]!==r.marketplaceUninstall||t[67]!==r.marketplaceUninstallConfirm||t[68]!==D||t[69]!==M||t[70]!==o||t[71]!==s||t[72]!==c||t[73]!==n||t[74]!==g||t[75]!==N?(J=D?(0,$.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:M===`bundled`?(0,$.jsxs)(`div`,{className:`flex w-full flex-col items-stretch gap-2`,children:[(0,$.jsx)(`p`,{className:`text-sm leading-relaxed text-fg-muted`,children:r.marketplaceBuiltinManageHint}),(0,$.jsx)(a,{to:`/capabilities/extensions?tab=builtin`,onClick:o,className:`inline-flex w-fit items-center justify-center rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:r.marketplaceBuiltinGoBuiltin})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`button`,{type:`button`,disabled:d||!D.installability.available||!g,onClick:()=>{N&&!window.confirm(r.marketplaceReinstallConfirm)||(p(!0),s(n,N).catch(_e).finally(()=>p(!1)))},className:m(`inline-flex items-center justify-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium`,`bg-accent text-on-accent shadow-surface hover:bg-accent-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`disabled:pointer-events-none disabled:opacity-50`),children:[d?(0,$.jsx)(u,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,N?r.marketplaceReinstall:r.marketplaceInstall]}),N?(0,$.jsxs)(`button`,{type:`button`,disabled:d,onClick:()=>{window.confirm(r.marketplaceUninstallConfirm)&&(p(!0),c(n).then(()=>o()).catch(ge).finally(()=>p(!1)))},className:m(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[(0,$.jsx)(ne,{className:`size-4 shrink-0`,"aria-hidden":!0}),r.marketplaceUninstall]}):null]})}):null,t[60]=d,t[61]=r.marketplaceBuiltinGoBuiltin,t[62]=r.marketplaceBuiltinManageHint,t[63]=r.marketplaceInstall,t[64]=r.marketplaceReinstall,t[65]=r.marketplaceReinstallConfirm,t[66]=r.marketplaceUninstall,t[67]=r.marketplaceUninstallConfirm,t[68]=D,t[69]=M,t[70]=o,t[71]=s,t[72]=c,t[73]=n,t[74]=g,t[75]=N,t[76]=J):J=t[76];let Y;t[77]!==F||t[78]!==q||t[79]!==J||t[80]!==U||t[81]!==W||t[82]!==G?(Y=(0,$.jsxs)(F,{className:U,onOpenAutoFocus:W,children:[G,q,J]}),t[77]=F,t[78]=q,t[79]=J,t[80]=U,t[81]=W,t[82]=G,t[83]=Y):Y=t[83];let X;t[84]!==I||t[85]!==Y||t[86]!==K?(X=(0,$.jsxs)(I,{children:[K,Y]}),t[84]=I,t[85]=Y,t[86]=K,t[87]=X):X=t[87];let Q;return t[88]!==L||t[89]!==R||t[90]!==z||t[91]!==X?(Q=(0,$.jsx)(L,{defaultOpen:R,onOpenChange:z,children:X}),t[88]=L,t[89]=R,t[90]=z,t[91]=X,t[92]=Q):Q=t[92],Q}function ge(){}function _e(){}function ve(e){let[t,n]=e;return(0,$.jsxs)(`li`,{className:`break-words`,children:[(0,$.jsx)(`code`,{children:t}),`: `,Array.isArray(n)?n.join(`, `):String(n)]},t)}function ye(e){return e.preventDefault()}function be(e){return!!e.conversationId}function xe({embedded:e=!1,onHeaderActionChange:t}){let n=_(e=>e.language),r=p(n),o=B(e=>e.setPageHeader),c=B(e=>e.clearPageHeader),l=H(),u=K(),[f,h]=i(),g=Q(f.get(`tab`)),v=f.get(`q`)??``,[y,b]=(0,Z.useState)(g),[x,S]=(0,Z.useState)(v),[C,w]=(0,Z.useState)(null),[T,E]=(0,Z.useState)(!1),O=f.toString(),k=(0,Z.useRef)(O);if(k.current!==O){k.current=O;let e=Q(f.get(`tab`)),t=f.get(`q`)??``;b(t=>t===e?t:e),S(e=>e===t?e:t)}(0,Z.useEffect)(()=>{h(e=>{let t=new URLSearchParams(e),n=x.trim();return n?t.set(`q`,n):t.delete(`q`),y===`marketplace`?t.delete(`tab`):t.set(`tab`,y),t.toString()===e.toString()?e:t},{replace:!0})},[y,x,h]);let j=(0,Z.useMemo)(()=>l.filter(e=>e.source===`bundled`),[l]),ee=(0,Z.useMemo)(()=>l.filter(e=>e.source!==`bundled`),[l]),I=y===`builtin`?j:ee,R=(0,Z.useMemo)(()=>{let e=x.trim().toLowerCase(),t=I;return e&&(t=t.filter(t=>(t.name??``).toLowerCase().includes(e)||t.id.toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e))),t.toSorted((e,t)=>e.hasUi===t.hasUi?(e.name||e.id).localeCompare(t.name||t.id,n):e.hasUi?-1:1)},[I,x,n]);(0,Z.useEffect)(()=>{w(e=>{if(!e)return e;let t=l.find(t=>t.id===e.id);return t?Se(e)===Se(t)&&e.active===t.active&&JSON.stringify(e)===JSON.stringify(t)?e:t:null})},[l]);let V=(0,Z.useMemo)(()=>({searchLabel:y===`marketplace`?r.extensionsPage.marketplaceSearchPlaceholder:r.extensionsPage.searchPlaceholder,search:(0,$.jsx)(q,{value:x,onChange:S,placeholder:y===`marketplace`?r.extensionsPage.marketplaceSearchPlaceholder:r.extensionsPage.searchPlaceholder}),overflow:(0,$.jsxs)(L,{children:[(0,$.jsx)(A,{asChild:!0,children:(0,$.jsx)(D,{variant:`secondary`,className:`size-9 shrink-0 p-0`,"aria-label":r.capabilitiesHub.moreActions,title:r.capabilitiesHub.moreActions,children:(0,$.jsx)(s,{className:`size-4`,"aria-hidden":!0})})}),(0,$.jsx)(P,{children:(0,$.jsxs)(M,{align:`end`,sideOffset:6,className:`z-50 min-w-48 rounded-xl border border-edge bg-surface-panel p-1 shadow-popover`,children:[(0,$.jsxs)(N,{className:m(`touch-target flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,F.transition),onSelect:()=>E(!0),children:[(0,$.jsx)(d,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),n.startsWith(`zh`)?`安装插件`:`Install plugin`]}),(0,$.jsx)(N,{asChild:!0,children:(0,$.jsxs)(a,{to:`/local-apps`,className:m(`touch-target flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-fg outline-none data-[highlighted]:bg-surface-hover`,F.transition),children:[(0,$.jsx)(z,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),r.extensionsPage.openLocalApps]})})]})})]}),primary:(0,$.jsx)(D,{asChild:!0,variant:`primary`,className:`h-9 shrink-0`,children:(0,$.jsxs)(a,{to:`/local-apps/new`,"aria-label":r.extensionsPage.createLocalApp,children:[(0,$.jsx)(d,{className:`size-4`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:r.extensionsPage.createLocalApp})]})})}),[n,r.capabilitiesHub.moreActions,r.extensionsPage,y,x]);if((0,Z.useLayoutEffect)(()=>e?(t?.(V),()=>t?.(null)):(o({startExtra:null,main:(0,$.jsx)(`div`,{className:`min-w-0`,children:(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r.extensionsPage.title})}),end:(0,$.jsx)(J,{contribution:V})}),()=>c()),[c,e,V,r.extensionsPage.title,t,o]),u&&y!==`marketplace`)return(0,$.jsx)(ke,{});let te=[{id:`marketplace`,label:r.extensionsPage.tabMarketplace},{id:`builtin`,label:r.extensionsPage.tabBuiltin,count:j.length},{id:`user`,label:r.extensionsPage.tabUser,count:ee.length}];return(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,$.jsxs)(`div`,{className:m(`mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8`,e?`pb-7 pt-3 lg:pb-9 lg:pt-4`:`py-7 lg:py-9`),children:[(0,$.jsx)(`div`,{className:`mb-6 border-b border-edge-subtle pb-3`,children:(0,$.jsx)(Y,{items:te,activeTab:y,onChange:b,ariaLabel:r.extensionsPage.extensionsNavAria,tabIdPrefix:`extensions-tab`,panelIdPrefix:`extensions-panel`,className:`flex-wrap`})}),y===`marketplace`?(0,$.jsx)(me,{query:x}):y===`builtin`&&j.length===0?(0,$.jsx)(je,{message:r.extensionsPage.emptyBuiltin}):y===`user`&&ee.length===0?(0,$.jsx)(je,{message:r.extensionsPage.emptyUser}):R.length===0?(0,$.jsx)(`p`,{className:`px-3 py-14 text-center text-sm text-fg-muted sm:px-5 xl:px-6`,children:r.extensionsPage.noSearchResults}):(0,$.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:R.map(e=>(0,$.jsx)(Ee,{extension:e,copy:r.extensionsPage,showSourceBadge:y===`user`,onOpen:()=>w(e)},e.id))})]}),C?C.format===`agent-plugin`?(0,$.jsx)(ie,{extension:C,onClose:()=>w(null)},C.id):(0,$.jsx)(De,{extension:C,copy:r.extensionsPage,onClose:()=>w(null)},C.id):null,T?(0,$.jsx)(ie,{onClose:()=>E(!1)}):null]})}function Se(e){return e.activationEligible??e.active}function Ce(e,t){return e.source===`bundled`?t.providerBundled:e.source===`global`?t.providerGlobal:e.source===`workspace`?t.providerWorkspace:t.providerOther}function we(e,t){return e.source===`global`?t.badgeSourceGlobal:e.source===`workspace`?t.badgeSourceWorkspace:t.badgeSourceOther}function Te(e,t){let n=Se(e);return n&&e.active?t.runStateLive:n&&!e.active?t.runStatePendingOn:!n&&e.active?t.runStatePendingOff:t.runStateOff}function Ee(e){let t=(0,ae.c)(45),{extension:n,copy:r,showSourceBadge:i,onOpen:a}=e,s;t[0]===n?s=t[1]:(s=Se(n),t[0]=n,t[1]=s);let c=s,l=n.hasUi?r.cardTooltipHasUi:r.cardTooltipNoUi,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=m(`group flex w-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 text-left shadow-surface transition-colors`,`hover:bg-surface-hover/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`dark:hover:bg-surface-hover/25`),t[2]=u):u=t[2];let f=n.name||n.id,p;t[3]===f?p=t[4]:(p=f.charAt(0).toUpperCase(),t[3]=f,t[4]=p);let h;t[5]===p?h=t[6]:(h=(0,$.jsx)(`div`,{className:`flex size-12 shrink-0 items-center justify-center rounded-xl bg-accent-soft text-base font-semibold text-accent-fg`,"aria-hidden":!0,children:p}),t[5]=p,t[6]=h);let g;t[7]===n.name?g=t[8]:(g=(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:n.name}),t[7]=n.name,t[8]=g);let _;t[9]===n.version?_=t[10]:(_=n.version?(0,$.jsxs)(`span`,{className:`text-[11px] text-fg-muted`,children:[`v`,n.version]}):null,t[9]=n.version,t[10]=_);let v;t[11]!==g||t[12]!==_?(v=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[g,_]}),t[11]=g,t[12]=_,t[13]=v):v=t[13];let y;t[14]!==r.statusEnabled||t[15]!==c?(y=c?(0,$.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:[(0,$.jsx)(o,{className:`size-3`,strokeWidth:2.5,"aria-hidden":!0}),r.statusEnabled]}):(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center rounded-full border-2 border-accent text-accent`,"aria-hidden":!0,children:(0,$.jsx)(d,{className:`size-4`,strokeWidth:2.5})}),t[14]=r.statusEnabled,t[15]=c,t[16]=y):y=t[16];let b;t[17]!==v||t[18]!==y?(b=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[v,y]}),t[17]=v,t[18]=y,t[19]=b):b=t[19];let x;t[20]!==r.cardNoDescription||t[21]!==n.description?(x=n.description?.trim()||r.cardNoDescription,t[20]=r.cardNoDescription,t[21]=n.description,t[22]=x):x=t[22];let S;t[23]===x?S=t[24]:(S=(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-relaxed text-fg-muted`,children:x}),t[23]=x,t[24]=S);let C=n.format===`agent-plugin`?`Agent Plugin`:n.hasUi?r.badgeKindUi:r.badgeKindBackend,w;t[25]!==C||t[26]!==l?(w=(0,$.jsx)(`span`,{title:l,className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:C}),t[25]=C,t[26]=l,t[27]=w):w=t[27];let T;t[28]!==r||t[29]!==n||t[30]!==i?(T=n.source===`bundled`?(0,$.jsx)(`span`,{className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:r.badgeBundled}):i?(0,$.jsx)(`span`,{title:Ce(n,r),className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:we(n,r)}):null,t[28]=r,t[29]=n,t[30]=i,t[31]=T):T=t[31];let E;t[32]!==w||t[33]!==T?(E=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:[w,T]}),t[32]=w,t[33]=T,t[34]=E):E=t[34];let D;t[35]!==b||t[36]!==S||t[37]!==E?(D=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[b,S,E]}),t[35]=b,t[36]=S,t[37]=E,t[38]=D):D=t[38];let O;t[39]!==D||t[40]!==h?(O=(0,$.jsxs)(`div`,{className:`flex gap-3`,children:[h,D]}),t[39]=D,t[40]=h,t[41]=O):O=t[41];let k;return t[42]!==a||t[43]!==O?(k=(0,$.jsx)(`button`,{type:`button`,onClick:a,className:u,children:O}),t[42]=a,t[43]=O,t[44]=k):k=t[44],k}function De({extension:e,copy:t,onClose:n}){let{mutate:r}=T(),[i,o]=(0,Z.useState)(null),[s,l]=(0,Z.useState)(null),[d,p]=(0,Z.useState)(!1),h=e.activationEligible===!0,g=(0,Z.useCallback)(async()=>{l(null),p(!1),o(`toggle`);try{let{requiresGatewayRestart:t}=await ue({extensionId:e.id,enabled:!h});await r(`gateway-extensions-list`),O(),p(t)}catch(e){l(e instanceof Error?e.message:t.extensionToggleFailed)}finally{o(null)}},[h,t.extensionToggleFailed,e.id,r]),_=(0,Z.useCallback)(async()=>{if(!(e.source===`bundled`||!window.confirm(t.extensionUninstallConfirm))){l(null),p(!1),o(`uninstall`);try{await de(e.id),await r(`gateway-extensions-list`),O(),n()}catch(e){l(e instanceof Error?e.message:t.marketplaceUninstallFailed),o(null)}}},[t.extensionUninstallConfirm,t.marketplaceUninstallFailed,e.id,e.source,r,n]),v=e.ui?.contributions?.pages??[],E=e.ui?.contributions?.settingsPanels??[],k=e.ui?.contributions?.chatWidgets??[],A=v.find(e=>e.showInNav)??v[0],M=E[0],N=A?V(e.id,A):null,P=M?`/settings/ext/${e.id}/${M.id}`:e.hasConfigSchema||W(e)?`/settings/ext/${e.id}`:null;return(0,$.jsx)(w,{defaultOpen:!0,onOpenChange:e=>!e&&n(),children:(0,$.jsxs)(x,{children:[(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),(0,$.jsxs)(S,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[131] flex max-h-[min(90vh,44rem)] w-[min(42rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailBack,children:(0,$.jsx)(re,{className:`size-5`})}),(0,$.jsx)(C,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:t.detailTitle}),(0,$.jsxs)(b,{className:`sr-only`,children:[e.name,` (`,e.id,`)`]}),(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailClose,children:(0,$.jsx)(f,{className:`size-5`})})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-start gap-4`,children:[(0,$.jsx)(`div`,{className:`flex size-16 shrink-0 items-center justify-center rounded-2xl bg-accent-soft text-xl font-semibold text-accent-fg`,"aria-hidden":!0,children:(e.name||e.id).charAt(0).toUpperCase()}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:e.name}),(0,$.jsxs)(`p`,{className:`mt-0.5 text-sm text-fg-muted`,children:[t.detailProviderPrefix,` `,Ce(e,t)]}),e.version?(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:[`v`,e.version]}):null]})]}),(0,$.jsx)(`p`,{className:`mt-5 text-sm leading-relaxed text-fg`,children:e.description?.trim()||t.detailNoDescription}),e.hasUi?null:(0,$.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:t.backendOnlyHint}),(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:Te(e,t)}),e.source===`bundled`?(0,$.jsx)(`p`,{className:`mt-4 rounded-lg bg-surface-hover/40 px-3 py-2 text-xs text-fg-muted shadow-surface dark:bg-surface-hover/20`,children:t.builtinConfigHint}):null,(0,$.jsxs)(`div`,{className:`mt-3 rounded-lg bg-surface-hover/40 p-3 shadow-surface dark:bg-surface-hover/20`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:t.builtinRuntimeToggle}),(0,$.jsx)(D,{type:`button`,variant:`secondary`,disabled:i!==null,onClick:()=>void g(),className:`shrink-0 py-1.5 text-xs`,children:i===`toggle`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(u,{className:`mr-1.5 size-3.5 shrink-0 animate-spin`,"aria-hidden":!0}),t.builtinToggleBusy]}):h?t.builtinToggleDisable:t.builtinToggleEnable})]}),s?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-rose-600 dark:text-rose-400`,children:s}):null,d?(0,$.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:t.builtinToggleRestartHint}):null,e.source===`bundled`?null:(0,$.jsx)(`div`,{className:`mt-3 flex justify-end border-t border-edge-subtle pt-3`,children:(0,$.jsxs)(D,{type:`button`,variant:`ghost`,disabled:i!==null,onClick:()=>void _(),className:`text-danger hover:bg-danger-soft hover:text-danger`,children:[i===`uninstall`?(0,$.jsx)(u,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):(0,$.jsx)(ne,{className:`size-3.5`,"aria-hidden":!0}),t.marketplaceUninstall]})})]}),e.hasUi&&(v.length>0||E.length>0||k.length>0)?(0,$.jsxs)(`section`,{className:`mt-8`,children:[(0,$.jsx)(`h4`,{className:`mb-3 text-sm font-semibold text-fg`,children:t.detailSectionFeatures}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,$.jsx)(Oe,{template:t.badgePages,count:v.length,hidden:v.length===0}),(0,$.jsx)(Oe,{template:t.badgeSettings,count:E.length,hidden:E.length===0}),(0,$.jsx)(Oe,{template:t.badgeWidgets,count:k.length,hidden:k.length===0})]})]}):null,U(e)&&(N||P)?(0,$.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2 border-t border-edge-subtle pt-4`,children:[N?(0,$.jsxs)(a,{to:N,onClick:n,className:m(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(c,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.open]}):null,P?(0,$.jsxs)(a,{to:P,onClick:n,className:m(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,$.jsx)(j,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.openSettings]}):null]}):null,(0,$.jsx)(`p`,{className:`mt-6 text-[11px] leading-relaxed text-fg-muted`,children:t.restartNote})]})]})]})})}function Oe(e){let t=(0,ae.c)(6),{template:n,count:r,hidden:i}=e;if(i||r===0)return null;let a;if(t[0]!==r||t[1]!==n){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=/\{\{count\}\}/g,t[3]=e):e=t[3],a=n.replace(e,String(r)),t[0]=r,t[1]=n,t[2]=a}else a=t[2];let o;return t[4]===a?o=t[5]:(o=(0,$.jsx)(`span`,{className:`inline-flex items-center rounded-md bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:a}),t[4]=a,t[5]=o),o}function ke(){let e=(0,ae.c)(5),t,n,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsx)(`div`,{className:`mb-6 h-8 w-40 max-w-full animate-pulse rounded-md bg-surface-hover`}),n=(0,$.jsx)(`div`,{className:`mb-2 h-4 w-full max-w-md animate-pulse rounded bg-surface-hover`}),r=(0,$.jsx)(`div`,{className:`mb-5 h-9 w-full max-w-lg animate-pulse rounded-full bg-surface-hover`}),e[0]=t,e[1]=n,e[2]=r):(t=e[0],n=e[1],r=e[2]);let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=[`ap0`,`ap1`,`ap2`,`ap3`,`ap4`,`ap5`],e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,$.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:(0,$.jsxs)(`div`,{className:`w-full px-3 py-8 sm:px-5 xl:px-6`,children:[t,n,r,(0,$.jsx)(`div`,{className:`mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:i.map(Ae)})]})}),e[4]=a):a=e[4],a}function Ae(e){return(0,$.jsx)(`div`,{className:`h-36 animate-pulse rounded-xl border border-edge-subtle bg-surface-base shadow-surface`},e)}function je(e){let t=(0,ae.c)(2),{message:n}=e,r;return t[0]===n?r=t[1]:(r=(0,$.jsx)(`div`,{className:`flex min-h-[min(40vh,16rem)] flex-col items-center justify-center rounded-xl border border-edge-subtle bg-surface-base px-4 py-12 text-center shadow-surface`,children:(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n})}),t[0]=n,t[1]=r),r}export{xe as ExtensionsPage};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./messages-DsUnS7rn.js";import{t as a}from"./jszip.min-DT31yWkU.js";import{t as o}from"./preview-open-alternatives-CQO4X4dH.js";var s=n(),c=e(a(),1),l=e(t(),1),u=r();function d(e){let t=(0,s.c)(17),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[0]=n):n=t[0];let[r,a]=(0,l.useState)(n),[d,m]=(0,l.useState)(null),h,g;if(t[1]===e.binaryBuffer?(h=t[2],g=t[3]):(h=()=>{if(!e.binaryBuffer)return;let t=!1;return c.default.loadAsync(e.binaryBuffer).then(e=>{t||a(Object.values(e.files).slice(0,500).map(p))}).catch(e=>{t||m(e instanceof Error?e.message:String(e))}),()=>{t=!0}},g=[e.binaryBuffer],t[1]=e.binaryBuffer,t[2]=h,t[3]=g),(0,l.useEffect)(h,g),d){let n;t[4]===e.language?n=t[5]:(n=i(e.language),t[4]=e.language,t[5]=n);let r=n,a;t[6]!==r.chat.attachmentPreviewDownloadFull||t[7]!==r.chat.attachmentPreviewOpenElsewhereHint||t[8]!==e.actions.onDownload?(a=(0,u.jsx)(o,{message:r.chat.attachmentPreviewOpenElsewhereHint,downloadLabel:r.chat.attachmentPreviewDownloadFull,onDownload:e.actions.onDownload}),t[6]=r.chat.attachmentPreviewDownloadFull,t[7]=r.chat.attachmentPreviewOpenElsewhereHint,t[8]=e.actions.onDownload,t[9]=a):a=t[9];let s;t[10]===d?s=t[11]:(s=(0,u.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:d}),t[10]=d,t[11]=s);let c;return t[12]!==a||t[13]!==s?(c=(0,u.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-auto p-4`,children:[a,s]}),t[12]=a,t[13]=s,t[14]=c):c=t[14],c}let _;return t[15]===r?_=t[16]:(_=(0,u.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-4`,children:(0,u.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-edge bg-surface-panel`,children:r.length===0?(0,u.jsx)(`p`,{className:`p-4 text-sm text-fg-muted`,children:`Loading archive...`}):(0,u.jsx)(`table`,{className:`w-full text-left text-xs`,children:(0,u.jsx)(`tbody`,{children:r.map(f)})})})}),t[15]=r,t[16]=_),_}function f(e){return(0,u.jsxs)(`tr`,{className:`border-b border-edge-subtle last:border-b-0 dark:border-edge`,children:[(0,u.jsx)(`td`,{className:`max-w-0 truncate px-3 py-2 font-mono text-fg`,title:e.name,children:e.dir?`${e.name}/`:e.name}),(0,u.jsx)(`td`,{className:`w-24 px-3 py-2 text-right text-fg-muted`,children:e.dir?``:m(e.size)})]},e.name)}function p(e){return{name:e.name,dir:e.dir,size:e.dir?0:e._data?.uncompressedSize??0}}function m(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}export{d as ArchivePreviewPluginView};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./messages-DvcSrOiI.js";import{t as a}from"./jszip.min-DT31yWkU.js";import{t as o}from"./preview-open-alternatives-Bolgk7cf.js";var s=n(),c=e(a(),1),l=e(t(),1),u=r();function d(e){let t=(0,s.c)(17),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[0]=n):n=t[0];let[r,a]=(0,l.useState)(n),[d,m]=(0,l.useState)(null),h,g;if(t[1]===e.binaryBuffer?(h=t[2],g=t[3]):(h=()=>{if(!e.binaryBuffer)return;let t=!1;return c.default.loadAsync(e.binaryBuffer).then(e=>{t||a(Object.values(e.files).slice(0,500).map(p))}).catch(e=>{t||m(e instanceof Error?e.message:String(e))}),()=>{t=!0}},g=[e.binaryBuffer],t[1]=e.binaryBuffer,t[2]=h,t[3]=g),(0,l.useEffect)(h,g),d){let n;t[4]===e.language?n=t[5]:(n=i(e.language),t[4]=e.language,t[5]=n);let r=n,a;t[6]!==r.chat.attachmentPreviewDownloadFull||t[7]!==r.chat.attachmentPreviewOpenElsewhereHint||t[8]!==e.actions.onDownload?(a=(0,u.jsx)(o,{message:r.chat.attachmentPreviewOpenElsewhereHint,downloadLabel:r.chat.attachmentPreviewDownloadFull,onDownload:e.actions.onDownload}),t[6]=r.chat.attachmentPreviewDownloadFull,t[7]=r.chat.attachmentPreviewOpenElsewhereHint,t[8]=e.actions.onDownload,t[9]=a):a=t[9];let s;t[10]===d?s=t[11]:(s=(0,u.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:d}),t[10]=d,t[11]=s);let c;return t[12]!==a||t[13]!==s?(c=(0,u.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-auto p-4`,children:[a,s]}),t[12]=a,t[13]=s,t[14]=c):c=t[14],c}let _;return t[15]===r?_=t[16]:(_=(0,u.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-4`,children:(0,u.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-edge bg-surface-panel`,children:r.length===0?(0,u.jsx)(`p`,{className:`p-4 text-sm text-fg-muted`,children:`Loading archive...`}):(0,u.jsx)(`table`,{className:`w-full text-left text-xs`,children:(0,u.jsx)(`tbody`,{children:r.map(f)})})})}),t[15]=r,t[16]=_),_}function f(e){return(0,u.jsxs)(`tr`,{className:`border-b border-edge-subtle last:border-b-0 dark:border-edge`,children:[(0,u.jsx)(`td`,{className:`max-w-0 truncate px-3 py-2 font-mono text-fg`,title:e.name,children:e.dir?`${e.name}/`:e.name}),(0,u.jsx)(`td`,{className:`w-24 px-3 py-2 text-right text-fg-muted`,children:e.dir?``:m(e.size)})]},e.name)}function p(e){return{name:e.name,dir:e.dir,size:e.dir?0:e._data?.uncompressedSize??0}}function m(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}export{d as ArchivePreviewPluginView};
@@ -1 +1 @@
1
- import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./automations-workspace-8OSlJ6lL.js";var r=e(),i=t();function a(){let e=(0,r.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,i.jsx)(n,{}),e[0]=t):t=e[0],t}export{a as AutomationsPage};
1
+ import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./automations-workspace-DuULlur3.js";var r=e(),i=t();function a(){let e=(0,r.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,i.jsx)(n,{}),e[0]=t):t=e[0],t}export{a as AutomationsPage};