@xopcai/xopc 0.0.107 → 0.0.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agents-BXg2_mE4.js → agents-D2VtykeA.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-CJqQ-7Ss.js → apps-page-BPQ6ueG-.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-settings-DvMZ6NAd.js → channels-settings-DgZc25cS.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-BPBlvSl5.js → cron-page-BQFw5O-8.js} +1 -1
- package/dist/gateway/static/root/assets/{dist-CZh0c-s8.js → dist-BLMShn4_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DyJQR0SR.js → extension-debug-page-BbQ8uZY_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CDTuUr9B.js → extension-page-DNcTendk.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DszZ8zHD.js → extension-settings-page-ClWJvwHK.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-U10wnPdc.js → heartbeat-config-api-4O1U_Oki.js} +1 -1
- package/dist/gateway/static/root/assets/{index-DBc-bVOQ.js → index-S23p3aa0.js} +3 -3
- package/dist/gateway/static/root/assets/{logs-page-B6js8Bfi.js → logs-page-BAIdbvSC.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-page-DFzAXR35.js → note-detail-page-BVDoLwec.js} +1 -1
- package/dist/gateway/static/root/assets/{note-time-DOiSU-10.js → note-time-COWUfBZO.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-DAuZJMT8.js → notes-page-CI3aD7Tm.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-zM36dvbY.js → schema-form-CDpBshDP.js} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-CAsV03BY.js → sessions-page-DM1S4eso.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-advanced-gate-BCvObK1y.js → settings-advanced-gate-Bz_nYzvB.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-Bvl-RInc.js → settings-form-section-BxhPoWWH.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-DuCJDd74.js → settings-page-Ch_Sd28M.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-rpL4DDTO.js → share-preview-page-D6u4llqD.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-XMi76Nps.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-D2RJaoj_.js → voice-api-key-field-CMt5Xc7_.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-page.utils-BxacHYen.js → workflow-page.utils-BcZQmKBX.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-B1B-est-.js → workflows-page-CxFbPBed.js} +1 -1
- package/dist/gateway/static/root/index.html +1 -1
- package/dist/package.js +1 -1
- package/dist/src/config/paths.js +4 -1
- package/dist/src/config/paths.js.map +1 -1
- package/dist/src/gateway/heartbeat/service.js +1 -1
- package/dist/src/heartbeat/index.js +1 -1
- package/package.json +1 -1
- package/dist/gateway/static/root/assets/skills-page--BioR9J4.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/attachment-process-heavy-RnGYy9bC.js","assets/rolldown-runtime-aKtaBQYM.js","assets/preload-helper-zJ_50EbN.js","assets/excel-worksheet-utils-EyvwNT4X.js","assets/attachment-preview-renderer-CybMSIoS.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,t as a}from"./url-DQRqHuL-.js";import{t as o}from"./preload-helper-zJ_50EbN.js";import{Rn as s,do as c,ja as l,mo as u,ts as d,zn as f}from"./index-
|
|
2
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,t as a}from"./url-DQRqHuL-.js";import{t as o}from"./preload-helper-zJ_50EbN.js";import{Rn as s,do as c,ja as l,mo as u,ts as d,zn as f}from"./index-S23p3aa0.js";var p=n(),m=e(t(),1),h=r(),g=`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,_=`application/vnd.openxmlformats-officedocument.presentationml.presentation`,v=32*1024*1024,y=5*1024*1024;function b(e){return e===`text/markdown`?`markdown`:e===`text/plain`?`text`:e===`application/json`?`json`:e===`application/pdf`||e.startsWith(`image/`)?`pdf-or-image`:e===g?`docx`:e===_?`pptx`:`unknown`}function x(){let{token:e}=d(),t=i(e=>e.language),n=t===`zh`?T:E,[r,s]=(0,m.useState)(null),[f,p]=(0,m.useState)(null),[g,_]=(0,m.useState)(null),[x,C]=(0,m.useState)(null),[D,O]=(0,m.useState)(!0),[k,A]=(0,m.useState)(null);(0,m.useEffect)(()=>{if(!e){A(n.invalidLink),O(!1);return}let t=!1;return(async()=>{try{let r=await fetch(a(`/s/${encodeURIComponent(e)}/meta`));if(!r.ok){if(t)return;A(r.status===404?n.notFound:n.expired),O(!1);return}let i=await r.json();if(t)return;if(!i.valid){s(i),A(n.expired),O(!1);return}if(s(i),i.kind!==`file`){O(!1);return}let c=b(i.mimeType);if((c===`markdown`||c===`text`||c===`json`)&&i.fileSize<=y){let r=await fetch(a(`/s/${encodeURIComponent(e)}?inline=1`));if(t)return;if(!r.ok){A(n.expired),O(!1);return}let i=await r.text();if(t)return;p(i),O(!1);return}if((c===`docx`||c===`pptx`)&&i.fileSize<=v){let r=await fetch(a(`/s/${encodeURIComponent(e)}?inline=1`));if(t)return;if(!r.ok){A(n.expired),O(!1);return}let s=await r.arrayBuffer();if(t)return;if(c===`docx`)C(s);else try{let{processPptx:e}=await o(async()=>{let{processPptx:e}=await import(`./attachment-process-heavy-RnGYy9bC.js`);return{processPptx:e}},__vite__mapDeps([0,1,2,3])),{extractedText:n}=await e(s,i.fileName);if(t)return;_(n)}catch(e){if(t)return;A(e instanceof Error?e.message:String(e))}O(!1);return}O(!1)}catch(e){if(t)return;A(e instanceof Error?e.message:String(e)),O(!1)}})(),()=>{t=!0}},[e,n.expired,n.invalidLink,n.notFound]);let j=e?a(`/s/${encodeURIComponent(e)}?dl=1`):`#`,M=e?a(`/s/${encodeURIComponent(e)}?inline=1`):`#`;return(0,h.jsxs)(`div`,{className:`flex min-h-screen flex-col bg-surface-base`,children:[(0,h.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-3 border-b border-edge px-4`,children:[(0,h.jsx)(`span`,{className:`text-lg`,"aria-hidden":!0,children:`📄`}),(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsx)(`div`,{className:`truncate text-sm font-semibold text-fg`,title:r?.fileName??``,children:r?.fileName??n.loading}),r?(0,h.jsxs)(`div`,{className:`truncate text-xs text-fg-muted`,children:[w(r.fileSize),` · `,n.expiresAt,` `,new Date(r.expiresAt).toLocaleString(t===`zh`?`zh-CN`:`en-US`)]}):null]}),r?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`a`,{href:M,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-fg-muted hover:bg-surface-hover hover:text-fg`,children:[(0,h.jsx)(c,{className:`size-3.5`,"aria-hidden":!0}),n.openInline]}),(0,h.jsxs)(`a`,{href:j,className:`inline-flex items-center gap-1 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-white hover:opacity-90`,download:r.fileName,children:[(0,h.jsx)(u,{className:`size-3.5`,"aria-hidden":!0}),n.download]})]}):null]}),(0,h.jsx)(`main`,{className:`mx-auto w-full max-w-app-main flex-1 px-4 py-6`,children:D?(0,h.jsxs)(`div`,{className:`flex min-h-[50vh] items-center justify-center text-sm text-fg-muted`,children:[(0,h.jsx)(l,{className:`mr-2 size-4 animate-spin`}),n.loading]}):k?(0,h.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel p-6 text-sm text-fg`,children:[(0,h.jsx)(`p`,{className:`font-medium`,children:n.error}),(0,h.jsx)(`p`,{className:`mt-1 text-fg-muted`,children:k})]}):r?(0,h.jsx)(S,{meta:r,textContent:f,pptxText:g,docxBuffer:x,openInlineUrl:M,t:n}):null})]})}function S(e){let t=(0,p.c)(20),{meta:n,textContent:r,pptxText:i,docxBuffer:a,openInlineUrl:o,t:c}=e;if(n.kind===`directory`){let e;return t[0]===c.directoryHint?e=t[1]:(e=(0,h.jsx)(`div`,{className:`rounded-lg border border-edge bg-surface-panel p-6 text-sm text-fg-muted`,children:c.directoryHint}),t[0]=c.directoryHint,t[1]=e),e}let l=b(n.mimeType);if(l===`markdown`&&r!==null){let e;return t[2]===r?e=t[3]:(e=(0,h.jsx)(`article`,{className:`rounded-lg border border-edge bg-surface-panel p-6`,children:(0,h.jsx)(f,{content:r})}),t[2]=r,t[3]=e),e}if((l===`text`||l===`json`)&&r!==null){let e;return t[4]===r?e=t[5]:(e=(0,h.jsx)(`pre`,{className:`overflow-x-auto rounded-lg border border-edge bg-surface-panel p-4 text-xs text-fg`,children:(0,h.jsx)(`code`,{children:r})}),t[4]=r,t[5]=e),e}if(l===`pdf-or-image`){let e;return t[6]!==n.fileName||t[7]!==o?(e=(0,h.jsx)(`iframe`,{title:n.fileName,src:o,className:`h-[80vh] w-full rounded-lg border border-edge bg-surface-panel`,sandbox:`allow-same-origin allow-popups allow-popups-to-escape-sandbox allow-downloads`}),t[6]=n.fileName,t[7]=o,t[8]=e):e=t[8],e}if(l===`pptx`&&i!==null){let e;t[9]===c.pptxSlide?e=t[10]:(e=e=>c.pptxSlide.replace(`{n}`,String(e)),t[9]=c.pptxSlide,t[10]=e);let n;return t[11]!==i||t[12]!==c.pptxEmptySlide||t[13]!==e?(n=(0,h.jsx)(`div`,{className:`rounded-lg border border-edge bg-surface-panel p-4`,children:(0,h.jsx)(s,{text:i,slideLabel:e,emptySlideLabel:c.pptxEmptySlide})}),t[11]=i,t[12]=c.pptxEmptySlide,t[13]=e,t[14]=n):n=t[14],n}if(l===`docx`&&a!==null){let e;return t[15]!==a||t[16]!==c.loading?(e=(0,h.jsx)(C,{buffer:a,loadingLabel:c.loading}),t[15]=a,t[16]=c.loading,t[17]=e):e=t[17],e}let u;return t[18]===c.cannotPreview?u=t[19]:(u=(0,h.jsx)(`div`,{className:`rounded-lg border border-edge bg-surface-panel p-6 text-sm text-fg-muted`,children:c.cannotPreview}),t[18]=c.cannotPreview,t[19]=u),u}function C({buffer:e,loadingLabel:t}){let n=(0,m.useRef)(null),[r,i]=(0,m.useState)(!0),[a,s]=(0,m.useState)(null);return(0,m.useEffect)(()=>{let t=!1,r=null,a=n.current;if(a)return i(!0),s(null),(async()=>{try{let{renderDocxInContainer:n}=await o(async()=>{let{renderDocxInContainer:e}=await import(`./attachment-preview-renderer-CybMSIoS.js`);return{renderDocxInContainer:e}},__vite__mapDeps([4,2,3]));if(t)return;let s=await n(a,e);if(t){s.cleanup();return}r=s.cleanup,i(!1)}catch(e){if(t)return;s(e instanceof Error?e.message:String(e)),i(!1)}})(),()=>{t=!0,r?.()}},[e]),(0,h.jsxs)(`div`,{className:`rounded-lg border border-edge bg-surface-panel p-4`,children:[r?(0,h.jsxs)(`div`,{className:`flex min-h-[20vh] items-center justify-center text-sm text-fg-muted`,children:[(0,h.jsx)(l,{className:`mr-2 size-4 animate-spin`}),t]}):null,a?(0,h.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:a}):null,(0,h.jsx)(`div`,{ref:n,className:r?`hidden`:`min-h-[40vh]`})]})}function w(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:e<1073741824?`${(e/1048576).toFixed(1)} MB`:`${(e/1073741824).toFixed(1)} GB`}var T={loading:`加载中…`,error:`加载失败`,expired:`链接已失效`,notFound:`链接不存在`,invalidLink:`链接无效`,expiresAt:`有效期至`,download:`下载`,openInline:`在新窗口打开`,cannotPreview:`此文件类型暂不支持在线预览,请下载查看。`,directoryHint:`目录分享请使用主页面浏览。`,pptxSlide:`第 {n} 页`,pptxEmptySlide:`(本页无文本)`},E={loading:`Loading…`,error:`Failed to load`,expired:`Link no longer valid`,notFound:`Link not found`,invalidLink:`Invalid link`,expiresAt:`Expires`,download:`Download`,openInline:`Open raw`,cannotPreview:`This file type cannot be previewed here. Please download it instead.`,directoryHint:`Directory shares are browsed from the main page.`,pptxSlide:`Slide {n}`,pptxEmptySlide:`(empty slide)`};export{x as SharePreviewPage};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-DT31yWkU.js","assets/rolldown-runtime-aKtaBQYM.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,o as a}from"./url-DQRqHuL-.js";import{t as o}from"./preload-helper-zJ_50EbN.js";import{a as s}from"./fetch-CFdKBnE6.js";import{$o as c,$t as l,Ar as u,Ei as d,Er as f,Hn as p,Jt as m,Kt as h,Li as g,Mo as _,No as v,Or as y,Po as b,Qt as x,Ti as S,Tr as C,Vr as w,Xt as T,Yt as E,Zi as D,Zt as O,ao as k,do as A,en as j,es as ee,fi as M,hi as N,ia as P,ii as F,ja as I,jr as L,kr as R,lo as te,nn as z,ns as ne,pi as B,qa as re,qt as V,rn as ie,tn as H,ua as U,wr as W,zn as ae}from"./index-S23p3aa0.js";import{i as oe,n as G,o as se,r as ce,t as le}from"./dist-BLMShn4_.js";var K=n(),q=e(t(),1),J=r(),ue=(0,q.memo)(function(e){let t=(0,K.c)(30),{loading:n,onReloadClick:r,searchQuery:i,setSearchQuery:a,mainTab:o,sk:s,setPendingFile:c,setInstallOpen:l}=e,u=s.reloadRuntime,d=s.reloadDiskAria,f;t[0]===r?f=t[1]:(f=()=>void r(),t[0]=r,t[1]=f);let p=n&&`animate-spin`,m;t[2]===p?m=t[3]:(m=B(`size-4`,p),t[2]=p,t[3]=m);let h;t[4]===m?h=t[5]:(h=(0,J.jsx)(P,{className:m,strokeWidth:1.75}),t[4]=m,t[5]=h);let g;t[6]!==n||t[7]!==s.reloadDiskAria||t[8]!==s.reloadRuntime||t[9]!==f||t[10]!==h?(g=(0,J.jsx)(M,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,disabled:n,title:u,"aria-label":d,onClick:f,children:h}),t[6]=n,t[7]=s.reloadDiskAria,t[8]=s.reloadRuntime,t[9]=f,t[10]=h,t[11]=g):g=t[11];let _;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,J.jsx)(D,{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}),t[12]=_):_=t[12];let v;t[13]===a?v=t[14]:(v=e=>a(e.target.value),t[13]=a,t[14]=v);let y=o===`marketplace`?s.marketplaceSearchPackages:s.searchPlaceholder,b;t[15]!==i||t[16]!==y||t[17]!==v?(b=(0,J.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,J.jsx)(`input`,{type:`search`,enterKeyHint:`search`,value:i,onChange:v,placeholder:y,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`})]}),t[15]=i,t[16]=y,t[17]=v,t[18]=b):b=t[18];let x;t[19]!==l||t[20]!==c?(x=()=>{c(null),l(!0)},t[19]=l,t[20]=c,t[21]=x):x=t[21];let S;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsx)(U,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[22]=S):S=t[22];let C;t[23]!==s.installCta||t[24]!==x?(C=(0,J.jsxs)(M,{type:`button`,variant:`primary`,className:`shrink-0 gap-2`,onClick:x,children:[S,s.installCta]}),t[23]=s.installCta,t[24]=x,t[25]=C):C=t[25];let w;return t[26]!==b||t[27]!==C||t[28]!==g?(w=(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[g,b,C]}),t[26]=b,t[27]=C,t[28]=g,t[29]=w):w=t[29],w}),de=[{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 fe(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 pe(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 me(e){let t=(0,K.c)(9),{name:n,className:r}=e,i;t[0]===n?i=t[1]:(i=pe(n),t[0]=n,t[1]=i);let a=i,o=de[fe(n)%de.length],s;t[2]!==r||t[3]!==o.dark||t[4]!==o.light?(s=B(`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`,o.light,o.dark,r),t[2]=r,t[3]=o.dark,t[4]=o.light,t[5]=s):s=t[5];let c;return t[6]!==a||t[7]!==s?(c=(0,J.jsx)(`div`,{className:s,"aria-hidden":!0,children:a}),t[6]=a,t[7]=s,t[8]=c):c=t[8],c}var Y=`animate-pulse motion-reduce:animate-none rounded-md bg-surface-hover dark:bg-surface-active/50`;function X(){let e=(0,K.c)(6),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(`div`,{className:B(`size-11 shrink-0 rounded-xl`,Y)}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,J.jsx)(`div`,{className:B(`h-4 min-w-0 flex-1`,Y)}),e[1]=n):n=e[1];let r,i,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[n,(0,J.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[(0,J.jsx)(`div`,{className:B(`size-8 shrink-0 rounded-lg`,Y)}),(0,J.jsx)(`div`,{className:B(`h-8 w-[4.5rem] shrink-0 rounded-lg`,Y)})]})]}),i=(0,J.jsx)(`div`,{className:B(`h-3 w-full`,Y)}),a=(0,J.jsx)(`div`,{className:B(`h-3 w-[92%]`,Y)}),e[2]=r,e[3]=i,e[4]=a):(r=e[2],i=e[3],a=e[4]);let o;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,J.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,J.jsxs)(`div`,{className:`flex min-h-0 flex-1 items-start gap-3`,children:[t,(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[r,i,a,(0,J.jsxs)(`div`,{className:`mt-auto space-y-1 pt-0.5`,children:[(0,J.jsx)(`div`,{className:B(`h-3 w-full`,Y)}),(0,J.jsx)(`div`,{className:B(`h-2.5 w-4/5`,Y)})]})]})]})}),e[5]=o):o=e[5],o}function Z(){let e=(0,K.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(X,{}),e[0]=t):t=e[0],t}var he=new Set([`builtin`,`user`,`marketplace`]),ge=new Set([`all`,`global`,`workspace`,`extra`]),_e=`mprov`,ve=[`s0`,`s1`,`s2`,`s3`,`s4`,`s5`],ye=[`business`,`creative`,`documents`,`engineering`,`tools`];function be(e){let t=(0,K.c)(28),{sk:n,mainTab:r,loading:i,catalog:a,filteredCatalog:o,builtinCategories:s,builtinCategoryFilter:c,setBuiltinCategoryFilter:l,catalogDisplayRows:u,catalogStatusFilter:d,resolveSkillEnabled:f,categoryLabel:p,sourceLabel:m,openSkillDetail:h,onSkillToggle:g,onUseSkillInChat:_,usingSkillInChatName:v,togglingSkillName:y}=e;if(i){let e=n.loading,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=ve.map(Ce),t[0]=r):r=t[0];let i;return t[1]===n.loading?i=t[2]:(i=(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,"aria-busy":`true`,"aria-label":e,children:r}),t[1]=n.loading,t[2]=i),i}if(a.length===0){let e;return t[3]===n.empty?e=t[4]:(e=(0,J.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:n.empty}),t[3]=n.empty,t[4]=e),e}if(o.length===0){let e;return t[5]===n.noSearchResults?e=t[6]:(e=(0,J.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:n.noSearchResults}),t[5]=n.noSearchResults,t[6]=e),e}let b;t[7]!==s||t[8]!==c||t[9]!==p||t[10]!==l||t[11]!==n?(b=s.length>1?(0,J.jsxs)(`div`,{role:`tablist`,"aria-label":n.marketplaceCategoriesAria,className:`-mx-1 flex gap-2 overflow-x-auto px-1 pb-1 pt-0.5 [scrollbar-width:thin]`,children:[(0,J.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":c===``,className:B(`shrink-0 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,F.focusRingPanel,c===``?`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:()=>l(``),children:n.marketplaceCategoryAll}),s.map(e=>{let t=c===e;return(0,J.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:B(`max-w-[14rem] shrink-0 truncate rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,F.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:p(e),onClick:()=>l(e),children:p(e)},e)})]}):null,t[7]=s,t[8]=c,t[9]=p,t[10]=l,t[11]=n,t[12]=b):b=t[12];let x;t[13]!==u||t[14]!==d||t[15]!==r||t[16]!==g||t[17]!==_||t[18]!==h||t[19]!==f||t[20]!==n||t[21]!==m||t[22]!==y||t[23]!==v?(x=u.length===0?(0,J.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge py-16 text-center text-sm text-fg-muted`,children:d===`disabled`?n.noDisabledSkills:n.noSearchResults}):(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:u.map(e=>{let t=f(e);return(0,J.jsx)(`article`,{className:B(`group flex h-full flex-col rounded-xl border bg-surface-base p-4 transition-colors`,t?`border-edge-subtle hover:border-accent/40 hover:bg-surface-hover dark:border-edge-subtle`:`border-amber-300/70 bg-amber-50/30 hover:border-amber-400/80 hover:bg-amber-50/50 dark:border-amber-700/50 dark:bg-amber-950/20 dark:hover:border-amber-600/60`),children:(0,J.jsx)(`div`,{role:`button`,tabIndex:0,className:B(`flex min-h-0 flex-1 cursor-pointer flex-col rounded-lg text-left outline-none`,F.focusRingPanel),"aria-labelledby":`catalog-skill-title-${e.directoryId}`,onClick:t=>{t.target.closest(`button`)||h(e)},onKeyDown:t=>{t.target.closest(`button`)||(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),h(e))},children:(0,J.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,J.jsx)(me,{name:e.name}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,J.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,J.jsxs)(`div`,{role:`group`,className:`flex shrink-0 items-center gap-1`,onClick:Se,onKeyDown:xe,children:[t?null:(0,J.jsx)(M,{type:`button`,variant:`primary`,className:`h-8 shrink-0 whitespace-nowrap px-2.5 text-xs font-medium`,disabled:y===e.name,onClick:()=>void g(e.name,!0),children:y===e.name?n.uploading:n.detailModalEnable}),(0,J.jsx)(M,{type:`button`,variant:`secondary`,className:`h-8 shrink-0 whitespace-nowrap px-2.5 text-xs font-medium`,disabled:!t||v===e.name||y===e.name,title:t?void 0:n.useRequiresEnabled,onClick:()=>void _({name:e.name,source:`catalog`}),children:v===e.name?n.previewUseInChatBusy:n.previewUseInChat})]})]}),(0,J.jsx)(`p`,{className:`line-clamp-2 text-sm leading-relaxed text-fg-muted`,title:e.description?e.description:void 0,children:e.description||`—`}),(0,J.jsx)(`div`,{className:`flex flex-wrap gap-1.5 text-[11px] text-fg-subtle`,children:r!==`builtin`||e.managed?(0,J.jsxs)(J.Fragment,{children:[r===`builtin`?null:(0,J.jsx)(`span`,{className:`rounded-md bg-surface-hover/60 px-2 py-0.5 dark:bg-surface-active/50`,children:m(e.source)}),e.managed?(0,J.jsxs)(`span`,{className:`rounded-md bg-surface-hover/60 px-2 py-0.5 dark:bg-surface-active/50`,children:[n.col.managed,`: `,n.yes]}):null,e.hub?(0,J.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:[n.hubRemote,` ·`,` `,e.hub.kind===`git`?n.hubKindGit:n.hubKindArchive,` ·`,` `,e.hub.source.length>48?`${e.hub.source.slice(0,48)}…`:e.hub.source]}):null]}):null})]})]})})},`${e.directoryId}-${e.path}`)})}),t[13]=u,t[14]=d,t[15]=r,t[16]=g,t[17]=_,t[18]=h,t[19]=f,t[20]=n,t[21]=m,t[22]=y,t[23]=v,t[24]=x):x=t[24];let S;return t[25]!==b||t[26]!==x?(S=(0,J.jsxs)(J.Fragment,{children:[b,x]}),t[25]=b,t[26]=x,t[27]=S):S=t[27],S}function xe(e){return e.stopPropagation()}function Se(e){return e.stopPropagation()}function Ce(e){return(0,J.jsx)(Z,{},e)}var Q=`https://skillhub.cn`,we=`https://clawhub.ai`;function Te(e){let t=e.trim();return t?`${Q}/skills/${encodeURIComponent(t)}`:null}function Ee(e){let t=e.trim();return t?`${we}/${encodeURIComponent(t)}`:null}function De(e,t){return e===`skillhub`?Te(t):e===`clawhub`?Ee(t):null}function Oe(e,t){return t===`store`?e.name.trim()||e.id:e.id.trim()||e.name}function ke(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function Ae(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 je(e){return{...e,enabled:e.enabled??!0,disableModelInvocation:e.disableModelInvocation??!1}}function Me(e){let t=(0,K.c)(32),{sk:n,confirmOpen:r,setConfirmOpen:i,confirmId:a,setConfirmId:o,runDelete:s}=e,c;t[0]!==o||t[1]!==i?(c=e=>{i(e),e||o(null)},t[0]=o,t[1]=i,t[2]=c):c=t[2];let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[3]=l):l=t[3];let d;t[4]===n.deleteTitle?d=t[5]:(d=(0,J.jsx)(L,{className:`text-base font-semibold text-fg`,children:n.deleteTitle}),t[4]=n.deleteTitle,t[5]=d);let p;t[6]!==a||t[7]!==n.deleteMessage?(p=a?ke(n.deleteMessage,{id:a}):``,t[6]=a,t[7]=n.deleteMessage,t[8]=p):p=t[8];let m;t[9]===p?m=t[10]:(m=(0,J.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:p}),t[9]=p,t[10]=m);let h;t[11]===i?h=t[12]:(h=()=>i(!1),t[11]=i,t[12]=h);let g;t[13]!==n.cancel||t[14]!==h?(g=(0,J.jsx)(M,{type:`button`,variant:`secondary`,onClick:h,children:n.cancel}),t[13]=n.cancel,t[14]=h,t[15]=g):g=t[15];let _;t[16]===s?_=t[17]:(_=()=>void s(),t[16]=s,t[17]=_);let v;t[18]!==n.deleteConfirm||t[19]!==_?(v=(0,J.jsx)(M,{type:`button`,variant:`primary`,className:`bg-red-600 hover:bg-red-700`,onClick:_,children:n.deleteConfirm}),t[18]=n.deleteConfirm,t[19]=_,t[20]=v):v=t[20];let b;t[21]!==g||t[22]!==v?(b=(0,J.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[g,v]}),t[21]=g,t[22]=v,t[23]=b):b=t[23];let x;t[24]!==b||t[25]!==d||t[26]!==m?(x=(0,J.jsxs)(R,{children:[l,(0,J.jsxs)(f,{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:[d,m,b]})]}),t[24]=b,t[25]=d,t[26]=m,t[27]=x):x=t[27];let S;return t[28]!==r||t[29]!==c||t[30]!==x?(S=(0,J.jsx)(u,{open:r,onOpenChange:c,children:x}),t[28]=r,t[29]=c,t[30]=x,t[31]=S):S=t[31],S}function Ne(e){let t=(0,K.c)(7),{label:n,children:r}=e;if(r==null||r===!1)return null;let i;t[0]===n?i=t[1]:(i=(0,J.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,J.jsx)(`div`,{className:`mt-1.5 min-w-0 text-sm text-fg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,J.jsxs)(`div`,{className:`mt-3 border-t border-edge-subtle pt-3 dark:border-edge/60`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Pe(e){let t=(0,K.c)(118),{preview:n,sk:r}=e,i=n.metadata,a=n.toolConditions,o=!!a&&(a.requiresTools.length>0||a.requiresToolsets.length>0||a.fallbackForTools.length>0||a.fallbackForToolsets.length>0),s=i.requires,c=s&&((s.bins?.length??0)>0||(s.env?.length??0)>0||(s.anyBins?.length??0)>0),l,u,d,f,p,m,h,g,_,v,y,b,x,S,C;if(t[0]!==a||t[1]!==c||t[2]!==o||t[3]!==i.emoji||t[4]!==i.homepage||t[5]!==i.install||t[6]!==i.os||t[7]!==n.description||t[8]!==n.disableModelInvocation||t[9]!==n.requiredEnvVarNames||t[10]!==s||t[11]!==r.detailEnvVarsLabel||t[12]!==r.detailHomepageLabel||t[13]!==r.detailInstallLabel||t[14]!==r.detailNotInjectedNote||t[15]!==r.detailPlatformsLabel||t[16]!==r.detailRequiresAnyBins||t[17]!==r.detailRequiresBins||t[18]!==r.detailRequiresEnv||t[19]!==r.detailRequiresLabel||t[20]!==r.detailSummaryHeading||t[21]!==r.detailToolGatingLabel||t[22]!==r.detailToolsFallbackList||t[23]!==r.detailToolsRequiresList||t[24]!==r.detailToolsetsFallbackList||t[25]!==r.detailToolsetsRequiresList){let e=i.install?.filter(Le)??[],w=n.requiredEnvVarNames?.filter(Ie)??[];h=`space-y-6`,p=`skill-detail-summary-heading`,t[41]===r.detailSummaryHeading?m=t[42]:(m=(0,J.jsx)(`h3`,{id:`skill-detail-summary-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:r.detailSummaryHeading}),t[41]=r.detailSummaryHeading,t[42]=m),_=`rounded-xl border border-edge bg-surface-base px-4 py-3 dark:bg-surface-hover/25`,t[43]===i.emoji?v=t[44]:(v=i.emoji?.trim()?(0,J.jsx)(`p`,{className:`text-2xl leading-none`,"aria-hidden":!0,children:i.emoji.trim()}):null,t[43]=i.emoji,t[44]=v);let T;t[45]===i.emoji?T=t[46]:(T=i.emoji?.trim()?`mt-2`:``,t[45]=i.emoji,t[46]=T);let E;t[47]===T?E=t[48]:(E=B(`text-sm leading-relaxed text-fg`,T),t[47]=T,t[48]=E),t[49]!==n.description||t[50]!==E?(y=(0,J.jsx)(`p`,{className:E,children:n.description}),t[49]=n.description,t[50]=E,t[51]=y):y=t[51],t[52]!==n.disableModelInvocation||t[53]!==r.detailNotInjectedNote?(b=n.disableModelInvocation?(0,J.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:r.detailNotInjectedNote}):null,t[52]=n.disableModelInvocation,t[53]=r.detailNotInjectedNote,t[54]=b):b=t[54];let D;t[55]===i.homepage?D=t[56]:(D=i.homepage?.trim()?(0,J.jsx)(`a`,{href:i.homepage.trim(),target:`_blank`,rel:`noopener noreferrer`,className:`break-all text-accent underline-offset-2 hover:underline`,children:i.homepage.trim()}):null,t[55]=i.homepage,t[56]=D),t[57]!==r.detailHomepageLabel||t[58]!==D?(x=(0,J.jsx)(Ne,{label:r.detailHomepageLabel,children:D}),t[57]=r.detailHomepageLabel,t[58]=D,t[59]=x):x=t[59];let O;t[60]===i.os?O=t[61]:(O=i.os&&i.os.length>0?(0,J.jsx)(`span`,{className:`font-mono text-xs text-fg-muted`,children:i.os.join(`, `)}):null,t[60]=i.os,t[61]=O),t[62]!==r.detailPlatformsLabel||t[63]!==O?(S=(0,J.jsx)(Ne,{label:r.detailPlatformsLabel,children:O}),t[62]=r.detailPlatformsLabel,t[63]=O,t[64]=S):S=t[64];let k;t[65]!==c||t[66]!==s||t[67]!==r.detailRequiresAnyBins||t[68]!==r.detailRequiresBins||t[69]!==r.detailRequiresEnv?(k=c&&s?(0,J.jsxs)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-fg-muted`,children:[s.bins&&s.bins.length>0?(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`text-fg`,children:[r.detailRequiresBins,`: `]}),s.bins.join(`, `)]}):null,s.env&&s.env.length>0?(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`text-fg`,children:[r.detailRequiresEnv,`: `]}),(0,J.jsx)(`span`,{className:`font-mono text-xs`,children:s.env.join(`, `)})]}):null,s.anyBins&&s.anyBins.length>0?(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`text-fg`,children:[r.detailRequiresAnyBins,`: `]}),s.anyBins.join(`, `)]}):null]}):null,t[65]=c,t[66]=s,t[67]=r.detailRequiresAnyBins,t[68]=r.detailRequiresBins,t[69]=r.detailRequiresEnv,t[70]=k):k=t[70],t[71]!==r.detailRequiresLabel||t[72]!==k?(C=(0,J.jsx)(Ne,{label:r.detailRequiresLabel,children:k}),t[71]=r.detailRequiresLabel,t[72]=k,t[73]=C):C=t[73];let A=e.length>0?(0,J.jsx)(`ul`,{className:`list-inside list-decimal space-y-1.5 text-sm text-fg-muted`,children:e.map(Fe)}):null;t[74]!==r.detailInstallLabel||t[75]!==A?(d=(0,J.jsx)(Ne,{label:r.detailInstallLabel,children:A}),t[74]=r.detailInstallLabel,t[75]=A,t[76]=d):d=t[76];let j;t[77]!==a||t[78]!==o||t[79]!==r.detailToolsFallbackList||t[80]!==r.detailToolsRequiresList||t[81]!==r.detailToolsetsFallbackList||t[82]!==r.detailToolsetsRequiresList?(j=o&&a?(0,J.jsxs)(`ul`,{className:`mt-1 space-y-2 text-sm text-fg-muted`,children:[a.requiresTools.length>0?(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`font-medium text-fg`,children:[r.detailToolsRequiresList,`: `]}),a.requiresTools.join(`, `)]}):null,a.requiresToolsets.length>0?(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`font-medium text-fg`,children:[r.detailToolsetsRequiresList,`: `]}),a.requiresToolsets.join(`, `)]}):null,a.fallbackForTools.length>0?(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`font-medium text-fg`,children:[r.detailToolsFallbackList,`: `]}),a.fallbackForTools.join(`, `)]}):null,a.fallbackForToolsets.length>0?(0,J.jsxs)(`li`,{children:[(0,J.jsxs)(`span`,{className:`font-medium text-fg`,children:[r.detailToolsetsFallbackList,`: `]}),a.fallbackForToolsets.join(`, `)]}):null]}):null,t[77]=a,t[78]=o,t[79]=r.detailToolsFallbackList,t[80]=r.detailToolsRequiresList,t[81]=r.detailToolsetsFallbackList,t[82]=r.detailToolsetsRequiresList,t[83]=j):j=t[83],t[84]!==r.detailToolGatingLabel||t[85]!==j?(f=(0,J.jsx)(Ne,{label:r.detailToolGatingLabel,children:j}),t[84]=r.detailToolGatingLabel,t[85]=j,t[86]=f):f=t[86],l=Ne,u=r.detailEnvVarsLabel,g=w.length>0?(0,J.jsx)(`span`,{className:`font-mono text-xs text-fg-muted`,children:w.join(`, `)}):null,t[0]=a,t[1]=c,t[2]=o,t[3]=i.emoji,t[4]=i.homepage,t[5]=i.install,t[6]=i.os,t[7]=n.description,t[8]=n.disableModelInvocation,t[9]=n.requiredEnvVarNames,t[10]=s,t[11]=r.detailEnvVarsLabel,t[12]=r.detailHomepageLabel,t[13]=r.detailInstallLabel,t[14]=r.detailNotInjectedNote,t[15]=r.detailPlatformsLabel,t[16]=r.detailRequiresAnyBins,t[17]=r.detailRequiresBins,t[18]=r.detailRequiresEnv,t[19]=r.detailRequiresLabel,t[20]=r.detailSummaryHeading,t[21]=r.detailToolGatingLabel,t[22]=r.detailToolsFallbackList,t[23]=r.detailToolsRequiresList,t[24]=r.detailToolsetsFallbackList,t[25]=r.detailToolsetsRequiresList,t[26]=l,t[27]=u,t[28]=d,t[29]=f,t[30]=p,t[31]=m,t[32]=h,t[33]=g,t[34]=_,t[35]=v,t[36]=y,t[37]=b,t[38]=x,t[39]=S,t[40]=C}else l=t[26],u=t[27],d=t[28],f=t[29],p=t[30],m=t[31],h=t[32],g=t[33],_=t[34],v=t[35],y=t[36],b=t[37],x=t[38],S=t[39],C=t[40];let w;t[87]!==l||t[88]!==u||t[89]!==g?(w=(0,J.jsx)(l,{label:u,children:g}),t[87]=l,t[88]=u,t[89]=g,t[90]=w):w=t[90];let T;t[91]!==d||t[92]!==f||t[93]!==w||t[94]!==_||t[95]!==v||t[96]!==y||t[97]!==b||t[98]!==x||t[99]!==S||t[100]!==C?(T=(0,J.jsxs)(`div`,{className:_,children:[v,y,b,x,S,C,d,f,w]}),t[91]=d,t[92]=f,t[93]=w,t[94]=_,t[95]=v,t[96]=y,t[97]=b,t[98]=x,t[99]=S,t[100]=C,t[101]=T):T=t[101];let E;t[102]!==p||t[103]!==m||t[104]!==T?(E=(0,J.jsxs)(`section`,{"aria-labelledby":p,children:[m,T]}),t[102]=p,t[103]=m,t[104]=T,t[105]=E):E=t[105];let D;t[106]===r.detailInstructionsHeading?D=t[107]:(D=(0,J.jsx)(`h3`,{id:`skill-detail-instructions-heading`,className:`mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted`,children:r.detailInstructionsHeading}),t[106]=r.detailInstructionsHeading,t[107]=D);let O;t[108]!==n.bodyMarkdown||t[109]!==r.detailNoInstructionsBody?(O=n.bodyMarkdown.trim()?(0,J.jsx)(`div`,{className:`markdown-content min-w-0 break-words`,children:(0,J.jsx)(ae,{content:n.bodyMarkdown})}):(0,J.jsx)(`p`,{className:`text-sm italic text-fg-muted`,children:r.detailNoInstructionsBody}),t[108]=n.bodyMarkdown,t[109]=r.detailNoInstructionsBody,t[110]=O):O=t[110];let k;t[111]!==D||t[112]!==O?(k=(0,J.jsxs)(`section`,{"aria-labelledby":`skill-detail-instructions-heading`,children:[D,O]}),t[111]=D,t[112]=O,t[113]=k):k=t[113];let A;return t[114]!==h||t[115]!==E||t[116]!==k?(A=(0,J.jsxs)(`div`,{className:h,children:[E,k]}),t[114]=h,t[115]=E,t[116]=k,t[117]=A):A=t[117],A}function Fe(e,t){return(0,J.jsx)(`li`,{className:`[overflow-wrap:anywhere]`,children:(0,J.jsx)(`span`,{className:`text-fg`,children:Ae(e)})},e.id||`${e.kind}-${t}`)}function Ie(e){return e.trim()}function Le(e){return e&&typeof e.kind==`string`}var Re=[{id:`s0`,width:`w-[92%]`},{id:`s1`,width:`w-full`},{id:`s2`,width:`w-4/5`},{id:`s3`,width:`w-[92%]`},{id:`s4`,width:`w-full`},{id:`s5`,width:`w-4/5`},{id:`s6`,width:`w-[92%]`},{id:`s7`,width:`w-full`},{id:`s8`,width:`w-4/5`},{id:`s9`,width:`w-[92%]`}];function ze(e){let t=(0,K.c)(81),{sk:n,detailOpen:r,setDetailOpen:i,detailSource:a,setDetailSource:o,detailTitle:s,setDetailTitle:c,detailCatalogPreview:l,setDetailCatalogPreview:p,detailMarketplacePreview:m,setDetailMarketplacePreview:h,detailLoading:g,detailError:_,setDetailError:v,detailEnabled:b,detailDirectoryId:x,detailManaged:w,detailExternalUrl:T,usingSkillInChatName:E,installingMarketName:D,togglingSkillName:O,isSkillInstalledByName:k,onUseSkillInChat:j,onMarketInstall:ee,onSkillToggle:P,setConfirmId:I,setConfirmOpen:te}=e,z;t[0]!==p||t[1]!==v||t[2]!==h||t[3]!==i||t[4]!==o||t[5]!==c?(z=e=>{i(e),e||(o(`catalog`),p(null),h(null),v(null),c(``))},t[0]=p,t[1]=v,t[2]=h,t[3]=i,t[4]=o,t[5]=c,t[6]=z):z=t[6];let ne;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,J.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[7]=ne):ne=t[7];let V;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(V=B(`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`),t[8]=V):V=t[8];let ie=s||`?`,H;t[9]===ie?H=t[10]:(H=(0,J.jsx)(me,{name:ie}),t[9]=ie,t[10]=H);let U=s||`—`,W;t[11]===U?W=t[12]:(W=(0,J.jsx)(L,{className:`min-w-0 flex-1 truncate text-base font-semibold text-fg`,children:U}),t[11]=U,t[12]=W);let ae;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(ae=B(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,F.focusRingPanel),t[13]=ae):ae=t[13];let oe;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,J.jsx)(N,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[14]=oe):oe=t[14];let G;t[15]===n.detailCloseAria?G=t[16]:(G=(0,J.jsx)(C,{asChild:!0,children:(0,J.jsx)(`button`,{type:`button`,className:ae,"aria-label":n.detailCloseAria,children:oe})}),t[15]=n.detailCloseAria,t[16]=G);let se;t[17]!==H||t[18]!==W||t[19]!==G?(se=(0,J.jsxs)(`div`,{className:`group flex min-h-[3.25rem] shrink-0 items-center gap-3 border-b border-edge px-4 py-3`,children:[H,W,G]}),t[17]=H,t[18]=W,t[19]=G,t[20]=se):se=t[20];let ce;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,J.jsx)(re,{className:`mt-0.5 size-4 shrink-0 text-blue-600 dark:text-blue-400`,strokeWidth:1.75,"aria-hidden":!0}),t[21]=ce):ce=t[21];let le=a===`store`&&m?n.detailModalBanner:a===`store`?n.detailModalBannerStore:n.detailModalBanner,q;t[22]===le?q=t[23]:(q=(0,J.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:[ce,(0,J.jsx)(`p`,{className:`min-w-0 leading-relaxed`,children:le})]}),t[22]=le,t[23]=q);let ue;t[24]!==l||t[25]!==b||t[26]!==_||t[27]!==g||t[28]!==m||t[29]!==a||t[30]!==n?(ue=(0,J.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-auto p-4`,children:g?(0,J.jsx)(`div`,{className:`flex h-full min-h-[14rem] flex-col gap-2.5 py-1`,"aria-busy":`true`,"aria-label":n.loading,children:Re.map(Be)}):_?(0,J.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:_}):a===`catalog`&&l?(0,J.jsxs)(J.Fragment,{children:[b?null:(0,J.jsxs)(`div`,{className:`mb-4 flex items-start gap-2 rounded-xl border border-amber-200 bg-amber-50 px-3 py-2.5 text-sm text-amber-900 dark:border-amber-900/50 dark:bg-amber-950/30 dark:text-amber-100`,children:[(0,J.jsx)(S,{className:`mt-0.5 size-4 shrink-0 text-amber-600 dark:text-amber-300`,strokeWidth:1.75,"aria-hidden":!0}),(0,J.jsx)(`p`,{className:`leading-relaxed`,children:n.detailDisabledNotice})]}),(0,J.jsx)(Pe,{preview:l,sk:n})]}):a===`store`&&m?(0,J.jsx)(Pe,{preview:m,sk:n}):(0,J.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:n.detailLoadFailed})}),t[24]=l,t[25]=b,t[26]=_,t[27]=g,t[28]=m,t[29]=a,t[30]=n,t[31]=ue):ue=t[31];let de;t[32]!==T||t[33]!==a||t[34]!==n.marketplaceOpenExternal||t[35]!==n.marketplaceOpenExternalAria?(de=a===`store`&&T?(0,J.jsxs)(`a`,{href:T,target:`_blank`,rel:`noopener noreferrer`,className:B(`inline-flex h-9 items-center gap-1.5 rounded-lg border border-edge bg-surface-panel px-3 text-sm font-medium text-fg-muted`,`hover:bg-surface-hover hover:text-fg dark:border-edge`,F.focusRingPanel),"aria-label":n.marketplaceOpenExternalAria,title:n.marketplaceOpenExternal,children:[(0,J.jsx)(A,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),(0,J.jsx)(`span`,{children:n.marketplaceOpenExternal})]}):null,t[32]=T,t[33]=a,t[34]=n.marketplaceOpenExternal,t[35]=n.marketplaceOpenExternalAria,t[36]=de):de=t[36];let fe;t[37]!==x||t[38]!==w||t[39]!==a||t[40]!==I||t[41]!==te||t[42]!==n.delete?(fe=a===`catalog`&&w&&x?(0,J.jsxs)(M,{type:`button`,variant:`ghost`,className:`gap-1.5 text-red-600 hover:bg-red-50 hover:text-red-700 dark:text-red-400 dark:hover:bg-red-950/40 dark:hover:text-red-300`,onClick:()=>{I(x),te(!0)},children:[(0,J.jsx)(d,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),n.delete]}):null,t[37]=x,t[38]=w,t[39]=a,t[40]=I,t[41]=te,t[42]=n.delete,t[43]=fe):fe=t[43];let pe;t[44]!==de||t[45]!==fe?(pe=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[de,fe]}),t[44]=de,t[45]=fe,t[46]=pe):pe=t[46];let Y;t[47]!==b||t[48]!==g||t[49]!==a||t[50]!==s||t[51]!==D||t[52]!==k||t[53]!==ee||t[54]!==P||t[55]!==j||t[56]!==i||t[57]!==n.cancel||t[58]!==n.detailModalDisable||t[59]!==n.detailModalEnable||t[60]!==n.marketplaceInstall||t[61]!==n.marketplaceReinstall||t[62]!==n.previewUseInChat||t[63]!==n.previewUseInChatBusy||t[64]!==n.uploading||t[65]!==n.useRequiresEnabled||t[66]!==O||t[67]!==E?(Y=(0,J.jsx)(`div`,{className:`flex items-center gap-2`,children:a===`store`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(M,{type:`button`,variant:`ghost`,onClick:()=>i(!1),children:n.cancel}),(0,J.jsx)(M,{type:`button`,variant:`secondary`,disabled:!s||g||E===s||D===s,onClick:()=>void j(),children:E===s?n.previewUseInChatBusy:n.previewUseInChat}),(0,J.jsx)(M,{type:`button`,variant:k(s)?`secondary`:`primary`,disabled:!s||D===s,onClick:()=>{s&&ee(s,{useDetailProvider:!0})},children:D===s?n.uploading:k(s)?n.marketplaceReinstall:n.marketplaceInstall})]}):(0,J.jsxs)(J.Fragment,{children:[b?(0,J.jsx)(M,{type:`button`,variant:`secondary`,disabled:!s||O===s,onClick:()=>{s&&P(s,!1)},children:O===s?n.uploading:n.detailModalDisable}):(0,J.jsx)(M,{type:`button`,variant:`primary`,disabled:!s||O===s,onClick:()=>{s&&P(s,!0)},children:O===s?n.uploading:n.detailModalEnable}),(0,J.jsx)(M,{type:`button`,variant:`secondary`,disabled:!s||!b||g||E===s||O===s,title:b?void 0:n.useRequiresEnabled,onClick:()=>void j(),children:E===s?n.previewUseInChatBusy:n.previewUseInChat})]})}),t[47]=b,t[48]=g,t[49]=a,t[50]=s,t[51]=D,t[52]=k,t[53]=ee,t[54]=P,t[55]=j,t[56]=i,t[57]=n.cancel,t[58]=n.detailModalDisable,t[59]=n.detailModalEnable,t[60]=n.marketplaceInstall,t[61]=n.marketplaceReinstall,t[62]=n.previewUseInChat,t[63]=n.previewUseInChatBusy,t[64]=n.uploading,t[65]=n.useRequiresEnabled,t[66]=O,t[67]=E,t[68]=Y):Y=t[68];let X;t[69]!==pe||t[70]!==Y?(X=(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-edge px-4 py-3`,children:[pe,Y]}),t[69]=pe,t[70]=Y,t[71]=X):X=t[71];let Z;t[72]!==se||t[73]!==q||t[74]!==ue||t[75]!==X?(Z=(0,J.jsxs)(R,{children:[ne,(0,J.jsxs)(f,{className:V,children:[se,q,ue,X]})]}),t[72]=se,t[73]=q,t[74]=ue,t[75]=X,t[76]=Z):Z=t[76];let he;return t[77]!==r||t[78]!==z||t[79]!==Z?(he=(0,J.jsx)(u,{open:r,onOpenChange:z,children:Z}),t[77]=r,t[78]=z,t[79]=Z,t[80]=he):he=t[80],he}function Be(e){return(0,J.jsx)(`div`,{className:B(`h-4 animate-pulse rounded-md bg-surface-hover dark:bg-surface-active/50`,e.width)},e.id)}function Ve(e){let t=(0,K.c)(67),{sk:n,installOpen:r,setInstallOpen:i,pendingFile:a,setPendingFile:o,dropActive:s,setDropActive:c,uploading:l,onModalDragOver:d,onModalDragLeave:p,onModalDrop:m,onFileInputChange:h,onInstallSubmit:g}=e,_;t[0]!==c||t[1]!==i||t[2]!==o?(_=e=>{i(e),e||(o(null),c(!1))},t[0]=c,t[1]=i,t[2]=o,t[3]=_):_=t[3];let v;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,J.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[4]=v):v=t[4];let b;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(b=B(`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`),t[5]=b):b=t[5];let x;t[6]===n.installModalTitle?x=t[7]:(x=(0,J.jsx)(L,{className:`text-base font-semibold text-fg`,children:n.installModalTitle}),t[6]=n.installModalTitle,t[7]=x);let S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=B(`rounded-lg p-1.5 text-fg-muted hover:bg-surface-hover hover:text-fg`,F.focusRingPanel),t[8]=S):S=t[8];let w;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,J.jsx)(N,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[9]=w):w=t[9];let T;t[10]===n.installClose?T=t[11]:(T=(0,J.jsx)(`span`,{className:`sr-only`,children:n.installClose}),t[10]=n.installClose,t[11]=T);let E;t[12]!==n.installClose||t[13]!==T?(E=(0,J.jsx)(C,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,className:S,"aria-label":n.installClose,children:[w,T]})}),t[12]=n.installClose,t[13]=T,t[14]=E):E=t[14];let D;t[15]!==x||t[16]!==E?(D=(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[x,E]}),t[15]=x,t[16]=E,t[17]=D):D=t[17];let O=s?`border-accent bg-accent-soft/60 dark:bg-blue-950/40`:`border-edge bg-surface-base dark:bg-surface-hover/30`,k;t[18]===O?k=t[19]:(k=B(`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`,O),t[18]=O,t[19]=k);let A;t[20]!==h||t[21]!==n.installModalDropHint||t[22]!==l?(A=(0,J.jsx)(`input`,{type:`file`,accept:`.zip,.md,application/zip,text/markdown`,className:`sr-only`,"aria-label":n.installModalDropHint,disabled:l,onChange:h}),t[20]=h,t[21]=n.installModalDropHint,t[22]=l,t[23]=A):A=t[23];let j;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,J.jsx)(te,{className:`size-12 text-fg-subtle`,strokeWidth:1.25,"aria-hidden":!0}),t[24]=j):j=t[24];let ee;t[25]===n.installModalDropHint?ee=t[26]:(ee=(0,J.jsx)(`span`,{className:`text-sm text-fg-muted`,children:n.installModalDropHint}),t[25]=n.installModalDropHint,t[26]=ee);let M;t[27]===a?M=t[28]:(M=a?(0,J.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:a.name}):null,t[27]=a,t[28]=M);let P;t[29]!==p||t[30]!==d||t[31]!==m||t[32]!==k||t[33]!==A||t[34]!==ee||t[35]!==M?(P=(0,J.jsxs)(`label`,{className:k,onDragLeave:p,onDragOver:d,onDrop:m,children:[A,j,ee,M]}),t[29]=p,t[30]=d,t[31]=m,t[32]=k,t[33]=A,t[34]=ee,t[35]=M,t[36]=P):P=t[36];let I;t[37]===n.installModalReqTitle?I=t[38]:(I=(0,J.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:n.installModalReqTitle}),t[37]=n.installModalReqTitle,t[38]=I);let z;t[39]===n.installModalReq1?z=t[40]:(z=(0,J.jsx)(`li`,{children:n.installModalReq1}),t[39]=n.installModalReq1,t[40]=z);let ne;t[41]===n.installModalReq2?ne=t[42]:(ne=(0,J.jsx)(`li`,{children:n.installModalReq2}),t[41]=n.installModalReq2,t[42]=ne);let re;t[43]!==z||t[44]!==ne?(re=(0,J.jsxs)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-fg-muted`,children:[z,ne]}),t[43]=z,t[44]=ne,t[45]=re):re=t[45];let V;t[46]!==I||t[47]!==re?(V=(0,J.jsxs)(`div`,{className:`mt-5 space-y-2`,children:[I,re]}),t[46]=I,t[47]=re,t[48]=V):V=t[48];let ie=!a||l,H=!a||l?`cursor-not-allowed bg-surface-active text-fg-disabled`:`bg-accent text-white hover:bg-accent-hover`,U;t[49]===H?U=t[50]:(U=B(`mt-6 flex w-full items-center justify-center rounded-xl py-3 text-sm font-semibold`,`transition-colors`,H,F.focusRingPanel),t[49]=H,t[50]=U);let W;t[51]===g?W=t[52]:(W=()=>void g(),t[51]=g,t[52]=W);let ae=l?n.uploading:n.installAction,oe;t[53]!==ie||t[54]!==U||t[55]!==W||t[56]!==ae?(oe=(0,J.jsx)(`button`,{type:`button`,disabled:ie,className:U,onClick:W,children:ae}),t[53]=ie,t[54]=U,t[55]=W,t[56]=ae,t[57]=oe):oe=t[57];let G;t[58]!==P||t[59]!==V||t[60]!==oe||t[61]!==D?(G=(0,J.jsxs)(R,{children:[v,(0,J.jsxs)(f,{className:b,children:[D,P,V,oe]})]}),t[58]=P,t[59]=V,t[60]=oe,t[61]=D,t[62]=G):G=t[62];let se;return t[63]!==r||t[64]!==_||t[65]!==G?(se=(0,J.jsx)(u,{open:r,onOpenChange:_,children:G}),t[63]=r,t[64]=_,t[65]=G,t[66]=se):se=t[66],se}function He(e){let t=(0,K.c)(42),{sk:n,mpCategories:r,mpCategoriesLoading:i,mpCategoriesError:a,mpPayload:o,mpLoading:s,mpError:c,marketCategoryId:l,setMarketCategoryId:u,marketPage:d,setMarketPage:f,isSkillInstalledByName:p,openMarketplaceDetail:m,onUseSkillInChat:h,usingSkillInChatName:y,searchInputActive:b,searchQuery:x,setSearchQuery:S,registeredProviders:C,marketBrowseProvider:w,setMarketBrowseProvider:T}=e,E=!b,D;if(t[0]!==p||t[1]!==w||t[2]!==l||t[3]!==d||t[4]!==r||t[5]!==a||t[6]!==i||t[7]!==c||t[8]!==s||t[9]!==o||t[10]!==h||t[11]!==m||t[12]!==C||t[13]!==b||t[14]!==x||t[15]!==T||t[16]!==u||t[17]!==f||t[18]!==S||t[19]!==E||t[20]!==n||t[21]!==y){let e;t[23]===w?e=t[24]:(e=e=>e.id!==w,t[23]=w,t[24]=e);let O=C.filter(e),k=x.trim(),A=(!E||!i&&r.length===0)&&`min-h-0 pb-0 pt-0`,j;t[25]===A?j=t[26]:(j=B(`-mx-1 flex min-h-[2.75rem] items-center gap-2 overflow-x-auto px-1 pb-1 pt-0.5 [scrollbar-width:thin]`,A),t[25]=A,t[26]=j);let ee=E&&(r.length>0||i)?`tablist`:void 0,N=E&&(r.length>0||i)?n.marketplaceCategoriesAria:void 0,P;t[27]!==l||t[28]!==r||t[29]!==i||t[30]!==u||t[31]!==E||t[32]!==n?(P=E?r.length>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":l===``,className:B(`shrink-0 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,F.focusRingPanel,l===``?`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:()=>u(``),children:n.marketplaceCategoryAll}),r.map(e=>{let t=l===e.id;return(0,J.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:B(`max-w-[14rem] shrink-0 truncate rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,F.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:()=>u(e.id),children:e.label},e.id)})]}):i?(0,J.jsx)(`div`,{className:`flex gap-2 px-1`,"aria-hidden":!0,children:[`p0`,`p1`,`p2`,`p3`,`p4`].map(qe)}):null:null,t[27]=l,t[28]=r,t[29]=i,t[30]=u,t[31]=E,t[32]=n,t[33]=P):P=t[33];let L;t[34]!==j||t[35]!==ee||t[36]!==N||t[37]!==P?(L=(0,J.jsx)(`div`,{className:j,role:ee,"aria-label":N,children:P}),t[34]=j,t[35]=ee,t[36]=N,t[37]=P,t[38]=L):L=t[38];let R;t[39]!==a||t[40]!==E?(R=E&&a?(0,J.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,role:`alert`,children:a}):null,t[39]=a,t[40]=E,t[41]=R):R=t[41],D=(0,J.jsxs)(J.Fragment,{children:[L,R,!o&&!c?(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,"aria-busy":`true`,"aria-label":n.loading,children:ve.map(Ke)}):c&&!o?(0,J.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:c}):o?(0,J.jsxs)(`div`,{className:`relative`,children:[s?(0,J.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":n.loading,children:(0,J.jsx)(I,{className:`size-8 shrink-0 animate-spin text-accent motion-reduce:animate-none`,strokeWidth:2,"aria-hidden":!0})}):null,o.items.length===0?(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3 rounded-2xl border border-dashed border-edge py-12 text-center text-sm text-fg-muted`,children:[(0,J.jsx)(`p`,{className:`px-4`,children:b&&k?ke(n.marketplaceEmptySearch,{query:k}):n.marketplaceEmpty}),b?(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:[O.map(e=>(0,J.jsx)(M,{type:`button`,variant:`secondary`,className:`h-8 px-3 text-xs`,onClick:()=>T(e.id),children:ke(n.marketplaceEmptySearchTryProvider,{provider:e.displayName})},e.id)),(0,J.jsx)(M,{type:`button`,variant:`ghost`,className:`h-8 px-3 text-xs`,onClick:()=>S(``),children:n.marketplaceEmptySearchClear})]}):null]}):(0,J.jsx)(`div`,{className:B(`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,s&&`pointer-events-none opacity-[0.52] motion-reduce:opacity-100`),children:o.items.map(e=>{let t=Oe(e,e.providerId??w),r=p(t);return(0,J.jsx)(`article`,{className:B(`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,J.jsx)(`div`,{role:`button`,tabIndex:0,className:B(`flex min-h-0 flex-1 cursor-pointer flex-col rounded-lg text-left outline-none`,F.focusRingPanel),"aria-labelledby":`mp-skill-title-${e.id}`,onClick:n=>{n.target.closest(`button`)||m(t,e.name,e.providerId??void 0)},onKeyDown:n=>{n.target.closest(`button`)||(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),m(t,e.name,e.providerId??void 0))},children:(0,J.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,J.jsx)(me,{name:e.id}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,J.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,J.jsx)(`h3`,{id:`mp-skill-title-${e.id}`,className:`min-w-0 flex-1 text-[15px] font-semibold leading-snug tracking-tight text-fg`,children:(0,J.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`truncate`,children:e.name}),r?null:(0,J.jsx)(`span`,{className:`shrink-0 text-[10px] font-normal leading-none text-fg-subtle`,children:n.marketplaceNotInstalled})]})}),(0,J.jsx)(`div`,{role:`group`,className:`flex shrink-0 items-center gap-1`,onClick:Ge,onKeyDown:$,children:(0,J.jsx)(M,{type:`button`,variant:`secondary`,className:`h-8 shrink-0 whitespace-nowrap px-2.5 text-xs font-medium`,disabled:s||y===t,onClick:()=>void h({name:t,source:`store`,providerOverride:e.providerId??null}),children:y===t?n.previewUseInChatBusy:n.previewUseInChat})})]}),(()=>{let t=[],n=(e,n)=>{if(!e||t.some(t=>t.id===e))return;let r=C.find(t=>t.id===e)?.displayName??n??e;t.push({id:e,label:r})};n(e.providerId,e.sourceLabel);for(let t of e.additionalSources??[])n(t.providerId,t.sourceLabel);return t.length===0&&e.sourceLabel&&t.push({id:e.sourceLabel,label:e.sourceLabel}),t.length===0?null:(0,J.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.map(We)})})(),(0,J.jsx)(`p`,{className:`line-clamp-2 text-sm leading-relaxed text-fg-muted`,title:e.description?e.description:void 0,children:e.description||`—`}),(0,J.jsxs)(`div`,{className:`mt-auto min-h-[2.625rem] space-y-1 text-[11px] leading-snug text-fg-muted`,children:[(0,J.jsxs)(`p`,{className:`line-clamp-1`,title:`${n.marketplaceAuthor}: ${e.author.username} · ${n.marketplaceDownloads}: ${e.downloads}${e.stars!=null&&e.stars>0?` · ★${e.stars}`:``}${r?` · ${n.marketplaceInstalled}`:``}`,children:[(0,J.jsx)(`span`,{className:`text-fg-subtle`,children:n.marketplaceAuthor}),` `,(0,J.jsx)(`span`,{className:`text-fg`,children:e.author.username}),(0,J.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,J.jsxs)(`span`,{children:[n.marketplaceDownloads,`: `,e.downloads]}),e.stars!=null&&e.stars>0?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-fg-muted`,children:[(0,J.jsx)(g,{className:`size-3 shrink-0 text-amber-600 dark:text-amber-400`,strokeWidth:2,"aria-hidden":!0}),e.stars]})]}):null,r?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`span`,{className:`text-fg-subtle`,children:` · `}),(0,J.jsx)(`span`,{className:`text-emerald-700 dark:text-emerald-400`,children:n.marketplaceInstalled})]}):null]}),e.latestVersion?(0,J.jsxs)(`p`,{className:`line-clamp-1 min-h-[1.125rem] font-mono text-[10px] text-fg-subtle`,title:`${n.marketplaceVersion}: ${e.latestVersion}`,children:[n.marketplaceVersion,`: `,e.latestVersion]}):null]})]})]})})},e.id)})}),o.items.length>0?(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col items-center justify-between gap-3 sm:flex-row`,children:[(0,J.jsx)(`p`,{className:`text-center text-xs text-fg-muted sm:text-left`,children:ke(n.marketplacePageStatus,{page:o.meta.page,totalPages:o.meta.totalPages,total:o.meta.total})}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsxs)(M,{type:`button`,variant:`ghost`,className:`h-9 gap-1 px-2`,disabled:s||d<=1,"aria-label":n.marketplacePagePrev,onClick:()=>f(Ue),children:[(0,J.jsx)(v,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),(0,J.jsx)(`span`,{className:`sr-only sm:not-sr-only`,children:n.marketplacePagePrev})]}),(0,J.jsxs)(M,{type:`button`,variant:`ghost`,className:`h-9 gap-1 px-2`,disabled:s||d>=o.meta.totalPages,"aria-label":n.marketplacePageNext,onClick:()=>f(e=>Math.min(o.meta.totalPages,e+1)),children:[(0,J.jsx)(`span`,{className:`sr-only sm:not-sr-only`,children:n.marketplacePageNext}),(0,J.jsx)(_,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0})]})]})]}):null]}):null]}),t[0]=p,t[1]=w,t[2]=l,t[3]=d,t[4]=r,t[5]=a,t[6]=i,t[7]=c,t[8]=s,t[9]=o,t[10]=h,t[11]=m,t[12]=C,t[13]=b,t[14]=x,t[15]=T,t[16]=u,t[17]=f,t[18]=S,t[19]=E,t[20]=n,t[21]=y,t[22]=D}else D=t[22];return D}function Ue(e){return Math.max(1,e-1)}function We(e){return(0,J.jsx)(`span`,{className:`inline-flex items-center rounded-full border border-edge-subtle bg-surface-panel px-2 py-0.5 text-[10px] font-medium leading-none text-fg-muted dark:bg-surface-hover/40`,children:e.label},e.id)}function $(e){return e.stopPropagation()}function Ge(e){return e.stopPropagation()}function Ke(e){return(0,J.jsx)(X,{},e)}function qe(e){return(0,J.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`},e)}function Je(e){let t=(0,K.c)(131),{vm:n}=e,{sk:r,hasToken:i,error:a,actionFeedback:o,mainTab:s,setMainTab:c,setSourceFilter:l,builtinTabStats:u,userTabStats:d,catalogDisabledCount:f,catalogStatusFilter:p,setCatalogStatusFilter:m,marketSort:h,setMarketSort:g,marketBrowseProvider:_,setMarketBrowseProvider:v,registeredProviders:y,filterLabel:x,inSettingsShell:S,searchInputActive:C,resultTab:w,setResultTab:T,aggregatedTabCounts:E,aggregatedProviderStatus:D}=n;if(!i){let e;t[0]===n?e=t[1]:(e=(0,J.jsx)(Ze,{vm:n}),t[0]=n,t[1]=e);let i;t[2]===r.needToken?i=t[3]:(i=(0,J.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:r.needToken}),t[2]=r.needToken,t[3]=i);let a;return t[4]!==e||t[5]!==i?(a=(0,J.jsxs)(J.Fragment,{children:[e,i]}),t[4]=e,t[5]=i,t[6]=a):a=t[6],a}let O;t[7]===n?O=t[8]:(O=(0,J.jsx)(Ze,{vm:n}),t[7]=n,t[8]=O);let A;t[9]!==o||t[10]!==a?(A=o?(0,J.jsx)(`div`,{role:`status`,"aria-live":`polite`,className:B(`rounded-xl border px-3 py-2 text-sm`,o.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:o.message}):a?(0,J.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:a}):null,t[9]=o,t[10]=a,t[11]=A):A=t[11];let j;t[12]!==S||t[13]!==n.loading||t[14]!==n.mainTab||t[15]!==n.onReloadClick||t[16]!==n.searchQuery||t[17]!==n.setInstallOpen||t[18]!==n.setPendingFile||t[19]!==n.setSearchQuery||t[20]!==n.sk?(j=S?(0,J.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:(0,J.jsx)(ue,{loading:n.loading,onReloadClick:n.onReloadClick,searchQuery:n.searchQuery,setSearchQuery:n.setSearchQuery,mainTab:n.mainTab,sk:n.sk,setPendingFile:n.setPendingFile,setInstallOpen:n.setInstallOpen})}):null,t[12]=S,t[13]=n.loading,t[14]=n.mainTab,t[15]=n.onReloadClick,t[16]=n.searchQuery,t[17]=n.setInstallOpen,t[18]=n.setPendingFile,t[19]=n.setSearchQuery,t[20]=n.sk,t[21]=j):j=t[21];let ee=r.skillsNavAria,M=s===`marketplace`,N=s===`marketplace`?`text-fg`:`text-fg-muted hover:text-fg`,P=s===`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`,I;t[22]!==N||t[23]!==P?(I=B(`relative max-w-full rounded-md px-3 py-2 text-left text-sm font-medium transition-colors sm:text-center`,N,P),t[22]=N,t[23]=P,t[24]=I):I=t[24];let L;t[25]===c?L=t[26]:(L=()=>c(`marketplace`),t[25]=c,t[26]=L);let R;t[27]!==r.tabMarketplace||t[28]!==M||t[29]!==I||t[30]!==L?(R=(0,J.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":M,className:I,onClick:L,children:r.tabMarketplace}),t[27]=r.tabMarketplace,t[28]=M,t[29]=I,t[30]=L,t[31]=R):R=t[31];let te=s===`builtin`,z=s===`builtin`?`text-fg`:`text-fg-muted hover:text-fg`,ne=s===`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`,re;t[32]!==z||t[33]!==ne?(re=B(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,z,ne),t[32]=z,t[33]=ne,t[34]=re):re=t[34];let V;t[35]===c?V=t[36]:(V=()=>c(`builtin`),t[35]=c,t[36]=V);let ie;t[37]!==u.enabled||t[38]!==u.total?(ie=(0,J.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,u.enabled,`/`,u.total,`)`]}),t[37]=u.enabled,t[38]=u.total,t[39]=ie):ie=t[39];let H;t[40]!==r.tabBuiltin||t[41]!==te||t[42]!==re||t[43]!==V||t[44]!==ie?(H=(0,J.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":te,className:re,onClick:V,children:[r.tabBuiltin,ie]}),t[40]=r.tabBuiltin,t[41]=te,t[42]=re,t[43]=V,t[44]=ie,t[45]=H):H=t[45];let U=s===`user`,W=s===`user`?`text-fg`:`text-fg-muted hover:text-fg`,ae=s===`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`,q;t[46]!==W||t[47]!==ae?(q=B(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,W,ae),t[46]=W,t[47]=ae,t[48]=q):q=t[48];let de;t[49]===c?de=t[50]:(de=()=>c(`user`),t[49]=c,t[50]=de);let fe;t[51]!==d.enabled||t[52]!==d.total?(fe=(0,J.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,d.enabled,`/`,d.total,`)`]}),t[51]=d.enabled,t[52]=d.total,t[53]=fe):fe=t[53];let pe;t[54]!==r.tabUser||t[55]!==U||t[56]!==q||t[57]!==de||t[58]!==fe?(pe=(0,J.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":U,className:q,onClick:de,children:[r.tabUser,fe]}),t[54]=r.tabUser,t[55]=U,t[56]=q,t[57]=de,t[58]=fe,t[59]=pe):pe=t[59];let me;t[60]!==r.skillsNavAria||t[61]!==R||t[62]!==H||t[63]!==pe?(me=(0,J.jsxs)(`div`,{className:`flex flex-wrap gap-x-1 gap-y-1`,role:`tablist`,"aria-label":ee,children:[R,H,pe]}),t[60]=r.skillsNavAria,t[61]=R,t[62]=H,t[63]=pe,t[64]=me):me=t[64];let Y=s===`user`?`flex-nowrap overflow-x-auto pb-0.5 sm:justify-end`:`flex-wrap sm:justify-end`,X;t[65]===Y?X=t[66]:(X=B(`flex min-h-9 min-w-0 items-center gap-2`,Y),t[65]=Y,t[66]=X);let Z;t[67]!==x||t[68]!==s||t[69]!==l||t[70]!==r.filterAll||t[71]!==r.filterExtra||t[72]!==r.filterGlobal||t[73]!==r.filterWorkspace?(Z=s===`user`?(0,J.jsxs)(oe,{children:[(0,J.jsx)(se,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,className:B(`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`,F.transition,F.focusRingPanel),children:[(0,J.jsx)(k,{className:`size-3.5 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,J.jsx)(`span`,{children:x}),(0,J.jsx)(b,{className:`size-3.5 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})]})}),(0,J.jsx)(ce,{children:(0,J.jsx)(le,{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,J.jsx)(G,{className:B(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>l(e),children:e===`all`?r.filterAll:e===`global`?r.filterGlobal:e===`workspace`?r.filterWorkspace:r.filterExtra},e))})})]}):null,t[67]=x,t[68]=s,t[69]=l,t[70]=r.filterAll,t[71]=r.filterExtra,t[72]=r.filterGlobal,t[73]=r.filterWorkspace,t[74]=Z):Z=t[74];let he;t[75]!==D||t[76]!==E||t[77]!==s||t[78]!==_||t[79]!==h||t[80]!==y||t[81]!==w||t[82]!==C||t[83]!==v||t[84]!==g||t[85]!==T||t[86]!==r.marketplaceBrowseSwitchAria||t[87]!==r.marketplaceLoadFailed||t[88]!==r.marketplaceResultsTabAll||t[89]!==r.marketplaceResultsTabsAria||t[90]!==r.marketplaceSortDownloads||t[91]!==r.marketplaceSortNewest?(he=s===`marketplace`?C?(0,J.jsx)(`div`,{className:`inline-flex h-9 shrink-0 rounded-lg border border-edge bg-surface-panel p-0.5 shadow-surface`,role:`tablist`,"aria-label":r.marketplaceResultsTabsAria,children:[`all`,...y.map(Xe)].map(e=>{let t=w===e,n=e===`all`?r.marketplaceResultsTabAll:y.find(t=>t.id===e)?.displayName??e,i=E[e]??0,a=e===`all`?null:D[e];return(0,J.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:B(`inline-flex items-center gap-1 rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors`,F.focusRingPanel,t?`bg-fg text-surface-panel dark:bg-fg dark:text-surface-base`:`text-fg-muted hover:text-fg`),onClick:()=>T(e),title:a===`error`?`${n} · ${r.marketplaceLoadFailed}`:void 0,children:[(0,J.jsx)(`span`,{children:n}),a===`loading`?(0,J.jsx)(`span`,{className:B(`inline-block size-1.5 animate-pulse rounded-full motion-reduce:animate-none`,t?`bg-surface-panel/70`:`bg-fg-muted/60`),"aria-hidden":!0}):a===`error`?(0,J.jsx)(`span`,{className:`inline-block size-1.5 rounded-full bg-red-500`,"aria-hidden":!0}):(0,J.jsx)(`span`,{className:`tabular-nums opacity-70`,children:i})]},e)})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.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":r.marketplaceBrowseSwitchAria,children:y.map(e=>{let t=_===e.id;return(0,J.jsx)(`button`,{type:`button`,className:B(`rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors`,F.focusRingPanel,t?`bg-fg text-surface-panel dark:bg-fg dark:text-surface-base`:`text-fg-muted hover:text-fg`),"aria-pressed":t,onClick:()=>v(e.id),children:e.displayName},e.id)})}),(0,J.jsxs)(oe,{children:[(0,J.jsx)(se,{asChild:!0,children:(0,J.jsxs)(`button`,{type:`button`,className:B(`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`,F.transition,F.focusRingPanel),children:[(0,J.jsx)(k,{className:`size-3.5 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,J.jsx)(`span`,{children:h===`newest`?r.marketplaceSortNewest:r.marketplaceSortDownloads}),(0,J.jsx)(b,{className:`size-3.5 text-fg-subtle`,strokeWidth:1.75,"aria-hidden":!0})]})}),(0,J.jsx)(ce,{children:(0,J.jsxs)(le,{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,J.jsx)(G,{className:B(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>g(`downloads`),children:r.marketplaceSortDownloads}),(0,J.jsx)(G,{className:B(`cursor-pointer rounded-lg px-3 py-2 text-sm text-fg outline-none`,`hover:bg-surface-hover data-[highlighted]:bg-surface-hover`),onSelect:()=>g(`newest`),children:r.marketplaceSortNewest})]})})]})]}):null,t[75]=D,t[76]=E,t[77]=s,t[78]=_,t[79]=h,t[80]=y,t[81]=w,t[82]=C,t[83]=v,t[84]=g,t[85]=T,t[86]=r.marketplaceBrowseSwitchAria,t[87]=r.marketplaceLoadFailed,t[88]=r.marketplaceResultsTabAll,t[89]=r.marketplaceResultsTabsAria,t[90]=r.marketplaceSortDownloads,t[91]=r.marketplaceSortNewest,t[92]=he):he=t[92];let ge;t[93]!==f||t[94]!==p||t[95]!==s||t[96]!==m||t[97]!==r.filterAll||t[98]!==r.filterDisabledOnly||t[99]!==r.filterDisabledOnlyAria?(ge=s!==`marketplace`&&f>0?(0,J.jsx)(`button`,{type:`button`,className:B(`inline-flex h-9 shrink-0 items-center rounded-lg border px-2.5 text-xs font-medium transition-colors`,F.focusRingPanel,p===`disabled`?`border-fg bg-fg text-surface-panel dark:border-fg dark:bg-fg dark:text-surface-base`:`border-amber-300/80 bg-amber-50/90 text-amber-950 hover:border-amber-400 dark:border-amber-700/60 dark:bg-amber-950/40 dark:text-amber-100`),"aria-pressed":p===`disabled`,"aria-label":r.filterDisabledOnlyAria,onClick:()=>m(Ye),children:p===`disabled`?r.filterAll:ke(r.filterDisabledOnly,{count:f})}):s===`builtin`?(0,J.jsx)(`div`,{className:`h-9 min-w-[9rem] shrink-0`,"aria-hidden":!0}):null,t[93]=f,t[94]=p,t[95]=s,t[96]=m,t[97]=r.filterAll,t[98]=r.filterDisabledOnly,t[99]=r.filterDisabledOnlyAria,t[100]=ge):ge=t[100];let _e;t[101]!==X||t[102]!==Z||t[103]!==he||t[104]!==ge?(_e=(0,J.jsxs)(`div`,{className:X,children:[Z,he,ge]}),t[101]=X,t[102]=Z,t[103]=he,t[104]=ge,t[105]=_e):_e=t[105];let ve;t[106]!==me||t[107]!==_e?(ve=(0,J.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:[me,_e]}),t[106]=me,t[107]=_e,t[108]=ve):ve=t[108];let ye;t[109]!==s||t[110]!==n?(ye=s===`marketplace`?(0,J.jsx)(He,{...n}):(0,J.jsx)(be,{...n}),t[109]=s,t[110]=n,t[111]=ye):ye=t[111];let xe;t[112]!==ve||t[113]!==ye?(xe=(0,J.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[ve,ye]}),t[112]=ve,t[113]=ye,t[114]=xe):xe=t[114];let Se;t[115]!==A||t[116]!==j||t[117]!==xe?(Se=(0,J.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[A,j,xe]}),t[115]=A,t[116]=j,t[117]=xe,t[118]=Se):Se=t[118];let Ce,Q,we;t[119]===n?(Ce=t[120],Q=t[121],we=t[122]):(Ce=(0,J.jsx)(ze,{...n}),Q=(0,J.jsx)(Ve,{...n}),we=(0,J.jsx)(Me,{...n}),t[119]=n,t[120]=Ce,t[121]=Q,t[122]=we);let Te;t[123]!==Se||t[124]!==Ce||t[125]!==Q||t[126]!==we?(Te=(0,J.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[Se,Ce,Q,we]}),t[123]=Se,t[124]=Ce,t[125]=Q,t[126]=we,t[127]=Te):Te=t[127];let Ee;return t[128]!==O||t[129]!==Te?(Ee=(0,J.jsxs)(J.Fragment,{children:[O,Te]}),t[128]=O,t[129]=Te,t[130]=Ee):Ee=t[130],Ee}function Ye(e){return e===`disabled`?`all`:`disabled`}function Xe(e){return e.id}function Ze(e){let t=(0,K.c)(17),{vm:n}=e,{sk:r,hasToken:i,loading:a,onReloadClick:o,searchQuery:s,setSearchQuery:c,mainTab:l,setPendingFile:u,setInstallOpen:d,inSettingsShell:f}=n,p=w($e),m=w(Qe),h;t[0]!==a||t[1]!==l||t[2]!==o||t[3]!==s||t[4]!==d||t[5]!==u||t[6]!==c||t[7]!==r?(h=(0,J.jsx)(ue,{loading:a,onReloadClick:o,searchQuery:s,setSearchQuery:c,mainTab:l,sk:r,setPendingFile:u,setInstallOpen:d}),t[0]=a,t[1]=l,t[2]=o,t[3]=s,t[4]=d,t[5]=u,t[6]=c,t[7]=r,t[8]=h):h=t[8];let g=h,_,v;return t[9]!==m||t[10]!==i||t[11]!==f||t[12]!==p||t[13]!==r.title||t[14]!==g?(_=()=>!i||f?(m(),()=>m()):(p({startExtra:null,main:(0,J.jsx)(`div`,{className:`min-w-0`,children:(0,J.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r.title})}),end:g}),()=>m()),v=[m,i,f,p,g,r.title],t[9]=m,t[10]=i,t[11]=f,t[12]=p,t[13]=r.title,t[14]=g,t[15]=_,t[16]=v):(_=t[15],v=t[16]),(0,q.useLayoutEffect)(_,v),null}function Qe(e){return e.clearPageHeader}function $e(e){return e.setPageHeader}async function et(t){let n=t.name.toLowerCase();if(n.endsWith(`.zip`))return t;if(n.endsWith(`skill.md`)){let n=(await o(async()=>{let{default:t}=await import(`./jszip.min-DT31yWkU.js`).then(t=>e(t.default,1));return{default:t}},__vite__mapDeps([0,1]))).default,r=new n;r.file(`SKILL.md`,await t.arrayBuffer());let i=await r.generateAsync({type:`blob`,compression:`DEFLATE`}),a=t.name.replace(/\.md$/i,``).replace(/\s+/g,`-`)||`skill`;return new File([i],`${a}.zip`,{type:`application/zip`})}throw Error(`invalid`)}function tt(){let e=a(i(e=>e.language)).skills,t=!!s(e=>e.token),n=ee(),[r,o]=ne(),u=r.get(`mprov`)?.trim()||null,[d,f]=(0,q.useState)(!1),[g,_]=(0,q.useState)(null),[v,y]=(0,q.useState)(!1),b=r.get(`q`)??``,S=r.get(`tab`),C=r.get(`source`),w=he.has(S)?S:`marketplace`,D=ge.has(C)?C:`all`,[k,A]=(0,q.useState)(b),[M]=p(k,250),N=M.trim(),P=k.trim().length>0,F=N.length>0,[I,L]=(0,q.useState)(null),[R,te]=(0,q.useState)(w),[B,re]=(0,q.useState)(D),[U,ae]=(0,q.useState)(``),[oe,G]=(0,q.useState)(`all`),[se,ce]=(0,q.useState)(!1),[le,K]=(0,q.useState)(null),[J,ue]=(0,q.useState)(!1),[de,fe]=(0,q.useState)(!1),[pe,me]=(0,q.useState)(null),[Y,X]=(0,q.useState)(null),[Z,ve]=(0,q.useState)({}),[be,xe]=(0,q.useState)(!1),[Se,Ce]=(0,q.useState)(`catalog`),[Q,we]=(0,q.useState)(``),[Te,Ee]=(0,q.useState)(null),[Oe,ke]=(0,q.useState)(null),[Ae,Me]=(0,q.useState)(!1),[Ne,Pe]=(0,q.useState)(null),[Fe,Ie]=(0,q.useState)(`downloads`),[Le,Re]=(0,q.useState)(1),[ze,Be]=(0,q.useState)(null),[Ve,He]=(0,q.useState)(null),[Ue,We]=(0,q.useState)(``),[$,Ge]=(0,q.useState)(()=>u),[Ke,qe]=(0,q.useState)(0),Je=(0,q.useRef)(null),Ye=(0,q.useRef)(u),Xe=(0,q.useRef)(null),Ze=(0,q.useRef)(``),Qe=(0,q.useRef)(null),[$e,tt]=(0,q.useState)({query:``,byProvider:{}}),[nt,rt]=(0,q.useState)(`all`),it=(0,q.useRef)(0),at=(0,q.useRef)(N);at.current!==N&&(at.current=N,rt(e=>e===`all`?e:`all`));let ot=W(()=>l().then(e=>e.catalog.map(je)),[t],{enabled:t,initial:[],errorData:[]}),{data:st,loading:ct,setData:lt}=ot,ut=W(async()=>{try{let{providers:e,current:t}=await T();return{providers:e.map(e=>({id:e.id,displayName:e.displayName})),current:t}}catch{try{return{providers:[],current:(await E()).provider}}catch{return{providers:[],current:`skillhub`}}}},[t,Ke],{enabled:t,initial:{providers:[],current:null}}),dt=d||ct,ft=ut.data.providers;(0,q.useEffect)(()=>{let e=()=>qe(e=>e+1);return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[]);let pt=r.toString(),mt=(0,q.useRef)(pt);if(mt.current!==pt){mt.current=pt;let e=r.get(`q`)??``,t=r.get(`tab`),n=r.get(`source`),i=he.has(t)?t:`marketplace`,a=ge.has(n)?n:`all`;A(t=>t===e?t:e),te(e=>e===i?e:i),re(e=>e===a?e:a);let o=r.get(`mcat`)??``;We(i===`marketplace`?e=>e===o?e:o:``)}let ht=(0,q.useRef)(t);!t&&ht.current&&(Ge(null),Je.current=null),ht.current=t,t&&u&&Ye.current!==u&&(Ye.current=u,Ge(u)),t&&u==null&&ut.data.current&&ut.data.current!==Xe.current&&(Xe.current=ut.data.current,Ge(e=>e??ut.data.current));let gt=`${N}|${Fe}|${R}|${Ue}|${$??``}|${nt}`;Ze.current!==gt&&(Ze.current=gt,Re(1)),R===`marketplace`&&$&&Qe.current!=null&&Qe.current!==$&&We(``),Qe.current=$;let _t=W(()=>O({page:Le,pageSize:20,sort:Fe,category:Ue.trim()||void 0,provider:$}),[t,R,Ue,Le,Fe,F,$],{enabled:t&&R===`marketplace`&&!!$&&!F,initial:null,errorData:null});(0,q.useLayoutEffect)(()=>{!t||!P||te(e=>e===`marketplace`?e:`marketplace`)},[t,P]),(0,q.useEffect)(()=>{if(!t||!F||R!==`marketplace`||ft.length===0)return;let n=++it.current,r={};for(let e of ft)r[e.id]={status:`loading`,rows:[]};tt({query:N,byProvider:r});let i=[],a=[];for(let t of ft){let r=new AbortController;i.push(r);let o=window.setTimeout(()=>{r.abort(new DOMException(`Adapter timed out`,`TimeoutError`))},8e3);a.push(o),O({provider:t.id,q:N,page:1,pageSize:40,sort:Fe,signal:r.signal}).then(e=>{if(window.clearTimeout(o),n!==it.current)return;let r=e.items.map(e=>({...e,providerId:t.id}));tt(e=>({...e,byProvider:{...e.byProvider,[t.id]:{status:`ok`,rows:r}}}))}).catch(r=>{if(window.clearTimeout(o),n!==it.current)return;let i=r instanceof DOMException&&(r.name===`TimeoutError`||r.name===`AbortError`)?e.marketplaceLoadFailed:r instanceof Error?r.message:e.marketplaceLoadFailed;tt(e=>({...e,byProvider:{...e.byProvider,[t.id]:{status:`error`,rows:[],error:i}}}))})}return()=>{for(let e of a)window.clearTimeout(e);for(let e of i)e.abort()}},[t,R,F,N,ft,Fe,e.marketplaceLoadFailed]);let vt=W(()=>V({provider:$}).then(e=>e.items),[t,R,$],{enabled:t&&R===`marketplace`&&!!$,initial:[],errorData:[]}),yt=(0,q.useMemo)(()=>{if(!F||$e.query!==N)return[];let e=ft.map(e=>({id:e.id,rows:[...$e.byProvider[e.id]?.rows??[]]})),t=[];for(;e.some(e=>e.rows.length>0);)for(let n of e)n.rows.length>0&&t.push(n.rows.shift());let n=new Map;for(let e of t){let t=[(e.id??``).toLowerCase().trim(),(e.name??``).toLowerCase().trim(),(e.author?.username??``).toLowerCase().trim()].join(`|`),r=n.get(t);if(!r){n.set(t,{...e,additionalSources:[]});continue}if(e.providerId&&e.providerId!==r.providerId){let t=r.additionalSources??[];t.some(t=>t.providerId===e.providerId)||(t.push({providerId:e.providerId,sourceLabel:e.sourceLabel}),r.additionalSources=t)}}return Array.from(n.values())},[F,N,$e,ft]),bt=(0,q.useMemo)(()=>{if(!F)return{};let e={all:yt.length};for(let t of ft)e[t.id]=yt.filter(e=>e.providerId===t.id||(e.additionalSources??[]).some(e=>e.providerId===t.id)).length;return e},[F,yt,ft]),xt=(0,q.useMemo)(()=>F?nt===`all`?yt:yt.filter(e=>e.providerId===nt||(e.additionalSources??[]).some(e=>e.providerId===nt)):[],[F,yt,nt]),St=(0,q.useMemo)(()=>{if(!F)return{};let e={};for(let t of ft)e[t.id]=$e.byProvider[t.id]?.status??`loading`;return e},[F,$e,ft]),Ct=(0,q.useMemo)(()=>Object.values(St).some(e=>e===`loading`),[St]),wt=(0,q.useMemo)(()=>{if(!F)return!1;let e=Object.values(St);return e.length>0&&e.every(e=>e===`error`)},[F,St]),Tt=(0,q.useMemo)(()=>{if(!F||yt.length===0&&Ct)return null;let e=xt.length,t=(Le-1)*20;return{items:xt.slice(t,t+20),meta:{page:Le,pageSize:20,total:e,totalPages:Math.max(1,Math.ceil(e/20))},provider:nt}},[F,yt,Ct,xt,Le,nt]),Et=R===`marketplace`?P?F?Tt:null:_t.data:null,Dt=R===`marketplace`?P?F?Ct:!0:_t.loading:!1,Ot=F?wt?e.marketplaceLoadFailed:null:_t.error instanceof Error?_t.error.message:_t.error?e.marketplaceLoadFailed:null,kt=R===`marketplace`?vt.data:[],At=R===`marketplace`?vt.loading:!1,jt=vt.error instanceof Error?vt.error.message:vt.error?e.marketplaceCategoriesFailed:null;Ue.trim()&&kt.length>0&&!kt.some(e=>e.id===Ue)&&We(``);let Mt=(0,q.useCallback)(async t=>{let n=t?.silent===!0;n||f(!0),_(null);try{return lt((await l()).catalog.map(je)),{ok:!0}}catch(t){let n=t instanceof Error?t.message:e.loadFailed;return _(n),{ok:!1,message:n}}finally{n||f(!1)}},[lt,e.loadFailed]),Nt=!d&&ot.error?ot.error instanceof Error?ot.error.message:e.loadFailed:null,Pt=g??Nt;(0,q.useEffect)(()=>{o(e=>{let t=new URLSearchParams(e);return N?t.set(`q`,N):t.delete(`q`),R===`marketplace`?t.delete(`tab`):t.set(`tab`,R),B===`all`?t.delete(`source`):t.set(`source`,B),R===`marketplace`&&Ue.trim()?t.set(`mcat`,Ue.trim()):t.delete(`mcat`),R===`marketplace`&&$?t.set(_e,$):t.delete(_e),t.toString()===e.toString()?e:t},{replace:!0})},[R,Ue,$,N,o,B]);let Ft=(0,q.useCallback)((e,t,n=5e3)=>{L({kind:e,message:t}),window.setTimeout(()=>L(null),n)},[]),It=(0,q.useCallback)(async t=>{Ce(`catalog`),xe(!0),we(t.name),Ee(null),ke(null),Pe(null),Me(!0);try{let e=await x(t.name);Ee(e),we(e.name)}catch(t){Ee(null),Pe(t instanceof Error?t.message:e.detailLoadFailed)}finally{Me(!1)}},[e.detailLoadFailed]),Lt=(0,q.useCallback)(async(t,n,r)=>{let i=r?.trim()||$;if(i){Je.current=i,Ce(`store`),xe(!0),we(n?.trim()||t),Ee(null),ke(null),Pe(null),Me(!0);try{let e=await m(t,{provider:i});we(e.name),ke(e.skillDocPreview)}catch(t){ke(null),Pe(t instanceof Error?t.message:e.detailLoadFailed)}finally{Me(!1)}}},[$,e.detailLoadFailed]),Rt=(0,q.useCallback)(async(t,n)=>{X(t),ve(e=>({...e,[t]:n})),L(null);try{return await H(t,n),await Mt({silent:!0}),!0}catch(n){return ve(e=>{let{[t]:n,...r}=e;return r}),Ft(`error`,n instanceof Error?n.message:e.skillToggleFailed),!1}finally{X(null),ve(e=>{let{[t]:n,...r}=e;return r})}},[Mt,Ft,e.skillToggleFailed]),zt=(0,q.useCallback)(async()=>{L(null),f(!0),_(null);try{await z()}catch(t){_(t instanceof Error?t.message:e.reloadFailed),f(!1);return}await Mt()},[Mt,e.reloadFailed]),Bt=(0,q.useMemo)(()=>{let e=k.trim().toLowerCase();return e?st.filter(t=>[t.name,t.description,t.directoryId,t.path,t.source,t.hub?.source,t.hub?.ref].filter(Boolean).join(` `).toLowerCase().includes(e)):st},[st,k]),Vt=(0,q.useMemo)(()=>{let e=Bt.filter(e=>e.source===`builtin`);return{total:e.length,enabled:e.filter(e=>Z[e.name]??e.enabled).length}},[Bt,Z]),Ht=(0,q.useMemo)(()=>{let e=Bt.filter(e=>e.source!==`builtin`);return{total:e.length,enabled:e.filter(e=>Z[e.name]??e.enabled).length}},[Bt,Z]),Ut=(0,q.useMemo)(()=>Q?st.find(e=>e.name===Q):void 0,[st,Q]),Wt=Ut==null?!0:Z[Q]??Ut.enabled,Gt=Ut?.directoryId??null,Kt=Ut?.managed??!1,qt=(0,q.useMemo)(()=>Se!==`store`||!Q?null:De(Je.current??$,Q),[Se,Q,$]),Jt=(0,q.useMemo)(()=>{let e=Bt;return R===`builtin`?e=e.filter(e=>e.source===`builtin`):R===`user`&&(e=e.filter(e=>e.source!==`builtin`),B!==`all`&&(e=e.filter(e=>e.source===B))),e},[Bt,R,B]),Yt=(0,q.useMemo)(()=>{let e=new Set,t=[];for(let n of Jt){let r=n.category;!r||e.has(r)||(e.add(r),t.push(r))}return t.sort((e,t)=>{let n=ye.indexOf(e),r=ye.indexOf(t);return n>=0&&r>=0?n-r:n>=0?-1:r>=0?1:e.localeCompare(t)})},[Jt]),Xt=(0,q.useCallback)(t=>e.categoryLabel?.[t]||t,[e.categoryLabel]),Zt=(0,q.useMemo)(()=>U?Jt.filter(e=>e.category===U):Jt,[Jt,U]);(0,q.useEffect)(()=>{G(`all`)},[R]);let Qt=(0,q.useCallback)(e=>Z[e.name]??e.enabled,[Z]),$t=(0,q.useMemo)(()=>Zt.filter(e=>!Qt(e)).length,[Zt,Qt]),en=(0,q.useMemo)(()=>{let e=Zt;return oe===`disabled`&&(e=e.filter(e=>!Qt(e))),[...e].toSorted((e,t)=>{let n=Qt(e);return n===Qt(t)?e.name.localeCompare(t.name,void 0,{sensitivity:`base`}):n?-1:1})},[Zt,oe,Qt]),tn=async t=>{L(null),y(!0),_(null);try{let n;try{n=await et(t)}catch{_(e.invalidFile),Ft(`error`,e.invalidFile);return}await ie(n,{overwrite:!0}),await Mt(),Ft(`success`,e.installSuccess),ce(!1),K(null),te(`user`)}catch(t){_(t instanceof Error?t.message:e.uploadFailed),Ft(`error`,t instanceof Error?t.message:e.uploadFailed)}finally{y(!1)}},nn=()=>{le&&tn(le)},rn=e=>{let t=e.target.files?.[0];e.target.value=``,t&&K(t)},an=e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer.types.includes(`Files`)&&(ue(!0),e.dataTransfer.dropEffect=`copy`)},on=e=>{let t=e.currentTarget,n=e.relatedTarget;n&&t.contains(n)||ue(!1)},sn=e=>{e.preventDefault(),e.stopPropagation(),ue(!1);let t=e.dataTransfer?.files?.[0];t&&K(t)},cn=t=>{switch(t){case`builtin`:return e.source.builtin;case`workspace`:return e.source.workspace;case`global`:return e.source.global;case`extra`:return e.source.extra;default:return t}},ln=async()=>{let t=pe;if(fe(!1),me(null),t){L(null);try{await h(t),await Mt()}catch(t){_(t instanceof Error?t.message:e.deleteFailed)}}},un=(0,q.useCallback)(e=>st.some(t=>t.name===e),[st]),dn=(0,q.useCallback)(async t=>{let r=(t?.name??Q).trim();if(!r)return;let i=t?.source??Se;if(i===`catalog`){let e=st.find(e=>e.name===r);if(e&&!(Z[e.name]??e.enabled))return}L(null);let a=i===`store`&&!un(r);He(r);try{if(a){let e=t?.providerOverride?.trim()||Je.current||$;await j({name:r,overwrite:!1,...e?{provider:e}:{}}),await Mt({silent:!0})}xe(!1),n(`/chat/new?skill=${encodeURIComponent(r)}`)}catch(t){Ft(`error`,t instanceof Error?t.message:e.uploadFailed)}finally{He(null)}},[st,Q,Se,Z,un,Mt,n,Ft,e.uploadFailed,$]),fn=(0,q.useCallback)(async(t,n)=>{let r=un(t);if(!(r&&!window.confirm(e.marketplaceReinstallConfirm))){L(null),Be(t);try{let i=n?.providerOverride?.trim()||(n?.useDetailProvider?Je.current??$:$);await j({name:t,overwrite:r,...i?{provider:i}:{}}),await Mt({silent:!0}),Ft(`success`,e.installSuccess),xe(!1),te(`user`)}catch(t){Ft(`error`,t instanceof Error?t.message:e.uploadFailed)}finally{Be(null)}}},[un,Mt,$,Ft,e.installSuccess,e.marketplaceReinstallConfirm,e.uploadFailed]),pn=B===`all`?e.filterAll:B===`global`?e.filterGlobal:B===`workspace`?e.filterWorkspace:e.filterExtra,{pathname:mn}=c();return{sk:e,hasToken:t,catalog:st,loading:dt,error:Pt,uploading:v,searchQuery:k,setSearchQuery:A,actionFeedback:I,mainTab:R,setMainTab:te,sourceFilter:B,setSourceFilter:re,builtinCategoryFilter:U,setBuiltinCategoryFilter:ae,installOpen:se,setInstallOpen:ce,pendingFile:le,setPendingFile:K,dropActive:J,setDropActive:ue,confirmOpen:de,setConfirmOpen:fe,confirmId:pe,setConfirmId:me,togglingSkillName:Y,enabledOverride:Z,detailOpen:be,setDetailOpen:xe,detailSource:Se,setDetailSource:Ce,detailTitle:Q,setDetailTitle:we,detailCatalogPreview:Te,setDetailCatalogPreview:Ee,detailMarketplacePreview:Oe,setDetailMarketplacePreview:ke,detailLoading:Ae,detailError:Ne,setDetailError:Pe,marketSort:Fe,setMarketSort:Ie,marketPage:Le,setMarketPage:Re,mpLoading:Dt,mpError:Ot,mpPayload:Et,searchActive:F,searchInputActive:P,resultTab:nt,setResultTab:rt,aggregatedTabCounts:bt,aggregatedProviderStatus:St,aggregatedAllFailed:wt,installingMarketName:ze,usingSkillInChatName:Ve,onUseSkillInChat:dn,marketCategoryId:Ue,setMarketCategoryId:We,mpCategories:kt,mpCategoriesError:jt,mpCategoriesLoading:At,marketBrowseProvider:$,setMarketBrowseProvider:Ge,registeredProviders:ft,builtinTabStats:Vt,userTabStats:Ht,detailEnabled:Wt,detailDirectoryId:Gt,detailManaged:Kt,detailExternalUrl:qt,filteredCatalog:Jt,builtinCategories:Yt,categoryFilteredCatalog:Zt,catalogDisplayRows:en,catalogDisabledCount:$t,catalogStatusFilter:oe,setCatalogStatusFilter:G,resolveSkillEnabled:Qt,filterLabel:pn,inSettingsShell:mn.startsWith(`/settings/`),categoryLabel:Xt,onReloadClick:zt,openSkillDetail:It,openMarketplaceDetail:Lt,onSkillToggle:Rt,onInstallSubmit:nn,onFileInputChange:rn,onModalDragOver:an,onModalDragLeave:on,onModalDrop:sn,sourceLabel:cn,runDelete:ln,onMarketInstall:fn,isSkillInstalledByName:un}}function nt(){let e=(0,K.c)(2),t=tt(),n;return e[0]===t?n=e[1]:(n=(0,J.jsx)(Je,{vm:t}),e[0]=t,e[1]=n),n}export{nt as SkillsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./url-DQRqHuL-.js";import{o as a}from"./vendor-swr-BIWyz7Rc.js";import{a as o,n as s}from"./fetch-CFdKBnE6.js";import{i as c,r as l}from"./gateway-startup-retry-DdngdObI.js";import{$r as u,J as d,Po as f,Z as p,Zo as m,di as h,do as g,fi as _,ja as v,pi as y,q as b,ta as x}from"./index-DBc-bVOQ.js";var S=`/api/image/providers`;async function ee(){return(await s(i(`/api/image/providers`)))?.payload?.providers??[]}var C=e(t(),1),te=n();function w(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function ne(e){return e?.apiKey?`••••••••••••`:``}function T(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:ne(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function E(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function D(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(p(n)&&p(r)))return n||(r?null:void 0)}function O(e,t,n){let r={};for(let i of e){let e=t[i]??w(),a=n[i]??w();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=D(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=E(e,a,`region`);c!==void 0&&(o.region=c);let l=E(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=E(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function k(e){let t=await s(i(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function A(e){Object.keys(e).length!==0&&(await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await l())}var j=r();function re(e){let t=(0,te.c)(18),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>k(n).then(M),t[0]=n,t[1]=c);let l=c,f=`img-cred-key-${n}`,p;t[2]!==a.apiKeyLabel||t[3]!==f?(p=(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:f,children:a.apiKeyLabel}),t[2]=a.apiKeyLabel,t[3]=f,t[4]=p):p=t[4];let m;t[5]!==s||t[6]!==o?(m=o.length>0?(0,j.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,j.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[d(e.kind,s),(0,j.jsx)(g,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[5]=s,t[6]=o,t[7]=m):m=t[7];let h=`img-cred-key-${n}`,_;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==h||t[12]!==r?(_=(0,j.jsx)(u,{id:h,value:r,onChange:i,placeholder:a.optionalPlaceholder,labels:a,reveal:l,loadFailedLabel:a.loadFailed,maskedHelp:a.maskedHelp,notInConfigFile:a.notInConfigFile}),t[8]=a,t[9]=i,t[10]=l,t[11]=h,t[12]=r,t[13]=_):_=t[13];let v;return t[14]!==p||t[15]!==m||t[16]!==_?(v=(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[p,m,_]}),t[14]=p,t[15]=m,t[16]=_,t[17]=v):v=t[17],v}function M(e){return e.apiKey??null}function N(){return y(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,h)}function ie(){return y(N(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var P=`__custom__`;function ae(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:P}function oe(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:P}function se(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function ce(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function le(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function ue(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function de(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function fe(e){let t=(0,te.c)(76),{summaries:n,credDraft:r,credBaseline:i,credDirty:a,credSaving:o,credError:s,credSavedFlash:c,credNoopFlash:l,updateCredRow:u,onDiscardCredentials:d,onSaveCredentials:p,extensionIds:h,showExtensionLinks:S,showImageModelsLink:ee,hideActions:ne,language:T,apiKeyLinkLabels:E,messages:D}=e,O=ne===void 0?!1:ne,k;t[0]===n?k=t[1]:(k=n.some(_e),t[0]=n,t[1]=k);let A=k,M;t[2]===n?M=t[3]:(M=n.some(ge),t[2]=n,t[3]=M);let fe=M,[F,ve]=(0,C.useState)(he),[I,L]=(0,C.useState)(me),R;if(t[4]!==i||t[5]!==r||t[6]!==n){R=new Set;for(let e of n)ue(r[e.id]??w(),i[e.id]??w())&&R.add(e.id);t[4]=i,t[5]=r,t[6]=n,t[7]=R}else R=t[7];let z=R,B;t[8]!==z||t[9]!==I||t[10]!==F?(B=e=>I.has(e)?!1:F.has(e)?!0:z.has(e),t[8]=z,t[9]=I,t[10]=F,t[11]=B):B=t[11];let V=B,H;t[12]===V?H=t[13]:(H=e=>{if(V(e)){L(t=>new Set(t).add(e)),ve(t=>{let n=new Set(t);return n.delete(e),n});return}L(t=>{let n=new Set(t);return n.delete(e),n}),ve(t=>new Set(t).add(e))},t[12]=V,t[13]=H);let U=H;if(n.length===0)return null;let W;t[14]===D.credentialsIntro?W=t[15]:(W=(0,j.jsx)(`p`,{children:D.credentialsIntro}),t[14]=D.credentialsIntro,t[15]=W);let G;t[16]!==A||t[17]!==D.regionHint?(G=A?(0,j.jsx)(`p`,{className:`text-fg-subtle`,children:D.regionHint}):null,t[16]=A,t[17]=D.regionHint,t[18]=G):G=t[18];let K;t[19]!==fe||t[20]!==D.endpointPresetsHint?(K=fe?(0,j.jsx)(`p`,{className:`text-fg-subtle`,children:D.endpointPresetsHint}):null,t[19]=fe,t[20]=D.endpointPresetsHint,t[21]=K):K=t[21];let q;t[22]!==ee||t[23]!==D.imageModelsLinkTitle||t[24]!==D.openImageModelsPage?(q=ee?(0,j.jsx)(`p`,{children:(0,j.jsx)(m,{to:`/settings/credentials?tab=image-models`,className:`font-medium text-accent hover:underline`,title:D.imageModelsLinkTitle,children:D.openImageModelsPage})}):null,t[22]=ee,t[23]=D.imageModelsLinkTitle,t[24]=D.openImageModelsPage,t[25]=q):q=t[25];let J;t[26]!==W||t[27]!==G||t[28]!==K||t[29]!==q?(J=(0,j.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[W,G,K,q]}),t[26]=W,t[27]=G,t[28]=K,t[29]=q,t[30]=J):J=t[30];let Y;t[31]===s?Y=t[32]:(Y=s?(0,j.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:s}):null,t[31]=s,t[32]=Y);let X;t[33]!==a||t[34]!==l||t[35]!==c||t[36]!==o||t[37]!==O||t[38]!==d||t[39]!==p||t[40]!==D.credentialsNothingToSave||t[41]!==D.credentialsSaved||t[42]!==D.discardCredentials||t[43]!==D.saveCredentials||t[44]!==D.savingCredentials?(X=O?null:(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[c?(0,j.jsx)(`span`,{className:`text-sm text-fg-muted`,children:D.credentialsSaved}):null,l?(0,j.jsx)(`span`,{className:`text-sm text-fg-muted`,children:D.credentialsNothingToSave}):null,(0,j.jsx)(_,{type:`button`,variant:`secondary`,onClick:d,disabled:!a||o,children:D.discardCredentials}),(0,j.jsx)(_,{type:`button`,variant:`primary`,onClick:p,disabled:!a||o,children:o?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(v,{className:`size-3.5 animate-spin`}),(0,j.jsx)(`span`,{className:`ml-1.5`,children:D.savingCredentials})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(x,{className:`size-3.5`}),(0,j.jsx)(`span`,{className:`ml-1.5`,children:D.saveCredentials})]})})]}),t[33]=a,t[34]=l,t[35]=c,t[36]=o,t[37]=O,t[38]=d,t[39]=p,t[40]=D.credentialsNothingToSave,t[41]=D.credentialsSaved,t[42]=D.discardCredentials,t[43]=D.saveCredentials,t[44]=D.savingCredentials,t[45]=X):X=t[45];let Z;if(t[46]!==E||t[47]!==i||t[48]!==r||t[49]!==h||t[50]!==V||t[51]!==T||t[52]!==S||t[53]!==n||t[54]!==D||t[55]!==U||t[56]!==u){let e;t[58]!==E||t[59]!==i||t[60]!==r||t[61]!==h||t[62]!==V||t[63]!==T||t[64]!==S||t[65]!==D||t[66]!==U||t[67]!==u?(e=e=>{let t=r[e.id]??w(),n=e.ui,a=S&&h.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,o=ue(t,i[e.id]??w()),s=V(e.id),c=e.label??e.id,l=de(D,e.models.length);return(0,j.jsxs)(`section`,{className:y(`overflow-hidden rounded-xl border bg-surface-panel shadow-sm transition-colors dark:shadow-none`,o?`border-accent/50`:`border-edge`),children:[(0,j.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":s,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>U(e.id),children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:c}),(0,j.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),o?(0,j.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:D.unsavedChanges}):null,e.configured?(0,j.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:D.configured}):(0,j.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:D.missingKey})]}),(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,j.jsx)(`span`,{children:l}),e.defaultModel?(0,j.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,j.jsxs)(`span`,{className:`text-fg-muted`,children:[D.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,j.jsx)(f,{className:y(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,s?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,j.jsx)(`span`,{className:`sr-only`,children:s?D.collapseProvider:D.expandProvider})]}),s?(0,j.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`border-t border-edge px-4 py-4`,children:[a?(0,j.jsxs)(m,{to:a,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:D.extensionSettingsLinkTitle,children:[(0,j.jsx)(g,{className:`size-3`}),D.openExtensionSettings]}):null,e.models.length>0?(0,j.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,j.jsxs)(`span`,{className:`text-fg-muted`,children:[D.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,j.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,j.jsx)(re,{providerId:e.id,value:t.apiKey,onChange:t=>u(e.id,{apiKey:t}),apiKeyLinks:b(e.id,T),apiKeyLinkLabels:E,labels:{apiKeyLabel:D.apiKeyLabel,optionalPlaceholder:D.optionalPlaceholder,maskedHelp:D.apiKeyMaskedHelp,copy:D.apiKeyCopy,copied:D.apiKeyCopied,show:D.apiKeyShow,hide:D.apiKeyHide,notInConfigFile:D.apiKeyNotInConfigFile,loadFailed:D.apiKeyRevealFailed}}),n?.regions?.length?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:D.regionLabel}),(0,j.jsxs)(`select`,{id:`img-cred-region-preset-${e.id}`,className:ie(),value:ae(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){u(e.id,{region:``,imageBaseUrl:``});return}if(r===P){u(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&u(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,j.jsx)(`option`,{value:``,children:D.regionPresetDefault}),n.regions.map(e=>(0,j.jsx)(`option`,{value:e.value,children:se(D,e.value,e.label)},e.value)),(0,j.jsx)(`option`,{value:P,children:D.regionPresetCustom})]}),ae(t,n.regions)===P?(0,j.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,j.jsx)(`input`,{type:`text`,className:N(),value:t.region,placeholder:`region`,onChange:t=>u(e.id,{region:t.target.value})}),(0,j.jsx)(`input`,{type:`url`,className:N(),value:t.imageBaseUrl,placeholder:D.imageBaseUrlLabel,onChange:t=>u(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:ce(D,n.baseUrlPresetKind)}),le(D,n.baseUrlPresetKind)?(0,j.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:le(D,n.baseUrlPresetKind)}):null,(0,j.jsxs)(`select`,{id:`img-cred-base-preset-${e.id}`,className:ie(),value:oe(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){u(e.id,{baseUrl:``});return}if(n===P){u(e.id,{baseUrl:``});return}u(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,j.jsx)(`option`,{value:``,children:D.baseUrlPresetDefault}),n.baseUrlPresets.map(pe),(0,j.jsx)(`option`,{value:P,children:D.baseUrlPresetCustom})]}),oe(t,n.baseUrlPresets)===P?(0,j.jsx)(`input`,{type:`url`,className:y(N(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>u(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&ae(t,n.regions)!==P?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:D.imageBaseUrlLabel}),(0,j.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:y(N(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:D.imageBaseUrlPresetHint}),(0,j.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:D.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=E,t[59]=i,t[60]=r,t[61]=h,t[62]=V,t[63]=T,t[64]=S,t[65]=D,t[66]=U,t[67]=u,t[68]=e):e=t[68],Z=n.map(e),t[46]=E,t[47]=i,t[48]=r,t[49]=h,t[50]=V,t[51]=T,t[52]=S,t[53]=n,t[54]=D,t[55]=U,t[56]=u,t[57]=Z}else Z=t[57];let Q;t[69]===Z?Q=t[70]:(Q=(0,j.jsx)(`div`,{className:`flex flex-col gap-4`,children:Z}),t[69]=Z,t[70]=Q);let $;return t[71]!==J||t[72]!==Y||t[73]!==X||t[74]!==Q?($=(0,j.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[J,Y,X,Q]}),t[71]=J,t[72]=Y,t[73]=X,t[74]=Q,t[75]=$):$=t[75],$}function pe(e){return(0,j.jsx)(`option`,{value:e.value,children:e.label},e.value)}function me(){return new Set}function he(){return new Set}function ge(e){return(e.ui?.baseUrlPresets?.length??0)>0}function _e(e){return(e.ui?.regions?.length??0)>0}function F(e){let t=c(o(e=>!!e.token)),n=t.data,r=(0,C.useMemo)(()=>e.map(e=>e.id),[e]),s=(0,C.useRef)(!1),[l,u]=(0,C.useState)(null),[d,f]=(0,C.useState)(!1),[p,m]=(0,C.useState)(null),[h,g]=(0,C.useState)(!1),[_,v]=(0,C.useState)(!1),y=(0,C.useMemo)(()=>T(n?.payload?.config,r),[n?.payload?.config,r]),b=l??y,x=y;return{gwSwr:t,credDraft:b,credBaseline:x,credDirty:(0,C.useMemo)(()=>JSON.stringify(b)!==JSON.stringify(x),[b,x]),credSaving:d,credError:p,credSavedFlash:h,credNoopFlash:_,updateCredRow:(0,C.useCallback)((e,t)=>{s.current=!0,u(n=>{let r=n??y,i=r[e]??w();return{...r,[e]:{...i,...t}}})},[y]),onDiscardCredentials:(0,C.useCallback)(()=>{s.current=!1,u(null),m(null),g(!1),v(!1)},[]),saveCredentials:(0,C.useCallback)(async e=>{let n=O(r,b,x);if(Object.keys(n).length===0){v(!0),window.setTimeout(()=>v(!1),2200);return}f(!0),m(null),g(!1);try{await A(n),await t.mutate?.(),a(i(S)),s.current=!1,u(null),g(!0),window.setTimeout(()=>g(!1),2e3)}catch(t){m(t instanceof Error?t.message:e)}finally{f(!1)}},[r,b,x,t])}}function ve(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function I(){return{enabled:!1,provider:`openai`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function z(e,t,n){let r=L(e.providers)?e.providers:void 0,i=r&&L(r[t])?r[t]:void 0;return{...n,...i??{}}}function B(e){let t=ve();if(!L(e))return t;let n=R(e.provider),r=z(e,`alibaba`,t.alibaba??{}),i=z(e,`openai`,t.openai??{}),a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(L(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():`openai`}function H(e){let t=I();if(!L(e))return t;let n=V(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=t[`tts-local-cli`]??{},a=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,...a?{providers:a}:{},alibaba:z(e,`alibaba`,t.alibaba??{}),openai:z(e,`openai`,t.openai??{}),edge:z(e,`edge`,t.edge??{}),minimax:z(e,`minimax`,t.minimax??{}),"tts-local-cli":z(e,`tts-local-cli`,i)}}function U(e){let{alibaba:t,openai:n,providers:r,...i}=e,a={...r??{}};return t&&(a.alibaba={...a.alibaba??{},...t}),n&&(a.openai={...a.openai??{},...n}),{...i,...Object.keys(a).length>0?{providers:a}:{}}}function W(e){let{alibaba:t,openai:n,edge:r,minimax:i,"tts-local-cli":a,providers:o,...s}=e,c={...o??{}};return t&&(c.alibaba={...c.alibaba??{},...t}),n&&(c.openai={...c.openai??{},...n}),r&&(c.edge={...c.edge??{},...r}),i&&(c.minimax={...c.minimax??{},...i}),a&&(c[`tts-local-cli`]={...c[`tts-local-cli`]??{},...a}),{...s,...Object.keys(c).length>0?{providers:c}:{}}}function G(e){let t=L(e)?e:{};return{stt:B(t.stt),tts:H(t.tts)}}async function K(){return G((await s(i(`/api/config`))).payload?.config??{})}async function q(e){await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:U(e.stt),tts:W(e.tts)})}),l()}async function J(){let e=await s(i(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function Y(){let e=await s(i(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function X(){let e=await s(i(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Z(e){let t=await s(i(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function Q(e){let t=(0,te.c)(15),{kind:n,providerId:r,fieldId:i,value:a,onChange:o,labels:s,placeholder:c,className:l}=e,d=c===void 0?`sk-...`:c,f;t[0]!==n||t[1]!==r?(f=()=>Z({kind:n,provider:r}).then($),t[0]=n,t[1]=r,t[2]=f):f=t[2];let p=f,m;t[3]===l?m=t[4]:(m=y(`flex min-w-0 flex-col gap-1.5`,l),t[3]=l,t[4]=m);let h;t[5]!==i||t[6]!==s||t[7]!==o||t[8]!==d||t[9]!==p||t[10]!==a?(h=(0,j.jsx)(u,{id:i,value:a,onChange:o,placeholder:d,labels:s,reveal:p,loadFailedLabel:s.loadFailed,maskedHelp:s.maskedHelp,notInConfigFile:s.notInConfigFile,inputClassName:`text-xs`}),t[5]=i,t[6]=s,t[7]=o,t[8]=d,t[9]=p,t[10]=a,t[11]=h):h=t[11];let g;return t[12]!==m||t[13]!==h?(g=(0,j.jsx)(`div`,{className:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14],g}function $(e){return e.apiKey??null}export{X as a,F as c,S as d,K as i,fe as l,J as n,G as o,Y as r,q as s,Q as t,ee as u};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./url-DQRqHuL-.js";import{o as a}from"./vendor-swr-BIWyz7Rc.js";import{a as o,n as s}from"./fetch-CFdKBnE6.js";import{i as c,r as l}from"./gateway-startup-retry-DdngdObI.js";import{$r as u,J as d,Po as f,Z as p,Zo as m,di as h,do as g,fi as _,ja as v,pi as y,q as b,ta as x}from"./index-S23p3aa0.js";var S=`/api/image/providers`;async function ee(){return(await s(i(`/api/image/providers`)))?.payload?.providers??[]}var C=e(t(),1),te=n();function w(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function ne(e){return e?.apiKey?`••••••••••••`:``}function T(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:ne(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function E(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function D(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(p(n)&&p(r)))return n||(r?null:void 0)}function O(e,t,n){let r={};for(let i of e){let e=t[i]??w(),a=n[i]??w();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=D(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=E(e,a,`region`);c!==void 0&&(o.region=c);let l=E(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=E(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function k(e){let t=await s(i(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function A(e){Object.keys(e).length!==0&&(await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await l())}var j=r();function re(e){let t=(0,te.c)(18),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>k(n).then(M),t[0]=n,t[1]=c);let l=c,f=`img-cred-key-${n}`,p;t[2]!==a.apiKeyLabel||t[3]!==f?(p=(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:f,children:a.apiKeyLabel}),t[2]=a.apiKeyLabel,t[3]=f,t[4]=p):p=t[4];let m;t[5]!==s||t[6]!==o?(m=o.length>0?(0,j.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,j.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[d(e.kind,s),(0,j.jsx)(g,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[5]=s,t[6]=o,t[7]=m):m=t[7];let h=`img-cred-key-${n}`,_;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==h||t[12]!==r?(_=(0,j.jsx)(u,{id:h,value:r,onChange:i,placeholder:a.optionalPlaceholder,labels:a,reveal:l,loadFailedLabel:a.loadFailed,maskedHelp:a.maskedHelp,notInConfigFile:a.notInConfigFile}),t[8]=a,t[9]=i,t[10]=l,t[11]=h,t[12]=r,t[13]=_):_=t[13];let v;return t[14]!==p||t[15]!==m||t[16]!==_?(v=(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[p,m,_]}),t[14]=p,t[15]=m,t[16]=_,t[17]=v):v=t[17],v}function M(e){return e.apiKey??null}function N(){return y(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,h)}function ie(){return y(N(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var P=`__custom__`;function ae(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:P}function oe(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:P}function se(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function ce(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function le(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function ue(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function de(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function fe(e){let t=(0,te.c)(76),{summaries:n,credDraft:r,credBaseline:i,credDirty:a,credSaving:o,credError:s,credSavedFlash:c,credNoopFlash:l,updateCredRow:u,onDiscardCredentials:d,onSaveCredentials:p,extensionIds:h,showExtensionLinks:S,showImageModelsLink:ee,hideActions:ne,language:T,apiKeyLinkLabels:E,messages:D}=e,O=ne===void 0?!1:ne,k;t[0]===n?k=t[1]:(k=n.some(_e),t[0]=n,t[1]=k);let A=k,M;t[2]===n?M=t[3]:(M=n.some(ge),t[2]=n,t[3]=M);let fe=M,[F,ve]=(0,C.useState)(he),[I,L]=(0,C.useState)(me),R;if(t[4]!==i||t[5]!==r||t[6]!==n){R=new Set;for(let e of n)ue(r[e.id]??w(),i[e.id]??w())&&R.add(e.id);t[4]=i,t[5]=r,t[6]=n,t[7]=R}else R=t[7];let z=R,B;t[8]!==z||t[9]!==I||t[10]!==F?(B=e=>I.has(e)?!1:F.has(e)?!0:z.has(e),t[8]=z,t[9]=I,t[10]=F,t[11]=B):B=t[11];let V=B,H;t[12]===V?H=t[13]:(H=e=>{if(V(e)){L(t=>new Set(t).add(e)),ve(t=>{let n=new Set(t);return n.delete(e),n});return}L(t=>{let n=new Set(t);return n.delete(e),n}),ve(t=>new Set(t).add(e))},t[12]=V,t[13]=H);let U=H;if(n.length===0)return null;let W;t[14]===D.credentialsIntro?W=t[15]:(W=(0,j.jsx)(`p`,{children:D.credentialsIntro}),t[14]=D.credentialsIntro,t[15]=W);let G;t[16]!==A||t[17]!==D.regionHint?(G=A?(0,j.jsx)(`p`,{className:`text-fg-subtle`,children:D.regionHint}):null,t[16]=A,t[17]=D.regionHint,t[18]=G):G=t[18];let K;t[19]!==fe||t[20]!==D.endpointPresetsHint?(K=fe?(0,j.jsx)(`p`,{className:`text-fg-subtle`,children:D.endpointPresetsHint}):null,t[19]=fe,t[20]=D.endpointPresetsHint,t[21]=K):K=t[21];let q;t[22]!==ee||t[23]!==D.imageModelsLinkTitle||t[24]!==D.openImageModelsPage?(q=ee?(0,j.jsx)(`p`,{children:(0,j.jsx)(m,{to:`/settings/credentials?tab=image-models`,className:`font-medium text-accent hover:underline`,title:D.imageModelsLinkTitle,children:D.openImageModelsPage})}):null,t[22]=ee,t[23]=D.imageModelsLinkTitle,t[24]=D.openImageModelsPage,t[25]=q):q=t[25];let J;t[26]!==W||t[27]!==G||t[28]!==K||t[29]!==q?(J=(0,j.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[W,G,K,q]}),t[26]=W,t[27]=G,t[28]=K,t[29]=q,t[30]=J):J=t[30];let Y;t[31]===s?Y=t[32]:(Y=s?(0,j.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:s}):null,t[31]=s,t[32]=Y);let X;t[33]!==a||t[34]!==l||t[35]!==c||t[36]!==o||t[37]!==O||t[38]!==d||t[39]!==p||t[40]!==D.credentialsNothingToSave||t[41]!==D.credentialsSaved||t[42]!==D.discardCredentials||t[43]!==D.saveCredentials||t[44]!==D.savingCredentials?(X=O?null:(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[c?(0,j.jsx)(`span`,{className:`text-sm text-fg-muted`,children:D.credentialsSaved}):null,l?(0,j.jsx)(`span`,{className:`text-sm text-fg-muted`,children:D.credentialsNothingToSave}):null,(0,j.jsx)(_,{type:`button`,variant:`secondary`,onClick:d,disabled:!a||o,children:D.discardCredentials}),(0,j.jsx)(_,{type:`button`,variant:`primary`,onClick:p,disabled:!a||o,children:o?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(v,{className:`size-3.5 animate-spin`}),(0,j.jsx)(`span`,{className:`ml-1.5`,children:D.savingCredentials})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(x,{className:`size-3.5`}),(0,j.jsx)(`span`,{className:`ml-1.5`,children:D.saveCredentials})]})})]}),t[33]=a,t[34]=l,t[35]=c,t[36]=o,t[37]=O,t[38]=d,t[39]=p,t[40]=D.credentialsNothingToSave,t[41]=D.credentialsSaved,t[42]=D.discardCredentials,t[43]=D.saveCredentials,t[44]=D.savingCredentials,t[45]=X):X=t[45];let Z;if(t[46]!==E||t[47]!==i||t[48]!==r||t[49]!==h||t[50]!==V||t[51]!==T||t[52]!==S||t[53]!==n||t[54]!==D||t[55]!==U||t[56]!==u){let e;t[58]!==E||t[59]!==i||t[60]!==r||t[61]!==h||t[62]!==V||t[63]!==T||t[64]!==S||t[65]!==D||t[66]!==U||t[67]!==u?(e=e=>{let t=r[e.id]??w(),n=e.ui,a=S&&h.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,o=ue(t,i[e.id]??w()),s=V(e.id),c=e.label??e.id,l=de(D,e.models.length);return(0,j.jsxs)(`section`,{className:y(`overflow-hidden rounded-xl border bg-surface-panel shadow-sm transition-colors dark:shadow-none`,o?`border-accent/50`:`border-edge`),children:[(0,j.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":s,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>U(e.id),children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:c}),(0,j.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),o?(0,j.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:D.unsavedChanges}):null,e.configured?(0,j.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:D.configured}):(0,j.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:D.missingKey})]}),(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,j.jsx)(`span`,{children:l}),e.defaultModel?(0,j.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,j.jsxs)(`span`,{className:`text-fg-muted`,children:[D.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,j.jsx)(f,{className:y(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,s?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,j.jsx)(`span`,{className:`sr-only`,children:s?D.collapseProvider:D.expandProvider})]}),s?(0,j.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`border-t border-edge px-4 py-4`,children:[a?(0,j.jsxs)(m,{to:a,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:D.extensionSettingsLinkTitle,children:[(0,j.jsx)(g,{className:`size-3`}),D.openExtensionSettings]}):null,e.models.length>0?(0,j.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,j.jsxs)(`span`,{className:`text-fg-muted`,children:[D.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,j.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,j.jsx)(re,{providerId:e.id,value:t.apiKey,onChange:t=>u(e.id,{apiKey:t}),apiKeyLinks:b(e.id,T),apiKeyLinkLabels:E,labels:{apiKeyLabel:D.apiKeyLabel,optionalPlaceholder:D.optionalPlaceholder,maskedHelp:D.apiKeyMaskedHelp,copy:D.apiKeyCopy,copied:D.apiKeyCopied,show:D.apiKeyShow,hide:D.apiKeyHide,notInConfigFile:D.apiKeyNotInConfigFile,loadFailed:D.apiKeyRevealFailed}}),n?.regions?.length?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:D.regionLabel}),(0,j.jsxs)(`select`,{id:`img-cred-region-preset-${e.id}`,className:ie(),value:ae(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){u(e.id,{region:``,imageBaseUrl:``});return}if(r===P){u(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&u(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,j.jsx)(`option`,{value:``,children:D.regionPresetDefault}),n.regions.map(e=>(0,j.jsx)(`option`,{value:e.value,children:se(D,e.value,e.label)},e.value)),(0,j.jsx)(`option`,{value:P,children:D.regionPresetCustom})]}),ae(t,n.regions)===P?(0,j.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,j.jsx)(`input`,{type:`text`,className:N(),value:t.region,placeholder:`region`,onChange:t=>u(e.id,{region:t.target.value})}),(0,j.jsx)(`input`,{type:`url`,className:N(),value:t.imageBaseUrl,placeholder:D.imageBaseUrlLabel,onChange:t=>u(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:ce(D,n.baseUrlPresetKind)}),le(D,n.baseUrlPresetKind)?(0,j.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:le(D,n.baseUrlPresetKind)}):null,(0,j.jsxs)(`select`,{id:`img-cred-base-preset-${e.id}`,className:ie(),value:oe(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){u(e.id,{baseUrl:``});return}if(n===P){u(e.id,{baseUrl:``});return}u(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,j.jsx)(`option`,{value:``,children:D.baseUrlPresetDefault}),n.baseUrlPresets.map(pe),(0,j.jsx)(`option`,{value:P,children:D.baseUrlPresetCustom})]}),oe(t,n.baseUrlPresets)===P?(0,j.jsx)(`input`,{type:`url`,className:y(N(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>u(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&ae(t,n.regions)!==P?(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,j.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:D.imageBaseUrlLabel}),(0,j.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:y(N(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:D.imageBaseUrlPresetHint}),(0,j.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:D.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=E,t[59]=i,t[60]=r,t[61]=h,t[62]=V,t[63]=T,t[64]=S,t[65]=D,t[66]=U,t[67]=u,t[68]=e):e=t[68],Z=n.map(e),t[46]=E,t[47]=i,t[48]=r,t[49]=h,t[50]=V,t[51]=T,t[52]=S,t[53]=n,t[54]=D,t[55]=U,t[56]=u,t[57]=Z}else Z=t[57];let Q;t[69]===Z?Q=t[70]:(Q=(0,j.jsx)(`div`,{className:`flex flex-col gap-4`,children:Z}),t[69]=Z,t[70]=Q);let $;return t[71]!==J||t[72]!==Y||t[73]!==X||t[74]!==Q?($=(0,j.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[J,Y,X,Q]}),t[71]=J,t[72]=Y,t[73]=X,t[74]=Q,t[75]=$):$=t[75],$}function pe(e){return(0,j.jsx)(`option`,{value:e.value,children:e.label},e.value)}function me(){return new Set}function he(){return new Set}function ge(e){return(e.ui?.baseUrlPresets?.length??0)>0}function _e(e){return(e.ui?.regions?.length??0)>0}function F(e){let t=c(o(e=>!!e.token)),n=t.data,r=(0,C.useMemo)(()=>e.map(e=>e.id),[e]),s=(0,C.useRef)(!1),[l,u]=(0,C.useState)(null),[d,f]=(0,C.useState)(!1),[p,m]=(0,C.useState)(null),[h,g]=(0,C.useState)(!1),[_,v]=(0,C.useState)(!1),y=(0,C.useMemo)(()=>T(n?.payload?.config,r),[n?.payload?.config,r]),b=l??y,x=y;return{gwSwr:t,credDraft:b,credBaseline:x,credDirty:(0,C.useMemo)(()=>JSON.stringify(b)!==JSON.stringify(x),[b,x]),credSaving:d,credError:p,credSavedFlash:h,credNoopFlash:_,updateCredRow:(0,C.useCallback)((e,t)=>{s.current=!0,u(n=>{let r=n??y,i=r[e]??w();return{...r,[e]:{...i,...t}}})},[y]),onDiscardCredentials:(0,C.useCallback)(()=>{s.current=!1,u(null),m(null),g(!1),v(!1)},[]),saveCredentials:(0,C.useCallback)(async e=>{let n=O(r,b,x);if(Object.keys(n).length===0){v(!0),window.setTimeout(()=>v(!1),2200);return}f(!0),m(null),g(!1);try{await A(n),await t.mutate?.(),a(i(S)),s.current=!1,u(null),g(!0),window.setTimeout(()=>g(!1),2e3)}catch(t){m(t instanceof Error?t.message:e)}finally{f(!1)}},[r,b,x,t])}}function ve(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function I(){return{enabled:!1,provider:`openai`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function z(e,t,n){let r=L(e.providers)?e.providers:void 0,i=r&&L(r[t])?r[t]:void 0;return{...n,...i??{}}}function B(e){let t=ve();if(!L(e))return t;let n=R(e.provider),r=z(e,`alibaba`,t.alibaba??{}),i=z(e,`openai`,t.openai??{}),a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(L(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():`openai`}function H(e){let t=I();if(!L(e))return t;let n=V(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=t[`tts-local-cli`]??{},a=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,...a?{providers:a}:{},alibaba:z(e,`alibaba`,t.alibaba??{}),openai:z(e,`openai`,t.openai??{}),edge:z(e,`edge`,t.edge??{}),minimax:z(e,`minimax`,t.minimax??{}),"tts-local-cli":z(e,`tts-local-cli`,i)}}function U(e){let{alibaba:t,openai:n,providers:r,...i}=e,a={...r??{}};return t&&(a.alibaba={...a.alibaba??{},...t}),n&&(a.openai={...a.openai??{},...n}),{...i,...Object.keys(a).length>0?{providers:a}:{}}}function W(e){let{alibaba:t,openai:n,edge:r,minimax:i,"tts-local-cli":a,providers:o,...s}=e,c={...o??{}};return t&&(c.alibaba={...c.alibaba??{},...t}),n&&(c.openai={...c.openai??{},...n}),r&&(c.edge={...c.edge??{},...r}),i&&(c.minimax={...c.minimax??{},...i}),a&&(c[`tts-local-cli`]={...c[`tts-local-cli`]??{},...a}),{...s,...Object.keys(c).length>0?{providers:c}:{}}}function G(e){let t=L(e)?e:{};return{stt:B(t.stt),tts:H(t.tts)}}async function K(){return G((await s(i(`/api/config`))).payload?.config??{})}async function q(e){await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:U(e.stt),tts:W(e.tts)})}),l()}async function J(){let e=await s(i(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function Y(){let e=await s(i(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function X(){let e=await s(i(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Z(e){let t=await s(i(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function Q(e){let t=(0,te.c)(15),{kind:n,providerId:r,fieldId:i,value:a,onChange:o,labels:s,placeholder:c,className:l}=e,d=c===void 0?`sk-...`:c,f;t[0]!==n||t[1]!==r?(f=()=>Z({kind:n,provider:r}).then($),t[0]=n,t[1]=r,t[2]=f):f=t[2];let p=f,m;t[3]===l?m=t[4]:(m=y(`flex min-w-0 flex-col gap-1.5`,l),t[3]=l,t[4]=m);let h;t[5]!==i||t[6]!==s||t[7]!==o||t[8]!==d||t[9]!==p||t[10]!==a?(h=(0,j.jsx)(u,{id:i,value:a,onChange:o,placeholder:d,labels:s,reveal:p,loadFailedLabel:s.loadFailed,maskedHelp:s.maskedHelp,notInConfigFile:s.notInConfigFile,inputClassName:`text-xs`}),t[5]=i,t[6]=s,t[7]=o,t[8]=d,t[9]=p,t[10]=a,t[11]=h):h=t[11];let g;return t[12]!==m||t[13]!==h?(g=(0,j.jsx)(`div`,{className:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14],g}function $(e){return e.apiKey??null}export{X as a,F as c,S as d,K as i,fe as l,J as n,G as o,Y as r,q as s,Q as t,ee as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,l as t,rr as n}from"./index-
|
|
1
|
+
import{c as e,l as t,rr as n}from"./index-S23p3aa0.js";function r(e){return e===`zh`?`zh`:`en`}function i(e,t){let n=r(t),i=n===`en`?void 0:e.metadata.i18n?.[n],a=i?.examplePrompts&&i.examplePrompts.length>0?i.examplePrompts:e.metadata.examplePrompts??[];return{description:o(i?.description,e.description),whenToUse:s(i?.whenToUse,e.metadata.whenToUse),examplePrompts:a}}function a(e){return[e.name,e.title,e.description,e.metadata.whenToUse??``,...(e.metadata.examplePrompts??[]).map(e=>e.text),...Object.values(e.metadata.i18n??{}).flatMap(e=>[e.description??``,e.whenToUse??``,...(e.examplePrompts??[]).map(e=>e.text)]),...e.metadata.tags].join(` `).toLowerCase()}function o(e,t){return e?.trim()||t}function s(e,t){return e?.trim()||t?.trim()||void 0}function c(e,t,n){if(e.field===`goal`){t(e.text);return}n(t=>({...t,[e.field]:e.text}))}function l(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function u(e,t){return e?new Intl.DateTimeFormat(t,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(new Date(e)):`—`}function d(e){if(!e||!Number.isFinite(e))return`—`;let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;if(n<60)return r?`${n}m ${r}s`:`${n}m`;let i=Math.floor(n/60),a=n%60;return a?`${i}h ${a}m`:`${i}h`}function f(e){return e===`succeeded`?`bg-emerald-500/15 text-emerald-700 dark:text-emerald-300`:e===`failed`||e===`timeout`?`bg-red-500/15 text-red-700 dark:text-red-300`:e===`cancelled`?`bg-amber-500/15 text-amber-700 dark:text-amber-300`:`bg-accent-soft text-accent-fg`}function p(n){let r=n.metadata.tags.map(e=>e.toLowerCase());for(let n of e)if(t[n].some(e=>r.includes(e)))return n;return null}function m(e,n){if(n===`all`)return!0;let r=e.metadata.tags.map(e=>e.toLowerCase());return t[n].some(e=>r.includes(e))}function h(t){let n=new Map;for(let e of t){let t=p(e)??`uncategorized`,r=n.get(t)??[];r.push(e),n.set(t,r)}let r=[];for(let t of e){let e=n.get(t);e?.length&&r.push({category:t,items:e})}let i=n.get(`uncategorized`);return i?.length&&r.push({category:`uncategorized`,items:i}),r}function g(e,t){return t===`all`?!0:t===`builtin`?e.metadata.builtIn:e.metadata.source===`user`}function _(e,t,n,r){let i=t.trim().toLowerCase();return e.filter(e=>!m(e,n)||!g(e,r)?!1:i?a(e).includes(i):!0)}function v(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function y(e){if(e==null)return e;if(typeof e==`object`&&e&&`raw`in e){let t=e.raw;return t===void 0?e:t}return e}function b(e){let t=e.run.metadata?.sessionKey?.trim();return t&&n(t)?t:null}function x(e,t){let n=`/chat/${encodeURIComponent(e)}`,r=t?.trim();return r?`${n}?${new URLSearchParams({draft:r}).toString()}`:n}function S(e){let t=e.source;return t&&typeof t==`object`&&`kind`in t&&typeof t.kind==`string`?t.kind:e.metadata?.triggerSource?.trim()||`unknown`}function C(e,t){let n=t.trim();return!n||n===`all`?!0:S(e)===n}function w(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.trim();e&&(t[n]=e)}return Object.keys(t).length>0?t:void 0}function T(e){let t=[];e.run.error&&t.push({key:`run-error`,kind:`run_error`,severity:e.run.error.recoverable?`warning`:`error`,code:e.run.error.code,message:e.run.error.message,detail:e.run.error.detail});for(let n of e.agents){n.status===`error`?t.push({key:`agent-error:${n.id}`,kind:`agent_error`,severity:`error`,agentId:n.id,agentLabel:n.label,message:n.error,detail:n.resultPreview}):n.status===`skipped`&&t.push({key:`agent-skipped:${n.id}`,kind:`agent_skipped`,severity:`warning`,agentId:n.id,agentLabel:n.label,message:n.error});for(let e of n.steps??[])e.status===`error`&&t.push({key:`step-error:${n.id}:${e.id}`,kind:`step_error`,severity:`error`,agentId:n.id,agentLabel:n.label,stepId:e.id,stepLabel:e.label,message:e.error,detail:e.resultPreview??e.detail})}return t}export{u as a,y as c,f as d,v as f,i as h,d as i,b as l,c as m,T as n,h as o,x as p,_ as r,l as s,w as t,C as u};
|
package/dist/gateway/static/root/assets/{workflows-page-B1B-est-.js → workflows-page-CxFbPBed.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,o as a}from"./url-DQRqHuL-.js";import{i as o}from"./vendor-swr-BIWyz7Rc.js";import{t as s}from"./circle-check-C23XjkUj.js";import{t as c}from"./copy-Dv6d4Dvw.js";import{a as l}from"./fetch-CFdKBnE6.js";import{A as u,Ar as d,C as f,D as p,Do as m,Dr as h,E as g,Ea as _,Er as v,Fo as y,Gi as b,M as x,Nt as S,O as C,Or as w,Po as T,S as E,T as D,Ti as O,Tr as k,Ua as A,Ui as j,Vi as M,Vr as N,Zi as P,_ as ee,a as F,b as I,ba as te,bi as ne,d as L,ei as R,es as re,f as z,fa as B,fi as V,fo as H,g as U,h as W,hi as ie,i as ae,ia as G,ii as K,j as oe,ji as se,jr as ce,k as le,kr as q,m as ue,mo as de,ns as fe,o as pe,pi as J,r as me,ra as he,ro as ge,s as _e,u as ve,ua as ye,v as be,w as xe,x as Se,y as Ce,yo as we,zo as Te,zt as Ee}from"./index-DBc-bVOQ.js";import{a as De,c as Oe,d as ke,f as Ae,h as Y,i as je,l as Me,m as Ne,n as Pe,o as Fe,p as Ie,r as Le,s as X,t as Re,u as ze}from"./workflow-page.utils-BxacHYen.js";var Z=e(t(),1),Q=n(),Be=[`queued`,`running`,`succeeded`,`attention`],Ve=10080*60*1e3,He=new Set([`failed`,`timeout`,`cancelled`]);function Ue(e){return e.metadata?.sessionKey?.trim()||null}function We(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Ge(e,t){if(!e||typeof e!=`object`)return null;let n=e;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function Ke(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Ge(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Ge(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?We(n,t):null}function qe(e,t=90){return Ke(e,t)??We(e.title?.trim()||e.definitionId,t)}function Je(e,t=44){return We(e.title?.trim()||e.definitionId,t)}function Ye(e,t){let n=t.trim().toLowerCase();return n?[Ke(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function Xe(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!ze(e,t.triggerFilter??`all`)?!1:Ye(e,t.searchQuery))}function Ze(e){return e.completedAtMs??e.createdAtMs}function Qe(e,t){return t-Ze(e)<=Ve}function $e(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?Qe(e,t)?`succeeded`:null:He.has(e.status)?`attention`:null}function et(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):e===`running`?n.sort((e,t)=>(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)):n.sort((e,t)=>Ze(t)-Ze(e))}function tt(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=$e(r,t);e&&n[e].push(r)}let r=et(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return Be.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:et(e,n[e])})}var nt=new Map;function rt(e){let t=nt.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),nt.set(e,t)),t}function it(e,t,n){let r=Math.round((t-e)/1e3),i=rt(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function at(e){return e.status===`queued`||e.status===`running`}function ot(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),st=(0,Z.memo)(function(e){let t=(0,Q.c)(65),{run:n,language:r,localeTag:i,nowMs:o,selected:s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d}=e,f=a(r).workflows,[p,m]=(0,Z.useState)(!1),h;t[0]===n?h=t[1]:(h=Ue(n),t[0]=n,t[1]=h);let g=!h,_;t[2]===n?_=t[3]:(_=at(n),t[2]=n,t[3]=_);let v=_,y=n.status===`running`||n.status===`queued`,b;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(b=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=b):b=t[6];let x=b,S=n.metrics.errorAgentCount>0,C=n.startedAtMs??n.createdAtMs,w=je(v?o-C:n.metrics.durationMs),T=X(f.taskArtifacts,{count:n.metrics.artifactCount}),E;t[7]===n?E=t[8]:(E=qe(n),t[7]=n,t[8]=E);let D=E,k;t[9]===n?k=t[10]:(k=Je(n),t[9]=n,t[10]=k);let A=k,j;t[11]!==c||t[12]!==n?(j=()=>{c(n)},t[11]=c,t[12]=n,t[13]=j):j=t[13];let M=j,N;t[14]!==g||t[15]!==l||t[16]!==n?(N=()=>{g||l(n)},t[14]=g,t[15]=l,t[16]=n,t[17]=N):N=t[17];let P=N,ee=s?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,F;t[18]===ee?F=t[19]:(F=J(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,ee,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=ee,t[19]=F);let I;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(I=J(`w-full text-left`,K.focusRingPanel),t[20]=I):I=t[20];let te;t[21]===D?te=t[22]:(te=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:D}),t[21]=D,t[22]=te);let ne;t[23]===A?ne=t[24]:(ne=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:A}),t[23]=A,t[24]=ne);let L;t[25]!==te||t[26]!==ne?(L=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[te,ne]}),t[25]=te,t[26]=ne,t[27]=L):L=t[27];let R;t[28]===n.status?R=t[29]:(R=J(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,ke(n.status)),t[28]=n.status,t[29]=R);let re;t[30]!==i||t[31]!==o||t[32]!==C?(re=it(C,o,i),t[30]=i,t[31]=o,t[32]=C,t[33]=re):re=t[33];let z;t[34]===re?z=t[35]:(z=(0,$.jsx)(`span`,{children:re}),t[34]=re,t[35]=z);let B=w===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:X(f.taskElapsed,{duration:w})})]}),U;t[36]!==z||t[37]!==B?(U=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[z,B]}),t[36]=z,t[37]=B,t[38]=U):U=t[38];let W=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:T}):null,ie=s?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:f.taskOpenDetails}):null,ae;t[39]!==W||t[40]!==ie?(ae=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[W,ie]}),t[39]=W,t[40]=ie,t[41]=ae):ae=t[41];let G;t[42]===m?G=t[43]:(G=()=>m(lt),t[42]=m,t[43]=G);let oe;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,$.jsx)(H,{className:`size-4`,"aria-hidden":!0}),t[44]=oe):oe=t[44];let se;t[45]!==f.taskActionsAria||t[46]!==p||t[47]!==G?(se=(0,$.jsx)(V,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":f.taskActionsAria,"aria-expanded":p,onClick:G,children:oe}),t[45]=f.taskActionsAria,t[46]=p,t[47]=G,t[48]=se):se=t[48];let ce;t[49]!==v||t[50]!==g||t[51]!==P||t[52]!==f.cancel||t[53]!==f.continueInChat||t[54]!==f.rerun||t[55]!==f.taskCloseMenu||t[56]!==p||t[57]!==u||t[58]!==d||t[59]!==n||t[60]!==m?(ce=p?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":f.taskCloseMenu,onClick:()=>m(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[(0,$.jsx)(ct,{label:f.continueInChat,disabled:g,onClick:()=>{m(!1),P()}}),v?(0,$.jsx)(ct,{label:f.cancel,tone:`danger`,onClick:()=>{m(!1),u(n.id)}}):null,ot(n)?(0,$.jsx)(ct,{label:f.rerun,onClick:()=>{m(!1),d(n.id)}}):null]})]}):null,t[49]=v,t[50]=g,t[51]=P,t[52]=f.cancel,t[53]=f.continueInChat,t[54]=f.rerun,t[55]=f.taskCloseMenu,t[56]=p,t[57]=u,t[58]=d,t[59]=n,t[60]=m,t[61]=ce):ce=t[61];let le;return t[62]!==se||t[63]!==ce?(le=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[se,ce]}),t[62]=se,t[63]=ce,t[64]=le):le=t[64],(0,$.jsxs)(`div`,{className:F,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:M,"aria-label":`${f.taskOpenDetails}: ${D}`,"aria-current":s?`true`:void 0,className:I,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[L,(0,$.jsx)(`span`,{className:R,children:f.status[n.status]??n.status})]}),U]}),y?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:X(f.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[x,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${x}%`}})})]}):null,ae,S?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(O,{className:`size-3 shrink-0`,"aria-hidden":!0}),X(f.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),le]})});function ct(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:i,onClick:a}=e,o=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,s=i===`danger`&&!r&&`text-red-600 dark:text-red-300`,c;t[0]!==o||t[1]!==s?(c=J(`block w-full px-3 py-1.5 text-left text-xs`,o,s),t[0]=o,t[1]=s,t[2]=c):c=t[2];let l;return t[3]!==r||t[4]!==n||t[5]!==a||t[6]!==c?(l=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:a,className:c,children:n}),t[3]=r,t[4]=n,t[5]=a,t[6]=c,t[7]=l):l=t[7],l}function lt(e){return!e}function ut(e,t){return t.boardColumns[e]}var dt=(0,Z.memo)(function(e){let t=(0,Q.c)(14),{column:n,language:r,localeTag:i,nowMs:o,selectedRunId:s,onOpenRun:c,onOpenRunChat:l,onCancelRun:u,onRetryRun:d}=e,f=a(r).workflows,[p,m]=(0,Z.useState)(!1),h=n.id===`succeeded`,g=h?5:n.runs.length,_;t[0]!==g||t[1]!==n.runs||t[2]!==p||t[3]!==h?(_=h&&!p?n.runs.slice(0,g):n.runs,t[0]=g,t[1]=n.runs,t[2]=p,t[3]=h,t[4]=_):_=t[4];let v=_,y=h&&n.runs.length>5&&!p,b=h&&p,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=J(`flex min-h-112 w-73 shrink-0 snap-center flex-col rounded-2xl border border-edge bg-surface-panel/40`),t[5]=x):x=t[5];let S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-accent`,"aria-hidden":!0}),t[6]=S):S=t[6];let C;t[7]===n.runs.length?C=t[8]:(C=(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:n.runs.length}),t[7]=n.runs.length,t[8]=C);let w=v.length===0?(0,$.jsx)(`div`,{className:`flex min-h-32 items-center justify-center rounded-xl border border-dashed border-edge bg-surface-panel/40 px-4 py-6 text-center text-xs text-fg-subtle`,children:f.boardColumnEmpty}):v.map(e=>(0,$.jsx)(st,{run:e,language:r,localeTag:i,nowMs:o,selected:e.id===s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d},e.id)),T=y?(0,$.jsx)(V,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!0),children:X(f.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,E=b?(0,$.jsx)(V,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!1),children:f.boardCollapseSucceeded}):null,D=h&&(n.hiddenByCap??0)>0?(0,$.jsx)(`p`,{className:`px-1 text-center text-[11px] text-fg-subtle`,children:X(f.boardSucceededCapHint,{count:n.hiddenByCap??0})}):null,O;return t[9]!==w||t[10]!==T||t[11]!==E||t[12]!==D?(O=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col gap-3 p-2.5`,children:[w,T,E,D]}),t[9]=w,t[10]=T,t[11]=E,t[12]=D,t[13]=O):O=t[13],(0,$.jsxs)(`section`,{className:x,"aria-label":ut(n.id,f),children:[(0,$.jsxs)(`header`,{className:`sticky top-0 z-10 flex items-center justify-between gap-2 rounded-t-2xl border-b border-edge-subtle bg-surface-panel/90 px-3.5 py-3 backdrop-blur`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[S,(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:ut(n.id,f)})]}),C]}),O]})}),ft=(0,Z.memo)(function(e){let t=(0,Q.c)(45),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(pt),t[0]=n,t[1]=g);let _=g,[v,y]=(0,Z.useState)(mt),b,x;t[2]===_?(b=t[3],x=t[4]):(b=()=>{if(!_)return;let e=window.setInterval(()=>y(Date.now()),1e3);return()=>window.clearInterval(e)},x=[_],t[2]=_,t[3]=b,t[4]=x),(0,Z.useEffect)(b,x);let S;t[5]!==v||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(S=tt(Xe(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),v),t[5]=v,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=S):S=t[10];let C=S,w=C.reduce(ht,0);if(u&&w===0){let e;return t[11]===a.loading?e=t[12]:(e=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:a.loading}),t[11]=a.loading,t[12]=e),e}if(!u&&w===0){let e;t[13]===a.boardEmptyTitle?e=t[14]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[13]=a.boardEmptyTitle,t[14]=e);let n;t[15]===a.boardEmptyHint?n=t[16]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[15]=a.boardEmptyHint,t[16]=n);let r;t[17]!==a.boardStart||t[18]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(V,{variant:`primary`,onClick:h,children:a.boardStart})}),t[17]=a.boardStart,t[18]=h,t[19]=r):r=t[19];let i;return t[20]!==e||t[21]!==n||t[22]!==r?(i=(0,$.jsxs)(`div`,{className:`rounded-2xl border border-dashed border-edge bg-surface-panel/40 px-6 py-12 text-center`,children:[e,n,r]}),t[20]=e,t[21]=n,t[22]=r,t[23]=i):i=t[23],i}let T;if(t[24]!==C||t[25]!==r||t[26]!==i||t[27]!==v||t[28]!==p||t[29]!==d||t[30]!==f||t[31]!==m||t[32]!==l){let e;t[34]!==r||t[35]!==i||t[36]!==v||t[37]!==p||t[38]!==d||t[39]!==f||t[40]!==m||t[41]!==l?(e=e=>(0,$.jsx)(dt,{column:e,language:r,localeTag:i,nowMs:v,selectedRunId:l,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[34]=r,t[35]=i,t[36]=v,t[37]=p,t[38]=d,t[39]=f,t[40]=m,t[41]=l,t[42]=e):e=t[42],T=C.map(e),t[24]=C,t[25]=r,t[26]=i,t[27]=v,t[28]=p,t[29]=d,t[30]=f,t[31]=m,t[32]=l,t[33]=T}else T=t[33];let E;return t[43]===T?E=t[44]:(E=(0,$.jsx)(`div`,{className:`-mx-1 flex min-w-0 snap-x snap-mandatory gap-3 overflow-x-auto px-1 pb-2`,children:T}),t[43]=T,t[44]=E),E});function pt(e){return e.status===`queued`||e.status===`running`}function mt(){return Date.now()}function ht(e,t){return e+t.runs.length}var gt=`export const meta = {
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{i,o as a}from"./url-DQRqHuL-.js";import{i as o}from"./vendor-swr-BIWyz7Rc.js";import{t as s}from"./circle-check-C23XjkUj.js";import{t as c}from"./copy-Dv6d4Dvw.js";import{a as l}from"./fetch-CFdKBnE6.js";import{A as u,Ar as d,C as f,D as p,Do as m,Dr as h,E as g,Ea as _,Er as v,Fo as y,Gi as b,M as x,Nt as S,O as C,Or as w,Po as T,S as E,T as D,Ti as O,Tr as k,Ua as A,Ui as j,Vi as M,Vr as N,Zi as P,_ as ee,a as F,b as I,ba as te,bi as ne,d as L,ei as R,es as re,f as z,fa as B,fi as V,fo as H,g as U,h as W,hi as ie,i as ae,ia as G,ii as K,j as oe,ji as se,jr as ce,k as le,kr as q,m as ue,mo as de,ns as fe,o as pe,pi as J,r as me,ra as he,ro as ge,s as _e,u as ve,ua as ye,v as be,w as xe,x as Se,y as Ce,yo as we,zo as Te,zt as Ee}from"./index-S23p3aa0.js";import{a as De,c as Oe,d as ke,f as Ae,h as Y,i as je,l as Me,m as Ne,n as Pe,o as Fe,p as Ie,r as Le,s as X,t as Re,u as ze}from"./workflow-page.utils-BcZQmKBX.js";var Z=e(t(),1),Q=n(),Be=[`queued`,`running`,`succeeded`,`attention`],Ve=10080*60*1e3,He=new Set([`failed`,`timeout`,`cancelled`]);function Ue(e){return e.metadata?.sessionKey?.trim()||null}function We(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Ge(e,t){if(!e||typeof e!=`object`)return null;let n=e;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function Ke(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Ge(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Ge(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?We(n,t):null}function qe(e,t=90){return Ke(e,t)??We(e.title?.trim()||e.definitionId,t)}function Je(e,t=44){return We(e.title?.trim()||e.definitionId,t)}function Ye(e,t){let n=t.trim().toLowerCase();return n?[Ke(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function Xe(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!ze(e,t.triggerFilter??`all`)?!1:Ye(e,t.searchQuery))}function Ze(e){return e.completedAtMs??e.createdAtMs}function Qe(e,t){return t-Ze(e)<=Ve}function $e(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?Qe(e,t)?`succeeded`:null:He.has(e.status)?`attention`:null}function et(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):e===`running`?n.sort((e,t)=>(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)):n.sort((e,t)=>Ze(t)-Ze(e))}function tt(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=$e(r,t);e&&n[e].push(r)}let r=et(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return Be.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:et(e,n[e])})}var nt=new Map;function rt(e){let t=nt.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),nt.set(e,t)),t}function it(e,t,n){let r=Math.round((t-e)/1e3),i=rt(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function at(e){return e.status===`queued`||e.status===`running`}function ot(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),st=(0,Z.memo)(function(e){let t=(0,Q.c)(65),{run:n,language:r,localeTag:i,nowMs:o,selected:s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d}=e,f=a(r).workflows,[p,m]=(0,Z.useState)(!1),h;t[0]===n?h=t[1]:(h=Ue(n),t[0]=n,t[1]=h);let g=!h,_;t[2]===n?_=t[3]:(_=at(n),t[2]=n,t[3]=_);let v=_,y=n.status===`running`||n.status===`queued`,b;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(b=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=b):b=t[6];let x=b,S=n.metrics.errorAgentCount>0,C=n.startedAtMs??n.createdAtMs,w=je(v?o-C:n.metrics.durationMs),T=X(f.taskArtifacts,{count:n.metrics.artifactCount}),E;t[7]===n?E=t[8]:(E=qe(n),t[7]=n,t[8]=E);let D=E,k;t[9]===n?k=t[10]:(k=Je(n),t[9]=n,t[10]=k);let A=k,j;t[11]!==c||t[12]!==n?(j=()=>{c(n)},t[11]=c,t[12]=n,t[13]=j):j=t[13];let M=j,N;t[14]!==g||t[15]!==l||t[16]!==n?(N=()=>{g||l(n)},t[14]=g,t[15]=l,t[16]=n,t[17]=N):N=t[17];let P=N,ee=s?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,F;t[18]===ee?F=t[19]:(F=J(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,ee,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=ee,t[19]=F);let I;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(I=J(`w-full text-left`,K.focusRingPanel),t[20]=I):I=t[20];let te;t[21]===D?te=t[22]:(te=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:D}),t[21]=D,t[22]=te);let ne;t[23]===A?ne=t[24]:(ne=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:A}),t[23]=A,t[24]=ne);let L;t[25]!==te||t[26]!==ne?(L=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[te,ne]}),t[25]=te,t[26]=ne,t[27]=L):L=t[27];let R;t[28]===n.status?R=t[29]:(R=J(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,ke(n.status)),t[28]=n.status,t[29]=R);let re;t[30]!==i||t[31]!==o||t[32]!==C?(re=it(C,o,i),t[30]=i,t[31]=o,t[32]=C,t[33]=re):re=t[33];let z;t[34]===re?z=t[35]:(z=(0,$.jsx)(`span`,{children:re}),t[34]=re,t[35]=z);let B=w===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:X(f.taskElapsed,{duration:w})})]}),U;t[36]!==z||t[37]!==B?(U=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[z,B]}),t[36]=z,t[37]=B,t[38]=U):U=t[38];let W=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:T}):null,ie=s?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:f.taskOpenDetails}):null,ae;t[39]!==W||t[40]!==ie?(ae=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[W,ie]}),t[39]=W,t[40]=ie,t[41]=ae):ae=t[41];let G;t[42]===m?G=t[43]:(G=()=>m(lt),t[42]=m,t[43]=G);let oe;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,$.jsx)(H,{className:`size-4`,"aria-hidden":!0}),t[44]=oe):oe=t[44];let se;t[45]!==f.taskActionsAria||t[46]!==p||t[47]!==G?(se=(0,$.jsx)(V,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":f.taskActionsAria,"aria-expanded":p,onClick:G,children:oe}),t[45]=f.taskActionsAria,t[46]=p,t[47]=G,t[48]=se):se=t[48];let ce;t[49]!==v||t[50]!==g||t[51]!==P||t[52]!==f.cancel||t[53]!==f.continueInChat||t[54]!==f.rerun||t[55]!==f.taskCloseMenu||t[56]!==p||t[57]!==u||t[58]!==d||t[59]!==n||t[60]!==m?(ce=p?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":f.taskCloseMenu,onClick:()=>m(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[(0,$.jsx)(ct,{label:f.continueInChat,disabled:g,onClick:()=>{m(!1),P()}}),v?(0,$.jsx)(ct,{label:f.cancel,tone:`danger`,onClick:()=>{m(!1),u(n.id)}}):null,ot(n)?(0,$.jsx)(ct,{label:f.rerun,onClick:()=>{m(!1),d(n.id)}}):null]})]}):null,t[49]=v,t[50]=g,t[51]=P,t[52]=f.cancel,t[53]=f.continueInChat,t[54]=f.rerun,t[55]=f.taskCloseMenu,t[56]=p,t[57]=u,t[58]=d,t[59]=n,t[60]=m,t[61]=ce):ce=t[61];let le;return t[62]!==se||t[63]!==ce?(le=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[se,ce]}),t[62]=se,t[63]=ce,t[64]=le):le=t[64],(0,$.jsxs)(`div`,{className:F,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:M,"aria-label":`${f.taskOpenDetails}: ${D}`,"aria-current":s?`true`:void 0,className:I,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[L,(0,$.jsx)(`span`,{className:R,children:f.status[n.status]??n.status})]}),U]}),y?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:X(f.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[x,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${x}%`}})})]}):null,ae,S?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(O,{className:`size-3 shrink-0`,"aria-hidden":!0}),X(f.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),le]})});function ct(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:i,onClick:a}=e,o=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,s=i===`danger`&&!r&&`text-red-600 dark:text-red-300`,c;t[0]!==o||t[1]!==s?(c=J(`block w-full px-3 py-1.5 text-left text-xs`,o,s),t[0]=o,t[1]=s,t[2]=c):c=t[2];let l;return t[3]!==r||t[4]!==n||t[5]!==a||t[6]!==c?(l=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:a,className:c,children:n}),t[3]=r,t[4]=n,t[5]=a,t[6]=c,t[7]=l):l=t[7],l}function lt(e){return!e}function ut(e,t){return t.boardColumns[e]}var dt=(0,Z.memo)(function(e){let t=(0,Q.c)(14),{column:n,language:r,localeTag:i,nowMs:o,selectedRunId:s,onOpenRun:c,onOpenRunChat:l,onCancelRun:u,onRetryRun:d}=e,f=a(r).workflows,[p,m]=(0,Z.useState)(!1),h=n.id===`succeeded`,g=h?5:n.runs.length,_;t[0]!==g||t[1]!==n.runs||t[2]!==p||t[3]!==h?(_=h&&!p?n.runs.slice(0,g):n.runs,t[0]=g,t[1]=n.runs,t[2]=p,t[3]=h,t[4]=_):_=t[4];let v=_,y=h&&n.runs.length>5&&!p,b=h&&p,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=J(`flex min-h-112 w-73 shrink-0 snap-center flex-col rounded-2xl border border-edge bg-surface-panel/40`),t[5]=x):x=t[5];let S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-accent`,"aria-hidden":!0}),t[6]=S):S=t[6];let C;t[7]===n.runs.length?C=t[8]:(C=(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:n.runs.length}),t[7]=n.runs.length,t[8]=C);let w=v.length===0?(0,$.jsx)(`div`,{className:`flex min-h-32 items-center justify-center rounded-xl border border-dashed border-edge bg-surface-panel/40 px-4 py-6 text-center text-xs text-fg-subtle`,children:f.boardColumnEmpty}):v.map(e=>(0,$.jsx)(st,{run:e,language:r,localeTag:i,nowMs:o,selected:e.id===s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d},e.id)),T=y?(0,$.jsx)(V,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!0),children:X(f.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,E=b?(0,$.jsx)(V,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!1),children:f.boardCollapseSucceeded}):null,D=h&&(n.hiddenByCap??0)>0?(0,$.jsx)(`p`,{className:`px-1 text-center text-[11px] text-fg-subtle`,children:X(f.boardSucceededCapHint,{count:n.hiddenByCap??0})}):null,O;return t[9]!==w||t[10]!==T||t[11]!==E||t[12]!==D?(O=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col gap-3 p-2.5`,children:[w,T,E,D]}),t[9]=w,t[10]=T,t[11]=E,t[12]=D,t[13]=O):O=t[13],(0,$.jsxs)(`section`,{className:x,"aria-label":ut(n.id,f),children:[(0,$.jsxs)(`header`,{className:`sticky top-0 z-10 flex items-center justify-between gap-2 rounded-t-2xl border-b border-edge-subtle bg-surface-panel/90 px-3.5 py-3 backdrop-blur`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[S,(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:ut(n.id,f)})]}),C]}),O]})}),ft=(0,Z.memo)(function(e){let t=(0,Q.c)(45),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(pt),t[0]=n,t[1]=g);let _=g,[v,y]=(0,Z.useState)(mt),b,x;t[2]===_?(b=t[3],x=t[4]):(b=()=>{if(!_)return;let e=window.setInterval(()=>y(Date.now()),1e3);return()=>window.clearInterval(e)},x=[_],t[2]=_,t[3]=b,t[4]=x),(0,Z.useEffect)(b,x);let S;t[5]!==v||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(S=tt(Xe(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),v),t[5]=v,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=S):S=t[10];let C=S,w=C.reduce(ht,0);if(u&&w===0){let e;return t[11]===a.loading?e=t[12]:(e=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:a.loading}),t[11]=a.loading,t[12]=e),e}if(!u&&w===0){let e;t[13]===a.boardEmptyTitle?e=t[14]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[13]=a.boardEmptyTitle,t[14]=e);let n;t[15]===a.boardEmptyHint?n=t[16]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[15]=a.boardEmptyHint,t[16]=n);let r;t[17]!==a.boardStart||t[18]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(V,{variant:`primary`,onClick:h,children:a.boardStart})}),t[17]=a.boardStart,t[18]=h,t[19]=r):r=t[19];let i;return t[20]!==e||t[21]!==n||t[22]!==r?(i=(0,$.jsxs)(`div`,{className:`rounded-2xl border border-dashed border-edge bg-surface-panel/40 px-6 py-12 text-center`,children:[e,n,r]}),t[20]=e,t[21]=n,t[22]=r,t[23]=i):i=t[23],i}let T;if(t[24]!==C||t[25]!==r||t[26]!==i||t[27]!==v||t[28]!==p||t[29]!==d||t[30]!==f||t[31]!==m||t[32]!==l){let e;t[34]!==r||t[35]!==i||t[36]!==v||t[37]!==p||t[38]!==d||t[39]!==f||t[40]!==m||t[41]!==l?(e=e=>(0,$.jsx)(dt,{column:e,language:r,localeTag:i,nowMs:v,selectedRunId:l,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[34]=r,t[35]=i,t[36]=v,t[37]=p,t[38]=d,t[39]=f,t[40]=m,t[41]=l,t[42]=e):e=t[42],T=C.map(e),t[24]=C,t[25]=r,t[26]=i,t[27]=v,t[28]=p,t[29]=d,t[30]=f,t[31]=m,t[32]=l,t[33]=T}else T=t[33];let E;return t[43]===T?E=t[44]:(E=(0,$.jsx)(`div`,{className:`-mx-1 flex min-w-0 snap-x snap-mandatory gap-3 overflow-x-auto px-1 pb-2`,children:T}),t[43]=T,t[44]=E),E});function pt(e){return e.status===`queued`||e.status===`running`}function mt(){return Date.now()}function ht(e,t){return e+t.runs.length}var gt=`export const meta = {
|
|
2
2
|
name: 'my_workflow',
|
|
3
3
|
description: 'Describe what this workflow does.',
|
|
4
4
|
whenToUse: 'When the user asks for ...',
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png?v=20260621-4" />
|
|
11
11
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260621-4" />
|
|
12
12
|
<title>xopc</title>
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-S23p3aa0.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/vendor-codemirror-DYoKfS8f.js">
|
package/dist/package.js
CHANGED
package/dist/src/config/paths.js
CHANGED
|
@@ -263,6 +263,8 @@ function resolveBundledExtensionsDir() {
|
|
|
263
263
|
* Resolve the bundled skills directory (shipped with xopc)
|
|
264
264
|
*/
|
|
265
265
|
function resolveBundledSkillsDir() {
|
|
266
|
+
const envDir = process.env[ENV_BUNDLED_SKILLS_ROOT];
|
|
267
|
+
if (envDir && existsSync(envDir)) return envDir;
|
|
266
268
|
try {
|
|
267
269
|
const srcDir = dirname(fileURLToPath(import.meta.url));
|
|
268
270
|
const skillsDir = join(join(srcDir, "..", ".."), "skills");
|
|
@@ -291,12 +293,13 @@ function resolveExtensionSdkPath() {
|
|
|
291
293
|
return join(process.cwd(), "src", "extensions", "sdk", "index.ts");
|
|
292
294
|
}
|
|
293
295
|
}
|
|
294
|
-
var ENV_BUNDLED_EXTENSIONS_ROOT, FILENAMES, WORKSPACE_FILES;
|
|
296
|
+
var ENV_BUNDLED_EXTENSIONS_ROOT, ENV_BUNDLED_SKILLS_ROOT, FILENAMES, WORKSPACE_FILES;
|
|
295
297
|
var init_paths = __esmMin((() => {
|
|
296
298
|
init_agent_scope();
|
|
297
299
|
init_paths_state();
|
|
298
300
|
init_workspace_defaults();
|
|
299
301
|
ENV_BUNDLED_EXTENSIONS_ROOT = "XOPC_BUNDLED_EXTENSIONS_ROOT";
|
|
302
|
+
ENV_BUNDLED_SKILLS_ROOT = "XOPC_BUNDLED_SKILLS_ROOT";
|
|
300
303
|
FILENAMES = {
|
|
301
304
|
CONFIG: "xopc.json",
|
|
302
305
|
MODELS_JSON: "models.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","names":["resolveAgentDirScoped","resolveAgentHomeScoped","resolveAgentProfileDirScoped","resolveAgentProfileMarkdownPathScoped"],"sources":["../../../src/config/paths.ts"],"sourcesContent":["import { join, sep } from 'path';\nimport { fileURLToPath } from 'url';\nimport { dirname } from 'path';\nimport { existsSync } from 'fs';\n\nimport type { Config } from './schema.js';\nimport {\n resolveAgentDir as resolveAgentDirScoped,\n resolveAgentHomeDir as resolveAgentHomeScoped,\n resolveAgentProfileDir as resolveAgentProfileDirScoped,\n resolveAgentProfileMarkdownPath as resolveAgentProfileMarkdownPathScoped,\n resolveAgentWorkspaceDir,\n} from '../agent/agent-scope.js';\nimport { ENV_VARS, resolveStateDir } from './paths-state.js';\n\nexport { ENV_VARS, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath, XOPC_DB_FILENAME } from './paths-state.js';\nexport { resolveDefaultAgentWorkspaceDir } from './workspace-defaults.js';\nexport {\n resolveAgentWorkspaceDir,\n resolveAgentDir as resolveAgentDirFromConfig,\n resolveAgentHomeDir as resolveAgentHomeDirFromConfig,\n} from '../agent/agent-scope.js';\n\n// ============================================\n// File Names\n// ============================================\nconst ENV_BUNDLED_EXTENSIONS_ROOT = 'XOPC_BUNDLED_EXTENSIONS_ROOT';\n\nexport const FILENAMES = {\n CONFIG: 'xopc.json',\n MODELS_JSON: 'models.json',\n /** Primary SQLite state database (`~/.xopc/xopc.db`). */\n XOPC_DB: 'xopc.db',\n EXTENSIONS_LOCK: 'extensions-lock.json',\n CREDENTIALS_PROFILES: 'auth-profiles.json',\n CRON_JOBS: 'jobs.json',\n WORKSPACE_STATE: 'workspace.json',\n SKILLS_CACHE: 'skills-cache.json',\n /** Hub / CLI install provenance for ~/.xopc/skills/<id>. */\n SKILLS_LOCK: 'skills-lock.json',\n PID: 'pid',\n STATUS: 'status.json',\n SOCKET: 'agent.sock',\n} as const;\n\n// ============================================\n// Workspace Files\n// ============================================\nexport const WORKSPACE_FILES = {\n SOUL: 'SOUL.md',\n IDENTITY: 'IDENTITY.md',\n USER: 'USER.md',\n AGENTS: 'AGENTS.md',\n TOOLS: 'TOOLS.md',\n HEARTBEAT: 'HEARTBEAT.md',\n MEMORY: 'MEMORY.md',\n} as const;\n\n// ============================================\n// Path Resolution Functions\n// ============================================\n\n/**\n * Resolve the main config file path\n */\nexport function resolveConfigPath(): string {\n return process.env[ENV_VARS.CONFIG_PATH] ?? join(resolveStateDir(), FILENAMES.CONFIG);\n}\n\n/**\n * Resolve the credentials directory\n */\nexport function resolveCredentialsDir(): string {\n return process.env[ENV_VARS.CREDENTIALS_DIR] ?? join(resolveStateDir(), 'credentials');\n}\n\n/**\n * Resolve the global auth-profiles.json path\n */\nexport function resolveAuthProfilesPath(): string {\n return join(resolveCredentialsDir(), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Resolve OAuth token file path for a provider\n */\nexport function resolveOAuthPath(provider: string): string {\n return join(resolveCredentialsDir(), 'oauth', `${provider}.json`);\n}\n\n/**\n * Internal agent state dir: `stateDir/agents/<id>/agent/`\n * (credentials, inbox IPC, pid, agent.json — not the Markdown workspace).\n */\nexport function resolveAgentDir(config: Config, agentId: string): string {\n return resolveAgentDirScoped(config, agentId);\n}\n\n/**\n * Per-agent home: `stateDir/agents/<id>/` (sessions + `agent/`).\n */\nexport function resolveAgentHomeDir(config: Config, agentId: string): string {\n return resolveAgentHomeScoped(config, agentId);\n}\n\n/** Agent profile Markdown root: `stateDir/agents/<id>/profile/`. */\nexport function resolveAgentProfileDir(config: Config, agentId: string): string {\n return resolveAgentProfileDirScoped(config, agentId);\n}\n\n/** Single file under {@link resolveAgentProfileDir} (basename only). */\nexport function resolveAgentProfileMarkdownPath(config: Config, agentId: string, filename: string): string {\n return resolveAgentProfileMarkdownPathScoped(config, agentId, filename);\n}\n\n/**\n * Resolve a profile system Markdown path (SOUL.md, …) under the agent `profile/` directory.\n */\nexport function resolveWorkspaceFile(config: Config, filename: string, agentId: string): string {\n return join(resolveAgentProfileDirScoped(config, agentId), filename);\n}\n\n/**\n * OpenClaw-aligned: per-agent auth-profiles.json directly under agent dir (no credentials subdirectory).\n */\nexport function resolveAgentAuthProfilesPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Resolve the inbox directory for an agent\n */\nexport function resolveInboxDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'inbox');\n}\n\n/**\n * Resolve the pending inbox directory\n */\nexport function resolveInboxPendingDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'pending');\n}\n\n/**\n * Resolve the processed inbox directory\n */\nexport function resolveInboxProcessedDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'processed');\n}\n\n/**\n * Resolve a specific inbox message path\n */\nexport function resolveInboxMessagePath(\n config: Config,\n messageId: string,\n pending: boolean,\n agentId: string,\n): string {\n const dir = pending ? resolveInboxPendingDir(config, agentId) : resolveInboxProcessedDir(config, agentId);\n return join(dir, `${messageId}.json`);\n}\n\n/**\n * Resolve the pid file path\n */\nexport function resolvePidPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.PID);\n}\n\n/**\n * Resolve the status.json path\n */\nexport function resolveStatusPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.STATUS);\n}\n\n/**\n * Resolve the Unix socket path\n */\nexport function resolveSocketPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.SOCKET);\n}\n\n/**\n * Resolve the extensions directory (global)\n */\nexport function resolveExtensionsDir(): string {\n return join(resolveStateDir(), 'extensions');\n}\n\n/**\n * Resolve the extensions lockfile path\n */\nexport function resolveExtensionsLockPath(): string {\n return join(resolveExtensionsDir(), FILENAMES.EXTENSIONS_LOCK);\n}\n\n/**\n * Per-agent extensions directory (`…/agents/<id>/agent/extensions/`) — used for discovery of\n * legacy or manually placed copies. CLI, web store, and `extensions dev` symlink installs use\n * {@link resolveExtensionsDir} (`~/.xopc/extensions`) only.\n */\nexport function resolveWorkspaceExtensionsDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'extensions');\n}\n\n/**\n * Resolve the skills directory (global)\n */\nexport function resolveSkillsDir(): string {\n return join(resolveStateDir(), 'skills');\n}\n\n/**\n * Resolve a specific skill path\n */\nexport function resolveSkillPath(skillId: string): string {\n return join(resolveSkillsDir(), skillId, 'SKILL.md');\n}\n\n/**\n * Skills hub lock file (~/.xopc/skills-lock.json): install source + content hash per managed skill id.\n */\nexport function resolveSkillsLockPath(): string {\n return join(resolveStateDir(), FILENAMES.SKILLS_LOCK);\n}\n\n/**\n * Resolve the cron directory\n */\nexport function resolveCronDir(): string {\n return join(resolveStateDir(), 'cron');\n}\n\n/**\n * Resolve the cron jobs file path\n */\nexport function resolveCronJobsPath(): string {\n return join(resolveCronDir(), FILENAMES.CRON_JOBS);\n}\n\n/**\n * Resolve the logs directory\n */\nexport function resolveLogsDir(): string {\n return process.env[ENV_VARS.LOG_DIR] ?? join(resolveStateDir(), 'logs');\n}\n\n/**\n * Resolve a specific log file path\n */\nexport function resolveLogPath(date: string): string {\n return join(resolveLogsDir(), `xopc-${date}.log`);\n}\n\n/**\n * Resolve the bin directory\n */\nexport function resolveBinDir(): string {\n return join(resolveStateDir(), 'bin');\n}\n\n/**\n * Resolve the xopc CLI path\n */\nexport function resolveXopcBinPath(): string {\n return join(resolveBinDir(), 'xopc');\n}\n\n/**\n * Resolve the tools directory\n */\nexport function resolveToolsDir(): string {\n return join(resolveStateDir(), 'tools');\n}\n\n/**\n * Resolve the Node.js tools directory\n */\nexport function resolveNodeToolsDir(): string {\n return join(resolveToolsDir(), 'node');\n}\n\n/**\n * Resolve the current Node.js bin directory\n */\nexport function resolveNodeBinDir(): string {\n return join(resolveNodeToolsDir(), 'current', 'bin');\n}\n\n/**\n * Resolve the node binary path\n */\nexport function resolveNodeBinPath(): string {\n return join(resolveNodeBinDir(), 'node');\n}\n\n/**\n * Resolve the npm binary path\n */\nexport function resolveNpmBinPath(): string {\n return join(resolveNodeBinDir(), 'npm');\n}\n\n/**\n * Resolve the models.json path\n */\nexport function resolveModelsJsonPath(): string {\n return join(resolveStateDir(), FILENAMES.MODELS_JSON);\n}\n\n/**\n * OpenClaw-aligned: workspace setup state directory (`<workspace>/.xopc/`).\n */\nexport function resolveWorkspaceStateDir(config: Config, agentId: string): string {\n return join(resolveAgentWorkspaceDir(config, agentId), '.xopc');\n}\n\n/**\n * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace.json`).\n */\nexport function resolveWorkspaceStatePath(config: Config, agentId: string): string {\n return join(resolveWorkspaceStateDir(config, agentId), FILENAMES.WORKSPACE_STATE);\n}\n\n/**\n * Resolve the skills cache file path (internal agent state, under agent dir).\n */\nexport function resolveSkillsCachePath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'state', FILENAMES.SKILLS_CACHE);\n}\n\n/**\n * Resolve the bundled extensions directory (shipped with xopc).\n *\n * Layout-dependent candidates (first existing wins):\n * - `XOPC_BUNDLED_EXTENSIONS_ROOT` (Electron packaged gateway override)\n * - `dist/src/config` → `dist/extensions` (npm / gateway)\n * - `src/config` → `dist/extensions` when built, else `extensions/` (dev, tsx)\n * - `out/server` → `dist/electron/extensions` (Electron extension bundles)\n */\nexport function resolveBundledExtensionsDir(): string | null {\n const envDir = process.env[ENV_BUNDLED_EXTENSIONS_ROOT];\n if (envDir && existsSync(envDir)) {\n return envDir;\n }\n\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const isElectronServerBundle = srcDir.endsWith(`${sep}out${sep}server`);\n const candidates = isElectronServerBundle\n ? [join(srcDir, '..', '..', 'dist', 'electron', 'extensions')]\n : [\n // In source-tree dev, prefer compiled bundled extensions when present: manifests point\n // at built JavaScript entries (for example src/index.js), while source folders contain TS.\n join(srcDir, '..', '..', 'dist', 'extensions'),\n join(srcDir, '..', '..', 'extensions'),\n join(srcDir, '..', '..', '..', 'dist', 'extensions'),\n join(srcDir, '..', '..', '..', 'extensions'),\n ];\n for (const dir of candidates) {\n if (existsSync(dir)) {\n return dir;\n }\n }\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Resolve the bundled skills directory (shipped with xopc)\n */\nexport function resolveBundledSkillsDir(): string | null {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n \n // Production (npm): dist/config/paths.js -> ../../ -> package root -> skills\n const packageRoot = join(srcDir, '..', '..');\n const skillsDir = join(packageRoot, 'skills');\n if (existsSync(skillsDir)) {\n return skillsDir;\n }\n \n // Development (source): src/config/paths.js -> ../../../ -> package root -> skills\n const devPackageRoot = join(srcDir, '..', '..', '..');\n const devSkillsDir = join(devPackageRoot, 'skills');\n if (existsSync(devSkillsDir)) {\n return devSkillsDir;\n }\n \n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Path to extension-sdk entry (for jiti / extension loader aliases).\n */\nexport function resolveExtensionSdkPath(): string {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const adjacent = join(srcDir, '..', 'extensions', 'sdk', 'index.ts');\n if (existsSync(adjacent)) {\n return adjacent;\n }\n const fromPackageRoot = join(srcDir, '..', '..', 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(fromPackageRoot)) {\n return fromPackageRoot;\n }\n const cwd = join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(cwd)) {\n return cwd;\n }\n return adjacent;\n } catch {\n return join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n }\n}\n\n// Re-export existsSync for bundled paths\nexport { existsSync };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paths.js","names":["resolveAgentDirScoped","resolveAgentHomeScoped","resolveAgentProfileDirScoped","resolveAgentProfileMarkdownPathScoped"],"sources":["../../../src/config/paths.ts"],"sourcesContent":["import { join, sep } from 'path';\nimport { fileURLToPath } from 'url';\nimport { dirname } from 'path';\nimport { existsSync } from 'fs';\n\nimport type { Config } from './schema.js';\nimport {\n resolveAgentDir as resolveAgentDirScoped,\n resolveAgentHomeDir as resolveAgentHomeScoped,\n resolveAgentProfileDir as resolveAgentProfileDirScoped,\n resolveAgentProfileMarkdownPath as resolveAgentProfileMarkdownPathScoped,\n resolveAgentWorkspaceDir,\n} from '../agent/agent-scope.js';\nimport { ENV_VARS, resolveStateDir } from './paths-state.js';\n\nexport { ENV_VARS, resolveHomeDir, resolveStateDir, resolveXopcDatabasePath, XOPC_DB_FILENAME } from './paths-state.js';\nexport { resolveDefaultAgentWorkspaceDir } from './workspace-defaults.js';\nexport {\n resolveAgentWorkspaceDir,\n resolveAgentDir as resolveAgentDirFromConfig,\n resolveAgentHomeDir as resolveAgentHomeDirFromConfig,\n} from '../agent/agent-scope.js';\n\n// ============================================\n// File Names\n// ============================================\nconst ENV_BUNDLED_EXTENSIONS_ROOT = 'XOPC_BUNDLED_EXTENSIONS_ROOT';\nconst ENV_BUNDLED_SKILLS_ROOT = 'XOPC_BUNDLED_SKILLS_ROOT';\n\nexport const FILENAMES = {\n CONFIG: 'xopc.json',\n MODELS_JSON: 'models.json',\n /** Primary SQLite state database (`~/.xopc/xopc.db`). */\n XOPC_DB: 'xopc.db',\n EXTENSIONS_LOCK: 'extensions-lock.json',\n CREDENTIALS_PROFILES: 'auth-profiles.json',\n CRON_JOBS: 'jobs.json',\n WORKSPACE_STATE: 'workspace.json',\n SKILLS_CACHE: 'skills-cache.json',\n /** Hub / CLI install provenance for ~/.xopc/skills/<id>. */\n SKILLS_LOCK: 'skills-lock.json',\n PID: 'pid',\n STATUS: 'status.json',\n SOCKET: 'agent.sock',\n} as const;\n\n// ============================================\n// Workspace Files\n// ============================================\nexport const WORKSPACE_FILES = {\n SOUL: 'SOUL.md',\n IDENTITY: 'IDENTITY.md',\n USER: 'USER.md',\n AGENTS: 'AGENTS.md',\n TOOLS: 'TOOLS.md',\n HEARTBEAT: 'HEARTBEAT.md',\n MEMORY: 'MEMORY.md',\n} as const;\n\n// ============================================\n// Path Resolution Functions\n// ============================================\n\n/**\n * Resolve the main config file path\n */\nexport function resolveConfigPath(): string {\n return process.env[ENV_VARS.CONFIG_PATH] ?? join(resolveStateDir(), FILENAMES.CONFIG);\n}\n\n/**\n * Resolve the credentials directory\n */\nexport function resolveCredentialsDir(): string {\n return process.env[ENV_VARS.CREDENTIALS_DIR] ?? join(resolveStateDir(), 'credentials');\n}\n\n/**\n * Resolve the global auth-profiles.json path\n */\nexport function resolveAuthProfilesPath(): string {\n return join(resolveCredentialsDir(), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Resolve OAuth token file path for a provider\n */\nexport function resolveOAuthPath(provider: string): string {\n return join(resolveCredentialsDir(), 'oauth', `${provider}.json`);\n}\n\n/**\n * Internal agent state dir: `stateDir/agents/<id>/agent/`\n * (credentials, inbox IPC, pid, agent.json — not the Markdown workspace).\n */\nexport function resolveAgentDir(config: Config, agentId: string): string {\n return resolveAgentDirScoped(config, agentId);\n}\n\n/**\n * Per-agent home: `stateDir/agents/<id>/` (sessions + `agent/`).\n */\nexport function resolveAgentHomeDir(config: Config, agentId: string): string {\n return resolveAgentHomeScoped(config, agentId);\n}\n\n/** Agent profile Markdown root: `stateDir/agents/<id>/profile/`. */\nexport function resolveAgentProfileDir(config: Config, agentId: string): string {\n return resolveAgentProfileDirScoped(config, agentId);\n}\n\n/** Single file under {@link resolveAgentProfileDir} (basename only). */\nexport function resolveAgentProfileMarkdownPath(config: Config, agentId: string, filename: string): string {\n return resolveAgentProfileMarkdownPathScoped(config, agentId, filename);\n}\n\n/**\n * Resolve a profile system Markdown path (SOUL.md, …) under the agent `profile/` directory.\n */\nexport function resolveWorkspaceFile(config: Config, filename: string, agentId: string): string {\n return join(resolveAgentProfileDirScoped(config, agentId), filename);\n}\n\n/**\n * OpenClaw-aligned: per-agent auth-profiles.json directly under agent dir (no credentials subdirectory).\n */\nexport function resolveAgentAuthProfilesPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.CREDENTIALS_PROFILES);\n}\n\n/**\n * Resolve the inbox directory for an agent\n */\nexport function resolveInboxDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'inbox');\n}\n\n/**\n * Resolve the pending inbox directory\n */\nexport function resolveInboxPendingDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'pending');\n}\n\n/**\n * Resolve the processed inbox directory\n */\nexport function resolveInboxProcessedDir(config: Config, agentId: string): string {\n return join(resolveInboxDir(config, agentId), 'processed');\n}\n\n/**\n * Resolve a specific inbox message path\n */\nexport function resolveInboxMessagePath(\n config: Config,\n messageId: string,\n pending: boolean,\n agentId: string,\n): string {\n const dir = pending ? resolveInboxPendingDir(config, agentId) : resolveInboxProcessedDir(config, agentId);\n return join(dir, `${messageId}.json`);\n}\n\n/**\n * Resolve the pid file path\n */\nexport function resolvePidPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.PID);\n}\n\n/**\n * Resolve the status.json path\n */\nexport function resolveStatusPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.STATUS);\n}\n\n/**\n * Resolve the Unix socket path\n */\nexport function resolveSocketPath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), FILENAMES.SOCKET);\n}\n\n/**\n * Resolve the extensions directory (global)\n */\nexport function resolveExtensionsDir(): string {\n return join(resolveStateDir(), 'extensions');\n}\n\n/**\n * Resolve the extensions lockfile path\n */\nexport function resolveExtensionsLockPath(): string {\n return join(resolveExtensionsDir(), FILENAMES.EXTENSIONS_LOCK);\n}\n\n/**\n * Per-agent extensions directory (`…/agents/<id>/agent/extensions/`) — used for discovery of\n * legacy or manually placed copies. CLI, web store, and `extensions dev` symlink installs use\n * {@link resolveExtensionsDir} (`~/.xopc/extensions`) only.\n */\nexport function resolveWorkspaceExtensionsDir(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'extensions');\n}\n\n/**\n * Resolve the skills directory (global)\n */\nexport function resolveSkillsDir(): string {\n return join(resolveStateDir(), 'skills');\n}\n\n/**\n * Resolve a specific skill path\n */\nexport function resolveSkillPath(skillId: string): string {\n return join(resolveSkillsDir(), skillId, 'SKILL.md');\n}\n\n/**\n * Skills hub lock file (~/.xopc/skills-lock.json): install source + content hash per managed skill id.\n */\nexport function resolveSkillsLockPath(): string {\n return join(resolveStateDir(), FILENAMES.SKILLS_LOCK);\n}\n\n/**\n * Resolve the cron directory\n */\nexport function resolveCronDir(): string {\n return join(resolveStateDir(), 'cron');\n}\n\n/**\n * Resolve the cron jobs file path\n */\nexport function resolveCronJobsPath(): string {\n return join(resolveCronDir(), FILENAMES.CRON_JOBS);\n}\n\n/**\n * Resolve the logs directory\n */\nexport function resolveLogsDir(): string {\n return process.env[ENV_VARS.LOG_DIR] ?? join(resolveStateDir(), 'logs');\n}\n\n/**\n * Resolve a specific log file path\n */\nexport function resolveLogPath(date: string): string {\n return join(resolveLogsDir(), `xopc-${date}.log`);\n}\n\n/**\n * Resolve the bin directory\n */\nexport function resolveBinDir(): string {\n return join(resolveStateDir(), 'bin');\n}\n\n/**\n * Resolve the xopc CLI path\n */\nexport function resolveXopcBinPath(): string {\n return join(resolveBinDir(), 'xopc');\n}\n\n/**\n * Resolve the tools directory\n */\nexport function resolveToolsDir(): string {\n return join(resolveStateDir(), 'tools');\n}\n\n/**\n * Resolve the Node.js tools directory\n */\nexport function resolveNodeToolsDir(): string {\n return join(resolveToolsDir(), 'node');\n}\n\n/**\n * Resolve the current Node.js bin directory\n */\nexport function resolveNodeBinDir(): string {\n return join(resolveNodeToolsDir(), 'current', 'bin');\n}\n\n/**\n * Resolve the node binary path\n */\nexport function resolveNodeBinPath(): string {\n return join(resolveNodeBinDir(), 'node');\n}\n\n/**\n * Resolve the npm binary path\n */\nexport function resolveNpmBinPath(): string {\n return join(resolveNodeBinDir(), 'npm');\n}\n\n/**\n * Resolve the models.json path\n */\nexport function resolveModelsJsonPath(): string {\n return join(resolveStateDir(), FILENAMES.MODELS_JSON);\n}\n\n/**\n * OpenClaw-aligned: workspace setup state directory (`<workspace>/.xopc/`).\n */\nexport function resolveWorkspaceStateDir(config: Config, agentId: string): string {\n return join(resolveAgentWorkspaceDir(config, agentId), '.xopc');\n}\n\n/**\n * OpenClaw-aligned: workspace setup state file (`<workspace>/.xopc/workspace.json`).\n */\nexport function resolveWorkspaceStatePath(config: Config, agentId: string): string {\n return join(resolveWorkspaceStateDir(config, agentId), FILENAMES.WORKSPACE_STATE);\n}\n\n/**\n * Resolve the skills cache file path (internal agent state, under agent dir).\n */\nexport function resolveSkillsCachePath(config: Config, agentId: string): string {\n return join(resolveAgentDir(config, agentId), 'state', FILENAMES.SKILLS_CACHE);\n}\n\n/**\n * Resolve the bundled extensions directory (shipped with xopc).\n *\n * Layout-dependent candidates (first existing wins):\n * - `XOPC_BUNDLED_EXTENSIONS_ROOT` (Electron packaged gateway override)\n * - `dist/src/config` → `dist/extensions` (npm / gateway)\n * - `src/config` → `dist/extensions` when built, else `extensions/` (dev, tsx)\n * - `out/server` → `dist/electron/extensions` (Electron extension bundles)\n */\nexport function resolveBundledExtensionsDir(): string | null {\n const envDir = process.env[ENV_BUNDLED_EXTENSIONS_ROOT];\n if (envDir && existsSync(envDir)) {\n return envDir;\n }\n\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const isElectronServerBundle = srcDir.endsWith(`${sep}out${sep}server`);\n const candidates = isElectronServerBundle\n ? [join(srcDir, '..', '..', 'dist', 'electron', 'extensions')]\n : [\n // In source-tree dev, prefer compiled bundled extensions when present: manifests point\n // at built JavaScript entries (for example src/index.js), while source folders contain TS.\n join(srcDir, '..', '..', 'dist', 'extensions'),\n join(srcDir, '..', '..', 'extensions'),\n join(srcDir, '..', '..', '..', 'dist', 'extensions'),\n join(srcDir, '..', '..', '..', 'extensions'),\n ];\n for (const dir of candidates) {\n if (existsSync(dir)) {\n return dir;\n }\n }\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Resolve the bundled skills directory (shipped with xopc)\n */\nexport function resolveBundledSkillsDir(): string | null {\n const envDir = process.env[ENV_BUNDLED_SKILLS_ROOT];\n if (envDir && existsSync(envDir)) {\n return envDir;\n }\n\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n \n // Production (npm): dist/config/paths.js -> ../../ -> package root -> skills\n const packageRoot = join(srcDir, '..', '..');\n const skillsDir = join(packageRoot, 'skills');\n if (existsSync(skillsDir)) {\n return skillsDir;\n }\n \n // Development (source): src/config/paths.js -> ../../../ -> package root -> skills\n const devPackageRoot = join(srcDir, '..', '..', '..');\n const devSkillsDir = join(devPackageRoot, 'skills');\n if (existsSync(devSkillsDir)) {\n return devSkillsDir;\n }\n \n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Path to extension-sdk entry (for jiti / extension loader aliases).\n */\nexport function resolveExtensionSdkPath(): string {\n try {\n const currentFile = fileURLToPath(import.meta.url);\n const srcDir = dirname(currentFile);\n const adjacent = join(srcDir, '..', 'extensions', 'sdk', 'index.ts');\n if (existsSync(adjacent)) {\n return adjacent;\n }\n const fromPackageRoot = join(srcDir, '..', '..', 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(fromPackageRoot)) {\n return fromPackageRoot;\n }\n const cwd = join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n if (existsSync(cwd)) {\n return cwd;\n }\n return adjacent;\n } catch {\n return join(process.cwd(), 'src', 'extensions', 'sdk', 'index.ts');\n }\n}\n\n// Re-export existsSync for bundled paths\nexport { existsSync };\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { shouldSilence, stripHeartbeatToken } from "../../heartbeat/tokens.js";
|
|
4
|
+
import { appendCronEventLines } from "../../heartbeat/event-prompt.js";
|
|
4
5
|
import { isWithinActiveHours } from "../../heartbeat/active-hours.js";
|
|
5
6
|
import { isHeartbeatContentEmpty } from "../../heartbeat/content-check.js";
|
|
6
|
-
import { appendCronEventLines } from "../../heartbeat/event-prompt.js";
|
|
7
7
|
import { createHeartbeatWake } from "../../heartbeat/wake.js";
|
|
8
8
|
import { resolveHeartbeatMdPath } from "../workspace-heartbeat-path.js";
|
|
9
9
|
import { readFile } from "fs/promises";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DEFAULT_ACK_MAX_CHARS, HEARTBEAT_OK, NO_REPLY, shouldSilence, stripHeartbeatToken } from "./tokens.js";
|
|
2
|
+
import { appendCronEventLines } from "./event-prompt.js";
|
|
2
3
|
import { isWithinActiveHours } from "./active-hours.js";
|
|
3
4
|
import { isHeartbeatContentEmpty } from "./content-check.js";
|
|
4
|
-
import { appendCronEventLines } from "./event-prompt.js";
|
|
5
5
|
import { createHeartbeatWake } from "./wake.js";
|
|
6
6
|
export { DEFAULT_ACK_MAX_CHARS, HEARTBEAT_OK, NO_REPLY, appendCronEventLines, createHeartbeatWake, isHeartbeatContentEmpty, isWithinActiveHours, shouldSilence, stripHeartbeatToken };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xopcai/xopc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.109",
|
|
4
4
|
"description": "Goal Loop OS for long-term AI work: a local-first multi-surface agent system with workflow automation, multi-agent routing, and extensibility via extensions/skills.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|