@xopcai/xopc 0.0.58 → 0.0.59

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 (167) hide show
  1. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  2. package/dist/extensions/telegram/src/plugin.js +1 -1
  3. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/extensions/weixin/src/api/api.js +2 -2
  6. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  7. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  8. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  9. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  10. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  11. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  12. package/dist/extensions/weixin/src/plugin.js +1 -1
  13. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  14. package/dist/gateway/static/root/assets/{agents-kfTaZM98.js → agents-BgeuYTaG.js} +2 -2
  15. package/dist/gateway/static/root/assets/{agents-kfTaZM98.js.map → agents-BgeuYTaG.js.map} +1 -1
  16. package/dist/gateway/static/root/assets/{apps-page-DD4Y41az.js → apps-page-DXOoxQ3t.js} +2 -2
  17. package/dist/gateway/static/root/assets/{apps-page-DD4Y41az.js.map → apps-page-DXOoxQ3t.js.map} +1 -1
  18. package/dist/gateway/static/root/assets/{channels-settings-CzQhBqZZ.js → channels-settings-BtblELP8.js} +2 -2
  19. package/dist/gateway/static/root/assets/{channels-settings-CzQhBqZZ.js.map → channels-settings-BtblELP8.js.map} +1 -1
  20. package/dist/gateway/static/root/assets/{cron-dreaming-jobs-Bw0WqucT.js → cron-dreaming-jobs-D5kvbjSY.js} +2 -2
  21. package/dist/gateway/static/root/assets/{cron-dreaming-jobs-Bw0WqucT.js.map → cron-dreaming-jobs-D5kvbjSY.js.map} +1 -1
  22. package/dist/gateway/static/root/assets/{cron-page-DzdhjVlI.js → cron-page-4hk422N-.js} +2 -2
  23. package/dist/gateway/static/root/assets/{cron-page-DzdhjVlI.js.map → cron-page-4hk422N-.js.map} +1 -1
  24. package/dist/gateway/static/root/assets/{dist-CwfwOj0f.js → dist-CEmPWsYK.js} +2 -2
  25. package/dist/gateway/static/root/assets/{dist-CwfwOj0f.js.map → dist-CEmPWsYK.js.map} +1 -1
  26. package/dist/gateway/static/root/assets/{extension-debug-page-6MugjoYl.js → extension-debug-page-z0vfOyIu.js} +2 -2
  27. package/dist/gateway/static/root/assets/{extension-debug-page-6MugjoYl.js.map → extension-debug-page-z0vfOyIu.js.map} +1 -1
  28. package/dist/gateway/static/root/assets/{extension-page-DG6W4O_G.js → extension-page-CFaT0yHk.js} +2 -2
  29. package/dist/gateway/static/root/assets/{extension-page-DG6W4O_G.js.map → extension-page-CFaT0yHk.js.map} +1 -1
  30. package/dist/gateway/static/root/assets/{extension-settings-page-DmmeUN--.js → extension-settings-page-7atlEJU0.js} +2 -2
  31. package/dist/gateway/static/root/assets/{extension-settings-page-DmmeUN--.js.map → extension-settings-page-7atlEJU0.js.map} +1 -1
  32. package/dist/gateway/static/root/assets/{heartbeat-config-api-BzwYrxvL.js → heartbeat-config-api-DnmmSrTx.js} +2 -2
  33. package/dist/gateway/static/root/assets/{heartbeat-config-api-BzwYrxvL.js.map → heartbeat-config-api-DnmmSrTx.js.map} +1 -1
  34. package/dist/gateway/static/root/assets/{index-BDiwAtHo.js → index-DvMI6Vqn.js} +4 -4
  35. package/dist/gateway/static/root/assets/{index-BDiwAtHo.js.map → index-DvMI6Vqn.js.map} +1 -1
  36. package/dist/gateway/static/root/assets/{logs-page-BaOXC1YZ.js → logs-page-XKXcjB3g.js} +2 -2
  37. package/dist/gateway/static/root/assets/{logs-page-BaOXC1YZ.js.map → logs-page-XKXcjB3g.js.map} +1 -1
  38. package/dist/gateway/static/root/assets/{sessions-page-C_VA9TOA.js → sessions-page-1DyACBG7.js} +2 -2
  39. package/dist/gateway/static/root/assets/{sessions-page-C_VA9TOA.js.map → sessions-page-1DyACBG7.js.map} +1 -1
  40. package/dist/gateway/static/root/assets/{settings-page-DMjZKSwv.js → settings-page-TrmEN1eQ.js} +2 -2
  41. package/dist/gateway/static/root/assets/{settings-page-DMjZKSwv.js.map → settings-page-TrmEN1eQ.js.map} +1 -1
  42. package/dist/gateway/static/root/assets/{skills-page-vObv6AB7.js → skills-page-Dcvjtm-1.js} +2 -2
  43. package/dist/gateway/static/root/assets/{skills-page-vObv6AB7.js.map → skills-page-Dcvjtm-1.js.map} +1 -1
  44. package/dist/gateway/static/root/assets/{use-image-provider-credentials-CoM2HUB_.js → use-image-provider-credentials-D6TXcMU2.js} +2 -2
  45. package/dist/gateway/static/root/assets/{use-image-provider-credentials-CoM2HUB_.js.map → use-image-provider-credentials-D6TXcMU2.js.map} +1 -1
  46. package/dist/gateway/static/root/index.html +1 -1
  47. package/dist/package.js +1 -1
  48. package/dist/src/agent/agent-manager.js +6 -6
  49. package/dist/src/agent/context/workspace-seed.js +2 -2
  50. package/dist/src/agent/embedded/run-turn.js +6 -2
  51. package/dist/src/agent/embedded/run-turn.js.map +1 -1
  52. package/dist/src/agent/embedded/xopc-auth-storage.d.ts +9 -0
  53. package/dist/src/agent/embedded/xopc-auth-storage.js +13 -1
  54. package/dist/src/agent/embedded/xopc-auth-storage.js.map +1 -1
  55. package/dist/src/agent/embedded/xopc-stream-bridge.d.ts +11 -0
  56. package/dist/src/agent/embedded/xopc-stream-bridge.js +24 -0
  57. package/dist/src/agent/embedded/xopc-stream-bridge.js.map +1 -0
  58. package/dist/src/agent/goals/goal-run-store.js +4 -4
  59. package/dist/src/agent/goals/post-turn.js +2 -2
  60. package/dist/src/agent/image/load-image-media.js +1 -1
  61. package/dist/src/agent/ipc/bus.js +1 -1
  62. package/dist/src/agent/ipc/inbox.js +2 -2
  63. package/dist/src/agent/ipc/socket.js +1 -1
  64. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  65. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  66. package/dist/src/agent/memory/dreaming/events.js +1 -1
  67. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  68. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  69. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  70. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  71. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  72. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  73. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  74. package/dist/src/agent/models/manager.js +1 -1
  75. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  76. package/dist/src/agent/service.js +5 -5
  77. package/dist/src/agent/skills/config.js +1 -1
  78. package/dist/src/agent/skills/hub-hash.js +2 -2
  79. package/dist/src/agent/skills/hub-lock.js +1 -1
  80. package/dist/src/agent/skills/hub-pull.js +1 -1
  81. package/dist/src/agent/skills/index.js +1 -1
  82. package/dist/src/agent/skills/managed-store.js +1 -1
  83. package/dist/src/agent/skills/scanner.js +1 -1
  84. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  85. package/dist/src/agent/skills/skill-manager.js +1 -1
  86. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  87. package/dist/src/agent/tools/factory.js +1 -1
  88. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  89. package/dist/src/agent/tools/send-media.js +1 -1
  90. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  91. package/dist/src/agent/tools/write.js +1 -1
  92. package/dist/src/auth/credentials.js +3 -3
  93. package/dist/src/auth/profiles/store.js +1 -1
  94. package/dist/src/auth/sync-provider-auth.js +1 -1
  95. package/dist/src/channels/attachments/inbound-persist.js +1 -1
  96. package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
  97. package/dist/src/channels/outbound/persist-store.js +1 -1
  98. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  99. package/dist/src/channels/pairing/pairing-store.js +2 -2
  100. package/dist/src/chat-commands/builtins/config.js +2 -2
  101. package/dist/src/chat-commands/context.js +1 -1
  102. package/dist/src/cli/commands/agent.js +1 -1
  103. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  104. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  105. package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
  106. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  107. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  108. package/dist/src/cli/commands/extension-dev.js +1 -1
  109. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  110. package/dist/src/cli/commands/extension-pack.js +1 -1
  111. package/dist/src/cli/commands/image.js +1 -1
  112. package/dist/src/cli/commands/init.js +4 -4
  113. package/dist/src/cli/commands/onboard.js +1 -1
  114. package/dist/src/cli/utils/init-workspace.js +2 -2
  115. package/dist/src/config/index.js +3 -3
  116. package/dist/src/config/loader.js +2 -2
  117. package/dist/src/config/models-json.js +2 -2
  118. package/dist/src/config/profile.js +2 -2
  119. package/dist/src/cron/executor.js +2 -2
  120. package/dist/src/cron/persistence.js +1 -1
  121. package/dist/src/cron/run-log-store.js +1 -1
  122. package/dist/src/daemon/launchd.js +2 -2
  123. package/dist/src/daemon/systemd.js +2 -2
  124. package/dist/src/extensions/health.js +1 -1
  125. package/dist/src/extensions/loader.js +1 -1
  126. package/dist/src/extensions/lockfile.js +2 -2
  127. package/dist/src/gateway/agents-admin.js +2 -2
  128. package/dist/src/gateway/hono/lib/extension-store.js +1 -1
  129. package/dist/src/gateway/hono/lib/static-ui.js +1 -1
  130. package/dist/src/gateway/hono/oauth.js +1 -1
  131. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  132. package/dist/src/gateway/hono/routes/config.js +1 -1
  133. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  134. package/dist/src/gateway/hono/routes/host-fs.js +1 -1
  135. package/dist/src/gateway/hono/routes/models.js +1 -1
  136. package/dist/src/gateway/hono/routes/workspace.js +3 -3
  137. package/dist/src/gateway/hono/sse.js +2 -2
  138. package/dist/src/gateway/lock.js +2 -2
  139. package/dist/src/gateway/service/run-gateway-agent.js +2 -2
  140. package/dist/src/gateway/service.js +5 -5
  141. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  142. package/dist/src/gateway/workspace-heartbeat-path.js +1 -1
  143. package/dist/src/infra/update-check.js +1 -1
  144. package/dist/src/infra/update-lock.js +3 -3
  145. package/dist/src/infra/update-runner.js +1 -1
  146. package/dist/src/infra/update-startup.js +2 -2
  147. package/dist/src/infra/write-file-atomic.js +2 -2
  148. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  149. package/dist/src/providers/index.js +2 -2
  150. package/dist/src/providers/model-registry.js +1 -1
  151. package/dist/src/session/config-store.js +2 -2
  152. package/dist/src/session/parity/jsonl-transcript-io.js +2 -2
  153. package/dist/src/session/parity/sessions-json-file.js +1 -1
  154. package/dist/src/session/parity/transcript-file-lock.js +2 -2
  155. package/dist/src/session/parity/transcript-paths.js +1 -1
  156. package/dist/src/session/search-index-cache.js +1 -1
  157. package/dist/src/session/search-index.js +1 -1
  158. package/dist/src/session/session-title.js +1 -1
  159. package/dist/src/session/store.js +4 -4
  160. package/dist/src/tui/backends/embedded-backend.js +1 -1
  161. package/dist/src/tui/tui.js +1 -1
  162. package/dist/src/utils/logger/audit.js +1 -1
  163. package/dist/src/utils/logger/log-store.js +1 -1
  164. package/dist/src/utils/logger/rotation.js +1 -1
  165. package/dist/src/voice/tts/audio.js +1 -1
  166. package/dist/src/voice/tts/providers/edge-speech.js +1 -1
  167. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-DVUfmhpE.js","assets/rolldown-runtime-DWdDZTNf.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-DWdDZTNf.js";import{i as t,t as n}from"./vendor-react-DbimaAId.js";import{Cn as r}from"./vendor-codemirror-CXAvob9m.js";import{Ar as i,B as a,Br as o,Cn as s,G as c,H as ee,J as te,K as ne,Ln as l,Mn as u,Mt as d,Nt as re,Oi as f,Ot as ie,Pt as p,Qr as ae,R as oe,U as se,V as ce,W as le,Wr as m,X as h,Yr as ue,Z as de,Zn as fe,_n as pe,cr as me,ei as he,gi as g,hi as ge,hr as _e,ji as _,jn as ve,jt as v,ki as ye,kt as y,mi as be,pr as b,q as xe,qn as Se,vn as Ce,z as we,zn as x}from"./index-BDiwAtHo.js";import{a as Te,i as Ee,n as S,r as C,t as w}from"./dist-CwfwOj0f.js";var T=e(t(),1),E=n(),D=[{light:`bg-sky-100 text-sky-800`,dark:`dark:bg-sky-950/55 dark:text-sky-200`},{light:`bg-violet-100 text-violet-800`,dark:`dark:bg-violet-950/55 dark:text-violet-200`},{light:`bg-emerald-100 text-emerald-800`,dark:`dark:bg-emerald-950/55 dark:text-emerald-200`},{light:`bg-orange-100 text-orange-800`,dark:`dark:bg-orange-950/55 dark:text-orange-200`},{light:`bg-rose-100 text-rose-800`,dark:`dark:bg-rose-950/55 dark:text-rose-200`},{light:`bg-amber-100 text-amber-900`,dark:`dark:bg-amber-950/55 dark:text-amber-200`},{light:`bg-cyan-100 text-cyan-800`,dark:`dark:bg-cyan-950/55 dark:text-cyan-200`},{light:`bg-indigo-100 text-indigo-800`,dark:`dark:bg-indigo-950/55 dark:text-indigo-200`},{light:`bg-fuchsia-100 text-fuchsia-800`,dark:`dark:bg-fuchsia-950/55 dark:text-fuchsia-200`},{light:`bg-teal-100 text-teal-800`,dark:`dark:bg-teal-950/55 dark:text-teal-200`}];function De(e){let t=0;for(let n=0;n<e.length;n+=1)t=Math.imul(31,t)+e.charCodeAt(n)|0;return Math.abs(t)}function Oe(e){let t=e.trim();if(!t)return`?`;let n=t.match(/[\p{L}\p{N}]/u);return n?n[0].toLocaleUpperCase(`en-US`):t[0]}function ke({name:e,className:t}){let n=Oe(e),r=D[De(e)%D.length];return(0,E.jsx)(`div`,{className:l(`flex size-11 shrink-0 items-center justify-center rounded-xl font-semibold tracking-tight shadow-surface`,`text-[1.05rem] ring-1 ring-inset ring-black/[0.06] dark:ring-white/[0.1]`,`transition-[transform,box-shadow] duration-200 ease-out group-hover:ring-black/[0.1] dark:group-hover:ring-white/[0.14]`,`group-hover:-translate-y-px`,r.light,r.dark,t),"aria-hidden":!0,children:n})}var Ae=`https://skillhub.cn`;function je(e){let t=e.trim();return t?`${Ae}/skills/${encodeURIComponent(t)}`:null}function Me(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function O(e){let t=[e.kind];return e.label?.trim()&&t.push(e.label.trim()),e.package?.trim()&&t.push(e.package.trim()),e.formula?.trim()&&t.push(e.formula.trim()),e.module?.trim()&&t.push(e.module.trim()),e.url?.trim()&&t.push(e.url.trim()),t.join(` · `)}function k(e){return{...e,enabled:e.enabled??!0,disableModelInvocation:e.disableModelInvocation??!1}}function A({label:e,children:t}){return t==null||t===!1?null:(0,E.jsxs)(`div`,{className:`mt-3 border-t border-edge-subtle pt-3 dark:border-edge/60`,children:[(0,E.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:e}),(0,E.jsx)(`div`,{className:`mt-1.5 min-w-0 text-sm text-fg`,children:t})]})}function Ne({preview:e,sk:t}){let n=e.metadata,r=e.toolConditions,i=!!r&&(r.requiresTools.length>0||r.requiresToolsets.length>0||r.fallbackForTools.length>0||r.fallbackForToolsets.length>0),a=n.requires,o=a&&((a.bins?.length??0)>0||(a.env?.length??0)>0||(a.anyBins?.length??0)>0),s=n.install?.filter(e=>e&&typeof e.kind==`string`)??[],c=e.requiredEnvVarNames?.filter(e=>e.trim())??[];return(0,E.jsxs)(`div`,{className:`space-y-6`,children:[(0,E.jsxs)(`section`,{"aria-labelledby":`skill-detail-summary-heading`,children:[(0,E.jsx)(`h3`,{id:`skill-detail-summary-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:t.detailSummaryHeading}),(0,E.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base px-4 py-3 dark:bg-surface-hover/25`,children:[n.emoji?.trim()?(0,E.jsx)(`p`,{className:`text-2xl leading-none`,"aria-hidden":!0,children:n.emoji.trim()}):null,(0,E.jsx)(`p`,{className:l(`text-sm leading-relaxed text-fg`,n.emoji?.trim()?`mt-2`:``),children:e.description}),e.disableModelInvocation?(0,E.jsx)(`p`,{className:`mt-3 rounded-lg border border-amber-200/80 bg-amber-50/90 px-3 py-2 text-xs leading-snug text-amber-950 dark:border-amber-900/50 dark:bg-amber-950/40 dark:text-amber-100`,children:t.detailNotInjectedNote}):null,(0,E.jsx)(A,{label:t.detailHomepageLabel,children:n.homepage?.trim()?(0,E.jsx)(`a`,{href:n.homepage.trim(),target:`_blank`,rel:`noopener noreferrer`,className:`break-all text-accent underline-offset-2 hover:underline`,children:n.homepage.trim()}):null}),(0,E.jsx)(A,{label:t.detailPlatformsLabel,children:n.os&&n.os.length>0?(0,E.jsx)(`span`,{className:`font-mono text-xs text-fg-muted`,children:n.os.join(`, `)}):null}),(0,E.jsx)(A,{label:t.detailRequiresLabel,children:o&&a?(0,E.jsxs)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-fg-muted`,children:[a.bins&&a.bins.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`text-fg`,children:[t.detailRequiresBins,`: `]}),a.bins.join(`, `)]}):null,a.env&&a.env.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`text-fg`,children:[t.detailRequiresEnv,`: `]}),(0,E.jsx)(`span`,{className:`font-mono text-xs`,children:a.env.join(`, `)})]}):null,a.anyBins&&a.anyBins.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`text-fg`,children:[t.detailRequiresAnyBins,`: `]}),a.anyBins.join(`, `)]}):null]}):null}),(0,E.jsx)(A,{label:t.detailInstallLabel,children:s.length>0?(0,E.jsx)(`ul`,{className:`list-inside list-decimal space-y-1.5 text-sm text-fg-muted`,children:s.map((e,t)=>(0,E.jsx)(`li`,{className:`[overflow-wrap:anywhere]`,children:(0,E.jsx)(`span`,{className:`text-fg`,children:O(e)})},e.id||`${e.kind}-${t}`))}):null}),(0,E.jsx)(A,{label:t.detailToolGatingLabel,children:i&&r?(0,E.jsxs)(`ul`,{className:`mt-1 space-y-2 text-sm text-fg-muted`,children:[r.requiresTools.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsRequiresList,`: `]}),r.requiresTools.join(`, `)]}):null,r.requiresToolsets.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsetsRequiresList,`: `]}),r.requiresToolsets.join(`, `)]}):null,r.fallbackForTools.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsFallbackList,`: `]}),r.fallbackForTools.join(`, `)]}):null,r.fallbackForToolsets.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsetsFallbackList,`: `]}),r.fallbackForToolsets.join(`, `)]}):null]}):null}),(0,E.jsx)(A,{label:t.detailEnvVarsLabel,children:c.length>0?(0,E.jsx)(`span`,{className:`font-mono text-xs text-fg-muted`,children:c.join(`, `)}):null})]})]}),(0,E.jsxs)(`section`,{"aria-labelledby":`skill-detail-instructions-heading`,children:[(0,E.jsx)(`h3`,{id:`skill-detail-instructions-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:t.detailInstructionsHeading}),e.bodyMarkdown.trim()?(0,E.jsx)(`div`,{className:`markdown-content min-w-0 break-words`,children:(0,E.jsx)(de,{content:e.bodyMarkdown})}):(0,E.jsx)(`p`,{className:`text-sm italic text-fg-muted`,children:t.detailNoInstructionsBody})]})]})}var j=(0,T.memo)(function({loading:e,onReloadClick:t,searchQuery:n,setSearchQuery:r,mainTab:i,sk:a,setPendingFile:o,setInstallOpen:s}){return(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,E.jsx)(u,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:e,title:a.reloadRuntime,"aria-label":a.reloadDiskAria,onClick:()=>void t(),children:(0,E.jsx)(b,{className:l(`size-4`,e&&`animate-spin`),strokeWidth:1.75})}),(0,E.jsxs)(`label`,{className:`relative flex min-h-9 min-w-0 max-w-sm cursor-text items-center rounded-pill border border-edge bg-surface-base py-1.5 pl-9 pr-3 shadow-surface dark:bg-surface-hover/40 sm:max-w-md`,children:[(0,E.jsx)(me,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-disabled`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`input`,{type:`text`,role:`searchbox`,enterKeyHint:`search`,value:n,onChange:e=>r(e.target.value),placeholder:i===`marketplace`?a.marketplaceSearchPackages:a.searchPlaceholder,autoComplete:`off`,spellCheck:!1,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent py-0.5 text-sm leading-normal text-fg caret-current placeholder:text-fg-disabled focus:border-0 focus:shadow-none focus:outline-none focus:ring-0 focus-visible:outline-none`})]}),(0,E.jsxs)(u,{type:`button`,variant:`primary`,className:`shrink-0 gap-2`,onClick:()=>{o(null),s(!0)},children:[(0,E.jsx)(_e,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),a.installCta]})]})});function Pe({checked:e,onChange:t}){return(0,E.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,className:l(`relative h-6 w-10 shrink-0 overflow-hidden rounded-full border border-edge p-0.5`,`transition-[border-color,background-color] duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`active:scale-[0.97] motion-reduce:transition-none motion-reduce:active:scale-100`,e?`bg-accent`:`bg-surface-hover`),onClick:()=>t(!e),children:(0,E.jsx)(`span`,{className:l(`pointer-events-none absolute left-0.5 top-1/2 block size-4 -translate-y-1/2 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`,`transition-transform duration-200 ease-out motion-reduce:transition-none`,e?`translate-x-5`:`translate-x-0`),"aria-hidden":!0})})}var M=`animate-pulse motion-reduce:animate-none rounded-md bg-surface-hover dark:bg-surface-active/50`;function N(){return(0,E.jsx)(`div`,{className:`flex h-full min-h-[10.5rem] flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 dark:border-edge-subtle`,"aria-hidden":!0,children:(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 items-start gap-3`,children:[(0,E.jsx)(`div`,{className:l(`size-11 shrink-0 rounded-xl`,M)}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,E.jsx)(`div`,{className:l(`h-4 min-w-0 flex-1`,M)}),(0,E.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[(0,E.jsx)(`div`,{className:l(`size-8 shrink-0 rounded-lg`,M)}),(0,E.jsx)(`div`,{className:l(`h-8 w-[4.5rem] shrink-0 rounded-lg`,M)})]})]}),(0,E.jsx)(`div`,{className:l(`h-3 w-full`,M)}),(0,E.jsx)(`div`,{className:l(`h-3 w-[92%]`,M)}),(0,E.jsxs)(`div`,{className:`mt-auto space-y-1 pt-0.5`,children:[(0,E.jsx)(`div`,{className:l(`h-3 w-full`,M)}),(0,E.jsx)(`div`,{className:l(`h-2.5 w-4/5`,M)})]})]})]})})}function P(){return(0,E.jsx)(N,{})}var Fe=new Set([`builtin`,`user`,`marketplace`]),Ie=new Set([`all`,`global`,`workspace`,`extra`]),Le=`mprov`,Re=[`business`,`creative`,`documents`,`engineering`,`tools`];function ze({vm:e}){let{sk:t,hasToken:n,catalog:r,loading:a,error:s,uploading:c,searchQuery:ee,setSearchQuery:te,actionFeedback:ne,mainTab:f,setMainTab:oe,setSourceFilter:se,builtinCategoryFilter:ce,setBuiltinCategoryFilter:le,installOpen:me,setInstallOpen:_e,pendingFile:_,setPendingFile:ve,dropActive:ye,setDropActive:b,confirmOpen:xe,setConfirmOpen:Ce,confirmId:we,setConfirmId:D,togglingSkillName:De,enabledOverride:Oe,detailOpen:Ae,setDetailOpen:O,detailSource:k,setDetailSource:A,detailTitle:M,setDetailTitle:Fe,detailMarkdown:Ie,setDetailMarkdown:Le,detailCatalogPreview:Re,setDetailCatalogPreview:ze,detailMarketplacePreview:Be,setDetailMarketplacePreview:F,detailLoading:Ve,detailError:I,setDetailError:He,marketSort:L,setMarketSort:Ue,marketPage:R,setMarketPage:We,mpLoading:z,mpError:B,mpPayload:V,installingMarketName:H,marketCategoryId:Ge,setMarketCategoryId:Ke,mpCategories:U,mpCategoriesError:qe,mpCategoriesLoading:W,marketBrowseProvider:Je,setMarketBrowseProvider:Ye,builtinTabStats:Xe,userTabStats:Ze,detailEnabled:Qe,filteredCatalog:$e,builtinCategories:G,categoryFilteredCatalog:K,filterLabel:et,inSettingsShell:q,categoryLabel:tt,onReloadClick:nt,openSkillDetail:rt,openMarketplaceDetail:J,onSkillToggle:Y,onInstallSubmit:X,onFileInputChange:it,onModalDragOver:at,onModalDragLeave:Z,onModalDrop:Q,sourceLabel:ot,runDelete:st,onMarketInstall:ct,isSkillInstalledByName:lt,usingSkillInChatName:ut,onUseSkillInChat:dt}=e,ft=pe(e=>e.setPageHeader),pt=pe(e=>e.clearPageHeader),$=(0,T.useMemo)(()=>(0,E.jsx)(j,{loading:a,onReloadClick:nt,searchQuery:ee,setSearchQuery:te,mainTab:f,sk:t,setPendingFile:ve,setInstallOpen:_e}),[a,nt,ee,te,f,t,ve,_e]);return(0,T.useLayoutEffect)(()=>!n||q?(pt(),()=>pt()):(ft({startExtra:null,main:null,end:$}),()=>pt()),[pt,n,q,ft,$]),n?(0,E.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,E.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[ne?(0,E.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:l(`rounded-xl border px-3 py-2 text-sm`,ne.kind===`success`?`border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900/40 dark:bg-emerald-950/40 dark:text-emerald-200`:`border-red-200 bg-red-50 text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`),children:ne.message}):s?(0,E.jsx)(`div`,{className:`rounded-xl border border-edge bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-edge dark:bg-red-950/40 dark:text-red-300`,role:`alert`,children:s}):null,(0,E.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,E.jsxs)(`div`,{className:`min-w-0`,children:[(0,E.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:t.title}),(0,E.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:t.tagline})]})}),q?(0,E.jsx)(`div`,{className:`flex flex-col gap-3 border-b border-edge-subtle pb-4 dark:border-edge-subtle sm:flex-row sm:flex-wrap sm:items-center sm:justify-end`,children:$}):null,(0,E.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,E.jsxs)(`div`,{className:`flex flex-col gap-3 border-b border-edge-subtle pb-3 sm:flex-row sm:items-center sm:justify-between dark:border-edge-subtle`,children:[(0,E.jsxs)(`div`,{className:`flex flex-wrap gap-x-1 gap-y-1`,role:`tablist`,"aria-label":t.skillsNavAria,children:[(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`marketplace`,className:l(`relative max-w-full rounded-md px-3 py-2 text-left text-sm font-medium transition-colors sm:text-center`,f===`marketplace`?`text-fg`:`text-fg-muted hover:text-fg`,f===`marketplace`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>oe(`marketplace`),children:t.tabMarketplace}),(0,E.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`builtin`,className:l(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,f===`builtin`?`text-fg`:`text-fg-muted hover:text-fg`,f===`builtin`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>oe(`builtin`),children:[t.tabBuiltin,(0,E.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,Xe.enabled,`/`,Xe.total,`)`]})]}),(0,E.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`user`,className:l(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,f===`user`?`text-fg`:`text-fg-muted hover:text-fg`,f===`user`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>oe(`user`),children:[t.tabUser,(0,E.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,Ze.enabled,`/`,Ze.total,`)`]})]})]}),(0,E.jsxs)(`div`,{className:l(`flex min-h-9 min-w-0 items-center gap-2`,f===`user`?`flex-nowrap overflow-x-auto pb-0.5 sm:justify-end`:`flex-wrap sm:justify-end`),children:[f===`user`?(0,E.jsxs)(Ee,{children:[(0,E.jsx)(Te,{asChild:!0,children:(0,E.jsxs)(`button`,{type:`button`,className:l(`inline-flex h-9 min-h-9 min-w-[9rem] shrink-0 items-center gap-1.5 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,h.transition,h.focusRingPanel),children:[(0,E.jsx)(m,{className:`size-3.5 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{children:et}),(0,E.jsx)(g,{className:`size-3.5 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})]})}),(0,E.jsx)(C,{children:(0,E.jsx)(w,{className:`z-50 min-w-[10rem] rounded-xl border border-edge bg-surface-panel p-1 shadow-popover dark:border-edge`,sideOffset:6,align:`end`,children:[`all`,`global`,`workspace`,`extra`].map(e=>(0,E.jsx)(S,{className:l(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>se(e),children:e===`all`?t.filterAll:e===`global`?t.filterGlobal:e===`workspace`?t.filterWorkspace:t.filterExtra},e))})})]}):null,f===`marketplace`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:`inline-flex h-9 shrink-0 rounded-lg border border-edge bg-surface-panel p-0.5 shadow-surface`,role:`group`,"aria-label":t.marketplaceBrowseSwitchAria,children:[`skillhub`,`store`].map(e=>{let n=Je===e;return(0,E.jsx)(`button`,{type:`button`,className:l(`rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,n?`bg-fg text-surface-panel dark:bg-fg dark:text-surface-base`:`text-fg-muted hover:text-fg`),"aria-pressed":n,onClick:()=>Ye(e),children:e===`skillhub`?t.marketplaceBrowseSkillhub:t.marketplaceBrowseStore},e)})}),(0,E.jsxs)(Ee,{children:[(0,E.jsx)(Te,{asChild:!0,children:(0,E.jsxs)(`button`,{type:`button`,className:l(`inline-flex h-9 min-h-9 min-w-[9rem] shrink-0 items-center gap-1.5 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,h.transition,h.focusRingPanel),children:[(0,E.jsx)(m,{className:`size-3.5 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{children:L===`newest`?t.marketplaceSortNewest:t.marketplaceSortDownloads}),(0,E.jsx)(g,{className:`size-3.5 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})]})}),(0,E.jsx)(C,{children:(0,E.jsxs)(w,{className:`z-50 min-w-[10rem] rounded-xl border border-edge bg-surface-panel p-1 shadow-popover dark:border-edge`,sideOffset:6,align:`end`,children:[(0,E.jsx)(S,{className:l(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>Ue(`downloads`),children:t.marketplaceSortDownloads}),(0,E.jsx)(S,{className:l(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>Ue(`newest`),children:t.marketplaceSortNewest})]})})]})]}):null,f===`builtin`?(0,E.jsx)(`div`,{className:`h-9 min-w-[9rem] shrink-0`,"aria-hidden":!0}):null]})]}),f===`marketplace`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:l(`-mx-1 flex min-h-[2.75rem] items-center gap-2 overflow-x-auto px-1 pb-1 pt-0.5 [scrollbar-width:thin]`,!W&&U.length===0&&`min-h-0 pb-0 pt-0`),role:U.length>0||W?`tablist`:void 0,"aria-label":U.length>0||W?t.marketplaceCategoriesAria:void 0,children:U.length>0?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":Ge===``,className:l(`shrink-0 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,Ge===``?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),onClick:()=>Ke(``),children:t.marketplaceCategoryAll}),U.map(e=>{let t=Ge===e.id;return(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:l(`max-w-[14rem] shrink-0 truncate rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,t?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),title:e.label,onClick:()=>Ke(e.id),children:e.label},e.id)})]}):W?(0,E.jsx)(`div`,{className:`flex gap-2 px-1`,"aria-hidden":!0,children:Array.from({length:5},(e,t)=>(0,E.jsx)(`div`,{className:`h-8 w-[4.5rem] shrink-0 animate-pulse rounded-full bg-surface-hover motion-reduce:animate-none dark:bg-surface-active/50`},t))}):null}),qe?(0,E.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,role:`alert`,children:qe}):null,!V&&!B?(0,E.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,"aria-busy":`true`,"aria-label":t.loading,children:Array.from({length:6},(e,t)=>(0,E.jsx)(N,{},t))}):B&&!V?(0,E.jsx)(`div`,{className:`rounded-xl border border-edge bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-edge dark:bg-red-950/40 dark:text-red-300`,role:`alert`,children:B}):V?(0,E.jsxs)(`div`,{className:`relative`,children:[z?(0,E.jsx)(`div`,{className:`pointer-events-none absolute inset-0 z-[1] flex justify-center bg-surface-panel/40 pt-[min(28vh,7.5rem)] backdrop-blur-[1px] motion-reduce:backdrop-blur-none dark:bg-surface-base/35`,"aria-busy":`true`,"aria-label":t.loading,children:(0,E.jsx)(i,{className:`size-8 shrink-0 animate-spin text-accent motion-reduce:animate-none`,strokeWidth:2,"aria-hidden":!0})}):null,V.items.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.marketplaceEmpty}):(0,E.jsx)(`div`,{className:l(`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,z&&`pointer-events-none opacity-[0.52] motion-reduce:opacity-100`),children:V.items.map(e=>{let n=lt(e.id),r=H===e.id,i=Je===`skillhub`?je(e.id):null;return(0,E.jsx)(`article`,{className:l(`group flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`,`transition-colors hover:border-accent/40 hover:bg-surface-hover`,`dark:border-edge-subtle`),children:(0,E.jsx)(`div`,{role:`button`,tabIndex:0,className:l(`flex min-h-0 flex-1 cursor-pointer flex-col rounded-lg text-left outline-none`,h.focusRingPanel),"aria-labelledby":`mp-skill-title-${e.id}`,onClick:t=>{let n=t.target;n.closest(`a[href]`)||n.closest(`button`)||J(e.id,e.name)},onKeyDown:t=>{let n=t.target;n.closest(`a[href]`)||n.closest(`button`)||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),J(e.id,e.name))},children:(0,E.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,E.jsx)(ke,{name:e.id}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,E.jsx)(`h3`,{id:`mp-skill-title-${e.id}`,className:`min-w-0 flex-1 truncate text-[15px] font-semibold leading-snug tracking-tight text-fg`,children:e.name}),(0,E.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[i?(0,E.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:l(`inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-edge bg-surface-panel text-fg-muted`,`hover:bg-surface-hover hover:text-fg dark:border-edge`,h.focusRingPanel),"aria-label":t.marketplaceOpenOnSkillhubAria,title:t.marketplaceOpenOnSkillhub,children:(0,E.jsx)(ae,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0})}):null,(0,E.jsx)(`div`,{className:`inline-flex shrink-0`,onClick:e=>e.stopPropagation(),children:(0,E.jsx)(u,{type:`button`,variant:`secondary`,className:`h-8 shrink-0 whitespace-nowrap px-2.5 text-xs font-medium`,disabled:r||z,onClick:()=>void ct(e.id),children:r?t.uploading:n?t.marketplaceReinstall:t.marketplaceInstall})})]})]}),(0,E.jsx)(`p`,{className:`line-clamp-2 text-sm leading-relaxed text-fg-muted`,title:e.description?e.description:void 0,children:e.description||`—`}),(0,E.jsxs)(`div`,{className:`mt-auto min-h-[2.625rem] space-y-1 text-[11px] leading-snug text-fg-muted`,children:[(0,E.jsxs)(`p`,{className:`line-clamp-1`,title:`${t.marketplaceAuthor}: ${e.author.username} · ${t.marketplaceDownloads}: ${e.downloads}${e.stars!=null&&e.stars>0?` · ★${e.stars}`:``}${n?` · ${t.marketplaceInstalled}`:``}`,children:[(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:t.marketplaceAuthor}),` `,(0,E.jsx)(`span`,{className:`text-fg`,children:e.author.username}),(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,E.jsxs)(`span`,{children:[t.marketplaceDownloads,`: `,e.downloads]}),e.stars!=null&&e.stars>0?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,E.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-fg-muted`,children:[(0,E.jsx)(fe,{className:`size-3 shrink-0 text-amber-600 dark:text-amber-400`,strokeWidth:2,"aria-hidden":!0}),e.stars]})]}):null,n?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,E.jsx)(`span`,{className:`text-emerald-700 dark:text-emerald-400`,children:t.marketplaceInstalled})]}):null]}),(0,E.jsxs)(`p`,{className:`line-clamp-1 min-h-[1.125rem] font-mono text-[10px] text-fg-subtle`,title:[e.latestVersion?`${t.marketplaceVersion}: ${e.latestVersion}`:``,e.sourceLabel?`${t.marketplaceSource}: ${e.sourceLabel}`:``].filter(Boolean).join(` · `)||void 0,children:[e.latestVersion?(0,E.jsxs)(E.Fragment,{children:[t.marketplaceVersion,`: `,e.latestVersion]}):null,e.latestVersion&&e.sourceLabel?(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}):null,e.sourceLabel?(0,E.jsxs)(E.Fragment,{children:[t.marketplaceSource,`: `,e.sourceLabel]}):null]})]})]})]})})},e.id)})}),V.items.length>0?(0,E.jsxs)(`div`,{className:`mt-3 flex flex-col items-center justify-between gap-3 sm:flex-row`,children:[(0,E.jsx)(`p`,{className:`text-center text-xs text-fg-muted sm:text-left`,children:Me(t.marketplacePageStatus,{page:V.meta.page,totalPages:V.meta.totalPages,total:V.meta.total})}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsxs)(u,{type:`button`,variant:`ghost`,className:`h-9 gap-1 px-2`,disabled:z||R<=1,"aria-label":t.marketplacePagePrev,onClick:()=>We(e=>Math.max(1,e-1)),children:[(0,E.jsx)(ge,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{className:`sr-only sm:not-sr-only`,children:t.marketplacePagePrev})]}),(0,E.jsxs)(u,{type:`button`,variant:`ghost`,className:`h-9 gap-1 px-2`,disabled:z||R>=V.meta.totalPages,"aria-label":t.marketplacePageNext,onClick:()=>We(e=>Math.min(V.meta.totalPages,e+1)),children:[(0,E.jsx)(`span`,{className:`sr-only sm:not-sr-only`,children:t.marketplacePageNext}),(0,E.jsx)(be,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})]})]})]}):null]}):null]}):(0,E.jsx)(E.Fragment,{children:a?(0,E.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,"aria-busy":`true`,"aria-label":t.loading,children:Array.from({length:6},(e,t)=>(0,E.jsx)(P,{},t))}):r.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.empty}):$e.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.noSearchResults}):(0,E.jsxs)(E.Fragment,{children:[G.length>1?(0,E.jsxs)(`div`,{role:`tablist`,"aria-label":t.marketplaceCategoriesAria,className:`-mx-1 flex gap-2 overflow-x-auto px-1 pb-1 pt-0.5 [scrollbar-width:thin]`,children:[(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":ce===``,className:l(`shrink-0 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,ce===``?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),onClick:()=>le(``),children:t.marketplaceCategoryAll}),G.map(e=>{let t=ce===e;return(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:l(`max-w-[14rem] shrink-0 truncate rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,t?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),title:tt(e),onClick:()=>le(e),children:tt(e)},e)})]}):null,K.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.noSearchResults}):(0,E.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:K.map(e=>(0,E.jsx)(`article`,{className:l(`group flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`,`transition-colors hover:border-accent/40 hover:bg-surface-hover`,`dark:border-edge-subtle`),children:(0,E.jsx)(`div`,{role:`button`,tabIndex:0,className:l(`flex min-h-0 flex-1 cursor-pointer flex-col rounded-lg text-left outline-none`,h.focusRingPanel),"aria-labelledby":`catalog-skill-title-${e.directoryId}`,onClick:t=>{t.target.closest(`button`)||rt(e)},onKeyDown:t=>{t.target.closest(`button`)||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),rt(e))},children:(0,E.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,E.jsx)(ke,{name:e.name}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,E.jsx)(`h3`,{id:`catalog-skill-title-${e.directoryId}`,className:`min-w-0 flex-1 truncate text-[15px] font-semibold leading-snug tracking-tight text-fg`,children:e.name}),(0,E.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,onClick:e=>e.stopPropagation(),children:[(0,E.jsx)(`div`,{className:`inline-flex shrink-0`,children:(0,E.jsx)(Pe,{checked:Oe[e.name]??e.enabled,onChange:t=>void Y(e.name,t)})}),e.managed?(0,E.jsxs)(Ee,{children:[(0,E.jsx)(Te,{asChild:!0,children:(0,E.jsx)(`button`,{type:`button`,className:l(`inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-edge bg-surface-panel text-fg-muted`,`hover:bg-surface-hover hover:text-fg dark:border-edge`,h.focusRingPanel),"aria-label":t.col.actions,children:(0,E.jsx)(he,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0})})}),(0,E.jsx)(C,{children:(0,E.jsx)(w,{className:`z-50 min-w-[8rem] rounded-xl border border-edge bg-surface-panel p-1 shadow-popover dark:border-edge`,sideOffset:4,align:`end`,children:(0,E.jsxs)(S,{className:l(`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-red-600 outline-none`,`hover:bg-red-50 data-[highlighted]:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/40`),onSelect:()=>{D(e.directoryId),Ce(!0)},children:[(0,E.jsx)(Se,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t.delete]})})})]}):null]})]}),(0,E.jsx)(`p`,{className:`line-clamp-2 text-sm leading-relaxed text-fg-muted`,title:e.description?e.description:void 0,children:e.description||`—`}),f!==`builtin`||e.managed?(0,E.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 text-[11px] text-fg-subtle`,children:[f===`builtin`?null:(0,E.jsx)(`span`,{className:`rounded-md bg-surface-hover/60 px-2 py-0.5 dark:bg-surface-active/50`,children:ot(e.source)}),e.managed?(0,E.jsxs)(`span`,{className:`rounded-md bg-surface-hover/60 px-2 py-0.5 dark:bg-surface-active/50`,children:[t.col.managed,`: `,t.yes]}):null,e.hub?(0,E.jsxs)(`span`,{className:`max-w-full break-all rounded-md bg-surface-hover/60 px-2 py-0.5 font-mono text-[10px] leading-snug dark:bg-surface-active/50 line-clamp-2`,title:`${e.hub.source}${e.hub.ref?`\nref: ${e.hub.ref}`:``}\nupdated: ${e.hub.updatedAt}`,children:[t.hubRemote,` ·`,` `,e.hub.kind===`git`?t.hubKindGit:t.hubKindArchive,` ·`,` `,e.hub.source.length>48?`${e.hub.source.slice(0,48)}…`:e.hub.source]}):null]}):null]})]})})},`${e.directoryId}-${e.path}`))})]})})]})]}),(0,E.jsx)(re,{open:Ae,onOpenChange:e=>{O(e),e||(A(`catalog`),Le(``),ze(null),F(null),He(null),Fe(``))},children:(0,E.jsxs)(d,{children:[(0,E.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,E.jsxs)(y,{className:l(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] flex h-[min(88vh,44rem)] max-h-[min(92vh,56rem)] w-[min(100%-2rem,min(92vw,56rem))]`,`-translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-float dark:border-edge`),children:[(0,E.jsxs)(`div`,{className:`group flex min-h-[3.25rem] shrink-0 items-center gap-3 border-b border-edge px-4 py-3`,children:[(0,E.jsx)(ke,{name:M||`?`}),(0,E.jsx)(p,{className:`min-w-0 flex-1 truncate text-base font-semibold text-fg`,children:M||`—`}),(0,E.jsx)(ie,{asChild:!0,children:(0,E.jsx)(`button`,{type:`button`,className:l(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,h.focusRingPanel),"aria-label":t.detailCloseAria,children:(0,E.jsx)(x,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0})})})]}),(0,E.jsxs)(`div`,{className:`flex min-h-[3.25rem] shrink-0 items-start gap-2 border-b border-blue-200/80 bg-blue-50/95 px-4 py-2.5 text-sm text-fg dark:border-blue-900/50 dark:bg-blue-950/45`,children:[(0,E.jsx)(o,{className:`mt-0.5 size-4 shrink-0 text-blue-600 dark:text-blue-400`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`p`,{className:`min-w-0 leading-relaxed`,children:k===`store`&&Be?t.detailModalBanner:k===`store`?t.detailModalBannerStore:t.detailModalBanner})]}),(0,E.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-auto px-4 py-4`,children:Ve?(0,E.jsx)(`div`,{className:`flex h-full min-h-[14rem] flex-col gap-2.5 py-1`,"aria-busy":`true`,"aria-label":t.loading,children:Array.from({length:10},(e,t)=>(0,E.jsx)(`div`,{className:l(`h-4 animate-pulse rounded-md bg-surface-hover dark:bg-surface-active/50`,t%3==0?`w-[92%]`:t%3==1?`w-full`:`w-4/5`)},t))}):I?(0,E.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:I}):k===`catalog`&&Re?(0,E.jsx)(Ne,{preview:Re,sk:t}):k===`store`&&Be?(0,E.jsx)(Ne,{preview:Be,sk:t}):(0,E.jsx)(`div`,{className:`markdown-content min-w-0 break-words`,children:(0,E.jsx)(de,{content:Ie})})}),(0,E.jsx)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:k===`store`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(u,{type:`button`,variant:`ghost`,onClick:()=>O(!1),children:t.cancel}),(0,E.jsx)(u,{type:`button`,variant:`secondary`,disabled:!M||Ve||ut===M||H===M,onClick:()=>void dt(),children:ut===M?t.previewUseInChatBusy:t.previewUseInChat}),(0,E.jsx)(u,{type:`button`,variant:lt(M)?`secondary`:`primary`,disabled:!M||H===M,onClick:()=>{M&&ct(M,{useDetailProvider:!0})},children:H===M?t.uploading:lt(M)?t.marketplaceReinstall:t.marketplaceInstall})]}):(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(u,{type:`button`,variant:`secondary`,disabled:!M||Ve||ut===M||De===M,onClick:()=>void dt(),children:ut===M?t.previewUseInChatBusy:t.previewUseInChat}),(0,E.jsx)(u,{type:`button`,variant:`primary`,disabled:!M||De===M,onClick:async()=>{M&&await Y(M,!Qe)&&O(!1)},children:Qe?t.detailModalDisable:t.detailModalEnable})]})})]})]})}),(0,E.jsx)(re,{open:me,onOpenChange:e=>{_e(e),e||(ve(null),b(!1))},children:(0,E.jsxs)(d,{children:[(0,E.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,E.jsxs)(y,{className:l(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] max-h-[min(100vh-2rem,44rem)] w-[min(100%-2rem,min(92vw,48rem))] -translate-x-1/2 -translate-y-1/2 overflow-y-auto`,`rounded-2xl border border-edge bg-surface-panel p-6 shadow-float dark:border-edge`),children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,E.jsx)(p,{className:`text-base font-semibold text-fg`,children:t.installModalTitle}),(0,E.jsx)(ie,{asChild:!0,children:(0,E.jsxs)(`button`,{type:`button`,className:l(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,h.focusRingPanel),"aria-label":t.installClose,children:[(0,E.jsx)(x,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{className:`sr-only`,children:t.installClose})]})})]}),(0,E.jsxs)(`label`,{className:l(`mt-4 flex min-h-[11rem] cursor-pointer flex-col items-center justify-center gap-3 rounded-xl border-2 border-dashed px-6 py-12 text-center transition-colors`,ye?`border-accent bg-accent-soft/60 dark:bg-blue-950/40`:`border-edge bg-surface-base dark:bg-surface-hover/30`),onDragLeave:Z,onDragOver:at,onDrop:Q,children:[(0,E.jsx)(`input`,{type:`file`,accept:`.zip,.md,application/zip,text/markdown`,className:`sr-only`,"aria-label":t.installModalDropHint,disabled:c,onChange:it}),(0,E.jsx)(ue,{className:`size-12 text-fg-subtle`,strokeWidth:1.25,"aria-hidden":!0}),(0,E.jsx)(`span`,{className:`text-sm text-fg-muted`,children:t.installModalDropHint}),_?(0,E.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:_.name}):null]}),(0,E.jsxs)(`div`,{className:`mt-5 space-y-2`,children:[(0,E.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:t.installModalReqTitle}),(0,E.jsxs)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-fg-muted`,children:[(0,E.jsx)(`li`,{children:t.installModalReq1}),(0,E.jsx)(`li`,{children:t.installModalReq2})]})]}),(0,E.jsx)(`button`,{type:`button`,disabled:!_||c,className:l(`mt-6 flex w-full items-center justify-center rounded-xl py-3 text-sm font-semibold`,`transition-colors`,!_||c?`cursor-not-allowed bg-surface-active text-fg-disabled`:`bg-accent text-white hover:bg-accent-hover`,h.focusRingPanel),onClick:()=>void X(),children:c?t.uploading:t.installAction})]})]})}),(0,E.jsx)(re,{open:xe,onOpenChange:e=>{Ce(e),e||D(null)},children:(0,E.jsxs)(d,{children:[(0,E.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,E.jsxs)(y,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`,children:[(0,E.jsx)(p,{className:`text-base font-semibold text-fg`,children:t.deleteTitle}),(0,E.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:we?Me(t.deleteMessage,{id:we}):``}),(0,E.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,E.jsx)(u,{type:`button`,variant:`secondary`,onClick:()=>Ce(!1),children:t.cancel}),(0,E.jsx)(u,{type:`button`,variant:`primary`,className:`bg-red-600 hover:bg-red-700`,onClick:()=>void st(),children:t.deleteConfirm})]})]})]})})]}):(0,E.jsx)(`div`,{className:`mx-auto w-full max-w-app-main px-4 py-16 text-center text-sm text-fg-muted sm:px-8`,children:t.needToken})}async function Be(t){let n=t.name.toLowerCase();if(n.endsWith(`.zip`))return t;if(n.endsWith(`skill.md`)){let n=(await r(async()=>{let{default:t}=await import(`./jszip.min-DVUfmhpE.js`).then(t=>e(t.default,1));return{default:t}},__vite__mapDeps([0,1]))).default,i=new n;i.file(`SKILL.md`,await t.arrayBuffer());let a=await i.generateAsync({type:`blob`,compression:`DEFLATE`}),o=t.name.replace(/\.md$/i,``).replace(/\s+/g,`-`)||`skill`;return new File([a],`${o}.zip`,{type:`application/zip`})}throw Error(`invalid`)}function F(){let e=s(e=>e.language),t=ve(e).skills,n=!!Ce(e=>e.token),r=ye(),[i,o]=_(),l=i.get(Le),u=l===`store`||l===`skillhub`?l:null,[d,re]=(0,T.useState)([]),[ie,p]=(0,T.useState)(!1),[ae,m]=(0,T.useState)(null),[h,ue]=(0,T.useState)(!1),de=i.get(`q`)??``,fe=i.get(`tab`),pe=i.get(`source`),me=Fe.has(fe)?fe:`marketplace`,he=Ie.has(pe)?pe:`all`,[g,ge]=(0,T.useState)(de),[_e,v]=(0,T.useState)(null),[y,be]=(0,T.useState)(me),[b,Se]=(0,T.useState)(he),[x,Te]=(0,T.useState)(``),[Ee,S]=(0,T.useState)(!1),[C,w]=(0,T.useState)(null),[E,D]=(0,T.useState)(!1),[De,Oe]=(0,T.useState)(!1),[ke,Ae]=(0,T.useState)(null),[je,Me]=(0,T.useState)(null),[O,A]=(0,T.useState)({}),[Ne,j]=(0,T.useState)(!1),[Pe,M]=(0,T.useState)(`catalog`),[N,P]=(0,T.useState)(``),[ze,F]=(0,T.useState)(``),[Ve,I]=(0,T.useState)(null),[He,L]=(0,T.useState)(null),[Ue,R]=(0,T.useState)(!1),[We,z]=(0,T.useState)(null),[B,V]=(0,T.useState)(`downloads`),[H,Ge]=(0,T.useState)(1),[Ke,U]=(0,T.useState)(!1),[qe,W]=(0,T.useState)(null),[Je,Ye]=(0,T.useState)(null),[Xe,Ze]=(0,T.useState)(null),[Qe,$e]=(0,T.useState)(null),[G,K]=(0,T.useState)(``),[et,q]=(0,T.useState)([]),[tt,nt]=(0,T.useState)(null),[rt,J]=(0,T.useState)(!1),[Y,X]=(0,T.useState)(null),it=(0,T.useRef)(null),at=(0,T.useRef)(null),Z=(0,T.useCallback)(async n=>{let r=n?.silent===!0;r||p(!0),m(null);try{return re((await le(e===`en`?void 0:e)).catalog.map(k)),{ok:!0}}catch(e){let n=e instanceof Error?e.message:t.loadFailed;return m(n),{ok:!1,message:n}}finally{r||p(!1)}},[e,t.loadFailed]);(0,T.useEffect)(()=>{n&&Z()},[n,Z]),(0,T.useEffect)(()=>{if(!n){X(null),it.current=null;return}u&&X(u)},[n,u]),(0,T.useEffect)(()=>{if(!n||u!=null)return;let e=!1;return ce().then(t=>{e||X(e=>e??t.provider)}).catch(()=>{e||X(e=>e??`skillhub`)}),()=>{e=!0}},[n,u]),(0,T.useEffect)(()=>{let e=i.get(`q`)??``,t=i.get(`tab`),n=i.get(`source`),r=Fe.has(t)?t:`marketplace`,a=Ie.has(n)?n:`all`;ge(t=>t===e?t:e),be(e=>e===r?e:r),Se(e=>e===a?e:a);let o=i.get(`mcat`)??``;K(r===`marketplace`?e=>e===o?e:o:``)},[i]),(0,T.useEffect)(()=>{y===`marketplace`&&Ge(1)},[g,B,y,G,Y]),(0,T.useEffect)(()=>{if(y!==`marketplace`||!Y){at.current=Y;return}let e=at.current;at.current=Y,e!=null&&e!==Y&&K(``)},[y,Y]),(0,T.useLayoutEffect)(()=>{!n||y!==`marketplace`||U(!0)},[n,y,G,H,B,g,Y]),(0,T.useLayoutEffect)(()=>{!n||y!==`marketplace`||J(!0)},[n,y,Y]),(0,T.useEffect)(()=>{y!==`marketplace`&&(q([]),nt(null),J(!1))},[y]),(0,T.useEffect)(()=>{if(!n||y!==`marketplace`||!Y)return;let e=!1;return W(null),ee({q:g.trim()||void 0,page:H,pageSize:20,sort:B,category:G.trim()||void 0,provider:Y}).then(t=>{e||Ye(t)}).catch(n=>{e||(W(n instanceof Error?n.message:t.marketplaceLoadFailed),Ye(null))}).finally(()=>{e||U(!1)}),()=>{e=!0}},[n,y,G,H,B,g,t.marketplaceLoadFailed,Y]),(0,T.useEffect)(()=>{if(!n||y!==`marketplace`||!Y)return;let e=!1;return nt(null),we({provider:Y}).then(t=>{e||q(t.items)}).catch(n=>{e||(q([]),nt(n instanceof Error?n.message:t.marketplaceCategoriesFailed))}).finally(()=>{e||J(!1)}),()=>{e=!0,J(!1)}},[n,y,t.marketplaceCategoriesFailed,Y]),(0,T.useEffect)(()=>{!G.trim()||et.length===0||et.some(e=>e.id===G)||K(``)},[et,G]),(0,T.useEffect)(()=>{o(e=>{let t=new URLSearchParams(e),n=g.trim();return n?t.set(`q`,n):t.delete(`q`),y===`marketplace`?t.delete(`tab`):t.set(`tab`,y),b===`all`?t.delete(`source`):t.set(`source`,b),y===`marketplace`&&G.trim()?t.set(`mcat`,G.trim()):t.delete(`mcat`),y===`marketplace`&&Y?t.set(Le,Y):t.delete(Le),t.toString()===e.toString()?e:t},{replace:!0})},[y,G,Y,g,o,b]);let Q=(0,T.useCallback)((e,t,n=5e3)=>{v({kind:e,message:t}),window.setTimeout(()=>v(null),n)},[]),ot=(0,T.useCallback)(async n=>{M(`catalog`),j(!0),P(n.name),F(``),I(null),L(null),z(null),R(!0);try{let t=await se(n.name,e===`en`?void 0:e);I(t),P(t.name)}catch(e){I(null),z(e instanceof Error?e.message:t.detailLoadFailed)}finally{R(!1)}},[e,t.detailLoadFailed]),st=(0,T.useCallback)(async(e,n)=>{let r=Y;if(r){it.current=r,M(`store`),j(!0),P(n?.trim()||e),F(``),I(null),L(null),z(null),R(!0);try{let n=await a(e,{provider:r});if(P(n.name),n.skillDocPreview)L(n.skillDocPreview),F(``);else{L(null);let e=n.readme?.trim();e?F(e):n.description?.trim()?F(`## ${n.name}\n\n${n.description.trim()}`):F(`*${t.marketplaceNoReadme}*`)}}catch(e){L(null),z(e instanceof Error?e.message:t.detailLoadFailed)}finally{R(!1)}}},[Y,t.detailLoadFailed,t.marketplaceNoReadme]),ct=(0,T.useCallback)(async(e,n)=>{Me(e),A(t=>({...t,[e]:n})),v(null);try{return await ne(e,n),await Z({silent:!0}),!0}catch(n){return A(t=>{let{[e]:n,...r}=t;return r}),Q(`error`,n instanceof Error?n.message:t.skillToggleFailed),!1}finally{Me(null),A(t=>{let{[e]:n,...r}=t;return r})}},[Z,Q,t.skillToggleFailed]),lt=(0,T.useCallback)(async()=>{v(null),p(!0),m(null);try{await xe()}catch(e){m(e instanceof Error?e.message:t.reloadFailed),p(!1);return}await Z()},[Z,t.reloadFailed]),ut=(0,T.useMemo)(()=>{let e=d.filter(e=>e.source===`builtin`);return{total:e.length,enabled:e.filter(e=>O[e.name]??e.enabled).length}},[d,O]),dt=(0,T.useMemo)(()=>{let e=d.filter(e=>e.source!==`builtin`);return{total:e.length,enabled:e.filter(e=>O[e.name]??e.enabled).length}},[d,O]),ft=(0,T.useMemo)(()=>N?d.find(e=>e.name===N):void 0,[d,N]),pt=ft==null?!0:O[N]??ft.enabled,$=(0,T.useMemo)(()=>{let e=g.trim().toLowerCase(),t=d;return y===`builtin`?t=t.filter(e=>e.source===`builtin`):(t=t.filter(e=>e.source!==`builtin`),b!==`all`&&(t=t.filter(e=>e.source===b))),e?t.filter(t=>[t.name,t.description,t.directoryId,t.path,t.source,t.hub?.source,t.hub?.ref].filter(Boolean).join(` `).toLowerCase().includes(e)):t},[d,g,y,b]),mt=(0,T.useMemo)(()=>{let e=new Set,t=[];for(let n of $){let r=n.category;!r||e.has(r)||(e.add(r),t.push(r))}return t.sort((e,t)=>{let n=Re.indexOf(e),r=Re.indexOf(t);return n>=0&&r>=0?n-r:n>=0?-1:r>=0?1:e.localeCompare(t)})},[$]),ht=(0,T.useCallback)(e=>t.categoryLabel?.[e]||e,[t.categoryLabel]),gt=(0,T.useMemo)(()=>x?$.filter(e=>e.category===x):$,[$,x]),_t=async e=>{v(null),ue(!0),m(null);try{let n;try{n=await Be(e)}catch{m(t.invalidFile),Q(`error`,t.invalidFile);return}await te(n,{overwrite:!0}),await Z(),Q(`success`,t.installSuccess),S(!1),w(null),be(`user`)}catch(e){m(e instanceof Error?e.message:t.uploadFailed),Q(`error`,e instanceof Error?e.message:t.uploadFailed)}finally{ue(!1)}},vt=()=>{C&&_t(C)},yt=e=>{let t=e.target.files?.[0];e.target.value=``,t&&w(t)},bt=e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer.types.includes(`Files`)&&(D(!0),e.dataTransfer.dropEffect=`copy`)},xt=e=>{let t=e.currentTarget,n=e.relatedTarget;n&&t.contains(n)||D(!1)},St=e=>{e.preventDefault(),e.stopPropagation(),D(!1);let t=e.dataTransfer?.files?.[0];t&&w(t)},Ct=e=>{switch(e){case`builtin`:return t.source.builtin;case`workspace`:return t.source.workspace;case`global`:return t.source.global;case`extra`:return t.source.extra;default:return e}},wt=async()=>{let e=ke;if(Oe(!1),Ae(null),e){v(null);try{await oe(e),await Z()}catch(e){m(e instanceof Error?e.message:t.deleteFailed)}}},Tt=(0,T.useCallback)(e=>d.some(t=>t.name===e),[d]),Et=(0,T.useCallback)(async()=>{let e=N.trim();if(!e)return;v(null);let n=Pe===`store`&&!Tt(e);n&&$e(e);try{if(n){let t=it.current??Y;await c({name:e,overwrite:!1,...t?{provider:t}:{}}),await Z({silent:!0})}j(!1),r(`/chat/new?skill=${encodeURIComponent(e)}`)}catch(e){Q(`error`,e instanceof Error?e.message:t.uploadFailed)}finally{$e(null)}},[N,Pe,Tt,Z,r,Q,t.uploadFailed,Y]),Dt=(0,T.useCallback)(async(e,n)=>{let r=Tt(e);if(!(r&&!window.confirm(t.marketplaceReinstallConfirm))){v(null),Ze(e);try{let i=n?.useDetailProvider?it.current??Y:Y;await c({name:e,overwrite:r,...i?{provider:i}:{}}),await Z({silent:!0}),Q(`success`,t.installSuccess),j(!1),be(`user`)}catch(e){Q(`error`,e instanceof Error?e.message:t.uploadFailed)}finally{Ze(null)}}},[Tt,Z,Y,Q,t.installSuccess,t.marketplaceReinstallConfirm,t.uploadFailed]),Ot=b===`all`?t.filterAll:b===`global`?t.filterGlobal:b===`workspace`?t.filterWorkspace:t.filterExtra,{pathname:kt}=f();return{sk:t,hasToken:n,catalog:d,loading:ie,error:ae,uploading:h,searchQuery:g,setSearchQuery:ge,actionFeedback:_e,mainTab:y,setMainTab:be,sourceFilter:b,setSourceFilter:Se,builtinCategoryFilter:x,setBuiltinCategoryFilter:Te,installOpen:Ee,setInstallOpen:S,pendingFile:C,setPendingFile:w,dropActive:E,setDropActive:D,confirmOpen:De,setConfirmOpen:Oe,confirmId:ke,setConfirmId:Ae,togglingSkillName:je,enabledOverride:O,detailOpen:Ne,setDetailOpen:j,detailSource:Pe,setDetailSource:M,detailTitle:N,setDetailTitle:P,detailMarkdown:ze,setDetailMarkdown:F,detailCatalogPreview:Ve,setDetailCatalogPreview:I,detailMarketplacePreview:He,setDetailMarketplacePreview:L,detailLoading:Ue,detailError:We,setDetailError:z,marketSort:B,setMarketSort:V,marketPage:H,setMarketPage:Ge,mpLoading:Ke,mpError:qe,mpPayload:Je,installingMarketName:Xe,usingSkillInChatName:Qe,onUseSkillInChat:Et,marketCategoryId:G,setMarketCategoryId:K,mpCategories:et,mpCategoriesError:tt,mpCategoriesLoading:rt,marketBrowseProvider:Y,setMarketBrowseProvider:X,builtinTabStats:ut,userTabStats:dt,detailEnabled:pt,filteredCatalog:$,builtinCategories:mt,categoryFilteredCatalog:gt,filterLabel:Ot,inSettingsShell:kt.startsWith(`/settings/`),categoryLabel:ht,onReloadClick:lt,openSkillDetail:ot,openMarketplaceDetail:st,onSkillToggle:ct,onInstallSubmit:vt,onFileInputChange:yt,onModalDragOver:bt,onModalDragLeave:xt,onModalDrop:St,sourceLabel:Ct,runDelete:wt,onMarketInstall:Dt,isSkillInstalledByName:Tt}}function Ve(){return(0,E.jsx)(ze,{vm:F()})}export{Ve as SkillsPage};
3
- //# sourceMappingURL=skills-page-vObv6AB7.js.map
2
+ import{i as e}from"./rolldown-runtime-DWdDZTNf.js";import{i as t,t as n}from"./vendor-react-DbimaAId.js";import{Cn as r}from"./vendor-codemirror-CXAvob9m.js";import{Ar as i,B as a,Br as o,Cn as s,G as c,H as ee,J as te,K as ne,Ln as l,Mn as u,Mt as d,Nt as re,Oi as f,Ot as ie,Pt as p,Qr as ae,R as oe,U as se,V as ce,W as le,Wr as m,X as h,Yr as ue,Z as de,Zn as fe,_n as pe,cr as me,ei as he,gi as g,hi as ge,hr as _e,ji as _,jn as ve,jt as v,ki as ye,kt as y,mi as be,pr as b,q as xe,qn as Se,vn as Ce,z as we,zn as x}from"./index-DvMI6Vqn.js";import{a as Te,i as Ee,n as S,r as C,t as w}from"./dist-CEmPWsYK.js";var T=e(t(),1),E=n(),D=[{light:`bg-sky-100 text-sky-800`,dark:`dark:bg-sky-950/55 dark:text-sky-200`},{light:`bg-violet-100 text-violet-800`,dark:`dark:bg-violet-950/55 dark:text-violet-200`},{light:`bg-emerald-100 text-emerald-800`,dark:`dark:bg-emerald-950/55 dark:text-emerald-200`},{light:`bg-orange-100 text-orange-800`,dark:`dark:bg-orange-950/55 dark:text-orange-200`},{light:`bg-rose-100 text-rose-800`,dark:`dark:bg-rose-950/55 dark:text-rose-200`},{light:`bg-amber-100 text-amber-900`,dark:`dark:bg-amber-950/55 dark:text-amber-200`},{light:`bg-cyan-100 text-cyan-800`,dark:`dark:bg-cyan-950/55 dark:text-cyan-200`},{light:`bg-indigo-100 text-indigo-800`,dark:`dark:bg-indigo-950/55 dark:text-indigo-200`},{light:`bg-fuchsia-100 text-fuchsia-800`,dark:`dark:bg-fuchsia-950/55 dark:text-fuchsia-200`},{light:`bg-teal-100 text-teal-800`,dark:`dark:bg-teal-950/55 dark:text-teal-200`}];function De(e){let t=0;for(let n=0;n<e.length;n+=1)t=Math.imul(31,t)+e.charCodeAt(n)|0;return Math.abs(t)}function Oe(e){let t=e.trim();if(!t)return`?`;let n=t.match(/[\p{L}\p{N}]/u);return n?n[0].toLocaleUpperCase(`en-US`):t[0]}function ke({name:e,className:t}){let n=Oe(e),r=D[De(e)%D.length];return(0,E.jsx)(`div`,{className:l(`flex size-11 shrink-0 items-center justify-center rounded-xl font-semibold tracking-tight shadow-surface`,`text-[1.05rem] ring-1 ring-inset ring-black/[0.06] dark:ring-white/[0.1]`,`transition-[transform,box-shadow] duration-200 ease-out group-hover:ring-black/[0.1] dark:group-hover:ring-white/[0.14]`,`group-hover:-translate-y-px`,r.light,r.dark,t),"aria-hidden":!0,children:n})}var Ae=`https://skillhub.cn`;function je(e){let t=e.trim();return t?`${Ae}/skills/${encodeURIComponent(t)}`:null}function Me(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function O(e){let t=[e.kind];return e.label?.trim()&&t.push(e.label.trim()),e.package?.trim()&&t.push(e.package.trim()),e.formula?.trim()&&t.push(e.formula.trim()),e.module?.trim()&&t.push(e.module.trim()),e.url?.trim()&&t.push(e.url.trim()),t.join(` · `)}function k(e){return{...e,enabled:e.enabled??!0,disableModelInvocation:e.disableModelInvocation??!1}}function A({label:e,children:t}){return t==null||t===!1?null:(0,E.jsxs)(`div`,{className:`mt-3 border-t border-edge-subtle pt-3 dark:border-edge/60`,children:[(0,E.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:e}),(0,E.jsx)(`div`,{className:`mt-1.5 min-w-0 text-sm text-fg`,children:t})]})}function Ne({preview:e,sk:t}){let n=e.metadata,r=e.toolConditions,i=!!r&&(r.requiresTools.length>0||r.requiresToolsets.length>0||r.fallbackForTools.length>0||r.fallbackForToolsets.length>0),a=n.requires,o=a&&((a.bins?.length??0)>0||(a.env?.length??0)>0||(a.anyBins?.length??0)>0),s=n.install?.filter(e=>e&&typeof e.kind==`string`)??[],c=e.requiredEnvVarNames?.filter(e=>e.trim())??[];return(0,E.jsxs)(`div`,{className:`space-y-6`,children:[(0,E.jsxs)(`section`,{"aria-labelledby":`skill-detail-summary-heading`,children:[(0,E.jsx)(`h3`,{id:`skill-detail-summary-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:t.detailSummaryHeading}),(0,E.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base px-4 py-3 dark:bg-surface-hover/25`,children:[n.emoji?.trim()?(0,E.jsx)(`p`,{className:`text-2xl leading-none`,"aria-hidden":!0,children:n.emoji.trim()}):null,(0,E.jsx)(`p`,{className:l(`text-sm leading-relaxed text-fg`,n.emoji?.trim()?`mt-2`:``),children:e.description}),e.disableModelInvocation?(0,E.jsx)(`p`,{className:`mt-3 rounded-lg border border-amber-200/80 bg-amber-50/90 px-3 py-2 text-xs leading-snug text-amber-950 dark:border-amber-900/50 dark:bg-amber-950/40 dark:text-amber-100`,children:t.detailNotInjectedNote}):null,(0,E.jsx)(A,{label:t.detailHomepageLabel,children:n.homepage?.trim()?(0,E.jsx)(`a`,{href:n.homepage.trim(),target:`_blank`,rel:`noopener noreferrer`,className:`break-all text-accent underline-offset-2 hover:underline`,children:n.homepage.trim()}):null}),(0,E.jsx)(A,{label:t.detailPlatformsLabel,children:n.os&&n.os.length>0?(0,E.jsx)(`span`,{className:`font-mono text-xs text-fg-muted`,children:n.os.join(`, `)}):null}),(0,E.jsx)(A,{label:t.detailRequiresLabel,children:o&&a?(0,E.jsxs)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-fg-muted`,children:[a.bins&&a.bins.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`text-fg`,children:[t.detailRequiresBins,`: `]}),a.bins.join(`, `)]}):null,a.env&&a.env.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`text-fg`,children:[t.detailRequiresEnv,`: `]}),(0,E.jsx)(`span`,{className:`font-mono text-xs`,children:a.env.join(`, `)})]}):null,a.anyBins&&a.anyBins.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`text-fg`,children:[t.detailRequiresAnyBins,`: `]}),a.anyBins.join(`, `)]}):null]}):null}),(0,E.jsx)(A,{label:t.detailInstallLabel,children:s.length>0?(0,E.jsx)(`ul`,{className:`list-inside list-decimal space-y-1.5 text-sm text-fg-muted`,children:s.map((e,t)=>(0,E.jsx)(`li`,{className:`[overflow-wrap:anywhere]`,children:(0,E.jsx)(`span`,{className:`text-fg`,children:O(e)})},e.id||`${e.kind}-${t}`))}):null}),(0,E.jsx)(A,{label:t.detailToolGatingLabel,children:i&&r?(0,E.jsxs)(`ul`,{className:`mt-1 space-y-2 text-sm text-fg-muted`,children:[r.requiresTools.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsRequiresList,`: `]}),r.requiresTools.join(`, `)]}):null,r.requiresToolsets.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsetsRequiresList,`: `]}),r.requiresToolsets.join(`, `)]}):null,r.fallbackForTools.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsFallbackList,`: `]}),r.fallbackForTools.join(`, `)]}):null,r.fallbackForToolsets.length>0?(0,E.jsxs)(`li`,{children:[(0,E.jsxs)(`span`,{className:`font-medium text-fg`,children:[t.detailToolsetsFallbackList,`: `]}),r.fallbackForToolsets.join(`, `)]}):null]}):null}),(0,E.jsx)(A,{label:t.detailEnvVarsLabel,children:c.length>0?(0,E.jsx)(`span`,{className:`font-mono text-xs text-fg-muted`,children:c.join(`, `)}):null})]})]}),(0,E.jsxs)(`section`,{"aria-labelledby":`skill-detail-instructions-heading`,children:[(0,E.jsx)(`h3`,{id:`skill-detail-instructions-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:t.detailInstructionsHeading}),e.bodyMarkdown.trim()?(0,E.jsx)(`div`,{className:`markdown-content min-w-0 break-words`,children:(0,E.jsx)(de,{content:e.bodyMarkdown})}):(0,E.jsx)(`p`,{className:`text-sm italic text-fg-muted`,children:t.detailNoInstructionsBody})]})]})}var j=(0,T.memo)(function({loading:e,onReloadClick:t,searchQuery:n,setSearchQuery:r,mainTab:i,sk:a,setPendingFile:o,setInstallOpen:s}){return(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,E.jsx)(u,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:e,title:a.reloadRuntime,"aria-label":a.reloadDiskAria,onClick:()=>void t(),children:(0,E.jsx)(b,{className:l(`size-4`,e&&`animate-spin`),strokeWidth:1.75})}),(0,E.jsxs)(`label`,{className:`relative flex min-h-9 min-w-0 max-w-sm cursor-text items-center rounded-pill border border-edge bg-surface-base py-1.5 pl-9 pr-3 shadow-surface dark:bg-surface-hover/40 sm:max-w-md`,children:[(0,E.jsx)(me,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-disabled`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`input`,{type:`text`,role:`searchbox`,enterKeyHint:`search`,value:n,onChange:e=>r(e.target.value),placeholder:i===`marketplace`?a.marketplaceSearchPackages:a.searchPlaceholder,autoComplete:`off`,spellCheck:!1,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent py-0.5 text-sm leading-normal text-fg caret-current placeholder:text-fg-disabled focus:border-0 focus:shadow-none focus:outline-none focus:ring-0 focus-visible:outline-none`})]}),(0,E.jsxs)(u,{type:`button`,variant:`primary`,className:`shrink-0 gap-2`,onClick:()=>{o(null),s(!0)},children:[(0,E.jsx)(_e,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),a.installCta]})]})});function Pe({checked:e,onChange:t}){return(0,E.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,className:l(`relative h-6 w-10 shrink-0 overflow-hidden rounded-full border border-edge p-0.5`,`transition-[border-color,background-color] duration-200 ease-out`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`active:scale-[0.97] motion-reduce:transition-none motion-reduce:active:scale-100`,e?`bg-accent`:`bg-surface-hover`),onClick:()=>t(!e),children:(0,E.jsx)(`span`,{className:l(`pointer-events-none absolute left-0.5 top-1/2 block size-4 -translate-y-1/2 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`,`transition-transform duration-200 ease-out motion-reduce:transition-none`,e?`translate-x-5`:`translate-x-0`),"aria-hidden":!0})})}var M=`animate-pulse motion-reduce:animate-none rounded-md bg-surface-hover dark:bg-surface-active/50`;function N(){return(0,E.jsx)(`div`,{className:`flex h-full min-h-[10.5rem] flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 dark:border-edge-subtle`,"aria-hidden":!0,children:(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 items-start gap-3`,children:[(0,E.jsx)(`div`,{className:l(`size-11 shrink-0 rounded-xl`,M)}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,E.jsx)(`div`,{className:l(`h-4 min-w-0 flex-1`,M)}),(0,E.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[(0,E.jsx)(`div`,{className:l(`size-8 shrink-0 rounded-lg`,M)}),(0,E.jsx)(`div`,{className:l(`h-8 w-[4.5rem] shrink-0 rounded-lg`,M)})]})]}),(0,E.jsx)(`div`,{className:l(`h-3 w-full`,M)}),(0,E.jsx)(`div`,{className:l(`h-3 w-[92%]`,M)}),(0,E.jsxs)(`div`,{className:`mt-auto space-y-1 pt-0.5`,children:[(0,E.jsx)(`div`,{className:l(`h-3 w-full`,M)}),(0,E.jsx)(`div`,{className:l(`h-2.5 w-4/5`,M)})]})]})]})})}function P(){return(0,E.jsx)(N,{})}var Fe=new Set([`builtin`,`user`,`marketplace`]),Ie=new Set([`all`,`global`,`workspace`,`extra`]),Le=`mprov`,Re=[`business`,`creative`,`documents`,`engineering`,`tools`];function ze({vm:e}){let{sk:t,hasToken:n,catalog:r,loading:a,error:s,uploading:c,searchQuery:ee,setSearchQuery:te,actionFeedback:ne,mainTab:f,setMainTab:oe,setSourceFilter:se,builtinCategoryFilter:ce,setBuiltinCategoryFilter:le,installOpen:me,setInstallOpen:_e,pendingFile:_,setPendingFile:ve,dropActive:ye,setDropActive:b,confirmOpen:xe,setConfirmOpen:Ce,confirmId:we,setConfirmId:D,togglingSkillName:De,enabledOverride:Oe,detailOpen:Ae,setDetailOpen:O,detailSource:k,setDetailSource:A,detailTitle:M,setDetailTitle:Fe,detailMarkdown:Ie,setDetailMarkdown:Le,detailCatalogPreview:Re,setDetailCatalogPreview:ze,detailMarketplacePreview:Be,setDetailMarketplacePreview:F,detailLoading:Ve,detailError:I,setDetailError:He,marketSort:L,setMarketSort:Ue,marketPage:R,setMarketPage:We,mpLoading:z,mpError:B,mpPayload:V,installingMarketName:H,marketCategoryId:Ge,setMarketCategoryId:Ke,mpCategories:U,mpCategoriesError:qe,mpCategoriesLoading:W,marketBrowseProvider:Je,setMarketBrowseProvider:Ye,builtinTabStats:Xe,userTabStats:Ze,detailEnabled:Qe,filteredCatalog:$e,builtinCategories:G,categoryFilteredCatalog:K,filterLabel:et,inSettingsShell:q,categoryLabel:tt,onReloadClick:nt,openSkillDetail:rt,openMarketplaceDetail:J,onSkillToggle:Y,onInstallSubmit:X,onFileInputChange:it,onModalDragOver:at,onModalDragLeave:Z,onModalDrop:Q,sourceLabel:ot,runDelete:st,onMarketInstall:ct,isSkillInstalledByName:lt,usingSkillInChatName:ut,onUseSkillInChat:dt}=e,ft=pe(e=>e.setPageHeader),pt=pe(e=>e.clearPageHeader),$=(0,T.useMemo)(()=>(0,E.jsx)(j,{loading:a,onReloadClick:nt,searchQuery:ee,setSearchQuery:te,mainTab:f,sk:t,setPendingFile:ve,setInstallOpen:_e}),[a,nt,ee,te,f,t,ve,_e]);return(0,T.useLayoutEffect)(()=>!n||q?(pt(),()=>pt()):(ft({startExtra:null,main:null,end:$}),()=>pt()),[pt,n,q,ft,$]),n?(0,E.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,E.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[ne?(0,E.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:l(`rounded-xl border px-3 py-2 text-sm`,ne.kind===`success`?`border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-900/40 dark:bg-emerald-950/40 dark:text-emerald-200`:`border-red-200 bg-red-50 text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`),children:ne.message}):s?(0,E.jsx)(`div`,{className:`rounded-xl border border-edge bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-edge dark:bg-red-950/40 dark:text-red-300`,role:`alert`,children:s}):null,(0,E.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,E.jsxs)(`div`,{className:`min-w-0`,children:[(0,E.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:t.title}),(0,E.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:t.tagline})]})}),q?(0,E.jsx)(`div`,{className:`flex flex-col gap-3 border-b border-edge-subtle pb-4 dark:border-edge-subtle sm:flex-row sm:flex-wrap sm:items-center sm:justify-end`,children:$}):null,(0,E.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,E.jsxs)(`div`,{className:`flex flex-col gap-3 border-b border-edge-subtle pb-3 sm:flex-row sm:items-center sm:justify-between dark:border-edge-subtle`,children:[(0,E.jsxs)(`div`,{className:`flex flex-wrap gap-x-1 gap-y-1`,role:`tablist`,"aria-label":t.skillsNavAria,children:[(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`marketplace`,className:l(`relative max-w-full rounded-md px-3 py-2 text-left text-sm font-medium transition-colors sm:text-center`,f===`marketplace`?`text-fg`:`text-fg-muted hover:text-fg`,f===`marketplace`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>oe(`marketplace`),children:t.tabMarketplace}),(0,E.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`builtin`,className:l(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,f===`builtin`?`text-fg`:`text-fg-muted hover:text-fg`,f===`builtin`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>oe(`builtin`),children:[t.tabBuiltin,(0,E.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,Xe.enabled,`/`,Xe.total,`)`]})]}),(0,E.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":f===`user`,className:l(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,f===`user`?`text-fg`:`text-fg-muted hover:text-fg`,f===`user`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>oe(`user`),children:[t.tabUser,(0,E.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,Ze.enabled,`/`,Ze.total,`)`]})]})]}),(0,E.jsxs)(`div`,{className:l(`flex min-h-9 min-w-0 items-center gap-2`,f===`user`?`flex-nowrap overflow-x-auto pb-0.5 sm:justify-end`:`flex-wrap sm:justify-end`),children:[f===`user`?(0,E.jsxs)(Ee,{children:[(0,E.jsx)(Te,{asChild:!0,children:(0,E.jsxs)(`button`,{type:`button`,className:l(`inline-flex h-9 min-h-9 min-w-[9rem] shrink-0 items-center gap-1.5 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,h.transition,h.focusRingPanel),children:[(0,E.jsx)(m,{className:`size-3.5 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{children:et}),(0,E.jsx)(g,{className:`size-3.5 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})]})}),(0,E.jsx)(C,{children:(0,E.jsx)(w,{className:`z-50 min-w-[10rem] rounded-xl border border-edge bg-surface-panel p-1 shadow-popover dark:border-edge`,sideOffset:6,align:`end`,children:[`all`,`global`,`workspace`,`extra`].map(e=>(0,E.jsx)(S,{className:l(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>se(e),children:e===`all`?t.filterAll:e===`global`?t.filterGlobal:e===`workspace`?t.filterWorkspace:t.filterExtra},e))})})]}):null,f===`marketplace`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:`inline-flex h-9 shrink-0 rounded-lg border border-edge bg-surface-panel p-0.5 shadow-surface`,role:`group`,"aria-label":t.marketplaceBrowseSwitchAria,children:[`skillhub`,`store`].map(e=>{let n=Je===e;return(0,E.jsx)(`button`,{type:`button`,className:l(`rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,n?`bg-fg text-surface-panel dark:bg-fg dark:text-surface-base`:`text-fg-muted hover:text-fg`),"aria-pressed":n,onClick:()=>Ye(e),children:e===`skillhub`?t.marketplaceBrowseSkillhub:t.marketplaceBrowseStore},e)})}),(0,E.jsxs)(Ee,{children:[(0,E.jsx)(Te,{asChild:!0,children:(0,E.jsxs)(`button`,{type:`button`,className:l(`inline-flex h-9 min-h-9 min-w-[9rem] shrink-0 items-center gap-1.5 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,h.transition,h.focusRingPanel),children:[(0,E.jsx)(m,{className:`size-3.5 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{children:L===`newest`?t.marketplaceSortNewest:t.marketplaceSortDownloads}),(0,E.jsx)(g,{className:`size-3.5 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})]})}),(0,E.jsx)(C,{children:(0,E.jsxs)(w,{className:`z-50 min-w-[10rem] rounded-xl border border-edge bg-surface-panel p-1 shadow-popover dark:border-edge`,sideOffset:6,align:`end`,children:[(0,E.jsx)(S,{className:l(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>Ue(`downloads`),children:t.marketplaceSortDownloads}),(0,E.jsx)(S,{className:l(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>Ue(`newest`),children:t.marketplaceSortNewest})]})})]})]}):null,f===`builtin`?(0,E.jsx)(`div`,{className:`h-9 min-w-[9rem] shrink-0`,"aria-hidden":!0}):null]})]}),f===`marketplace`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:l(`-mx-1 flex min-h-[2.75rem] items-center gap-2 overflow-x-auto px-1 pb-1 pt-0.5 [scrollbar-width:thin]`,!W&&U.length===0&&`min-h-0 pb-0 pt-0`),role:U.length>0||W?`tablist`:void 0,"aria-label":U.length>0||W?t.marketplaceCategoriesAria:void 0,children:U.length>0?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":Ge===``,className:l(`shrink-0 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,Ge===``?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),onClick:()=>Ke(``),children:t.marketplaceCategoryAll}),U.map(e=>{let t=Ge===e.id;return(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:l(`max-w-[14rem] shrink-0 truncate rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,t?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),title:e.label,onClick:()=>Ke(e.id),children:e.label},e.id)})]}):W?(0,E.jsx)(`div`,{className:`flex gap-2 px-1`,"aria-hidden":!0,children:Array.from({length:5},(e,t)=>(0,E.jsx)(`div`,{className:`h-8 w-[4.5rem] shrink-0 animate-pulse rounded-full bg-surface-hover motion-reduce:animate-none dark:bg-surface-active/50`},t))}):null}),qe?(0,E.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,role:`alert`,children:qe}):null,!V&&!B?(0,E.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,"aria-busy":`true`,"aria-label":t.loading,children:Array.from({length:6},(e,t)=>(0,E.jsx)(N,{},t))}):B&&!V?(0,E.jsx)(`div`,{className:`rounded-xl border border-edge bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-edge dark:bg-red-950/40 dark:text-red-300`,role:`alert`,children:B}):V?(0,E.jsxs)(`div`,{className:`relative`,children:[z?(0,E.jsx)(`div`,{className:`pointer-events-none absolute inset-0 z-[1] flex justify-center bg-surface-panel/40 pt-[min(28vh,7.5rem)] backdrop-blur-[1px] motion-reduce:backdrop-blur-none dark:bg-surface-base/35`,"aria-busy":`true`,"aria-label":t.loading,children:(0,E.jsx)(i,{className:`size-8 shrink-0 animate-spin text-accent motion-reduce:animate-none`,strokeWidth:2,"aria-hidden":!0})}):null,V.items.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.marketplaceEmpty}):(0,E.jsx)(`div`,{className:l(`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,z&&`pointer-events-none opacity-[0.52] motion-reduce:opacity-100`),children:V.items.map(e=>{let n=lt(e.id),r=H===e.id,i=Je===`skillhub`?je(e.id):null;return(0,E.jsx)(`article`,{className:l(`group flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`,`transition-colors hover:border-accent/40 hover:bg-surface-hover`,`dark:border-edge-subtle`),children:(0,E.jsx)(`div`,{role:`button`,tabIndex:0,className:l(`flex min-h-0 flex-1 cursor-pointer flex-col rounded-lg text-left outline-none`,h.focusRingPanel),"aria-labelledby":`mp-skill-title-${e.id}`,onClick:t=>{let n=t.target;n.closest(`a[href]`)||n.closest(`button`)||J(e.id,e.name)},onKeyDown:t=>{let n=t.target;n.closest(`a[href]`)||n.closest(`button`)||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),J(e.id,e.name))},children:(0,E.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,E.jsx)(ke,{name:e.id}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,E.jsx)(`h3`,{id:`mp-skill-title-${e.id}`,className:`min-w-0 flex-1 truncate text-[15px] font-semibold leading-snug tracking-tight text-fg`,children:e.name}),(0,E.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[i?(0,E.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:l(`inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-edge bg-surface-panel text-fg-muted`,`hover:bg-surface-hover hover:text-fg dark:border-edge`,h.focusRingPanel),"aria-label":t.marketplaceOpenOnSkillhubAria,title:t.marketplaceOpenOnSkillhub,children:(0,E.jsx)(ae,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0})}):null,(0,E.jsx)(`div`,{className:`inline-flex shrink-0`,onClick:e=>e.stopPropagation(),children:(0,E.jsx)(u,{type:`button`,variant:`secondary`,className:`h-8 shrink-0 whitespace-nowrap px-2.5 text-xs font-medium`,disabled:r||z,onClick:()=>void ct(e.id),children:r?t.uploading:n?t.marketplaceReinstall:t.marketplaceInstall})})]})]}),(0,E.jsx)(`p`,{className:`line-clamp-2 text-sm leading-relaxed text-fg-muted`,title:e.description?e.description:void 0,children:e.description||`—`}),(0,E.jsxs)(`div`,{className:`mt-auto min-h-[2.625rem] space-y-1 text-[11px] leading-snug text-fg-muted`,children:[(0,E.jsxs)(`p`,{className:`line-clamp-1`,title:`${t.marketplaceAuthor}: ${e.author.username} · ${t.marketplaceDownloads}: ${e.downloads}${e.stars!=null&&e.stars>0?` · ★${e.stars}`:``}${n?` · ${t.marketplaceInstalled}`:``}`,children:[(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:t.marketplaceAuthor}),` `,(0,E.jsx)(`span`,{className:`text-fg`,children:e.author.username}),(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,E.jsxs)(`span`,{children:[t.marketplaceDownloads,`: `,e.downloads]}),e.stars!=null&&e.stars>0?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,E.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-fg-muted`,children:[(0,E.jsx)(fe,{className:`size-3 shrink-0 text-amber-600 dark:text-amber-400`,strokeWidth:2,"aria-hidden":!0}),e.stars]})]}):null,n?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,E.jsx)(`span`,{className:`text-emerald-700 dark:text-emerald-400`,children:t.marketplaceInstalled})]}):null]}),(0,E.jsxs)(`p`,{className:`line-clamp-1 min-h-[1.125rem] font-mono text-[10px] text-fg-subtle`,title:[e.latestVersion?`${t.marketplaceVersion}: ${e.latestVersion}`:``,e.sourceLabel?`${t.marketplaceSource}: ${e.sourceLabel}`:``].filter(Boolean).join(` · `)||void 0,children:[e.latestVersion?(0,E.jsxs)(E.Fragment,{children:[t.marketplaceVersion,`: `,e.latestVersion]}):null,e.latestVersion&&e.sourceLabel?(0,E.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}):null,e.sourceLabel?(0,E.jsxs)(E.Fragment,{children:[t.marketplaceSource,`: `,e.sourceLabel]}):null]})]})]})]})})},e.id)})}),V.items.length>0?(0,E.jsxs)(`div`,{className:`mt-3 flex flex-col items-center justify-between gap-3 sm:flex-row`,children:[(0,E.jsx)(`p`,{className:`text-center text-xs text-fg-muted sm:text-left`,children:Me(t.marketplacePageStatus,{page:V.meta.page,totalPages:V.meta.totalPages,total:V.meta.total})}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsxs)(u,{type:`button`,variant:`ghost`,className:`h-9 gap-1 px-2`,disabled:z||R<=1,"aria-label":t.marketplacePagePrev,onClick:()=>We(e=>Math.max(1,e-1)),children:[(0,E.jsx)(ge,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{className:`sr-only sm:not-sr-only`,children:t.marketplacePagePrev})]}),(0,E.jsxs)(u,{type:`button`,variant:`ghost`,className:`h-9 gap-1 px-2`,disabled:z||R>=V.meta.totalPages,"aria-label":t.marketplacePageNext,onClick:()=>We(e=>Math.min(V.meta.totalPages,e+1)),children:[(0,E.jsx)(`span`,{className:`sr-only sm:not-sr-only`,children:t.marketplacePageNext}),(0,E.jsx)(be,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})]})]})]}):null]}):null]}):(0,E.jsx)(E.Fragment,{children:a?(0,E.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,"aria-busy":`true`,"aria-label":t.loading,children:Array.from({length:6},(e,t)=>(0,E.jsx)(P,{},t))}):r.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.empty}):$e.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.noSearchResults}):(0,E.jsxs)(E.Fragment,{children:[G.length>1?(0,E.jsxs)(`div`,{role:`tablist`,"aria-label":t.marketplaceCategoriesAria,className:`-mx-1 flex gap-2 overflow-x-auto px-1 pb-1 pt-0.5 [scrollbar-width:thin]`,children:[(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":ce===``,className:l(`shrink-0 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,ce===``?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),onClick:()=>le(``),children:t.marketplaceCategoryAll}),G.map(e=>{let t=ce===e;return(0,E.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:l(`max-w-[14rem] shrink-0 truncate rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.focusRingPanel,t?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-edge bg-surface-panel text-fg-muted hover:border-edge-strong hover:text-fg dark:border-edge dark:bg-surface-hover/40`),title:tt(e),onClick:()=>le(e),children:tt(e)},e)})]}):null,K.length===0?(0,E.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:t.noSearchResults}):(0,E.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:K.map(e=>(0,E.jsx)(`article`,{className:l(`group flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4`,`transition-colors hover:border-accent/40 hover:bg-surface-hover`,`dark:border-edge-subtle`),children:(0,E.jsx)(`div`,{role:`button`,tabIndex:0,className:l(`flex min-h-0 flex-1 cursor-pointer flex-col rounded-lg text-left outline-none`,h.focusRingPanel),"aria-labelledby":`catalog-skill-title-${e.directoryId}`,onClick:t=>{t.target.closest(`button`)||rt(e)},onKeyDown:t=>{t.target.closest(`button`)||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),rt(e))},children:(0,E.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,E.jsx)(ke,{name:e.name}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,E.jsx)(`h3`,{id:`catalog-skill-title-${e.directoryId}`,className:`min-w-0 flex-1 truncate text-[15px] font-semibold leading-snug tracking-tight text-fg`,children:e.name}),(0,E.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,onClick:e=>e.stopPropagation(),children:[(0,E.jsx)(`div`,{className:`inline-flex shrink-0`,children:(0,E.jsx)(Pe,{checked:Oe[e.name]??e.enabled,onChange:t=>void Y(e.name,t)})}),e.managed?(0,E.jsxs)(Ee,{children:[(0,E.jsx)(Te,{asChild:!0,children:(0,E.jsx)(`button`,{type:`button`,className:l(`inline-flex size-8 shrink-0 items-center justify-center rounded-lg border border-edge bg-surface-panel text-fg-muted`,`hover:bg-surface-hover hover:text-fg dark:border-edge`,h.focusRingPanel),"aria-label":t.col.actions,children:(0,E.jsx)(he,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0})})}),(0,E.jsx)(C,{children:(0,E.jsx)(w,{className:`z-50 min-w-[8rem] rounded-xl border border-edge bg-surface-panel p-1 shadow-popover dark:border-edge`,sideOffset:4,align:`end`,children:(0,E.jsxs)(S,{className:l(`flex cursor-pointer items-center gap-2 rounded-lg px-3 py-2 text-sm text-red-600 outline-none`,`hover:bg-red-50 data-[highlighted]:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/40`),onSelect:()=>{D(e.directoryId),Ce(!0)},children:[(0,E.jsx)(Se,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t.delete]})})})]}):null]})]}),(0,E.jsx)(`p`,{className:`line-clamp-2 text-sm leading-relaxed text-fg-muted`,title:e.description?e.description:void 0,children:e.description||`—`}),f!==`builtin`||e.managed?(0,E.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 text-[11px] text-fg-subtle`,children:[f===`builtin`?null:(0,E.jsx)(`span`,{className:`rounded-md bg-surface-hover/60 px-2 py-0.5 dark:bg-surface-active/50`,children:ot(e.source)}),e.managed?(0,E.jsxs)(`span`,{className:`rounded-md bg-surface-hover/60 px-2 py-0.5 dark:bg-surface-active/50`,children:[t.col.managed,`: `,t.yes]}):null,e.hub?(0,E.jsxs)(`span`,{className:`max-w-full break-all rounded-md bg-surface-hover/60 px-2 py-0.5 font-mono text-[10px] leading-snug dark:bg-surface-active/50 line-clamp-2`,title:`${e.hub.source}${e.hub.ref?`\nref: ${e.hub.ref}`:``}\nupdated: ${e.hub.updatedAt}`,children:[t.hubRemote,` ·`,` `,e.hub.kind===`git`?t.hubKindGit:t.hubKindArchive,` ·`,` `,e.hub.source.length>48?`${e.hub.source.slice(0,48)}…`:e.hub.source]}):null]}):null]})]})})},`${e.directoryId}-${e.path}`))})]})})]})]}),(0,E.jsx)(re,{open:Ae,onOpenChange:e=>{O(e),e||(A(`catalog`),Le(``),ze(null),F(null),He(null),Fe(``))},children:(0,E.jsxs)(d,{children:[(0,E.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,E.jsxs)(y,{className:l(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] flex h-[min(88vh,44rem)] max-h-[min(92vh,56rem)] w-[min(100%-2rem,min(92vw,56rem))]`,`-translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-float dark:border-edge`),children:[(0,E.jsxs)(`div`,{className:`group flex min-h-[3.25rem] shrink-0 items-center gap-3 border-b border-edge px-4 py-3`,children:[(0,E.jsx)(ke,{name:M||`?`}),(0,E.jsx)(p,{className:`min-w-0 flex-1 truncate text-base font-semibold text-fg`,children:M||`—`}),(0,E.jsx)(ie,{asChild:!0,children:(0,E.jsx)(`button`,{type:`button`,className:l(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,h.focusRingPanel),"aria-label":t.detailCloseAria,children:(0,E.jsx)(x,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0})})})]}),(0,E.jsxs)(`div`,{className:`flex min-h-[3.25rem] shrink-0 items-start gap-2 border-b border-blue-200/80 bg-blue-50/95 px-4 py-2.5 text-sm text-fg dark:border-blue-900/50 dark:bg-blue-950/45`,children:[(0,E.jsx)(o,{className:`mt-0.5 size-4 shrink-0 text-blue-600 dark:text-blue-400`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`p`,{className:`min-w-0 leading-relaxed`,children:k===`store`&&Be?t.detailModalBanner:k===`store`?t.detailModalBannerStore:t.detailModalBanner})]}),(0,E.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-auto px-4 py-4`,children:Ve?(0,E.jsx)(`div`,{className:`flex h-full min-h-[14rem] flex-col gap-2.5 py-1`,"aria-busy":`true`,"aria-label":t.loading,children:Array.from({length:10},(e,t)=>(0,E.jsx)(`div`,{className:l(`h-4 animate-pulse rounded-md bg-surface-hover dark:bg-surface-active/50`,t%3==0?`w-[92%]`:t%3==1?`w-full`:`w-4/5`)},t))}):I?(0,E.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:I}):k===`catalog`&&Re?(0,E.jsx)(Ne,{preview:Re,sk:t}):k===`store`&&Be?(0,E.jsx)(Ne,{preview:Be,sk:t}):(0,E.jsx)(`div`,{className:`markdown-content min-w-0 break-words`,children:(0,E.jsx)(de,{content:Ie})})}),(0,E.jsx)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:k===`store`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(u,{type:`button`,variant:`ghost`,onClick:()=>O(!1),children:t.cancel}),(0,E.jsx)(u,{type:`button`,variant:`secondary`,disabled:!M||Ve||ut===M||H===M,onClick:()=>void dt(),children:ut===M?t.previewUseInChatBusy:t.previewUseInChat}),(0,E.jsx)(u,{type:`button`,variant:lt(M)?`secondary`:`primary`,disabled:!M||H===M,onClick:()=>{M&&ct(M,{useDetailProvider:!0})},children:H===M?t.uploading:lt(M)?t.marketplaceReinstall:t.marketplaceInstall})]}):(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(u,{type:`button`,variant:`secondary`,disabled:!M||Ve||ut===M||De===M,onClick:()=>void dt(),children:ut===M?t.previewUseInChatBusy:t.previewUseInChat}),(0,E.jsx)(u,{type:`button`,variant:`primary`,disabled:!M||De===M,onClick:async()=>{M&&await Y(M,!Qe)&&O(!1)},children:Qe?t.detailModalDisable:t.detailModalEnable})]})})]})]})}),(0,E.jsx)(re,{open:me,onOpenChange:e=>{_e(e),e||(ve(null),b(!1))},children:(0,E.jsxs)(d,{children:[(0,E.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,E.jsxs)(y,{className:l(`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] max-h-[min(100vh-2rem,44rem)] w-[min(100%-2rem,min(92vw,48rem))] -translate-x-1/2 -translate-y-1/2 overflow-y-auto`,`rounded-2xl border border-edge bg-surface-panel p-6 shadow-float dark:border-edge`),children:[(0,E.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,E.jsx)(p,{className:`text-base font-semibold text-fg`,children:t.installModalTitle}),(0,E.jsx)(ie,{asChild:!0,children:(0,E.jsxs)(`button`,{type:`button`,className:l(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,h.focusRingPanel),"aria-label":t.installClose,children:[(0,E.jsx)(x,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),(0,E.jsx)(`span`,{className:`sr-only`,children:t.installClose})]})})]}),(0,E.jsxs)(`label`,{className:l(`mt-4 flex min-h-[11rem] cursor-pointer flex-col items-center justify-center gap-3 rounded-xl border-2 border-dashed px-6 py-12 text-center transition-colors`,ye?`border-accent bg-accent-soft/60 dark:bg-blue-950/40`:`border-edge bg-surface-base dark:bg-surface-hover/30`),onDragLeave:Z,onDragOver:at,onDrop:Q,children:[(0,E.jsx)(`input`,{type:`file`,accept:`.zip,.md,application/zip,text/markdown`,className:`sr-only`,"aria-label":t.installModalDropHint,disabled:c,onChange:it}),(0,E.jsx)(ue,{className:`size-12 text-fg-subtle`,strokeWidth:1.25,"aria-hidden":!0}),(0,E.jsx)(`span`,{className:`text-sm text-fg-muted`,children:t.installModalDropHint}),_?(0,E.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:_.name}):null]}),(0,E.jsxs)(`div`,{className:`mt-5 space-y-2`,children:[(0,E.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:t.installModalReqTitle}),(0,E.jsxs)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-fg-muted`,children:[(0,E.jsx)(`li`,{children:t.installModalReq1}),(0,E.jsx)(`li`,{children:t.installModalReq2})]})]}),(0,E.jsx)(`button`,{type:`button`,disabled:!_||c,className:l(`mt-6 flex w-full items-center justify-center rounded-xl py-3 text-sm font-semibold`,`transition-colors`,!_||c?`cursor-not-allowed bg-surface-active text-fg-disabled`:`bg-accent text-white hover:bg-accent-hover`,h.focusRingPanel),onClick:()=>void X(),children:c?t.uploading:t.installAction})]})]})}),(0,E.jsx)(re,{open:xe,onOpenChange:e=>{Ce(e),e||D(null)},children:(0,E.jsxs)(d,{children:[(0,E.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,E.jsxs)(y,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[60] w-[min(100%-2rem,24rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`,children:[(0,E.jsx)(p,{className:`text-base font-semibold text-fg`,children:t.deleteTitle}),(0,E.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:we?Me(t.deleteMessage,{id:we}):``}),(0,E.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,E.jsx)(u,{type:`button`,variant:`secondary`,onClick:()=>Ce(!1),children:t.cancel}),(0,E.jsx)(u,{type:`button`,variant:`primary`,className:`bg-red-600 hover:bg-red-700`,onClick:()=>void st(),children:t.deleteConfirm})]})]})]})})]}):(0,E.jsx)(`div`,{className:`mx-auto w-full max-w-app-main px-4 py-16 text-center text-sm text-fg-muted sm:px-8`,children:t.needToken})}async function Be(t){let n=t.name.toLowerCase();if(n.endsWith(`.zip`))return t;if(n.endsWith(`skill.md`)){let n=(await r(async()=>{let{default:t}=await import(`./jszip.min-DVUfmhpE.js`).then(t=>e(t.default,1));return{default:t}},__vite__mapDeps([0,1]))).default,i=new n;i.file(`SKILL.md`,await t.arrayBuffer());let a=await i.generateAsync({type:`blob`,compression:`DEFLATE`}),o=t.name.replace(/\.md$/i,``).replace(/\s+/g,`-`)||`skill`;return new File([a],`${o}.zip`,{type:`application/zip`})}throw Error(`invalid`)}function F(){let e=s(e=>e.language),t=ve(e).skills,n=!!Ce(e=>e.token),r=ye(),[i,o]=_(),l=i.get(Le),u=l===`store`||l===`skillhub`?l:null,[d,re]=(0,T.useState)([]),[ie,p]=(0,T.useState)(!1),[ae,m]=(0,T.useState)(null),[h,ue]=(0,T.useState)(!1),de=i.get(`q`)??``,fe=i.get(`tab`),pe=i.get(`source`),me=Fe.has(fe)?fe:`marketplace`,he=Ie.has(pe)?pe:`all`,[g,ge]=(0,T.useState)(de),[_e,v]=(0,T.useState)(null),[y,be]=(0,T.useState)(me),[b,Se]=(0,T.useState)(he),[x,Te]=(0,T.useState)(``),[Ee,S]=(0,T.useState)(!1),[C,w]=(0,T.useState)(null),[E,D]=(0,T.useState)(!1),[De,Oe]=(0,T.useState)(!1),[ke,Ae]=(0,T.useState)(null),[je,Me]=(0,T.useState)(null),[O,A]=(0,T.useState)({}),[Ne,j]=(0,T.useState)(!1),[Pe,M]=(0,T.useState)(`catalog`),[N,P]=(0,T.useState)(``),[ze,F]=(0,T.useState)(``),[Ve,I]=(0,T.useState)(null),[He,L]=(0,T.useState)(null),[Ue,R]=(0,T.useState)(!1),[We,z]=(0,T.useState)(null),[B,V]=(0,T.useState)(`downloads`),[H,Ge]=(0,T.useState)(1),[Ke,U]=(0,T.useState)(!1),[qe,W]=(0,T.useState)(null),[Je,Ye]=(0,T.useState)(null),[Xe,Ze]=(0,T.useState)(null),[Qe,$e]=(0,T.useState)(null),[G,K]=(0,T.useState)(``),[et,q]=(0,T.useState)([]),[tt,nt]=(0,T.useState)(null),[rt,J]=(0,T.useState)(!1),[Y,X]=(0,T.useState)(null),it=(0,T.useRef)(null),at=(0,T.useRef)(null),Z=(0,T.useCallback)(async n=>{let r=n?.silent===!0;r||p(!0),m(null);try{return re((await le(e===`en`?void 0:e)).catalog.map(k)),{ok:!0}}catch(e){let n=e instanceof Error?e.message:t.loadFailed;return m(n),{ok:!1,message:n}}finally{r||p(!1)}},[e,t.loadFailed]);(0,T.useEffect)(()=>{n&&Z()},[n,Z]),(0,T.useEffect)(()=>{if(!n){X(null),it.current=null;return}u&&X(u)},[n,u]),(0,T.useEffect)(()=>{if(!n||u!=null)return;let e=!1;return ce().then(t=>{e||X(e=>e??t.provider)}).catch(()=>{e||X(e=>e??`skillhub`)}),()=>{e=!0}},[n,u]),(0,T.useEffect)(()=>{let e=i.get(`q`)??``,t=i.get(`tab`),n=i.get(`source`),r=Fe.has(t)?t:`marketplace`,a=Ie.has(n)?n:`all`;ge(t=>t===e?t:e),be(e=>e===r?e:r),Se(e=>e===a?e:a);let o=i.get(`mcat`)??``;K(r===`marketplace`?e=>e===o?e:o:``)},[i]),(0,T.useEffect)(()=>{y===`marketplace`&&Ge(1)},[g,B,y,G,Y]),(0,T.useEffect)(()=>{if(y!==`marketplace`||!Y){at.current=Y;return}let e=at.current;at.current=Y,e!=null&&e!==Y&&K(``)},[y,Y]),(0,T.useLayoutEffect)(()=>{!n||y!==`marketplace`||U(!0)},[n,y,G,H,B,g,Y]),(0,T.useLayoutEffect)(()=>{!n||y!==`marketplace`||J(!0)},[n,y,Y]),(0,T.useEffect)(()=>{y!==`marketplace`&&(q([]),nt(null),J(!1))},[y]),(0,T.useEffect)(()=>{if(!n||y!==`marketplace`||!Y)return;let e=!1;return W(null),ee({q:g.trim()||void 0,page:H,pageSize:20,sort:B,category:G.trim()||void 0,provider:Y}).then(t=>{e||Ye(t)}).catch(n=>{e||(W(n instanceof Error?n.message:t.marketplaceLoadFailed),Ye(null))}).finally(()=>{e||U(!1)}),()=>{e=!0}},[n,y,G,H,B,g,t.marketplaceLoadFailed,Y]),(0,T.useEffect)(()=>{if(!n||y!==`marketplace`||!Y)return;let e=!1;return nt(null),we({provider:Y}).then(t=>{e||q(t.items)}).catch(n=>{e||(q([]),nt(n instanceof Error?n.message:t.marketplaceCategoriesFailed))}).finally(()=>{e||J(!1)}),()=>{e=!0,J(!1)}},[n,y,t.marketplaceCategoriesFailed,Y]),(0,T.useEffect)(()=>{!G.trim()||et.length===0||et.some(e=>e.id===G)||K(``)},[et,G]),(0,T.useEffect)(()=>{o(e=>{let t=new URLSearchParams(e),n=g.trim();return n?t.set(`q`,n):t.delete(`q`),y===`marketplace`?t.delete(`tab`):t.set(`tab`,y),b===`all`?t.delete(`source`):t.set(`source`,b),y===`marketplace`&&G.trim()?t.set(`mcat`,G.trim()):t.delete(`mcat`),y===`marketplace`&&Y?t.set(Le,Y):t.delete(Le),t.toString()===e.toString()?e:t},{replace:!0})},[y,G,Y,g,o,b]);let Q=(0,T.useCallback)((e,t,n=5e3)=>{v({kind:e,message:t}),window.setTimeout(()=>v(null),n)},[]),ot=(0,T.useCallback)(async n=>{M(`catalog`),j(!0),P(n.name),F(``),I(null),L(null),z(null),R(!0);try{let t=await se(n.name,e===`en`?void 0:e);I(t),P(t.name)}catch(e){I(null),z(e instanceof Error?e.message:t.detailLoadFailed)}finally{R(!1)}},[e,t.detailLoadFailed]),st=(0,T.useCallback)(async(e,n)=>{let r=Y;if(r){it.current=r,M(`store`),j(!0),P(n?.trim()||e),F(``),I(null),L(null),z(null),R(!0);try{let n=await a(e,{provider:r});if(P(n.name),n.skillDocPreview)L(n.skillDocPreview),F(``);else{L(null);let e=n.readme?.trim();e?F(e):n.description?.trim()?F(`## ${n.name}\n\n${n.description.trim()}`):F(`*${t.marketplaceNoReadme}*`)}}catch(e){L(null),z(e instanceof Error?e.message:t.detailLoadFailed)}finally{R(!1)}}},[Y,t.detailLoadFailed,t.marketplaceNoReadme]),ct=(0,T.useCallback)(async(e,n)=>{Me(e),A(t=>({...t,[e]:n})),v(null);try{return await ne(e,n),await Z({silent:!0}),!0}catch(n){return A(t=>{let{[e]:n,...r}=t;return r}),Q(`error`,n instanceof Error?n.message:t.skillToggleFailed),!1}finally{Me(null),A(t=>{let{[e]:n,...r}=t;return r})}},[Z,Q,t.skillToggleFailed]),lt=(0,T.useCallback)(async()=>{v(null),p(!0),m(null);try{await xe()}catch(e){m(e instanceof Error?e.message:t.reloadFailed),p(!1);return}await Z()},[Z,t.reloadFailed]),ut=(0,T.useMemo)(()=>{let e=d.filter(e=>e.source===`builtin`);return{total:e.length,enabled:e.filter(e=>O[e.name]??e.enabled).length}},[d,O]),dt=(0,T.useMemo)(()=>{let e=d.filter(e=>e.source!==`builtin`);return{total:e.length,enabled:e.filter(e=>O[e.name]??e.enabled).length}},[d,O]),ft=(0,T.useMemo)(()=>N?d.find(e=>e.name===N):void 0,[d,N]),pt=ft==null?!0:O[N]??ft.enabled,$=(0,T.useMemo)(()=>{let e=g.trim().toLowerCase(),t=d;return y===`builtin`?t=t.filter(e=>e.source===`builtin`):(t=t.filter(e=>e.source!==`builtin`),b!==`all`&&(t=t.filter(e=>e.source===b))),e?t.filter(t=>[t.name,t.description,t.directoryId,t.path,t.source,t.hub?.source,t.hub?.ref].filter(Boolean).join(` `).toLowerCase().includes(e)):t},[d,g,y,b]),mt=(0,T.useMemo)(()=>{let e=new Set,t=[];for(let n of $){let r=n.category;!r||e.has(r)||(e.add(r),t.push(r))}return t.sort((e,t)=>{let n=Re.indexOf(e),r=Re.indexOf(t);return n>=0&&r>=0?n-r:n>=0?-1:r>=0?1:e.localeCompare(t)})},[$]),ht=(0,T.useCallback)(e=>t.categoryLabel?.[e]||e,[t.categoryLabel]),gt=(0,T.useMemo)(()=>x?$.filter(e=>e.category===x):$,[$,x]),_t=async e=>{v(null),ue(!0),m(null);try{let n;try{n=await Be(e)}catch{m(t.invalidFile),Q(`error`,t.invalidFile);return}await te(n,{overwrite:!0}),await Z(),Q(`success`,t.installSuccess),S(!1),w(null),be(`user`)}catch(e){m(e instanceof Error?e.message:t.uploadFailed),Q(`error`,e instanceof Error?e.message:t.uploadFailed)}finally{ue(!1)}},vt=()=>{C&&_t(C)},yt=e=>{let t=e.target.files?.[0];e.target.value=``,t&&w(t)},bt=e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer.types.includes(`Files`)&&(D(!0),e.dataTransfer.dropEffect=`copy`)},xt=e=>{let t=e.currentTarget,n=e.relatedTarget;n&&t.contains(n)||D(!1)},St=e=>{e.preventDefault(),e.stopPropagation(),D(!1);let t=e.dataTransfer?.files?.[0];t&&w(t)},Ct=e=>{switch(e){case`builtin`:return t.source.builtin;case`workspace`:return t.source.workspace;case`global`:return t.source.global;case`extra`:return t.source.extra;default:return e}},wt=async()=>{let e=ke;if(Oe(!1),Ae(null),e){v(null);try{await oe(e),await Z()}catch(e){m(e instanceof Error?e.message:t.deleteFailed)}}},Tt=(0,T.useCallback)(e=>d.some(t=>t.name===e),[d]),Et=(0,T.useCallback)(async()=>{let e=N.trim();if(!e)return;v(null);let n=Pe===`store`&&!Tt(e);n&&$e(e);try{if(n){let t=it.current??Y;await c({name:e,overwrite:!1,...t?{provider:t}:{}}),await Z({silent:!0})}j(!1),r(`/chat/new?skill=${encodeURIComponent(e)}`)}catch(e){Q(`error`,e instanceof Error?e.message:t.uploadFailed)}finally{$e(null)}},[N,Pe,Tt,Z,r,Q,t.uploadFailed,Y]),Dt=(0,T.useCallback)(async(e,n)=>{let r=Tt(e);if(!(r&&!window.confirm(t.marketplaceReinstallConfirm))){v(null),Ze(e);try{let i=n?.useDetailProvider?it.current??Y:Y;await c({name:e,overwrite:r,...i?{provider:i}:{}}),await Z({silent:!0}),Q(`success`,t.installSuccess),j(!1),be(`user`)}catch(e){Q(`error`,e instanceof Error?e.message:t.uploadFailed)}finally{Ze(null)}}},[Tt,Z,Y,Q,t.installSuccess,t.marketplaceReinstallConfirm,t.uploadFailed]),Ot=b===`all`?t.filterAll:b===`global`?t.filterGlobal:b===`workspace`?t.filterWorkspace:t.filterExtra,{pathname:kt}=f();return{sk:t,hasToken:n,catalog:d,loading:ie,error:ae,uploading:h,searchQuery:g,setSearchQuery:ge,actionFeedback:_e,mainTab:y,setMainTab:be,sourceFilter:b,setSourceFilter:Se,builtinCategoryFilter:x,setBuiltinCategoryFilter:Te,installOpen:Ee,setInstallOpen:S,pendingFile:C,setPendingFile:w,dropActive:E,setDropActive:D,confirmOpen:De,setConfirmOpen:Oe,confirmId:ke,setConfirmId:Ae,togglingSkillName:je,enabledOverride:O,detailOpen:Ne,setDetailOpen:j,detailSource:Pe,setDetailSource:M,detailTitle:N,setDetailTitle:P,detailMarkdown:ze,setDetailMarkdown:F,detailCatalogPreview:Ve,setDetailCatalogPreview:I,detailMarketplacePreview:He,setDetailMarketplacePreview:L,detailLoading:Ue,detailError:We,setDetailError:z,marketSort:B,setMarketSort:V,marketPage:H,setMarketPage:Ge,mpLoading:Ke,mpError:qe,mpPayload:Je,installingMarketName:Xe,usingSkillInChatName:Qe,onUseSkillInChat:Et,marketCategoryId:G,setMarketCategoryId:K,mpCategories:et,mpCategoriesError:tt,mpCategoriesLoading:rt,marketBrowseProvider:Y,setMarketBrowseProvider:X,builtinTabStats:ut,userTabStats:dt,detailEnabled:pt,filteredCatalog:$,builtinCategories:mt,categoryFilteredCatalog:gt,filterLabel:Ot,inSettingsShell:kt.startsWith(`/settings/`),categoryLabel:ht,onReloadClick:lt,openSkillDetail:ot,openMarketplaceDetail:st,onSkillToggle:ct,onInstallSubmit:vt,onFileInputChange:yt,onModalDragOver:bt,onModalDragLeave:xt,onModalDrop:St,sourceLabel:Ct,runDelete:wt,onMarketInstall:Dt,isSkillInstalledByName:Tt}}function Ve(){return(0,E.jsx)(ze,{vm:F()})}export{Ve as SkillsPage};
3
+ //# sourceMappingURL=skills-page-Dcvjtm-1.js.map